barsa-novin-ray-core 2.0.104 → 2.0.105

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.
@@ -165,6 +165,7 @@ export class FormPanelService extends BaseComponent {
165
165
  (c.itemId === 'Next' ||
166
166
  c.itemId === 'Previous' ||
167
167
  c.itemId === 'MoveNext' ||
168
+ c.itemId === 'MovePrev' ||
168
169
  c.itemId === 'MovePrevious')));
169
170
  newItems.sort((c, d) => (Number(c?.Data?.TabOrderNumber) < Number(d?.Data?.TabOrderNumber) ? 1 : -1));
170
171
  const nonStringItems = newItems.filter((c) => typeof c !== 'string');
@@ -364,4 +365,4 @@ export class FormPanelService extends BaseComponent {
364
365
  this._context = context;
365
366
  }
366
367
  }
367
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYW5lbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUNILFdBQVcsRUFDWCw2QkFBNkIsRUFDN0IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxpQkFBaUIsRUFDcEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUE2RC9DO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUExQ1osZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVl4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFD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QUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBQ1Msb0JBQW9CLENBQUMsS0FBSztRQUNoQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFDUyxhQUFhLENBQUMsS0FBSztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBQ1MsZUFBZTtRQUNyQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUNTLG1CQUFtQjtRQUN6QixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUNTLFNBQVMsQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDUyxrQkFBa0IsQ0FBQyxTQUF3QjtRQUNqRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDUyxlQUFlLENBQUMsT0FBTztRQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBmaWx0ZXIsIG1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGb3JtVmlld1NldHRpbmcsIElIZWFkZXJMYXlvdXQsIExheW91dFNldHRpbmcsIE1ldGFvYmplY3REYXRhTW9kZWwgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL21vZGVscyc7XG5pbXBvcnQgeyBCYXJzYUFwaSB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvYmFyc2EtYXBpJztcbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1jbGFzc2VzL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgRGV2aWNlV2lkdGgsXG4gICAgRmluZExheW91dFNldHRpbmdGcm9tTGF5b3V0OTQsXG4gICAgZ2V0RGV2aWNlSXNNb2JpbGUsXG4gICAgZ2V0SGVhZGVyVmFsdWUsXG4gICAgZ2V0RGV2aWNlSXNUYWJsZXRcbn0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIEZvcm1QYW5lbFNlcnZpY2UgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcbiAgICBjb250ZXh0JDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHNlYXJjaFBhbmVsSXNPYmplY3QkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzU2VhcmNoUGFuZWwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHdvcmtmbG93UGFuZWxVaSQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBtbyQ6IE9ic2VydmFibGU8TWV0YW9iamVjdERhdGFNb2RlbD47XG4gICAgdmlldyQ6IE9ic2VydmFibGU8YW55PjtcbiAgICB0b29sYmFySXRlbXMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICB3b3JrZmxvd0J1dHRvbnMkOiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgICBtYXhDb250ZW50V2lkdGgkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgd2l6YXJkTmV4dFN0ZXAkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAgIHdpemFyZFByZXZpb3VzU3RlcCQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgbGF5b3V0JDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGZvcmNlQ2xvc2UkOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICAgIGdyb3VwTGF5b3V0JDogT2JzZXJ2YWJsZTxMYXlvdXRTZXR0aW5nPjtcbiAgICBpc1NpbXBsZUZvcm0kOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZvcm1XaWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB0b29sYmFyVmlzaWJsZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGVhZGVyTGF5b3V0JDogT2JzZXJ2YWJsZTxJSGVhZGVyTGF5b3V0PjtcbiAgICBfaGlkZUNsb3NlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIF9oaWRlVGl0bGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgX2hpZGVQaW4kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgdGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaGVhZGVyRGVzY3JpcHRpb24kOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgaGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGhlYWRlclN1YnRpdGxlJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIGF2YXRhciQ6IE9ic2VydmFibGU8YW55PjtcbiAgICBjaXJjbGVBdmF0YXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIG1hc2skOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIGZvcm1IZWlnaHQkOiBPYnNlcnZhYmxlPG51bWJlcj47XG4gICAgZmllbGREaWN0JDogT2JzZXJ2YWJsZTx7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcblxuICAgIHByaXZhdGUgX2NvbnRleHQ7XG4gICAgcHJpdmF0ZSBfY29udGV4dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9mb3JtSGVpZ2h0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICAgIHByaXZhdGUgX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9pc1NlYXJjaFBhbmVsU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX3dvcmtmbG93UGFuZWxVaVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9tb1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF92aWV3U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX3Rvb2xiYXJJdGVtc1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55W10+KFtdKTtcbiAgICBwcml2YXRlIF90aXRsZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBfbWF4Q29udGVudFdpZHRoU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdhdXRvJyk7XG4gICAgcHJpdmF0ZSBfd2l6YXJkTmV4dFN0ZXBTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfbGF5b3V0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX2ZvcmNlQ2xvc2VTb3VyY2UgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2dyb3VwQlJ1bGVTb3VyY2UgPSBuZXcgU3ViamVjdDxMYXlvdXRTZXR0aW5nPigpO1xuICAgIHByaXZhdGUgX2lzU2ltcGxlRm9ybVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2Zvcm1XaWR0aFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignMTAwJScpO1xuICAgIHByaXZhdGUgX3Rvb2xiYXJWaXNpYmxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICBwcml2YXRlIF9oZWFkZXJMYXlvdXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfaGVhZGVyVGl0bGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgX21hc2tTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZ1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2hlYWRlckRlc2NyaXB0aW9uU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIF9jYW5TZW5kJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIGZvcm1Db250YWluZXJEb206IEhUTUxFbGVtZW50O1xuICAgIENvbG9uSW5MYWJlbCA9IHRydWU7XG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuY29udGV4dCQgPSB0aGlzLl9jb250ZXh0U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKGNvbnRleHQpID0+IHRoaXMuX3ByZXBhcmVDb250ZXh0KGNvbnRleHQpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoUGFuZWxJc09iamVjdCQgPSB0aGlzLl9zZWFyY2hQYW5lbElzT2JqZWN0U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5pc1NlYXJjaFBhbmVsJCA9IHRoaXMuX2lzU2VhcmNoUGFuZWxTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmlzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQkID0gdGhpcy5faXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudFxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLndvcmtmbG93UGFuZWxVaSQgPSB0aGlzLl93b3JrZmxvd1BhbmVsVWlTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmZvcm1IZWlnaHQkID0gdGhpcy5fZm9ybUhlaWdodFNvdXJjZS5hc09ic2VydmFibGUoKTtcbiAgICAgICAgdGhpcy5tbyQgPSB0aGlzLl9tb1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMuZmllbGREaWN0JCA9IHRoaXMubW8kLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGMpID0+IGMuJEZpZWxkRGljdCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnZpZXckID0gdGhpcy5fdmlld1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgdGFwKCh2aWV3KSA9PiB0aGlzLl9wcmVwYXJlVmlldyh2aWV3KSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnRvb2xiYXJJdGVtcyQgPSB0aGlzLl90b29sYmFySXRlbXNTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IHRoaXMuX2ZpbHRlclRvb2xiYXJJdGVtcyhpdGVtcykpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMud29ya2Zsb3dCdXR0b25zJCA9IHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gdGhpcy5fZmlsdGVyVG9vbGJhckl0ZW1zKGl0ZW1zKSksXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiBpdGVtcy5maWx0ZXIoKGMpID0+IGMuaXNXb3JrZmxvdykpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5tYXhDb250ZW50V2lkdGgkID0gdGhpcy5fbWF4Q29udGVudFdpZHRoU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHdpZHRoKSA9PiAod2lkdGggPyB3aWR0aCArICdweCcgOiAnYXV0bycpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMud2l6YXJkTmV4dFN0ZXAkID0gdGhpcy5fd2l6YXJkTmV4dFN0ZXBTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLndpemFyZFByZXZpb3VzU3RlcCQgPSB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXBTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmxheW91dCQgPSB0aGlzLl9sYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIG1hcCgobGF5b3V0KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFsYXlvdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxheW91dDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZGV2aWNlV2lkdGggPSBEZXZpY2VXaWR0aCgpO1xuICAgICAgICAgICAgICAgIGlmIChkZXZpY2VXaWR0aCA8IGxheW91dC5Cb3VuZHMud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgbGF5b3V0LkJvdW5kcy53aWR0aCA9IGRldmljZVdpZHRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4geyAuLi5sYXlvdXQgfTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5mb3JjZUNsb3NlJCA9IHRoaXMuX2ZvcmNlQ2xvc2VTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuZ3JvdXBMYXlvdXQkID0gdGhpcy5fZ3JvdXBCUnVsZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy5pc1NpbXBsZUZvcm0kID0gdGhpcy5faXNTaW1wbGVGb3JtU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmZvcm1XaWR0aCQgPSB0aGlzLl9mb3JtV2lkdGhTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMudG9vbGJhclZpc2libGUkID0gdGhpcy5fdG9vbGJhclZpc2libGVTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLnRpdGxlJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuX2hlYWRlclRpdGxlU291cmNlLmFzT2JzZXJ2YWJsZSgpLCB0aGlzLl90aXRsZVNvdXJjZS5hc09ic2VydmFibGUoKV0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFtoZWFkZXJUaXRsZSwgdGl0bGVdKSA9PiAoaGVhZGVyVGl0bGUgPyBoZWFkZXJUaXRsZSA6IHRpdGxlKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5oZWFkZXJMYXlvdXQkID0gdGhpcy5faGVhZGVyTGF5b3V0U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGhlYWRlckxheW91dCkgPT4gISFoZWFkZXJMYXlvdXQpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hlYWRlclRpdGxlU291cmNlLm5leHQoZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5UaXRsZSkpKSxcbiAgICAgICAgICAgIHRhcCgoaGVhZGVyTGF5b3V0KSA9PiB0aGlzLl9oaWRlQ2xvc2UkLm5leHQoaGVhZGVyTGF5b3V0Py5IaWRlQ2xvc2UpKSxcbiAgICAgICAgICAgIHRhcCgoaGVhZGVyTGF5b3V0KSA9PiB0aGlzLl9oaWRlVGl0bGUkLm5leHQoaGVhZGVyTGF5b3V0Py5IaWRlVGl0bGUpKSxcbiAgICAgICAgICAgIHRhcCgoaGVhZGVyTGF5b3V0KSA9PiB0aGlzLl9oaWRlUGluJC5uZXh0KGhlYWRlckxheW91dD8uSGlkZVBpbikpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hlYWRlckRlc2NyaXB0aW9uU291cmNlLm5leHQoZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5EZXNjcmlwdGlvbikpKSxcbiAgICAgICAgICAgIHRhcCgoaGVhZGVyTGF5b3V0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlLm5leHQoZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5SZW1vdmVDb250ZW50UGFkZGluZykpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5oZWFkZXJEZXNjcmlwdGlvbiQgPSB0aGlzLl9oZWFkZXJEZXNjcmlwdGlvblNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy5oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQgPSB0aGlzLl9oZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZ1NvdXJjZVxuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShkZWxheSgwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmhlYWRlclN1YnRpdGxlJCA9IHRoaXMuaGVhZGVyTGF5b3V0JC5waXBlKFxuICAgICAgICAgICAgbWFwKChoZWFkZXJMYXlvdXQpID0+IGdldEhlYWRlclZhbHVlKGhlYWRlckxheW91dD8uU3ViVGl0bGUpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuYXZhdGFyJCA9IHRoaXMuaGVhZGVyTGF5b3V0JC5waXBlKFxuICAgICAgICAgICAgbWFwKChoZWFkZXJMYXlvdXQpID0+IGdldEhlYWRlclZhbHVlKGhlYWRlckxheW91dD8uQXZhdGFyLCB0cnVlKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmNpcmNsZUF2YXRhciQgPSB0aGlzLmhlYWRlckxheW91dCQucGlwZShcbiAgICAgICAgICAgIG1hcCgoaGVhZGVyTGF5b3V0KSA9PiBnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LkNpcmNsZUF2YXRhcikpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubWFzayQgPSB0aGlzLl9tYXNrU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDIwMCksIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgfVxuICAgIGdldCBoaWRlUGluJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVQaW4kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBnZXQgaGlkZUNsb3NlJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVDbG9zZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlVGl0bGUkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVRpdGxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGNhblNlbmQkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2FuU2VuZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBtbygpOiBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vU291cmNlLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHNldCBjb250ZXh0KHZhbDogYW55KSB7XG4gICAgICAgIGlmICh0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb250ZXh0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgc2V0Rm9ybUhlaWdodCh2YWw6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLm5leHQodmFsKTtcbiAgICB9XG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9jb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY29udGV4dC51bignR3JvdXBCUnVsZUNoYW5nZWQnLCB0aGlzLl9ncm91cEJSdWxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1RpdGxlQ2hhbmdlZCcsIHRoaXMuX3RpdGxlQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1dpemFyZE5leHRTdGVwJywgdGhpcy5fd2l6YXJkTmV4dFN0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdXaXphcmRQcmV2aW91c1N0ZXAnLCB0aGlzLl93aXphcmRQcmV2aW91c1N0ZXApO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdEb0xheW91dCcsIHRoaXMuX2RvTGF5b3V0KTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignTWFza0NoYW5nZWQnLCB0aGlzLl9tYXNrQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ0ZvcmNlQ2xvc2UnLCB0aGlzLl9mb3JjZUNsb3NlKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC50b29sYmFyLnVuKCdUb29sYmFySXRlbXNDaGFuZ2VkJywgdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQgPSBudWxsO1xuICAgICAgICB0aGlzLl9sYXlvdXRTb3VyY2UubmV4dChudWxsKTtcbiAgICAgICAgLy8gdGhpcy5fb25EZXN0cm95JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgdG9vbGJhckNsaWNrKGJ0bik6IHZvaWQge1xuICAgICAgICBidG4uaGFuZGxlcihidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cbiAgICB3ZkNob2ljZShidG4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29udGV4dC5Xb3JrZmxvd1BhbmVsVWkuZmlyZUV2ZW50KCdDaG9pY2VTZWxlY3QnLCBidG4sIHRoaXMuX2NvbnRleHQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfaW5pdGlhbGl6ZShjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fd29ya2Zsb3dQYW5lbFVpU291cmNlLm5leHQoY29udGV4dD8uV29ya2Zsb3dQYW5lbFVpKTtcbiAgICAgICAgdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LklzU2VhcmNoUGFuZWwpO1xuICAgICAgICB0aGlzLl9pc1NlYXJjUGFuZWxJblNpZGVDb250ZW50Lm5leHQoY29udGV4dD8uU2V0dGluZz8uSXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCk7XG4gICAgICAgIHRoaXMuX2NhblNlbmQkLm5leHQoY29udGV4dD8uU2V0dGluZz8uQ2FuU2VuZCk7XG4gICAgICAgIHRoaXMuX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UubmV4dChjb250ZXh0Py5TZXR0aW5nPy5QYXJhbWV0ZXJUeXBlSXNPYmplY3QpO1xuICAgICAgICB0aGlzLl9tb1NvdXJjZS5uZXh0KGNvbnRleHQ/Lk1vKTtcbiAgICAgICAgdGhpcy5fdmlld1NvdXJjZS5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LlZpZXcpO1xuICAgICAgICB0aGlzLl90b29sYmFySXRlbXNTb3VyY2UubmV4dChjb250ZXh0Py50b29sYmFyPy5pdGVtcyk7XG4gICAgICAgIGlmIChjb250ZXh0Py50b29sYmFyKSB7XG4gICAgICAgICAgICBjb250ZXh0LnRvb2xiYXIub24oe1xuICAgICAgICAgICAgICAgIFRvb2xiYXJJdGVtc0NoYW5nZWQ6IHRoaXMuX3Rvb2xiYXJJdGVtc0NoYW5nZWQuYmluZCh0aGlzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdGl0bGVTb3VyY2U/Lm5leHQoY29udGV4dD8udGl0bGUpO1xuICAgICAgICB0aGlzLl90b29sYmFyVmlzaWJsZVNvdXJjZS5uZXh0KHRoaXMuX2dldFRvb2xiYXJWaXNpYmlsaXR5KGNvbnRleHQpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX3ByZXBhcmVWaWV3KHZpZXcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0U291cmNlLm5leHQodmlldz8uTGF5b3V0OTQpO1xuICAgICAgICB0aGlzLl9wcmVwYXJlTGF5b3V0Q29tcG9uZW50KHZpZXcpO1xuICAgICAgICB0aGlzLl9tYXhDb250ZW50V2lkdGhTb3VyY2UubmV4dCh0aGlzLl9nZXRNYXhDb250ZW50V2lkdGgodmlldykpO1xuICAgICAgICB0aGlzLl9pc1NpbXBsZUZvcm1Tb3VyY2UubmV4dCh0aGlzLl9nZXRJc1NpbXBsZUZvcm0odmlldykpO1xuICAgICAgICB0aGlzLl9oZWFkZXJMYXlvdXRTb3VyY2UubmV4dCh0aGlzLl9nZXRIZWFkZXJMYXlvdXQodmlldykpO1xuICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgdGhpcy5Db2xvbkluTGFiZWwgPSB2aWV3LkNvbG9uSW5MYWJlbCAhPT0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybVdpZHRoU291cmNlLm5leHQodmlldz8uaW5EaWFsb2cgPyB2aWV3LkxheW91dDk0LkJvdW5kcy53aWR0aCArICdweCcgOiAnMTAwJScpO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclRvb2xiYXJJdGVtcyhpdGVtczogQXJyYXk8YW55Pik6IEFycmF5PGFueT4ge1xuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH1cbiAgICAgICAgLy8g2K/YsSDYtdmI2LHYqtuMINqp2Ycg2K/YsSDZhdmI2KjYp9uM2YQg2KjYp9i02K8g2K/ZiCDYr9qp2YXZhyDZhtmF2KfbjNi0INiv2KfYr9mHINi02YjYryDYp9iyINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNixINmIINmB2LHYotuM2YbYr9uMXG4gICAgICAgIC8vINiv2LEg2LXZiNix2KrbjCDaqdmHINiv2qnZhdmHINuMINmI2KzZiNivINmG2K/Yp9i02Kog2YHZgti3INiv2qnZhdmHINiw2K7bjNix2Ycg2YbZhdin24zYtCDYr9in2K/ZhyDYtNmI2K9cbiAgICAgICAgLy8g2K/YsSDYrdin2YTYqtmH2KfbjCDYr9uM2q/YsSDYp9io2KrYr9inINiv2qnZhdmHINmH2KfbjCDaqdin2LHYqNix24wg2Ygg2YHYsdii24zZhtiv24wg2Ygg2KjYudivINiv2qnZhdmHINmH2KfbjCDYqti52LHbjNmBINi02K/ZhyDYs9uM2LPYqtmFINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2YXbjNi02YjYry5cbiAgICAgICAgY29uc3QgaXNNb2JpbGUgPSBnZXREZXZpY2VJc01vYmlsZSgpO1xuICAgICAgICBjb25zdCBpc1RhYmxldCA9IGdldERldmljZUlzVGFibGV0KCk7XG4gICAgICAgIGxldCBuZXdJdGVtcyA9IGl0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChjKSA9PlxuICAgICAgICAgICAgICAgICFjLmhpZGRlbiAmJlxuICAgICAgICAgICAgICAgICEoXG4gICAgICAgICAgICAgICAgICAgIChpc01vYmlsZSB8fCBpc1RhYmxldCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKGMuaXRlbUlkID09PSAnTmV4dCcgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGMuaXRlbUlkID09PSAnUHJldmlvdXMnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBjLml0ZW1JZCA9PT0gJ01vdmVOZXh0JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgYy5pdGVtSWQgPT09ICdNb3ZlUHJldmlvdXMnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBuZXdJdGVtcy5zb3J0KChjLCBkKTogbnVtYmVyID0+IChOdW1iZXIoYz8uRGF0YT8uVGFiT3JkZXJOdW1iZXIpIDwgTnVtYmVyKGQ/LkRhdGE/LlRhYk9yZGVyTnVtYmVyKSA/IDEgOiAtMSkpO1xuICAgICAgICBjb25zdCBub25TdHJpbmdJdGVtcyA9IG5ld0l0ZW1zLmZpbHRlcigoYykgPT4gdHlwZW9mIGMgIT09ICdzdHJpbmcnKTtcblxuICAgICAgICBjb25zdCB0ID0gbm9uU3RyaW5nSXRlbXMuZmluZCgoYykgPT4gIWMuaXNCdWlsdGluICYmICFjLklBbU1lbnUpO1xuICAgICAgICBpZiAodCkge1xuICAgICAgICAgICAgdC5wcmlvcml0eSA9ICdoaWdoJztcbiAgICAgICAgfVxuICAgICAgICAvLyBsZXQgbm9uQnVpbHRpbkNvdW50ID0gMDtcbiAgICAgICAgLy8gbm9uU3RyaW5nSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICAgIGNvbnN0IGluRm9vdGVyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoaXRlbSwgJ0RhdGEuQ3VzdG9tVWkuUGFyYW1ldGVycy5JbkZvb3RlcicsIGZhbHNlKTtcbiAgICAgICAgLy8gICAgIGlmIChpdGVtLmlzQnVpbHRpbiB8fCBpbkZvb3Rlcikge1xuICAgICAgICAvLyAgICAgICAgIC8vINiz24zYs9iq2YXbjFxuICAgICAgICAvLyAgICAgICAgIGl0ZW0ucHJpb3JpdHkgPSAnYWx3YXlzJztcbiAgICAgICAgLy8gICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgaWYgKG5vbkJ1aWx0aW5Db3VudCA+IDEpIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8g2K/aqdmF2Ycg2YfYp9uMINqp2KfYsdio2LHbjCDaqdmHINio24zYtNiq2LEg2KfYsiDYr9mIINmH2LPYqtmG2K9cbiAgICAgICAgLy8gICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdsb3cnO1xuICAgICAgICAvLyAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGl0ZW0ucHJpb3JpdHkgPSAnbG93JztcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICAgICAgbm9uQnVpbHRpbkNvdW50Kys7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pO1xuICAgICAgICBjb25zdCBub0J1aWx0aW5JdGVtcyA9IG5vblN0cmluZ0l0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChjKSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBjID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgICFjLmlzQnVpbHRpbiAmJlxuICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGMsICdEYXRhLkN1c3RvbVVpLlBhcmFtZXRlcnMuSW5Gb290ZXInLCBmYWxzZSkgIT09IHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgbm9CdWlsdGluSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGluZGV4ID09PSAwID8gKGl0ZW0ucHJpb3JpdHkgPSAnaGlnaHQnKSA6IChpdGVtLnByaW9yaXR5ID0gJ2xvdycpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgbm9uQnVpbHRpbkNvdW50ID0gbm9CdWlsdGluSXRlbXMubGVuZ3RoO1xuICAgICAgICBpZiAobm9uQnVpbHRpbkNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAvLyDYp9qv2LEg2YfbjNqGINiv2qnZhdmHINqp2KfYsdio2LHbjCDZiNis2YjYryDZhtiv2KfYtNiqXG4gICAgICAgICAgICBub25TdHJpbmdJdGVtcy5mb3JFYWNoKChpdGVtLCBfKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09PSAnU2F2ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICduZXZlcic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2F2ZUFuZE5ldyA9IG5ld0l0ZW1zLmZpbmQoKGMpID0+IGMuaXRlbUlkID09PSAnU2F2ZUFuZE5ldycpO1xuICAgICAgICBjb25zdCBzYXZlQW5kQ2xvc2UgPSBuZXdJdGVtcy5maW5kKChjKSA9PiBjLml0ZW1JZCA9PT0gJ1NhdmVBbmRDbG9zZScpO1xuICAgICAgICBpZiAoc2F2ZUFuZENsb3NlICYmIHNhdmVBbmRDbG9zZS5tZW51KSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlID0gc2F2ZUFuZENsb3NlLm1lbnUuaXRlbXNbMF07XG4gICAgICAgICAgICBpZiAoc2F2ZSkge1xuICAgICAgICAgICAgICAgIHNhdmUuaXNCdWlsdGluID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzYXZlLnByaW9yaXR5ID0gbm9uQnVpbHRpbkNvdW50ID09PSAwID8gJ25ldmVyJyA6ICdhbHdheXMnO1xuXG4gICAgICAgICAgICAgICAgbmV3SXRlbXMucHVzaChzYXZlKTtcbiAgICAgICAgICAgICAgICBpZiAoc2F2ZUFuZE5ldykge1xuICAgICAgICAgICAgICAgICAgICBzYXZlLklBbU1lbnUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzYXZlLm1lbnUgPSB7IGl0ZW1zOiBbeyAuLi5zYXZlQW5kTmV3IH1dIH07XG4gICAgICAgICAgICAgICAgICAgIG5ld0l0ZW1zID0gbmV3SXRlbXMuZmlsdGVyKChjKSA9PiBjLml0ZW1JZCAhPT0gJ1NhdmVBbmROZXcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0ubWVudSkge1xuICAgICAgICAgICAgICAgIGl0ZW0ubWVudS5pdGVtcyA9IGl0ZW0ubWVudS5pdGVtcy5maWx0ZXIoKGMpID0+ICFjLmhpZGRlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBidWlsdGluc0J1dHRvbnMgPSBuZXdJdGVtcy5maWx0ZXIoKGMpID0+IGM/LmlzQnVpbHRpbik7XG4gICAgICAgIG5ld0l0ZW1zID0gW1xuICAgICAgICAgICAgLi4uYnVpbHRpbnNCdXR0b25zLFxuICAgICAgICAgICAgLi4ubmV3SXRlbXMuZmlsdGVyKChjKSA9PiAhYz8uaXNCdWlsdGluICYmICFjPy5pc1dvcmtmbG93KSxcbiAgICAgICAgICAgIC4uLm5ld0l0ZW1zLmZpbHRlcigoYykgPT4gYz8uaXNXb3JrZmxvdylcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgbW92ZU5leHRJbmRleCA9IG5ld0l0ZW1zLmZpbmRJbmRleCgoYykgPT4gYy5pdGVtSWQgPT09ICdNb3ZlTmV4dCcpO1xuICAgICAgICBpZiAobW92ZU5leHRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBuZXdJdGVtc1ttb3ZlTmV4dEluZGV4XS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgY29uc3QgbW9zID0gbmV3SXRlbXMuc3BsaWNlKG1vdmVOZXh0SW5kZXggLSAxLCAyKTtcbiAgICAgICAgICAgIG5ld0l0ZW1zID0gWy4uLm1vcywgLi4ubmV3SXRlbXNdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vdmVQcmV2SW5kZXggPSBuZXdJdGVtcy5maW5kSW5kZXgoKGMpID0+IGMuaXRlbUlkID09PSAnTW92ZVByZXYnKTtcbiAgICAgICAgaWYgKG1vdmVQcmV2SW5kZXggPiAtMSkge1xuICAgICAgICAgICAgbmV3SXRlbXNbbW92ZVByZXZJbmRleF0ucHJpb3JpdHkgPSAnYWx3YXlzJztcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayB0b29sYmFyaXRlbXMgaW4gZm9vdGVyIHByb3BlcnR5XG4gICAgICAgIG5ld0l0ZW1zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluRm9vdGVyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoYywgJ0RhdGEuQ3VzdG9tVWkuUGFyYW1ldGVycy5JbkZvb3RlcicsIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChpbkZvb3Rlcikge1xuICAgICAgICAgICAgICAgIGMuaW5Gb290ZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3SXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3SXRlbXMuc29ydCgoYSk6IG51bWJlciA9PiAodHlwZW9mIGEgPT0gJ3N0cmluZycgPyAwIDogYS5JQW1NZW51ID8gMSA6IC0xKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0SGVhZGVyTGF5b3V0KHZpZXcpOiBJSGVhZGVyTGF5b3V0IHtcbiAgICAgICAgY29uc3QgaGVhZGVyTGF5b3V0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodmlldywgJ0hlYWRlckxheW91dCcsIG51bGwpO1xuXG4gICAgICAgIGlmIChoZWFkZXJMYXlvdXQpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyVGl0bGVBbmRTdWJ0aXRsZUFuZEF2YXRhcihoZWFkZXJMYXlvdXQpO1xuICAgICAgICAgICAgY29uc3QgdDogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGhlYWRlckxheW91dC5GYWNldExpc3QuTW9EYXRhTGlzdC5mb3JFYWNoKChmYWNldENvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZhY2V0Q29sdW1uLkNvbHVtblNldHRpbmdzLiRGb3JtUGFuZWxTZXR0aW5nLkRhdGEuTW8uVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbW86IGZhY2V0Q29sdW1uLkNvbHVtblNldHRpbmdzLiRGb3JtUGFuZWxTZXR0aW5nLkRhdGEuTW9cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaGVhZGVyTGF5b3V0LkZhY2V0TGlzdDIgPSB0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoZWFkZXJMYXlvdXQ7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcHJlcGFyZUxheW91dENvbXBvbmVudCh2aWV3OiBGb3JtVmlld1NldHRpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF2aWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0Q29tcG9uZW50cyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLkNvbXBvbmVudHMnLCBudWxsKTtcbiAgICAgICAgaWYgKCFsYXlvdXRDb21wb25lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxheW91dENvbXBvbmVudHMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGF5b3V0Q29tcG9uZW50cy5mb3JFYWNoKChsYXlvdXRDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFNldHRpbmcgPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NCh2aWV3LkxheW91dDk0LCBsYXlvdXRDb21wb25lbnQuTGF5b3V0VGl0bGUpO1xuICAgICAgICAgICAgaWYgKGxheW91dFNldHRpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxheW91dFNldHRpbmcuY29tcG9uZW50ID0geyAuLi5sYXlvdXRDb21wb25lbnQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0SXNTaW1wbGVGb3JtKHZpZXc6IEZvcm1WaWV3U2V0dGluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpc1NpbXBsZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLklzU2ltcGxlJywgZmFsc2UpO1xuICAgICAgICByZXR1cm4gaXNTaW1wbGU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0VG9vbGJhclZpc2liaWxpdHkoY29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoaWRlVG9vbGJhciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICd0b29sYmFyLmhpZGVUb29sYmFyJywgZmFsc2UpO1xuICAgICAgICBpZiAoaGlkZVRvb2xiYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IEZvcm1TZXR0aW5ncyB9ID0gY29udGV4dC5TZXR0aW5nLlZpZXc7XG4gICAgICAgIGlmIChGb3JtU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3dUb29sYmFyID0gRm9ybVNldHRpbmdzLlNob3dUb29sYmFyID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVUb29sYmFyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoY29udGV4dCwgJ0ZlYXR1cmVzLlRvb2xiYXInLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHZpc2libGUgPSAoZmVhdHVyZVRvb2xiYXIgJiYgc2hvd1Rvb2xiYXIpICE9PSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2dldE1heENvbnRlbnRXaWR0aCh2aWV3KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWF4Q29udGVudFdpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodmlldywgJ0V4dHJhSnNvblByb3AuTWF4V2lkdGgnLCAnMCcpO1xuICAgICAgICByZXR1cm4gbWF4Q29udGVudFdpZHRoO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2FkZExpc3RlbmVyKGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5vbih7XG4gICAgICAgICAgICBHcm91cEJSdWxlQ2hhbmdlZDogdGhpcy5fZ3JvdXBCUnVsZUNoYW5nZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFRpdGxlQ2hhbmdlZDogdGhpcy5fdGl0bGVDaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgICAgICAgICBXaXphcmROZXh0U3RlcDogdGhpcy5fd2l6YXJkTmV4dFN0ZXAuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFdpemFyZFByZXZpb3VzU3RlcDogdGhpcy5fd2l6YXJkUHJldmlvdXNTdGVwLmJpbmQodGhpcyksXG4gICAgICAgICAgICBEb0xheW91dDogdGhpcy5fZG9MYXlvdXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIE1hc2tDaGFuZ2VkOiB0aGlzLl9tYXNrQ2hhbmdlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgRm9yY2VDbG9zZTogdGhpcy5fZm9yY2VDbG9zZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgUmVmcmVzaDogdGhpcy5fcmVmcmVzaC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgICAgICBjb250ZXh0LnRvb2xiYXIub24oe1xuICAgICAgICAgICAgVG9vbGJhckl0ZW1zQ2hhbmdlZDogdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlZnJlc2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemUodGhpcy5fY29udGV4dCk7XG4gICAgICAgIC8vIHRoaXMuX3ByZXBhcmVWaWV3KHRoaXMuX2NvbnRleHQuU2V0dGluZy5WaWV3KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9mb3JjZUNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JjZUNsb3NlU291cmNlLm5leHQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9tYXNrQ2hhbmdlZChtYXNrKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21hc2tTb3VyY2UubmV4dChtYXNrKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90b29sYmFySXRlbXNDaGFuZ2VkKGl0ZW1zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5uZXh0KGl0ZW1zKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90aXRsZUNoYW5nZWQodGl0bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGl0bGVTb3VyY2UubmV4dCh0aXRsZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfd2l6YXJkTmV4dFN0ZXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZE5leHRTdGVwU291cmNlLm5leHQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF93aXphcmRQcmV2aW91c1N0ZXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG9MYXlvdXQoY29udGV4dCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWV3ID0gY29udGV4dC5TZXR0aW5nLlZpZXc7XG4gICAgICAgIHRoaXMuX3ZpZXdTb3VyY2UubmV4dCh2aWV3KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ncm91cEJSdWxlQ2hhbmdlZChncm91cEl0ZW06IExheW91dFNldHRpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JvdXBCUnVsZVNvdXJjZS5uZXh0KGdyb3VwSXRlbSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcHJlcGFyZUNvbnRleHQoY29udGV4dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZGRMaXN0ZW5lcihjb250ZXh0KTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZShjb250ZXh0KTtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gICAgfVxufVxuIl19
368
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1wYW5lbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etbm92aW4tcmF5LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9mb3JtLXBhbmVsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQWMsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUNILFdBQVcsRUFDWCw2QkFBNkIsRUFDN0IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxpQkFBaUIsRUFDcEIsTUFBTSxjQUFjLENBQUM7QUFFdEIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQWE7SUE2RC9DO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUExQ1osZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVl4QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ25ELCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pFLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFD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QUFJO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDUyxvQkFBb0IsQ0FBQyxLQUFLO1FBQ2hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNTLGFBQWEsQ0FBQyxLQUFLO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDUyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ1MsbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBQ1MsU0FBUyxDQUFDLE9BQU87UUFDdkIsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUNTLGtCQUFrQixDQUFDLFNBQXdCO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNTLGVBQWUsQ0FBQyxPQUFPO1FBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztJQUM1QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIFN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGVsYXksIGZpbHRlciwgbWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEZvcm1WaWV3U2V0dGluZywgSUhlYWRlckxheW91dCwgTGF5b3V0U2V0dGluZywgTWV0YW9iamVjdERhdGFNb2RlbCB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvbW9kZWxzJztcbmltcG9ydCB7IEJhcnNhQXBpIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2xhc3Nlcy9iYXJzYS1hcGknO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Fic3RyYWN0LWNsYXNzZXMvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBEZXZpY2VXaWR0aCxcbiAgICBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NCxcbiAgICBnZXREZXZpY2VJc01vYmlsZSxcbiAgICBnZXRIZWFkZXJWYWx1ZSxcbiAgICBnZXREZXZpY2VJc1RhYmxldFxufSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybVBhbmVsU2VydmljZSBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIGNvbnRleHQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgc2VhcmNoUGFuZWxJc09iamVjdCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNTZWFyY2hQYW5lbCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgd29ya2Zsb3dQYW5lbFVpJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIG1vJDogT2JzZXJ2YWJsZTxNZXRhb2JqZWN0RGF0YU1vZGVsPjtcbiAgICB2aWV3JDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIHRvb2xiYXJJdGVtcyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIHdvcmtmbG93QnV0dG9ucyQ6IE9ic2VydmFibGU8YW55W10+O1xuICAgIG1heENvbnRlbnRXaWR0aCQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICB3aXphcmROZXh0U3RlcCQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgd2l6YXJkUHJldmlvdXNTdGVwJDogT2JzZXJ2YWJsZTx2b2lkPjtcbiAgICBsYXlvdXQkOiBPYnNlcnZhYmxlPGFueT47XG4gICAgZm9yY2VDbG9zZSQ6IE9ic2VydmFibGU8dm9pZD47XG4gICAgZ3JvdXBMYXlvdXQkOiBPYnNlcnZhYmxlPExheW91dFNldHRpbmc+O1xuICAgIGlzU2ltcGxlRm9ybSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZm9ybVdpZHRoJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICAgIHRvb2xiYXJWaXNpYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBoZWFkZXJMYXlvdXQkOiBPYnNlcnZhYmxlPElIZWFkZXJMYXlvdXQ+O1xuICAgIF9oaWRlQ2xvc2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgX2hpZGVUaXRsZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBfaGlkZVBpbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICB0aXRsZSQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJEZXNjcmlwdGlvbiQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAgICBoZWFkZXJSZW1vdmVDb250ZW50UGFkZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgaGVhZGVyU3VidGl0bGUkOiBPYnNlcnZhYmxlPHN0cmluZz47XG4gICAgYXZhdGFyJDogT2JzZXJ2YWJsZTxhbnk+O1xuICAgIGNpcmNsZUF2YXRhciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgbWFzayQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgZm9ybUhlaWdodCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBmaWVsZERpY3QkOiBPYnNlcnZhYmxlPHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gfCB1bmRlZmluZWQ+O1xuXG4gICAgcHJpdmF0ZSBfY29udGV4dDtcbiAgICBwcml2YXRlIF9jb250ZXh0U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX2Zvcm1IZWlnaHRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gICAgcHJpdmF0ZSBfc2VhcmNoUGFuZWxJc09iamVjdFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2lzU2VhcmNoUGFuZWxTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF9pc1NlYXJjUGFuZWxJblNpZGVDb250ZW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfd29ya2Zsb3dQYW5lbFVpU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX21vU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xuICAgIHByaXZhdGUgX3ZpZXdTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhckl0ZW1zU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICAgIHByaXZhdGUgX3RpdGxlU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwcml2YXRlIF9tYXhDb250ZW50V2lkdGhTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJ2F1dG8nKTtcbiAgICBwcml2YXRlIF93aXphcmROZXh0U3RlcFNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfd2l6YXJkUHJldmlvdXNTdGVwU291cmNlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9sYXlvdXRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gICAgcHJpdmF0ZSBfZm9yY2VDbG9zZVNvdXJjZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgcHJpdmF0ZSBfZ3JvdXBCUnVsZVNvdXJjZSA9IG5ldyBTdWJqZWN0PExheW91dFNldHRpbmc+KCk7XG4gICAgcHJpdmF0ZSBfaXNTaW1wbGVGb3JtU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfZm9ybVdpZHRoU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcxMDAlJyk7XG4gICAgcHJpdmF0ZSBfdG9vbGJhclZpc2libGVTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAgIHByaXZhdGUgX2hlYWRlckxheW91dFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgICBwcml2YXRlIF9oZWFkZXJUaXRsZVNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG4gICAgcHJpdmF0ZSBfbWFza1NvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICAgIHByaXZhdGUgX2NhblNlbmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgZm9ybUNvbnRhaW5lckRvbTogSFRNTEVsZW1lbnQ7XG4gICAgQ29sb25JbkxhYmVsID0gdHJ1ZTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0JCA9IHRoaXMuX2NvbnRleHRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIHRhcCgoY29udGV4dCkgPT4gdGhpcy5fcHJlcGFyZUNvbnRleHQoY29udGV4dCkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zZWFyY2hQYW5lbElzT2JqZWN0JCA9IHRoaXMuX3NlYXJjaFBhbmVsSXNPYmplY3RTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuICAgICAgICB0aGlzLmlzU2VhcmNoUGFuZWwkID0gdGhpcy5faXNTZWFyY2hQYW5lbFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMuaXNTZWFyY1BhbmVsSW5TaWRlQ29udGVudCQgPSB0aGlzLl9pc1NlYXJjUGFuZWxJblNpZGVDb250ZW50XG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud29ya2Zsb3dQYW5lbFVpJCA9IHRoaXMuX3dvcmtmbG93UGFuZWxVaVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMuZm9ybUhlaWdodCQgPSB0aGlzLl9mb3JtSGVpZ2h0U291cmNlLmFzT2JzZXJ2YWJsZSgpO1xuICAgICAgICB0aGlzLm1vJCA9IHRoaXMuX21vU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICAgICAgdGhpcy5maWVsZERpY3QkID0gdGhpcy5tbyQucGlwZShcbiAgICAgICAgICAgIG1hcCgoYykgPT4gYy4kRmllbGREaWN0KSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlldyQgPSB0aGlzLl92aWV3U291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICB0YXAoKHZpZXcpID0+IHRoaXMuX3ByZXBhcmVWaWV3KHZpZXcpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudG9vbGJhckl0ZW1zJCA9IHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChpdGVtcykgPT4gdGhpcy5fZmlsdGVyVG9vbGJhckl0ZW1zKGl0ZW1zKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy53b3JrZmxvd0J1dHRvbnMkID0gdGhpcy5fdG9vbGJhckl0ZW1zU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGl0ZW1zKSA9PiB0aGlzLl9maWx0ZXJUb29sYmFySXRlbXMoaXRlbXMpKSxcbiAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoYykgPT4gYy5pc1dvcmtmbG93KSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1heENvbnRlbnRXaWR0aCQgPSB0aGlzLl9tYXhDb250ZW50V2lkdGhTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIG1hcCgod2lkdGgpID0+ICh3aWR0aCA/IHdpZHRoICsgJ3B4JyA6ICdhdXRvJykpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy53aXphcmROZXh0U3RlcCQgPSB0aGlzLl93aXphcmROZXh0U3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMud2l6YXJkUHJldmlvdXNTdGVwJCA9IHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMubGF5b3V0JCA9IHRoaXMuX2xheW91dFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKFxuICAgICAgICAgICAgbWFwKChsYXlvdXQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWxheW91dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbGF5b3V0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBkZXZpY2VXaWR0aCA9IERldmljZVdpZHRoKCk7XG4gICAgICAgICAgICAgICAgaWYgKGRldmljZVdpZHRoIDwgbGF5b3V0LkJvdW5kcy53aWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBsYXlvdXQuQm91bmRzLndpZHRoID0gZGV2aWNlV2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IC4uLmxheW91dCB9O1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmZvcmNlQ2xvc2UkID0gdGhpcy5fZm9yY2VDbG9zZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy5ncm91cExheW91dCQgPSB0aGlzLl9ncm91cEJSdWxlU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmlzU2ltcGxlRm9ybSQgPSB0aGlzLl9pc1NpbXBsZUZvcm1Tb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuZm9ybVdpZHRoJCA9IHRoaXMuX2Zvcm1XaWR0aFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG5cbiAgICAgICAgdGhpcy50b29sYmFyVmlzaWJsZSQgPSB0aGlzLl90b29sYmFyVmlzaWJsZVNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSk7XG4gICAgICAgIHRoaXMudGl0bGUkID0gY29tYmluZUxhdGVzdChbdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UuYXNPYnNlcnZhYmxlKCksIHRoaXMuX3RpdGxlU291cmNlLmFzT2JzZXJ2YWJsZSgpXSkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW2hlYWRlclRpdGxlLCB0aXRsZV0pID0+IChoZWFkZXJUaXRsZSA/IGhlYWRlclRpdGxlIDogdGl0bGUpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmhlYWRlckxheW91dCQgPSB0aGlzLl9oZWFkZXJMYXlvdXRTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShcbiAgICAgICAgICAgIGZpbHRlcigoaGVhZGVyTGF5b3V0KSA9PiAhIWhlYWRlckxheW91dCksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyVGl0bGVTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlRpdGxlKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVDbG9zZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVDbG9zZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVUaXRsZSQubmV4dChoZWFkZXJMYXlvdXQ/LkhpZGVUaXRsZSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+IHRoaXMuX2hpZGVQaW4kLm5leHQoaGVhZGVyTGF5b3V0Py5IaWRlUGluKSksXG4gICAgICAgICAgICB0YXAoKGhlYWRlckxheW91dCkgPT4gdGhpcy5faGVhZGVyRGVzY3JpcHRpb25Tb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LkRlc2NyaXB0aW9uKSkpLFxuICAgICAgICAgICAgdGFwKChoZWFkZXJMYXlvdXQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5faGVhZGVyUmVtb3ZlQ29udGVudFBhZGRpbmdTb3VyY2UubmV4dChnZXRIZWFkZXJWYWx1ZShoZWFkZXJMYXlvdXQ/LlJlbW92ZUNvbnRlbnRQYWRkaW5nKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmhlYWRlckRlc2NyaXB0aW9uJCA9IHRoaXMuX2hlYWRlckRlc2NyaXB0aW9uU291cmNlLmFzT2JzZXJ2YWJsZSgpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcblxuICAgICAgICB0aGlzLmhlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nJCA9IHRoaXMuX2hlYWRlclJlbW92ZUNvbnRlbnRQYWRkaW5nU291cmNlXG4gICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKGRlbGF5KDApLCB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpO1xuXG4gICAgICAgIHRoaXMuaGVhZGVyU3VidGl0bGUkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5TdWJUaXRsZSkpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hdmF0YXIkID0gdGhpcy5oZWFkZXJMYXlvdXQkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGhlYWRlckxheW91dCkgPT4gZ2V0SGVhZGVyVmFsdWUoaGVhZGVyTGF5b3V0Py5BdmF0YXIsIHRydWUpKSxcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2lyY2xlQXZhdGFyJCA9IHRoaXMuaGVhZGVyTGF5b3V0JC5waXBlKFxuICAgICAgICAgICAgbWFwKChoZWFkZXJMYXlvdXQpID0+IGdldEhlYWRlclZhbHVlKGhlYWRlckxheW91dD8uQ2lyY2xlQXZhdGFyKSksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JClcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5tYXNrJCA9IHRoaXMuX21hc2tTb3VyY2UuYXNPYnNlcnZhYmxlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSwgdGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKTtcbiAgICB9XG4gICAgZ2V0IGhpZGVQaW4kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZVBpbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBoaWRlQ2xvc2UkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlkZUNsb3NlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGhpZGVUaXRsZSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlVGl0bGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBnZXQgY2FuU2VuZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jYW5TZW5kJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IG1vKCk6IE1ldGFvYmplY3REYXRhTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9Tb3VyY2UuZ2V0VmFsdWUoKTtcbiAgICB9XG4gICAgc2V0IGNvbnRleHQodmFsOiBhbnkpIHtcbiAgICAgICAgaWYgKHRoaXMuX2NvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbnRleHRTb3VyY2UubmV4dCh2YWwpO1xuICAgIH1cbiAgICBzZXRGb3JtSGVpZ2h0KHZhbDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1IZWlnaHRTb3VyY2UubmV4dCh2YWwpO1xuICAgIH1cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2NvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdHcm91cEJSdWxlQ2hhbmdlZCcsIHRoaXMuX2dyb3VwQlJ1bGVDaGFuZ2VkKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignVGl0bGVDaGFuZ2VkJywgdGhpcy5fdGl0bGVDaGFuZ2VkKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignV2l6YXJkTmV4dFN0ZXAnLCB0aGlzLl93aXphcmROZXh0U3RlcCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ1dpemFyZFByZXZpb3VzU3RlcCcsIHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcCk7XG4gICAgICAgIHRoaXMuX2NvbnRleHQudW4oJ0RvTGF5b3V0JywgdGhpcy5fZG9MYXlvdXQpO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnVuKCdNYXNrQ2hhbmdlZCcsIHRoaXMuX21hc2tDaGFuZ2VkKTtcbiAgICAgICAgdGhpcy5fY29udGV4dC51bignRm9yY2VDbG9zZScsIHRoaXMuX2ZvcmNlQ2xvc2UpO1xuICAgICAgICB0aGlzLl9jb250ZXh0LnRvb2xiYXIudW4oJ1Rvb2xiYXJJdGVtc0NoYW5nZWQnLCB0aGlzLl90b29sYmFySXRlbXNDaGFuZ2VkKTtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IG51bGw7XG4gICAgICAgIHRoaXMuX2xheW91dFNvdXJjZS5uZXh0KG51bGwpO1xuICAgICAgICAvLyB0aGlzLl9vbkRlc3Ryb3kkLm5leHQoKTtcbiAgICB9XG5cbiAgICB0b29sYmFyQ2xpY2soYnRuKTogdm9pZCB7XG4gICAgICAgIGJ0bi5oYW5kbGVyKGJ0biwgdGhpcy5fY29udGV4dCk7XG4gICAgfVxuICAgIHdmQ2hvaWNlKGJ0bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb250ZXh0LldvcmtmbG93UGFuZWxVaS5maXJlRXZlbnQoJ0Nob2ljZVNlbGVjdCcsIGJ0biwgdGhpcy5fY29udGV4dCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9pbml0aWFsaXplKGNvbnRleHQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl93b3JrZmxvd1BhbmVsVWlTb3VyY2UubmV4dChjb250ZXh0Py5Xb3JrZmxvd1BhbmVsVWkpO1xuICAgICAgICB0aGlzLl9pc1NlYXJjaFBhbmVsU291cmNlLm5leHQoY29udGV4dD8uU2V0dGluZz8uSXNTZWFyY2hQYW5lbCk7XG4gICAgICAgIHRoaXMuX2lzU2VhcmNQYW5lbEluU2lkZUNvbnRlbnQubmV4dChjb250ZXh0Py5TZXR0aW5nPy5Jc1NlYXJjUGFuZWxJblNpZGVDb250ZW50KTtcbiAgICAgICAgdGhpcy5fY2FuU2VuZCQubmV4dChjb250ZXh0Py5TZXR0aW5nPy5DYW5TZW5kKTtcbiAgICAgICAgdGhpcy5fc2VhcmNoUGFuZWxJc09iamVjdFNvdXJjZS5uZXh0KGNvbnRleHQ/LlNldHRpbmc/LlBhcmFtZXRlclR5cGVJc09iamVjdCk7XG4gICAgICAgIHRoaXMuX21vU291cmNlLm5leHQoY29udGV4dD8uTW8pO1xuICAgICAgICB0aGlzLl92aWV3U291cmNlLm5leHQoY29udGV4dD8uU2V0dGluZz8uVmlldyk7XG4gICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5uZXh0KGNvbnRleHQ/LnRvb2xiYXI/Lml0ZW1zKTtcbiAgICAgICAgaWYgKGNvbnRleHQ/LnRvb2xiYXIpIHtcbiAgICAgICAgICAgIGNvbnRleHQudG9vbGJhci5vbih7XG4gICAgICAgICAgICAgICAgVG9vbGJhckl0ZW1zQ2hhbmdlZDogdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90aXRsZVNvdXJjZT8ubmV4dChjb250ZXh0Py50aXRsZSk7XG4gICAgICAgIHRoaXMuX3Rvb2xiYXJWaXNpYmxlU291cmNlLm5leHQodGhpcy5fZ2V0VG9vbGJhclZpc2liaWxpdHkoY29udGV4dCkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfcHJlcGFyZVZpZXcodmlldyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9sYXlvdXRTb3VyY2UubmV4dCh2aWV3Py5MYXlvdXQ5NCk7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVMYXlvdXRDb21wb25lbnQodmlldyk7XG4gICAgICAgIHRoaXMuX21heENvbnRlbnRXaWR0aFNvdXJjZS5uZXh0KHRoaXMuX2dldE1heENvbnRlbnRXaWR0aCh2aWV3KSk7XG4gICAgICAgIHRoaXMuX2lzU2ltcGxlRm9ybVNvdXJjZS5uZXh0KHRoaXMuX2dldElzU2ltcGxlRm9ybSh2aWV3KSk7XG4gICAgICAgIHRoaXMuX2hlYWRlckxheW91dFNvdXJjZS5uZXh0KHRoaXMuX2dldEhlYWRlckxheW91dCh2aWV3KSk7XG4gICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgICB0aGlzLkNvbG9uSW5MYWJlbCA9IHZpZXcuQ29sb25JbkxhYmVsICE9PSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9mb3JtV2lkdGhTb3VyY2UubmV4dCh2aWV3Py5pbkRpYWxvZyA/IHZpZXcuTGF5b3V0OTQuQm91bmRzLndpZHRoICsgJ3B4JyA6ICcxMDAlJyk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZmlsdGVyVG9vbGJhckl0ZW1zKGl0ZW1zOiBBcnJheTxhbnk+KTogQXJyYXk8YW55PiB7XG4gICAgICAgIGlmICghaXRlbXMpIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgICAgICAvLyDYr9ixINi12YjYsdiq24wg2qnZhyDYr9ixINmF2YjYqNin24zZhCDYqNin2LTYryDYr9mIINiv2qnZhdmHINmG2YXYp9uM2LQg2K/Yp9iv2Ycg2LTZiNivINin2LIg2K/aqdmF2Ycg2YfYp9uMINqp2KfYsdio2LEg2Ygg2YHYsdii24zZhtiv24xcbiAgICAgICAgLy8g2K/YsSDYtdmI2LHYqtuMINqp2Ycg2K/aqdmF2Ycg24wg2YjYrNmI2K8g2YbYr9in2LTYqiDZgdmC2Lcg2K/aqdmF2Ycg2LDYrtuM2LHZhyDZhtmF2KfbjNi0INiv2KfYr9mHINi02YjYr1xuICAgICAgICAvLyDYr9ixINit2KfZhNiq2YfYp9uMINiv24zar9ixINin2KjYqtiv2Kcg2K/aqdmF2Ycg2YfYp9uMINqp2KfYsdio2LHbjCDZiCDZgdix2KLbjNmG2K/bjCDZiCDYqNi52K8g2K/aqdmF2Ycg2YfYp9uMINiq2LnYsduM2YEg2LTYr9mHINiz24zYs9iq2YUg2YbZhdin24zYtCDYr9in2K/ZhyDZhduM2LTZiNivLlxuICAgICAgICBjb25zdCBpc01vYmlsZSA9IGdldERldmljZUlzTW9iaWxlKCk7XG4gICAgICAgIGNvbnN0IGlzVGFibGV0ID0gZ2V0RGV2aWNlSXNUYWJsZXQoKTtcbiAgICAgICAgbGV0IG5ld0l0ZW1zID0gaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgKGMpID0+XG4gICAgICAgICAgICAgICAgIWMuaGlkZGVuICYmXG4gICAgICAgICAgICAgICAgIShcbiAgICAgICAgICAgICAgICAgICAgKGlzTW9iaWxlIHx8IGlzVGFibGV0KSAmJlxuICAgICAgICAgICAgICAgICAgICAoYy5pdGVtSWQgPT09ICdOZXh0JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgYy5pdGVtSWQgPT09ICdQcmV2aW91cycgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgIGMuaXRlbUlkID09PSAnTW92ZU5leHQnIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICBjLml0ZW1JZCA9PT0gJ01vdmVQcmV2JyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgYy5pdGVtSWQgPT09ICdNb3ZlUHJldmlvdXMnKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgKTtcblxuICAgICAgICBuZXdJdGVtcy5zb3J0KChjLCBkKTogbnVtYmVyID0+IChOdW1iZXIoYz8uRGF0YT8uVGFiT3JkZXJOdW1iZXIpIDwgTnVtYmVyKGQ/LkRhdGE/LlRhYk9yZGVyTnVtYmVyKSA/IDEgOiAtMSkpO1xuICAgICAgICBjb25zdCBub25TdHJpbmdJdGVtcyA9IG5ld0l0ZW1zLmZpbHRlcigoYykgPT4gdHlwZW9mIGMgIT09ICdzdHJpbmcnKTtcblxuICAgICAgICBjb25zdCB0ID0gbm9uU3RyaW5nSXRlbXMuZmluZCgoYykgPT4gIWMuaXNCdWlsdGluICYmICFjLklBbU1lbnUpO1xuICAgICAgICBpZiAodCkge1xuICAgICAgICAgICAgdC5wcmlvcml0eSA9ICdoaWdoJztcbiAgICAgICAgfVxuICAgICAgICAvLyBsZXQgbm9uQnVpbHRpbkNvdW50ID0gMDtcbiAgICAgICAgLy8gbm9uU3RyaW5nSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAvLyAgICAgaWYgKHR5cGVvZiBpdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAgICAgLy8gICAgIH1cbiAgICAgICAgLy8gICAgIGNvbnN0IGluRm9vdGVyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoaXRlbSwgJ0RhdGEuQ3VzdG9tVWkuUGFyYW1ldGVycy5JbkZvb3RlcicsIGZhbHNlKTtcbiAgICAgICAgLy8gICAgIGlmIChpdGVtLmlzQnVpbHRpbiB8fCBpbkZvb3Rlcikge1xuICAgICAgICAvLyAgICAgICAgIC8vINiz24zYs9iq2YXbjFxuICAgICAgICAvLyAgICAgICAgIGl0ZW0ucHJpb3JpdHkgPSAnYWx3YXlzJztcbiAgICAgICAgLy8gICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgaWYgKG5vbkJ1aWx0aW5Db3VudCA+IDEpIHtcbiAgICAgICAgLy8gICAgICAgICAgICAgLy8g2K/aqdmF2Ycg2YfYp9uMINqp2KfYsdio2LHbjCDaqdmHINio24zYtNiq2LEg2KfYsiDYr9mIINmH2LPYqtmG2K9cbiAgICAgICAgLy8gICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICdsb3cnO1xuICAgICAgICAvLyAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICAgICAgICAgIGl0ZW0ucHJpb3JpdHkgPSAnbG93JztcbiAgICAgICAgLy8gICAgICAgICB9XG4gICAgICAgIC8vICAgICAgICAgbm9uQnVpbHRpbkNvdW50Kys7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pO1xuICAgICAgICBjb25zdCBub0J1aWx0aW5JdGVtcyA9IG5vblN0cmluZ0l0ZW1zLmZpbHRlcihcbiAgICAgICAgICAgIChjKSA9PlxuICAgICAgICAgICAgICAgIHR5cGVvZiBjID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgICAgICFjLmlzQnVpbHRpbiAmJlxuICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGMsICdEYXRhLkN1c3RvbVVpLlBhcmFtZXRlcnMuSW5Gb290ZXInLCBmYWxzZSkgIT09IHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgbm9CdWlsdGluSXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGluZGV4ID09PSAwID8gKGl0ZW0ucHJpb3JpdHkgPSAnaGlnaHQnKSA6IChpdGVtLnByaW9yaXR5ID0gJ2xvdycpO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgbm9uQnVpbHRpbkNvdW50ID0gbm9CdWlsdGluSXRlbXMubGVuZ3RoO1xuICAgICAgICBpZiAobm9uQnVpbHRpbkNvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAvLyDYp9qv2LEg2YfbjNqGINiv2qnZhdmHINqp2KfYsdio2LHbjCDZiNis2YjYryDZhtiv2KfYtNiqXG4gICAgICAgICAgICBub25TdHJpbmdJdGVtcy5mb3JFYWNoKChpdGVtLCBfKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXRlbUlkID09PSAnU2F2ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5wcmlvcml0eSA9ICduZXZlcic7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2F2ZUFuZE5ldyA9IG5ld0l0ZW1zLmZpbmQoKGMpID0+IGMuaXRlbUlkID09PSAnU2F2ZUFuZE5ldycpO1xuICAgICAgICBjb25zdCBzYXZlQW5kQ2xvc2UgPSBuZXdJdGVtcy5maW5kKChjKSA9PiBjLml0ZW1JZCA9PT0gJ1NhdmVBbmRDbG9zZScpO1xuICAgICAgICBpZiAoc2F2ZUFuZENsb3NlICYmIHNhdmVBbmRDbG9zZS5tZW51KSB7XG4gICAgICAgICAgICBjb25zdCBzYXZlID0gc2F2ZUFuZENsb3NlLm1lbnUuaXRlbXNbMF07XG4gICAgICAgICAgICBpZiAoc2F2ZSkge1xuICAgICAgICAgICAgICAgIHNhdmUuaXNCdWlsdGluID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBzYXZlLnByaW9yaXR5ID0gbm9uQnVpbHRpbkNvdW50ID09PSAwID8gJ25ldmVyJyA6ICdhbHdheXMnO1xuXG4gICAgICAgICAgICAgICAgbmV3SXRlbXMucHVzaChzYXZlKTtcbiAgICAgICAgICAgICAgICBpZiAoc2F2ZUFuZE5ldykge1xuICAgICAgICAgICAgICAgICAgICBzYXZlLklBbU1lbnUgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBzYXZlLm1lbnUgPSB7IGl0ZW1zOiBbeyAuLi5zYXZlQW5kTmV3IH1dIH07XG4gICAgICAgICAgICAgICAgICAgIG5ld0l0ZW1zID0gbmV3SXRlbXMuZmlsdGVyKChjKSA9PiBjLml0ZW1JZCAhPT0gJ1NhdmVBbmROZXcnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbmV3SXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0ubWVudSkge1xuICAgICAgICAgICAgICAgIGl0ZW0ubWVudS5pdGVtcyA9IGl0ZW0ubWVudS5pdGVtcy5maWx0ZXIoKGMpID0+ICFjLmhpZGRlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBidWlsdGluc0J1dHRvbnMgPSBuZXdJdGVtcy5maWx0ZXIoKGMpID0+IGM/LmlzQnVpbHRpbik7XG4gICAgICAgIG5ld0l0ZW1zID0gW1xuICAgICAgICAgICAgLi4uYnVpbHRpbnNCdXR0b25zLFxuICAgICAgICAgICAgLi4ubmV3SXRlbXMuZmlsdGVyKChjKSA9PiAhYz8uaXNCdWlsdGluICYmICFjPy5pc1dvcmtmbG93KSxcbiAgICAgICAgICAgIC4uLm5ld0l0ZW1zLmZpbHRlcigoYykgPT4gYz8uaXNXb3JrZmxvdylcbiAgICAgICAgXTtcbiAgICAgICAgY29uc3QgbW92ZU5leHRJbmRleCA9IG5ld0l0ZW1zLmZpbmRJbmRleCgoYykgPT4gYy5pdGVtSWQgPT09ICdNb3ZlTmV4dCcpO1xuICAgICAgICBpZiAobW92ZU5leHRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBuZXdJdGVtc1ttb3ZlTmV4dEluZGV4XS5wcmlvcml0eSA9ICdhbHdheXMnO1xuICAgICAgICAgICAgY29uc3QgbW9zID0gbmV3SXRlbXMuc3BsaWNlKG1vdmVOZXh0SW5kZXggLSAxLCAyKTtcbiAgICAgICAgICAgIG5ld0l0ZW1zID0gWy4uLm1vcywgLi4ubmV3SXRlbXNdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vdmVQcmV2SW5kZXggPSBuZXdJdGVtcy5maW5kSW5kZXgoKGMpID0+IGMuaXRlbUlkID09PSAnTW92ZVByZXYnKTtcbiAgICAgICAgaWYgKG1vdmVQcmV2SW5kZXggPiAtMSkge1xuICAgICAgICAgICAgbmV3SXRlbXNbbW92ZVByZXZJbmRleF0ucHJpb3JpdHkgPSAnYWx3YXlzJztcbiAgICAgICAgfVxuICAgICAgICAvLyBjaGVjayB0b29sYmFyaXRlbXMgaW4gZm9vdGVyIHByb3BlcnR5XG4gICAgICAgIG5ld0l0ZW1zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGluRm9vdGVyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoYywgJ0RhdGEuQ3VzdG9tVWkuUGFyYW1ldGVycy5JbkZvb3RlcicsIGZhbHNlKTtcbiAgICAgICAgICAgIGlmIChpbkZvb3Rlcikge1xuICAgICAgICAgICAgICAgIGMuaW5Gb290ZXIgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gbmV3SXRlbXMucmV2ZXJzZSgpO1xuICAgICAgICAvLyByZXR1cm4gbmV3SXRlbXMuc29ydCgoYSk6IG51bWJlciA9PiAodHlwZW9mIGEgPT0gJ3N0cmluZycgPyAwIDogYS5JQW1NZW51ID8gMSA6IC0xKSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0SGVhZGVyTGF5b3V0KHZpZXcpOiBJSGVhZGVyTGF5b3V0IHtcbiAgICAgICAgY29uc3QgaGVhZGVyTGF5b3V0ID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodmlldywgJ0hlYWRlckxheW91dCcsIG51bGwpO1xuXG4gICAgICAgIGlmIChoZWFkZXJMYXlvdXQpIHtcbiAgICAgICAgICAgIC8vIHRoaXMuc2V0SGVhZGVyVGl0bGVBbmRTdWJ0aXRsZUFuZEF2YXRhcihoZWFkZXJMYXlvdXQpO1xuICAgICAgICAgICAgY29uc3QgdDogYW55W10gPSBbXTtcbiAgICAgICAgICAgIGhlYWRlckxheW91dC5GYWNldExpc3QuTW9EYXRhTGlzdC5mb3JFYWNoKChmYWNldENvbHVtbikgPT4ge1xuICAgICAgICAgICAgICAgIHQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZhY2V0Q29sdW1uLkNvbHVtblNldHRpbmdzLiRGb3JtUGFuZWxTZXR0aW5nLkRhdGEuTW8uVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbW86IGZhY2V0Q29sdW1uLkNvbHVtblNldHRpbmdzLiRGb3JtUGFuZWxTZXR0aW5nLkRhdGEuTW9cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaGVhZGVyTGF5b3V0LkZhY2V0TGlzdDIgPSB0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBoZWFkZXJMYXlvdXQ7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcHJlcGFyZUxheW91dENvbXBvbmVudCh2aWV3OiBGb3JtVmlld1NldHRpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF2aWV3KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbGF5b3V0Q29tcG9uZW50cyA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLkNvbXBvbmVudHMnLCBudWxsKTtcbiAgICAgICAgaWYgKCFsYXlvdXRDb21wb25lbnRzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGxheW91dENvbXBvbmVudHMpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGF5b3V0Q29tcG9uZW50cy5mb3JFYWNoKChsYXlvdXRDb21wb25lbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxheW91dFNldHRpbmcgPSBGaW5kTGF5b3V0U2V0dGluZ0Zyb21MYXlvdXQ5NCh2aWV3LkxheW91dDk0LCBsYXlvdXRDb21wb25lbnQuTGF5b3V0VGl0bGUpO1xuICAgICAgICAgICAgaWYgKGxheW91dFNldHRpbmcgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxheW91dFNldHRpbmcuY29tcG9uZW50ID0geyAuLi5sYXlvdXRDb21wb25lbnQgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0SXNTaW1wbGVGb3JtKHZpZXc6IEZvcm1WaWV3U2V0dGluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBpc1NpbXBsZSA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKHZpZXcsICdFeHRyYUpzb25Qcm9wLklzU2ltcGxlJywgZmFsc2UpO1xuICAgICAgICByZXR1cm4gaXNTaW1wbGU7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZ2V0VG9vbGJhclZpc2liaWxpdHkoY29udGV4dCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIWNvbnRleHQpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBoaWRlVG9vbGJhciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlRyeUdldFZhbHVlKGNvbnRleHQsICd0b29sYmFyLmhpZGVUb29sYmFyJywgZmFsc2UpO1xuICAgICAgICBpZiAoaGlkZVRvb2xiYXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IEZvcm1TZXR0aW5ncyB9ID0gY29udGV4dC5TZXR0aW5nLlZpZXc7XG4gICAgICAgIGlmIChGb3JtU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHNob3dUb29sYmFyID0gRm9ybVNldHRpbmdzLlNob3dUb29sYmFyID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVUb29sYmFyID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUoY29udGV4dCwgJ0ZlYXR1cmVzLlRvb2xiYXInLCBmYWxzZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHZpc2libGUgPSAoZmVhdHVyZVRvb2xiYXIgJiYgc2hvd1Rvb2xiYXIpICE9PSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2dldE1heENvbnRlbnRXaWR0aCh2aWV3KTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgbWF4Q29udGVudFdpZHRoID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodmlldywgJ0V4dHJhSnNvblByb3AuTWF4V2lkdGgnLCAnMCcpO1xuICAgICAgICByZXR1cm4gbWF4Q29udGVudFdpZHRoO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX2FkZExpc3RlbmVyKGNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dC5vbih7XG4gICAgICAgICAgICBHcm91cEJSdWxlQ2hhbmdlZDogdGhpcy5fZ3JvdXBCUnVsZUNoYW5nZWQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFRpdGxlQ2hhbmdlZDogdGhpcy5fdGl0bGVDaGFuZ2VkLmJpbmQodGhpcyksXG4gICAgICAgICAgICBXaXphcmROZXh0U3RlcDogdGhpcy5fd2l6YXJkTmV4dFN0ZXAuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIFdpemFyZFByZXZpb3VzU3RlcDogdGhpcy5fd2l6YXJkUHJldmlvdXNTdGVwLmJpbmQodGhpcyksXG4gICAgICAgICAgICBEb0xheW91dDogdGhpcy5fZG9MYXlvdXQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIE1hc2tDaGFuZ2VkOiB0aGlzLl9tYXNrQ2hhbmdlZC5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgRm9yY2VDbG9zZTogdGhpcy5fZm9yY2VDbG9zZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgUmVmcmVzaDogdGhpcy5fcmVmcmVzaC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgICAgICBjb250ZXh0LnRvb2xiYXIub24oe1xuICAgICAgICAgICAgVG9vbGJhckl0ZW1zQ2hhbmdlZDogdGhpcy5fdG9vbGJhckl0ZW1zQ2hhbmdlZC5iaW5kKHRoaXMpXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3JlZnJlc2goKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxpemUodGhpcy5fY29udGV4dCk7XG4gICAgICAgIC8vIHRoaXMuX3ByZXBhcmVWaWV3KHRoaXMuX2NvbnRleHQuU2V0dGluZy5WaWV3KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9mb3JjZUNsb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9mb3JjZUNsb3NlU291cmNlLm5leHQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9tYXNrQ2hhbmdlZChtYXNrKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX21hc2tTb3VyY2UubmV4dChtYXNrKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90b29sYmFySXRlbXNDaGFuZ2VkKGl0ZW1zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtc1NvdXJjZS5uZXh0KGl0ZW1zKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF90aXRsZUNoYW5nZWQodGl0bGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdGl0bGVTb3VyY2UubmV4dCh0aXRsZSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfd2l6YXJkTmV4dFN0ZXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZE5leHRTdGVwU291cmNlLm5leHQoKTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF93aXphcmRQcmV2aW91c1N0ZXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZFByZXZpb3VzU3RlcFNvdXJjZS5uZXh0KCk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfZG9MYXlvdXQoY29udGV4dCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2aWV3ID0gY29udGV4dC5TZXR0aW5nLlZpZXc7XG4gICAgICAgIHRoaXMuX3ZpZXdTb3VyY2UubmV4dCh2aWV3KTtcbiAgICB9XG4gICAgcHJvdGVjdGVkIF9ncm91cEJSdWxlQ2hhbmdlZChncm91cEl0ZW06IExheW91dFNldHRpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZ3JvdXBCUnVsZVNvdXJjZS5uZXh0KGdyb3VwSXRlbSk7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcHJlcGFyZUNvbnRleHQoY29udGV4dCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9hZGRMaXN0ZW5lcihjb250ZXh0KTtcbiAgICAgICAgdGhpcy5faW5pdGlhbGl6ZShjb250ZXh0KTtcbiAgICAgICAgdGhpcy5fY29udGV4dCA9IGNvbnRleHQ7XG4gICAgfVxufVxuIl19
@@ -2727,6 +2727,7 @@ class FormPanelService extends BaseComponent {
2727
2727
  (c.itemId === 'Next' ||
2728
2728
  c.itemId === 'Previous' ||
2729
2729
  c.itemId === 'MoveNext' ||
2730
+ c.itemId === 'MovePrev' ||
2730
2731
  c.itemId === 'MovePrevious')));
2731
2732
  newItems.sort((c, d) => (Number(c?.Data?.TabOrderNumber) < Number(d?.Data?.TabOrderNumber) ? 1 : -1));
2732
2733
  const nonStringItems = newItems.filter((c) => typeof c !== 'string');