| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- var __extends = (this && this.__extends) || (function () {
- var extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
- function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
- return function (d, b) {
- extendStatics(d, b);
- function __() { this.constructor = d; }
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
- };
- })();
- (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
- "use strict";
- /**This class is automatically generated by LayaAirIDE, please do not make any modifications. */
- Object.defineProperty(exports, "__esModule", { value: true });
- /*
- * 游戏初始化配置;
- */
- var GameConfig = /** @class */ (function () {
- function GameConfig() {
- }
- GameConfig.init = function () {
- var reg = Laya.ClassUtils.regClass;
- };
- GameConfig.width = 720;
- GameConfig.height = 1280;
- GameConfig.scaleMode = "fixedwidth";
- GameConfig.screenMode = "none";
- GameConfig.alignV = "top";
- GameConfig.alignH = "left";
- GameConfig.startScene = "Rank.scene";
- GameConfig.sceneRoot = "";
- GameConfig.debug = false;
- GameConfig.stat = false;
- GameConfig.physicsDebug = false;
- GameConfig.exportSceneToJson = true;
- return GameConfig;
- }());
- exports.default = GameConfig;
- GameConfig.init();
- },{}],2:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var GameConfig_1 = require("./GameConfig");
- var Rank_1 = require("./view/Rank");
- var RANK_TYPE = /** @class */ (function () {
- function RANK_TYPE() {
- }
- RANK_TYPE.LIST = "rankList"; //排行榜
- RANK_TYPE.TOP1 = "rankTop1"; //即将超越小
- RANK_TYPE.TOP2 = "rankTop2"; //即将超越大
- RANK_TYPE.END1 = "rankEnd1"; //即将超越结算
- RANK_TYPE.END2 = "rankEnd2"; //结算排行榜
- RANK_TYPE.RIGHT = "rankRight"; //右边的排行榜
- return RANK_TYPE;
- }());
- console.log("0000000");
- // import BigRank from "./view/BigRank";
- var Main = /** @class */ (function () {
- function Main() {
- //设置子域
- //console.log("0000000");
- Laya.isWXOpenDataContext = true;
- Laya.isWXPosMsg = true;
- //根据IDE设置初始化引擎
- Laya.init(GameConfig_1.default.width, GameConfig_1.default.height, false);
- Laya.stage.scaleMode = GameConfig_1.default.scaleMode;
- Laya.stage.screenMode = GameConfig_1.default.screenMode;
- Laya.stage.alignV = GameConfig_1.default.alignV;
- Laya.stage.alignH = GameConfig_1.default.alignH;
- this.onComplete();
- }
- Main.prototype.onComplete = function () {
- console.log("接受消息");
- var rank = Rank_1.default.getRank();
- wx.onMessage(function (message) {
- rank.type = message.type;
- if (message.cmd == "show") {
- //console.log("接受显示消息");
- rank.curScore = message.curScore;
- rank.openid = message.openid;
- // rank.type= RANK_TYPE.RIGHT
- // rank.type= RANK_TYPE.LIST
- rank[rank.type].visible = true;
- if (message.posx) {
- rank[rank.type].x = message.posx;
- }
- if (message.posy) {
- rank[rank.type].y = message.posy;
- }
- if (rank.type == RANK_TYPE.LIST) { //排行榜
- //console.log("接受显示列表消息");
- rank.refreshRankList();
- }
- else if (rank.type == RANK_TYPE.TOP1) { //即将超越小
- rank.main_rankTop1.visible = true;
- rank.sub_rankTop1.visible = true;
- rank.refreshRankTop1();
- }
- else if (rank.type == RANK_TYPE.TOP2) { //即将超越大
- rank.main_rankTop2.visible = true;
- rank.sub_rankTop2.visible = true;
- rank.refreshRankTop2();
- }
- else if (rank.type == RANK_TYPE.END1) { //即将超越结算
- rank.refreshRankEnd1();
- }
- else if (rank.type == RANK_TYPE.END2) { //结算排行榜
- rank.refreshRankEnd2();
- }
- else if (rank.type == RANK_TYPE.RIGHT) { //右边的排行榜
- //console.log("接受显示右边消息");
- rank.refreshRankRight();
- }
- }
- else if (message.cmd == "hide") {
- //console.log("接受影藏消息");
- rank[rank.type].visible = false;
- }
- else if (message.cmd == "left") {
- rank.onLeft();
- }
- else if (message.cmd == "right") {
- rank.onRight();
- }
- });
- // console.log("aaaaaaaaaaaaaaaaaaaa");
- //
- // wx["onMessage"]((message) => {
- // });
- };
- return Main;
- }());
- //激活启动类
- new Main();
- },{"./GameConfig":1,"./view/Rank":4}],3:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- /**This class is automatically generated by LayaAirIDE, please do not make any modifications. */
- var View = Laya.View;
- var REG = Laya.ClassUtils.regClass;
- var ui;
- (function (ui) {
- var RankUI = /** @class */ (function (_super) {
- __extends(RankUI, _super);
- function RankUI() {
- return _super.call(this) || this;
- }
- RankUI.prototype.createChildren = function () {
- _super.prototype.createChildren.call(this);
- this.createView(RankUI.uiView);
- };
- RankUI.uiView = { "type": "View", "props": { "y": 0, "x": 0, "width": 720, "mouseThrough": true, "height": 1280 }, "compId": 1, "child": [{ "type": "Box", "props": { "width": 720, "mouseThrough": true, "height": 1280, "centerY": 0, "centerX": 0 }, "compId": 78, "child": [{ "type": "Box", "props": { "y": 0, "x": 0, "width": 200, "visible": false, "var": "rankTop1", "height": 120 }, "compId": 47, "child": [{ "type": "Image", "props": { "y": 35, "x": 0, "visible": false, "var": "main_rankTop1", "skin": "rank/rect1.png", "sizeGrid": "20,20,20,20", "height": 83 }, "compId": 48, "child": [{ "type": "Text", "props": { "y": -18, "x": 35, "text": "查看完整排行榜>>", "fontSize": 15, "font": "SimHei", "color": "#ffffff", "runtime": "laya.display.Text" }, "compId": 49 }] }, { "type": "Box", "props": { "y": 39, "x": 0, "width": 190, "visible": false, "var": "sub_rankTop1", "height": 83 }, "compId": 50, "child": [{ "type": "Image", "props": { "y": 2, "x": 9, "width": 70, "skin": "rank/default.png", "name": "iconHead", "height": 70 }, "compId": 51 }, { "type": "Text", "props": { "y": 0, "x": 83, "wordWrap": true, "width": 99, "text": "虚位以待", "name": "nickName", "height": 53, "fontSize": 16, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 53 }, { "type": "Text", "props": { "y": 54, "x": 83, "width": 96, "text": "得分:0", "name": "txtExp", "height": 22, "fontSize": 15, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 54 }] }] }, { "type": "Box", "props": { "y": 0, "x": 0, "width": 300, "visible": false, "var": "rankTop2", "height": 200 }, "compId": 55, "child": [{ "type": "Image", "props": { "y": 43, "x": 0, "visible": false, "var": "main_rankTop2", "skin": "rank/rect2.png" }, "compId": 56, "child": [{ "type": "Text", "props": { "y": 120, "x": 64, "text": "查看完整排行榜>>", "fontSize": 22, "font": "SimHei", "color": "#000000", "runtime": "laya.display.Text" }, "compId": 57 }] }, { "type": "Box", "props": { "y": 47, "x": -1, "width": 293, "visible": false, "var": "sub_rankTop2", "height": 135 }, "compId": 58, "child": [{ "type": "Image", "props": { "y": 11, "x": 186, "width": 90, "skin": "rank/default.png", "name": "iconHead", "height": 90 }, "compId": 59 }, { "type": "Text", "props": { "y": 39, "x": 13, "wordWrap": true, "width": 163, "text": "虚位以待", "name": "nickName", "height": 48, "fontSize": 20, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 60 }, { "type": "Text", "props": { "y": 89, "x": 20, "width": 148, "text": "得分:0", "name": "txtExp", "height": 22, "fontSize": 20, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 61 }, { "type": "Text", "props": { "y": 10, "x": 47, "width": 96, "text": "即将超越", "height": 27, "fontSize": 20, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 62 }] }] }, { "type": "Box", "props": { "y": 0, "x": 0, "width": 720, "visible": false, "var": "rankEnd1", "height": 1280 }, "compId": 63, "child": [{ "type": "Image", "props": { "width": 580, "visible": false, "var": "main_rankEnd1", "skin": "rank/rect2.png", "sizeGrid": "20,20,20,20", "centerY": 0, "centerX": 0 }, "compId": 64, "child": [{ "type": "Text", "props": { "y": 43, "x": 31, "width": 168, "text": "即将超越", "height": 54, "fontSize": 40, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 70 }] }, { "type": "Box", "props": { "width": 575, "visible": false, "var": "sub_rankEnd1", "height": 135, "centerY": 0, "centerX": 0 }, "compId": 66, "child": [{ "type": "Image", "props": { "width": 100, "skin": "rank/default.png", "name": "iconHead", "height": 100, "centerY": 0, "centerX": -22 }, "compId": 67 }, { "type": "Text", "props": { "y": 21, "x": 323, "wordWrap": true, "width": 246, "text": "虚位以待", "name": "nickName", "height": 70, "fontSize": 30, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 68 }, { "type": "Text", "props": { "y": 91, "x": 345, "width": 206, "text": "得分:0", "name": "txtExp", "height": 41, "fontSize": 30, "font": "Microsoft YaHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 69 }] }] }, { "type": "Box", "props": { "y": 194, "x": 604, "width": 173, "visible": false, "var": "rankRight", "height": 224 }, "compId": 71, "child": [{ "type": "Image", "props": { "y": 2, "x": 170, "visible": false, "var": "bgRankRight1", "skin": "rank/rect3.png", "scaleX": -1 }, "compId": 72, "child": [{ "type": "Image", "props": { "y": 4, "x": 76, "width": 50, "var": "rankRight1", "skin": "rank/default.png", "height": 50 }, "compId": 75 }] }, { "type": "Image", "props": { "y": 81, "x": 190, "visible": false, "var": "bgRankRight2", "skin": "rank/rect3.png", "scaleX": -1 }, "compId": 73, "child": [{ "type": "Image", "props": { "y": 4, "x": 76, "width": 50, "var": "rankRight2", "skin": "rank/default.png", "height": 50 }, "compId": 76 }] }, { "type": "Image", "props": { "y": 159, "x": 190, "visible": false, "var": "bgRankRight3", "skin": "rank/rect3.png", "scaleX": -1 }, "compId": 74, "child": [{ "type": "Image", "props": { "y": 4, "x": 76, "width": 50, "var": "rankRight3", "skin": "rank/default.png", "height": 50 }, "compId": 77 }] }] }, { "type": "Box", "props": { "y": 638, "width": 720, "visible": false, "var": "rankEnd2", "height": 229, "centerX": 0 }, "compId": 79, "child": [{ "type": "Image", "props": { "y": 33, "x": 155, "width": 100, "var": "rankEnd2Head1", "skin": "rank/default.png", "height": 100 }, "compId": 80, "child": [{ "type": "Text", "props": { "y": 107, "x": -51, "width": 206, "text": "虚位以待", "name": "name", "height": 23, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 81 }, { "type": "Text", "props": { "y": 136, "x": -51, "width": 206, "text": "得分:0", "name": "score", "height": 29, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 82 }] }, { "type": "Image", "props": { "y": 33, "x": 311, "width": 100, "var": "rankEnd2Head2", "skin": "rank/default.png", "height": 100 }, "compId": 86, "child": [{ "type": "Text", "props": { "y": 107, "x": -51, "width": 206, "text": "虚位以待", "name": "name", "height": 23, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 87 }, { "type": "Text", "props": { "y": 136, "x": -51, "width": 206, "text": "得分:0", "name": "score", "height": 29, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 88 }] }, { "type": "Image", "props": { "y": 33, "x": 467, "width": 100, "var": "rankEnd2Head3", "skin": "rank/default.png", "height": 100 }, "compId": 83, "child": [{ "type": "Text", "props": { "y": 107, "x": -51, "width": 206, "text": "虚位以待", "name": "name", "height": 23, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 84 }, { "type": "Text", "props": { "y": 136, "x": -51, "width": 206, "text": "得分:0", "name": "score", "height": 29, "fontSize": 25, "font": "SimHei", "color": "#000000", "align": "center", "runtime": "laya.display.Text" }, "compId": 85 }] }] }, { "type": "Box", "props": { "y": 0, "x": 0, "width": 720, "visible": false, "var": "rankList", "mouseThrough": true, "height": 1280 }, "compId": 4, "child": [{ "type": "Image", "props": { "y": 76, "width": 560, "var": "main_rankList", "skin": "rank/bg.png", "height": 810, "centerX": 0 }, "compId": 3, "child": [{ "type": "Image", "props": { "y": 15, "x": 174, "skin": "rank/titleRank.png", "centerX": 0 }, "compId": 35 }, { "type": "Image", "props": { "y": 713, "x": 84, "var": "btnLeft", "skin": "rank/btnLeft.png" }, "compId": 43 }, { "type": "Image", "props": { "y": 713, "x": 380, "var": "btnRight", "skin": "rank/btnRight.png" }, "compId": 44 }, { "type": "Image", "props": { "y": 897, "x": 280, "width": 385, "var": "btnBack", "skin": "rank/button.png", "height": 120, "centerX": 0, "anchorY": 0.5, "anchorX": 0.5 }, "compId": 45, "child": [{ "type": "Image", "props": { "skin": "rank/txtBack.png", "centerY": -12, "centerX": 0 }, "compId": 46 }] }, { "type": "Text", "props": { "y": 213, "x": 93, "text": "一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一", "name": "line", "runtime": "laya.display.Text" }, "compId": 12 }, { "type": "Text", "props": { "y": 325, "x": 93, "text": "一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一", "name": "line", "runtime": "laya.display.Text" }, "compId": 20 }, { "type": "Text", "props": { "y": 438, "x": 93, "text": "一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一", "name": "line", "runtime": "laya.display.Text" }, "compId": 27 }, { "type": "Text", "props": { "y": 550, "x": 93, "text": "一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一", "name": "line", "runtime": "laya.display.Text" }, "compId": 34 }] }, { "type": "Box", "props": { "y": 205, "x": 95, "width": 530, "var": "sub_rankList", "height": 434 }, "compId": 13, "child": [{ "type": "Box", "props": { "y": -7, "x": 0, "width": 530, "visible": false, "var": "rankCell0", "height": 100 }, "compId": 5, "child": [{ "type": "Image", "props": { "y": 9, "x": 79, "width": 80, "skin": "rank/default.png", "name": "iconHead", "height": 80 }, "compId": 6 }, { "type": "Image", "props": { "y": 30, "x": 28, "visible": true, "skin": "rank/rank1.png", "name": "iconRank" }, "compId": 7 }, { "type": "Text", "props": { "y": 28, "x": 172, "wordWrap": true, "width": 206, "text": "虚位以待", "name": "nickName", "height": 61, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 8 }, { "type": "Text", "props": { "y": 34, "x": 27, "wordWrap": false, "width": 42, "text": "1", "name": "txtRank", "height": 36, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 9 }, { "type": "Text", "props": { "y": 28, "x": 385, "width": 128, "text": "得分:0", "name": "txtExp", "height": 33, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 10 }] }, { "type": "Box", "props": { "y": 105, "x": 0, "width": 530, "visible": false, "var": "rankCell1", "height": 100 }, "compId": 14, "child": [{ "type": "Image", "props": { "y": 9, "x": 79, "width": 80, "skin": "rank/default.png", "name": "iconHead", "height": 80 }, "compId": 15 }, { "type": "Image", "props": { "y": 30, "x": 28, "visible": true, "skin": "rank/rank2.png", "name": "iconRank" }, "compId": 16 }, { "type": "Text", "props": { "y": 28, "x": 172, "wordWrap": true, "width": 206, "text": "虚位以待", "name": "nickName", "height": 61, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 17 }, { "type": "Text", "props": { "y": 34, "x": 27, "wordWrap": false, "width": 42, "text": "2", "name": "txtRank", "height": 36, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 18 }, { "type": "Text", "props": { "y": 28, "x": 385, "width": 128, "text": "得分:0", "name": "txtExp", "height": 33, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 19 }] }, { "type": "Box", "props": { "y": 218, "x": 0, "width": 530, "visible": false, "var": "rankCell2", "height": 100 }, "compId": 21, "child": [{ "type": "Image", "props": { "y": 9, "x": 79, "width": 80, "skin": "rank/default.png", "name": "iconHead", "height": 80 }, "compId": 22 }, { "type": "Image", "props": { "y": 30, "x": 28, "visible": true, "skin": "rank/rank3.png", "name": "iconRank" }, "compId": 23 }, { "type": "Text", "props": { "y": 28, "x": 172, "wordWrap": true, "width": 206, "text": "虚位以待", "name": "nickName", "height": 61, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 24 }, { "type": "Text", "props": { "y": 34, "x": 27, "wordWrap": false, "width": 42, "text": "3", "name": "txtRank", "height": 36, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 25 }, { "type": "Text", "props": { "y": 28, "x": 385, "width": 128, "text": "得分:0", "name": "txtExp", "height": 33, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 26 }] }, { "type": "Box", "props": { "y": 330, "x": 0, "width": 530, "visible": false, "var": "rankCell3", "height": 100 }, "compId": 28, "child": [{ "type": "Image", "props": { "y": 9, "x": 79, "width": 80, "skin": "rank/default.png", "name": "iconHead", "height": 80 }, "compId": 29 }, { "type": "Image", "props": { "y": 30, "x": 28, "visible": false, "skin": "rank/rank1.png", "name": "iconRank" }, "compId": 30 }, { "type": "Text", "props": { "y": 28, "x": 172, "wordWrap": true, "width": 206, "text": "虚位以待", "name": "nickName", "height": 61, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 31 }, { "type": "Text", "props": { "y": 34, "x": 27, "wordWrap": false, "width": 42, "text": "4", "name": "txtRank", "height": 36, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 32 }, { "type": "Text", "props": { "y": 28, "x": 385, "width": 128, "text": "得分:0", "name": "txtExp", "height": 33, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 33 }] }, { "type": "Box", "props": { "y": 463, "x": 0, "width": 530, "visible": false, "var": "rankSelf", "height": 100 }, "compId": 36, "child": [{ "type": "Image", "props": { "y": 9, "x": 79, "width": 80, "skin": "rank/default.png", "name": "iconHead", "height": 80 }, "compId": 37 }, { "type": "Image", "props": { "y": 30, "x": 28, "visible": false, "skin": "rank/rank1.png", "name": "iconRank" }, "compId": 38 }, { "type": "Text", "props": { "y": 28, "x": 172, "wordWrap": true, "width": 206, "text": "虚位以待", "name": "nickName", "height": 61, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 39 }, { "type": "Text", "props": { "y": 34, "x": 27, "wordWrap": false, "width": 42, "text": "4", "name": "txtRank", "height": 36, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "center", "runtime": "laya.display.Text" }, "compId": 40 }, { "type": "Text", "props": { "y": 28, "x": 385, "width": 128, "text": "得分:0", "name": "txtExp", "height": 33, "fontSize": 25, "font": "Microsoft YaHei", "color": "#ffffff", "align": "left", "runtime": "laya.display.Text" }, "compId": 41 }] }] }] }] }], "loadList": ["rank/rect1.png", "rank/default.png", "rank/rect2.png", "rank/rect3.png", "rank/bg.png", "rank/titleRank.png", "rank/btnLeft.png", "rank/btnRight.png", "rank/button.png", "rank/txtBack.png", "rank/rank1.png", "rank/rank2.png", "rank/rank3.png"], "loadList3D": [] };
- return RankUI;
- }(View));
- ui.RankUI = RankUI;
- REG("ui.RankUI", RankUI);
- })(ui = exports.ui || (exports.ui = {}));
- },{}],4:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- var layaMaxUI_1 = require("../ui/layaMaxUI");
- var WeixinAPI_1 = require("./WeixinAPI");
- /**Created by the LayaAirIDE*/
- var Rank = /** @class */ (function (_super) {
- __extends(Rank, _super);
- function Rank() {
- var _this = _super.call(this) || this;
- _this.dataList = null;
- _this.curPage = 0;
- _this.type = "";
- _this.curScore = 0;
- _this.openid = "";
- return _this;
- // let sp:Laya.Sprite = new Laya.Sprite();
- // sp.graphics.drawCircle(25, 25, 25, "#FF0000");
- // this.rankRight1.mask = sp;
- // sp = new Laya.Sprite();
- // sp.graphics.drawCircle(25, 25, 25, "#FF0000");
- // this.rankRight2.mask = sp;
- // sp = new Laya.Sprite();
- // sp.graphics.drawCircle(25, 25, 25, "#FF0000");
- // this.rankRight3.mask = sp;
- }
- Rank.getRank = function () {
- if (this.thiz == null) {
- this.thiz = new Rank();
- Laya.stage.addChild(this.thiz);
- }
- return this.thiz;
- };
- //=============================排行榜=============================
- Rank.prototype.onLeft = function () {
- if (this.curPage <= 0) {
- return;
- }
- this.initPage(--this.curPage);
- };
- Rank.prototype.onRight = function () {
- var totalPage = Math.ceil(this.dataList.length / 4);
- if (this.curPage >= totalPage - 1) {
- return;
- }
- this.initPage(++this.curPage);
- };
- Rank.prototype.refreshRankList = function () {
- var _this = this;
- WeixinAPI_1.default.getRank(function (dataList) {
- //console.log("接受显示列表消息-------------");
- //console.log(dataList);
- _this.dataList = dataList;
- _this.initPage(_this.curPage);
- });
- };
- Rank.prototype.initPage = function (page) {
- this.rankCell0.visible = false;
- this.rankCell1.visible = false;
- this.rankCell2.visible = false;
- this.rankCell3.visible = false;
- var count = Math.min(page * 4 + 4, this.dataList.length);
- for (var i = page * 4; i < count; ++i) {
- var data_1 = this.dataList[i];
- this.setCell(this["rankCell" + i % 4], data_1);
- }
- var data = this.getData(this.openid);
- if (data) {
- this.setCell(this.rankSelf, data);
- }
- };
- Rank.prototype.setCell = function (cell, data) {
- cell.visible = true;
- var iconRank = cell.getChildByName("iconRank");
- var iconHead = cell.getChildByName("iconHead");
- var txtRank = cell.getChildByName("txtRank");
- var nickName = cell.getChildByName("nickName");
- var txtExp = cell.getChildByName("txtExp");
- iconRank.visible = false;
- if (data.rank <= 3) {
- iconRank.visible = true;
- iconRank.skin = "rank/rank" + data.rank + ".png";
- }
- iconHead.skin = "" + data.avatarUrl;
- txtRank.text = "" + data.rank;
- nickName.text = "" + data.nickname;
- txtExp.text = "" + data.score;
- };
- Rank.prototype.getData = function (openid) {
- for (var i = 0; i < this.dataList.length; ++i) {
- var data = this.dataList[i];
- if (data.openid == openid) {
- return data;
- }
- }
- return null;
- };
- Rank.prototype.reSort = function () {
- var data = this.getData(this.openid);
- if (data) {
- data.score = this.curScore;
- }
- this.dataList.sort(function (a, b) { return b.score - a.score; });
- for (var i = 0, len = this.dataList.length; i < len; ++i) {
- this.dataList[i].rank = i + 1;
- }
- };
- Rank.prototype.refreshBeyond = function (ui) {
- var _this = this;
- WeixinAPI_1.default.getRank(function (dataList) {
- _this.dataList = dataList;
- _this.reSort();
- var selfIndex = _this.dataList.length - 1;
- var data = _this.getData(_this.openid);
- if (data) {
- selfIndex = data.rank - 1;
- }
- var beyondData = _this.dataList[selfIndex - 1];
- if (beyondData == null) {
- beyondData = _this.dataList[selfIndex];
- }
- if (beyondData) {
- var iconHead = ui.getChildByName("iconHead");
- var nickName = ui.getChildByName("nickName");
- var txtExp = ui.getChildByName("txtExp");
- iconHead.skin = "" + beyondData.avatarUrl;
- nickName.text = "" + beyondData.nickname;
- txtExp.text = "" + beyondData.score;
- }
- });
- };
- //即将超越小
- Rank.prototype.refreshRankTop1 = function () {
- this.refreshBeyond(this.sub_rankTop1);
- };
- //即将超越大
- Rank.prototype.refreshRankTop2 = function () {
- this.refreshBeyond(this.sub_rankTop2);
- };
- //即将超越结算
- Rank.prototype.refreshRankEnd1 = function () {
- this.refreshBeyond(this.sub_rankEnd1);
- };
- Rank.prototype.refreshRankEnd = function (head1, head2, head3) {
- };
- //结算排行榜
- Rank.prototype.refreshRankEnd2 = function () {
- var _this = this;
- var head1 = this.rankEnd2Head1;
- var head2 = this.rankEnd2Head2;
- var head3 = this.rankEnd2Head3;
- head1.visible = false;
- head2.visible = false;
- head3.visible = false;
- WeixinAPI_1.default.getRank(function (dataList) {
- _this.dataList = dataList;
- _this.reSort();
- var selfIndex = _this.dataList.length - 1;
- var data = _this.getData(_this.openid);
- if (data) {
- selfIndex = data.rank - 1;
- }
- var func = function (data1, data2, data3) {
- if (data1) {
- head1.visible = true;
- head1.skin = data1.avatarUrl;
- var name_1 = head1.getChildByName("name");
- var score = head1.getChildByName("score");
- name_1.text = "" + data1.nickname;
- score.text = "" + data1.score;
- }
- if (data2) {
- head2.visible = true;
- head2.skin = data2.avatarUrl;
- var name_2 = head2.getChildByName("name");
- var score = head2.getChildByName("score");
- name_2.text = "" + data2.nickname;
- score.text = "" + data2.score;
- }
- if (data3) {
- head3.visible = true;
- head3.skin = data3.avatarUrl;
- var name_3 = head3.getChildByName("name");
- var score = head3.getChildByName("score");
- name_3.text = "" + data3.nickname;
- score.text = "" + data3.score;
- }
- };
- if (selfIndex == _this.dataList.length - 1) {
- //最后一名
- var data1 = _this.dataList[selfIndex - 2];
- var data2 = _this.dataList[selfIndex - 1];
- var data3 = _this.dataList[selfIndex];
- func(data1, data2, data3);
- }
- else if (selfIndex == 0) {
- //第一名
- var data1 = _this.dataList[selfIndex];
- var data2 = _this.dataList[selfIndex + 1];
- var data3 = _this.dataList[selfIndex + 2];
- func(data1, data2, data3);
- }
- else {
- var data1 = _this.dataList[selfIndex - 1];
- var data2 = _this.dataList[selfIndex];
- var data3 = _this.dataList[selfIndex + 1];
- func(data1, data2, data3);
- }
- });
- };
- Rank.prototype.refreshRankRight = function () {
- var _this = this;
- this.bgRankRight1.visible = false;
- this.bgRankRight1.x = 190;
- this.bgRankRight2.visible = false;
- this.bgRankRight2.x = 190;
- this.bgRankRight3.visible = false;
- this.bgRankRight3.x = 190;
- WeixinAPI_1.default.getRank(function (dataList) {
- //console.log("接受显示右边消息-------------");
- //console.log(dataList);
- _this.dataList = dataList;
- _this.reSort();
- var selfIndex = _this.dataList.length - 1;
- var data = _this.getData(_this.openid);
- if (data) {
- selfIndex = data.rank - 1;
- }
- var func = function (data1, data2, data3) {
- if (data1) {
- _this.bgRankRight1.visible = true;
- //console.log( data1.avatarUrl);
- _this.rankRight1.skin = data1.avatarUrl;
- }
- if (data2) {
- //console.log( data1.avatarUrl);
- _this.bgRankRight2.visible = true;
- _this.rankRight2.skin = data2.avatarUrl;
- }
- if (data3) {
- //console.log( data1.avatarUrl);
- _this.bgRankRight3.visible = true;
- _this.rankRight3.skin = data3.avatarUrl;
- }
- };
- if (selfIndex == _this.dataList.length - 1) {
- //最后一名
- _this.bgRankRight3.x = 170;
- var data1 = _this.dataList[selfIndex - 2];
- var data2 = _this.dataList[selfIndex - 1];
- var data3 = _this.dataList[selfIndex];
- //console.log( data1.avatarUrl);
- func(data1, data2, data3);
- }
- else if (selfIndex == 0) {
- //第一名
- _this.bgRankRight1.x = 170;
- var data1 = _this.dataList[selfIndex];
- var data2 = _this.dataList[selfIndex + 1];
- var data3 = _this.dataList[selfIndex + 2];
- //console.log( data1.avatarUrl);
- func(data1, data2, data3);
- }
- else {
- _this.bgRankRight2.x = 170;
- var data1 = _this.dataList[selfIndex - 1];
- var data2 = _this.dataList[selfIndex];
- var data3 = _this.dataList[selfIndex + 1];
- //console.log( data1.avatarUrl);
- func(data1, data2, data3);
- }
- });
- };
- Rank.thiz = null;
- return Rank;
- }(layaMaxUI_1.ui.RankUI));
- exports.default = Rank;
- },{"../ui/layaMaxUI":3,"./WeixinAPI":5}],5:[function(require,module,exports){
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- // 微信API
- // [{"openid":"oc9M","nickname":"kad","avatarUrl":"https:","KVDataList":[{"key":"score","value":"890"}]}]
- var WeixinAPI = /** @class */ (function () {
- function WeixinAPI() {
- }
- // 获取排名
- WeixinAPI.parseData = function (callback, resList) {
- if (resList == null) {
- return;
- }
- var array = [];
- for (var i in resList) {
- var oneData = resList[i];
- for (var j in oneData.KVDataList) {
- var item = oneData.KVDataList[j];
- if (item.key == "score") {
- var values = item.value.split("_");
- array.push({
- nickname: oneData.nickname,
- avatarUrl: oneData.avatarUrl,
- openid: oneData.openid,
- score: parseInt(values[0] || "0"),
- other: parseInt(values[1] || "0")
- });
- break;
- }
- }
- }
- array.sort(function (a, b) {
- return b.score - a.score;
- });
- for (var i = 0, len = array.length; i < len; ++i) {
- array[i].rank = i + 1;
- }
- callback(array);
- };
- WeixinAPI.getRank = function (callback) {
- var _this = this;
- wx.getFriendCloudStorage({
- keyList: ['score'],
- success: function (res) {
- _this.parseData(callback, res.data);
- }
- });
- };
- // 获取群排名
- WeixinAPI.getGroupRank = function (callback, ticket) {
- // wx.getGroupCloudStorage({
- // keyList: ['score'], // 你要获取的、托管在微信后台的key
- // shareTicket:ticket,
- // success: (res) => {
- // this.parseData(callback, res.data);
- // }
- // });
- };
- return WeixinAPI;
- }());
- exports.default = WeixinAPI;
- },{}]},{},[2])
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NvZnQvTGF5YUFpcklERTIuMC4yL3Jlc291cmNlcy9hcHAvbm9kZV9tb2R1bGVzL2Jyb3dzZXItcGFjay9fcHJlbHVkZS5qcyIsInNyYy9HYW1lQ29uZmlnLnRzIiwic3JjL01haW4udHMiLCJzcmMvdWkvbGF5YU1heFVJLnRzIiwic3JjL3ZpZXcvUmFuay50cyIsInNyYy92aWV3L1dlaXhpbkFQSS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQ1ZBLGdHQUFnRzs7QUFFaEc7O0VBRUU7QUFDRjtJQWFJO0lBQWMsQ0FBQztJQUNSLGVBQUksR0FBWDtRQUNJLElBQUksR0FBRyxHQUFhLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDO0lBRWpELENBQUM7SUFoQk0sZ0JBQUssR0FBUSxHQUFHLENBQUM7SUFDakIsaUJBQU0sR0FBUSxJQUFJLENBQUM7SUFDbkIsb0JBQVMsR0FBUSxZQUFZLENBQUM7SUFDOUIscUJBQVUsR0FBUSxNQUFNLENBQUM7SUFDekIsaUJBQU0sR0FBUSxLQUFLLENBQUM7SUFDcEIsaUJBQU0sR0FBUSxNQUFNLENBQUM7SUFDckIscUJBQVUsR0FBSyxZQUFZLENBQUM7SUFDNUIsb0JBQVMsR0FBUSxFQUFFLENBQUM7SUFDcEIsZ0JBQUssR0FBUyxLQUFLLENBQUM7SUFDcEIsZUFBSSxHQUFTLEtBQUssQ0FBQztJQUNuQix1QkFBWSxHQUFTLEtBQUssQ0FBQztJQUMzQiw0QkFBaUIsR0FBUyxJQUFJLENBQUM7SUFNMUMsaUJBQUM7Q0FsQkQsQUFrQkMsSUFBQTtrQkFsQm9CLFVBQVU7QUFtQi9CLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzs7OztBQ3hCbEIsMkNBQXNDO0FBQ3RDLG9DQUErQjtBQUUvQjtJQUFBO0lBT0EsQ0FBQztJQU5jLGNBQUksR0FBRyxVQUFVLENBQUMsQ0FBRSxLQUFLO0lBQ3pC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QUFlLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFVBQVUsRUFBQyxhQUFhLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxXQUFXLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsZUFBZSxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsV0FBVyxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsSUFBSSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFVBQVUsRUFBQyxhQUFhLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxNQUFNLEVBQUMsZ0JBQWdCLEVBQUMsUUFBUSxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsS0FBSyxFQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxjQUFjLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQyxZQUFZLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxLQUFLLEVBQUMsWUFBWSxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsQ0FBQyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsZUFBZSxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxlQUFlLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxjQUFjLEVBQUMsSUFBSSxFQUFDLFFBQVEsRUFBQyxJQUFJLEVBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLGVBQWUsRUFBQyxNQUFNLEVBQUMsYUFBYSxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsb0JBQW9CLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxNQUFNLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLEtBQUssRUFBQyxTQUFTLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBQyxTQUFTLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxHQUFHLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsU0FBUyxFQUFDLENBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxDQUFDLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtDQUFrQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsS0FBSyxFQUFDLGNBQWMsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxXQUFXLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEVBQUMsUUFBUSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLFdBQVcsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxJQUFJLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsU0FBUyxFQUFDLEtBQUssRUFBQyxLQUFLLEVBQUMsV0FBVyxFQUFDLFFBQVEsRUFBQyxHQUFHLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxDQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsQ0FBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsU0FBUyxFQUFDLElBQUksRUFBQyxNQUFNLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLFVBQVUsRUFBQyxJQUFJLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLFFBQVEsRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFFBQVEsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLENBQUMsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLEtBQUssRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLEtBQUssRUFBQyxXQUFXLEVBQUMsUUFBUSxFQUFDLEdBQUcsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsT0FBTyxFQUFDLENBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxDQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxTQUFTLEVBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsVUFBVSxFQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGlCQUFpQixFQUFDLE9BQU8sRUFBQyxTQUFTLEVBQUMsT0FBTyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsbUJBQW1CLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsUUFBUSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsQ0FBQyxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsS0FBSyxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxPQUFPLEVBQUMsR0FBRyxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsS0FBSyxFQUFDLFVBQVUsRUFBQyxRQUFRLEVBQUMsR0FBRyxFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxPQUFPLEVBQUMsQ0FBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxFQUFDLGtCQUFrQixFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLFNBQVMsRUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLGdCQUFnQixFQUFDLE1BQU0sRUFBQyxVQUFVLEVBQUMsRUFBQyxRQUFRLEVBQUMsRUFBRSxFQUFDLEVBQUMsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE9BQU8sRUFBQyxFQUFDLEdBQUcsRUFBQyxFQUFFLEVBQUMsR0FBRyxFQUFDLEdBQUcsRUFBQyxVQUFVLEVBQUMsSUFBSSxFQUFDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsVUFBVSxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsVUFBVSxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsaUJBQWlCLEVBQUMsT0FBTyxFQUFDLFNBQVMsRUFBQyxPQUFPLEVBQUMsTUFBTSxFQUFDLFNBQVMsRUFBQyxtQkFBbUIsRUFBQyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUMsRUFBQyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUMsT0FBTyxFQUFDLEVBQUMsR0FBRyxFQUFDLEVBQUUsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLFVBQVUsRUFBQyxLQUFLLEVBQUMsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLEVBQUMsR0FBRyxFQUFDLE1BQU0sRUFBQyxTQUFTLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxRQUFRLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxFQUFDLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxPQUFPLEVBQUMsRUFBQyxHQUFHLEVBQUMsRUFBRSxFQUFDLEdBQUcsRUFBQyxHQUFHLEVBQUMsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxVQUFVLEVBQUMsRUFBRSxFQUFDLE1BQU0sRUFBQyxpQkFBaUIsRUFBQyxPQUFPLEVBQUMsU0FBUyxFQUFDLE9BQU8sRUFBQyxNQUFNLEVBQUMsU0FBUyxFQUFDLG1CQUFtQixFQUFDLEVBQUMsUUFBUSxFQUFDLEVBQUUsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLFVBQVUsRUFBQyxDQUFDLGdCQUFnQixFQUFDLGtCQUFrQixFQUFDLGdCQUFnQixFQUFDLGdCQUFnQixFQUFDLGFBQWEsRUFBQyxvQkFBb0IsRUFBQyxrQkFBa0IsRUFBQyxtQkFBbUIsRUFBQyxpQkFBaUIsRUFBQyxrQkFBa0IsRUFBQyxnQkFBZ0IsRUFBQyxnQkFBZ0Is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QUFxQixDQUFDO1lBQ3JCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQztZQUNsQixPQUFPLEVBQUUsVUFBQyxHQUFHO2dCQUNULEtBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxDQUFDO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7SUFDTSxzQkFBWSxHQUExQixVQUEyQixRQUFpQixFQUFFLE1BQWE7UUFDdkQsNEJBQTRCO1FBQzVCLCtDQUErQztRQUMvQywwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLDhDQUE4QztRQUM5QyxRQUFRO1FBQ1IsTUFBTTtJQUNWLENBQUM7SUFDTCxnQkFBQztBQUFELENBdkRBLEFBdURDLElBQUEiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2V4dGVuZHMgPSAodGhpcyAmJiB0aGlzLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciBleHRlbmRTdGF0aWNzID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8XHJcbiAgICAgICAgKHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24gKGQsIGIpIHsgZC5fX3Byb3RvX18gPSBiOyB9KSB8fFxyXG4gICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKGIuaGFzT3duUHJvcGVydHkocCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XHJcbiAgICAgICAgZXh0ZW5kU3RhdGljcyhkLCBiKTtcclxuICAgICAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XHJcbiAgICB9O1xyXG59KSgpO1xyXG4oZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsbix0KXtmdW5jdGlvbiBvKGksZil7aWYoIW5baV0pe2lmKCFlW2ldKXt2YXIgYz1cImZ1bmN0aW9uXCI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFmJiZjKXJldHVybiBjKGksITApO2lmKHUpcmV0dXJuIHUoaSwhMCk7dmFyIGE9bmV3IEVycm9yKFwiQ2Fubm90IGZpbmQgbW9kdWxlICdcIitpK1wiJ1wiKTt0aHJvdyBhLmNvZGU9XCJNT0RVTEVfTk9UX0ZPVU5EXCIsYX12YXIgcD1uW2ldPXtleHBvcnRzOnt9fTtlW2ldWzBdLmNhbGwocC5leHBvcnRzLGZ1bmN0aW9uKHIpe3ZhciBuPWVbaV1bMV1bcl07cmV0dXJuIG8obnx8cil9LHAscC5leHBvcnRzLHIsZSxuLHQpfXJldHVybiBuW2ldLmV4cG9ydHN9Zm9yKHZhciB1PVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmUsaT0wO2k8dC5sZW5ndGg7aSsrKW8odFtpXSk7cmV0dXJuIG99cmV0dXJuIHJ9KSgpIiwiLyoqVGhpcyBjbGFzcyBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBMYXlhQWlySURFLCBwbGVhc2UgZG8gbm90IG1ha2UgYW55IG1vZGlmaWNhdGlvbnMuICovXHJcblxyXG4vKlxyXG4qIOa4uOaIj+WIneWni+WMlumFjee9rjtcclxuKi9cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgR2FtZUNvbmZpZ3tcclxuICAgIHN0YXRpYyB3aWR0aDpudW1iZXI9NzIwO1xyXG4gICAgc3RhdGljIGhlaWdodDpudW1iZXI9MTI4MDtcclxuICAgIHN0YXRpYyBzY2FsZU1vZGU6c3RyaW5nPVwiZml4ZWR3aWR0aFwiO1xyXG4gICAgc3RhdGljIHNjcmVlbk1vZGU6c3RyaW5nPVwibm9uZVwiO1xyXG4gICAgc3RhdGljIGFsaWduVjpzdHJpbmc9XCJ0b3BcIjtcclxuICAgIHN0YXRpYyBhbGlnbkg6c3RyaW5nPVwibGVmdFwiO1xyXG4gICAgc3RhdGljIHN0YXJ0U2NlbmU6YW55PVwiUmFuay5zY2VuZVwiO1xyXG4gICAgc3RhdGljIHNjZW5lUm9vdDpzdHJpbmc9XCJcIjtcclxuICAgIHN0YXRpYyBkZWJ1Zzpib29sZWFuPWZhbHNlO1xyXG4gICAgc3RhdGljIHN0YXQ6Ym9vbGVhbj1mYWxzZTtcclxuICAgIHN0YXRpYyBwaHlzaWNzRGVidWc6Ym9vbGVhbj1mYWxzZTtcclxuICAgIHN0YXRpYyBleHBvcnRTY2VuZVRvSnNvbjpib29sZWFuPXRydWU7XHJcbiAgICBjb25zdHJ1Y3Rvcigpe31cclxuICAgIHN0YXRpYyBpbml0KCl7XHJcbiAgICAgICAgdmFyIHJlZzogRnVuY3Rpb24gPSBMYXlhLkNsYXNzVXRpbHMucmVnQ2xhc3M7XHJcblxyXG4gICAgfVxyXG59XHJcbkdhbWVDb25maWcuaW5pdCgpOyIsImltcG9ydCBHYW1lQ29uZmlnIGZyb20gXCIuL0dhbWVDb25maWdcIjtcclxuaW1wb3J0IFJhbmsgZnJvbSBcIi4vdmlldy9SYW5rXCI7XHJcblxyXG5jbGFzcyBSQU5LX1RZUEUge1xyXG5cdHB1YmxpYyBzdGF0aWMgTElTVCA9IFwicmFua0xpc3RcIjsgXHQvL+aOkuihjOamnFxyXG5cdHB1YmxpYyBzdGF0aWMgVE9QMSA9IFwicmFua1RvcDFcIjsgXHQvL+WNs+Wwhui2hei2iuWwj1xyXG5cdHB1YmxpYyBzdGF0aWMgVE9QMiA9IFwicmFua1RvcDJcIjsgXHQvL+WNs+Wwhui2hei2iuWkp1xyXG5cdHB1YmxpYyBzdGF0aWMgRU5EMSA9IFwicmFua0VuZDFcIjsgXHQvL+WNs+Wwhui2hei2iue7k+eul1xyXG5cdHB1YmxpYyBzdGF0aWMgRU5EMiA9IFwicmFua0VuZDJcIjsgXHQvL+e7k+eul+aOkuihjOamnFxyXG5cdHB1YmxpYyBzdGF0aWMgUklHSFQgPSBcInJhbmtSaWdodFwiOyBcdC8v5Y+z6L6555qE5o6S6KGM5qacXHJcbn1cclxuY29uc29sZS5sb2coXCIwMDAwMDAwXCIpO1xyXG4vLyBpbXBvcnQgQmlnUmFuayBmcm9tIFwiLi92aWV3L0JpZ1JhbmtcIjtcclxuY2xhc3MgTWFpbiB7XHJcblx0Y29uc3RydWN0b3IoKSB7XHJcblx0XHQvL+iuvue9ruWtkOWfn1xyXG5cdFx0Ly9jb25zb2xlLmxvZyhcIjAwMDAwMDBcIik7XHJcblx0XHRMYXlhLmlzV1hPcGVuRGF0YUNvbnRleHQgPSB0cnVlO1xyXG5cdFx0TGF5YS5pc1dYUG9zTXNnID0gdHJ1ZTtcclxuXHRcdC8v5qC55o2uSURF6K6+572u5Yid5aeL5YyW5byV5pOOXHRcdFxyXG5cdFx0TGF5YS5pbml0KEdhbWVDb25maWcud2lkdGgsIEdhbWVDb25maWcuaGVpZ2h0LCBmYWxzZSk7XHJcblx0XHRMYXlhLnN0YWdlLnNjYWxlTW9kZSA9IEdhbWVDb25maWcuc2NhbGVNb2RlO1xyXG5cdFx0TGF5YS5zdGFnZS5zY3JlZW5Nb2RlID0gR2FtZUNvbmZpZy5zY3JlZW5Nb2RlO1xyXG5cdFx0TGF5YS5zdGFnZS5hbGlnblYgPSBHYW1lQ29uZmlnLmFsaWduVjtcclxuXHRcdExheWEuc3RhZ2UuYWxpZ25IID0gR2FtZUNvbmZpZy5hbGlnbkg7XHJcblx0XHR0aGlzLm9uQ29tcGxldGUoKTtcclxuXHR9XHJcblxyXG5cdG9uQ29tcGxldGUoKTogdm9pZCB7XHJcblx0XHRjb25zb2xlLmxvZyhcIuaOpeWPl+a2iOaBr1wiKTtcclxuXHRcdGxldCByYW5rOiBSYW5rID0gUmFuay5nZXRSYW5rKCk7XHJcblx0XHR3eC5vbk1lc3NhZ2UoZnVuY3Rpb24gKG1lc3NhZ2UpIHtcclxuXHRcdFx0cmFuay50eXBlID0gbWVzc2FnZS50eXBlO1xyXG5cdFx0XHRpZiAobWVzc2FnZS5jbWQgPT0gXCJzaG93XCIpIHtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKFwi5o6l5Y+X5pi+56S65raI5oGvXCIpO1xyXG5cdFx0XHRcdHJhbmsuY3VyU2NvcmUgPSBtZXNzYWdlLmN1clNjb3JlO1xyXG5cdFx0XHRcdHJhbmsub3BlbmlkID0gbWVzc2FnZS5vcGVuaWQ7XHJcblx0XHRcdFx0Ly8gcmFuay50eXBlPSBSQU5LX1RZUEUuUklHSFRcclxuXHRcdFx0XHQvLyByYW5rLnR5cGU9IFJBTktfVFlQRS5MSVNUXHJcblx0XHRcdFx0cmFua1tyYW5rLnR5cGVdLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdGlmIChtZXNzYWdlLnBvc3gpIHtcclxuXHRcdFx0XHRcdHJhbmtbcmFuay50eXBlXS54ID0gbWVzc2FnZS5wb3N4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAobWVzc2FnZS5wb3N5KSB7XHJcblx0XHRcdFx0XHRyYW5rW3JhbmsudHlwZV0ueSA9IG1lc3NhZ2UucG9zeTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0aWYgKHJhbmsudHlwZSA9PSBSQU5LX1RZUEUuTElTVCkgeyAvL+aOkuihjOamnFxyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhcIuaOpeWPl+aYvuekuuWIl+ihqOa2iOaBr1wiKTtcclxuXHRcdFx0XHRcdHJhbmsucmVmcmVzaFJhbmtMaXN0KCk7XHJcblx0XHRcdFx0fSBlbHNlIGlmIChyYW5rLnR5cGUgPT0gUkFOS19UWVBFLlRPUDEpIHsgLy/ljbPlsIbotoXotorlsI9cclxuXHRcdFx0XHRcdHJhbmsubWFpbl9yYW5rVG9wMS52aXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdHJhbmsuc3ViX3JhbmtUb3AxLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0cmFuay5yZWZyZXNoUmFua1RvcDEoKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKHJhbmsudHlwZSA9PSBSQU5LX1RZUEUuVE9QMikgeyAvL+WNs+Wwhui2hei2iuWkp1xyXG5cdFx0XHRcdFx0cmFuay5tYWluX3JhbmtUb3AyLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0cmFuay5zdWJfcmFua1RvcDIudmlzaWJsZSA9IHRydWU7XHJcblx0XHRcdFx0XHRyYW5rLnJlZnJlc2hSYW5rVG9wMigpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAocmFuay50eXBlID09IFJBTktfVFlQRS5FTkQxKSB7IC8v5Y2z5bCG6LaF6LaK57uT566XXHJcblx0XHRcdFx0XHRyYW5rLnJlZnJlc2hSYW5rRW5kMSgpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAocmFuay50eXBlID09IFJBTktfVFlQRS5FTkQyKSB7IC8v57uT566X5o6S6KGM5qacXHJcblx0XHRcdFx0XHRyYW5rLnJlZnJlc2hSYW5rRW5kMigpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAocmFuay50eXBlID09IFJBTktfVFlQRS5SSUdIVCkgeyAvL+WPs+i+ueeahOaOkuihjOamnFxyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyhcIuaOpeWPl+aYvuekuuWPs+i+uea2iOaBr1wiKTtcclxuXHRcdFx0XHRcdHJhbmsucmVmcmVzaFJhbmtSaWdodCgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIGlmIChtZXNzYWdlLmNtZCA9PSBcImhpZGVcIikge1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2coXCLmjqXlj5flvbHol4/mtojmga9cIik7XHJcblx0XHRcdFx0cmFua1tyYW5rLnR5cGVdLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdFx0fSBlbHNlIGlmIChtZXNzYWdlLmNtZCA9PSBcImxlZnRcIikge1xyXG5cdFx0XHRcdHJhbmsub25MZWZ0KCk7XHJcblx0XHRcdH0gZWxzZSBpZiAobWVzc2FnZS5jbWQgPT0gXCJyaWdodFwiKSB7XHJcblx0XHRcdFx0cmFuay5vblJpZ2h0KCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cclxuXHJcblx0XHQvLyBjb25zb2xlLmxvZyhcImFhYWFhYWFhYWFhYWFhYWFhYWFhXCIpO1xyXG5cdFx0Ly8gXHJcblx0XHQvLyB3eFtcIm9uTWVzc2FnZVwiXSgobWVzc2FnZSkgPT4ge1xyXG5cclxuXHRcdC8vIH0pO1xyXG5cclxuXHR9XHJcbn1cclxuLy/mv4DmtLvlkK/liqjnsbtcclxubmV3IE1haW4oKTtcclxuIiwiLyoqVGhpcyBjbGFzcyBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieSBMYXlhQWlySURFLCBwbGVhc2UgZG8gbm90IG1ha2UgYW55IG1vZGlmaWNhdGlvbnMuICovXG5pbXBvcnQgVmlldz1MYXlhLlZpZXc7XHJcbmltcG9ydCBEaWFsb2c9TGF5YS5EaWFsb2c7XHJcbmltcG9ydCBTY2VuZT1MYXlhLlNjZW5lO1xudmFyIFJFRzogRnVuY3Rpb24gPSBMYXlhLkNsYXNzVXRpbHMucmVnQ2xhc3M7XG5leHBvcnQgbW9kdWxlIHVpIHtcclxuICAgIGV4cG9ydCBjbGFzcyBSYW5rVUkgZXh0ZW5kcyBWaWV3IHtcclxuXHRcdHB1YmxpYyByYW5rVG9wMTpMYXlhLkJveDtcblx0XHRwdWJsaWMgbWFpbl9yYW5rVG9wMTpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyBzdWJfcmFua1RvcDE6TGF5YS5Cb3g7XG5cdFx0cHVibGljIHJhbmtUb3AyOkxheWEuQm94O1xuXHRcdHB1YmxpYyBtYWluX3JhbmtUb3AyOkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIHN1Yl9yYW5rVG9wMjpMYXlhLkJveDtcblx0XHRwdWJsaWMgcmFua0VuZDE6TGF5YS5Cb3g7XG5cdFx0cHVibGljIG1haW5fcmFua0VuZDE6TGF5YS5JbWFnZTtcblx0XHRwdWJsaWMgc3ViX3JhbmtFbmQxOkxheWEuQm94O1xuXHRcdHB1YmxpYyByYW5rUmlnaHQ6TGF5YS5Cb3g7XG5cdFx0cHVibGljIGJnUmFua1JpZ2h0MTpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyByYW5rUmlnaHQxOkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIGJnUmFua1JpZ2h0MjpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyByYW5rUmlnaHQyOkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIGJnUmFua1JpZ2h0MzpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyByYW5rUmlnaHQzOkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIHJhbmtFbmQyOkxheWEuQm94O1xuXHRcdHB1YmxpYyByYW5rRW5kMkhlYWQxOkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIHJhbmtFbmQySGVhZDI6TGF5YS5JbWFnZTtcblx0XHRwdWJsaWMgcmFua0VuZDJIZWFkMzpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyByYW5rTGlzdDpMYXlhLkJveDtcblx0XHRwdWJsaWMgbWFpbl9yYW5rTGlzdDpMYXlhLkltYWdlO1xuXHRcdHB1YmxpYyBidG5MZWZ0OkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIGJ0blJpZ2h0OkxheWEuSW1hZ2U7XG5cdFx0cHVibGljIGJ0bkJhY2s6TGF5YS5JbWFnZTtcblx0XHRwdWJsaWMgc3ViX3JhbmtMaXN0OkxheWEuQm94O1xuXHRcdHB1YmxpYyByYW5rQ2VsbDA6TGF5YS5Cb3g7XG5cdFx0cHVibGljIHJhbmtDZWxsMTpMYXlhLkJveDtcblx0XHRwdWJsaWMgcmFua0NlbGwyOkxheWEuQm94O1xuXHRcdHB1YmxpYyByYW5rQ2VsbDM6TGF5YS5Cb3g7XG5cdFx0cHVibGljIHJhbmtTZWxmOkxheWEuQm94O1xuICAgICAgICBwdWJsaWMgc3RhdGljICB1aVZpZXc6YW55ID17XCJ0eXBlXCI6XCJWaWV3XCIsXCJwcm9wc1wiOntcInlcIjowLFwieFwiOjAsXCJ3aWR0aFwiOjcyMCxcIm1vdXNlVGhyb3VnaFwiOnRydWUsXCJoZWlnaHRcIjoxMjgwfSxcImNvbXBJZFwiOjEsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJCb3hcIixcInByb3BzXCI6e1wid2lkdGhcIjo3MjAsXCJtb3VzZVRocm91Z2hcIjp0cnVlLFwiaGVpZ2h0XCI6MTI4MCxcImNlbnRlcllcIjowLFwiY2VudGVyWFwiOjB9LFwiY29tcElkXCI6NzgsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJCb3hcIixcInByb3BzXCI6e1wieVwiOjAsXCJ4XCI6MCxcIndpZHRoXCI6MjAwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJyYW5rVG9wMVwiLFwiaGVpZ2h0XCI6MTIwfSxcImNvbXBJZFwiOjQ3LFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjM1LFwieFwiOjAsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcIm1haW5fcmFua1RvcDFcIixcInNraW5cIjpcInJhbmsvcmVjdDEucG5nXCIsXCJzaXplR3JpZFwiOlwiMjAsMjAsMjAsMjBcIixcImhlaWdodFwiOjgzfSxcImNvbXBJZFwiOjQ4LFwiY2hpbGRcIjpbe1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6LTE4LFwieFwiOjM1LFwidGV4dFwiOlwi5p+l55yL5a6M5pW05o6S6KGM5qacPj5cIixcImZvbnRTaXplXCI6MTUsXCJmb250XCI6XCJTaW1IZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjQ5fV19LHtcInR5cGVcIjpcIkJveFwiLFwicHJvcHNcIjp7XCJ5XCI6MzksXCJ4XCI6MCxcIndpZHRoXCI6MTkwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJzdWJfcmFua1RvcDFcIixcImhlaWdodFwiOjgzfSxcImNvbXBJZFwiOjUwLFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjIsXCJ4XCI6OSxcIndpZHRoXCI6NzAsXCJza2luXCI6XCJyYW5rL2RlZmF1bHQucG5nXCIsXCJuYW1lXCI6XCJpY29uSGVhZFwiLFwiaGVpZ2h0XCI6NzB9LFwiY29tcElkXCI6NTF9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjAsXCJ4XCI6ODMsXCJ3b3JkV3JhcFwiOnRydWUsXCJ3aWR0aFwiOjk5LFwidGV4dFwiOlwi6Jma5L2N5Lul5b6FXCIsXCJuYW1lXCI6XCJuaWNrTmFtZVwiLFwiaGVpZ2h0XCI6NTMsXCJmb250U2l6ZVwiOjE2LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo1M30se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6NTQsXCJ4XCI6ODMsXCJ3aWR0aFwiOjk2LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInR4dEV4cFwiLFwiaGVpZ2h0XCI6MjIsXCJmb250U2l6ZVwiOjE1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo1NH1dfV19LHtcInR5cGVcIjpcIkJveFwiLFwicHJvcHNcIjp7XCJ5XCI6MCxcInhcIjowLFwid2lkdGhcIjozMDAsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcInJhbmtUb3AyXCIsXCJoZWlnaHRcIjoyMDB9LFwiY29tcElkXCI6NTUsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ5XCI6NDMsXCJ4XCI6MCxcInZpc2libGVcIjpmYWxzZSxcInZhclwiOlwibWFpbl9yYW5rVG9wMlwiLFwic2tpblwiOlwicmFuay9yZWN0Mi5wbmdcIn0sXCJjb21wSWRcIjo1NixcImNoaWxkXCI6W3tcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjEyMCxcInhcIjo2NCxcInRleHRcIjpcIuafpeeci+WujOaVtOaOkuihjOamnD4+XCIsXCJmb250U2l6ZVwiOjIyLFwiZm9udFwiOlwiU2ltSGVpXCIsXCJjb2xvclwiOlwiIzAwMDAwMFwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo1N31dfSx7XCJ0eXBlXCI6XCJCb3hcIixcInByb3BzXCI6e1wieVwiOjQ3LFwieFwiOi0xLFwid2lkdGhcIjoyOTMsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcInN1Yl9yYW5rVG9wMlwiLFwiaGVpZ2h0XCI6MTM1fSxcImNvbXBJZFwiOjU4LFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjExLFwieFwiOjE4NixcIndpZHRoXCI6OTAsXCJza2luXCI6XCJyYW5rL2RlZmF1bHQucG5nXCIsXCJuYW1lXCI6XCJpY29uSGVhZFwiLFwiaGVpZ2h0XCI6OTB9LFwiY29tcElkXCI6NTl9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjM5LFwieFwiOjEzLFwid29yZFdyYXBcIjp0cnVlLFwid2lkdGhcIjoxNjMsXCJ0ZXh0XCI6XCLomZrkvY3ku6XlvoVcIixcIm5hbWVcIjpcIm5pY2tOYW1lXCIsXCJoZWlnaHRcIjo0OCxcImZvbnRTaXplXCI6MjAsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjMDAwMDAwXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjYwfSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjo4OSxcInhcIjoyMCxcIndpZHRoXCI6MTQ4LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInR4dEV4cFwiLFwiaGVpZ2h0XCI6MjIsXCJmb250U2l6ZVwiOjIwLFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiIzAwMDAwMFwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo2MX0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MTAsXCJ4XCI6NDcsXCJ3aWR0aFwiOjk2LFwidGV4dFwiOlwi5Y2z5bCG6LaF6LaKXCIsXCJoZWlnaHRcIjoyNyxcImZvbnRTaXplXCI6MjAsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjMDAwMDAwXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjYyfV19XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjowLFwieFwiOjAsXCJ3aWR0aFwiOjcyMCxcInZpc2libGVcIjpmYWxzZSxcInZhclwiOlwicmFua0VuZDFcIixcImhlaWdodFwiOjEyODB9LFwiY29tcElkXCI6NjMsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ3aWR0aFwiOjU4MCxcInZpc2libGVcIjpmYWxzZSxcInZhclwiOlwibWFpbl9yYW5rRW5kMVwiLFwic2tpblwiOlwicmFuay9yZWN0Mi5wbmdcIixcInNpemVHcmlkXCI6XCIyMCwyMCwyMCwyMFwiLFwiY2VudGVyWVwiOjAsXCJjZW50ZXJYXCI6MH0sXCJjb21wSWRcIjo2NCxcImNoaWxkXCI6W3tcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjQzLFwieFwiOjMxLFwid2lkdGhcIjoxNjgsXCJ0ZXh0XCI6XCLljbPlsIbotoXotopcIixcImhlaWdodFwiOjU0LFwiZm9udFNpemVcIjo0MCxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiMwMDAwMDBcIixcImFsaWduXCI6XCJjZW50ZXJcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6NzB9XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcIndpZHRoXCI6NTc1LFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJzdWJfcmFua0VuZDFcIixcImhlaWdodFwiOjEzNSxcImNlbnRlcllcIjowLFwiY2VudGVyWFwiOjB9LFwiY29tcElkXCI6NjYsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ3aWR0aFwiOjEwMCxcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcIm5hbWVcIjpcImljb25IZWFkXCIsXCJoZWlnaHRcIjoxMDAsXCJjZW50ZXJZXCI6MCxcImNlbnRlclhcIjotMjJ9LFwiY29tcElkXCI6Njd9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjIxLFwieFwiOjMyMyxcIndvcmRXcmFwXCI6dHJ1ZSxcIndpZHRoXCI6MjQ2LFwidGV4dFwiOlwi6Jma5L2N5Lul5b6FXCIsXCJuYW1lXCI6XCJuaWNrTmFtZVwiLFwiaGVpZ2h0XCI6NzAsXCJmb250U2l6ZVwiOjMwLFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiIzAwMDAwMFwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo2OH0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6OTEsXCJ4XCI6MzQ1LFwid2lkdGhcIjoyMDYsXCJ0ZXh0XCI6XCLlvpfliIY6MFwiLFwibmFtZVwiOlwidHh0RXhwXCIsXCJoZWlnaHRcIjo0MSxcImZvbnRTaXplXCI6MzAsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjMDAwMDAwXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjY5fV19XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjoxOTQsXCJ4XCI6NjA0LFwid2lkdGhcIjoxNzMsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcInJhbmtSaWdodFwiLFwiaGVpZ2h0XCI6MjI0fSxcImNvbXBJZFwiOjcxLFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjIsXCJ4XCI6MTcwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJiZ1JhbmtSaWdodDFcIixcInNraW5cIjpcInJhbmsvcmVjdDMucG5nXCIsXCJzY2FsZVhcIjotMX0sXCJjb21wSWRcIjo3MixcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo0LFwieFwiOjc2LFwid2lkdGhcIjo1MCxcInZhclwiOlwicmFua1JpZ2h0MVwiLFwic2tpblwiOlwicmFuay9kZWZhdWx0LnBuZ1wiLFwiaGVpZ2h0XCI6NTB9LFwiY29tcElkXCI6NzV9XX0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjgxLFwieFwiOjE5MCxcInZpc2libGVcIjpmYWxzZSxcInZhclwiOlwiYmdSYW5rUmlnaHQyXCIsXCJza2luXCI6XCJyYW5rL3JlY3QzLnBuZ1wiLFwic2NhbGVYXCI6LTF9LFwiY29tcElkXCI6NzMsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ5XCI6NCxcInhcIjo3NixcIndpZHRoXCI6NTAsXCJ2YXJcIjpcInJhbmtSaWdodDJcIixcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcImhlaWdodFwiOjUwfSxcImNvbXBJZFwiOjc2fV19LHtcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjoxNTksXCJ4XCI6MTkwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJiZ1JhbmtSaWdodDNcIixcInNraW5cIjpcInJhbmsvcmVjdDMucG5nXCIsXCJzY2FsZVhcIjotMX0sXCJjb21wSWRcIjo3NCxcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo0LFwieFwiOjc2LFwid2lkdGhcIjo1MCxcInZhclwiOlwicmFua1JpZ2h0M1wiLFwic2tpblwiOlwicmFuay9kZWZhdWx0LnBuZ1wiLFwiaGVpZ2h0XCI6NTB9LFwiY29tcElkXCI6Nzd9XX1dfSx7XCJ0eXBlXCI6XCJCb3hcIixcInByb3BzXCI6e1wieVwiOjYzOCxcIndpZHRoXCI6NzIwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJyYW5rRW5kMlwiLFwiaGVpZ2h0XCI6MjI5LFwiY2VudGVyWFwiOjB9LFwiY29tcElkXCI6NzksXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ5XCI6MzMsXCJ4XCI6MTU1LFwid2lkdGhcIjoxMDAsXCJ2YXJcIjpcInJhbmtFbmQySGVhZDFcIixcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcImhlaWdodFwiOjEwMH0sXCJjb21wSWRcIjo4MCxcImNoaWxkXCI6W3tcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjEwNyxcInhcIjotNTEsXCJ3aWR0aFwiOjIwNixcInRleHRcIjpcIuiZmuS9jeS7peW+hVwiLFwibmFtZVwiOlwibmFtZVwiLFwiaGVpZ2h0XCI6MjMsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiU2ltSGVpXCIsXCJjb2xvclwiOlwiIzAwMDAwMFwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo4MX0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MTM2LFwieFwiOi01MSxcIndpZHRoXCI6MjA2LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInNjb3JlXCIsXCJoZWlnaHRcIjoyOSxcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJTaW1IZWlcIixcImNvbG9yXCI6XCIjMDAwMDAwXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjgyfV19LHtcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjozMyxcInhcIjozMTEsXCJ3aWR0aFwiOjEwMCxcInZhclwiOlwicmFua0VuZDJIZWFkMlwiLFwic2tpblwiOlwicmFuay9kZWZhdWx0LnBuZ1wiLFwiaGVpZ2h0XCI6MTAwfSxcImNvbXBJZFwiOjg2LFwiY2hpbGRcIjpbe1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MTA3LFwieFwiOi01MSxcIndpZHRoXCI6MjA2LFwidGV4dFwiOlwi6Jma5L2N5Lul5b6FXCIsXCJuYW1lXCI6XCJuYW1lXCIsXCJoZWlnaHRcIjoyMyxcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJTaW1IZWlcIixcImNvbG9yXCI6XCIjMDAwMDAwXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjg3fSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjoxMzYsXCJ4XCI6LTUxLFwid2lkdGhcIjoyMDYsXCJ0ZXh0XCI6XCLlvpfliIY6MFwiLFwibmFtZVwiOlwic2NvcmVcIixcImhlaWdodFwiOjI5LFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIlNpbUhlaVwiLFwiY29sb3JcIjpcIiMwMDAwMDBcIixcImFsaWduXCI6XCJjZW50ZXJcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6ODh9XX0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMzLFwieFwiOjQ2NyxcIndpZHRoXCI6MTAwLFwidmFyXCI6XCJyYW5rRW5kMkhlYWQzXCIsXCJza2luXCI6XCJyYW5rL2RlZmF1bHQucG5nXCIsXCJoZWlnaHRcIjoxMDB9LFwiY29tcElkXCI6ODMsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjoxMDcsXCJ4XCI6LTUxLFwid2lkdGhcIjoyMDYsXCJ0ZXh0XCI6XCLomZrkvY3ku6XlvoVcIixcIm5hbWVcIjpcIm5hbWVcIixcImhlaWdodFwiOjIzLFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIlNpbUhlaVwiLFwiY29sb3JcIjpcIiMwMDAwMDBcIixcImFsaWduXCI6XCJjZW50ZXJcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6ODR9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjEzNixcInhcIjotNTEsXCJ3aWR0aFwiOjIwNixcInRleHRcIjpcIuW+l+WIhjowXCIsXCJuYW1lXCI6XCJzY29yZVwiLFwiaGVpZ2h0XCI6MjksXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiU2ltSGVpXCIsXCJjb2xvclwiOlwiIzAwMDAwMFwiLFwiYWxpZ25cIjpcImNlbnRlclwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjo4NX1dfV19LHtcInR5cGVcIjpcIkJveFwiLFwicHJvcHNcIjp7XCJ5XCI6MCxcInhcIjowLFwid2lkdGhcIjo3MjAsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcInJhbmtMaXN0XCIsXCJtb3VzZVRocm91Z2hcIjp0cnVlLFwiaGVpZ2h0XCI6MTI4MH0sXCJjb21wSWRcIjo0LFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjc2LFwid2lkdGhcIjo1NjAsXCJ2YXJcIjpcIm1haW5fcmFua0xpc3RcIixcInNraW5cIjpcInJhbmsvYmcucG5nXCIsXCJoZWlnaHRcIjo4MTAsXCJjZW50ZXJYXCI6MH0sXCJjb21wSWRcIjozLFwiY2hpbGRcIjpbe1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjE1LFwieFwiOjE3NCxcInNraW5cIjpcInJhbmsvdGl0bGVSYW5rLnBuZ1wiLFwiY2VudGVyWFwiOjB9LFwiY29tcElkXCI6MzV9LHtcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo3MTMsXCJ4XCI6ODQsXCJ2YXJcIjpcImJ0bkxlZnRcIixcInNraW5cIjpcInJhbmsvYnRuTGVmdC5wbmdcIn0sXCJjb21wSWRcIjo0M30se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjcxMyxcInhcIjozODAsXCJ2YXJcIjpcImJ0blJpZ2h0XCIsXCJza2luXCI6XCJyYW5rL2J0blJpZ2h0LnBuZ1wifSxcImNvbXBJZFwiOjQ0fSx7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ5XCI6ODk3LFwieFwiOjI4MCxcIndpZHRoXCI6Mzg1LFwidmFyXCI6XCJidG5CYWNrXCIsXCJza2luXCI6XCJyYW5rL2J1dHRvbi5wbmdcIixcImhlaWdodFwiOjEyMCxcImNlbnRlclhcIjowLFwiYW5jaG9yWVwiOjAuNSxcImFuY2hvclhcIjowLjV9LFwiY29tcElkXCI6NDUsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJza2luXCI6XCJyYW5rL3R4dEJhY2sucG5nXCIsXCJjZW50ZXJZXCI6LTEyLFwiY2VudGVyWFwiOjB9LFwiY29tcElkXCI6NDZ9XX0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MjEzLFwieFwiOjkzLFwidGV4dFwiOlwi5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiAXCIsXCJuYW1lXCI6XCJsaW5lXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjEyfSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjozMjUsXCJ4XCI6OTMsXCJ0ZXh0XCI6XCLkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIDkuIBcIixcIm5hbWVcIjpcImxpbmVcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MjB9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjQzOCxcInhcIjo5MyxcInRleHRcIjpcIuS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gOS4gFwiLFwibmFtZVwiOlwibGluZVwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjoyN30se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6NTUwLFwieFwiOjkzLFwidGV4dFwiOlwi5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiA5LiAXCIsXCJuYW1lXCI6XCJsaW5lXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjM0fV19LHtcInR5cGVcIjpcIkJveFwiLFwicHJvcHNcIjp7XCJ5XCI6MjA1LFwieFwiOjk1LFwid2lkdGhcIjo1MzAsXCJ2YXJcIjpcInN1Yl9yYW5rTGlzdFwiLFwiaGVpZ2h0XCI6NDM0fSxcImNvbXBJZFwiOjEzLFwiY2hpbGRcIjpbe1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjotNyxcInhcIjowLFwid2lkdGhcIjo1MzAsXCJ2aXNpYmxlXCI6ZmFsc2UsXCJ2YXJcIjpcInJhbmtDZWxsMFwiLFwiaGVpZ2h0XCI6MTAwfSxcImNvbXBJZFwiOjUsXCJjaGlsZFwiOlt7XCJ0eXBlXCI6XCJJbWFnZVwiLFwicHJvcHNcIjp7XCJ5XCI6OSxcInhcIjo3OSxcIndpZHRoXCI6ODAsXCJza2luXCI6XCJyYW5rL2RlZmF1bHQucG5nXCIsXCJuYW1lXCI6XCJpY29uSGVhZFwiLFwiaGVpZ2h0XCI6ODB9LFwiY29tcElkXCI6Nn0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMwLFwieFwiOjI4LFwidmlzaWJsZVwiOnRydWUsXCJza2luXCI6XCJyYW5rL3JhbmsxLnBuZ1wiLFwibmFtZVwiOlwiaWNvblJhbmtcIn0sXCJjb21wSWRcIjo3fSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjoyOCxcInhcIjoxNzIsXCJ3b3JkV3JhcFwiOnRydWUsXCJ3aWR0aFwiOjIwNixcInRleHRcIjpcIuiZmuS9jeS7peW+hVwiLFwibmFtZVwiOlwibmlja05hbWVcIixcImhlaWdodFwiOjYxLFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiNmZmZmZmZcIixcImFsaWduXCI6XCJsZWZ0XCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjh9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjM0LFwieFwiOjI3LFwid29yZFdyYXBcIjpmYWxzZSxcIndpZHRoXCI6NDIsXCJ0ZXh0XCI6XCIxXCIsXCJuYW1lXCI6XCJ0eHRSYW5rXCIsXCJoZWlnaHRcIjozNixcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjl9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjI4LFwieFwiOjM4NSxcIndpZHRoXCI6MTI4LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInR4dEV4cFwiLFwiaGVpZ2h0XCI6MzMsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImxlZnRcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MTB9XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjoxMDUsXCJ4XCI6MCxcIndpZHRoXCI6NTMwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJyYW5rQ2VsbDFcIixcImhlaWdodFwiOjEwMH0sXCJjb21wSWRcIjoxNCxcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo5LFwieFwiOjc5LFwid2lkdGhcIjo4MCxcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcIm5hbWVcIjpcImljb25IZWFkXCIsXCJoZWlnaHRcIjo4MH0sXCJjb21wSWRcIjoxNX0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMwLFwieFwiOjI4LFwidmlzaWJsZVwiOnRydWUsXCJza2luXCI6XCJyYW5rL3JhbmsyLnBuZ1wiLFwibmFtZVwiOlwiaWNvblJhbmtcIn0sXCJjb21wSWRcIjoxNn0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MjgsXCJ4XCI6MTcyLFwid29yZFdyYXBcIjp0cnVlLFwid2lkdGhcIjoyMDYsXCJ0ZXh0XCI6XCLomZrkvY3ku6XlvoVcIixcIm5hbWVcIjpcIm5pY2tOYW1lXCIsXCJoZWlnaHRcIjo2MSxcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJhbGlnblwiOlwibGVmdFwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjoxN30se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MzQsXCJ4XCI6MjcsXCJ3b3JkV3JhcFwiOmZhbHNlLFwid2lkdGhcIjo0MixcInRleHRcIjpcIjJcIixcIm5hbWVcIjpcInR4dFJhbmtcIixcImhlaWdodFwiOjM2LFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiNmZmZmZmZcIixcImFsaWduXCI6XCJjZW50ZXJcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MTh9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjI4LFwieFwiOjM4NSxcIndpZHRoXCI6MTI4LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInR4dEV4cFwiLFwiaGVpZ2h0XCI6MzMsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImxlZnRcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MTl9XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjoyMTgsXCJ4XCI6MCxcIndpZHRoXCI6NTMwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJyYW5rQ2VsbDJcIixcImhlaWdodFwiOjEwMH0sXCJjb21wSWRcIjoyMSxcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo5LFwieFwiOjc5LFwid2lkdGhcIjo4MCxcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcIm5hbWVcIjpcImljb25IZWFkXCIsXCJoZWlnaHRcIjo4MH0sXCJjb21wSWRcIjoyMn0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMwLFwieFwiOjI4LFwidmlzaWJsZVwiOnRydWUsXCJza2luXCI6XCJyYW5rL3JhbmszLnBuZ1wiLFwibmFtZVwiOlwiaWNvblJhbmtcIn0sXCJjb21wSWRcIjoyM30se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MjgsXCJ4XCI6MTcyLFwid29yZFdyYXBcIjp0cnVlLFwid2lkdGhcIjoyMDYsXCJ0ZXh0XCI6XCLomZrkvY3ku6XlvoVcIixcIm5hbWVcIjpcIm5pY2tOYW1lXCIsXCJoZWlnaHRcIjo2MSxcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJhbGlnblwiOlwibGVmdFwiLFwicnVudGltZVwiOlwibGF5YS5kaXNwbGF5LlRleHRcIn0sXCJjb21wSWRcIjoyNH0se1widHlwZVwiOlwiVGV4dFwiLFwicHJvcHNcIjp7XCJ5XCI6MzQsXCJ4XCI6MjcsXCJ3b3JkV3JhcFwiOmZhbHNlLFwid2lkdGhcIjo0MixcInRleHRcIjpcIjNcIixcIm5hbWVcIjpcInR4dFJhbmtcIixcImhlaWdodFwiOjM2LFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiNmZmZmZmZcIixcImFsaWduXCI6XCJjZW50ZXJcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MjV9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjI4LFwieFwiOjM4NSxcIndpZHRoXCI6MTI4LFwidGV4dFwiOlwi5b6X5YiGOjBcIixcIm5hbWVcIjpcInR4dEV4cFwiLFwiaGVpZ2h0XCI6MzMsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImxlZnRcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MjZ9XX0se1widHlwZVwiOlwiQm94XCIsXCJwcm9wc1wiOntcInlcIjozMzAsXCJ4XCI6MCxcIndpZHRoXCI6NTMwLFwidmlzaWJsZVwiOmZhbHNlLFwidmFyXCI6XCJyYW5rQ2VsbDNcIixcImhlaWdodFwiOjEwMH0sXCJjb21wSWRcIjoyOCxcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo5LFwieFwiOjc5LFwid2lkdGhcIjo4MCxcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcIm5hbWVcIjpcImljb25IZWFkXCIsXCJoZWlnaHRcIjo4MH0sXCJjb21wSWRcIjoyOX0se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMwLFwieFwiOjI4LFwidmlzaWJsZVwiOmZhbHNlLFwic2tpblwiOlwicmFuay9yYW5rMS5wbmdcIixcIm5hbWVcIjpcImljb25SYW5rXCJ9LFwiY29tcElkXCI6MzB9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjI4LFwieFwiOjE3MixcIndvcmRXcmFwXCI6dHJ1ZSxcIndpZHRoXCI6MjA2LFwidGV4dFwiOlwi6Jma5L2N5Lul5b6FXCIsXCJuYW1lXCI6XCJuaWNrTmFtZVwiLFwiaGVpZ2h0XCI6NjEsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImxlZnRcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6MzF9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjM0LFwieFwiOjI3LFwid29yZFdyYXBcIjpmYWxzZSxcIndpZHRoXCI6NDIsXCJ0ZXh0XCI6XCI0XCIsXCJuYW1lXCI6XCJ0eHRSYW5rXCIsXCJoZWlnaHRcIjozNixcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjMyfSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjoyOCxcInhcIjozODUsXCJ3aWR0aFwiOjEyOCxcInRleHRcIjpcIuW+l+WIhjowXCIsXCJuYW1lXCI6XCJ0eHRFeHBcIixcImhlaWdodFwiOjMzLFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiNmZmZmZmZcIixcImFsaWduXCI6XCJsZWZ0XCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjMzfV19LHtcInR5cGVcIjpcIkJveFwiLFwicHJvcHNcIjp7XCJ5XCI6NDYzLFwieFwiOjAsXCJ3aWR0aFwiOjUzMCxcInZpc2libGVcIjpmYWxzZSxcInZhclwiOlwicmFua1NlbGZcIixcImhlaWdodFwiOjEwMH0sXCJjb21wSWRcIjozNixcImNoaWxkXCI6W3tcInR5cGVcIjpcIkltYWdlXCIsXCJwcm9wc1wiOntcInlcIjo5LFwieFwiOjc5LFwid2lkdGhcIjo4MCxcInNraW5cIjpcInJhbmsvZGVmYXVsdC5wbmdcIixcIm5hbWVcIjpcImljb25IZWFkXCIsXCJoZWlnaHRcIjo4MH0sXCJjb21wSWRcIjozN30se1widHlwZVwiOlwiSW1hZ2VcIixcInByb3BzXCI6e1wieVwiOjMwLFwieFwiOjI4LFwidmlzaWJsZVwiOmZhbHNlLFwic2tpblwiOlwicmFuay9yYW5rMS5wbmdcIixcIm5hbWVcIjpcImljb25SYW5rXCJ9LFwiY29tcElkXCI6Mzh9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjI4LFwieFwiOjE3MixcIndvcmRXcmFwXCI6dHJ1ZSxcIndpZHRoXCI6MjA2LFwidGV4dFwiOlwi6Jma5L2N5Lul5b6FXCIsXCJuYW1lXCI6XCJuaWNrTmFtZVwiLFwiaGVpZ2h0XCI6NjEsXCJmb250U2l6ZVwiOjI1LFwiZm9udFwiOlwiTWljcm9zb2Z0IFlhSGVpXCIsXCJjb2xvclwiOlwiI2ZmZmZmZlwiLFwiYWxpZ25cIjpcImxlZnRcIixcInJ1bnRpbWVcIjpcImxheWEuZGlzcGxheS5UZXh0XCJ9LFwiY29tcElkXCI6Mzl9LHtcInR5cGVcIjpcIlRleHRcIixcInByb3BzXCI6e1wieVwiOjM0LFwieFwiOjI3LFwid29yZFdyYXBcIjpmYWxzZSxcIndpZHRoXCI6NDIsXCJ0ZXh0XCI6XCI0XCIsXCJuYW1lXCI6XCJ0eHRSYW5rXCIsXCJoZWlnaHRcIjozNixcImZvbnRTaXplXCI6MjUsXCJmb250XCI6XCJNaWNyb3NvZnQgWWFIZWlcIixcImNvbG9yXCI6XCIjZmZmZmZmXCIsXCJhbGlnblwiOlwiY2VudGVyXCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjQwfSx7XCJ0eXBlXCI6XCJUZXh0XCIsXCJwcm9wc1wiOntcInlcIjoyOCxcInhcIjozODUsXCJ3aWR0aFwiOjEyOCxcInRleHRcIjpcIuW+l+WIhjowXCIsXCJuYW1lXCI6XCJ0eHRFeHBcIixcImhlaWdodFwiOjMzLFwiZm9udFNpemVcIjoyNSxcImZvbnRcIjpcIk1pY3Jvc29mdCBZYUhlaVwiLFwiY29sb3JcIjpcIiNmZmZmZmZcIixcImFsaWduXCI6XCJsZWZ0XCIsXCJydW50aW1lXCI6XCJsYXlhLmRpc3BsYXkuVGV4dFwifSxcImNvbXBJZFwiOjQxfV19XX1dfV19XSxcImxvYWRMaXN0XCI6W1wicmFuay9yZWN0MS5wbmdcIixcInJhbmsvZGVmYXVsdC5wbmdcIixcInJhbmsvcmVjdDIucG5nXCIsXCJyYW5rL3JlY3QzLnBuZ1wiLFwicmFuay9iZy5wbmdcIixcInJhbmsvdGl0bGVSYW5rLnBuZ1wiLFwicmFuay9idG5MZWZ0LnBuZ1wiLFwicmFuay9idG5SaWdodC5wbmdcIixcInJhbmsvYnV0dG9uLnBuZ1wiLFwicmFuay90eHRCYWNrLnBuZ1wiLFwicmFuay9yYW5rMS5wbmdcIixcInJhbmsvcmFuazIucG5nXCIsXCJyYW5rL3JhbmszLnBuZ1wiXSxcImxvYWRMaXN0M0RcIjpbXX07XHJcbiAgICAgICAgY29uc3RydWN0b3IoKXsgc3VwZXIoKX1cclxuICAgICAgICBjcmVhdGVDaGlsZHJlbigpOnZvaWQge1xyXG4gICAgICAgICAgICBzdXBlci5jcmVhdGVDaGlsZHJlbigpO1xyXG4gICAgICAgICAgICB0aGlzLmNyZWF0ZVZpZXcoUmFua1VJLnVpVmlldyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgUkVHKFwidWkuUmFua1VJXCIsUmFua1VJKTtcclxufVxyIiwiaW1wb3J0IHsgdWkgfSBmcm9tIFwiLi4vdWkvbGF5YU1heFVJXCI7XHJcbmltcG9ydCBXZWl4aW5BUEkgZnJvbSBcIi4vV2VpeGluQVBJXCI7XHJcblxyXG4vKipDcmVhdGVkIGJ5IHRoZSBMYXlhQWlySURFKi9cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmFuayBleHRlbmRzIHVpLlJhbmtVSSB7XHJcblx0cHJpdmF0ZSBzdGF0aWMgdGhpejpSYW5rID0gbnVsbDtcclxuXHJcblx0cHJpdmF0ZSBkYXRhTGlzdDphbnlbXSA9IG51bGw7XHJcblx0cHJpdmF0ZSBjdXJQYWdlOm51bWJlciA9IDA7XHJcblxyXG5cdHB1YmxpYyB0eXBlOnN0cmluZyA9IFwiXCI7XHJcblx0cHVibGljIGN1clNjb3JlOm51bWJlciA9IDA7XHJcblx0cHVibGljIG9wZW5pZDpzdHJpbmcgPSBcIlwiO1xyXG5cclxuXHRwdWJsaWMgc3RhdGljIGdldFJhbmsoKSB7XHJcblx0XHRpZiAodGhpcy50aGl6ID09IG51bGwpIHtcclxuXHRcdFx0dGhpcy50aGl6ID0gbmV3IFJhbmsoKTtcclxuXHRcdFx0TGF5YS5zdGFnZS5hZGRDaGlsZCh0aGlzLnRoaXopO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRoaXMudGhpejtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgY29uc3RydWN0b3IoKSB7XHJcblx0XHRzdXBlcigpO1xyXG5cclxuXHRcdC8vIGxldCBzcDpMYXlhLlNwcml0ZSA9IG5ldyBMYXlhLlNwcml0ZSgpO1xyXG5cdFx0Ly8gc3AuZ3JhcGhpY3MuZHJhd0NpcmNsZSgyNSwgMjUsIDI1LCBcIiNGRjAwMDBcIik7XHJcblx0XHQvLyB0aGlzLnJhbmtSaWdodDEubWFzayA9IHNwO1xyXG5cclxuXHRcdC8vIHNwID0gbmV3IExheWEuU3ByaXRlKCk7XHJcblx0XHQvLyBzcC5ncmFwaGljcy5kcmF3Q2lyY2xlKDI1LCAyNSwgMjUsIFwiI0ZGMDAwMFwiKTtcclxuXHRcdC8vIHRoaXMucmFua1JpZ2h0Mi5tYXNrID0gc3A7XHJcblxyXG5cdFx0Ly8gc3AgPSBuZXcgTGF5YS5TcHJpdGUoKTtcclxuXHRcdC8vIHNwLmdyYXBoaWNzLmRyYXdDaXJjbGUoMjUsIDI1LCAyNSwgXCIjRkYwMDAwXCIpO1xyXG5cdFx0Ly8gdGhpcy5yYW5rUmlnaHQzLm1hc2sgPSBzcDtcclxuXHR9XHJcblxyXG5cdC8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT3mjpLooYzmppw9PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cdHB1YmxpYyBvbkxlZnQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VyUGFnZSA8PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5pbml0UGFnZSgtLXRoaXMuY3VyUGFnZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uUmlnaHQoKSB7XHJcbiAgICAgICAgbGV0IHRvdGFsUGFnZSA9IE1hdGguY2VpbCh0aGlzLmRhdGFMaXN0Lmxlbmd0aCAvIDQpO1xyXG4gICAgICAgIGlmICh0aGlzLmN1clBhZ2UgPj0gdG90YWxQYWdlIC0gMSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaW5pdFBhZ2UoKyt0aGlzLmN1clBhZ2UpO1xyXG4gICAgfVxyXG5cclxuXHRwdWJsaWMgcmVmcmVzaFJhbmtMaXN0KCkge1xyXG5cdFx0V2VpeGluQVBJLmdldFJhbmsoKGRhdGFMaXN0KSA9PiB7XHJcblx0XHRcdC8vY29uc29sZS5sb2coXCLmjqXlj5fmmL7npLrliJfooajmtojmga8tLS0tLS0tLS0tLS0tXCIpO1xyXG5cdFx0XHQvL2NvbnNvbGUubG9nKGRhdGFMaXN0KTtcclxuXHRcdFx0dGhpcy5kYXRhTGlzdCA9IGRhdGFMaXN0O1xyXG5cdFx0XHR0aGlzLmluaXRQYWdlKHRoaXMuY3VyUGFnZSk7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaW5pdFBhZ2UocGFnZTpudW1iZXIpIHtcclxuXHRcdHRoaXMucmFua0NlbGwwLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdHRoaXMucmFua0NlbGwxLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdHRoaXMucmFua0NlbGwyLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdHRoaXMucmFua0NlbGwzLnZpc2libGUgPSBmYWxzZTtcclxuXHJcblx0XHRsZXQgY291bnQgPSBNYXRoLm1pbihwYWdlICogNCArIDQsIHRoaXMuZGF0YUxpc3QubGVuZ3RoKTtcclxuXHRcdGZvciAobGV0IGkgPSBwYWdlICogNDsgaSA8IGNvdW50OyArK2kpIHtcclxuICAgICAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmRhdGFMaXN0W2ldO1xyXG4gICAgICAgICAgICB0aGlzLnNldENlbGwodGhpc1tcInJhbmtDZWxsXCIgKyBpICUgNF0sIGRhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcblx0XHRsZXQgZGF0YSA9IHRoaXMuZ2V0RGF0YSh0aGlzLm9wZW5pZCk7XHJcblx0XHRpZiAoZGF0YSkge1xyXG5cdFx0XHR0aGlzLnNldENlbGwodGhpcy5yYW5rU2VsZiwgZGF0YSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHNldENlbGwoY2VsbCwgZGF0YSkgeyBcclxuXHRcdGNlbGwudmlzaWJsZSA9IHRydWU7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcblxyXG4gICAgICAgIGxldCBpY29uUmFuazpMYXlhLkltYWdlID0gY2VsbC5nZXRDaGlsZEJ5TmFtZShcImljb25SYW5rXCIpIGFzIExheWEuSW1hZ2U7XHJcbiAgICAgICAgbGV0IGljb25IZWFkOkxheWEuSW1hZ2UgPSBjZWxsLmdldENoaWxkQnlOYW1lKFwiaWNvbkhlYWRcIikgYXMgTGF5YS5JbWFnZTtcclxuXHJcbiAgICAgICAgbGV0IHR4dFJhbms6TGF5YS5UZXh0ID0gY2VsbC5nZXRDaGlsZEJ5TmFtZShcInR4dFJhbmtcIikgYXMgTGF5YS5UZXh0O1xyXG4gICAgICAgIGxldCBuaWNrTmFtZTpMYXlhLlRleHQgPSBjZWxsLmdldENoaWxkQnlOYW1lKFwibmlja05hbWVcIikgYXMgTGF5YS5UZXh0O1xyXG4gICAgICAgIGxldCB0eHRFeHA6TGF5YS5UZXh0ID0gY2VsbC5nZXRDaGlsZEJ5TmFtZShcInR4dEV4cFwiKSBhcyBMYXlhLlRleHQ7XHJcblxyXG4gICAgICAgIGljb25SYW5rLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICBpZiAoZGF0YS5yYW5rIDw9IDMpIHtcclxuICAgICAgICAgICAgaWNvblJhbmsudmlzaWJsZSA9IHRydWU7XHJcbiAgICAgICAgICAgIGljb25SYW5rLnNraW4gPSBcInJhbmsvcmFua1wiICsgZGF0YS5yYW5rICsgXCIucG5nXCI7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpY29uSGVhZC5za2luID0gXCJcIiArIGRhdGEuYXZhdGFyVXJsO1xyXG4gICAgICAgIHR4dFJhbmsudGV4dCA9IFwiXCIgKyBkYXRhLnJhbms7XHJcbiAgICAgICAgbmlja05hbWUudGV4dCA9IFwiXCIgKyBkYXRhLm5pY2tuYW1lO1xyXG4gICAgICAgIHR4dEV4cC50ZXh0ID0gXCJcIiArIGRhdGEuc2NvcmU7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGdldERhdGEob3BlbmlkKSB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmRhdGFMaXN0Lmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhID0gdGhpcy5kYXRhTGlzdFtpXTtcclxuICAgICAgICAgICAgaWYgKGRhdGEub3BlbmlkID09IG9wZW5pZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG5cdFxyXG5cdHByaXZhdGUgcmVTb3J0KCkge1xyXG5cdFx0bGV0IGRhdGEgPSB0aGlzLmdldERhdGEodGhpcy5vcGVuaWQpO1xyXG5cdFx0aWYgKGRhdGEpIHtcclxuXHRcdFx0ZGF0YS5zY29yZSA9IHRoaXMuY3VyU2NvcmU7XHJcblx0XHR9XHJcblx0XHR0aGlzLmRhdGFMaXN0LnNvcnQoKGEsIGIpID0+IGIuc2NvcmUgLSBhLnNjb3JlKTtcclxuXHRcdGZvciAobGV0IGkgPSAwLCBsZW4gPSB0aGlzLmRhdGFMaXN0Lmxlbmd0aDsgaSA8IGxlbjsgKytpKSB7XHJcblx0XHRcdHRoaXMuZGF0YUxpc3RbaV0ucmFuayA9IGkgKyAxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWZyZXNoQmV5b25kKHVpKSB7XHJcblx0XHRXZWl4aW5BUEkuZ2V0UmFuaygoZGF0YUxpc3QpID0+IHtcclxuXHRcdFx0dGhpcy5kYXRhTGlzdCA9IGRhdGFMaXN0O1xyXG5cdFx0XHR0aGlzLnJlU29ydCgpO1xyXG5cclxuXHRcdFx0bGV0IHNlbGZJbmRleCA9IHRoaXMuZGF0YUxpc3QubGVuZ3RoIC0gMTtcclxuXHRcdFx0bGV0IGRhdGEgPSB0aGlzLmdldERhdGEodGhpcy5vcGVuaWQpO1xyXG5cdFx0XHRpZiAoZGF0YSkge1xyXG5cdFx0XHRcdHNlbGZJbmRleCA9IGRhdGEucmFuayAtIDE7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGxldCBiZXlvbmREYXRhID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXggLSAxXTtcclxuXHRcdFx0aWYgKGJleW9uZERhdGEgPT0gbnVsbCkge1xyXG5cdFx0XHRcdGJleW9uZERhdGEgPSB0aGlzLmRhdGFMaXN0W3NlbGZJbmRleF07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChiZXlvbmREYXRhKSB7XHJcblx0XHRcdFx0bGV0IGljb25IZWFkID0gdWkuZ2V0Q2hpbGRCeU5hbWUoXCJpY29uSGVhZFwiKSBhcyBMYXlhLkltYWdlO1xyXG5cdFx0XHRcdGxldCBuaWNrTmFtZSA9IHVpLmdldENoaWxkQnlOYW1lKFwibmlja05hbWVcIikgYXMgTGF5YS5UZXh0O1xyXG5cdFx0XHRcdGxldCB0eHRFeHAgPSB1aS5nZXRDaGlsZEJ5TmFtZShcInR4dEV4cFwiKSBhcyBMYXlhLlRleHQ7XHJcblxyXG5cdFx0XHRcdGljb25IZWFkLnNraW4gPSBcIlwiICsgYmV5b25kRGF0YS5hdmF0YXJVcmw7XHJcblx0XHRcdFx0bmlja05hbWUudGV4dCA9IFwiXCIgKyBiZXlvbmREYXRhLm5pY2tuYW1lO1xyXG4gICAgICAgICAgICAgICAgdHh0RXhwLnRleHQgPSBcIlwiICsgYmV5b25kRGF0YS5zY29yZTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHQvL+WNs+Wwhui2hei2iuWwj1xyXG5cdHB1YmxpYyByZWZyZXNoUmFua1RvcDEoKSB7XHJcblx0XHR0aGlzLnJlZnJlc2hCZXlvbmQodGhpcy5zdWJfcmFua1RvcDEpO1xyXG5cdH1cclxuXHJcblx0Ly/ljbPlsIbotoXotorlpKdcclxuXHRwdWJsaWMgcmVmcmVzaFJhbmtUb3AyKCkge1xyXG5cdFx0dGhpcy5yZWZyZXNoQmV5b25kKHRoaXMuc3ViX3JhbmtUb3AyKTtcclxuXHR9XHJcblxyXG5cdC8v5Y2z5bCG6LaF6LaK57uT566XXHJcblx0cHVibGljIHJlZnJlc2hSYW5rRW5kMSgpIHtcclxuXHRcdHRoaXMucmVmcmVzaEJleW9uZCh0aGlzLnN1Yl9yYW5rRW5kMSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIHJlZnJlc2hSYW5rRW5kKGhlYWQxOkxheWEuSW1hZ2UsIGhlYWQyOkxheWEuSW1hZ2UsIGhlYWQzOkxheWEuSW1hZ2UpIHtcclxuXHRcdFxyXG5cdH1cclxuXHJcblx0Ly/nu5PnrpfmjpLooYzmppxcclxuXHRwdWJsaWMgcmVmcmVzaFJhbmtFbmQyKCkge1xyXG5cdFx0bGV0IGhlYWQxID0gdGhpcy5yYW5rRW5kMkhlYWQxO1xyXG5cdFx0bGV0IGhlYWQyID0gdGhpcy5yYW5rRW5kMkhlYWQyO1xyXG5cdFx0bGV0IGhlYWQzID0gdGhpcy5yYW5rRW5kMkhlYWQzO1xyXG5cdFx0aGVhZDEudmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0aGVhZDIudmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0aGVhZDMudmlzaWJsZSA9IGZhbHNlO1xyXG5cclxuXHRcdFdlaXhpbkFQSS5nZXRSYW5rKChkYXRhTGlzdCkgPT4ge1xyXG5cdFx0XHR0aGlzLmRhdGFMaXN0ID0gZGF0YUxpc3Q7XHJcblx0XHRcdHRoaXMucmVTb3J0KCk7XHJcblxyXG5cdFx0XHRsZXQgc2VsZkluZGV4ID0gdGhpcy5kYXRhTGlzdC5sZW5ndGggLSAxO1xyXG5cdFx0XHRsZXQgZGF0YSA9IHRoaXMuZ2V0RGF0YSh0aGlzLm9wZW5pZCk7XHJcblx0XHRcdGlmIChkYXRhKSB7XHJcblx0XHRcdFx0c2VsZkluZGV4ID0gZGF0YS5yYW5rIC0gMTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bGV0IGZ1bmMgPSAoZGF0YTEsIGRhdGEyLCBkYXRhMykgPT4ge1xyXG5cdFx0XHRcdGlmIChkYXRhMSkge1xyXG5cdFx0XHRcdFx0aGVhZDEudmlzaWJsZSA9IHRydWU7XHJcblx0XHRcdFx0XHRoZWFkMS5za2luID0gZGF0YTEuYXZhdGFyVXJsO1xyXG5cclxuXHRcdFx0XHRcdGxldCBuYW1lID0gaGVhZDEuZ2V0Q2hpbGRCeU5hbWUoXCJuYW1lXCIpIGFzIExheWEuVGV4dDtcclxuXHRcdFx0XHRcdGxldCBzY29yZSA9IGhlYWQxLmdldENoaWxkQnlOYW1lKFwic2NvcmVcIikgYXMgTGF5YS5UZXh0O1xyXG5cdFx0XHRcdFx0bmFtZS50ZXh0ID0gXCJcIiArIGRhdGExLm5pY2tuYW1lO1xyXG5cdFx0XHRcdFx0c2NvcmUudGV4dCA9IFwiXCIgKyBkYXRhMS5zY29yZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0aWYgKGRhdGEyKSB7XHJcblx0XHRcdFx0XHRoZWFkMi52aXNpYmxlID0gdHJ1ZTtcclxuXHRcdFx0XHRcdGhlYWQyLnNraW4gPSBkYXRhMi5hdmF0YXJVcmw7XHJcblxyXG5cdFx0XHRcdFx0bGV0IG5hbWUgPSBoZWFkMi5nZXRDaGlsZEJ5TmFtZShcIm5hbWVcIikgYXMgTGF5YS5UZXh0O1xyXG5cdFx0XHRcdFx0bGV0IHNjb3JlID0gaGVhZDIuZ2V0Q2hpbGRCeU5hbWUoXCJzY29yZVwiKSBhcyBMYXlhLlRleHQ7XHJcblx0XHRcdFx0XHRuYW1lLnRleHQgPSBcIlwiICsgZGF0YTIubmlja25hbWU7XHJcblx0XHRcdFx0XHRzY29yZS50ZXh0ID0gXCJcIiArIGRhdGEyLnNjb3JlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRpZiAoZGF0YTMpIHtcclxuXHRcdFx0XHRcdGhlYWQzLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0aGVhZDMuc2tpbiA9IGRhdGEzLmF2YXRhclVybDtcclxuXHJcblx0XHRcdFx0XHRsZXQgbmFtZSA9IGhlYWQzLmdldENoaWxkQnlOYW1lKFwibmFtZVwiKSBhcyBMYXlhLlRleHQ7XHJcblx0XHRcdFx0XHRsZXQgc2NvcmUgPSBoZWFkMy5nZXRDaGlsZEJ5TmFtZShcInNjb3JlXCIpIGFzIExheWEuVGV4dDtcclxuXHRcdFx0XHRcdG5hbWUudGV4dCA9IFwiXCIgKyBkYXRhMy5uaWNrbmFtZTtcclxuXHRcdFx0XHRcdHNjb3JlLnRleHQgPSBcIlwiICsgZGF0YTMuc2NvcmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0aWYgKHNlbGZJbmRleCA9PSB0aGlzLmRhdGFMaXN0Lmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0XHQvL+acgOWQjuS4gOWQjVxyXG5cdFx0XHRcdGxldCBkYXRhMSA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4IC0gMl07XHJcblx0XHRcdFx0bGV0IGRhdGEyID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXggLSAxXTtcclxuXHRcdFx0XHRsZXQgZGF0YTMgPSB0aGlzLmRhdGFMaXN0W3NlbGZJbmRleF07XHJcblx0XHRcdFx0ZnVuYyhkYXRhMSwgZGF0YTIsIGRhdGEzKTtcclxuXHRcdFx0fSBlbHNlIGlmIChzZWxmSW5kZXggPT0gMCkge1xyXG5cdFx0XHRcdC8v56ys5LiA5ZCNXHJcblx0XHRcdFx0bGV0IGRhdGExID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXhdO1xyXG5cdFx0XHRcdGxldCBkYXRhMiA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4ICsgMV07XHJcblx0XHRcdFx0bGV0IGRhdGEzID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXggKyAyXTtcclxuXHRcdFx0XHRmdW5jKGRhdGExLCBkYXRhMiwgZGF0YTMpO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGxldCBkYXRhMSA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4IC0gMV07XHJcblx0XHRcdFx0bGV0IGRhdGEyID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXhdO1xyXG5cdFx0XHRcdGxldCBkYXRhMyA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4ICsgMV07XHJcblx0XHRcdFx0ZnVuYyhkYXRhMSwgZGF0YTIsIGRhdGEzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgcmVmcmVzaFJhbmtSaWdodCgpIHtcclxuXHRcdHRoaXMuYmdSYW5rUmlnaHQxLnZpc2libGUgPSBmYWxzZTtcclxuXHRcdHRoaXMuYmdSYW5rUmlnaHQxLnggPSAxOTA7XHJcblx0XHR0aGlzLmJnUmFua1JpZ2h0Mi52aXNpYmxlID0gZmFsc2U7XHJcblx0XHR0aGlzLmJnUmFua1JpZ2h0Mi54ID0gMTkwO1xyXG5cdFx0dGhpcy5iZ1JhbmtSaWdodDMudmlzaWJsZSA9IGZhbHNlO1xyXG5cdFx0dGhpcy5iZ1JhbmtSaWdodDMueCA9IDE5MDtcclxuXHJcblx0XHRXZWl4aW5BUEkuZ2V0UmFuaygoZGF0YUxpc3QpID0+IHtcclxuXHRcdFx0Ly9jb25zb2xlLmxvZyhcIuaOpeWPl+aYvuekuuWPs+i+uea2iOaBry0tLS0tLS0tLS0tLS1cIik7XHJcblx0XHRcdC8vY29uc29sZS5sb2coZGF0YUxpc3QpO1xyXG5cdFx0XHR0aGlzLmRhdGFMaXN0ID0gZGF0YUxpc3Q7XHJcblx0XHRcdHRoaXMucmVTb3J0KCk7XHJcblxyXG5cdFx0XHRsZXQgc2VsZkluZGV4ID0gdGhpcy5kYXRhTGlzdC5sZW5ndGggLSAxO1xyXG5cdFx0XHRsZXQgZGF0YSA9IHRoaXMuZ2V0RGF0YSh0aGlzLm9wZW5pZCk7XHJcblx0XHRcdGlmIChkYXRhKSB7XHJcblx0XHRcdFx0c2VsZkluZGV4ID0gZGF0YS5yYW5rIC0gMTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0bGV0IGZ1bmMgPSAoZGF0YTEsIGRhdGEyLCBkYXRhMykgPT4ge1xyXG5cdFx0XHRcdGlmIChkYXRhMSkge1xyXG5cdFx0XHRcdFx0dGhpcy5iZ1JhbmtSaWdodDEudmlzaWJsZSA9IHRydWU7XHJcblx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKCBkYXRhMS5hdmF0YXJVcmwpO1xyXG5cdFx0XHRcdFx0dGhpcy5yYW5rUmlnaHQxLnNraW4gPSBkYXRhMS5hdmF0YXJVcmw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhMikge1xyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyggZGF0YTEuYXZhdGFyVXJsKTtcclxuXHRcdFx0XHRcdHRoaXMuYmdSYW5rUmlnaHQyLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5yYW5rUmlnaHQyLnNraW4gPSBkYXRhMi5hdmF0YXJVcmw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGlmIChkYXRhMykge1xyXG5cdFx0XHRcdFx0Ly9jb25zb2xlLmxvZyggZGF0YTEuYXZhdGFyVXJsKTtcclxuXHRcdFx0XHRcdHRoaXMuYmdSYW5rUmlnaHQzLnZpc2libGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0dGhpcy5yYW5rUmlnaHQzLnNraW4gPSBkYXRhMy5hdmF0YXJVcmw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG5cclxuXHRcdFx0aWYgKHNlbGZJbmRleCA9PSB0aGlzLmRhdGFMaXN0Lmxlbmd0aCAtIDEpIHtcclxuXHRcdFx0XHQvL+acgOWQjuS4gOWQjVxyXG5cdFx0XHRcdHRoaXMuYmdSYW5rUmlnaHQzLnggPSAxNzA7XHJcblx0XHRcdFx0bGV0IGRhdGExID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXggLSAyXTtcclxuXHRcdFx0XHRsZXQgZGF0YTIgPSB0aGlzLmRhdGFMaXN0W3NlbGZJbmRleCAtIDFdO1xyXG5cdFx0XHRcdGxldCBkYXRhMyA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4XTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKCBkYXRhMS5hdmF0YXJVcmwpO1xyXG5cdFx0XHRcdGZ1bmMoZGF0YTEsIGRhdGEyLCBkYXRhMyk7XHJcblx0XHRcdH0gZWxzZSBpZiAoc2VsZkluZGV4ID09IDApIHtcclxuXHRcdFx0XHQvL+esrOS4gOWQjVxyXG5cdFx0XHRcdHRoaXMuYmdSYW5rUmlnaHQxLnggPSAxNzA7XHJcblx0XHRcdFx0bGV0IGRhdGExID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXhdO1xyXG5cdFx0XHRcdGxldCBkYXRhMiA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4ICsgMV07XHJcblx0XHRcdFx0bGV0IGRhdGEzID0gdGhpcy5kYXRhTGlzdFtzZWxmSW5kZXggKyAyXTtcclxuXHRcdFx0XHQvL2NvbnNvbGUubG9nKCBkYXRhMS5hdmF0YXJVcmwpO1xyXG5cdFx0XHRcdGZ1bmMoZGF0YTEsIGRhdGEyLCBkYXRhMyk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0dGhpcy5iZ1JhbmtSaWdodDIueCA9IDE3MDtcclxuXHRcdFx0XHRsZXQgZGF0YTEgPSB0aGlzLmRhdGFMaXN0W3NlbGZJbmRleCAtIDFdO1xyXG5cdFx0XHRcdGxldCBkYXRhMiA9IHRoaXMuZGF0YUxpc3Rbc2VsZkluZGV4XTtcclxuXHRcdFx0XHRsZXQgZGF0YTMgPSB0aGlzLmRhdGFMaXN0W3NlbGZJbmRleCArIDFdO1xyXG5cdFx0XHRcdC8vY29uc29sZS5sb2coIGRhdGExLmF2YXRhclVybCk7XHJcblx0XHRcdFx0ZnVuYyhkYXRhMSwgZGF0YTIsIGRhdGEzKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59IiwiLy8g5b6u5L+hQVBJXHJcbi8vIFt7XCJvcGVuaWRcIjpcIm9jOU1cIixcIm5pY2tuYW1lXCI6XCJrYWRcIixcImF2YXRhclVybFwiOlwiaHR0cHM6XCIsXCJLVkRhdGFMaXN0XCI6W3tcImtleVwiOlwic2NvcmVcIixcInZhbHVlXCI6XCI4OTBcIn1dfV1cclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2VpeGluQVBJIHtcclxuICAgIC8vIOiOt+WPluaOkuWQjVxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgcGFyc2VEYXRhKGNhbGxiYWNrLCByZXNMaXN0KSB7XHJcbiAgICAgICAgaWYgKHJlc0xpc3QgPT0gbnVsbCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgYXJyYXkgPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBpIGluIHJlc0xpc3QpIHtcclxuICAgICAgICAgICAgbGV0IG9uZURhdGEgPSByZXNMaXN0W2ldO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBqIGluIG9uZURhdGEuS1ZEYXRhTGlzdCkge1xyXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSBvbmVEYXRhLktWRGF0YUxpc3Rbal07XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5rZXkgPT0gXCJzY29yZVwiKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZhbHVlczpzdHJpbmdbXSA9IGl0ZW0udmFsdWUuc3BsaXQoXCJfXCIpO1xyXG4gICAgICAgICAgICAgICAgICAgIGFycmF5LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuaWNrbmFtZTogb25lRGF0YS5uaWNrbmFtZSwgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF2YXRhclVybDogb25lRGF0YS5hdmF0YXJVcmwsIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuaWQ6IG9uZURhdGEub3BlbmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzY29yZTogcGFyc2VJbnQodmFsdWVzWzBdIHx8IFwiMFwiKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXI6IHBhcnNlSW50KHZhbHVlc1sxXSB8fCBcIjBcIilcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgYXJyYXkuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gYi5zY29yZSAtIGEuc2NvcmU7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwLCBsZW4gPSBhcnJheS5sZW5ndGg7IGkgPCBsZW47ICsraSkge1xyXG4gICAgICAgICAgICBhcnJheVtpXS5yYW5rID0gaSArIDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNhbGxiYWNrKGFycmF5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldFJhbmsoY2FsbGJhY2s6RnVuY3Rpb24pIHtcclxuICAgICAgICB3eC5nZXRGcmllbmRDbG91ZFN0b3JhZ2Uoe1xyXG4gICAgICAgICAgICBrZXlMaXN0OiBbJ3Njb3JlJ10sIC8vIOS9oOimgeiOt+WPlueahOOAgeaJmOeuoeWcqOW+ruS/oeWQjuWPsOeahGtleVxyXG4gICAgICAgICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcnNlRGF0YShjYWxsYmFjaywgcmVzLmRhdGEpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8g6I635Y+W576k5o6S5ZCNXHJcbiAgICBwdWJsaWMgc3RhdGljIGdldEdyb3VwUmFuayhjYWxsYmFjazpGdW5jdGlvbiwgdGlja2V0OnN0cmluZykge1xyXG4gICAgICAgIC8vIHd4LmdldEdyb3VwQ2xvdWRTdG9yYWdlKHtcclxuICAgICAgICAvLyAgICAga2V5TGlzdDogWydzY29yZSddLCAvLyDkvaDopoHojrflj5bnmoTjgIHmiZjnrqHlnKjlvq7kv6HlkI7lj7DnmoRrZXlcclxuICAgICAgICAvLyAgICAgc2hhcmVUaWNrZXQ6dGlja2V0LFxyXG4gICAgICAgIC8vICAgICBzdWNjZXNzOiAocmVzKSA9PiB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLnBhcnNlRGF0YShjYWxsYmFjaywgcmVzLmRhdGEpO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfSk7XHJcbiAgICB9XHJcbn0iXX0=
|