@howlil/ez-agents 5.0.1 → 5.0.2
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.
- package/dist/bin/install.js +2 -2
- package/dist/bin/update.js +2 -2
- package/package.json +1 -1
package/dist/bin/update.js
CHANGED
|
@@ -88,7 +88,7 @@ var BaseCliHandler = class {
|
|
|
88
88
|
|
|
89
89
|
// bin/update.ts
|
|
90
90
|
var __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
91
|
-
var PACKAGE_NAME = "ez-agents";
|
|
91
|
+
var PACKAGE_NAME = "@howlil/ez-agents";
|
|
92
92
|
var REPO_URL = "https://github.com/howlil/ez-agents.git";
|
|
93
93
|
var Updater = class extends BaseCliHandler {
|
|
94
94
|
args;
|
|
@@ -393,4 +393,4 @@ export {
|
|
|
393
393
|
Updater,
|
|
394
394
|
VersionChecker
|
|
395
395
|
};
|
|
396
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vYmluL3VwZGF0ZS50cyIsICIuLi8uLi9iaW4vbGliL2NsaS9iYXNlLWNsaS1oYW5kbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIjIS91c3IvYmluL2VudiBub2RlXHJcblxyXG4vKipcclxuICogRVogQWdlbnRzIFVwZGF0ZSBcdTIwMTQgQ2hlY2sgYW5kIGluc3RhbGwgdXBkYXRlcyAoT09QIFJlZmFjdG9yZWQpXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKiAgIGV6LWFnZW50cy11cGRhdGUgICAgICAgICAgICAgICMgQ2hlY2sgZm9yIHVwZGF0ZXNcclxuICogICBlei1hZ2VudHMtdXBkYXRlIC0tY2hlY2sgICAgICAjIENoZWNrIG9ubHlcclxuICogICBlei1hZ2VudHMtdXBkYXRlIC0tZm9yY2UgICAgICAjIEZvcmNlIHJlaW5zdGFsbFxyXG4gKiAgIGV6LWFnZW50cy11cGRhdGUgLS1jaGFuZ2Vsb2cgICMgU2hvdyBjaGFuZ2Vsb2dcclxuICpcclxuICogQHBhY2thZ2VEb2N1bWVudGF0aW9uXHJcbiAqL1xyXG5cclxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcclxuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xyXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAndXJsJztcclxuaW1wb3J0IHsgQmFzZUNsaUhhbmRsZXIgfSBmcm9tICcuL2xpYi9jbGkvaW5kZXguanMnO1xyXG5cclxuY29uc3QgX19kaXJuYW1lID0gcGF0aC5kaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XHJcbmNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdlei1hZ2VudHMnO1xyXG5jb25zdCBSRVBPX1VSTCA9ICdodHRwczovL2dpdGh1Yi5jb20vaG93bGlsL2V6LWFnZW50cy5naXQnO1xyXG5cclxuLy8gXHUyNTAwXHUyNTAwXHUyNTAwIFVwZGF0ZXIgQ2xhc3MgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHJcblxyXG4vKipcclxuICogTWFpbiBVcGRhdGVyIGNsYXNzIGZvciBFWiBBZ2VudHNcclxuICpcclxuICogQGNsYXNzIFVwZGF0ZXJcclxuICogQGV4dGVuZHMge0Jhc2VDbGlIYW5kbGVyfVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFVwZGF0ZXIgZXh0ZW5kcyBCYXNlQ2xpSGFuZGxlciB7XHJcbiAgcHJpdmF0ZSBhcmdzOiBzdHJpbmdbXTtcclxuICBwcml2YXRlIHZlcnNpb25DaGVja2VyOiBWZXJzaW9uQ2hlY2tlcjtcclxuICBwcml2YXRlIHVwZGF0ZUluc3RhbGxlcjogVXBkYXRlSW5zdGFsbGVyO1xyXG4gIHByaXZhdGUgY2hhbmdlbG9nUmVhZGVyOiBDaGFuZ2Vsb2dSZWFkZXI7XHJcblxyXG4gIC8qKlxyXG4gICAqIENyZWF0ZSBhbiBVcGRhdGVyIGluc3RhbmNlXHJcbiAgICogQHBhcmFtIGFyZ3MgLSBDb21tYW5kIGxpbmUgYXJndW1lbnRzIChkZWZhdWx0cyB0byBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoYXJnczogc3RyaW5nW10gPSBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICB0aGlzLmFyZ3MgPSBhcmdzO1xyXG4gICAgdGhpcy52ZXJzaW9uQ2hlY2tlciA9IG5ldyBWZXJzaW9uQ2hlY2tlcigpO1xyXG4gICAgdGhpcy51cGRhdGVJbnN0YWxsZXIgPSBuZXcgVXBkYXRlSW5zdGFsbGVyKHRoaXMudmVyc2lvbkNoZWNrZXIpO1xyXG4gICAgdGhpcy5jaGFuZ2Vsb2dSZWFkZXIgPSBuZXcgQ2hhbmdlbG9nUmVhZGVyKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlIHRoZSB1cGRhdGUgY29tbWFuZFxyXG4gICAqL1xyXG4gIGV4ZWN1dGUoKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb21tYW5kID0gdGhpcy5wYXJzZUNvbW1hbmQoKTtcclxuXHJcbiAgICBzd2l0Y2ggKGNvbW1hbmQpIHtcclxuICAgICAgY2FzZSAnY2hlY2snOlxyXG4gICAgICAgIHRoaXMuY2hlY2tVcGRhdGUoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaW5zdGFsbCc6XHJcbiAgICAgICAgdGhpcy5pbnN0YWxsVXBkYXRlKGZhbHNlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnZm9yY2UnOlxyXG4gICAgICAgIHRoaXMuaW5zdGFsbFVwZGF0ZSh0cnVlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2hhbmdlbG9nJzpcclxuICAgICAgICB0aGlzLnNob3dDaGFuZ2Vsb2coKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGVscCc6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5zaG93SGVscCgpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFyc2UgY29tbWFuZCBmcm9tIGFyZ3VtZW50c1xyXG4gICAqIEByZXR1cm5zIHsnY2hlY2snIHwgJ2luc3RhbGwnIHwgJ2ZvcmNlJyB8ICdjaGFuZ2Vsb2cnIHwgJ2hlbHAnfSBDb21tYW5kIHRvIGV4ZWN1dGVcclxuICAgKi9cclxuICBwYXJzZUNvbW1hbmQoKTogJ2NoZWNrJyB8ICdpbnN0YWxsJyB8ICdmb3JjZScgfCAnY2hhbmdlbG9nJyB8ICdoZWxwJyB7XHJcbiAgICBpZiAodGhpcy5hcmdzLmluY2x1ZGVzKCctLWhlbHAnKSB8fCB0aGlzLmFyZ3MuaW5jbHVkZXMoJy1oJykpIHtcclxuICAgICAgcmV0dXJuICdoZWxwJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFyZ3MuaW5jbHVkZXMoJy0tY2hhbmdlbG9nJykpIHtcclxuICAgICAgcmV0dXJuICdjaGFuZ2Vsb2cnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXJncy5pbmNsdWRlcygnLS1jaGVjaycpKSB7XHJcbiAgICAgIHJldHVybiAnY2hlY2snO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYXJncy5pbmNsdWRlcygnLS1mb3JjZScpKSB7XHJcbiAgICAgIHJldHVybiAnZm9yY2UnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuICdpbnN0YWxsJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoZWNrIGZvciB1cGRhdGVzXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjaGVja1VwZGF0ZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnZlcnNpb25DaGVja2VyLmdldEN1cnJlbnRWZXJzaW9uKCk7XHJcbiAgICBjb25zdCBsYXRlc3QgPSB0aGlzLnZlcnNpb25DaGVja2VyLmdldExhdGVzdFZlcnNpb24oKTtcclxuXHJcbiAgICB0aGlzLmxvZygnXFxuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxJywgJ2JsdWUnKTtcclxuICAgIHRoaXMubG9nKCcgRVogQWdlbnRzIFVwZGF0ZSBDaGVjaycsICdib2xkJyk7XHJcbiAgICB0aGlzLmxvZygnXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxuJywgJ2JsdWUnKTtcclxuXHJcbiAgICB0aGlzLmxvZyhgQ3VycmVudCB2ZXJzaW9uOiAke3RoaXMuY29sb3JzLmJvbGR9diR7Y3VycmVudH0ke3RoaXMuY29sb3JzLnJlc2V0fWApO1xyXG5cclxuICAgIGlmICghbGF0ZXN0KSB7XHJcbiAgICAgIHRoaXMubG9nKCdVbmFibGUgdG8gY2hlY2sgZm9yIHVwZGF0ZXMgKG5vIG5ldHdvcmsgb3IgcmVwbyB1bmF2YWlsYWJsZSknLCAneWVsbG93Jyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZyhgTGF0ZXN0IHZlcnNpb246ICAke3RoaXMuY29sb3JzLmJvbGR9diR7bGF0ZXN0fSR7dGhpcy5jb2xvcnMucmVzZXR9XFxuYCk7XHJcblxyXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhdGVzdCkge1xyXG4gICAgICB0aGlzLmxvZygnXHUyNzEzIFlvdSBhcmUgb24gdGhlIGxhdGVzdCB2ZXJzaW9uIVxcbicsICdncmVlbicpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2coYFx1MjZBMSBVcGRhdGUgYXZhaWxhYmxlOiB2JHtjdXJyZW50fSBcdTIxOTIgdiR7bGF0ZXN0fVxcbmAsICd5ZWxsb3cnKTtcclxuICAgIHRoaXMubG9nKCdUbyB1cGRhdGUsIHJ1bjpcXG4nLCAnYmx1ZScpO1xyXG4gICAgdGhpcy5sb2coYCAgbnBtIGluc3RhbGwgLWcgJHtQQUNLQUdFX05BTUV9QGxhdGVzdFxcbmAsICdncmVlbicpO1xyXG4gICAgdGhpcy5sb2coJ09yIGZvcmNlIHJlaW5zdGFsbDpcXG4nLCAnYmx1ZScpO1xyXG4gICAgdGhpcy5sb2coYCAgZXotYWdlbnRzLXVwZGF0ZSAtLWZvcmNlXFxuYCwgJ2dyZWVuJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnN0YWxsIHVwZGF0ZVxyXG4gICAqIEBwYXJhbSBmb3JjZSAtIEZvcmNlIHJlaW5zdGFsbCBldmVuIGlmIHVwLXRvLWRhdGVcclxuICAgKi9cclxuICBwcml2YXRlIGluc3RhbGxVcGRhdGUoZm9yY2U6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMubG9nKCdcXG5cdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDEnLCAnYmx1ZScpO1xyXG4gICAgdGhpcy5sb2coJyBFWiBBZ2VudHMgVXBkYXRlJywgJ2JvbGQnKTtcclxuICAgIHRoaXMubG9nKCdcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXG4nLCAnYmx1ZScpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMudXBkYXRlSW5zdGFsbGVyLmluc3RhbGwoZm9yY2UpO1xyXG4gICAgICB0aGlzLmxvZygnXFxuXHUyNzEzIFVwZGF0ZSBjb21wbGV0ZSFcXG4nLCAnZ3JlZW4nKTtcclxuICAgICAgdGhpcy5sb2coJ1Jlc3RhcnQgeW91ciB0ZXJtaW5hbCBvciBydW46XFxuJywgJ2JsdWUnKTtcclxuICAgICAgdGhpcy5sb2coYCAgZXotYWdlbnRzIC0tdmVyc2lvblxcbmAsICdncmVlbicpO1xyXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcclxuICAgICAgdGhpcy5sb2coJ1xcblx1MjcxNyBVcGRhdGUgZmFpbGVkXFxuJywgJ3JlZCcpO1xyXG4gICAgICB0aGlzLmxvZygnVHJ5IG1hbnVhbCBpbnN0YWxsOlxcbicsICd5ZWxsb3cnKTtcclxuICAgICAgdGhpcy5sb2coYCAgbnBtIGluc3RhbGwgLWcgJHtQQUNLQUdFX05BTUV9QGxhdGVzdFxcbmAsICdibHVlJyk7XHJcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgY2hhbmdlbG9nXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzaG93Q2hhbmdlbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2coJ1xcblx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMScsICdibHVlJyk7XHJcbiAgICB0aGlzLmxvZygnIEVaIEFnZW50cyBDaGFuZ2Vsb2cnLCAnYm9sZCcpO1xyXG4gICAgdGhpcy5sb2coJ1x1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcbicsICdibHVlJyk7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuY2hhbmdlbG9nUmVhZGVyLnJlYWQoNTApO1xyXG4gICAgdGhpcy5sb2coY29udGVudCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTaG93IGhlbHBcclxuICAgKi9cclxuICBwcml2YXRlIHNob3dIZWxwKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2coYFxyXG5cdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcclxuIEVaIEFnZW50cyBVcGRhdGUgXHUyMDE0IENoZWNrIGFuZCBJbnN0YWxsIFVwZGF0ZXNcclxuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHJcblxyXG5Vc2FnZTpcclxuICBlei1hZ2VudHMtdXBkYXRlIFtvcHRpb25zXVxyXG5cclxuT3B0aW9uczpcclxuICAtLWNoZWNrICAgICAgQ2hlY2sgZm9yIHVwZGF0ZXMgKGRvbid0IGluc3RhbGwpXHJcbiAgLS1mb3JjZSAgICAgIEZvcmNlIHJlaW5zdGFsbCBldmVuIGlmIHVwLXRvLWRhdGVcclxuICAtLWNoYW5nZWxvZyAgU2hvdyBjaGFuZ2Vsb2dcclxuICAtLWhlbHAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZVxyXG5cclxuRXhhbXBsZXM6XHJcbiAgZXotYWdlbnRzLXVwZGF0ZSAgICAgICAgICAgICAgIyBDaGVjayBhbmQgcHJvbXB0IHRvIHVwZGF0ZVxyXG4gIGV6LWFnZW50cy11cGRhdGUgLS1jaGVjayAgICAgICMgQ2hlY2sgb25seVxyXG4gIGV6LWFnZW50cy11cGRhdGUgLS1mb3JjZSAgICAgICMgRm9yY2UgcmVpbnN0YWxsXHJcbiAgZXotYWdlbnRzLXVwZGF0ZSAtLWNoYW5nZWxvZyAgIyBWaWV3IGNoYW5nZWxvZ1xyXG5cclxuTWFudWFsIFVwZGF0ZTpcclxuICBucG0gaW5zdGFsbCAtZyBlei1hZ2VudHNAbGF0ZXN0XHJcbmApO1xyXG4gIH1cclxufVxyXG5cclxuLy8gXHUyNTAwXHUyNTAwXHUyNTAwIFZlcnNpb25DaGVja2VyIENsYXNzIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxyXG5cclxuLyoqXHJcbiAqIFZlcnNpb25DaGVja2VyIFx1MjAxNCBDaGVja3MgY3VycmVudCBhbmQgbGF0ZXN0IHZlcnNpb25zXHJcbiAqXHJcbiAqIEBjbGFzcyBWZXJzaW9uQ2hlY2tlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIFZlcnNpb25DaGVja2VyIHtcclxuICAvKipcclxuICAgKiBHZXQgY3VycmVudCBpbnN0YWxsZWQgdmVyc2lvblxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEN1cnJlbnQgdmVyc2lvblxyXG4gICAqL1xyXG4gIGdldEN1cnJlbnRWZXJzaW9uKCk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBwa2dQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3BhY2thZ2UuanNvbicpO1xyXG4gICAgICBjb25zdCBwa2cgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwa2dQYXRoLCAndXRmLTgnKSk7XHJcbiAgICAgIHJldHVybiBwa2cudmVyc2lvbjtcclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gJ3Vua25vd24nO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IGxhdGVzdCB2ZXJzaW9uIGZyb20gbnBtXHJcbiAgICogQHJldHVybnMge3N0cmluZyB8IG51bGx9IExhdGVzdCB2ZXJzaW9uIG9yIG51bGwgaWYgdW5hdmFpbGFibGVcclxuICAgKi9cclxuICBnZXRMYXRlc3RWZXJzaW9uKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoYG5wbSB2aWV3ICR7UEFDS0FHRV9OQU1FfSB2ZXJzaW9uYCwge1xyXG4gICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxyXG4gICAgICAgIHN0ZGlvOiBbJ3BpcGUnLCAncGlwZScsICdpZ25vcmUnXSxcclxuICAgICAgICB0aW1lb3V0OiAxMDAwMCxcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBvdXRwdXQudHJpbSgpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIC8vIEZhbGxiYWNrOiBjaGVjayBHaXRIdWIgcmVwb1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBucG0gdmlldyBnaXQrJHtSRVBPX1VSTH0gdmVyc2lvbmAsIHtcclxuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxyXG4gICAgICAgICAgc3RkaW86IFsncGlwZScsICdwaXBlJywgJ2lnbm9yZSddLFxyXG4gICAgICAgICAgdGltZW91dDogMTAwMDAsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIG91dHB1dC50cmltKCk7XHJcbiAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGVjayBpZiB1cGRhdGUgaXMgYXZhaWxhYmxlXHJcbiAgICogQHJldHVybnMge2Jvb2xlYW59IFRydWUgaWYgdXBkYXRlIGF2YWlsYWJsZVxyXG4gICAqL1xyXG4gIGhhc1VwZGF0ZSgpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLmdldEN1cnJlbnRWZXJzaW9uKCk7XHJcbiAgICBjb25zdCBsYXRlc3QgPSB0aGlzLmdldExhdGVzdFZlcnNpb24oKTtcclxuXHJcbiAgICBpZiAoIWxhdGVzdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnQgIT09IGxhdGVzdDtcclxuICB9XHJcbn1cclxuXHJcbi8vIFx1MjUwMFx1MjUwMFx1MjUwMCBVcGRhdGVJbnN0YWxsZXIgQ2xhc3MgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHJcblxyXG4vKipcclxuICogVXBkYXRlSW5zdGFsbGVyIFx1MjAxNCBJbnN0YWxscyB1cGRhdGVzXHJcbiAqXHJcbiAqIEBjbGFzcyBVcGRhdGVJbnN0YWxsZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVcGRhdGVJbnN0YWxsZXIge1xyXG4gIHByaXZhdGUgdmVyc2lvbkNoZWNrZXI6IFZlcnNpb25DaGVja2VyO1xyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGUgYW4gVXBkYXRlSW5zdGFsbGVyIGluc3RhbmNlXHJcbiAgICogQHBhcmFtIHZlcnNpb25DaGVja2VyIC0gVmVyc2lvbkNoZWNrZXIgaW5zdGFuY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3Rvcih2ZXJzaW9uQ2hlY2tlcjogVmVyc2lvbkNoZWNrZXIpIHtcclxuICAgIHRoaXMudmVyc2lvbkNoZWNrZXIgPSB2ZXJzaW9uQ2hlY2tlcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluc3RhbGwgdXBkYXRlXHJcbiAgICogQHBhcmFtIGZvcmNlIC0gRm9yY2UgcmVpbnN0YWxsXHJcbiAgICovXHJcbiAgaW5zdGFsbChmb3JjZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudmVyc2lvbkNoZWNrZXIuZ2V0Q3VycmVudFZlcnNpb24oKTtcclxuICAgIGNvbnN0IGxhdGVzdCA9IHRoaXMudmVyc2lvbkNoZWNrZXIuZ2V0TGF0ZXN0VmVyc2lvbigpO1xyXG5cclxuICAgIGlmICghbGF0ZXN0KSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGNoZWNrIGZvciB1cGRhdGVzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGN1cnJlbnQgPT09IGxhdGVzdCAmJiAhZm9yY2UpIHtcclxuICAgICAgY29uc29sZS5sb2coJ0FscmVhZHkgb24gbGF0ZXN0IHZlcnNpb24nKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnNvbGUubG9nKGBVcGRhdGluZzogdiR7Y3VycmVudH0gXHUyMTkyIHYke2xhdGVzdH0uLi5gKTtcclxuXHJcbiAgICBleGVjU3luYyhgbnBtIGluc3RhbGwgLWcgJHtQQUNLQUdFX05BTUV9QGxhdGVzdGAsIHtcclxuICAgICAgc3RkaW86ICdpbmhlcml0JyxcclxuICAgICAgdGltZW91dDogMTIwMDAwLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGb3JjZSByZWluc3RhbGxcclxuICAgKi9cclxuICBmb3JjZUluc3RhbGwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbGwodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBWYWxpZGF0ZSBpbnN0YWxsYXRpb25cclxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiBpbnN0YWxsYXRpb24gc3VjY2Vzc2Z1bFxyXG4gICAqL1xyXG4gIHZhbGlkYXRlSW5zdGFsbCgpOiBib29sZWFuIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBucG0gbGlzdCAtZyAke1BBQ0tBR0VfTkFNRX1gLCB7XHJcbiAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXHJcbiAgICAgICAgc3RkaW86IFsncGlwZScsICdwaXBlJywgJ2lnbm9yZSddLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG91dHB1dC5pbmNsdWRlcyhQQUNLQUdFX05BTUUpO1xyXG4gICAgfSBjYXRjaCB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFx1MjUwMFx1MjUwMFx1MjUwMCBDaGFuZ2Vsb2dSZWFkZXIgQ2xhc3MgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHJcblxyXG4vKipcclxuICogQ2hhbmdlbG9nUmVhZGVyIFx1MjAxNCBSZWFkcyBhbmQgZm9ybWF0cyBjaGFuZ2Vsb2dcclxuICpcclxuICogQGNsYXNzIENoYW5nZWxvZ1JlYWRlclxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENoYW5nZWxvZ1JlYWRlciB7XHJcbiAgLyoqXHJcbiAgICogUmVhZCBjaGFuZ2Vsb2dcclxuICAgKiBAcGFyYW0gbWF4TGluZXMgLSBNYXhpbXVtIGxpbmVzIHRvIHJlYWQgKGRlZmF1bHQ6IDUwKVxyXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEZvcm1hdHRlZCBjaGFuZ2Vsb2dcclxuICAgKi9cclxuICByZWFkKG1heExpbmVzOiBudW1iZXIgPSA1MCk6IHN0cmluZyB7XHJcbiAgICB0cnkge1xyXG4gICAgICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ0NIQU5HRUxPRy5tZCcpO1xyXG5cclxuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2hhbmdlbG9nUGF0aCkpIHtcclxuICAgICAgICBjb25zdCBjb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGNoYW5nZWxvZ1BhdGgsICd1dGYtOCcpO1xyXG4gICAgICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJykuc2xpY2UoMCwgbWF4TGluZXMpO1xyXG4gICAgICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gYENIQU5HRUxPRy5tZCBub3QgZm91bmRcXG5cXG5WaWV3IG9ubGluZTogJHtSRVBPX1VSTH0vYmxvYi9tYWluL0NIQU5HRUxPRy5tZFxcbmA7XHJcbiAgICAgIH1cclxuICAgIH0gY2F0Y2gge1xyXG4gICAgICByZXR1cm4gJ1VuYWJsZSB0byByZWFkIGNoYW5nZWxvZyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgbGF0ZXN0IHZlcnNpb24gZnJvbSBjaGFuZ2Vsb2dcclxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBMYXRlc3QgdmVyc2lvblxyXG4gICAqL1xyXG4gIGdldExhdGVzdFZlcnNpb24oKTogc3RyaW5nIHtcclxuICAgIHRyeSB7XHJcbiAgICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnQ0hBTkdFTE9HLm1kJyk7XHJcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XHJcbiAgICAgICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhjaGFuZ2Vsb2dQYXRoLCAndXRmLTgnKTtcclxuICAgICAgICBjb25zdCBtYXRjaCA9IGNvbnRlbnQubWF0Y2goLyMjIFxcWyhcXGQrXFwuXFxkK1xcLlxcZCspXFxdLyk7XHJcbiAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XHJcbiAgICAgICAgICByZXR1cm4gbWF0Y2hbMV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAndW5rbm93bic7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgcmV0dXJuICd1bmtub3duJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbi8vIFx1MjUwMFx1MjUwMFx1MjUwMCBNYWluIEVudHJ5IFBvaW50IFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxyXG5cclxuLy8gQ3JlYXRlIGFuZCBleGVjdXRlIHVwZGF0ZXJcclxuY29uc3QgdXBkYXRlciA9IG5ldyBVcGRhdGVyKCk7XHJcbnVwZGF0ZXIuZXhlY3V0ZSgpO1xyXG4iLCAiLyoqXHJcbiAqIEJhc2UgQ0xJIEhhbmRsZXIgXHUyMDE0IEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIENMSSBlbnRyeSBwb2ludHNcclxuICpcclxuICogUHJvdmlkZXMgY29tbW9uIENMSSBmdW5jdGlvbmFsaXR5IGluY2x1ZGluZzpcclxuICogLSBDb2xvciBjb25zdGFudHMgZm9yIHRlcm1pbmFsIG91dHB1dFxyXG4gKiAtIExvZ2dpbmcgdXRpbGl0eSBtZXRob2RzXHJcbiAqIC0gUGF0aCBleHBhbnNpb24gdXRpbGl0aWVzXHJcbiAqIC0gSlNPTiBmaWxlIG9wZXJhdGlvbnNcclxuICogLSBEaXJlY3RvcnkgbWFuYWdlbWVudFxyXG4gKlxyXG4gKiBAYWJzdHJhY3RcclxuICogQGNsYXNzIEJhc2VDbGlIYW5kbGVyXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNsaUhhbmRsZXIge1xyXG4gIC8qKlxyXG4gICAqIENvbG9yIGNvZGVzIGZvciB0ZXJtaW5hbCBvdXRwdXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3JzID0ge1xyXG4gICAgcmVzZXQ6ICdcXHgxYlswbScsXHJcbiAgICBncmVlbjogJ1xceDFiWzMybScsXHJcbiAgICB5ZWxsb3c6ICdcXHgxYlszM20nLFxyXG4gICAgYmx1ZTogJ1xceDFiWzM0bScsXHJcbiAgICByZWQ6ICdcXHgxYlszMW0nLFxyXG4gICAgYm9sZDogJ1xceDFiWzFtJyxcclxuICAgIGN5YW46ICdcXHgxYlszNm0nLFxyXG4gICAgZGltOiAnXFx4MWJbMm0nLFxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIExvZyBhIG1lc3NhZ2UgdG8gY29uc29sZSB3aXRoIG9wdGlvbmFsIGNvbG9yXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2dcclxuICAgKiBAcGFyYW0gY29sb3IgLSBPcHRpb25hbCBjb2xvciBrZXkgZnJvbSBjb2xvcnMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGxvZyhtZXNzYWdlOiBzdHJpbmcsIGNvbG9yPzoga2V5b2YgdHlwZW9mIHRoaXMuY29sb3JzKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2xvckNvZGUgPSBjb2xvciA/IHRoaXMuY29sb3JzW2NvbG9yXSA6ICcnO1xyXG4gICAgY29uc3QgcmVzZXRDb2RlID0gY29sb3IgPyB0aGlzLmNvbG9ycy5yZXNldCA6ICcnO1xyXG4gICAgY29uc29sZS5sb2coYCR7Y29sb3JDb2RlfSR7bWVzc2FnZX0ke3Jlc2V0Q29kZX1gKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cGFuZCB0aWxkZSAofikgaW4gZmlsZSBwYXRocyB0byBob21lIGRpcmVjdG9yeVxyXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIFRoZSBmaWxlIHBhdGggcG90ZW50aWFsbHkgY29udGFpbmluZyB+XHJcbiAgICogQHJldHVybnMgVGhlIGV4cGFuZGVkIGFic29sdXRlIHBhdGhcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZXhwYW5kVGlsZGUoZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZpbGVQYXRoLnN0YXJ0c1dpdGgoJ34nKSkge1xyXG4gICAgICByZXR1cm4gZmlsZVBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaG9tZURpciA9IHByb2Nlc3MuZW52LkhPTUUgfHwgcHJvY2Vzcy5lbnYuVVNFUlBST0ZJTEUgfHwgJyc7XHJcbiAgICByZXR1cm4gZmlsZVBhdGgucmVwbGFjZSgvXn4vLCBob21lRGlyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlYWQgYW5kIHBhcnNlIGEgSlNPTiBmaWxlXHJcbiAgICogQHRlbXBsYXRlIFQgLSBFeHBlY3RlZCB0eXBlIG9mIHRoZSBKU09OIGRhdGFcclxuICAgKiBAcGFyYW0gcGF0aCAtIFBhdGggdG8gdGhlIEpTT04gZmlsZVxyXG4gICAqIEByZXR1cm5zIFBhcnNlZCBKU09OIGRhdGFcclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgZmlsZSBjYW5ub3QgYmUgcmVhZCBvciBwYXJzZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZEpzb25GaWxlPFQ+KHBhdGg6IHN0cmluZyk6IFQge1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKTtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIFQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZSBkYXRhIHRvIGEgSlNPTiBmaWxlXHJcbiAgICogQHBhcmFtIHBhdGggLSBQYXRoIHRvIHRoZSBKU09OIGZpbGVcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gd3JpdGUgKHdpbGwgYmUgSlNPTiBzdHJpbmdpZmllZClcclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgZmlsZSBjYW5ub3QgYmUgd3JpdHRlblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB3cml0ZUpzb25GaWxlKHBhdGg6IHN0cmluZywgZGF0YTogdW5rbm93bik6IHZvaWQge1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpO1xyXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50LCAndXRmLTgnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuc3VyZSBhIGRpcmVjdG9yeSBleGlzdHMsIGNyZWF0aW5nIGl0IGlmIG5lY2Vzc2FyeVxyXG4gICAqIEBwYXJhbSBkaXJQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5XHJcbiAgICogQHRocm93cyB7RXJyb3J9IElmIGRpcmVjdG9yeSBjYW5ub3QgYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBlbnN1cmVEaXJlY3RvcnkoZGlyUGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHtcclxuICAgICAgZnMubWtkaXJTeW5jKGRpclBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7O0FBY0EsU0FBUyxnQkFBZ0I7QUFDekIsWUFBWSxVQUFVO0FBQ3RCLFlBQVksUUFBUTtBQUNwQixTQUFTLHFCQUFxQjs7O0FDSnZCLElBQWUsaUJBQWYsTUFBOEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUloQixTQUFTO0FBQUEsSUFDMUIsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxJQUFJLFNBQWlCLE9BQXdDO0FBQ3JFLFVBQU0sWUFBWSxRQUFRLEtBQUssT0FBTyxLQUFLLElBQUk7QUFDL0MsVUFBTSxZQUFZLFFBQVEsS0FBSyxPQUFPLFFBQVE7QUFDOUMsWUFBUSxJQUFJLEdBQUcsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEVBQUU7QUFBQSxFQUNsRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFlBQVksVUFBMEI7QUFDOUMsUUFBSSxDQUFDLFNBQVMsV0FBVyxHQUFHLEdBQUc7QUFDN0IsYUFBTztBQUFBLElBQ1Q7QUFFQSxVQUFNLFVBQVUsUUFBUSxJQUFJLFFBQVEsUUFBUSxJQUFJLGVBQWU7QUFDL0QsV0FBTyxTQUFTLFFBQVEsTUFBTSxPQUFPO0FBQUEsRUFDdkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBU1Us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
|
|
396
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vYmluL3VwZGF0ZS50cyIsICIuLi8uLi9iaW4vbGliL2NsaS9iYXNlLWNsaS1oYW5kbGVyLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIjIS91c3IvYmluL2VudiBub2RlXG5cbi8qKlxuICogRVogQWdlbnRzIFVwZGF0ZSBcdTIwMTQgQ2hlY2sgYW5kIGluc3RhbGwgdXBkYXRlcyAoT09QIFJlZmFjdG9yZWQpXG4gKlxuICogVXNhZ2U6XG4gKiAgIGV6LWFnZW50cy11cGRhdGUgICAgICAgICAgICAgICMgQ2hlY2sgZm9yIHVwZGF0ZXNcbiAqICAgZXotYWdlbnRzLXVwZGF0ZSAtLWNoZWNrICAgICAgIyBDaGVjayBvbmx5XG4gKiAgIGV6LWFnZW50cy11cGRhdGUgLS1mb3JjZSAgICAgICMgRm9yY2UgcmVpbnN0YWxsXG4gKiAgIGV6LWFnZW50cy11cGRhdGUgLS1jaGFuZ2Vsb2cgICMgU2hvdyBjaGFuZ2Vsb2dcbiAqXG4gKiBAcGFja2FnZURvY3VtZW50YXRpb25cbiAqL1xuXG5pbXBvcnQgeyBleGVjU3luYyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnO1xuaW1wb3J0IHsgQmFzZUNsaUhhbmRsZXIgfSBmcm9tICcuL2xpYi9jbGkvaW5kZXguanMnO1xuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcbmNvbnN0IFBBQ0tBR0VfTkFNRSA9ICdAaG93bGlsL2V6LWFnZW50cyc7XG5jb25zdCBSRVBPX1VSTCA9ICdodHRwczovL2dpdGh1Yi5jb20vaG93bGlsL2V6LWFnZW50cy5naXQnO1xuXG4vLyBcdTI1MDBcdTI1MDBcdTI1MDAgVXBkYXRlciBDbGFzcyBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcblxuLyoqXG4gKiBNYWluIFVwZGF0ZXIgY2xhc3MgZm9yIEVaIEFnZW50c1xuICpcbiAqIEBjbGFzcyBVcGRhdGVyXG4gKiBAZXh0ZW5kcyB7QmFzZUNsaUhhbmRsZXJ9XG4gKi9cbmV4cG9ydCBjbGFzcyBVcGRhdGVyIGV4dGVuZHMgQmFzZUNsaUhhbmRsZXIge1xuICBwcml2YXRlIGFyZ3M6IHN0cmluZ1tdO1xuICBwcml2YXRlIHZlcnNpb25DaGVja2VyOiBWZXJzaW9uQ2hlY2tlcjtcbiAgcHJpdmF0ZSB1cGRhdGVJbnN0YWxsZXI6IFVwZGF0ZUluc3RhbGxlcjtcbiAgcHJpdmF0ZSBjaGFuZ2Vsb2dSZWFkZXI6IENoYW5nZWxvZ1JlYWRlcjtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIFVwZGF0ZXIgaW5zdGFuY2VcbiAgICogQHBhcmFtIGFyZ3MgLSBDb21tYW5kIGxpbmUgYXJndW1lbnRzIChkZWZhdWx0cyB0byBwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhcmdzOiBzdHJpbmdbXSA9IHByb2Nlc3MuYXJndi5zbGljZSgyKSkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hcmdzID0gYXJncztcbiAgICB0aGlzLnZlcnNpb25DaGVja2VyID0gbmV3IFZlcnNpb25DaGVja2VyKCk7XG4gICAgdGhpcy51cGRhdGVJbnN0YWxsZXIgPSBuZXcgVXBkYXRlSW5zdGFsbGVyKHRoaXMudmVyc2lvbkNoZWNrZXIpO1xuICAgIHRoaXMuY2hhbmdlbG9nUmVhZGVyID0gbmV3IENoYW5nZWxvZ1JlYWRlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIHVwZGF0ZSBjb21tYW5kXG4gICAqL1xuICBleGVjdXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbW1hbmQgPSB0aGlzLnBhcnNlQ29tbWFuZCgpO1xuXG4gICAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgICBjYXNlICdjaGVjayc6XG4gICAgICAgIHRoaXMuY2hlY2tVcGRhdGUoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdpbnN0YWxsJzpcbiAgICAgICAgdGhpcy5pbnN0YWxsVXBkYXRlKGZhbHNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdmb3JjZSc6XG4gICAgICAgIHRoaXMuaW5zdGFsbFVwZGF0ZSh0cnVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdjaGFuZ2Vsb2cnOlxuICAgICAgICB0aGlzLnNob3dDaGFuZ2Vsb2coKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdoZWxwJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRoaXMuc2hvd0hlbHAoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlIGNvbW1hbmQgZnJvbSBhcmd1bWVudHNcbiAgICogQHJldHVybnMgeydjaGVjaycgfCAnaW5zdGFsbCcgfCAnZm9yY2UnIHwgJ2NoYW5nZWxvZycgfCAnaGVscCd9IENvbW1hbmQgdG8gZXhlY3V0ZVxuICAgKi9cbiAgcGFyc2VDb21tYW5kKCk6ICdjaGVjaycgfCAnaW5zdGFsbCcgfCAnZm9yY2UnIHwgJ2NoYW5nZWxvZycgfCAnaGVscCcge1xuICAgIGlmICh0aGlzLmFyZ3MuaW5jbHVkZXMoJy0taGVscCcpIHx8IHRoaXMuYXJncy5pbmNsdWRlcygnLWgnKSkge1xuICAgICAgcmV0dXJuICdoZWxwJztcbiAgICB9XG4gICAgaWYgKHRoaXMuYXJncy5pbmNsdWRlcygnLS1jaGFuZ2Vsb2cnKSkge1xuICAgICAgcmV0dXJuICdjaGFuZ2Vsb2cnO1xuICAgIH1cbiAgICBpZiAodGhpcy5hcmdzLmluY2x1ZGVzKCctLWNoZWNrJykpIHtcbiAgICAgIHJldHVybiAnY2hlY2snO1xuICAgIH1cbiAgICBpZiAodGhpcy5hcmdzLmluY2x1ZGVzKCctLWZvcmNlJykpIHtcbiAgICAgIHJldHVybiAnZm9yY2UnO1xuICAgIH1cbiAgICByZXR1cm4gJ2luc3RhbGwnO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGZvciB1cGRhdGVzXG4gICAqL1xuICBwcml2YXRlIGNoZWNrVXBkYXRlKCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnZlcnNpb25DaGVja2VyLmdldEN1cnJlbnRWZXJzaW9uKCk7XG4gICAgY29uc3QgbGF0ZXN0ID0gdGhpcy52ZXJzaW9uQ2hlY2tlci5nZXRMYXRlc3RWZXJzaW9uKCk7XG5cbiAgICB0aGlzLmxvZygnXFxuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxJywgJ2JsdWUnKTtcbiAgICB0aGlzLmxvZygnIEVaIEFnZW50cyBVcGRhdGUgQ2hlY2snLCAnYm9sZCcpO1xuICAgIHRoaXMubG9nKCdcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcXG4nLCAnYmx1ZScpO1xuXG4gICAgdGhpcy5sb2coYEN1cnJlbnQgdmVyc2lvbjogJHt0aGlzLmNvbG9ycy5ib2xkfXYke2N1cnJlbnR9JHt0aGlzLmNvbG9ycy5yZXNldH1gKTtcblxuICAgIGlmICghbGF0ZXN0KSB7XG4gICAgICB0aGlzLmxvZygnVW5hYmxlIHRvIGNoZWNrIGZvciB1cGRhdGVzIChubyBuZXR3b3JrIG9yIHJlcG8gdW5hdmFpbGFibGUpJywgJ3llbGxvdycpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMubG9nKGBMYXRlc3QgdmVyc2lvbjogICR7dGhpcy5jb2xvcnMuYm9sZH12JHtsYXRlc3R9JHt0aGlzLmNvbG9ycy5yZXNldH1cXG5gKTtcblxuICAgIGlmIChjdXJyZW50ID09PSBsYXRlc3QpIHtcbiAgICAgIHRoaXMubG9nKCdcdTI3MTMgWW91IGFyZSBvbiB0aGUgbGF0ZXN0IHZlcnNpb24hXFxuJywgJ2dyZWVuJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5sb2coYFx1MjZBMSBVcGRhdGUgYXZhaWxhYmxlOiB2JHtjdXJyZW50fSBcdTIxOTIgdiR7bGF0ZXN0fVxcbmAsICd5ZWxsb3cnKTtcbiAgICB0aGlzLmxvZygnVG8gdXBkYXRlLCBydW46XFxuJywgJ2JsdWUnKTtcbiAgICB0aGlzLmxvZyhgICBucG0gaW5zdGFsbCAtZyAke1BBQ0tBR0VfTkFNRX1AbGF0ZXN0XFxuYCwgJ2dyZWVuJyk7XG4gICAgdGhpcy5sb2coJ09yIGZvcmNlIHJlaW5zdGFsbDpcXG4nLCAnYmx1ZScpO1xuICAgIHRoaXMubG9nKGAgIGV6LWFnZW50cy11cGRhdGUgLS1mb3JjZVxcbmAsICdncmVlbicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluc3RhbGwgdXBkYXRlXG4gICAqIEBwYXJhbSBmb3JjZSAtIEZvcmNlIHJlaW5zdGFsbCBldmVuIGlmIHVwLXRvLWRhdGVcbiAgICovXG4gIHByaXZhdGUgaW5zdGFsbFVwZGF0ZShmb3JjZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMubG9nKCdcXG5cdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDFcdTI1MDEnLCAnYmx1ZScpO1xuICAgIHRoaXMubG9nKCcgRVogQWdlbnRzIFVwZGF0ZScsICdib2xkJyk7XG4gICAgdGhpcy5sb2coJ1x1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVxcbicsICdibHVlJyk7XG5cbiAgICB0cnkge1xuICAgICAgdGhpcy51cGRhdGVJbnN0YWxsZXIuaW5zdGFsbChmb3JjZSk7XG4gICAgICB0aGlzLmxvZygnXFxuXHUyNzEzIFVwZGF0ZSBjb21wbGV0ZSFcXG4nLCAnZ3JlZW4nKTtcbiAgICAgIHRoaXMubG9nKCdSZXN0YXJ0IHlvdXIgdGVybWluYWwgb3IgcnVuOlxcbicsICdibHVlJyk7XG4gICAgICB0aGlzLmxvZyhgICBlei1hZ2VudHMgLS12ZXJzaW9uXFxuYCwgJ2dyZWVuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMubG9nKCdcXG5cdTI3MTcgVXBkYXRlIGZhaWxlZFxcbicsICdyZWQnKTtcbiAgICAgIHRoaXMubG9nKCdUcnkgbWFudWFsIGluc3RhbGw6XFxuJywgJ3llbGxvdycpO1xuICAgICAgdGhpcy5sb2coYCAgbnBtIGluc3RhbGwgLWcgJHtQQUNLQUdFX05BTUV9QGxhdGVzdFxcbmAsICdibHVlJyk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3cgY2hhbmdlbG9nXG4gICAqL1xuICBwcml2YXRlIHNob3dDaGFuZ2Vsb2coKTogdm9pZCB7XG4gICAgdGhpcy5sb2coJ1xcblx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMVx1MjUwMScsICdibHVlJyk7XG4gICAgdGhpcy5sb2coJyBFWiBBZ2VudHMgQ2hhbmdlbG9nJywgJ2JvbGQnKTtcbiAgICB0aGlzLmxvZygnXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXFxuJywgJ2JsdWUnKTtcblxuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLmNoYW5nZWxvZ1JlYWRlci5yZWFkKDUwKTtcbiAgICB0aGlzLmxvZyhjb250ZW50KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGhlbHBcbiAgICovXG4gIHByaXZhdGUgc2hvd0hlbHAoKTogdm9pZCB7XG4gICAgdGhpcy5sb2coYFxuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXG4gRVogQWdlbnRzIFVwZGF0ZSBcdTIwMTQgQ2hlY2sgYW5kIEluc3RhbGwgVXBkYXRlc1xuXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXHUyNTAxXG5cblVzYWdlOlxuICBlei1hZ2VudHMtdXBkYXRlIFtvcHRpb25zXVxuXG5PcHRpb25zOlxuICAtLWNoZWNrICAgICAgQ2hlY2sgZm9yIHVwZGF0ZXMgKGRvbid0IGluc3RhbGwpXG4gIC0tZm9yY2UgICAgICBGb3JjZSByZWluc3RhbGwgZXZlbiBpZiB1cC10by1kYXRlXG4gIC0tY2hhbmdlbG9nICBTaG93IGNoYW5nZWxvZ1xuICAtLWhlbHAgICAgICAgU2hvdyB0aGlzIGhlbHAgbWVzc2FnZVxuXG5FeGFtcGxlczpcbiAgZXotYWdlbnRzLXVwZGF0ZSAgICAgICAgICAgICAgIyBDaGVjayBhbmQgcHJvbXB0IHRvIHVwZGF0ZVxuICBlei1hZ2VudHMtdXBkYXRlIC0tY2hlY2sgICAgICAjIENoZWNrIG9ubHlcbiAgZXotYWdlbnRzLXVwZGF0ZSAtLWZvcmNlICAgICAgIyBGb3JjZSByZWluc3RhbGxcbiAgZXotYWdlbnRzLXVwZGF0ZSAtLWNoYW5nZWxvZyAgIyBWaWV3IGNoYW5nZWxvZ1xuXG5NYW51YWwgVXBkYXRlOlxuICBucG0gaW5zdGFsbCAtZyBlei1hZ2VudHNAbGF0ZXN0XG5gKTtcbiAgfVxufVxuXG4vLyBcdTI1MDBcdTI1MDBcdTI1MDAgVmVyc2lvbkNoZWNrZXIgQ2xhc3MgXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXG5cbi8qKlxuICogVmVyc2lvbkNoZWNrZXIgXHUyMDE0IENoZWNrcyBjdXJyZW50IGFuZCBsYXRlc3QgdmVyc2lvbnNcbiAqXG4gKiBAY2xhc3MgVmVyc2lvbkNoZWNrZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFZlcnNpb25DaGVja2VyIHtcbiAgLyoqXG4gICAqIEdldCBjdXJyZW50IGluc3RhbGxlZCB2ZXJzaW9uXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IEN1cnJlbnQgdmVyc2lvblxuICAgKi9cbiAgZ2V0Q3VycmVudFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcGtnUGF0aCA9IHBhdGguam9pbihfX2Rpcm5hbWUsICdwYWNrYWdlLmpzb24nKTtcbiAgICAgIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGYtOCcpKTtcbiAgICAgIHJldHVybiBwa2cudmVyc2lvbjtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiAndW5rbm93bic7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsYXRlc3QgdmVyc2lvbiBmcm9tIG5wbVxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgbnVsbH0gTGF0ZXN0IHZlcnNpb24gb3IgbnVsbCBpZiB1bmF2YWlsYWJsZVxuICAgKi9cbiAgZ2V0TGF0ZXN0VmVyc2lvbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoYG5wbSB2aWV3ICR7UEFDS0FHRV9OQU1FfSB2ZXJzaW9uYCwge1xuICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgc3RkaW86IFsncGlwZScsICdwaXBlJywgJ2lnbm9yZSddLFxuICAgICAgICB0aW1lb3V0OiAxMDAwMCxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG91dHB1dC50cmltKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBGYWxsYmFjazogY2hlY2sgR2l0SHViIHJlcG9cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBucG0gdmlldyBnaXQrJHtSRVBPX1VSTH0gdmVyc2lvbmAsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgICBzdGRpbzogWydwaXBlJywgJ3BpcGUnLCAnaWdub3JlJ10sXG4gICAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gb3V0cHV0LnRyaW0oKTtcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdXBkYXRlIGlzIGF2YWlsYWJsZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gVHJ1ZSBpZiB1cGRhdGUgYXZhaWxhYmxlXG4gICAqL1xuICBoYXNVcGRhdGUoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZ2V0Q3VycmVudFZlcnNpb24oKTtcbiAgICBjb25zdCBsYXRlc3QgPSB0aGlzLmdldExhdGVzdFZlcnNpb24oKTtcblxuICAgIGlmICghbGF0ZXN0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGN1cnJlbnQgIT09IGxhdGVzdDtcbiAgfVxufVxuXG4vLyBcdTI1MDBcdTI1MDBcdTI1MDAgVXBkYXRlSW5zdGFsbGVyIENsYXNzIFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFxuXG4vKipcbiAqIFVwZGF0ZUluc3RhbGxlciBcdTIwMTQgSW5zdGFsbHMgdXBkYXRlc1xuICpcbiAqIEBjbGFzcyBVcGRhdGVJbnN0YWxsZXJcbiAqL1xuZXhwb3J0IGNsYXNzIFVwZGF0ZUluc3RhbGxlciB7XG4gIHByaXZhdGUgdmVyc2lvbkNoZWNrZXI6IFZlcnNpb25DaGVja2VyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gVXBkYXRlSW5zdGFsbGVyIGluc3RhbmNlXG4gICAqIEBwYXJhbSB2ZXJzaW9uQ2hlY2tlciAtIFZlcnNpb25DaGVja2VyIGluc3RhbmNlXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih2ZXJzaW9uQ2hlY2tlcjogVmVyc2lvbkNoZWNrZXIpIHtcbiAgICB0aGlzLnZlcnNpb25DaGVja2VyID0gdmVyc2lvbkNoZWNrZXI7XG4gIH1cblxuICAvKipcbiAgICogSW5zdGFsbCB1cGRhdGVcbiAgICogQHBhcmFtIGZvcmNlIC0gRm9yY2UgcmVpbnN0YWxsXG4gICAqL1xuICBpbnN0YWxsKGZvcmNlOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMudmVyc2lvbkNoZWNrZXIuZ2V0Q3VycmVudFZlcnNpb24oKTtcbiAgICBjb25zdCBsYXRlc3QgPSB0aGlzLnZlcnNpb25DaGVja2VyLmdldExhdGVzdFZlcnNpb24oKTtcblxuICAgIGlmICghbGF0ZXN0KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjaGVjayBmb3IgdXBkYXRlcycpO1xuICAgIH1cblxuICAgIGlmIChjdXJyZW50ID09PSBsYXRlc3QgJiYgIWZvcmNlKSB7XG4gICAgICBjb25zb2xlLmxvZygnQWxyZWFkeSBvbiBsYXRlc3QgdmVyc2lvbicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGBVcGRhdGluZzogdiR7Y3VycmVudH0gXHUyMTkyIHYke2xhdGVzdH0uLi5gKTtcblxuICAgIGV4ZWNTeW5jKGBucG0gaW5zdGFsbCAtZyAke1BBQ0tBR0VfTkFNRX1AbGF0ZXN0YCwge1xuICAgICAgc3RkaW86ICdpbmhlcml0JyxcbiAgICAgIHRpbWVvdXQ6IDEyMDAwMCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3JjZSByZWluc3RhbGxcbiAgICovXG4gIGZvcmNlSW5zdGFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmluc3RhbGwodHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGUgaW5zdGFsbGF0aW9uXG4gICAqIEByZXR1cm5zIHtib29sZWFufSBUcnVlIGlmIGluc3RhbGxhdGlvbiBzdWNjZXNzZnVsXG4gICAqL1xuICB2YWxpZGF0ZUluc3RhbGwoKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKGBucG0gbGlzdCAtZyAke1BBQ0tBR0VfTkFNRX1gLCB7XG4gICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICBzdGRpbzogWydwaXBlJywgJ3BpcGUnLCAnaWdub3JlJ10sXG4gICAgICB9KTtcbiAgICAgIHJldHVybiBvdXRwdXQuaW5jbHVkZXMoUEFDS0FHRV9OQU1FKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gXHUyNTAwXHUyNTAwXHUyNTAwIENoYW5nZWxvZ1JlYWRlciBDbGFzcyBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcblxuLyoqXG4gKiBDaGFuZ2Vsb2dSZWFkZXIgXHUyMDE0IFJlYWRzIGFuZCBmb3JtYXRzIGNoYW5nZWxvZ1xuICpcbiAqIEBjbGFzcyBDaGFuZ2Vsb2dSZWFkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENoYW5nZWxvZ1JlYWRlciB7XG4gIC8qKlxuICAgKiBSZWFkIGNoYW5nZWxvZ1xuICAgKiBAcGFyYW0gbWF4TGluZXMgLSBNYXhpbXVtIGxpbmVzIHRvIHJlYWQgKGRlZmF1bHQ6IDUwKVxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBGb3JtYXR0ZWQgY2hhbmdlbG9nXG4gICAqL1xuICByZWFkKG1heExpbmVzOiBudW1iZXIgPSA1MCk6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNoYW5nZWxvZ1BhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCAnQ0hBTkdFTE9HLm1kJyk7XG5cbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNoYW5nZWxvZ1BhdGgpKSB7XG4gICAgICAgIGNvbnN0IGNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY2hhbmdlbG9nUGF0aCwgJ3V0Zi04Jyk7XG4gICAgICAgIGNvbnN0IGxpbmVzID0gY29udGVudC5zcGxpdCgnXFxuJykuc2xpY2UoMCwgbWF4TGluZXMpO1xuICAgICAgICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gYENIQU5HRUxPRy5tZCBub3QgZm91bmRcXG5cXG5WaWV3IG9ubGluZTogJHtSRVBPX1VSTH0vYmxvYi9tYWluL0NIQU5HRUxPRy5tZFxcbmA7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJ1VuYWJsZSB0byByZWFkIGNoYW5nZWxvZyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBsYXRlc3QgdmVyc2lvbiBmcm9tIGNoYW5nZWxvZ1xuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBMYXRlc3QgdmVyc2lvblxuICAgKi9cbiAgZ2V0TGF0ZXN0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGFuZ2Vsb2dQYXRoID0gcGF0aC5qb2luKF9fZGlybmFtZSwgJ0NIQU5HRUxPRy5tZCcpO1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2hhbmdlbG9nUGF0aCkpIHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhjaGFuZ2Vsb2dQYXRoLCAndXRmLTgnKTtcbiAgICAgICAgY29uc3QgbWF0Y2ggPSBjb250ZW50Lm1hdGNoKC8jIyBcXFsoXFxkK1xcLlxcZCtcXC5cXGQrKVxcXS8pO1xuICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICByZXR1cm4gbWF0Y2hbMV07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiAndW5rbm93bic7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gJ3Vua25vd24nO1xuICAgIH1cbiAgfVxufVxuXG4vLyBcdTI1MDBcdTI1MDBcdTI1MDAgTWFpbiBFbnRyeSBQb2ludCBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcblxuLy8gQ3JlYXRlIGFuZCBleGVjdXRlIHVwZGF0ZXJcbmNvbnN0IHVwZGF0ZXIgPSBuZXcgVXBkYXRlcigpO1xudXBkYXRlci5leGVjdXRlKCk7XG4iLCAiLyoqXHJcbiAqIEJhc2UgQ0xJIEhhbmRsZXIgXHUyMDE0IEFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIENMSSBlbnRyeSBwb2ludHNcclxuICpcclxuICogUHJvdmlkZXMgY29tbW9uIENMSSBmdW5jdGlvbmFsaXR5IGluY2x1ZGluZzpcclxuICogLSBDb2xvciBjb25zdGFudHMgZm9yIHRlcm1pbmFsIG91dHB1dFxyXG4gKiAtIExvZ2dpbmcgdXRpbGl0eSBtZXRob2RzXHJcbiAqIC0gUGF0aCBleHBhbnNpb24gdXRpbGl0aWVzXHJcbiAqIC0gSlNPTiBmaWxlIG9wZXJhdGlvbnNcclxuICogLSBEaXJlY3RvcnkgbWFuYWdlbWVudFxyXG4gKlxyXG4gKiBAYWJzdHJhY3RcclxuICogQGNsYXNzIEJhc2VDbGlIYW5kbGVyXHJcbiAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNsaUhhbmRsZXIge1xyXG4gIC8qKlxyXG4gICAqIENvbG9yIGNvZGVzIGZvciB0ZXJtaW5hbCBvdXRwdXRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29sb3JzID0ge1xyXG4gICAgcmVzZXQ6ICdcXHgxYlswbScsXHJcbiAgICBncmVlbjogJ1xceDFiWzMybScsXHJcbiAgICB5ZWxsb3c6ICdcXHgxYlszM20nLFxyXG4gICAgYmx1ZTogJ1xceDFiWzM0bScsXHJcbiAgICByZWQ6ICdcXHgxYlszMW0nLFxyXG4gICAgYm9sZDogJ1xceDFiWzFtJyxcclxuICAgIGN5YW46ICdcXHgxYlszNm0nLFxyXG4gICAgZGltOiAnXFx4MWJbMm0nLFxyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIExvZyBhIG1lc3NhZ2UgdG8gY29uc29sZSB3aXRoIG9wdGlvbmFsIGNvbG9yXHJcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBsb2dcclxuICAgKiBAcGFyYW0gY29sb3IgLSBPcHRpb25hbCBjb2xvciBrZXkgZnJvbSBjb2xvcnMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGxvZyhtZXNzYWdlOiBzdHJpbmcsIGNvbG9yPzoga2V5b2YgdHlwZW9mIHRoaXMuY29sb3JzKTogdm9pZCB7XHJcbiAgICBjb25zdCBjb2xvckNvZGUgPSBjb2xvciA/IHRoaXMuY29sb3JzW2NvbG9yXSA6ICcnO1xyXG4gICAgY29uc3QgcmVzZXRDb2RlID0gY29sb3IgPyB0aGlzLmNvbG9ycy5yZXNldCA6ICcnO1xyXG4gICAgY29uc29sZS5sb2coYCR7Y29sb3JDb2RlfSR7bWVzc2FnZX0ke3Jlc2V0Q29kZX1gKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4cGFuZCB0aWxkZSAofikgaW4gZmlsZSBwYXRocyB0byBob21lIGRpcmVjdG9yeVxyXG4gICAqIEBwYXJhbSBmaWxlUGF0aCAtIFRoZSBmaWxlIHBhdGggcG90ZW50aWFsbHkgY29udGFpbmluZyB+XHJcbiAgICogQHJldHVybnMgVGhlIGV4cGFuZGVkIGFic29sdXRlIHBhdGhcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgZXhwYW5kVGlsZGUoZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZpbGVQYXRoLnN0YXJ0c1dpdGgoJ34nKSkge1xyXG4gICAgICByZXR1cm4gZmlsZVBhdGg7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaG9tZURpciA9IHByb2Nlc3MuZW52LkhPTUUgfHwgcHJvY2Vzcy5lbnYuVVNFUlBST0ZJTEUgfHwgJyc7XHJcbiAgICByZXR1cm4gZmlsZVBhdGgucmVwbGFjZSgvXn4vLCBob21lRGlyKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJlYWQgYW5kIHBhcnNlIGEgSlNPTiBmaWxlXHJcbiAgICogQHRlbXBsYXRlIFQgLSBFeHBlY3RlZCB0eXBlIG9mIHRoZSBKU09OIGRhdGFcclxuICAgKiBAcGFyYW0gcGF0aCAtIFBhdGggdG8gdGhlIEpTT04gZmlsZVxyXG4gICAqIEByZXR1cm5zIFBhcnNlZCBKU09OIGRhdGFcclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgZmlsZSBjYW5ub3QgYmUgcmVhZCBvciBwYXJzZWRcclxuICAgKi9cclxuICBwcm90ZWN0ZWQgcmVhZEpzb25GaWxlPFQ+KHBhdGg6IHN0cmluZyk6IFQge1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgY29uc3QgY29udGVudCA9IGZzLnJlYWRGaWxlU3luYyhwYXRoLCAndXRmLTgnKTtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGNvbnRlbnQpIGFzIFQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBXcml0ZSBkYXRhIHRvIGEgSlNPTiBmaWxlXHJcbiAgICogQHBhcmFtIHBhdGggLSBQYXRoIHRvIHRoZSBKU09OIGZpbGVcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gd3JpdGUgKHdpbGwgYmUgSlNPTiBzdHJpbmdpZmllZClcclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgZmlsZSBjYW5ub3QgYmUgd3JpdHRlblxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCB3cml0ZUpzb25GaWxlKHBhdGg6IHN0cmluZywgZGF0YTogdW5rbm93bik6IHZvaWQge1xyXG4gICAgY29uc3QgZnMgPSByZXF1aXJlKCdmcycpO1xyXG4gICAgY29uc3QgY29udGVudCA9IEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpO1xyXG4gICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLCBjb250ZW50LCAndXRmLTgnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVuc3VyZSBhIGRpcmVjdG9yeSBleGlzdHMsIGNyZWF0aW5nIGl0IGlmIG5lY2Vzc2FyeVxyXG4gICAqIEBwYXJhbSBkaXJQYXRoIC0gUGF0aCB0byB0aGUgZGlyZWN0b3J5XHJcbiAgICogQHRocm93cyB7RXJyb3J9IElmIGRpcmVjdG9yeSBjYW5ub3QgYmUgY3JlYXRlZFxyXG4gICAqL1xyXG4gIHByb3RlY3RlZCBlbnN1cmVEaXJlY3RvcnkoZGlyUGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBmcyA9IHJlcXVpcmUoJ2ZzJyk7XHJcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZGlyUGF0aCkpIHtcclxuICAgICAgZnMubWtkaXJTeW5jKGRpclBhdGgsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7O0FBY0EsU0FBUyxnQkFBZ0I7QUFDekIsWUFBWSxVQUFVO0FBQ3RCLFlBQVksUUFBUTtBQUNwQixTQUFTLHFCQUFxQjs7O0FDSnZCLElBQWUsaUJBQWYsTUFBOEI7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUloQixTQUFTO0FBQUEsSUFDMUIsT0FBTztBQUFBLElBQ1AsT0FBTztBQUFBLElBQ1AsUUFBUTtBQUFBLElBQ1IsTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLElBQ0wsTUFBTTtBQUFBLElBQ04sTUFBTTtBQUFBLElBQ04sS0FBSztBQUFBLEVBQ1A7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRUFPVSxJQUFJLFNBQWlCLE9BQXdDO0FBQ3JFLFVBQU0sWUFBWSxRQUFRLEtBQUssT0FBTyxLQUFLLElBQUk7QUFDL0MsVUFBTSxZQUFZLFFBQVEsS0FBSyxPQUFPLFFBQVE7QUFDOUMsWUFBUSxJQUFJLEdBQUcsU0FBUyxHQUFHLE9BQU8sR0FBRyxTQUFTLEVBQUU7QUFBQSxFQUNsRDtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQU9VLFlBQVksVUFBMEI7QUFDOUMsUUFBSSxDQUFDLFNBQVMsV0FBVyxHQUFHLEdBQUc7QUFD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
|