bytefun-ai-mcp 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CA6GQ;IAE/C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CA6FlC;IAED,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CA0LvC;IAEA;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOhE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBnF;;;OAGG;IACG,6BAA6B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAU7G;;;OAGG;IACG,iCAAiC,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAC,CAAC;IAWrH;;;OAGG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAC,CAAC;IAalI;;;OAGG;IACG,kCAAkC,CAAC,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGrG"}
|
|
@@ -20,6 +20,11 @@ export class PromptOptimizer {
|
|
|
20
20
|
## 分析规则
|
|
21
21
|
以下方法论分为多个步骤,重点突出"逐页面元素→可点→跳转"分析思路。
|
|
22
22
|
|
|
23
|
+
## 重点注意
|
|
24
|
+
- 开始设计之前要先查看当前工程目录下的.bytefun/uiDesignState.md文件(如果存在),了解之前的设计进度和状况,以便更好地理解上下文和继续设计工作。
|
|
25
|
+
- 如果发现.bytefun/uiDesignState.md文件不存在,则说明之前没有设计过,需要从零开始设计。
|
|
26
|
+
- 如果发现.bytefun/uiDesignState.md文件存在,则说明之前已经设计过,需要看下 是否同一个APP或者网站,如果是同一个那就不需要重新分析pageList,而且根据之前的设计进度和状况,继续设计工作,如果不是同一个APP或者网站,则需要删除.bytefun/uiDesignState.md文件,然后从零开始设计。
|
|
27
|
+
|
|
23
28
|
## 一、模块拆解与初步列出页面列表
|
|
24
29
|
|
|
25
30
|
1. **拆解核心业务模块**
|
|
@@ -390,6 +395,7 @@ export default class HomePageData {
|
|
|
390
395
|
- 每一次开始设计之前都要先查看当前工程目录下的.bytefun/html文件夹里面是否有已经设计好的页面,如果有就不需要重新设计,直接使用已经设计好的页面,然后开始下一个页面的UI设计。
|
|
391
396
|
- 每一次开始设计页面时,必须先阅读当前工程目录下的.bytefun/uiDesignState.md文件(如果存在),了解当前的设计进度和状况,以便更好地理解上下文和继续设计工作。
|
|
392
397
|
- 每一次设计完一个页面后,将当前进度和当前状况用200字总结并写入.bytefun/uiDesignState.md文件中。总结内容应包括:已完成的页面数量和名称、当前正在进行的工作、遇到的问题或注意事项、下一步的设计计划等。这样可以让AI大模型在后续工作中更加了解当前状态上下文,从而执行得更加准确。
|
|
398
|
+
- 开始UI设计之前,需要先创建index.html文件,然后根据pageList把所有页面先定义写入index.html文件里面,然后开始第一个页面的UI设计。
|
|
393
399
|
- viewPager轮播组件节点绝对不允许设置'overflow: hidden'。
|
|
394
400
|
- 第一步你得先充分理解'用户输入描述'的内容,然后分析得出一个正确而且全面的页面列表,不能漏掉一些页面,必须按要求把所有页面都进行高保真设计,你需要输出分析结果:总共多少个页面,分别是哪些页面。
|
|
395
401
|
- 必须是高保真的设计稿,不得使用原型设计那一套进行,必须要高保真的UI设计稿规则来设计,我希望这些界面是需要能直接拿去进行开发的。
|
|
@@ -490,4 +496,4 @@ ${userInput}`;
|
|
|
490
496
|
return await this.optimizeUIDesignPrompt(userInput, pageListResult);
|
|
491
497
|
}
|
|
492
498
|
}
|
|
493
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ1Qsc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dEQXdHSSxDQUFDO0lBRTlCLGtCQUFrQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUE2RnRDLENBQUM7SUFFZ0Isc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBeUwzQyxDQUFDO0lBRUE7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCO1FBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCOzs7RUFHdkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCOzs7RUFHbkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsUUFBaUI7UUFDL0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRXpDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUk7OztFQUdkLFFBQVE7Ozs7OzBCQUtnQixDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTTs7O0VBR2xCLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxTQUFpQjtRQUNuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFpQjtRQUN2RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxpQ0FBaUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTztZQUNMLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsaUNBQWlDO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFpQixFQUFFLGNBQXNCO1FBQ2hGLE9BQU8sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbflkozlpI3lkIjosIPnlKjpk77lip/og71cbiAqIC0g5q+P5Liq5Y2V5LiA5bel5YW35aSE55CG5LiN5ZCM57G75Z6L55qE6ZyA5rGC77yM5aSN5ZCI5bel5YW35pSv5oyB5aSa5Liq5bel5YW355qE57uE5ZCI6LCD55SoXG4gKiBcbiAqIOWNleS4gOW3peWFt+S9v+eUqOaWueW8j++8mlxuICogMS4gVUnorr7orqHpnIDmsYIg4oaSIOiwg+eUqCBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KCkgIFxuICogMi4g5Luj56CB5byA5Y+R6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVDb2RlUHJvbXB0KClcbiAqIFxuICog5aSN5ZCI5bel5YW35L2/55So5pa55byP77yaXG4gKiAxLiBVSeiuvuiuoSArIOS7o+eggee8luWGmSDihpIg6LCD55SoIG9wdGltaXplVUlEZXNpZ25BbmRDb2RlUHJvbXB0KClcbiAqIDIuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hIOKGkiDosIPnlKggb3B0aW1pemVQYWdlTGlzdEFuZFVJRGVzaWduUHJvbXB0KClcbiAqIDMuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hICsg5Luj56CB57yW5YaZIOKGkiDosIPnlKggb3B0aW1pemVGdWxsV29ya2Zsb3dQcm9tcHQoKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlTGlzdFByb21wdFRlbXBsYXRlID0gYCMg5L2g5pivQVBQ5Lqn5ZOB57uP55CG5LiT5a6277yM546w5Zyo6ZyA6KaB5L2g5qC55o2u55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w77yM6YG15b6qXCLliIbmnpDop4TliJlcIuWIhuaekOWHuuaJgOmcgOimgeeahOWujOaVtOeahOmhtemdouWIl+ihqOOAglxuXG4jIyDliIbmnpDop4TliJlcbuS7peS4i+aWueazleiuuuWIhuS4uuWkmuS4quatpemqpO+8jOmHjeeCueeqgeWHulwi6YCQ6aG16Z2i5YWD57Sg4oaS5Y+v54K54oaS6Lez6L2sXCLliIbmnpDmgJ3ot6/jgIJcblxuIyMg5LiA44CB5qih5Z2X5ouG6Kej5LiO5Yid5q2l5YiX5Ye66aG16Z2i5YiX6KGoXG5cbjEuICoq5ouG6Kej5qC45b+D5Lia5Yqh5qih5Z2XKiogIFxuICAgLSDlsIbmlbTkuKogQVBQIOWIhuaIkOWujOaVtOWujOWWhOeahOiLpeW5suWkp+aooeWdl++8jOS9oOmcgOimgemAieWPluS4gOS4quW4gumdouS4iuWFuOWei+eahOeUqOaIt+mHj+Wkp+eahOexu+S8vEFQUOadpeWIhuaekOWug+eahOaJgOacieWKn+iDveaooeWdl++8jOeEtuWQjuWFqOmDqOWIl+WHuuadpe+8jOe7neW6puS4jeWFgeiuuOa8j+aOieOAgiBcbiAgIC0g6L6T5Ye65omA5pyJ5Yqf6IO95qih5Z2X77yM5LiN6K665piv5ZCm5qC45b+D77yM5LiN6K665aSn5bCP77yM6YO96KaB5YiX5Ye65p2l44CCXG5cbjLjgIEqKuWIneatpeWIl+WHuumhtemdouWIl+ihqCoqICBcbiAgIC0g6YGN5Y6G5LiK5LiA5q2l5YiG5p6Q5YiX5Ye65p2l55qE5omA5pyJ5Lia5Yqh5qih5Z2X77yM5a+55q+P5LiA5Liq5Lia5Yqh5qih5Z2X6L+b6KGM57uG5YiG77yM5YiX5Ye66K+l5Lia5Yqh5qih5Z2X55qE5omA5pyJ6aG16Z2i44CCXG5cbiMjIOS6jOOAgeavj+S4qumhtemdoueahFwi5YWD57Sg4oaS5Y+v54K54oaS6Lez6L2sXCLliIbmnpDopoHngrlcblxuPiAqKuaguOW/g+aAnei3r++8mioqICBcbj4g6YGN5Y6G5LiK5LiA5q2l5YiG5p6Q5Ye65p2l55qE5q+P5Liq6aG16Z2i77yM5YOP5omr6Zu35LiA5qC3XCLngrnkuq5cIuWug+S4iumdouaJgOacieWPr+S6pOS6kuWFg+e0oO+8jOayv+edgFwi5YWD57Sg5Y+v54K54oaS6Lez6L2s55uu5qCHXCLkuIDot6/lu7bkvLjvvIzpgJDlsYLlj5HnjrDlubbooaXlhYXmm7TlpJrpobXpnaLmiJblvLnnqpfjgIJcblxuMS4gKiror4bliKvpobXpnaLlhYPntKAqKiAgXG4gICAtICoq6aG16Z2i5qGG5p62KirvvJrmtY/op4jpobXpnaLmlbTkvZPluIPlsYDvvIjlpoLpobbpg6jlr7zoiKrjgIFUYWLjgIHliJfooajjgIHooajljZXjgIHlupXpg6jmjInpkq7nrYnvvInjgIIgIFxuICAgLSAqKuWIl+WHuuaJgOacieaOp+S7tioq77yaICBcbiAgICAgLSDovpPlhaXmoYbjgIHmjInpkq7jgIHlm77niYfjgIHliJfooajpobnjgIHpk77mjqXmloflrZfjgIFUYWIg6aG544CB5LiL5ouJ566t5aS044CB5oKs5rWu5oyJ6ZKu44CB5Zu+5qCH44CB5aSN6YCJL+WNlemAieaMiemSruetieOAglxuXG4yLiAqKuagh+iusOWPr+eCueWHu+WFg+e0oCoqICBcbiAgIC0g5Zyo5LiK6L+w5o6n5Lu25Lit77yM5Yik5pat5ZOq5Lqb5pivXCLlj6/ngrnlh7tcIu+8miAgXG4gICAgIC0gKirmmL7mgKfmjInpkq4qKu+8iOaPkOS6pC/noa7orqQv5Y+W5raIL+S4i+S4gOatpe+8iSAgXG4gICAgIC0gKirlj6/lsZXlvIDmoIfpopgv5Y2h54mHKirvvIjngrnlh7vlsZXlvIDmm7TlpJrvvIkgIFxuICAgICAtICoq5bim6ZO+5o6l55qE5paH5a2XKirvvIjljY/orq7jgIHpmpDnp4HjgIHms6jlhozjgIHlv5jorrDlr4bnoIHnrYnvvIkgIFxuICAgICAtICoq5YiX6KGo6aG5L+e9keagvOWNoeeJhyoqICBcbiAgICAgLSAqKuWbvuWDj+e8qeeVpeWbvuOAgei9ruaSreWbvuafkOS6m+WPr+eCueWHu+WMuuWfnyoqICBcbiAgICAgLSAqKuWvvOiIqui/lOWbni/lhbPpl60v6I+c5Y2V5Zu+5qCHKiogIFxuXG4zLiAqKumAkOS4gOWIl+WHulwi54K55Ye74oaS6Lez6L2s55uu5qCHXCIqKiAgXG4gICAtIOWvueavj+S4quWPr+eCueWHu+WFg+e0oO+8jOaYjuehrueCueWHu+WQju+8miAgXG4gICAgIDEuIOi3s+i9rOWIsOWTquS4qumhtemdouaIluW8ueeql++8nyAgXG4gICAgIDIuIOaJgOmcgOS4iuS4i+aWhy/lj4LmlbDvvJ8gIFxuICAgICAzLiDlpoLmnpzop6blj5HnmoTmmK9cIuacrOmhtemdouWGheihjOS4ulwi77yI5aaC5oqY5Y+g44CB5Yi35paw77yJ77yM5Lmf6KaB5qCH5piO44CCICBcblxuICAgLSAqKuekuuS+iyoq77yI5LulXCLllYblk4Hor6bmg4XpobVcIuS4uuS+i++8ie+8miAgXG4gICAgIOmhtemdou+8muWVhuWTgeivpuaDhemhtSAgXG4gICAgIOWFg+e0oO+8miAgXG4gICAgICAgMS4g6L+U5Zue5oyJ6ZKuIOKGkCDngrnlh7sg4oaSIOi/lOWbnuadpea6kOmhte+8iOWIhuexuy/mkJzntKIv5rex5bqm6ZO+5o6l77yJICBcbiAgICAgICAyLiDmlLbol4/lm77moIcg4oaQIOeCueWHuyDihpIgIFxuICAgICAgICAgICAg4oCiIOW3sueZu+W9le+8muagh+iusOW3suaUtuiXj+W5tuaPkOekulwi5bey5pS26JePXCIgIFxuICAgICAgICAgICAg4oCiIOacqueZu+W9le+8mui3s+i9rOiHs+OAkOeZu+W9lemhtemdouOAkSAgXG4gICAgICAgMy4g5YiG5Lqr5oyJ6ZKuIOKGkCDngrnlh7sg4oaSIOWUpOi1t+ezu+e7n+WIhuS6q+W8ueeql++8iOaXoOaWsOmhtemdou+8iSAgXG4gICAgICAgNC4g6KeE5qC86YCJ5oup5Yy677yI5q+P56eN6KeE5qC85qCH562+77yJICBcbiAgICAgICAgICAgIOKGkCDngrnlh7sg4oaSIOacrOmhtemdouWGheWIt+aWsOS7t+agvC/lupPlrZggIFxuICAgICAgIDUuIOaVsOmHj+mAieaLqeWZqCDihpAg54K55Ye7IOKGkiDlvLnlh7rmlbDph4/osIPmlbTmjqfku7bvvIjmnKzpobXpnaLlhoXvvIkgIFxuICAgICAgIDYuIFwi5Yqg5YWl6LSt54mp6L2mXCLmjInpkq4g4oaQIOeCueWHuyDihpIgIFxuICAgICAgICAgICAg4oCiIOW3sueZu+W9lSAmIOacieW6k+WtmO+8mui0reeJqei9puaVsOmHjysx77yM5by55rWu5bGCXCLlt7LliqDlhaXotK3nianovabvvIzljrvmn6XnnIvvvJ9cIiAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAgICAgIOKAoiDlupPlrZjkuI3otrPvvJrlvLnnqpfmj5DnpLpcIuW6k+WtmOS4jei2s1wiICBcbiAgICAgICA3LiBcIueri+WNs+i0reS5sFwi5oyJ6ZKuIOKGkCDngrnlh7sg4oaSICBcbiAgICAgICAgICAgIOKAoiDlt7LnmbvlvZUgJiDmnInlupPlrZjvvJrot7Povazoh7PjgJDnoa7orqTorqLljZXpobXjgJHvvIzmkLrluKbor6XllYblk4Hkv6Hmga8gIFxuICAgICAgICAgICAg4oCiIOacqueZu+W9le+8mui3s+i9rOiHs+OAkOeZu+W9lemhtemdouOAkSAgXG4gICAgICAgICAgICDigKIg5bqT5a2Y5LiN6Laz77ya5by556qX5o+Q56S6XCLlupPlrZjkuI3otrNcIiAgXG4gICAgICAgOC4g6K+m5oOF5Yy6IFRhYu+8mlwi5ZWG5ZOB6K+m5oOFXCLjgIFcIuivhOS7t1wi44CBXCLluLjop4Hpl67nrZRcIiAgXG4gICAgICAgICAgICDihpAg54K55Ye7IOKGkiDliIfmjaLmnKzpobXpnaLlr7nlupTljLrln58gIFxuICAgICAgIDkuIOWuouacjeaMiemSru+8iOW6lemDqO+8iSDihpAg54K55Ye7IOKGkiDot7Povazoh7PjgJDlrqLmnI3lr7nor53pobXjgJEgIFxuXG4gICAgIOW8guW4uC/ovrnnlYzvvJogIFxuICAgICAgIC0g5ZCO56uv5pWw5o2u5Yqg6L295aSx6LSl77ya5bGV56S6XCLliqDovb3lpLHotKXvvIzngrnlh7vph43or5VcIuWNoOS9je+8myAgXG4gICAgICAgICDngrnlh7tcIumHjeivlVwiIOKGkiDph43mlrDlj5Hor7fmsYLvvJsgIFxuICAgICAgIC0g5ZWG5ZOB5bey5LiL5p6277ya5YWo6aG15o+Q56S6XCLor6XllYblk4Hlt7LkuIvmnrZcIu+8jOaJgOaciei0reeJqeaMiemSrue9rueBsO+8myAgXG4gICAgICAgLSBTZXNzaW9uIOi/h+acn++8muW8ueeql+aPkOekulwi6K+36YeN5paw55m75b2VXCIg4oaSIOi3s+i9rOOAkOeZu+W9lemhtemdouOAkSAgXG5cbjQuICoq5Lul5q2kXCLngrnkuq5cIuS4i+S4gOWxgumhtemdoioqICBcbiAgIC0g57un57ut5a+55q+P5Liq55uu5qCH6aG16Z2i5YGa5ZCM5qC355qEXCLlhYPntKDihpLlj6/ngrnihpLot7PovaxcIuWIhuaekO+8miAgXG4gICAgIC0gKirnmbvlvZXpobXpnaIqKu+8muWIl+WHuui0puWPty/lr4bnoIHovpPlhaXmoYbjgIHnmbvlvZUv5YiH5o2i55m75b2V5pa55byP5oyJ6ZKu44CB5rOo5YaML+W/mOiusOWvhueggS/ljY/orq7pk77mjqXvvIzlubbmoIfms6jlkIToh6rljrvlkJHjgIIgIFxuICAgICAtICoq56Gu6K6k6K6i5Y2V6aG1KirvvJrliJflh7pcIumAieaLqeWcsOWdgFwiXCLpgInmi6nkvJjmg6DliLgv56ev5YiGXCJcIumAieaLqemFjemAgeaWueW8j1wiXCLmj5DkuqTorqLljZVcIuaMiemSru+8jOWPiuWvueW6lOi3s+i9rOOAgiAgXG4gICAgIC0g4oCm5aaC5q2k5b6q546v77yM55u05Yiw5omA5pyJ6aG16Z2i55qE5Y+v5Lqk5LqS5YWD57Sg6YO96KKr5YiG5p6Q5a6M5q+V44CCXG5cbjUuICoq5LiN5pat5Y+R546w5bm26KGl5YWF6YGX5ryP6aG16Z2iKiogIFxuICAgLSDlnKjliIbmnpDov4fnqIvkuK3vvIzlpoLmnpzlh7rnjrBcIuW8ueeql1wiXCLmt7Hluqbpk77mjqXmib/mjqVcIlwi5p2D6ZmQ5by556qXXCLnrYnpmpDol4/lhaXlj6PvvIzpobvlsIblhbblvZPkvZzni6znq4tcIumhtemdoi/nu4Tku7ZcIuihpeWFhe+8miAgXG4gICAgIC0g572R57uc5byC5bi45by556qX44CB5Lya6K+d6L+H5pyf5by556qX44CB5bqT5a2Y5LiN6Laz5o+Q56S644CB5LyY5oOg5Yi45aSx5pWI5o+Q56S6562J44CCICBcblxuNi4gKirmiYDmnInpobXpnaLpg73lkIznrYnph43opoEqKiAgXG4gICAtIOWcqOiuvuiuoUFQUOaXtu+8jOWKoeW/heWwhuaJgOaciemhtemdouinhuS4uuWQjOetiemHjeimge+8jOS4jeWIhuaguOW/g+mhtemdouWSjOasoeimgemhtemdouOAguavj+S4qumhtemdoumDveW6lOiiq+a4heaZsOWcsOWIl+WHuu+8jOW5tuivpue7huaPj+i/sOWFtuWKn+iDveWSjOS6pOS6kuaWueW8j+OAguS+i+Wmgu+8jOWcqOWcsOWdgOeuoeeQhuWKn+iDveS4re+8jFwi5Zyw5Z2A566h55CG6aG1XCLmmK/kuLvopoHpobXpnaLnlKjkuo7lsZXnpLrlnLDlnYDliJfooajvvIxcIua3u+WKoOWcsOWdgOmhtVwi55So5LqO6L6T5YWl5paw5Zyw5Z2A77yMXCLnvJbovpHlnLDlnYDpobVcIueUqOS6juS/ruaUueeOsOacieWcsOWdgO+8jOi/meS4ieS4qumhtemdoumDveW6lOiiq+inhuS4uuWQjOetiemHjeimgeOAguiuvuiuoeaWh+aho+S4remcgOivpue7huiusOW9leavj+S4qumhtemdoueahOWFt+S9k+WKn+iDveWSjOi3s+i9rOmAu+i+ke+8jOS7peehruS/neiuvuiuoeeahOWujOaVtOaAp+WSjOS4gOiHtOaAp+OAglwiXG5cbiMjIOS4ieOAgeWFtuS9meatpemqpFxuXG4xLiAqKuagoemqjOS4muWKoemXreeOryoqXG4gICAtIOaKiuWFuOWei+eUqOaIt+a1geeoi+WujOaVtOi1sOS4gOmBje+8jOehruS/neavj+S4gOatpeeahFwi5Y+v54K55Ye75YWD57Sg4oaS6Lez6L2s55uu5qCHXCLpg73lt7LliJflh7rjgIIgIFxuICAgLSDlpoLmnpznvLrlsJHkuK3pl7TpobXvvIzliJnlm57liLDkuIrkuIDlsYLooaXlhYXliIbmnpDjgIJcblxuMi4gKirooaXlhYXpgJrnlKggJiDlhajlsYDpobXpnaIqKiAgXG4gICAtICoq5ZCv5YqoL+mXquWxj+mhtSoq77ya5YiG5p6QXCLot7Pov4dcIuaMiemSruaIluWAkuiuoeaXtue7k+adn+iHquWKqOi3s+i9rOOAgiAgXG4gICAtICoq5byV5a+8L+aWsOaJi+aVmeWtpumhtSoq77ya5YiG5p6QXCLkuIvkuIDmraVcIlwi6Lez6L+HXCLmjInpkq7nm67moIfjgIIgIFxuICAgLSAqKjQwNC/lhajlsYDplJnor6/pobUqKu+8muWIhuaekFwi6YeN6K+VXCJcIui/lOWbnummlumhtVwi5oyJ6ZKu55uu5qCH44CCICBcbiAgIC0gKirmt7Hluqbpk77mjqXmib/mjqXpobUqKu+8muWIhuaekFwi5YWI55m75b2V4oaS5YaN6Lez6L2s55uu5qCHXCLmiJZcIuebruagh+WkseaViOKGkjQwNFwi6YC76L6R44CCICBcblxuMy4gKirovpPlh7rmnIDnu4jmuIXljZUqKiAgXG4gICAtIOi+k+WHuumhtemdouaAu+aVsO+8jOS7peWPiuaMieeFp+aooeWdl+Wxgue6p++8jOWwhuaJgOaciVwi6aG16Z2i5ZCN56ewXCLku6XliIblsYLliJfooajlvaLlvI/lsZXnpLrjgIIgIFxuICAgLSDnoa7kv53mr4/kuKrpobXpnaLpg73lt7JcIueCueS6rlwi5omA5pyJ5Lqk5LqS5YWD57Sg77yM55uu5qCH6aG16Z2i6YO95Zyo5riF5Y2V5Lit5Ye6546w44CCICBcblxuPiAqKuaWueazleiuuuaguOW/g+W8uuiwg++8mioqICBcbj4gKipcIumAkOmhtemdouWFg+e0oOaJq+aPjyDihpIg5qCH6K6w5Y+v54K5IOKGkiDmuIXmmbDliJflh7rot7Povaznm67moIdcIioqIOaYr+iHqumhtuWQkeS4i+OAgeS7juWuj+WIsOW+rueahOaAnei3r++8miAgXG4+IDEuIOWFiOWIl+WHuuWkp+aooeWdl++8myAgXG4+IDIuIOaLhuino+WHuuWQhOaooeWdl+eahOmhtemdou+8myAgXG4+IDMuIOWvueavj+S4qumhtemdouWBmlwi5YWD57Sg4oaS5Y+v54K54oaS6Lez6L2sXCLpgJDpobnmorPnkIbvvJsgIFxuPiA0LiDpgJrov4flpJrova7pl63njq/moKHpqozvvIznoa7kv53msqHmnInpgZfmvI/jgIIgIFxuXG7ov5nmoLfvvIzmr4/mrKHnu5jliLbkuIDkuKrpobXpnaLljp/lnovvvIzpg73og73nlJ/miJDkuIDku73lrozmlbTnmoRcIuWFg+e0oOS6pOS6kui3s+i9rOihqFwi77yM5Li6VUnorr7orqHnjq/oioLmj5DkvpvmmI7noa7lj4LogIPjgIJgO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29kZVByb21wdFRlbXBsYXRlID0gYCMg5L2g5pivdHlwZXNjcmlwdOS7o+eggeS4k+Wutu+8jOagueaNrifop4TliJkn44CBJ+S+i+WtkCflkoznlKjmiLfovpPlhaXnmoTpnIDmsYLmj4/ov7DvvIzlrozmiJDku6PnoIHlvIDlj5FcblxuIyMg6aG555uu5qGG5p625o+P6L+wXG4tIOaVtOS4qumhueebruahhuaetuWIhuS4uueoi+W6j+WFpeWPo0FwcGxpY2F0aW9uLnRz44CB56iL5bqP5YWo5bGA6Z2Z5oCB5Y+Y6YePU3RhdGljRGF0YS50c+OAgeaJgOaciemhtemdonBhZ2Xmlofku7blpLnjgIFVSee7hOS7tuW6k3VpbGli5paH5Lu25aS544CB5ZCO56uv5o6l5Y+jQWxsQmFja0VuZEFwaS50c+OAgeWUr+S4gOeahOiDveWKm+aWueazlUFsbEZ1bmN0aW9uLnRz44CCXG4tIOi/meaYr+S4gOS4quaWsOWei+W8gOWPkeahhuaetu+8jFVJ55WM6Z2i5bey57uP5L2/55So5Y+v6KeG5YyW5bel5YW355Sf5oiQ5LqG5omA5pyJ55qE6Z2Z5oCB55qEVUnpobXpnaLkuobvvIznhLblkI7kvaDpnIDopoHkvb/nlKh0c+S7o+eggeW8gOWPkeS4muWKoemAu+i+keS4jlVJ5Lqk5LqS6YC76L6R77yM5Zug5q2k57yW5YaZdHPku6PnoIHlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7DlrozmiJDkuJrliqHpgLvovpHkuI5VSeS6pOS6kueahOW8gOWPkeOAglxuXG4jIyDop4TliJnvvJpcbjHjgIFVSeeVjOmdouW3sue7j+W8gOWPkeWujOavle+8jOS4jemcgOimgeWinuWIoOaUueS7u+S9lemdmeaAgVVJ55WM6Z2i44CCXG4y44CB5L2g5Y+q6ZyA6KaB5oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5L2/55SodHPku6PnoIHlrozmiJDkuJrliqHpgLvovpHkuI5VSeS6pOS6kueahOW8gOWPkVxuM+OAgeavj+S4gOasoeW8gOWni+e8luWGmeS7o+eggeaXtu+8jOW/hemhu+WFiOmYheivu+W9k+WJjeW3peeoi+ebruW9leS4i+eahC5ieXRlZnVuL2NvZGVTdGF0ZS5tZOaWh+S7tu+8iOWmguaenOWtmOWcqO+8ie+8jOS6huino+W9k+WJjeeahOS7o+eggeW8gOWPkei/m+W6puWSjOeKtuWGte+8jOS7peS+v+abtOWlveWcsOeQhuino+S4iuS4i+aWh+WSjOe7p+e7reW8gOWPkeW3peS9nOOAglxuNOOAgeavj+S4gOasoeWujOaIkOS4gOS4quWKn+iDveaooeWdl+aIlumhtemdoueahOS7o+eggee8luWGmeWQju+8jOWwhuW9k+WJjei/m+W6puWSjOW9k+WJjeeKtuWGteeUqDIwMOWtl+aAu+e7k+W5tuWGmeWFpS5ieXRlZnVuL2NvZGVTdGF0ZS5tZOaWh+S7tuS4reOAguaAu+e7k+WGheWuueW6lOWMheaLrO+8muW3suWujOaIkOeahOWKn+iDveaooeWdl+WSjOmhtemdouOAgeW9k+WJjeato+WcqOi/m+ihjOeahOW8gOWPkeW3peS9nOOAgemBh+WIsOeahOaKgOacr+mXrumimOaIluazqOaEj+S6i+mhueOAgeS4i+S4gOatpeeahOW8gOWPkeiuoeWIkuetieOAgui/meagt+WPr+S7peiuqUFJ5aSn5qih5Z6L5Zyo5ZCO57ut5bel5L2c5Lit5pu05Yqg5LqG6Kej5b2T5YmN54q25oCB5LiK5LiL5paH77yM5LuO6ICM5omn6KGM5b6X5pu05Yqg5YeG56Gu44CCXG4144CB6K+35Lil5qC85oyJ54Wn5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPvvIzkuI3opoHmlrDlop7jgIHliKDpmaTmiJbkv67mlLnku7vkvZVBbGxGdW5jdGlvbuaOpeWPo+WjsOaYju+8m+S5n+S4jeimgeiwg+eUqOWFtuS7luacquWcqEFsbEZ1bmN0aW9u5Lit5Ye6546w55qE5Ye95pWw5oiW5qih5Z2XXG4244CB5omA5pyJ5ZCO56uvQVBJ6LCD55So5b+F6aG75L2/55SoQWxsQmFja0VuZEFwaeexu+S4reWumuS5ieeahOaWueazle+8jOS4jeWFgeiuuOS9v+eUqOacquWcqEFsbEJhY2tFbmRBcGnkuK3lrprkuYnnmoTlkI7nq69BUEnjgIJcbjfjgIFVSeeVjOmdouOAgVVJ6buY6K6k5pWw5o2u44CBVUnmoLflvI/lt7Lnu4/lhajpg6jnlJ/miJDlpb3nmoTkuobvvIzkvaDkuI3og73lnKhpbml0Vmlld+aWueazlemHjOmdouaTheiHqua3u+WKoOS4gOS6m3ZpZXfnmoRVSeagt+W8j+aIluWxnuaAp+etieWIneWni+WMlu+8jOmZpOmdnueUqOaIt+mcgOaxguaPj+i/sOaYjuehruaMh+WHuumcgOimgeabtOaUueWTquS6m+agt+W8j+aIluWxnuaAp+OAglxuOOOAgeWtl+espuS4suimgeS7peWNleW8leWPt+adpeWGme+8jOWmgu+8mifmiJHnmoQn44CCXG4544CB5Lu75L2V5pa55rOV5Ye95pWw5a6a5LmJ77yM5LiN5b6X5L2/55SoYXN5bmPlkoxQcm9taXNl77yM5omA5pyJ5byC5q2l5pON5L2c5b+F6aG75L2/55So566t5aS05Ye95pWw44CCXG4xMOOAgeaJgOaciVBhZ2XnmoTlrZDnsbvvvIzpg73lhYHorrjmt7vliqDmnoTpgKDlh73mlbDlkozmnoTpgKDlh73mlbDnmoTlj4LmlbDvvIzov5nkupvlj4LmlbDlsLHnlKjmnaXpobXpnaLot7Povazml7bpobXpnaLkuYvpl7TkvKDpgJLmlbDmja7kvb/nlKjvvIzmr5TlpoLvvJrllYblk4HliJfooajpobVQcm9qZWN0TGlzdFBhZ2Xot7PliLDllYblk4Hor6bmg4XpobVQcm9qZWN0RGV0YWlsUGFnZe+8jOmCo+S5iFByb2plY3RMaXN0UGFnZeW6lOivpeimgeS8oOe7mVByb2plY3REZXRhaWxQYWdl5LiA5Liq5Y+C5pWw77yacHJvZHVjdElE44CC5omA5Lul77yMUHJvamVjdERldGFpbFBhZ2XnmoTpobXpnaLlj4LmlbDlo7DmmI7lkozmnoTpgKDlh73mlbDlupTor6XmmK/ov5nmoLflhpnvvJpwcml2YXRlIHByb2R1Y3RJRDogc3RyaW5nXG5cblx0Y29uc3RydWN0b3IocHJvZHVjdElEOiBzdHJpbmcpIHtcblx0XHRzdXBlcigpXG5cdFx0dGhpcy5wcm9kdWN0SUQgPSBwcm9kdWN0SURcblx0feOAglxuMTHjgIFWaWV355u45YWz5Y+Y6YeP5b+F6aG75ZyoeHh4UGFnZeexu+W8gOWni+aXtuWjsOaYju+8jOW/hemhu+WjsOaYjuWFt+S9k+eahFZpZXfnsbvlnovlpoLvvJpJbnB1dFZpZXfvvIzogIzkuI3mmK/nm7TmjqXlo7DmmI7nsbvlnovkuLpCYXNlVmlld++8jOaJgOaciVZpZXflv4XpobtmaW5kVmlld0J5SUTliJ3lp4vljJbvvIzlpoLvvJpzYXZlQnV0dG9uOiBCdXR0b25WaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVCdXR0b24nKSBhcyBCdXR0b25WaWV344CC6L+Z6YeM55qEZmluZFZpZXdCeUlE5YW25LitaWTlj4LmlbDmmK/lnKjor6XpobXpnaLnmoRodG1s5paH5Lu26YeM6Z2i6I635Y+W5Yiw55qEaWTlgLzjgIJcbjEy44CB5ZON5bqU5byP5byV55SocmVm55qE5L2/55So77ya57G75Z6LdnVlM+eahHJlZu+8jOWPr+S7peWwhuS4gOS4quWAvOWPmOaIkOWTjeW6lOW8j+eahO+8jOS7juiAjOWcqOivpeWAvOWPkeeUn+WPmOWMluaXtu+8jOiHquWKqOinpuWPkeebuOWFs+eVjOmdoueahOabtOaWsOOAglxuMTPjgIFjb21wdXRlZOeahOS9v+eUqO+8muexu+Wei3Z1ZTPnmoRjb21wdXRlZO+8jOW9k+S9oOmcgOimgeagueaNruS4gOS4quaIluWkmuS4quWTjeW6lOW8j+a6kChyZWYp6K6h566X5Ye65LiA5Liq5paw55qE5YC85pe277yM5bCx55SoIGNvbXB1dGVkXG4xNOOAgeWmguaenOaYr+WkmuS4qumhtemdouWFseeUqOeahOaVsOaNruWPmOmHj++8jOWPr+S7peiAg+iZkeWjsOaYjuS4uuWFqOWxgOmdmeaAgeWPmOmHj+OAglxuMTXjgIHlhajlsYDpnZnmgIHlj5jph4/lnKjlhbPpl61BUFDmiJbogIXnvZHpobXlkI7kvJrmuIXnkIbmjonnmoTvvIzmiYDku6XkvaDopoHmgJ3ogIPmuIXmpZrlk6rkupvmlbDmja7lj5jph4/pnIDopoHmjIHkuYXljJblgqjlrZjvvIzlk6rkupvmmK/lhajlsYDpnZnmgIHlj5jph4/vvIzmjIHkuYXljJbmjqXlj6PvvJpzYXZlRGF0YWJhc2VYeHjlkoxnZXREYXRhYmFzZURhdGFYeHjvvIzmr5TlpoLmmK/lkKblt7Lnu4/lvLnlh7rov4flub/lkYrlvLnmoYbvvIzov5nkuKrlupTor6XmjIHkuYXljJblgqjlrZjjgIJcbjE244CB5omA5pyJ55qE572R57uc5oum5oiq55qE5YWo5bGA57uf5LiA5aSE55CG6ZyA6KaB5ZyoQXBwbGljYXRpb27kuK3nmoRvbkdsb2JhbE5ldFN1Y2Nlc3NJbnRlcmNlcHQo6IGU572R5oiQ5Yqf5ZCO77yM5ZCO56uv5Lia5Yqh5q2j56Gu5LiO6ZSZ6K+v6YO95Lya5Zue6LCD5Yiw6L+Z6YeM77yM5omA5Lul5Zyo6L+Z6YeM5Y+v57uf5LiA5aSE55CG5Lia5Yqh6ZSZ6K+v56CBKeaIlm9uR2xvYmFsTmV0RmFpbEludGVyY2VwdCjnvZHnu5zkuI3pgJrvvIzov57mjqXlpLHotKXmg4XlhrXkvJrlm57osIPliLDov5nph4wp6YeM6Z2i5aSE55CG44CCXG4xN+OAgemhtemdoui3s+i9rOS9v+eUqEFsbEZ1bmN0aW9uLm5hdmlnYXRlVG/lrp7njrDvvIxuYXZpZ2F0ZVRv5Lyg5YWlUGFnZeeahOWtkOexu+Wvueixoe+8jOWmgu+8mkFsbEZ1bmN0aW9uLm5hdmlnYXRlVG8obmV3IFByb2R1Y3RQYWdlKHRoaXMucHJvZHVjdElEKSnjgIJcbjE444CB6aG16Z2i5YaF55qE572R57uc6K+35rGC5Lia5Yqh5aSE55CG5LiN5b6X5YaZ5ZyoQXBwbGljYXRpb27nmoRvbkdsb2JhbE5ldFN1Y2Nlc3NJbnRlcmNlcHTph4zpnaLjgIJcbjE544CB5a2X56ym5Liy5LiN5b6X55u05o6l6L+b6KGMYm9vbGVhbui/kOeul+eEtuWQjui1i+WAvOe7mWJvb2xlYW7nsbvlnovnmoTlj5jph4/vvIzpnIDopoHlnKjlrZfnrKbkuLLliY3pnaLmt7vliqDkuKTkuKrpnZ7ov5DnrpfvvJohIeOAguavlOWmguato+ehrueahOWGmeazle+8mmNvbnN0IGlzQWRkID0gISF0aGlzLmlucHV0Vmlldy50ZXh0ICYmIGlzTmV3XG4yMOOAgeWmgueUqOaIt+aPj+i/sOayoeacieaYjuehruivtOaYjumcgOimgXRvYXN05o+Q56S677yM5L2g5LiN5b6X5pOF6Ieq6L+b6KGMVG9hc3TjgIJcbjIx44CB5bu25pe25omn6KGMQWxsRnVuY3Rpb24uc2V0VGltZW91dOezu+e7n+S8muiHquWKqOa4heeQhnRpbWVvdXTvvIzku6PnoIHkuIrnu53lr7nkuI3og73ov5vooYxjbGVhVGltZW91dOetieexu+S8vOaTjeS9nO+8jOWboOatpHNldFRpbWVvdXTkuZ/kuI3pnIDopoHlo7DmmI7lj5jph4/ljrvmjqXmlLZzZXRUaW1lb3V06L+U5Zue55qE5byV55So44CCXG4yMuOAgeaJgOacieS7o+eggeS4jeW+l+S9v+eUqGludGVyZmFjZe+8jOaVsOaNruWunuS9k2VudGl0ee+8jOW/hemhu+S9v+eUqGNsYXNz5a6a5LmJ77yM5LiN5b6X5L2/55SoaW50ZXJmYWNl77yM5L2/55So5LmL5YmN6ZyA6KaBbmV35a6e5L6L5YyWXG4yM+OAgeavj+S4gOS4qumhtemdoijlpoJsb2dpblBhZ2Up5bu66K6u5ZyocGFnZeaWh+S7tuWkueS4i+mdouWIm+W7uuS4gOS4qumhtemdouaWh+S7tuWkuSjlpoJsb2dpbinvvIznhLblkI7pobXpnaLnmoR0c+aWh+S7tijlpoJsb2dpblBhZ2UudHMp5Yib5bu65Zyo6aG16Z2i5paH5Lu25aS55LiL6Z2i77yM6aG16Z2i5paH5Lu25aS55LiL6L+Y6ZyA5Yib5bu65LiA5Liq6aG16Z2i5pWw5o2udHPmlofku7Yo5aaCbG9naW5QYWdlRGF0YS50cynvvIzov5nmoLflpoJsb2dpblBhZ2XotJ/otKPkuJrliqHpgLvovpHlkozkuqTkupLpgLvovpHvvIzlpoJsb2dpblBhZ2VEYXRh6LSf6LSj5pWw5o2u5aOw5piO5a6a5LmJ44CB5Yid5aeL5YyW5LiO566h55CG562J44CCXG4yNOOAgemhtemdouaWh+S7tuWkueS4i+mdoueahOmhtemdomh0bWwo5aaCbG9naW5QYWdlVmlldy5odG1sKe+8jOi/meaYr+WPr+inhuWMluW3sue7j+eUn+aIkOeahFVJ55WM6Z2i55qE6IqC54K55pig5bCE77yM6K+l5paH5Lu25Y+q5piv55So5LqO5L2g5pu05Yqg55CG6Kej6K+l6aG16Z2i55qEVUnnu5PmnoTlkoznu4Tku7blkb3lkI3ogIzorr7nq4vnmoTvvIzor6Xmlofku7bkuI3lj4LkuI7nvJbor5HvvIzku4Xku4XmmK/kv6Hmga/mlofmoaPmj5DnpLrkvZznlKjvvIzlm6DmraTkuI3lj6/ku6Xkv67mlLnov5nkuKpodG1s5paH5Lu244CCXG4yNeOAgeWPque7meivpemhtemdouS9v+eUqOeahGVudGl0eemcgOimgeW7uueri+WcqOivpemhtemdouaWh+S7tuWkueS4i+mdoueahGVudGl0eeaWh+S7tuWkueS4i+mdouOAglxuMjbjgIFsaWLmlofku7blpLnmmK/miYDmnIlVSee7hOS7tuWSjOiDveWKm+aWueazleeahOWumuS5ieWjsOaYju+8jOW6leWxguahhuaetuW3suazqOWFpeWunueOsOWFt+S9k+mAu+i+ke+8jOWboOatpOS9oOS4jemcgOimgeS5n+S4jeWFgeiuuOWinuWIoOaUuWxpYuaWh+S7tuWkuemHjOmdoueahOS7o+eggeOAglxuMjfjgIHlvZPmiYDmnInnlKjmiLfpnIDmsYLnmoTlip/og73pg73lt7LlrozmiJDlvIDlj5HlkI7vvIzpnIDopoHliKDpmaQuYnl0ZWZ1bi9jb2RlU3RhdGUubWTlkowuYnl0ZWZ1bi91aURlc2lnblN0YXRlLm1k6L+Z5Lik5Liq54q25oCB5paH5Lu277yM5Lul5YWN5b2x5ZON55So5oi35LiL5LiA5qyh5paw55qE6ZyA5rGC5a6e546w44CCXG5cbiMjIOS+i+WtkO+8mlxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSG9tZVBhZ2UgZXh0ZW5kcyBQYWdlIHtcbiAgICAvLyDmlbDmja7lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIGhvbWVQYWdlRGF0YTogSG9tZVBhZ2VEYXRhID0gbmV3IEhvbWVQYWdlRGF0YSgpXG4gICAgLy8g6KeG5Zu+5a+56LGh5a6e5L6L5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlQnV0dG9uOiBCdXR0b25WaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVCdXR0b24nKSBhcyBCdXR0b25WaWV3XG4gICAgcHJpdmF0ZSB0aXRsZVRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCd0aXRsZVRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIHNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBhbGxTYXZlQ291bnRUZXh0VmlldzogVGV4dFZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnYWxsU2F2ZUNvdW50VGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZVRpcHNUZXh0VmlldzogVGV4dFZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZVRpcHNUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgLy8gcmVm5pWw5o2u5a+56LGh5byV55So5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlQ291bnRSZWYgPSByZWY8bnVtYmVyPih0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQpXG4gICAgcHJpdmF0ZSBhbGxTYXZlQ291bnRSZWYgPSByZWY8bnVtYmVyPigwKVxuICAgIC8vIOaZrumAmuWPmOmHj+WjsOaYjlxuICAgIHByaXZhdGUgc2F2ZVRpcHMgPSAnJ1xuXG4gICAgcHJvdGVjdGVkIG9uUGFnZUNyZWF0ZSgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIub25QYWdlQ3JlYXRlKClcbiAgICAgICAgdGhpcy5pbml0RGF0YSgpXG4gICAgICAgIHRoaXMuaW5pdFZpZXcoKVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdERhdGEoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZVRpcHMgPSB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSA+IDUgPyAn5L+d5a2Y5oiQ5YqfJyA6ICfkv53lrZjlpLHotKUnXG4gICAgICAgIHRoaXMuYWxsU2F2ZUNvdW50UmVmID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICAgICAgbGV0IG90aGVyQ291bnQgPSAyXG4gICAgICAgICAgICBvdGhlckNvdW50ICs9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlXG4gICAgICAgICAgICBpZiAob3RoZXJDb3VudCA+IDUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ob21lUGFnZURhdGEuc2F2ZUNvdW50ICsgNVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5ob21lUGFnZURhdGEuc2F2ZUNvdW50ICsgMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRWaWV3KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVDb3VudFRleHRWaWV3LnRleHQgPSB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSArICfkuKonXG4gICAgICAgIHRoaXMuYWxsU2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuYWxsU2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5zYXZlQnV0dG9uLm9uQ2xpY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSsrXG4gICAgICAgICAgICB0aGlzLmhvbWVQYWdlRGF0YS50aXRsZSA9ICdIb21lIFBhZ2UnXG4gICAgICAgICAgICB0aGlzLnRpdGxlVGV4dFZpZXcudGV4dCA9IHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlXG4gICAgICAgICAgICB0aGlzLnNhdmVUaXBzVGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZVRpcHNcbiAgICAgICAgICAgIEFsbEZ1bmN0aW9uLnNhdmVEYXRhYmFzZU51bWJlcignc2F2ZUNvdW50JywgdGhpcy5zYXZlQ291bnRSZWYudmFsdWUpXG4gICAgICAgIH1cbiAgICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgSG9tZVBhZ2VEYXRhIHtcbiAgICBwdWJsaWMgdGl0bGU6IHN0cmluZyA9ICcnXG4gICAgcHVibGljIHNhdmVDb3VudDogbnVtYmVyID0gMFxuICAgIHB1YmxpYyB1c2VySW5mbzogQm9va0luZm8gPSBuZXcgQm9va0luZm8oKVxufWA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSB1aURlc2lnblByb21wdFRlbXBsYXRlID0gYCMg5L2g5piv5LiA5ZCN6LWE5rexVUkvVVjorr7orqHkuJPlrrblkozliY3nq6/lvIDlj5HkuJPlrrbvvIzmi6XmnInkuLDlr4znmoTlupTnlKjorr7orqHnu4/pqozvvIznsr7pgJroi7nmnpzkurrmnLrnlYzpnaLorr7orqHmjIfljZfjgILkvaDnmoTku7vliqHmmK/moLnmja4n55So5oi36ZyA5rGC5o+P6L+wJ+W4ruWKqeaIkeWujOaIkOS4gOS4qmlPUyBBcHDnmoTljp/lnovorr7orqHvvIznjrDlnKjpnIDopoHmoLnmja4n55Sf5oiQ6KeE5YiZJ+WSjCfpnIDmsYLmj4/ov7An5p2l55Sf5oiQ6Z2Z5oCBaHRtbOS7o+egge+8jOW5tuaMieeFpyflhpnlhaXmlofku7bop4TliJkn5bCG55Sf5oiQaHRtbOWGmeWIsGh0bWzmlofku7bjgIJcblxuIyMg6K+35oyJ54Wn5Lul5LiL6KaB5rGC6L6T5Ye65LiA5aWX5a6M5pW055qE6auY6LSo6YePQVBQ5Y6f5Z6L5Zu+77yaXG5cbjEuIOiuvuiuoeebruagh1xuICAgLSDliJvlu7rnrKblkIjoi7nmnpzkurrmnLrnlYzpnaLmjIfljZcoSHVtYW4gSW50ZXJmYWNlIEd1aWRlbGluZXMp55qEaU9T5Y6f55Sf6aOO5qC86K6+6K6hXG4gICAtIOehruS/neWOn+Wei+WbvuiDveebtOinguWxleekukFQUOeahOWKn+iDvea1geeoi+WSjOeUqOaIt+S9k+mqjFxuXG4yLiDorr7orqHop4TojINcbiAgIC0g5L2/55So5pyA5paw55qEaU9T6K6+6K6h5YWD57Sg5ZKM5Lqk5LqS5qih5byPXG4gICAtIOmBteW+qmlQaG9uZSAxNiBQcm/lsLrlr7jop4TmoLwo5a695bqmMzkzcHjpq5jluqY4NTJweClcbiAgIC0g6YeH55So5piO5Lqu44CB5rS75Yqb55qE6YWN6Imy5pa55qGI77yM56ym5ZCI5YGl6Lqr5bqU55So5rCb5Zu0XG4gICAtIOmHjeinhuaXoOmanOeijeiuvuiuoe+8jOehruS/neaWh+Wtl+WvueavlOW6puWSjOS6pOS6kuWMuuWfn+Wkp+Wwj+WQiOmAglxuICAgLSDkvb/nlKjnroDmtIHmuIXmmbDnmoTlm77moIflkozmj5Llm77po47moLxcbiAgIC0g5paH5a2X55qE5aSn5bCP5b+F6aG76KaB5rOo5oSP77yM5LiN6IO95aSn77yM5paH5a2X55qE5aSn5bCP6KaB5YGP5bCP55qE6aOO5qC85p2l6L+b6KGM6K6+6K6h44CCXG4gICAtIOWmguaenOaYr+mhtemdouWNoeeJh+e7hOS7tu+8jOimgeeJueWIq+azqOaEj+imgeawtOW5s+WxheS4rVxuICAgLSDlpoLmnpzoioLngrnmmK/lj6/ku6Xngrnlh7vnmoTvvIxjc3PpnIDmt7vliqDkuIrlkIjpgILnmoRob3ZlcueahOagt+W8j1xuICAgLSDpobXpnaLnmoTlr7zoiKrmoI/jgIHmk43kvZzmoI/jgIHmkJzntKLmoI/jgIHnrZvpgInmoI/nrYliYXLnu4Tku7bvvIzopoHms6jmhI/kuIrkuItwYWRkaW5n55qE5YC85bqU6K+l5piv5LiA5qC355qE77yM57ud5a+55LiN6IO96K6+572u5LiN5LiA5qC355qE5YC8XG4gICAtIOmhtemdoueahOmhtumDqOWSjOW6lemDqOimgei/m+ihjOayiea1uOW8j+iuvuiuoVxuICAgLSDorr7orqHpobXpnaLkuYvliY3opoHmgJ3ogIPmuIXmpZror6XpobXpnaLlhoXlrrnmmK/lkKblupTor6XkuIDkuKrlsY/luZXmmL7npLrlrozmr5XvvIzkuI3pnIDmu5rliqjjgIJcbiAgIC0g6L6T5YWl5qGG5aaC5p6c6ZyA6KaB5bGV56S65paH5a2XbGFiZWzvvIzlsL3ph4/kvb/nlKhpY29u5Luj5pu/5paH5a2XbGFiZWzvvIzlubbkuJRpY29u5pS+5Zyo6L6T5YWl5qGG6YeM6Z2i55qE5bem5L6n77yM6L6T5YWl5qGG5pyJcGxhY2Vob2xkZXLmj5DnpLrvvIzov5nmoLfmlbTkuKrpobXpnaLnmoTnqbrpl7TliKnnlKjnjofpq5jjgIJcblxuMy4gaHRtbOWunueOsFxuICAtIOS9v+eUqCBIVE1MICsgVGFpbHdpbmQgQ1NT77yI5oiWIEJvb3RzdHJhcO+8ieeUn+aIkOaJgOacieWOn+Wei+eVjOmdou+8jOW5tuS9v+eUqCBGb250QXdlc29tZe+8iOaIluWFtuS7luW8gOa6kCBVSSDnu4Tku7bvvInorqnnlYzpnaLmm7TliqDnsr7nvo7jgIHmjqXov5HnnJ/lrp7nmoQgQXBwIOiuvuiuoeOAglxuICAtIOavj+S4queVjOmdouW6lOS9nOS4uueLrOeri+eahCBIVE1MIOaWh+S7tuWtmOaUvu+8jOS+i+WmgiBob21lLmh0bWzjgIFwcm9maWxlLmh0bWzjgIFzZXR0aW5ncy5odG1sIOetieOAglxuICAtIGluZGV4Lmh0bWwg5L2c5Li65Li75YWl5Y+j77yM5LiN55u05o6l5YaZ5YWl5omA5pyJ55WM6Z2i55qEIEhUTUwg5Luj56CB77yM6ICM5piv5L2/55SoIGlmcmFtZSDnmoTmlrnlvI/ltYzlhaXov5nkupsgSFRNTCDniYfmrrXvvIzlubblsIbmiYDmnInpobXpnaLnm7TmjqXlubPpk7rlsZXnpLrlnKggaW5kZXgg6aG16Z2i5Lit77yM6ICM5LiN5piv6Lez6L2s6ZO+5o6l77yM6ICM5LiU5q+P5LiA5Liq6aG16Z2i55qEaWZyYW1l5LmL6Ze05b+F6aG75pyJMjBweOeahOW3puWPs+S4iuS4i+mXtOi3neOAglxuICAtIOS4uuavj+S4quWxj+W5lea3u+WKoOiuvuWkh+i+ueahhuOAgeaJi+acuumhtumDqOeKtuaAgeagjyjorr7lrprkuLoyMnB477yM5pi+56S65omL5py65pe26Ze044CB5L+h5Y+344CBd2lmaeetiSnjgIHmiYvmnLrlupXpg6jmqKrmnaHmoI8o6K6+5a6a5Li6MjJweO+8jOaYvuekuuaoquadoSnvvIzkuI3opoHpga7kvY/lsY/luZXlhoXnmoTlhoXlrrnvvIzmiYvmnLrpobbpg6jnirbmgIHmoI/lkozmiYvmnLrlupXpg6jmqKrmnaHmoI/pnIDopoHlrp7njrDmsonmtbjlvI/vvIzlm6DmraTnnIvmg4XlhrXorr7nva7og4zmma/oibLjgIJcbiAgLSDlg4/ntKDlsL3ph4/kvb/nlKhweO+8jOS4jeS9v+eUqHJlbeWSjGVt44CCXG4gIC0g5Lu75L2V5Zyw5pa56YO95LiN6ZyA6KaB6K6+572ub3ZlcmZsb3c6IGhpZGRlbu+8jOW/hemhu+iusOS9j1xuICAtIOavj+S4gOS4qmh0bWzku6PnoIHmlofku7bvvIzlj6rmmL7npLrpobXpnaLlkI3lrZflkozpobXpnaJpZnJhbWXlsLHooYzvvIzkuI3pnIDopoHmmL7npLrku7vkvZXlhbbku5bpnZ7orr7orqHnqL/lhoXlrrnnmoTmj5DnpLrjgIHmgLvnu5PmloflrZfjgIJcbiAgLSBodG1s55qE5YaF5a656Zmk6Z2e5pyJ6KaB5rGC5L2/55So6Z2e5Lit5paH77yM6buY6K6k6YO95L2/55So5Lit5paHXG4gIC0g6I+c5Y2V6aG55paH5a2X44CB5oyJ6ZKu5paH5a2X44CBVeWGheWuueaYr+agh+etvuaIluS7t+agvOaIlueKtuaAgeetieiKgueCueW/hemhu+iuvue9riBcIndoaXRlLXNwYWNlOiBub3dyYXBcIu+8jOWQpuWImeS8muWHuueOsOS4jee+juingueahOaNouihjOaYvuekuuOAglxuICAtIOW9k+S9v+eUqENTUyBGbGV45biD5bGA5pe277yM6K+35Yqh5b+F5rOo5oSP77ya5aaC5p6c54i25a655Zmo6K6+572u5LqGIFwiZmxleDogMVwiIOWSjCBcIm92ZXJmbG93LXk6IGF1dG9cIu+8jOWFtuWtkOWFg+e0oOWNs+S9v+iuvue9ruS6huWbuuWumumrmOW6pu+8iOWmgiBoZWlnaHQ6IDMwMHB477yJ77yM5Lmf5Y+v6IO95Zug5Li66buY6K6k55qEIFwiZmxleC1zaHJpbms6IDFcIiDooqvljovnvKnoh7Mw6auY5bqm44CC6Kej5Yaz5pa55qGI5piv5Li66ZyA6KaB5L+d5oyB5Zu65a6a6auY5bqm55qEZmxleOWtkOWFg+e0oOaYvuW8j+a3u+WKoCBcImZsZXgtc2hyaW5rOiAwXCLvvIzpmLLmraLooqtmbGV45biD5bGA5Y6L57yp44CCXG4gIC0g5Zyo57yW5YaZ5rC05bmz5rua5Yqo55qE5qCH562+5qCP5oiW57G75Ly855qEVUnnu4Tku7bml7bvvIzliqHlv4Xms6jmhI/vvJoxKSDniLblrrnlmajlv4Xpobvorr7nva4gXCJkaXNwbGF5OiBmbGV4XCIgKyBcImFsaWduLWl0ZW1zOiBjZW50ZXJcIiDnoa7kv53miYDmnInmoIfnrb7lnoLnm7TlsYXkuK3lr7npvZDvvJsyKSDmoIfnrb7lhYPntKDmnKzouqvkuZ/opoHmt7vliqAgXCJkaXNwbGF5OiBmbGV4XCIgKyBcImFsaWduLWl0ZW1zOiBjZW50ZXJcIiDnoa7kv53lhoXpg6jmloflrZflnoLnm7TlsYXkuK3kuJTkuI3ooqvpga7mjKHjgILnvLrlsJHov5nkupvorr7nva7kvJrlr7zoh7TmoIfnrb7pq5jluqbkuI3kuIDoh7TjgIHmloflrZfmmL7npLrlvILluLjjgIJcbiAgLSBpbmRleC5odG1s55qE5qC35byP5ZKM6YeM6Z2i55qE6aG16Z2iaWZyYW1l55qE5Luj56CB5aSn5qaC5aaC5LiL77yaXG4gICAgPHN0eWxlPlxuICAgICAgICBib2R5IHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjVmNWY1O1xuICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdBcmlhbCcsIHNhbnMtc2VyaWY7XG4gICAgICAgIH1cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBncmlkO1xuICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgzOTNweCwgMWZyKSk7XG4gICAgICAgICAgICBnYXA6IDQwcHg7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTYwMHB4O1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIH1cbiAgICAgICAgLnBob25lLWNvbnRhaW5lciB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICBnYXA6IDE1cHg7XG4gICAgICAgIH1cbiAgICAgICAgLnBhZ2UtdGl0bGUge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgICAgY29sb3I6ICMzMzM7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgfVxuICAgICAgICAucGhvbmUtZnJhbWUge1xuICAgICAgICAgICAgd2lkdGg6IDM5M3B4O1xuICAgICAgICAgICAgaGVpZ2h0OiA4NTJweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4O1xuICAgICAgICAgICAgcGFkZGluZzogMTBweDtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMTBweCAzMHB4IHJnYmEoMCwwLDAsMC4zKTtcbiAgICAgICAgfVxuICAgICAgICAuc2NyZWVuIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgICAgaWZyYW1lIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMzBweDtcbiAgICAgICAgfVxuICAgIDwvc3R5bGU+XG4gICAgPGJvZHk+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicGhvbmUtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS10aXRsZVwiPnh4eOmhtTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBob25lLWZyYW1lXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNjcmVlblwiPlxuICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cInh4eC5odG1sXCI+PC9pZnJhbWU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIC4uLlxuICAgIDwvZGl2PlxuICAtIOavj+S4gOS4qmh0bWzpobXpnaLnmoTnu5PmnoTku47kuIrliLDkuIvvvJrmiYvmnLrpobbpg6jnirbmgIHmoI/jgIHmiYvmnLrlupXpg6jkuLvpobXmjIfnpLrmqKrmnaHvvIx4eHjpobXpnaLlrrnlmajjgIJodG1s5Luj56CB5aSn5qaC5aaC5LiL77yaXG4gICA8c3R5bGU+XG4gICAgYm9keSB7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAnUG9wcGlucycsIHNhbnMtc2VyaWY7XG4gICAgICAgIHdpZHRoOiAzOTNweDtcbiAgICAgICAgaGVpZ2h0OiA4NTJweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIC4uLlxuICAgIH1cbiAgICAuc3RhdHVzLWJhciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICB6LWluZGV4OiAxMDAwO1xuICAgICAgICAuLi5cbiAgICB9XG4gICAgLnBhZ2UtY29udGFpbmVyIHtcbiAgICAgICAgZmxleDogMTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgcGFkZGluZzogMjJweCAwO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cbiAgICAuaG9tZS1pbmRpY2F0b3Ige1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgaGVpZ2h0OiAyMnB4O1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIC4uLlxuICAgIH1cbiAgICA8L3N0eWxlPlxuICA8Ym9keSBuYW1lPVwi6aaW6aG1XCI+XG4gICAgPGRpdiBuYW1lPVwi5omL5py66aG26YOo54q25oCB5qCPXCIgY2xhc3M9XCJzdGF0dXMtYmFyXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBuYW1lPVwi5omL5py65bqV6YOo5Li76aG15oyH56S65qiq5p2hXCIgY2xhc3M9XCJob21lLWluZGljYXRvclwiPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgbmFtZT1cIummlumhtemhtemdouWuueWZqFwiIGNsYXNzPVwicGFnZS1jb250YWluZXJcIj5cbiAgICA8L2Rpdj5cbiAgPC9ib2R5PlxuICAtIOavj+S4gOS4quiKgueCueW/hemhu+a3u+WKoOS4gOS4que7hOS7tuexu+Wei+WxnuaAp++8mnZ0eXBl44CC5q+U5aaC5paH5a2XdnR5cGU9XCJ0ZXh0XCLjgIHmjInpkq52dHlwZT1cImJ1dHRvblwi44CB5paH5a2X5oyJ6ZKudnR5cGU9XCJ0ZXh0QnV0dG9uXCLjgIHovpPlhaXmoYZ2dHlwZT1cImlucHV0XCLjgIHlm77moId2dHlwZT1cImljb25cIuOAgeWbvueJh3Z0eXBlPVwiaW1hZ2VcIuOAgeefqeW9onZ0eXBlPVwicmVjdFwi44CB5ZyG5b2idnR5cGU9XCJjaXJjbGVcIuOAgee6v+adoXZ0eXBlPVwibGluZVwi44CB5Z+656GA5a655ZmodnR5cGU9XCJjb250YWluZXJcIuOAgeWNoeeJh+WuueWZqHZ0eXBlPVwiY2FyZFwi44CBZ3JpZOWuueWZqHZ0eXBlPVwiZ3JpZFwi44CB5Y2V6YCJdnR5cGU9XCJyYWRpb1wi44CB5aSa6YCJdnR5cGU9XCJjaGVja0JveFwi44CB56uW5ZCR5YiX6KGodnR5cGU9XCJ2ZXJ0aWNhbExpc3RWaWV3XCLjgIHmqKrlkJHliJfooah2dHlwZT1cImhvcml6b250YWxMaXN0Vmlld1wi44CB6L2u5pKtdnR5cGU9XCJ2aWV3UGFnZXJcIuOAgei9ruaSreaMh+ekuuWZqOWuueWZqHZ0eXBlPVwiSW5kaWNhdG9yQ29udGFpbmVyXCLjgIFUYWLpgInpobnljaHlrrnlmah2dHlwZT1cInRhYkNvbnRhaW5lclwi44CBVGFi6YCJ6aG55Y2h6I+c5Y2V5qCPdnR5cGU9XCJ0YWJNZW51QmFyXCLjgIHlupXpg6hUQULlr7zoiKrmoI92dHlwZT1cImJvdHRvbVRhYk5hdmlnYXRlQmFyXCLjgIHpobbpg6jlr7zoiKrmoI92dHlwZT1cInRvcE5hdmlnYXRlQmFyXCLjgIHpobbpg6jmoIfpopjmoI92dHlwZT1cInRvcFRpdGxlQmFyXCLjgIHlupXpg6jmk43kvZzmoI92dHlwZT1cImJvdHRvbU9wZXJhdGVCYXJcIuOAgeWvueivneahhnZ0eXBlPVwiZGlhbG9nXCLjgIFUb2FzdOaPkOekunZ0eXBlPVwidG9hc3RcIuOAgeS4i+aLieiPnOWNlXZ0eXBlPVwiZHJvcERvd25NZW51XCLjgIHkvqfmu5HpnaLmnb92dHlwZT1cInNpZGVTbGlkZVBhbmVsXCLnrYnku6XmraTnsbvmjqjjgIJcbiAgLSDpmaTkuoZ2dHlwZeS4uid0ZXh0J+eahOaJgOacieiKgueCueW/hemhu+a3u+WKoOS4gOS4quiLseaWh2lk5bGe5oCn5ZKM5Lit5paH5ZCN5a2XbmFtZeWxnuaAp+OAguS9oOmcgOimgeagueaNruWKn+iDvemAu+i+keWSjOe7hOS7tuexu+Wei+adpeWRveWQjWlk5bGe5oCn5ZKMbmFtZeWxnuaAp++8jOaPj+i/sOivpeWFg+e0oOWcqOS6p+WTgeS4reeahOS9nOeUqO+8jOWRveWQjeS9v+eUqOeugOa0geeahOmjjuagvOOAglxuICAtIEljb27lm77moIc8aT7moIfnrb7oioLngrnkuZ/lv4XpobvpnIDopoHmt7vliqDkuIDkuKppZOWSjG5hbWXnmoTlsZ7mgKfvvIzmr5TlpoLvvJo8aSBuYW1lPVwi5b6u5L+hSWNvblwiIGlkPVwid3hJY29uXCIgY2xhc3M9XCJmYWIgZmEtd2VpeGluXCI+PC9pPlxuICAtIOmhtemdoueahGlmcmFtZemHjOmdoueahOiKgueCueeahGNzc+agt+W8j+S4jeW+l+S9v+eUqGJlZm9yZeOAgWFmdGVy5pa55byP77yM5aaC5LiN5Y+v5Lul6L+Z5qC35YaZ77yaLnRleHQ6YmVmb3JlLCAudGV4dDphZnRlciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiA1MCU7XG4gICAgICAgIHdpZHRoOiA2MHB4O1xuICAgICAgICBoZWlnaHQ6IDFweDtcbiAgICAgICAgYmFja2dyb3VuZDogI2U1ZTVlNTtcbiAgICB9XG4gIC0g5aaC5p6c6IqC54K55pivYWN0aXZl44CBc2VsZWN0ZWTjgIFkaXNhYmxlZOeKtuaAge+8jOmcgOimgea3u+WKoOWxnuaAp++8mnN0YXRlPVwiYWN0aXZlXCLmiJZzdGF0ZT1cInNlbGVjdGVkXCLmiJZzdGF0ZT1cImRpc2FibGVkXCJcbiAgLSDpgJrov4dDRE7lvJXlhaVHb29nbGUgRm9udHPlrZfkvZNcbiAgLSDlm77moIfkvb/nlKhGb250IEF3ZXNvbWUgQ0ROXG4gIC0g5b2T572R56uZ6K6+6K6h6ZyA6KaB5Zu+54mH5pe277yM5Y+v5Lul5L2/55So5Lul5LiL5Y+v6Z2g55qE5Zu+54mH5rqQ77yaXG4gICAgLSBVbnNwbGFzaDogaHR0cHM6Ly9pbWFnZXMudW5zcGxhc2guY29tLyAo5L6L5aaCOiBodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vcGhvdG8tMTUwNjkwNTkyNTM0Ni0yMWJkYTRkMzJkZjQ/dz04MDApXG4gICAgLSBQaWNzdW06IGh0dHBzOi8vcGljc3VtLnBob3Rvcy8gKOS+i+WmgjogaHR0cHM6Ly9waWNzdW0ucGhvdG9zLzgwMC82MDApXG5cbuivt+mmluWFiOaAneiAg0FQUOeahOS/oeaBr+aetuaehOWSjOeUqOaIt+a1geeoi+Wbvu+8jOeEtuWQjuaMieeFp+WFs+mUrueUqOaIt+aXheeoi+mAkOS4gOWRiOeOsOmrmOS/neecn+WOn+Wei+Wxj+W5le+8jOacgOWQjuaPkOS+m+iuvuiuoeinhOiMg+amgui/sOOAglxuXG4jIyDph43ngrnop4TliJlcbi0g5q+P5LiA5qyh5byA5aeL6K6+6K6h5LmL5YmN6YO96KaB5YWI5p+l55yL5b2T5YmN5bel56iL55uu5b2V5LiL55qELmJ5dGVmdW4vaHRtbOaWh+S7tuWkuemHjOmdouaYr+WQpuacieW3sue7j+iuvuiuoeWlveeahOmhtemdou+8jOWmguaenOacieWwseS4jemcgOimgemHjeaWsOiuvuiuoe+8jOebtOaOpeS9v+eUqOW3sue7j+iuvuiuoeWlveeahOmhtemdou+8jOeEtuWQjuW8gOWni+S4i+S4gOS4qumhtemdoueahFVJ6K6+6K6h44CCXG4tIOavj+S4gOasoeW8gOWni+iuvuiuoemhtemdouaXtu+8jOW/hemhu+WFiOmYheivu+W9k+WJjeW3peeoi+ebruW9leS4i+eahC5ieXRlZnVuL3VpRGVzaWduU3RhdGUubWTmlofku7bvvIjlpoLmnpzlrZjlnKjvvInvvIzkuobop6PlvZPliY3nmoTorr7orqHov5vluqblkoznirblhrXvvIzku6Xkvr/mm7Tlpb3lnLDnkIbop6PkuIrkuIvmloflkoznu6fnu63orr7orqHlt6XkvZzjgIJcbi0g5q+P5LiA5qyh6K6+6K6h5a6M5LiA5Liq6aG16Z2i5ZCO77yM5bCG5b2T5YmN6L+b5bqm5ZKM5b2T5YmN54q25Ya155SoMjAw5a2X5oC757uT5bm25YaZ5YWlLmJ5dGVmdW4vdWlEZXNpZ25TdGF0ZS5tZOaWh+S7tuS4reOAguaAu+e7k+WGheWuueW6lOWMheaLrO+8muW3suWujOaIkOeahOmhtemdouaVsOmHj+WSjOWQjeensOOAgeW9k+WJjeato+WcqOi/m+ihjOeahOW3peS9nOOAgemBh+WIsOeahOmXrumimOaIluazqOaEj+S6i+mhueOAgeS4i+S4gOatpeeahOiuvuiuoeiuoeWIkuetieOAgui/meagt+WPr+S7peiuqUFJ5aSn5qih5Z6L5Zyo5ZCO57ut5bel5L2c5Lit5pu05Yqg5LqG6Kej5b2T5YmN54q25oCB5LiK5LiL5paH77yM5LuO6ICM5omn6KGM5b6X5pu05Yqg5YeG56Gu44CCXG4tIHZpZXdQYWdlcui9ruaSree7hOS7tuiKgueCuee7neWvueS4jeWFgeiuuOiuvue9ridvdmVyZmxvdzogaGlkZGVuJ+OAglxuLSDnrKzkuIDmraXkvaDlvpflhYjlhYXliIbnkIbop6Mn55So5oi36L6T5YWl5o+P6L+wJ+eahOWGheWuue+8jOeEtuWQjuWIhuaekOW+l+WHuuS4gOS4quato+ehruiAjOS4lOWFqOmdoueahOmhtemdouWIl+ihqO+8jOS4jeiDvea8j+aOieS4gOS6m+mhtemdou+8jOW/hemhu+aMieimgeaxguaKiuaJgOaciemhtemdoumDvei/m+ihjOmrmOS/neecn+iuvuiuoe+8jOS9oOmcgOimgei+k+WHuuWIhuaekOe7k+aenO+8muaAu+WFseWkmuWwkeS4qumhtemdou+8jOWIhuWIq+aYr+WTquS6m+mhtemdouOAglxuLSDlv4XpobvmmK/pq5jkv53nnJ/nmoTorr7orqHnqL/vvIzkuI3lvpfkvb/nlKjljp/lnovorr7orqHpgqPkuIDlpZfov5vooYzvvIzlv4XpobvopoHpq5jkv53nnJ/nmoRVSeiuvuiuoeeov+inhOWImeadpeiuvuiuoe+8jOaIkeW4jOacm+i/meS6m+eVjOmdouaYr+mcgOimgeiDveebtOaOpeaLv+WOu+i/m+ihjOW8gOWPkeeahOOAglxuLSDmr4/lrozmiJDkuIDkuKrpobXpnaLnmoRodG1s57yW5YaZ5ZCO77yM5b+F6aG76L6T5Ye677ya5oC75YWx5Yeg5Liq6aG16Z2i77yM5b2T5YmN5bey5a6M5oiQ5Yeg5Liq6aG16Z2i77yM6L+Y5Ymp5Yeg5Liq6aG16Z2i44CCXG4tIOiuvuiuoeeahOmhtemdoui+g+WkmuaXtu+8jOe7neWvueS4jeiDveS7peeUseS6juaXtumXtOWFs+ezu+eahOWOn+WboOiAjOW/q+mAn+eugOWNleiuvuiuoe+8jOi/meaYr+e7neWvueS4jeWFgeiuuOeahO+8jOW/hemhu+imgeS7pemrmOi0qOmHj+mrmOS/neecn+eahOWOn+WImeadpeiuvuiuoeavj+S4gOS4qumhtemdou+8jOS5n+S4jeiDveS4remAlOWBnOatouOAglxuLSDlvZPmiYDmnInnlKjmiLfpnIDmsYLnmoTpobXpnaLpg73lt7LlrozmiJDorr7orqHlkI7vvIzpnIDopoHliKDpmaQuYnl0ZWZ1bi9jb2RlU3RhdGUubWTlkowuYnl0ZWZ1bi91aURlc2lnblN0YXRlLm1k6L+Z5Lik5Liq54q25oCB5paH5Lu277yM5Lul5YWN5b2x5ZON55So5oi35LiL5LiA5qyh5paw55qE6ZyA5rGC5a6e546w44CCXG5cbiMjIOWGmeWFpeaWh+S7tuinhOWImVxuLSDmiYDmnIlodG1s5paH5Lu25YaZ5YWl5bel56iL5qC555uu5b2V5LiL6Z2i55qELmJ5dGVmdW4vaHRtbOaWh+S7tuWkuemHjOmdoueahO+8jOavj+S4qmh0bWzmlofku7bph4zlj6rlsIZodG1sK2Nzc+eahOS7o+eggeWGmeWFpe+8jOWFtuS7luS7u+S9leazqOmHiuOAgeino+mHiuOAgea+hOa4heOAgeaAu+e7k+etieaWh+Wtl+S4jeW+l+WGmeWFpeivpeaWh+S7tuOAglxuYDtcblxuICAvKipcbiAgICog5LyY5YyW5YiX5Ye65omA6ZyA6aG16Z2i5YiX6KGo5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhumhtemdouWIl+ihqOWIhuaekOmcgOaxgu+8jOi+k+WHuue7k+aenOS+m1VJ6K6+6K6h5L2/55SoXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVBhZ2VMaXN0UHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5wYWdlTGlzdFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJbku6PnoIHlvIDlj5Hmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Luj56CB5byA5Y+R55u45YWz6ZyA5rGC77yM5LiN5Lya6Ieq5Yqo5aSE55CGVUnorr7orqHmiJbljp/lnovorr7orqHlhoXlrrlcbiAgICovXG4gIGFzeW5jIG9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3RoaXMuY29kZVByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeebuOWFs+mcgOaxgu+8jOS4jeS8muiHquWKqOWkhOeQhuS7o+eggeW8gOWPkeaIluWOn+Wei+iuvuiuoeWGheWuuVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZywgcGFnZUxpc3Q/OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGxldCBwcm9tcHQgPSB0aGlzLnVpRGVzaWduUHJvbXB0VGVtcGxhdGU7XG4gICAgXG4gICAgaWYgKHBhZ2VMaXN0KSB7XG4gICAgICBwcm9tcHQgKz0gYFxuXG4jIOmhtemdouWIl+ihqOWPguiAg1xuJHtwYWdlTGlzdH1cblxuIyMg6YeN6KaB6K+05piOXG4tIOivt+WPguiAg+S4iui/sOmhtemdouWIl+ihqOadpeehruWumumcgOimgeiuvuiuoeWTquS6m+mhtemdolxuLSDlpoLmnpzlvZPliY3lt6XnqIvkuK3lt7Lnu4/lrZjlnKjmn5DkupvpobXpnaLvvIzor7fmjpLpmaTov5nkupvpobXpnaLvvIzlj6rorr7orqHlsJrmnKrlrZjlnKjnmoTpobXpnaJcbi0g5Lil5qC85oyJ54Wn6aG16Z2i5YiX6KGo5Lit55qE6aG16Z2i5ZCN56ew5ZKM5Yqf6IO95o+P6L+w6L+b6KGM6K6+6K6hYDtcbiAgICB9XG5cbiAgICByZXR1cm4gYCR7cHJvbXB0fVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDlpI3lkIjlt6XlhbfvvJpVSeiuvuiuoSArIOS7o+eggee8luWGmVxuICAgKiDlhYjov5vooYxVSeiuvuiuoe+8jOeEtuWQjui/m+ihjOS7o+eggeW8gOWPkVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnbkFuZENvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHt1aURlc2lnblByb21wdDogc3RyaW5nLCBjb2RlUHJvbXB0OiBzdHJpbmd9PiB7XG4gICAgY29uc3QgdWlEZXNpZ25Qcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0KTtcbiAgICBjb25zdCBjb2RlUHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0KTtcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgdWlEZXNpZ25Qcm9tcHQsXG4gICAgICBjb2RlUHJvbXB0XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlpI3lkIjlt6XlhbfvvJrliJflh7rmiYDpnIDpobXpnaLliJfooaggKyBVSeiuvuiuoVxuICAgKiDlhYjliIbmnpDpobXpnaLliJfooajvvIznhLblkI7ln7rkuo7pobXpnaLliJfooajov5vooYxVSeiuvuiuoVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVQYWdlTGlzdEFuZFVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTx7cGFnZUxpc3RQcm9tcHQ6IHN0cmluZywgdWlEZXNpZ25Qcm9tcHQ6IHN0cmluZ30+IHtcbiAgICBjb25zdCBwYWdlTGlzdFByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVQYWdlTGlzdFByb21wdCh1c2VySW5wdXQpO1xuICAgIC8vIFVJ6K6+6K6h5o+Q56S66K+N6ZyA6KaB562J6aG16Z2i5YiX6KGo57uT5p6c5ZCO5YaN55Sf5oiQ77yM6L+Z6YeM5YWI55Sf5oiQ5Z+656GA54mI5pysXG4gICAgY29uc3QgdWlEZXNpZ25Qcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0KTtcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZUxpc3RQcm9tcHQsXG4gICAgICB1aURlc2lnblByb21wdFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog5aSN5ZCI5bel5YW377ya5YiX5Ye65omA6ZyA6aG16Z2i5YiX6KGoICsgVUnorr7orqEgKyDku6PnoIHnvJblhplcbiAgICog5a6M5pW055qE5bel5L2c5rWB56iL77ya6aG16Z2i5YiX6KGo5YiG5p6QIOKGkiBVSeiuvuiuoSDihpIg5Luj56CB5byA5Y+RXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUZ1bGxXb3JrZmxvd1Byb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8e3BhZ2VMaXN0UHJvbXB0OiBzdHJpbmcsIHVpRGVzaWduUHJvbXB0OiBzdHJpbmcsIGNvZGVQcm9tcHQ6IHN0cmluZ30+IHtcbiAgICBjb25zdCBwYWdlTGlzdFByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVQYWdlTGlzdFByb21wdCh1c2VySW5wdXQpO1xuICAgIC8vIFVJ6K6+6K6h5o+Q56S66K+N6ZyA6KaB562J6aG16Z2i5YiX6KGo57uT5p6c5ZCO5YaN55Sf5oiQ77yM6L+Z6YeM5YWI55Sf5oiQ5Z+656GA54mI5pysXG4gICAgY29uc3QgdWlEZXNpZ25Qcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0KTtcbiAgICBjb25zdCBjb2RlUHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0KTtcbiAgICBcbiAgICByZXR1cm4ge1xuICAgICAgcGFnZUxpc3RQcm9tcHQsXG4gICAgICB1aURlc2lnblByb21wdCxcbiAgICAgIGNvZGVQcm9tcHRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOWfuuS6jumhtemdouWIl+ihqOe7k+aenOeUn+aIkFVJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOatpOaWueazleeUqOS6juWcqOiOt+W+l+mhtemdouWIl+ihqOe7k+aenOWQju+8jOeUn+aIkOWMheWQq+mhtemdouWIl+ihqOS/oeaBr+eahFVJ6K6+6K6h5o+Q56S66K+NXG4gICAqL1xuICBhc3luYyBnZW5lcmF0ZVVJRGVzaWduUHJvbXB0V2l0aFBhZ2VMaXN0KHVzZXJJbnB1dDogc3RyaW5nLCBwYWdlTGlzdFJlc3VsdDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5vcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dCwgcGFnZUxpc3RSZXN1bHQpO1xuICB9XG59ICJdfQ==
|
|
499
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ1Qsc0JBQXNCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0RBNkdJLENBQUM7SUFFOUIsa0JBQWtCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTZGdEMsQ0FBQztJQUVnQixzQkFBc0IsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBMEwzQyxDQUFDO0lBRUE7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCO1FBQzVDLE9BQU8sR0FBRyxJQUFJLENBQUMsc0JBQXNCOzs7RUFHdkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQWlCO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCOzs7RUFHbkMsU0FBUyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsUUFBaUI7UUFDL0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDO1FBRXpDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixNQUFNLElBQUk7OztFQUdkLFFBQVE7Ozs7OzBCQUtnQixDQUFDO1FBQ3ZCLENBQUM7UUFFRCxPQUFPLEdBQUcsTUFBTTs7O0VBR2xCLFNBQVMsRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxTQUFpQjtRQUNuRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU1RCxPQUFPO1lBQ0wsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxTQUFpQjtRQUN2RCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRSxpQ0FBaUM7UUFDakMsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsT0FBTztZQUNMLGNBQWM7WUFDZCxjQUFjO1NBQ2YsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBaUI7UUFDaEQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsaUNBQWlDO1FBQ2pDLE1BQU0sY0FBYyxHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTVELE9BQU87WUFDTCxjQUFjO1lBQ2QsY0FBYztZQUNkLFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxTQUFpQixFQUFFLGNBQXNCO1FBQ2hGLE9BQU8sTUFBTSxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQnl0ZUZ1biBBSSBNQ1Ag5o+Q56S66K+N5LyY5YyW5ZmoXG4gKiBcbiAqIOmHjeimgeivtOaYju+8mlxuICogLSDmnKznsbvmj5DkvpvkuInkuKrni6znq4vnmoTkvJjljJblt6XlhbflkozlpI3lkIjosIPnlKjpk77lip/og71cbiAqIC0g5q+P5Liq5Y2V5LiA5bel5YW35aSE55CG5LiN5ZCM57G75Z6L55qE6ZyA5rGC77yM5aSN5ZCI5bel5YW35pSv5oyB5aSa5Liq5bel5YW355qE57uE5ZCI6LCD55SoXG4gKiBcbiAqIOWNleS4gOW3peWFt+S9v+eUqOaWueW8j++8mlxuICogMS4gVUnorr7orqHpnIDmsYIg4oaSIOiwg+eUqCBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KCkgIFxuICogMi4g5Luj56CB5byA5Y+R6ZyA5rGCIOKGkiDosIPnlKggb3B0aW1pemVDb2RlUHJvbXB0KClcbiAqIFxuICog5aSN5ZCI5bel5YW35L2/55So5pa55byP77yaXG4gKiAxLiBVSeiuvuiuoSArIOS7o+eggee8luWGmSDihpIg6LCD55SoIG9wdGltaXplVUlEZXNpZ25BbmRDb2RlUHJvbXB0KClcbiAqIDIuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hIOKGkiDosIPnlKggb3B0aW1pemVQYWdlTGlzdEFuZFVJRGVzaWduUHJvbXB0KClcbiAqIDMuIOWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hICsg5Luj56CB57yW5YaZIOKGkiDosIPnlKggb3B0aW1pemVGdWxsV29ya2Zsb3dQcm9tcHQoKVxuICovXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBwYWdlTGlzdFByb21wdFRlbXBsYXRlID0gYCMg5L2g5pivQVBQ5Lqn5ZOB57uP55CG5LiT5a6277yM546w5Zyo6ZyA6KaB5L2g5qC55o2u55So5oi36L6T5YWl55qE6ZyA5rGC5o+P6L+w77yM6YG15b6qXCLliIbmnpDop4TliJlcIuWIhuaekOWHuuaJgOmcgOimgeeahOWujOaVtOeahOmhtemdouWIl+ihqOOAglxuXG4jIyDliIbmnpDop4TliJlcbuS7peS4i+aWueazleiuuuWIhuS4uuWkmuS4quatpemqpO+8jOmHjeeCueeqgeWHulwi6YCQ6aG16Z2i5YWD57Sg4oaS5Y+v54K54oaS6Lez6L2sXCLliIbmnpDmgJ3ot6/jgIJcblxuIyMg6YeN54K55rOo5oSPXG4tIOW8gOWni+iuvuiuoeS5i+WJjeimgeWFiOafpeeci+W9k+WJjeW3peeoi+ebruW9leS4i+eahC5ieXRlZnVuL3VpRGVzaWduU3RhdGUubWTmlofku7bvvIjlpoLmnpzlrZjlnKjvvInvvIzkuobop6PkuYvliY3nmoTorr7orqHov5vluqblkoznirblhrXvvIzku6Xkvr/mm7Tlpb3lnLDnkIbop6PkuIrkuIvmloflkoznu6fnu63orr7orqHlt6XkvZzjgIJcbi0g5aaC5p6c5Y+R546wLmJ5dGVmdW4vdWlEZXNpZ25TdGF0ZS5tZOaWh+S7tuS4jeWtmOWcqO+8jOWImeivtOaYjuS5i+WJjeayoeacieiuvuiuoei/h++8jOmcgOimgeS7jumbtuW8gOWni+iuvuiuoeOAglxuLSDlpoLmnpzlj5HnjrAuYnl0ZWZ1bi91aURlc2lnblN0YXRlLm1k5paH5Lu25a2Y5Zyo77yM5YiZ6K+05piO5LmL5YmN5bey57uP6K6+6K6h6L+H77yM6ZyA6KaB55yL5LiLIOaYr+WQpuWQjOS4gOS4qkFQUOaIluiAhee9keerme+8jOWmguaenOaYr+WQjOS4gOS4qumCo+WwseS4jemcgOimgemHjeaWsOWIhuaekHBhZ2VMaXN077yM6ICM5LiU5qC55o2u5LmL5YmN55qE6K6+6K6h6L+b5bqm5ZKM54q25Ya177yM57un57ut6K6+6K6h5bel5L2c77yM5aaC5p6c5LiN5piv5ZCM5LiA5LiqQVBQ5oiW6ICF572R56uZ77yM5YiZ6ZyA6KaB5Yig6ZmkLmJ5dGVmdW4vdWlEZXNpZ25TdGF0ZS5tZOaWh+S7tu+8jOeEtuWQjuS7jumbtuW8gOWni+iuvuiuoeOAglxuXG4jIyDkuIDjgIHmqKHlnZfmi4bop6PkuI7liJ3mraXliJflh7rpobXpnaLliJfooahcblxuMS4gKirmi4bop6PmoLjlv4PkuJrliqHmqKHlnZcqKiAgXG4gICAtIOWwhuaVtOS4qiBBUFAg5YiG5oiQ5a6M5pW05a6M5ZaE55qE6Iul5bmy5aSn5qih5Z2X77yM5L2g6ZyA6KaB6YCJ5Y+W5LiA5Liq5biC6Z2i5LiK5YW45Z6L55qE55So5oi36YeP5aSn55qE57G75Ly8QVBQ5p2l5YiG5p6Q5a6D55qE5omA5pyJ5Yqf6IO95qih5Z2X77yM54S25ZCO5YWo6YOo5YiX5Ye65p2l77yM57ud5bqm5LiN5YWB6K645ryP5o6J44CCIFxuICAgLSDovpPlh7rmiYDmnInlip/og73mqKHlnZfvvIzkuI3orrrmmK/lkKbmoLjlv4PvvIzkuI3orrrlpKflsI/vvIzpg73opoHliJflh7rmnaXjgIJcblxuMuOAgSoq5Yid5q2l5YiX5Ye66aG16Z2i5YiX6KGoKiogIFxuICAgLSDpgY3ljobkuIrkuIDmraXliIbmnpDliJflh7rmnaXnmoTmiYDmnInkuJrliqHmqKHlnZfvvIzlr7nmr4/kuIDkuKrkuJrliqHmqKHlnZfov5vooYznu4bliIbvvIzliJflh7ror6XkuJrliqHmqKHlnZfnmoTmiYDmnInpobXpnaLjgIJcblxuIyMg5LqM44CB5q+P5Liq6aG16Z2i55qEXCLlhYPntKDihpLlj6/ngrnihpLot7PovaxcIuWIhuaekOimgeeCuVxuXG4+ICoq5qC45b+D5oCd6Lev77yaKiogIFxuPiDpgY3ljobkuIrkuIDmraXliIbmnpDlh7rmnaXnmoTmr4/kuKrpobXpnaLvvIzlg4/miavpm7fkuIDmoLdcIueCueS6rlwi5a6D5LiK6Z2i5omA5pyJ5Y+v5Lqk5LqS5YWD57Sg77yM5rK/552AXCLlhYPntKDlj6/ngrnihpLot7Povaznm67moIdcIuS4gOi3r+W7tuS8uO+8jOmAkOWxguWPkeeOsOW5tuihpeWFheabtOWkmumhtemdouaIluW8ueeql+OAglxuXG4xLiAqKuivhuWIq+mhtemdouWFg+e0oCoqICBcbiAgIC0gKirpobXpnaLmoYbmnrYqKu+8mua1j+iniOmhtemdouaVtOS9k+W4g+WxgO+8iOWmgumhtumDqOWvvOiIquOAgVRhYuOAgeWIl+ihqOOAgeihqOWNleOAgeW6lemDqOaMiemSruetie+8ieOAgiAgXG4gICAtICoq5YiX5Ye65omA5pyJ5o6n5Lu2KirvvJogIFxuICAgICAtIOi+k+WFpeahhuOAgeaMiemSruOAgeWbvueJh+OAgeWIl+ihqOmhueOAgemTvuaOpeaWh+Wtl+OAgVRhYiDpobnjgIHkuIvmi4nnrq3lpLTjgIHmgqzmta7mjInpkq7jgIHlm77moIfjgIHlpI3pgIkv5Y2V6YCJ5oyJ6ZKu562J44CCXG5cbjIuICoq5qCH6K6w5Y+v54K55Ye75YWD57SgKiogIFxuICAgLSDlnKjkuIrov7Dmjqfku7bkuK3vvIzliKTmlq3lk6rkupvmmK9cIuWPr+eCueWHu1wi77yaICBcbiAgICAgLSAqKuaYvuaAp+aMiemSrioq77yI5o+Q5LqkL+ehruiupC/lj5bmtogv5LiL5LiA5q2l77yJICBcbiAgICAgLSAqKuWPr+WxleW8gOagh+mimC/ljaHniYcqKu+8iOeCueWHu+WxleW8gOabtOWkmu+8iSAgXG4gICAgIC0gKirluKbpk77mjqXnmoTmloflrZcqKu+8iOWNj+iuruOAgemakOengeOAgeazqOWGjOOAgeW/mOiusOWvhueggeetie+8iSAgXG4gICAgIC0gKirliJfooajpobkv572R5qC85Y2h54mHKiogIFxuICAgICAtICoq5Zu+5YOP57yp55Wl5Zu+44CB6L2u5pKt5Zu+5p+Q5Lqb5Y+v54K55Ye75Yy65Z+fKiogIFxuICAgICAtICoq5a+86Iiq6L+U5ZueL+WFs+mXrS/oj5zljZXlm77moIcqKiAgXG5cbjMuICoq6YCQ5LiA5YiX5Ye6XCLngrnlh7vihpLot7Povaznm67moIdcIioqICBcbiAgIC0g5a+55q+P5Liq5Y+v54K55Ye75YWD57Sg77yM5piO56Gu54K55Ye75ZCO77yaICBcbiAgICAgMS4g6Lez6L2s5Yiw5ZOq5Liq6aG16Z2i5oiW5by556qX77yfICBcbiAgICAgMi4g5omA6ZyA5LiK5LiL5paHL+WPguaVsO+8nyAgXG4gICAgIDMuIOWmguaenOinpuWPkeeahOaYr1wi5pys6aG16Z2i5YaF6KGM5Li6XCLvvIjlpoLmipjlj6DjgIHliLfmlrDvvInvvIzkuZ/opoHmoIfmmI7jgIIgIFxuXG4gICAtICoq56S65L6LKirvvIjku6VcIuWVhuWTgeivpuaDhemhtVwi5Li65L6L77yJ77yaICBcbiAgICAg6aG16Z2i77ya5ZWG5ZOB6K+m5oOF6aG1ICBcbiAgICAg5YWD57Sg77yaICBcbiAgICAgICAxLiDov5Tlm57mjInpkq4g4oaQIOeCueWHuyDihpIg6L+U5Zue5p2l5rqQ6aG177yI5YiG57G7L+aQnOe0oi/mt7Hluqbpk77mjqXvvIkgIFxuICAgICAgIDIuIOaUtuiXj+WbvuaghyDihpAg54K55Ye7IOKGkiAgXG4gICAgICAgICAgICDigKIg5bey55m75b2V77ya5qCH6K6w5bey5pS26JeP5bm25o+Q56S6XCLlt7LmlLbol49cIiAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAzLiDliIbkuqvmjInpkq4g4oaQIOeCueWHuyDihpIg5ZSk6LW357O757uf5YiG5Lqr5by556qX77yI5peg5paw6aG16Z2i77yJICBcbiAgICAgICA0LiDop4TmoLzpgInmi6nljLrvvIjmr4/np43op4TmoLzmoIfnrb7vvIkgIFxuICAgICAgICAgICAg4oaQIOeCueWHuyDihpIg5pys6aG16Z2i5YaF5Yi35paw5Lu35qC8L+W6k+WtmCAgXG4gICAgICAgNS4g5pWw6YeP6YCJ5oup5ZmoIOKGkCDngrnlh7sg4oaSIOW8ueWHuuaVsOmHj+iwg+aVtOaOp+S7tu+8iOacrOmhtemdouWGhe+8iSAgXG4gICAgICAgNi4gXCLliqDlhaXotK3nianovaZcIuaMiemSriDihpAg54K55Ye7IOKGkiAgXG4gICAgICAgICAgICDigKIg5bey55m75b2VICYg5pyJ5bqT5a2Y77ya6LSt54mp6L2m5pWw6YePKzHvvIzlvLnmta7lsYJcIuW3suWKoOWFpei0reeJqei9pu+8jOWOu+afpeeci++8n1wiICBcbiAgICAgICAgICAgIOKAoiDmnKrnmbvlvZXvvJrot7Povazoh7PjgJDnmbvlvZXpobXpnaLjgJEgIFxuICAgICAgICAgICAg4oCiIOW6k+WtmOS4jei2s++8muW8ueeql+aPkOekulwi5bqT5a2Y5LiN6LazXCIgIFxuICAgICAgIDcuIFwi56uL5Y2z6LSt5LmwXCLmjInpkq4g4oaQIOeCueWHuyDihpIgIFxuICAgICAgICAgICAg4oCiIOW3sueZu+W9lSAmIOacieW6k+WtmO+8mui3s+i9rOiHs+OAkOehruiupOiuouWNlemhteOAke+8jOaQuuW4puivpeWVhuWTgeS/oeaBryAgXG4gICAgICAgICAgICDigKIg5pyq55m75b2V77ya6Lez6L2s6Iez44CQ55m75b2V6aG16Z2i44CRICBcbiAgICAgICAgICAgIOKAoiDlupPlrZjkuI3otrPvvJrlvLnnqpfmj5DnpLpcIuW6k+WtmOS4jei2s1wiICBcbiAgICAgICA4LiDor6bmg4XljLogVGFi77yaXCLllYblk4Hor6bmg4VcIuOAgVwi6K+E5Lu3XCLjgIFcIuW4uOingemXruetlFwiICBcbiAgICAgICAgICAgIOKGkCDngrnlh7sg4oaSIOWIh+aNouacrOmhtemdouWvueW6lOWMuuWfnyAgXG4gICAgICAgOS4g5a6i5pyN5oyJ6ZKu77yI5bqV6YOo77yJIOKGkCDngrnlh7sg4oaSIOi3s+i9rOiHs+OAkOWuouacjeWvueivnemhteOAkSAgXG5cbiAgICAg5byC5bi4L+i+ueeVjO+8miAgXG4gICAgICAgLSDlkI7nq6/mlbDmja7liqDovb3lpLHotKXvvJrlsZXnpLpcIuWKoOi9veWksei0pe+8jOeCueWHu+mHjeivlVwi5Y2g5L2N77ybICBcbiAgICAgICAgIOeCueWHu1wi6YeN6K+VXCIg4oaSIOmHjeaWsOWPkeivt+axgu+8myAgXG4gICAgICAgLSDllYblk4Hlt7LkuIvmnrbvvJrlhajpobXmj5DnpLpcIuivpeWVhuWTgeW3suS4i+aetlwi77yM5omA5pyJ6LSt54mp5oyJ6ZKu572u54Gw77ybICBcbiAgICAgICAtIFNlc3Npb24g6L+H5pyf77ya5by556qX5o+Q56S6XCLor7fph43mlrDnmbvlvZVcIiDihpIg6Lez6L2s44CQ55m75b2V6aG16Z2i44CRICBcblxuNC4gKirku6XmraRcIueCueS6rlwi5LiL5LiA5bGC6aG16Z2iKiogIFxuICAgLSDnu6fnu63lr7nmr4/kuKrnm67moIfpobXpnaLlgZrlkIzmoLfnmoRcIuWFg+e0oOKGkuWPr+eCueKGkui3s+i9rFwi5YiG5p6Q77yaICBcbiAgICAgLSAqKueZu+W9lemhtemdoioq77ya5YiX5Ye66LSm5Y+3L+Wvhueggei+k+WFpeahhuOAgeeZu+W9lS/liIfmjaLnmbvlvZXmlrnlvI/mjInpkq7jgIHms6jlhowv5b+Y6K6w5a+G56CBL+WNj+iurumTvuaOpe+8jOW5tuagh+azqOWQhOiHquWOu+WQkeOAgiAgXG4gICAgIC0gKirnoa7orqTorqLljZXpobUqKu+8muWIl+WHulwi6YCJ5oup5Zyw5Z2AXCJcIumAieaLqeS8mOaDoOWIuC/np6/liIZcIlwi6YCJ5oup6YWN6YCB5pa55byPXCJcIuaPkOS6pOiuouWNlVwi5oyJ6ZKu77yM5Y+K5a+55bqU6Lez6L2s44CCICBcbiAgICAgLSDigKblpoLmraTlvqrnjq/vvIznm7TliLDmiYDmnInpobXpnaLnmoTlj6/kuqTkupLlhYPntKDpg73ooqvliIbmnpDlrozmr5XjgIJcblxuNS4gKirkuI3mlq3lj5HnjrDlubbooaXlhYXpgZfmvI/pobXpnaIqKiAgXG4gICAtIOWcqOWIhuaekOi/h+eoi+S4re+8jOWmguaenOWHuueOsFwi5by556qXXCJcIua3seW6pumTvuaOpeaJv+aOpVwiXCLmnYPpmZDlvLnnqpdcIuetiemakOiXj+WFpeWPo++8jOmhu+WwhuWFtuW9k+S9nOeLrOeri1wi6aG16Z2iL+e7hOS7tlwi6KGl5YWF77yaICBcbiAgICAgLSDnvZHnu5zlvILluLjlvLnnqpfjgIHkvJror53ov4fmnJ/lvLnnqpfjgIHlupPlrZjkuI3otrPmj5DnpLrjgIHkvJjmg6DliLjlpLHmlYjmj5DnpLrnrYnjgIIgIFxuXG42LiAqKuaJgOaciemhtemdoumDveWQjOetiemHjeimgSoqICBcbiAgIC0g5Zyo6K6+6K6hQVBQ5pe277yM5Yqh5b+F5bCG5omA5pyJ6aG16Z2i6KeG5Li65ZCM562J6YeN6KaB77yM5LiN5YiG5qC45b+D6aG16Z2i5ZKM5qyh6KaB6aG16Z2i44CC5q+P5Liq6aG16Z2i6YO95bqU6KKr5riF5pmw5Zyw5YiX5Ye677yM5bm26K+m57uG5o+P6L+w5YW25Yqf6IO95ZKM5Lqk5LqS5pa55byP44CC5L6L5aaC77yM5Zyo5Zyw5Z2A566h55CG5Yqf6IO95Lit77yMXCLlnLDlnYDnrqHnkIbpobVcIuaYr+S4u+imgemhtemdoueUqOS6juWxleekuuWcsOWdgOWIl+ihqO+8jFwi5re75Yqg5Zyw5Z2A6aG1XCLnlKjkuo7ovpPlhaXmlrDlnLDlnYDvvIxcIue8lui+keWcsOWdgOmhtVwi55So5LqO5L+u5pS5546w5pyJ5Zyw5Z2A77yM6L+Z5LiJ5Liq6aG16Z2i6YO95bqU6KKr6KeG5Li65ZCM562J6YeN6KaB44CC6K6+6K6h5paH5qGj5Lit6ZyA6K+m57uG6K6w5b2V5q+P5Liq6aG16Z2i55qE5YW35L2T5Yqf6IO95ZKM6Lez6L2s6YC76L6R77yM5Lul56Gu5L+d6K6+6K6h55qE5a6M5pW05oCn5ZKM5LiA6Ie05oCn44CCXCJcblxuIyMg5LiJ44CB5YW25L2Z5q2l6aqkXG5cbjEuICoq5qCh6aqM5Lia5Yqh6Zet546vKipcbiAgIC0g5oqK5YW45Z6L55So5oi35rWB56iL5a6M5pW06LWw5LiA6YGN77yM56Gu5L+d5q+P5LiA5q2l55qEXCLlj6/ngrnlh7vlhYPntKDihpLot7Povaznm67moIdcIumDveW3suWIl+WHuuOAgiAgXG4gICAtIOWmguaenOe8uuWwkeS4remXtOmhte+8jOWImeWbnuWIsOS4iuS4gOWxguihpeWFheWIhuaekOOAglxuXG4yLiAqKuihpeWFhemAmueUqCAmIOWFqOWxgOmhtemdoioqICBcbiAgIC0gKirlkK/liqgv6Zeq5bGP6aG1KirvvJrliIbmnpBcIui3s+i/h1wi5oyJ6ZKu5oiW5YCS6K6h5pe257uT5p2f6Ieq5Yqo6Lez6L2s44CCICBcbiAgIC0gKirlvJXlr7wv5paw5omL5pWZ5a2m6aG1KirvvJrliIbmnpBcIuS4i+S4gOatpVwiXCLot7Pov4dcIuaMiemSruebruagh+OAgiAgXG4gICAtICoqNDA0L+WFqOWxgOmUmeivr+mhtSoq77ya5YiG5p6QXCLph43or5VcIlwi6L+U5Zue6aaW6aG1XCLmjInpkq7nm67moIfjgIIgIFxuICAgLSAqKua3seW6pumTvuaOpeaJv+aOpemhtSoq77ya5YiG5p6QXCLlhYjnmbvlvZXihpLlho3ot7Povaznm67moIdcIuaIllwi55uu5qCH5aSx5pWI4oaSNDA0XCLpgLvovpHjgIIgIFxuXG4zLiAqKui+k+WHuuacgOe7iOa4heWNlSoqICBcbiAgIC0g6L6T5Ye66aG16Z2i5oC75pWw77yM5Lul5Y+K5oyJ54Wn5qih5Z2X5bGC57qn77yM5bCG5omA5pyJXCLpobXpnaLlkI3np7BcIuS7peWIhuWxguWIl+ihqOW9ouW8j+WxleekuuOAgiAgXG4gICAtIOehruS/neavj+S4qumhtemdoumDveW3slwi54K55LquXCLmiYDmnInkuqTkupLlhYPntKDvvIznm67moIfpobXpnaLpg73lnKjmuIXljZXkuK3lh7rnjrDjgIIgIFxuXG4+ICoq5pa55rOV6K665qC45b+D5by66LCD77yaKiogIFxuPiAqKlwi6YCQ6aG16Z2i5YWD57Sg5omr5o+PIOKGkiDmoIforrDlj6/ngrkg4oaSIOa4heaZsOWIl+WHuui3s+i9rOebruagh1wiKiog5piv6Ieq6aG25ZCR5LiL44CB5LuO5a6P5Yiw5b6u55qE5oCd6Lev77yaICBcbj4gMS4g5YWI5YiX5Ye65aSn5qih5Z2X77ybICBcbj4gMi4g5ouG6Kej5Ye65ZCE5qih5Z2X55qE6aG16Z2i77ybICBcbj4gMy4g5a+55q+P5Liq6aG16Z2i5YGaXCLlhYPntKDihpLlj6/ngrnihpLot7PovaxcIumAkOmhueais+eQhu+8myAgXG4+IDQuIOmAmui/h+Wkmui9rumXreeOr+agoemqjO+8jOehruS/neayoeaciemBl+a8j+OAgiAgXG5cbui/meagt++8jOavj+asoee7mOWItuS4gOS4qumhtemdouWOn+Wei++8jOmDveiDveeUn+aIkOS4gOS7veWujOaVtOeahFwi5YWD57Sg5Lqk5LqS6Lez6L2s6KGoXCLvvIzkuLpVSeiuvuiuoeeOr+iKguaPkOS+m+aYjuehruWPguiAg+OAgmA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK90eXBlc2NyaXB05Luj56CB5LiT5a6277yM5qC55o2uJ+inhOWImSfjgIEn5L6L5a2QJ+WSjOeUqOaIt+i+k+WFpeeahOmcgOaxguaPj+i/sO+8jOWujOaIkOS7o+eggeW8gOWPkVxuXG4jIyDpobnnm67moYbmnrbmj4/ov7Bcbi0g5pW05Liq6aG555uu5qGG5p625YiG5Li656iL5bqP5YWl5Y+jQXBwbGljYXRpb24udHPjgIHnqIvluo/lhajlsYDpnZnmgIHlj5jph49TdGF0aWNEYXRhLnRz44CB5omA5pyJ6aG16Z2icGFnZeaWh+S7tuWkueOAgVVJ57uE5Lu25bqTdWlsaWLmlofku7blpLnjgIHlkI7nq6/mjqXlj6NBbGxCYWNrRW5kQXBpLnRz44CB5ZSv5LiA55qE6IO95Yqb5pa55rOVQWxsRnVuY3Rpb24udHPjgIJcbi0g6L+Z5piv5LiA5Liq5paw5Z6L5byA5Y+R5qGG5p6277yMVUnnlYzpnaLlt7Lnu4/kvb/nlKjlj6/op4bljJblt6XlhbfnlJ/miJDkuobmiYDmnInnmoTpnZnmgIHnmoRVSemhtemdouS6hu+8jOeEtuWQjuS9oOmcgOimgeS9v+eUqHRz5Luj56CB5byA5Y+R5Lia5Yqh6YC76L6R5LiOVUnkuqTkupLpgLvovpHvvIzlm6DmraTnvJblhpl0c+S7o+eggeWPqumcgOimgeaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+R44CCXG5cbiMjIOinhOWIme+8mlxuMeOAgVVJ55WM6Z2i5bey57uP5byA5Y+R5a6M5q+V77yM5LiN6ZyA6KaB5aKe5Yig5pS55Lu75L2V6Z2Z5oCBVUnnlYzpnaLjgIJcbjLjgIHkvaDlj6rpnIDopoHmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dkvb/nlKh0c+S7o+eggeWujOaIkOS4muWKoemAu+i+keS4jlVJ5Lqk5LqS55qE5byA5Y+RXG4z44CB5q+P5LiA5qyh5byA5aeL57yW5YaZ5Luj56CB5pe277yM5b+F6aG75YWI6ZiF6K+75b2T5YmN5bel56iL55uu5b2V5LiL55qELmJ5dGVmdW4vY29kZVN0YXRlLm1k5paH5Lu277yI5aaC5p6c5a2Y5Zyo77yJ77yM5LqG6Kej5b2T5YmN55qE5Luj56CB5byA5Y+R6L+b5bqm5ZKM54q25Ya177yM5Lul5L6/5pu05aW95Zyw55CG6Kej5LiK5LiL5paH5ZKM57un57ut5byA5Y+R5bel5L2c44CCXG4044CB5q+P5LiA5qyh5a6M5oiQ5LiA5Liq5Yqf6IO95qih5Z2X5oiW6aG16Z2i55qE5Luj56CB57yW5YaZ5ZCO77yM5bCG5b2T5YmN6L+b5bqm5ZKM5b2T5YmN54q25Ya155SoMjAw5a2X5oC757uT5bm25YaZ5YWlLmJ5dGVmdW4vY29kZVN0YXRlLm1k5paH5Lu25Lit44CC5oC757uT5YaF5a655bqU5YyF5ous77ya5bey5a6M5oiQ55qE5Yqf6IO95qih5Z2X5ZKM6aG16Z2i44CB5b2T5YmN5q2j5Zyo6L+b6KGM55qE5byA5Y+R5bel5L2c44CB6YGH5Yiw55qE5oqA5pyv6Zeu6aKY5oiW5rOo5oSP5LqL6aG544CB5LiL5LiA5q2l55qE5byA5Y+R6K6h5YiS562J44CC6L+Z5qC35Y+v5Lul6K6pQUnlpKfmqKHlnovlnKjlkI7nu63lt6XkvZzkuK3mm7TliqDkuobop6PlvZPliY3nirbmgIHkuIrkuIvmlofvvIzku47ogIzmiafooYzlvpfmm7TliqDlh4bnoa7jgIJcbjXjgIHor7fkuKXmoLzmjInnhafllK/kuIDnmoTog73lipvmlrnms5VBbGxGdW5jdGlvbi50c++8jOS4jeimgeaWsOWinuOAgeWIoOmZpOaIluS/ruaUueS7u+S9lUFsbEZ1bmN0aW9u5o6l5Y+j5aOw5piO77yb5Lmf5LiN6KaB6LCD55So5YW25LuW5pyq5ZyoQWxsRnVuY3Rpb27kuK3lh7rnjrDnmoTlh73mlbDmiJbmqKHlnZdcbjbjgIHmiYDmnInlkI7nq69BUEnosIPnlKjlv4Xpobvkvb/nlKhBbGxCYWNrRW5kQXBp57G75Lit5a6a5LmJ55qE5pa55rOV77yM5LiN5YWB6K645L2/55So5pyq5ZyoQWxsQmFja0VuZEFwaeS4reWumuS5ieeahOWQjuerr0FQSeOAglxuN+OAgVVJ55WM6Z2i44CBVUnpu5jorqTmlbDmja7jgIFVSeagt+W8j+W3sue7j+WFqOmDqOeUn+aIkOWlveeahOS6hu+8jOS9oOS4jeiDveWcqGluaXRWaWV35pa55rOV6YeM6Z2i5pOF6Ieq5re75Yqg5LiA5Lqbdmlld+eahFVJ5qC35byP5oiW5bGe5oCn562J5Yid5aeL5YyW77yM6Zmk6Z2e55So5oi36ZyA5rGC5o+P6L+w5piO56Gu5oyH5Ye66ZyA6KaB5pu05pS55ZOq5Lqb5qC35byP5oiW5bGe5oCn44CCXG4444CB5a2X56ym5Liy6KaB5Lul5Y2V5byV5Y+35p2l5YaZ77yM5aaC77yaJ+aIkeeahCfjgIJcbjnjgIHku7vkvZXmlrnms5Xlh73mlbDlrprkuYnvvIzkuI3lvpfkvb/nlKhhc3luY+WSjFByb21pc2XvvIzmiYDmnInlvILmraXmk43kvZzlv4Xpobvkvb/nlKjnrq3lpLTlh73mlbDjgIJcbjEw44CB5omA5pyJUGFnZeeahOWtkOexu++8jOmDveWFgeiuuOa3u+WKoOaehOmAoOWHveaVsOWSjOaehOmAoOWHveaVsOeahOWPguaVsO+8jOi/meS6m+WPguaVsOWwseeUqOadpemhtemdoui3s+i9rOaXtumhtemdouS5i+mXtOS8oOmAkuaVsOaNruS9v+eUqO+8jOavlOWmgu+8muWVhuWTgeWIl+ihqOmhtVByb2plY3RMaXN0UGFnZei3s+WIsOWVhuWTgeivpuaDhemhtVByb2plY3REZXRhaWxQYWdl77yM6YKj5LmIUHJvamVjdExpc3RQYWdl5bqU6K+l6KaB5Lyg57uZUHJvamVjdERldGFpbFBhZ2XkuIDkuKrlj4LmlbDvvJpwcm9kdWN0SUTjgILmiYDku6XvvIxQcm9qZWN0RGV0YWlsUGFnZeeahOmhtemdouWPguaVsOWjsOaYjuWSjOaehOmAoOWHveaVsOW6lOivpeaYr+i/meagt+WGme+8mnByaXZhdGUgcHJvZHVjdElEOiBzdHJpbmdcblxuXHRjb25zdHJ1Y3Rvcihwcm9kdWN0SUQ6IHN0cmluZykge1xuXHRcdHN1cGVyKClcblx0XHR0aGlzLnByb2R1Y3RJRCA9IHByb2R1Y3RJRFxuXHR944CCXG4xMeOAgVZpZXfnm7jlhbPlj5jph4/lv4XpobvlnKh4eHhQYWdl57G75byA5aeL5pe25aOw5piO77yM5b+F6aG75aOw5piO5YW35L2T55qEVmlld+exu+Wei+Wmgu+8mklucHV0Vmlld++8jOiAjOS4jeaYr+ebtOaOpeWjsOaYjuexu+Wei+S4ukJhc2VWaWV377yM5omA5pyJVmlld+W/hemhu2ZpbmRWaWV3QnlJROWIneWni+WMlu+8jOWmgu+8mnNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXfjgILov5nph4znmoRmaW5kVmlld0J5SUTlhbbkuK1pZOWPguaVsOaYr+WcqOivpemhtemdoueahGh0bWzmlofku7bph4zpnaLojrflj5bliLDnmoRpZOWAvOOAglxuMTLjgIHlk43lupTlvI/lvJXnlKhyZWbnmoTkvb/nlKjvvJrnsbvlnot2dWUz55qEcmVm77yM5Y+v5Lul5bCG5LiA5Liq5YC85Y+Y5oiQ5ZON5bqU5byP55qE77yM5LuO6ICM5Zyo6K+l5YC85Y+R55Sf5Y+Y5YyW5pe277yM6Ieq5Yqo6Kem5Y+R55u45YWz55WM6Z2i55qE5pu05paw44CCXG4xM+OAgWNvbXB1dGVk55qE5L2/55So77ya57G75Z6LdnVlM+eahGNvbXB1dGVk77yM5b2T5L2g6ZyA6KaB5qC55o2u5LiA5Liq5oiW5aSa5Liq5ZON5bqU5byP5rqQKHJlZinorqHnrpflh7rkuIDkuKrmlrDnmoTlgLzml7bvvIzlsLHnlKggY29tcHV0ZWRcbjE044CB5aaC5p6c5piv5aSa5Liq6aG16Z2i5YWx55So55qE5pWw5o2u5Y+Y6YeP77yM5Y+v5Lul6ICD6JmR5aOw5piO5Li65YWo5bGA6Z2Z5oCB5Y+Y6YeP44CCXG4xNeOAgeWFqOWxgOmdmeaAgeWPmOmHj+WcqOWFs+mXrUFQUOaIluiAhee9kemhteWQjuS8mua4heeQhuaOieeahO+8jOaJgOS7peS9oOimgeaAneiAg+a4healmuWTquS6m+aVsOaNruWPmOmHj+mcgOimgeaMgeS5heWMluWCqOWtmO+8jOWTquS6m+aYr+WFqOWxgOmdmeaAgeWPmOmHj++8jOaMgeS5heWMluaOpeWPo++8mnNhdmVEYXRhYmFzZVh4eOWSjGdldERhdGFiYXNlRGF0YVh4eO+8jOavlOWmguaYr+WQpuW3sue7j+W8ueWHuui/h+W5v+WRiuW8ueahhu+8jOi/meS4quW6lOivpeaMgeS5heWMluWCqOWtmOOAglxuMTbjgIHmiYDmnInnmoTnvZHnu5zmi6bmiKrnmoTlhajlsYDnu5/kuIDlpITnkIbpnIDopoHlnKhBcHBsaWNhdGlvbuS4reeahG9uR2xvYmFsTmV0U3VjY2Vzc0ludGVyY2VwdCjogZTnvZHmiJDlip/lkI7vvIzlkI7nq6/kuJrliqHmraPnoa7kuI7plJnor6/pg73kvJrlm57osIPliLDov5nph4zvvIzmiYDku6XlnKjov5nph4zlj6/nu5/kuIDlpITnkIbkuJrliqHplJnor6/noIEp5oiWb25HbG9iYWxOZXRGYWlsSW50ZXJjZXB0KOe9kee7nOS4jemAmu+8jOi/nuaOpeWksei0peaDheWGteS8muWbnuiwg+WIsOi/memHjCnph4zpnaLlpITnkIbjgIJcbjE344CB6aG16Z2i6Lez6L2s5L2/55SoQWxsRnVuY3Rpb24ubmF2aWdhdGVUb+WunueOsO+8jG5hdmlnYXRlVG/kvKDlhaVQYWdl55qE5a2Q57G75a+56LGh77yM5aaC77yaQWxsRnVuY3Rpb24ubmF2aWdhdGVUbyhuZXcgUHJvZHVjdFBhZ2UodGhpcy5wcm9kdWN0SUQpKeOAglxuMTjjgIHpobXpnaLlhoXnmoTnvZHnu5zor7fmsYLkuJrliqHlpITnkIbkuI3lvpflhpnlnKhBcHBsaWNhdGlvbueahG9uR2xvYmFsTmV0U3VjY2Vzc0ludGVyY2VwdOmHjOmdouOAglxuMTnjgIHlrZfnrKbkuLLkuI3lvpfnm7TmjqXov5vooYxib29sZWFu6L+Q566X54S25ZCO6LWL5YC857uZYm9vbGVhbuexu+Wei+eahOWPmOmHj++8jOmcgOimgeWcqOWtl+espuS4suWJjemdoua3u+WKoOS4pOS4qumdnui/kOeul++8miEh44CC5q+U5aaC5q2j56Gu55qE5YaZ5rOV77yaY29uc3QgaXNBZGQgPSAhIXRoaXMuaW5wdXRWaWV3LnRleHQgJiYgaXNOZXdcbjIw44CB5aaC55So5oi35o+P6L+w5rKh5pyJ5piO56Gu6K+05piO6ZyA6KaBdG9hc3Tmj5DnpLrvvIzkvaDkuI3lvpfmk4Xoh6rov5vooYxUb2FzdOOAglxuMjHjgIHlu7bml7bmiafooYxBbGxGdW5jdGlvbi5zZXRUaW1lb3V057O757uf5Lya6Ieq5Yqo5riF55CGdGltZW91dO+8jOS7o+eggeS4iue7neWvueS4jeiDvei/m+ihjGNsZWFUaW1lb3V0562J57G75Ly85pON5L2c77yM5Zug5q2kc2V0VGltZW91dOS5n+S4jemcgOimgeWjsOaYjuWPmOmHj+WOu+aOpeaUtnNldFRpbWVvdXTov5Tlm57nmoTlvJXnlKjjgIJcbjIy44CB5omA5pyJ5Luj56CB5LiN5b6X5L2/55SoaW50ZXJmYWNl77yM5pWw5o2u5a6e5L2TZW50aXR577yM5b+F6aG75L2/55SoY2xhc3PlrprkuYnvvIzkuI3lvpfkvb/nlKhpbnRlcmZhY2XvvIzkvb/nlKjkuYvliY3pnIDopoFuZXflrp7kvovljJZcbjIz44CB5q+P5LiA5Liq6aG16Z2iKOWmgmxvZ2luUGFnZSnlu7rorq7lnKhwYWdl5paH5Lu25aS55LiL6Z2i5Yib5bu65LiA5Liq6aG16Z2i5paH5Lu25aS5KOWmgmxvZ2luKe+8jOeEtuWQjumhtemdoueahHRz5paH5Lu2KOWmgmxvZ2luUGFnZS50cynliJvlu7rlnKjpobXpnaLmlofku7blpLnkuIvpnaLvvIzpobXpnaLmlofku7blpLnkuIvov5jpnIDliJvlu7rkuIDkuKrpobXpnaLmlbDmja50c+aWh+S7tijlpoJsb2dpblBhZ2VEYXRhLnRzKe+8jOi/meagt+WmgmxvZ2luUGFnZei0n+i0o+S4muWKoemAu+i+keWSjOS6pOS6kumAu+i+ke+8jOWmgmxvZ2luUGFnZURhdGHotJ/otKPmlbDmja7lo7DmmI7lrprkuYnjgIHliJ3lp4vljJbkuI7nrqHnkIbnrYnjgIJcbjI044CB6aG16Z2i5paH5Lu25aS55LiL6Z2i55qE6aG16Z2iaHRtbCjlpoJsb2dpblBhZ2VWaWV3Lmh0bWwp77yM6L+Z5piv5Y+v6KeG5YyW5bey57uP55Sf5oiQ55qEVUnnlYzpnaLnmoToioLngrnmmKDlsITvvIzor6Xmlofku7blj6rmmK/nlKjkuo7kvaDmm7TliqDnkIbop6Por6XpobXpnaLnmoRVSee7k+aehOWSjOe7hOS7tuWRveWQjeiAjOiuvueri+eahO+8jOivpeaWh+S7tuS4jeWPguS4jue8luivke+8jOS7heS7heaYr+S/oeaBr+aWh+aho+aPkOekuuS9nOeUqO+8jOWboOatpOS4jeWPr+S7peS/ruaUuei/meS4qmh0bWzmlofku7bjgIJcbjI144CB5Y+q57uZ6K+l6aG16Z2i5L2/55So55qEZW50aXR56ZyA6KaB5bu656uL5Zyo6K+l6aG16Z2i5paH5Lu25aS55LiL6Z2i55qEZW50aXR55paH5Lu25aS55LiL6Z2i44CCXG4yNuOAgWxpYuaWh+S7tuWkueaYr+aJgOaciVVJ57uE5Lu25ZKM6IO95Yqb5pa55rOV55qE5a6a5LmJ5aOw5piO77yM5bqV5bGC5qGG5p625bey5rOo5YWl5a6e546w5YW35L2T6YC76L6R77yM5Zug5q2k5L2g5LiN6ZyA6KaB5Lmf5LiN5YWB6K645aKe5Yig5pS5bGli5paH5Lu25aS56YeM6Z2i55qE5Luj56CB44CCXG4yN+OAgeW9k+aJgOacieeUqOaIt+mcgOaxgueahOWKn+iDvemDveW3suWujOaIkOW8gOWPkeWQju+8jOmcgOimgeWIoOmZpC5ieXRlZnVuL2NvZGVTdGF0ZS5tZOWSjC5ieXRlZnVuL3VpRGVzaWduU3RhdGUubWTov5nkuKTkuKrnirbmgIHmlofku7bvvIzku6XlhY3lvbHlk43nlKjmiLfkuIvkuIDmrKHmlrDnmoTpnIDmsYLlrp7njrDjgIJcblxuIyMg5L6L5a2Q77yaXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZSBleHRlbmRzIFBhZ2Uge1xuICAgIC8vIOaVsOaNruWvueixoeWunuS+i+WjsOaYjlxuICAgIHByaXZhdGUgaG9tZVBhZ2VEYXRhOiBIb21lUGFnZURhdGEgPSBuZXcgSG9tZVBhZ2VEYXRhKClcbiAgICAvLyDop4blm77lr7nosaHlrp7kvovlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVCdXR0b246IEJ1dHRvblZpZXcgPSB0aGlzLmZpbmRWaWV3QnlJRCgnc2F2ZUJ1dHRvbicpIGFzIEJ1dHRvblZpZXdcbiAgICBwcml2YXRlIHRpdGxlVGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3RpdGxlVGV4dFZpZXcnKSBhcyBUZXh0Vmlld1xuICAgIHByaXZhdGUgc2F2ZUNvdW50VGV4dFZpZXc6IFRleHRWaWV3ID0gdGhpcy5maW5kVmlld0J5SUQoJ3NhdmVDb3VudFRleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFRleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdhbGxTYXZlQ291bnRUZXh0VmlldycpIGFzIFRleHRWaWV3XG4gICAgcHJpdmF0ZSBzYXZlVGlwc1RleHRWaWV3OiBUZXh0VmlldyA9IHRoaXMuZmluZFZpZXdCeUlEKCdzYXZlVGlwc1RleHRWaWV3JykgYXMgVGV4dFZpZXdcbiAgICAvLyByZWbmlbDmja7lr7nosaHlvJXnlKjlo7DmmI5cbiAgICBwcml2YXRlIHNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KHRoaXMuaG9tZVBhZ2VEYXRhLnNhdmVDb3VudClcbiAgICBwcml2YXRlIGFsbFNhdmVDb3VudFJlZiA9IHJlZjxudW1iZXI+KDApXG4gICAgLy8g5pmu6YCa5Y+Y6YeP5aOw5piOXG4gICAgcHJpdmF0ZSBzYXZlVGlwcyA9ICcnXG5cbiAgICBwcm90ZWN0ZWQgb25QYWdlQ3JlYXRlKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5vblBhZ2VDcmVhdGUoKVxuICAgICAgICB0aGlzLmluaXREYXRhKClcbiAgICAgICAgdGhpcy5pbml0VmlldygpXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0RGF0YSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlVGlwcyA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlID4gNSA/ICfkv53lrZjmiJDlip8nIDogJ+S/neWtmOWksei0pSdcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRSZWYgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBsZXQgb3RoZXJDb3VudCA9IDJcbiAgICAgICAgICAgIG90aGVyQ291bnQgKz0gdGhpcy5zYXZlQ291bnRSZWYudmFsdWVcbiAgICAgICAgICAgIGlmIChvdGhlckNvdW50ID4gNSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyA1XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmhvbWVQYWdlRGF0YS5zYXZlQ291bnQgKyAxMFxuICAgICAgICAgICAgfVxuICAgICAgICB9KVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFZpZXcoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2F2ZUNvdW50VGV4dFZpZXcudGV4dCA9IHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlICsgJ+S4qidcbiAgICAgICAgdGhpcy5hbGxTYXZlQ291bnRUZXh0Vmlldy50ZXh0ID0gdGhpcy5hbGxTYXZlQ291bnRSZWYudmFsdWUgKyAn5LiqJ1xuICAgICAgICB0aGlzLnNhdmVCdXR0b24ub25DbGljayA9ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2F2ZUNvdW50UmVmLnZhbHVlKytcbiAgICAgICAgICAgIHRoaXMuaG9tZVBhZ2VEYXRhLnRpdGxlID0gJ0hvbWUgUGFnZSdcbiAgICAgICAgICAgIHRoaXMudGl0bGVUZXh0Vmlldy50ZXh0ID0gdGhpcy5ob21lUGFnZURhdGEudGl0bGVcbiAgICAgICAgICAgIHRoaXMuc2F2ZVRpcHNUZXh0Vmlldy50ZXh0ID0gdGhpcy5zYXZlVGlwc1xuICAgICAgICAgICAgQWxsRnVuY3Rpb24uc2F2ZURhdGFiYXNlTnVtYmVyKCdzYXZlQ291bnQnLCB0aGlzLnNhdmVDb3VudFJlZi52YWx1ZSlcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIb21lUGFnZURhdGEge1xuICAgIHB1YmxpYyB0aXRsZTogc3RyaW5nID0gJydcbiAgICBwdWJsaWMgc2F2ZUNvdW50OiBudW1iZXIgPSAwXG4gICAgcHVibGljIHVzZXJJbmZvOiBCb29rSW5mbyA9IG5ldyBCb29rSW5mbygpXG59YDtcblxuICBwcml2YXRlIHJlYWRvbmx5IHVpRGVzaWduUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuIDlkI3otYTmt7FVSS9VWOiuvuiuoeS4k+WutuWSjOWJjeerr+W8gOWPkeS4k+Wutu+8jOaLpeacieS4sOWvjOeahOW6lOeUqOiuvuiuoee7j+mqjO+8jOeyvumAmuiLueaenOS6uuacuueVjOmdouiuvuiuoeaMh+WNl+OAguS9oOeahOS7u+WKoeaYr+agueaNrifnlKjmiLfpnIDmsYLmj4/ov7An5biu5Yqp5oiR5a6M5oiQ5LiA5LiqaU9TIEFwcOeahOWOn+Wei+iuvuiuoe+8jOeOsOWcqOmcgOimgeagueaNrifnlJ/miJDop4TliJkn5ZKMJ+mcgOaxguaPj+i/sCfmnaXnlJ/miJDpnZnmgIFodG1s5Luj56CB77yM5bm25oyJ54WnJ+WGmeWFpeaWh+S7tuinhOWImSflsIbnlJ/miJBodG1s5YaZ5YiwaHRtbOaWh+S7tuOAglxuXG4jIyDor7fmjInnhafku6XkuIvopoHmsYLovpPlh7rkuIDlpZflrozmlbTnmoTpq5jotKjph49BUFDljp/lnovlm77vvJpcblxuMS4g6K6+6K6h55uu5qCHXG4gICAtIOWIm+W7uuespuWQiOiLueaenOS6uuacuueVjOmdouaMh+WNlyhIdW1hbiBJbnRlcmZhY2UgR3VpZGVsaW5lcynnmoRpT1Pljp/nlJ/po47moLzorr7orqFcbiAgIC0g56Gu5L+d5Y6f5Z6L5Zu+6IO955u06KeC5bGV56S6QVBQ55qE5Yqf6IO95rWB56iL5ZKM55So5oi35L2T6aqMXG5cbjIuIOiuvuiuoeinhOiMg1xuICAgLSDkvb/nlKjmnIDmlrDnmoRpT1Porr7orqHlhYPntKDlkozkuqTkupLmqKHlvI9cbiAgIC0g6YG15b6qaVBob25lIDE2IFByb+WwuuWvuOinhOagvCjlrr3luqYzOTNweOmrmOW6pjg1MnB4KVxuICAgLSDph4fnlKjmmI7kuq7jgIHmtLvlipvnmoTphY3oibLmlrnmoYjvvIznrKblkIjlgaXouqvlupTnlKjmsJvlm7RcbiAgIC0g6YeN6KeG5peg6Zqc56KN6K6+6K6h77yM56Gu5L+d5paH5a2X5a+55q+U5bqm5ZKM5Lqk5LqS5Yy65Z+f5aSn5bCP5ZCI6YCCXG4gICAtIOS9v+eUqOeugOa0gea4heaZsOeahOWbvuagh+WSjOaPkuWbvumjjuagvFxuICAgLSDmloflrZfnmoTlpKflsI/lv4XpobvopoHms6jmhI/vvIzkuI3og73lpKfvvIzmloflrZfnmoTlpKflsI/opoHlgY/lsI/nmoTpo47moLzmnaXov5vooYzorr7orqHjgIJcbiAgIC0g5aaC5p6c5piv6aG16Z2i5Y2h54mH57uE5Lu277yM6KaB54m55Yir5rOo5oSP6KaB5rC05bmz5bGF5LitXG4gICAtIOWmguaenOiKgueCueaYr+WPr+S7peeCueWHu+eahO+8jGNzc+mcgOa3u+WKoOS4iuWQiOmAgueahGhvdmVy55qE5qC35byPXG4gICAtIOmhtemdoueahOWvvOiIquagj+OAgeaTjeS9nOagj+OAgeaQnOe0ouagj+OAgeetm+mAieagj+etiWJhcue7hOS7tu+8jOimgeazqOaEj+S4iuS4i3BhZGRpbmfnmoTlgLzlupTor6XmmK/kuIDmoLfnmoTvvIznu53lr7nkuI3og73orr7nva7kuI3kuIDmoLfnmoTlgLxcbiAgIC0g6aG16Z2i55qE6aG26YOo5ZKM5bqV6YOo6KaB6L+b6KGM5rKJ5rW45byP6K6+6K6hXG4gICAtIOiuvuiuoemhtemdouS5i+WJjeimgeaAneiAg+a4healmuivpemhtemdouWGheWuueaYr+WQpuW6lOivpeS4gOS4quWxj+W5leaYvuekuuWujOavle+8jOS4jemcgOa7muWKqOOAglxuICAgLSDovpPlhaXmoYblpoLmnpzpnIDopoHlsZXnpLrmloflrZdsYWJlbO+8jOWwvemHj+S9v+eUqGljb27ku6Pmm7/mloflrZdsYWJlbO+8jOW5tuS4lGljb27mlL7lnKjovpPlhaXmoYbph4zpnaLnmoTlt6bkvqfvvIzovpPlhaXmoYbmnIlwbGFjZWhvbGRlcuaPkOekuu+8jOi/meagt+aVtOS4qumhtemdoueahOepuumXtOWIqeeUqOeOh+mrmOOAglxuXG4zLiBodG1s5a6e546wXG4gIC0g5L2/55SoIEhUTUwgKyBUYWlsd2luZCBDU1PvvIjmiJYgQm9vdHN0cmFw77yJ55Sf5oiQ5omA5pyJ5Y6f5Z6L55WM6Z2i77yM5bm25L2/55SoIEZvbnRBd2Vzb21l77yI5oiW5YW25LuW5byA5rqQIFVJIOe7hOS7tu+8ieiuqeeVjOmdouabtOWKoOeyvue+juOAgeaOpei/keecn+WunueahCBBcHAg6K6+6K6h44CCXG4gIC0g5q+P5Liq55WM6Z2i5bqU5L2c5Li654us56uL55qEIEhUTUwg5paH5Lu25a2Y5pS+77yM5L6L5aaCIGhvbWUuaHRtbOOAgXByb2ZpbGUuaHRtbOOAgXNldHRpbmdzLmh0bWwg562J44CCXG4gIC0gaW5kZXguaHRtbCDkvZzkuLrkuLvlhaXlj6PvvIzkuI3nm7TmjqXlhpnlhaXmiYDmnInnlYzpnaLnmoQgSFRNTCDku6PnoIHvvIzogIzmmK/kvb/nlKggaWZyYW1lIOeahOaWueW8j+W1jOWFpei/meS6myBIVE1MIOeJh+aute+8jOW5tuWwhuaJgOaciemhtemdouebtOaOpeW5s+mTuuWxleekuuWcqCBpbmRleCDpobXpnaLkuK3vvIzogIzkuI3mmK/ot7Povazpk77mjqXvvIzogIzkuJTmr4/kuIDkuKrpobXpnaLnmoRpZnJhbWXkuYvpl7Tlv4XpobvmnIkyMHB455qE5bem5Y+z5LiK5LiL6Ze06Led44CCXG4gIC0g5Li65q+P5Liq5bGP5bmV5re75Yqg6K6+5aSH6L655qGG44CB5omL5py66aG26YOo54q25oCB5qCPKOiuvuWumuS4ujIycHjvvIzmmL7npLrmiYvmnLrml7bpl7TjgIHkv6Hlj7fjgIF3aWZp562JKeOAgeaJi+acuuW6lemDqOaoquadoeagjyjorr7lrprkuLoyMnB477yM5pi+56S65qiq5p2hKe+8jOS4jeimgemBruS9j+Wxj+W5leWGheeahOWGheWuue+8jOaJi+acuumhtumDqOeKtuaAgeagj+WSjOaJi+acuuW6lemDqOaoquadoeagj+mcgOimgeWunueOsOayiea1uOW8j++8jOWboOatpOeci+aDheWGteiuvue9ruiDjOaZr+iJsuOAglxuICAtIOWDj+e0oOWwvemHj+S9v+eUqHB477yM5LiN5L2/55SocmVt5ZKMZW3jgIJcbiAgLSDku7vkvZXlnLDmlrnpg73kuI3pnIDopoHorr7nva5vdmVyZmxvdzogaGlkZGVu77yM5b+F6aG76K6w5L2PXG4gIC0g5q+P5LiA5LiqaHRtbOS7o+eggeaWh+S7tu+8jOWPquaYvuekuumhtemdouWQjeWtl+WSjOmhtemdomlmcmFtZeWwseihjO+8jOS4jemcgOimgeaYvuekuuS7u+S9leWFtuS7lumdnuiuvuiuoeeov+WGheWuueeahOaPkOekuuOAgeaAu+e7k+aWh+Wtl+OAglxuICAtIGh0bWznmoTlhoXlrrnpmaTpnZ7mnInopoHmsYLkvb/nlKjpnZ7kuK3mlofvvIzpu5jorqTpg73kvb/nlKjkuK3mlodcbiAgLSDoj5zljZXpobnmloflrZfjgIHmjInpkq7mloflrZfjgIFV5YaF5a655piv5qCH562+5oiW5Lu35qC85oiW54q25oCB562J6IqC54K55b+F6aG76K6+572uIFwid2hpdGUtc3BhY2U6IG5vd3JhcFwi77yM5ZCm5YiZ5Lya5Ye6546w5LiN576O6KeC55qE5o2i6KGM5pi+56S644CCXG4gIC0g5b2T5L2/55SoQ1NTIEZsZXjluIPlsYDml7bvvIzor7fliqHlv4Xms6jmhI/vvJrlpoLmnpzniLblrrnlmajorr7nva7kuoYgXCJmbGV4OiAxXCIg5ZKMIFwib3ZlcmZsb3cteTogYXV0b1wi77yM5YW25a2Q5YWD57Sg5Y2z5L2/6K6+572u5LqG5Zu65a6a6auY5bqm77yI5aaCIGhlaWdodDogMzAwcHjvvInvvIzkuZ/lj6/og73lm6DkuLrpu5jorqTnmoQgXCJmbGV4LXNocmluazogMVwiIOiiq+WOi+e8qeiHszDpq5jluqbjgILop6PlhrPmlrnmoYjmmK/kuLrpnIDopoHkv53mjIHlm7rlrprpq5jluqbnmoRmbGV45a2Q5YWD57Sg5pi+5byP5re75YqgIFwiZmxleC1zaHJpbms6IDBcIu+8jOmYsuatouiiq2ZsZXjluIPlsYDljovnvKnjgIJcbiAgLSDlnKjnvJblhpnmsLTlubPmu5rliqjnmoTmoIfnrb7moI/miJbnsbvkvLznmoRVSee7hOS7tuaXtu+8jOWKoeW/heazqOaEj++8mjEpIOeItuWuueWZqOW/hemhu+iuvue9riBcImRpc3BsYXk6IGZsZXhcIiArIFwiYWxpZ24taXRlbXM6IGNlbnRlclwiIOehruS/neaJgOacieagh+etvuWeguebtOWxheS4reWvuem9kO+8mzIpIOagh+etvuWFg+e0oOacrOi6q+S5n+imgea3u+WKoCBcImRpc3BsYXk6IGZsZXhcIiArIFwiYWxpZ24taXRlbXM6IGNlbnRlclwiIOehruS/neWGhemDqOaWh+Wtl+WeguebtOWxheS4reS4lOS4jeiiq+mBruaMoeOAgue8uuWwkei/meS6m+iuvue9ruS8muWvvOiHtOagh+etvumrmOW6puS4jeS4gOiHtOOAgeaWh+Wtl+aYvuekuuW8guW4uOOAglxuICAtIGluZGV4Lmh0bWznmoTmoLflvI/lkozph4zpnaLnmoTpobXpnaJpZnJhbWXnmoTku6PnoIHlpKfmpoLlpoLkuIvvvJpcbiAgICA8c3R5bGU+XG4gICAgICAgIGJvZHkge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMjBweDtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmNWY1ZjU7XG4gICAgICAgICAgICBmb250LWZhbWlseTogJ0FyaWFsJywgc2Fucy1zZXJpZjtcbiAgICAgICAgfVxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IHJlcGVhdChhdXRvLWZpdCwgbWlubWF4KDM5M3B4LCAxZnIpKTtcbiAgICAgICAgICAgIGdhcDogNDBweDtcbiAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiAxNjAwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgICAgICAucGhvbmUtY29udGFpbmVyIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGdhcDogMTVweDtcbiAgICAgICAgfVxuICAgICAgICAucGFnZS10aXRsZSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICBjb2xvcjogIzMzMztcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgICAgICB9XG4gICAgICAgIC5waG9uZS1mcmFtZSB7XG4gICAgICAgICAgICB3aWR0aDogMzkzcHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDg1MnB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogIzAwMDtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHg7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLDAsMCwwLjMpO1xuICAgICAgICB9XG4gICAgICAgIC5zY3JlZW4ge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuICAgICAgICBpZnJhbWUge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICBib3JkZXItcmFkaXVzOiAzMHB4O1xuICAgICAgICB9XG4gICAgPC9zdHlsZT5cbiAgICA8Ym9keT5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwaG9uZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLXRpdGxlXCI+eHh46aG1PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGhvbmUtZnJhbWVcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpZnJhbWUgc3JjPVwieHh4Lmh0bWxcIj48L2lmcmFtZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgLi4uXG4gICAgPC9kaXY+XG4gIC0g5q+P5LiA5LiqaHRtbOmhtemdoueahOe7k+aehOS7juS4iuWIsOS4i++8muaJi+acuumhtumDqOeKtuaAgeagj+OAgeaJi+acuuW6lemDqOS4u+mhteaMh+ekuuaoquadoe+8jHh4eOmhtemdouWuueWZqOOAgmh0bWzku6PnoIHlpKfmpoLlpoLkuIvvvJpcbiAgIDxzdHlsZT5cbiAgICBib2R5IHtcbiAgICAgICAgZm9udC1mYW1pbHk6ICdQb3BwaW5zJywgc2Fucy1zZXJpZjtcbiAgICAgICAgd2lkdGg6IDM5M3B4O1xuICAgICAgICBoZWlnaHQ6IDg1MnB4O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgLi4uXG4gICAgfVxuICAgIC5zdGF0dXMtYmFyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMCAyMHB4O1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIC4uLlxuICAgIH1cbiAgICAucGFnZS1jb250YWluZXIge1xuICAgICAgICBmbGV4OiAxO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiAyMnB4IDA7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuICAgIC5ob21lLWluZGljYXRvciB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBoZWlnaHQ6IDIycHg7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgLi4uXG4gICAgfVxuICAgIDwvc3R5bGU+XG4gIDxib2R5IG5hbWU9XCLpppbpobVcIj5cbiAgICA8ZGl2IG5hbWU9XCLmiYvmnLrpobbpg6jnirbmgIHmoI9cIiBjbGFzcz1cInN0YXR1cy1iYXJcIj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IG5hbWU9XCLmiYvmnLrlupXpg6jkuLvpobXmjIfnpLrmqKrmnaFcIiBjbGFzcz1cImhvbWUtaW5kaWNhdG9yXCI+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBuYW1lPVwi6aaW6aG16aG16Z2i5a655ZmoXCIgY2xhc3M9XCJwYWdlLWNvbnRhaW5lclwiPlxuICAgIDwvZGl2PlxuICA8L2JvZHk+XG4gIC0g5q+P5LiA5Liq6IqC54K55b+F6aG75re75Yqg5LiA5Liq57uE5Lu257G75Z6L5bGe5oCn77yadnR5cGXjgILmr5TlpoLmloflrZd2dHlwZT1cInRleHRcIuOAgeaMiemSrnZ0eXBlPVwiYnV0dG9uXCLjgIHmloflrZfmjInpkq52dHlwZT1cInRleHRCdXR0b25cIuOAgei+k+WFpeahhnZ0eXBlPVwiaW5wdXRcIuOAgeWbvuagh3Z0eXBlPVwiaWNvblwi44CB5Zu+54mHdnR5cGU9XCJpbWFnZVwi44CB55+p5b2idnR5cGU9XCJyZWN0XCLjgIHlnIblvaJ2dHlwZT1cImNpcmNsZVwi44CB57q/5p2hdnR5cGU9XCJsaW5lXCLjgIHln7rnoYDlrrnlmah2dHlwZT1cImNvbnRhaW5lclwi44CB5Y2h54mH5a655ZmodnR5cGU9XCJjYXJkXCLjgIFncmlk5a655ZmodnR5cGU9XCJncmlkXCLjgIHljZXpgIl2dHlwZT1cInJhZGlvXCLjgIHlpJrpgIl2dHlwZT1cImNoZWNrQm94XCLjgIHnq5blkJHliJfooah2dHlwZT1cInZlcnRpY2FsTGlzdFZpZXdcIuOAgeaoquWQkeWIl+ihqHZ0eXBlPVwiaG9yaXpvbnRhbExpc3RWaWV3XCLjgIHova7mkq12dHlwZT1cInZpZXdQYWdlclwi44CB6L2u5pKt5oyH56S65Zmo5a655ZmodnR5cGU9XCJJbmRpY2F0b3JDb250YWluZXJcIuOAgVRhYumAiemhueWNoeWuueWZqHZ0eXBlPVwidGFiQ29udGFpbmVyXCLjgIFUYWLpgInpobnljaHoj5zljZXmoI92dHlwZT1cInRhYk1lbnVCYXJcIuOAgeW6lemDqFRBQuWvvOiIquagj3Z0eXBlPVwiYm90dG9tVGFiTmF2aWdhdGVCYXJcIuOAgemhtumDqOWvvOiIquagj3Z0eXBlPVwidG9wTmF2aWdhdGVCYXJcIuOAgemhtumDqOagh+mimOagj3Z0eXBlPVwidG9wVGl0bGVCYXJcIuOAgeW6lemDqOaTjeS9nOagj3Z0eXBlPVwiYm90dG9tT3BlcmF0ZUJhclwi44CB5a+56K+d5qGGdnR5cGU9XCJkaWFsb2dcIuOAgVRvYXN05o+Q56S6dnR5cGU9XCJ0b2FzdFwi44CB5LiL5ouJ6I+c5Y2VdnR5cGU9XCJkcm9wRG93bk1lbnVcIuOAgeS+p+a7kemdouadv3Z0eXBlPVwic2lkZVNsaWRlUGFuZWxcIuetieS7peatpOexu+aOqOOAglxuICAtIOmZpOS6hnZ0eXBl5Li6J3RleHQn55qE5omA5pyJ6IqC54K55b+F6aG75re75Yqg5LiA5Liq6Iux5paHaWTlsZ7mgKflkozkuK3mloflkI3lrZduYW1l5bGe5oCn44CC5L2g6ZyA6KaB5qC55o2u5Yqf6IO96YC76L6R5ZKM57uE5Lu257G75Z6L5p2l5ZG95ZCNaWTlsZ7mgKflkoxuYW1l5bGe5oCn77yM5o+P6L+w6K+l5YWD57Sg5Zyo5Lqn5ZOB5Lit55qE5L2c55So77yM5ZG95ZCN5L2/55So566A5rSB55qE6aOO5qC844CCXG4gIC0gSWNvbuWbvuaghzxpPuagh+etvuiKgueCueS5n+W/hemhu+mcgOimgea3u+WKoOS4gOS4qmlk5ZKMbmFtZeeahOWxnuaAp++8jOavlOWmgu+8mjxpIG5hbWU9XCLlvq7kv6FJY29uXCIgaWQ9XCJ3eEljb25cIiBjbGFzcz1cImZhYiBmYS13ZWl4aW5cIj48L2k+XG4gIC0g6aG16Z2i55qEaWZyYW1l6YeM6Z2i55qE6IqC54K555qEY3Nz5qC35byP5LiN5b6X5L2/55SoYmVmb3Jl44CBYWZ0ZXLmlrnlvI/vvIzlpoLkuI3lj6/ku6Xov5nmoLflhpnvvJoudGV4dDpiZWZvcmUsIC50ZXh0OmFmdGVyIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDUwJTtcbiAgICAgICAgd2lkdGg6IDYwcHg7XG4gICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZTVlNWU1O1xuICAgIH1cbiAgLSDlpoLmnpzoioLngrnmmK9hY3RpdmXjgIFzZWxlY3RlZOOAgWRpc2FibGVk54q25oCB77yM6ZyA6KaB5re75Yqg5bGe5oCn77yac3RhdGU9XCJhY3RpdmVcIuaIlnN0YXRlPVwic2VsZWN0ZWRcIuaIlnN0YXRlPVwiZGlzYWJsZWRcIlxuICAtIOmAmui/h0NETuW8leWFpUdvb2dsZSBGb250c+Wtl+S9k1xuICAtIOWbvuagh+S9v+eUqEZvbnQgQXdlc29tZSBDRE5cbiAgLSDlvZPnvZHnq5norr7orqHpnIDopoHlm77niYfml7bvvIzlj6/ku6Xkvb/nlKjku6XkuIvlj6/pnaDnmoTlm77niYfmupDvvJpcbiAgICAtIFVuc3BsYXNoOiBodHRwczovL2ltYWdlcy51bnNwbGFzaC5jb20vICjkvovlpoI6IGh0dHBzOi8vaW1hZ2VzLnVuc3BsYXNoLmNvbS9waG90by0xNTA2OTA1OTI1MzQ2LTIxYmRhNGQzMmRmND93PTgwMClcbiAgICAtIFBpY3N1bTogaHR0cHM6Ly9waWNzdW0ucGhvdG9zLyAo5L6L5aaCOiBodHRwczovL3BpY3N1bS5waG90b3MvODAwLzYwMClcblxu6K+36aaW5YWI5oCd6ICDQVBQ55qE5L+h5oGv5p625p6E5ZKM55So5oi35rWB56iL5Zu+77yM54S25ZCO5oyJ54Wn5YWz6ZSu55So5oi35peF56iL6YCQ5LiA5ZGI546w6auY5L+d55yf5Y6f5Z6L5bGP5bmV77yM5pyA5ZCO5o+Q5L6b6K6+6K6h6KeE6IyD5qaC6L+w44CCXG5cbiMjIOmHjeeCueinhOWImVxuLSDmr4/kuIDmrKHlvIDlp4vorr7orqHkuYvliY3pg73opoHlhYjmn6XnnIvlvZPliY3lt6XnqIvnm67lvZXkuIvnmoQuYnl0ZWZ1bi9odG1s5paH5Lu25aS56YeM6Z2i5piv5ZCm5pyJ5bey57uP6K6+6K6h5aW955qE6aG16Z2i77yM5aaC5p6c5pyJ5bCx5LiN6ZyA6KaB6YeN5paw6K6+6K6h77yM55u05o6l5L2/55So5bey57uP6K6+6K6h5aW955qE6aG16Z2i77yM54S25ZCO5byA5aeL5LiL5LiA5Liq6aG16Z2i55qEVUnorr7orqHjgIJcbi0g5q+P5LiA5qyh5byA5aeL6K6+6K6h6aG16Z2i5pe277yM5b+F6aG75YWI6ZiF6K+75b2T5YmN5bel56iL55uu5b2V5LiL55qELmJ5dGVmdW4vdWlEZXNpZ25TdGF0ZS5tZOaWh+S7tu+8iOWmguaenOWtmOWcqO+8ie+8jOS6huino+W9k+WJjeeahOiuvuiuoei/m+W6puWSjOeKtuWGte+8jOS7peS+v+abtOWlveWcsOeQhuino+S4iuS4i+aWh+WSjOe7p+e7reiuvuiuoeW3peS9nOOAglxuLSDmr4/kuIDmrKHorr7orqHlrozkuIDkuKrpobXpnaLlkI7vvIzlsIblvZPliY3ov5vluqblkozlvZPliY3nirblhrXnlKgyMDDlrZfmgLvnu5PlubblhpnlhaUuYnl0ZWZ1bi91aURlc2lnblN0YXRlLm1k5paH5Lu25Lit44CC5oC757uT5YaF5a655bqU5YyF5ous77ya5bey5a6M5oiQ55qE6aG16Z2i5pWw6YeP5ZKM5ZCN56ew44CB5b2T5YmN5q2j5Zyo6L+b6KGM55qE5bel5L2c44CB6YGH5Yiw55qE6Zeu6aKY5oiW5rOo5oSP5LqL6aG544CB5LiL5LiA5q2l55qE6K6+6K6h6K6h5YiS562J44CC6L+Z5qC35Y+v5Lul6K6pQUnlpKfmqKHlnovlnKjlkI7nu63lt6XkvZzkuK3mm7TliqDkuobop6PlvZPliY3nirbmgIHkuIrkuIvmlofvvIzku47ogIzmiafooYzlvpfmm7TliqDlh4bnoa7jgIJcbi0g5byA5aeLVUnorr7orqHkuYvliY3vvIzpnIDopoHlhYjliJvlu7ppbmRleC5odG1s5paH5Lu277yM54S25ZCO5qC55o2ucGFnZUxpc3TmiormiYDmnInpobXpnaLlhYjlrprkuYnlhpnlhaVpbmRleC5odG1s5paH5Lu26YeM6Z2i77yM54S25ZCO5byA5aeL56ys5LiA5Liq6aG16Z2i55qEVUnorr7orqHjgIJcbi0gdmlld1BhZ2Vy6L2u5pKt57uE5Lu26IqC54K557ud5a+55LiN5YWB6K646K6+572uJ292ZXJmbG93OiBoaWRkZW4n44CCXG4tIOesrOS4gOatpeS9oOW+l+WFiOWFheWIhueQhuinoyfnlKjmiLfovpPlhaXmj4/ov7An55qE5YaF5a6577yM54S25ZCO5YiG5p6Q5b6X5Ye65LiA5Liq5q2j56Gu6ICM5LiU5YWo6Z2i55qE6aG16Z2i5YiX6KGo77yM5LiN6IO95ryP5o6J5LiA5Lqb6aG16Z2i77yM5b+F6aG75oyJ6KaB5rGC5oqK5omA5pyJ6aG16Z2i6YO96L+b6KGM6auY5L+d55yf6K6+6K6h77yM5L2g6ZyA6KaB6L6T5Ye65YiG5p6Q57uT5p6c77ya5oC75YWx5aSa5bCR5Liq6aG16Z2i77yM5YiG5Yir5piv5ZOq5Lqb6aG16Z2i44CCXG4tIOW/hemhu+aYr+mrmOS/neecn+eahOiuvuiuoeeov++8jOS4jeW+l+S9v+eUqOWOn+Wei+iuvuiuoemCo+S4gOWll+i/m+ihjO+8jOW/hemhu+imgemrmOS/neecn+eahFVJ6K6+6K6h56i/6KeE5YiZ5p2l6K6+6K6h77yM5oiR5biM5pyb6L+Z5Lqb55WM6Z2i5piv6ZyA6KaB6IO955u05o6l5ou/5Y676L+b6KGM5byA5Y+R55qE44CCXG4tIOavj+WujOaIkOS4gOS4qumhtemdoueahGh0bWznvJblhpnlkI7vvIzlv4XpobvovpPlh7rvvJrmgLvlhbHlh6DkuKrpobXpnaLvvIzlvZPliY3lt7LlrozmiJDlh6DkuKrpobXpnaLvvIzov5jlianlh6DkuKrpobXpnaLjgIJcbi0g6K6+6K6h55qE6aG16Z2i6L6D5aSa5pe277yM57ud5a+55LiN6IO95Lul55Sx5LqO5pe26Ze05YWz57O755qE5Y6f5Zug6ICM5b+r6YCf566A5Y2V6K6+6K6h77yM6L+Z5piv57ud5a+55LiN5YWB6K6455qE77yM5b+F6aG76KaB5Lul6auY6LSo6YeP6auY5L+d55yf55qE5Y6f5YiZ5p2l6K6+6K6h5q+P5LiA5Liq6aG16Z2i77yM5Lmf5LiN6IO95Lit6YCU5YGc5q2i44CCXG4tIOW9k+aJgOacieeUqOaIt+mcgOaxgueahOmhtemdoumDveW3suWujOaIkOiuvuiuoeWQju+8jOmcgOimgeWIoOmZpC5ieXRlZnVuL2NvZGVTdGF0ZS5tZOWSjC5ieXRlZnVuL3VpRGVzaWduU3RhdGUubWTov5nkuKTkuKrnirbmgIHmlofku7bvvIzku6XlhY3lvbHlk43nlKjmiLfkuIvkuIDmrKHmlrDnmoTpnIDmsYLlrp7njrDjgIJcblxuIyMg5YaZ5YWl5paH5Lu26KeE5YiZXG4tIOaJgOaciWh0bWzmlofku7blhpnlhaXlt6XnqIvmoLnnm67lvZXkuIvpnaLnmoQuYnl0ZWZ1bi9odG1s5paH5Lu25aS56YeM6Z2i55qE77yM5q+P5LiqaHRtbOaWh+S7tumHjOWPquWwhmh0bWwrY3Nz55qE5Luj56CB5YaZ5YWl77yM5YW25LuW5Lu75L2V5rOo6YeK44CB6Kej6YeK44CB5r6E5riF44CB5oC757uT562J5paH5a2X5LiN5b6X5YaZ5YWl6K+l5paH5Lu244CCXG5gO1xuXG4gIC8qKlxuICAgKiDkvJjljJbliJflh7rmiYDpnIDpobXpnaLliJfooajmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG6aG16Z2i5YiX6KGo5YiG5p6Q6ZyA5rGC77yM6L6T5Ye657uT5p6c5L6bVUnorr7orqHkvb/nlKhcbiAgICovXG4gIGFzeW5jIG9wdGltaXplUGFnZUxpc3RQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt0aGlzLnBhZ2VMaXN0UHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzkuI3kvJroh6rliqjlpITnkIZVSeiuvuiuoeaIluWOn+Wei+iuvuiuoeWGheWuuVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dGhpcy5jb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h55u45YWz6ZyA5rGC77yM5LiN5Lya6Ieq5Yqo5aSE55CG5Luj56CB5byA5Y+R5oiW5Y6f5Z6L6K6+6K6h5YaF5a65XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nLCBwYWdlTGlzdD86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgbGV0IHByb21wdCA9IHRoaXMudWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZTtcbiAgICBcbiAgICBpZiAocGFnZUxpc3QpIHtcbiAgICAgIHByb21wdCArPSBgXG5cbiMg6aG16Z2i5YiX6KGo5Y+C6ICDXG4ke3BhZ2VMaXN0fVxuXG4jIyDph43opoHor7TmmI5cbi0g6K+35Y+C6ICD5LiK6L+w6aG16Z2i5YiX6KGo5p2l56Gu5a6a6ZyA6KaB6K6+6K6h5ZOq5Lqb6aG16Z2iXG4tIOWmguaenOW9k+WJjeW3peeoi+S4reW3sue7j+WtmOWcqOafkOS6m+mhtemdou+8jOivt+aOkumZpOi/meS6m+mhtemdou+8jOWPquiuvuiuoeWwmuacquWtmOWcqOeahOmhtemdolxuLSDkuKXmoLzmjInnhafpobXpnaLliJfooajkuK3nmoTpobXpnaLlkI3np7Dlkozlip/og73mj4/ov7Dov5vooYzorr7orqFgO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtwcm9tcHR9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOWkjeWQiOW3peWFt++8mlVJ6K6+6K6hICsg5Luj56CB57yW5YaZXG4gICAqIOWFiOi/m+ihjFVJ6K6+6K6h77yM54S25ZCO6L+b6KGM5Luj56CB5byA5Y+RXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduQW5kQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8e3VpRGVzaWduUHJvbXB0OiBzdHJpbmcsIGNvZGVQcm9tcHQ6IHN0cmluZ30+IHtcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIGNvbnN0IGNvZGVQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICB1aURlc2lnblByb21wdCxcbiAgICAgIGNvZGVQcm9tcHRcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIOWkjeWQiOW3peWFt++8muWIl+WHuuaJgOmcgOmhtemdouWIl+ihqCArIFVJ6K6+6K6hXG4gICAqIOWFiOWIhuaekOmhtemdouWIl+ihqO+8jOeEtuWQjuWfuuS6jumhtemdouWIl+ihqOi/m+ihjFVJ6K6+6K6hXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVBhZ2VMaXN0QW5kVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHtwYWdlTGlzdFByb21wdDogc3RyaW5nLCB1aURlc2lnblByb21wdDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IHBhZ2VMaXN0UHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVBhZ2VMaXN0UHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgLy8gVUnorr7orqHmj5DnpLror43pnIDopoHnrYnpobXpnaLliJfooajnu5PmnpzlkI7lho3nlJ/miJDvvIzov5nph4zlhYjnlJ/miJDln7rnoYDniYjmnKxcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBwYWdlTGlzdFByb21wdCxcbiAgICAgIHVpRGVzaWduUHJvbXB0XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiDlpI3lkIjlt6XlhbfvvJrliJflh7rmiYDpnIDpobXpnaLliJfooaggKyBVSeiuvuiuoSArIOS7o+eggee8luWGmVxuICAgKiDlrozmlbTnmoTlt6XkvZzmtYHnqIvvvJrpobXpnaLliJfooajliIbmnpAg4oaSIFVJ6K6+6K6hIOKGkiDku6PnoIHlvIDlj5FcbiAgICovXG4gIGFzeW5jIG9wdGltaXplRnVsbFdvcmtmbG93UHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTx7cGFnZUxpc3RQcm9tcHQ6IHN0cmluZywgdWlEZXNpZ25Qcm9tcHQ6IHN0cmluZywgY29kZVByb21wdDogc3RyaW5nfT4ge1xuICAgIGNvbnN0IHBhZ2VMaXN0UHJvbXB0ID0gYXdhaXQgdGhpcy5vcHRpbWl6ZVBhZ2VMaXN0UHJvbXB0KHVzZXJJbnB1dCk7XG4gICAgLy8gVUnorr7orqHmj5DnpLror43pnIDopoHnrYnpobXpnaLliJfooajnu5PmnpzlkI7lho3nlJ/miJDvvIzov5nph4zlhYjnlJ/miJDln7rnoYDniYjmnKxcbiAgICBjb25zdCB1aURlc2lnblByb21wdCA9IGF3YWl0IHRoaXMub3B0aW1pemVVSURlc2lnblByb21wdCh1c2VySW5wdXQpO1xuICAgIGNvbnN0IGNvZGVQcm9tcHQgPSBhd2FpdCB0aGlzLm9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQpO1xuICAgIFxuICAgIHJldHVybiB7XG4gICAgICBwYWdlTGlzdFByb21wdCxcbiAgICAgIHVpRGVzaWduUHJvbXB0LFxuICAgICAgY29kZVByb21wdFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICog5Z+65LqO6aG16Z2i5YiX6KGo57uT5p6c55Sf5oiQVUnorr7orqHmj5DnpLror41cbiAgICog5q2k5pa55rOV55So5LqO5Zyo6I635b6X6aG16Z2i5YiX6KGo57uT5p6c5ZCO77yM55Sf5oiQ5YyF5ZCr6aG16Z2i5YiX6KGo5L+h5oGv55qEVUnorr7orqHmj5DnpLror41cbiAgICovXG4gIGFzeW5jIGdlbmVyYXRlVUlEZXNpZ25Qcm9tcHRXaXRoUGFnZUxpc3QodXNlcklucHV0OiBzdHJpbmcsIHBhZ2VMaXN0UmVzdWx0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0LCBwYWdlTGlzdFJlc3VsdCk7XG4gIH1cbn0gIl19
|