Spring BootでTomcatのデフォルトエラーページをカスタマイズ

Spring Bootを使用したWebアプリケーションの開発で、エラーページのカスタマイズが必要になることがある。デフォルトでは、Tomcatのエラーページが表示されるが、このページをカスタマイズすることで、よりユーザー 친화的なエラーページを提供できる。ただし、Spring Bootのデフォルト設定では、Tomcatのカスタマイズが制限されている。そこで、この記事では、する方法を紹介する。具体的には、エラーページのテンプレートを変更する方法や、エラー情報の表示設定を変更する方法などについて説明する。

Spring BootでTomcatのデフォルトエラーページをカスタマイズする方法

Spring BootでTomcatのデフォルトエラーページをカスタマイズするには、以下の方法があります。 Spring Bootのデフォルト設定変更

Spring Bootのデフォルト設定変更

Spring Bootのデフォルト設定を変更することで、Tomcatのデフォルトエラーページを変更できます。application.propertiesファイルに以下の設定を追加します。 properties server.error.whitelabel.enabled=false これで、Spring Bootのデフォルトエラーページが表示されなくなります。 カスタムエラーページ作成

カスタムエラーページ作成

カスタムエラーページを作成することで、Tomcatのデフォルトエラーページを変更できます。以下の例は、404エラーの場合に表示されるカスタムエラーページです。 404 Not Found

404 Not Found

ページが見つかりません。

カスタムエラーページ設定

カスタムエラーページ設定

カスタムエラーページを作成したら、Spring Bootにそのページを表示するように設定する必要があります。以下の例は、404エラーの場合に表示されるカスタムエラーページを設定する方法です。 properties server.error.path=/error java @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.addErrorPages(new ErrorPage(HttpStatus.NOT FOUND, /404)); } }; } エラーページの国际化

エラーページの国际化

