@vendasta/billing 14.44.0 → 14.46.0

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.
@@ -137,6 +137,49 @@ export class ListTaxRulesRequestFilters {
137
137
  return toReturn;
138
138
  }
139
139
  }
140
+ export class GetTaxProviderRequest {
141
+ static fromProto(proto) {
142
+ let m = new GetTaxProviderRequest();
143
+ m = Object.assign(m, proto);
144
+ return m;
145
+ }
146
+ constructor(kwargs) {
147
+ if (!kwargs) {
148
+ return;
149
+ }
150
+ Object.assign(this, kwargs);
151
+ }
152
+ toApiJson() {
153
+ const toReturn = {};
154
+ if (typeof this.merchantId !== 'undefined') {
155
+ toReturn['merchantId'] = this.merchantId;
156
+ }
157
+ return toReturn;
158
+ }
159
+ }
160
+ export class GetTaxProviderResponse {
161
+ static fromProto(proto) {
162
+ let m = new GetTaxProviderResponse();
163
+ m = Object.assign(m, proto);
164
+ if (proto.taxProviderType) {
165
+ m.taxProviderType = enumStringToValue(e.TaxProviderType, proto.taxProviderType);
166
+ }
167
+ return m;
168
+ }
169
+ constructor(kwargs) {
170
+ if (!kwargs) {
171
+ return;
172
+ }
173
+ Object.assign(this, kwargs);
174
+ }
175
+ toApiJson() {
176
+ const toReturn = {};
177
+ if (typeof this.taxProviderType !== 'undefined') {
178
+ toReturn['taxProviderType'] = this.taxProviderType;
179
+ }
180
+ return toReturn;
181
+ }
182
+ }
140
183
  export class GetTaxRuleRequest {
141
184
  static fromProto(proto) {
142
185
  let m = new GetTaxRuleRequest();
@@ -462,4 +505,4 @@ export class TaxRuleProduct {
462
505
  return toReturn;
463
506
  }
464
507
  }
465
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RheC1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFHbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ3ZGLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBOEM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFD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Q29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFBhZ2VkUmVxdWVzdE9wdGlvbnMsIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFRheFJhdGUgfSBmcm9tICcuL3RheC1yYXRlJztcbmltcG9ydCAqIGFzIGUgZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZW51bVN0cmluZ1RvVmFsdWU8RT4oZW51bVJlZjogYW55LCB2YWx1ZTogc3RyaW5nKTogRSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIHJldHVybiBlbnVtUmVmW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGNsYXNzIEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0IGltcGxlbWVudHMgaS5CdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSB7XG4gICAgdGF4UnVsZXM6IFJlcGxhY2VUYXhSdWxlUmVxdWVzdFtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQnVsa1JlcGxhY2VUYXhSdWxlc1JlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50YXhSdWxlcykge20udGF4UnVsZXMgPSBwcm90by50YXhSdWxlcy5tYXAoUmVwbGFjZVRheFJ1bGVSZXF1ZXN0LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UnVsZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UnVsZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UnVsZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UnVsZXMgPyAodGhpcy50YXhSdWxlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSdWxlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2UgaW1wbGVtZW50cyBpLkJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaWRzOiBzdHJpbmdbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWRzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZHMnXSA9IHRoaXMuaWRzO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRheFJ1bGVDdXN0b21lckN1c3RvbWVyQWRkcmVzcyBpbXBsZW1lbnRzIGkuVGF4UnVsZUN1c3RvbWVyQ3VzdG9tZXJBZGRyZXNzSW50ZXJmYWNlIHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgYWRkcmVzczI6IHN0cmluZztcbiAgICBjaXR5OiBzdHJpbmc7XG4gICAgc3RhdGU6IHN0cmluZztcbiAgICB6aXA6IHN0cmluZztcbiAgICBjb3VudHJ5OiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUYXhSdWxlQ3VzdG9tZXJDdXN0b21lckFkZHJlc3Mge1xuICAgICAgICBsZXQgbSA9IG5ldyBUYXhSdWxlQ3VzdG9tZXJDdXN0b21lckFkZHJlc3MoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVDdXN0b21lckN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FkZHJlc3MnXSA9IHRoaXMuYWRkcmVzczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRyZXNzMiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYWRkcmVzczInXSA9IHRoaXMuYWRkcmVzczI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY2l0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY2l0eSddID0gdGhpcy5jaXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnN0YXRlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydzdGF0ZSddID0gdGhpcy5zdGF0ZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy56aXAgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3ppcCddID0gdGhpcy56aXA7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY291bnRyeSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY291bnRyeSddID0gdGhpcy5jb3VudHJ5O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZVRheFJ1bGVSZXF1ZXN0IGltcGxlbWVudHMgaS5EZWxldGVUYXhSdWxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERlbGV0ZVRheFJ1bGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlVGF4UnVsZVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkRlbGV0ZVRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RUYXhSdWxlc1JlcXVlc3RGaWx0ZXJzIGltcGxlbWVudHMgaS5MaXN0VGF4UnVsZXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGNvbnN1bWVyOiBlLkNvbnN1bWVyO1xuICAgIGVudGl0eVR5cGU6IGUuVGF4UnVsZUVudGl0eVR5cGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0VGF4UnVsZXNSZXF1ZXN0RmlsdGVycyB7XG4gICAgICAgIGxldCBtID0gbmV3IExpc3RUYXhSdWxlc1JlcXVlc3RGaWx0ZXJzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmNvbnN1bWVyKSB7bS5jb25zdW1lciA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuQ29uc3VtZXI+KGUuQ29uc3VtZXIsIHByb3RvLmNvbnN1bWVyKTt9XG4gICAgICAgIGlmIChwcm90by5lbnRpdHlUeXBlKSB7bS5lbnRpdHlUeXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5UYXhSdWxlRW50aXR5VHlwZT4oZS5UYXhSdWxlRW50aXR5VHlwZSwgcHJvdG8uZW50aXR5VHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkxpc3RUYXhSdWxlc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnN1bWVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb25zdW1lciddID0gdGhpcy5jb25zdW1lcjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRpdHlUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlUeXBlJ10gPSB0aGlzLmVudGl0eVR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0VGF4UnVsZVJlcXVlc3QgaW1wbGVtZW50cyBpLkdldFRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0VGF4UnVsZVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRUYXhSdWxlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0VGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0VGF4UnVsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJ1bGU6IFRheFJ1bGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRUYXhSdWxlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRUYXhSdWxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UnVsZSkge20udGF4UnVsZSA9IFRheFJ1bGUuZnJvbVByb3RvKHByb3RvLnRheFJ1bGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSdWxlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRheFJ1bGUgIT09IG51bGwpIHt0b1JldHVyblsndGF4UnVsZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSdWxlID8gKHRoaXMudGF4UnVsZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSdWxlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RUYXhSdWxlc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RUYXhSdWxlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RUYXhSdWxlc1JlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0VGF4UnVsZXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFRheFJ1bGVzUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdFRheFJ1bGVzUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmlsdGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmaWx0ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlcnMgPyAodGhpcy5maWx0ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZpbHRlcnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ09wdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nT3B0aW9ucyA/ICh0aGlzLnBhZ2luZ09wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nT3B0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VGF4UnVsZXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuTGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJ1bGVzOiBUYXhSdWxlW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSdWxlc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFRheFJ1bGVzUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UnVsZXMpIHttLnRheFJ1bGVzID0gcHJvdG8udGF4UnVsZXMubWFwKFRheFJ1bGUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSdWxlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSdWxlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSdWxlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSdWxlcyA/ICh0aGlzLnRheFJ1bGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJ1bGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllciBpbXBsZW1lbnRzIGkuVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllckludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgdHlwZTogZS5Qcm9kdWN0VHlwZTtcbiAgICBncm91cElkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUYXhSdWxlUHJvZHVjdFByb2R1Y3RJZGVudGlmaWVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Qcm9kdWN0VHlwZT4oZS5Qcm9kdWN0VHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVQcm9kdWN0UHJvZHVjdElkZW50aWZpZXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdyb3VwSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2dyb3VwSWQnXSA9IHRoaXMuZ3JvdXBJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBsYWNlVGF4UnVsZVJlcXVlc3QgaW1wbGVtZW50cyBpLlJlcGxhY2VUYXhSdWxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGVudGl0eVR5cGU6IGUuVGF4UnVsZUVudGl0eVR5cGU7XG4gICAgZW50aXR5SWQ6IHN0cmluZztcbiAgICB0eXBlOiBlLlRheFJ1bGVUeXBlO1xuICAgIHRheFJhdGVJZHM6IHN0cmluZ1tdO1xuICAgIGNvbnN1bWVyOiBlLkNvbnN1bWVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVwbGFjZVRheFJ1bGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUmVwbGFjZVRheFJ1bGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmVudGl0eVR5cGUpIHttLmVudGl0eVR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlRheFJ1bGVFbnRpdHlUeXBlPihlLlRheFJ1bGVFbnRpdHlUeXBlLCBwcm90by5lbnRpdHlUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5UYXhSdWxlVHlwZT4oZS5UYXhSdWxlVHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8uY29uc3VtZXIpIHttLmNvbnN1bWVyID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Db25zdW1lcj4oZS5Db25zdW1lciwgcHJvdG8uY29uc3VtZXIpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5SZXBsYWNlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW50aXR5VHlwZSddID0gdGhpcy5lbnRpdHlUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudGl0eUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlJZCddID0gdGhpcy5lbnRpdHlJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZUlkcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZUlkcyddID0gdGhpcy50YXhSYXRlSWRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnN1bWVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb25zdW1lciddID0gdGhpcy5jb25zdW1lcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBsYWNlVGF4UnVsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5SZXBsYWNlVGF4UnVsZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVwbGFjZVRheFJ1bGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFJlcGxhY2VUYXhSdWxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlJlcGxhY2VUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZSBpbXBsZW1lbnRzIGkuVGF4UnVsZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgZW50aXR5SWQ6IHN0cmluZztcbiAgICBlbnRpdHlUeXBlOiBlLlRheFJ1bGVFbnRpdHlUeXBlO1xuICAgIGVudGl0eTogVGF4UnVsZVRheFJ1bGVFbnRpdHk7XG4gICAgdHlwZTogZS5UYXhSdWxlVHlwZTtcbiAgICB0YXhSYXRlczogVGF4UmF0ZVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRheFJ1bGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZW50aXR5VHlwZSkge20uZW50aXR5VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVGF4UnVsZUVudGl0eVR5cGU+KGUuVGF4UnVsZUVudGl0eVR5cGUsIHByb3RvLmVudGl0eVR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLmVudGl0eSkge20uZW50aXR5ID0gVGF4UnVsZVRheFJ1bGVFbnRpdHkuZnJvbVByb3RvKHByb3RvLmVudGl0eSk7fVxuICAgICAgICBpZiAocHJvdG8udHlwZSkge20udHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVGF4UnVsZVR5cGU+KGUuVGF4UnVsZVR5cGUsIHByb3RvLnR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudGl0eUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlJZCddID0gdGhpcy5lbnRpdHlJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRpdHlUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlUeXBlJ10gPSB0aGlzLmVudGl0eVR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVudGl0eSAhPT0gbnVsbCkge3RvUmV0dXJuWydlbnRpdHknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZW50aXR5ID8gKHRoaXMuZW50aXR5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYXhSdWxlQ3VzdG9tZXIgaW1wbGVtZW50cyBpLlRheFJ1bGVDdXN0b21lckludGVyZmFjZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IFRheFJ1bGVDdXN0b21lckN1c3RvbWVyQWRkcmVzcztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRheFJ1bGVDdXN0b21lciB7XG4gICAgICAgIGxldCBtID0gbmV3IFRheFJ1bGVDdXN0b21lcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hZGRyZXNzKSB7bS5hZGRyZXNzID0gVGF4UnVsZUN1c3RvbWVyQ3VzdG9tZXJBZGRyZXNzLmZyb21Qcm90byhwcm90by5hZGRyZXNzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGF4UnVsZUN1c3RvbWVySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYWRkcmVzcyAhPT0gbnVsbCkge3RvUmV0dXJuWydhZGRyZXNzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFkZHJlc3MgPyAodGhpcy5hZGRyZXNzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFkZHJlc3M7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZVRheFJ1bGVFbnRpdHkgaW1wbGVtZW50cyBpLlRheFJ1bGVUYXhSdWxlRW50aXR5SW50ZXJmYWNlIHtcbiAgICBjdXN0b21lcjogVGF4UnVsZUN1c3RvbWVyO1xuICAgIHByb2R1Y3Q6IFRheFJ1bGVQcm9kdWN0O1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZVRheFJ1bGVFbnRpdHkge1xuICAgICAgICBsZXQgbSA9IG5ldyBUYXhSdWxlVGF4UnVsZUVudGl0eSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jdXN0b21lcikge20uY3VzdG9tZXIgPSBUYXhSdWxlQ3VzdG9tZXIuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyKTt9XG4gICAgICAgIGlmIChwcm90by5wcm9kdWN0KSB7bS5wcm9kdWN0ID0gVGF4UnVsZVByb2R1Y3QuZnJvbVByb3RvKHByb3RvLnByb2R1Y3QpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UYXhSdWxlVGF4UnVsZUVudGl0eUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmN1c3RvbWVyICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmN1c3RvbWVyID8gKHRoaXMuY3VzdG9tZXIgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvZHVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcm9kdWN0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Byb2R1Y3QnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucHJvZHVjdCA/ICh0aGlzLnByb2R1Y3QgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJvZHVjdDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYXhSdWxlUHJvZHVjdCBpbXBsZW1lbnRzIGkuVGF4UnVsZVByb2R1Y3RJbnRlcmZhY2Uge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpZGVudGlmaWVyOiBUYXhSdWxlUHJvZHVjdFByb2R1Y3RJZGVudGlmaWVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZVByb2R1Y3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUYXhSdWxlUHJvZHVjdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pZGVudGlmaWVyKSB7bS5pZGVudGlmaWVyID0gVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllci5mcm9tUHJvdG8ocHJvdG8uaWRlbnRpZmllcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVQcm9kdWN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkZW50aWZpZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaWRlbnRpZmllciAhPT0gbnVsbCkge3RvUmV0dXJuWydpZGVudGlmaWVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmlkZW50aWZpZXIgPyAodGhpcy5pZGVudGlmaWVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmlkZW50aWZpZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
508
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9iaWxsaW5nX3Nkay9zcmMvbGliL19pbnRlcm5hbC9vYmplY3RzL3RheC1ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sS0FBSyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBRTlCLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELE1BQU0sT0FBTywwQkFBMEI7SUFHbkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFVO1FBQ3ZCLElBQUksQ0FBQyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUIsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUFDO1FBQ3ZGLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVELFlBQVksTUFBOEM7UUFDdEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFD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QVUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLFVBQWtCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7U0FBQztRQUMzTCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlblxuLy8gRE8gTk9UIEVESVQhLlxuLy9cbi8vIE9iamVjdHMuXG4vLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbmltcG9ydCAqIGFzIGkgZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQYWdlZFJlcXVlc3RPcHRpb25zLCBQYWdlZFJlc3BvbnNlTWV0YWRhdGEgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBUYXhSYXRlIH0gZnJvbSAnLi90YXgtcmF0ZSc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdCBpbXBsZW1lbnRzIGkuQnVsa1JlcGxhY2VUYXhSdWxlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHRheFJ1bGVzOiBSZXBsYWNlVGF4UnVsZVJlcXVlc3RbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQnVsa1JlcGxhY2VUYXhSdWxlc1JlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UnVsZXMpIHttLnRheFJ1bGVzID0gcHJvdG8udGF4UnVsZXMubWFwKFJlcGxhY2VUYXhSdWxlUmVxdWVzdC5mcm9tUHJvdG8pO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5CdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRheFJ1bGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRheFJ1bGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ3RheFJ1bGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnRheFJ1bGVzID8gKHRoaXMudGF4UnVsZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudGF4UnVsZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5CdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGlkczogc3RyaW5nW107XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWRzJ10gPSB0aGlzLmlkczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYXhSdWxlQ3VzdG9tZXJDdXN0b21lckFkZHJlc3MgaW1wbGVtZW50cyBpLlRheFJ1bGVDdXN0b21lckN1c3RvbWVyQWRkcmVzc0ludGVyZmFjZSB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGFkZHJlc3MyOiBzdHJpbmc7XG4gICAgY2l0eTogc3RyaW5nO1xuICAgIHN0YXRlOiBzdHJpbmc7XG4gICAgemlwOiBzdHJpbmc7XG4gICAgY291bnRyeTogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZUN1c3RvbWVyQ3VzdG9tZXJBZGRyZXNzIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGF4UnVsZUN1c3RvbWVyQ3VzdG9tZXJBZGRyZXNzKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UYXhSdWxlQ3VzdG9tZXJDdXN0b21lckFkZHJlc3NJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRyZXNzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYWRkcmVzczIgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2FkZHJlc3MyJ10gPSB0aGlzLmFkZHJlc3MyO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NpdHknXSA9IHRoaXMuY2l0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdGF0ZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3RhdGUnXSA9IHRoaXMuc3RhdGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuemlwICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd6aXAnXSA9IHRoaXMuemlwO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50cnkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2NvdW50cnknXSA9IHRoaXMuY291bnRyeTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBEZWxldGVUYXhSdWxlUmVxdWVzdCBpbXBsZW1lbnRzIGkuRGVsZXRlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVUYXhSdWxlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZVRheFJ1bGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVUYXhSdWxlUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydpZCddID0gdGhpcy5pZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VGF4UnVsZXNSZXF1ZXN0RmlsdGVycyBpbXBsZW1lbnRzIGkuTGlzdFRheFJ1bGVzUmVxdWVzdEZpbHRlcnNJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjb25zdW1lcjogZS5Db25zdW1lcjtcbiAgICBlbnRpdHlUeXBlOiBlLlRheFJ1bGVFbnRpdHlUeXBlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogTGlzdFRheFJ1bGVzUmVxdWVzdEZpbHRlcnMge1xuICAgICAgICBsZXQgbSA9IG5ldyBMaXN0VGF4UnVsZXNSZXF1ZXN0RmlsdGVycygpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jb25zdW1lcikge20uY29uc3VtZXIgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkNvbnN1bWVyPihlLkNvbnN1bWVyLCBwcm90by5jb25zdW1lcik7fVxuICAgICAgICBpZiAocHJvdG8uZW50aXR5VHlwZSkge20uZW50aXR5VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVGF4UnVsZUVudGl0eVR5cGU+KGUuVGF4UnVsZUVudGl0eVR5cGUsIHByb3RvLmVudGl0eVR5cGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5MaXN0VGF4UnVsZXNSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jb25zdW1lciAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY29uc3VtZXInXSA9IHRoaXMuY29uc3VtZXI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW50aXR5VHlwZSddID0gdGhpcy5lbnRpdHlUeXBlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldFRheFByb3ZpZGVyUmVxdWVzdCBpbXBsZW1lbnRzIGkuR2V0VGF4UHJvdmlkZXJSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRUYXhQcm92aWRlclJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRUYXhQcm92aWRlclJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldFRheFByb3ZpZGVyUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRUYXhQcm92aWRlclJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRUYXhQcm92aWRlclJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICB0YXhQcm92aWRlclR5cGU6IGUuVGF4UHJvdmlkZXJUeXBlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0VGF4UHJvdmlkZXJSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldFRheFByb3ZpZGVyUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UHJvdmlkZXJUeXBlKSB7bS50YXhQcm92aWRlclR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlRheFByb3ZpZGVyVHlwZT4oZS5UYXhQcm92aWRlclR5cGUsIHByb3RvLnRheFByb3ZpZGVyVHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldFRheFByb3ZpZGVyUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhQcm92aWRlclR5cGUgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RheFByb3ZpZGVyVHlwZSddID0gdGhpcy50YXhQcm92aWRlclR5cGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0VGF4UnVsZVJlcXVlc3QgaW1wbGVtZW50cyBpLkdldFRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0VGF4UnVsZVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRUYXhSdWxlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuR2V0VGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR2V0VGF4UnVsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJ1bGU6IFRheFJ1bGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRUYXhSdWxlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBHZXRUYXhSdWxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UnVsZSkge20udGF4UnVsZSA9IFRheFJ1bGUuZnJvbVByb3RvKHByb3RvLnRheFJ1bGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSdWxlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnRheFJ1bGUgIT09IG51bGwpIHt0b1JldHVyblsndGF4UnVsZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSdWxlID8gKHRoaXMudGF4UnVsZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSdWxlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIExpc3RUYXhSdWxlc1JlcXVlc3QgaW1wbGVtZW50cyBpLkxpc3RUYXhSdWxlc1JlcXVlc3RJbnRlcmZhY2Uge1xuICAgIGZpbHRlcnM6IExpc3RUYXhSdWxlc1JlcXVlc3RGaWx0ZXJzO1xuICAgIHBhZ2luZ09wdGlvbnM6IFBhZ2VkUmVxdWVzdE9wdGlvbnM7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBMaXN0VGF4UnVsZXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFRheFJ1bGVzUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5maWx0ZXJzKSB7bS5maWx0ZXJzID0gTGlzdFRheFJ1bGVzUmVxdWVzdEZpbHRlcnMuZnJvbVByb3RvKHByb3RvLmZpbHRlcnMpO31cbiAgICAgICAgaWYgKHByb3RvLnBhZ2luZ09wdGlvbnMpIHttLnBhZ2luZ09wdGlvbnMgPSBQYWdlZFJlcXVlc3RPcHRpb25zLmZyb21Qcm90byhwcm90by5wYWdpbmdPcHRpb25zKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZpbHRlcnMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZmlsdGVycyAhPT0gbnVsbCkge3RvUmV0dXJuWydmaWx0ZXJzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmZpbHRlcnMgPyAodGhpcy5maWx0ZXJzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmZpbHRlcnM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucGFnaW5nT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wYWdpbmdPcHRpb25zICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ09wdGlvbnMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucGFnaW5nT3B0aW9ucyA/ICh0aGlzLnBhZ2luZ09wdGlvbnMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nT3B0aW9uczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBMaXN0VGF4UnVsZXNSZXNwb25zZSBpbXBsZW1lbnRzIGkuTGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIHRheFJ1bGVzOiBUYXhSdWxlW107XG4gICAgcGFnaW5nTWV0YWRhdGE6IFBhZ2VkUmVzcG9uc2VNZXRhZGF0YTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IExpc3RUYXhSdWxlc1Jlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgTGlzdFRheFJ1bGVzUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udGF4UnVsZXMpIHttLnRheFJ1bGVzID0gcHJvdG8udGF4UnVsZXMubWFwKFRheFJ1bGUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5wYWdpbmdNZXRhZGF0YSkge20ucGFnaW5nTWV0YWRhdGEgPSBQYWdlZFJlc3BvbnNlTWV0YWRhdGEuZnJvbVByb3RvKHByb3RvLnBhZ2luZ01ldGFkYXRhKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuTGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSdWxlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy50YXhSdWxlcyAhPT0gbnVsbCkge3RvUmV0dXJuWyd0YXhSdWxlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy50YXhSdWxlcyA/ICh0aGlzLnRheFJ1bGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLnRheFJ1bGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLnBhZ2luZ01ldGFkYXRhICE9PSBudWxsKSB7dG9SZXR1cm5bJ3BhZ2luZ01ldGFkYXRhJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLnBhZ2luZ01ldGFkYXRhID8gKHRoaXMucGFnaW5nTWV0YWRhdGEgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucGFnaW5nTWV0YWRhdGE7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllciBpbXBsZW1lbnRzIGkuVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllckludGVyZmFjZSB7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgdHlwZTogZS5Qcm9kdWN0VHlwZTtcbiAgICBncm91cElkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBUYXhSdWxlUHJvZHVjdFByb2R1Y3RJZGVudGlmaWVyIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Qcm9kdWN0VHlwZT4oZS5Qcm9kdWN0VHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVQcm9kdWN0UHJvZHVjdElkZW50aWZpZXJJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndHlwZSddID0gdGhpcy50eXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmdyb3VwSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2dyb3VwSWQnXSA9IHRoaXMuZ3JvdXBJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBsYWNlVGF4UnVsZVJlcXVlc3QgaW1wbGVtZW50cyBpLlJlcGxhY2VUYXhSdWxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGVudGl0eVR5cGU6IGUuVGF4UnVsZUVudGl0eVR5cGU7XG4gICAgZW50aXR5SWQ6IHN0cmluZztcbiAgICB0eXBlOiBlLlRheFJ1bGVUeXBlO1xuICAgIHRheFJhdGVJZHM6IHN0cmluZ1tdO1xuICAgIGNvbnN1bWVyOiBlLkNvbnN1bWVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVwbGFjZVRheFJ1bGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgUmVwbGFjZVRheFJ1bGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmVudGl0eVR5cGUpIHttLmVudGl0eVR5cGUgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLlRheFJ1bGVFbnRpdHlUeXBlPihlLlRheFJ1bGVFbnRpdHlUeXBlLCBwcm90by5lbnRpdHlUeXBlKTt9XG4gICAgICAgIGlmIChwcm90by50eXBlKSB7bS50eXBlID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5UYXhSdWxlVHlwZT4oZS5UYXhSdWxlVHlwZSwgcHJvdG8udHlwZSk7fVxuICAgICAgICBpZiAocHJvdG8uY29uc3VtZXIpIHttLmNvbnN1bWVyID0gZW51bVN0cmluZ1RvVmFsdWU8ZS5Db25zdW1lcj4oZS5Db25zdW1lciwgcHJvdG8uY29uc3VtZXIpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5SZXBsYWNlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5VHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZW50aXR5VHlwZSddID0gdGhpcy5lbnRpdHlUeXBlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudGl0eUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlJZCddID0gdGhpcy5lbnRpdHlJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZUlkcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZUlkcyddID0gdGhpcy50YXhSYXRlSWRzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNvbnN1bWVyICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjb25zdW1lciddID0gdGhpcy5jb25zdW1lcjt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBSZXBsYWNlVGF4UnVsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5SZXBsYWNlVGF4UnVsZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogUmVwbGFjZVRheFJ1bGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFJlcGxhY2VUYXhSdWxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlJlcGxhY2VUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZSBpbXBsZW1lbnRzIGkuVGF4UnVsZUludGVyZmFjZSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgZW50aXR5SWQ6IHN0cmluZztcbiAgICBlbnRpdHlUeXBlOiBlLlRheFJ1bGVFbnRpdHlUeXBlO1xuICAgIGVudGl0eTogVGF4UnVsZVRheFJ1bGVFbnRpdHk7XG4gICAgdHlwZTogZS5UYXhSdWxlVHlwZTtcbiAgICB0YXhSYXRlczogVGF4UmF0ZVtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFRheFJ1bGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uZW50aXR5VHlwZSkge20uZW50aXR5VHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVGF4UnVsZUVudGl0eVR5cGU+KGUuVGF4UnVsZUVudGl0eVR5cGUsIHByb3RvLmVudGl0eVR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLmVudGl0eSkge20uZW50aXR5ID0gVGF4UnVsZVRheFJ1bGVFbnRpdHkuZnJvbVByb3RvKHByb3RvLmVudGl0eSk7fVxuICAgICAgICBpZiAocHJvdG8udHlwZSkge20udHlwZSA9IGVudW1TdHJpbmdUb1ZhbHVlPGUuVGF4UnVsZVR5cGU+KGUuVGF4UnVsZVR5cGUsIHByb3RvLnR5cGUpO31cbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnaWQnXSA9IHRoaXMuaWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmVudGl0eUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlJZCddID0gdGhpcy5lbnRpdHlJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5lbnRpdHlUeXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydlbnRpdHlUeXBlJ10gPSB0aGlzLmVudGl0eVR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZW50aXR5ICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmVudGl0eSAhPT0gbnVsbCkge3RvUmV0dXJuWydlbnRpdHknXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuZW50aXR5ID8gKHRoaXMuZW50aXR5IGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmVudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50eXBlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0eXBlJ10gPSB0aGlzLnR5cGU7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYXhSdWxlQ3VzdG9tZXIgaW1wbGVtZW50cyBpLlRheFJ1bGVDdXN0b21lckludGVyZmFjZSB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFkZHJlc3M6IFRheFJ1bGVDdXN0b21lckN1c3RvbWVyQWRkcmVzcztcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFRheFJ1bGVDdXN0b21lciB7XG4gICAgICAgIGxldCBtID0gbmV3IFRheFJ1bGVDdXN0b21lcigpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5hZGRyZXNzKSB7bS5hZGRyZXNzID0gVGF4UnVsZUN1c3RvbWVyQ3VzdG9tZXJBZGRyZXNzLmZyb21Qcm90byhwcm90by5hZGRyZXNzKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVGF4UnVsZUN1c3RvbWVySW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZHJlc3MgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuYWRkcmVzcyAhPT0gbnVsbCkge3RvUmV0dXJuWydhZGRyZXNzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFkZHJlc3MgPyAodGhpcy5hZGRyZXNzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFkZHJlc3M7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGF4UnVsZVRheFJ1bGVFbnRpdHkgaW1wbGVtZW50cyBpLlRheFJ1bGVUYXhSdWxlRW50aXR5SW50ZXJmYWNlIHtcbiAgICBjdXN0b21lcjogVGF4UnVsZUN1c3RvbWVyO1xuICAgIHByb2R1Y3Q6IFRheFJ1bGVQcm9kdWN0O1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZVRheFJ1bGVFbnRpdHkge1xuICAgICAgICBsZXQgbSA9IG5ldyBUYXhSdWxlVGF4UnVsZUVudGl0eSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5jdXN0b21lcikge20uY3VzdG9tZXIgPSBUYXhSdWxlQ3VzdG9tZXIuZnJvbVByb3RvKHByb3RvLmN1c3RvbWVyKTt9XG4gICAgICAgIGlmIChwcm90by5wcm9kdWN0KSB7bS5wcm9kdWN0ID0gVGF4UnVsZVByb2R1Y3QuZnJvbVByb3RvKHByb3RvLnByb2R1Y3QpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5UYXhSdWxlVGF4UnVsZUVudGl0eUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVyICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmN1c3RvbWVyICE9PSBudWxsKSB7dG9SZXR1cm5bJ2N1c3RvbWVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmN1c3RvbWVyID8gKHRoaXMuY3VzdG9tZXIgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuY3VzdG9tZXI7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvZHVjdCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5wcm9kdWN0ICE9PSBudWxsKSB7dG9SZXR1cm5bJ3Byb2R1Y3QnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMucHJvZHVjdCA/ICh0aGlzLnByb2R1Y3QgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMucHJvZHVjdDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUYXhSdWxlUHJvZHVjdCBpbXBsZW1lbnRzIGkuVGF4UnVsZVByb2R1Y3RJbnRlcmZhY2Uge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBpZGVudGlmaWVyOiBUYXhSdWxlUHJvZHVjdFByb2R1Y3RJZGVudGlmaWVyO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVGF4UnVsZVByb2R1Y3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBUYXhSdWxlUHJvZHVjdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pZGVudGlmaWVyKSB7bS5pZGVudGlmaWVyID0gVGF4UnVsZVByb2R1Y3RQcm9kdWN0SWRlbnRpZmllci5mcm9tUHJvdG8ocHJvdG8uaWRlbnRpZmllcik7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlRheFJ1bGVQcm9kdWN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubmFtZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbmFtZSddID0gdGhpcy5uYW1lO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkZW50aWZpZXIgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaWRlbnRpZmllciAhPT0gbnVsbCkge3RvUmV0dXJuWydpZGVudGlmaWVyJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmlkZW50aWZpZXIgPyAodGhpcy5pZGVudGlmaWVyIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmlkZW50aWZpZXI7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG4iXX0=
@@ -5,7 +5,7 @@
5
5
  // API Service.
6
6
  // *********************************
7
7
  import { Injectable } from '@angular/core';
8
- import { ArchiveTaxRequest, BulkReplaceTaxRulesRequest, BulkReplaceTaxRulesResponse, CalculateLineItemTaxesRequest, CalculateLineItemTaxesResponse, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, CreateTaxResponse, DeleteTaxRuleRequest, GetMultiTaxRequest, GetMultiTaxResponse, GetTaxRuleRequest, GetTaxRuleResponse, ListTaxRequest, ListTaxResponse, ListTaxRulesRequest, ListTaxRulesResponse, ReplaceTaxRuleRequest, ReplaceTaxRuleResponse, UpdateTaxRequest, } from './objects/';
8
+ import { ArchiveTaxRequest, BulkReplaceTaxRulesRequest, BulkReplaceTaxRulesResponse, CalculateLineItemTaxesRequest, CalculateLineItemTaxesResponse, CalculateTaxRequest, CalculateTaxResponse, CreateTaxRequest, CreateTaxResponse, DeleteTaxRuleRequest, GetMultiTaxRequest, GetMultiTaxResponse, GetTaxProviderRequest, GetTaxProviderResponse, GetTaxRuleRequest, GetTaxRuleResponse, ListTaxRequest, ListTaxResponse, ListTaxRulesRequest, ListTaxRulesResponse, ReplaceTaxRuleRequest, ReplaceTaxRuleResponse, UpdateTaxRequest, } from './objects/';
9
9
  import { HttpHeaders, HttpClient } from '@angular/common/http';
10
10
  import { inject } from '@angular/core';
11
11
  import { HostService } from '../_generated/host.service';
@@ -82,6 +82,11 @@ export class TaxApiService {
82
82
  const request = (r.toApiJson) ? r : new DeleteTaxRuleRequest(r);
83
83
  return this.http.post(this._host + "/billing.v1.TaxService/DeleteTaxRule", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
84
84
  }
85
+ getTaxProvider(r) {
86
+ const request = (r.toApiJson) ? r : new GetTaxProviderRequest(r);
87
+ return this.http.post(this._host + "/billing.v1.TaxService/GetTaxProvider", request.toApiJson(), this.apiOptions())
88
+ .pipe(map(resp => GetTaxProviderResponse.fromProto(resp)));
89
+ }
85
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TaxApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
86
91
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TaxApiService, providedIn: 'root' }); }
87
92
  }
@@ -89,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
89
94
  type: Injectable,
90
95
  args: [{ providedIn: 'root' }]
91
96
  }] });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYmlsbGluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvdGF4LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsZ0JBQWdCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDO0FBd0JwQixPQUFPLEVBQUMsV0FBVyxFQUFFLFVBQVUsRUFBZSxNQUFNLHNCQUFzQixDQUFDO0FBQzNFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBRXZELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFHbkMsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFFcUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbEMsU0FBSSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxVQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxjQUFj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IGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgICAgICBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdCxcbiAgICAgICAgQnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlLFxuICAgICAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCxcbiAgICAgICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlLFxuICAgICAgICBDYWxjdWxhdGVUYXhSZXF1ZXN0LFxuICAgICAgICBDYWxjdWxhdGVUYXhSZXNwb25zZSxcbiAgICAgICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlVGF4UmVzcG9uc2UsXG4gICAgICAgIERlbGV0ZVRheFJ1bGVSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgICAgIEdldFRheFJ1bGVSZXF1ZXN0LFxuICAgICAgICBHZXRUYXhSdWxlUmVzcG9uc2UsXG4gICAgICAgIExpc3RUYXhSZXF1ZXN0LFxuICAgICAgICBMaXN0VGF4UmVzcG9uc2UsXG4gICAgICAgIExpc3RUYXhSdWxlc1JlcXVlc3QsXG4gICAgICAgIExpc3RUYXhSdWxlc1Jlc3BvbnNlLFxuICAgICAgICBSZXBsYWNlVGF4UnVsZVJlcXVlc3QsXG4gICAgICAgIFJlcGxhY2VUYXhSdWxlUmVzcG9uc2UsXG4gICAgICAgIFVwZGF0ZVRheFJlcXVlc3QsXG59IGZyb20gJy4vb2JqZWN0cy8nO1xuaW1wb3J0IHtcbiAgICAgICAgQXJjaGl2ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBDcmVhdGVUYXhSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgRGVsZXRlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlUYXhSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgR2V0VGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFRheFJ1bGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgTGlzdFRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgTGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFJlcGxhY2VUYXhSdWxlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgUmVwbGFjZVRheFJ1bGVSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgVXBkYXRlVGF4UmVxdWVzdEludGVyZmFjZSxcbn0gZnJvbSAnLi9pbnRlcmZhY2VzLyc7XG5pbXBvcnQge0h0dHBIZWFkZXJzLCBIdHRwQ2xpZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7aW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SG9zdFNlcnZpY2V9IGZyb20gJy4uL19nZW5lcmF0ZWQvaG9zdC5zZXJ2aWNlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBUYXhBcGlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGhvc3RTZXJ2aWNlID0gaW5qZWN0KEhvc3RTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gICAgcHJpdmF0ZSBfaG9zdCA9IHRoaXMuaG9zdFNlcnZpY2UuaG9zdFdpdGhTY2hlbWU7XG5cbiAgICBwcml2YXRlIGFwaU9wdGlvbnMoKToge2hlYWRlcnM6IEh0dHBIZWFkZXJzLCB3aXRoQ3JlZGVudGlhbHM6IGJvb2xlYW59IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IG5ldyBIdHRwSGVhZGVycyh7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB3aXRoQ3JlZGVudGlhbHM6IHRydWVcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjYWxjdWxhdGUocjogQ2FsY3VsYXRlVGF4UmVxdWVzdCB8IENhbGN1bGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENhbGN1bGF0ZVRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDYWxjdWxhdGVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbGN1bGF0ZVRheFJlcXVlc3Q+cikgOiBuZXcgQ2FsY3VsYXRlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhbGN1bGF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NhbGN1bGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENhbGN1bGF0ZVRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGNhbGN1bGF0ZUxpbmVJdGVtcyhyOiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCB8IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0PnIpIDogbmV3IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NhbGN1bGF0ZUxpbmVJdGVtc1wiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjcmVhdGUocjogQ3JlYXRlVGF4UmVxdWVzdCB8IENyZWF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPENyZWF0ZVRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDcmVhdGVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPENyZWF0ZVRheFJlcXVlc3Q+cikgOiBuZXcgQ3JlYXRlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENyZWF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0NyZWF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IENyZWF0ZVRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldE11bHRpKHI6IEdldE11bHRpVGF4UmVxdWVzdCB8IEdldE11bHRpVGF4UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0TXVsdGlUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8R2V0TXVsdGlUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldE11bHRpVGF4UmVxdWVzdD5yKSA6IG5ldyBHZXRNdWx0aVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxHZXRNdWx0aVRheFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0dldE11bHRpXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0TXVsdGlUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICB1cGRhdGUocjogVXBkYXRlVGF4UmVxdWVzdCB8IFVwZGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8VXBkYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxVcGRhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IFVwZGF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL1VwZGF0ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgbGlzdChyOiBMaXN0VGF4UmVxdWVzdCB8IExpc3RUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0VGF4UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPExpc3RUYXhSZXF1ZXN0PnIpIDogbmV3IExpc3RUYXhSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdFRheFJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0xpc3RcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0VGF4UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgYXJjaGl2ZShyOiBBcmNoaXZlVGF4UmVxdWVzdCB8IEFyY2hpdmVUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEFyY2hpdmVUYXhSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEFyY2hpdmVUYXhSZXF1ZXN0PnIpIDogbmV3IEFyY2hpdmVUYXhSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9BcmNoaXZlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICByZXBsYWNlVGF4UnVsZShyOiBSZXBsYWNlVGF4UnVsZVJlcXVlc3QgfCBSZXBsYWNlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPFJlcGxhY2VUYXhSdWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFJlcGxhY2VUYXhSdWxlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxSZXBsYWNlVGF4UnVsZVJlcXVlc3Q+cikgOiBuZXcgUmVwbGFjZVRheFJ1bGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8UmVwbGFjZVRheFJ1bGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9SZXBsYWNlVGF4UnVsZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IFJlcGxhY2VUYXhSdWxlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgYnVsa1JlcGxhY2VUYXhSdWxlcyhyOiBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdCB8IEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0PnIpIDogbmV3IEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8QnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0J1bGtSZXBsYWNlVGF4UnVsZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBCdWxrUmVwbGFjZVRheFJ1bGVzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZ2V0VGF4UnVsZShyOiBHZXRUYXhSdWxlUmVxdWVzdCB8IEdldFRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxHZXRUYXhSdWxlUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFRheFJ1bGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPEdldFRheFJ1bGVSZXF1ZXN0PnIpIDogbmV3IEdldFRheFJ1bGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0VGF4UnVsZVJlc3BvbnNlSW50ZXJmYWNlPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0dldFRheFJ1bGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBHZXRUYXhSdWxlUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgbGlzdFRheFJ1bGVzKHI6IExpc3RUYXhSdWxlc1JlcXVlc3QgfCBMaXN0VGF4UnVsZXNSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxMaXN0VGF4UnVsZXNSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8TGlzdFRheFJ1bGVzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0VGF4UnVsZXNSZXF1ZXN0PnIpIDogbmV3IExpc3RUYXhSdWxlc1JlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxMaXN0VGF4UnVsZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9MaXN0VGF4UnVsZXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBMaXN0VGF4UnVsZXNSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBkZWxldGVUYXhSdWxlKHI6IERlbGV0ZVRheFJ1bGVSZXF1ZXN0IHwgRGVsZXRlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEh0dHBSZXNwb25zZTxudWxsPj4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8RGVsZXRlVGF4UnVsZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8RGVsZXRlVGF4UnVsZVJlcXVlc3Q+cikgOiBuZXcgRGVsZXRlVGF4UnVsZVJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxudWxsPih0aGlzLl9ob3N0ICsgXCIvYmlsbGluZy52MS5UYXhTZXJ2aWNlL0RlbGV0ZVRheFJ1bGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIFxufVxuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LmFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vYmlsbGluZ19zZGsvc3JjL2xpYi9faW50ZXJuYWwvdGF4LmFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQztBQUNwQywyQkFBMkI7QUFDM0IsZ0JBQWdCO0FBQ2hCLEVBQUU7QUFDRixlQUFlO0FBQ2Ysb0NBQW9DO0FBQ3BDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNDLGlCQUFpQixFQUNqQiwwQkFBMEIsRUFDMUIsMkJBQTJCLEVBQzNCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixzQkFBc0IsRUFDdEIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixnQkFBZ0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUEwQnBCLE9BQU8sRUFBQyxXQUFXLEVBQUUsVUFBVSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFDM0UsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNyQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFdkQsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDOztBQUduQyxNQUFNLE9BQU8sYUFBYTtJQUQxQjtRQUVxQixnQkFBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNsQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25DLFVBQUssR0FB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QUMsQ0FBQztRQUNuSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFrQyxJQUFJLENBQUMsS0FBSyxHQUFHLHVDQUF1QyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDL0ksSUFBSSxDQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUN0RCxDQUFDO0lBQ1YsQ0FBQzs4R0EvRlEsYUFBYTtrSEFBYixhQUFhLGNBREQsTUFBTTs7MkZBQ2xCLGFBQWE7a0JBRHpCLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4vLyBDb2RlIGdlbmVyYXRlZCBieSBzZGtnZW5cbi8vIERPIE5PVCBFRElUIS5cbi8vXG4vLyBBUEkgU2VydmljZS5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgICAgICBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdCxcbiAgICAgICAgQnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlLFxuICAgICAgICBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdCxcbiAgICAgICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlLFxuICAgICAgICBDYWxjdWxhdGVUYXhSZXF1ZXN0LFxuICAgICAgICBDYWxjdWxhdGVUYXhSZXNwb25zZSxcbiAgICAgICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICAgICAgQ3JlYXRlVGF4UmVzcG9uc2UsXG4gICAgICAgIERlbGV0ZVRheFJ1bGVSZXF1ZXN0LFxuICAgICAgICBHZXRNdWx0aVRheFJlcXVlc3QsXG4gICAgICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgICAgIEdldFRheFByb3ZpZGVyUmVxdWVzdCxcbiAgICAgICAgR2V0VGF4UHJvdmlkZXJSZXNwb25zZSxcbiAgICAgICAgR2V0VGF4UnVsZVJlcXVlc3QsXG4gICAgICAgIEdldFRheFJ1bGVSZXNwb25zZSxcbiAgICAgICAgTGlzdFRheFJlcXVlc3QsXG4gICAgICAgIExpc3RUYXhSZXNwb25zZSxcbiAgICAgICAgTGlzdFRheFJ1bGVzUmVxdWVzdCxcbiAgICAgICAgTGlzdFRheFJ1bGVzUmVzcG9uc2UsXG4gICAgICAgIFJlcGxhY2VUYXhSdWxlUmVxdWVzdCxcbiAgICAgICAgUmVwbGFjZVRheFJ1bGVSZXNwb25zZSxcbiAgICAgICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi9vYmplY3RzLyc7XG5pbXBvcnQge1xuICAgICAgICBBcmNoaXZlVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQnVsa1JlcGxhY2VUYXhSdWxlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIENyZWF0ZVRheFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBEZWxldGVUYXhSdWxlUmVxdWVzdEludGVyZmFjZSxcbiAgICAgICAgR2V0TXVsdGlUYXhSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRNdWx0aVRheFJlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBHZXRUYXhQcm92aWRlclJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIEdldFRheFByb3ZpZGVyUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIEdldFRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBHZXRUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSZXF1ZXN0SW50ZXJmYWNlLFxuICAgICAgICBMaXN0VGF4UmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSdWxlc1JlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIExpc3RUYXhSdWxlc1Jlc3BvbnNlSW50ZXJmYWNlLFxuICAgICAgICBSZXBsYWNlVGF4UnVsZVJlcXVlc3RJbnRlcmZhY2UsXG4gICAgICAgIFJlcGxhY2VUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2UsXG4gICAgICAgIFVwZGF0ZVRheFJlcXVlc3RJbnRlcmZhY2UsXG59IGZyb20gJy4vaW50ZXJmYWNlcy8nO1xuaW1wb3J0IHtIdHRwSGVhZGVycywgSHR0cENsaWVudCwgSHR0cFJlc3BvbnNlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge2luamVjdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuLi9fZ2VuZXJhdGVkL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHttYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgVGF4QXBpU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBob3N0U2VydmljZSA9IGluamVjdChIb3N0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuICAgIHByaXZhdGUgX2hvc3QgPSB0aGlzLmhvc3RTZXJ2aWNlLmhvc3RXaXRoU2NoZW1lO1xuXG4gICAgcHJpdmF0ZSBhcGlPcHRpb25zKCk6IHtoZWFkZXJzOiBIdHRwSGVhZGVycywgd2l0aENyZWRlbnRpYWxzOiBib29sZWFufSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoZWFkZXJzOiBuZXcgSHR0cEhlYWRlcnMoe1xuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbidcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlKHI6IENhbGN1bGF0ZVRheFJlcXVlc3QgfCBDYWxjdWxhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDYWxjdWxhdGVUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q2FsY3VsYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDYWxjdWxhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IENhbGN1bGF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDYWxjdWxhdGVUYXhSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9DYWxjdWxhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDYWxjdWxhdGVUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBjYWxjdWxhdGVMaW5lSXRlbXMocjogQ2FsY3VsYXRlTGluZUl0ZW1UYXhlc1JlcXVlc3QgfCBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q2FsY3VsYXRlTGluZUl0ZW1UYXhlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdD5yKSA6IG5ldyBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENhbGN1bGF0ZUxpbmVJdGVtVGF4ZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9DYWxjdWxhdGVMaW5lSXRlbXNcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDYWxjdWxhdGVMaW5lSXRlbVRheGVzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgY3JlYXRlKHI6IENyZWF0ZVRheFJlcXVlc3QgfCBDcmVhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxDcmVhdGVUYXhSZXNwb25zZT4ge1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0gKCg8Q3JlYXRlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxDcmVhdGVUYXhSZXF1ZXN0PnIpIDogbmV3IENyZWF0ZVRheFJlcXVlc3Qocik7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDcmVhdGVUYXhSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9DcmVhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBDcmVhdGVUYXhSZXNwb25zZS5mcm9tUHJvdG8ocmVzcCkpXG4gICAgICAgICAgICApO1xuICAgIH1cbiAgICBnZXRNdWx0aShyOiBHZXRNdWx0aVRheFJlcXVlc3QgfCBHZXRNdWx0aVRheFJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldE11bHRpVGF4UmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldE11bHRpVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRNdWx0aVRheFJlcXVlc3Q+cikgOiBuZXcgR2V0TXVsdGlUYXhSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0TXVsdGlUYXhSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9HZXRNdWx0aVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldE11bHRpVGF4UmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgdXBkYXRlKHI6IFVwZGF0ZVRheFJlcXVlc3QgfCBVcGRhdGVUYXhSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPFVwZGF0ZVRheFJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8VXBkYXRlVGF4UmVxdWVzdD5yKSA6IG5ldyBVcGRhdGVUYXhSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9VcGRhdGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgey4uLnRoaXMuYXBpT3B0aW9ucygpLCBvYnNlcnZlOiAncmVzcG9uc2UnfSk7XG4gICAgfVxuICAgIGxpc3QocjogTGlzdFRheFJlcXVlc3QgfCBMaXN0VGF4UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFRheFJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxMaXN0VGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxMaXN0VGF4UmVxdWVzdD5yKSA6IG5ldyBMaXN0VGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PExpc3RUYXhSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9MaXN0XCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFRheFJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGFyY2hpdmUocjogQXJjaGl2ZVRheFJlcXVlc3QgfCBBcmNoaXZlVGF4UmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8SHR0cFJlc3BvbnNlPG51bGw+PiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxBcmNoaXZlVGF4UmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxBcmNoaXZlVGF4UmVxdWVzdD5yKSA6IG5ldyBBcmNoaXZlVGF4UmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PG51bGw+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvQXJjaGl2ZVwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB7Li4udGhpcy5hcGlPcHRpb25zKCksIG9ic2VydmU6ICdyZXNwb25zZSd9KTtcbiAgICB9XG4gICAgcmVwbGFjZVRheFJ1bGUocjogUmVwbGFjZVRheFJ1bGVSZXF1ZXN0IHwgUmVwbGFjZVRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxSZXBsYWNlVGF4UnVsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxSZXBsYWNlVGF4UnVsZVJlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8UmVwbGFjZVRheFJ1bGVSZXF1ZXN0PnIpIDogbmV3IFJlcGxhY2VUYXhSdWxlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PFJlcGxhY2VUYXhSdWxlUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvUmVwbGFjZVRheFJ1bGVcIiwgcmVxdWVzdC50b0FwaUpzb24oKSwgdGhpcy5hcGlPcHRpb25zKCkpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAocmVzcCA9PiBSZXBsYWNlVGF4UnVsZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGJ1bGtSZXBsYWNlVGF4UnVsZXMocjogQnVsa1JlcGxhY2VUYXhSdWxlc1JlcXVlc3QgfCBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8QnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdD5yKSA6IG5ldyBCdWxrUmVwbGFjZVRheFJ1bGVzUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEJ1bGtSZXBsYWNlVGF4UnVsZXNSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9CdWxrUmVwbGFjZVRheFJ1bGVzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gQnVsa1JlcGxhY2VUYXhSdWxlc1Jlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGdldFRheFJ1bGUocjogR2V0VGF4UnVsZVJlcXVlc3QgfCBHZXRUYXhSdWxlUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8R2V0VGF4UnVsZVJlc3BvbnNlPiB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3QgPSAoKDxHZXRUYXhSdWxlUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRUYXhSdWxlUmVxdWVzdD5yKSA6IG5ldyBHZXRUYXhSdWxlUmVxdWVzdChyKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PEdldFRheFJ1bGVSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9HZXRUYXhSdWxlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gR2V0VGF4UnVsZVJlc3BvbnNlLmZyb21Qcm90byhyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuICAgIGxpc3RUYXhSdWxlcyhyOiBMaXN0VGF4UnVsZXNSZXF1ZXN0IHwgTGlzdFRheFJ1bGVzUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8TGlzdFRheFJ1bGVzUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPExpc3RUYXhSdWxlc1JlcXVlc3Q+cikudG9BcGlKc29uKSA/ICg8TGlzdFRheFJ1bGVzUmVxdWVzdD5yKSA6IG5ldyBMaXN0VGF4UnVsZXNSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8TGlzdFRheFJ1bGVzUmVzcG9uc2VJbnRlcmZhY2U+KHRoaXMuX2hvc3QgKyBcIi9iaWxsaW5nLnYxLlRheFNlcnZpY2UvTGlzdFRheFJ1bGVzXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHRoaXMuYXBpT3B0aW9ucygpKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHJlc3AgPT4gTGlzdFRheFJ1bGVzUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgZGVsZXRlVGF4UnVsZShyOiBEZWxldGVUYXhSdWxlUmVxdWVzdCB8IERlbGV0ZVRheFJ1bGVSZXF1ZXN0SW50ZXJmYWNlKTogT2JzZXJ2YWJsZTxIdHRwUmVzcG9uc2U8bnVsbD4+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPERlbGV0ZVRheFJ1bGVSZXF1ZXN0PnIpLnRvQXBpSnNvbikgPyAoPERlbGV0ZVRheFJ1bGVSZXF1ZXN0PnIpIDogbmV3IERlbGV0ZVRheFJ1bGVSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8bnVsbD4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9EZWxldGVUYXhSdWxlXCIsIHJlcXVlc3QudG9BcGlKc29uKCksIHsuLi50aGlzLmFwaU9wdGlvbnMoKSwgb2JzZXJ2ZTogJ3Jlc3BvbnNlJ30pO1xuICAgIH1cbiAgICBnZXRUYXhQcm92aWRlcihyOiBHZXRUYXhQcm92aWRlclJlcXVlc3QgfCBHZXRUYXhQcm92aWRlclJlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPEdldFRheFByb3ZpZGVyUmVzcG9uc2U+IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9ICgoPEdldFRheFByb3ZpZGVyUmVxdWVzdD5yKS50b0FwaUpzb24pID8gKDxHZXRUYXhQcm92aWRlclJlcXVlc3Q+cikgOiBuZXcgR2V0VGF4UHJvdmlkZXJSZXF1ZXN0KHIpO1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8R2V0VGF4UHJvdmlkZXJSZXNwb25zZUludGVyZmFjZT4odGhpcy5faG9zdCArIFwiL2JpbGxpbmcudjEuVGF4U2VydmljZS9HZXRUYXhQcm92aWRlclwiLCByZXF1ZXN0LnRvQXBpSnNvbigpLCB0aGlzLmFwaU9wdGlvbnMoKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcChyZXNwID0+IEdldFRheFByb3ZpZGVyUmVzcG9uc2UuZnJvbVByb3RvKHJlc3ApKVxuICAgICAgICAgICAgKTtcbiAgICB9XG4gICAgXG59XG4iXX0=
