Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

companion-cloud-client

Package Overview
Dependencies
Maintainers
3
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

companion-cloud-client - npm Package Compare versions

Comparing version 1.0.1 to 1.0.2

8

dist/index.js

@@ -97,3 +97,3 @@ "use strict";

newConnection.on('socketstate', (state) => {
console.log('DEBUG; Region %o changed state to %o', region.id, state);
//console.log('DEBUG; Region %o changed state to %o', region.id, state)
this.calculateState();

@@ -114,4 +114,4 @@ });

newConnection.on('regions', (regions) => {
console.log('New regions: ', regions);
console.log('Old regions: ', this.regions);
//console.log('New regions: ', regions)
//console.log('Old regions: ', this.regions)
});

@@ -258,2 +258,2 @@ void newConnection.init();

exports.CloudClient = CloudClient;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoic3JjLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQW1EO0FBQ25ELGlDQUF5QjtBQUV6QixtQ0FBcUM7QUFDckMsaUNBQWdDO0FBR2hDLE1BQU0sU0FBUyxHQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLG9DQUFvQyxDQUFBO0FBRTVHLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFBO0FBU25DLE1BQU0sb0JBQXFCLFNBQVEsS0FBSztJQUN2QyxZQUFZLE9BQWU7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQTtJQUNuQyxDQUFDO0NBQ0Q7QUFhRDs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUyxxQkFBZ0Y7SUFlakg7Ozs7T0FJRztJQUNILFlBQVksaUJBQXlCO1FBQ3BDLEtBQUssRUFBRSxDQUFBO1FBbkJBLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQTtRQUNuQyxtQkFBYyxHQUF1QixFQUFFLENBQUE7UUFDdkMsWUFBTyxHQUF1QixFQUFFLENBQUE7UUFDaEMsVUFBSyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDNUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUE7UUFDTSxZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsZ0JBQVcsR0FBa0IsTUFBTSxDQUFBO1FBR25DLGNBQVMsR0FBOEIsRUFBRSxDQUFBO1FBU2hELElBQUksQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUE7SUFDckMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQixFQUFFLE9BQWdCO1FBQ3RELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFD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QUksR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQy9CLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxFQUFFO29CQUM5QyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUE7aUJBQzFCO2FBQ0Q7UUFDRixDQUFDLEVBQUUsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLENBQUE7UUFFakMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7UUFDN0IsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRVYsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ04sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ25CLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7U0FDN0I7UUFDRCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUM5QixhQUFhLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUE7U0FDeEM7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQ3ZDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNyQixDQUFDLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFBO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ2xCLENBQUM7SUFFRCxPQUFPLEtBQUksQ0FBQztDQUNaO0FBM1JELGtDQTJSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsb3VkQ29ubmVjdGlvbiB9IGZyb20gJy4vY2xvdWRjb25uZWN0aW9uJ1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IFN0cmljdEV2ZW50RW1pdHRlciBmcm9tICdzdHJpY3QtZXZlbnQtZW1pdHRlci10eXBlcydcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cydcbmltcG9ydCAqIGFzIGNyeXB0byBmcm9tICdjcnlwdG8nXG5pbXBvcnQgeyBDb21wYW5pb25CdXR0b25TdHlsZVByb3BzLCBNdWx0aUJhbmsgfSBmcm9tICcuL3R5cGVzJ1xuXG5jb25zdCBDTE9VRF9VUkwgPVxuXHRwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID8gJ2h0dHBzOi8vYXBpLmJpdGZvY3VzLmlvL3YxJyA6ICdodHRwczovL2FwaS1zdGFnaW5nLmJpdGZvY3VzLmlvL3YxJ1xuXG5jb25zdCBDT01QQU5JT05fUElOR19USU1FT1VUID0gNTAwMFxuXG5leHBvcnQgdHlwZSBSZWdpb25EZWZpbml0aW9uID0ge1xuXHRpZDogc3RyaW5nXG5cdGhvc3RuYW1lOiBzdHJpbmdcblx0bG9jYXRpb246IHN0cmluZ1xuXHRsYWJlbDogc3RyaW5nXG59XG5cbmNsYXNzIFJlZ2lvbkZldGNoRXhjZXB0aW9uIGV4dGVuZHMgRXJyb3Ige1xuXHRjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcblx0XHRzdXBlcihtZXNzYWdlKVxuXHRcdHRoaXMubmFtZSA9ICdSZWdpb25GZXRjaEV4Y2VwdGlvbidcblx0fVxufVxuXG5leHBvcnQgdHlwZSBDQ01vZHVsZVN0YXRlID0gJ0lETEUnIHwgJ1dBUk5JTkcnIHwgJ0VSUk9SJyB8ICdPSydcbmV4cG9ydCB0eXBlIENDTG9nTGV2ZWwgPSAnZXJyb3InIHwgJ3dhcm5pbmcnIHwgJ2luZm8nIHwgJ2RlYnVnJ1xuXG5pbnRlcmZhY2UgQ2xvdWRDbGllbnRFdmVudHMge1xuXHRzdGF0ZTogKHN0YXRlOiBDQ01vZHVsZVN0YXRlLCBtZXNzYWdlPzogc3RyaW5nKSA9PiB2b2lkXG5cdGVycm9yOiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkXG5cdGxvZzogKGxldmVsOiBDQ0xvZ0xldmVsLCBtZXNzYWdlOiBzdHJpbmcpID0+IHZvaWRcblx0dXBkYXRlOiAocGFnZTogbnVtYmVyLCBiYW5rOiBudW1iZXIsIGRhdGE6IENvbXBhbmlvbkJ1dHRvblN0eWxlUHJvcHMpID0+IHZvaWRcblx0dXBkYXRlQWxsOiAoYmFua3M6IHsgcGFnZTogbnVtYmVyOyBiYW5rOiBudW1iZXI7IGRhdGE6IENvbXBhbmlvbkJ1dHRvblN0eWxlUHJvcHMgfVtdKSA9PiB2b2lkXG59XG5cbi8qKlxuICogVGhlIENsb3VkQ2xpZW50IGlzIHJlc3BvbnNpYmxlIGZvciBjb25uZWN0aW5nIHRvIHRoZSBjbG91ZCBhbmRcbiAqIGNvbW11bmljYXRpbmcgd2l0aCB0aGUgY29tcGFuaW9uIHNlcnZlclxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRDbGllbnQgZXh0ZW5kcyAoRXZlbnRFbWl0dGVyIGFzIHsgbmV3ICgpOiBTdHJpY3RFdmVudEVtaXR0ZXI8RXZlbnRFbWl0dGVyLCBDbG91ZENsaWVudEV2ZW50cz4gfSkge1xuXHRwcml2YXRlIGNvbXBhbmlvbklkOiBzdHJpbmdcblx0cHJpdmF0ZSBjb25uZWN0aW9uczogQ2xvdWRDb25uZWN0aW9uW10gPSBbXVxuXHRwcml2YXRlIGN1cnJlbnRSZWdpb25zOiBSZWdpb25EZWZpbml0aW9uW10gPSBbXVxuXHRwcml2YXRlIHJlZ2lvbnM6IFJlZ2lvbkRlZmluaXRpb25bXSA9IFtdXG5cdHByaXZhdGUgYXhpb3MgPSBheGlvcy5jcmVhdGUoe1xuXHRcdGJhc2VVUkw6IENMT1VEX1VSTCxcblx0XHR0aW1lb3V0OiAxMDAwMCxcblx0fSlcblx0cHJpdmF0ZSBjb3VudGVyID0gMFxuXHRwcml2YXRlIG1vZHVsZVN0YXRlOiBDQ01vZHVsZVN0YXRlID0gJ0lETEUnXG5cdHByaXZhdGUgcGluZ1RpbWVyOiBOb2RlSlMuVGltZXIgfCB1bmRlZmluZWRcblx0cHJpdmF0ZSBjaGVja0Nvbm5lY3Rpb25UaW1lcjogTm9kZUpTLlRpbWVyIHwgdW5kZWZpbmVkXG5cdHByaXZhdGUgdXBkYXRlSWRzOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge31cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5ldyBDbG91ZENsaWVudFxuXHQgKlxuXHQgKiBAcGFyYW0gcmVtb3RlQ29tcGFuaW9uSWQgVGhlIHN1cGVyIHNlY3JldCBpZCB0byBjb25uZWN0IHRvIHZpYSB0aGUgY2xvdWRcblx0ICovXG5cdGNvbnN0cnVjdG9yKHJlbW90ZUNvbXBhbmlvbklkOiBzdHJpbmcpIHtcblx0XHRzdXBlcigpXG5cdFx0dGhpcy5jb21wYW5pb25JZCA9IHJlbW90ZUNvbXBhbmlvbklkXG5cdH1cblxuXHRwcml2YXRlIHNldFN0YXRlKHN0YXRlOiBDQ01vZHVsZVN0YXRlLCBtZXNzYWdlPzogc3RyaW5nKSB7XG5cdFx0aWYgKHN0YXRlICE9PSB0aGlzLm1vZHVsZVN0YXRlKSB7XG5cdFx0XHR0aGlzLm1vZHVsZVN0YXRlID0gc3RhdGVcblx0XHRcdHRoaXMuZW1pdCgnc3RhdGUnLCBzdGF0ZSwgbWVzc2FnZSlcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIGNhbGN1bGF0ZVN0YXRlKCkge1xuXHRcdGNvbnN0IGNvbm5lY3RlZCA9IHRoaXMuY29ubmVjdGlvbnMuZmlsdGVyKChjKSA9PiBjLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ0NPTk5FQ1RFRCcpLmxlbmd0aFxuXHRcdGNvbnN0IGNvbm5lY3RpbmcgPSB0aGlzLmNvbm5lY3Rpb25zLmZpbHRlcigoYykgPT4gYy5jb25uZWN0aW9uU3RhdGUgPT09ICdDT05ORUNUSU5HJykubGVuZ3RoXG5cdFx0Ly9jb25zdCBkaXNjb25uZWN0ZWQgPSB0aGlzLmNvbm5lY3Rpb25zLmZpbHRlcihjID0+IGMuY29ubmVjdGlvblN0YXRlID09PSAnRElTQ09OTkVDVEVEJykubGVuZ3RoO1xuXHRcdGNvbnN0IHdhbnRzID0gdGhpcy5yZWdpb25zLmxlbmd0aFxuXG5cdFx0Lypcblx0XHQgdGhpcyBjb2RlIGlzIGNvbW1lbnRlZCBiZWNhdXNlIHdlIHdhbnQgdG8ga25vdyBpZiB3ZSByZWFjaCB0aGUgcmVtb3RlIGNvbXBhbmlvbiwgbm90IGlmIHdlIGFyZSBjb25uZWN0ZWQgdG8gYWxsIHRoZSByZWdpb25zXG5cdFx0aWYgKGNvbm5lY3RlZCA+PSB3YW50cykge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnT0snKSAvLyBUT0RPOiBvbmx5IGlmIHJlbW90ZSBjb21wYW5pb24gaXMgYWxzbyBPS1xuXHRcdH0gZWxzZSBpZiAoY29ubmVjdGVkICsgY29ubmVjdGluZyA9PT0gMCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnRVJST1InLCAnTm90IGNvbm5lY3RpbmcnKVxuXHRcdH0gZWxzZSBpZiAoY29ubmVjdGVkID09PSAwKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKCdFUlJPUicsICdObyBjb25uZWN0aW9ucyBlc3RhYmxpc2hlZCcpXG5cdFx0fSBlbHNlIGlmIChjb25uZWN0ZWQgPCB3YW50cykge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnV0FSTklORycsIGBPbmx5ICR7Y29ubmVjdGVkfSBvZiAke3dhbnRzfSBjb25uZWN0aW9ucyBlc3RhYmxpc2hlZGApXG5cdFx0fSovXG5cdFx0aWYgKHdhbnRzID4gMCAmJiBjb25uZWN0ZWQgPT09IDApIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ0VSUk9SJywgJ05vIHJlbGV2YW50IHJlZ2lvbnMgYXJlIHJlYWNoYWJsZScpXG5cdFx0XHR0aGlzLmVtaXQoJ2xvZycsICdlcnJvcicsICdObyByZWxldmFudCByZWdpb25zIGFyZSByZWFjaGFibGUsIGNoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbicpXG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyB1cGRhdGVSZWdpb25zRnJvbVJFU1QoKSB7XG5cdFx0Y29uc3QgbmV3UmVnaW9ucyA9IGF3YWl0IHRoaXMuZmV0Y2hSZWdpb25zRm9yKHRoaXMuY29tcGFuaW9uSWQpXG5cdFx0aWYgKG5ld1JlZ2lvbnMubGVuZ3RoID09PSAwKSB7XG5cdFx0XHR0aGlzLmVtaXQoXG5cdFx0XHRcdCdsb2cnLFxuXHRcdFx0XHQnZXJyb3InLFxuXHRcdFx0XHQnUmVtb3RlIGNvbXBhbmlvbiBkb2VzIG5vdCBzZWVtIHRvIGJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgY2xvdWQsIHJldHJ5aW5nIGluIDEwIHNlY29uZHMnXG5cdFx0XHQpXG5cdFx0XHRpZiAodGhpcy5yZWdpb25zLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy5yZWdpb25zID0gbmV3UmVnaW9uc1xuXHRcdFx0XHR0aGlzLnJlY2FsY3VsYXRlUmVnaW9ucygpXHRcdFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuXG5cdFx0fVxuXHRcdHRoaXMucmVnaW9ucyA9IG5ld1JlZ2lvbnNcblx0XHR0aGlzLnJlY2FsY3VsYXRlUmVnaW9ucygpXG5cdH1cblxuXHRwcml2YXRlIGFzeW5jIHJlY2FsY3VsYXRlUmVnaW9ucygpIHtcblx0XHRjb25zdCByZWdpb25zVG9SZW1vdmUgPSB0aGlzLmN1cnJlbnRSZWdpb25zLmZpbHRlcigocikgPT4gIXRoaXMucmVnaW9ucy5maW5kKChucikgPT4gbnIuaWQgPT09IHIuaWQpKVxuXHRcdGNvbnN0IHJlZ2lvbnNUb0FkZCA9IHRoaXMucmVnaW9ucy5maWx0ZXIoKHIpID0+ICF0aGlzLmN1cnJlbnRSZWdpb25zLmZpbmQoKG5yKSA9PiBuci5pZCA9PT0gci5pZCkpXG5cblx0XHRmb3IgKGNvbnN0IHJlZ2lvbiBvZiByZWdpb25zVG9SZW1vdmUpIHtcblx0XHRcdGNvbnN0IGNvbm5lY3Rpb24gPSB0aGlzLmNvbm5lY3Rpb25zLmZpbmQoKGMpID0+IGMucmVnaW9uSWQgPT09IHJlZ2lvbi5pZClcblx0XHRcdGlmIChjb25uZWN0aW9uKSB7XG5cdFx0XHRcdGF3YWl0IGNvbm5lY3Rpb24uZGVzdHJveSgpXG5cdFx0XHRcdHRoaXMuY29ubmVjdGlvbnMgPSB0aGlzLmNvbm5lY3Rpb25zLmZpbHRlcigoYykgPT4gYy5yZWdpb25JZCAhPT0gcmVnaW9uLmlkKVxuXHRcdFx0fVxuXHRcdFx0dGhpcy5jdXJyZW50UmVnaW9ucyA9IHRoaXMuY3VycmVudFJlZ2lvbnMuZmlsdGVyKChyKSA9PiByLmlkICE9PSByZWdpb24uaWQpXG5cdFx0XHR0aGlzLmVtaXQoJ2xvZycsICdpbmZvJywgYFJlZ2lvbiAke3JlZ2lvbi5sYWJlbH0gcmVtb3ZlZGApXG5cdFx0fVxuXG5cdFx0Zm9yIChjb25zdCByZWdpb24gb2YgcmVnaW9uc1RvQWRkKSB7XG5cdFx0XHRjb25zdCBuZXdDb25uZWN0aW9uID0gbmV3IENsb3VkQ29ubmVjdGlvbihyZWdpb24uaWQsIHJlZ2lvbi5ob3N0bmFtZSwgdGhpcy5jb21wYW5pb25JZClcblx0XHRcdHRoaXMuY29ubmVjdGlvbnMgPSBbLi4udGhpcy5jb25uZWN0aW9ucywgbmV3Q29ubmVjdGlvbl1cblx0XHRcdHRoaXMuY3VycmVudFJlZ2lvbnMgPSBbLi4udGhpcy5jdXJyZW50UmVnaW9ucywgcmVnaW9uXVxuXG5cdFx0XHRuZXdDb25uZWN0aW9uLm9uKCdzb2NrZXRzdGF0ZScsIChzdGF0ZSkgPT4ge1xuXHRcdFx0XHRjb25zb2xlLmxvZygnREVCVUc7IFJlZ2lvbiAlbyBjaGFuZ2VkIHN0YXRlIHRvICVvJywgcmVnaW9uLmlkLCBzdGF0ZSlcblx0XHRcdFx0dGhpcy5jYWxjdWxhdGVTdGF0ZSgpXG5cdFx0XHR9KVxuXG5cdFx0XHRuZXdDb25uZWN0aW9uLm9uKCdiYW5rcycsIChiYW5rcykgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy51cGRhdGVJZHNbYmFua3MudXBkYXRlSWRdKSByZXR1cm5cblx0XHRcdFx0dGhpcy51cGRhdGVJZHNbYmFua3MudXBkYXRlSWRdID0gRGF0ZS5ub3coKVxuXHRcdFx0XHR0aGlzLmVtaXQoJ3VwZGF0ZUFsbCcsIGJhbmtzLmRhdGEgYXMgTXVsdGlCYW5rKVxuXHRcdFx0fSlcblxuXHRcdFx0bmV3Q29ubmVjdGlvbi5vbignYmFuaycsIChiYW5rKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLnVwZGF0ZUlkc1tiYW5rLnVwZGF0ZUlkXSkgcmV0dXJuXG5cdFx0XHRcdHRoaXMuZW1pdCgndXBkYXRlJywgYmFuay5wYWdlLCBiYW5rLmJhbmssIGJhbmsuZGF0YSlcblx0XHRcdFx0dGhpcy51cGRhdGVJZHNbYmFuay51cGRhdGVJZF0gPSBEYXRlLm5vdygpXG5cdFx0XHR9KVxuXG5cdFx0XHRuZXdDb25uZWN0aW9uLm9uKCdyZWdpb25zJywgKHJlZ2lvbnMpID0+IHtcblx0XHRcdFx0Y29uc29sZS5sb2coJ05ldyByZWdpb25zOiAnLCByZWdpb25zKVxuXHRcdFx0XHRjb25zb2xlLmxvZygnT2xkIHJlZ2lvbnM6ICcsIHRoaXMucmVnaW9ucylcblx0XHRcdH0pXG5cblx0XHRcdHZvaWQgbmV3Q29ubmVjdGlvbi5pbml0KClcblx0XHRcdHRoaXMuZW1pdCgnbG9nJywgJ2luZm8nLCBgUmVnaW9uICR7cmVnaW9uLmxhYmVsfSBhZGRlZGApXG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyBmZXRjaFJlZ2lvbnNGb3IoY29tcGFuaW9uSWQ6IHN0cmluZykge1xuXHRcdC8vaWYgKHRoaXMuY291bnRlcisrIDwgMikgcmV0dXJuIFtdXG5cdFx0dHJ5IHtcblx0XHRcdHJldHVybiAoYXdhaXQgdGhpcy5heGlvcy5nZXQoYC9pbmZyYXN0cnVjdHVyZS9jbG91ZC9yZWdpb25zL2NvbXBhbmlvbi8ke2NvbXBhbmlvbklkfWApKS5kYXRhIGFzIHtcblx0XHRcdFx0aWQ6IHN0cmluZ1xuXHRcdFx0XHRob3N0bmFtZTogc3RyaW5nXG5cdFx0XHRcdGxvY2F0aW9uOiBzdHJpbmdcblx0XHRcdFx0bGFiZWw6IHN0cmluZ1xuXHRcdFx0fVtdXG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0cmV0dXJuIFtdXG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIHBpbmdpbmcgaXMgc2VudCBpbmRpdmlkdWFsbHksIGFuZCBjb3VudGVkIHVwLCBpbiBjb250cmFzdCB0byBjbGllbnRDb21tYW5kXG5cdCAqL1xuXHRhc3luYyBwaW5nQ29tcGFuaW9uKCkge1xuXHRcdGNvbnN0IG9ubGluZUNvbm5lY3Rpb25zID0gdGhpcy5jb25uZWN0aW9ucy5maWx0ZXIoKGNvbm5lY3Rpb24pID0+IGNvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAnQ09OTkVDVEVEJylcblxuXHRcdGNvbnN0IGFsbFRoZVByb21pc2VzID0gb25saW5lQ29ubmVjdGlvbnMubWFwKChjb25uZWN0aW9uKSA9PiB7XG5cdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0XHRjb25zdCBjYWxsZXJJZCA9IGNyeXB0by5yYW5kb21VVUlEKClcblx0XHRcdFx0Y29uc3QgcmVwbHlDaGFubmVsID0gJ2NvbXBhbmlvblByb2NSZXN1bHQ6JyArIGNhbGxlcklkXG5cblx0XHRcdFx0Y29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuXHRcdFx0XHRcdGNvbm5lY3Rpb24uc29ja2V0LnVuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRjb25uZWN0aW9uLnNvY2tldC5jbG9zZUNoYW5uZWwocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdHJlamVjdChuZXcgRXJyb3IoJ1RpbWVvdXQnKSlcblx0XHRcdFx0fSwgQ09NUEFOSU9OX1BJTkdfVElNRU9VVClcblxuXHRcdFx0XHQ7KGFzeW5jICgpID0+IHtcblx0XHRcdFx0XHRmb3IgYXdhaXQgKGxldCBkYXRhIG9mIGNvbm5lY3Rpb24uc29ja2V0LnN1YnNjcmliZShyZXBseUNoYW5uZWwpKSB7XG5cdFx0XHRcdFx0XHQvL2NvbnNvbGUubG9nKCdERUJVRzogR290IHJlcGx5IGZyb20gY29tcGFuaW9uJywgZGF0YSlcblx0XHRcdFx0XHRcdGNvbm5lY3Rpb24uc29ja2V0LnVuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRcdGNvbm5lY3Rpb24uc29ja2V0LmNsb3NlQ2hhbm5lbChyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dClcblx0XHRcdFx0XHRcdHJlc29sdmUodHJ1ZSlcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0pKClcblxuXHRcdFx0XHRjb25uZWN0aW9uLnNvY2tldC50cmFuc21pdFB1Ymxpc2goYGNvbXBhbmlvblByb2M6JHt0aGlzLmNvbXBhbmlvbklkfTpwaW5nYCwgeyBhcmdzOiBbXSwgY2FsbGVySWQgfSlcblx0XHRcdH0pXG5cdFx0fSlcblxuXHRcdGNvbnN0IHJlc3VsdCA9IGF3YWl0IFByb21pc2UuYWxsU2V0dGxlZChhbGxUaGVQcm9taXNlcylcblx0XHRjb25zdCBzdWNjZXNzID0gcmVzdWx0LmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKS5sZW5ndGhcblx0XHRjb25zdCBmYWlsZWQgPSByZXN1bHQuZmlsdGVyKChyKSA9PiByLnN0YXR1cyA9PT0gJ3JlamVjdGVkJykubGVuZ3RoXG5cblx0XHRpZiAoc3VjY2VzcyA9PT0gMCAmJiB0aGlzLnJlZ2lvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnRVJST1InLCAnUmVtb3RlIGNvbXBhbmlvbiBpcyB1bnJlYWNoYWJsZScpXG5cdFx0XHR0aGlzLmVtaXQoXG5cdFx0XHRcdCdsb2cnLFxuXHRcdFx0XHQnZXJyb3InLFxuXHRcdFx0XHRgUmVtb3RlIGNvbXBhbmlvbiBpcyB1bnJlYWNoYWJsZSB2aWEgaXRzICR7dGhpcy5yZWdpb25zLmxlbmd0aH0gcmVnaW9uIGNvbm5lY3Rpb24ke1xuXHRcdFx0XHRcdHRoaXMucmVnaW9ucy5sZW5ndGggIT09IDEgPyAncycgOiAnJ1xuXHRcdFx0XHR9YFxuXHRcdFx0KVxuXHRcdH0gZWxzZSBpZiAoZmFpbGVkID4gMCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnV0FSTklORycsIGBSZW1vdGUgY29tcGFuaW9uIGlzIHVucmVhY2hhYmxlIHRocm91Z2ggc29tZSByZWdpb25zYClcblx0XHRcdHRoaXMuZW1pdChcblx0XHRcdFx0J2xvZycsXG5cdFx0XHRcdCd3YXJuaW5nJyxcblx0XHRcdFx0YFJlbW90ZSBjb21wYW5pb24gaXMgb25seSByZWFjaGFibGUgb24gJHtzdWNjZXNzfSBvZiAke29ubGluZUNvbm5lY3Rpb25zLmxlbmd0aH0gcmVnaW9uc2Bcblx0XHRcdClcblx0XHR9IGVsc2UgaWYgKHN1Y2Nlc3MgPT09IG9ubGluZUNvbm5lY3Rpb25zLmxlbmd0aCAmJiBvbmxpbmVDb25uZWN0aW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKCdPSycpXG5cdFx0fVxuXHR9XG5cblx0YXN5bmMgY2xpZW50Q29tbWFuZChuYW1lOiBzdHJpbmcsIC4uLmFyZ3M6IGFueVtdKSB7XG5cdFx0Y29uc3QgY2FsbGVySWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpXG5cdFx0Y29uc3QgcmVwbHlDaGFubmVsID0gJ2NvbXBhbmlvblByb2NSZXN1bHQ6JyArIGNhbGxlcklkXG5cblx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXHRcdFx0Y29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0dGhpcy5jb25uZWN0aW9uc1xuXHRcdFx0XHRcdC5maWx0ZXIoKGNvbm5lY3Rpb24pID0+IGNvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAnQ09OTkVDVEVEJylcblx0XHRcdFx0XHQuZm9yRWFjaCgoY29ubmVjdGlvbikgPT4ge1xuXHRcdFx0XHRcdFx0Y29ubmVjdGlvbi5zb2NrZXQudW5zdWJzY3JpYmUocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdFx0Y29ubmVjdGlvbi5zb2NrZXQuY2xvc2VDaGFubmVsKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHR9KVxuXHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdDbGllbnRDb21tYW5kIHRpbWVvdXQnKSlcblx0XHRcdH0sIDEwMDAwKVxuXG5cdFx0XHRsZXQgaXNIYW5kZWxlZCA9IGZhbHNlXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb25zXG5cdFx0XHRcdC5maWx0ZXIoKGNvbm5lY3Rpb24pID0+IGNvbm5lY3Rpb24uY29ubmVjdGlvblN0YXRlID09PSAnQ09OTkVDVEVEJylcblx0XHRcdFx0LmZvckVhY2goKGNvbm5lY3Rpb24pID0+IHtcblx0XHRcdFx0XHRjb25zdCBzb2NrZXQgPSBjb25uZWN0aW9uLnNvY2tldFxuXHRcdFx0XHRcdDsoYXN5bmMgKCkgPT4ge1xuXHRcdFx0XHRcdFx0Zm9yIGF3YWl0IChsZXQgZGF0YSBvZiBzb2NrZXQuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbCkpIHtcblx0XHRcdFx0XHRcdFx0aWYgKGlzSGFuZGVsZWQpIHtcblx0XHRcdFx0XHRcdFx0XHRzb2NrZXQudW5zdWJzY3JpYmUocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdFx0XHRcdHNvY2tldC5jbG9zZUNoYW5uZWwocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdFx0XHRcdHJldHVyblxuXHRcdFx0XHRcdFx0XHR9XG5cbi8vXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnREVCVUc7IEdvdCByZXNwb25zZSBmb3IgY29tbWFuZCAlbycsIHRoaXMuY29tcGFuaW9uSWQgKyAnOicgKyBuYW1lKVxuXHRcdFx0XHRcdFx0XHRjbGVhclRpbWVvdXQodGltZXIpXG5cdFx0XHRcdFx0XHRcdGlzSGFuZGVsZWQgPSB0cnVlXG5cblx0XHRcdFx0XHRcdFx0aWYgKGRhdGEuZXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdycGMgZXJyb3I6ICcgKyBkYXRhLmVycm9yKSlcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRyZXNvbHZlKGRhdGEucmVzdWx0KVxuXHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0c29ja2V0LnVuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRcdFx0c29ja2V0LmNsb3NlQ2hhbm5lbChyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0XHRcdGJyZWFrXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fSkoKVxuLypcblx0XHRcdFx0XHRjb25zb2xlLmxvZyhcblx0XHRcdFx0XHRcdCdERUJVRzsgU2VuZGluZyBjb21tYW5kIHRvICVvOiAlbycsXG5cdFx0XHRcdFx0XHRjb25uZWN0aW9uLnJlZ2lvbklkLFxuXHRcdFx0XHRcdFx0YGNvbXBhbmlvblByb2M6JHt0aGlzLmNvbXBhbmlvbklkfToke25hbWV9YFxuXHRcdFx0XHRcdCkqL1xuXHRcdFx0XHRcdHNvY2tldC50cmFuc21pdFB1Ymxpc2goYGNvbXBhbmlvblByb2M6JHt0aGlzLmNvbXBhbmlvbklkfToke25hbWV9YCwgeyBhcmdzLCBjYWxsZXJJZCB9KVxuXHRcdFx0XHR9KVxuXHRcdH0pXG5cdH1cblxuXHQvKipcblx0ICogSW5pdGlhbGl6ZXMgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGNsb3VkXG5cdCAqL1xuXHRhc3luYyBpbml0KCkge1xuXHRcdHRoaXMucGluZ1RpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuXHRcdFx0dGhpcy5waW5nQ29tcGFuaW9uKClcblxuXHRcdFx0Ly8gQ2xlYW51cCB1cGRhdGUgaWRzXG5cdFx0XHRmb3IgKGxldCBrZXkgaW4gdGhpcy51cGRhdGVJZHMpIHtcblx0XHRcdFx0aWYgKERhdGUubm93KCkgLSB0aGlzLnVwZGF0ZUlkc1trZXldID49IDMwMDAwKSB7XG5cdFx0XHRcdFx0ZGVsZXRlIHRoaXMudXBkYXRlSWRzW2tleV1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0sIENPTVBBTklPTl9QSU5HX1RJTUVPVVQgKyAyMDAwKVxuXG5cdFx0dGhpcy5jaGVja0Nvbm5lY3Rpb25UaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdHRoaXMudXBkYXRlUmVnaW9uc0Zyb21SRVNUKClcblx0XHR9LCAxMDAwMCk7XG5cblx0XHRhd2FpdCB0aGlzLnVwZGF0ZVJlZ2lvbnNGcm9tUkVTVCgpXG5cdH1cblxuXHQvKipcblx0ICogRGVzdHJveXMgcnVubmluZyB0aW1lcnMgYW5kIGNvbm5lY3Rpb25zXG5cdCAqL1xuXHRkZXN0cm95KCkge1xuXHRcdGlmICh0aGlzLnBpbmdUaW1lcikge1xuXHRcdFx0Y2xlYXJJbnRlcnZhbCh0aGlzLnBpbmdUaW1lcilcblx0XHR9XG5cdFx0aWYgKHRoaXMuY2hlY2tDb25uZWN0aW9uVGltZXIpIHtcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5jaGVja0Nvbm5lY3Rpb25UaW1lcilcblx0XHR9XG5cdFx0dGhpcy5jb25uZWN0aW9ucy5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XG5cdFx0XHRjb25uZWN0aW9uLmRlc3Ryb3koKVxuXHRcdH0pXG5cdFx0dGhpcy5jb25uZWN0aW9ucyA9IFtdXG5cdFx0dGhpcy5yZWdpb25zID0gW11cblx0fVxuXG5cdGNvbm5lY3QoKSB7fVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoic3JjLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQW1EO0FBQ25ELGlDQUF5QjtBQUV6QixtQ0FBcUM7QUFDckMsaUNBQWdDO0FBR2hDLE1BQU0sU0FBUyxHQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxLQUFLLFlBQVksQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLG9DQUFvQyxDQUFBO0FBRTVHLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFBO0FBU25DLE1BQU0sb0JBQXFCLFNBQVEsS0FBSztJQUN2QyxZQUFZLE9BQWU7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxzQkFBc0IsQ0FBQTtJQUNuQyxDQUFDO0NBQ0Q7QUFhRDs7O0dBR0c7QUFDSCxNQUFhLFdBQVksU0FBUyxxQkFBZ0Y7SUFlakg7Ozs7T0FJRztJQUNILFlBQVksaUJBQXlCO1FBQ3BDLEtBQUssRUFBRSxDQUFBO1FBbkJBLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQTtRQUNuQyxtQkFBYyxHQUF1QixFQUFFLENBQUE7UUFDdkMsWUFBTyxHQUF1QixFQUFFLENBQUE7UUFDaEMsVUFBSyxHQUFHLGVBQUssQ0FBQyxNQUFNLENBQUM7WUFDNUIsT0FBTyxFQUFFLFNBQVM7WUFDbEIsT0FBTyxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUE7UUFDTSxZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsZ0JBQVcsR0FBa0IsTUFBTSxDQUFBO1FBR25DLGNBQVMsR0FBOEIsRUFBRSxDQUFBO1FBU2hELElBQUksQ0FBQyxXQUFXLEdBQUcsaUJBQWlCLENBQUE7SUFDckMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQixFQUFFLE9BQWdCO1FBQ3RELElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUE7WUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO1NBQ2xDO0lBQ0YsQ0FBQztJQUVPLGNBQWM7UUFDckIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEtBQUssV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBQzFGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxLQUFLLFlBQVksQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUM1RixpR0FBaUc7UUFDakcsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUE7UUFFakM7Ozs7Ozs7Ozs7V0FVRztRQUNILElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxTQUFTLEtBQUssQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLG1DQUFtQyxDQUFDLENBQUE7WUFDM0QsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLG1FQUFtRSxDQUFDLENBQUE7U0FDOUY7SUFDRixDQUFDO0lBRU8sS0FBSyxDQUFDLHFCQUFxQjtRQUNsQyxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQy9ELElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLElBQUksQ0FDUixLQUFLLEVBQ0wsT0FBTyxFQUNQLHdGQUF3RixDQUN4RixDQUFBO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFBO2dCQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQTthQUN6QjtZQUNELE9BQU07U0FDTjtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFBO1FBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFTyxLQUFLLENBQUMsa0JBQWtCO1FBQy9CLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBQ3JHLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1FBRWxHLEtBQUssTUFBTSxNQUFNLElBQUksZUFBZSxFQUFFO1lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUN6RSxJQUFJLFVBQVUsRUFBRTtnQkFDZixNQUFNLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDM0U7WUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtZQUMzRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsVUFBVSxNQUFNLENBQUMsS0FBSyxVQUFVLENBQUMsQ0FBQTtTQUMxRDtRQUVELEtBQUssTUFBTSxNQUFNLElBQUksWUFBWSxFQUFFO1lBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksaUNBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1lBQ3ZGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDLENBQUE7WUFDdkQsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQTtZQUV0RCxhQUFhLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN6Qyx1RUFBdUU7Z0JBQ3ZFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtZQUN0QixDQUFDLENBQUMsQ0FBQTtZQUVGLGFBQWEsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO29CQUFFLE9BQU07Z0JBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtnQkFDM0MsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLElBQWlCLENBQUMsQ0FBQTtZQUNoRCxDQUFDLENBQUMsQ0FBQTtZQUVGLGFBQWEsQ0FBQyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO29CQUFFLE9BQU07Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUMzQyxDQUFDLENBQUMsQ0FBQTtZQUVGLGFBQWEsQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ3ZDLHVDQUF1QztnQkFDdkMsNENBQTRDO1lBQzdDLENBQUMsQ0FBQyxDQUFBO1lBRUYsS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFVBQVUsTUFBTSxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUE7U0FDeEQ7SUFDRixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFtQjtRQUNoRCxtQ0FBbUM7UUFDbkMsSUFBSTtZQUNILE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFLckYsQ0FBQTtTQUNIO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDWCxPQUFPLEVBQUUsQ0FBQTtTQUNUO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLGFBQWE7UUFDbEIsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsS0FBSyxXQUFXLENBQUMsQ0FBQTtRQUU3RyxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUMzRCxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO2dCQUN0QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUE7Z0JBQ3BDLE1BQU0sWUFBWSxHQUFHLHNCQUFzQixHQUFHLFFBQVEsQ0FBQTtnQkFFdEQsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDL0IsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7b0JBQzNDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBO29CQUM1QyxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtnQkFDN0IsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLENBRXpCO2dCQUFBLENBQUMsS0FBSyxJQUFJLEVBQUU7b0JBQ1osSUFBSSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEVBQUU7d0JBQ2pFLHNEQUFzRDt3QkFDdEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7d0JBQzNDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBO3dCQUM1QyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUE7d0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtxQkFDYjtnQkFDRixDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUVKLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDcEcsQ0FBQyxDQUFDLENBQUE7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUVGLE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQTtRQUN2RCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUNyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFVBQVUsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUVuRSxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLGlDQUFpQyxDQUFDLENBQUE7WUFDekQsSUFBSSxDQUFDLElBQUksQ0FDUixLQUFLLEVBQ0wsT0FBTyxFQUNQLDJDQUEyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0scUJBQzdELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNuQyxFQUFFLENBQ0YsQ0FBQTtTQUNEO2FBQU0sSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLHNEQUFzRCxDQUFDLENBQUE7WUFDaEYsSUFBSSxDQUFDLElBQUksQ0FDUixLQUFLLEVBQ0wsU0FBUyxFQUNULHlDQUF5QyxPQUFPLE9BQU8saUJBQWlCLENBQUMsTUFBTSxVQUFVLENBQ3pGLENBQUE7U0FDRDthQUFNLElBQUksT0FBTyxLQUFLLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hGLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7U0FDbkI7SUFDRixDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFZLEVBQUUsR0FBRyxJQUFXO1FBQy9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUNwQyxNQUFNLFlBQVksR0FBRyxzQkFBc0IsR0FBRyxRQUFRLENBQUE7UUFFdEQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUN0QyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUM3QixJQUFJLENBQUMsV0FBVztxQkFDZCxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEtBQUssV0FBVyxDQUFDO3FCQUNsRSxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtvQkFDdkIsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUE7b0JBQzNDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUM3QyxDQUFDLENBQUMsQ0FBQTtnQkFDSCxNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFBO1lBQzNDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUVULElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQTtZQUN0QixJQUFJLENBQUMsV0FBVztpQkFDZCxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEtBQUssV0FBVyxDQUFDO2lCQUNsRSxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FDL0I7Z0JBQUEsQ0FBQyxLQUFLLElBQUksRUFBRTtvQkFDWixJQUFJLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxFQUFFO3dCQUN0RCxJQUFJLFVBQVUsRUFBRTs0QkFDZixNQUFNLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUNoQyxNQUFNLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFBOzRCQUNqQyxPQUFNO3lCQUNOO3dCQUVSLHlGQUF5Rjt3QkFDbEYsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFBO3dCQUNuQixVQUFVLEdBQUcsSUFBSSxDQUFBO3dCQUVqQixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7NEJBQ2YsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTt5QkFDN0M7NkJBQU07NEJBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTt5QkFDcEI7d0JBRUQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQTt3QkFDaEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQTt3QkFDakMsTUFBSztxQkFDTDtnQkFDRixDQUFDLENBQUMsRUFBRSxDQUFBO2dCQUNUOzs7Ozt1Q0FLUTtnQkFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDeEYsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxJQUFJO1FBQ1QsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUVwQixxQkFBcUI7WUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO2dCQUMvQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssRUFBRTtvQkFDOUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2lCQUMxQjthQUNEO1FBQ0YsQ0FBQyxFQUFFLHNCQUFzQixHQUFHLElBQUksQ0FBQyxDQUFBO1FBRWpDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQzVDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBO1FBQzdCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVWLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7SUFDbkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNOLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNuQixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUU7WUFDOUIsYUFBYSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFBO1NBQ3hDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUN2QyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDckIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtJQUNsQixDQUFDO0lBRUQsT0FBTyxLQUFJLENBQUM7Q0FDWjtBQTNSRCxrQ0EyUkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG91ZENvbm5lY3Rpb24gfSBmcm9tICcuL2Nsb3VkY29ubmVjdGlvbidcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcydcbmltcG9ydCBTdHJpY3RFdmVudEVtaXR0ZXIgZnJvbSAnc3RyaWN0LWV2ZW50LWVtaXR0ZXItdHlwZXMnXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnXG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJ1xuaW1wb3J0IHsgQ29tcGFuaW9uQnV0dG9uU3R5bGVQcm9wcywgTXVsdGlCYW5rIH0gZnJvbSAnLi90eXBlcydcblxuY29uc3QgQ0xPVURfVVJMID1cblx0cHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/ICdodHRwczovL2FwaS5iaXRmb2N1cy5pby92MScgOiAnaHR0cHM6Ly9hcGktc3RhZ2luZy5iaXRmb2N1cy5pby92MSdcblxuY29uc3QgQ09NUEFOSU9OX1BJTkdfVElNRU9VVCA9IDUwMDBcblxuZXhwb3J0IHR5cGUgUmVnaW9uRGVmaW5pdGlvbiA9IHtcblx0aWQ6IHN0cmluZ1xuXHRob3N0bmFtZTogc3RyaW5nXG5cdGxvY2F0aW9uOiBzdHJpbmdcblx0bGFiZWw6IHN0cmluZ1xufVxuXG5jbGFzcyBSZWdpb25GZXRjaEV4Y2VwdGlvbiBleHRlbmRzIEVycm9yIHtcblx0Y29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG5cdFx0c3VwZXIobWVzc2FnZSlcblx0XHR0aGlzLm5hbWUgPSAnUmVnaW9uRmV0Y2hFeGNlcHRpb24nXG5cdH1cbn1cblxuZXhwb3J0IHR5cGUgQ0NNb2R1bGVTdGF0ZSA9ICdJRExFJyB8ICdXQVJOSU5HJyB8ICdFUlJPUicgfCAnT0snXG5leHBvcnQgdHlwZSBDQ0xvZ0xldmVsID0gJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJyB8ICdkZWJ1ZydcblxuaW50ZXJmYWNlIENsb3VkQ2xpZW50RXZlbnRzIHtcblx0c3RhdGU6IChzdGF0ZTogQ0NNb2R1bGVTdGF0ZSwgbWVzc2FnZT86IHN0cmluZykgPT4gdm9pZFxuXHRlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZFxuXHRsb2c6IChsZXZlbDogQ0NMb2dMZXZlbCwgbWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkXG5cdHVwZGF0ZTogKHBhZ2U6IG51bWJlciwgYmFuazogbnVtYmVyLCBkYXRhOiBDb21wYW5pb25CdXR0b25TdHlsZVByb3BzKSA9PiB2b2lkXG5cdHVwZGF0ZUFsbDogKGJhbmtzOiB7IHBhZ2U6IG51bWJlcjsgYmFuazogbnVtYmVyOyBkYXRhOiBDb21wYW5pb25CdXR0b25TdHlsZVByb3BzIH1bXSkgPT4gdm9pZFxufVxuXG4vKipcbiAqIFRoZSBDbG91ZENsaWVudCBpcyByZXNwb25zaWJsZSBmb3IgY29ubmVjdGluZyB0byB0aGUgY2xvdWQgYW5kXG4gKiBjb21tdW5pY2F0aW5nIHdpdGggdGhlIGNvbXBhbmlvbiBzZXJ2ZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkQ2xpZW50IGV4dGVuZHMgKEV2ZW50RW1pdHRlciBhcyB7IG5ldyAoKTogU3RyaWN0RXZlbnRFbWl0dGVyPEV2ZW50RW1pdHRlciwgQ2xvdWRDbGllbnRFdmVudHM+IH0pIHtcblx0cHJpdmF0ZSBjb21wYW5pb25JZDogc3RyaW5nXG5cdHByaXZhdGUgY29ubmVjdGlvbnM6IENsb3VkQ29ubmVjdGlvbltdID0gW11cblx0cHJpdmF0ZSBjdXJyZW50UmVnaW9uczogUmVnaW9uRGVmaW5pdGlvbltdID0gW11cblx0cHJpdmF0ZSByZWdpb25zOiBSZWdpb25EZWZpbml0aW9uW10gPSBbXVxuXHRwcml2YXRlIGF4aW9zID0gYXhpb3MuY3JlYXRlKHtcblx0XHRiYXNlVVJMOiBDTE9VRF9VUkwsXG5cdFx0dGltZW91dDogMTAwMDAsXG5cdH0pXG5cdHByaXZhdGUgY291bnRlciA9IDBcblx0cHJpdmF0ZSBtb2R1bGVTdGF0ZTogQ0NNb2R1bGVTdGF0ZSA9ICdJRExFJ1xuXHRwcml2YXRlIHBpbmdUaW1lcjogTm9kZUpTLlRpbWVyIHwgdW5kZWZpbmVkXG5cdHByaXZhdGUgY2hlY2tDb25uZWN0aW9uVGltZXI6IE5vZGVKUy5UaW1lciB8IHVuZGVmaW5lZFxuXHRwcml2YXRlIHVwZGF0ZUlkczogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSA9IHt9XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYSBuZXcgQ2xvdWRDbGllbnRcblx0ICpcblx0ICogQHBhcmFtIHJlbW90ZUNvbXBhbmlvbklkIFRoZSBzdXBlciBzZWNyZXQgaWQgdG8gY29ubmVjdCB0byB2aWEgdGhlIGNsb3VkXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihyZW1vdGVDb21wYW5pb25JZDogc3RyaW5nKSB7XG5cdFx0c3VwZXIoKVxuXHRcdHRoaXMuY29tcGFuaW9uSWQgPSByZW1vdGVDb21wYW5pb25JZFxuXHR9XG5cblx0cHJpdmF0ZSBzZXRTdGF0ZShzdGF0ZTogQ0NNb2R1bGVTdGF0ZSwgbWVzc2FnZT86IHN0cmluZykge1xuXHRcdGlmIChzdGF0ZSAhPT0gdGhpcy5tb2R1bGVTdGF0ZSkge1xuXHRcdFx0dGhpcy5tb2R1bGVTdGF0ZSA9IHN0YXRlXG5cdFx0XHR0aGlzLmVtaXQoJ3N0YXRlJywgc3RhdGUsIG1lc3NhZ2UpXG5cdFx0fVxuXHR9XG5cblx0cHJpdmF0ZSBjYWxjdWxhdGVTdGF0ZSgpIHtcblx0XHRjb25zdCBjb25uZWN0ZWQgPSB0aGlzLmNvbm5lY3Rpb25zLmZpbHRlcigoYykgPT4gYy5jb25uZWN0aW9uU3RhdGUgPT09ICdDT05ORUNURUQnKS5sZW5ndGhcblx0XHRjb25zdCBjb25uZWN0aW5nID0gdGhpcy5jb25uZWN0aW9ucy5maWx0ZXIoKGMpID0+IGMuY29ubmVjdGlvblN0YXRlID09PSAnQ09OTkVDVElORycpLmxlbmd0aFxuXHRcdC8vY29uc3QgZGlzY29ubmVjdGVkID0gdGhpcy5jb25uZWN0aW9ucy5maWx0ZXIoYyA9PiBjLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ0RJU0NPTk5FQ1RFRCcpLmxlbmd0aDtcblx0XHRjb25zdCB3YW50cyA9IHRoaXMucmVnaW9ucy5sZW5ndGhcblxuXHRcdC8qXG5cdFx0IHRoaXMgY29kZSBpcyBjb21tZW50ZWQgYmVjYXVzZSB3ZSB3YW50IHRvIGtub3cgaWYgd2UgcmVhY2ggdGhlIHJlbW90ZSBjb21wYW5pb24sIG5vdCBpZiB3ZSBhcmUgY29ubmVjdGVkIHRvIGFsbCB0aGUgcmVnaW9uc1xuXHRcdGlmIChjb25uZWN0ZWQgPj0gd2FudHMpIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ09LJykgLy8gVE9ETzogb25seSBpZiByZW1vdGUgY29tcGFuaW9uIGlzIGFsc28gT0tcblx0XHR9IGVsc2UgaWYgKGNvbm5lY3RlZCArIGNvbm5lY3RpbmcgPT09IDApIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ0VSUk9SJywgJ05vdCBjb25uZWN0aW5nJylcblx0XHR9IGVsc2UgaWYgKGNvbm5lY3RlZCA9PT0gMCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnRVJST1InLCAnTm8gY29ubmVjdGlvbnMgZXN0YWJsaXNoZWQnKVxuXHRcdH0gZWxzZSBpZiAoY29ubmVjdGVkIDwgd2FudHMpIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ1dBUk5JTkcnLCBgT25seSAke2Nvbm5lY3RlZH0gb2YgJHt3YW50c30gY29ubmVjdGlvbnMgZXN0YWJsaXNoZWRgKVxuXHRcdH0qL1xuXHRcdGlmICh3YW50cyA+IDAgJiYgY29ubmVjdGVkID09PSAwKSB7XG5cdFx0XHR0aGlzLnNldFN0YXRlKCdFUlJPUicsICdObyByZWxldmFudCByZWdpb25zIGFyZSByZWFjaGFibGUnKVxuXHRcdFx0dGhpcy5lbWl0KCdsb2cnLCAnZXJyb3InLCAnTm8gcmVsZXZhbnQgcmVnaW9ucyBhcmUgcmVhY2hhYmxlLCBjaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24nKVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgdXBkYXRlUmVnaW9uc0Zyb21SRVNUKCkge1xuXHRcdGNvbnN0IG5ld1JlZ2lvbnMgPSBhd2FpdCB0aGlzLmZldGNoUmVnaW9uc0Zvcih0aGlzLmNvbXBhbmlvbklkKVxuXHRcdGlmIChuZXdSZWdpb25zLmxlbmd0aCA9PT0gMCkge1xuXHRcdFx0dGhpcy5lbWl0KFxuXHRcdFx0XHQnbG9nJyxcblx0XHRcdFx0J2Vycm9yJyxcblx0XHRcdFx0J1JlbW90ZSBjb21wYW5pb24gZG9lcyBub3Qgc2VlbSB0byBiZSByZWdpc3RlcmVkIHdpdGggdGhlIGNsb3VkLCByZXRyeWluZyBpbiAxMCBzZWNvbmRzJ1xuXHRcdFx0KVxuXHRcdFx0aWYgKHRoaXMucmVnaW9ucy5sZW5ndGggPiAwKSB7XG5cdFx0XHRcdHRoaXMucmVnaW9ucyA9IG5ld1JlZ2lvbnNcblx0XHRcdFx0dGhpcy5yZWNhbGN1bGF0ZVJlZ2lvbnMoKVx0XHRcblx0XHRcdH1cblx0XHRcdHJldHVyblxuXHRcdH1cblx0XHR0aGlzLnJlZ2lvbnMgPSBuZXdSZWdpb25zXG5cdFx0dGhpcy5yZWNhbGN1bGF0ZVJlZ2lvbnMoKVxuXHR9XG5cblx0cHJpdmF0ZSBhc3luYyByZWNhbGN1bGF0ZVJlZ2lvbnMoKSB7XG5cdFx0Y29uc3QgcmVnaW9uc1RvUmVtb3ZlID0gdGhpcy5jdXJyZW50UmVnaW9ucy5maWx0ZXIoKHIpID0+ICF0aGlzLnJlZ2lvbnMuZmluZCgobnIpID0+IG5yLmlkID09PSByLmlkKSlcblx0XHRjb25zdCByZWdpb25zVG9BZGQgPSB0aGlzLnJlZ2lvbnMuZmlsdGVyKChyKSA9PiAhdGhpcy5jdXJyZW50UmVnaW9ucy5maW5kKChucikgPT4gbnIuaWQgPT09IHIuaWQpKVxuXG5cdFx0Zm9yIChjb25zdCByZWdpb24gb2YgcmVnaW9uc1RvUmVtb3ZlKSB7XG5cdFx0XHRjb25zdCBjb25uZWN0aW9uID0gdGhpcy5jb25uZWN0aW9ucy5maW5kKChjKSA9PiBjLnJlZ2lvbklkID09PSByZWdpb24uaWQpXG5cdFx0XHRpZiAoY29ubmVjdGlvbikge1xuXHRcdFx0XHRhd2FpdCBjb25uZWN0aW9uLmRlc3Ryb3koKVxuXHRcdFx0XHR0aGlzLmNvbm5lY3Rpb25zID0gdGhpcy5jb25uZWN0aW9ucy5maWx0ZXIoKGMpID0+IGMucmVnaW9uSWQgIT09IHJlZ2lvbi5pZClcblx0XHRcdH1cblx0XHRcdHRoaXMuY3VycmVudFJlZ2lvbnMgPSB0aGlzLmN1cnJlbnRSZWdpb25zLmZpbHRlcigocikgPT4gci5pZCAhPT0gcmVnaW9uLmlkKVxuXHRcdFx0dGhpcy5lbWl0KCdsb2cnLCAnaW5mbycsIGBSZWdpb24gJHtyZWdpb24ubGFiZWx9IHJlbW92ZWRgKVxuXHRcdH1cblxuXHRcdGZvciAoY29uc3QgcmVnaW9uIG9mIHJlZ2lvbnNUb0FkZCkge1xuXHRcdFx0Y29uc3QgbmV3Q29ubmVjdGlvbiA9IG5ldyBDbG91ZENvbm5lY3Rpb24ocmVnaW9uLmlkLCByZWdpb24uaG9zdG5hbWUsIHRoaXMuY29tcGFuaW9uSWQpXG5cdFx0XHR0aGlzLmNvbm5lY3Rpb25zID0gWy4uLnRoaXMuY29ubmVjdGlvbnMsIG5ld0Nvbm5lY3Rpb25dXG5cdFx0XHR0aGlzLmN1cnJlbnRSZWdpb25zID0gWy4uLnRoaXMuY3VycmVudFJlZ2lvbnMsIHJlZ2lvbl1cblxuXHRcdFx0bmV3Q29ubmVjdGlvbi5vbignc29ja2V0c3RhdGUnLCAoc3RhdGUpID0+IHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZygnREVCVUc7IFJlZ2lvbiAlbyBjaGFuZ2VkIHN0YXRlIHRvICVvJywgcmVnaW9uLmlkLCBzdGF0ZSlcblx0XHRcdFx0dGhpcy5jYWxjdWxhdGVTdGF0ZSgpXG5cdFx0XHR9KVxuXG5cdFx0XHRuZXdDb25uZWN0aW9uLm9uKCdiYW5rcycsIChiYW5rcykgPT4ge1xuXHRcdFx0XHRpZiAodGhpcy51cGRhdGVJZHNbYmFua3MudXBkYXRlSWRdKSByZXR1cm5cblx0XHRcdFx0dGhpcy51cGRhdGVJZHNbYmFua3MudXBkYXRlSWRdID0gRGF0ZS5ub3coKVxuXHRcdFx0XHR0aGlzLmVtaXQoJ3VwZGF0ZUFsbCcsIGJhbmtzLmRhdGEgYXMgTXVsdGlCYW5rKVxuXHRcdFx0fSlcblxuXHRcdFx0bmV3Q29ubmVjdGlvbi5vbignYmFuaycsIChiYW5rKSA9PiB7XG5cdFx0XHRcdGlmICh0aGlzLnVwZGF0ZUlkc1tiYW5rLnVwZGF0ZUlkXSkgcmV0dXJuXG5cdFx0XHRcdHRoaXMuZW1pdCgndXBkYXRlJywgYmFuay5wYWdlLCBiYW5rLmJhbmssIGJhbmsuZGF0YSlcblx0XHRcdFx0dGhpcy51cGRhdGVJZHNbYmFuay51cGRhdGVJZF0gPSBEYXRlLm5vdygpXG5cdFx0XHR9KVxuXG5cdFx0XHRuZXdDb25uZWN0aW9uLm9uKCdyZWdpb25zJywgKHJlZ2lvbnMpID0+IHtcblx0XHRcdFx0Ly9jb25zb2xlLmxvZygnTmV3IHJlZ2lvbnM6ICcsIHJlZ2lvbnMpXG5cdFx0XHRcdC8vY29uc29sZS5sb2coJ09sZCByZWdpb25zOiAnLCB0aGlzLnJlZ2lvbnMpXG5cdFx0XHR9KVxuXG5cdFx0XHR2b2lkIG5ld0Nvbm5lY3Rpb24uaW5pdCgpXG5cdFx0XHR0aGlzLmVtaXQoJ2xvZycsICdpbmZvJywgYFJlZ2lvbiAke3JlZ2lvbi5sYWJlbH0gYWRkZWRgKVxuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgYXN5bmMgZmV0Y2hSZWdpb25zRm9yKGNvbXBhbmlvbklkOiBzdHJpbmcpIHtcblx0XHQvL2lmICh0aGlzLmNvdW50ZXIrKyA8IDIpIHJldHVybiBbXVxuXHRcdHRyeSB7XG5cdFx0XHRyZXR1cm4gKGF3YWl0IHRoaXMuYXhpb3MuZ2V0KGAvaW5mcmFzdHJ1Y3R1cmUvY2xvdWQvcmVnaW9ucy9jb21wYW5pb24vJHtjb21wYW5pb25JZH1gKSkuZGF0YSBhcyB7XG5cdFx0XHRcdGlkOiBzdHJpbmdcblx0XHRcdFx0aG9zdG5hbWU6IHN0cmluZ1xuXHRcdFx0XHRsb2NhdGlvbjogc3RyaW5nXG5cdFx0XHRcdGxhYmVsOiBzdHJpbmdcblx0XHRcdH1bXVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHJldHVybiBbXVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBwaW5naW5nIGlzIHNlbnQgaW5kaXZpZHVhbGx5LCBhbmQgY291bnRlZCB1cCwgaW4gY29udHJhc3QgdG8gY2xpZW50Q29tbWFuZFxuXHQgKi9cblx0YXN5bmMgcGluZ0NvbXBhbmlvbigpIHtcblx0XHRjb25zdCBvbmxpbmVDb25uZWN0aW9ucyA9IHRoaXMuY29ubmVjdGlvbnMuZmlsdGVyKChjb25uZWN0aW9uKSA9PiBjb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ0NPTk5FQ1RFRCcpXG5cblx0XHRjb25zdCBhbGxUaGVQcm9taXNlcyA9IG9ubGluZUNvbm5lY3Rpb25zLm1hcCgoY29ubmVjdGlvbikgPT4ge1xuXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdFx0Y29uc3QgY2FsbGVySWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpXG5cdFx0XHRcdGNvbnN0IHJlcGx5Q2hhbm5lbCA9ICdjb21wYW5pb25Qcm9jUmVzdWx0OicgKyBjYWxsZXJJZFxuXG5cdFx0XHRcdGNvbnN0IHRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdFx0XHRjb25uZWN0aW9uLnNvY2tldC51bnN1YnNjcmliZShyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0Y29ubmVjdGlvbi5zb2NrZXQuY2xvc2VDaGFubmVsKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRyZWplY3QobmV3IEVycm9yKCdUaW1lb3V0JykpXG5cdFx0XHRcdH0sIENPTVBBTklPTl9QSU5HX1RJTUVPVVQpXG5cblx0XHRcdFx0Oyhhc3luYyAoKSA9PiB7XG5cdFx0XHRcdFx0Zm9yIGF3YWl0IChsZXQgZGF0YSBvZiBjb25uZWN0aW9uLnNvY2tldC5zdWJzY3JpYmUocmVwbHlDaGFubmVsKSkge1xuXHRcdFx0XHRcdFx0Ly9jb25zb2xlLmxvZygnREVCVUc6IEdvdCByZXBseSBmcm9tIGNvbXBhbmlvbicsIGRhdGEpXG5cdFx0XHRcdFx0XHRjb25uZWN0aW9uLnNvY2tldC51bnN1YnNjcmliZShyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0XHRjb25uZWN0aW9uLnNvY2tldC5jbG9zZUNoYW5uZWwocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVvdXQpXG5cdFx0XHRcdFx0XHRyZXNvbHZlKHRydWUpXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KSgpXG5cblx0XHRcdFx0Y29ubmVjdGlvbi5zb2NrZXQudHJhbnNtaXRQdWJsaXNoKGBjb21wYW5pb25Qcm9jOiR7dGhpcy5jb21wYW5pb25JZH06cGluZ2AsIHsgYXJnczogW10sIGNhbGxlcklkIH0pXG5cdFx0XHR9KVxuXHRcdH0pXG5cblx0XHRjb25zdCByZXN1bHQgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoYWxsVGhlUHJvbWlzZXMpXG5cdFx0Y29uc3Qgc3VjY2VzcyA9IHJlc3VsdC5maWx0ZXIoKHIpID0+IHIuc3RhdHVzID09PSAnZnVsZmlsbGVkJykubGVuZ3RoXG5cdFx0Y29uc3QgZmFpbGVkID0gcmVzdWx0LmZpbHRlcigocikgPT4gci5zdGF0dXMgPT09ICdyZWplY3RlZCcpLmxlbmd0aFxuXG5cdFx0aWYgKHN1Y2Nlc3MgPT09IDAgJiYgdGhpcy5yZWdpb25zLmxlbmd0aCA+IDApIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ0VSUk9SJywgJ1JlbW90ZSBjb21wYW5pb24gaXMgdW5yZWFjaGFibGUnKVxuXHRcdFx0dGhpcy5lbWl0KFxuXHRcdFx0XHQnbG9nJyxcblx0XHRcdFx0J2Vycm9yJyxcblx0XHRcdFx0YFJlbW90ZSBjb21wYW5pb24gaXMgdW5yZWFjaGFibGUgdmlhIGl0cyAke3RoaXMucmVnaW9ucy5sZW5ndGh9IHJlZ2lvbiBjb25uZWN0aW9uJHtcblx0XHRcdFx0XHR0aGlzLnJlZ2lvbnMubGVuZ3RoICE9PSAxID8gJ3MnIDogJydcblx0XHRcdFx0fWBcblx0XHRcdClcblx0XHR9IGVsc2UgaWYgKGZhaWxlZCA+IDApIHtcblx0XHRcdHRoaXMuc2V0U3RhdGUoJ1dBUk5JTkcnLCBgUmVtb3RlIGNvbXBhbmlvbiBpcyB1bnJlYWNoYWJsZSB0aHJvdWdoIHNvbWUgcmVnaW9uc2ApXG5cdFx0XHR0aGlzLmVtaXQoXG5cdFx0XHRcdCdsb2cnLFxuXHRcdFx0XHQnd2FybmluZycsXG5cdFx0XHRcdGBSZW1vdGUgY29tcGFuaW9uIGlzIG9ubHkgcmVhY2hhYmxlIG9uICR7c3VjY2Vzc30gb2YgJHtvbmxpbmVDb25uZWN0aW9ucy5sZW5ndGh9IHJlZ2lvbnNgXG5cdFx0XHQpXG5cdFx0fSBlbHNlIGlmIChzdWNjZXNzID09PSBvbmxpbmVDb25uZWN0aW9ucy5sZW5ndGggJiYgb25saW5lQ29ubmVjdGlvbnMubGVuZ3RoID4gMCkge1xuXHRcdFx0dGhpcy5zZXRTdGF0ZSgnT0snKVxuXHRcdH1cblx0fVxuXG5cdGFzeW5jIGNsaWVudENvbW1hbmQobmFtZTogc3RyaW5nLCAuLi5hcmdzOiBhbnlbXSkge1xuXHRcdGNvbnN0IGNhbGxlcklkID0gY3J5cHRvLnJhbmRvbVVVSUQoKVxuXHRcdGNvbnN0IHJlcGx5Q2hhbm5lbCA9ICdjb21wYW5pb25Qcm9jUmVzdWx0OicgKyBjYWxsZXJJZFxuXG5cdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuY29ubmVjdGlvbnNcblx0XHRcdFx0XHQuZmlsdGVyKChjb25uZWN0aW9uKSA9PiBjb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ0NPTk5FQ1RFRCcpXG5cdFx0XHRcdFx0LmZvckVhY2goKGNvbm5lY3Rpb24pID0+IHtcblx0XHRcdFx0XHRcdGNvbm5lY3Rpb24uc29ja2V0LnVuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRcdGNvbm5lY3Rpb24uc29ja2V0LmNsb3NlQ2hhbm5lbChyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0fSlcblx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcignQ2xpZW50Q29tbWFuZCB0aW1lb3V0JykpXG5cdFx0XHR9LCAxMDAwMClcblxuXHRcdFx0bGV0IGlzSGFuZGVsZWQgPSBmYWxzZVxuXHRcdFx0dGhpcy5jb25uZWN0aW9uc1xuXHRcdFx0XHQuZmlsdGVyKChjb25uZWN0aW9uKSA9PiBjb25uZWN0aW9uLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ0NPTk5FQ1RFRCcpXG5cdFx0XHRcdC5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XG5cdFx0XHRcdFx0Y29uc3Qgc29ja2V0ID0gY29ubmVjdGlvbi5zb2NrZXRcblx0XHRcdFx0XHQ7KGFzeW5jICgpID0+IHtcblx0XHRcdFx0XHRcdGZvciBhd2FpdCAobGV0IGRhdGEgb2Ygc29ja2V0LnN1YnNjcmliZShyZXBseUNoYW5uZWwpKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChpc0hhbmRlbGVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0c29ja2V0LnVuc3Vic2NyaWJlKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRcdFx0XHRzb2NrZXQuY2xvc2VDaGFubmVsKHJlcGx5Q2hhbm5lbClcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm5cblx0XHRcdFx0XHRcdFx0fVxuXG4vL1x0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ0RFQlVHOyBHb3QgcmVzcG9uc2UgZm9yIGNvbW1hbmQgJW8nLCB0aGlzLmNvbXBhbmlvbklkICsgJzonICsgbmFtZSlcblx0XHRcdFx0XHRcdFx0Y2xlYXJUaW1lb3V0KHRpbWVyKVxuXHRcdFx0XHRcdFx0XHRpc0hhbmRlbGVkID0gdHJ1ZVxuXG5cdFx0XHRcdFx0XHRcdGlmIChkYXRhLmVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVqZWN0KG5ldyBFcnJvcigncnBjIGVycm9yOiAnICsgZGF0YS5lcnJvcikpXG5cdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZShkYXRhLnJlc3VsdClcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdHNvY2tldC51bnN1YnNjcmliZShyZXBseUNoYW5uZWwpXG5cdFx0XHRcdFx0XHRcdHNvY2tldC5jbG9zZUNoYW5uZWwocmVwbHlDaGFubmVsKVxuXHRcdFx0XHRcdFx0XHRicmVha1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pKClcbi8qXG5cdFx0XHRcdFx0Y29uc29sZS5sb2coXG5cdFx0XHRcdFx0XHQnREVCVUc7IFNlbmRpbmcgY29tbWFuZCB0byAlbzogJW8nLFxuXHRcdFx0XHRcdFx0Y29ubmVjdGlvbi5yZWdpb25JZCxcblx0XHRcdFx0XHRcdGBjb21wYW5pb25Qcm9jOiR7dGhpcy5jb21wYW5pb25JZH06JHtuYW1lfWBcblx0XHRcdFx0XHQpKi9cblx0XHRcdFx0XHRzb2NrZXQudHJhbnNtaXRQdWJsaXNoKGBjb21wYW5pb25Qcm9jOiR7dGhpcy5jb21wYW5pb25JZH06JHtuYW1lfWAsIHsgYXJncywgY2FsbGVySWQgfSlcblx0XHRcdFx0fSlcblx0XHR9KVxuXHR9XG5cblx0LyoqXG5cdCAqIEluaXRpYWxpemVzIHRoZSBjb25uZWN0aW9uIHRvIHRoZSBjbG91ZFxuXHQgKi9cblx0YXN5bmMgaW5pdCgpIHtcblx0XHR0aGlzLnBpbmdUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcblx0XHRcdHRoaXMucGluZ0NvbXBhbmlvbigpXG5cblx0XHRcdC8vIENsZWFudXAgdXBkYXRlIGlkc1xuXHRcdFx0Zm9yIChsZXQga2V5IGluIHRoaXMudXBkYXRlSWRzKSB7XG5cdFx0XHRcdGlmIChEYXRlLm5vdygpIC0gdGhpcy51cGRhdGVJZHNba2V5XSA+PSAzMDAwMCkge1xuXHRcdFx0XHRcdGRlbGV0ZSB0aGlzLnVwZGF0ZUlkc1trZXldXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LCBDT01QQU5JT05fUElOR19USU1FT1VUICsgMjAwMClcblxuXHRcdHRoaXMuY2hlY2tDb25uZWN0aW9uVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLnVwZGF0ZVJlZ2lvbnNGcm9tUkVTVCgpXG5cdFx0fSwgMTAwMDApO1xuXG5cdFx0YXdhaXQgdGhpcy51cGRhdGVSZWdpb25zRnJvbVJFU1QoKVxuXHR9XG5cblx0LyoqXG5cdCAqIERlc3Ryb3lzIHJ1bm5pbmcgdGltZXJzIGFuZCBjb25uZWN0aW9uc1xuXHQgKi9cblx0ZGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5waW5nVGltZXIpIHtcblx0XHRcdGNsZWFySW50ZXJ2YWwodGhpcy5waW5nVGltZXIpXG5cdFx0fVxuXHRcdGlmICh0aGlzLmNoZWNrQ29ubmVjdGlvblRpbWVyKSB7XG5cdFx0XHRjbGVhckludGVydmFsKHRoaXMuY2hlY2tDb25uZWN0aW9uVGltZXIpXG5cdFx0fVxuXHRcdHRoaXMuY29ubmVjdGlvbnMuZm9yRWFjaCgoY29ubmVjdGlvbikgPT4ge1xuXHRcdFx0Y29ubmVjdGlvbi5kZXN0cm95KClcblx0XHR9KVxuXHRcdHRoaXMuY29ubmVjdGlvbnMgPSBbXVxuXHRcdHRoaXMucmVnaW9ucyA9IFtdXG5cdH1cblxuXHRjb25uZWN0KCkge31cbn1cbiJdfQ==
{
"name": "companion-cloud-client",
"version": "1.0.1",
"version": "1.0.2",
"main": "dist/index.js",

@@ -5,0 +5,0 @@ "scripts": {

@@ -135,3 +135,3 @@ import { CloudConnection } from './cloudconnection'

newConnection.on('socketstate', (state) => {
console.log('DEBUG; Region %o changed state to %o', region.id, state)
//console.log('DEBUG; Region %o changed state to %o', region.id, state)
this.calculateState()

@@ -153,4 +153,4 @@ })

newConnection.on('regions', (regions) => {
console.log('New regions: ', regions)
console.log('Old regions: ', this.regions)
//console.log('New regions: ', regions)
//console.log('Old regions: ', this.regions)
})

@@ -157,0 +157,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc