@vendasta/billing 6.4.0 → 8.1.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.
- package/bundles/vendasta-billing.umd.js +37 -75
- package/bundles/vendasta-billing.umd.js.map +1 -1
- package/bundles/vendasta-billing.umd.min.js +2 -2
- package/bundles/vendasta-billing.umd.min.js.map +1 -1
- package/esm2015/lib/_generated/host.service.js +1 -1
- package/esm2015/lib/_generated/index.js +1 -1
- package/esm2015/lib/_internal/bank-reconciliation.api.service.js +1 -1
- package/esm2015/lib/_internal/billing.api.service.js +1 -1
- package/esm2015/lib/_internal/bundle.api.service.js +1 -1
- package/esm2015/lib/_internal/contract-document.api.service.js +1 -1
- package/esm2015/lib/_internal/contract.api.service.js +1 -1
- package/esm2015/lib/_internal/credit.api.service.js +1 -1
- package/esm2015/lib/_internal/discount.api.service.js +1 -1
- package/esm2015/lib/_internal/enums/applied-discount.enum.js +1 -1
- package/esm2015/lib/_internal/enums/card.enum.js +1 -1
- package/esm2015/lib/_internal/enums/contract.enum.js +1 -1
- package/esm2015/lib/_internal/enums/currency.enum.js +1 -1
- package/esm2015/lib/_internal/enums/frequency.enum.js +1 -1
- package/esm2015/lib/_internal/enums/index.js +1 -1
- package/esm2015/lib/_internal/enums/invoice.enum.js +1 -1
- package/esm2015/lib/_internal/enums/merchant-report.enum.js +1 -1
- package/esm2015/lib/_internal/enums/merchant.enum.js +1 -1
- package/esm2015/lib/_internal/enums/month.enum.js +1 -1
- package/esm2015/lib/_internal/enums/payment-card.enum.js +1 -1
- package/esm2015/lib/_internal/enums/payment.enum.js +1 -1
- package/esm2015/lib/_internal/enums/payout.enum.js +1 -1
- package/esm2015/lib/_internal/enums/pricing-plan.enum.js +1 -1
- package/esm2015/lib/_internal/enums/product-summary.enum.js +1 -1
- package/esm2015/lib/_internal/enums/product.enum.js +1 -1
- package/esm2015/lib/_internal/enums/purchase.enum.js +1 -1
- package/esm2015/lib/_internal/enums/refund.enum.js +1 -1
- package/esm2015/lib/_internal/enums/sales-credit-note.enum.js +1 -1
- package/esm2015/lib/_internal/enums/sales-invoice.enum.js +1 -1
- package/esm2015/lib/_internal/enums/sort-direction.enum.js +1 -1
- package/esm2015/lib/_internal/enums/subscribe-validation.enum.js +1 -1
- package/esm2015/lib/_internal/enums/subscription.enum.js +1 -1
- package/esm2015/lib/_internal/index.js +1 -1
- package/esm2015/lib/_internal/interfaces/api.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/applied-bundle.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/applied-discount.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/applied-tax-rate.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/balance.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/billable-item.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/bundle.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/card.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/commitment.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/common.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/contract-document.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/contract.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/credit.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/currency.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/customer-summary.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/date-range.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/discount.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/external-account.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/field-mask.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/frequency.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/index.js +1 -1
- package/esm2015/lib/_internal/interfaces/invoice-template.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/invoice.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/merchant-report.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/merchant.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/metered-component.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/month.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/payment-card.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/payment.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/payout.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/pricing-plan-product.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/pricing-plan.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/product-pricing.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/product-summary.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/product.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/purchase.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/refund.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/retail-customer-configuration.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/sales-credit-note.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/sales-invoice.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/sort-direction.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/subscribe-validation.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/subscription.interface.js +1 -1
- package/esm2015/lib/_internal/interfaces/tax-rate.interface.js +1 -1
- package/esm2015/lib/_internal/invoice-template.api.service.js +1 -1
- package/esm2015/lib/_internal/invoice.api.service.js +1 -1
- package/esm2015/lib/_internal/merchant.api.service.js +1 -1
- package/esm2015/lib/_internal/objects/api.js +1 -1
- package/esm2015/lib/_internal/objects/applied-bundle.js +1 -1
- package/esm2015/lib/_internal/objects/applied-discount.js +1 -1
- package/esm2015/lib/_internal/objects/applied-tax-rate.js +1 -1
- package/esm2015/lib/_internal/objects/balance.js +1 -1
- package/esm2015/lib/_internal/objects/billable-item.js +7 -1
- package/esm2015/lib/_internal/objects/bundle.js +1 -1
- package/esm2015/lib/_internal/objects/card.js +1 -1
- package/esm2015/lib/_internal/objects/commitment.js +1 -1
- package/esm2015/lib/_internal/objects/common.js +1 -1
- package/esm2015/lib/_internal/objects/contract-document.js +1 -1
- package/esm2015/lib/_internal/objects/contract.js +1 -1
- package/esm2015/lib/_internal/objects/credit.js +1 -1
- package/esm2015/lib/_internal/objects/currency.js +1 -1
- package/esm2015/lib/_internal/objects/customer-summary.js +1 -1
- package/esm2015/lib/_internal/objects/date-range.js +1 -1
- package/esm2015/lib/_internal/objects/discount.js +1 -1
- package/esm2015/lib/_internal/objects/external-account.js +1 -1
- package/esm2015/lib/_internal/objects/field-mask.js +1 -1
- package/esm2015/lib/_internal/objects/frequency.js +1 -1
- package/esm2015/lib/_internal/objects/index.js +1 -1
- package/esm2015/lib/_internal/objects/invoice-template.js +1 -1
- package/esm2015/lib/_internal/objects/invoice.js +1 -1
- package/esm2015/lib/_internal/objects/merchant-report.js +1 -1
- package/esm2015/lib/_internal/objects/merchant.js +1 -1
- package/esm2015/lib/_internal/objects/metered-component.js +1 -1
- package/esm2015/lib/_internal/objects/month.js +1 -1
- package/esm2015/lib/_internal/objects/payment-card.js +1 -1
- package/esm2015/lib/_internal/objects/payment.js +1 -1
- package/esm2015/lib/_internal/objects/payout.js +1 -1
- package/esm2015/lib/_internal/objects/pricing-plan-product.js +1 -1
- package/esm2015/lib/_internal/objects/pricing-plan.js +1 -1
- package/esm2015/lib/_internal/objects/product-pricing.js +1 -1
- package/esm2015/lib/_internal/objects/product-summary.js +1 -1
- package/esm2015/lib/_internal/objects/product.js +1 -1
- package/esm2015/lib/_internal/objects/purchase.js +1 -1
- package/esm2015/lib/_internal/objects/refund.js +1 -1
- package/esm2015/lib/_internal/objects/retail-customer-configuration.js +1 -1
- package/esm2015/lib/_internal/objects/sales-credit-note.js +1 -1
- package/esm2015/lib/_internal/objects/sales-invoice.js +1 -1
- package/esm2015/lib/_internal/objects/sort-direction.js +1 -1
- package/esm2015/lib/_internal/objects/subscribe-validation.js +1 -1
- package/esm2015/lib/_internal/objects/subscription.js +25 -1
- package/esm2015/lib/_internal/objects/tax-rate.js +1 -1
- package/esm2015/lib/_internal/payment-method.api.service.js +1 -1
- package/esm2015/lib/_internal/payment.api.service.js +1 -1
- package/esm2015/lib/_internal/pricing.api.service.js +1 -1
- package/esm2015/lib/_internal/product-summary.api.service.js +1 -1
- package/esm2015/lib/_internal/product.api.service.js +1 -1
- package/esm2015/lib/_internal/purchase.api.service.js +1 -1
- package/esm2015/lib/_internal/refund.api.service.js +1 -1
- package/esm2015/lib/_internal/retail-customer-configuration.api.service.js +1 -1
- package/esm2015/lib/_internal/sales-credit-note.api.service.js +1 -1
- package/esm2015/lib/_internal/sales-invoice.api.service.js +1 -1
- package/esm2015/lib/_internal/tax.api.service.js +1 -1
- package/esm2015/lib/_internal/vendor.api.service.js +1 -1
- package/esm2015/lib/applied_bundle/applied_bundle.js +1 -1
- package/esm2015/lib/applied_bundle/index.js +1 -1
- package/esm2015/lib/applied_discount/applied_discount.js +1 -1
- package/esm2015/lib/applied_discount/index.js +1 -1
- package/esm2015/lib/bank_account/bank-account.service.js +1 -1
- package/esm2015/lib/bank_account/bank_account.js +1 -1
- package/esm2015/lib/bank_account/index.js +1 -1
- package/esm2015/lib/bank_reconciliation/bank-reconciliation.service.js +1 -1
- package/esm2015/lib/bank_reconciliation/index.js +1 -1
- package/esm2015/lib/bank_reconciliation/payout.js +1 -1
- package/esm2015/lib/billable-item/billable-item.js +3 -2
- package/esm2015/lib/billable-item/billable-item.service.js +1 -1
- package/esm2015/lib/billable-item/index.js +1 -1
- package/esm2015/lib/billing-host.service.js +1 -1
- package/esm2015/lib/billing.service.js +1 -1
- package/esm2015/lib/bundle/bundle.js +1 -1
- package/esm2015/lib/bundle/bundle.service.js +1 -1
- package/esm2015/lib/bundle/index.js +1 -1
- package/esm2015/lib/contract/contract.js +1 -1
- package/esm2015/lib/contract/contract.service.js +1 -1
- package/esm2015/lib/contract/dimension.js +1 -1
- package/esm2015/lib/contract/index.js +1 -2
- package/esm2015/lib/contract/mutations.js +1 -1
- package/esm2015/lib/contract-document/contract-document.js +1 -1
- package/esm2015/lib/contract-document/contract-document.service.js +1 -1
- package/esm2015/lib/contract-document/index.js +1 -1
- package/esm2015/lib/contract-document/list-contract-document.js +1 -1
- package/esm2015/lib/core/index.js +1 -1
- package/esm2015/lib/core/paged-response.js +1 -1
- package/esm2015/lib/core/sort-direction.js +1 -1
- package/esm2015/lib/credit/credit.js +1 -1
- package/esm2015/lib/credit/credit.service.js +1 -1
- package/esm2015/lib/credit/index.js +1 -1
- package/esm2015/lib/customer_summary/customer-summary.js +1 -1
- package/esm2015/lib/discount/discount.js +1 -1
- package/esm2015/lib/discount/discount.service.js +1 -1
- package/esm2015/lib/discount/discount_type.js +1 -1
- package/esm2015/lib/discount/index.js +1 -1
- package/esm2015/lib/discount/list-discount.js +1 -1
- package/esm2015/lib/http-shared/error-handlers.js +1 -1
- package/esm2015/lib/index.js +1 -1
- package/esm2015/lib/invoice/index.js +1 -1
- package/esm2015/lib/invoice/invoice.js +1 -1
- package/esm2015/lib/invoice/invoice.service.js +1 -1
- package/esm2015/lib/invoice/list-invoice.js +1 -1
- package/esm2015/lib/invoice-template/index.js +1 -1
- package/esm2015/lib/invoice-template/invoice-template.js +1 -1
- package/esm2015/lib/invoice-template/invoice-template.service.js +2 -3
- package/esm2015/lib/merchant/balance.js +1 -1
- package/esm2015/lib/merchant/index.js +1 -1
- package/esm2015/lib/merchant/merchant.interface.js +1 -1
- package/esm2015/lib/merchant/merchant.js +1 -1
- package/esm2015/lib/merchant/merchant.service.js +1 -1
- package/esm2015/lib/merchant/payout-summary.js +1 -1
- package/esm2015/lib/merchant/retail-configuration.js +1 -1
- package/esm2015/lib/merchant-report/index.js +1 -1
- package/esm2015/lib/merchant-report/merchant-report-status.js +1 -1
- package/esm2015/lib/merchant-report/merchant-report.interfaces.js +1 -1
- package/esm2015/lib/merchant-report/merchant-report.js +1 -1
- package/esm2015/lib/merchant-report/merchant-report.service.js +1 -1
- package/esm2015/lib/payment/dispute.js +1 -1
- package/esm2015/lib/payment/index.js +1 -1
- package/esm2015/lib/payment/payment-allocation-type.js +1 -1
- package/esm2015/lib/payment/payment-source.js +1 -1
- package/esm2015/lib/payment/payment-status.js +1 -1
- package/esm2015/lib/payment/payment.js +1 -1
- package/esm2015/lib/payment/payment.service.js +1 -1
- package/esm2015/lib/payment/retail-payment.js +1 -1
- package/esm2015/lib/payment/retail-status.js +1 -1
- package/esm2015/lib/payment-card/index.js +1 -1
- package/esm2015/lib/payment-card/payment-card.js +1 -1
- package/esm2015/lib/payment-card/payment-card.service.js +1 -1
- package/esm2015/lib/payment-method/index.js +1 -1
- package/esm2015/lib/payment-method/payment-method.service.js +1 -1
- package/esm2015/lib/pricing/billing-strategy.js +1 -1
- package/esm2015/lib/pricing/commitment.js +1 -1
- package/esm2015/lib/pricing/currency.js +1 -1
- package/esm2015/lib/pricing/frequency.js +1 -1
- package/esm2015/lib/pricing/index.js +1 -1
- package/esm2015/lib/pricing/list-pricing-plan-product-filter.js +1 -1
- package/esm2015/lib/pricing/pricing-plan-product.js +1 -1
- package/esm2015/lib/pricing/pricing-plan.js +1 -1
- package/esm2015/lib/pricing/pricing-plan.service.js +1 -1
- package/esm2015/lib/pricing/product-pricing-rules.js +1 -1
- package/esm2015/lib/pricing/product-pricing-type.js +1 -1
- package/esm2015/lib/pricing/product-pricing.js +1 -1
- package/esm2015/lib/pricing/wholesale-pricing.service.js +1 -1
- package/esm2015/lib/product/index.js +1 -1
- package/esm2015/lib/product/list-products.js +1 -1
- package/esm2015/lib/product/product.js +1 -1
- package/esm2015/lib/product-summary/index.js +1 -1
- package/esm2015/lib/product-summary/product-summary.service.js +1 -1
- package/esm2015/lib/product-summary/subscription-retention.js +1 -1
- package/esm2015/lib/purchase/index.js +1 -1
- package/esm2015/lib/purchase/list-purchases.js +1 -1
- package/esm2015/lib/purchase/purchase.js +1 -1
- package/esm2015/lib/purchase/purchase.service.js +1 -1
- package/esm2015/lib/purchase/purchase_status.js +1 -1
- package/esm2015/lib/refund/index.js +1 -1
- package/esm2015/lib/refund/refund.js +1 -1
- package/esm2015/lib/refund/refund.service.js +1 -1
- package/esm2015/lib/retail-customer-configuration/index.js +1 -1
- package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.js +1 -1
- package/esm2015/lib/retail-customer-configuration/retail-customer-configuration.service.js +1 -1
- package/esm2015/lib/revenue/index.js +1 -1
- package/esm2015/lib/revenue/revenue.interfaces.js +1 -1
- package/esm2015/lib/revenue/revenue.service.js +1 -1
- package/esm2015/lib/sales-credit-note/index.js +1 -1
- package/esm2015/lib/sales-credit-note/sales-credit-note.js +1 -1
- package/esm2015/lib/sales-credit-note/sales-credit-note.service.js +1 -1
- package/esm2015/lib/sales-invoice/index.js +1 -1
- package/esm2015/lib/sales-invoice/sales-invoice.js +1 -1
- package/esm2015/lib/sales-invoice/sales-invoice.service.js +1 -1
- package/esm2015/lib/sku.js +1 -1
- package/esm2015/lib/stripe-file/file.js +1 -1
- package/esm2015/lib/stripe-file/index.js +1 -1
- package/esm2015/lib/stripe-file/purpose.js +1 -1
- package/esm2015/lib/stripe-file/stripe-file.service.js +1 -1
- package/esm2015/lib/subscription/can-create-subscriptions-item.js +1 -1
- package/esm2015/lib/subscription/index.js +1 -1
- package/esm2015/lib/tax-rate/index.js +1 -1
- package/esm2015/lib/tax-rate/tax-rate.js +1 -1
- package/esm2015/lib/tax-rate/tax-rate.service.js +1 -1
- package/esm2015/public_api.js +1 -1
- package/esm2015/vendasta-billing.js +1 -1
- package/fesm2015/vendasta-billing.js +34 -71
- package/fesm2015/vendasta-billing.js.map +1 -1
- package/lib/_internal/interfaces/billable-item.interface.d.ts +1 -0
- package/lib/_internal/interfaces/subscription.interface.d.ts +4 -0
- package/lib/_internal/objects/billable-item.d.ts +1 -0
- package/lib/_internal/objects/subscription.d.ts +4 -0
- package/lib/billable-item/billable-item.d.ts +1 -0
- package/lib/contract/index.d.ts +0 -1
- package/lib/invoice-template/invoice-template.service.d.ts +1 -1
- package/package.json +1 -1
- package/esm2015/lib/contract/contract-pricing/billed-product.js +0 -50
- package/esm2015/lib/contract/contract-pricing/billing-model.js +0 -10
- package/esm2015/lib/contract/contract-pricing/index.js +0 -4
- package/esm2015/lib/contract/contract-pricing/product-category.js +0 -9
- package/lib/contract/contract-pricing/billed-product.d.ts +0 -46
- package/lib/contract/contract-pricing/billing-model.d.ts +0 -8
- package/lib/contract/contract-pricing/index.d.ts +0 -3
- package/lib/contract/contract-pricing/product-category.d.ts +0 -7
|
@@ -4,4 +4,4 @@ export function enumStringToValue(enumRef, value) {
|
|
|
4
4
|
}
|
|
5
5
|
return enumRef[value];
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LmpzIiwic291cmNlUm9vdCI6Ii93b3Jrc3BhY2Uvc2Rrcy90eXBlc2NyaXB0L3NyYy9iaWxsaW5nX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvX2ludGVybmFsL29iamVjdHMvZnJlcXVlbmN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE1BQU0sVUFBVSxpQkFBaUIsQ0FBSSxPQUFZLEVBQUUsS0FBYTtJQUM5RCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtRQUM3QixPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgZSBmcm9tICcuLi9lbnVtcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnVtU3RyaW5nVG9WYWx1ZTxFPihlbnVtUmVmOiBhbnksIHZhbHVlOiBzdHJpbmcpOiBFIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgcmV0dXJuIGVudW1SZWZbdmFsdWVdO1xufVxuXG4iXX0=
|
|
@@ -42,4 +42,4 @@ export { GetRetailCustomerConfigurationRequest, GetRetailCustomerConfigurationRe
|
|
|
42
42
|
export { AddCreditRequest, CreditBalance, GetBalanceRequest, GetBalanceResponse, } from './credit';
|
|
43
43
|
export { AddTemplateBundleRequest, AddTemplateBundleResponse, AddTemplateLineItemRequest, AddTemplateLineItemResponse, CreateTemplateRequest, CreateTemplateResponse, DeleteInvoiceTemplateRequest, DeleteTemplateLineItemRequest, DeleteTemplateLineItemResponse, GetInvoiceTemplateRequest, GetInvoiceTemplateResponse, InvoiceTemplate, InvoiceTemplateItem, UpsertInvoiceTemplateRequestInvoiceTemplateItemRequest, UpdateTemplateBundleRequest, UpdateTemplateBundleResponse, UpdateTemplateDefaultTaxRatesRequest, UpdateTemplateDefaultTaxRatesResponse, UpdateTemplateLineItemRequest, UpdateTemplateLineItemResponse, UpsertInvoiceTemplateRequest, UpsertInvoiceTemplateResponse, } from './invoice-template';
|
|
44
44
|
export { DeleteRetailPricingRequest, GenerateBillableItemsCSVRequest, GenerateBillableItemsCSVResponse, GenerateVendorReportRequest, GenerateVendorReportResponse, GetMultiBundleRetailPricingRequest, GetMultiBundleRetailPricingResponse, GetMultiProductPricingRequest, GetMultiProductPricingResponse, GetMultiRetailPricingRequest, GetMultiRetailPricingResponse, GetPurchaseCostRequest, GetPurchaseCostResponse, GetRevenueStatsRequest, GetRevenueStatsResponse, GetStatisticsRequest, GetStatisticsResponse, GetWholesaleComparisonRequestGetWholesaleComparisonFilters, GetWholesaleComparisonRequest, GetWholesaleComparisonResponse, GetWholesaleComparisonResponseGetWholesaleComparisonResult, GetMultiBundleRetailPricingResponsePricesEntry, UpsertRetailPricingRequestPricingEntry, GetMultiRetailPricingResponseProductPricesEntry, GetMultiProductPricingResponseProductPricesEntry, SetWholesaleProductStrategyRequest, SetWholesaleProductVolumeCommitmentRequest, StartRevRecTemplateBackfillRequest, UpsertRetailPricingRequest, } from './api';
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2NvZGVmcmVzaC92b2x1bWUvYmlsbGluZy9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvb2JqZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUtsQixPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLElBQUksRUFDSiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUM1QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCxlQUFlLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILE1BQU0sRUFDTixVQUFVLEVBQ1YsYUFBYSxFQUNiLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxVQUFVLEdBQ2IsTUFBTSxjQUFjLENBQUM7QUFLdEIsT0FBTyxFQUNILFFBQVEsRUFDUix1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVB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QU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsc0RBQXNELEVBQ3RELDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDaEMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiwwREFBMEQsRUFDMUQsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwwREFBMEQsRUFDMUQsOENBQThDLEVBQzlDLHNDQUFzQyxFQUN0QywrQ0FBK0MsRUFDL0MsZ0RBQWdELEVBQ2hELGtDQUFrQyxFQUNsQywwQ0FBMEMsRUFDMUMsa0NBQWtDLEVBQ2xDLDBCQUEwQixHQUM3QixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQge1xufSBmcm9tICcuL2ZyZXF1ZW5jeSc7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzLFxuICAgIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG59IGZyb20gJy4vYmlsbGFibGUtaXRlbSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZERpc2NvdW50LFxufSBmcm9tICcuL2FwcGxpZWQtZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEJ1bmRsZSxcbiAgICBCdW5kbGVJdGVtLFxuICAgIEJ1bmRsZVByaWNpbmcsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZUJ1bmRsZXNFbnRyeSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpQnVuZGxlUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgICBMaXN0QnVuZGxlc1Jlc3BvbnNlLFxuICAgIEJ1bmRsZUl0ZW1QcmljZSxcbiAgICBCdW5kbGVQcmljaW5nUHJpY2VBbmRGcmVxdWVuY3ksXG4gICAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIENvbW1pdG1lbnQsXG59IGZyb20gJy4vY29tbWl0bWVudCc7XG5cbmV4cG9ydCB7XG59IGZyb20gJy4vY3VycmVuY3knO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2VDb250cmFjdHNFbnRyeSxcbiAgICBDcmVhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgQ3JlYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRDb250cmFjdFJlcXVlc3QsXG4gICAgR2V0Q29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZSxcbiAgICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3RzUmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0TXV0YXRpb24sXG4gICAgUmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0U3Vic2NyaXB0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9jb250cmFjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3VzdG9tZXJTdW1tYXJ5LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXNwb25zZSxcbn0gZnJvbSAnLi9jdXN0b21lci1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBCYW5rQWNjb3VudCxcbiAgICBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0LFxuICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVzcG9uc2UsXG4gICAgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9leHRlcm5hbC1hY2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0U3VtbWFyeURpc2NvdW50LFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0LFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlLFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5U0tVUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3QsXG4gICAgUHJpY2luZyxcbiAgICBQcm9kdWN0U3VtbWFyeSxcbiAgICBSZXRlbnRpb25NZXRyaWNzLFxuICAgIFByaWNpbmdSdWxlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2VTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwLFxufSBmcm9tICcuL3Byb2R1Y3Qtc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlRGlzY291bnRSZXF1ZXN0LFxuICAgIERpc2NvdW50LFxuICAgIEV4cGlyZURpc2NvdW50UmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZURpc2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZFRheFJhdGUsXG59IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgRmllbGRNYXNrLFxufSBmcm9tICcuL2ZpZWxkLW1hc2snO1xuXG5leHBvcnQge1xuICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2UsXG4gICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlUYXhSZXF1ZXN0LFxuICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgTGlzdFRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlc3BvbnNlLFxuICAgIFRheFJhdGUsXG4gICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi90YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEJ1bmRsZSxcbiAgICBBcHBsaWVkQnVuZGxlSXRlbSxcbn0gZnJvbSAnLi9hcHBsaWVkLWJ1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQWRkQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVyc0RhdGVGaWx0ZXIsXG4gICAgRGVsZXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgIEdldEludm9pY2VSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICBSZW1vdmVCdW5kbGVSZXNwb25zZSxcbiAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQmFsYW5jZSxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbn0gZnJvbSAnLi9zb3J0LWRpcmVjdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgRGVmYXVsdEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBHZXRNZXJjaGFudFJlcXVlc3QsXG4gICAgR2V0TWVyY2hhbnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2UsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdCxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW91dFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50LFxuICAgIFJldGFpbENvbmZpZ3VyYXRpb24sXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlUmV0YWlsQ29uZmlndXJhdGlvbnNFbnRyeSxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0LFxuICAgIFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlLFxuICAgIFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXJjaGFudCc7XG5cbmV4cG9ydCB7XG59IGZyb20gJy4vbW9udGgnO1xuXG5leHBvcnQge1xuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCxcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50UmVwb3J0LFxufSBmcm9tICcuL21lcmNoYW50LXJlcG9ydCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgTWV0ZXJlZENvbXBvbmVudCxcbiAgICBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0LFxufSBmcm9tICcuL21ldGVyZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHtcbn0gZnJvbSAnLi9jYXJkJztcblxuZXhwb3J0IHtcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW1lbnQsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVxdWVzdCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXNwb25zZSxcbiAgICBSZXRhaWxTdGF0dXNSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdCxcbiAgICBVcGRhdGVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uRXJyb3IsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25SZXF1aXJlbWVudHMsXG59IGZyb20gJy4vcGF5bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIERlbGV0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVzcG9uc2UsXG4gICAgUGF5bWVudENhcmQsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbn0gZnJvbSAnLi9wYXltZW50LWNhcmQnO1xuXG5leHBvcnQge1xuICAgIENvbXBvbmVudFByaWNpbmcsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmcsXG4gICAgUHJvZHVjdFByaWNpbmdSdWxlLFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxufSBmcm9tICcuL3ByaWNpbmctcGxhbic7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0UHJpY2VzLFxuICAgIFByb2R1Y3RQcmljaW5nLFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZENyZWRpdCxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlQmlsbGluZ1N0cmF0ZWd5RmlsdGVyLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdExpc3RQdXJjaGFzZUl0ZW1zRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXNwb25zZSxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZVJlc3BvbnNlLFxuICAgIFB1cmNoYXNlLFxuICAgIFB1cmNoYXNlSXRlbSxcbiAgICBSZXRyeVB1cmNoYXNlUmVxdWVzdCxcbiAgICBWb2lkUHVyY2hhc2VSZXF1ZXN0LFxufSBmcm9tICcuL3B1cmNoYXNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVSZWZ1bmRSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1Jlc3BvbnNlLFxuICAgIFJlZnVuZCxcbn0gZnJvbSAnLi9yZWZ1bmQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3RMaXN0U2FsZXNDcmVkaXROb3RlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVzcG9uc2UsXG4gICAgU2FsZXNDcmVkaXROb3RlLFxufSBmcm9tICcuL3NhbGVzLWNyZWRpdC1ub3RlJztcblxuZXhwb3J0IHtcbiAgICBHZXRTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIEdldFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0TGlzdFNhbGVzSW52b2ljZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIFBvc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIFNhbGVzSW52b2ljZSxcbiAgICBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0LFxuICAgIFNlbmRTYWxlc0ludm9pY2VSZWNlaXB0RW1haWxSZXF1ZXN0LFxufSBmcm9tICcuL3NhbGVzLWludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIFN1YnNjcmliZVZhbGlkYXRpb24sXG59IGZyb20gJy4vc3Vic2NyaWJlLXZhbGlkYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFsaWdubWVudFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgQ2hhbmdlQ3VzdG9tVW5pdFByaWNlUmVxdWVzdCxcbiAgICBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0LFxuICAgIENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBSZXZlcnNlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBTZXRSZW5ld2FsU3RhcnRSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U2t1c0VudHJ5LFxuICAgIFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFN1YnNjcmlwdGlvbkl0ZW0sXG4gICAgVmFsaWRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9zdWJzY3JpcHRpb24nO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0RG9jdW1lbnQsXG4gICAgRGVsZXRlQ29udHJhY3REb2N1bWVudFJlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZSxcbn0gZnJvbSAnLi9jb250cmFjdC1kb2N1bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXNwb25zZSxcbiAgICBSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgVXBzZXJ0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9yZXRhaWwtY3VzdG9tZXItY29uZmlndXJhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWRkQ3JlZGl0UmVxdWVzdCxcbiAgICBDcmVkaXRCYWxhbmNlLFxuICAgIEdldEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldEJhbGFuY2VSZXNwb25zZSxcbn0gZnJvbSAnLi9jcmVkaXQnO1xuXG5leHBvcnQge1xuICAgIEFkZFRlbXBsYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDcmVhdGVUZW1wbGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlVGVtcGxhdGVSZXNwb25zZSxcbiAgICBEZWxldGVJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBHZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIEludm9pY2VUZW1wbGF0ZSxcbiAgICBJbnZvaWNlVGVtcGxhdGVJdGVtLFxuICAgIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9pbnZvaWNlLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgICBEZWxldGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlLFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVxdWVzdCxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlc3BvbnNlLFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL3dvcmtzcGFjZS9zZGtzL3R5cGVzY3JpcHQvc3JjL2JpbGxpbmdfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9faW50ZXJuYWwvb2JqZWN0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQixFQUFFO0FBQ0YsaUJBQWlCO0FBQ2pCLG9DQUFvQztBQUNwQyxPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN4QixNQUFNLFVBQVUsQ0FBQztBQUtsQixPQUFPLEVBQ0gsZUFBZSxFQUNmLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IseUJBQXlCLEVBQ3pCLHlCQUF5QixFQUN6QiwrQkFBK0IsRUFDL0Isc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLElBQUksRUFDSiwrQkFBK0IsRUFDL0Isd0JBQXdCLEVBQ3hCLHlCQUF5QixHQUM1QixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDSCxlQUFlLEdBQ2xCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUNILE1BQU0sRUFDTixVQUFVLEVBQ1YsYUFBYSxFQUNiLGtDQUFrQyxFQUNsQyx5QkFBeUIsRUFDekIscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLGVBQWUsRUFDZiw4QkFBOEIsRUFDOUIsbUJBQW1CLEdBQ3RCLE1BQU0sVUFBVSxDQUFDO0FBRWxCLE9BQU8sRUFDSCxVQUFVLEdBQ2IsTUFBTSxjQUFjLENBQUM7QUFLdEIsT0FBTyxFQUNILFFBQVEsRUFDUix1Q0FBdUMsRUFDdkMscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0QixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLHdCQUF3QixFQUN4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RWxCLE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDM0IscUJBQXFCLEVBQ3JCLHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5Qix5QkFBeUIsRUFDekIsMEJBQTBCLEVBQzFCLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsc0RBQXNELEVBQ3RELDJCQUEyQixFQUMzQiw0QkFBNEIsRUFDNUIsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLDRCQUE0QixFQUM1Qiw2QkFBNkIsR0FDaEMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1QixPQUFPLEVBQ0gsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQixnQ0FBZ0MsRUFDaEMsMkJBQTJCLEVBQzNCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsNEJBQTRCLEVBQzVCLDZCQUE2QixFQUM3QixzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQiwwREFBMEQsRUFDMUQsNkJBQTZCLEVBQzdCLDhCQUE4QixFQUM5QiwwREFBMEQsRUFDMUQsOENBQThDLEVBQzlDLHNDQUFzQyxFQUN0QywrQ0FBK0MsRUFDL0MsZ0RBQWdELEVBQ2hELGtDQUFrQyxFQUNsQywwQ0FBMEMsRUFDMUMsa0NBQWtDLEVBQ2xDLDBCQUEwQixHQUM3QixNQUFNLE9BQU8sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cyBJbmRleC5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuZXhwb3J0IHtcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVzcG9uc2VNZXRhZGF0YSxcbn0gZnJvbSAnLi9jb21tb24nO1xuXG5leHBvcnQge1xufSBmcm9tICcuL2ZyZXF1ZW5jeSc7XG5cbmV4cG9ydCB7XG4gICAgQmlsbEl0ZW1SZXF1ZXN0LFxuICAgIEJpbGxNdWx0aXBsZUl0ZW1zUmVxdWVzdCxcbiAgICBCaWxsTXVsdGlwbGVJdGVtc1Jlc3BvbnNlLFxuICAgIEJpbGxhYmxlSXRlbSxcbiAgICBDYW5CaWxsSXRlbVJlcXVlc3QsXG4gICAgQmlsbGFibGVJdGVtQ3VzdG9tZXJBZGRyZXNzLFxuICAgIERlbGV0ZUJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgRXhwaXJlQmlsbGFibGVJdGVtUmVxdWVzdCxcbiAgICBMaXN0QmlsbGFibGVJdGVtc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEJpbGxhYmxlSXRlbVJlcXVlc3QsXG4gICAgR2V0QmlsbGFibGVJdGVtUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBJdGVtLFxuICAgIEdldE11bHRpU3Vic2NyaXB0aW9uc1JlcXVlc3RLZXksXG4gICAgTGlzdEJpbGxhYmxlSXRlbXNSZXF1ZXN0LFxuICAgIExpc3RCaWxsYWJsZUl0ZW1zUmVzcG9uc2UsXG59IGZyb20gJy4vYmlsbGFibGUtaXRlbSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZERpc2NvdW50LFxufSBmcm9tICcuL2FwcGxpZWQtZGlzY291bnQnO1xuXG5leHBvcnQge1xuICAgIEJ1bmRsZSxcbiAgICBCdW5kbGVJdGVtLFxuICAgIEJ1bmRsZVByaWNpbmcsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXNwb25zZUJ1bmRsZXNFbnRyeSxcbiAgICBMaXN0QnVuZGxlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldE11bHRpQnVuZGxlUmVxdWVzdCxcbiAgICBHZXRNdWx0aUJ1bmRsZVJlc3BvbnNlLFxuICAgIExpc3RCdW5kbGVzUmVxdWVzdCxcbiAgICBMaXN0QnVuZGxlc1Jlc3BvbnNlLFxuICAgIEJ1bmRsZUl0ZW1QcmljZSxcbiAgICBCdW5kbGVQcmljaW5nUHJpY2VBbmRGcmVxdWVuY3ksXG4gICAgVXBzZXJ0QnVuZGxlUmVxdWVzdCxcbn0gZnJvbSAnLi9idW5kbGUnO1xuXG5leHBvcnQge1xuICAgIENvbW1pdG1lbnQsXG59IGZyb20gJy4vY29tbWl0bWVudCc7XG5cbmV4cG9ydCB7XG59IGZyb20gJy4vY3VycmVuY3knO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0LFxuICAgIEdldE11bHRpQ29udHJhY3RzUmVzcG9uc2VDb250cmFjdHNFbnRyeSxcbiAgICBDcmVhdGVDb250cmFjdFJlcXVlc3QsXG4gICAgQ3JlYXRlQ29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRDb250cmFjdFJlcXVlc3QsXG4gICAgR2V0Q29udHJhY3RSZXNwb25zZSxcbiAgICBHZXRNdWx0aUNvbnRyYWN0c1JlcXVlc3QsXG4gICAgR2V0TXVsdGlDb250cmFjdHNSZXNwb25zZSxcbiAgICBMaXN0Q29udHJhY3RzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3RzUmVzcG9uc2UsXG4gICAgVXBkYXRlQ29udHJhY3RSZXF1ZXN0TXV0YXRpb24sXG4gICAgUmVzZXRDb250cmFjdFByaWNpbmdSZXF1ZXN0LFxuICAgIFVwZGF0ZUNvbnRyYWN0UmVxdWVzdCxcbiAgICBVcGRhdGVDb250cmFjdFJlc3BvbnNlLFxuICAgIFVwZGF0ZUNvbnRyYWN0U3Vic2NyaXB0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9jb250cmFjdCc7XG5cbmV4cG9ydCB7XG4gICAgQ3VzdG9tZXJTdW1tYXJ5LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXF1ZXN0LFxuICAgIEdldE11bHRpQ3VzdG9tZXJTdW1tYXJpZXNSZXNwb25zZSxcbn0gZnJvbSAnLi9jdXN0b21lci1zdW1tYXJ5JztcblxuZXhwb3J0IHtcbiAgICBCYW5rQWNjb3VudCxcbiAgICBDcmVhdGVTdHJpcGVFeHRlcm5hbEFjY291bnRSZXF1ZXN0LFxuICAgIERlbGV0ZUJhbmtBY2NvdW50UmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVxdWVzdCxcbiAgICBMaXN0QmFua0FjY291bnRzUmVzcG9uc2UsXG4gICAgU2V0RGVmYXVsdEJhbmtBY2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9leHRlcm5hbC1hY2NvdW50JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0U3VtbWFyeURpc2NvdW50LFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25SZXF1ZXN0RmlsdGVycyxcbiAgICBHZXRQcm9kdWN0U3VtbWFyaWVzVG90YWxSZXF1ZXN0LFxuICAgIEdldFByb2R1Y3RTdW1tYXJpZXNUb3RhbFJlc3BvbnNlLFxuICAgIExpc3RQcm9kdWN0U3VtbWFyaWVzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdFN1bW1hcmllc1Jlc3BvbnNlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvbkJ5U0tVUmVzcG9uc2UsXG4gICAgTGlzdFN1YnNjcmlwdGlvblJldGVudGlvblJlcXVlc3QsXG4gICAgUHJpY2luZyxcbiAgICBQcm9kdWN0U3VtbWFyeSxcbiAgICBSZXRlbnRpb25NZXRyaWNzLFxuICAgIFByaWNpbmdSdWxlLFxuICAgIExpc3RTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwUmVzcG9uc2VTdWJzY3JpcHRpb25SZXRlbnRpb25CeUdyb3VwLFxufSBmcm9tICcuL3Byb2R1Y3Qtc3VtbWFyeSc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlRGlzY291bnRSZXF1ZXN0LFxuICAgIERpc2NvdW50LFxuICAgIEV4cGlyZURpc2NvdW50UmVxdWVzdCxcbiAgICBMaXN0RGlzY291bnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdERpc2NvdW50c1JlcXVlc3QsXG4gICAgTGlzdERpc2NvdW50c1Jlc3BvbnNlLFxuICAgIFVwZGF0ZURpc2NvdW50UmVxdWVzdCxcbn0gZnJvbSAnLi9kaXNjb3VudCc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZFRheFJhdGUsXG59IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgRmllbGRNYXNrLFxufSBmcm9tICcuL2ZpZWxkLW1hc2snO1xuXG5leHBvcnQge1xuICAgIEFyY2hpdmVUYXhSZXF1ZXN0LFxuICAgIENhbGN1bGF0ZVRheFJlcXVlc3QsXG4gICAgQ2FsY3VsYXRlVGF4UmVzcG9uc2UsXG4gICAgQ3JlYXRlVGF4UmVxdWVzdCxcbiAgICBMaXN0VGF4UmVxdWVzdEZpbHRlcnMsXG4gICAgR2V0TXVsdGlUYXhSZXF1ZXN0LFxuICAgIEdldE11bHRpVGF4UmVzcG9uc2UsXG4gICAgTGlzdFRheFJlcXVlc3QsXG4gICAgTGlzdFRheFJlc3BvbnNlLFxuICAgIFRheFJhdGUsXG4gICAgVXBkYXRlVGF4UmVxdWVzdCxcbn0gZnJvbSAnLi90YXgtcmF0ZSc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZEJ1bmRsZSxcbiAgICBBcHBsaWVkQnVuZGxlSXRlbSxcbn0gZnJvbSAnLi9hcHBsaWVkLWJ1bmRsZSc7XG5cbmV4cG9ydCB7XG4gICAgQWRkQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRCdW5kbGVSZXNwb25zZSxcbiAgICBBZGRMaW5lSXRlbVJlcXVlc3QsXG4gICAgQWRkTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDaGFyZ2VJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVxdWVzdCxcbiAgICBDcmVhdGVJbnZvaWNlUmVzcG9uc2UsXG4gICAgSW52b2ljZUN1c3RvbWVyQWRkcmVzcyxcbiAgICBMaXN0SW52b2ljZXNSZXF1ZXN0RmlsdGVyc0RhdGVGaWx0ZXIsXG4gICAgRGVsZXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRGVsZXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlcXVlc3QsXG4gICAgRHVwbGljYXRlSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3RGaWx0ZXJzLFxuICAgIEdldEludm9pY2VSZXF1ZXN0LFxuICAgIEdldEludm9pY2VSZXNwb25zZSxcbiAgICBJbnZvaWNlLFxuICAgIEludm9pY2VJdGVtLFxuICAgIExpc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgTGlzdEludm9pY2VzUmVzcG9uc2UsXG4gICAgUGF5SW52b2ljZVJlcXVlc3QsXG4gICAgUmVtb3ZlQnVuZGxlUmVxdWVzdCxcbiAgICBSZW1vdmVCdW5kbGVSZXNwb25zZSxcbiAgICBTZW5kSW52b2ljZVJlcXVlc3QsXG4gICAgVXBkYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBVcGRhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0LFxuICAgIFVwZGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlLFxuICAgIFVwZGF0ZUludm9pY2VSZXF1ZXN0LFxuICAgIFVwZGF0ZUludm9pY2VSZXNwb25zZSxcbiAgICBVcGRhdGVMaW5lSXRlbVJlcXVlc3QsXG4gICAgVXBkYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBWb2lkSW52b2ljZVJlcXVlc3QsXG59IGZyb20gJy4vaW52b2ljZSc7XG5cbmV4cG9ydCB7XG4gICAgQmFsYW5jZSxcbn0gZnJvbSAnLi9iYWxhbmNlJztcblxuZXhwb3J0IHtcbiAgICBEYXRlUmFuZ2UsXG59IGZyb20gJy4vZGF0ZS1yYW5nZSc7XG5cbmV4cG9ydCB7XG4gICAgTGlzdFBheW91dHNSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0UGF5b3V0c1JlcXVlc3QsXG4gICAgTGlzdFBheW91dHNSZXNwb25zZSxcbiAgICBQYXlvdXQsXG4gICAgUmVjb25jaWxlUGF5b3V0UmVxdWVzdCxcbiAgICBSZWNvbmNpbGVQYXlvdXRSZXNwb25zZSxcbiAgICBSZXRhaWxQYXlvdXQsXG59IGZyb20gJy4vcGF5b3V0JztcblxuZXhwb3J0IHtcbn0gZnJvbSAnLi9zb3J0LWRpcmVjdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQ2hhcmdlU2FsZXNJbnZvaWNlUmVxdWVzdCxcbiAgICBDb25uZWN0U3RyaXBlQWNjb3VudFJlcXVlc3QsXG4gICAgQ29ubmVjdFN0cmlwZUFjY291bnRSZXNwb25zZSxcbiAgICBDcmVhdGVNZXJjaGFudFJlcXVlc3QsXG4gICAgRGVmYXVsdEN1c3RvbWVyQ29uZmlndXJhdGlvbixcbiAgICBHZXRNZXJjaGFudFJlcXVlc3QsXG4gICAgR2V0TWVyY2hhbnRSZXNwb25zZSxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVxdWVzdCxcbiAgICBHZXRNdWx0aVJldGFpbENvbmZpZ3VyYXRpb25zUmVzcG9uc2UsXG4gICAgR2V0T3V0c3RhbmRpbmdCYWxhbmNlUmVxdWVzdCxcbiAgICBHZXRPdXRzdGFuZGluZ0JhbGFuY2VSZXNwb25zZSxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVxdWVzdCxcbiAgICBHZXRQYXlvdXRTdW1tYXJ5UmVzcG9uc2UsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlcXVlc3QsXG4gICAgR2V0UmV0YWlsQmFsYW5jZVJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW91dFJlcXVlc3QsXG4gICAgR2V0UmV0YWlsUGF5b3V0UmVzcG9uc2UsXG4gICAgQ3JlYXRlTWVyY2hhbnRSZXF1ZXN0SW5jbHVkZUluRmluYW5jaWFsUmVjb3JkcyxcbiAgICBVcGRhdGVNZXJjaGFudFJlcXVlc3RJbmNsdWRlSW5GaW5hbmNpYWxSZWNvcmRzLFxuICAgIExpc3RSZXRhaWxQYXlvdXRzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsUGF5b3V0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50LFxuICAgIFJldGFpbENvbmZpZ3VyYXRpb24sXG4gICAgR2V0TXVsdGlSZXRhaWxDb25maWd1cmF0aW9uc1Jlc3BvbnNlUmV0YWlsQ29uZmlndXJhdGlvbnNFbnRyeSxcbiAgICBTZWFyY2hNZXJjaGFudHNSZXF1ZXN0LFxuICAgIFNlYXJjaE1lcmNoYW50c1Jlc3BvbnNlLFxuICAgIFNldEF1dG9DaGFyZ2VJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0QXV0b1Bvc3RJbnZvaWNlc1JlcXVlc3QsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBTZXRIYXNBbHRlcm5hdGl2ZVBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFNldEluY2x1ZGVJbkZpbmFuY2lhbFJlY29yZHNSZXF1ZXN0LFxuICAgIFVwZGF0ZU1lcmNoYW50UmVxdWVzdCxcbiAgICBVcHNlcnREZWZhdWx0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBVcHNlcnRSZXRhaWxDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9tZXJjaGFudCc7XG5cbmV4cG9ydCB7XG59IGZyb20gJy4vbW9udGgnO1xuXG5leHBvcnQge1xuICAgIExpc3RNZXJjaGFudEJpbGxpbmdSZXBvcnRzUmVxdWVzdCxcbiAgICBMaXN0TWVyY2hhbnRCaWxsaW5nUmVwb3J0c1Jlc3BvbnNlLFxuICAgIE1lcmNoYW50UmVwb3J0LFxufSBmcm9tICcuL21lcmNoYW50LXJlcG9ydCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlTWV0ZXJlZENvbXBvbmVudFJlcXVlc3QsXG4gICAgTWV0ZXJlZENvbXBvbmVudCxcbiAgICBUaWNrQ29tcG9uZW50VXNhZ2VSZXF1ZXN0LFxufSBmcm9tICcuL21ldGVyZWQtY29tcG9uZW50JztcblxuZXhwb3J0IHtcbn0gZnJvbSAnLi9jYXJkJztcblxuZXhwb3J0IHtcbiAgICBSZXRhaWxQYXltZW50Q2FyZERldGFpbHMsXG4gICAgQ2xvc2VSZXRhaWxEaXNwdXRlUmVxdWVzdCxcbiAgICBDb25maWd1cmVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIENvbmZpZ3VyZVJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIENvbmZpcm1SZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBEaXNwdXRlLFxuICAgIERpc3B1dGVFdmlkZW5jZSxcbiAgICBTdWJtaXRFdmlkZW5jZVJlcXVlc3REaXNwdXRlRXZpZGVuY2UsXG4gICAgRGlzcHV0ZUV2aWRlbmNlRGV0YWlscyxcbiAgICBGaWxlLFxuICAgIEdldFJldGFpbERpc3B1dGVSZXF1ZXN0LFxuICAgIEdldFJldGFpbERpc3B1dGVSZXNwb25zZSxcbiAgICBHZXRSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRQcm92aWRlclJlc3BvbnNlLFxuICAgIEdldFJldGFpbFBheW1lbnRSZXF1ZXN0LFxuICAgIEdldFJldGFpbFBheW1lbnRSZXNwb25zZSxcbiAgICBMaXN0UGF5bWVudFJlcXVlc3RMaXN0UGF5bWVudEZpbHRlcnMsXG4gICAgTGlzdFBheW1lbnRSZXF1ZXN0LFxuICAgIExpc3RQYXltZW50UmVzcG9uc2UsXG4gICAgTGlzdFJldGFpbERpc3B1dGVzUmVxdWVzdCxcbiAgICBMaXN0UmV0YWlsRGlzcHV0ZXNSZXNwb25zZSxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0TGlzdFJldGFpbFBheW1lbnRzRmlsdGVycyxcbiAgICBMaXN0UmV0YWlsUGF5bWVudHNSZXF1ZXN0LFxuICAgIExpc3RSZXRhaWxQYXltZW50c1Jlc3BvbnNlLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdE9yZGVyLFxuICAgIFBheW1lbnQsXG4gICAgUGF5bWVudFBheW1lbnRBbGxvY2F0aW9uLFxuICAgIFByZXBhcmVSZXRhaWxQYXltZW50UmVxdWVzdCxcbiAgICBQcmVwYXJlUmV0YWlsUGF5bWVudFJlc3BvbnNlLFxuICAgIFJldGFpbFBheW1lbnQsXG4gICAgUmV0YWlsUGF5bWVudHNFbmFibGVkUmVxdWVzdCxcbiAgICBSZXRhaWxQYXltZW50c0VuYWJsZWRSZXNwb25zZSxcbiAgICBSZXRhaWxTdGF0dXNSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlLFxuICAgIFN1Ym1pdEV2aWRlbmNlUmVxdWVzdCxcbiAgICBVcGRhdGVSZXRhaWxQYXltZW50UHJvdmlkZXJSZXF1ZXN0LFxuICAgIFJldGFpbFN0YXR1c1Jlc3BvbnNlVmVyaWZpY2F0aW9uRXJyb3IsXG4gICAgUmV0YWlsU3RhdHVzUmVzcG9uc2VWZXJpZmljYXRpb25SZXF1aXJlbWVudHMsXG59IGZyb20gJy4vcGF5bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUGF5bWVudENhcmRSZXF1ZXN0LFxuICAgIERlbGV0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVxdWVzdCxcbiAgICBMaXN0UGF5bWVudENhcmRzUmVzcG9uc2UsXG4gICAgUGF5bWVudENhcmQsXG4gICAgU2V0RGVmYXVsdFBheW1lbnRNZXRob2RSZXF1ZXN0LFxuICAgIFVwZGF0ZVBheW1lbnRDYXJkUmVxdWVzdCxcbn0gZnJvbSAnLi9wYXltZW50LWNhcmQnO1xuXG5leHBvcnQge1xuICAgIENvbXBvbmVudFByaWNpbmcsXG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5SZXF1ZXN0LFxuICAgIENyZWF0ZVByaWNpbmdQbGFuUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcmljaW5nUGxhblJlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmcsXG4gICAgUHJvZHVjdFByaWNpbmdSdWxlLFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUmVxdWVzdCxcbiAgICBVcGRhdGVQcmljaW5nUGxhblJlc3BvbnNlLFxufSBmcm9tICcuL3ByaWNpbmctcGxhbic7XG5cbmV4cG9ydCB7XG4gICAgQ3JlYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXNwb25zZSxcbiAgICBEZWxldGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJpY2luZ1BsYW5Qcm9kdWN0UmVxdWVzdCxcbiAgICBHZXRNdWx0aVByaWNpbmdQbGFuUHJvZHVjdFJlc3BvbnNlLFxuICAgIEdldFByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0UHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByaWNpbmdQbGFuUHJvZHVjdHNSZXF1ZXN0TGlzdFByaWNpbmdQbGFuUHJvZHVjdHNGaWx0ZXJzLFxuICAgIExpc3RQcmljaW5nUGxhblByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJpY2luZ1BsYW5Qcm9kdWN0c1Jlc3BvbnNlLFxuICAgIFByaWNpbmdQbGFuUHJvZHVjdFByaWNpbmdFbnRyeSxcbiAgICBDcmVhdGVQcmljaW5nUGxhblByb2R1Y3RSZXF1ZXN0UHJpY2luZ0VudHJ5LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3RQcmljaW5nRW50cnksXG4gICAgUHJpY2luZ1BsYW5Qcm9kdWN0LFxuICAgIFVwZGF0ZVByaWNpbmdQbGFuUHJvZHVjdFJlcXVlc3QsXG4gICAgVXBkYXRlUHJpY2luZ1BsYW5Qcm9kdWN0UmVzcG9uc2UsXG4gICAgVXBzZXJ0V2hvbGVzYWxlUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vcHJpY2luZy1wbGFuLXByb2R1Y3QnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIERlbGV0ZVByb2R1Y3RSZXF1ZXN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UmVzcG9uc2UsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdExpc3RQcm9kdWN0c0ZpbHRlcnMsXG4gICAgTGlzdFByb2R1Y3RzUmVxdWVzdCxcbiAgICBMaXN0UHJvZHVjdHNSZXNwb25zZSxcbiAgICBQcm9kdWN0LFxuICAgIEdldE11bHRpUHJvZHVjdFJlc3BvbnNlUHJvZHVjdHNFbnRyeSxcbiAgICBVcGRhdGVQcm9kdWN0UmVxdWVzdCxcbn0gZnJvbSAnLi9wcm9kdWN0JztcblxuZXhwb3J0IHtcbiAgICBQcm9kdWN0UHJpY2VzLFxuICAgIFByb2R1Y3RQcmljaW5nLFxufSBmcm9tICcuL3Byb2R1Y3QtcHJpY2luZyc7XG5cbmV4cG9ydCB7XG4gICAgQXBwbGllZENyZWRpdCxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0TGlzdFB1cmNoYXNlQmlsbGluZ1N0cmF0ZWd5RmlsdGVyLFxuICAgIExpc3RQdXJjaGFzZVJlcXVlc3RMaXN0UHVyY2hhc2VGaWx0ZXJzLFxuICAgIExpc3RQdXJjaGFzZUl0ZW1zUmVxdWVzdExpc3RQdXJjaGFzZUl0ZW1zRmlsdGVycyxcbiAgICBMaXN0UHVyY2hhc2VJdGVtc1JlcXVlc3QsXG4gICAgTGlzdFB1cmNoYXNlSXRlbXNSZXNwb25zZSxcbiAgICBMaXN0UHVyY2hhc2VSZXF1ZXN0LFxuICAgIExpc3RQdXJjaGFzZVJlc3BvbnNlLFxuICAgIFB1cmNoYXNlLFxuICAgIFB1cmNoYXNlSXRlbSxcbiAgICBSZXRyeVB1cmNoYXNlUmVxdWVzdCxcbiAgICBWb2lkUHVyY2hhc2VSZXF1ZXN0LFxufSBmcm9tICcuL3B1cmNoYXNlJztcblxuZXhwb3J0IHtcbiAgICBDcmVhdGVSZWZ1bmRSZXF1ZXN0LFxuICAgIExpc3RSZWZ1bmRzUmVxdWVzdCxcbiAgICBMaXN0UmVmdW5kc1Jlc3BvbnNlLFxuICAgIFJlZnVuZCxcbn0gZnJvbSAnLi9yZWZ1bmQnO1xuXG5leHBvcnQge1xuICAgIENyZWF0ZVNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzQ3JlZGl0Tm90ZVJlcXVlc3RMaXN0U2FsZXNDcmVkaXROb3RlRmlsdGVycyxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVxdWVzdCxcbiAgICBMaXN0U2FsZXNDcmVkaXROb3RlUmVzcG9uc2UsXG4gICAgU2FsZXNDcmVkaXROb3RlLFxufSBmcm9tICcuL3NhbGVzLWNyZWRpdC1ub3RlJztcblxuZXhwb3J0IHtcbiAgICBHZXRTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIEdldFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIExpc3RTYWxlc0ludm9pY2VSZXF1ZXN0TGlzdFNhbGVzSW52b2ljZUZpbHRlcnMsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlcXVlc3QsXG4gICAgTGlzdFNhbGVzSW52b2ljZVJlc3BvbnNlLFxuICAgIFBvc3RTYWxlc0ludm9pY2VSZXF1ZXN0LFxuICAgIFNhbGVzSW52b2ljZSxcbiAgICBTZW5kU2FsZXNJbnZvaWNlRW1haWxSZXF1ZXN0LFxuICAgIFNlbmRTYWxlc0ludm9pY2VSZWNlaXB0RW1haWxSZXF1ZXN0LFxufSBmcm9tICcuL3NhbGVzLWludm9pY2UnO1xuXG5leHBvcnQge1xuICAgIFN1YnNjcmliZVZhbGlkYXRpb24sXG59IGZyb20gJy4vc3Vic2NyaWJlLXZhbGlkYXRpb24nO1xuXG5leHBvcnQge1xuICAgIEFsaWdubWVudFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdCxcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVzcG9uc2UsXG4gICAgQ2hhbmdlQ3VzdG9tVW5pdFByaWNlUmVxdWVzdCxcbiAgICBDaGFuZ2VGcmVxdWVuY3lSZXF1ZXN0LFxuICAgIENoYW5nZVJlbmV3YWxEYXRlUmVxdWVzdCxcbiAgICBDcmVhdGVTdWJzY3JpcHRpb25SZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0LFxuICAgIENyZWF0ZVN1YnNjcmlwdGlvbnNSZXNwb25zZSxcbiAgICBSZXZlcnNlU3Vic2NyaXB0aW9uUmVxdWVzdCxcbiAgICBTZXRSZW5ld2FsU3RhcnRSZXF1ZXN0LFxuICAgIENhbkNyZWF0ZVN1YnNjcmlwdGlvbnNSZXF1ZXN0U2t1c0VudHJ5LFxuICAgIFN1YnNjcmlwdGlvbixcbiAgICBDYW5DcmVhdGVTdWJzY3JpcHRpb25zUmVxdWVzdFN1YnNjcmlwdGlvbkl0ZW0sXG4gICAgVmFsaWRhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9zdWJzY3JpcHRpb24nO1xuXG5leHBvcnQge1xuICAgIENvbnRyYWN0RG9jdW1lbnQsXG4gICAgRGVsZXRlQ29udHJhY3REb2N1bWVudFJlcXVlc3QsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdEZpbHRlcnMsXG4gICAgTGlzdENvbnRyYWN0RG9jdW1lbnRzUmVxdWVzdCxcbiAgICBMaXN0Q29udHJhY3REb2N1bWVudHNSZXNwb25zZSxcbn0gZnJvbSAnLi9jb250cmFjdC1kb2N1bWVudCc7XG5cbmV4cG9ydCB7XG4gICAgR2V0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbiAgICBHZXRSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb25SZXNwb25zZSxcbiAgICBSZXRhaWxDdXN0b21lckNvbmZpZ3VyYXRpb24sXG4gICAgVXBzZXJ0UmV0YWlsQ3VzdG9tZXJDb25maWd1cmF0aW9uUmVxdWVzdCxcbn0gZnJvbSAnLi9yZXRhaWwtY3VzdG9tZXItY29uZmlndXJhdGlvbic7XG5cbmV4cG9ydCB7XG4gICAgQWRkQ3JlZGl0UmVxdWVzdCxcbiAgICBDcmVkaXRCYWxhbmNlLFxuICAgIEdldEJhbGFuY2VSZXF1ZXN0LFxuICAgIEdldEJhbGFuY2VSZXNwb25zZSxcbn0gZnJvbSAnLi9jcmVkaXQnO1xuXG5leHBvcnQge1xuICAgIEFkZFRlbXBsYXRlQnVuZGxlUmVxdWVzdCxcbiAgICBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlLFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIEFkZFRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBDcmVhdGVUZW1wbGF0ZVJlcXVlc3QsXG4gICAgQ3JlYXRlVGVtcGxhdGVSZXNwb25zZSxcbiAgICBEZWxldGVJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0LFxuICAgIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSxcbiAgICBHZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0LFxuICAgIEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlLFxuICAgIEludm9pY2VUZW1wbGF0ZSxcbiAgICBJbnZvaWNlVGVtcGxhdGVJdGVtLFxuICAgIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3QsXG4gICAgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXNwb25zZSxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCxcbiAgICBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2UsXG4gICAgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCxcbiAgICBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSxcbn0gZnJvbSAnLi9pbnZvaWNlLXRlbXBsYXRlJztcblxuZXhwb3J0IHtcbiAgICBEZWxldGVSZXRhaWxQcmljaW5nUmVxdWVzdCxcbiAgICBHZW5lcmF0ZUJpbGxhYmxlSXRlbXNDU1ZSZXF1ZXN0LFxuICAgIEdlbmVyYXRlQmlsbGFibGVJdGVtc0NTVlJlc3BvbnNlLFxuICAgIEdlbmVyYXRlVmVuZG9yUmVwb3J0UmVxdWVzdCxcbiAgICBHZW5lcmF0ZVZlbmRvclJlcG9ydFJlc3BvbnNlLFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlCdW5kbGVSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlLFxuICAgIEdldE11bHRpUmV0YWlsUHJpY2luZ1JlcXVlc3QsXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2UsXG4gICAgR2V0UHVyY2hhc2VDb3N0UmVxdWVzdCxcbiAgICBHZXRQdXJjaGFzZUNvc3RSZXNwb25zZSxcbiAgICBHZXRSZXZlbnVlU3RhdHNSZXF1ZXN0LFxuICAgIEdldFJldmVudWVTdGF0c1Jlc3BvbnNlLFxuICAgIEdldFN0YXRpc3RpY3NSZXF1ZXN0LFxuICAgIEdldFN0YXRpc3RpY3NSZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVxdWVzdEdldFdob2xlc2FsZUNvbXBhcmlzb25GaWx0ZXJzLFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXF1ZXN0LFxuICAgIEdldFdob2xlc2FsZUNvbXBhcmlzb25SZXNwb25zZSxcbiAgICBHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzcG9uc2VHZXRXaG9sZXNhbGVDb21wYXJpc29uUmVzdWx0LFxuICAgIEdldE11bHRpQnVuZGxlUmV0YWlsUHJpY2luZ1Jlc3BvbnNlUHJpY2VzRW50cnksXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3RQcmljaW5nRW50cnksXG4gICAgR2V0TXVsdGlSZXRhaWxQcmljaW5nUmVzcG9uc2VQcm9kdWN0UHJpY2VzRW50cnksXG4gICAgR2V0TXVsdGlQcm9kdWN0UHJpY2luZ1Jlc3BvbnNlUHJvZHVjdFByaWNlc0VudHJ5LFxuICAgIFNldFdob2xlc2FsZVByb2R1Y3RTdHJhdGVneVJlcXVlc3QsXG4gICAgU2V0V2hvbGVzYWxlUHJvZHVjdFZvbHVtZUNvbW1pdG1lbnRSZXF1ZXN0LFxuICAgIFN0YXJ0UmV2UmVjVGVtcGxhdGVCYWNrZmlsbFJlcXVlc3QsXG4gICAgVXBzZXJ0UmV0YWlsUHJpY2luZ1JlcXVlc3QsXG59IGZyb20gJy4vYXBpJztcblxuIl19
|
|
@@ -704,4 +704,4 @@ export class UpsertInvoiceTemplateResponse {
|
|
|
704
704
|
return toReturn;
|
|
705
705
|
}
|
|
706
706
|
}
|
|
707
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIvY29kZWZyZXNoL3ZvbHVtZS9iaWxsaW5nL3Nka3MvdHlwZXNjcmlwdC9zcmMvYmlsbGluZ19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9vYmplY3RzL2ludm9pY2UtdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBV2pDLFlBQVksTUFBNEM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFYRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFD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QUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGVBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FBQztRQUN6TixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGNBQXNCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuTixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxX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QyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7U0FBQztRQUM3RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0lBVXRDLFlBQVksTUFBaUQ7UUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBQzVDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFBQyxDQUFDLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQUM7UUFDbEcsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZUFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUFDO1FBQ3pOLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFwcGxpZWRCdW5kbGUgfSBmcm9tICcuL2FwcGxpZWQtYnVuZGxlJztcbmltcG9ydCB7IEFwcGxpZWREaXNjb3VudCB9IGZyb20gJy4vYXBwbGllZC1kaXNjb3VudCc7XG5pbXBvcnQgeyBBcHBsaWVkVGF4UmF0ZSB9IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5pbXBvcnQgeyBUYXhSYXRlIH0gZnJvbSAnLi90YXgtcmF0ZSc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QgaW1wbGVtZW50cyBpLkFkZFRlbXBsYXRlQnVuZGxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQWRkVGVtcGxhdGVCdW5kbGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVCdW5kbGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1bmRsZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydidW5kbGVJZCddID0gdGhpcy5idW5kbGVJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFkZFRlbXBsYXRlQnVuZGxlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgdW5pdFByaWNlOiBudW1iZXI7XG4gICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHRheFJhdGVzOiBzdHJpbmdbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFkZFRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udW5pdFByaWNlKSB7bS51bml0UHJpY2UgPSBwYXJzZUludChwcm90by51bml0UHJpY2UsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51bml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VuaXRQcmljZSddID0gdGhpcy51bml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9IHRoaXMudGF4UmF0ZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5BZGRUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVRlbXBsYXRlUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVRlbXBsYXRlUmVzcG9uc2UgaW1wbGVtZW50cyBpLkNyZWF0ZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVGVtcGxhdGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVRlbXBsYXRlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW52b2ljZVRlbXBsYXRlKSB7bS5pbnZvaWNlVGVtcGxhdGUgPSBJbnZvaWNlVGVtcGxhdGUuZnJvbVByb3RvKHByb3RvLmludm9pY2VUZW1wbGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNyZWF0ZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUludm9pY2VUZW1wbGF0ZVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZUludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlSW52b2ljZVRlbXBsYXRlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlSW52b2ljZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pbnZvaWNlVGVtcGxhdGUpIHttLmludm9pY2VUZW1wbGF0ZSA9IEludm9pY2VUZW1wbGF0ZS5mcm9tUHJvdG8ocHJvdG8uaW52b2ljZVRlbXBsYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEludm9pY2VUZW1wbGF0ZVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaW52b2ljZVRlbXBsYXRlOiBJbnZvaWNlVGVtcGxhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09IG51bGwpIHt0b1JldHVyblsnaW52b2ljZVRlbXBsYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmludm9pY2VUZW1wbGF0ZSA/ICh0aGlzLmludm9pY2VUZW1wbGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnZvaWNlVGVtcGxhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52b2ljZVRlbXBsYXRlIGltcGxlbWVudHMgaS5JbnZvaWNlVGVtcGxhdGVJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgYXBwbGllZFRheGVzOiBBcHBsaWVkVGF4UmF0ZVtdO1xuICAgIGl0ZW1zOiBJbnZvaWNlVGVtcGxhdGVJdGVtW107XG4gICAgY3VycmVuY3k6IGUuQ3VycmVuY3k7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBzdWJ0b3RhbDogbnVtYmVyO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbiAgICBkZWZhdWx0VGF4UmF0ZXM6IFRheFJhdGVbXTtcbiAgICBhcHBsaWVkQnVuZGxlczogQXBwbGllZEJ1bmRsZVtdO1xuICAgIGFtb3VudERpc2NvdW50OiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBJbnZvaWNlVGVtcGxhdGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBJbnZvaWNlVGVtcGxhdGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYXBwbGllZFRheGVzKSB7bS5hcHBsaWVkVGF4ZXMgPSBwcm90by5hcHBsaWVkVGF4ZXMubWFwKEFwcGxpZWRUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8uaXRlbXMpIHttLml0ZW1zID0gcHJvdG8uaXRlbXMubWFwKEludm9pY2VUZW1wbGF0ZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5jdXJyZW5jeSkge20uY3VycmVuY3kgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkN1cnJlbmN5PihlLkN1cnJlbmN5LCBwcm90by5jdXJyZW5jeSk7fVxuICAgICAgICBpZiAocHJvdG8udG90YWwpIHttLnRvdGFsID0gcGFyc2VJbnQocHJvdG8udG90YWwsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdWJ0b3RhbCkge20uc3VidG90YWwgPSBwYXJzZUludChwcm90by5zdWJ0b3RhbCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by51cGRhdGVkKSB7bS51cGRhdGVkID0gbmV3IERhdGUocHJvdG8udXBkYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8uZGVmYXVsdFRheFJhdGVzKSB7bS5kZWZhdWx0VGF4UmF0ZXMgPSBwcm90by5kZWZhdWx0VGF4UmF0ZXMubWFwKFRheFJhdGUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5hcHBsaWVkQnVuZGxlcykge20uYXBwbGllZEJ1bmRsZXMgPSBwcm90by5hcHBsaWVkQnVuZGxlcy5tYXAoQXBwbGllZEJ1bmRsZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLmFtb3VudERpc2NvdW50KSB7bS5hbW91bnREaXNjb3VudCA9IHBhcnNlSW50KHByb3RvLmFtb3VudERpc2NvdW50LCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkludm9pY2VUZW1wbGF0ZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwbGllZFRheGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcGxpZWRUYXhlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydhcHBsaWVkVGF4ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwbGllZFRheGVzID8gKHRoaXMuYXBwbGllZFRheGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFwcGxpZWRUYXhlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnJlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXJyZW5jeSddID0gdGhpcy5jdXJyZW5jeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b3RhbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG90YWwnXSA9IHRoaXMudG90YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3VidG90YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N1YnRvdGFsJ10gPSB0aGlzLnN1YnRvdGFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3JlYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydjcmVhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNyZWF0ZWQgPyAodGhpcy5jcmVhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXBkYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51cGRhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3VwZGF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudXBkYXRlZCA/ICh0aGlzLnVwZGF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudXBkYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZWZhdWx0VGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVmYXVsdFRheFJhdGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2RlZmF1bHRUYXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5kZWZhdWx0VGF4UmF0ZXMgPyAodGhpcy5kZWZhdWx0VGF4UmF0ZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZGVmYXVsdFRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpZWRCdW5kbGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcGxpZWRCdW5kbGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcGxpZWRCdW5kbGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcGxpZWRCdW5kbGVzID8gKHRoaXMuYXBwbGllZEJ1bmRsZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwbGllZEJ1bmRsZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW1vdW50RGlzY291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Ftb3VudERpc2NvdW50J10gPSB0aGlzLmFtb3VudERpc2NvdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludm9pY2VUZW1wbGF0ZUl0ZW0gaW1wbGVtZW50cyBpLkludm9pY2VUZW1wbGF0ZUl0ZW1JbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHVuaXRQcmljZTogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIGFwcGxpZWRUYXhlczogQXBwbGllZFRheFJhdGVbXTtcbiAgICB0YXhSYXRlczogVGF4UmF0ZVtdO1xuICAgIHN1YnRvdGFsOiBudW1iZXI7XG4gICAgYnVuZGxlSWQ6IHN0cmluZztcbiAgICBkaXNjb3VudHM6IEFwcGxpZWREaXNjb3VudFtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSW52b2ljZVRlbXBsYXRlSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IEludm9pY2VUZW1wbGF0ZUl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udW5pdFByaWNlKSB7bS51bml0UHJpY2UgPSBwYXJzZUludChwcm90by51bml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by50b3RhbCkge20udG90YWwgPSBwYXJzZUludChwcm90by50b3RhbCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmFwcGxpZWRUYXhlcykge20uYXBwbGllZFRheGVzID0gcHJvdG8uYXBwbGllZFRheGVzLm1hcChBcHBsaWVkVGF4UmF0ZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8uc3VidG90YWwpIHttLnN1YnRvdGFsID0gcGFyc2VJbnQocHJvdG8uc3VidG90YWwsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5kaXNjb3VudHMpIHttLmRpc2NvdW50cyA9IHByb3RvLmRpc2NvdW50cy5tYXAoQXBwbGllZERpc2NvdW50LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkludm9pY2VUZW1wbGF0ZUl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudW5pdFByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1bml0UHJpY2UnXSA9IHRoaXMudW5pdFByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnF1YW50aXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydxdWFudGl0eSddID0gdGhpcy5xdWFudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG90YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvdGFsJ10gPSB0aGlzLnRvdGFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpZWRUYXhlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBsaWVkVGF4ZXMgIT09IG51bGwpIHt0b1JldHVyblsnYXBwbGllZFRheGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcGxpZWRUYXhlcyA/ICh0aGlzLmFwcGxpZWRUYXhlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hcHBsaWVkVGF4ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJ0b3RhbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3VidG90YWwnXSA9IHRoaXMuc3VidG90YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVuZGxlSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2J1bmRsZUlkJ10gPSB0aGlzLmJ1bmRsZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc2NvdW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5kaXNjb3VudHMgIT09IG51bGwpIHt0b1JldHVyblsnZGlzY291bnRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmRpc2NvdW50cyA/ICh0aGlzLmRpc2NvdW50cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kaXNjb3VudHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5VcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0SW52b2ljZVRlbXBsYXRlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHVuaXRQcmljZTogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB0YXhSYXRlczogc3RyaW5nW107XG4gICAgYnVuZGxlSWQ6IHN0cmluZztcbiAgICBhcHBsaWVkRGlzY291bnRzOiBBcHBsaWVkRGlzY291bnRbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by51bml0UHJpY2UpIHttLnVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmFwcGxpZWREaXNjb3VudHMpIHttLmFwcGxpZWREaXNjb3VudHMgPSBwcm90by5hcHBsaWVkRGlzY291bnRzLm1hcChBcHBsaWVkRGlzY291bnQuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndW5pdFByaWNlJ10gPSB0aGlzLnVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5xdWFudGl0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncXVhbnRpdHknXSA9IHRoaXMucXVhbnRpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRheFJhdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gdGhpcy50YXhSYXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idW5kbGVJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVuZGxlSWQnXSA9IHRoaXMuYnVuZGxlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwbGllZERpc2NvdW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBsaWVkRGlzY291bnRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcGxpZWREaXNjb3VudHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwbGllZERpc2NvdW50cyA/ICh0aGlzLmFwcGxpZWREaXNjb3VudHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwbGllZERpc2NvdW50czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QgaW1wbGVtZW50cyBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuICAgIGhpZGVCdW5kbGVJdGVtczogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idW5kbGVJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVuZGxlSWQnXSA9IHRoaXMuYnVuZGxlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGlkZUJ1bmRsZUl0ZW1zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoaWRlQnVuZGxlSXRlbXMnXSA9IHRoaXMuaGlkZUJ1bmRsZUl0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2UgaW1wbGVtZW50cyBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW52b2ljZVRlbXBsYXRlKSB7bS5pbnZvaWNlVGVtcGxhdGUgPSBJbnZvaWNlVGVtcGxhdGUuZnJvbVByb3RvKHByb3RvLmludm9pY2VUZW1wbGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHRheFJhdGVJZHM6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRheFJhdGVJZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RheFJhdGVJZHMnXSA9IHRoaXMudGF4UmF0ZUlkczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICB1bml0UHJpY2U6IG51bWJlcjtcbiAgICBxdWFudGl0eTogbnVtYmVyO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgdGF4UmF0ZXM6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by51bml0UHJpY2UpIHttLnVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnVuaXRQcmljZSwgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51bml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VuaXRQcmljZSddID0gdGhpcy51bml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9IHRoaXMudGF4UmF0ZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3QgaW1wbGVtZW50cyBpLlVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgaXRlbXM6IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdFtdO1xuICAgIGRlZmF1bHRUYXhSYXRlczogc3RyaW5nW107XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVmYXVsdFRheFJhdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZWZhdWx0VGF4UmF0ZXMnXSA9IHRoaXMuZGVmYXVsdFRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnJlbmN5Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VycmVuY3lDb2RlJ10gPSB0aGlzLmN1cnJlbmN5Q29kZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSBpbXBsZW1lbnRzIGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pbnZvaWNlVGVtcGxhdGUpIHttLmludm9pY2VUZW1wbGF0ZSA9IEludm9pY2VUZW1wbGF0ZS5mcm9tUHJvdG8ocHJvdG8uaW52b2ljZVRlbXBsYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|
|
707
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2ljZS10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIvd29ya3NwYWNlL3Nka3MvdHlwZXNjcmlwdC9zcmMvYmlsbGluZ19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL19pbnRlcm5hbC9vYmplY3RzL2ludm9pY2UtdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFVBQVUsQ0FBQztBQUU5QixNQUFNLFVBQVUsaUJBQWlCLENBQUksT0FBWSxFQUFFLEtBQWE7SUFDOUQsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFFRCxNQUFNLE9BQU8sd0JBQXdCO0lBV2pDLFlBQVksTUFBNEM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFYRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSx3QkFBd0IsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFTRCxTQUFTO1FBQ0wsTUFBTSxRQUFRLEdBRVYsRUFBRSxDQUFDO1FBRVAsSUFBSSxPQUFP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QUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFFLElBQUksQ0FBQyxPQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7U0FBQztRQUN6SyxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGVBQXVCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUM7U0FBQztRQUN6TixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUU7WUFBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxXQUFXLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLGNBQXNCLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7U0FBQztRQUNuTixJQUFJLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXLEVBQUU7WUFBQyxR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QyxZQUFZLENBQUM7U0FBQztRQUM3RixPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0lBVXRDLFlBQVksTUFBaUQ7UUFDekQsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNULE9BQU87U0FDVjtRQUNELE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFaRCxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQVU7UUFDdkIsSUFBSSxDQUFDLEdBQUcsSUFBSSw2QkFBNkIsRUFBRSxDQUFDO1FBQzVDLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QixJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFBQyxDQUFDLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQUM7UUFDbEcsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBU0QsU0FBUztRQUNMLE1BQU0sUUFBUSxHQUVWLEVBQUUsQ0FBQztRQUVQLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxLQUFLLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRTtZQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFdBQVcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsZUFBdUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUFDO1FBQ3pOLE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuLy8gQ29kZSBnZW5lcmF0ZWQgYnkgc2RrZ2VuXG4vLyBETyBOT1QgRURJVCEuXG4vL1xuLy8gT2JqZWN0cy5cbi8vICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuaW1wb3J0ICogYXMgaSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFwcGxpZWRCdW5kbGUgfSBmcm9tICcuL2FwcGxpZWQtYnVuZGxlJztcbmltcG9ydCB7IEFwcGxpZWREaXNjb3VudCB9IGZyb20gJy4vYXBwbGllZC1kaXNjb3VudCc7XG5pbXBvcnQgeyBBcHBsaWVkVGF4UmF0ZSB9IGZyb20gJy4vYXBwbGllZC10YXgtcmF0ZSc7XG5pbXBvcnQgeyBUYXhSYXRlIH0gZnJvbSAnLi90YXgtcmF0ZSc7XG5pbXBvcnQgKiBhcyBlIGZyb20gJy4uL2VudW1zJztcblxuZXhwb3J0IGZ1bmN0aW9uIGVudW1TdHJpbmdUb1ZhbHVlPEU+KGVudW1SZWY6IGFueSwgdmFsdWU6IHN0cmluZyk6IEUge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuICByZXR1cm4gZW51bVJlZlt2YWx1ZV07XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QgaW1wbGVtZW50cyBpLkFkZFRlbXBsYXRlQnVuZGxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQWRkVGVtcGxhdGVCdW5kbGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVCdW5kbGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmJ1bmRsZUlkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydidW5kbGVJZCddID0gdGhpcy5idW5kbGVJZDt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlIGltcGxlbWVudHMgaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFkZFRlbXBsYXRlQnVuZGxlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBBZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUJ1bmRsZVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBZGRUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgc2t1OiBzdHJpbmc7XG4gICAgdW5pdFByaWNlOiBudW1iZXI7XG4gICAgcXVhbnRpdHk6IG51bWJlcjtcbiAgICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAgIHRheFJhdGVzOiBzdHJpbmdbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IEFkZFRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udW5pdFByaWNlKSB7bS51bml0UHJpY2UgPSBwYXJzZUludChwcm90by51bml0UHJpY2UsIDEwKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuQWRkVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51bml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VuaXRQcmljZSddID0gdGhpcy51bml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9IHRoaXMudGF4UmF0ZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5BZGRUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQWRkVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5BZGRUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVRlbXBsYXRlUmVxdWVzdCBpbXBsZW1lbnRzIGkuQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgQ3JlYXRlVGVtcGxhdGVSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5DcmVhdGVUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyZWF0ZVRlbXBsYXRlUmVzcG9uc2UgaW1wbGVtZW50cyBpLkNyZWF0ZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogQ3JlYXRlVGVtcGxhdGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IENyZWF0ZVRlbXBsYXRlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW52b2ljZVRlbXBsYXRlKSB7bS5pbnZvaWNlVGVtcGxhdGUgPSBJbnZvaWNlVGVtcGxhdGUuZnJvbVByb3RvKHByb3RvLmludm9pY2VUZW1wbGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkNyZWF0ZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZUludm9pY2VUZW1wbGF0ZVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZUludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgRGVsZXRlSW52b2ljZVRlbXBsYXRlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlSW52b2ljZVRlbXBsYXRlUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3QgaW1wbGVtZW50cyBpLkRlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuICAgIGlkOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBEZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5EZWxldGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSBpbXBsZW1lbnRzIGkuRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IERlbGV0ZVRlbXBsYXRlTGluZUl0ZW1SZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pbnZvaWNlVGVtcGxhdGUpIHttLmludm9pY2VUZW1wbGF0ZSA9IEludm9pY2VUZW1wbGF0ZS5mcm9tUHJvdG8ocHJvdG8uaW52b2ljZVRlbXBsYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuRGVsZXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBHZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IGltcGxlbWVudHMgaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBtZXJjaGFudElkOiBzdHJpbmc7XG4gICAgY3VzdG9tZXJJZDogc3RyaW5nO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogR2V0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEludm9pY2VUZW1wbGF0ZVJlcXVlc3QoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkdldEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlIGltcGxlbWVudHMgaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSB7XG4gICAgaW52b2ljZVRlbXBsYXRlOiBJbnZvaWNlVGVtcGxhdGU7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBHZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IEdldEludm9pY2VUZW1wbGF0ZVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5HZXRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09IG51bGwpIHt0b1JldHVyblsnaW52b2ljZVRlbXBsYXRlJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmludm9pY2VUZW1wbGF0ZSA/ICh0aGlzLmludm9pY2VUZW1wbGF0ZSBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5pbnZvaWNlVGVtcGxhdGU7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgSW52b2ljZVRlbXBsYXRlIGltcGxlbWVudHMgaS5JbnZvaWNlVGVtcGxhdGVJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgYXBwbGllZFRheGVzOiBBcHBsaWVkVGF4UmF0ZVtdO1xuICAgIGl0ZW1zOiBJbnZvaWNlVGVtcGxhdGVJdGVtW107XG4gICAgY3VycmVuY3k6IGUuQ3VycmVuY3k7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBzdWJ0b3RhbDogbnVtYmVyO1xuICAgIGNyZWF0ZWQ6IERhdGU7XG4gICAgdXBkYXRlZDogRGF0ZTtcbiAgICBkZWZhdWx0VGF4UmF0ZXM6IFRheFJhdGVbXTtcbiAgICBhcHBsaWVkQnVuZGxlczogQXBwbGllZEJ1bmRsZVtdO1xuICAgIGFtb3VudERpc2NvdW50OiBudW1iZXI7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBJbnZvaWNlVGVtcGxhdGUge1xuICAgICAgICBsZXQgbSA9IG5ldyBJbnZvaWNlVGVtcGxhdGUoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uYXBwbGllZFRheGVzKSB7bS5hcHBsaWVkVGF4ZXMgPSBwcm90by5hcHBsaWVkVGF4ZXMubWFwKEFwcGxpZWRUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8uaXRlbXMpIHttLml0ZW1zID0gcHJvdG8uaXRlbXMubWFwKEludm9pY2VUZW1wbGF0ZUl0ZW0uZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5jdXJyZW5jeSkge20uY3VycmVuY3kgPSBlbnVtU3RyaW5nVG9WYWx1ZTxlLkN1cnJlbmN5PihlLkN1cnJlbmN5LCBwcm90by5jdXJyZW5jeSk7fVxuICAgICAgICBpZiAocHJvdG8udG90YWwpIHttLnRvdGFsID0gcGFyc2VJbnQocHJvdG8udG90YWwsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5zdWJ0b3RhbCkge20uc3VidG90YWwgPSBwYXJzZUludChwcm90by5zdWJ0b3RhbCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmNyZWF0ZWQpIHttLmNyZWF0ZWQgPSBuZXcgRGF0ZShwcm90by5jcmVhdGVkKTt9XG4gICAgICAgIGlmIChwcm90by51cGRhdGVkKSB7bS51cGRhdGVkID0gbmV3IERhdGUocHJvdG8udXBkYXRlZCk7fVxuICAgICAgICBpZiAocHJvdG8uZGVmYXVsdFRheFJhdGVzKSB7bS5kZWZhdWx0VGF4UmF0ZXMgPSBwcm90by5kZWZhdWx0VGF4UmF0ZXMubWFwKFRheFJhdGUuZnJvbVByb3RvKTt9XG4gICAgICAgIGlmIChwcm90by5hcHBsaWVkQnVuZGxlcykge20uYXBwbGllZEJ1bmRsZXMgPSBwcm90by5hcHBsaWVkQnVuZGxlcy5tYXAoQXBwbGllZEJ1bmRsZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLmFtb3VudERpc2NvdW50KSB7bS5hbW91bnREaXNjb3VudCA9IHBhcnNlSW50KHByb3RvLmFtb3VudERpc2NvdW50LCAxMCk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkludm9pY2VUZW1wbGF0ZUludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwbGllZFRheGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcGxpZWRUYXhlcyAhPT0gbnVsbCkge3RvUmV0dXJuWydhcHBsaWVkVGF4ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwbGllZFRheGVzID8gKHRoaXMuYXBwbGllZFRheGVzIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmFwcGxpZWRUYXhlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pdGVtcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5pdGVtcyAhPT0gbnVsbCkge3RvUmV0dXJuWydpdGVtcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pdGVtcyA/ICh0aGlzLml0ZW1zIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLml0ZW1zO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnJlbmN5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXJyZW5jeSddID0gdGhpcy5jdXJyZW5jeTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50b3RhbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndG90YWwnXSA9IHRoaXMudG90YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc3VidG90YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3N1YnRvdGFsJ10gPSB0aGlzLnN1YnRvdGFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmNyZWF0ZWQgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuY3JlYXRlZCAhPT0gbnVsbCkge3RvUmV0dXJuWydjcmVhdGVkJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmNyZWF0ZWQgPyAodGhpcy5jcmVhdGVkIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmNyZWF0ZWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudXBkYXRlZCAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy51cGRhdGVkICE9PSBudWxsKSB7dG9SZXR1cm5bJ3VwZGF0ZWQnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudXBkYXRlZCA/ICh0aGlzLnVwZGF0ZWQgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMudXBkYXRlZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZWZhdWx0VGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuZGVmYXVsdFRheFJhdGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2RlZmF1bHRUYXhSYXRlcyddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5kZWZhdWx0VGF4UmF0ZXMgPyAodGhpcy5kZWZhdWx0VGF4UmF0ZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuZGVmYXVsdFRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpZWRCdW5kbGVzICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmFwcGxpZWRCdW5kbGVzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcGxpZWRCdW5kbGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcGxpZWRCdW5kbGVzID8gKHRoaXMuYXBwbGllZEJ1bmRsZXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwbGllZEJ1bmRsZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYW1vdW50RGlzY291bnQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Ftb3VudERpc2NvdW50J10gPSB0aGlzLmFtb3VudERpc2NvdW50O31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEludm9pY2VUZW1wbGF0ZUl0ZW0gaW1wbGVtZW50cyBpLkludm9pY2VUZW1wbGF0ZUl0ZW1JbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHVuaXRQcmljZTogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIGFwcGxpZWRUYXhlczogQXBwbGllZFRheFJhdGVbXTtcbiAgICB0YXhSYXRlczogVGF4UmF0ZVtdO1xuICAgIHN1YnRvdGFsOiBudW1iZXI7XG4gICAgYnVuZGxlSWQ6IHN0cmluZztcbiAgICBkaXNjb3VudHM6IEFwcGxpZWREaXNjb3VudFtdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogSW52b2ljZVRlbXBsYXRlSXRlbSB7XG4gICAgICAgIGxldCBtID0gbmV3IEludm9pY2VUZW1wbGF0ZUl0ZW0oKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8udW5pdFByaWNlKSB7bS51bml0UHJpY2UgPSBwYXJzZUludChwcm90by51bml0UHJpY2UsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by50b3RhbCkge20udG90YWwgPSBwYXJzZUludChwcm90by50b3RhbCwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmFwcGxpZWRUYXhlcykge20uYXBwbGllZFRheGVzID0gcHJvdG8uYXBwbGllZFRheGVzLm1hcChBcHBsaWVkVGF4UmF0ZS5mcm9tUHJvdG8pO31cbiAgICAgICAgaWYgKHByb3RvLnRheFJhdGVzKSB7bS50YXhSYXRlcyA9IHByb3RvLnRheFJhdGVzLm1hcChUYXhSYXRlLmZyb21Qcm90byk7fVxuICAgICAgICBpZiAocHJvdG8uc3VidG90YWwpIHttLnN1YnRvdGFsID0gcGFyc2VJbnQocHJvdG8uc3VidG90YWwsIDEwKTt9XG4gICAgICAgIGlmIChwcm90by5kaXNjb3VudHMpIHttLmRpc2NvdW50cyA9IHByb3RvLmRpc2NvdW50cy5tYXAoQXBwbGllZERpc2NvdW50LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLkludm9pY2VUZW1wbGF0ZUl0ZW1JbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5za3UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3NrdSddID0gdGhpcy5za3U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudW5pdFByaWNlICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd1bml0UHJpY2UnXSA9IHRoaXMudW5pdFByaWNlO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnF1YW50aXR5ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydxdWFudGl0eSddID0gdGhpcy5xdWFudGl0eTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5kZXNjcmlwdGlvbiAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnZGVzY3JpcHRpb24nXSA9IHRoaXMuZGVzY3JpcHRpb247fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudG90YWwgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RvdGFsJ10gPSB0aGlzLnRvdGFsO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFwcGxpZWRUYXhlcyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBsaWVkVGF4ZXMgIT09IG51bGwpIHt0b1JldHVyblsnYXBwbGllZFRheGVzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmFwcGxpZWRUYXhlcyA/ICh0aGlzLmFwcGxpZWRUYXhlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5hcHBsaWVkVGF4ZXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudGF4UmF0ZXMgIT09ICd1bmRlZmluZWQnICYmIHRoaXMudGF4UmF0ZXMgIT09IG51bGwpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMudGF4UmF0ZXMgPyAodGhpcy50YXhSYXRlcyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy50YXhSYXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5zdWJ0b3RhbCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc3VidG90YWwnXSA9IHRoaXMuc3VidG90YWw7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYnVuZGxlSWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2J1bmRsZUlkJ10gPSB0aGlzLmJ1bmRsZUlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRpc2NvdW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5kaXNjb3VudHMgIT09IG51bGwpIHt0b1JldHVyblsnZGlzY291bnRzJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLmRpc2NvdW50cyA/ICh0aGlzLmRpc2NvdW50cyBhcyBhbnkpLnRvQXBpSnNvbigpIDogdGhpcy5kaXNjb3VudHM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0IGltcGxlbWVudHMgaS5VcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0SW52b2ljZVRlbXBsYXRlSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIHNrdTogc3RyaW5nO1xuICAgIHVuaXRQcmljZTogbnVtYmVyO1xuICAgIHF1YW50aXR5OiBudW1iZXI7XG4gICAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgICB0YXhSYXRlczogc3RyaW5nW107XG4gICAgYnVuZGxlSWQ6IHN0cmluZztcbiAgICBhcHBsaWVkRGlzY291bnRzOiBBcHBsaWVkRGlzY291bnRbXTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by51bml0UHJpY2UpIHttLnVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnVuaXRQcmljZSwgMTApO31cbiAgICAgICAgaWYgKHByb3RvLmFwcGxpZWREaXNjb3VudHMpIHttLmFwcGxpZWREaXNjb3VudHMgPSBwcm90by5hcHBsaWVkRGlzY291bnRzLm1hcChBcHBsaWVkRGlzY291bnQuZnJvbVByb3RvKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuc2t1ICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydza3UnXSA9IHRoaXMuc2t1O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnVuaXRQcmljZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndW5pdFByaWNlJ10gPSB0aGlzLnVuaXRQcmljZTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5xdWFudGl0eSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsncXVhbnRpdHknXSA9IHRoaXMucXVhbnRpdHk7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRpb24gIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2Rlc2NyaXB0aW9uJ10gPSB0aGlzLmRlc2NyaXB0aW9uO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRheFJhdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWyd0YXhSYXRlcyddID0gdGhpcy50YXhSYXRlczt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idW5kbGVJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVuZGxlSWQnXSA9IHRoaXMuYnVuZGxlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuYXBwbGllZERpc2NvdW50cyAhPT0gJ3VuZGVmaW5lZCcgJiYgdGhpcy5hcHBsaWVkRGlzY291bnRzICE9PSBudWxsKSB7dG9SZXR1cm5bJ2FwcGxpZWREaXNjb3VudHMnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuYXBwbGllZERpc2NvdW50cyA/ICh0aGlzLmFwcGxpZWREaXNjb3VudHMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuYXBwbGllZERpc2NvdW50czt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZUJ1bmRsZVJlcXVlc3QgaW1wbGVtZW50cyBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdEludGVyZmFjZSB7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIGN1c3RvbWVySWQ6IHN0cmluZztcbiAgICBidW5kbGVJZDogc3RyaW5nO1xuICAgIGhpZGVCdW5kbGVJdGVtczogYm9vbGVhbjtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdCB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXF1ZXN0SW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1c3RvbWVySWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2N1c3RvbWVySWQnXSA9IHRoaXMuY3VzdG9tZXJJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5idW5kbGVJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnYnVuZGxlSWQnXSA9IHRoaXMuYnVuZGxlSWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaGlkZUJ1bmRsZUl0ZW1zICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydoaWRlQnVuZGxlSXRlbXMnXSA9IHRoaXMuaGlkZUJ1bmRsZUl0ZW1zO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2UgaW1wbGVtZW50cyBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVCdW5kbGVSZXNwb25zZSB7XG4gICAgICAgIGxldCBtID0gbmV3IFVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2UoKTtcbiAgICAgICAgbSA9IE9iamVjdC5hc3NpZ24obSwgcHJvdG8pO1xuICAgICAgICBpZiAocHJvdG8uaW52b2ljZVRlbXBsYXRlKSB7bS5pbnZvaWNlVGVtcGxhdGUgPSBJbnZvaWNlVGVtcGxhdGUuZnJvbVByb3RvKHByb3RvLmludm9pY2VUZW1wbGF0ZSk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVwZGF0ZVRlbXBsYXRlQnVuZGxlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0SW50ZXJmYWNlIHtcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgbWVyY2hhbnRJZDogc3RyaW5nO1xuICAgIHRheFJhdGVJZHM6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGVtcGxhdGVEZWZhdWx0VGF4UmF0ZXNSZXF1ZXN0KCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1JlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMubWVyY2hhbnRJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnbWVyY2hhbnRJZCddID0gdGhpcy5tZXJjaGFudElkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnRheFJhdGVJZHMgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3RheFJhdGVJZHMnXSA9IHRoaXMudGF4UmF0ZUlkczt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlIGltcGxlbWVudHMgaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlSW50ZXJmYWNlIHtcbiAgICBpbnZvaWNlVGVtcGxhdGU6IEludm9pY2VUZW1wbGF0ZTtcblxuICAgIHN0YXRpYyBmcm9tUHJvdG8ocHJvdG86IGFueSk6IFVwZGF0ZVRlbXBsYXRlRGVmYXVsdFRheFJhdGVzUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZURlZmF1bHRUYXhSYXRlc1Jlc3BvbnNlSW50ZXJmYWNlKSB7XG4gICAgICAgIGlmICgha3dhcmdzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBrd2FyZ3MpO1xuICAgIH1cblxuICAgIHRvQXBpSnNvbigpOiBvYmplY3Qge1xuICAgICAgICBjb25zdCB0b1JldHVybjoge1xuICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICB9ID0ge307XG4gICAgICAgIFxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLmludm9pY2VUZW1wbGF0ZSAhPT0gbnVsbCkge3RvUmV0dXJuWydpbnZvaWNlVGVtcGxhdGUnXSA9ICd0b0FwaUpzb24nIGluIHRoaXMuaW52b2ljZVRlbXBsYXRlID8gKHRoaXMuaW52b2ljZVRlbXBsYXRlIGFzIGFueSkudG9BcGlKc29uKCkgOiB0aGlzLmludm9pY2VUZW1wbGF0ZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCBpbXBsZW1lbnRzIGkuVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgaWQ6IHN0cmluZztcbiAgICBza3U6IHN0cmluZztcbiAgICB1bml0UHJpY2U6IG51bWJlcjtcbiAgICBxdWFudGl0eTogbnVtYmVyO1xuICAgIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gICAgdGF4UmF0ZXM6IHN0cmluZ1tdO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlcXVlc3Qge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by51bml0UHJpY2UpIHttLnVuaXRQcmljZSA9IHBhcnNlSW50KHByb3RvLnVuaXRQcmljZSwgMTApO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVxdWVzdEludGVyZmFjZSkge1xuICAgICAgICBpZiAoIWt3YXJncykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywga3dhcmdzKTtcbiAgICB9XG5cbiAgICB0b0FwaUpzb24oKTogb2JqZWN0IHtcbiAgICAgICAgY29uc3QgdG9SZXR1cm46IHtcbiAgICAgICAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgICAgfSA9IHt9O1xuICAgICAgICBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLm1lcmNoYW50SWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ21lcmNoYW50SWQnXSA9IHRoaXMubWVyY2hhbnRJZDt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5jdXN0b21lcklkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydjdXN0b21lcklkJ10gPSB0aGlzLmN1c3RvbWVySWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaWQgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ2lkJ10gPSB0aGlzLmlkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnNrdSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnc2t1J10gPSB0aGlzLnNrdTt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy51bml0UHJpY2UgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3VuaXRQcmljZSddID0gdGhpcy51bml0UHJpY2U7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMucXVhbnRpdHkgIT09ICd1bmRlZmluZWQnKSB7dG9SZXR1cm5bJ3F1YW50aXR5J10gPSB0aGlzLnF1YW50aXR5O31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmRlc2NyaXB0aW9uICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZXNjcmlwdGlvbiddID0gdGhpcy5kZXNjcmlwdGlvbjt9XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy50YXhSYXRlcyAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsndGF4UmF0ZXMnXSA9IHRoaXMudGF4UmF0ZXM7fVxuICAgICAgICByZXR1cm4gdG9SZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIGltcGxlbWVudHMgaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlIHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBkYXRlVGVtcGxhdGVMaW5lSXRlbVJlc3BvbnNlKCk7XG4gICAgICAgIG0gPSBPYmplY3QuYXNzaWduKG0sIHByb3RvKTtcbiAgICAgICAgaWYgKHByb3RvLmludm9pY2VUZW1wbGF0ZSkge20uaW52b2ljZVRlbXBsYXRlID0gSW52b2ljZVRlbXBsYXRlLmZyb21Qcm90byhwcm90by5pbnZvaWNlVGVtcGxhdGUpO31cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3Ioa3dhcmdzPzogaS5VcGRhdGVUZW1wbGF0ZUxpbmVJdGVtUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3QgaW1wbGVtZW50cyBpLlVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2Uge1xuICAgIG1lcmNoYW50SWQ6IHN0cmluZztcbiAgICBjdXN0b21lcklkOiBzdHJpbmc7XG4gICAgaXRlbXM6IFVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnZvaWNlVGVtcGxhdGVJdGVtUmVxdWVzdFtdO1xuICAgIGRlZmF1bHRUYXhSYXRlczogc3RyaW5nW107XG4gICAgY3VycmVuY3lDb2RlOiBzdHJpbmc7XG5cbiAgICBzdGF0aWMgZnJvbVByb3RvKHByb3RvOiBhbnkpOiBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXF1ZXN0IHtcbiAgICAgICAgbGV0IG0gPSBuZXcgVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdCgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pdGVtcykge20uaXRlbXMgPSBwcm90by5pdGVtcy5tYXAoVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVxdWVzdEludm9pY2VUZW1wbGF0ZUl0ZW1SZXF1ZXN0LmZyb21Qcm90byk7fVxuICAgICAgICByZXR1cm4gbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihrd2FyZ3M/OiBpLlVwc2VydEludm9pY2VUZW1wbGF0ZVJlcXVlc3RJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5tZXJjaGFudElkICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydtZXJjaGFudElkJ10gPSB0aGlzLm1lcmNoYW50SWQ7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuY3VzdG9tZXJJZCAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VzdG9tZXJJZCddID0gdGhpcy5jdXN0b21lcklkO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLml0ZW1zICE9PSAndW5kZWZpbmVkJyAmJiB0aGlzLml0ZW1zICE9PSBudWxsKSB7dG9SZXR1cm5bJ2l0ZW1zJ10gPSAndG9BcGlKc29uJyBpbiB0aGlzLml0ZW1zID8gKHRoaXMuaXRlbXMgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaXRlbXM7fVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVmYXVsdFRheFJhdGVzICE9PSAndW5kZWZpbmVkJykge3RvUmV0dXJuWydkZWZhdWx0VGF4UmF0ZXMnXSA9IHRoaXMuZGVmYXVsdFRheFJhdGVzO31cbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmN1cnJlbmN5Q29kZSAhPT0gJ3VuZGVmaW5lZCcpIHt0b1JldHVyblsnY3VycmVuY3lDb2RlJ10gPSB0aGlzLmN1cnJlbmN5Q29kZTt9XG4gICAgICAgIHJldHVybiB0b1JldHVybjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSBpbXBsZW1lbnRzIGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2Uge1xuICAgIGludm9pY2VUZW1wbGF0ZTogSW52b2ljZVRlbXBsYXRlO1xuXG4gICAgc3RhdGljIGZyb21Qcm90byhwcm90bzogYW55KTogVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2Uge1xuICAgICAgICBsZXQgbSA9IG5ldyBVcHNlcnRJbnZvaWNlVGVtcGxhdGVSZXNwb25zZSgpO1xuICAgICAgICBtID0gT2JqZWN0LmFzc2lnbihtLCBwcm90byk7XG4gICAgICAgIGlmIChwcm90by5pbnZvaWNlVGVtcGxhdGUpIHttLmludm9pY2VUZW1wbGF0ZSA9IEludm9pY2VUZW1wbGF0ZS5mcm9tUHJvdG8ocHJvdG8uaW52b2ljZVRlbXBsYXRlKTt9XG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGt3YXJncz86IGkuVXBzZXJ0SW52b2ljZVRlbXBsYXRlUmVzcG9uc2VJbnRlcmZhY2UpIHtcbiAgICAgICAgaWYgKCFrd2FyZ3MpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGt3YXJncyk7XG4gICAgfVxuXG4gICAgdG9BcGlKc29uKCk6IG9iamVjdCB7XG4gICAgICAgIGNvbnN0IHRvUmV0dXJuOiB7XG4gICAgICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIH0gPSB7fTtcbiAgICAgICAgXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5pbnZvaWNlVGVtcGxhdGUgIT09ICd1bmRlZmluZWQnICYmIHRoaXMuaW52b2ljZVRlbXBsYXRlICE9PSBudWxsKSB7dG9SZXR1cm5bJ2ludm9pY2VUZW1wbGF0ZSddID0gJ3RvQXBpSnNvbicgaW4gdGhpcy5pbnZvaWNlVGVtcGxhdGUgPyAodGhpcy5pbnZvaWNlVGVtcGxhdGUgYXMgYW55KS50b0FwaUpzb24oKSA6IHRoaXMuaW52b2ljZVRlbXBsYXRlO31cbiAgICAgICAgcmV0dXJuIHRvUmV0dXJuO1xuICAgIH1cbn1cblxuIl19
|