@rosen-bridge/minimum-fee 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -43,6 +43,10 @@ export declare class MinimumFeeBoxBuilder {
|
|
|
43
43
|
* validates some of specified configs
|
|
44
44
|
*/
|
|
45
45
|
protected validate: () => void;
|
|
46
|
+
/**
|
|
47
|
+
* removes heights and configs of all chains which don't have any configs
|
|
48
|
+
*/
|
|
49
|
+
prune: () => MinimumFeeBoxBuilder;
|
|
46
50
|
/**
|
|
47
51
|
* validates specified configs and builds ErgoBoxCandidate of config box using them
|
|
48
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinimumFeeBoxBuilder.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeBoxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,
|
|
1
|
+
{"version":3,"file":"MinimumFeeBoxBuilder.d.ts","sourceRoot":"","sources":["../../lib/MinimumFeeBoxBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EAMR,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAK9B,qBAAa,oBAAoB;IAC/B,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,SAAS,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC7B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAChC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAMlD;;;OAGG;IACH,SAAS,cAAe,gBAAgB,KAAG,oBAAoB,CAG7D;IAEF;;;OAGG;IACH,YAAY,UAAW,MAAM,KAAG,oBAAoB,CAGlD;IAEF;;OAEG;IACH,UAAU,QAAO,MAAM,GAAG,CAAC,CAEzB;IAEF;;;;OAIG;IACH,QAAQ,YAAa,MAAM,KAAG,oBAAoB,CAGhD;IAEF;;;OAGG;IACH,SAAS,kBAAmB,MAAM,KAAG,oBAAoB,CAGvD;IAEF;;;OAGG;IACH,QAAQ,YAAa,MAAM,KAAG,oBAAoB,CAGhD;IAEF;;OAEG;IACH,SAAS,CAAC,QAAQ,QAAO,IAAI,CA6B3B;IAEF;;OAEG;IACH,KAAK,QAAO,oBAAoB,CA8B9B;IAEF;;OAEG;IACH,KAAK,QAAO,gBAAgB,CAiC1B;CACH"}
|
|
@@ -83,6 +83,35 @@ export class MinimumFeeBoxBuilder {
|
|
|
83
83
|
});
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* removes heights and configs of all chains which don't have any configs
|
|
88
|
+
*/
|
|
89
|
+
prune = () => {
|
|
90
|
+
const activeChains = [];
|
|
91
|
+
for (let i = 0; i < this.fees.length; i++) {
|
|
92
|
+
const chains = Object.keys(this.fees[i].heights);
|
|
93
|
+
chains.forEach((chain) => {
|
|
94
|
+
const feeConfig = this.fees[i].configs[chain];
|
|
95
|
+
if (feeConfig &&
|
|
96
|
+
(feeConfig.bridgeFee !== -1n ||
|
|
97
|
+
feeConfig.networkFee !== -1n ||
|
|
98
|
+
feeConfig.rsnRatio !== -1n ||
|
|
99
|
+
feeConfig.rsnRatioDivisor !== -1n ||
|
|
100
|
+
feeConfig.feeRatio !== -1n))
|
|
101
|
+
activeChains.push(chain);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
for (let i = 0; i < this.fees.length; i++) {
|
|
105
|
+
const chains = Object.keys(this.fees[i].heights);
|
|
106
|
+
chains.forEach((chain) => {
|
|
107
|
+
if (!activeChains.includes(chain)) {
|
|
108
|
+
delete this.fees[i].heights[chain];
|
|
109
|
+
delete this.fees[i].configs[chain];
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
return this;
|
|
114
|
+
};
|
|
86
115
|
/**
|
|
87
116
|
* validates specified configs and builds ErgoBoxCandidate of config box using them
|
|
88
117
|
*/
|
|
@@ -106,4 +135,4 @@ export class MinimumFeeBoxBuilder {
|
|
|
106
135
|
return boxBuilder.build();
|
|
107
136
|
};
|
|
108
137
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvTWluaW11bUZlZUJveEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUNYLE9BQU8sR0FHUixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5QyxNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLElBQUksQ0FBYTtJQUNqQixRQUFRLENBQVc7SUFDbkIsU0FBUyxDQUFTO0lBQ2xCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsT0FBTyxDQUFTO0lBRTFCLFlBQVksYUFBcUIsRUFBRSxPQUFlO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsR0FBRyxDQUFDLFNBQTJCLEVBQXdCLEVBQUU7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQXdCLEVBQUU7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8s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RUFBRSxDQUFDLENBQUM7UUFFcEQsT0FBTyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGRyZXNzLFxuICBCb3hWYWx1ZSxcbiAgQ29udHJhY3QsXG4gIEVyZ29Cb3hDYW5kaWRhdGVCdWlsZGVyLFxuICBJNjQsXG4gIFRva2VuQW1vdW50LFxuICBUb2tlbklkLFxuICBDb25zdGFudCxcbiAgRXJnb0JveENhbmRpZGF0ZSxcbn0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgTWluaW11bUZlZUNvbmZpZyB9IGZyb20gJy4vTWluaW11bUZlZUNvbmZpZyc7XG5pbXBvcnQgeyBGZWUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEludmFsaWRDb25maWcgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBFUkdPX05BVElWRV9UT0tFTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGZlZVRvUmVnaXN0ZXJWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIE1pbmltdW1GZWVCb3hCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIGZlZXM6IEFycmF5PEZlZT47XG4gIHByb3RlY3RlZCBib3hWYWx1ZTogQm94VmFsdWU7XG4gIHByb3RlY3RlZCBib3hIZWlnaHQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIHRva2VuSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIG1pbmltdW1GZWVORlQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtaW5pbXVtRmVlTkZUOiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuZmVlcyA9IFtdO1xuICAgIHRoaXMubWluaW11bUZlZU5GVCA9IG1pbmltdW1GZWVORlQ7XG4gICAgdGhpcy5hZGRyZXNzID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGRzIGEgZmVlQ29uZmlnXG4gICAqIEBwYXJhbSBmZWVDb25maWdcbiAgICovXG4gIGFkZENvbmZpZyA9IChmZWVDb25maWc6IE1pbmltdW1GZWVDb25maWcpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5mZWVzLnB1c2goZmVlQ29uZmlnLmdldENvbmZpZygpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhIGNvbmZpZyBieSBpbmRleFxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHJlbW92ZUNvbmZpZyA9IChpbmRleDogbnVtYmVyKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuZmVlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZXRzIGN1cnJlbnQgZmVlQ29uZmlnXG4gICAqL1xuICBnZXRDb25maWdzID0gKCk6IEFycmF5PEZlZT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmZlZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHNldHMgRXJnb0JveCBFcmcgdmFsdWVcbiAgICogQHBhcmFtIG5hbm9FcmdcbiAgICogQHJldHVybnNcbiAgICovXG4gIHNldFZhbHVlID0gKG5hbm9Fcmc6IGJpZ2ludCk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLmJveFZhbHVlID0gQm94VmFsdWUuZnJvbV9pNjQoSTY0LmZyb21fc3RyKG5hbm9FcmcudG9TdHJpbmcoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIEVyZ29Cb3ggY3JlYXRpb25oZWlnaHRcbiAgICogQHBhcmFtIGN1cnJlbnRIZWlnaHRcbiAgICovXG4gIHNldEhlaWdodCA9IChjdXJyZW50SGVpZ2h0OiBudW1iZXIpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5ib3hIZWlnaHQgPSBjdXJyZW50SGVpZ2h0O1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIGNvbmZpZyB0b2tlbiBpZFxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKi9cbiAgc2V0VG9rZW4gPSAodG9rZW5JZDogc3RyaW5nKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMudG9rZW5JZCA9IHRva2VuSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBzb21lIG9mIHNwZWNpZmllZCBjb25maWdzXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLmJveFZhbHVlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYEJveCB2YWx1ZSBhcmd1bWVudCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICghdGhpcy5ib3hIZWlnaHQpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhgQm94IGNyZWF0aW9uIGhlaWdodCBhcmd1bWVudCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICghdGhpcy50b2tlbklkKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYENvbmZpZyB0b2tlbiBpZCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICh0aGlzLmZlZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoXG4gICAgICAgIGBObyBjb25maWcgYWRkZWQuIFBsZWFzZSBhZGQgYXQgbGVhc3Qgb25lIGNvbmZpZ2BcbiAgICAgICk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmVlcy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYWlucyA9IE9iamVjdC5rZXlzKHRoaXMuZmVlc1swXS5oZWlnaHRzKTtcbiAgICAgIGNoYWlucy5mb3JFYWNoKChjaGFpbikgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZmVlc1tpICsgMV0uaGVpZ2h0c1tjaGFpbl0pXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoXG4gICAgICAgICAgICBgRXhwZWN0ZWQgY2hhaW4gWyR7Y2hhaW59XSBhdCBpbmRleCBbJHtpICsgMX1dYFxuICAgICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dIDwgdGhpcy5mZWVzW2ldLmhlaWdodHNbY2hhaW5dKVxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICAgICAgYEFsbCBoZWlnaHRzIGZvciBhIGNoYWluIHNob3VsZCBiZSBhc2NlbmRpbmcuIEhlaWdodHMgb2YgY2hhaW4gWyR7Y2hhaW59XSBhdCBpbmRleGVzIFske2l9LCR7XG4gICAgICAgICAgICAgIGkgKyAxXG4gICAgICAgICAgICB9XSBhcmUgaW52YWxpZCBbJHt0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dfSA8ICR7XG4gICAgICAgICAgICAgIHRoaXMuZmVlc1tpXS5oZWlnaHRzW2NoYWluXVxuICAgICAgICAgICAgfV1gXG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogdmFsaWRhdGVzIHNwZWNpZmllZCBjb25maWdzIGFuZCBidWlsZHMgRXJnb0JveENhbmRpZGF0ZSBvZiBjb25maWcgYm94IHVzaW5nIHRoZW1cbiAgICovXG4gIGJ1aWxkID0gKCk6IEVyZ29Cb3hDYW5kaWRhdGUgPT4ge1xuICAgIHRoaXMudmFsaWRhdGUoKTtcblxuICAgIC8vIGFkZCBib3ggdmFsdWUsIGFkZHJlc3MgYW5kIGNyZWF0aW9uIGhlaWdodFxuICAgIGNvbnN0IGJveEJ1aWxkZXIgPSBuZXcgRXJnb0JveENhbmRpZGF0ZUJ1aWxkZXIoXG4gICAgICB0aGlzLmJveFZhbHVlLFxuICAgICAgQ29udHJhY3QubmV3KEFkZHJlc3MuZnJvbV9iYXNlNTgodGhpcy5hZGRyZXNzKS50b19lcmdvX3RyZWUoKSksXG4gICAgICB0aGlzLmJveEhlaWdodFxuICAgICk7XG5cbiAgICAvLyBhZGQgYm94IHRva2Vuc1xuICAgIGJveEJ1aWxkZXIuYWRkX3Rva2VuKFxuICAgICAgVG9rZW5JZC5mcm9tX3N0cih0aGlzLm1pbmltdW1GZWVORlQpLFxuICAgICAgVG9rZW5BbW91bnQuZnJvbV9pNjQoSTY0LmZyb21fc3RyKCcxJykpXG4gICAgKTtcbiAgICBpZiAodGhpcy50b2tlbklkICE9PSBFUkdPX05BVElWRV9UT0tFTilcbiAgICAgIGJveEJ1aWxkZXIuYWRkX3Rva2VuKFxuICAgICAgICBUb2tlbklkLmZyb21fc3RyKHRoaXMudG9rZW5JZCksXG4gICAgICAgIFRva2VuQW1vdW50LmZyb21faTY0KEk2NC5mcm9tX3N0cignMScpKVxuICAgICAgKTtcblxuICAgIC8vIGdlbmVyYXRlIHJlZ2lzdGVyIHZhbHVlc1xuICAgIGNvbnN0IHJlZ2lzdGVyVmFsdWVzID0gZmVlVG9SZWdpc3RlclZhbHVlcyh0aGlzLmZlZXMpO1xuXG4gICAgLy8gYWRkIGJveCByZWdpc3RlcnNcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg0LCByZWdpc3RlclZhbHVlcy5SNCk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNSwgcmVnaXN0ZXJWYWx1ZXMuUjUpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDYsIHJlZ2lzdGVyVmFsdWVzLlI2KTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg3LCByZWdpc3RlclZhbHVlcy5SNyk7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoOCwgcmVnaXN0ZXJWYWx1ZXMuUjgpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDksIHJlZ2lzdGVyVmFsdWVzLlI5KTtcblxuICAgIHJldHVybiBib3hCdWlsZGVyLmJ1aWxkKCk7XG4gIH07XG59XG4iXX0=
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWluaW11bUZlZUJveEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvTWluaW11bUZlZUJveEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLE9BQU8sRUFDUCxRQUFRLEVBQ1IsUUFBUSxFQUNSLHVCQUF1QixFQUN2QixHQUFHLEVBQ0gsV0FBVyxFQUNYLE9BQU8sR0FFUixNQUFNLHNCQUFzQixDQUFDO0FBRzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUU5QyxNQUFNLE9BQU8sb0JBQW9CO0lBQ3JCLElBQUksQ0FBYTtJQUNqQixRQUFRLENBQVc7SUFDbkIsU0FBUyxDQUFTO0lBQ2xCLE9BQU8sQ0FBUztJQUNoQixhQUFhLENBQVM7SUFDdEIsT0FBTyxDQUFTO0lBRTFCLFlBQVksYUFBcUIsRUFBRSxPQUFlO1FBQ2hELElBQUksQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFNBQVMsR0FBRyxDQUFDLFNBQTJCLEVBQXdCLEVBQUU7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQXdCLEVBQUU7UUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDSCxVQUFVLEdBQUcsR0FBZSxFQUFFO1FBQzVCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDLENBQUM7SUFFRjs7OztPQUlHO0lBQ0gsUUFBUSxHQUFHLENBQUMsT0FBZSxFQUF3QixFQUFFO1FBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSCxTQUFTLEdBQUcsQ0FBQyxhQUFxQixFQUF3QixFQUFFO1FBQzFELElBQUksQ0FBQyxTQUFTLEdBQUcsYUFBYSxDQUFDO1FBQy9CLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7OztPQUdHO0lBQ0gsUUFBUSxHQUFHLENBQUMsT0FBZSxFQUF3QixFQUFFO1FBQ25ELElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0lBRUY7O09BRUc7SUFDTyxRQUFRLEdBQUcsR0FBUyxFQUFFO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUNoQixNQUFNLElBQUksYUFBYSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTO1lBQ2pCLE1BQU0sSUFBSSxhQUFhLENBQUMsNkNBQTZDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFDZixNQUFNLElBQUksYUFBYSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxhQUFhLENBQ3JCLGlEQUFpRCxDQUNsRCxDQUFDO1FBRUosS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDbEMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsbUJBQW1CLEtBQUssZUFBZSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQ2hELENBQUM7Z0JBQ0osSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO29CQUMvRCxNQUFNLElBQUksYUFBYSxDQUNyQixrRUFBa0UsS0FBSyxpQkFBaUIsQ0FBQyxJQUN2RixDQUFDLEdBQUcsQ0FDTixrQkFBa0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUMvQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQzVCLEdBQUcsQ0FDSixDQUFDO1lBQ04sQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUMsQ0FBQztJQUVGOztPQUVHO0lBQ0gsS0FBSyxHQUFHLEdBQXlCLEVBQUU7UUFDakMsTUFBTSxZQUFZLEdBQWEsRUFBRSxDQUFDO1FBRWxDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUMsSUFDRSxTQUFTO29CQUNULENBQUMsU0FBUyxDQUFDLFNBQVMsS0FBSyxDQUFDLEVBQUU7d0JBQzFCLFNBQVMsQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO3dCQUM1QixTQUFTLENBQUMsUUFBUSxLQUFLLENBQUMsRUFBRTt3QkFDMUIsU0FBUyxDQUFDLGVBQWUsS0FBSyxDQUFDLEVBQUU7d0JBQ2pDLFNBQVMsQ0FBQyxRQUFRLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBRTdCLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0IsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDakQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDakMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDbkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDcEM7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLENBQUM7SUFFRjs7T0FFRztJQUNILEtBQUssR0FBRyxHQUFxQixFQUFFO1FBQzdCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQiw2Q0FBNkM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsSUFBSSx1QkFBdUIsQ0FDNUMsSUFBSSxDQUFDLFFBQVEsRUFDYixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLEVBQzlELElBQUksQ0FBQyxTQUFTLENBQ2YsQ0FBQztRQUVGLGlCQUFpQjtRQUNqQixVQUFVLENBQUMsU0FBUyxDQUNsQixPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDcEMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3hDLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssaUJBQWlCO1lBQ3BDLFVBQVUsQ0FBQyxTQUFTLENBQ2xCLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUM5QixXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDeEMsQ0FBQztRQUVKLDJCQUEyQjtRQUMzQixNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEQsb0JBQW9CO1FBQ3BCLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BELFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXBELE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzVCLENBQUMsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWRkcmVzcyxcbiAgQm94VmFsdWUsXG4gIENvbnRyYWN0LFxuICBFcmdvQm94Q2FuZGlkYXRlQnVpbGRlcixcbiAgSTY0LFxuICBUb2tlbkFtb3VudCxcbiAgVG9rZW5JZCxcbiAgRXJnb0JveENhbmRpZGF0ZSxcbn0gZnJvbSAnZXJnby1saWItd2FzbS1ub2RlanMnO1xuaW1wb3J0IHsgTWluaW11bUZlZUNvbmZpZyB9IGZyb20gJy4vTWluaW11bUZlZUNvbmZpZyc7XG5pbXBvcnQgeyBGZWUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IEludmFsaWRDb25maWcgfSBmcm9tICcuL2Vycm9ycyc7XG5pbXBvcnQgeyBFUkdPX05BVElWRV9UT0tFTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGZlZVRvUmVnaXN0ZXJWYWx1ZXMgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNsYXNzIE1pbmltdW1GZWVCb3hCdWlsZGVyIHtcbiAgcHJvdGVjdGVkIGZlZXM6IEFycmF5PEZlZT47XG4gIHByb3RlY3RlZCBib3hWYWx1ZTogQm94VmFsdWU7XG4gIHByb3RlY3RlZCBib3hIZWlnaHQ6IG51bWJlcjtcbiAgcHJvdGVjdGVkIHRva2VuSWQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIG1pbmltdW1GZWVORlQ6IHN0cmluZztcbiAgcHJvdGVjdGVkIGFkZHJlc3M6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihtaW5pbXVtRmVlTkZUOiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZykge1xuICAgIHRoaXMuZmVlcyA9IFtdO1xuICAgIHRoaXMubWluaW11bUZlZU5GVCA9IG1pbmltdW1GZWVORlQ7XG4gICAgdGhpcy5hZGRyZXNzID0gYWRkcmVzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBhZGRzIGEgZmVlQ29uZmlnXG4gICAqIEBwYXJhbSBmZWVDb25maWdcbiAgICovXG4gIGFkZENvbmZpZyA9IChmZWVDb25maWc6IE1pbmltdW1GZWVDb25maWcpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5mZWVzLnB1c2goZmVlQ29uZmlnLmdldENvbmZpZygpKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBhIGNvbmZpZyBieSBpbmRleFxuICAgKiBAcGFyYW0gaW5kZXhcbiAgICovXG4gIHJlbW92ZUNvbmZpZyA9IChpbmRleDogbnVtYmVyKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMuZmVlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBnZXRzIGN1cnJlbnQgZmVlQ29uZmlnXG4gICAqL1xuICBnZXRDb25maWdzID0gKCk6IEFycmF5PEZlZT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmZlZXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHNldHMgRXJnb0JveCBFcmcgdmFsdWVcbiAgICogQHBhcmFtIG5hbm9FcmdcbiAgICogQHJldHVybnNcbiAgICovXG4gIHNldFZhbHVlID0gKG5hbm9Fcmc6IGJpZ2ludCk6IE1pbmltdW1GZWVCb3hCdWlsZGVyID0+IHtcbiAgICB0aGlzLmJveFZhbHVlID0gQm94VmFsdWUuZnJvbV9pNjQoSTY0LmZyb21fc3RyKG5hbm9FcmcudG9TdHJpbmcoKSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIEVyZ29Cb3ggY3JlYXRpb25oZWlnaHRcbiAgICogQHBhcmFtIGN1cnJlbnRIZWlnaHRcbiAgICovXG4gIHNldEhlaWdodCA9IChjdXJyZW50SGVpZ2h0OiBudW1iZXIpOiBNaW5pbXVtRmVlQm94QnVpbGRlciA9PiB7XG4gICAgdGhpcy5ib3hIZWlnaHQgPSBjdXJyZW50SGVpZ2h0O1xuICAgIHJldHVybiB0aGlzO1xuICB9O1xuXG4gIC8qKlxuICAgKiBzZXRzIGNvbmZpZyB0b2tlbiBpZFxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKi9cbiAgc2V0VG9rZW4gPSAodG9rZW5JZDogc3RyaW5nKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIHRoaXMudG9rZW5JZCA9IHRva2VuSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBzb21lIG9mIHNwZWNpZmllZCBjb25maWdzXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGUgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKCF0aGlzLmJveFZhbHVlKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYEJveCB2YWx1ZSBhcmd1bWVudCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICghdGhpcy5ib3hIZWlnaHQpXG4gICAgICB0aHJvdyBuZXcgSW52YWxpZENvbmZpZyhgQm94IGNyZWF0aW9uIGhlaWdodCBhcmd1bWVudCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICghdGhpcy50b2tlbklkKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoYENvbmZpZyB0b2tlbiBpZCBpcyBub3QgZGVmaW5lZGApO1xuICAgIGlmICh0aGlzLmZlZXMubGVuZ3RoID09PSAwKVxuICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoXG4gICAgICAgIGBObyBjb25maWcgYWRkZWQuIFBsZWFzZSBhZGQgYXQgbGVhc3Qgb25lIGNvbmZpZ2BcbiAgICAgICk7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmVlcy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGNoYWlucyA9IE9iamVjdC5rZXlzKHRoaXMuZmVlc1swXS5oZWlnaHRzKTtcbiAgICAgIGNoYWlucy5mb3JFYWNoKChjaGFpbikgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZmVlc1tpICsgMV0uaGVpZ2h0c1tjaGFpbl0pXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRDb25maWcoXG4gICAgICAgICAgICBgRXhwZWN0ZWQgY2hhaW4gWyR7Y2hhaW59XSBhdCBpbmRleCBbJHtpICsgMX1dYFxuICAgICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dIDwgdGhpcy5mZWVzW2ldLmhlaWdodHNbY2hhaW5dKVxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkQ29uZmlnKFxuICAgICAgICAgICAgYEFsbCBoZWlnaHRzIGZvciBhIGNoYWluIHNob3VsZCBiZSBhc2NlbmRpbmcuIEhlaWdodHMgb2YgY2hhaW4gWyR7Y2hhaW59XSBhdCBpbmRleGVzIFske2l9LCR7XG4gICAgICAgICAgICAgIGkgKyAxXG4gICAgICAgICAgICB9XSBhcmUgaW52YWxpZCBbJHt0aGlzLmZlZXNbaSArIDFdLmhlaWdodHNbY2hhaW5dfSA8ICR7XG4gICAgICAgICAgICAgIHRoaXMuZmVlc1tpXS5oZWlnaHRzW2NoYWluXVxuICAgICAgICAgICAgfV1gXG4gICAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICAvKipcbiAgICogcmVtb3ZlcyBoZWlnaHRzIGFuZCBjb25maWdzIG9mIGFsbCBjaGFpbnMgd2hpY2ggZG9uJ3QgaGF2ZSBhbnkgY29uZmlnc1xuICAgKi9cbiAgcHJ1bmUgPSAoKTogTWluaW11bUZlZUJveEJ1aWxkZXIgPT4ge1xuICAgIGNvbnN0IGFjdGl2ZUNoYWluczogc3RyaW5nW10gPSBbXTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5mZWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjaGFpbnMgPSBPYmplY3Qua2V5cyh0aGlzLmZlZXNbaV0uaGVpZ2h0cyk7XG4gICAgICBjaGFpbnMuZm9yRWFjaCgoY2hhaW4pID0+IHtcbiAgICAgICAgY29uc3QgZmVlQ29uZmlnID0gdGhpcy5mZWVzW2ldLmNvbmZpZ3NbY2hhaW5dO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZmVlQ29uZmlnICYmXG4gICAgICAgICAgKGZlZUNvbmZpZy5icmlkZ2VGZWUgIT09IC0xbiB8fFxuICAgICAgICAgICAgZmVlQ29uZmlnLm5ldHdvcmtGZWUgIT09IC0xbiB8fFxuICAgICAgICAgICAgZmVlQ29uZmlnLnJzblJhdGlvICE9PSAtMW4gfHxcbiAgICAgICAgICAgIGZlZUNvbmZpZy5yc25SYXRpb0Rpdmlzb3IgIT09IC0xbiB8fFxuICAgICAgICAgICAgZmVlQ29uZmlnLmZlZVJhdGlvICE9PSAtMW4pXG4gICAgICAgIClcbiAgICAgICAgICBhY3RpdmVDaGFpbnMucHVzaChjaGFpbik7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZmVlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY2hhaW5zID0gT2JqZWN0LmtleXModGhpcy5mZWVzW2ldLmhlaWdodHMpO1xuICAgICAgY2hhaW5zLmZvckVhY2goKGNoYWluKSA9PiB7XG4gICAgICAgIGlmICghYWN0aXZlQ2hhaW5zLmluY2x1ZGVzKGNoYWluKSkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmZlZXNbaV0uaGVpZ2h0c1tjaGFpbl07XG4gICAgICAgICAgZGVsZXRlIHRoaXMuZmVlc1tpXS5jb25maWdzW2NoYWluXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH07XG5cbiAgLyoqXG4gICAqIHZhbGlkYXRlcyBzcGVjaWZpZWQgY29uZmlncyBhbmQgYnVpbGRzIEVyZ29Cb3hDYW5kaWRhdGUgb2YgY29uZmlnIGJveCB1c2luZyB0aGVtXG4gICAqL1xuICBidWlsZCA9ICgpOiBFcmdvQm94Q2FuZGlkYXRlID0+IHtcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG5cbiAgICAvLyBhZGQgYm94IHZhbHVlLCBhZGRyZXNzIGFuZCBjcmVhdGlvbiBoZWlnaHRcbiAgICBjb25zdCBib3hCdWlsZGVyID0gbmV3IEVyZ29Cb3hDYW5kaWRhdGVCdWlsZGVyKFxuICAgICAgdGhpcy5ib3hWYWx1ZSxcbiAgICAgIENvbnRyYWN0Lm5ldyhBZGRyZXNzLmZyb21fYmFzZTU4KHRoaXMuYWRkcmVzcykudG9fZXJnb190cmVlKCkpLFxuICAgICAgdGhpcy5ib3hIZWlnaHRcbiAgICApO1xuXG4gICAgLy8gYWRkIGJveCB0b2tlbnNcbiAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgIFRva2VuSWQuZnJvbV9zdHIodGhpcy5taW5pbXVtRmVlTkZUKSxcbiAgICAgIFRva2VuQW1vdW50LmZyb21faTY0KEk2NC5mcm9tX3N0cignMScpKVxuICAgICk7XG4gICAgaWYgKHRoaXMudG9rZW5JZCAhPT0gRVJHT19OQVRJVkVfVE9LRU4pXG4gICAgICBib3hCdWlsZGVyLmFkZF90b2tlbihcbiAgICAgICAgVG9rZW5JZC5mcm9tX3N0cih0aGlzLnRva2VuSWQpLFxuICAgICAgICBUb2tlbkFtb3VudC5mcm9tX2k2NChJNjQuZnJvbV9zdHIoJzEnKSlcbiAgICAgICk7XG5cbiAgICAvLyBnZW5lcmF0ZSByZWdpc3RlciB2YWx1ZXNcbiAgICBjb25zdCByZWdpc3RlclZhbHVlcyA9IGZlZVRvUmVnaXN0ZXJWYWx1ZXModGhpcy5mZWVzKTtcblxuICAgIC8vIGFkZCBib3ggcmVnaXN0ZXJzXG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNCwgcmVnaXN0ZXJWYWx1ZXMuUjQpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDUsIHJlZ2lzdGVyVmFsdWVzLlI1KTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg2LCByZWdpc3RlclZhbHVlcy5SNik7XG4gICAgYm94QnVpbGRlci5zZXRfcmVnaXN0ZXJfdmFsdWUoNywgcmVnaXN0ZXJWYWx1ZXMuUjcpO1xuICAgIGJveEJ1aWxkZXIuc2V0X3JlZ2lzdGVyX3ZhbHVlKDgsIHJlZ2lzdGVyVmFsdWVzLlI4KTtcbiAgICBib3hCdWlsZGVyLnNldF9yZWdpc3Rlcl92YWx1ZSg5LCByZWdpc3RlclZhbHVlcy5SOSk7XG5cbiAgICByZXR1cm4gYm94QnVpbGRlci5idWlsZCgpO1xuICB9O1xufVxuIl19
|