@@ -667,6 +667,12 @@ var SalesInvoiceType;
667
667
  //
668
668
  // Enums.
669
669
  // *********************************
670
+ var TaxProviderType;
671
+ (function (TaxProviderType) {
672
+ TaxProviderType[TaxProviderType["TAX_PROVIDER_TYPE_UNSET"] = 0] = "TAX_PROVIDER_TYPE_UNSET";
673
+ TaxProviderType[TaxProviderType["TAX_PROVIDER_TYPE_INTERNAL"] = 1] = "TAX_PROVIDER_TYPE_INTERNAL";
674
+ TaxProviderType[TaxProviderType["TAX_PROVIDER_TYPE_AVALARA"] = 2] = "TAX_PROVIDER_TYPE_AVALARA";
675
+ })(TaxProviderType || (TaxProviderType = {}));
670
676
  var TaxRuleEntityType;
671
677
  (function (TaxRuleEntityType) {
672
678
  TaxRuleEntityType[TaxRuleEntityType["TAX_RULE_ENTITY_TYPE_UNSET"] = 0] = "TAX_RULE_ENTITY_TYPE_UNSET";
@@ -7257,6 +7263,52 @@ class GetInvoiceResponse {
7257
7263
  return toReturn;
7258
7264
  }
7259
7265
  }
7266
+ class GetInvoiceWithCalculatedTaxesRequest {
7267
+ static fromProto(proto) {
7268
+ let m = new GetInvoiceWithCalculatedTaxesRequest();
7269
+ m = Object.assign(m, proto);
7270
+ return m;
7271
+ }
7272
+ constructor(kwargs) {
7273
+ if (!kwargs) {
7274
+ return;
7275
+ }
7276
+ Object.assign(this, kwargs);
7277
+ }
7278
+ toApiJson() {
7279
+ const toReturn = {};
7280
+ if (typeof this.merchantId !== 'undefined') {
7281
+ toReturn['merchantId'] = this.merchantId;
7282
+ }
7283
+ if (typeof this.invoiceId !== 'undefined') {
7284
+ toReturn['invoiceId'] = this.invoiceId;
7285
+ }
7286
+ return toReturn;
7287
+ }
7288
+ }
7289
+ class GetInvoiceWithCalculatedTaxesResponse {
7290
+ static fromProto(proto) {
7291
+ let m = new GetInvoiceWithCalculatedTaxesResponse();
7292
+ m = Object.assign(m, proto);
7293
+ if (proto.invoice) {
7294
+ m.invoice = Invoice.fromProto(proto.invoice);
7295
+ }
7296
+ return m;
7297
+ }
7298
+ constructor(kwargs) {
7299
+ if (!kwargs) {
7300
+ return;
7301
+ }
7302
+ Object.assign(this, kwargs);
7303
+ }
7304
+ toApiJson() {
7305
+ const toReturn = {};
7306
+ if (typeof this.invoice !== 'undefined' && this.invoice !== null) {
7307
+ toReturn['invoice'] = 'toApiJson' in this.invoice ? this.invoice.toApiJson() : this.invoice;
7308
+ }
7309
+ return toReturn;
7310
+ }
7311
+ }
7260
7312
  class GetUpcomingInvoicePreviewRequest {
7261
7313
  static fromProto(proto) {
7262
7314
  let m = new GetUpcomingInvoicePreviewRequest();
@@ -14021,6 +14073,49 @@ class ListTaxRulesRequestFilters {
14021
14073
  return toReturn;
14022
14074
  }
14023
14075
  }
14076
+ class GetTaxProviderRequest {
14077
+ static fromProto(proto) {
14078
+ let m = new GetTaxProviderRequest();
14079
+ m = Object.assign(m, proto);
14080
+ return m;
14081
+ }
14082
+ constructor(kwargs) {
14083
+ if (!kwargs) {
14084
+ return;
14085
+ }
14086
+ Object.assign(this, kwargs);
14087
+ }
14088
+ toApiJson() {
14089
+ const toReturn = {};
14090
+ if (typeof this.merchantId !== 'undefined') {
14091
+ toReturn['merchantId'] = this.merchantId;
14092
+ }
14093
+ return toReturn;
14094
+ }
14095
+ }
14096
+ class GetTaxProviderResponse {
14097
+ static fromProto(proto) {
14098
+ let m = new GetTaxProviderResponse();
14099
+ m = Object.assign(m, proto);
14100
+ if (proto.taxProviderType) {
14101
+ m.taxProviderType = enumStringToValue$9(TaxProviderType, proto.taxProviderType);
14102
+ }
14103
+ return m;
14104
+ }
14105
+ constructor(kwargs) {
14106
+ if (!kwargs) {
14107
+ return;
14108
+ }
14109
+ Object.assign(this, kwargs);
14110
+ }
14111
+ toApiJson() {
14112
+ const toReturn = {};
14113
+ if (typeof this.taxProviderType !== 'undefined') {
14114
+ toReturn['taxProviderType'] = this.taxProviderType;
14115
+ }
14116
+ return toReturn;
14117
+ }
14118
+ }
14024
14119
  class GetTaxRuleRequest {
14025
14120
  static fromProto(proto) {
14026
14121
  let m = new GetTaxRuleRequest();
@@ -15952,6 +16047,9 @@ class GenerateVendorReportRequest {
15952
16047
  if (typeof this.markAsApproved !== 'undefined') {
15953
16048
  toReturn['markAsApproved'] = this.markAsApproved;
15954
16049
  }
16050
+ if (typeof this.vendorMerchantId !== 'undefined') {
16051
+ toReturn['vendorMerchantId'] = this.vendorMerchantId;
16052
+ }
15955
16053
  return toReturn;
15956
16054
  }
15957
16055
  }
@@ -17437,6 +17535,11 @@ class InvoiceApiService {
17437
17535
  return this.http.post(this._host + "/billing.v1.InvoiceService/GetUpcomingInvoicePreview", request.toApiJson(), this.apiOptions())
17438
17536
  .pipe(map(resp => GetUpcomingInvoicePreviewResponse.fromProto(resp)));
17439
17537
  }
17538
+ getWithCalculatedTaxes(r) {
17539
+ const request = (r.toApiJson) ? r : new GetInvoiceWithCalculatedTaxesRequest(r);
17540
+ return this.http.post(this._host + "/billing.v1.InvoiceService/GetWithCalculatedTaxes", request.toApiJson(), this.apiOptions())
17541
+ .pipe(map(resp => GetInvoiceWithCalculatedTaxesResponse.fromProto(resp)));
17542
+ }
17440
17543
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17441
17544
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: InvoiceApiService, providedIn: 'root' }); }
17442
17545
  }