エラーページを国际化することで、異なる言語のユーザーに適切なエラーメッセージを表示できます。以下の例は、エラーページを国际化する方法です。 properties server.error.path=/error java @Bean public EmbeddedServletContainerCustomizer containerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer container) { container.addErrorPages(new ErrorPage(HttpStatus.NOT FOUND, /404)); } }; }404 Not Found</p><h1>404 Not Found</h1><p>ページが見つかりません。</p><p> エラーページのテスト</p><h3>エラーページのテスト</h3><p> エラーページをテストすることで、エラーページが正しく表示されるかどうかを確認できます。以下の例は、エラーページをテストする方法です。 java @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest public class ErrorPageTest { @Autowired private TestRestTemplate restTemplate; @Test public void test404ErrorPage() { <a href="https://dejimirai.one/spring-boot%e3%81%a7%e3%83%aa%e3%83%80%e3%82%a4%e3%83%ac%e3%82%af%e3%83%88%e5%85%88url%e3%82%92%e5%8b%95%e7%9a%84%e3%81%ab%e7%94%9f%e6%88%90/">ResponseEntity</a> response = restTemplate.getForEntity(/notfound, String.class); assertEquals(HttpStatus.NOT FOUND, response.getStatusCode()); assertTrue(response.getBody().contains(404 Not Found)); } }</p><table><tr><th>設定</th><th>説明</th></tr><tr><td><strong>server.error.whitelabel.enabled=false</strong></td><td>Spring Bootのデフォルトエラーページを表示しない</td></tr><tr><td><strong>server.error.path=/error</strong></td><td>エラーページのパスを設定</td></tr><tr><td><strong>container.addErrorPages(new ErrorPage(HttpStatus.NOT FOUND, /404))</strong></td><td>404エラーの場合に表示されるエラーページを設定</td></tr></table><h2>よくある質問</h2><h3>Tomcatのデフォルトエラーページをカスタマイズする方法はありますか?</h3><p> Spring Bootでは、デフォルトのエラーページをカスタマイズすることができます。カスタマイズするためには、 <strong>`src/main/resources/templates/error/`</strong> 以下に <strong>`error.html`</strong> というファイルを作成する必要があります。このファイルには、エラーに関する情報を表示するHTMLコードを記述します。例えば、エラーのステータスコードやエラーメッセージを表示することができます。また、<strong>`application.properties`</strong>ファイルに <strong>`server.error.whitelabel.enabled=false`</strong> を設定することで、デフォルトのエラーページを完全にオフにすることもできます。</p><h3>Spring BootでTomcatのエラーページをカスタマイズする方法は複数ありますか?</h3><p> はい、Spring Bootでは、Tomcatのエラーページをカスタマイズする方法は複数あります。まず、 <strong>`src/main/resources/templates/error/`</strong> 以下にエラーページ用のHTMLファイルを作成する方法があります。この方法では、HTTPステータスコードやエラーメッセージに応じて異なるエラーページを表示することができます。また、 <strong>`ErrorController`</strong> インターフェースを実装することで、エラーページを完全にカスタマイズすることもできます。このインターフェースでは、エラーに関する情報を取得し、エラーページを表示するためのロジックを実装する必要があります。</p><h3>Spring Bootでカスタマイズしたエラーページを表示しない場合はどうすればよいですか?</h3><p> Spring Bootでカスタマイズしたエラーページを表示しない場合は、 <strong>`server.error.whitelabel.enabled=true`</strong> を <strong>`application.properties`</strong> ファイルに設定する必要があります。この設定により、Spring Bootのデフォルトのエラーページが表示されるようになります。また、カスタマイズしたエラーページ用のHTMLファイルを削除することもできます。この場合、Spring Bootはデフォルトのエラーページを表示するようになります。</p><h3>Spring Bootでカスタマイズしたエラーページのテスト方法はありますか?</h3><p> はい、Spring Bootでカスタマイズしたエラーページのテスト方法はあります。まず、 <strong>`MockMvc`</strong> クラスを使用することで、エラーページの表示をテストすることができます。このクラスでは、HTTPリクエストを送信し、レスポンスを取得することができます。エラーページの表示をテストするには、HTTPリクエストを送信し、レスポンスのステータスコードやコンテンツを検証する必要があります。また、<strong>`TestRestTemplate`</strong> クラスを使用することで、REST APIのテストを行い、エラーページの表示をテストすることもできます。</p></div></article></div><div id="stop-sticky"></div><div class="section bottom-author-box"><style>.author-box{font-weight:600;margin-bottom:1.5em}.author-box img{background:#fff;border:2px solid #fff;border-radius:50%;height:60px;width:60px}.author-box>*{display:inline-block;margin:0 5px;text-align:center;vertical-align:middle;width:100%}.author-box .as-a{font-size:83%;font-weight:400}.author-box .heading>*{display:inline-block}.author-box .heading>a{color:#444;text-decoration:underline}.author-box .links{margin-left:5px}.author-box .links svg{fill:#666;height:15px;margin:0 4px;width:15px}.author-box .tagline{font-size:83%}@media screen and (min-width:334px){.author-box>*{text-align:left;width:auto}}</style><div class="author-box"> <img width="60" height="60" src="https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo-96x96.webp" class="avatar avatar-60 photo" alt="Anzai Hotaka" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo-96x96.webp 96w, https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo-150x150.webp 150w, https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo-24x24.webp 24w, https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo-48x48.webp 48w, https://dejimirai.one/wp-content/uploads/2024/12/Anzai-Profile-Photo.webp 239w" sizes="(max-width: 60px) 100vw, 60px" /><div><div class="heading"> <a href="https://dejimirai.one/author/adm_dejimirai/" title="Anzai Hotaka の投稿" rel="author">Anzai Hotaka</a><br>10 年の経験を持つコンピュータ エンジニア。Linux コンピュータ システム管理者、Web プログラマー、システム エンジニア。<div class="links"></div></div></div></div></div><div class="section related-posts"> <span class="as-h2"> RELATED POSTS </span><div class="grid-cols-2 strict"><style>.post-grid-item{align-content:center;align-items:center;background:#fff;border-radius:var(--w-radius);box-shadow:var(--w-shadow-bordered);display:flex;height:140px;overflow:hidden;text-align:center}.post-grid-item .thumb{border-radius:var(--w-radius) 0 0 var(--w-radius);flex:1.5 1;height:100%;max-width:300px;overflow:hidden;position:relative}.post-grid-item .thumb img{display:block;left:50%;max-width:none;position:absolute;top:50%;transform:translateY(-50%) translateX(-50%)}.post-grid-item .title{-webkit-line-clamp:3;-webkit-box-orient:vertical;border-radius:0 var(--w-radius) var(--w-radius) 0;color:#444;display:-webkit-box;flex:2 1;font-size:1em;font-weight:600;overflow:hidden;padding:2px .5em;width:100%}.post-grid-item .title span{border-bottom:2px solid var(--w-color-main)}.post-grid-item:hover{box-shadow:var(--w-shadow-lg-bordered)}.post-grid-item:hover .title span{border-width:3px}.post-grid-item.vertical{display:flex;flex-direction:column;height:auto}.post-grid-item.vertical .content{margin:auto 0;padding:1em;width:100%}.post-grid-item.vertical .thumb{flex:none;height:auto;max-width:100%;overflow:visible;width:100%}.post-grid-item.vertical .thumb img{left:auto;position:relative;top:auto;transform:none;width:100%}.post-grid-item.vertical .title{padding:0;text-align:center}.post-grid-item.vertical .title span{border:none}.post-grid-item.vertical:hover{opacity:.75}.post-grid-item.with-excerpt,.post-grid-item.with-excerpt .title{text-align:left}.post-grid-item.with-excerpt .excerpt{color:#444;font-size:90%}.post-grid-item.with-excerpt .read-more{margin:0}.post-grid-item.vertical:not(.with-excerpt) .thumb+.content .title{text-align:left}</style><a class="post-item post-grid-item" href="https://dejimirai.one/spring-cloud-stream%e3%83%95%e3%83%ac%e3%83%bc%e3%83%a0%e3%83%af%e3%83%bc%e3%82%af%e3%82%92%e7%90%86%e8%a7%a3%e3%81%99%e3%82%8b/"><div class="thumb"> <img loading="lazy" width="267" height="200" src="https://dejimirai.one/wp-content/uploads/2024/09/spring-cloud-streame38395e383ace383bce383a0e383afe383bce382afe38292e79086e8a7a3e38199e3828b.jpg" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="Spring Cloud Streamフレームワークを理解する" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/09/spring-cloud-streame38395e383ace383bce383a0e383afe383bce382afe38292e79086e8a7a3e38199e3828b.jpg 1350w, https://dejimirai.one/wp-content/uploads/2024/09/spring-cloud-streame38395e383ace383bce383a0e383afe383bce382afe38292e79086e8a7a3e38199e3828b-300x225.jpg 300w, https://dejimirai.one/wp-content/uploads/2024/09/spring-cloud-streame38395e383ace383bce383a0e383afe383bce382afe38292e79086e8a7a3e38199e3828b-1024x768.jpg 1024w, https://dejimirai.one/wp-content/uploads/2024/09/spring-cloud-streame38395e383ace383bce383a0e383afe383bce382afe38292e79086e8a7a3e38199e3828b-768x576.jpg 768w" sizes="(max-width: 267px) 100vw, 267px" /></div><div class="title"> <span>Spring Cloud Streamフレームワークを理解する</span></div> </a> <a class="post-item post-grid-item" href="https://dejimirai.one/spring%e3%81%ae%e3%83%97%e3%83%ad%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e6%a9%9f%e8%83%bd%e3%81%a8spring-boot%e3%81%aeapplication-properties/"><div class="thumb"> <img loading="lazy" width="300" height="158" src="https://dejimirai.one/wp-content/uploads/2024/09/springe381aee38397e383ade38395e382a1e382a4e383abe6a99fe883bde381a8spring-boote381aeapplication-properties.png" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="Springのプロファイル機能とSpring Bootのapplication.properties" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/09/springe381aee38397e383ade38395e382a1e382a4e383abe6a99fe883bde381a8spring-boote381aeapplication-properties.png 1080w, https://dejimirai.one/wp-content/uploads/2024/09/springe381aee38397e383ade38395e382a1e382a4e383abe6a99fe883bde381a8spring-boote381aeapplication-properties-300x158.png 300w, https://dejimirai.one/wp-content/uploads/2024/09/springe381aee38397e383ade38395e382a1e382a4e383abe6a99fe883bde381a8spring-boote381aeapplication-properties-1024x538.png 1024w, https://dejimirai.one/wp-content/uploads/2024/09/springe381aee38397e383ade38395e382a1e382a4e383abe6a99fe883bde381a8spring-boote381aeapplication-properties-768x403.png 768w" sizes="(max-width: 300px) 100vw, 300px" /></div><div class="title"> <span>Springのプロファイル機能とSpring Bootのapplication.properties</span></div> </a> <a class="post-item post-grid-item" href="https://dejimirai.one/sqlserver-index%e4%bb%98%e3%81%8dview%e3%82%92%e3%83%aa%e3%83%aa%e3%83%bc%e3%82%b9%e3%81%99%e3%82%8b%e9%9a%9b%e3%81%ae%e6%b3%a8%e6%84%8f%e7%82%b9/"><div class="thumb"> <img loading="lazy" width="284" height="200" src="https://dejimirai.one/wp-content/uploads/2024/09/sqlserver-indexe4bb98e3818dviewe38292e383aae383aae383bce382b9e38199e3828be99a9be381aee6b3a8e6848fe782b9.jpg" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="SQLServer: Index付きViewをリリースする際の注意点" decoding="async" /></div><div class="title"> <span>SQLServer: Index付きViewをリリースする際の注意点</span></div> </a> <a class="post-item post-grid-item" href="https://dejimirai.one/sql-server-net-%e3%81%a7-timeout-expired-%e3%82%a8%e3%83%a9%e3%83%bc%e3%81%ae%e8%a7%a3%e6%b1%ba%e7%ad%96/"><div class="thumb"> <img loading="lazy" width="300" height="111" src="https://dejimirai.one/wp-content/uploads/2024/09/sql-server-net-e381a7-timeout-expired-e382a8e383a9e383bce381aee8a7a3e6b1bae7ad96.png" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="SQL Server + .NET で “Timeout expired.” エラーの解決策" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/09/sql-server-net-e381a7-timeout-expired-e382a8e383a9e383bce381aee8a7a3e6b1bae7ad96.png 921w, https://dejimirai.one/wp-content/uploads/2024/09/sql-server-net-e381a7-timeout-expired-e382a8e383a9e383bce381aee8a7a3e6b1bae7ad96-300x111.png 300w, https://dejimirai.one/wp-content/uploads/2024/09/sql-server-net-e381a7-timeout-expired-e382a8e383a9e383bce381aee8a7a3e6b1bae7ad96-768x285.png 768w" sizes="(max-width: 300px) 100vw, 300px" /></div><div class="title"> <span>SQL Server + .NET で “Timeout expired.” エラーの解決策</span></div> </a> <a class="post-item post-grid-item" href="https://dejimirai.one/sql-server-tips-%e5%88%b6%e7%b4%84%e3%81%a8%e3%83%86%e3%83%bc%e3%83%96%e3%83%ab%e3%82%ab%e3%83%a9%e3%83%a0%e3%81%ae%e8%bf%bd%e5%8a%a0-%e5%89%8a%e9%99%a4%e3%82%af%e3%82%a8%e3%83%aa/"><div class="thumb"> <img loading="lazy" width="300" height="128" src="https://dejimirai.one/wp-content/uploads/2024/09/sql-server-tips-e588b6e7b484e381a8e38386e383bce38396e383abe382abe383a9e383a0e381aee8bfbde58aa0-e5898ae999a4e382afe382a8e383aa.png" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="SQL Server Tips – 制約とテーブルカラムの追加/削除クエリ" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/09/sql-server-tips-e588b6e7b484e381a8e38386e383bce38396e383abe382abe383a9e383a0e381aee8bfbde58aa0-e5898ae999a4e382afe382a8e383aa.png 810w, https://dejimirai.one/wp-content/uploads/2024/09/sql-server-tips-e588b6e7b484e381a8e38386e383bce38396e383abe382abe383a9e383a0e381aee8bfbde58aa0-e5898ae999a4e382afe382a8e383aa-300x128.png 300w, https://dejimirai.one/wp-content/uploads/2024/09/sql-server-tips-e588b6e7b484e381a8e38386e383bce38396e383abe382abe383a9e383a0e381aee8bfbde58aa0-e5898ae999a4e382afe382a8e383aa-768x328.png 768w" sizes="(max-width: 300px) 100vw, 300px" /></div><div class="title"> <span>SQL Server Tips – 制約とテーブルカラムの追加/削除クエリ</span></div> </a> <a class="post-item post-grid-item" href="https://dejimirai.one/sql-server%e3%81%a7%e3%83%ac%e3%82%b3%e3%83%bc%e3%83%89%e4%bb%b6%e6%95%b0%e3%82%92%e8%aa%bf%e3%81%b9%e3%82%8b%e6%96%b9%e6%b3%95%e3%81%be%e3%81%a8%e3%82%81/"><div class="thumb"> <img loading="lazy" width="192" height="200" src="https://dejimirai.one/wp-content/uploads/2024/09/sql-servere381a7e383ace382b3e383bce38389e4bbb6e695b0e38292e8aabfe381b9e3828be696b9e6b395e381bee381a8e38281.jpg" class="attachment-archive-post-thumbnail size-archive-post-thumbnail wp-post-image" alt="SQL Serverでレコード件数を調べる方法まとめ" decoding="async" srcset="https://dejimirai.one/wp-content/uploads/2024/09/sql-servere381a7e383ace382b3e383bce38389e4bbb6e695b0e38292e8aabfe381b9e3828be696b9e6b395e381bee381a8e38281.jpg 432w, https://dejimirai.one/wp-content/uploads/2024/09/sql-servere381a7e383ace382b3e383bce38389e4bbb6e695b0e38292e8aabfe381b9e3828be696b9e6b395e381bee381a8e38281-288x300.jpg 288w" sizes="(max-width: 192px) 100vw, 192px" /></div><div class="title"> <span>SQL Serverでレコード件数を調べる方法まとめ</span></div> </a></div></div><div class="section"><div id="comments" class="comments-area"></div></div></main><footer class="main-footer"><div class="section"><ul id="menu-secundario" class="menu grid-cols-3"><li id="menu-item-1905" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1905"><a href="https://dejimirai.one/%e6%b3%95%e5%be%8b%e4%b8%8a%e3%81%ae%e6%b3%a8%e6%84%8f%e4%ba%8b%e9%a0%85/">法律上の注意事項</a></li><li id="menu-item-1906" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1906"><a href="https://dejimirai.one/%e3%82%af%e3%83%83%e3%82%ad%e3%83%bc%e3%83%9d%e3%83%aa%e3%82%b7%e3%83%bc/">クッキーポリシー</a></li><li id="menu-item-1907" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1907"><a href="https://dejimirai.one/%e5%80%8b%e4%ba%ba%e6%83%85%e5%a0%b1%e4%bf%9d%e8%ad%b7%e6%96%b9%e9%87%9d/">個人情報保護方針</a></li><li id="menu-item-2094" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2094"><a href="https://lit.link/en/dqQP5YrkxZNUEDT8zxFo5FRnh1q1">Lit.link</a></li><li id="menu-item-2095" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2095"><a href="https://taplink.cc/dejimirai">Taplink.cc</a></li></ul></div><p class="copyright"> <span>© 2026 デジ未来 · All rights reserved</span></p></footer></div><div id="js-overlay-mask" ></div><div class='ai-viewports ai-viewport-1 ai-insert-4-52324027' data-insertion-position='before' data-selector='bottom-author-box' data-code='PGRpdiBjbGFzcz0nY29kZS1ibG9jayBjb2RlLWJsb2NrLTQnIHN0eWxlPSdtYXJnaW46IDhweCBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsnPgo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6NzI4cHg7aGVpZ2h0OjkwcHgiCiAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi0xNjg5OTg3MTI3NTk2NTYwIgogICAgIGRhdGEtYWQtc2xvdD0iMjkzMDY0NDY1NCI+PC9pbnM+CjxzY3JpcHQ+CiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsKPC9zY3JpcHQ+PC9kaXY+Cg==' data-block='4'></div><div class='ai-viewports ai-viewport-1 ai-insert-8-62054204' data-insertion-position='before' data-selector='.single h1' data-code='PGRpdiBjbGFzcz0nY29kZS1ibG9jayBjb2RlLWJsb2NrLTgnIHN0eWxlPSdtYXJnaW46IDhweCAwOyBjbGVhcjogYm90aDsnPgo8IS0tIEJpbGxib2FyZCA5NzB4MjUwIC0tPgo8aW5zIGNsYXNzPSJhZHNieWdvb2dsZSIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6OTcwcHg7aGVpZ2h0OjI1MHB4IgogICAgIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItMTY4OTk4NzEyNzU5NjU2MCIKICAgICBkYXRhLWFkLXNsb3Q9Ijk1MzA0OTY5NjEiPjwvaW5zPgo8c2NyaXB0PgogICAgIChhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7Cjwvc2NyaXB0PjwvZGl2Pgo=' data-block='8'></div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/wasabi/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <div class="banner600x160 leftbanner"> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-1689987127596560" data-ad-slot="1645139640" data-ad-format="auto" data-full-width-responsive="true"></ins> <script src="data:text/javascript;base64,KGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTs=" defer data-no-defer="1"></script> </div><div class="banner600x160 rightbanner"><div> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-1689987127596560" data-ad-slot="1645139640" data-ad-format="auto" data-full-width-responsive="true"></ins> <script src="data:text/javascript;base64,KGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTs=" defer data-no-defer="1"></script> </div></div> <script type="text/javascript" src="https://dejimirai.one/wp-includes/js/jquery/jquery.min.js" id="jquery-core-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-includes/js/jquery/jquery-migrate.min.js" id="jquery-migrate-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/themes/wasabi/build/js/menu.js" id="wasabi-menu-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/plugins/metronet-profile-picture/js/mpp-frontend.js" id="mpp_gutenberg_tabs-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-includes/js/dist/hooks.min.js" id="wp-hooks-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-includes/js/dist/i18n.min.js" id="wp-i18n-js" defer data-no-defer="1"></script><script type="text/javascript" id="wp-i18n-js-after" src="data:text/javascript;base64,LyogICovCndwLmkxOG4uc2V0TG9jYWxlRGF0YSggeyAndGV4dCBkaXJlY3Rpb25cdTAwMDRsdHInOiBbICdsdHInIF0gfSApOwovLyMgc291cmNlVVJMPXdwLWkxOG4tanMtYWZ0ZXIKLyogICov" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/plugins/contact-form-7/includes/swv/js/index.js" id="swv-js" defer data-no-defer="1"></script><script type="text/javascript" id="contact-form-7-js-translations" src="data:text/javascript;base64,LyogICovCiggZnVuY3Rpb24oIGRvbWFpbiwgdHJhbnNsYXRpb25zICkgewoJdmFyIGxvY2FsZURhdGEgPSB0cmFuc2xhdGlvbnMubG9jYWxlX2RhdGFbIGRvbWFpbiBdIHx8IHRyYW5zbGF0aW9ucy5sb2NhbGVfZGF0YS5tZXNzYWdlczsKCWxvY2FsZURhdGFbIiJdLmRvbWFpbiA9IGRvbWFpbjsKCXdwLmkxOG4uc2V0TG9jYWxlRGF0YSggbG9jYWxlRGF0YSwgZG9tYWluICk7Cn0gKSggImNvbnRhY3QtZm9ybS03IiwgeyJ0cmFuc2xhdGlvbi1yZXZpc2lvbi1kYXRlIjoiMjAyNS0xMS0zMCAwODoxMjoyMyswMDAwIiwiZ2VuZXJhdG9yIjoiR2xvdFByZXNzXC80LjAuMyIsImRvbWFpbiI6Im1lc3NhZ2VzIiwibG9jYWxlX2RhdGEiOnsibWVzc2FnZXMiOnsiIjp7ImRvbWFpbiI6Im1lc3NhZ2VzIiwicGx1cmFsLWZvcm1zIjoibnBsdXJhbHM9MTsgcGx1cmFsPTA7IiwibGFuZyI6ImphX0pQIn0sIlRoaXMgY29udGFjdCBmb3JtIGlzIHBsYWNlZCBpbiB0aGUgd3JvbmcgcGxhY2UuIjpbIlx1MzA1M1x1MzA2ZVx1MzBiM1x1MzBmM1x1MzBiZlx1MzBhZlx1MzBjOFx1MzBkNVx1MzBhOVx1MzBmY1x1MzBlMFx1MzA2Zlx1OTU5M1x1OTA1NVx1MzA2M1x1MzA1Zlx1NGY0ZFx1N2Y2ZVx1MzA2Ylx1N2Y2ZVx1MzA0Ylx1MzA4Y1x1MzA2Nlx1MzA0NFx1MzA3ZVx1MzA1OVx1MzAwMiJdLCJFcnJvcjoiOlsiXHUzMGE4XHUzMGU5XHUzMGZjOiJdfX0sImNvbW1lbnQiOnsicmVmZXJlbmNlIjoiaW5jbHVkZXNcL2pzXC9pbmRleC5qcyJ9fSApOwovLyMgc291cmNlVVJMPWNvbnRhY3QtZm9ybS03LWpzLXRyYW5zbGF0aW9ucwovKiAgKi8=" defer data-no-defer="1"></script><script type="text/javascript" id="contact-form-7-js-before" src="data:text/javascript;base64,LyogICovCnZhciB3cGNmNyA9IHsKICAgICJhcGkiOiB7CiAgICAgICAgInJvb3QiOiAiaHR0cHM6XC9cL2RlamltaXJhaS5vbmVcL3dwLWpzb25cLyIsCiAgICAgICAgIm5hbWVzcGFjZSI6ICJjb250YWN0LWZvcm0tN1wvdjEiCiAgICB9LAogICAgImNhY2hlZCI6IDEKfTsKLy8jIHNvdXJjZVVSTD1jb250YWN0LWZvcm0tNy1qcy1iZWZvcmUKLyogICov" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/plugins/contact-form-7/includes/js/index.js" id="contact-form-7-js" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/themes/wasabi/build/js/obfuscated-links.js" id="wasabi-obfuscated-links-js" defer data-no-defer="1"></script><script type="text/javascript" id="wasabi-delay-js-js-extra" src="data:text/javascript;base64,LyogICovCnZhciB3YXNhYmkgPSB7ImRlbGF5X2pzX3RpbWVvdXQiOiI1IiwiZGVsYXlfanNfYXR0ciI6ImRhdGEtd2RlbGF5ZWQifTsKLy8jIHNvdXJjZVVSTD13YXNhYmktZGVsYXktanMtanMtZXh0cmEKLyogICov" defer data-no-defer="1"></script><script type="text/javascript" src="https://dejimirai.one/wp-content/themes/wasabi/build/js/delay-js.js" id="wasabi-delay-js-js" defer data-no-defer="1"></script><script data-wdelayed="data:text/javascript;base64,ZnVuY3Rpb24gYjJhKGEpe3ZhciBiLGM9MCxsPTAsZj0iIixnPVtdO2lmKCFhKXJldHVybiBhO2Rve3ZhciBlPWEuY2hhckNvZGVBdChjKyspO3ZhciBoPWEuY2hhckNvZGVBdChjKyspO3ZhciBrPWEuY2hhckNvZGVBdChjKyspO3ZhciBkPWU8PDE2fGg8PDh8aztlPTYzJmQ+PjE4O2g9NjMmZD4+MTI7az02MyZkPj42O2QmPTYzO2dbbCsrXT0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChlKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChoKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChrKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLmNoYXJBdChkKX13aGlsZShjPA0KYS5sZW5ndGgpO3JldHVybiBmPWcuam9pbigiIiksYj1hLmxlbmd0aCUzLChiP2Yuc2xpY2UoMCxiLTMpOmYpKyI9PT0iLnNsaWNlKGJ8fDMpfWZ1bmN0aW9uIGEyYihhKXt2YXIgYixjLGwsZj17fSxnPTAsZT0wLGg9IiIsaz1TdHJpbmcuZnJvbUNoYXJDb2RlLGQ9YS5sZW5ndGg7Zm9yKGI9MDs2ND5iO2IrKylmWyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoYildPWI7Zm9yKGM9MDtkPmM7YysrKWZvcihiPWZbYS5jaGFyQXQoYyldLGc9KGc8PDYpK2IsZSs9Njs4PD1lOykoKGw9MjU1Jmc+Pj4oZS09OCkpfHxkLTI+YykmJihoKz1rKGwpKTtyZXR1cm4gaH1iNjRlPWZ1bmN0aW9uKGEpe3JldHVybiBidG9hKGVuY29kZVVSSUNvbXBvbmVudChhKS5yZXBsYWNlKC8lKFswLTlBLUZdezJ9KS9nLGZ1bmN0aW9uKGIsYSl7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoIjB4IithKX0pKX07DQpiNjRkPWZ1bmN0aW9uKGEpe3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoYXRvYihhKS5zcGxpdCgiIikubWFwKGZ1bmN0aW9uKGEpe3JldHVybiIlIisoIjAwIithLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpKS5zbGljZSgtMil9KS5qb2luKCIiKSl9Ow0KLyogICovCmFpX2Zyb250ID0geyJpbnNlcnRpb25fYmVmb3JlIjoiXHU1MjRkXHUzMDZiIiwiaW5zZXJ0aW9uX2FmdGVyIjoiXHU1ZjhjIiwiaW5zZXJ0aW9uX3ByZXBlbmQiOiJcdTMwYjNcdTMwZjNcdTMwYzZcdTMwZjNcdTMwYzRcdTMwOTJcdTUxNDhcdTk4MmRcdTMwNmJcdThmZmRcdTUyYTAiLCJpbnNlcnRpb25fYXBwZW5kIjoiXHUzMGIzXHUzMGYzXHUzMGM2XHUzMGYzXHUzMGM0XHUzMDkyXHU4ZmZkXHU1MmEwXHUzMDU5XHUzMDhiIiwiaW5zZXJ0aW9uX3JlcGxhY2VfY29udGVudCI6Ilx1MzBiM1x1MzBmM1x1MzBjNlx1MzBmM1x1MzBjNFx1MzA5Mlx1N2Y2ZVx1MzA0ZFx1NjNkYlx1MzA0OFx1MzA4YiIsImluc2VydGlvbl9yZXBsYWNlX2VsZW1lbnQiOiJcdTg5ODFcdTdkMjBcdTMwOTJcdTRlYTRcdTYzZGJcdTMwNTlcdTMwOGIiLCJ2aXNpYmxlIjoiXHU4ODY4XHU3OTNhXHUzMDZlIiwiaGlkZGVuIjoiXHU5NzVlXHU4ODY4XHU3OTNhXHUzMDZlIiwiZmFsbGJhY2siOiJcdTMwZDVcdTMwYTlcdTMwZmNcdTMwZWJcdTMwZDBcdTMwYzNcdTMwYWYiLCJhdXRvbWF0aWNhbGx5X3BsYWNlZCI6IkFkU2Vuc2UgXHU4MWVhXHU1MmQ1XHU1ZTgzXHU1NDRhXHUzMGIzXHUzMGZjXHUzMGM5XHUzMDZiXHUzMDg4XHUzMDYzXHUzMDY2XHU4MWVhXHU1MmQ1XHU3Njg0XHUzMDZiXHU5MTRkXHU3ZjZlXHUzMDU3XHUzMDdlXHUzMDU5IiwiY2FuY2VsIjoiXHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViIiwidXNlIjoiXHU0ZjdmXHU3NTI4IiwiYWRkIjoiXHU4ZmZkXHU1MmEwIiwicGFyZW50IjoiXHU4OWFhIiwiY2FuY2VsX2VsZW1lbnRfc2VsZWN0aW9uIjoiXHU4OTgxXHU3ZDIwXHUzMDZlXHU5MDc4XHU2MjllXHUzMDkyXHUzMGFkXHUzMGUzXHUzMGYzXHUzMGJiXHUzMGViXHUzMDU5XHUzMDhiIiwic2VsZWN0X3BhcmVudF9lbGVtZW50IjoiXHU4OWFhXHU4OTgxXHU3ZDIwXHUzMDkyXHU5MDc4XHU2MjllXHUzMDU5XHUzMDhiIiwiY3NzX3NlbGVjdG9yIjoiQ1NTIFx1MzBiYlx1MzBlY1x1MzBhZlx1MzBiZlx1MzBmYyIsInVzZV9jdXJyZW50X3NlbGVjdG9yIjoiXHU3M2ZlXHU1NzI4XHUzMDZlXHUzMGJiXHUzMGVjXHUzMGFmXHUzMGJmXHUzMGZjXHUzMDkyXHU0ZjdmXHU3NTI4XHUzMDU5XHUzMDhiIiwiZWxlbWVudCI6Ilx1ODk4MVx1N2QyMCIsInBhdGgiOiJcdTMwZDFcdTMwYjkiLCJzZWxlY3RvciI6Ilx1MzBiYlx1MzBlY1x1MzBhZlx1MzBiZiJ9OwovKiAgKi8KdmFyIGFpX2Nvb2tpZV9qcz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siOwovKgoganMtY29va2llIHYzLjAuNSB8IE1JVCAgSmF2YVNjcmlwdCBDb29raWUgdjIuMi4wCiBodHRwczovL2dpdGh1Yi5jb20vanMtY29va2llL2pzLWNvb2tpZQoKIENvcHlyaWdodCAyMDA2LCAyMDE1IEtsYXVzIEhhcnRsICYgRmFnbmVyIEJyYWNrCiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UKKi8KaWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYWlfY29va2llX2pzKXsoZnVuY3Rpb24oYSxmKXsib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGU/bW9kdWxlLmV4cG9ydHM9ZigpOiJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShmKTooYT0idW5kZWZpbmVkIiE9PXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6YXx8c2VsZixmdW5jdGlvbigpe3ZhciBiPWEuQ29va2llcyxjPWEuQ29va2llcz1mKCk7Yy5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7YS5Db29raWVzPWI7cmV0dXJuIGN9fSgpKX0pKHRoaXMsZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGIpe2Zvcih2YXIgYz0xO2M8YXJndW1lbnRzLmxlbmd0aDtjKyspe3ZhciBnPWFyZ3VtZW50c1tjXSxlO2ZvcihlIGluIGcpYltlXT1nW2VdfXJldHVybiBifWZ1bmN0aW9uIGYoYixjKXtmdW5jdGlvbiBnKGUsZCxoKXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBkb2N1bWVudCl7aD0KYSh7fSxjLGgpOyJudW1iZXIiPT09dHlwZW9mIGguZXhwaXJlcyYmKGguZXhwaXJlcz1uZXcgRGF0ZShEYXRlLm5vdygpKzg2NEU1KmguZXhwaXJlcykpO2guZXhwaXJlcyYmKGguZXhwaXJlcz1oLmV4cGlyZXMudG9VVENTdHJpbmcoKSk7ZT1lbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJSgyWzM0NkJdfDVFfDYwfDdDKS9nLGRlY29kZVVSSUNvbXBvbmVudCkucmVwbGFjZSgvWygpXS9nLGVzY2FwZSk7dmFyIGw9IiIsaztmb3IoayBpbiBoKWhba10mJihsKz0iOyAiK2ssITAhPT1oW2tdJiYobCs9Ij0iK2hba10uc3BsaXQoIjsiKVswXSkpO3JldHVybiBkb2N1bWVudC5jb29raWU9ZSsiPSIrYi53cml0ZShkLGUpK2x9fXJldHVybiBPYmplY3QuY3JlYXRlKHtzZXQ6ZyxnZXQ6ZnVuY3Rpb24oZSl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZG9jdW1lbnQmJighYXJndW1lbnRzLmxlbmd0aHx8ZSkpe2Zvcih2YXIgZD1kb2N1bWVudC5jb29raWU/ZG9jdW1lbnQuY29va2llLnNwbGl0KCI7ICIpOgpbXSxoPXt9LGw9MDtsPGQubGVuZ3RoO2wrKyl7dmFyIGs9ZFtsXS5zcGxpdCgiPSIpLHA9ay5zbGljZSgxKS5qb2luKCI9Iik7dHJ5e3ZhciBuPWRlY29kZVVSSUNvbXBvbmVudChrWzBdKTtoW25dPWIucmVhZChwLG4pO2lmKGU9PT1uKWJyZWFrfWNhdGNoKHEpe319cmV0dXJuIGU/aFtlXTpofX0scmVtb3ZlOmZ1bmN0aW9uKGUsZCl7ZyhlLCIiLGEoe30sZCx7ZXhwaXJlczotMX0pKX0sd2l0aEF0dHJpYnV0ZXM6ZnVuY3Rpb24oZSl7cmV0dXJuIGYodGhpcy5jb252ZXJ0ZXIsYSh7fSx0aGlzLmF0dHJpYnV0ZXMsZSkpfSx3aXRoQ29udmVydGVyOmZ1bmN0aW9uKGUpe3JldHVybiBmKGEoe30sdGhpcy5jb252ZXJ0ZXIsZSksdGhpcy5hdHRyaWJ1dGVzKX19LHthdHRyaWJ1dGVzOnt2YWx1ZTpPYmplY3QuZnJlZXplKGMpfSxjb252ZXJ0ZXI6e3ZhbHVlOk9iamVjdC5mcmVlemUoYil9fSl9cmV0dXJuIGYoe3JlYWQ6ZnVuY3Rpb24oYil7JyInPT09YlswXSYmKGI9Yi5zbGljZSgxLC0xKSk7CnJldHVybiBiLnJlcGxhY2UoLyglW1xkQS1GXXsyfSkrL2dpLGRlY29kZVVSSUNvbXBvbmVudCl9LHdyaXRlOmZ1bmN0aW9uKGIpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoYikucmVwbGFjZSgvJSgyWzM0NkJGXXwzW0FDLUZdfDQwfDVbQkRFXXw2MHw3W0JDRF0pL2csZGVjb2RlVVJJQ29tcG9uZW50KX19LHtwYXRoOiIvIn0pfSk7QWlDb29raWVzPUNvb2tpZXMubm9Db25mbGljdCgpO2Z1bmN0aW9uIG0oYSl7aWYobnVsbD09YSlyZXR1cm4gYTsnIic9PT1hLmNoYXJBdCgwKSYmKGE9YS5zbGljZSgxLC0xKSk7dHJ5e2E9SlNPTi5wYXJzZShhKX1jYXRjaChmKXt9cmV0dXJuIGF9YWlfY2hlY2tfYmxvY2s9ZnVuY3Rpb24oYSl7dmFyIGY9InVuZGVmaW5lZCIhPT10eXBlb2YgYWlfZGVidWdnaW5nO2lmKG51bGw9PWEpcmV0dXJuITA7dmFyIGI9bShBaUNvb2tpZXMuZ2V0KCJhaUJMT0NLUyIpKTthaV9kZWJ1Z19jb29raWVfc3RhdHVzPSIiO251bGw9PWImJihiPXt9KTsidW5kZWZpbmVkIiE9PQp0eXBlb2YgYWlfZGVsYXlfc2hvd2luZ19wYWdldmlld3MmJihiLmhhc093blByb3BlcnR5KGEpfHwoYlthXT17fSksYlthXS5oYXNPd25Qcm9wZXJ0eSgiZCIpfHwoYlthXS5kPWFpX2RlbGF5X3Nob3dpbmdfcGFnZXZpZXdzLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSwiTk8gQ09PS0lFIERBVEEgZCwgZGVsYXllZCBmb3IiLGFpX2RlbGF5X3Nob3dpbmdfcGFnZXZpZXdzLCJwYWdldmlld3MiKSkpO2lmKGIuaGFzT3duUHJvcGVydHkoYSkpe2Zvcih2YXIgYyBpbiBiW2FdKXtpZigieCI9PWMpe3ZhciBnPSIiLGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbltkYXRhLWFpLWJsb2NrPSInK2ErJyJdJylbMF07ImFpSGFzaCJpbiBlLmRhdGFzZXQmJihnPWUuZGF0YXNldC5haUhhc2gpO2U9IiI7YlthXS5oYXNPd25Qcm9wZXJ0eSgiaCIpJiYoZT1iW2FdLmgpO2YmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSwieCBjb29raWUgaGFzaCIsZSwiY29kZSBoYXNoIiwKZyk7dmFyIGQ9bmV3IERhdGU7ZD1iW2FdW2NdLU1hdGgucm91bmQoZC5nZXRUaW1lKCkvMUUzKTtpZigwPGQmJmU9PWcpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Yj0iY2xvc2VkIGZvciAiK2QrIiBzID0gIitNYXRoLnJvdW5kKDFFNCpkLzM2MDAvMjQpLzFFNCsiIGRheXMiLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSxiKSxmJiZjb25zb2xlLmxvZygiIiksITE7ZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLCJyZW1vdmluZyB4Iik7YWlfc2V0X2Nvb2tpZShhLCJ4IiwiIik7YlthXS5oYXNPd25Qcm9wZXJ0eSgiaSIpfHxiW2FdLmhhc093blByb3BlcnR5KCJjIil8fGFpX3NldF9jb29raWUoYSwiaCIsIiIpfWVsc2UgaWYoImQiPT1jKXtpZigwIT1iW2FdW2NdKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWI9ImRlbGF5ZWQgZm9yICIrYlthXVtjXSsiIHBhZ2V2aWV3cyIsZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLApiKSxmJiZjb25zb2xlLmxvZygiIiksITF9ZWxzZSBpZigiaSI9PWMpe2c9IiI7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdzcGFuW2RhdGEtYWktYmxvY2s9IicrYSsnIl0nKVswXTsiYWlIYXNoImluIGUuZGF0YXNldCYmKGc9ZS5kYXRhc2V0LmFpSGFzaCk7ZT0iIjtiW2FdLmhhc093blByb3BlcnR5KCJoIikmJihlPWJbYV0uaCk7ZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLCJpIGNvb2tpZSBoYXNoIixlLCJjb2RlIGhhc2giLGcpO2lmKDA9PWJbYV1bY10mJmU9PWcpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Yj0ibWF4IGltcHJlc3Npb25zIHJlYWNoZWQiLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSxiKSxmJiZjb25zb2xlLmxvZygiIiksITE7aWYoMD5iW2FdW2NdJiZlPT1nKXtkPW5ldyBEYXRlO2Q9LWJbYV1bY10tTWF0aC5yb3VuZChkLmdldFRpbWUoKS8xRTMpO2lmKDA8ZClyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz0KYj0ibWF4IGltcC4gcmVhY2hlZCAoIitNYXRoLnJvdW5kKDFFNCpkLzI0LzM2MDApLzFFNCsiIGRheXMgPSAiK2QrIiBzKSIsZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLGIpLGYmJmNvbnNvbGUubG9nKCIiKSwhMTtmJiZjb25zb2xlLmxvZygiQUkgQ0hFQ0sgYmxvY2siLGEsInJlbW92aW5nIGkiKTthaV9zZXRfY29va2llKGEsImkiLCIiKTtiW2FdLmhhc093blByb3BlcnR5KCJjIil8fGJbYV0uaGFzT3duUHJvcGVydHkoIngiKXx8KGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSwiY29va2llIGggcmVtb3ZlZCIpLGFpX3NldF9jb29raWUoYSwiaCIsIiIpKX19aWYoImlwdCI9PWMmJjA9PWJbYV1bY10mJihkPW5ldyBEYXRlLGc9TWF0aC5yb3VuZChkLmdldFRpbWUoKS8xRTMpLGQ9YlthXS5pdC1nLDA8ZCkpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Yj0ibWF4IGltcC4gcGVyIHRpbWUgcmVhY2hlZCAoIitNYXRoLnJvdW5kKDFFNCpkLzI0LwozNjAwKS8xRTQrIiBkYXlzID0gIitkKyIgcykiLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSxiKSxmJiZjb25zb2xlLmxvZygiIiksITE7aWYoImMiPT1jKXtnPSIiO2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnc3BhbltkYXRhLWFpLWJsb2NrPSInK2ErJyJdJylbMF07ImFpSGFzaCJpbiBlLmRhdGFzZXQmJihnPWUuZGF0YXNldC5haUhhc2gpO2U9IiI7YlthXS5oYXNPd25Qcm9wZXJ0eSgiaCIpJiYoZT1iW2FdLmgpO2YmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSwiYyBjb29raWUgaGFzaCIsZSwiY29kZSBoYXNoIixnKTtpZigwPT1iW2FdW2NdJiZlPT1nKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWI9Im1heCBjbGlja3MgcmVhY2hlZCIsZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLGIpLGYmJmNvbnNvbGUubG9nKCIiKSwhMTtpZigwPmJbYV1bY10mJmU9PWcpe2Q9bmV3IERhdGU7ZD0tYlthXVtjXS1NYXRoLnJvdW5kKGQuZ2V0VGltZSgpLwoxRTMpO2lmKDA8ZClyZXR1cm4gYWlfZGVidWdfY29va2llX3N0YXR1cz1iPSJtYXggY2xpY2tzIHJlYWNoZWQgKCIrTWF0aC5yb3VuZCgxRTQqZC8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitkKyIgcykiLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSxiKSxmJiZjb25zb2xlLmxvZygiIiksITE7ZiYmY29uc29sZS5sb2coIkFJIENIRUNLIGJsb2NrIixhLCJyZW1vdmluZyBjIik7YWlfc2V0X2Nvb2tpZShhLCJjIiwiIik7YlthXS5oYXNPd25Qcm9wZXJ0eSgiaSIpfHxiW2FdLmhhc093blByb3BlcnR5KCJ4Iil8fChmJiZjb25zb2xlLmxvZygiQUkgQ0hFQ0sgYmxvY2siLGEsImNvb2tpZSBoIHJlbW92ZWQiKSxhaV9zZXRfY29va2llKGEsImgiLCIiKSl9fWlmKCJjcHQiPT1jJiYwPT1iW2FdW2NdJiYoZD1uZXcgRGF0ZSxnPU1hdGgucm91bmQoZC5nZXRUaW1lKCkvMUUzKSxkPWJbYV0uY3QtZywwPGQpKXJldHVybiBhaV9kZWJ1Z19jb29raWVfc3RhdHVzPWI9Im1heCBjbGlja3MgcGVyIHRpbWUgcmVhY2hlZCAoIisKTWF0aC5yb3VuZCgxRTQqZC8yNC8zNjAwKS8xRTQrIiBkYXlzID0gIitkKyIgcykiLGYmJmNvbnNvbGUubG9nKCJBSSBDSEVDSyBibG9jayIsYSxiKSxmJiZjb25zb2xlLmxvZygiIiksITF9aWYoYi5oYXNPd25Qcm9wZXJ0eSgiRyIpJiZiLkcuaGFzT3duUHJvcGVydHkoImNwdCIpJiYwPT1iLkcuY3B0JiYoZD1uZXcgRGF0ZSxnPU1hdGgucm91bmQoZC5nZXRUaW1lKCkvMUUzKSxkPWIuRy5jdC1nLDA8ZCkpcmV0dXJuIGFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Yj0ibWF4IGdsb2JhbCBjbGlja3MgcGVyIHRpbWUgcmVhY2hlZCAoIitNYXRoLnJvdW5kKDFFNCpkLzI0LzM2MDApLzFFNCsiIGRheXMgPSAiK2QrIiBzKSIsZiYmY29uc29sZS5sb2coIkFJIENIRUNLIEdMT0JBTCIsYiksZiYmY29uc29sZS5sb2coIiIpLCExfWFpX2RlYnVnX2Nvb2tpZV9zdGF0dXM9Ik9LIjtmJiZjb25zb2xlLmxvZygiQUkgQ0hFQ0sgYmxvY2siLGEsIk9LIik7ZiYmY29uc29sZS5sb2coIiIpO3JldHVybiEwfTsKYWlfY2hlY2tfYW5kX2luc2VydF9ibG9jaz1mdW5jdGlvbihhLGYpe3ZhciBiPSJ1bmRlZmluZWQiIT09dHlwZW9mIGFpX2RlYnVnZ2luZztpZihudWxsPT1hKXJldHVybiEwO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZik7aWYoYy5sZW5ndGgpe2M9Y1swXTt2YXIgZz1jLmNsb3Nlc3QoIi4iK2FpX2Jsb2NrX2NsYXNzX2RlZiksZT1haV9jaGVja19ibG9jayhhKTshZSYmMCE9cGFyc2VJbnQoYy5nZXRBdHRyaWJ1dGUoImxpbWl0cy1mYWxsYmFjayIpKSYmYy5oYXNBdHRyaWJ1dGUoImRhdGEtZmFsbGJhY2stY29kZSIpJiYoYiYmY29uc29sZS5sb2coIkFJIENIRUNLIEZBSUxFRCwgSU5TRVJUSU5HIEZBTExCQUNLIEJMT0NLIixjLmdldEF0dHJpYnV0ZSgibGltaXRzLWZhbGxiYWNrIikpLGMuc2V0QXR0cmlidXRlKCJkYXRhLWNvZGUiLGMuZ2V0QXR0cmlidXRlKCJkYXRhLWZhbGxiYWNrLWNvZGUiKSksbnVsbCE9ZyYmZy5oYXNBdHRyaWJ1dGUoImRhdGEtYWkiKSYmCmMuaGFzQXR0cmlidXRlKCJmYWxsYmFjay10cmFja2luZyIpJiZjLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSYmZy5zZXRBdHRyaWJ1dGUoImRhdGEtYWktIitjLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSxjLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSksZT0hMCk7Yy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtc2VsZWN0b3IiKTtlPyhhaV9pbnNlcnRfY29kZShjKSxnJiYoYj1nLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1kZWJ1Zy1ibG9jayIpLGIubGVuZ3RoJiYoZy5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrIiksZy5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWlwIiksZy5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrLWZpbHRlciIpLGcuc3R5bGUudmlzaWJpbGl0eT0iIixnLmNsYXNzTGlzdC5jb250YWlucygiYWktcmVtb3ZlLXBvc2l0aW9uIikmJihnLnN0eWxlLnBvc2l0aW9uPSIiKSkpKTooYj1jLmNsb3Nlc3QoImRpdltkYXRhLWFpXSIpLApudWxsIT1iJiYidW5kZWZpbmVkIiE9dHlwZW9mIGIuZ2V0QXR0cmlidXRlKCJkYXRhLWFpIikmJihlPUpTT04ucGFyc2UoYjY0ZChiLmdldEF0dHJpYnV0ZSgiZGF0YS1haSIpKSksInVuZGVmaW5lZCIhPT10eXBlb2YgZSYmZS5jb25zdHJ1Y3Rvcj09PUFycmF5JiYoZVsxXT0iIixiLnNldEF0dHJpYnV0ZSgiZGF0YS1haSIsYjY0ZShKU09OLnN0cmluZ2lmeShlKSkpKSksZyYmKGI9Zy5xdWVyeVNlbGVjdG9yQWxsKCIuYWktZGVidWctYmxvY2siKSxiLmxlbmd0aCYmKGcuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jayIpLGcuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1pcCIpLGcuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1maWx0ZXIiKSxnLnN0eWxlLnZpc2liaWxpdHk9IiIsZy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYoZy5zdHlsZS5wb3NpdGlvbj0iIikpKSk7Yy5jbGFzc0xpc3QucmVtb3ZlKGYpfWM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLiIrCmYrIi1kYmciKTtnPTA7Zm9yKGI9Yy5sZW5ndGg7ZzxiO2crKyllPWNbZ10sZS5xdWVyeVNlbGVjdG9yKCIuYWktc3RhdHVzIikudGV4dENvbnRlbnQ9YWlfZGVidWdfY29va2llX3N0YXR1cyxlLnF1ZXJ5U2VsZWN0b3IoIi5haS1jb29raWUtZGF0YSIpLnRleHRDb250ZW50PWFpX2dldF9jb29raWVfdGV4dChhKSxlLmNsYXNzTGlzdC5yZW1vdmUoZisiLWRiZyIpfTthaV9sb2FkX2Nvb2tpZT1mdW5jdGlvbigpe3ZhciBhPSJ1bmRlZmluZWQiIT09dHlwZW9mIGFpX2RlYnVnZ2luZyxmPW0oQWlDb29raWVzLmdldCgiYWlCTE9DS1MiKSk7bnVsbD09ZiYmKGY9e30sYSYmY29uc29sZS5sb2coIkFJIENPT0tJRSBOT1QgUFJFU0VOVCIpKTthJiZjb25zb2xlLmxvZygiQUkgQ09PS0lFIExPQUQiLGYpO3JldHVybiBmfTthaV9zZXRfY29va2llPWZ1bmN0aW9uKGEsZixiKXt2YXIgYz0idW5kZWZpbmVkIiE9PXR5cGVvZiBhaV9kZWJ1Z2dpbmc7YyYmY29uc29sZS5sb2coIkFJIENPT0tJRSBTRVQgYmxvY2s6IiwKYSwicHJvcGVydHk6IixmLCJ2YWx1ZToiLGIpO3ZhciBnPWFpX2xvYWRfY29va2llKCk7aWYoIiI9PT1iKXtpZihnLmhhc093blByb3BlcnR5KGEpKXtkZWxldGUgZ1thXVtmXTthOntmPWdbYV07Zm9yKGUgaW4gZilpZihmLmhhc093blByb3BlcnR5KGUpKXt2YXIgZT0hMTticmVhayBhfWU9ITB9ZSYmZGVsZXRlIGdbYV19fWVsc2UgZy5oYXNPd25Qcm9wZXJ0eShhKXx8KGdbYV09e30pLGdbYV1bZl09YjswPT09T2JqZWN0LmtleXMoZykubGVuZ3RoJiZnLmNvbnN0cnVjdG9yPT09T2JqZWN0PyhBaUNvb2tpZXMucmVtb3ZlKCJhaUJMT0NLUyIpLGMmJmNvbnNvbGUubG9nKCJBSSBDT09LSUUgUkVNT1ZFRCIpKTpBaUNvb2tpZXMuc2V0KCJhaUJMT0NLUyIsSlNPTi5zdHJpbmdpZnkoZykse2V4cGlyZXM6MzY1LHBhdGg6Ii8ifSk7aWYoYylpZihhPW0oQWlDb29raWVzLmdldCgiYWlCTE9DS1MiKSksInVuZGVmaW5lZCIhPXR5cGVvZiBhKXtjb25zb2xlLmxvZygiQUkgQ09PS0lFIE5FVyIsCmEpO2NvbnNvbGUubG9nKCJBSSBDT09LSUUgREFUQToiKTtmb3IodmFyIGQgaW4gYSl7Zm9yKHZhciBoIGluIGFbZF0pIngiPT1oPyhjPW5ldyBEYXRlLGM9YVtkXVtoXS1NYXRoLnJvdW5kKGMuZ2V0VGltZSgpLzFFMyksY29uc29sZS5sb2coIiAgQkxPQ0siLGQsImNsb3NlZCBmb3IiLGMsInMgPSAiLE1hdGgucm91bmQoMUU0KmMvMzYwMC8yNCkvMUU0LCJkYXlzIikpOiJkIj09aD9jb25zb2xlLmxvZygiICBCTE9DSyIsZCwiZGVsYXllZCBmb3IiLGFbZF1baF0sInBhZ2V2aWV3cyIpOiJlIj09aD9jb25zb2xlLmxvZygiICBCTE9DSyIsZCwic2hvdyBldmVyeSIsYVtkXVtoXSwicGFnZXZpZXdzIik6ImkiPT1oPyhlPWFbZF1baF0sMDw9ZT9jb25zb2xlLmxvZygiICBCTE9DSyIsZCxhW2RdW2hdLCJpbXByZXNzaW9ucyB1bnRpbCBsaW1pdCIpOihjPW5ldyBEYXRlLGM9LWUtTWF0aC5yb3VuZChjLmdldFRpbWUoKS8xRTMpLGNvbnNvbGUubG9nKCIgIEJMT0NLIixkLCJtYXggaW1wcmVzc2lvbnMsIGNsb3NlZCBmb3IiLApjLCJzID0iLE1hdGgucm91bmQoMUU0KmMvMzYwMC8yNCkvMUU0LCJkYXlzIikpKToiaXB0Ij09aD9jb25zb2xlLmxvZygiICBCTE9DSyIsZCxhW2RdW2hdLCJpbXByZXNzaW9ucyB1bnRpbCBsaW1pdCBwZXIgdGltZSBwZXJpb2QiKToiaXQiPT1oPyhjPW5ldyBEYXRlLGM9YVtkXVtoXS1NYXRoLnJvdW5kKGMuZ2V0VGltZSgpLzFFMyksY29uc29sZS5sb2coIiAgQkxPQ0siLGQsImltcHJlc3Npb25zIGxpbWl0IGV4cGlyYXRpb24gaW4iLGMsInMgPSIsTWF0aC5yb3VuZCgxRTQqYy8zNjAwLzI0KS8xRTQsImRheXMiKSk6ImMiPT1oPyhlPWFbZF1baF0sMDw9ZT9jb25zb2xlLmxvZygiICBCTE9DSyIsZCxlLCJjbGlja3MgdW50aWwgbGltaXQiKTooYz1uZXcgRGF0ZSxjPS1lLU1hdGgucm91bmQoYy5nZXRUaW1lKCkvMUUzKSxjb25zb2xlLmxvZygiICBCTE9DSyIsZCwibWF4IGNsaWNrcywgY2xvc2VkIGZvciIsYywicyA9IixNYXRoLnJvdW5kKDFFNCpjLzM2MDAvMjQpLzFFNCwiZGF5cyIpKSk6CiJjcHQiPT1oP2NvbnNvbGUubG9nKCIgIEJMT0NLIixkLGFbZF1baF0sImNsaWNrcyB1bnRpbCBsaW1pdCBwZXIgdGltZSBwZXJpb2QiKToiY3QiPT1oPyhjPW5ldyBEYXRlLGM9YVtkXVtoXS1NYXRoLnJvdW5kKGMuZ2V0VGltZSgpLzFFMyksY29uc29sZS5sb2coIiAgQkxPQ0siLGQsImNsaWNrcyBsaW1pdCBleHBpcmF0aW9uIGluICIsYywicyA9IixNYXRoLnJvdW5kKDFFNCpjLzM2MDAvMjQpLzFFNCwiZGF5cyIpKToiaCI9PWg/Y29uc29sZS5sb2coIiAgQkxPQ0siLGQsImhhc2giLGFbZF1baF0pOmNvbnNvbGUubG9nKCIgICAgICA/OiIsZCwiOiIsaCxhW2RdW2hdKTtjb25zb2xlLmxvZygiIil9fWVsc2UgY29uc29sZS5sb2coIkFJIENPT0tJRSBOT1QgUFJFU0VOVCIpO3JldHVybiBnfTthaV9nZXRfY29va2llX3RleHQ9ZnVuY3Rpb24oYSl7dmFyIGY9bShBaUNvb2tpZXMuZ2V0KCJhaUJMT0NLUyIpKTtudWxsPT1mJiYoZj17fSk7dmFyIGI9IiI7Zi5oYXNPd25Qcm9wZXJ0eSgiRyIpJiYKKGI9IkdbIitKU09OLnN0cmluZ2lmeShmLkcpLnJlcGxhY2UoLyIvZywiIikucmVwbGFjZSgieyIsIiIpLnJlcGxhY2UoIn0iLCIiKSsiXSAiKTt2YXIgYz0iIjtmLmhhc093blByb3BlcnR5KGEpJiYoYz1KU09OLnN0cmluZ2lmeShmW2FdKS5yZXBsYWNlKC8iL2csIiIpLnJlcGxhY2UoInsiLCIiKS5yZXBsYWNlKCJ9IiwiIikpO3JldHVybiBiK2N9fTsKdmFyIGFpX2luc2VydGlvbl9qcz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2luc2VydGlvbl9qcyl7YWlfaW5zZXJ0PWZ1bmN0aW9uKGEsaCxsKXtpZigtMSE9aC5pbmRleE9mKCI6ZXEoIikpaWYod2luZG93LmpRdWVyeSYmd2luZG93LmpRdWVyeS5mbil2YXIgbj1qUXVlcnkoaCk7ZWxzZXtjb25zb2xlLmVycm9yKCJBSSBJTlNFUlQgVVNJTkcgalF1ZXJ5IFFVRVJJRVM6IixoLCItIGpRdWVyeSBub3QgZm91bmQiKTtyZXR1cm59ZWxzZSBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoaCk7Zm9yKHZhciB1PTAseT1uLmxlbmd0aDt1PHk7dSsrKXt2YXIgZD1uW3VdO3NlbGVjdG9yX3N0cmluZz1kLmhhc0F0dHJpYnV0ZSgiaWQiKT8iIyIrZC5nZXRBdHRyaWJ1dGUoImlkIik6ZC5oYXNBdHRyaWJ1dGUoImNsYXNzIik/Ii4iK2QuZ2V0QXR0cmlidXRlKCJjbGFzcyIpLnJlcGxhY2UoUmVnRXhwKCIgIiwiZyIpLCIuIik6IiI7dmFyIHc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dy5pbm5lckhUTUw9bDsKdmFyIG09dy5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJhaS1zZWxlY3Rvci1jb3VudGVyIilbMF07bnVsbCE9bSYmKG0uaW5uZXJUZXh0PXUrMSk7bT13LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFpLWRlYnVnLW5hbWUgYWktbWFpbiIpWzBdO2lmKG51bGwhPW0pe3ZhciByPWEudG9VcHBlckNhc2UoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2Zyb250JiYoImJlZm9yZSI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYmVmb3JlOiJhZnRlciI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYWZ0ZXI6InByZXBlbmQiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX3ByZXBlbmQ6ImFwcGVuZCI9PWE/cj1haV9mcm9udC5pbnNlcnRpb25fYXBwZW5kOiJyZXBsYWNlLWNvbnRlbnQiPT1hP3I9YWlfZnJvbnQuaW5zZXJ0aW9uX3JlcGxhY2VfY29udGVudDoicmVwbGFjZS1lbGVtZW50Ij09YSYmKHI9YWlfZnJvbnQuaW5zZXJ0aW9uX3JlcGxhY2VfZWxlbWVudCkpOy0xPT1zZWxlY3Rvcl9zdHJpbmcuaW5kZXhPZigiLmFpLXZpZXdwb3J0cyIpJiYKKG0uaW5uZXJUZXh0PXIrIiAiK2grIiAoIitkLnRhZ05hbWUudG9Mb3dlckNhc2UoKStzZWxlY3Rvcl9zdHJpbmcrIikiKX1tPWRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7dHJ5e3ZhciB2PW0uY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHcuaW5uZXJIVE1MKX1jYXRjaCh0KXt9ImJlZm9yZSI9PWE/ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh2LGQpOiJhZnRlciI9PWE/ZC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh2LGQubmV4dFNpYmxpbmcpOiJwcmVwZW5kIj09YT9kLmluc2VydEJlZm9yZSh2LGQuZmlyc3RDaGlsZCk6ImFwcGVuZCI9PWE/ZC5pbnNlcnRCZWZvcmUodixudWxsKToicmVwbGFjZS1jb250ZW50Ij09YT8oZC5pbm5lckhUTUw9IiIsZC5pbnNlcnRCZWZvcmUodixudWxsKSk6InJlcGxhY2UtZWxlbWVudCI9PWEmJihkLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHYsZCksZC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGQpKTt6KCl9fTthaV9pbnNlcnRfY29kZT1mdW5jdGlvbihhKXtmdW5jdGlvbiBoKG0sCnIpe3JldHVybiBudWxsPT1tPyExOm0uY2xhc3NMaXN0P20uY2xhc3NMaXN0LmNvbnRhaW5zKHIpOi0xPCgiICIrbS5jbGFzc05hbWUrIiAiKS5pbmRleE9mKCIgIityKyIgIil9ZnVuY3Rpb24gbChtLHIpe251bGwhPW0mJihtLmNsYXNzTGlzdD9tLmNsYXNzTGlzdC5hZGQocik6bS5jbGFzc05hbWUrPSIgIityKX1mdW5jdGlvbiBuKG0scil7bnVsbCE9bSYmKG0uY2xhc3NMaXN0P20uY2xhc3NMaXN0LnJlbW92ZShyKTptLmNsYXNzTmFtZT1tLmNsYXNzTmFtZS5yZXBsYWNlKG5ldyBSZWdFeHAoIihefFxiKSIrci5zcGxpdCgiICIpLmpvaW4oInwiKSsiKFxifCQpIiwiZ2kiKSwiICIpKX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEpe3ZhciB1PSExO2lmKGgoYSwibm8tdmlzaWJpbGl0eS1jaGVjayIpfHxhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl7dT1hLmdldEF0dHJpYnV0ZSgiZGF0YS1jb2RlIik7dmFyIHk9YS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5zZXJ0aW9uLXBvc2l0aW9uIiksCmQ9YS5nZXRBdHRyaWJ1dGUoImRhdGEtc2VsZWN0b3IiKTtpZihudWxsIT11KWlmKG51bGwhPXkmJm51bGwhPWQpe2lmKC0xIT1kLmluZGV4T2YoIjplcSgiKT93aW5kb3cualF1ZXJ5JiZ3aW5kb3cualF1ZXJ5LmZuJiZqUXVlcnkoZCkubGVuZ3RoOmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoZCkubGVuZ3RoKWFpX2luc2VydCh5LGQsYjY0ZCh1KSksbihhLCJhaS12aWV3cG9ydHMiKX1lbHNle3k9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTt0cnl7dmFyIHc9eS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoYjY0ZCh1KSl9Y2F0Y2gobSl7fWEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodyxhLm5leHRTaWJsaW5nKTtuKGEsImFpLXZpZXdwb3J0cyIpfXU9ITB9ZWxzZSB3PWEucHJldmlvdXNFbGVtZW50U2libGluZyxoKHcsImFpLWRlYnVnLWJhciIpJiZoKHcsImFpLWRlYnVnLXNjcmlwdCIpJiYobih3LCJhaS1kZWJ1Zy1zY3JpcHQiKSxsKHcsImFpLWRlYnVnLXZpZXdwb3J0LWludmlzaWJsZSIpKSwKbihhLCJhaS12aWV3cG9ydHMiKTtyZXR1cm4gdX19O2FpX2luc2VydF9saXN0X2NvZGU9ZnVuY3Rpb24oYSl7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGgpe3ZhciBsPWFpX2luc2VydF9jb2RlKGgpLG49aC5jbG9zZXN0KCJkaXYuIithaV9ibG9ja19jbGFzc19kZWYpO2lmKG4pe2x8fG4ucmVtb3ZlQXR0cmlidXRlKCJkYXRhLWFpIik7dmFyIHU9bi5xdWVyeVNlbGVjdG9yQWxsKCIuYWktZGVidWctYmxvY2siKTtuJiZ1Lmxlbmd0aCYmKG4uY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jayIpLG4uY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1pcCIpLG4uY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1ibG9jay1maWx0ZXIiKSxuLnN0eWxlLnZpc2liaWxpdHk9IiIsbi5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYobi5zdHlsZS5wb3NpdGlvbj0iIikpfWguY2xhc3NMaXN0LnJlbW92ZShhKTsKbCYmeigpfX07YWlfaW5zZXJ0X3ZpZXdwb3J0X2NvZGU9ZnVuY3Rpb24oYSl7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGgpe3ZhciBsPWFpX2luc2VydF9jb2RlKGgpO2guY2xhc3NMaXN0LnJlbW92ZShhKTtsJiYoYT1oLmNsb3Nlc3QoImRpdi4iK2FpX2Jsb2NrX2NsYXNzX2RlZiksbnVsbCE9YSYmKGw9aC5nZXRBdHRyaWJ1dGUoInN0eWxlIiksbnVsbCE9bCYmYS5zZXRBdHRyaWJ1dGUoInN0eWxlIixhLmdldEF0dHJpYnV0ZSgic3R5bGUiKSsiICIrbCkpKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aC5yZW1vdmVBdHRyaWJ1dGUoInN0eWxlIil9LDIpO3ooKX19O2FpX2luc2VydF9hZHNlbnNlX2ZhbGxiYWNrX2NvZGVzPWZ1bmN0aW9uKGEpe2Euc3R5bGUuZGlzcGxheT0ibm9uZSI7dmFyIGg9YS5jbG9zZXN0KCIuYWktZmFsbGJhY2stYWRzZW5zZSIpLGw9aC5uZXh0RWxlbWVudFNpYmxpbmc7bC5nZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIpPwphaV9pbnNlcnRfY29kZShsKSYmeigpOmwuc3R5bGUuZGlzcGxheT0iYmxvY2siO2guY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1lbXB0eS1jb2RlIikmJm51bGwhPWEuY2xvc2VzdCgiLiIrYWlfYmxvY2tfY2xhc3NfZGVmKSYmKGE9YS5jbG9zZXN0KCIuIithaV9ibG9ja19jbGFzc19kZWYpLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImNvZGUtYmxvY2stbGFiZWwiKSwwIT1hLmxlbmd0aCYmKGFbMF0uc3R5bGUuZGlzcGxheT0ibm9uZSIpKX07YWlfaW5zZXJ0X2NvZGVfYnlfY2xhc3M9ZnVuY3Rpb24oYSl7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShhKVswXTsidW5kZWZpbmVkIiE9dHlwZW9mIGgmJihhaV9pbnNlcnRfY29kZShoKSxoLmNsYXNzTGlzdC5yZW1vdmUoYSkpfTthaV9pbnNlcnRfY2xpZW50X2NvZGU9ZnVuY3Rpb24oYSxoKXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGEpWzBdO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbCl7dmFyIG49CmwuZ2V0QXR0cmlidXRlKCJkYXRhLWNvZGUiKTtudWxsIT1uJiZhaV9jaGVja19ibG9jaygpJiYobC5zZXRBdHRyaWJ1dGUoImRhdGEtY29kZSIsbi5zdWJzdHJpbmcoTWF0aC5mbG9vcihoLzE5KSkpLGFpX2luc2VydF9jb2RlX2J5X2NsYXNzKGEpLGwucmVtb3ZlKCkpfX07YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ZnVuY3Rpb24geigpe2FpX3Byb2Nlc3NfZWxlbWVudHNfYWN0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmU9ITE7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3Nfcm90YXRpb25zJiZhaV9wcm9jZXNzX3JvdGF0aW9ucygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2xpc3RzJiZhaV9wcm9jZXNzX2xpc3RzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzJiZhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcyYmCmFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2FkYl9wcm9jZXNzX2Jsb2NrcyYmYWlfYWRiX3Byb2Nlc3NfYmxvY2tzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9wcm9jZXNzX2ltcHJlc3Npb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyYmYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zKGRvY3VtZW50KTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc193YWl0X2Zvcl9pbnRlcmFjdGlvbiYmYWlfcHJvY2Vzc193YWl0X2Zvcl9pbnRlcmFjdGlvbigpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2RlbGF5ZWRfYmxvY2tzJiZhaV9wcm9jZXNzX2RlbGF5ZWRfYmxvY2tzKCl9LAo1KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMH1jb25zdCBCPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKTsobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxoKXtmb3IoY29uc3QgbCBvZiBhKSJhdHRyaWJ1dGVzIj09PWwudHlwZSYmImRhdGEtYWQtc3RhdHVzIj09bC5hdHRyaWJ1dGVOYW1lJiYidW5maWxsZWQiPT1sLnRhcmdldC5kYXRhc2V0LmFkU3RhdHVzJiZsLnRhcmdldC5jbG9zZXN0KCIuYWktZmFsbGJhY2stYWRzZW5zZSIpJiZhaV9pbnNlcnRfYWRzZW5zZV9mYWxsYmFja19jb2RlcyhsLnRhcmdldCl9KSkub2JzZXJ2ZShCLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMSxzdWJ0cmVlOiEwfSk7dmFyIEFycml2ZT1mdW5jdGlvbihhLGgsbCl7ZnVuY3Rpb24gbih0LGMsZSl7ZC5hZGRNZXRob2QoYyxlLHQudW5iaW5kRXZlbnQpO2QuYWRkTWV0aG9kKGMsZSx0LnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yT3JDYWxsYmFjayk7ZC5hZGRNZXRob2QoYywKZSx0LnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yQW5kQ2FsbGJhY2spfWZ1bmN0aW9uIHUodCl7dC5hcnJpdmU9ci5iaW5kRXZlbnQ7bihyLHQsInVuYmluZEFycml2ZSIpO3QubGVhdmU9di5iaW5kRXZlbnQ7bih2LHQsInVuYmluZExlYXZlIil9aWYoYS5NdXRhdGlvbk9ic2VydmVyJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBIVE1MRWxlbWVudCl7dmFyIHk9MCxkPWZ1bmN0aW9uKCl7dmFyIHQ9SFRNTEVsZW1lbnQucHJvdG90eXBlLm1hdGNoZXN8fEhUTUxFbGVtZW50LnByb3RvdHlwZS53ZWJraXRNYXRjaGVzU2VsZWN0b3J8fEhUTUxFbGVtZW50LnByb3RvdHlwZS5tb3pNYXRjaGVzU2VsZWN0b3J8fEhUTUxFbGVtZW50LnByb3RvdHlwZS5tc01hdGNoZXNTZWxlY3RvcjtyZXR1cm57bWF0Y2hlc1NlbGVjdG9yOmZ1bmN0aW9uKGMsZSl7cmV0dXJuIGMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCYmdC5jYWxsKGMsZSl9LGFkZE1ldGhvZDpmdW5jdGlvbihjLGUsZil7dmFyIGI9Y1tlXTtjW2VdPQpmdW5jdGlvbigpe2lmKGYubGVuZ3RoPT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiBmLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYilyZXR1cm4gYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fSxjYWxsQ2FsbGJhY2tzOmZ1bmN0aW9uKGMsZSl7ZSYmZS5vcHRpb25zLm9uY2VPbmx5JiYxPT1lLmZpcmVkRWxlbXMubGVuZ3RoJiYoYz1bY1swXV0pO2Zvcih2YXIgZj0wLGI7Yj1jW2ZdO2YrKyliJiZiLmNhbGxiYWNrJiZiLmNhbGxiYWNrLmNhbGwoYi5lbGVtLGIuZWxlbSk7ZSYmZS5vcHRpb25zLm9uY2VPbmx5JiYxPT1lLmZpcmVkRWxlbXMubGVuZ3RoJiZlLm1lLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yQW5kQ2FsbGJhY2suY2FsbChlLnRhcmdldCxlLnNlbGVjdG9yLGUuY2FsbGJhY2spfSxjaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseTpmdW5jdGlvbihjLGUsZixiKXtmb3IodmFyIGc9MCxrO2s9Y1tnXTtnKyspZihrLGUsYikmJmIucHVzaCh7Y2FsbGJhY2s6ZS5jYWxsYmFjaywKZWxlbTprfSksMDxrLmNoaWxkTm9kZXMubGVuZ3RoJiZkLmNoZWNrQ2hpbGROb2Rlc1JlY3Vyc2l2ZWx5KGsuY2hpbGROb2RlcyxlLGYsYil9LG1lcmdlQXJyYXlzOmZ1bmN0aW9uKGMsZSl7dmFyIGY9e30sYjtmb3IoYiBpbiBjKWMuaGFzT3duUHJvcGVydHkoYikmJihmW2JdPWNbYl0pO2ZvcihiIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShiKSYmKGZbYl09ZVtiXSk7cmV0dXJuIGZ9LHRvRWxlbWVudHNBcnJheTpmdW5jdGlvbihjKXsidW5kZWZpbmVkIj09PXR5cGVvZiBjfHwibnVtYmVyIj09PXR5cGVvZiBjLmxlbmd0aCYmYyE9PWF8fChjPVtjXSk7cmV0dXJuIGN9fX0oKSx3PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt0aGlzLl9ldmVudHNCdWNrZXQ9W107dGhpcy5fYmVmb3JlUmVtb3Zpbmc9dGhpcy5fYmVmb3JlQWRkaW5nPW51bGx9O3QucHJvdG90eXBlLmFkZEV2ZW50PWZ1bmN0aW9uKGMsZSxmLGIpe2M9e3RhcmdldDpjLHNlbGVjdG9yOmUsb3B0aW9uczpmLGNhbGxiYWNrOmIsCmZpcmVkRWxlbXM6W119O3RoaXMuX2JlZm9yZUFkZGluZyYmdGhpcy5fYmVmb3JlQWRkaW5nKGMpO3RoaXMuX2V2ZW50c0J1Y2tldC5wdXNoKGMpO3JldHVybiBjfTt0LnByb3RvdHlwZS5yZW1vdmVFdmVudD1mdW5jdGlvbihjKXtmb3IodmFyIGU9dGhpcy5fZXZlbnRzQnVja2V0Lmxlbmd0aC0xLGY7Zj10aGlzLl9ldmVudHNCdWNrZXRbZV07ZS0tKWMoZikmJih0aGlzLl9iZWZvcmVSZW1vdmluZyYmdGhpcy5fYmVmb3JlUmVtb3ZpbmcoZiksKGY9dGhpcy5fZXZlbnRzQnVja2V0LnNwbGljZShlLDEpKSYmZi5sZW5ndGgmJihmWzBdLmNhbGxiYWNrPW51bGwpKX07dC5wcm90b3R5cGUuYmVmb3JlQWRkaW5nPWZ1bmN0aW9uKGMpe3RoaXMuX2JlZm9yZUFkZGluZz1jfTt0LnByb3RvdHlwZS5iZWZvcmVSZW1vdmluZz1mdW5jdGlvbihjKXt0aGlzLl9iZWZvcmVSZW1vdmluZz1jfTtyZXR1cm4gdH0oKSxtPWZ1bmN0aW9uKHQsYyl7dmFyIGU9bmV3IHcsZj10aGlzLGI9e2ZpcmVPbkF0dHJpYnV0ZXNNb2RpZmljYXRpb246ITF9OwplLmJlZm9yZUFkZGluZyhmdW5jdGlvbihnKXt2YXIgaz1nLnRhcmdldDtpZihrPT09YS5kb2N1bWVudHx8az09PWEpaz1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaHRtbCIpWzBdO3ZhciBwPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKHgpe2MuY2FsbCh0aGlzLHgsZyl9KTt2YXIgcT10KGcub3B0aW9ucyk7cC5vYnNlcnZlKGsscSk7Zy5vYnNlcnZlcj1wO2cubWU9Zn0pO2UuYmVmb3JlUmVtb3ZpbmcoZnVuY3Rpb24oZyl7Zy5vYnNlcnZlci5kaXNjb25uZWN0KCl9KTt0aGlzLmJpbmRFdmVudD1mdW5jdGlvbihnLGsscCl7az1kLm1lcmdlQXJyYXlzKGIsayk7Zm9yKHZhciBxPWQudG9FbGVtZW50c0FycmF5KHRoaXMpLHg9MDt4PHEubGVuZ3RoO3grKyllLmFkZEV2ZW50KHFbeF0sZyxrLHApfTt0aGlzLnVuYmluZEV2ZW50PWZ1bmN0aW9uKCl7dmFyIGc9ZC50b0VsZW1lbnRzQXJyYXkodGhpcyk7ZS5yZW1vdmVFdmVudChmdW5jdGlvbihrKXtmb3IodmFyIHA9CjA7cDxnLmxlbmd0aDtwKyspaWYodGhpcz09PWx8fGsudGFyZ2V0PT09Z1twXSlyZXR1cm4hMDtyZXR1cm4hMX0pfTt0aGlzLnVuYmluZEV2ZW50V2l0aFNlbGVjdG9yT3JDYWxsYmFjaz1mdW5jdGlvbihnKXt2YXIgaz1kLnRvRWxlbWVudHNBcnJheSh0aGlzKTtlLnJlbW92ZUV2ZW50KCJmdW5jdGlvbiI9PT10eXBlb2YgZz9mdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGsubGVuZ3RoO3ErKylpZigodGhpcz09PWx8fHAudGFyZ2V0PT09a1txXSkmJnAuY2FsbGJhY2s9PT1nKXJldHVybiEwO3JldHVybiExfTpmdW5jdGlvbihwKXtmb3IodmFyIHE9MDtxPGsubGVuZ3RoO3ErKylpZigodGhpcz09PWx8fHAudGFyZ2V0PT09a1txXSkmJnAuc2VsZWN0b3I9PT1nKXJldHVybiEwO3JldHVybiExfSl9O3RoaXMudW5iaW5kRXZlbnRXaXRoU2VsZWN0b3JBbmRDYWxsYmFjaz1mdW5jdGlvbihnLGspe3ZhciBwPWQudG9FbGVtZW50c0FycmF5KHRoaXMpO2UucmVtb3ZlRXZlbnQoZnVuY3Rpb24ocSl7Zm9yKHZhciB4PQowO3g8cC5sZW5ndGg7eCsrKWlmKCh0aGlzPT09bHx8cS50YXJnZXQ9PT1wW3hdKSYmcS5zZWxlY3Rvcj09PWcmJnEuY2FsbGJhY2s9PT1rKXJldHVybiEwO3JldHVybiExfSl9O3JldHVybiB0aGlzfSxyPW5ldyBmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZixiLGcpe3JldHVybiBkLm1hdGNoZXNTZWxlY3RvcihmLGIuc2VsZWN0b3IpJiYoZi5faWQ9PT1sJiYoZi5faWQ9eSsrKSwtMT09Yi5maXJlZEVsZW1zLmluZGV4T2YoZi5faWQpKT8oYi5maXJlZEVsZW1zLnB1c2goZi5faWQpLCEwKTohMX12YXIgYz17ZmlyZU9uQXR0cmlidXRlc01vZGlmaWNhdGlvbjohMSxvbmNlT25seTohMSxleGlzdGluZzohMX07cj1uZXcgbShmdW5jdGlvbihmKXt2YXIgYj17YXR0cmlidXRlczohMSxjaGlsZExpc3Q6ITAsc3VidHJlZTohMH07Zi5maXJlT25BdHRyaWJ1dGVzTW9kaWZpY2F0aW9uJiYoYi5hdHRyaWJ1dGVzPSEwKTtyZXR1cm4gYn0sZnVuY3Rpb24oZixiKXtmLmZvckVhY2goZnVuY3Rpb24oZyl7dmFyIGs9CmcuYWRkZWROb2RlcyxwPWcudGFyZ2V0LHE9W107bnVsbCE9PWsmJjA8ay5sZW5ndGg/ZC5jaGVja0NoaWxkTm9kZXNSZWN1cnNpdmVseShrLGIsdCxxKToiYXR0cmlidXRlcyI9PT1nLnR5cGUmJnQocCxiLHEpJiZxLnB1c2goe2NhbGxiYWNrOmIuY2FsbGJhY2ssZWxlbTpwfSk7ZC5jYWxsQ2FsbGJhY2tzKHEsYil9KX0pO3ZhciBlPXIuYmluZEV2ZW50O3IuYmluZEV2ZW50PWZ1bmN0aW9uKGYsYixnKXsidW5kZWZpbmVkIj09PXR5cGVvZiBnPyhnPWIsYj1jKTpiPWQubWVyZ2VBcnJheXMoYyxiKTt2YXIgaz1kLnRvRWxlbWVudHNBcnJheSh0aGlzKTtpZihiLmV4aXN0aW5nKXtmb3IodmFyIHA9W10scT0wO3E8ay5sZW5ndGg7cSsrKWZvcih2YXIgeD1rW3FdLnF1ZXJ5U2VsZWN0b3JBbGwoZiksQT0wO0E8eC5sZW5ndGg7QSsrKXAucHVzaCh7Y2FsbGJhY2s6ZyxlbGVtOnhbQV19KTtpZihiLm9uY2VPbmx5JiZwLmxlbmd0aClyZXR1cm4gZy5jYWxsKHBbMF0uZWxlbSxwWzBdLmVsZW0pOwpzZXRUaW1lb3V0KGQuY2FsbENhbGxiYWNrcywxLHApfWUuY2FsbCh0aGlzLGYsYixnKX07cmV0dXJuIHJ9LHY9bmV3IGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChmLGIpe3JldHVybiBkLm1hdGNoZXNTZWxlY3RvcihmLGIuc2VsZWN0b3IpfXZhciBjPXt9O3Y9bmV3IG0oZnVuY3Rpb24oKXtyZXR1cm57Y2hpbGRMaXN0OiEwLHN1YnRyZWU6ITB9fSxmdW5jdGlvbihmLGIpe2YuZm9yRWFjaChmdW5jdGlvbihnKXtnPWcucmVtb3ZlZE5vZGVzO3ZhciBrPVtdO251bGwhPT1nJiYwPGcubGVuZ3RoJiZkLmNoZWNrQ2hpbGROb2Rlc1JlY3Vyc2l2ZWx5KGcsYix0LGspO2QuY2FsbENhbGxiYWNrcyhrLGIpfSl9KTt2YXIgZT12LmJpbmRFdmVudDt2LmJpbmRFdmVudD1mdW5jdGlvbihmLGIsZyl7InVuZGVmaW5lZCI9PT10eXBlb2YgZz8oZz1iLGI9Yyk6Yj1kLm1lcmdlQXJyYXlzKGMsYik7ZS5jYWxsKHRoaXMsZixiLGcpfTtyZXR1cm4gdn07aCYmdShoLmZuKTt1KEhUTUxFbGVtZW50LnByb3RvdHlwZSk7CnUoTm9kZUxpc3QucHJvdG90eXBlKTt1KEhUTUxDb2xsZWN0aW9uLnByb3RvdHlwZSk7dShIVE1MRG9jdW1lbnQucHJvdG90eXBlKTt1KFdpbmRvdy5wcm90b3R5cGUpO2g9e307bihyLGgsInVuYmluZEFsbEFycml2ZSIpO24odixoLCJ1bmJpbmRBbGxMZWF2ZSIpO3JldHVybiBofX0od2luZG93LCJ1bmRlZmluZWQiPT09dHlwZW9mIGpRdWVyeT9udWxsOmpRdWVyeSx2b2lkIDApfTsKdmFyIGFpX3JvdGF0aW9uX3RyaWdnZXJzPVtdLGFpX2Jsb2NrX2NsYXNzX2RlZj0iY29kZS1ibG9jayI7CmlmKCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfcm90YXRpb25fdHJpZ2dlcnMpe2FpX3Byb2Nlc3Nfcm90YXRpb249ZnVuY3Rpb24oYil7dmFyIGQ9Im51bWJlciI9PXR5cGVvZiBiLmxlbmd0aDt3aW5kb3cualF1ZXJ5JiZ3aW5kb3cualF1ZXJ5LmZuJiZiIGluc3RhbmNlb2YgalF1ZXJ5JiYoYj1kP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGIpOmJbMF0pO2lmKGQpe3ZhciBlPSExO2IuZm9yRWFjaCgoYyxoKT0+e2lmKGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS11bnByb2Nlc3NlZCIpfHxjLmNsYXNzTGlzdC5jb250YWlucygiYWktdGltZXIiKSllPSEwfSk7aWYoIWUpcmV0dXJuO2IuZm9yRWFjaCgoYyxoKT0+e2MuY2xhc3NMaXN0LnJlbW92ZSgiYWktdW5wcm9jZXNzZWQiKTtjLmNsYXNzTGlzdC5yZW1vdmUoImFpLXRpbWVyIil9KX1lbHNle2lmKCFiLmNsYXNzTGlzdC5jb250YWlucygiYWktdW5wcm9jZXNzZWQiKSYmIWIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS10aW1lciIpKXJldHVybjsKYi5jbGFzc0xpc3QucmVtb3ZlKCJhaS11bnByb2Nlc3NlZCIpO2IuY2xhc3NMaXN0LnJlbW92ZSgiYWktdGltZXIiKX12YXIgYT0hMTtpZihkP2JbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWluZm8iKTpiLmhhc0F0dHJpYnV0ZSgiZGF0YS1pbmZvIikpe3ZhciBmPSJkaXYuYWktcm90YXRlLmFpLSIrKGQ/SlNPTi5wYXJzZShhdG9iKGJbMF0uZGF0YXNldC5pbmZvKSk6SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5pbmZvKSkpWzBdO2FpX3JvdGF0aW9uX3RyaWdnZXJzLmluY2x1ZGVzKGYpJiYoYWlfcm90YXRpb25fdHJpZ2dlcnMuc3BsaWNlKGFpX3JvdGF0aW9uX3RyaWdnZXJzLmluZGV4T2YoZiksMSksYT0hMCl9aWYoZClmb3IoZD0wO2Q8Yi5sZW5ndGg7ZCsrKTA9PWQ/YWlfcHJvY2Vzc19zaW5nbGVfcm90YXRpb24oYltkXSwhMCk6YWlfcHJvY2Vzc19zaW5nbGVfcm90YXRpb24oYltkXSwhMSk7ZWxzZSBhaV9wcm9jZXNzX3NpbmdsZV9yb3RhdGlvbihiLCFhKX07YWlfcHJvY2Vzc19zaW5nbGVfcm90YXRpb249CmZ1bmN0aW9uKGIsZCl7dmFyIGU9W107QXJyYXkuZnJvbShiLmNoaWxkcmVuKS5mb3JFYWNoKChnLHApPT57Zy5tYXRjaGVzKCIuYWktcm90YXRlLW9wdGlvbiIpJiZlLnB1c2goZyl9KTtpZigwIT1lLmxlbmd0aCl7ZS5mb3JFYWNoKChnLHApPT57Zy5zdHlsZS5kaXNwbGF5PSJub25lIn0pO2lmKGIuaGFzQXR0cmlidXRlKCJkYXRhLW5leHQiKSl7az1wYXJzZUludChiLmdldEF0dHJpYnV0ZSgiZGF0YS1uZXh0IikpO3ZhciBhPWVba107aWYoYS5oYXNBdHRyaWJ1dGUoImRhdGEtY29kZSIpKXt2YXIgZj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLGM9ITA7dHJ5e3ZhciBoPWYuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KGI2NGQoYS5kYXRhc2V0LmNvZGUpKX1jYXRjaChnKXtjPSExfWMmJihhPWgpfTAhPWEucXVlcnlTZWxlY3RvckFsbCgic3BhbltkYXRhLWFpLWdyb3Vwc10iKS5sZW5ndGgmJjAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1yb3RhdGlvbi1ncm91cHMiKS5sZW5ndGgmJgpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QigpfSw1KX1lbHNlIGlmKGVbMF0uaGFzQXR0cmlidXRlKCJkYXRhLWdyb3VwIikpe3ZhciBrPS0xLHU9W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgic3BhbltkYXRhLWFpLWdyb3Vwc10iKS5mb3JFYWNoKChnLHApPT57KGcub2Zmc2V0V2lkdGh8fGcub2Zmc2V0SGVpZ2h0fHxnLmdldENsaWVudFJlY3RzKCkubGVuZ3RoKSYmdS5wdXNoKGcpfSk7MTw9dS5sZW5ndGgmJih0aW1lZF9ncm91cHM9W10sZ3JvdXBzPVtdLHUuZm9yRWFjaChmdW5jdGlvbihnLHApe2FjdGl2ZV9ncm91cHM9SlNPTi5wYXJzZShiNjRkKGcuZGF0YXNldC5haUdyb3VwcykpO3ZhciByPSExO2c9Zy5jbG9zZXN0KCIuYWktcm90YXRlIik7bnVsbCE9ZyYmZy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXRpbWVkLXJvdGF0aW9uIikmJihyPSEwKTthY3RpdmVfZ3JvdXBzLmZvckVhY2goZnVuY3Rpb24odCx2KXtncm91cHMucHVzaCh0KTtyJiZ0aW1lZF9ncm91cHMucHVzaCh0KX0pfSksCmdyb3Vwcy5mb3JFYWNoKGZ1bmN0aW9uKGcscCl7LTE9PWsmJmUuZm9yRWFjaCgocix0KT0+e3ZhciB2PWI2NGQoci5kYXRhc2V0Lmdyb3VwKTtvcHRpb25fZ3JvdXBfaXRlbXM9di5zcGxpdCgiLCIpO29wdGlvbl9ncm91cF9pdGVtcy5mb3JFYWNoKGZ1bmN0aW9uKEMsRSl7LTE9PWsmJkMudHJpbSgpPT1nJiYoaz10LHRpbWVkX2dyb3Vwcy5pbmNsdWRlcyh2KSYmYi5jbGFzc0xpc3QuYWRkKCJhaS10aW1lZC1yb3RhdGlvbiIpKX0pfSl9KSl9ZWxzZSBpZihiLmhhc0F0dHJpYnV0ZSgiZGF0YS1zaGFyZXMiKSlmb3IoZj1KU09OLnBhcnNlKGF0b2IoYi5kYXRhc2V0LnNoYXJlcykpLGE9TWF0aC5yb3VuZCgxMDAqTWF0aC5yYW5kb20oKSksYz0wO2M8Zi5sZW5ndGgmJihrPWMsMD5mW2NdfHwhKGE8PWZbY10pKTtjKyspO2Vsc2UgZj1iLmNsYXNzTGlzdC5jb250YWlucygiYWktdW5pcXVlIiksYT1uZXcgRGF0ZSxmPygibnVtYmVyIiE9dHlwZW9mIGFpX3JvdGF0aW9uX3NlZWQmJihhaV9yb3RhdGlvbl9zZWVkPQooTWF0aC5mbG9vcigxRTMqTWF0aC5yYW5kb20oKSkrYS5nZXRNaWxsaXNlY29uZHMoKSklZS5sZW5ndGgpLGY9YWlfcm90YXRpb25fc2VlZCxmPmUubGVuZ3RoJiYoZiU9ZS5sZW5ndGgpLGE9cGFyc2VJbnQoYi5kYXRhc2V0LmNvdW50ZXIpLGE8PWUubGVuZ3RoPyhrPXBhcnNlSW50KGYrYS0xKSxrPj1lLmxlbmd0aCYmKGstPWUubGVuZ3RoKSk6az1lLmxlbmd0aCk6KGs9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKmUubGVuZ3RoKSxhLmdldE1pbGxpc2Vjb25kcygpJTImJihrPWUubGVuZ3RoLWstMSkpO2lmKGIuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yb3RhdGlvbi1zY2hlZHVsaW5nIikpZm9yKGs9LTEsZj0wO2Y8ZS5sZW5ndGg7ZisrKWlmKGE9ZVtmXSxhLmhhc0F0dHJpYnV0ZSgiZGF0YS1zY2hlZHVsaW5nIikpe2M9YjY0ZChhLmRhdGFzZXQuc2NoZWR1bGluZyk7YT0hMDswPT1jLmluZGV4T2YoIl4iKSYmKGE9ITEsYz1jLnN1YnN0cmluZygxKSk7dmFyIHE9Yy5zcGxpdCgiPSIpLAptPS0xIT1jLmluZGV4T2YoIiUiKT9xWzBdLnNwbGl0KCIlIik6W3FbMF1dO2M9bVswXS50cmltKCkudG9Mb3dlckNhc2UoKTttPSJ1bmRlZmluZWQiIT10eXBlb2YgbVsxXT9tWzFdLnRyaW0oKTowO3E9cVsxXS5yZXBsYWNlKCIgIiwiIik7dmFyIG49KG5ldyBEYXRlKS5nZXRUaW1lKCk7bj1uZXcgRGF0ZShuKTt2YXIgbD0wO3N3aXRjaChjKXtjYXNlICJzIjpsPW4uZ2V0U2Vjb25kcygpO2JyZWFrO2Nhc2UgImkiOmw9bi5nZXRNaW51dGVzKCk7YnJlYWs7Y2FzZSAiaCI6bD1uLmdldEhvdXJzKCk7YnJlYWs7Y2FzZSAiZCI6bD1uLmdldERhdGUoKTticmVhaztjYXNlICJtIjpsPW4uZ2V0TW9udGgoKTticmVhaztjYXNlICJ5IjpsPW4uZ2V0RnVsbFllYXIoKTticmVhaztjYXNlICJ3IjpsPW4uZ2V0RGF5KCksbD0wPT1sPzY6bC0xfWM9MCE9bT9sJW06bDttPXEuc3BsaXQoIiwiKTtxPSFhO2ZvcihuPTA7bjxtLmxlbmd0aDtuKyspaWYobD1tW25dLC0xIT1sLmluZGV4T2YoIi0iKSl7aWYobD0KbC5zcGxpdCgiLSIpLGM+PWxbMF0mJmM8PWxbMV0pe3E9YTticmVha319ZWxzZSBpZihjPT1sKXtxPWE7YnJlYWt9aWYocSl7az1mO2JyZWFrfX1pZighKDA+a3x8az49ZS5sZW5ndGgpKXthPWVba107dmFyIHo9IiIsdz1iLmNsYXNzTGlzdC5jb250YWlucygiYWktdGltZWQtcm90YXRpb24iKTtlLmZvckVhY2goKGcscCk9PntnLmhhc0F0dHJpYnV0ZSgiZGF0YS10aW1lIikmJih3PSEwKX0pO2lmKGEuaGFzQXR0cmlidXRlKCJkYXRhLXRpbWUiKSl7Zj1hdG9iKGEuZGF0YXNldC50aW1lKTtpZigwPT1mJiYxPGUubGVuZ3RoKXtjPWs7ZG97YysrO2M+PWUubGVuZ3RoJiYoYz0wKTttPWVbY107aWYoIW0uaGFzQXR0cmlidXRlKCJkYXRhLXRpbWUiKSl7az1jO2E9ZVtrXTtmPTA7YnJlYWt9bT1hdG9iKG0uZGF0YXNldC50aW1lKX13aGlsZSgwPT1tJiZjIT1rKTswIT1mJiYoaz1jLGE9ZVtrXSxmPWF0b2IoYS5kYXRhc2V0LnRpbWUpKX1pZigwPGYmJihjPWsrMSxjPj1lLmxlbmd0aCYmCihjPTApLGIuaGFzQXR0cmlidXRlKCJkYXRhLWluZm8iKSkpe209SlNPTi5wYXJzZShhdG9iKGIuZGF0YXNldC5pbmZvKSlbMF07Yi5zZXRBdHRyaWJ1dGUoImRhdGEtbmV4dCIsYyk7dmFyIHg9ImRpdi5haS1yb3RhdGUuYWktIittO2FpX3JvdGF0aW9uX3RyaWdnZXJzLmluY2x1ZGVzKHgpJiYoZD0hMSk7ZCYmKGFpX3JvdGF0aW9uX3RyaWdnZXJzLnB1c2goeCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoeCk7Zy5mb3JFYWNoKChwLHIpPT57cC5jbGFzc0xpc3QuYWRkKCJhaS10aW1lciIpfSk7YWlfcHJvY2Vzc19yb3RhdGlvbihnKX0sMUUzKmYpKTt6PSIgKCIrZisiIHMpIn19ZWxzZSBhLmhhc0F0dHJpYnV0ZSgiZGF0YS1ncm91cCIpfHxlLmZvckVhY2goKGcscCk9PntwIT1rJiZnLnJlbW92ZSgpfSk7YS5zdHlsZS5kaXNwbGF5PSIiO2Euc3R5bGUudmlzaWJpbGl0eT0iIjthLnN0eWxlLnBvc2l0aW9uPSIiO2Euc3R5bGUud2lkdGg9CiIiO2Euc3R5bGUuaGVpZ2h0PSIiO2Euc3R5bGUudG9wPSIiO2Euc3R5bGUubGVmdD0iIjthLmNsYXNzTGlzdC5yZW1vdmUoImFpLXJvdGF0ZS1oaWRkZW4iKTthLmNsYXNzTGlzdC5yZW1vdmUoImFpLXJvdGF0ZS1oaWRkZW4tMiIpO2Iuc3R5bGUucG9zaXRpb249IiI7aWYoYS5oYXNBdHRyaWJ1dGUoImRhdGEtY29kZSIpKXtlLmZvckVhY2goKGcscCk9PntnLmlubmVyVGV4dD0iIn0pO2Q9YjY0ZChhLmRhdGFzZXQuY29kZSk7Zj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO2M9ITA7dHJ5e2g9Zi5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoZCl9Y2F0Y2goZyl7Yz0hMX1hLmFwcGVuZChoKTtEKCl9Zj1wYXJzZUludChhLmRhdGFzZXQuaW5kZXgpO3ZhciB5PWI2NGQoYS5kYXRhc2V0Lm5hbWUpO2Q9Yi5jbG9zZXN0KCIuYWktZGVidWctYmxvY2siKTtpZihudWxsIT1kKXtoPWQucXVlcnlTZWxlY3RvckFsbCgia2JkLmFpLW9wdGlvbi1uYW1lIik7ZD1kLnF1ZXJ5U2VsZWN0b3JBbGwoIi5haS1kZWJ1Zy1ibG9jayIpOwppZigwIT1kLmxlbmd0aCl7dmFyIEE9W107ZC5mb3JFYWNoKChnLHApPT57Zy5xdWVyeVNlbGVjdG9yQWxsKCJrYmQuYWktb3B0aW9uLW5hbWUiKS5mb3JFYWNoKChyLHQpPT57QS5wdXNoKHIpfSl9KTtoPUFycmF5LmZyb20oaCk7aD1oLnNsaWNlKDAsaC5sZW5ndGgtQS5sZW5ndGgpfTAhPWgubGVuZ3RoJiYoc2VwYXJhdG9yPWhbMF0uaGFzQXR0cmlidXRlKCJkYXRhLXNlcGFyYXRvciIpP2hbMF0uZGF0YXNldC5zZXBhcmF0b3I6IiIsaC5mb3JFYWNoKChnLHApPT57Zy5pbm5lclRleHQ9c2VwYXJhdG9yK3kren0pKX1kPSExO2E9Yi5jbG9zZXN0KCIuYWktYWRiLXNob3ciKTtudWxsIT1hJiZhLmhhc0F0dHJpYnV0ZSgiZGF0YS1haS10cmFja2luZyIpJiYoaD1KU09OLnBhcnNlKGI2NGQoYS5nZXRBdHRyaWJ1dGUoImRhdGEtYWktdHJhY2tpbmciKSkpLCJ1bmRlZmluZWQiIT09dHlwZW9mIGgmJmguY29uc3RydWN0b3I9PT1BcnJheSYmKGhbMV09ZixoWzNdPXksYS5zZXRBdHRyaWJ1dGUoImRhdGEtYWktdHJhY2tpbmciLApiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksYS5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IiksZD0hMCkpO2R8fChkPWIuY2xvc2VzdCgiZGl2W2RhdGEtYWldIiksbnVsbCE9ZCYmZC5oYXNBdHRyaWJ1dGUoImRhdGEtYWkiKSYmKGg9SlNPTi5wYXJzZShiNjRkKGQuZ2V0QXR0cmlidXRlKCJkYXRhLWFpIikpKSwidW5kZWZpbmVkIiE9PXR5cGVvZiBoJiZoLmNvbnN0cnVjdG9yPT09QXJyYXkmJihoWzFdPWYsaFszXT15LGQuc2V0QXR0cmlidXRlKCJkYXRhLWFpIixiNjRlKEpTT04uc3RyaW5naWZ5KGgpKSksZC5jbGFzc0xpc3QuYWRkKCJhaS10cmFjayIpLHcmJmFpX3RyYWNraW5nX2ZpbmlzaGVkJiZkLmNsYXNzTGlzdC5hZGQoImFpLW5vLXBhZ2V2aWV3IikpKSl9fX07YWlfcHJvY2Vzc19yb3RhdGlvbnM9ZnVuY3Rpb24oKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktcm90YXRlIikuZm9yRWFjaCgoYiwKZCk9PnthaV9wcm9jZXNzX3JvdGF0aW9uKGIpfSl9O2Z1bmN0aW9uIEIoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktcm90YXRlLmFpLXJvdGF0aW9uLWdyb3VwcyIpLmZvckVhY2goKGIsZCk9PntiLmNsYXNzTGlzdC5hZGQoImFpLXRpbWVyIik7YWlfcHJvY2Vzc19yb3RhdGlvbihiKX0pfWFpX3Byb2Nlc3Nfcm90YXRpb25zX2luX2VsZW1lbnQ9ZnVuY3Rpb24oYil7bnVsbCE9YiYmYi5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuYWktcm90YXRlIikuZm9yRWFjaCgoZCxlKT0+e2FpX3Byb2Nlc3Nfcm90YXRpb24oZCl9KX07KGZ1bmN0aW9uKGIpeyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2IoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixiKX0pKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3Nfcm90YXRpb25zKCl9LAoxMCl9KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMTtmdW5jdGlvbiBEKCl7YWlfcHJvY2Vzc19lbGVtZW50c19hY3RpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19yb3RhdGlvbnMmJmFpX3Byb2Nlc3Nfcm90YXRpb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfbGlzdHMmJmFpX3Byb2Nlc3NfbGlzdHMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfcHJvY2Vzc19pcF9hZGRyZXNzZXMmJmFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfZmlsdGVyX2hvb2tzJiZhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9hZGJfcHJvY2Vzc19ibG9ja3MmJmFpX2FkYl9wcm9jZXNzX2Jsb2NrcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ltcHJlc3Npb25zJiYxPT0KYWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbGlja190cmFja2VycyYmMT09YWlfdHJhY2tpbmdfZmluaXNoZWQmJmFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zJiZhaV9pbnN0YWxsX2Nsb3NlX2J1dHRvbnMoZG9jdW1lbnQpfSw1KTthaV9wcm9jZXNzX2VsZW1lbnRzX2FjdGl2ZT0hMH19Owo7IWZ1bmN0aW9uKGEsYil7YShmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKGEsYil7cmV0dXJuIG51bGwhPWEmJm51bGwhPWImJmEudG9Mb3dlckNhc2UoKT09PWIudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBjKGEsYil7dmFyIGMsZCxlPWEubGVuZ3RoO2lmKCFlfHwhYilyZXR1cm4hMTtmb3IoYz1iLnRvTG93ZXJDYXNlKCksZD0wO2Q8ZTsrK2QpaWYoYz09PWFbZF0udG9Mb3dlckNhc2UoKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBkKGEpe2Zvcih2YXIgYiBpbiBhKWkuY2FsbChhLGIpJiYoYVtiXT1uZXcgUmVnRXhwKGFbYl0sImkiKSl9ZnVuY3Rpb24gZShhKXtyZXR1cm4oYXx8IiIpLnN1YnN0cigwLDUwMCl9ZnVuY3Rpb24gZihhLGIpe3RoaXMudWE9ZShhKSx0aGlzLl9jYWNoZT17fSx0aGlzLm1heFBob25lV2lkdGg9Ynx8NjAwfXZhciBnPXt9O2cubW9iaWxlRGV0ZWN0UnVsZXM9e3Bob25lczp7aVBob25lOiJcYmlQaG9uZVxifFxiaVBvZFxiIixCbGFja0JlcnJ5OiJCbGFja0JlcnJ5fFxiQkIxMFxifHJpbVswLTldK3xcYihCQkExMDB8QkJCMTAwfEJCRDEwMHxCQkUxMDB8QkJGMTAwfFNUSDEwMClcYi1bMC05XSsiLFBpeGVsOiI7IFxiUGl4ZWxcYiIsSFRDOiJIVEN8SFRDLiooU2Vuc2F0aW9ufEV2b3xWaXNpb258RXhwbG9yZXJ8NjgwMHw4MTAwfDg5MDB8QTcyNzJ8UzUxMGV8QzExMGV8TGVnZW5kfERlc2lyZXxUODI4Mil8QVBYNTE1Q0tUfFF0ZWs5MDkwfEFQQTkyOTJLVHxIRF9taW5pfFNlbnNhdGlvbi4qWjcxMGV8UEc4NjEwMHxaNzE1ZXxEZXNpcmUuKihBODE4MXxIRCl8QURSNjIwMHxBRFI2NDAwTHxBRFI2NDI1fDAwMUhUfEluc3BpcmUgNEd8QW5kcm9pZC4qXGJFVk9cYnxULU1vYmlsZSBHMXxaNTIwbXxBbmRyb2lkIFswLTkuXSs7IFBpeGVsIixOZXh1czoiTmV4dXMgT25lfE5leHVzIFN8R2FsYXh5LipOZXh1c3xBbmRyb2lkLipOZXh1cy4qTW9iaWxlfE5leHVzIDR8TmV4dXMgNXxOZXh1cyA1WHxOZXh1cyA2IixEZWxsOiJEZWxsWztdPyAoU3RyZWFrfEFlcm98VmVudWV8VmVudWUgUHJvfEZsYXNofFNtb2tlfE1pbmkgM2lYKXxYQ0QyOHxYQ0QzNXxcYjAwMURMXGJ8XGIxMDFETFxifFxiR1MwMVxiIixNb3Rvcm9sYToiTW90b3JvbGF8RFJPSURYfERST0lEIEJJT05JQ3xcYkRyb2lkXGIuKkJ1aWxkfEFuZHJvaWQuKlhvb218SFJJMzl8TU9ULXxBMTI2MHxBMTY4MHxBNTU1fEE4NTN8QTg1NXxBOTUzfEE5NTV8QTk1NnxNb3Rvcm9sYS4qRUxFQ1RSSUZZfE1vdG9yb2xhLippMXxpODY3fGk5NDB8TUIyMDB8TUIzMDB8TUI1MDF8TUI1MDJ8TUI1MDh8TUI1MTF8TUI1MjB8TUI1MjV8TUI1MjZ8TUI2MTF8TUI2MTJ8TUI2MzJ8TUI4MTB8TUI4NTV8TUI4NjB8TUI4NjF8TUI4NjV8TUI4NzB8TUU1MDF8TUU1MDJ8TUU1MTF8TUU1MjV8TUU2MDB8TUU2MzJ8TUU3MjJ8TUU4MTF8TUU4NjB8TUU4NjN8TUU4NjV8TVQ2MjB8TVQ3MTB8TVQ3MTZ8TVQ3MjB8TVQ4MTB8TVQ4NzB8TVQ5MTd8TW90b3JvbGEuKlRJVEFOSVVNfFdYNDM1fFdYNDQ1fFhUMzAwfFhUMzAxfFhUMzExfFhUMzE2fFhUMzE3fFhUMzE5fFhUMzIwfFhUMzkwfFhUNTAyfFhUNTMwfFhUNTMxfFhUNTMyfFhUNTM1fFhUNjAzfFhUNjEwfFhUNjExfFhUNjE1fFhUNjgxfFhUNzAxfFhUNzAyfFhUNzExfFhUNzIwfFhUODAwfFhUODA2fFhUODYwfFhUODYyfFhUODc1fFhUODgyfFhUODgzfFhUODk0fFhUOTAxfFhUOTA3fFhUOTA5fFhUOTEwfFhUOTEyfFhUOTI4fFhUOTI2fFhUOTE1fFhUOTE5fFhUOTI1fFhUMTAyMXxcYk1vdG8gRVxifFhUMTA2OHxYVDEwOTJ8WFQxMDUyIixTYW1zdW5nOiJcYlNhbXN1bmdcYnxTTS1HOTUwRnxTTS1HOTU1RnxTTS1HOTI1MHxHVC0xOTMwMHxTR0gtSTMzN3xCR1QtUzUyMzB8R1QtQjIxMDB8R1QtQjI3MDB8R1QtQjI3MTB8R1QtQjMyMTB8R1QtQjMzMTB8R1QtQjM0MTB8R1QtQjM3MzB8R1QtQjM3NDB8R1QtQjU1MTB8R1QtQjU1MTJ8R1QtQjU3MjJ8R1QtQjY1MjB8R1QtQjczMDB8R1QtQjczMjB8R1QtQjczMzB8R1QtQjczNTB8R1QtQjc1MTB8R1QtQjc3MjJ8R1QtQjc4MDB8R1QtQzMwMTB8R1QtQzMwMTF8R1QtQzMwNjB8R1QtQzMyMDB8R1QtQzMyMTJ8R1QtQzMyMTJJfEdULUMzMjYyfEdULUMzMjIyfEdULUMzMzAwfEdULUMzMzAwS3xHVC1DMzMwM3xHVC1DMzMwM0t8R1QtQzMzMTB8R1QtQzMzMjJ8R1QtQzMzMzB8R1QtQzMzNTB8R1QtQzM1MDB8R1QtQzM1MTB8R1QtQzM1MzB8R1QtQzM2MzB8R1QtQzM3ODB8R1QtQzUwMTB8R1QtQzUyMTJ8R1QtQzY2MjB8R1QtQzY2MjV8R1QtQzY3MTJ8R1QtRTEwNTB8R1QtRTEwNzB8R1QtRTEwNzV8R1QtRTEwODB8R1QtRTEwODF8R1QtRTEwODV8R1QtRTEwODd8R1QtRTExMDB8R1QtRTExMDd8R1QtRTExMTB8R1QtRTExMjB8R1QtRTExMjV8R1QtRTExMzB8R1QtRTExNjB8R1QtRTExNzB8R1QtRTExNzV8R1QtRTExODB8R1QtRTExODJ8R1QtRTEyMDB8R1QtRTEyMTB8R1QtRTEyMjV8R1QtRTEyMzB8R1QtRTEzOTB8R1QtRTIxMDB8R1QtRTIxMjB8R1QtRTIxMjF8R1QtRTIxNTJ8R1QtRTIyMjB8R1QtRTIyMjJ8R1QtRTIyMzB8R1QtRTIyMzJ8R1QtRTIyNTB8R1QtRTIzNzB8R1QtRTI1NTB8R1QtRTI2NTJ8R1QtRTMyMTB8R1QtRTMyMTN8R1QtSTU1MDB8R1QtSTU1MDN8R1QtSTU3MDB8R1QtSTU4MDB8R1QtSTU4MDF8R1QtSTY0MTB8R1QtSTY0MjB8R1QtSTcxMTB8R1QtSTc0MTB8R1QtSTc1MDB8R1QtSTgwMDB8R1QtSTgxNTB8R1QtSTgxNjB8R1QtSTgxOTB8R1QtSTgzMjB8R1QtSTgzMzB8R1QtSTgzNTB8R1QtSTg1MzB8R1QtSTg3MDB8R1QtSTg3MDN8R1QtSTg5MTB8R1QtSTkwMDB8R1QtSTkwMDF8R1QtSTkwMDN8R1QtSTkwMTB8R1QtSTkwMjB8R1QtSTkwMjN8R1QtSTkwNzB8R1QtSTkwODJ8R1QtSTkxMDB8R1QtSTkxMDN8R1QtSTkyMjB8R1QtSTkyNTB8R1QtSTkzMDB8R1QtSTkzMDV8R1QtSTk1MDB8R1QtSTk1MDV8R1QtTTM1MTB8R1QtTTU2NTB8R1QtTTc1MDB8R1QtTTc2MDB8R1QtTTc2MDN8R1QtTTg4MDB8R1QtTTg5MTB8R1QtTjcwMDB8R1QtUzMxMTB8R1QtUzMzMTB8R1QtUzMzNTB8R1QtUzMzNTN8R1QtUzMzNzB8R1QtUzM2NTB8R1QtUzM2NTN8R1QtUzM3NzB8R1QtUzM4NTB8R1QtUzUyMTB8R1QtUzUyMjB8R1QtUzUyMjl8R1QtUzUyMzB8R1QtUzUyMzN8R1QtUzUyNTB8R1QtUzUyNTN8R1QtUzUyNjB8R1QtUzUyNjN8R1QtUzUyNzB8R1QtUzUzMDB8R1QtUzUzMzB8R1QtUzUzNTB8R1QtUzUzNjB8R1QtUzUzNjN8R1QtUzUzNjl8R1QtUzUzODB8R1QtUzUzODBEfEdULVM1NTYwfEdULVM1NTcwfEdULVM1NjAwfEdULVM1NjAzfEdULVM1NjEwfEdULVM1NjIwfEdULVM1NjYwfEdULVM1NjcwfEdULVM1NjkwfEdULVM1NzUwfEdULVM1NzgwfEdULVM1ODMwfEdULVM1ODM5fEdULVM2MTAyfEdULVM2NTAwfEdULVM3MDcwfEdULVM3MjAwfEdULVM3MjIwfEdULVM3MjMwfEdULVM3MjMzfEdULVM3MjUwfEdULVM3NTAwfEdULVM3NTMwfEdULVM3NTUwfEdULVM3NTYyfEdULVM3NzEwfEdULVM4MDAwfEdULVM4MDAzfEdULVM4NTAwfEdULVM4NTMwfEdULVM4NjAwfFNDSC1BMzEwfFNDSC1BNTMwfFNDSC1BNTcwfFNDSC1BNjEwfFNDSC1BNjMwfFNDSC1BNjUwfFNDSC1BNzkwfFNDSC1BNzk1fFNDSC1BODUwfFNDSC1BODcwfFNDSC1BODkwfFNDSC1BOTMwfFNDSC1BOTUwfFNDSC1BOTcwfFNDSC1BOTkwfFNDSC1JMTAwfFNDSC1JMTEwfFNDSC1JNDAwfFNDSC1JNDA1fFNDSC1JNTAwfFNDSC1JNTEwfFNDSC1JNTE1fFNDSC1JNjAwfFNDSC1JNzMwfFNDSC1JNzYwfFNDSC1JNzcwfFNDSC1JODMwfFNDSC1JOTEwfFNDSC1JOTIwfFNDSC1JOTU5fFNDSC1MQzExfFNDSC1OMTUwfFNDSC1OMzAwfFNDSC1SMTAwfFNDSC1SMzAwfFNDSC1SMzUxfFNDSC1SNDAwfFNDSC1SNDEwfFNDSC1UMzAwfFNDSC1VMzEwfFNDSC1VMzIwfFNDSC1VMzUwfFNDSC1VMzYwfFNDSC1VMzY1fFNDSC1VMzcwfFNDSC1VMzgwfFNDSC1VNDEwfFNDSC1VNDMwfFNDSC1VNDUwfFNDSC1VNDYwfFNDSC1VNDcwfFNDSC1VNDkwfFNDSC1VNTQwfFNDSC1VNTUwfFNDSC1VNjIwfFNDSC1VNjQwfFNDSC1VNjUwfFNDSC1VNjYwfFNDSC1VNzAwfFNDSC1VNzQwfFNDSC1VNzUwfFNDSC1VODEwfFNDSC1VODIwfFNDSC1VOTAwfFNDSC1VOTQwfFNDSC1VOTYwfFNDUy0yNlVDfFNHSC1BMTA3fFNHSC1BMTE3fFNHSC1BMTI3fFNHSC1BMTM3fFNHSC1BMTU3fFNHSC1BMTY3fFNHSC1BMTc3fFNHSC1BMTg3fFNHSC1BMTk3fFNHSC1BMjI3fFNHSC1BMjM3fFNHSC1BMjU3fFNHSC1BNDM3fFNHSC1BNTE3fFNHSC1BNTk3fFNHSC1BNjM3fFNHSC1BNjU3fFNHSC1BNjY3fFNHSC1BNjg3fFNHSC1BNjk3fFNHSC1BNzA3fFNHSC1BNzE3fFNHSC1BNzI3fFNHSC1BNzM3fFNHSC1BNzQ3fFNHSC1BNzY3fFNHSC1BNzc3fFNHSC1BNzk3fFNHSC1BODE3fFNHSC1BODI3fFNHSC1BODM3fFNHSC1BODQ3fFNHSC1BODY3fFNHSC1BODc3fFNHSC1BODg3fFNHSC1BODk3fFNHSC1BOTI3fFNHSC1CMTAwfFNHSC1CMTMwfFNHSC1CMjAwfFNHSC1CMjIwfFNHSC1DMTAwfFNHSC1DMTEwfFNHSC1DMTIwfFNHSC1DMTMwfFNHSC1DMTQwfFNHSC1DMTYwfFNHSC1DMTcwfFNHSC1DMTgwfFNHSC1DMjAwfFNHSC1DMjA3fFNHSC1DMjEwfFNHSC1DMjI1fFNHSC1DMjMwfFNHSC1DNDE3fFNHSC1DNDUwfFNHSC1EMzA3fFNHSC1EMzQ3fFNHSC1EMzU3fFNHSC1ENDA3fFNHSC1ENDE1fFNHSC1ENzgwfFNHSC1EODA3fFNHSC1EOTgwfFNHSC1FMTA1fFNHSC1FMjAwfFNHSC1FMzE1fFNHSC1FMzE2fFNHSC1FMzE3fFNHSC1FMzM1fFNHSC1FNTkwfFNHSC1FNjM1fFNHSC1FNzE1fFNHSC1FODkwfFNHSC1GMzAwfFNHSC1GNDgwfFNHSC1JMjAwfFNHSC1JMzAwfFNHSC1JMzIwfFNHSC1JNTUwfFNHSC1JNTc3fFNHSC1JNjAwfFNHSC1JNjA3fFNHSC1JNjE3fFNHSC1JNjI3fFNHSC1JNjM3fFNHSC1JNjc3fFNHSC1JNzAwfFNHSC1JNzE3fFNHSC1JNzI3fFNHSC1pNzQ3TXxTR0gtSTc3N3xTR0gtSTc4MHxTR0gtSTgyN3xTR0gtSTg0N3xTR0gtSTg1N3xTR0gtSTg5NnxTR0gtSTg5N3xTR0gtSTkwMHxTR0gtSTkwN3xTR0gtSTkxN3xTR0gtSTkyN3xTR0gtSTkzN3xTR0gtSTk5N3xTR0gtSjE1MHxTR0gtSjIwMHxTR0gtTDE3MHxTR0gtTDcwMHxTR0gtTTExMHxTR0gtTTE1MHxTR0gtTTIwMHxTR0gtTjEwNXxTR0gtTjUwMHxTR0gtTjYwMHxTR0gtTjYyMHxTR0gtTjYyNXxTR0gtTjcwMHxTR0gtTjcxMHxTR0gtUDEwN3xTR0gtUDIwN3xTR0gtUDMwMHxTR0gtUDMxMHxTR0gtUDUyMHxTR0gtUDczNXxTR0gtUDc3N3xTR0gtUTEwNXxTR0gtUjIxMHxTR0gtUjIyMHxTR0gtUjIyNXxTR0gtUzEwNXxTR0gtUzMwN3xTR0gtVDEwOXxTR0gtVDExOXxTR0gtVDEzOXxTR0gtVDIwOXxTR0gtVDIxOXxTR0gtVDIyOXxTR0gtVDIzOXxTR0gtVDI0OXxTR0gtVDI1OXxTR0gtVDMwOXxTR0gtVDMxOXxTR0gtVDMyOXxTR0gtVDMzOXxTR0gtVDM0OXxTR0gtVDM1OXxTR0gtVDM2OXxTR0gtVDM3OXxTR0gtVDQwOXxTR0gtVDQyOXxTR0gtVDQzOXxTR0gtVDQ1OXxTR0gtVDQ2OXxTR0gtVDQ3OXxTR0gtVDQ5OXxTR0gtVDUwOXxTR0gtVDUxOXxTR0gtVDUzOXxTR0gtVDU1OXxTR0gtVDU4OXxTR0gtVDYwOXxTR0gtVDYxOXxTR0gtVDYyOXxTR0gtVDYzOXxTR0gtVDY1OXxTR0gtVDY2OXxTR0gtVDY3OXxTR0gtVDcwOXxTR0gtVDcxOXxTR0gtVDcyOXxTR0gtVDczOXxTR0gtVDc0NnxTR0gtVDc0OXxTR0gtVDc1OXxTR0gtVDc2OXxTR0gtVDgwOXxTR0gtVDgxOXxTR0gtVDgzOXxTR0gtVDkxOXxTR0gtVDkyOXxTR0gtVDkzOXxTR0gtVDk1OXxTR0gtVDk4OXxTR0gtVTEwMHxTR0gtVTIwMHxTR0gtVTgwMHxTR0gtVjIwNXxTR0gtVjIwNnxTR0gtWDEwMHxTR0gtWDEwNXxTR0gtWDEyMHxTR0gtWDE0MHxTR0gtWDQyNnxTR0gtWDQyN3xTR0gtWDQ3NXxTR0gtWDQ5NXxTR0gtWDQ5N3xTR0gtWDUwN3xTR0gtWDYwMHxTR0gtWDYxMHxTR0gtWDYyMHxTR0gtWDYzMHxTR0gtWDcwMHxTR0gtWDgyMHxTR0gtWDg5MHxTR0gtWjEzMHxTR0gtWjE1MHxTR0gtWjE3MHxTR0gtWlgxMHxTR0gtWlgyMHxTSFctTTExMHxTUEgtQTEyMHxTUEgtQTQwMHxTUEgtQTQyMHxTUEgtQTQ2MHxTUEgtQTUwMHxTUEgtQTU2MHxTUEgtQTYwMHxTUEgtQTYyMHxTUEgtQTY2MHxTUEgtQTcwMHxTUEgtQTc0MHxTUEgtQTc2MHxTUEgtQTc5MHxTUEgtQTgwMHxTUEgtQTgyMHxTUEgtQTg0MHxTUEgtQTg4MHxTUEgtQTkwMHxTUEgtQTk0MHxTUEgtQTk2MHxTUEgtRDYwMHxTUEgtRDcwMHxTUEgtRDcxMHxTUEgtRDcyMHxTUEgtSTMwMHxTUEgtSTMyNXxTUEgtSTMzMHxTUEgtSTM1MHxTUEgtSTUwMHxTUEgtSTYwMHxTUEgtSTcwMHxTUEgtTDcwMHxTUEgtTTEwMHxTUEgtTTIyMHxTUEgtTTI0MHxTUEgtTTMwMHxTUEgtTTMwNXxTUEgtTTMyMHxTUEgtTTMzMHxTUEgtTTM1MHxTUEgtTTM2MHxTUEgtTTM3MHxTUEgtTTM4MHxTUEgtTTUxMHxTUEgtTTU0MHxTUEgtTTU1MHxTUEgtTTU2MHxTUEgtTTU3MHxTUEgtTTU4MHxTUEgtTTYxMHxTUEgtTTYyMHxTUEgtTTYzMHxTUEgtTTgwMHxTUEgtTTgxMHxTUEgtTTg1MHxTUEgtTTkwMHxTUEgtTTkxMHxTUEgtTTkyMHxTUEgtTTkzMHxTUEgtTjEwMHxTUEgtTjIwMHxTUEgtTjI0MHxTUEgtTjMwMHxTUEgtTjQwMHxTUEgtWjQwMHxTV0MtRTEwMHxTQ0gtaTkwOXxHVC1ONzEwMHxHVC1ONzEwNXxTQ0gtSTUzNXxTTS1OOTAwQXxTR0gtSTMxN3xTR0gtVDk5OUx8R1QtUzUzNjBCfEdULUk4MjYyfEdULVM2ODAyfEdULVM2MzEyfEdULVM2MzEwfEdULVM1MzEyfEdULVM1MzEwfEdULUk5MTA1fEdULUk4NTEwfEdULVM2NzkwTnxTTS1HNzEwNXxTTS1OOTAwNXxHVC1TNTMwMXxHVC1JOTI5NXxHVC1JOTE5NXxTTS1DMTAxfEdULVM3MzkyfEdULVM3NTYwfEdULUI3NjEwfEdULUk1NTEwfEdULVM3NTgyfEdULVM3NTMwRXxHVC1JODc1MHxTTS1HOTAwNlZ8U00tRzkwMDhWfFNNLUc5MDA5RHxTTS1HOTAwQXxTTS1HOTAwRHxTTS1HOTAwRnxTTS1HOTAwSHxTTS1HOTAwSXxTTS1HOTAwSnxTTS1HOTAwS3xTTS1HOTAwTHxTTS1HOTAwTXxTTS1HOTAwUHxTTS1HOTAwUjR8U00tRzkwMFN8U00tRzkwMFR8U00tRzkwMFZ8U00tRzkwMFc4fFNIVi1FMTYwS3xTQ0gtUDcwOXxTQ0gtUDcyOXxTTS1UMjU1OHxHVC1JOTIwNXxTTS1HOTM1MHxTTS1KMTIwRnxTTS1HOTIwRnxTTS1HOTIwVnxTTS1HOTMwRnxTTS1OOTEwQ3xTTS1BMzEwRnxHVC1JOTE5MHxTTS1KNTAwRk58U00tRzkwM0Z8U00tSjMzMEZ8U00tRzYxMEZ8U00tRzk4MUJ8U00tRzg5MkF8U00tQTUzMEYiLExHOiJcYkxHXGI7fExHWy0gXT8oQzgwMHxDOTAwfEU0MDB8RTYxMHxFOTAwfEUtOTAwfEYxNjB8RjE4MEt8RjE4MEx8RjE4MFN8NzMwfDg1NXxMMTYwfExTNzQwfExTODQwfExTOTcwfExVNjIwMHxNUzY5MHxNUzY5NXxNUzc3MHxNUzg0MHxNUzg3MHxNUzkxMHxQNTAwfFA3MDB8UDcwNXxWTTY5NnxBUzY4MHxBUzY5NXxBWDg0MHxDNzI5fEU5NzB8R1M1MDV8MjcyfEMzOTV8RTczOUJLfEU5NjB8TDU1Q3xMNzVDfExTNjk2fExTODYwfFA3NjlCS3xQMzUwfFA1MDB8UDUwOXxQODcwfFVOMjcyfFVTNzMwfFZTODQwfFZTOTUwfExOMjcyfExONTEwfExTNjcwfExTODU1fExXNjkwfE1OMjcwfE1ONTEwfFA1MDl8UDc2OXxQOTMwfFVOMjAwfFVOMjcwfFVONTEwfFVONjEwfFVTNjcwfFVTNzQwfFVTNzYwfFVYMjY1fFVYODQwfFZOMjcxfFZONTMwfFZTNjYwfFZTNzAwfFZTNzQwfFZTNzUwfFZTOTEwfFZTOTIwfFZTOTMwfFZYOTIwMHxWWDExMDAwfEFYODQwQXxMVzc3MHxQNTA2fFA5MjV8UDk5OXxFNjEyfEQ5NTV8RDgwMnxNUzMyM3xNMjU3KXxMTS1HNzEwIixTb255OiJTb255U1R8U29ueUxUfFNvbnlFcmljc3NvbnxTb255RXJpY3Nzb25MVDE1aXZ8TFQxOGl8RTEwaXxMVDI4aHxMVDI2d3xTb255RXJpY3Nzb25NVDI3aXxDNTMwM3xDNjkwMnxDNjkwM3xDNjkwNnxDNjk0M3xEMjUzM3xTT1YzNHw2MDFTT3xGODMzMiIsQXN1czoiQXN1cy4qR2FsYXh5fFBhZEZvbmUuKk1vYmlsZSIsWGlhb21pOiJeKD8hLipcYngxMVxiKS4qeGlhb21pLiokfFBPQ09QSE9ORSBGMXxNSSA4fFJlZG1pIE5vdGUgOVN8UmVkbWkgTm90ZSA1QSBQcmltZXxOMkc0N0h8TTIwMDFKMkd8TTIwMDFKMkl8TTE4MDVFMTBBfE0yMDA0SjExR3xNMTkwMkYxR3xNMjAwMko5R3xNMjAwNEoxOUd8TTIwMDNKNkExRyIsTm9raWFMdW1pYToiTHVtaWEgWzAtOV17Myw0fSIsTWljcm9tYXg6Ik1pY3JvbWF4LipcYihBMjEwfEE5MnxBODh8QTcyfEExMTF8QTExMFF8QTExNXxBMTE2fEExMTB8QTkwU3xBMjZ8QTUxfEEzNXxBNTR8QTI1fEEyN3xBODl8QTY4fEE2NXxBNTd8QTkwKVxiIixQYWxtOiJQYWxtU291cmNlfFBhbG0iLFZlcnR1OiJWZXJ0dXxWZXJ0dS4qTHRkfFZlcnR1LipBc2NlbnR8VmVydHUuKkF5eHRhfFZlcnR1LipDb25zdGVsbGF0aW9uKEZ8UXVlc3QpP3xWZXJ0dS4qTW9uaWthfFZlcnR1LipTaWduYXR1cmUiLFBhbnRlY2g6IlBBTlRFQ0h8SU0tQTg1MFN8SU0tQTg0MFN8SU0tQTgzMEx8SU0tQTgzMEt8SU0tQTgzMFN8SU0tQTgyMEx8SU0tQTgxMEt8SU0tQTgxMFN8SU0tQTgwMFN8SU0tVDEwMEt8SU0tQTcyNUx8SU0tQTc4MEx8SU0tQTc3NUN8SU0tQTc3MEt8SU0tQTc2MFN8SU0tQTc1MEt8SU0tQTc0MFN8SU0tQTczMFN8SU0tQTcyMEx8SU0tQTcxMEt8SU0tQTY5MEx8SU0tQTY5MFN8SU0tQTY1MFN8SU0tQTYzMEt8SU0tQTYwMFN8VkVHQSBQVEwyMXxQVDAwM3xQODAxMHxBRFI5MTBMfFA2MDMwfFA2MDIwfFA5MDcwfFA0MTAwfFA5MDYwfFA1MDAwfENETTg5OTJ8VFhUODA0NXxBRFI4OTk1fElTMTFQVHxQMjAzMHxQNjAxMHxQODAwMHxQVDAwMnxJUzA2fENETTg5OTl8UDkwNTB8UFQwMDF8VFhUODA0MHxQMjAyMHxQOTAyMHxQMjAwMHxQNzA0MHxQNzAwMHxDNzkwIixGbHk6IklRMjMwfElRNDQ0fElRNDUwfElRNDQwfElRNDQyfElRNDQxfElRMjQ1fElRMjU2fElRMjM2fElRMjU1fElRMjM1fElRMjQ1fElRMjc1fElRMjQwfElRMjg1fElRMjgwfElRMjcwfElRMjYwfElRMjUwIixXaWtvOiJLSVRFIDRHfEhJR0hXQVl8R0VUQVdBWXxTVEFJUldBWXxEQVJLU0lERXxEQVJLRlVMTHxEQVJLTklHSFR8REFSS01PT058U0xJREV8V0FYIDRHfFJBSU5CT1d8QkxPT018U1VOU0VUfEdPQSg/IW5uYSl8TEVOTll8QkFSUll8SUdHWXxPWlpZfENJTksgRklWRXxDSU5LIFBFQVh8Q0lOSyBQRUFYIDJ8Q0lOSyBTTElNfENJTksgU0xJTSAyfENJTksgK3xDSU5LIEtJTkd8Q0lOSyBQRUFYfENJTksgU0xJTXxTVUJMSU0iLGlNb2JpbGU6ImktbW9iaWxlIChJUXxpLVNUWUxFfGlkZWF8WkFBfEhpdHopIixTaW1WYWxsZXk6IlxiKFNQLTgwfFhULTkzMHxTWC0zNDB8WFQtOTMwfFNYLTMxMHxTUC0zNjB8U1A2MHxTUFQtODAwfFNQLTEyMHxTUFQtODAwfFNQLTE0MHxTUFgtNXxTUFgtOHxTUC0xMDB8U1BYLTh8U1BYLTEyKVxiIixXb2xmZ2FuZzoiQVQtQjI0RHxBVC1BUzUwSER8QVQtQVM0MFd8QVQtQVM1NUhEfEFULUFTNDVxMnxBVC1CMjZEfEFULUFTNTBRIixBbGNhdGVsOiJBbGNhdGVsIixOaW50ZW5kbzoiTmludGVuZG8gKDNEU3xTd2l0Y2gpIixBbW9pOiJBbW9pIixJTlE6IklOUSIsT25lUGx1czoiT05FUExVUyIsR2VuZXJpY1Bob25lOiJUYXBhdGFsa3xQREE7fFNBR0VNfFxibW1wXGJ8cG9ja2V0fFxicHNwXGJ8c3ltYmlhbnxTbWFydHBob25lfHNtYXJ0Zm9ufHRyZW98dXAuYnJvd3Nlcnx1cC5saW5rfHZvZGFmb25lfFxid2FwXGJ8bm9raWF8U2VyaWVzNDB8U2VyaWVzNjB8UzYwfFNvbnlFcmljc3NvbnxOOTAwfE1BVUkuKldBUC4qQnJvd3NlciJ9LHRhYmxldHM6e2lQYWQ6ImlQYWR8aVBhZC4qTW9iaWxlIixOZXh1c1RhYmxldDoiQW5kcm9pZC4qTmV4dXNbXHNdKyg3fDl8MTApIixHb29nbGVUYWJsZXQ6IkFuZHJvaWQuKlBpeGVsIEMiLFNhbXN1bmdUYWJsZXQ6IlNBTVNVTkcuKlRhYmxldHxHYWxheHkuKlRhYnxTQy0wMUN8R1QtUDEwMDB8R1QtUDEwMDN8R1QtUDEwMTB8R1QtUDMxMDV8R1QtUDYyMTB8R1QtUDY4MDB8R1QtUDY4MTB8R1QtUDcxMDB8R1QtUDczMDB8R1QtUDczMTB8R1QtUDc1MDB8R1QtUDc1MTB8U0NILUk4MDB8U0NILUk4MTV8U0NILUk5MDV8U0dILUk5NTd8U0dILUk5ODd8U0dILVQ4NDl8U0dILVQ4NTl8U0dILVQ4Njl8U1BILVAxMDB8R1QtUDMxMDB8R1QtUDMxMDh8R1QtUDMxMTB8R1QtUDUxMDB8R1QtUDUxMTB8R1QtUDYyMDB8R1QtUDczMjB8R1QtUDc1MTF8R1QtTjgwMDB8R1QtUDg1MTB8U0dILUk0OTd8U1BILVA1MDB8U0dILVQ3Nzl8U0NILUk3MDV8U0NILUk5MTV8R1QtTjgwMTN8R1QtUDMxMTN8R1QtUDUxMTN8R1QtUDgxMTB8R1QtTjgwMTB8R1QtTjgwMDV8R1QtTjgwMjB8R1QtUDEwMTN8R1QtUDYyMDF8R1QtUDc1MDF8R1QtTjUxMDB8R1QtTjUxMDV8R1QtTjUxMTB8U0hWLUUxNDBLfFNIVi1FMTQwTHxTSFYtRTE0MFN8U0hWLUUxNTBTfFNIVi1FMjMwS3xTSFYtRTIzMEx8U0hWLUUyMzBTfFNIVy1NMTgwS3xTSFctTTE4MEx8U0hXLU0xODBTfFNIVy1NMTgwV3xTSFctTTMwMFd8U0hXLU0zMDVXfFNIVy1NMzgwS3xTSFctTTM4MFN8U0hXLU0zODBXfFNIVy1NNDMwV3xTSFctTTQ4MEt8U0hXLU00ODBTfFNIVy1NNDgwV3xTSFctTTQ4NVd8U0hXLU00ODZXfFNIVy1NNTAwV3xHVC1JOTIyOHxTQ0gtUDczOXxTQ0gtSTkyNXxHVC1JOTIwMHxHVC1QNTIwMHxHVC1QNTIxMHxHVC1QNTIxMFh8U00tVDMxMXxTTS1UMzEwfFNNLVQzMTBYfFNNLVQyMTB8U00tVDIxMFJ8U00tVDIxMXxTTS1QNjAwfFNNLVA2MDF8U00tUDYwNXxTTS1QOTAwfFNNLVA5MDF8U00tVDIxN3xTTS1UMjE3QXxTTS1UMjE3U3xTTS1QNjAwMHxTTS1UMzEwMHxTR0gtSTQ2N3xYRTUwMHxTTS1UMTEwfEdULVA1MjIwfEdULUk5MjAwWHxHVC1ONTExMFh8R1QtTjUxMjB8U00tUDkwNXxTTS1UMTExfFNNLVQyMTA1fFNNLVQzMTV8U00tVDMyMHxTTS1UMzIwWHxTTS1UMzIxfFNNLVQ1MjB8U00tVDUyNXxTTS1UNTMwTlV8U00tVDIzME5VfFNNLVQzMzBOVXxTTS1UOTAwfFhFNTAwVDFDfFNNLVA2MDVWfFNNLVA5MDVWfFNNLVQzMzdWfFNNLVQ1MzdWfFNNLVQ3MDdWfFNNLVQ4MDdWfFNNLVA2MDBYfFNNLVA5MDBYfFNNLVQyMTBYfFNNLVQyMzB8U00tVDIzMFh8U00tVDMyNXxHVC1QNzUwM3xTTS1UNTMxfFNNLVQzMzB8U00tVDUzMHxTTS1UNzA1fFNNLVQ3MDVDfFNNLVQ1MzV8U00tVDMzMXxTTS1UODAwfFNNLVQ3MDB8U00tVDUzN3xTTS1UODA3fFNNLVA5MDdBfFNNLVQzMzdBfFNNLVQ1MzdBfFNNLVQ3MDdBfFNNLVQ4MDdBfFNNLVQyMzd8U00tVDgwN1B8U00tUDYwN1R8U00tVDIxN1R8U00tVDMzN1R8U00tVDgwN1R8U00tVDExNk5RfFNNLVQxMTZCVXxTTS1QNTUwfFNNLVQzNTB8U00tVDU1MHxTTS1UOTAwMHxTTS1QOTAwMHxTTS1UNzA1WXxTTS1UODA1fEdULVAzMTEzfFNNLVQ3MTB8U00tVDgxMHxTTS1UODE1fFNNLVQzNjB8U00tVDUzM3xTTS1UMTEzfFNNLVQzMzV8U00tVDcxNXxTTS1UNTYwfFNNLVQ2NzB8U00tVDY3N3xTTS1UMzc3fFNNLVQ1Njd8U00tVDM1N1R8U00tVDU1NXxTTS1UNTYxfFNNLVQ3MTN8U00tVDcxOXxTTS1UODEzfFNNLVQ4MTl8U00tVDU4MHxTTS1UMzU1WT98U00tVDI4MHxTTS1UODE3QXxTTS1UODIwfFNNLVc3MDB8U00tUDU4MHxTTS1UNTg3fFNNLVAzNTB8U00tUDU1NU18U00tUDM1NU18U00tVDExM05VfFNNLVQ4MTVZfFNNLVQ1ODV8U00tVDI4NXxTTS1UODI1fFNNLVc3MDh8U00tVDgzNXxTTS1UODMwfFNNLVQ4MzdWfFNNLVQ3MjB8U00tVDUxMHxTTS1UMzg3VnxTTS1QNjEwfFNNLVQyOTB8U00tVDUxNXxTTS1UNTkwfFNNLVQ1OTV8U00tVDcyNXxTTS1UODE3UHxTTS1QNTg1TjB8U00tVDM5NXxTTS1UMjk1fFNNLVQ4NjV8U00tUDYxME58U00tUDYxNXxTTS1UOTcwfFNNLVQzODB8U00tVDU5NTB8U00tVDkwNXxTTS1UMjMxfFNNLVQ1MDB8U00tVDg2MCIsS2luZGxlOiJLaW5kbGV8U2lsay4qQWNjZWxlcmF0ZWR8QW5kcm9pZC4qXGIoS0ZPVHxLRlRUfEtGSldJfEtGSldBfEtGT1RFfEtGU09XSXxLRlRIV0l8S0ZUSFdBfEtGQVBXSXxLRkFQV0F8V0ZKV0FFfEtGU0FXQXxLRlNBV0l8S0ZBU1dJfEtGQVJXSXxLRkZPV0l8S0ZHSVdJfEtGTUVXSSlcYnxBbmRyb2lkLipTaWxrL1swLTkuXSsgbGlrZSBDaHJvbWUvWzAtOS5dKyAoPyFNb2JpbGUpIixTdXJmYWNlVGFibGV0OiJXaW5kb3dzIE5UIFswLTkuXSs7IEFSTTsuKihUYWJsZXR8QVJNQkpTKSIsSFBUYWJsZXQ6IkhQIFNsYXRlICg3fDh8MTApfEhQIEVsaXRlUGFkIDkwMHxocC10YWJsZXR8RWxpdGVCb29rLipUb3VjaHxIUCA4fFNsYXRlIDIxfEhQIFNsYXRlQm9vayAxMCIsQXN1c1RhYmxldDoiXi4qUGFkRm9uZSgoPyFNb2JpbGUpLikqJHxUcmFuc2Zvcm1lcnxURjEwMXxURjEwMUd8VEYzMDBUfFRGMzAwVEd8VEYzMDBUTHxURjcwMFR8VEY3MDBLTHxURjcwMVR8VEY4MTBDfE1FMTcxfE1FMzAxVHxNRTMwMkN8TUUzNzFNR3xNRTM3MFR8TUUzNzJNR3xNRTE3MlZ8TUUxNzNYfE1FNDAwQ3xTbGlkZXIgU0wxMDF8XGJLMDBGXGJ8XGJLMDBDXGJ8XGJLMDBFXGJ8XGJLMDBMXGJ8VFgyMDFMQXxNRTE3NkN8TUUxMDJBfFxiTTgwVEFcYnxNRTM3MkNMfE1FNTYwQ0d8TUUzNzJDR3xNRTMwMktMfCBLMDEwIHwgSzAxMSB8IEswMTcgfCBLMDFFIHxNRTU3MkN8TUUxMDNLfE1FMTcwQ3xNRTE3MUN8XGJNRTcwQ1xifE1FNTgxQ3xNRTU4MUNMfE1FODUxMEN8TUUxODFDfFAwMVl8UE8xTUF8UDAxWnxcYlAwMjdcYnxcYlAwMjRcYnxcYlAwMENcYiIsQmxhY2tCZXJyeVRhYmxldDoiUGxheUJvb2t8UklNIFRhYmxldCIsSFRDdGFibGV0OiJIVENfRmx5ZXJfUDUxMnxIVEMgRmx5ZXJ8SFRDIEpldHN0cmVhbXxIVEMtUDcxNWF8SFRDIEVWTyBWaWV3IDRHfFBHNDEyMDB8UEcwOTQxMCIsTW90b3JvbGFUYWJsZXQ6Inhvb218c2hvbGVzdHxNWjYxNXxNWjYwNXxNWjUwNXxNWjYwMXxNWjYwMnxNWjYwM3xNWjYwNHxNWjYwNnxNWjYwN3xNWjYwOHxNWjYwOXxNWjYxNXxNWjYxNnxNWjYxNyIsTm9va1RhYmxldDoiQW5kcm9pZC4qTm9va3xOb29rQ29sb3J8bm9vayBicm93c2VyfEJOUlYyMDB8Qk5SVjIwMEF8Qk5UVjI1MHxCTlRWMjUwQXxCTlRWNDAwfEJOVFY2MDB8TG9naWNQRCBab29tMiIsQWNlclRhYmxldDoiQW5kcm9pZC4qOyBcYihBMTAwfEExMDF8QTExMHxBMjAwfEEyMTB8QTIxMXxBNTAwfEE1MDF8QTUxMHxBNTExfEE3MDB8QTcwMXxXNTAwfFc1MDBQfFc1MDF8VzUwMVB8VzUxMHxXNTExfFc3MDB8RzEwMHxHMTAwV3xCMS1BNzF8QjEtNzEwfEIxLTcxMXxBMS04MTB8QTEtODExfEExLTgzMClcYnxXMy04MTB8XGJBMy1BMTBcYnxcYkEzLUExMVxifFxiQTMtQTIwXGJ8XGJBMy1BMzB8QTMtQTQwIixUb3NoaWJhVGFibGV0OiJBbmRyb2lkLiooQVQxMDB8QVQxMDV8QVQyMDB8QVQyMDV8QVQyNzB8QVQyNzV8QVQzMDB8QVQzMDV8QVQxUzV8QVQ1MDB8QVQ1NzB8QVQ3MDB8QVQ4MzApfFRPU0hJQkEuKkZPTElPIixMR1RhYmxldDoiXGJMLTA2Q3xMRy1WOTA5fExHLVY5MDB8TEctVjcwMHxMRy1WNTEwfExHLVY1MDB8TEctVjQxMHxMRy1WNDAwfExHLVZLODEwXGIiLEZ1aml0c3VUYWJsZXQ6IkFuZHJvaWQuKlxiKEYtMDFEfEYtMDJGfEYtMDVFfEYtMTBEfE01MzJ8UTU3MilcYiIsUHJlc3RpZ2lvVGFibGV0OiJQTVAzMTcwQnxQTVAzMjcwQnxQTVAzNDcwQnxQTVA3MTcwQnxQTVAzMzcwQnxQTVAzNTcwQ3xQTVA1ODcwQ3xQTVAzNjcwQnxQTVA1NTcwQ3xQTVA1NzcwRHxQTVAzOTcwQnxQTVAzODcwQ3xQTVA1NTgwQ3xQTVA1ODgwRHxQTVA1NzgwRHxQTVA1NTg4Q3xQTVA3MjgwQ3xQTVA3MjgwQzNHfFBNUDcyODB8UE1QNzg4MER8UE1QNTU5N0R8UE1QNTU5N3xQTVA3MTAwRHxQRVIzNDY0fFBFUjMyNzR8UEVSMzU3NHxQRVIzODg0fFBFUjUyNzR8UEVSNTQ3NHxQTVA1MDk3Q1BST3xQTVA1MDk3fFBNUDczODBEfFBNUDUyOTdDfFBNUDUyOTdDX1FVQUR8UE1QODEyRXxQTVA4MTJFM0d8UE1QODEyRnxQTVA4MTBFfFBNUDg4MFREfFBNVDMwMTd8UE1UMzAzN3xQTVQzMDQ3fFBNVDMwNTd8UE1UNzAwOHxQTVQ1ODg3fFBNVDUwMDF8UE1UNTAwMiIsTGVub3ZvVGFibGV0OiJMZW5vdm8gVEFCfElkZWEoVGFifFBhZCkoIEExfEExMHwgSzF8KXxUaGlua1BhZChbIF0rKT9UYWJsZXR8WVQzLTg1ME18WVQzLVg5MEx8WVQzLVg5MEZ8WVQzLVg5MFh8TGVub3ZvLiooUzIxMDl8UzIxMTB8UzUwMDB8UzYwMDB8SzMwMTF8QTMwMDB8QTM1MDB8QTEwMDB8QTIxMDd8QTIxMDl8QTExMDd8QTU1MDB8QTc2MDB8QjYwMDB8QjgwMDB8QjgwODApKC18KShGTHxGfEhWfEh8KXxUQi1YMTAzRnxUQi1YMzA0WHxUQi1YMzA0RnxUQi1YMzA0THxUQi1YNTA1RnxUQi1YNTA1THxUQi1YNTA1WHxUQi1YNjA1RnxUQi1YNjA1THxUQi04NzAzRnxUQi04NzAzWHxUQi04NzAzTnxUQi04NzA0TnxUQi04NzA0RnxUQi04NzA0WHxUQi04NzA0VnxUQi03MzA0RnxUQi03MzA0SXxUQi03MzA0WHxUYWIyQTctMTBGfFRhYjJBNy0yMEZ8VEIyLVgzMEx8WVQzLVg1MEx8WVQzLVg1MEZ8WVQzLVg1ME18WVQtWDcwNUZ8WVQtWDcwM0Z8WVQtWDcwM0x8WVQtWDcwNUx8WVQtWDcwNVh8VEIyLVgzMEZ8VEIyLVgzMEx8VEIyLVgzME18QTIxMDdBLUZ8QTIxMDdBLUh8VEIzLTczMEZ8VEIzLTczME18VEIzLTczMFh8VEItNzUwNEZ8VEItNzUwNFh8VEItWDcwNEZ8VEItWDEwNEZ8VEIzLVg3MEZ8VEItWDcwNUZ8VEItODUwNEZ8VEIzLVg3MEx8VEIzLTcxMEZ8VEItWDcwNEwiLERlbGxUYWJsZXQ6IlZlbnVlIDExfFZlbnVlIDh8VmVudWUgN3xEZWxsIFN0cmVhayAxMHxEZWxsIFN0cmVhayA3IixZYXJ2aWtUYWJsZXQ6IkFuZHJvaWQuKlxiKFRBQjIxMHxUQUIyMTF8VEFCMjI0fFRBQjI1MHxUQUIyNjB8VEFCMjY0fFRBQjMxMHxUQUIzNjB8VEFCMzY0fFRBQjQxMHxUQUI0MTF8VEFCNDIwfFRBQjQyNHxUQUI0NTB8VEFCNDYwfFRBQjQ2MXxUQUI0NjR8VEFCNDY1fFRBQjQ2N3xUQUI0Njh8VEFCMDctMTAwfFRBQjA3LTEwMXxUQUIwNy0xNTB8VEFCMDctMTUxfFRBQjA3LTE1MnxUQUIwNy0yMDB8VEFCMDctMjAxLTNHfFRBQjA3LTIxMHxUQUIwNy0yMTF8VEFCMDctMjEyfFRBQjA3LTIxNHxUQUIwNy0yMjB8VEFCMDctNDAwfFRBQjA3LTQ4NXxUQUIwOC0xNTB8VEFCMDgtMjAwfFRBQjA4LTIwMS0zR3xUQUIwOC0yMDEtMzB8VEFCMDktMTAwfFRBQjA5LTIxMXxUQUIwOS00MTB8VEFCMTAtMTUwfFRBQjEwLTIwMXxUQUIxMC0yMTF8VEFCMTAtNDAwfFRBQjEwLTQxMHxUQUIxMy0yMDF8VEFCMjc0RVVLfFRBQjI3NUVVS3xUQUIzNzRFVUt8VEFCNDYyRVVLfFRBQjQ3NEVVS3xUQUI5LTIwMClcYiIsTWVkaW9uVGFibGV0OiJBbmRyb2lkLipcYk9ZT1xifExJRkUuKihQOTIxMnxQOTUxNHxQOTUxNnxTOTUxMil8TElGRVRBQiIsQXJub3ZhVGFibGV0OiI5N0c0fEFOMTBHMnxBTjdiRzN8QU43ZkczfEFOOEczfEFOOGNHM3xBTjdHM3xBTjlHM3xBTjdkRzN8QU43ZEczU1R8QU43ZEczQ2hpbGRQYWR8QU4xMGJHM3xBTjEwYkczRFR8QU45RzIiLEludGVuc29UYWJsZXQ6IklOTTgwMDJLUHxJTk0xMDEwRlB8SU5NODA1TkR8SW50ZW5zbyBUYWJ8VEFCMTAwNCIsSVJVVGFibGV0OiJNNzAycHJvIixNZWdhZm9uVGFibGV0OiJNZWdhRm9uIFY5fFxiWlRFIFY5XGJ8QW5kcm9pZC4qXGJNVDdBXGIiLEVib2RhVGFibGV0OiJFLUJvZGEgKFN1cHJlbWV8SW1wcmVzc3BlZWR8SXp6eWNvbW18RXNzZW50aWFsKSIsQWxsVmlld1RhYmxldDoiQWxsdmlldy4qKFZpdmF8QWxsZHJvfENpdHl8U3BlZWR8QWxsIFRWfEZyZW56eXxRdWFzYXJ8U2hpbmV8VFgxfEFYMXxBWDIpIixBcmNob3NUYWJsZXQ6IlxiKDEwMUc5fDgwRzl8QTEwMUlUKVxifFFpbGl2ZSA5N1J8QXJjaG9zNXxcYkFSQ0hPUyAoNzB8Nzl8ODB8OTB8OTd8MTAxfEZBTUlMWVBBRHwpKGJ8Y3wpKEcxMHwgQ29iYWx0fCBUSVRBTklVTShIRHwpfCBYZW5vbnwgTmVvbnxYU0t8IDJ8IFhTIDJ8IFBMQVRJTlVNfCBDQVJCT058R0FNRVBBRClcYiIsQWlub2xUYWJsZXQ6Ik5PVk83fE5PVk84fE5PVk8xMHxOb3ZvN0F1cm9yYXxOb3ZvN0Jhc2ljfE5PVk83UEFMQURJTnxub3ZvOS1TcGFyayIsTm9raWFMdW1pYVRhYmxldDoiTHVtaWEgMjUyMCIsU29ueVRhYmxldDoiU29ueS4qVGFibGV0fFhwZXJpYSBUYWJsZXR8U29ueSBUYWJsZXQgU3xTTy0wM0V8U0dQVDEyfFNHUFQxM3xTR1BUMTE0fFNHUFQxMjF8U0dQVDEyMnxTR1BUMTIzfFNHUFQxMTF8U0dQVDExMnxTR1BUMTEzfFNHUFQxMzF8U0dQVDEzMnxTR1BUMTMzfFNHUFQyMTF8U0dQVDIxMnxTR1BUMjEzfFNHUDMxMXxTR1AzMTJ8U0dQMzIxfEVCUkQxMTAxfEVCUkQxMTAyfEVCUkQxMjAxfFNHUDM1MXxTR1AzNDF8U0dQNTExfFNHUDUxMnxTR1A1MjF8U0dQNTQxfFNHUDU1MXxTR1A2MjF8U0dQNjQxfFNHUDYxMnxTT1QzMXxTR1A3NzF8U0dQNjExfFNHUDYxMnxTR1A3MTIiLFBoaWxpcHNUYWJsZXQ6IlxiKFBJMjAxMHxQSTMwMDB8UEkzMTAwfFBJMzEwNXxQSTMxMTB8UEkzMjA1fFBJMzIxMHxQSTM5MDB8UEk0MDEwfFBJNzAwMHxQSTcxMDApXGIiLEN1YmVUYWJsZXQ6IkFuZHJvaWQuKihLOEdUfFU5R1R8VTEwR1R8VTE2R1R8VTE3R1R8VTE4R1R8VTE5R1R8VTIwR1R8VTIzR1R8VTMwR1QpfENVQkUgVThHVCIsQ29ieVRhYmxldDoiTUlEMTA0MnxNSUQxMDQ1fE1JRDExMjV8TUlEMTEyNnxNSUQ3MDEyfE1JRDcwMTR8TUlENzAxNXxNSUQ3MDM0fE1JRDcwMzV8TUlENzAzNnxNSUQ3MDQyfE1JRDcwNDh8TUlENzEyN3xNSUQ4MDQyfE1JRDgwNDh8TUlEODEyN3xNSUQ5MDQyfE1JRDk3NDB8TUlEOTc0MnxNSUQ3MDIyfE1JRDcwMTAiLE1JRFRhYmxldDoiTTk3MDF8TTkwMDB8TTkxMDB8TTgwNnxNMTA1MnxNODA2fFQ3MDN8TUlENzAxfE1JRDcxM3xNSUQ3MTB8TUlENzI3fE1JRDc2MHxNSUQ4MzB8TUlENzI4fE1JRDkzM3xNSUQxMjV8TUlEODEwfE1JRDczMnxNSUQxMjB8TUlEOTMwfE1JRDgwMHxNSUQ3MzF8TUlEOTAwfE1JRDEwMHxNSUQ4MjB8TUlENzM1fE1JRDk4MHxNSUQxMzB8TUlEODMzfE1JRDczN3xNSUQ5NjB8TUlEMTM1fE1JRDg2MHxNSUQ3MzZ8TUlEMTQwfE1JRDkzMHxNSUQ4MzV8TUlENzMzfE1JRDRYMTAiLE1TSVRhYmxldDoiTVNJIFxiKFByaW1vIDczS3xQcmltbyA3M0x8UHJpbW8gODFMfFByaW1vIDc3fFByaW1vIDkzfFByaW1vIDc1fFByaW1vIDc2fFByaW1vIDczfFByaW1vIDgxfFByaW1vIDkxfFByaW1vIDkwfEVuam95IDcxfEVuam95IDd8RW5qb3kgMTApXGIiLFNNaVRUYWJsZXQ6IkFuZHJvaWQuKihcYk1JRFxifE1JRC01NjB8TVRWLVQxMjAwfE1UVi1QTkQ1MzF8TVRWLVAxMTAxfE1UVi1QTkQ1MzApIixSb2NrQ2hpcFRhYmxldDoiQW5kcm9pZC4qKFJLMjgxOHxSSzI4MDhBfFJLMjkxOHxSSzMwNjYpfFJLMjczOHxSSzI4MDhBIixGbHlUYWJsZXQ6IklRMzEwfEZseSBWaXNpb24iLGJxVGFibGV0OiJBbmRyb2lkLiooYnEpPy4qXGIoRWxjYW5vfEN1cmllfEVkaXNvbnxNYXh3ZWxsfEtlcGxlcnxQYXNjYWx8VGVzbGF8SHlwYXRpYXxQbGF0b258TmV3dG9ufExpdmluZ3N0b25lfENlcnZhbnRlc3xBdmFudHxBcXVhcmlzIChbRXxNXTEwfE04KSlcYnxNYXh3ZWxsLipMaXRlfE1heHdlbGwuKlBsdXMiLEh1YXdlaVRhYmxldDoiTWVkaWFQYWR8TWVkaWFQYWQgNyBZb3V0aHxJREVPUyBTN3xTNy0yMDFjfFM3LTIwMnV8UzctMTAxfFM3LTEwM3xTNy0xMDR8UzctMTA1fFM3LTEwNnxTNy0yMDF8UzctU2xpbXxNMi1BMDFMfEJBSC1MMDl8QkFILVcwOXxBR1MtTDA5fENNUi1BTDE5IixOZWNUYWJsZXQ6IlxiTi0wNkR8XGJOLTA4RCIsUGFudGVjaFRhYmxldDoiUGFudGVjaC4qUDQxMDAiLEJyb25jaG9UYWJsZXQ6IkJyb25jaG8uKihONzAxfE43MDh8TjgwMnxhNzEwKSIsVmVyc3VzVGFibGV0OiJUT1VDSFBBRC4qWzc4OTEwXXxcYlRPVUNIVEFCXGIiLFp5bmNUYWJsZXQ6InoxMDAwfFo5OSAyR3x6OTMwfHo5OTB8ejkwOXxaOTE5fHo5MDAiLFBvc2l0aXZvVGFibGV0OiJUQjA3U1RBfFRCMTBTVEF8VEIwN0ZUQXxUQjEwRlRBIixOYWJpVGFibGV0OiJBbmRyb2lkLipcYk5hYmkiLEtvYm9UYWJsZXQ6IktvYm8gVG91Y2h8XGJLMDgwXGJ8XGJWb3hcYiBCdWlsZHxcYkFyY1xiIEJ1aWxkIixEYW5ld1RhYmxldDoiRFNsaWRlLipcYig3MDB8NzAxUnw3MDJ8NzAzUnw3MDR8ODAyfDk3MHw5NzF8OTcyfDk3M3w5NzR8MTAxMHwxMDEyKVxiIixUZXhldFRhYmxldDoiTmF2aVBhZHxUQi03NzJBfFRNLTcwNDV8VE0tNzA1NXxUTS05NzUwfFRNLTcwMTZ8VE0tNzAyNHxUTS03MDI2fFRNLTcwNDF8VE0tNzA0M3xUTS03MDQ3fFRNLTgwNDF8VE0tOTc0MXxUTS05NzQ3fFRNLTk3NDh8VE0tOTc1MXxUTS03MDIyfFRNLTcwMjF8VE0tNzAyMHxUTS03MDExfFRNLTcwMTB8VE0tNzAyM3xUTS03MDI1fFRNLTcwMzdXfFRNLTcwMzhXfFRNLTcwMjdXfFRNLTk3MjB8VE0tOTcyNXxUTS05NzM3V3xUTS0xMDIwfFRNLTk3MzhXfFRNLTk3NDB8VE0tOTc0M1d8VEItODA3QXxUQi03NzFBfFRCLTcyN0F8VEItNzI1QXxUQi03MTlBfFRCLTgyM0F8VEItODA1QXxUQi03MjNBfFRCLTcxNUF8VEItNzA3QXxUQi03MDVBfFRCLTcwOUF8VEItNzExQXxUQi04OTBIRHxUQi04ODBIRHxUQi03OTBIRHxUQi03ODBIRHxUQi03NzBIRHxUQi03MjFIRHxUQi03MTBIRHxUQi00MzRIRHxUQi04NjBIRHxUQi04NDBIRHxUQi03NjBIRHxUQi03NTBIRHxUQi03NDBIRHxUQi03MzBIRHxUQi03MjJIRHxUQi03MjBIRHxUQi03MDBIRHxUQi01MDBIRHxUQi00NzBIRHxUQi00MzFIRHxUQi00MzBIRHxUQi01MDZ8VEItNTA0fFRCLTQ0NnxUQi00MzZ8VEItNDE2fFRCLTE0NlNFfFRCLTEyNlNFIixQbGF5c3RhdGlvblRhYmxldDoiUGxheXN0YXRpb24uKihQb3J0YWJsZXxWaXRhKSIsVHJla3N0b3JUYWJsZXQ6IlNUMTA0MTYtMXxWVDEwNDE2LTF8U1Q3MDQwOC0xfFNUNzAyeHgtMXxTVDcwMnh4LTJ8U1Q4MDIwOHxTVDk3MjE2fFNUNzAxMDQtMnxWVDEwNDE2LTJ8U1QxMDIxNi0yQXxTdXJmVGFiIixQeWxlQXVkaW9UYWJsZXQ6IlxiKFBUQkwxMENFVXxQVEJMMTBDfFBUQkw3MkJDfFBUQkw3MkJDRVV8UFRCTDdDRVV8UFRCTDdDfFBUQkw5MkJDfFBUQkw5MkJDRVV8UFRCTDlDRVV8UFRCTDlDVUt8UFRCTDlDKVxiIixBZHZhblRhYmxldDoiQW5kcm9pZC4qIFxiKEUzQXxUM1h8VDVDfFQ1QnxUM0V8VDNDfFQzQnxUMUp8VDFGfFQyQXxUMUh8VDFpfEUxQ3xUMS1FfFQ1LUF8VDR8RTEtQnxUMkNpfFQxLUJ8VDEtRHxPMS1BfEUxLUF8VDEtQXxUM0F8VDRpKVxiICIsRGFueVRlY2hUYWJsZXQ6Ikdlbml1cyBUYWIgRzN8R2VuaXVzIFRhYiBTMnxHZW5pdXMgVGFiIFEzfEdlbml1cyBUYWIgRzR8R2VuaXVzIFRhYiBRNHxHZW5pdXMgVGFiIEctSUl8R2VuaXVzIFRBQiBHSUl8R2VuaXVzIFRBQiBHSUlJfEdlbml1cyBUYWIgUzEiLEdhbGFwYWRUYWJsZXQ6IkFuZHJvaWQgWzAtOS5dKzsgW2Etei1dKzsgXGJHMVxiIixNaWNyb21heFRhYmxldDoiRnVuYm9va3xNaWNyb21heC4qXGIoUDI1MHxQNTYwfFAzNjB8UDM2MnxQNjAwfFAzMDB8UDM1MHxQNTAwfFAyNzUpXGIiLEthcmJvbm5UYWJsZXQ6IkFuZHJvaWQuKlxiKEEzOXxBMzd8QTM0fFNUOHxTVDEwfFNUN3xTbWFydCBUYWIzfFNtYXJ0IFRhYjIpXGIiLEFsbEZpbmVUYWJsZXQ6IkZpbmU3IEdlbml1c3xGaW5lNyBTaGluZXxGaW5lNyBBaXJ8RmluZTggU3R5bGV8RmluZTkgTW9yZXxGaW5lMTAgSm95fEZpbmUxMSBXaWRlIixQUk9TQ0FOVGFibGV0OiJcYihQRU02M3xQTFQxMDIzR3xQTFQxMDQxfFBMVDEwNDR8UExUMTA0NEd8UExUMTA5MXxQTFQ0MzExfFBMVDQzMTFQTHxQTFQ0MzE1fFBMVDcwMzB8UExUNzAzM3xQTFQ3MDMzRHxQTFQ3MDM1fFBMVDcwMzVEfFBMVDcwNDRLfFBMVDcwNDVLfFBMVDcwNDVLQnxQTFQ3MDcxS0d8UExUNzA3MnxQTFQ3MjIzR3xQTFQ3MjI1R3xQTFQ3Nzc3R3xQTFQ3ODEwS3xQTFQ3ODQ5R3xQTFQ3ODUxR3xQTFQ3ODUyR3xQTFQ4MDE1fFBMVDgwMzF8UExUODAzNHxQTFQ4MDM2fFBMVDgwODBLfFBMVDgwODJ8UExUODA4OHxQTFQ4MjIzR3xQTFQ4MjM0R3xQTFQ4MjM1R3xQTFQ4ODE2S3xQTFQ5MDExfFBMVDkwNDVLfFBMVDkyMzNHfFBMVDk3MzV8UExUOTc2MEd8UExUOTc3MEcpXGIiLFlPTkVTVGFibGV0OiJCUTEwNzh8QkMxMDAzfEJDMTA3N3xSSzk3MDJ8QkM5NzMwfEJDOTAwMXxJVDkwMDF8QkM3MDA4fEJDNzAxMHxCQzcwOHxCQzcyOHxCQzcwMTJ8QkM3MDMwfEJDNzAyN3xCQzcwMjYiLENoYW5nSmlhVGFibGV0OiJUUEM3MTAyfFRQQzcxMDN8VFBDNzEwNXxUUEM3MTA2fFRQQzcxMDd8VFBDNzIwMXxUUEM3MjAzfFRQQzcyMDV8VFBDNzIxMHxUUEM3NzA4fFRQQzc3MDl8VFBDNzcxMnxUUEM3MTEwfFRQQzgxMDF8VFBDODEwM3xUUEM4MTA1fFRQQzgxMDZ8VFBDODIwM3xUUEM4MjA1fFRQQzg1MDN8VFBDOTEwNnxUUEM5NzAxfFRQQzk3MTAxfFRQQzk3MTAzfFRQQzk3MTA1fFRQQzk3MTA2fFRQQzk3MTExfFRQQzk3MTEzfFRQQzk3MjAzfFRQQzk3NjAzfFRQQzk3ODA5fFRQQzk3MjA1fFRQQzEwMTAxfFRQQzEwMTAzfFRQQzEwMTA2fFRQQzEwMTExfFRQQzEwMjAzfFRQQzEwMjA1fFRQQzEwNTAzIixHVVRhYmxldDoiVFgtQTEzMDF8VFgtTTkwMDJ8UTcwMnxrZjAyNiIsUG9pbnRPZlZpZXdUYWJsZXQ6IlRBQi1QNTA2fFRBQi1uYXZpLTctM0ctTXxUQUItUDUxN3xUQUItUC01Mjd8VEFCLVA3MDF8VEFCLVA3MDN8VEFCLVA3MjF8VEFCLVA3MzFOfFRBQi1QNzQxfFRBQi1QODI1fFRBQi1QOTA1fFRBQi1QOTI1fFRBQi1QUjk0NXxUQUItUEwxMDE1fFRBQi1QMTAyNXxUQUItUEkxMDQ1fFRBQi1QMTMyNXxUQUItUFJPVEFCWzAtOV0rfFRBQi1QUk9UQUIyNXxUQUItUFJPVEFCMjZ8VEFCLVBST1RBQjI3fFRBQi1QUk9UQUIyNlhMfFRBQi1QUk9UQUIyLUlQUzl8VEFCLVBST1RBQjMwLUlQUzl8VEFCLVBST1RBQjI1WFhMfFRBQi1QUk9UQUIyNi1JUFMxMHxUQUItUFJPVEFCMzAtSVBTMTAiLE92ZXJtYXhUYWJsZXQ6Ik9WLShTdGVlbENvcmV8TmV3QmFzZXxCYXNlY29yZXxCYXNlb25lfEV4ZWxsZW58UXVhdHRvcnxFZHVUYWJ8U29sdXRpb258QUNUSU9OfEJhc2ljVGFifFRlZGR5VGFifE1hZ2ljVGFifFN0cmVhbXxUQi0wOHxUQi0wOSl8UXVhbGNvcmUgMTAyNyIsSENMVGFibGV0OiJIQ0wuKlRhYmxldHxDb25uZWN0LTNHLTIuMHxDb25uZWN0LTJHLTIuMHxNRSBUYWJsZXQgVTF8TUUgVGFibGV0IFUyfE1FIFRhYmxldCBHMXxNRSBUYWJsZXQgWDF8TUUgVGFibGV0IFkyfE1FIFRhYmxldCBTeW5jIixEUFNUYWJsZXQ6IkRQUyBEcmVhbSA5fERQUyBEdWFsIDciLFZpc3R1cmVUYWJsZXQ6IlY5NyBIRHxpNzUgM0d8VmlzdHVyZSBWNCggSEQpP3xWaXN0dXJlIFY1KCBIRCk/fFZpc3R1cmUgVjEwIixDcmVzdGFUYWJsZXQ6IkNUUCgtKT84MTB8Q1RQKC0pPzgxOHxDVFAoLSk/ODI4fENUUCgtKT84Mzh8Q1RQKC0pPzg4OHxDVFAoLSk/OTc4fENUUCgtKT85ODB8Q1RQKC0pPzk4N3xDVFAoLSk/OTg4fENUUCgtKT85ODkiLE1lZGlhdGVrVGFibGV0OiJcYk1UODEyNXxNVDgzODl8TVQ4MTM1fE1UODM3N1xiIixDb25jb3JkZVRhYmxldDoiQ29uY29yZGUoWyBdKyk/VGFifENvbkNvcmRlIFJlYWRNYW4iLEdvQ2xldmVyVGFibGV0OiJHT0NMRVZFUiBUQUJ8QTdHT0NMRVZFUnxNMTA0MnxNNzg0MXxNNzQyfFIxMDQyQkt8UjEwNDF8VEFCIEE5NzV8VEFCIEE3ODQyfFRBQiBBNzQxfFRBQiBBNzQxTHxUQUIgTTcyM0d8VEFCIE03MjF8VEFCIEExMDIxfFRBQiBJOTIxfFRBQiBSNzIxfFRBQiBJNzIwfFRBQiBUNzZ8VEFCIFI3MHxUQUIgUjc2LjJ8VEFCIFIxMDZ8VEFCIFI4My4yfFRBQiBNODEzR3xUQUIgSTcyMXxHQ1RBNzIyfFRBQiBJNzB8VEFCIEk3MXxUQUIgUzczfFRBQiBSNzN8VEFCIFI3NHxUQUIgUjkzfFRBQiBSNzV8VEFCIFI3Ni4xfFRBQiBBNzN8VEFCIEE5M3xUQUIgQTkzLjJ8VEFCIFQ3MnxUQUIgUjgzfFRBQiBSOTc0fFRBQiBSOTczfFRBQiBBMTAxfFRBQiBBMTAzfFRBQiBBMTA0fFRBQiBBMTA0LjJ8UjEwNUJLfE03MTNHfEE5NzJCS3xUQUIgQTk3MXxUQUIgUjk3NC4yfFRBQiBSMTA0fFRBQiBSODMuM3xUQUIgQTEwNDIiLE1vZGVjb21UYWJsZXQ6IkZyZWVUQUIgOTAwMHxGcmVlVEFCIDcuNHxGcmVlVEFCIDcwMDR8RnJlZVRBQiA3ODAwfEZyZWVUQUIgMjA5NnxGcmVlVEFCIDcuNXxGcmVlVEFCIDEwMTR8RnJlZVRBQiAxMDAxIHxGcmVlVEFCIDgwMDF8RnJlZVRBQiA5NzA2fEZyZWVUQUIgOTcwMnxGcmVlVEFCIDcwMDN8RnJlZVRBQiA3MDAyfEZyZWVUQUIgMTAwMnxGcmVlVEFCIDc4MDF8RnJlZVRBQiAxMzMxfEZyZWVUQUIgMTAwNHxGcmVlVEFCIDgwMDJ8RnJlZVRBQiA4MDE0fEZyZWVUQUIgOTcwNHxGcmVlVEFCIDEwMDMiLFZvbmlub1RhYmxldDoiXGIoQXJndXNbIF9dP1N8RGlhbW9uZFsgX10/NzlIRHxFbWVyYWxkWyBfXT83OEV8THVuYVsgX10/NzBDfE9ueXhbIF9dP1N8T255eFsgX10/WnxPcmluWyBfXT9IRHxPcmluWyBfXT9TfE90aXNbIF9dP1N8U3BlZWRTdGFyWyBfXT9TfE1hZ25ldFsgX10/TTl8UHJpbXVzWyBfXT85NFsgX10/M0d8UHJpbXVzWyBfXT85NEhEfFByaW11c1sgX10/UVN8QW5kcm9pZC4qXGJROFxifFNpcml1c1sgX10/RVZPWyBfXT9RU3xTaXJpdXNbIF9dP1FTfFNwaXJpdFsgX10/UylcYiIsRUNTVGFibGV0OiJWMDdPVDJ8VE0xMDVBfFMxME9UMXxUUjEwQ1MxIixTdG9yZXhUYWJsZXQ6ImVaZWVbXyddPyhUYWJ8R28pWzAtOV0rfFRhYkxDN3xMb29uZXkgVHVuZXMgVGFiIixWb2RhZm9uZVRhYmxldDoiU21hcnRUYWIoWyBdKyk/WzAtOV0rfFNtYXJ0VGFiSUkxMHxTbWFydFRhYklJN3xWRi0xNDk3fFZGRCAxNDAwIixFc3NlbnRpZWxCVGFibGV0OiJTbWFydFsgJ10/VEFCWyBdKz9bMC05XSt8RmFtaWx5WyAnXT9UQUIyIixSb3NzTW9vclRhYmxldDoiUk0tNzkwfFJNLTk5N3xSTUQtODc4R3xSTUQtOTc0UnxSTVQtNzA1QXxSTVQtNzAxfFJNRS02MDF8Uk1ULTUwMXxSTVQtNzExIixpTW9iaWxlVGFibGV0OiJpLW1vYmlsZSBpLW5vdGUiLFRvbGlub1RhYmxldDoidG9saW5vIHRhYiBbMC05Ll0rfHRvbGlubyBzaGluZSIsQXVkaW9Tb25pY1RhYmxldDoiXGJDLTIyUXxUNy1RQ3xULTE3QnxULTE3UFxiIixBTVBFVGFibGV0OiJBbmRyb2lkLiogQTc4ICIsU2trVGFibGV0OiJBbmRyb2lkLiogKFNLWVBBRHxQSE9FTklYfENZQ0xPUFMpIixUZWNub1RhYmxldDoiVEVDTk8gUDl8VEVDTk8gRFA4RCIsSlhEVGFibGV0OiJBbmRyb2lkLiogXGIoRjMwMDB8QTMzMDB8SlhENTAwMHxKWEQzMDAwfEpYRDIwMDB8SlhEMzAwQnxKWEQzMDB8UzU4MDB8Uzc4MDB8UzYwMmJ8UzUxMTBifFM3MzAwfFM1MzAwfFM2MDJ8UzYwM3xTNTEwMHxTNTExMHxTNjAxfFM3MTAwYXxQMzAwMEZ8UDMwMDBzfFAxMDF8UDIwMHN8UDEwMDBtfFAyMDBtfFA5MTAwfFAxMDAwc3xTNjYwMGJ8UzkwOHxQMTAwMHxQMzAwfFMxOHxTNjYwMHxTOTEwMClcYiIsaUpveVRhYmxldDoiVGFibGV0IChTcGlyaXQgN3xFc3NlbnRpYXxHYWxhdGVhfEZ1c2lvbnxPbml4IDd8TGFuZGF8VGl0YW58U2Nvb2J5fERlb3h8U3RlbGxhfFRoZW1pc3xBcmdvbnxVbmlxdWUgN3xTeWdudXN8SGV4ZW58RmluaXR5IDd8Q3JlYW18Q3JlYW0gWDJ8SmFkZXxOZW9uIDd8TmVyb24gN3xLYW5keXxTY2FwZXxTYXBoeXIgN3xSZWJlbHxCaW94fFJlYmVsfFJlYmVsIDhHQnxNeXN0fERyYWNvIDd8TXlzdHxUYWI3LTAwNHxNeXN0fFRhZGVvIEpvbmVzfFRhYmxldCBCb2luZ3xBcnJvd3xEcmFjbyBEdWFsIENhbXxBdXJpeHxNaW50fEFtaXR5fFJldm9sdXRpb258RmluaXR5IDl8TmVvbiA5fFQ5d3xBbWl0eSA0R0IgRHVhbCBDYW18U3RvbmUgNEdCfFN0b25lIDhHQnxBbmRyb21lZGF8U2lsa2VufFgyfEFuZHJvbWVkYSBJSXxIYWxsZXl8RmxhbWV8U2FwaHlyIDksN3xUb3VjaCA4fFBsYW5ldHxUcml0b258VW5pcXVlIDEwfEhleGVuIDEwfE1lbXBoaXMgNEdCfE1lbXBoaXMgOEdCfE9uaXggMTApIixGWDJUYWJsZXQ6IkZYMiBQQUQ3fEZYMiBQQUQxMCIsWG9yb1RhYmxldDoiS2lkc1BBRCA3MDF8UEFEWyBdPzcxMnxQQURbIF0/NzE0fFBBRFsgXT83MTZ8UEFEWyBdPzcxN3xQQURbIF0/NzE4fFBBRFsgXT83MjB8UEFEWyBdPzcyMXxQQURbIF0/NzIyfFBBRFsgXT83OTB8UEFEWyBdPzc5MnxQQURbIF0/OTAwfFBBRFsgXT85NzE1RHxQQURbIF0/OTcxNkRSfFBBRFsgXT85NzE4RFJ8UEFEWyBdPzk3MTlRUnxQQURbIF0/OTcyMFFSfFRlbGVQQUQxMDMwfFRlbGVwYWQxMDMyfFRlbGVQQUQ3MzB8VGVsZVBBRDczMXxUZWxlUEFENzMyfFRlbGVQQUQ3MzVRfFRlbGVQQUQ4MzB8VGVsZVBBRDk3MzB8VGVsZVBBRDc5NXxNZWdhUEFEIDEzMzF8TWVnYVBBRCAxODUxfE1lZ2FQQUQgMjE1MSIsVmlld3NvbmljVGFibGV0OiJWaWV3UGFkIDEwcGl8Vmlld1BhZCAxMGV8Vmlld1BhZCAxMHN8Vmlld1BhZCBFNzJ8Vmlld1BhZDd8Vmlld1BhZCBFMTAwfFZpZXdQYWQgN2V8Vmlld1NvbmljIFZCNzMzfFZCMTAwYSIsVmVyaXpvblRhYmxldDoiUVRBUVozfFFUQUlSN3xRVEFRVFozfFFUQVNVTjF8UVRBU1VOMnxRVEFYSUExIixPZHlzVGFibGV0OiJMT09YfFhFTk8xMHxPRFlTWyAtXShTcGFjZXxFVk98WHByZXNzfE5PT04pfFxiWEVMSU9cYnxYZWxpbzEwUHJvfFhFTElPN1BIT05FVEFCfFhFTElPMTBFWFRSRU1FfFhFTElPUFQyfE5FT19RVUFEMTAiLENhcHRpdmFUYWJsZXQ6IkNBUFRJVkEgUEFEIixJY29uYml0VGFibGV0OiJOZXRUQUJ8TlQtMzcwMnxOVC0zNzAyU3xOVC0zNzAyU3xOVC0zNjAzUHxOVC0zNjAzUHxOVC0wNzA0U3xOVC0wNzA0U3xOVC0zODA1Q3xOVC0zODA1Q3xOVC0wODA2Q3xOVC0wODA2Q3xOVC0wOTA5VHxOVC0wOTA5VHxOVC0wOTA3U3xOVC0wOTA3U3xOVC0wOTAyU3xOVC0wOTAyUyIsVGVjbGFzdFRhYmxldDoiVDk4IDRHfFxiUDgwXGJ8XGJYOTBIRFxifFg5OCBBaXJ8WDk4IEFpciAzR3xcYlg4OVxifFA4MCAzR3xcYlg4MGhcYnxQOTggQWlyfFxiWDg5SERcYnxQOTggM0d8XGJQOTBIRFxifFA4OSAzR3xYOTggM0d8XGJQNzBoXGJ8UDc5SEQgM0d8RzE4ZCAzR3xcYlA3OUhEXGJ8XGJQODlzXGJ8XGJBODhcYnxcYlAxMEhEXGJ8XGJQMTlIRFxifEcxOCAzR3xcYlA3OEhEXGJ8XGJBNzhcYnxcYlA3NVxifEcxN3MgM0d8RzE3aCAzR3xcYlA4NXRcYnxcYlA5MFxifFxiUDExXGJ8XGJQOTh0XGJ8XGJQOThIRFxifFxiRzE4ZFxifFxiUDg1c1xifFxiUDExSERcYnxcYlA4OHNcYnxcYkE4MEhEXGJ8XGJBODBzZVxifFxiQTEwaFxifFxiUDg5XGJ8XGJQNzhzXGJ8XGJHMThcYnxcYlA4NVxifFxiQTcwaFxifFxiQTcwXGJ8XGJHMTdcYnxcYlAxOFxifFxiQTgwc1xifFxiQTExc1xifFxiUDg4SERcYnxcYkE4MGhcYnxcYlA3NnNcYnxcYlA3NmhcYnxcYlA5OFxifFxiQTEwSERcYnxcYlA3OFxifFxiUDg4XGJ8XGJBMTFcYnxcYkExMHRcYnxcYlA3NmFcYnxcYlA3NnRcYnxcYlA3NmVcYnxcYlA4NUhEXGJ8XGJQODVhXGJ8XGJQODZcYnxcYlA3NUhEXGJ8XGJQNzZ2XGJ8XGJBMTJcYnxcYlA3NWFcYnxcYkExNVxifFxiUDc2VGlcYnxcYlA4MUhEXGJ8XGJBMTBcYnxcYlQ3NjBWRVxifFxiVDcyMEhEXGJ8XGJQNzZcYnxcYlA3M1xifFxiUDcxXGJ8XGJQNzJcYnxcYlQ3MjBTRVxifFxiQzUyMFRpXGJ8XGJUNzYwXGJ8XGJUNzIwVkVcYnxUNzIwLTNHRXxUNzIwLVdpRmkiLE9uZGFUYWJsZXQ6IlxiKFY5NzVpfFZpMzB8Vlg1MzB8VjcwMXxWaTYwfFY3MDFzfFZpNTB8VjgwMXN8VjcxOXxWeDYxMHd8Vlg2MTBXfFY4MTlpfFZpMTB8Vlg1ODBXfFZpMTB8VjcxMXN8VjgxM3xWODExfFY4MjB3fFY4MjB8VmkyMHxWNzExfFZJMzBXfFY3MTJ8Vjg5MXd8Vjk3MnxWODE5d3xWODIwd3xWaTYwfFY4MjB3fFY3MTF8VjgxM3N8VjgwMXxWODE5fFY5NzVzfFY4MDF8VjgxOXxWODE5fFY4MTh8VjgxMXxWNzEyfFY5NzVtfFYxMDF3fFY5NjF3fFY4MTJ8VjgxOHxWOTcxfFY5NzFzfFY5MTl8Vjk4OXxWMTE2d3xWMTAyd3xWOTczfFZpNDApXGJbXHNdK3xWMTAgXGI0R1xiIixKYXl0ZWNoVGFibGV0OiJUUEMtUEE3NjIiLEJsYXVwdW5rdFRhYmxldDoiRW5kZWF2b3VyIDgwME5HfEVuZGVhdm91ciAxMDEwIixEaWdtYVRhYmxldDoiXGIoaUR4MTB8aUR4OXxpRHg4fGlEeDd8aUR4RDd8aUR4RDh8aURzUTh8aURzUTd8aURzUTh8aURzRDEwfGlEbkQ3fDNUUzgwNEh8aURzUTExfGlEajd8aURzMTApXGIiLEV2b2xpb1RhYmxldDoiQVJJQV9NaW5pX3dpZml8QXJpYVsgX11NaW5pfEV2b2xpbyBYMTB8RXZvbGlvIFg3fEV2b2xpbyBYOHxcYkV2b3RhYlxifFxiTmV1cmFcYiIsTGF2YVRhYmxldDoiUVBBRCBFNzA0fFxiSXZvcnlTXGJ8RS1UQUIgSVZPUll8XGJFLVRBQlxiIixBb2NUYWJsZXQ6Ik1XMDgxMXxNVzA4MTJ8TVcwOTIyfE1USzgzODJ8TVcxMDMxfE1XMDgzMXxNVzA4MjF8TVcwOTMxfE1XMDcxMiIsTXBtYW5UYWJsZXQ6Ik1QMTEgT0NUQXxNUDEwIE9DVEF8TVBRQzExMTR8TVBRQzEwMDR8TVBRQzk5NHxNUFFDOTc0fE1QUUM5NzN8TVBRQzgwNHxNUFFDNzg0fE1QUUM3ODB8XGJNUEc3XGJ8TVBEQ0c3NXxNUERDRzcxfE1QREMxMDA2fE1QMTAxREN8TVBEQzkwMDB8TVBEQzkwNXxNUERDNzA2SER8TVBEQzcwNnxNUERDNzA1fE1QREMxMTB8TVBEQzEwMHxNUERDOTl8TVBEQzk3fE1QREM4OHxNUERDOHxNUERDNzd8TVA3MDl8TUlENzAxfE1JRDcxMXxNSUQxNzB8TVBEQzcwM3xNUFFDMTAxMCIsQ2Vsa29uVGFibGV0OiJDVDY5NXxDVDg4OHxDVFtcc10/OTEwfENUNyBUYWJ8Q1Q5IFRhYnxDVDMgVGFifENUMiBUYWJ8Q1QxIFRhYnxDODIwfEM3MjB8XGJDVC0xXGIiLFdvbGRlclRhYmxldDoibWlUYWIgXGIoRElBTU9ORHxTUEFDRXxCUk9PS0xZTnxORU98RkxZfE1BTkhBVFRBTnxGVU5LfEVWT0xVVElPTnxTS1l8R09DQVJ8SVJPTnxHRU5JVVN8UE9QfE1JTlR8RVBTSUxPTnxCUk9BRFdBWXxKVU1QfEhPUHxMRUdFTkR8TkVXIEFHRXxMSU5FfEFEVkFOQ0V8RkVFTHxGT0xMT1d8TElLRXxMSU5LfExJVkV8VEhJTkt8RlJFRURPTXxDSElDQUdPfENMRVZFTEFORHxCQUxUSU1PUkUtR0h8SU9XQXxCT1NUT058U0VBVFRMRXxQSE9FTklYfERBTExBU3xJTiAxMDF8TWFzdGVyQ2hlZilcYiIsTWVkaWFjb21UYWJsZXQ6Ik0tTVBJMTBDM0d8TS1TUDEwRUd8TS1TUDEwRUdQfE0tU1AxMEhYQUh8TS1TUDdIWEFIfE0tU1AxMEhYQkh8TS1TUDhIWEFIfE0tU1A4TVhBIixNaVRhYmxldDoiXGJNSSBQQURcYnxcYkhNIE5PVEUgMVdcYiIsTmliaXJ1VGFibGV0OiJOaWJpcnUgTTF8TmliaXJ1IEp1cGl0ZXIgT25lIixOZXhvVGFibGV0OiJORVhPIE5PVkF8TkVYTyAxMHxORVhPIEFWSU98TkVYTyBGUkVFfE5FWE8gR098TkVYTyBFVk98TkVYTyAzR3xORVhPIFNNQVJUfE5FWE8gS0lERE98TkVYTyBNT0JJIixMZWFkZXJUYWJsZXQ6IlRCTFQxMFF8VEJMVDEwSXxUQkwtMTBXREtCfFRCTC0xMFdES0JPMjAxM3xUQkwtVzIzMFYyfFRCTC1XNDUwfFRCTC1XNTAwfFNWNTcyfFRCTFQ3SXxUQkEtQUM3LThHfFRCTFQ3OXxUQkwtOFcxNnxUQkwtMTBXMzJ8VEJMLTEwV0tCfFRCTC1XMTAwIixVYmlzbGF0ZVRhYmxldDoiVWJpU2xhdGVbXHNdPzdDIixQb2NrZXRCb29rVGFibGV0OiJQb2NrZXRib29rIixLb2Nhc29UYWJsZXQ6IlxiKFRCLTEyMDcpXGIiLEhpc2Vuc2VUYWJsZXQ6IlxiKEY1MjgxfEUyMzcxKVxiIixIdWRsOiJIdWRsIEhUN1MzfEh1ZGwgMiIsVGVsc3RyYVRhYmxldDoiVC1IdWIyIixHZW5lcmljVGFibGV0OiJBbmRyb2lkLipcYjk3RFxifFRhYmxldCg/IS4qUEMpfEJOVFYyNTBBfE1JRC1XQ0RNQXxMb2dpY1BEIFpvb20yfFxiQTdFQlxifENhdE5vdmE4fEExXzA3fENUNzA0fENUMTAwMnxcYk03MjFcYnxyazMwc2RrfFxiRVZPVEFCXGJ8TTc1OEF8RVQ5MDR8QUxVTUlVTTEwfFNtYXJ0ZnJlbiBUYWJ8RW5kZWF2b3VyIDEwMTB8VGFibGV0LVBDLTR8VGFnaSBUYWJ8XGJNNnByb1xifENUMTAyMFd8YXJjIDEwSER8XGJUUDc1MFxifFxiUVRBUVozXGJ8V1ZUMTAxfFRNMTA4OHxLVDEwNyJ9LG9zczp7QW5kcm9pZE9TOiJBbmRyb2lkIixCbGFja0JlcnJ5T1M6ImJsYWNrYmVycnl8XGJCQjEwXGJ8cmltIHRhYmxldCBvcyIsUGFsbU9TOiJQYWxtT1N8YXZhbnRnb3xibGF6ZXJ8ZWxhaW5lfGhpcHRvcHxwYWxtfHBsdWNrZXJ8eGlpbm8iLFN5bWJpYW5PUzoiU3ltYmlhbnxTeW1iT1N8U2VyaWVzNjB8U2VyaWVzNDB8U1lCLVswLTldK3xcYlM2MFxiIixXaW5kb3dzTW9iaWxlT1M6IldpbmRvd3MgQ0UuKihQUEN8U21hcnRwaG9uZXxNb2JpbGV8WzAtOV17M314WzAtOV17M30pfFdpbmRvd3MgTW9iaWxlfFdpbmRvd3MgUGhvbmUgWzAtOS5dK3xXQ0U7IixXaW5kb3dzUGhvbmVPUzoiV2luZG93cyBQaG9uZSAxMC4wfFdpbmRvd3MgUGhvbmUgOC4xfFdpbmRvd3MgUGhvbmUgOC4wfFdpbmRvd3MgUGhvbmUgT1N8WEJMV1A3fFp1bmVXUDd8V2luZG93cyBOVCA2LlsyM107IEFSTTsiLGlPUzoiXGJpUGhvbmUuKk1vYmlsZXxcYmlQb2R8XGJpUGFkfEFwcGxlQ29yZU1lZGlhIixpUGFkT1M6IkNQVSBPUyAxMyIsU2FpbGZpc2hPUzoiU2FpbGZpc2giLE1lZUdvT1M6Ik1lZUdvIixNYWVtb09TOiJNYWVtbyIsSmF2YU9TOiJKMk1FL3xcYk1JRFBcYnxcYkNMRENcYiIsd2ViT1M6IndlYk9TfGhwd09TIixiYWRhT1M6IlxiQmFkYVxiIixCUkVXT1M6IkJSRVcifSx1YXM6e0Nocm9tZToiXGJDck1vXGJ8Q3JpT1N8QW5kcm9pZC4qQ2hyb21lL1suMC05XSogKE1vYmlsZSk/IixEb2xmaW46IlxiRG9sZmluXGIiLE9wZXJhOiJPcGVyYS4qTWluaXxPcGVyYS4qTW9iaXxBbmRyb2lkLipPcGVyYXxNb2JpbGUuKk9QUi9bMC05Ll0rJHxDb2FzdC9bMC05Ll0rIixTa3lmaXJlOiJTa3lmaXJlIixFZGdlOiJcYkVkZ2lPU1xifE1vYmlsZSBTYWZhcmkvWy4wLTldKiBFZGdlIixJRToiSUVNb2JpbGV8TVNJRU1vYmlsZSIsRmlyZWZveDoiZmVubmVjfGZpcmVmb3guKm1hZW1vfChNb2JpbGV8VGFibGV0KS4qRmlyZWZveHxGaXJlZm94LipNb2JpbGV8RnhpT1MiLEJvbHQ6ImJvbHQiLFRlYVNoYXJrOiJ0ZWFzaGFyayIsQmxhemVyOiJCbGF6ZXIiLFNhZmFyaToiVmVyc2lvbigoPyFcYkVkZ2lPU1xiKS4pKk1vYmlsZS4qU2FmYXJpfFNhZmFyaS4qTW9iaWxlfE1vYmlsZVNhZmFyaSIsV2VDaGF0OiJcYk1pY3JvTWVzc2VuZ2VyXGIiLFVDQnJvd3NlcjoiVUMuKkJyb3dzZXJ8VUNXRUIiLGJhaWR1Ym94YXBwOiJiYWlkdWJveGFwcCIsYmFpZHVicm93c2VyOiJiYWlkdWJyb3dzZXIiLERpaWdvQnJvd3NlcjoiRGlpZ29Ccm93c2VyIixNZXJjdXJ5OiJcYk1lcmN1cnlcYiIsT2JpZ29Ccm93c2VyOiJPYmlnbyIsTmV0RnJvbnQ6Ik5GLUJyb3dzZXIiLEdlbmVyaWNCcm93c2VyOiJOb2tpYUJyb3dzZXJ8T3ZpQnJvd3NlcnxPbmVCcm93c2VyfFR3b25reUJlYW1Ccm93c2VyfFNFTUMuKkJyb3dzZXJ8Rmx5Rmxvd3xNaW5pbW98TmV0RnJvbnR8Tm92YXJyYS1WaXNpb258TVFRQnJvd3NlcnxNaWNyb01lc3NlbmdlciIsUGFsZU1vb246IkFuZHJvaWQuKlBhbGVNb29ufE1vYmlsZS4qUGFsZU1vb24ifSxwcm9wczp7TW9iaWxlOiJNb2JpbGUvW1ZFUl0iLEJ1aWxkOiJCdWlsZC9bVkVSXSIsVmVyc2lvbjoiVmVyc2lvbi9bVkVSXSIsVmVuZG9ySUQ6IlZlbmRvcklEL1tWRVJdIixpUGFkOiJpUGFkLipDUFVbYS16IF0rW1ZFUl0iLGlQaG9uZToiaVBob25lLipDUFVbYS16IF0rW1ZFUl0iLGlQb2Q6ImlQb2QuKkNQVVthLXogXStbVkVSXSIsS2luZGxlOiJLaW5kbGUvW1ZFUl0iLENocm9tZTpbIkNocm9tZS9bVkVSXSIsIkNyaU9TL1tWRVJdIiwiQ3JNby9bVkVSXSJdLENvYXN0OlsiQ29hc3QvW1ZFUl0iXSxEb2xmaW46IkRvbGZpbi9bVkVSXSIsRmlyZWZveDpbIkZpcmVmb3gvW1ZFUl0iLCJGeGlPUy9bVkVSXSJdLEZlbm5lYzoiRmVubmVjL1tWRVJdIixFZGdlOiJFZGdlL1tWRVJdIixJRTpbIklFTW9iaWxlL1tWRVJdOyIsIklFTW9iaWxlIFtWRVJdIiwiTVNJRSBbVkVSXTsiLCJUcmlkZW50L1swLTkuXSs7LipydjpbVkVSXSJdLE5ldEZyb250OiJOZXRGcm9udC9bVkVSXSIsTm9raWFCcm93c2VyOiJOb2tpYUJyb3dzZXIvW1ZFUl0iLE9wZXJhOlsiIE9QUi9bVkVSXSIsIk9wZXJhIE1pbmkvW1ZFUl0iLCJWZXJzaW9uL1tWRVJdIl0sIk9wZXJhIE1pbmkiOiJPcGVyYSBNaW5pL1tWRVJdIiwiT3BlcmEgTW9iaSI6IlZlcnNpb24vW1ZFUl0iLFVDQnJvd3NlcjpbIlVDV0VCW1ZFUl0iLCJVQy4qQnJvd3Nlci9bVkVSXSJdLE1RUUJyb3dzZXI6Ik1RUUJyb3dzZXIvW1ZFUl0iLE1pY3JvTWVzc2VuZ2VyOiJNaWNyb01lc3Nlbmdlci9bVkVSXSIsYmFpZHVib3hhcHA6ImJhaWR1Ym94YXBwL1tWRVJdIixiYWlkdWJyb3dzZXI6ImJhaWR1YnJvd3Nlci9bVkVSXSIsU2Ftc3VuZ0Jyb3dzZXI6IlNhbXN1bmdCcm93c2VyL1tWRVJdIixJcm9uOiJJcm9uL1tWRVJdIixTYWZhcmk6WyJWZXJzaW9uL1tWRVJdIiwiU2FmYXJpL1tWRVJdIl0sU2t5ZmlyZToiU2t5ZmlyZS9bVkVSXSIsVGl6ZW46IlRpemVuL1tWRVJdIixXZWJraXQ6IndlYmtpdFsgL11bVkVSXSIsUGFsZU1vb246IlBhbGVNb29uL1tWRVJdIixTYWlsZmlzaEJyb3dzZXI6IlNhaWxmaXNoQnJvd3Nlci9bVkVSXSIsR2Vja286IkdlY2tvL1tWRVJdIixUcmlkZW50OiJUcmlkZW50L1tWRVJdIixQcmVzdG86IlByZXN0by9bVkVSXSIsR29hbm5hOiJHb2FubmEvW1ZFUl0iLGlPUzoiIFxiaT9PU1xiIFtWRVJdWyA7XXsxfSIsQW5kcm9pZDoiQW5kcm9pZCBbVkVSXSIsU2FpbGZpc2g6IlNhaWxmaXNoIFtWRVJdIixCbGFja0JlcnJ5OlsiQmxhY2tCZXJyeVtcd10rL1tWRVJdIiwiQmxhY2tCZXJyeS4qVmVyc2lvbi9bVkVSXSIsIlZlcnNpb24vW1ZFUl0iXSxCUkVXOiJCUkVXIFtWRVJdIixKYXZhOiJKYXZhL1tWRVJdIiwiV2luZG93cyBQaG9uZSBPUyI6WyJXaW5kb3dzIFBob25lIE9TIFtWRVJdIiwiV2luZG93cyBQaG9uZSBbVkVSXSJdLCJXaW5kb3dzIFBob25lIjoiV2luZG93cyBQaG9uZSBbVkVSXSIsIldpbmRvd3MgQ0UiOiJXaW5kb3dzIENFL1tWRVJdIiwiV2luZG93cyBOVCI6IldpbmRvd3MgTlQgW1ZFUl0iLFN5bWJpYW46WyJTeW1iaWFuT1MvW1ZFUl0iLCJTeW1iaWFuL1tWRVJdIl0sd2ViT1M6WyJ3ZWJPUy9bVkVSXSIsImhwd09TL1tWRVJdOyJdfSx1dGlsczp7Qm90OiJHb29nbGVib3R8ZmFjZWJvb2tleHRlcm5hbGhpdHxHb29nbGUtQU1QSFRNTHxzfmFtcC12YWxpZGF0b3J8QWRzQm90LUdvb2dsZXxHb29nbGUgS2V5d29yZCBTdWdnZXN0aW9ufEZhY2Vib3R8WWFuZGV4Qm90fFlhbmRleE1vYmlsZUJvdHxiaW5nYm90fGlhX2FyY2hpdmVyfEFocmVmc0JvdHxFem9vbXN8R1NMRmJvdHxXQlNlYXJjaEJvdHxUd2l0dGVyYm90fFR3ZWV0bWVtZUJvdHxUd2lrbGV8UGFwZXJMaUJvdHxXb3Rib3h8VW53aW5kRmV0Y2hvcnxFeGFib3R8TUoxMmJvdHxZYW5kZXhJbWFnZXN8VHVybml0aW5Cb3R8UGluZ2RvbXxjb250ZW50a2luZ2FwcHxBc3BpZWdlbEJvdCIsTW9iaWxlQm90OiJHb29nbGVib3QtTW9iaWxlfEFkc0JvdC1Hb29nbGUtTW9iaWxlfFlhaG9vU2Vla2VyL00xQTEtUjJEMiIsRGVza3RvcE1vZGU6IldQRGVza3RvcCIsVFY6IlNvbnlEVFZ8SGJiVFYiLFdlYktpdDoiKHdlYmtpdClbIC9dKFtcdy5dKykiLENvbnNvbGU6IlxiKE5pbnRlbmRvfE5pbnRlbmRvIFdpaVV8TmludGVuZG8gM0RTfE5pbnRlbmRvIFN3aXRjaHxQTEFZU1RBVElPTnxYYm94KVxiIixXYXRjaDoiU00tVjcwMCJ9fSxnLmRldGVjdE1vYmlsZUJyb3dzZXJzPXtmdWxsUGF0dGVybjovKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXMoNHw2KTB8c3ltYmlhbnx0cmVvfHVwXC4oYnJvd3NlcnxsaW5rKXx2b2RhZm9uZXx3YXB8d2luZG93cyBjZXx4ZGF8eGlpbm8vaSwNCnNob3J0UGF0dGVybjovMTIwN3w2MzEwfDY1OTB8M2dzb3w0dGhwfDUwWzEtNl1pfDc3MHN8ODAyc3xhIHdhfGFiYWN8YWMoZXJ8b298c1wtKXxhaShrb3xybil8YWwoYXZ8Y2F8Y28pfGFtb2l8YW4oZXh8bnl8eXcpfGFwdHV8YXIoY2h8Z28pfGFzKHRlfHVzKXxhdHR3fGF1KGRpfFwtbXxyIHxzICl8YXZhbnxiZShja3xsbHxucSl8YmkobGJ8cmQpfGJsKGFjfGF6KXxicihlfHYpd3xidW1ifGJ3XC0obnx1KXxjNTVcL3xjYXBpfGNjd2F8Y2RtXC18Y2VsbHxjaHRtfGNsZGN8Y21kXC18Y28obXB8bmQpfGNyYXd8ZGEoaXR8bGx8bmcpfGRidGV8ZGNcLXN8ZGV2aXxkaWNhfGRtb2J8ZG8oY3xwKW98ZHMoMTJ8XC1kKXxlbCg0OXxhaSl8ZW0obDJ8dWwpfGVyKGljfGswKXxlc2w4fGV6KFs0LTddMHxvc3x3YXx6ZSl8ZmV0Y3xmbHkoXC18Xyl8ZzEgdXxnNTYwfGdlbmV8Z2ZcLTV8Z1wtbW98Z28oXC53fG9kKXxncihhZHx1bil8aGFpZXxoY2l0fGhkXC0obXxwfHQpfGhlaVwtfGhpKHB0fHRhKXxocCggaXxpcCl8aHNcLWN8aHQoYyhcLXwgfF98YXxnfHB8c3x0KXx0cCl8aHUoYXd8dGMpfGlcLSgyMHxnb3xtYSl8aTIzMHxpYWMoIHxcLXxcLyl8aWJyb3xpZGVhfGlnMDF8aWtvbXxpbTFrfGlubm98aXBhcXxpcmlzfGphKHR8dilhfGpicm98amVtdXxqaWdzfGtkZGl8a2VqaXxrZ3QoIHxcLyl8a2xvbnxrcHQgfGt3Y1wtfGt5byhjfGspfGxlKG5vfHhpKXxsZyggZ3xcLyhrfGx8dSl8NTB8NTR8XC1bYS13XSl8bGlid3xseW54fG0xXC13fG0zZ2F8bTUwXC98bWEodGV8dWl8eG8pfG1jKDAxfDIxfGNhKXxtXC1jcnxtZShyY3xyaSl8bWkobzh8b2F8dHMpfG1tZWZ8bW8oMDF8MDJ8Yml8ZGV8ZG98dChcLXwgfG98dil8enopfG10KDUwfHAxfHYgKXxtd2JwfG15d2F8bjEwWzAtMl18bjIwWzItM118bjMwKDB8Mil8bjUwKDB8Mnw1KXxuNygwKDB8MSl8MTApfG5lKChjfG0pXC18b258dGZ8d2Z8d2d8d3QpfG5vayg2fGkpfG56cGh8bzJpbXxvcCh0aXx3dil8b3Jhbnxvd2cxfHA4MDB8cGFuKGF8ZHx0KXxwZHhnfHBnKDEzfFwtKFsxLThdfGMpKXxwaGlsfHBpcmV8cGwoYXl8dWMpfHBuXC0yfHBvKGNrfHJ0fHNlKXxwcm94fHBzaW98cHRcLWd8cWFcLWF8cWMoMDd8MTJ8MjF8MzJ8NjB8XC1bMi03XXxpXC0pfHF0ZWt8cjM4MHxyNjAwfHJha3N8cmltOXxybyh2ZXx6byl8czU1XC98c2EoZ2V8bWF8bW18bXN8bnl8dmEpfHNjKDAxfGhcLXxvb3xwXC0pfHNka1wvfHNlKGMoXC18MHwxKXw0N3xtY3xuZHxyaSl8c2doXC18c2hhcnxzaWUoXC18bSl8c2tcLTB8c2woNDV8aWQpfHNtKGFsfGFyfGIzfGl0fHQ1KXxzbyhmdHxueSl8c3AoMDF8aFwtfHZcLXx2ICl8c3koMDF8bWIpfHQyKDE4fDUwKXx0NigwMHwxMHwxOCl8dGEoZ3R8bGspfHRjbFwtfHRkZ1wtfHRlbChpfG0pfHRpbVwtfHRcLW1vfHRvKHBsfHNoKXx0cyg3MHxtXC18bTN8bTUpfHR4XC05fHVwKFwuYnxnMXxzaSl8dXRzdHx2NDAwfHY3NTB8dmVyaXx2aShyZ3x0ZSl8dmsoNDB8NVswLTNdfFwtdil8dm00MHx2b2RhfHZ1bGN8dngoNTJ8NTN8NjB8NjF8NzB8ODB8ODF8ODN8ODV8OTgpfHczYyhcLXwgKXx3ZWJjfHdoaXR8d2koZyB8bmN8bncpfHdtbGJ8d29udXx4NzAwfHlhc1wtfHlvdXJ8emV0b3x6dGVcLS9pLHRhYmxldFBhdHRlcm46L2FuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2l9O3ZhciBoLGk9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtyZXR1cm4gZy5GQUxMQkFDS19QSE9ORT0iVW5rbm93blBob25lIixnLkZBTExCQUNLX1RBQkxFVD0iVW5rbm93blRhYmxldCIsZy5GQUxMQkFDS19NT0JJTEU9IlVua25vd25Nb2JpbGUiLGg9ImlzQXJyYXkiaW4gQXJyYXk/QXJyYXkuaXNBcnJheTpmdW5jdGlvbihhKXtyZXR1cm4iW29iamVjdCBBcnJheV0iPT09T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGEpfSxmdW5jdGlvbigpe3ZhciBhLGIsYyxlLGYsaixrPWcubW9iaWxlRGV0ZWN0UnVsZXM7Zm9yKGEgaW4gay5wcm9wcylpZihpLmNhbGwoay5wcm9wcyxhKSl7Zm9yKGI9ay5wcm9wc1thXSxoKGIpfHwoYj1bYl0pLGY9Yi5sZW5ndGgsZT0wO2U8ZjsrK2UpYz1iW2VdLGo9Yy5pbmRleE9mKCJbVkVSXSIpLGo+PTAmJihjPWMuc3Vic3RyaW5nKDAsaikrIihbXHcuX1wrXSspIitjLnN1YnN0cmluZyhqKzUpKSxiW2VdPW5ldyBSZWdFeHAoYywiaSIpO2sucHJvcHNbYV09Yn1kKGsub3NzKSxkKGsucGhvbmVzKSxkKGsudGFibGV0cyksZChrLnVhcyksZChrLnV0aWxzKSxrLm9zczA9e1dpbmRvd3NQaG9uZU9TOmsub3NzLldpbmRvd3NQaG9uZU9TLFdpbmRvd3NNb2JpbGVPUzprLm9zcy5XaW5kb3dzTW9iaWxlT1N9fSgpLGcuZmluZE1hdGNoPWZ1bmN0aW9uKGEsYil7Zm9yKHZhciBjIGluIGEpaWYoaS5jYWxsKGEsYykmJmFbY10udGVzdChiKSlyZXR1cm4gYztyZXR1cm4gbnVsbH0sZy5maW5kTWF0Y2hlcz1mdW5jdGlvbihhLGIpe3ZhciBjPVtdO2Zvcih2YXIgZCBpbiBhKWkuY2FsbChhLGQpJiZhW2RdLnRlc3QoYikmJmMucHVzaChkKTtyZXR1cm4gY30sZy5nZXRWZXJzaW9uU3RyPWZ1bmN0aW9uKGEsYil7dmFyIGMsZCxlLGYsaD1nLm1vYmlsZURldGVjdFJ1bGVzLnByb3BzO2lmKGkuY2FsbChoLGEpKWZvcihjPWhbYV0sZT1jLmxlbmd0aCxkPTA7ZDxlOysrZClpZihmPWNbZF0uZXhlYyhiKSxudWxsIT09ZilyZXR1cm4gZlsxXTtyZXR1cm4gbnVsbH0sZy5nZXRWZXJzaW9uPWZ1bmN0aW9uKGEsYil7dmFyIGM9Zy5nZXRWZXJzaW9uU3RyKGEsYik7cmV0dXJuIGM/Zy5wcmVwYXJlVmVyc2lvbk5vKGMpOk5hTn0sZy5wcmVwYXJlVmVyc2lvbk5vPWZ1bmN0aW9uKGEpe3ZhciBiO3JldHVybiBiPWEuc3BsaXQoL1thLXouXyBcL1wtXS9pKSwxPT09Yi5sZW5ndGgmJihhPWJbMF0pLGIubGVuZ3RoPjEmJihhPWJbMF0rIi4iLGIuc2hpZnQoKSxhKz1iLmpvaW4oIiIpKSxOdW1iZXIoYSl9LGcuaXNNb2JpbGVGYWxsYmFjaz1mdW5jdGlvbihhKXtyZXR1cm4gZy5kZXRlY3RNb2JpbGVCcm93c2Vycy5mdWxsUGF0dGVybi50ZXN0KGEpfHxnLmRldGVjdE1vYmlsZUJyb3dzZXJzLnNob3J0UGF0dGVybi50ZXN0KGEuc3Vic3RyKDAsNCkpfSxnLmlzVGFibGV0RmFsbGJhY2s9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZGV0ZWN0TW9iaWxlQnJvd3NlcnMudGFibGV0UGF0dGVybi50ZXN0KGEpfSxnLnByZXBhcmVEZXRlY3Rpb25DYWNoZT1mdW5jdGlvbihhLGMsZCl7aWYoYS5tb2JpbGU9PT1iKXt2YXIgZSxoLGk7cmV0dXJuKGg9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy50YWJsZXRzLGMpKT8oYS5tb2JpbGU9YS50YWJsZXQ9aCx2b2lkKGEucGhvbmU9bnVsbCkpOihlPWcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMucGhvbmVzLGMpKT8oYS5tb2JpbGU9YS5waG9uZT1lLHZvaWQoYS50YWJsZXQ9bnVsbCkpOnZvaWQoZy5pc01vYmlsZUZhbGxiYWNrKGMpPyhpPWYuaXNQaG9uZVNpemVkKGQpLGk9PT1iPyhhLm1vYmlsZT1nLkZBTExCQUNLX01PQklMRSxhLnRhYmxldD1hLnBob25lPW51bGwpOmk/KGEubW9iaWxlPWEucGhvbmU9Zy5GQUxMQkFDS19QSE9ORSxhLnRhYmxldD1udWxsKTooYS5tb2JpbGU9YS50YWJsZXQ9Zy5GQUxMQkFDS19UQUJMRVQsYS5waG9uZT1udWxsKSk6Zy5pc1RhYmxldEZhbGxiYWNrKGMpPyhhLm1vYmlsZT1hLnRhYmxldD1nLkZBTExCQUNLX1RBQkxFVCxhLnBob25lPW51bGwpOmEubW9iaWxlPWEudGFibGV0PWEucGhvbmU9bnVsbCl9fSxnLm1vYmlsZUdyYWRlPWZ1bmN0aW9uKGEpe3ZhciBiPW51bGwhPT1hLm1vYmlsZSgpO3JldHVybiBhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik+PTQuM3x8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBob25lIik+PTMuMXx8YS5vcygiaU9TIikmJmEudmVyc2lvbigiaVBvZCIpPj0zLjF8fGEudmVyc2lvbigiQW5kcm9pZCIpPjIuMSYmYS5pcygiV2Via2l0Iil8fGEudmVyc2lvbigiV2luZG93cyBQaG9uZSBPUyIpPj03fHxhLmlzKCJCbGFja0JlcnJ5IikmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPj02fHxhLm1hdGNoKCJQbGF5Ym9vay4qVGFibGV0Iil8fGEudmVyc2lvbigid2ViT1MiKT49MS40JiZhLm1hdGNoKCJQYWxtfFByZXxQaXhpIil8fGEubWF0Y2goImhwLipUb3VjaFBhZCIpfHxhLmlzKCJGaXJlZm94IikmJmEudmVyc2lvbigiRmlyZWZveCIpPj0xMnx8YS5pcygiQ2hyb21lIikmJmEuaXMoIkFuZHJvaWRPUyIpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49NHx8YS5pcygiU2t5ZmlyZSIpJiZhLnZlcnNpb24oIlNreWZpcmUiKT49NC4xJiZhLmlzKCJBbmRyb2lkT1MiKSYmYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiT3BlcmEiKSYmYS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+MTEmJmEuaXMoIkFuZHJvaWRPUyIpfHxhLmlzKCJNZWVHb09TIil8fGEuaXMoIlRpemVuIil8fGEuaXMoIkRvbGZpbiIpJiZhLnZlcnNpb24oIkJhZGEiKT49Mnx8KGEuaXMoIlVDIEJyb3dzZXIiKXx8YS5pcygiRG9sZmluIikpJiZhLnZlcnNpb24oIkFuZHJvaWQiKT49Mi4zfHxhLm1hdGNoKCJLaW5kbGUgRmlyZSIpfHxhLmlzKCJLaW5kbGUiKSYmYS52ZXJzaW9uKCJLaW5kbGUiKT49M3x8YS5pcygiQW5kcm9pZE9TIikmJmEuaXMoIk5vb2tUYWJsZXQiKXx8YS52ZXJzaW9uKCJDaHJvbWUiKT49MTEmJiFifHxhLnZlcnNpb24oIlNhZmFyaSIpPj01JiYhYnx8YS52ZXJzaW9uKCJGaXJlZm94Iik+PTQmJiFifHxhLnZlcnNpb24oIk1TSUUiKT49NyYmIWJ8fGEudmVyc2lvbigiT3BlcmEiKT49MTAmJiFiPyJBIjphLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGFkIik8NC4zfHxhLm9zKCJpT1MiKSYmYS52ZXJzaW9uKCJpUGhvbmUiKTwzLjF8fGEub3MoImlPUyIpJiZhLnZlcnNpb24oImlQb2QiKTwzLjF8fGEuaXMoIkJsYWNrYmVycnkiKSYmYS52ZXJzaW9uKCJCbGFja0JlcnJ5Iik+PTUmJmEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDZ8fGEudmVyc2lvbigiT3BlcmEgTWluaSIpPj01JiZhLnZlcnNpb24oIk9wZXJhIE1pbmkiKTw9Ni41JiYoYS52ZXJzaW9uKCJBbmRyb2lkIik+PTIuM3x8YS5pcygiaU9TIikpfHxhLm1hdGNoKCJOb2tpYU44fE5va2lhQzd8Tjk3LipTZXJpZXM2MHxTeW1iaWFuLzMiKXx8YS52ZXJzaW9uKCJPcGVyYSBNb2JpIik+PTExJiZhLmlzKCJTeW1iaWFuT1MiKT8iQiI6KGEudmVyc2lvbigiQmxhY2tCZXJyeSIpPDV8fGEubWF0Y2goIk1TSUVNb2JpbGV8V2luZG93cyBDRS4qTW9iaWxlIil8fGEudmVyc2lvbigiV2luZG93cyBNb2JpbGUiKTw9NS4yLCJDIil9LGcuZGV0ZWN0T1M9ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZmluZE1hdGNoKGcubW9iaWxlRGV0ZWN0UnVsZXMub3NzMCxhKXx8Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy5vc3MsYSl9LGcuZ2V0RGV2aWNlU21hbGxlclNpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gd2luZG93LnNjcmVlbi53aWR0aDx3aW5kb3cuc2NyZWVuLmhlaWdodD93aW5kb3cuc2NyZWVuLndpZHRoOndpbmRvdy5zY3JlZW4uaGVpZ2h0fSxmLnByb3RvdHlwZT17Y29uc3RydWN0b3I6Zixtb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLm1vYmlsZX0scGhvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnBob25lfSx0YWJsZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZy5wcmVwYXJlRGV0ZWN0aW9uQ2FjaGUodGhpcy5fY2FjaGUsdGhpcy51YSx0aGlzLm1heFBob25lV2lkdGgpLHRoaXMuX2NhY2hlLnRhYmxldH0sdXNlckFnZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhY2hlLnVzZXJBZ2VudD09PWImJih0aGlzLl9jYWNoZS51c2VyQWdlbnQ9Zy5maW5kTWF0Y2goZy5tb2JpbGVEZXRlY3RSdWxlcy51YXMsdGhpcy51YSkpLHRoaXMuX2NhY2hlLnVzZXJBZ2VudH0sdXNlckFnZW50czpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWNoZS51c2VyQWdlbnRzPT09YiYmKHRoaXMuX2NhY2hlLnVzZXJBZ2VudHM9Zy5maW5kTWF0Y2hlcyhnLm1vYmlsZURldGVjdFJ1bGVzLnVhcyx0aGlzLnVhKSksdGhpcy5fY2FjaGUudXNlckFnZW50c30sb3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUub3M9PT1iJiYodGhpcy5fY2FjaGUub3M9Zy5kZXRlY3RPUyh0aGlzLnVhKSksdGhpcy5fY2FjaGUub3N9LHZlcnNpb246ZnVuY3Rpb24oYSl7cmV0dXJuIGcuZ2V0VmVyc2lvbihhLHRoaXMudWEpfSx2ZXJzaW9uU3RyOmZ1bmN0aW9uKGEpe3JldHVybiBnLmdldFZlcnNpb25TdHIoYSx0aGlzLnVhKX0saXM6ZnVuY3Rpb24oYil7cmV0dXJuIGModGhpcy51c2VyQWdlbnRzKCksYil8fGEoYix0aGlzLm9zKCkpfHxhKGIsdGhpcy5waG9uZSgpKXx8YShiLHRoaXMudGFibGV0KCkpfHxjKGcuZmluZE1hdGNoZXMoZy5tb2JpbGVEZXRlY3RSdWxlcy51dGlscyx0aGlzLnVhKSxiKX0sbWF0Y2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBSZWdFeHB8fChhPW5ldyBSZWdFeHAoYSwiaSIpKSxhLnRlc3QodGhpcy51YSl9LGlzUGhvbmVTaXplZDpmdW5jdGlvbihhKXtyZXR1cm4gZi5pc1Bob25lU2l6ZWQoYXx8dGhpcy5tYXhQaG9uZVdpZHRoKX0sbW9iaWxlR3JhZGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FjaGUuZ3JhZGU9PT1iJiYodGhpcy5fY2FjaGUuZ3JhZGU9Zy5tb2JpbGVHcmFkZSh0aGlzKSksdGhpcy5fY2FjaGUuZ3JhZGV9fSwidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdyYmd2luZG93LnNjcmVlbj9mLmlzUGhvbmVTaXplZD1mdW5jdGlvbihhKXtyZXR1cm4gYTwwP2I6Zy5nZXREZXZpY2VTbWFsbGVyU2lkZSgpPD1hfTpmLmlzUGhvbmVTaXplZD1mdW5jdGlvbigpe30sZi5faW1wbD1nLGYudmVyc2lvbj0iMS40LjUgMjAyMS0wMy0xMyIsZn0pfShmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHMpcmV0dXJuIGZ1bmN0aW9uKGEpe21vZHVsZS5leHBvcnRzPWEoKX07aWYoImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZClyZXR1cm4gZGVmaW5lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93KXJldHVybiBmdW5jdGlvbihhKXt3aW5kb3cuTW9iaWxlRGV0ZWN0PWEoKX07dGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGVudmlyb25tZW50Iil9KCkpO3ZhciBhaV9saXN0cz0hMCxhaV9ibG9ja19jbGFzc19kZWY9ImNvZGUtYmxvY2siOwppZigidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2xpc3RzKXtmdW5jdGlvbiBYKGIsZSl7Zm9yKHZhciBuPVtdO2I9Yi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nOykoInVuZGVmaW5lZCI9PXR5cGVvZiBlfHxiLm1hdGNoZXMoZSkpJiZuLnB1c2goYik7cmV0dXJuIG59ZnVuY3Rpb24gZmEoYixlKXtmb3IodmFyIG49W107Yj1iLm5leHRFbGVtZW50U2libGluZzspKCJ1bmRlZmluZWQiPT10eXBlb2YgZXx8Yi5tYXRjaGVzKGUpKSYmbi5wdXNoKGIpO3JldHVybiBufXZhciBob3N0X3JlZ2V4cD1SZWdFeHAoIjpcL1wvKC5bXi86XSspIiwiaSIpO2Z1bmN0aW9uIGhhKGIpe2I9Yi5tYXRjaChob3N0X3JlZ2V4cCk7cmV0dXJuIG51bGwhPWImJjE8Yi5sZW5ndGgmJiJzdHJpbmciPT09dHlwZW9mIGJbMV0mJjA8YlsxXS5sZW5ndGg/YlsxXS50b0xvd2VyQ2FzZSgpOm51bGx9ZnVuY3Rpb24gUShiKXtyZXR1cm4gYi5pbmNsdWRlcygiOiIpPyhiPWIuc3BsaXQoIjoiKSwxRTMqKDM2MDAqcGFyc2VJbnQoYlswXSkrCjYwKnBhcnNlSW50KGJbMV0pK3BhcnNlSW50KGJbMl0pKSk6bnVsbH1mdW5jdGlvbiBZKGIpe3RyeXt2YXIgZT1EYXRlLnBhcnNlKGIpO2lzTmFOKGUpJiYoZT1udWxsKX1jYXRjaChuKXtlPW51bGx9aWYobnVsbD09ZSYmYi5pbmNsdWRlcygiICIpKXtiPWIuc3BsaXQoIiAiKTt0cnl7ZT1EYXRlLnBhcnNlKGJbMF0pLGUrPVEoYlsxXSksaXNOYU4oZSkmJihlPW51bGwpfWNhdGNoKG4pe2U9bnVsbH19cmV0dXJuIGV9ZnVuY3Rpb24gWigpe251bGw9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLWJhciIpJiZudWxsPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuYWktbGlzdC1tYW51YWwiKXx8ImZ1bmN0aW9uIiE9dHlwZW9mIF9fdGNmYXBpfHwiZnVuY3Rpb24iIT10eXBlb2YgYWlfbG9hZF9ibG9ja3N8fCJ1bmRlZmluZWQiIT10eXBlb2YgYWlfaWFiX3RjZl9jYWxsYmFja19pbnN0YWxsZWR8fChfX3RjZmFwaSgiYWRkRXZlbnRMaXN0ZW5lciIsMixmdW5jdGlvbihiLAplKXtlJiYidXNlcmFjdGlvbmNvbXBsZXRlIj09PWIuZXZlbnRTdGF0dXMmJihhaV90Y0RhdGE9YixhaV9sb2FkX2Jsb2NrcygpLGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIiksbnVsbCE9YiYmKGIudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERBVEEgTE9BREVEIiksYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSxudWxsIT1iJiYoYi5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxiLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSl9KSxhaV9pYWJfdGNmX2NhbGxiYWNrX2luc3RhbGxlZD0hMCl9YWlfcHJvY2Vzc19saXN0cz1mdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyxrKXtpZigwPT1hLmxlbmd0aCl7aWYoIiFAISI9PWspcmV0dXJuITA7YyE9ayYmKCJ0cnVlIj09ay50b0xvd2VyQ2FzZSgpP2s9ITA6ImZhbHNlIj09ay50b0xvd2VyQ2FzZSgpJiYoaz0hMSkpO3JldHVybiBjPT1rfWlmKCJvYmplY3QiIT0KdHlwZW9mIGMmJiJhcnJheSIhPXR5cGVvZiBjKXJldHVybiExO3ZhciBsPWFbMF07YT1hLnNsaWNlKDEpO2lmKCIqIj09bClmb3IobGV0IFsscF1vZiBPYmplY3QuZW50cmllcyhjKSl7aWYoZShhLHAsaykpcmV0dXJuITB9ZWxzZSBpZihsIGluIGMpcmV0dXJuIGUoYSxjW2xdLGspO3JldHVybiExfWZ1bmN0aW9uIG4oYSxjLGspe2lmKCJvYmplY3QiIT10eXBlb2YgYXx8LTE9PWMuaW5kZXhPZigiWyIpKXJldHVybiExO2M9Yy5yZXBsYWNlKC9dfCAvZ2ksIiIpLnNwbGl0KCJbIik7cmV0dXJuIGUoYyxhLGspfWZ1bmN0aW9uIHooKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGkpe3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIik7bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERFVEVDVEVEIik7X190Y2ZhcGkoImdldFRDRGF0YSIsMixmdW5jdGlvbihrLApsKXtsPyhudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSwidGNsb2FkZWQiPT1rLmV2ZW50U3RhdHVzfHwidXNlcmFjdGlvbmNvbXBsZXRlIj09ay5ldmVudFN0YXR1cyk/KGFpX3RjRGF0YT1rLGsuZ2RwckFwcGxpZXM/bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIERBVEEgTE9BREVEIik6bnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIEdEUFIgRE9FUyBOT1QgQVBQTFkiKSxudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWlfcHJvY2Vzc19saXN0cygpfSwxMCkpOiJjbXB1aXNob3duIj09ay5ldmVudFN0YXR1cyYmKGFpX2NtcHVpc2hvd249ITAsbnVsbCE9YSYmKGEudGV4dENvbnRlbnQ9IklBQiBUQ0YgMi4wIENNUCBVSSBTSE9XTiIpLApudWxsIT1jJiYoYy5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtZXJyb3IiKSxjLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1vayIpKSk6KG51bGwhPWEmJihhLnRleHRDb250ZW50PSJJQUIgVENGIDIuMCBfX3RjZmFwaSBnZXRUQ0RhdGEgZmFpbGVkIiksbnVsbCE9YyYmKGMuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLW9rIiksYy5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtZXJyb3IiKSkpfSl9fWZ1bmN0aW9uIEMoYSl7ImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpPyhhaV90Y2ZhcGlfZm91bmQ9ITAsInVuZGVmaW5lZCI9PXR5cGVvZiBhaV9pYWJfdGNmX2NhbGxiYWNrX2luc3RhbGxlZCYmWigpLCJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNEYXRhX3JlcXVlc3RlZCYmKGFpX3RjRGF0YV9yZXF1ZXN0ZWQ9ITAseigpLGNvb2tpZXNfbmVlZF90Y0RhdGE9ITApKTphJiYoInVuZGVmaW5lZCI9PXR5cGVvZiBhaV90Y2ZhcGlfZm91bmQmJihhaV90Y2ZhcGlfZm91bmQ9ITEsc2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfbGlzdHMoKX0sCjEwKSksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1zdGF0dXMiKSxudWxsIT1hJiYoYS50ZXh0Q29udGVudD0iSUFCIFRDRiAyLjAgTUlTU0lORzogX190Y2ZhcGkgZnVuY3Rpb24gbm90IGZvdW5kIiksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKSxudWxsIT1hJiYoYS5jbGFzc0xpc3QucmVtb3ZlKCJzdGF0dXMtb2siKSxhLmNsYXNzTGlzdC5hZGQoInN0YXR1cy1lcnJvciIpKSl9aWYobnVsbD09YiliPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoImRpdi5haS1saXN0LWRhdGEsIG1ldGEuYWktbGlzdC1kYXRhIik7ZWxzZXt3aW5kb3cualF1ZXJ5JiZ3aW5kb3cualF1ZXJ5LmZuJiZiIGluc3RhbmNlb2YgalF1ZXJ5JiYoYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChiKSk7dmFyIHg9W107Yi5mb3JFYWNoKChhLGMpPT57YS5tYXRjaGVzKCIuYWktbGlzdC1kYXRhIik/eC5wdXNoKGEpOihhPWEucXVlcnlTZWxlY3RvckFsbCgiLmFpLWxpc3QtZGF0YSIpLAphLmxlbmd0aCYmYS5mb3JFYWNoKChrLGwpPT57eC5wdXNoKGspfSkpfSk7Yj14fWlmKGIubGVuZ3RoKXtiLmZvckVhY2goKGEsYyk9PnthLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtZGF0YSIpfSk7dmFyIEw9aWEod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7aWYobnVsbCE9TC5yZWZlcnJlcil2YXIgQT1MLnJlZmVycmVyO2Vsc2UgQT1kb2N1bWVudC5yZWZlcnJlciwiIiE9QSYmKEE9aGEoQSkpO3ZhciBSPXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LFM9Ui50b0xvd2VyQ2FzZSgpLGFhPW5hdmlnYXRvci5sYW5ndWFnZSxNPWFhLnRvTG93ZXJDYXNlKCk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgTW9iaWxlRGV0ZWN0KXZhciBiYT1uZXcgTW9iaWxlRGV0ZWN0KFIpO2IuZm9yRWFjaCgoYSxjKT0+e3ZhciBrPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpO2suZm9yRWFjaChmdW5jdGlvbihmLGgpe2tbaF09Zi50cmltKCl9KTtjPWEuY2xvc2VzdCgiZGl2LiIrYWlfYmxvY2tfY2xhc3NfZGVmKTsKdmFyIGw9ITA7aWYoYS5oYXNBdHRyaWJ1dGUoInJlZmVyZXItbGlzdCIpKXt2YXIgcD1hLmdldEF0dHJpYnV0ZSgicmVmZXJlci1saXN0Iik7cD1iNjRkKHApLnNwbGl0KCIsIik7dmFyIHY9YS5nZXRBdHRyaWJ1dGUoInJlZmVyZXItbGlzdC10eXBlIiksRT0hMTtwLmV2ZXJ5KChmLGgpPT57Zj1mLnRyaW0oKTtpZigiIj09ZilyZXR1cm4hMDtpZigiKiI9PWYuY2hhckF0KDApKWlmKCIqIj09Zi5jaGFyQXQoZi5sZW5ndGgtMSkpe2lmKGY9Zi5zdWJzdHIoMSxmLmxlbmd0aC0yKSwtMSE9QS5pbmRleE9mKGYpKXJldHVybiBFPSEwLCExfWVsc2V7aWYoZj1mLnN1YnN0cigxKSxBLnN1YnN0cigtZi5sZW5ndGgpPT1mKXJldHVybiBFPSEwLCExfWVsc2UgaWYoIioiPT1mLmNoYXJBdChmLmxlbmd0aC0xKSl7aWYoZj1mLnN1YnN0cigwLGYubGVuZ3RoLTEpLDA9PUEuaW5kZXhPZihmKSlyZXR1cm4gRT0hMCwhMX1lbHNlIGlmKCIjIj09Zil7aWYoIiI9PUEpcmV0dXJuIEU9ITAsITF9ZWxzZSBpZihmPT0KQSlyZXR1cm4gRT0hMCwhMTtyZXR1cm4hMH0pO3ZhciByPUU7c3dpdGNoKHYpe2Nhc2UgIkIiOnImJihsPSExKTticmVhaztjYXNlICJXIjpyfHwobD0hMSl9fWlmKGwmJmEuaGFzQXR0cmlidXRlKCJjbGllbnQtbGlzdCIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBiYSlzd2l0Y2gocD1hLmdldEF0dHJpYnV0ZSgiY2xpZW50LWxpc3QiKSxwPWI2NGQocCkuc3BsaXQoIiwiKSx2PWEuZ2V0QXR0cmlidXRlKCJjbGllbnQtbGlzdC10eXBlIikscj0hMSxwLmV2ZXJ5KChmLGgpPT57aWYoIiI9PWYudHJpbSgpKXJldHVybiEwO2Yuc3BsaXQoIiYmIikuZXZlcnkoKGQsdCk9Pnt0PSEwO3ZhciB3PSExO2ZvcihkPWQudHJpbSgpOyIhISI9PWQuc3Vic3RyaW5nKDAsMik7KXQ9IXQsZD1kLnN1YnN0cmluZygyKTsibGFuZ3VhZ2U6Ij09ZC5zdWJzdHJpbmcoMCw5KSYmKHc9ITAsZD1kLnN1YnN0cmluZyg5KS50b0xvd2VyQ2FzZSgpKTt2YXIgcT0hMTt3PyIqIj09ZC5jaGFyQXQoMCk/IioiPT1kLmNoYXJBdChkLmxlbmd0aC0KMSk/KGQ9ZC5zdWJzdHIoMSxkLmxlbmd0aC0yKS50b0xvd2VyQ2FzZSgpLC0xIT1NLmluZGV4T2YoZCkmJihxPSEwKSk6KGQ9ZC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKSxNLnN1YnN0cigtZC5sZW5ndGgpPT1kJiYocT0hMCkpOiIqIj09ZC5jaGFyQXQoZC5sZW5ndGgtMSk/KGQ9ZC5zdWJzdHIoMCxkLmxlbmd0aC0xKS50b0xvd2VyQ2FzZSgpLDA9PU0uaW5kZXhPZihkKSYmKHE9ITApKTpkPT1NJiYocT0hMCk6IioiPT1kLmNoYXJBdCgwKT8iKiI9PWQuY2hhckF0KGQubGVuZ3RoLTEpPyhkPWQuc3Vic3RyKDEsZC5sZW5ndGgtMikudG9Mb3dlckNhc2UoKSwtMSE9Uy5pbmRleE9mKGQpJiYocT0hMCkpOihkPWQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCksUy5zdWJzdHIoLWQubGVuZ3RoKT09ZCYmKHE9ITApKToiKiI9PWQuY2hhckF0KGQubGVuZ3RoLTEpPyhkPWQuc3Vic3RyKDAsZC5sZW5ndGgtMSkudG9Mb3dlckNhc2UoKSwwPT1TLmluZGV4T2YoZCkmJihxPSEwKSk6YmEuaXMoZCkmJgoocT0hMCk7cmV0dXJuKHI9cT90OiF0KT8hMDohMX0pO3JldHVybiByPyExOiEwfSksdil7Y2FzZSAiQiI6ciYmKGw9ITEpO2JyZWFrO2Nhc2UgIlciOnJ8fChsPSExKX12YXIgTj1wPSExO2Zvcih2PTE7Mj49djt2KyspaWYobCl7c3dpdGNoKHYpe2Nhc2UgMTp2YXIgZz1hLmdldEF0dHJpYnV0ZSgiY29va2llLWxpc3QiKTticmVhaztjYXNlIDI6Zz1hLmdldEF0dHJpYnV0ZSgicGFyYW1ldGVyLWxpc3QiKX1pZihudWxsIT1nKXtnPWI2NGQoZyk7c3dpdGNoKHYpe2Nhc2UgMTp2YXIgeT1hLmdldEF0dHJpYnV0ZSgiY29va2llLWxpc3QtdHlwZSIpO2JyZWFrO2Nhc2UgMjp5PWEuZ2V0QXR0cmlidXRlKCJwYXJhbWV0ZXItbGlzdC10eXBlIil9Zz1nLnJlcGxhY2UoInRjZi1nZHByIiwidGNmLXYyW2dkcHJBcHBsaWVzXT10cnVlIik7Zz1nLnJlcGxhY2UoInRjZi1uby1nZHByIiwidGNmLXYyW2dkcHJBcHBsaWVzXT1mYWxzZSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtZ29vZ2xlIiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzc1NV09dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTsKZz1nLnJlcGxhY2UoInRjZi1uby1nb29nbGUiLCIhIXRjZi12Mlt2ZW5kb3JdW2NvbnNlbnRzXVs3NTVdIik7Zz1nLnJlcGxhY2UoInRjZi1tZWRpYS5uZXQiLCJ0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bMTQyXT10cnVlICYmIHRjZi12MltwdXJwb3NlXVtjb25zZW50c11bMV09dHJ1ZSIpO2c9Zy5yZXBsYWNlKCJ0Y2Ytbm8tbWVkaWEubmV0IiwiISF0Y2YtdjJbdmVuZG9yXVtjb25zZW50c11bMTQyXSIpO2c9Zy5yZXBsYWNlKCJ0Y2YtYW1hem9uIiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzc5M109dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLWFtYXpvbiIsIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzc5M10iKTtnPWcucmVwbGFjZSgidGNmLWV6b2ljIiwidGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzM0N109dHJ1ZSAmJiB0Y2YtdjJbcHVycG9zZV1bY29uc2VudHNdWzFdPXRydWUiKTtnPWcucmVwbGFjZSgidGNmLW5vLWV6b2ljIiwKIiEhdGNmLXYyW3ZlbmRvcl1bY29uc2VudHNdWzM0N10iKTt2YXIgRj1nLnNwbGl0KCIsIiksY2E9W107ay5mb3JFYWNoKGZ1bmN0aW9uKGYpe2Y9Zi5zcGxpdCgiPSIpO3RyeXt2YXIgaD1KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmWzFdKSl9Y2F0Y2goZCl7aD1kZWNvZGVVUklDb21wb25lbnQoZlsxXSl9Y2FbZlswXV09aH0pO3I9ITE7dmFyIEk9YTtGLmV2ZXJ5KChmLGgpPT57Zi5zcGxpdCgiJiYiKS5ldmVyeSgoZCx0KT0+e3Q9ITA7Zm9yKGQ9ZC50cmltKCk7IiEhIj09ZC5zdWJzdHJpbmcoMCwyKTspdD0hdCxkPWQuc3Vic3RyaW5nKDIpO3ZhciB3PWQscT0iIUAhIixUPSJ0Y2YtdjIiPT13JiYiIUAhIj09cSxCPS0xIT1kLmluZGV4T2YoIlsiKSxKPTA9PWQuaW5kZXhPZigidGNmLXYyIil8fDA9PWQuaW5kZXhPZigiZXVjb25zZW50LXYyIik7Sj1KJiYoQnx8VCk7LTEhPWQuaW5kZXhPZigiPSIpJiYocT1kLnNwbGl0KCI9Iiksdz1xWzBdLHE9cVsxXSxCPS0xIT13LmluZGV4T2YoIlsiKSwKSj0oSj0wPT13LmluZGV4T2YoInRjZi12MiIpfHwwPT13LmluZGV4T2YoImV1Y29uc2VudC12MiIpKSYmKEJ8fFQpKTtpZihKKWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpLEI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2YtYmFyIiksbnVsbCE9QiYmKEIuc3R5bGUuZGlzcGxheT0iYmxvY2siKSxUJiYiYm9vbGVhbiI9PXR5cGVvZiBhaV90Y2ZhcGlfZm91bmQ/cj1haV90Y2ZhcGlfZm91bmQ/dDohdDoib2JqZWN0Ij09dHlwZW9mIGFpX3RjRGF0YT8obnVsbCE9QiYmKEIuY2xhc3NMaXN0LnJlbW92ZSgic3RhdHVzLWVycm9yIiksQi5jbGFzc0xpc3QuYWRkKCJzdGF0dXMtb2siKSksdz13LnJlcGxhY2UoL118IC9naSwiIikuc3BsaXQoIlsiKSx3LnNoaWZ0KCkscj0odz1lKHcsYWlfdGNEYXRhLHEpKT90OiF0KToidW5kZWZpbmVkIj09dHlwZW9mIGFpX3RjZmFwaV9mb3VuZCYmKEkuY2xhc3NMaXN0LmFkZCgiYWktbGlzdC1kYXRhIiksCk49ITAsImZ1bmN0aW9uIj09dHlwZW9mIF9fdGNmYXBpP0MoITEpOiJ1bmRlZmluZWQiPT10eXBlb2YgYWlfdGNEYXRhX3JldHJ5aW5nJiYoYWlfdGNEYXRhX3JldHJ5aW5nPSEwLHNldFRpbWVvdXQoZnVuY3Rpb24oKXsiZnVuY3Rpb24iPT10eXBlb2YgX190Y2ZhcGk/QyghMSk6c2V0VGltZW91dChmdW5jdGlvbigpeyJmdW5jdGlvbiI9PXR5cGVvZiBfX3RjZmFwaT9DKCExKTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QyghMCl9LDNFMyl9LDFFMyl9LDYwMCkpKTtlbHNlIGlmKEIpcj0odz1uKGNhLHcscSkpP3Q6IXQ7ZWxzZXt2YXIgVT0hMTsiIUAhIj09cT9rLmV2ZXJ5KGZ1bmN0aW9uKGphKXtyZXR1cm4gamEuc3BsaXQoIj0iKVswXT09ZD8oVT0hMCwhMSk6ITB9KTpVPS0xIT1rLmluZGV4T2YoZCk7cj1VP3Q6IXR9cmV0dXJuIHI/ITA6ITF9KTtyZXR1cm4gcj8hMTohMH0pO3ImJihOPSExLEkuY2xhc3NMaXN0LnJlbW92ZSgiYWktbGlzdC1kYXRhIikpO3N3aXRjaCh5KXtjYXNlICJCIjpyJiYKKGw9ITEpO2JyZWFrO2Nhc2UgIlciOnJ8fChsPSExKX19fWEuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1saXN0LW1hbnVhbCIpJiYobD8oSS5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWRhdGEiKSxJLmNsYXNzTGlzdC5yZW1vdmUoImFpLWxpc3QtbWFudWFsIikpOihwPSEwLEkuY2xhc3NMaXN0LmFkZCgiYWktbGlzdC1kYXRhIikpKTsobHx8IXAmJiFOKSYmYS5oYXNBdHRyaWJ1dGUoImRhdGEtZGVidWctaW5mbyIpJiYoZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuIithLmRhdGFzZXQuZGVidWdJbmZvKSxudWxsIT1nJiYoZz1nLnBhcmVudEVsZW1lbnQsbnVsbCE9ZyYmZy5jbGFzc0xpc3QuY29udGFpbnMoImFpLWRlYnVnLWluZm8iKSYmZy5yZW1vdmUoKSkpO3k9WChhLCIuYWktZGVidWctYmFyLmFpLWRlYnVnLWxpc3RzIik7dmFyIGthPSIiPT1BPyIjIjpBOzAhPXkubGVuZ3RoJiZ5LmZvckVhY2goKGYsaCk9PntoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktbGlzdC1pbmZvIik7Cm51bGwhPWgmJihoLnRleHRDb250ZW50PWthLGgudGl0bGU9UisiXG4iK2FhKTtoPWYucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLW5hbWUuYWktbGlzdC1zdGF0dXMiKTtudWxsIT1oJiYoaC50ZXh0Q29udGVudD1sP2FpX2Zyb250LnZpc2libGU6YWlfZnJvbnQuaGlkZGVuKX0pO2c9ITE7aWYobCYmYS5oYXNBdHRyaWJ1dGUoInNjaGVkdWxpbmctc3RhcnQiKSYmYS5oYXNBdHRyaWJ1dGUoInNjaGVkdWxpbmctZW5kIikmJmEuaGFzQXR0cmlidXRlKCJzY2hlZHVsaW5nLWRheXMiKSl7dmFyIHU9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctc3RhcnQiKTt2PWEuZ2V0QXR0cmlidXRlKCJzY2hlZHVsaW5nLWVuZCIpO3k9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctZGF5cyIpO2c9ITA7dT1iNjRkKHUpO0Y9YjY0ZCh2KTt2YXIgVj1wYXJzZUludChhLmdldEF0dHJpYnV0ZSgic2NoZWR1bGluZy1mYWxsYmFjayIpKSxPPXBhcnNlSW50KGEuZ2V0QXR0cmlidXRlKCJnbXQiKSk7aWYodS5pbmNsdWRlcygiLSIpfHwKRi5pbmNsdWRlcygiLSIpKVA9WSh1KStPLEs9WShGKStPO2Vsc2UgdmFyIFA9USh1KSxLPVEoRik7UD8/PTA7Sz8/PTA7dmFyIFc9YjY0ZCh5KS5zcGxpdCgiLCIpO3k9YS5nZXRBdHRyaWJ1dGUoInNjaGVkdWxpbmctdHlwZSIpO3ZhciBEPShuZXcgRGF0ZSkuZ2V0VGltZSgpK087dj1uZXcgRGF0ZShEKTt2YXIgRz12LmdldERheSgpOzA9PUc/Rz02OkctLTt1LmluY2x1ZGVzKCItIil8fEYuaW5jbHVkZXMoIi0iKXx8KHU9KG5ldyBEYXRlKHYuZ2V0RnVsbFllYXIoKSx2LmdldE1vbnRoKCksdi5nZXREYXRlKCkpKS5nZXRUaW1lKCkrTyxELT11LDA+RCYmKEQrPTg2NEU1KSk7c2NoZWR1bGluZ19zdGFydF9kYXRlX29rPUQ+PVA7c2NoZWR1bGluZ19lbmRfZGF0ZV9vaz0wPT1LfHxEPEs7dT1zY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2smJnNjaGVkdWxpbmdfZW5kX2RhdGVfb2smJlcuaW5jbHVkZXMoRy50b1N0cmluZygpKTtzd2l0Y2goeSl7Y2FzZSAiQiI6dT0hdX11fHwobD0hMSk7CnZhciBsYT12LnRvSVNPU3RyaW5nKCkuc3BsaXQoIi4iKVswXS5yZXBsYWNlKCJUIiwiICIpO3k9WChhLCIuYWktZGVidWctYmFyLmFpLWRlYnVnLXNjaGVkdWxpbmciKTswIT15Lmxlbmd0aCYmeS5mb3JFYWNoKChmLGgpPT57aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctaW5mbyIpO251bGwhPWgmJihoLnRleHRDb250ZW50PWxhKyIgIitHKyIgY3VycmVudF90aW1lOiAiK01hdGguZmxvb3IoRC50b1N0cmluZygpLzFFMykrIiAgc3RhcnRfZGF0ZToiK01hdGguZmxvb3IoUC8xRTMpLnRvU3RyaW5nKCkrIj0+IitzY2hlZHVsaW5nX3N0YXJ0X2RhdGVfb2sudG9TdHJpbmcoKSsiIGVuZF9kYXRlOiIrTWF0aC5mbG9vcihLLzFFMykudG9TdHJpbmcoKSsiPT4iK3NjaGVkdWxpbmdfZW5kX2RhdGVfb2sudG9TdHJpbmcoKSsiIGRheXM6IitXLnRvU3RyaW5nKCkrIj0+IitXLmluY2x1ZGVzKEcudG9TdHJpbmcoKSkudG9TdHJpbmcoKSk7aD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctc3RhdHVzIik7Cm51bGwhPWgmJihoLnRleHRDb250ZW50PWw/YWlfZnJvbnQudmlzaWJsZTphaV9mcm9udC5oaWRkZW4pO2x8fDA9PVZ8fChmLmNsYXNzTGlzdC5yZW1vdmUoImFpLWRlYnVnLXNjaGVkdWxpbmciKSxmLmNsYXNzTGlzdC5hZGQoImFpLWRlYnVnLWZhbGxiYWNrIiksaD1mLnF1ZXJ5U2VsZWN0b3IoIi5haS1kZWJ1Zy1uYW1lLmFpLXNjaGVkdWxpbmctc3RhdHVzIiksbnVsbCE9aCYmKGgudGV4dENvbnRlbnQ9YWlfZnJvbnQuZmFsbGJhY2srIiA9ICIrVikpfSl9aWYocHx8IWwmJk4pcmV0dXJuITA7YS5zdHlsZS52aXNpYmlsaXR5PSIiO2Euc3R5bGUucG9zaXRpb249IiI7YS5zdHlsZS53aWR0aD0iIjthLnN0eWxlLmhlaWdodD0iIjthLnN0eWxlLnpJbmRleD0iIjtpZihsKXtpZihudWxsIT1jJiYoYy5zdHlsZS52aXNpYmlsaXR5PSIiLGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmKGMuc3R5bGUucG9zaXRpb249IiIpKSxhLmhhc0F0dHJpYnV0ZSgiZGF0YS1jb2RlIikpe3A9CmI2NGQoYS5kYXRhc2V0LmNvZGUpO3U9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtnPSEwO3RyeXtIPXUuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHApfWNhdGNoKGYpe2c9ITF9ZyYmKG51bGwhPWEuY2xvc2VzdCgiaGVhZCIpPyhhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEgsYS5uZXh0U2libGluZyksYS5yZW1vdmUoKSk6YS5hcHBlbmQoSCkpO2RhKGEpfX1lbHNlIGlmKGcmJiF1JiYwIT1WKXtudWxsIT1jJiYoYy5zdHlsZS52aXNpYmlsaXR5PSIiLGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJhaS1yZW1vdmUtcG9zaXRpb24iKSYmYy5jc3Moe3Bvc2l0aW9uOiIifSkpO3A9ZmEoYSwiLmFpLWZhbGxiYWNrIik7MCE9cC5sZW5ndGgmJnAuZm9yRWFjaCgoZixoKT0+e2YuY2xhc3NMaXN0LnJlbW92ZSgiYWktZmFsbGJhY2siKX0pO2lmKGEuaGFzQXR0cmlidXRlKCJkYXRhLWZhbGxiYWNrLWNvZGUiKSl7cD1iNjRkKGEuZGF0YXNldC5mYWxsYmFja0NvZGUpO3U9ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKZz0hMDt0cnl7dmFyIEg9dS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQocCl9Y2F0Y2goZil7Zz0hMX1nJiZhLmFwcGVuZChIKTtkYShhKX1lbHNlIGEuc3R5bGUuZGlzcGxheT0ibm9uZSIsbnVsbCE9YyYmbnVsbD09Yy5xdWVyeVNlbGVjdG9yKCIuYWktZGVidWctYmxvY2siKSYmYy5oYXNBdHRyaWJ1dGUoInN0eWxlIikmJi0xPT1jLmdldEF0dHJpYnV0ZSgic3R5bGUiKS5pbmRleE9mKCJoZWlnaHQ6IikmJihjLnN0eWxlLmRpc3BsYXk9Im5vbmUiKTtudWxsIT1jJiZjLmhhc0F0dHJpYnV0ZSgiZGF0YS1haSIpJiYoYy5nZXRBdHRyaWJ1dGUoImRhdGEtYWkiKSxhLmhhc0F0dHJpYnV0ZSgiZmFsbGJhY2stdHJhY2tpbmciKSYmKEg9YS5nZXRBdHRyaWJ1dGUoImZhbGxiYWNrLXRyYWNraW5nIiksYy5zZXRBdHRyaWJ1dGUoImRhdGEtYWktIithLmdldEF0dHJpYnV0ZSgiZmFsbGJhY2tfbGV2ZWwiKSxIKSkpfWVsc2UgYS5zdHlsZS5kaXNwbGF5PSJub25lIixudWxsIT1jJiYoYy5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtYWkiKSwKYy5jbGFzc0xpc3QucmVtb3ZlKCJhaS10cmFjayIpLG51bGwhPWMucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLWJsb2NrIik/KGMuc3R5bGUudmlzaWJpbGl0eT0iIixjLmNsYXNzTGlzdC5yZW1vdmUoImFpLWNsb3NlIiksYy5jbGFzc0xpc3QuY29udGFpbnMoImFpLXJlbW92ZS1wb3NpdGlvbiIpJiYoYy5zdHlsZS5wb3NpdGlvbj0iIikpOmMuaGFzQXR0cmlidXRlKCJzdHlsZSIpJiYtMT09Yy5nZXRBdHRyaWJ1dGUoInN0eWxlIikuaW5kZXhPZigiaGVpZ2h0OiIpJiYoYy5zdHlsZS5kaXNwbGF5PSJub25lIikpO2Euc2V0QXR0cmlidXRlKCJkYXRhLWNvZGUiLCIiKTthLnNldEF0dHJpYnV0ZSgiZGF0YS1mYWxsYmFjay1jb2RlIiwiIik7bnVsbCE9YyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJhaS1saXN0LWJsb2NrIil9KX19O2Z1bmN0aW9uIGVhKGIpe2I9YDsgJHtkb2N1bWVudC5jb29raWV9YC5zcGxpdChgOyAke2J9PWApO2lmKDI9PT1iLmxlbmd0aClyZXR1cm4gYi5wb3AoKS5zcGxpdCgiOyIpLnNoaWZ0KCl9CmZ1bmN0aW9uIG1hKGIsZSxuKXtlYShiKSYmKGRvY3VtZW50LmNvb2tpZT1iKyI9IisoZT8iO3BhdGg9IitlOiIiKSsobj8iO2RvbWFpbj0iK246IiIpKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVCIpfWZ1bmN0aW9uIG0oYil7ZWEoYikmJihtYShiLCIvIix3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpLGRvY3VtZW50LmNvb2tpZT1iKyI9OyBQYXRoPS87IEV4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQ7Iil9KGZ1bmN0aW9uKGIpeyJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1kb2N1bWVudC5yZWFkeVN0YXRlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsP2IoKTpkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixiKX0pKGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2FpX3Byb2Nlc3NfbGlzdHMoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7WigpOwppZigiZnVuY3Rpb24iPT10eXBlb2YgYWlfbG9hZF9ibG9ja3Mpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNtcGx6RW5hYmxlU2NyaXB0cyIsZSk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY21wbHpfZXZlbnRfbWFya2V0aW5nIixlKTtmdW5jdGlvbiBlKG4peyJjbXBsekVuYWJsZVNjcmlwdHMiIT1uLnR5cGUmJiJhbGwiIT09bi5jb25zZW50TGV2ZWx8fGFpX2xvYWRfYmxvY2tzKCl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY21wbHpfZW5hYmxlX2NhdGVnb3J5IixmdW5jdGlvbihuKXsibWFya2V0aW5nIj09PW4uZGV0YWlsLmNhdGVnb3J5JiZhaV9sb2FkX2Jsb2NrcygpfSl9fSw1MCk7dmFyIGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmFpLWRlYnVnLXBhZ2UtdHlwZSIpO251bGwhPWImJmIuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGU9PntlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhaS1pYWItdGNmLXN0YXR1cyIpO251bGwhPWUmJihlLnRleHRDb250ZW50PQoiQ09OU0VOVCBDT09LSUVTIik7ZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1lJiYoZS5zdHlsZS5kaXNwbGF5PSJibG9jayIpfSk7Yj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYWktaWFiLXRjZi1iYXIiKTtudWxsIT1iJiZiLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixlPT57bSgiZXVjb25zZW50LXYyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyIik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2RhaXN5Yml0Iik7bSgiX19seEdfX2NvbnNlbnRfX3YyX2dkYWlzeWJpdCIpO20oIkNvb2tpZUxhd0luZm9Db25zZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hZHZlcnRpc2VtZW50Iik7bSgiY29va2llbGF3aW5mby1jaGVja2JveC1hbmFseXRpY3MiKTttKCJjb29raWVsYXdpbmZvLWNoZWNrYm94LW5lY2Vzc2FyeSIpO20oImNvbXBsaWFuel9wb2xpY3lfaWQiKTttKCJjb21wbGlhbnpfY29uc2VudF9zdGF0dXMiKTttKCJjbXBsel9tYXJrZXRpbmciKTsKbSgiY21wbHpfY29uc2VudF9zdGF0dXMiKTttKCJjbXBsel9wcmVmZXJlbmNlcyIpO20oImNtcGx6X3N0YXRpc3RpY3MtYW5vbnltb3VzIik7bSgiY21wbHpfY2hvaWNlIik7bSgiY21wbHpfYmFubmVyLXN0YXR1cyIpO20oImNtcGx6X2Z1bmN0aW9uYWwiKTttKCJjbXBsel9wb2xpY3lfaWQiKTttKCJjbXBsel9zdGF0aXN0aWNzIik7bSgibW9vdmVfZ2Rwcl9wb3B1cCIpO20oInJlYWxfY29va2llX2Jhbm5lci1ibG9nOjEtdGNmIik7bSgicmVhbF9jb29raWVfYmFubmVyLWJsb2c6MSIpO2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2FpLWlhYi10Y2Ytc3RhdHVzIik7bnVsbCE9ZSYmKGUudGV4dENvbnRlbnQ9IkNPTlNFTlQgQ09PS0lFUyBERUxFVEVEIil9KX0sNSl9KTtmdW5jdGlvbiBkYShiKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3Nfcm90YXRpb25zX2luX2VsZW1lbnQmJmFpX3Byb2Nlc3Nfcm90YXRpb25zX2luX2VsZW1lbnQoYik7CiJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2xpc3RzJiZhaV9wcm9jZXNzX2xpc3RzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaXBfYWRkcmVzc2VzJiZhaV9wcm9jZXNzX2lwX2FkZHJlc3NlcygpOyJmdW5jdGlvbiI9PXR5cGVvZiBhaV9wcm9jZXNzX2ZpbHRlcl9ob29rcyYmYWlfcHJvY2Vzc19maWx0ZXJfaG9va3MoKTsiZnVuY3Rpb24iPT10eXBlb2YgYWlfYWRiX3Byb2Nlc3NfYmxvY2tzJiZhaV9hZGJfcHJvY2Vzc19ibG9ja3MoYik7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX3Byb2Nlc3NfaW1wcmVzc2lvbnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9wcm9jZXNzX2ltcHJlc3Npb25zKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xpY2tfdHJhY2tlcnMmJjE9PWFpX3RyYWNraW5nX2ZpbmlzaGVkJiZhaV9pbnN0YWxsX2NsaWNrX3RyYWNrZXJzKCk7ImZ1bmN0aW9uIj09dHlwZW9mIGFpX2luc3RhbGxfY2xvc2VfYnV0dG9ucyYmYWlfaW5zdGFsbF9jbG9zZV9idXR0b25zKGRvY3VtZW50KX0sCjUpfWZ1bmN0aW9uIGlhKGIpe3ZhciBlPWI/Yi5zcGxpdCgiPyIpWzFdOndpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2xpY2UoMSk7Yj17fTtpZihlKXtlPWUuc3BsaXQoIiMiKVswXTtlPWUuc3BsaXQoIiYiKTtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHo9ZVtuXS5zcGxpdCgiPSIpLEM9dm9pZCAwLHg9elswXS5yZXBsYWNlKC9cW1xkKlxdLyxmdW5jdGlvbihMKXtDPUwuc2xpY2UoMSwtMSk7cmV0dXJuIiJ9KTt6PSJ1bmRlZmluZWQiPT09dHlwZW9mIHpbMV0/IiI6elsxXTt4PXgudG9Mb3dlckNhc2UoKTt6PXoudG9Mb3dlckNhc2UoKTtiW3hdPygic3RyaW5nIj09PXR5cGVvZiBiW3hdJiYoYlt4XT1bYlt4XV0pLCJ1bmRlZmluZWQiPT09dHlwZW9mIEM/Ylt4XS5wdXNoKHopOmJbeF1bQ109eik6Ylt4XT16fX1yZXR1cm4gYn19OwphaV9ydW5fNDc2OTcxNzY4Mzc0ID0gZnVuY3Rpb24oKXsKYWlfZG9jdW1lbnRfd3JpdGU9ZG9jdW1lbnQud3JpdGU7ZG9jdW1lbnQud3JpdGU9ZnVuY3Rpb24oYSl7ImludGVyYWN0aXZlIj09ZG9jdW1lbnQucmVhZHlTdGF0ZT8oY29uc29sZS5lcnJvcigiZG9jdW1lbnQud3JpdGUgY2FsbGVkIGFmdGVyIHBhZ2UgbG9hZDogIixhKSwidW5kZWZpbmVkIiE9dHlwZW9mIGFpX2pzX2Vycm9ycyYmYWlfanNfZXJyb3JzLnB1c2goWyJkb2N1bWVudC53cml0ZSBjYWxsZWQgYWZ0ZXIgcGFnZSBsb2FkIixhLDBdKSk6YWlfZG9jdW1lbnRfd3JpdGUuY2FsbChkb2N1bWVudCxhKX07DQphaV9pbnNlcnRfdmlld3BvcnRfY29kZSAoJ2FpLWluc2VydC04LTYyMDU0MjA0Jyk7CmFpX2luc2VydF92aWV3cG9ydF9jb2RlICgnYWktaW5zZXJ0LTQtNTIzMjQwMjcnKTsKYWlfaW5zZXJ0ICgnYWZ0ZXInLCAnaGVhZGVyLmhlcm8nLCBiNjRkICgnUEdScGRpQmpiR0Z6Y3owblkyOWtaUzFpYkc5amF5QmpiMlJsTFdKc2IyTnJMVE1uSUhOMGVXeGxQU2R0WVhKbmFXNDZJRGh3ZUNCaGRYUnZPeUIwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3SUdScGMzQnNZWGs2SUdKc2IyTnJPeUJqYkdWaGNqb2dZbTkwYURzblBnbzhhVzV6SUdOc1lYTnpQU0poWkhOaWVXZHZiMmRzWlNJS0lDQWdJQ0J6ZEhsc1pUMGlaR2x6Y0d4aGVUcHBibXhwYm1VdFlteHZZMnM3ZDJsa2RHZzZOekk0Y0hnN2FHVnBaMmgwT2prd2NIZ2lDaUFnSUNBZ1pHRjBZUzFoWkMxamJHbGxiblE5SW1OaExYQjFZaTB4TmpnNU9UZzNNVEkzTlRrMk5UWXdJZ29nSUNBZ0lHUmhkR0V0WVdRdGMyeHZkRDBpTWprek1EWTBORFkxTkNJK1BDOXBibk0rQ2p4elkzSnBjSFErQ2lBZ0lDQWdLR0ZrYzJKNVoyOXZaMnhsSUQwZ2QybHVaRzkzTG1Ga2MySjVaMjl2WjJ4bElIeDhJRnRkS1M1d2RYTm9LSHQ5S1RzS1BDOXpZM0pwY0hRK1BDOWthWFkrQ2c9PScpKTsKfTsKaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScgfHwgKGRvY3VtZW50LnJlYWR5U3RhdGUgIT09ICdsb2FkaW5nJyAmJiAhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKSkgYWlfcnVuXzQ3Njk3MTc2ODM3NCAoKTsgZWxzZSBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICgnRE9NQ29udGVudExvYWRlZCcsIGFpX3J1bl80NzY5NzE3NjgzNzQpOwphaV9qc19jb2RlID0gdHJ1ZTs=" data-cfasync="false" data-no-optimize="1" data-no-defer="1" data-no-minify="1" data-rocketlazyloadscript="1"></script></body></html> <!-- Cached by WP-Optimize (gzip) - https://teamupdraft.com/wp-optimize/ - Last modified: April 21, 2026 12:51 pm (UTC:0) -->