@@ -18322,6 +18425,11 @@ class TaxApiService {
18322
18425
  const request = (r.toApiJson) ? r : new DeleteTaxRuleRequest(r);
18323
18426
  return this.http.post(this._host + "/billing.v1.TaxService/DeleteTaxRule", request.toApiJson(), { ...this.apiOptions(), observe: 'response' });
18324
18427
  }
18428
+ getTaxProvider(r) {
18429
+ const request = (r.toApiJson) ? r : new GetTaxProviderRequest(r);
18430
+ return this.http.post(this._host + "/billing.v1.TaxService/GetTaxProvider", request.toApiJson(), this.apiOptions())
18431
+ .pipe(map(resp => GetTaxProviderResponse.fromProto(resp)));
18432
+ }
18325
18433
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TaxApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
18326
18434
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: TaxApiService, providedIn: 'root' }); }
18327
18435
  }
@@ -18382,5 +18490,5 @@ const usdConversionRate = 1.4;
18382
18490
  * Generated bundle index. Do not edit.
18383
18491
  */
18384
18492
 
18385
- export { Access, AccountBalance, AddBundleRequest, AddBundleResponse, AddCreditRequest, AddLineItemRequest, AddLineItemResponse, Adjustment, AlignmentSubscription, AppliedBundle, AppliedBundleItem, AppliedCredit, AppliedCreditNote, AppliedDiscount, AppliedFee, AppliedReferenceType, AppliedTaxRate, AppliedTo, ArchiveTaxRequest, Balance, BalanceAmount, BankAccount, BankReconciliationApiService, BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, BillableItem, BillableItemCustomerAddress, BillingApiService, BillingStrategy, BulkReplaceTaxRulesRequest, BulkReplaceTaxRulesResponse, Bundle, BundleApiService, BundleItem, BundleItemPrice, BundlePricing, BundlePricingPriceAndFrequency, CalculateCreditNoteRequest, CalculateCreditNoteResponse, CalculateLineItemTaxesRequest, CalculateLineItemTaxesRequestLineItem, CalculateLineItemTaxesResponse, CalculateLineItemTaxesResponseLineItemTaxes, CalculateTaxRequest, CalculateTaxResponse, CanBillItemRequest, CanCreateSubscriptionsRequest, CanCreateSubscriptionsRequestSkusEntry, CanCreateSubscriptionsRequestSubscriptionItem, CanCreateSubscriptionsResponse, CancelRetailBillingRequest, CardType, ChangeCustomUnitPriceRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, ChargeInvoiceRequest, ChargeSalesInvoiceRequest, CloseRetailDisputeRequest, CollectionMethod, Commitment, ComponentPricing, ConfigureRetailPaymentProviderRequest, ConfigureRetailPaymentProviderResponse, ConfirmRetailPaymentRequest, ConnectStripeAccountRequest, ConnectStripeAccountResponse, Consumer, Contract, ContractApiService, ContractDocument, ContractDocumentApiService, ContractSubscriptionStatus, CreateContractRequest, CreateContractResponse, CreateCreditNoteRequest, CreateCreditNoteResponse, CreateDiscountRequest, CreateDiscountResponse, CreateInvoiceRequest, CreateInvoiceResponse, CreateMerchantRequest, CreateMerchantRequestIncludeInFinancialRecords, CreateMerchantServicesReportRun, CreateMeteredComponentRequest, CreatePaymentCardRequest, CreatePaymentLinkRequest, CreatePaymentLinkResponse, CreatePricingPlanProductRequest, CreatePricingPlanProductRequestPricingEntry, CreatePricingPlanProductResponse, CreatePricingPlanRequest, CreatePricingPlanResponse, CreateProductRequest, CreateRefundRequest, CreateSalesCreditNoteRequest, CreateStripeExternalAccountRequest, CreateSubscriptionRequest, CreateSubscriptionResponse, CreateSubscriptionsRequest, CreateSubscriptionsResponse, CreateTaxRequest, CreateTaxResponse, CreateUsageRequest, CreditApiService, CreditBalance, CreditNote, CreditNoteApiService, CreditNoteReason, CreditNoteType, CreditType, Currency, CustomerSummary, DateRange, DefaultCustomerConfiguration, DeleteBankAccountRequest, DeleteBillableItemRequest, DeleteContractDocumentRequest, DeleteInvoiceRequest, DeleteLineItemRequest, DeleteLineItemResponse, DeletePaymentCardRequest, DeletePricingPlanProductRequest, DeleteProductRequest, DeleteRecurringInvoiceRequest, DeleteRetailPricingRequest, DeleteTaxRuleRequest, Discount, DiscountApiService, DiscountType, Dispute, DisputeEvidence, DisputeEvidenceDetails, DisputeStatus, DuplicateInvoiceRequest, DuplicateInvoiceResponse, EntityType, ExpireBillableItemRequest, ExpireDiscountRequest, ExportResponse, ExportSubscriptionsRequest, Fee, FeeAmountType, FeeType, FieldMask, File, Frequency, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetBalanceRequest, GetBalanceResponse, GetBillableItemRequest, GetBillableItemResponse, GetContractRequest, GetContractResponse, GetCreditNoteRequest, GetCreditNoteResponse, GetInvoiceRequest, GetInvoiceResponse, GetMerchantRequest, GetMerchantResponse, GetMerchantServicesReportRun, GetMerchantWholesaleCurrencyRequest, GetMerchantWholesaleCurrencyResponse, GetMultiBundleRequest, GetMultiBundleResponse, GetMultiBundleResponseBundlesEntry, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiBundleRetailPricingResponsePricesEntry, GetMultiContractsRequest, GetMultiContractsResponse, GetMultiContractsResponseContractsEntry, GetMultiCreditNoteRequest, GetMultiCreditNoteResponse, GetMultiCustomerSummariesRequest, GetMultiCustomerSummariesResponse, GetMultiPricingPlanProductRequest, GetMultiPricingPlanProductResponse, GetMultiPricingPlanRequest, GetMultiPricingPlanResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiProductPricingResponseProductPricesEntry, GetMultiProductRequest, GetMultiProductResponse, GetMultiProductResponseProductsEntry, GetMultiRetailConfigurationsRequest, GetMultiRetailConfigurationsResponse, GetMultiRetailConfigurationsResponseRetailConfigurationsEntry, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiRetailPricingResponseProductPricesEntry, GetMultiSubscriptionRelationshipsRequest, GetMultiSubscriptionRelationshipsResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsRequestKey, GetMultiSubscriptionsResponse, GetMultiTaxRequest, GetMultiTaxResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetNextRetailInvoiceSequenceRequest, GetNextRetailInvoiceSequenceResponse, GetOutstandingBalanceRequest, GetOutstandingBalanceResponse, GetPayoutSummaryRequest, GetPayoutSummaryResponse, GetPricingPlanProductRequest, GetPricingPlanProductResponse, GetProductSummariesTotalRequest, GetProductSummariesTotalResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRecurringInvoiceRequest, GetRetailAccountBalanceRequest, GetRetailAccountBalanceResponse, GetRetailBalanceRequest, GetRetailBalanceResponse, GetRetailCustomerConfigurationRequest, GetRetailCustomerConfigurationResponse, GetRetailDisputeRequest, GetRetailDisputeResponse, GetRetailPaymentProviderRequest, GetRetailPaymentProviderResponse, GetRetailPaymentRequest, GetRetailPaymentResponse, GetRetailPayoutRequest, GetRetailPayoutResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetSalesInvoiceRequest, GetSalesInvoiceResponse, GetStatisticsRequest, GetStatisticsResponse, GetTaxRuleRequest, GetTaxRuleResponse, GetUpcomingInvoicePreviewRequest, GetUpcomingInvoicePreviewResponse, GetWholesaleComparisonRequest, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetWholesaleProviderPublicKeyRequest, GetWholesaleProviderPublicKeyResponse, HostService, Interval, Invoice, InvoiceApiService, InvoiceCustomerAddress, InvoiceItem, InvoiceStatus, Item, LastPaymentStatus, LineItem, ListBankAccountsRequest, ListBankAccountsResponse, ListBillableItemsRequest, ListBillableItemsRequestFilters, ListBillableItemsResponse, ListBundlesRequest, ListBundlesRequestFilters, ListBundlesResponse, ListContractDocumentsRequest, ListContractDocumentsRequestFilters, ListContractDocumentsResponse, ListContractsRequest, ListContractsResponse, ListCreditNotesRequest, ListCreditNotesRequestFilters, ListCreditNotesResponse, ListDiscountsRequest, ListDiscountsRequestFilters, ListDiscountsResponse, ListInvoicesRequest, ListInvoicesRequestFilters, ListInvoicesRequestFiltersDateFilter, ListInvoicesRequestFiltersDateFilterDateField, ListInvoicesResponse, ListMerchantBillingReportsRequest, ListMerchantBillingReportsResponse, ListPaymentCardsRequest, ListPaymentCardsResponse, ListPaymentMethodsRequest, ListPaymentMethodsResponse, ListPaymentRequest, ListPaymentRequestListPaymentFilters, ListPaymentResponse, ListPayoutsRequest, ListPayoutsRequestFilters, ListPayoutsResponse, ListPricingPlanProductsRequest, ListPricingPlanProductsRequestListPricingPlanProductsFilters, ListPricingPlanProductsResponse, ListProductSummariesRequest, ListProductSummariesResponse, ListProductsRequest, ListProductsRequestListProductsFilters, ListProductsResponse, ListPurchaseItemsRequest, ListPurchaseItemsRequestListPurchaseItemsFilters, ListPurchaseItemsResponse, ListPurchaseRequest, ListPurchaseRequestListPurchaseBillingStrategyFilter, ListPurchaseRequestListPurchaseFilters, ListPurchaseRequestState, ListPurchaseResponse, ListRecurringInvoicesFilters, ListRecurringInvoicesFiltersDateFilter, ListRecurringInvoicesFiltersDetailedInterval, ListRecurringInvoicesRequest, ListRecurringInvoicesResponse, ListRefundsRequest, ListRefundsResponse, ListRetailDisputesRequest, ListRetailDisputesRequestListRetailDisputesFilters, ListRetailDisputesResponse, ListRetailPaymentsRequest, ListRetailPaymentsRequestListRetailPaymentsFilters, ListRetailPaymentsResponse, ListRetailPayoutsRequest, ListRetailPayoutsResponse, ListRetailTransactionsRequest, ListRetailTransactionsRequestListRetailTransactionsFilters, ListRetailTransactionsResponse, ListSalesCreditNoteRequest, ListSalesCreditNoteRequestListSalesCreditNoteFilters, ListSalesCreditNoteResponse, ListSalesInvoiceRequest, ListSalesInvoiceRequestListSalesInvoiceFilters, ListSalesInvoiceResponse, ListSubscriptionRelationshipsRequest, ListSubscriptionRelationshipsRequestFilters, ListSubscriptionRelationshipsResponse, ListSubscriptionRetentionByGroupResponse, ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup, ListSubscriptionRetentionBySKUResponse, ListSubscriptionRetentionRequest, ListSubscriptionRetentionRequestFilters, ListSubscriptionsRequest, ListSubscriptionsRequestFilters, ListSubscriptionsResponse, ListTaxRequest, ListTaxRequestFilters, ListTaxResponse, ListTaxRulesRequest, ListTaxRulesRequestFilters, ListTaxRulesResponse, Merchant, MerchantApiService, MerchantReport, MerchantReportStatus, MerchantServicesReportRun, MerchantServicesReportRunStatus, MerchantServicesReportRunType, MerchantType, MeteredComponent, Month, Note, Origin, PagedRequestOptions, PagedResponseMetadata, PauseDunningRequest, PayInvoiceRequest, Payment, PaymentACHDebit, PaymentACSSDebit, PaymentAllocationType, PaymentApiService, PaymentCard, PaymentCardCARD_TYPE, PaymentCardFUNDING_TYPE, PaymentErrorCode, PaymentFacilitatorType, PaymentIntent, PaymentIntentStatus, PaymentLinkItem, PaymentMethod, PaymentMethodApiService, PaymentMethodType, PaymentPaymentAllocation, PaymentProcessor, PaymentSource, PaymentStatus, PaymentStatuses, Payout, PayoutStatus, PayoutType, PostSalesInvoiceRequest, PrepareRetailPaymentRequest, PrepareRetailPaymentRequestOrder, PrepareRetailPaymentResponse, Pricing, PricingApiService, PricingPlan, PricingPlanProduct, PricingPlanProductPricing, PricingPlanProductPricingEntry, PricingRule, PricingRuleType, Product, ProductApiService, ProductPrices, ProductPricing, ProductPricingRule, ProductPricingType, ProductSummary, ProductSummaryApiService, ProductSummaryBillingStrategy, ProductSummaryDiscount, ProductSummaryDiscountDiscountType, ProductSummaryProductType, ProductType, Purchase, PurchaseApiService, PurchaseItem, PurchaseStatus, ReconcilePayoutRequest, ReconcilePayoutResponse, RecurringInvoice, RecurringInvoiceApiService, RecurringInvoiceBundle, RecurringInvoiceCustomerAddress, RecurringInvoiceItem, RecurringInvoiceLineItem, RecurringInvoiceStatus, ReferenceType, Refund, RefundApiService, RefundReason, RefundRetailPaymentRequest, RefundRetailPaymentResponse, RefundStatus, RelationshipType, RemoveBundleRequest, RemoveBundleResponse, RenewalState, ReplaceSubscriptionPresetsRequest, ReplaceSubscriptionPresetsResponse, ReplaceSubscriptionRelationshipsRequest, ReplaceSubscriptionRelationshipsResponse, ReplaceTaxRuleRequest, ReplaceTaxRuleResponse, ResetContractPricingRequest, ResetPaymentFacilitatorRequest, ResumeDunningRequest, RetailConfiguration, RetailCustomerConfiguration, RetailCustomerConfigurationApiService, RetailPayment, RetailPaymentACHDetails, RetailPaymentACSSDetails, RetailPaymentCardDetails, RetailPaymentPaymentMethodDetailsType, RetailPaymentReferenceType, RetailPaymentsEnabledRequest, RetailPaymentsEnabledResponse, RetailPayout, RetailRefund, RetailRefundFailureReason, RetailRefundReason, RetailRefundStatus, RetailStatusRequest, RetailStatusResponse, RetailStatusResponseVerificationError, RetailStatusResponseVerificationRequirements, RetailTransaction, RetailTransactionType, RetentionMetrics, RetryPurchaseRequest, ReverseSubscriptionRequest, SalesCreditNote, SalesCreditNoteApiService, SalesCreditNoteStatus, SalesInvoice, SalesInvoiceApiService, SalesInvoiceStatus, SalesInvoiceType, SearchMerchantsRequest, SearchMerchantsRequestSortBy, SearchMerchantsResponse, SendCreditNoteRequest, SendInvoiceRequest, SendSalesInvoiceEmailRequest, SendSalesInvoiceReceiptEmailRequest, SetAutoBillableRequest, SetAutoChargeInvoicesRequest, SetAutoPostInvoicesRequest, SetDefaultBankAccountRequest, SetDefaultPaymentCardRequest, SetDefaultPaymentMethodRequest, SetHasAlternativePaymentMethodRequest, SetIncludeInFinancialRecordsRequest, SetNextRetailInvoiceSequenceRequest, SetRenewalStartRequest, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, SortDirection, Source, StartRevRecTemplateBackfillRequest, StopDunningRequest, SubmitEvidenceRequest, SubmitEvidenceRequestDisputeEvidence, SubscribeValidation, SubscribeValidationStatus, Subscription, SubscriptionPreset, SubscriptionProjectionFilter, SubscriptionRelationship, SubscriptionRelationshipApiService, SubscriptionStatus, TaxApiService, TaxRate, TaxRule, TaxRuleCustomer, TaxRuleCustomerCustomerAddress, TaxRuleEntityType, TaxRuleProduct, TaxRuleProductProductIdentifier, TaxRuleTaxRuleEntity, TaxRuleType, TickComponentUsageRequest, UnexpireBillableItemRequest, UpdateBundleRequest, UpdateBundleResponse, UpdateContractRequest, UpdateContractRequestMutation, UpdateContractResponse, UpdateContractSubscriptionRequest, UpdateDefaultTaxRatesRequest, UpdateDefaultTaxRatesResponse, UpdateDiscountRequest, UpdateInvoiceRequest, UpdateInvoiceResponse, UpdateLineItemRequest, UpdateLineItemResponse, UpdateMerchantRequest, UpdateMerchantRequestIncludeInFinancialRecords, UpdatePaymentCardRequest, UpdatePricingPlanProductRequest, UpdatePricingPlanProductRequestPricingEntry, UpdatePricingPlanProductResponse, UpdatePricingPlanRequest, UpdatePricingPlanResponse, UpdateProductRequest, UpdateRecurringInvoiceRequest, UpdateRetailPaymentProviderRequest, UpdateSubscriptionRequest, UpdateSubscriptionRequestSubscription, UpdateSubscriptionResponse, UpdateTaxRequest, UpsertBundleRequest, UpsertDefaultRetailCustomerConfigurationRequest, UpsertRetailConfigurationRequest, UpsertRetailCustomerConfigurationRequest, UpsertRetailPricingRequest, UpsertRetailPricingRequestPricingEntry, UpsertWholesalePricingRequest, ValidateResponse, VendorApiService, VoidInvoiceRequest, VoidPurchaseRequest, WholesaleCostItemRequest, usdConversionRate };
18493
+ export { Access, AccountBalance, AddBundleRequest, AddBundleResponse, AddCreditRequest, AddLineItemRequest, AddLineItemResponse, Adjustment, AlignmentSubscription, AppliedBundle, AppliedBundleItem, AppliedCredit, AppliedCreditNote, AppliedDiscount, AppliedFee, AppliedReferenceType, AppliedTaxRate, AppliedTo, ArchiveTaxRequest, Balance, BalanceAmount, BankAccount, BankReconciliationApiService, BillItemRequest, BillMultipleItemsRequest, BillMultipleItemsResponse, BillableItem, BillableItemCustomerAddress, BillingApiService, BillingStrategy, BulkReplaceTaxRulesRequest, BulkReplaceTaxRulesResponse, Bundle, BundleApiService, BundleItem, BundleItemPrice, BundlePricing, BundlePricingPriceAndFrequency, CalculateCreditNoteRequest, CalculateCreditNoteResponse, CalculateLineItemTaxesRequest, CalculateLineItemTaxesRequestLineItem, CalculateLineItemTaxesResponse, CalculateLineItemTaxesResponseLineItemTaxes, CalculateTaxRequest, CalculateTaxResponse, CanBillItemRequest, CanCreateSubscriptionsRequest, CanCreateSubscriptionsRequestSkusEntry, CanCreateSubscriptionsRequestSubscriptionItem, CanCreateSubscriptionsResponse, CancelRetailBillingRequest, CardType, ChangeCustomUnitPriceRequest, ChangeFrequencyRequest, ChangeRenewalDateRequest, ChargeInvoiceRequest, ChargeSalesInvoiceRequest, CloseRetailDisputeRequest, CollectionMethod, Commitment, ComponentPricing, ConfigureRetailPaymentProviderRequest, ConfigureRetailPaymentProviderResponse, ConfirmRetailPaymentRequest, ConnectStripeAccountRequest, ConnectStripeAccountResponse, Consumer, Contract, ContractApiService, ContractDocument, ContractDocumentApiService, ContractSubscriptionStatus, CreateContractRequest, CreateContractResponse, CreateCreditNoteRequest, CreateCreditNoteResponse, CreateDiscountRequest, CreateDiscountResponse, CreateInvoiceRequest, CreateInvoiceResponse, CreateMerchantRequest, CreateMerchantRequestIncludeInFinancialRecords, CreateMerchantServicesReportRun, CreateMeteredComponentRequest, CreatePaymentCardRequest, CreatePaymentLinkRequest, CreatePaymentLinkResponse, CreatePricingPlanProductRequest, CreatePricingPlanProductRequestPricingEntry, CreatePricingPlanProductResponse, CreatePricingPlanRequest, CreatePricingPlanResponse, CreateProductRequest, CreateRefundRequest, CreateSalesCreditNoteRequest, CreateStripeExternalAccountRequest, CreateSubscriptionRequest, CreateSubscriptionResponse, CreateSubscriptionsRequest, CreateSubscriptionsResponse, CreateTaxRequest, CreateTaxResponse, CreateUsageRequest, CreditApiService, CreditBalance, CreditNote, CreditNoteApiService, CreditNoteReason, CreditNoteType, CreditType, Currency, CustomerSummary, DateRange, DefaultCustomerConfiguration, DeleteBankAccountRequest, DeleteBillableItemRequest, DeleteContractDocumentRequest, DeleteInvoiceRequest, DeleteLineItemRequest, DeleteLineItemResponse, DeletePaymentCardRequest, DeletePricingPlanProductRequest, DeleteProductRequest, DeleteRecurringInvoiceRequest, DeleteRetailPricingRequest, DeleteTaxRuleRequest, Discount, DiscountApiService, DiscountType, Dispute, DisputeEvidence, DisputeEvidenceDetails, DisputeStatus, DuplicateInvoiceRequest, DuplicateInvoiceResponse, EntityType, ExpireBillableItemRequest, ExpireDiscountRequest, ExportResponse, ExportSubscriptionsRequest, Fee, FeeAmountType, FeeType, FieldMask, File, Frequency, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetBalanceRequest, GetBalanceResponse, GetBillableItemRequest, GetBillableItemResponse, GetContractRequest, GetContractResponse, GetCreditNoteRequest, GetCreditNoteResponse, GetInvoiceRequest, GetInvoiceResponse, GetInvoiceWithCalculatedTaxesRequest, GetInvoiceWithCalculatedTaxesResponse, GetMerchantRequest, GetMerchantResponse, GetMerchantServicesReportRun, GetMerchantWholesaleCurrencyRequest, GetMerchantWholesaleCurrencyResponse, GetMultiBundleRequest, GetMultiBundleResponse, GetMultiBundleResponseBundlesEntry, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiBundleRetailPricingResponsePricesEntry, GetMultiContractsRequest, GetMultiContractsResponse, GetMultiContractsResponseContractsEntry, GetMultiCreditNoteRequest, GetMultiCreditNoteResponse, GetMultiCustomerSummariesRequest, GetMultiCustomerSummariesResponse, GetMultiPricingPlanProductRequest, GetMultiPricingPlanProductResponse, GetMultiPricingPlanRequest, GetMultiPricingPlanResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiProductPricingResponseProductPricesEntry, GetMultiProductRequest, GetMultiProductResponse, GetMultiProductResponseProductsEntry, GetMultiRetailConfigurationsRequest, GetMultiRetailConfigurationsResponse, GetMultiRetailConfigurationsResponseRetailConfigurationsEntry, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetMultiRetailPricingResponseProductPricesEntry, GetMultiSubscriptionRelationshipsRequest, GetMultiSubscriptionRelationshipsResponse, GetMultiSubscriptionsRequest, GetMultiSubscriptionsRequestKey, GetMultiSubscriptionsResponse, GetMultiTaxRequest, GetMultiTaxResponse, GetMultiWholesaleCostRequest, GetMultiWholesaleCostResponse, GetNextRetailInvoiceSequenceRequest, GetNextRetailInvoiceSequenceResponse, GetOutstandingBalanceRequest, GetOutstandingBalanceResponse, GetPayoutSummaryRequest, GetPayoutSummaryResponse, GetPricingPlanProductRequest, GetPricingPlanProductResponse, GetProductSummariesTotalRequest, GetProductSummariesTotalResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRecurringInvoiceRequest, GetRetailAccountBalanceRequest, GetRetailAccountBalanceResponse, GetRetailBalanceRequest, GetRetailBalanceResponse, GetRetailCustomerConfigurationRequest, GetRetailCustomerConfigurationResponse, GetRetailDisputeRequest, GetRetailDisputeResponse, GetRetailPaymentProviderRequest, GetRetailPaymentProviderResponse, GetRetailPaymentRequest, GetRetailPaymentResponse, GetRetailPayoutRequest, GetRetailPayoutResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetSalesInvoiceRequest, GetSalesInvoiceResponse, GetStatisticsRequest, GetStatisticsResponse, GetTaxProviderRequest, GetTaxProviderResponse, GetTaxRuleRequest, GetTaxRuleResponse, GetUpcomingInvoicePreviewRequest, GetUpcomingInvoicePreviewResponse, GetWholesaleComparisonRequest, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetWholesaleProviderPublicKeyRequest, GetWholesaleProviderPublicKeyResponse, HostService, Interval, Invoice, InvoiceApiService, InvoiceCustomerAddress, InvoiceItem, InvoiceStatus, Item, LastPaymentStatus, LineItem, ListBankAccountsRequest, ListBankAccountsResponse, ListBillableItemsRequest, ListBillableItemsRequestFilters, ListBillableItemsResponse, ListBundlesRequest, ListBundlesRequestFilters, ListBundlesResponse, ListContractDocumentsRequest, ListContractDocumentsRequestFilters, ListContractDocumentsResponse, ListContractsRequest, ListContractsResponse, ListCreditNotesRequest, ListCreditNotesRequestFilters, ListCreditNotesResponse, ListDiscountsRequest, ListDiscountsRequestFilters, ListDiscountsResponse, ListInvoicesRequest, ListInvoicesRequestFilters, ListInvoicesRequestFiltersDateFilter, ListInvoicesRequestFiltersDateFilterDateField, ListInvoicesResponse, ListMerchantBillingReportsRequest, ListMerchantBillingReportsResponse, ListPaymentCardsRequest, ListPaymentCardsResponse, ListPaymentMethodsRequest, ListPaymentMethodsResponse, ListPaymentRequest, ListPaymentRequestListPaymentFilters, ListPaymentResponse, ListPayoutsRequest, ListPayoutsRequestFilters, ListPayoutsResponse, ListPricingPlanProductsRequest, ListPricingPlanProductsRequestListPricingPlanProductsFilters, ListPricingPlanProductsResponse, ListProductSummariesRequest, ListProductSummariesResponse, ListProductsRequest, ListProductsRequestListProductsFilters, ListProductsResponse, ListPurchaseItemsRequest, ListPurchaseItemsRequestListPurchaseItemsFilters, ListPurchaseItemsResponse, ListPurchaseRequest, ListPurchaseRequestListPurchaseBillingStrategyFilter, ListPurchaseRequestListPurchaseFilters, ListPurchaseRequestState, ListPurchaseResponse, ListRecurringInvoicesFilters, ListRecurringInvoicesFiltersDateFilter, ListRecurringInvoicesFiltersDetailedInterval, ListRecurringInvoicesRequest, ListRecurringInvoicesResponse, ListRefundsRequest, ListRefundsResponse, ListRetailDisputesRequest, ListRetailDisputesRequestListRetailDisputesFilters, ListRetailDisputesResponse, ListRetailPaymentsRequest, ListRetailPaymentsRequestListRetailPaymentsFilters, ListRetailPaymentsResponse, ListRetailPayoutsRequest, ListRetailPayoutsResponse, ListRetailTransactionsRequest, ListRetailTransactionsRequestListRetailTransactionsFilters, ListRetailTransactionsResponse, ListSalesCreditNoteRequest, ListSalesCreditNoteRequestListSalesCreditNoteFilters, ListSalesCreditNoteResponse, ListSalesInvoiceRequest, ListSalesInvoiceRequestListSalesInvoiceFilters, ListSalesInvoiceResponse, ListSubscriptionRelationshipsRequest, ListSubscriptionRelationshipsRequestFilters, ListSubscriptionRelationshipsResponse, ListSubscriptionRetentionByGroupResponse, ListSubscriptionRetentionByGroupResponseSubscriptionRetentionByGroup, ListSubscriptionRetentionBySKUResponse, ListSubscriptionRetentionRequest, ListSubscriptionRetentionRequestFilters, ListSubscriptionsRequest, ListSubscriptionsRequestFilters, ListSubscriptionsResponse, ListTaxRequest, ListTaxRequestFilters, ListTaxResponse, ListTaxRulesRequest, ListTaxRulesRequestFilters, ListTaxRulesResponse, Merchant, MerchantApiService, MerchantReport, MerchantReportStatus, MerchantServicesReportRun, MerchantServicesReportRunStatus, MerchantServicesReportRunType, MerchantType, MeteredComponent, Month, Note, Origin, PagedRequestOptions, PagedResponseMetadata, PauseDunningRequest, PayInvoiceRequest, Payment, PaymentACHDebit, PaymentACSSDebit, PaymentAllocationType, PaymentApiService, PaymentCard, PaymentCardCARD_TYPE, PaymentCardFUNDING_TYPE, PaymentErrorCode, PaymentFacilitatorType, PaymentIntent, PaymentIntentStatus, PaymentLinkItem, PaymentMethod, PaymentMethodApiService, PaymentMethodType, PaymentPaymentAllocation, PaymentProcessor, PaymentSource, PaymentStatus, PaymentStatuses, Payout, PayoutStatus, PayoutType, PostSalesInvoiceRequest, PrepareRetailPaymentRequest, PrepareRetailPaymentRequestOrder, PrepareRetailPaymentResponse, Pricing, PricingApiService, PricingPlan, PricingPlanProduct, PricingPlanProductPricing, PricingPlanProductPricingEntry, PricingRule, PricingRuleType, Product, ProductApiService, ProductPrices, ProductPricing, ProductPricingRule, ProductPricingType, ProductSummary, ProductSummaryApiService, ProductSummaryBillingStrategy, ProductSummaryDiscount, ProductSummaryDiscountDiscountType, ProductSummaryProductType, ProductType, Purchase, PurchaseApiService, PurchaseItem, PurchaseStatus, ReconcilePayoutRequest, ReconcilePayoutResponse, RecurringInvoice, RecurringInvoiceApiService, RecurringInvoiceBundle, RecurringInvoiceCustomerAddress, RecurringInvoiceItem, RecurringInvoiceLineItem, RecurringInvoiceStatus, ReferenceType, Refund, RefundApiService, RefundReason, RefundRetailPaymentRequest, RefundRetailPaymentResponse, RefundStatus, RelationshipType, RemoveBundleRequest, RemoveBundleResponse, RenewalState, ReplaceSubscriptionPresetsRequest, ReplaceSubscriptionPresetsResponse, ReplaceSubscriptionRelationshipsRequest, ReplaceSubscriptionRelationshipsResponse, ReplaceTaxRuleRequest, ReplaceTaxRuleResponse, ResetContractPricingRequest, ResetPaymentFacilitatorRequest, ResumeDunningRequest, RetailConfiguration, RetailCustomerConfiguration, RetailCustomerConfigurationApiService, RetailPayment, RetailPaymentACHDetails, RetailPaymentACSSDetails, RetailPaymentCardDetails, RetailPaymentPaymentMethodDetailsType, RetailPaymentReferenceType, RetailPaymentsEnabledRequest, RetailPaymentsEnabledResponse, RetailPayout, RetailRefund, RetailRefundFailureReason, RetailRefundReason, RetailRefundStatus, RetailStatusRequest, RetailStatusResponse, RetailStatusResponseVerificationError, RetailStatusResponseVerificationRequirements, RetailTransaction, RetailTransactionType, RetentionMetrics, RetryPurchaseRequest, ReverseSubscriptionRequest, SalesCreditNote, SalesCreditNoteApiService, SalesCreditNoteStatus, SalesInvoice, SalesInvoiceApiService, SalesInvoiceStatus, SalesInvoiceType, SearchMerchantsRequest, SearchMerchantsRequestSortBy, SearchMerchantsResponse, SendCreditNoteRequest, SendInvoiceRequest, SendSalesInvoiceEmailRequest, SendSalesInvoiceReceiptEmailRequest, SetAutoBillableRequest, SetAutoChargeInvoicesRequest, SetAutoPostInvoicesRequest, SetDefaultBankAccountRequest, SetDefaultPaymentCardRequest, SetDefaultPaymentMethodRequest, SetHasAlternativePaymentMethodRequest, SetIncludeInFinancialRecordsRequest, SetNextRetailInvoiceSequenceRequest, SetRenewalStartRequest, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, SortDirection, Source, StartRevRecTemplateBackfillRequest, StopDunningRequest, SubmitEvidenceRequest, SubmitEvidenceRequestDisputeEvidence, SubscribeValidation, SubscribeValidationStatus, Subscription, SubscriptionPreset, SubscriptionProjectionFilter, SubscriptionRelationship, SubscriptionRelationshipApiService, SubscriptionStatus, TaxApiService, TaxProviderType, TaxRate, TaxRule, TaxRuleCustomer, TaxRuleCustomerCustomerAddress, TaxRuleEntityType, TaxRuleProduct, TaxRuleProductProductIdentifier, TaxRuleTaxRuleEntity, TaxRuleType, TickComponentUsageRequest, UnexpireBillableItemRequest, UpdateBundleRequest, UpdateBundleResponse, UpdateContractRequest, UpdateContractRequestMutation, UpdateContractResponse, UpdateContractSubscriptionRequest, UpdateDefaultTaxRatesRequest, UpdateDefaultTaxRatesResponse, UpdateDiscountRequest, UpdateInvoiceRequest, UpdateInvoiceResponse, UpdateLineItemRequest, UpdateLineItemResponse, UpdateMerchantRequest, UpdateMerchantRequestIncludeInFinancialRecords, UpdatePaymentCardRequest, UpdatePricingPlanProductRequest, UpdatePricingPlanProductRequestPricingEntry, UpdatePricingPlanProductResponse, UpdatePricingPlanRequest, UpdatePricingPlanResponse, UpdateProductRequest, UpdateRecurringInvoiceRequest, UpdateRetailPaymentProviderRequest, UpdateSubscriptionRequest, UpdateSubscriptionRequestSubscription, UpdateSubscriptionResponse, UpdateTaxRequest, UpsertBundleRequest, UpsertDefaultRetailCustomerConfigurationRequest, UpsertRetailConfigurationRequest, UpsertRetailCustomerConfigurationRequest, UpsertRetailPricingRequest, UpsertRetailPricingRequestPricingEntry, UpsertWholesalePricingRequest, ValidateResponse, VendorApiService, VoidInvoiceRequest, VoidPurchaseRequest, WholesaleCostItemRequest, usdConversionRate };
18386
18494
  //# sourceMappingURL=vendasta-billing.mjs.map