@decaf-ts/for-fabric 0.3.53 → 0.4.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/dist/for-fabric.cjs +2 -3748
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -3852
- package/dist/for-fabric.js.map +1 -0
- package/lib/bin/cli.cjs +1 -2
- package/lib/bin/cli.js.map +1 -0
- package/lib/cli-module.cjs +1 -1
- package/lib/cli-module.js.map +1 -0
- package/lib/cli-utils.cjs +1 -1
- package/lib/cli-utils.js.map +1 -0
- package/lib/client/FabricClientAdapter.cjs +1 -1
- package/lib/client/FabricClientAdapter.js.map +1 -0
- package/lib/client/FabricClientDispatch.cjs +1 -1
- package/lib/client/FabricClientDispatch.js.map +1 -0
- package/lib/client/FabricClientPaginator.cjs +1 -1
- package/lib/client/FabricClientPaginator.js.map +1 -0
- package/lib/client/FabricClientRepository.cjs +33 -10
- package/lib/client/FabricClientRepository.d.ts +1 -0
- package/lib/client/FabricClientRepository.js.map +1 -0
- package/lib/client/FabricClientStatement.cjs +15 -10
- package/lib/client/FabricClientStatement.d.ts +1 -1
- package/lib/client/FabricClientStatement.js.map +1 -0
- package/lib/client/collections/generation.cjs +1 -1
- package/lib/client/collections/generation.js.map +1 -0
- package/lib/client/collections/index.cjs +1 -1
- package/lib/client/collections/index.js.map +1 -0
- package/lib/client/constants.cjs +1 -1
- package/lib/client/constants.js.map +1 -0
- package/lib/client/crypto.cjs +1 -1
- package/lib/client/crypto.js.map +1 -0
- package/lib/client/erc20/FabricERC20ClientRepository.cjs +1 -1
- package/lib/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/client/erc20/index.cjs +1 -1
- package/lib/client/erc20/index.js.map +1 -0
- package/lib/client/fabric-fs.cjs +1 -1
- package/lib/client/fabric-fs.js.map +1 -0
- package/lib/client/fabric-hsm.cjs +1 -1
- package/lib/client/fabric-hsm.js.map +1 -0
- package/lib/client/ids/id-extraction.cjs +1 -1
- package/lib/client/ids/id-extraction.js.map +1 -0
- package/lib/client/ids/index.cjs +1 -1
- package/lib/client/ids/index.js.map +1 -0
- package/lib/client/index.cjs +1 -1
- package/lib/client/index.js.map +1 -0
- package/lib/client/indexes/generation.cjs +1 -1
- package/lib/client/indexes/generation.js.map +1 -0
- package/lib/client/indexes/index.cjs +1 -1
- package/lib/client/indexes/index.js.map +1 -0
- package/lib/client/logging.cjs +1 -1
- package/lib/client/logging.js.map +1 -0
- package/lib/client/services/FabricEnrollmentService.cjs +1 -1
- package/lib/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/client/services/FabricIdentityService.cjs +1 -1
- package/lib/client/services/FabricIdentityService.js.map +1 -0
- package/lib/client/services/RegistrationRequestBuilder.cjs +1 -1
- package/lib/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/client/services/constants.cjs +1 -1
- package/lib/client/services/constants.js.map +1 -0
- package/lib/client/services/index.cjs +1 -1
- package/lib/client/services/index.js.map +1 -0
- package/lib/client/types.cjs +1 -1
- package/lib/client/types.js.map +1 -0
- package/lib/client/utils.cjs +1 -1
- package/lib/client/utils.js.map +1 -0
- package/lib/contract/Address.cjs +1 -1
- package/lib/contract/Address.js.map +1 -0
- package/lib/contract/AddressContract.cjs +1 -1
- package/lib/contract/AddressContract.js.map +1 -0
- package/lib/contract/AuditContract.cjs +1 -1
- package/lib/contract/AuditContract.js.map +1 -0
- package/lib/contract/BatchContract.cjs +1 -1
- package/lib/contract/BatchContract.js.map +1 -0
- package/lib/contract/MarketContract.cjs +1 -1
- package/lib/contract/MarketContract.js.map +1 -0
- package/lib/contract/OtherAuditContract.cjs +1 -1
- package/lib/contract/OtherAuditContract.js.map +1 -0
- package/lib/contract/OtherBatchContract.cjs +1 -1
- package/lib/contract/OtherBatchContract.js.map +1 -0
- package/lib/contract/OtherMarketContract.cjs +1 -1
- package/lib/contract/OtherMarketContract.js.map +1 -0
- package/lib/contract/OtherProductContract.cjs +1 -1
- package/lib/contract/OtherProductContract.js.map +1 -0
- package/lib/contract/OtherProductImageContract.cjs +1 -1
- package/lib/contract/OtherProductImageContract.js.map +1 -0
- package/lib/contract/OtherProductSharedContract.cjs +1 -1
- package/lib/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/contract/OtherProductStrengthContract.cjs +1 -1
- package/lib/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/contract/Product.cjs +1 -1
- package/lib/contract/Product.js.map +1 -0
- package/lib/contract/ProductContract.cjs +1 -1
- package/lib/contract/ProductContract.js.map +1 -0
- package/lib/contract/ProductStrengthContract.cjs +1 -1
- package/lib/contract/ProductStrengthContract.js.map +1 -0
- package/lib/contract/SegregatedPrivateDocumentContract.cjs +1 -1
- package/lib/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/contract/SegregatedSharedDocumentContract.cjs +1 -1
- package/lib/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/contract/User.cjs +1 -1
- package/lib/contract/User.js.map +1 -0
- package/lib/contract/UserContract.cjs +1 -1
- package/lib/contract/UserContract.js.map +1 -0
- package/lib/contract/index.cjs +1 -1
- package/lib/contract/index.js.map +1 -0
- package/lib/contract/models/Audit.cjs +1 -1
- package/lib/contract/models/Audit.js.map +1 -0
- package/lib/contract/models/BaseIdentifiedModel.cjs +1 -1
- package/lib/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/contract/models/BaseModel.cjs +1 -1
- package/lib/contract/models/BaseModel.js.map +1 -0
- package/lib/contract/models/Batch.cjs +1 -1
- package/lib/contract/models/Batch.js.map +1 -0
- package/lib/contract/models/GtinOwner.cjs +1 -1
- package/lib/contract/models/GtinOwner.js.map +1 -0
- package/lib/contract/models/History.cjs +1 -1
- package/lib/contract/models/History.js.map +1 -0
- package/lib/contract/models/Leaflet.cjs +1 -1
- package/lib/contract/models/Leaflet.js.map +1 -0
- package/lib/contract/models/LeafletFile.cjs +1 -1
- package/lib/contract/models/LeafletFile.js.map +1 -0
- package/lib/contract/models/Market.cjs +1 -1
- package/lib/contract/models/Market.js.map +1 -0
- package/lib/contract/models/OtherAudit.cjs +1 -1
- package/lib/contract/models/OtherAudit.js.map +1 -0
- package/lib/contract/models/OtherBatchShared.cjs +1 -1
- package/lib/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/contract/models/OtherLeaflet.cjs +1 -1
- package/lib/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/contract/models/OtherLeafletFile.cjs +1 -1
- package/lib/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/contract/models/OtherMarket.cjs +1 -1
- package/lib/contract/models/OtherMarket.js.map +1 -0
- package/lib/contract/models/OtherProduct.cjs +1 -1
- package/lib/contract/models/OtherProduct.js.map +1 -0
- package/lib/contract/models/OtherProductImage.cjs +1 -1
- package/lib/contract/models/OtherProductImage.js.map +1 -0
- package/lib/contract/models/OtherProductShared.cjs +1 -1
- package/lib/contract/models/OtherProductShared.js.map +1 -0
- package/lib/contract/models/OtherProductStrength.cjs +1 -1
- package/lib/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/contract/models/Product.cjs +1 -1
- package/lib/contract/models/Product.js.map +1 -0
- package/lib/contract/models/ProductStrength.cjs +1 -1
- package/lib/contract/models/ProductStrength.js.map +1 -0
- package/lib/contract/models/SegregatedDocument.cjs +1 -1
- package/lib/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/contract/models/constants.cjs +1 -1
- package/lib/contract/models/constants.js.map +1 -0
- package/lib/contract/models/decorators-private.cjs +1 -1
- package/lib/contract/models/decorators-private.js.map +1 -0
- package/lib/contract/models/decorators.cjs +1 -1
- package/lib/contract/models/decorators.js.map +1 -0
- package/lib/contract/models/gtin.cjs +1 -1
- package/lib/contract/models/gtin.js.map +1 -0
- package/lib/contract/models/history-dec.cjs +1 -1
- package/lib/contract/models/history-dec.js.map +1 -0
- package/lib/contracts/ContractAdapter.cjs +3 -3
- package/lib/contracts/ContractAdapter.d.ts +2 -2
- package/lib/contracts/ContractAdapter.js.map +1 -0
- package/lib/contracts/ContractContext.cjs +1 -1
- package/lib/contracts/ContractContext.js.map +1 -0
- package/lib/contracts/FabricContractDispatch.cjs +1 -1
- package/lib/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/contracts/FabricContractPaginator.cjs +1 -1
- package/lib/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/contracts/FabricContractRepository.cjs +65 -2
- package/lib/contracts/FabricContractRepository.js.map +1 -0
- package/lib/contracts/FabricContractRepositoryObservableHandler.cjs +1 -1
- package/lib/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/contracts/FabricContractSequence.cjs +1 -1
- package/lib/contracts/FabricContractSequence.js.map +1 -0
- package/lib/contracts/FabricContractStatement.cjs +13 -11
- package/lib/contracts/FabricContractStatement.d.ts +2 -2
- package/lib/contracts/FabricContractStatement.js.map +1 -0
- package/lib/contracts/PrivateSequence.cjs +1 -1
- package/lib/contracts/PrivateSequence.js.map +1 -0
- package/lib/contracts/auth/decorators.cjs +1 -1
- package/lib/contracts/auth/decorators.js.map +1 -0
- package/lib/contracts/auth/index.cjs +1 -1
- package/lib/contracts/auth/index.js.map +1 -0
- package/lib/contracts/crud/crud-contract.cjs +1 -1
- package/lib/contracts/crud/crud-contract.js.map +1 -0
- package/lib/contracts/crud/index.cjs +1 -1
- package/lib/contracts/crud/index.js.map +1 -0
- package/lib/contracts/crud/serialized-crud-contract.cjs +1 -1
- package/lib/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/contracts/erc20/erc20contract.cjs +1 -1
- package/lib/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/contracts/erc20/index.cjs +1 -1
- package/lib/contracts/erc20/index.js.map +1 -0
- package/lib/contracts/erc20/models.cjs +1 -1
- package/lib/contracts/erc20/models.js.map +1 -0
- package/lib/contracts/index.cjs +1 -1
- package/lib/contracts/index.js.map +1 -0
- package/lib/contracts/logging.cjs +1 -1
- package/lib/contracts/logging.js.map +1 -0
- package/lib/contracts/overrides.cjs +1 -1
- package/lib/contracts/overrides.js.map +1 -0
- package/lib/contracts/types.cjs +1 -1
- package/lib/contracts/types.js.map +1 -0
- package/lib/contracts/uuid.cjs +1 -1
- package/lib/contracts/uuid.js.map +1 -0
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/bin/cli.js.map +1 -0
- package/lib/esm/cli-module.js +1 -1
- package/lib/esm/cli-module.js.map +1 -0
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/cli-utils.js.map +1 -0
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js.map +1 -0
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js.map +1 -0
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js.map +1 -0
- package/lib/esm/client/FabricClientRepository.d.ts +1 -0
- package/lib/esm/client/FabricClientRepository.js +33 -10
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.d.ts +1 -1
- package/lib/esm/client/FabricClientStatement.js +15 -10
- package/lib/esm/client/FabricClientStatement.js.map +1 -0
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/generation.js.map +1 -0
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/collections/index.js.map +1 -0
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/constants.js.map +1 -0
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/crypto.js.map +1 -0
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +1 -0
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/erc20/index.js.map +1 -0
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-fs.js.map +1 -0
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/fabric-hsm.js.map +1 -0
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/id-extraction.js.map +1 -0
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/ids/index.js.map +1 -0
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/index.js.map +1 -0
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/generation.js.map +1 -0
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/indexes/index.js.map +1 -0
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/logging.js.map +1 -0
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +1 -0
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +1 -0
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +1 -0
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/constants.js.map +1 -0
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/services/index.js.map +1 -0
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/types.js.map +1 -0
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/client/utils.js.map +1 -0
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/Address.js.map +1 -0
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AddressContract.js.map +1 -0
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/AuditContract.js.map +1 -0
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/BatchContract.js.map +1 -0
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/MarketContract.js.map +1 -0
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js.map +1 -0
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js.map +1 -0
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js.map +1 -0
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js.map +1 -0
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +1 -0
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +1 -0
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/Product.js.map +1 -0
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductContract.js.map +1 -0
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +1 -0
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +1 -0
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +1 -0
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/User.js.map +1 -0
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/UserContract.js.map +1 -0
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/Audit.js.map +1 -0
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +1 -0
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js.map +1 -0
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/Batch.js.map +1 -0
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js.map +1 -0
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/History.js.map +1 -0
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/Leaflet.js.map +1 -0
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js.map +1 -0
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/Market.js.map +1 -0
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js.map +1 -0
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +1 -0
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +1 -0
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +1 -0
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js.map +1 -0
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js.map +1 -0
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +1 -0
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +1 -0
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +1 -0
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/Product.js.map +1 -0
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js.map +1 -0
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +1 -0
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/constants.js.map +1 -0
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators-private.js.map +1 -0
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/decorators.js.map +1 -0
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/gtin.js.map +1 -0
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contract/models/history-dec.js.map +1 -0
- package/lib/esm/contracts/ContractAdapter.d.ts +2 -2
- package/lib/esm/contracts/ContractAdapter.js +3 -3
- package/lib/esm/contracts/ContractAdapter.js.map +1 -0
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/ContractContext.js.map +1 -0
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +1 -0
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepository.js +65 -2
- package/lib/esm/contracts/FabricContractRepository.js.map +1 -0
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +1 -0
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +1 -0
- package/lib/esm/contracts/FabricContractStatement.d.ts +2 -2
- package/lib/esm/contracts/FabricContractStatement.js +13 -11
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js.map +1 -0
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/decorators.js.map +1 -0
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/auth/index.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +1 -0
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/index.js.map +1 -0
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +1 -0
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +1 -0
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/index.js.map +1 -0
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/erc20/models.js.map +1 -0
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/index.js.map +1 -0
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/logging.js.map +1 -0
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/overrides.js.map +1 -0
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/types.js.map +1 -0
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/contracts/uuid.js.map +1 -0
- package/lib/esm/index.js +1 -1
- package/lib/esm/index.js.map +1 -0
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/ClientSerializer.js.map +1 -0
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/constants.js.map +1 -0
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/decorators.js.map +1 -0
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/erc20/index.js.map +1 -0
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/errors.js.map +1 -0
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/events.js.map +1 -0
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/fabric-types.js.map +1 -0
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/index.js.map +1 -0
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +1 -0
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/interfaces/index.js.map +1 -0
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/math.js.map +1 -0
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/Identity.js.map +1 -0
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/model/index.js.map +1 -0
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/Model.js.map +1 -0
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/index.js.map +1 -0
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/overrides/overrides.js.map +1 -0
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/shared/types.js.map +1 -0
- package/lib/esm/version.d.ts +1 -1
- package/lib/esm/version.js +2 -2
- package/lib/esm/version.js.map +1 -0
- package/lib/index.cjs +1 -1
- package/lib/index.js.map +1 -0
- package/lib/shared/ClientSerializer.cjs +1 -1
- package/lib/shared/ClientSerializer.js.map +1 -0
- package/lib/shared/DeterministicSerializer.cjs +1 -1
- package/lib/shared/DeterministicSerializer.js.map +1 -0
- package/lib/shared/SimpleDeterministicSerializer.cjs +1 -1
- package/lib/shared/SimpleDeterministicSerializer.js.map +1 -0
- package/lib/shared/constants.cjs +1 -1
- package/lib/shared/constants.js.map +1 -0
- package/lib/shared/decorators.cjs +1 -1
- package/lib/shared/decorators.js.map +1 -0
- package/lib/shared/erc20/erc20-constants.cjs +1 -1
- package/lib/shared/erc20/erc20-constants.js.map +1 -0
- package/lib/shared/erc20/index.cjs +1 -1
- package/lib/shared/erc20/index.js.map +1 -0
- package/lib/shared/errors.cjs +1 -1
- package/lib/shared/errors.js.map +1 -0
- package/lib/shared/events.cjs +1 -1
- package/lib/shared/events.js.map +1 -0
- package/lib/shared/fabric-types.cjs +1 -1
- package/lib/shared/fabric-types.js.map +1 -0
- package/lib/shared/index.cjs +1 -1
- package/lib/shared/index.js.map +1 -0
- package/lib/shared/interfaces/Checkable.cjs +1 -1
- package/lib/shared/interfaces/Checkable.js.map +1 -0
- package/lib/shared/interfaces/index.cjs +1 -1
- package/lib/shared/interfaces/index.js.map +1 -0
- package/lib/shared/math.cjs +1 -1
- package/lib/shared/math.js.map +1 -0
- package/lib/shared/model/FabricBaseModel.cjs +1 -1
- package/lib/shared/model/FabricBaseModel.js.map +1 -0
- package/lib/shared/model/FabricIdentifiedBaseModel.cjs +1 -1
- package/lib/shared/model/FabricIdentifiedBaseModel.js.map +1 -0
- package/lib/shared/model/Identity.cjs +1 -1
- package/lib/shared/model/Identity.js.map +1 -0
- package/lib/shared/model/IdentityCredentials.cjs +1 -1
- package/lib/shared/model/IdentityCredentials.js.map +1 -0
- package/lib/shared/model/index.cjs +1 -1
- package/lib/shared/model/index.js.map +1 -0
- package/lib/shared/overrides/Model.cjs +1 -1
- package/lib/shared/overrides/Model.js.map +1 -0
- package/lib/shared/overrides/index.cjs +1 -1
- package/lib/shared/overrides/index.js.map +1 -0
- package/lib/shared/overrides/overrides.cjs +1 -1
- package/lib/shared/overrides/overrides.js.map +1 -0
- package/lib/shared/types.cjs +1 -1
- package/lib/shared/types.js.map +1 -0
- package/lib/version.cjs +2 -2
- package/lib/version.d.ts +1 -1
- package/lib/version.js.map +1 -0
- package/package.json +1 -1
|
@@ -93,20 +93,43 @@ export class FabricClientRepository extends Repository {
|
|
|
93
93
|
log.verbose(`Executing prepared statement ${name}`);
|
|
94
94
|
const callArgs = ctxArgs.slice(0, -1);
|
|
95
95
|
const result = JSON.parse(this.adapter.decode(await this.adapter.evaluateTransaction(ctx, PersistenceKeys.STATEMENT, [name, JSON.stringify(callArgs)], undefined, undefined, this.class.name)));
|
|
96
|
+
let hydrated;
|
|
96
97
|
if (Array.isArray(result)) {
|
|
97
|
-
|
|
98
|
+
hydrated = result.map((r) => r[CouchDBKeys.TABLE] &&
|
|
98
99
|
r[CouchDBKeys.TABLE] === Model.tableName(this.class)
|
|
99
100
|
? new this.class(r)
|
|
100
101
|
: r);
|
|
101
102
|
}
|
|
102
|
-
|
|
103
|
-
result[CouchDBKeys.TABLE] === Model.tableName(this.class)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
else if (result[CouchDBKeys.TABLE] &&
|
|
104
|
+
result[CouchDBKeys.TABLE] === Model.tableName(this.class)) {
|
|
105
|
+
hydrated = new this.class(result);
|
|
106
|
+
}
|
|
107
|
+
else if (FabricClientPaginator.isSerializedPage(result)) {
|
|
108
|
+
hydrated = Object.assign(result, {
|
|
109
|
+
data: result.data.map((d) => new this.class(d)),
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
hydrated = result;
|
|
114
|
+
}
|
|
115
|
+
return this.applyAfterRead(hydrated, ctx);
|
|
116
|
+
}
|
|
117
|
+
async applyAfterRead(value, ctx) {
|
|
118
|
+
if (!ctx.getOrUndefined("afterQueryHandlers"))
|
|
119
|
+
return value;
|
|
120
|
+
if (value instanceof Model) {
|
|
121
|
+
await enforceDBDecorators(this, ctx, value, OperationKeys.READ, OperationKeys.AFTER);
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
if (Array.isArray(value)) {
|
|
125
|
+
await Promise.all(value.map((entry) => this.applyAfterRead(entry, ctx)));
|
|
126
|
+
return value;
|
|
127
|
+
}
|
|
128
|
+
if (FabricClientPaginator.isSerializedPage(value)) {
|
|
129
|
+
await this.applyAfterRead(value.data, ctx);
|
|
130
|
+
return value;
|
|
131
|
+
}
|
|
132
|
+
return value;
|
|
110
133
|
}
|
|
111
134
|
async countOf(key, ...args) {
|
|
112
135
|
const { log, ctxArgs } = (await this.logCtx(args, PreparedStatementKeys.COUNT_OF, true)).for(this.countOf);
|
|
@@ -229,4 +252,4 @@ export class FabricClientRepository extends Repository {
|
|
|
229
252
|
}
|
|
230
253
|
}
|
|
231
254
|
}
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50UmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvRmFicmljQ2xpZW50UmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBS0wsY0FBYyxFQUVkLGVBQWUsRUFDZixxQkFBcUIsRUFDckIsVUFBVSxHQUVYLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3ZELE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsYUFBYSxFQUViLG1CQUFtQixFQUNuQixlQUFlLEdBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQ0FBZ0M7QUFFaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQU0sT0FBTyxzQkFHWCxTQUFRLFVBQWdCO0lBV3hCLFlBQVksT0FBVyxFQUFFLEtBQXNCO1FBQzdDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFYTCxlQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JFLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsY0FBYyxFQUFFLElBQUk7WUFDcEIsa0JBQWtCLEVBQUUsS0FBSztZQUN6Qix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLDBCQUEwQixFQUFFLElBQUk7WUFDaEMsdUJBQXVCLEVBQUUsS0FBSztZQUM5QixvQkFBb0IsRUFBRSxLQUFLO1NBQzVCLENBQUMsQ0FBQztJQUlILENBQUM7SUFFUSxRQUFRLENBQUMsS0FBcUM7UUFDckQsT0FBTyxLQUFLO2FBQ1QsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtB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QUMsRUFBRSxDQUFDLENBQUM7UUFDdEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDMUMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUF1QixFQUN2QixRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQzdCLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFDaEMsR0FBRyxPQUFPLENBQ1gsQ0FBQztRQUNGLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUN4QixDQUFDLEVBQ0QsSUFBSSxDQUFDLEtBQUssRUFDVixFQUFFLEVBQ0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFDckIsR0FBRyxDQUNKLENBQUM7UUFDSixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLHNCQUFzQixDQUFDLEdBQWlCLEVBQUUsS0FBUTtRQUN4RCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgTWF5YmVDb250ZXh0dWFsQXJnIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQge1xuICBDb250ZXh0T2YsXG4gIERpcmVjdGlvbkxpbWl0T2Zmc2V0LFxuICBGbGFnc09mLFxuICBPYnNlcnZlckhhbmRsZXIsXG4gIE9yZGVyRGlyZWN0aW9uLFxuICBQYWdpbmF0b3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBSZXBvc2l0b3J5LFxuICBTZXJpYWxpemVkUGFnZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5pbXBvcnQgeyB0eXBlIEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIGVuZm9yY2VEQkRlY29yYXRvcnMsXG4gIE9wZXJhdGlvbktleXMsXG4gIFByaW1hcnlLZXlUeXBlLFxuICByZWR1Y2VFcnJvcnNUb1ByaW50LFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgQ291Y2hEQktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBGYWJyaWNDbGllbnRQYWdpbmF0b3IgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRQYWdpbmF0b3JcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwb3NpdG9yeSBpbXBsZW1lbnRhdGlvbiBmb3IgRmFicmljIGNsaWVudCBvcGVyYXRpb25zXG4gKiBAc3VtbWFyeSBFeHRlbmRzIHRoZSBnZW5lcmljIFJlcG9zaXRvcnkgdG8gcHJlcGFyZSBjb250ZXh0IGFuZCBhcmd1bWVudHMgZm9yIENSVUQgb3BlcmF0aW9ucyBleGVjdXRlZCB2aWEgYSBGYWJyaWMgY2xpZW50IEFkYXB0ZXIsIHdpcmluZyBSZXBvc2l0b3J5RmxhZ3MgYW5kIEZhYnJpYy1zcGVjaWZpYyBvdmVycmlkZXMuXG4gKiBAdGVtcGxhdGUgTSBleHRlbmRzIE1vZGVsIC0gVGhlIG1vZGVsIHR5cGUgaGFuZGxlZCBieSB0aGlzIHJlcG9zaXRvcnlcbiAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIE1hbmdvUXVlcnksIEZhYnJpY0ZsYWdzLCBDb250ZXh0PEZhYnJpY0ZsYWdzPj59IFthZGFwdGVyXSAtIE9wdGlvbmFsIGFkYXB0ZXIgaW5zdGFuY2UgdXNlZCB0byBleGVjdXRlIG9wZXJhdGlvbnNcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBPcHRpb25hbCBtb2RlbCBjb25zdHJ1Y3RvciB1c2VkIGJ5IHRoZSByZXBvc2l0b3J5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBpbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG4gKiBpbXBvcnQgeyBGYWJyaWNDbGllbnRSZXBvc2l0b3J5IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItZmFicmljXCI7XG4gKlxuICogY2xhc3MgVXNlciBleHRlbmRzIE1vZGVsIHsgaWQhOiBzdHJpbmc7IG5hbWUhOiBzdHJpbmc7IH1cbiAqIGNvbnN0IHJlcG8gPSBuZXcgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxVc2VyPigpO1xuICogY29uc3QgY3JlYXRlZCA9IGF3YWl0IHJlcG8uY3JlYXRlKG5ldyBVc2VyKHsgaWQ6IFwiMVwiLCBuYW1lOiBcIkFsaWNlXCIgfSkpO1xuICogY29uc3QgbG9hZGVkID0gYXdhaXQgcmVwby5yZWFkKFwiMVwiKTtcbiAqXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBSZXBvIGFzIEZhYnJpY0NsaWVudFJlcG9zaXRvcnlcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBBcHAtPj5SZXBvOiBjcmVhdGUobW9kZWwpXG4gKiAgIFJlcG8tPj5SZXBvOiBjcmVhdGVQcmVmaXgobW9kZWwsIC4uLmFyZ3MpXG4gKiAgIFJlcG8tPj5BZGFwdGVyOiBjcmVhdGUodGFibGUsIGlkLCBtb2RlbCwgZmxhZ3MpXG4gKiAgIEFkYXB0ZXItLT4+UmVwbzogcmVzdWx0XG4gKiAgIFJlcG8tLT4+QXBwOiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ2xpZW50UmVwb3NpdG9yeTxcbiAgTSBleHRlbmRzIE1vZGVsLFxuICBBIGV4dGVuZHMgRmFicmljQ2xpZW50QWRhcHRlciA9IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4+IGV4dGVuZHMgUmVwb3NpdG9yeTxNLCBBPiB7XG4gIHByb3RlY3RlZCBvdmVycmlkZSBfb3ZlcnJpZGVzID0gT2JqZWN0LmFzc2lnbih7fSwgc3VwZXJbXCJfb3ZlcnJpZGVzXCJdLCB7XG4gICAgaWdub3JlVmFsaWRhdGlvbjogdHJ1ZSxcbiAgICBpZ25vcmVIYW5kbGVyczogdHJ1ZSxcbiAgICBhbGxvd1Jhd1N0YXRlbWVudHM6IGZhbHNlLFxuICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IHRydWUsXG4gICAgZm9yY2VQcmVwYXJlQ29tcGxleFF1ZXJpZXM6IHRydWUsXG4gICAgYWxsb3dHZW5lcmF0aW9uT3ZlcnJpZGU6IGZhbHNlLFxuICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoYWRhcHRlcj86IEEsIGNsYXp6PzogQ29uc3RydWN0b3I8TT4pIHtcbiAgICBzdXBlcihhZGFwdGVyLCBjbGF6eik7XG4gIH1cblxuICBvdmVycmlkZSBvdmVycmlkZShmbGFnczogUGFydGlhbDxGbGFnc09mPENvbnRleHRPZjxBPj4+KTogdGhpcyB7XG4gICAgcmV0dXJuIHN1cGVyXG4gICAgICAub3ZlcnJpZGUoT2JqZWN0LmFzc2lnbih7fSwgZmxhZ3MsIHRoaXMuX292ZXJyaWRlcykpXG4gICAgICAuZm9yKGZsYWdzIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgT2JzZXJ2ZXJIYW5kbGVyKCk6IE9ic2VydmVySGFuZGxlciB7XG4gICAgcmV0dXJuIHN1cGVyLk9ic2VydmVySGFuZGxlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFnaW5hdGVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uLFxuICAgIHJlZjogT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4gPSB7XG4gICAgICBvZmZzZXQ6IDEsXG4gICAgICBsaW1pdDogMTAsXG4gICAgfSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPFNlcmlhbGl6ZWRQYWdlPE0+PiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5QQUdFX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMucGFnaW5hdGVCeSk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgcGFnaW5hdGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCBwYWdlIHNpemUgJHtyZWYubGltaXR9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFxuICAgICAgdGhpcy5wYWdpbmF0ZUJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICBvcmRlcixcbiAgICAgIHsgbGltaXQ6IHJlZi5saW1pdCwgb2Zmc2V0OiByZWYub2Zmc2V0LCBib29rbWFyazogcmVmLmJvb2ttYXJrIH0sXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGxpc3RCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubGlzdEJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBsaXN0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleSBhcyBzdHJpbmd9ICR7b3JkZXJ9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMubGlzdEJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICBvcmRlcixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kQnkoXG4gICAga2V5OiBrZXlvZiBNLFxuICAgIHZhbHVlOiBhbnksXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5maW5kQnkpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgYWxsICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoICR7a2V5IGFzIHN0cmluZ30gJHt2YWx1ZX1gXG4gICAgKTtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuc3RhdGVtZW50KFxuICAgICAgdGhpcy5maW5kQnkubmFtZSxcbiAgICAgIGtleSxcbiAgICAgIHZhbHVlLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICkpIGFzIGFueTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGZpbmRPbmVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgdmFsdWU6IGFueSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkZJTkRfT05FX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZE9uZUJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIE9uZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCAke2tleSBhcyBzdHJpbmd9ICR7dmFsdWV9YFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZE9uZUJ5Lm5hbWUsXG4gICAgICBrZXksXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBmaW5kKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uID0gT3JkZXJEaXJlY3Rpb24uQVNDLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5ELCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZmluZCk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgZmluZGluZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMuZmluZC5uYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBvcmRlcixcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApKSBhcyBhbnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBwYWdlKFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgZGlyZWN0aW9uOiBPcmRlckRpcmVjdGlvbiA9IE9yZGVyRGlyZWN0aW9uLkFTQyxcbiAgICByZWY6IE9taXQ8RGlyZWN0aW9uTGltaXRPZmZzZXQsIFwiZGlyZWN0aW9uXCI+ID0ge1xuICAgICAgb2Zmc2V0OiAxLFxuICAgICAgbGltaXQ6IDEwLFxuICAgIH0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxTZXJpYWxpemVkUGFnZTxNPj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuUEFHRSwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLnBhZ2UpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYHBhZ2luZyAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gYnkgZGVmYXVsdCBxdWVyeSBhdHRyaWJ1dGVzYFxuICAgICk7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnN0YXRlbWVudChcbiAgICAgIHRoaXMucGFnZS5uYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBkaXJlY3Rpb24sXG4gICAgICByZWYsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKSkgYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgc3RhdGVtZW50KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX1gKTtcbiAgICBjb25zdCBjYWxsQXJncyA9IGN0eEFyZ3Muc2xpY2UoMCwgLTEpO1xuICAgIGNvbnN0IHJlc3VsdCA9IEpTT04ucGFyc2UoXG4gICAgICB0aGlzLmFkYXB0ZXIuZGVjb2RlKFxuICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIuZXZhbHVhdGVUcmFuc2FjdGlvbihcbiAgICAgICAgICBjdHgsXG4gICAgICAgICAgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCxcbiAgICAgICAgICBbbmFtZSwgSlNPTi5zdHJpbmdpZnkoY2FsbEFyZ3MpXSxcbiAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgIHRoaXMuY2xhc3MubmFtZVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcblxuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgIHJldHVybiByZXN1bHQubWFwKChyOiBhbnkpID0+XG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdICYmXG4gICAgICAgIChyIGFzIGFueSlbQ291Y2hEQktleXMuVEFCTEVdID09PSBNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcylcbiAgICAgICAgICA/IG5ldyB0aGlzLmNsYXNzKHIpXG4gICAgICAgICAgOiByXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKHJlc3VsdCBhcyBhbnkpW0NvdWNoREJLZXlzLlRBQkxFXSAmJlxuICAgICAgKHJlc3VsdCBhcyBhbnkpW0NvdWNoREJLZXlzLlRBQkxFXSA9PT0gTW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpXG4gICAgICA/IG5ldyB0aGlzLmNsYXNzKHJlc3VsdClcbiAgICAgIDogRmFicmljQ2xpZW50UGFnaW5hdG9yLmlzU2VyaWFsaXplZFBhZ2UocmVzdWx0KVxuICAgICAgICA/IE9iamVjdC5hc3NpZ24ocmVzdWx0LCB7XG4gICAgICAgICAgICBkYXRhOiByZXN1bHQuZGF0YS5tYXAoKGQ6IGFueSkgPT4gbmV3IHRoaXMuY2xhc3MoZCkpLFxuICAgICAgICAgIH0pXG4gICAgICAgIDogcmVzdWx0O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY291bnRPZihcbiAgICBrZXk/OiBrZXlvZiBNLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmNvdW50T2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGNvdW50aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSR7a2V5ID8gYCBieSAke2tleSBhcyBzdHJpbmd9YCA6IFwiXCJ9YFxuICAgICk7XG4gICAgY29uc3Qgc3RtdEFyZ3MgPSBrZXkgPyBba2V5LCAuLi5jdHhBcmdzXSA6IGN0eEFyZ3M7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5DT1VOVF9PRiwgLi4uc3RtdEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbWF4T2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bS10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1BWF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLm1heE9mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIG1heCBvZiAke2tleSBhcyBzdHJpbmd9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuTUFYX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbWluT2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPE1bS10+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLk1JTl9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLm1pbk9mKTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBmaW5kaW5nIG1pbiBvZiAke2tleSBhcyBzdHJpbmd9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuTUlOX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgYXZnT2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuQVZHX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuYXZnT2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGNhbGN1bGF0aW5nIGF2ZyBvZiAke2tleSBhcyBzdHJpbmd9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuQVZHX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgc3VtT2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuc3VtT2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGNhbGN1bGF0aW5nIHN1bSBvZiAke2tleSBhcyBzdHJpbmd9IGluICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnN0YXRlbWVudChQcmVwYXJlZFN0YXRlbWVudEtleXMuU1VNX09GLCBrZXksIC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZGlzdGluY3RPZjxLIGV4dGVuZHMga2V5b2YgTT4oXG4gICAga2V5OiBLLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtLXVtdPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwgdHJ1ZSlcbiAgICApLmZvcih0aGlzLmRpc3RpbmN0T2YpO1xuICAgIGxvZy52ZXJib3NlKFxuICAgICAgYGZpbmRpbmcgZGlzdGluY3QgdmFsdWVzIG9mICR7a2V5IGFzIHN0cmluZ30gaW4gJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5ESVNUSU5DVF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGdyb3VwT2Y8SyBleHRlbmRzIGtleW9mIE0+KFxuICAgIGtleTogSyxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIE1bXT4+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkdST1VQX09GLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZ3JvdXBPZik7XG4gICAgbG9nLnZlcmJvc2UoYGdyb3VwaW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleSBhcyBzdHJpbmd9YCk7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGVtZW50KFByZXBhcmVkU3RhdGVtZW50S2V5cy5HUk9VUF9PRiwga2V5LCAuLi5jdHhBcmdzKTtcbiAgfVxuXG4gIGFzeW5jIGhlYWx0aGNoZWNrKC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+KSB7XG4gICAgY29uc3QgeyBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmhlYWx0aGNoZWNrKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYWRhcHRlci5oZWFsdGhjaGVjayh0aGlzLmNsYXNzLCAuLi5jdHhBcmdzKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjcmVhdGUoXG4gICAgbW9kZWw6IE0sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNPiB7XG4gICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGUpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGBDcmVhdGluZyBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuICAgIHRoaXMuZW5zdXJlTGVnYWN5TWlycm9yRmxhZyhjdHgsIG1vZGVsKTtcbiAgICBjb25zdCBwcmVwYXJlZCA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgIGNvbnN0IHsgcmVjb3JkLCBpZCwgdHJhbnNpZW50IH0gPSBwcmVwYXJlZDtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlKFxuICAgICAgdGhpcy5jbGFzcyxcbiAgICAgIGlkLFxuICAgICAgcmVjb3JkLFxuICAgICAgdHJhbnNpZW50LFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4ocmVzdWx0LCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlKFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IHsgY3R4QXJncywgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlKTtcbiAgICB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCk7XG4gICAgY29uc3QgcHJlcGFyZWQgPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgY3R4KTtcbiAgICBjb25zdCB7IGlkLCB0cmFuc2llbnQgfSA9IHByZXBhcmVkO1xuICAgIGxldCByZWNvcmQgPSBwcmVwYXJlZC5yZWNvcmQ7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHVwZGF0aW5nICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCBpZCAke2lkfWBcbiAgICApO1xuICAgIHJlY29yZCA9IGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGUoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWQsXG4gICAgICByZWNvcmQsXG4gICAgICB0cmFuc2llbnQsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyZWNvcmQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsUHJlZml4KFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8W01bXSwgLi4uYW55W10sIENvbnRleHRPZjxBPl0+IHtcbiAgICBjb25zdCB7IGN0eCwgY3R4QXJncyB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5DUkVBVEUsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jcmVhdGVBbGxQcmVmaXgpO1xuICAgIGNvbnN0IGlnbm9yZUhhbmRsZXJzID0gY3R4LmdldChcImlnbm9yZUhhbmRsZXJzXCIpO1xuICAgIGNvbnN0IGlnbm9yZVZhbGlkYXRlID0gY3R4LmdldChcImlnbm9yZVZhbGlkYXRpb25cIik7XG4gICAgaWYgKCFtb2RlbHMubGVuZ3RoKSByZXR1cm4gW21vZGVscywgLi4uY3R4QXJnc10gYXMgYW55O1xuXG4gICAgbW9kZWxzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBtb2RlbHMubWFwKGFzeW5jIChtKSA9PiB7XG4gICAgICAgIG0gPSBuZXcgdGhpcy5jbGFzcyhtKTtcbiAgICAgICAgaWYgKCFpZ25vcmVIYW5kbGVycylcbiAgICAgICAgICBhd2FpdCBlbmZvcmNlREJEZWNvcmF0b3JzPE0sIFJlcG9zaXRvcnk8TSwgQT4sIGFueT4oXG4gICAgICAgICAgICB0aGlzLFxuICAgICAgICAgICAgY3R4LFxuICAgICAgICAgICAgbSxcbiAgICAgICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5PTlxuICAgICAgICAgICk7XG4gICAgICAgIHJldHVybiBtO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKCFpZ25vcmVWYWxpZGF0ZSkge1xuICAgICAgY29uc3QgaWdub3JlZFByb3BzID0gY3R4LmdldChcImlnbm9yZWRWYWxpZGF0aW9uUHJvcGVydGllc1wiKSB8fCBbXTtcblxuICAgICAgY29uc3QgZXJyb3JzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgIG1vZGVscy5tYXAoKG0pID0+IFByb21pc2UucmVzb2x2ZShtLmhhc0Vycm9ycyguLi5pZ25vcmVkUHJvcHMpKSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZXMgPSByZWR1Y2VFcnJvcnNUb1ByaW50KGVycm9ycyk7XG5cbiAgICAgIGlmIChlcnJvck1lc3NhZ2VzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGVycm9yTWVzc2FnZXMpO1xuICAgIH1cbiAgICByZXR1cm4gW21vZGVscywgLi4uY3R4QXJnc10gYXMgYW55O1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsKFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxDb250ZXh0T2Y8QT4+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgaWYgKCFtb2RlbHMubGVuZ3RoKSByZXR1cm4gbW9kZWxzO1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgbW9kZWxzLmZvckVhY2goKG1vZGVsKSA9PiB0aGlzLmVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4LCBtb2RlbCkpO1xuICAgIGNvbnN0IHByZXBhcmVkID0gbW9kZWxzLm1hcCgobSkgPT4gdGhpcy5hZGFwdGVyLnByZXBhcmUobSwgY3R4KSk7XG4gICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICBjb25zdCBwYXlsb2FkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5yZWNvcmQpO1xuICAgIGNvbnN0IHRyYW5zaWVudHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAudHJhbnNpZW50KTtcbiAgICBjb25zdCBjcmVhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZUFsbChcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZHMgYXMgUHJpbWFyeUtleVR5cGVbXSxcbiAgICAgIHBheWxvYWRzLFxuICAgICAgdHJhbnNpZW50cyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGNyZWF0ZWQubWFwKGFzeW5jIChyLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gaWRzW2ldO1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50c1tpXSwgY3R4KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHJlYWRBbGwoXG4gICAga2V5czogUHJpbWFyeUtleVR5cGVbXSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8Q29udGV4dE9mPEE+PlxuICApIHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJlYWRBbGwpO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGByZWFkaW5nICR7a2V5cy5sZW5ndGh9ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICBjb25zdCByZWNvcmRzID0gYXdhaXQgdGhpcy5hZGFwdGVyLnJlYWRBbGwodGhpcy5jbGFzcywga2V5cywgLi4uY3R4QXJncyk7XG4gICAgcmV0dXJuIHJlY29yZHMubWFwKChyLCBpKSA9PlxuICAgICAgdGhpcy5hZGFwdGVyLnJldmVydChyLCB0aGlzLmNsYXNzLCBrZXlzW2ldLCB7fSwgY3R4KVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVBbGwoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHRPZjxBPj5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUFsbCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFVwZGF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcblxuICAgIG1vZGVscy5mb3JFYWNoKChtb2RlbCkgPT4gdGhpcy5lbnN1cmVMZWdhY3lNaXJyb3JGbGFnKGN0eCwgbW9kZWwpKTtcbiAgICBjb25zdCBwcmVwYXJlZCA9IG1vZGVscy5tYXAoKG0pID0+IHRoaXMuYWRhcHRlci5wcmVwYXJlKG0sIGN0eCkpO1xuICAgIGNvbnN0IGlkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5pZCk7XG4gICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGVBbGwoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWRzIGFzIFByaW1hcnlLZXlUeXBlW10sXG4gICAgICBwcmVwYXJlZC5tYXAoKHIpID0+IHIucmVjb3JkKSxcbiAgICAgIHByZXBhcmVkLm1hcCgocikgPT4gci50cmFuc2llbnQpLFxuICAgICAgLi4uY3R4QXJnc1xuICAgICk7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgICAgdXBkYXRlZC5tYXAoYXN5bmMgKHUsIGkpID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBpZHNbaV07XG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0PE0+KFxuICAgICAgICAgIHUsXG4gICAgICAgICAgdGhpcy5jbGFzcyxcbiAgICAgICAgICBpZCxcbiAgICAgICAgICBwcmVwYXJlZFtpXS50cmFuc2llbnQsXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZUxlZ2FjeU1pcnJvckZsYWcoY3R4OiBDb250ZXh0T2Y8QT4sIG1vZGVsOiBNKTogdm9pZCB7XG4gICAgaWYgKE1vZGVsLm1pcnJvcmVkQXQobW9kZWwpKSB7XG4gICAgICBjdHguYWNjdW11bGF0ZSh7IGxlZ2FjeTogdHJ1ZSB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
255
|
+
//# sourceMappingURL=FabricClientRepository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricClientRepository.js","sourceRoot":"","sources":["../../../src/client/FabricClientRepository.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ export declare class FabricClientStatement<M extends Model, R> extends Statement
|
|
|
12
12
|
* @description Processes a record from CouchDB/Fabric
|
|
13
13
|
* @summary Extracts the ID from a CouchDB document and reverts it to a model instance
|
|
14
14
|
*/
|
|
15
|
-
protected processRecord(
|
|
15
|
+
protected processRecord(record: any, ctx: Context<FabricClientFlags>): M;
|
|
16
16
|
/**
|
|
17
17
|
* @description Executes a raw Mango query
|
|
18
18
|
* @summary Sends a raw Mango query to Fabric and processes the results
|
|
@@ -103,13 +103,15 @@ export class FabricClientStatement extends Statement {
|
|
|
103
103
|
* @description Processes a record from CouchDB/Fabric
|
|
104
104
|
* @summary Extracts the ID from a CouchDB document and reverts it to a model instance
|
|
105
105
|
*/
|
|
106
|
-
processRecord(
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
processRecord(record, ctx) {
|
|
107
|
+
const pkAttr = Model.pk(this.fromSelector);
|
|
108
|
+
const type = Metadata.get(this.fromSelector, Metadata.key(DBKeys.ID, pkAttr))?.type;
|
|
109
|
+
if (record[CouchDBKeys.ID]) {
|
|
110
|
+
const [, ...keyArgs] = record[CouchDBKeys.ID].split(CouchDBKeys.SEPARATOR);
|
|
109
111
|
const id = keyArgs.join("_");
|
|
110
|
-
|
|
112
|
+
record[pkAttr] = Sequence.parseValue(type, id);
|
|
111
113
|
}
|
|
112
|
-
return
|
|
114
|
+
return super.processRecord(record, ctx);
|
|
113
115
|
}
|
|
114
116
|
/**
|
|
115
117
|
* @description Executes a raw Mango query
|
|
@@ -122,10 +124,13 @@ export class FabricClientStatement extends Statement {
|
|
|
122
124
|
return this.executeAggregate(aggregator, ctx);
|
|
123
125
|
}
|
|
124
126
|
const results = await this.adapter.raw(rawInput, true, this.fromSelector, ctx);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
if (!this.selectSelector) {
|
|
128
|
+
const processed = results.map((r) => this.processRecord(r, ctx));
|
|
129
|
+
if (!ctx.getOrUndefined("afterQueryHandlers")) {
|
|
130
|
+
return processed;
|
|
131
|
+
}
|
|
132
|
+
return (await this.applyAfterHandlersToResult(processed, ctx));
|
|
133
|
+
}
|
|
129
134
|
return results;
|
|
130
135
|
}
|
|
131
136
|
/**
|
|
@@ -439,4 +444,4 @@ export class FabricClientStatement extends Statement {
|
|
|
439
444
|
return info.kind !== "avg";
|
|
440
445
|
}
|
|
441
446
|
}
|
|
442
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50U3RhdGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9GYWJyaWNDbGllbnRTdGF0ZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxhQUFhLEVBRWIsUUFBUSxFQUVSLGVBQWUsRUFFZixxQkFBcUIsRUFDckIsV0FBVyxFQUNYLFVBQVUsRUFDVixVQUFVLEVBRVYsUUFBUSxFQUNSLFNBQVMsR0FHVixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV2RCxPQUFPLEVBQ0wsV0FBVyxFQUNYLGVBQWUsRUFDZixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBSWpCLGtCQUFrQixFQUNsQixxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixHQUdqQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQXNCaEQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFhLEVBQVUsRUFBRSxDQUM3QyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRS9DLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUM1QyxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksSUFBSSxLQUFLLFNBQVM7WUFBRSxTQUFTO1FBQ2pDLElBQUksSUFBSSxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQ3BCLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxQyxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUM7QUFDMUIsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLE1BQWM7SUFDakMsT0FBTztRQUNMLEtBQUssRUFBRSxNQUFNO1FBQ2IsR0FBRyxFQUFFLHVCQUF1QixDQUFDLE1BQU0sQ0FBQztLQUNyQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sT0FBTyxxQkFBMEMsU0FBUSxTQUs5RDtJQUNDLFlBQVksT0FBNEIsRUFBRSxTQUFpQztRQUN6RSxLQUFLLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFa0IsTUFBTSxDQUN2QixHQUErQjtRQUUvQixNQUFNLFFBQVEsR0FBcUMsS0FBSyxDQUFDLE1BQU0sQ0FDN0QsR0FBWSxDQUNiLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU8sUUFBUSxDQUFDO1FBRS9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLFFBQVEsQ0FBQztRQUMxQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUNwQyxRQUFRLE1BQU0sRUFBRSxDQUFDO1lBQ2YsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJO2dCQUM3QixNQUFNO1lBQ1IsS0FBSyxxQkFBcUIsQ0FBQyxJQUFJO2dCQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDNUIsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDaEMsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDckIsTUFBTTtZQUNSLEtBQUsscUJBQXFCLENBQUMsT0FBTztnQkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzVCLE1BQU07WUFDUixLQUFLLHFCQUFxQixDQUFDLFdBQVc7Z0JBQ3BDLE1BQU07WUFDUjtnQkFDRSxNQUFNLElBQUksYUFBYSxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRWtCLEtBQUssQ0FBQyxlQUFlLENBQ3RDLEdBQUcsSUFBb0Q7UUFFdkQsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBa0MsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVRLEtBQUssQ0FBQyxPQUFPLENBQ3BCLEdBQWdDO1FBRWhDLEdBQUc7WUFDRCxHQUFHO2dCQUNILENBQUMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDekIsZUFBZSxDQUFDLEtBQUssRUFDckIsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLEVBQ3BCLElBQUksQ0FBQyxZQUFZLENBQ2xCLENBQUMsQ0FBQztRQUVMLElBQ0UsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNuQixHQUFrQyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxFQUNwRSxDQUFDO1lBQ0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFpQyxDQUFDLENBQUM7WUFDaEUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztnQkFDekIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUF3QixFQUFFLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQVEsRUFBUyxDQUFDO1FBRTlCLE1BQU0sUUFBUSxHQUEyQjtZQUN2QyxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsSUFBSTtZQUNKLE1BQU07U0FDQSxDQUFDO1FBRVQsTUFBTSxNQUFNLEdBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsR0FBWSxDQUFDLENBQUM7WUFDeEUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0IsSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTTtnQkFDbkMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFJLE1BQU0sQ0FBQyxJQUE0QixDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGNBQWM7WUFDckIsTUFBTSxDQUFDLElBQUksQ0FDVCxXQUFXLENBQUMsTUFBTSxFQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLFdBQVcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUMvRCxDQUFDO1FBQ0osSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQyxDQUFDO1lBQ3pFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBUSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUNELFFBQVEsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRCxRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDTyxhQUFhLENBQ3JCLENBQU0sRUFDTixNQUFlLEVBQ2YsWUFBNkMsRUFDN0MsR0FBK0I7UUFFL0IsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUN4QixDQUFDLEVBQ0QsSUFBSSxDQUFDLFlBQVksRUFDakIsUUFBUSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLEVBQ3JDLFNBQVMsRUFDVCxHQUFHLENBQ0osQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7O09BR0c7SUFDTSxLQUFLLENBQUMsR0FBRyxDQUFJLFFBQW9CLEVBQUUsR0FBRyxJQUFXO1FBQ3hELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUksUUFBZ0IsRUFBRSxhQUFhLENBQUM7UUFDcEQsSUFBSyxRQUFnQixFQUFFLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUMvQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBSSxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUFVLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQzNDLFFBQVEsRUFDUixJQUFJLEVBQ0osSUFBSSxDQUFDLFlBQVksRUFDakIsR0FBRyxDQUNKLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxDQUN2QixJQUFJLENBQUMsWUFBWSxFQUNqQixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBZ0IsQ0FBQyxDQUMxQyxFQUFFLElBQUksQ0FBQztRQUVSLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUN0QixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQU0sQ0FBQztRQUMzRSxPQUFPLE9BQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7OztPQUdHO0lBQ2dCLEtBQUs7UUFDdEIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xELElBQUksY0FBYztZQUFFLE9BQU8sY0FBYyxDQUFDO1FBQzFDLE1BQU0sU0FBUyxHQUFrQixFQUFFLENBQUM7UUFDcEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDbEMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRSxNQUFNLEtBQUssR0FBZSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNsRCxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBMEIsQ0FBQztRQUV4RSxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixNQUFNLFNBQVMsR0FBa0IsSUFBSSxDQUFDLGNBQWMsQ0FDbEQsU0FBUyxDQUFDLEdBQUcsQ0FDWCxJQUFJLENBQUMsY0FBYyxFQUNuQixTQUFTLENBQUMsU0FBUyxDQUFJLFdBQVcsQ0FBQyxLQUFnQixDQUFDLENBQUMsRUFBRSxDQUNyRCxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEMsQ0FDRixDQUNGLENBQUMsUUFBUSxDQUFDO1lBQ1gsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQW9CLENBQUM7WUFDL0QsSUFDRSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVuRSxRQUFRLFlBQVksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUN4QixLQUFLLG9CQUFvQixDQUFDLEdBQUc7d0JBQzNCLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsR0FBRzs0QkFDcEMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNkLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQWtCLENBQ3JELENBQUMsTUFBTSxDQUFDLENBQUMsS0FBc0IsRUFBRSxHQUFRLEVBQUUsRUFBRTtnQ0FDNUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQ0FDOUIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUM7b0NBQ25CLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0RBQWdELENBQ2pELENBQUM7Z0NBQ0osTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dDQUNsQixJQUFJLENBQUMsS0FBSyxvQkFBb0IsQ0FBQyxHQUFHO29DQUNoQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUksR0FBRyxDQUFDLENBQUMsQ0FBVyxDQUFDLENBQUM7O29DQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dDQUNyQixPQUFPLEtBQUssQ0FBQzs0QkFDZixDQUFDLEVBQUUsRUFBRSxDQUFDO3lCQUNQLENBQUM7d0JBQ0YsS0FBSyxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7d0JBQzNCLE1BQU07b0JBQ1IsS0FBSyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3dCQUM3QixNQUFNLENBQUMsR0FBcUIsRUFBRSxDQUFDO3dCQUMvQixDQUFDLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEdBQUc7NEJBQzVCLFNBQVM7NEJBQ1QsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO2dDQUNuRCxNQUFNLE1BQU0sR0FBcUIsRUFBRSxDQUFDO2dDQUNwQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dDQUNsQixPQUFPLE1BQU0sQ0FBQzs0QkFDaEIsQ0FBQyxDQUFDO3lCQUNILENBQUM7d0JBQ0YsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7d0JBQ25CLE1BQU07b0JBQ1IsQ0FBQztvQkFDRDt3QkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7Z0JBQ2pELENBQUM7aUJBQ0UsQ0FBQztnQkFDSixNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7b0JBQy9DLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7d0JBQ3JCLEdBQUcsQ0FBQyxJQUFJLENBQ04sS0FBSyxHQUFHLDJDQUEyQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUNuRixDQUFDO29CQUNKLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO2dCQUM1QixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDbEMsS0FBSyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5QixLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUssRUFBb0IsQ0FBQztZQUN6RCxLQUFLLE1BQU0sQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQzdELE1BQU0sUUFBUSxHQUFHLFdBQXFCLENBQUM7Z0JBQ3ZDLE1BQU0sR0FBRyxHQUFtQyxFQUFFLENBQUM7Z0JBQy9DLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxTQUEyQixDQUFDO2dCQUMzQyxLQUFLLENBQUMsSUFBeUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7b0JBQzlCLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBbUIsQ0FBQztvQkFDOUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQW1CLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQzt3QkFDakUsSUFBSSxDQUFDO2dCQUNULENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNuQyxDQUFDO2FBQU0sQ0FBQztZQUNOLEdBQUcsQ0FBQyxJQUFJLENBQ04sNkRBQTZELGlCQUFpQixFQUFFLENBQ2pGLENBQUM7WUFDRixLQUFLLENBQUMsS0FBSyxHQUFHLGlCQUFpQixDQUFDO1FBQ2xDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjO1lBQUUsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBRTFELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOzs7T0FHRztJQUNnQixjQUFjLENBQUMsU0FBdUI7UUFDdkQsU0FBUyxLQUFLLENBQ1osRUFBaUIsRUFDakIsSUFBbUIsRUFDbkIsSUFBbUI7WUFFbkIsTUFBTSxNQUFNLEdBQWUsRUFBRSxRQUFRLEVBQUUsRUFBbUIsRUFBRSxDQUFDO1lBQzdELE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDbkMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUVELE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLFNBSXZDLENBQUM7UUFFRixJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUMzQixNQUFNLElBQUksVUFBVSxDQUFDLHdDQUF3QyxDQUFDLENBQUM7WUFDakUsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRO2dCQUNoQyxNQUFNLElBQUksVUFBVSxDQUFDLDBDQUEwQyxDQUFDLENBQUM7WUFDbkUsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sUUFBUSxHQUFrQixFQUFtQixDQUFDO1lBQ3BELFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFtQixDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxLQUFLLENBQW1CLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0UsUUFBUSxDQUFDLEtBQUssQ0FBbUIsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN4RSxPQUFPLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDdEIsQ0FBQztRQUVELElBQUksUUFBUSxLQUFLLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVE7Z0JBQzNCLE1BQU0sSUFBSSxVQUFVLENBQUMsc0NBQXNDLENBQUMsQ0FBQztZQUMvRCxJQUFJLE9BQU8sVUFBVSxLQUFLLFFBQVE7Z0JBQ2hDLE1BQU0sSUFBSSxVQUFVLENBQUMsd0NBQXdDLENBQUMsQ0FBQztZQUNqRSxNQUFNLFFBQVEsR0FBa0IsRUFBbUIsQ0FBQztZQUNwRCxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQ2hCLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxHQUFHO2FBQ3hDLENBQUM7WUFDbkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO1FBQ3RCLENBQUM7UUFFRCxJQUFJLFFBQVEsS0FBSyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEdBQUcsS0FBZSxDQUFDO1lBQzdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQztnQkFDdkQsTUFBTSxJQUFJLFVBQVUsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQzFFLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDO1lBQzlCLE1BQU0sU0FBUyxHQUFrQixFQUFtQixDQUFDO1lBQ3JELFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFtQixDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxJQUFJLENBQW1CLENBQ2hDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FDdkMsR0FBRyxHQUFHLENBQUM7WUFDUCxTQUFTLENBQUMsSUFBSSxDQUFtQixDQUNoQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQ3hDLEdBQUcsR0FBRyxDQUFDO1lBQ1IsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNqQyxDQUFDO1FBRUQsSUFBSSxFQUFFLEdBQWtCLEVBQW1CLENBQUM7UUFDNUMsSUFDRSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsYUFBYSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUN6RCxRQUF5QixDQUMxQixLQUFLLENBQUMsQ0FBQyxFQUNSLENBQUM7WUFDRCxFQUFFLENBQUMsS0FBZSxDQUFDLEdBQUcsRUFBbUIsQ0FBQztZQUN6QyxFQUFFLENBQUMsS0FBZSxDQUFtQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNsRSxVQUFVLENBQUM7UUFDZixDQUFDO2FBQU0sSUFBSSxRQUFRLEtBQUssUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQXFCLENBQUMsQ0FBQyxRQUF5QixDQUFDO1lBQzFFLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFtQixDQUFDO1lBQzFELEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQW1CLENBQ3BELEtBQXNDLENBQUMsS0FBSyxDQUM5QyxHQUFHLFVBQVUsQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxHQUFRLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBcUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNyRSxNQUFNLEdBQUcsR0FBUSxJQUFJLENBQUMsY0FBYyxDQUFDLFVBQTBCLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFDMUUsRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzlELENBQUM7UUFFRCxPQUFPLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxtQkFBbUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDekMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDckUsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLFNBQVM7Z0JBQ3hCLE1BQU0sSUFBSSxVQUFVLENBQ2xCLDREQUE0RCxTQUFTLEVBQUUsQ0FDeEUsQ0FBQztZQUNKLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO2dCQUMvQixJQUFJLEVBQUUsS0FBSztnQkFDWCxTQUFTO2dCQUNULGFBQWEsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDakMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxVQUFVO2FBQ3RDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ3RELE1BQU0sU0FBUyxHQUNiLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJO2dCQUNoQyxDQUFDLENBQUMsU0FBUztnQkFDWCxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDbkUsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztnQkFDMUIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLGNBQWMsR0FDbEIsT0FBTyxJQUFJLENBQUMsYUFBYSxLQUFLLFdBQVc7WUFDekMsT0FBTyxJQUFJLENBQUMscUJBQXFCLEtBQUssV0FBVztZQUNqRCxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDbEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ2xCLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVztZQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBRTFCLE1BQU0sZ0JBQWdCLEdBQXFEO1lBQ3pFO2dCQUNFLE9BQU87Z0JBQ1AsQ0FBQyxJQUFJLENBQUMsYUFBYSxJQUFJLFNBQVMsQ0FBa0M7YUFDbkU7WUFDRCxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ3pCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7WUFDekIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUN6QixDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDcEMsQ0FBQztRQUVGLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hELE1BQU0sU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDMUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RCxJQUFJLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkQsQ0FBQztRQUVELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLFVBQVUsQ0FDbEIsNENBQTRDLEtBQUssQ0FBQyxTQUFTLENBQ3pELElBQUksQ0FBQyxZQUFZLENBQ2xCLGFBQWEsQ0FDZixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRDs7T0FFRztJQUNLLHlCQUF5QixDQUMvQixJQUFjLEVBQ2QsU0FBa0I7UUFFbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDekMsTUFBTSxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDcEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3JELE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN6RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLHFCQUFxQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyRSxNQUFNLE9BQU8sR0FBd0I7WUFDbkMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7U0FDNUQsQ0FBQztRQUNGLElBQUksSUFBSSxLQUFLLFVBQVUsSUFBSSxJQUFJLEtBQUssU0FBUztZQUFFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BFLE9BQU87WUFDTCxJQUFJO1lBQ0osSUFBSTtZQUNKLFVBQVUsRUFBRTtnQkFDVixJQUFJO2dCQUNKLElBQUksRUFBRSxRQUFRO2dCQUNkLE9BQU87YUFDUjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0IsQ0FDMUIsSUFBeUI7UUFFekIsT0FBTztZQUNMLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLElBQUk7WUFDZixhQUFhLEVBQUUsSUFBSTtTQUNvRCxDQUFDO0lBQzVFLENBQUM7SUFFRDs7T0FFRztJQUNLLGdCQUFnQjtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUE4QixDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxnQkFBZ0IsQ0FDNUIsSUFBeUIsRUFDekIsR0FBK0I7UUFFL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUksSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFFBQVEsR0FBRyxJQUF3RCxDQUFDO1FBQzFFLE1BQU0sUUFBUSxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FDdkMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQ3hCLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUN4QixRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFDM0IsR0FBRyxDQUNKLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBSSxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGFBQWEsQ0FDekIsSUFBeUIsRUFDekIsR0FBK0I7UUFFL0IsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLEtBQUs7WUFDckIsTUFBTSxJQUFJLFVBQVUsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN4RSxNQUFNLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztZQUNyRCxhQUFhLENBQUMsSUFBSSxDQUNoQixPQUFPLENBQUMsSUFBSSxFQUNaLE9BQU8sQ0FBQyxJQUFJLEVBQ1osT0FBTyxDQUFDLE9BQU8sRUFDZixHQUFHLENBQ0o7WUFDRCxhQUFhLENBQUMsSUFBSSxDQUNoQixTQUFTLENBQUMsSUFBSSxFQUNkLFNBQVMsQ0FBQyxJQUFJLEVBQ2QsU0FBUyxDQUFDLE9BQU8sRUFDakIsR0FBRyxDQUNKO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDOUMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLENBQWlCLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQWlCLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssbUJBQW1CLENBQ3pCLElBQXlCLEVBQ3pCLFFBQXNCO1FBRXRCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLO1lBQ3JCLE1BQU0sSUFBSSxVQUFVLENBQ2xCLDBEQUEwRCxDQUMzRCxDQUFDO1FBQ0osTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBd0QsQ0FBQztRQUMxRSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBaUIsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFVBQVUsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFpQixDQUFDO1FBQ2pFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQWlCLENBQUM7UUFDeEUsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBaUIsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQWlCLENBQUM7SUFDaEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZUFBZSxDQUNyQixJQUF5QjtRQUV6QixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssS0FBSyxDQUFDO0lBQzdCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFkYXB0ZXJGbGFncyxcbiAgQ29uZGl0aW9uLFxuICBDb250ZXh0LFxuICBHcm91cE9wZXJhdG9yLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIE9wZXJhdG9yLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUGVyc2lzdGVuY2VLZXlzLFxuICBQcmVwYXJlZFN0YXRlbWVudCxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBRdWVyeUNsYXVzZSxcbiAgUXVlcnlFcnJvcixcbiAgUmVwb3NpdG9yeSxcbiAgU2VsZWN0U2VsZWN0b3IsXG4gIFNlcXVlbmNlLFxuICBTdGF0ZW1lbnQsXG4gIFN0YXRlbWVudEV4ZWN1dG9yLFxuICBWaWV3S2luZCxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBDb3VjaERCS2V5cyxcbiAgQ291Y2hEQk9wZXJhdG9yLFxuICBDb3VjaERCR3JvdXBPcGVyYXRvcixcbiAgQ291Y2hEQlF1ZXJ5TGltaXQsXG4gIE1hbmdvUXVlcnksXG4gIE1hbmdvT3BlcmF0b3IsXG4gIE1hbmdvU2VsZWN0b3IsXG4gIHRyYW5zbGF0ZU9wZXJhdG9ycyxcbiAgZ2VuZXJhdGVEZXNpZ25Eb2NOYW1lLFxuICBnZW5lcmF0ZVZpZXdOYW1lLFxuICBmaW5kVmlld01ldGFkYXRhLFxuICBDb3VjaERCVmlld01ldGFkYXRhLFxuICBWaWV3UmVzcG9uc2UsXG59IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7IHRvQ2FtZWxDYXNlIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5pbXBvcnQgeyBEQktleXMsIEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0aW9uXCI7XG5cbnR5cGUgRmFicmljVmlld0Rlc2NyaXB0b3IgPSB7XG4gIGRkb2M6IHN0cmluZztcbiAgdmlldzogc3RyaW5nO1xuICBvcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufTtcblxudHlwZSBGYWJyaWNBZ2dyZWdhdGVJbmZvID1cbiAgfCB7XG4gICAgICBraW5kOiBWaWV3S2luZDtcbiAgICAgIG1ldGE6IENvdWNoREJWaWV3TWV0YWRhdGE7XG4gICAgICBkZXNjcmlwdG9yOiBGYWJyaWNWaWV3RGVzY3JpcHRvcjtcbiAgICAgIGNvdW50RGlzdGluY3Q/OiBib29sZWFuO1xuICAgIH1cbiAgfCB7XG4gICAgICBraW5kOiBcImF2Z1wiO1xuICAgICAgYXR0cmlidXRlOiBzdHJpbmc7XG4gICAgICBzdW1EZXNjcmlwdG9yOiBGYWJyaWNWaWV3RGVzY3JpcHRvcjtcbiAgICAgIGNvdW50RGVzY3JpcHRvcjogRmFicmljVmlld0Rlc2NyaXB0b3I7XG4gICAgfTtcblxuY29uc3QgZXNjYXBlUmVnRXhwID0gKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcgPT5cbiAgdmFsdWUucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csIFwiXFxcXCQmXCIpO1xuXG5mdW5jdGlvbiBuZXh0TGV4aWNvZ3JhcGhpY1N0cmluZyh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIFwiXFx1MDAwMFwiO1xuICBjb25zdCBjaGFycyA9IEFycmF5LmZyb20odmFsdWUpO1xuICBmb3IgKGxldCBpID0gY2hhcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpIC09IDEpIHtcbiAgICBjb25zdCBjb2RlID0gY2hhcnNbaV0uY29kZVBvaW50QXQoMCk7XG4gICAgaWYgKGNvZGUgPT09IHVuZGVmaW5lZCkgY29udGludWU7XG4gICAgaWYgKGNvZGUgPCAweDEwZmZmZikge1xuICAgICAgY2hhcnNbaV0gPSBTdHJpbmcuZnJvbUNvZGVQb2ludChjb2RlICsgMSk7XG4gICAgICByZXR1cm4gY2hhcnMuc2xpY2UoMCwgaSArIDEpLmpvaW4oXCJcIik7XG4gICAgfVxuICB9XG4gIHJldHVybiBgJHt2YWx1ZX1cXHUwMDAwYDtcbn1cblxuZnVuY3Rpb24gcHJlZml4UmFuZ2UocHJlZml4OiBzdHJpbmcpIHtcbiAgcmV0dXJuIHtcbiAgICBzdGFydDogcHJlZml4LFxuICAgIGVuZDogbmV4dExleGljb2dyYXBoaWNTdHJpbmcocHJlZml4KSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudFN0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgU3RhdGVtZW50PFxuICBNLFxuICBGYWJyaWNDbGllbnRBZGFwdGVyLFxuICBSLFxuICBNYW5nb1F1ZXJ5XG4+IHtcbiAgY29uc3RydWN0b3IoYWRhcHRlcjogRmFicmljQ2xpZW50QWRhcHRlciwgb3ZlcnJpZGVzPzogUGFydGlhbDxBZGFwdGVyRmxhZ3M+KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgb3ZlcnJpZGVzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzcXVhc2goXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcmVwYXJlZFN0YXRlbWVudDxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzcXVhc2hlZDogUHJlcGFyZWRTdGF0ZW1lbnQ8TT4gfCB1bmRlZmluZWQgPSBzdXBlci5zcXVhc2goXG4gICAgICBjdHggYXMgbmV2ZXJcbiAgICApO1xuICAgIGlmICghc3F1YXNoZWQpIHJldHVybiBzcXVhc2hlZDtcblxuICAgIGNvbnN0IHsgbWV0aG9kLCBwYXJhbXMsIGFyZ3MgfSA9IHNxdWFzaGVkO1xuICAgIGNvbnN0IHsgZGlyZWN0aW9uLCBsaW1pdCB9ID0gcGFyYW1zO1xuICAgIHN3aXRjaCAobWV0aG9kKSB7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0U6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24sIGxpbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX0JZOlxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLkxJU1RfQlk6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0VfQlk6XG4gICAgICAgIGFyZ3MucHVzaChkaXJlY3Rpb24sIGxpbWl0KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFByZXBhcmVkU3RhdGVtZW50S2V5cy5GSU5EX09ORV9CWTpcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgVW5zdXBwb3J0ZWQgbWV0aG9kICR7bWV0aG9kfWApO1xuICAgIH1cblxuICAgIHJldHVybiBzcXVhc2hlZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBleGVjdXRlUHJlcGFyZWQoXG4gICAgLi4uYXJnejogTWF5YmVDb250ZXh0dWFsQXJnPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBjb25zdCByZXBvID0gUmVwb3NpdG9yeS5mb3JNb2RlbCh0aGlzLmZyb21TZWxlY3RvciwgdGhpcy5hZGFwdGVyLmFsaWFzKTtcbiAgICBjb25zdCB7IG1ldGhvZCwgYXJncyB9ID0gdGhpcy5wcmVwYXJlZCBhcyBQcmVwYXJlZFN0YXRlbWVudDxhbnk+O1xuICAgIHJldHVybiByZXBvLnN0YXRlbWVudChtZXRob2QsIC4uLmFyZ3MsIC4uLmFyZ3opO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcHJlcGFyZShcbiAgICBjdHg/OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcm9taXNlPFN0YXRlbWVudEV4ZWN1dG9yPE0sIFI+PiB7XG4gICAgY3R4ID1cbiAgICAgIGN0eCB8fFxuICAgICAgKGF3YWl0IHRoaXMuYWRhcHRlci5jb250ZXh0KFxuICAgICAgICBQZXJzaXN0ZW5jZUtleXMuUVVFUlksXG4gICAgICAgIHRoaXMub3ZlcnJpZGVzIHx8IHt9LFxuICAgICAgICB0aGlzLmZyb21TZWxlY3RvclxuICAgICAgKSk7XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmlzU2ltcGxlUXVlcnkoKSAmJlxuICAgICAgKGN0eCBhcyBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPikuZ2V0KFwiZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllc1wiKVxuICAgICkge1xuICAgICAgY29uc3Qgc3F1YXNoZWQgPSB0aGlzLnNxdWFzaChjdHggYXMgQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4pO1xuICAgICAgaWYgKHNxdWFzaGVkKSB7XG4gICAgICAgIHRoaXMucHJlcGFyZWQgPSBzcXVhc2hlZDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IGFyZ3M6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcbiAgICBjb25zdCBwYXJhbXM6IGFueSA9IHt9IGFzIGFueTtcblxuICAgIGNvbnN0IHByZXBhcmVkOiBQcmVwYXJlZFN0YXRlbWVudDxhbnk+ID0ge1xuICAgICAgY2xhc3M6IHRoaXMuZnJvbVNlbGVjdG9yLFxuICAgICAgYXJncyxcbiAgICAgIHBhcmFtcyxcbiAgICB9IGFzIGFueTtcblxuICAgIGNvbnN0IG1ldGhvZDogc3RyaW5nW10gPSBbUXVlcnlDbGF1c2UuRklORF9CWV07XG5cbiAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wcmVwYXJlQ29uZGl0aW9uKHRoaXMud2hlcmVDb25kaXRpb24sIGN0eCBhcyBuZXZlcik7XG4gICAgICBtZXRob2QucHVzaChwYXJzZWQubWV0aG9kKTtcbiAgICAgIGlmIChwYXJzZWQuYXJncyAmJiBwYXJzZWQuYXJncy5sZW5ndGgpXG4gICAgICAgIGFyZ3MucHVzaCguLi4ocGFyc2VkLmFyZ3MgYXMgKHN0cmluZyB8IG51bWJlcilbXSkpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcilcbiAgICAgIG1ldGhvZC5wdXNoKFxuICAgICAgICBRdWVyeUNsYXVzZS5TRUxFQ1QsXG4gICAgICAgIHRoaXMuc2VsZWN0U2VsZWN0b3Iuam9pbihgICR7UXVlcnlDbGF1c2UuQU5ELnRvTG93ZXJDYXNlKCl9IGApXG4gICAgICApO1xuICAgIGlmICh0aGlzLm9yZGVyQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgbWV0aG9kLnB1c2goUXVlcnlDbGF1c2UuT1JERVJfQlksIHRoaXMub3JkZXJCeVNlbGVjdG9yc1swXVswXSBhcyBzdHJpbmcpO1xuICAgICAgYXJncy5wdXNoKHRoaXMub3JkZXJCeVNlbGVjdG9yc1swXVsxXSBhcyBhbnkpO1xuICAgIH1cbiAgICBwcmVwYXJlZC5tZXRob2QgPSB0b0NhbWVsQ2FzZShtZXRob2Quam9pbihcIiBcIikpO1xuICAgIHByZXBhcmVkLnBhcmFtcyA9IHBhcmFtcztcbiAgICB0aGlzLnByZXBhcmVkID0gcHJlcGFyZWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBhIHJlY29yZCBmcm9tIENvdWNoREIvRmFicmljXG4gICAqIEBzdW1tYXJ5IEV4dHJhY3RzIHRoZSBJRCBmcm9tIGEgQ291Y2hEQiBkb2N1bWVudCBhbmQgcmV2ZXJ0cyBpdCB0byBhIG1vZGVsIGluc3RhbmNlXG4gICAqL1xuICBwcm90ZWN0ZWQgcHJvY2Vzc1JlY29yZChcbiAgICByOiBhbnksXG4gICAgcGtBdHRyOiBrZXlvZiBNLFxuICAgIHNlcXVlbmNlVHlwZTogXCJOdW1iZXJcIiB8IFwiQmlnSW50XCIgfCB1bmRlZmluZWQsXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApIHtcbiAgICBpZiAocltDb3VjaERCS2V5cy5JRF0pIHtcbiAgICAgIGNvbnN0IFssIC4uLmtleUFyZ3NdID0gcltDb3VjaERCS2V5cy5JRF0uc3BsaXQoQ291Y2hEQktleXMuU0VQQVJBVE9SKTtcbiAgICAgIGNvbnN0IGlkID0ga2V5QXJncy5qb2luKFwiX1wiKTtcbiAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIucmV2ZXJ0KFxuICAgICAgICByLFxuICAgICAgICB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgICAgU2VxdWVuY2UucGFyc2VWYWx1ZShzZXF1ZW5jZVR5cGUsIGlkKSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICBjdHhcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhIHJhdyBNYW5nbyBxdWVyeVxuICAgKiBAc3VtbWFyeSBTZW5kcyBhIHJhdyBNYW5nbyBxdWVyeSB0byBGYWJyaWMgYW5kIHByb2Nlc3NlcyB0aGUgcmVzdWx0c1xuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgcmF3PFI+KHJhd0lucHV0OiBNYW5nb1F1ZXJ5LCAuLi5hcmdzOiBhbnlbXSk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnJhdyk7XG4gICAgY29uc3QgYWdncmVnYXRvciA9IChyYXdJbnB1dCBhcyBhbnkpPy5hZ2dyZWdhdGVJbmZvO1xuICAgIGlmICgocmF3SW5wdXQgYXMgYW55KT8uYWdncmVnYXRlICYmIGFnZ3JlZ2F0b3IpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGVBZ2dyZWdhdGU8Uj4oYWdncmVnYXRvciwgY3R4KTtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0czogYW55W10gPSBhd2FpdCB0aGlzLmFkYXB0ZXIucmF3KFxuICAgICAgcmF3SW5wdXQsXG4gICAgICB0cnVlLFxuICAgICAgdGhpcy5mcm9tU2VsZWN0b3IsXG4gICAgICBjdHhcbiAgICApO1xuXG4gICAgY29uc3QgcGtBdHRyID0gTW9kZWwucGsodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgIGNvbnN0IHR5cGUgPSBNZXRhZGF0YS5nZXQoXG4gICAgICB0aGlzLmZyb21TZWxlY3RvcixcbiAgICAgIE1ldGFkYXRhLmtleShEQktleXMuSUQsIHBrQXR0ciBhcyBzdHJpbmcpXG4gICAgKT8udHlwZTtcblxuICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3RvcilcbiAgICAgIHJldHVybiByZXN1bHRzLm1hcCgocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIHBrQXR0ciwgdHlwZSwgY3R4KSkgYXMgUjtcbiAgICByZXR1cm4gcmVzdWx0cyBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBCdWlsZHMgYSBDb3VjaERCIE1hbmdvIHF1ZXJ5IGZyb20gdGhlIHN0YXRlbWVudFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyB0aGUgc3RhdGVtZW50J3MgY29uZGl0aW9ucywgc2VsZWN0b3JzLCBhbmQgb3B0aW9ucyBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGJ1aWxkKCk6IE1hbmdvUXVlcnkge1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmJ1aWxkKTtcbiAgICBjb25zdCBhZ2dyZWdhdGVRdWVyeSA9IHRoaXMuYnVpbGRBZ2dyZWdhdGVRdWVyeSgpO1xuICAgIGlmIChhZ2dyZWdhdGVRdWVyeSkgcmV0dXJuIGFnZ3JlZ2F0ZVF1ZXJ5O1xuICAgIGNvbnN0IHNlbGVjdG9yczogTWFuZ29TZWxlY3RvciA9IHt9O1xuICAgIHNlbGVjdG9yc1tDb3VjaERCS2V5cy5UQUJMRV0gPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCBxdWVyeTogTWFuZ29RdWVyeSA9IHsgc2VsZWN0b3I6IHNlbGVjdG9ycyB9O1xuICAgIGlmICh0aGlzLnNlbGVjdFNlbGVjdG9yKSBxdWVyeS5maWVsZHMgPSB0aGlzLnNlbGVjdFNlbGVjdG9yIGFzIHN0cmluZ1tdO1xuXG4gICAgaWYgKHRoaXMud2hlcmVDb25kaXRpb24pIHtcbiAgICAgIGNvbnN0IGNvbmRpdGlvbjogTWFuZ29TZWxlY3RvciA9IHRoaXMucGFyc2VDb25kaXRpb24oXG4gICAgICAgIENvbmRpdGlvbi5hbmQoXG4gICAgICAgICAgdGhpcy53aGVyZUNvbmRpdGlvbixcbiAgICAgICAgICBDb25kaXRpb24uYXR0cmlidXRlPE0+KENvdWNoREJLZXlzLlRBQkxFIGFzIGtleW9mIE0pLmVxKFxuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3JbQ291Y2hEQktleXMuVEFCTEVdXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLnNlbGVjdG9yO1xuICAgICAgY29uc3Qgc2VsZWN0b3JLZXlzID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKSBhcyBNYW5nb09wZXJhdG9yW107XG4gICAgICBpZiAoXG4gICAgICAgIHNlbGVjdG9yS2V5cy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgT2JqZWN0LnZhbHVlcyhDb3VjaERCR3JvdXBPcGVyYXRvcikuaW5kZXhPZihzZWxlY3RvcktleXNbMF0pICE9PSAtMVxuICAgICAgKVxuICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yS2V5c1swXSkge1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EOlxuICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gYXMgTWFuZ29TZWxlY3RvclxuICAgICAgICAgICAgICApLnJlZHVjZSgoYWNjdW06IE1hbmdvU2VsZWN0b3JbXSwgdmFsOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsKTtcbiAgICAgICAgICAgICAgICBpZiAoa2V5cy5sZW5ndGggIT09IDEpXG4gICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIFwiVG9vIG1hbnkga2V5cyBpbiBxdWVyeSBzZWxlY3Rvci4gc2hvdWxkIGJlIG9uZVwiXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgIGlmIChrID09PSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQpXG4gICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKC4uLih2YWxba10gYXMgYW55W10pKTtcbiAgICAgICAgICAgICAgICBlbHNlIGFjY3VtLnB1c2godmFsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW07XG4gICAgICAgICAgICAgIH0sIFtdKSxcbiAgICAgICAgICAgIF07XG4gICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IGNvbmRpdGlvbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgQ291Y2hEQkdyb3VwT3BlcmF0b3IuT1I6IHtcbiAgICAgICAgICAgIGNvbnN0IHM6IFJlY29yZDxhbnksIGFueT4gPSB7fTtcbiAgICAgICAgICAgIHNbQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EXSA9IFtcbiAgICAgICAgICAgICAgY29uZGl0aW9uLFxuICAgICAgICAgICAgICAuLi5PYmplY3QuZW50cmllcyhxdWVyeS5zZWxlY3RvcikubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWw7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJUaGlzIHNob3VsZCBiZSBpbXBvc3NpYmxlXCIpO1xuICAgICAgICB9XG4gICAgICBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmVudHJpZXMoY29uZGl0aW9uKS5mb3JFYWNoKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgaWYgKHF1ZXJ5LnNlbGVjdG9yW2tleV0pXG4gICAgICAgICAgICBsb2cud2FybihcbiAgICAgICAgICAgICAgYEEgJHtrZXl9IHF1ZXJ5IHBhcmFtIGlzIGFib3V0IHRvIGJlIG92ZXJyaWRkZW46ICR7cXVlcnkuc2VsZWN0b3Jba2V5XX0gYnkgJHt2YWx9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICBxdWVyeS5zZWxlY3RvcltrZXldID0gdmFsO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgIHF1ZXJ5LnNvcnQgPSBxdWVyeS5zb3J0IHx8IFtdO1xuICAgICAgcXVlcnkuc2VsZWN0b3IgPSBxdWVyeS5zZWxlY3RvciB8fCAoe30gYXMgTWFuZ29TZWxlY3Rvcik7XG4gICAgICBmb3IgKGNvbnN0IFtzZWxlY3RvcktleSwgZGlyZWN0aW9uXSBvZiB0aGlzLm9yZGVyQnlTZWxlY3RvcnMpIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBzZWxlY3RvcktleSBhcyBzdHJpbmc7XG4gICAgICAgIGNvbnN0IHJlYzogUmVjb3JkPHN0cmluZywgT3JkZXJEaXJlY3Rpb24+ID0ge307XG4gICAgICAgIHJlY1tzZWxlY3Rvcl0gPSBkaXJlY3Rpb24gYXMgT3JkZXJEaXJlY3Rpb247XG4gICAgICAgIChxdWVyeS5zb3J0IGFzIFJlY29yZDxzdHJpbmcsIE9yZGVyRGlyZWN0aW9uPltdKS5wdXNoKHJlYyk7XG4gICAgICAgIGlmICghcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdKSB7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgICAgICAocXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5CSUdHRVJdID1cbiAgICAgICAgICAgIG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW1pdFNlbGVjdG9yKSB7XG4gICAgICBxdWVyeS5saW1pdCA9IHRoaXMubGltaXRTZWxlY3RvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLndhcm4oXG4gICAgICAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICApO1xuICAgICAgcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcikgcXVlcnkuc2tpcCA9IHRoaXMub2Zmc2V0U2VsZWN0b3I7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBhIGNvbmRpdGlvbiBpbnRvIGEgQ291Y2hEQiBNYW5nbyBxdWVyeSBzZWxlY3RvclxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIENvbmRpdGlvbiBvYmplY3QgaW50byBhIENvdWNoREIgTWFuZ28gcXVlcnkgc2VsZWN0b3Igc3RydWN0dXJlXG4gICAqL1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcGFyc2VDb25kaXRpb24oY29uZGl0aW9uOiBDb25kaXRpb248TT4pOiBNYW5nb1F1ZXJ5IHtcbiAgICBmdW5jdGlvbiBtZXJnZShcbiAgICAgIG9wOiBNYW5nb09wZXJhdG9yLFxuICAgICAgb2JqMTogTWFuZ29TZWxlY3RvcixcbiAgICAgIG9iajI6IE1hbmdvU2VsZWN0b3JcbiAgICApOiBNYW5nb1F1ZXJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdDogTWFuZ29RdWVyeSA9IHsgc2VsZWN0b3I6IHt9IGFzIE1hbmdvU2VsZWN0b3IgfTtcbiAgICAgIHJlc3VsdC5zZWxlY3RvcltvcF0gPSBbb2JqMSwgb2JqMl07XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGNvbnN0IHsgYXR0cjEsIG9wZXJhdG9yLCBjb21wYXJpc29uIH0gPSBjb25kaXRpb24gYXMgdW5rbm93biBhcyB7XG4gICAgICBhdHRyMTogc3RyaW5nIHwgQ29uZGl0aW9uPE0+O1xuICAgICAgb3BlcmF0b3I6IE9wZXJhdG9yIHwgR3JvdXBPcGVyYXRvcjtcbiAgICAgIGNvbXBhcmlzb246IGFueTtcbiAgICB9O1xuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5TVEFSVFNfV0lUSCkge1xuICAgICAgaWYgKHR5cGVvZiBhdHRyMSAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJTVEFSVFNfV0lUSCByZXF1aXJlcyBhbiBhdHRyaWJ1dGUgbmFtZVwiKTtcbiAgICAgIGlmICh0eXBlb2YgY29tcGFyaXNvbiAhPT0gXCJzdHJpbmdcIilcbiAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXCJTVEFSVFNfV0lUSCByZXF1aXJlcyBhIHN0cmluZyBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3QgcmFuZ2UgPSBwcmVmaXhSYW5nZShjb21wYXJpc29uKTtcbiAgICAgIGNvbnN0IHNlbGVjdG9yOiBNYW5nb1NlbGVjdG9yID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIHNlbGVjdG9yW2F0dHIxXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAoc2VsZWN0b3JbYXR0cjFdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5CSUdHRVJfRVFdID0gcmFuZ2Uuc3RhcnQ7XG4gICAgICAoc2VsZWN0b3JbYXR0cjFdIGFzIE1hbmdvU2VsZWN0b3IpW0NvdWNoREJPcGVyYXRvci5TTUFMTEVSXSA9IHJhbmdlLmVuZDtcbiAgICAgIHJldHVybiB7IHNlbGVjdG9yIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5FTkRTX1dJVEgpIHtcbiAgICAgIGlmICh0eXBlb2YgYXR0cjEgIT09IFwic3RyaW5nXCIpXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFwiRU5EU19XSVRIIHJlcXVpcmVzIGFuIGF0dHJpYnV0ZSBuYW1lXCIpO1xuICAgICAgaWYgKHR5cGVvZiBjb21wYXJpc29uICE9PSBcInN0cmluZ1wiKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkVORFNfV0lUSCByZXF1aXJlcyBhIHN0cmluZyBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3Qgc2VsZWN0b3I6IE1hbmdvU2VsZWN0b3IgPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgc2VsZWN0b3JbYXR0cjFdID0ge1xuICAgICAgICBbQ291Y2hEQk9wZXJhdG9yLlJFR0VYUF06IGAke2VzY2FwZVJlZ0V4cChjb21wYXJpc29uKX0kYCxcbiAgICAgIH0gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIHJldHVybiB7IHNlbGVjdG9yIH07XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5CRVRXRUVOKSB7XG4gICAgICBjb25zdCBhdHRyID0gYXR0cjEgYXMgc3RyaW5nO1xuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGNvbXBhcmlzb24pIHx8IGNvbXBhcmlzb24ubGVuZ3RoICE9PSAyKVxuICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkJFVFdFRU4gb3BlcmF0b3IgcmVxdWlyZXMgW21pbiwgbWF4XSBjb21wYXJpc29uXCIpO1xuICAgICAgY29uc3QgW21pbiwgbWF4XSA9IGNvbXBhcmlzb247XG4gICAgICBjb25zdCBvcEJldHdlZW46IE1hbmdvU2VsZWN0b3IgPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgb3BCZXR3ZWVuW2F0dHJdID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIChvcEJldHdlZW5bYXR0cl0gYXMgTWFuZ29TZWxlY3RvcilbXG4gICAgICAgIHRyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5CSUdHRVJfRVEpXG4gICAgICBdID0gbWluO1xuICAgICAgKG9wQmV0d2VlblthdHRyXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICAgICAgdHJhbnNsYXRlT3BlcmF0b3JzKE9wZXJhdG9yLlNNQUxMRVJfRVEpXG4gICAgICBdID0gbWF4O1xuICAgICAgcmV0dXJuIHsgc2VsZWN0b3I6IG9wQmV0d2VlbiB9O1xuICAgIH1cblxuICAgIGxldCBvcDogTWFuZ29TZWxlY3RvciA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgaWYgKFxuICAgICAgW0dyb3VwT3BlcmF0b3IuQU5ELCBHcm91cE9wZXJhdG9yLk9SLCBPcGVyYXRvci5OT1RdLmluZGV4T2YoXG4gICAgICAgIG9wZXJhdG9yIGFzIEdyb3VwT3BlcmF0b3JcbiAgICAgICkgPT09IC0xXG4gICAgKSB7XG4gICAgICBvcFthdHRyMSBhcyBzdHJpbmddID0ge30gYXMgTWFuZ29TZWxlY3RvcjtcbiAgICAgIChvcFthdHRyMSBhcyBzdHJpbmddIGFzIE1hbmdvU2VsZWN0b3IpW3RyYW5zbGF0ZU9wZXJhdG9ycyhvcGVyYXRvcildID1cbiAgICAgICAgY29tcGFyaXNvbjtcbiAgICB9IGVsc2UgaWYgKG9wZXJhdG9yID09PSBPcGVyYXRvci5OT1QpIHtcbiAgICAgIG9wID0gdGhpcy5wYXJzZUNvbmRpdGlvbihhdHRyMSBhcyBDb25kaXRpb248TT4pLnNlbGVjdG9yIGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICBvcFt0cmFuc2xhdGVPcGVyYXRvcnMoT3BlcmF0b3IuTk9UKV0gPSB7fSBhcyBNYW5nb1NlbGVjdG9yO1xuICAgICAgKG9wW3RyYW5zbGF0ZU9wZXJhdG9ycyhPcGVyYXRvci5OT1QpXSBhcyBNYW5nb1NlbGVjdG9yKVtcbiAgICAgICAgKGF0dHIxIGFzIHVua25vd24gYXMgeyBhdHRyMTogc3RyaW5nIH0pLmF0dHIxXG4gICAgICBdID0gY29tcGFyaXNvbjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3Qgb3AxOiBhbnkgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKGF0dHIxIGFzIENvbmRpdGlvbjxNPikuc2VsZWN0b3I7XG4gICAgICBjb25zdCBvcDI6IGFueSA9IHRoaXMucGFyc2VDb25kaXRpb24oY29tcGFyaXNvbiBhcyBDb25kaXRpb248TT4pLnNlbGVjdG9yO1xuICAgICAgb3AgPSBtZXJnZSh0cmFuc2xhdGVPcGVyYXRvcnMob3BlcmF0b3IpLCBvcDEsIG9wMikuc2VsZWN0b3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgc2VsZWN0b3I6IG9wIH07XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEJ1aWxkcyBhbiBhZ2dyZWdhdGUgcXVlcnkgaWYgYWdncmVnYXRpb24gaXMgcmVxdWVzdGVkXG4gICAqIEBzdW1tYXJ5IENoZWNrcyBmb3IgYWdncmVnYXRlIG9wZXJhdGlvbnMgYW5kIHJldHVybnMgYSBzcGVjaWFsIE1hbmdvUXVlcnkgZm9yIHRoZW1cbiAgICovXG4gIHByaXZhdGUgYnVpbGRBZ2dyZWdhdGVRdWVyeSgpOiBNYW5nb1F1ZXJ5IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZnJvbVNlbGVjdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLmF2Z1NlbGVjdG9yKSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGUgPSBTdHJpbmcodGhpcy5hdmdTZWxlY3Rvcik7XG4gICAgICBjb25zdCBzdW1JbmZvID0gdGhpcy5jcmVhdGVBZ2dyZWdhdGVEZXNjcmlwdG9yKFwic3VtXCIsIGF0dHJpYnV0ZSk7XG4gICAgICBjb25zdCBjb3VudEluZm8gPSB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZURlc2NyaXB0b3IoXCJjb3VudFwiLCBhdHRyaWJ1dGUpO1xuICAgICAgaWYgKCFzdW1JbmZvIHx8ICFjb3VudEluZm8pXG4gICAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICAgIGBBdmcgb3BlcmF0aW9uIHJlcXVpcmVzIHN1bSBhbmQgY291bnQgdmlld3MgZm9yIGF0dHJpYnV0ZSAke2F0dHJpYnV0ZX1gXG4gICAgICAgICk7XG4gICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeSh7XG4gICAgICAgIGtpbmQ6IFwiYXZnXCIsXG4gICAgICAgIGF0dHJpYnV0ZSxcbiAgICAgICAgc3VtRGVzY3JpcHRvcjogc3VtSW5mby5kZXNjcmlwdG9yLFxuICAgICAgICBjb3VudERlc2NyaXB0b3I6IGNvdW50SW5mby5kZXNjcmlwdG9yLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLmNvdW50RGlzdGluY3RTZWxlY3RvciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3QgYXR0cmlidXRlID1cbiAgICAgICAgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgPT0gbnVsbFxuICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgOiBTdHJpbmcodGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IpO1xuICAgICAgY29uc3QgaW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcImRpc3RpbmN0XCIsIGF0dHJpYnV0ZSk7XG4gICAgICBpZiAoaW5mbykge1xuICAgICAgICBpbmZvLmNvdW50RGlzdGluY3QgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShpbmZvKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBhZ2dyZWdhdG9yVXNlZCA9XG4gICAgICB0eXBlb2YgdGhpcy5jb3VudFNlbGVjdG9yICE9PSBcInVuZGVmaW5lZFwiIHx8XG4gICAgICB0eXBlb2YgdGhpcy5jb3VudERpc3RpbmN0U2VsZWN0b3IgIT09IFwidW5kZWZpbmVkXCIgfHxcbiAgICAgICEhdGhpcy5taW5TZWxlY3RvciB8fFxuICAgICAgISF0aGlzLm1heFNlbGVjdG9yIHx8XG4gICAgICAhIXRoaXMuc3VtU2VsZWN0b3IgfHxcbiAgICAgICEhdGhpcy5kaXN0aW5jdFNlbGVjdG9yO1xuXG4gICAgY29uc3QgYWdncmVnYXRvckNoZWNrczogQXJyYXk8W1ZpZXdLaW5kLCBTZWxlY3RTZWxlY3RvcjxNPiB8IHVuZGVmaW5lZF0+ID0gW1xuICAgICAgW1xuICAgICAgICBcImNvdW50XCIsXG4gICAgICAgICh0aGlzLmNvdW50U2VsZWN0b3IgPz8gdW5kZWZpbmVkKSBhcyBTZWxlY3RTZWxlY3RvcjxNPiB8IHVuZGVmaW5lZCxcbiAgICAgIF0sXG4gICAgICBbXCJtYXhcIiwgdGhpcy5tYXhTZWxlY3Rvcl0sXG4gICAgICBbXCJtaW5cIiwgdGhpcy5taW5TZWxlY3Rvcl0sXG4gICAgICBbXCJzdW1cIiwgdGhpcy5zdW1TZWxlY3Rvcl0sXG4gICAgICBbXCJkaXN0aW5jdFwiLCB0aGlzLmRpc3RpbmN0U2VsZWN0b3JdLFxuICAgIF07XG5cbiAgICBmb3IgKGNvbnN0IFtraW5kLCBzZWxlY3Rvcl0gb2YgYWdncmVnYXRvckNoZWNrcykge1xuICAgICAgY29uc3QgYXR0cmlidXRlID0gc2VsZWN0b3IgPyBTdHJpbmcoc2VsZWN0b3IpIDogdW5kZWZpbmVkO1xuICAgICAgY29uc3QgaW5mbyA9IHRoaXMuY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihraW5kLCBhdHRyaWJ1dGUpO1xuICAgICAgaWYgKGluZm8pIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KGluZm8pO1xuICAgIH1cblxuICAgIGlmIChhZ2dyZWdhdG9yVXNlZCkge1xuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoXG4gICAgICAgIGBObyBDb3VjaERCIHZpZXcgbWV0YWRhdGEgZm91bmQgZm9yIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKFxuICAgICAgICAgIHRoaXMuZnJvbVNlbGVjdG9yXG4gICAgICAgICl9IGFnZ3JlZ2F0b3JgXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGFnZ3JlZ2F0ZSBkZXNjcmlwdG9yIGZvciBhIHZpZXctYmFzZWQgYWdncmVnYXRpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQWdncmVnYXRlRGVzY3JpcHRvcihcbiAgICBraW5kOiBWaWV3S2luZCxcbiAgICBhdHRyaWJ1dGU/OiBzdHJpbmdcbiAgKTogRXh0cmFjdDxGYWJyaWNBZ2dyZWdhdGVJbmZvLCB7IGtpbmQ6IFZpZXdLaW5kIH0+IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZnJvbVNlbGVjdG9yKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IG1ldGFzID0gZmluZFZpZXdNZXRhZGF0YSh0aGlzLmZyb21TZWxlY3Rvciwga2luZCwgYXR0cmlidXRlKTtcbiAgICBpZiAoIW1ldGFzLmxlbmd0aCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBjb25zdCBtZXRhID0gbWV0YXNbMF07XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCB2aWV3TmFtZSA9IGdlbmVyYXRlVmlld05hbWUodGFibGVOYW1lLCBtZXRhLmF0dHJpYnV0ZSwga2luZCwgbWV0YSk7XG4gICAgY29uc3QgZGRvYyA9IG1ldGEuZGRvYyB8fCBnZW5lcmF0ZURlc2lnbkRvY05hbWUodGFibGVOYW1lLCB2aWV3TmFtZSk7XG4gICAgY29uc3Qgb3B0aW9uczogUmVjb3JkPHN0cmluZywgYW55PiA9IHtcbiAgICAgIHJlZHVjZTogbWV0YS5yZWR1Y2UgIT09IHVuZGVmaW5lZCA/IHRydWUgOiAhbWV0YS5yZXR1cm5Eb2NzLFxuICAgIH07XG4gICAgaWYgKGtpbmQgPT09IFwiZGlzdGluY3RcIiB8fCBraW5kID09PSBcImdyb3VwQnlcIikgb3B0aW9ucy5ncm91cCA9IHRydWU7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtpbmQsXG4gICAgICBtZXRhLFxuICAgICAgZGVzY3JpcHRvcjoge1xuICAgICAgICBkZG9jLFxuICAgICAgICB2aWV3OiB2aWV3TmFtZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyB0aGUgc3BlY2lhbCBhZ2dyZWdhdGUgTWFuZ29RdWVyeSBtYXJrZXJcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQWdncmVnYXRlUXVlcnkoXG4gICAgaW5mbzogRmFicmljQWdncmVnYXRlSW5mb1xuICApOiBNYW5nb1F1ZXJ5ICYgeyBhZ2dyZWdhdGU6IHRydWU7IGFnZ3JlZ2F0ZUluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8gfSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbGVjdG9yOiB7fSxcbiAgICAgIGFnZ3JlZ2F0ZTogdHJ1ZSxcbiAgICAgIGFnZ3JlZ2F0ZUluZm86IGluZm8sXG4gICAgfSBhcyBNYW5nb1F1ZXJ5ICYgeyBhZ2dyZWdhdGU6IHRydWU7IGFnZ3JlZ2F0ZUluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgYWRhcHRlciBjYXN0IHRvIEZhYnJpY0NsaWVudEFkYXB0ZXIgZm9yIHZpZXcgYWNjZXNzXG4gICAqL1xuICBwcml2YXRlIGdldEZhYnJpY0FkYXB0ZXIoKTogRmFicmljQ2xpZW50QWRhcHRlciB7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBFeGVjdXRlcyBhbiBhZ2dyZWdhdGUgcXVlcnkgdmlhIGFkYXB0ZXIncyB2aWV3IG1ldGhvZFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBleGVjdXRlQWdncmVnYXRlPFI+KFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm8sXG4gICAgY3R4OiBDb250ZXh0PEZhYnJpY0NsaWVudEZsYWdzPlxuICApOiBQcm9taXNlPFI+IHtcbiAgICBpZiAoIXRoaXMuaXNWaWV3QWdncmVnYXRlKGluZm8pKSB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVBdmVyYWdlPFI+KGluZm8sIGN0eCk7XG4gICAgfVxuICAgIGNvbnN0IGZhYnJpY0FkYXB0ZXIgPSB0aGlzLmdldEZhYnJpY0FkYXB0ZXIoKTtcbiAgICBjb25zdCB2aWV3SW5mbyA9IGluZm8gYXMgRXh0cmFjdDxGYWJyaWNBZ2dyZWdhdGVJbmZvLCB7IGtpbmQ6IFZpZXdLaW5kIH0+O1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmFicmljQWRhcHRlci52aWV3PFZpZXdSZXNwb25zZT4oXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLmRkb2MsXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLnZpZXcsXG4gICAgICB2aWV3SW5mby5kZXNjcmlwdG9yLm9wdGlvbnMsXG4gICAgICBjdHhcbiAgICApO1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NWaWV3UmVzcG9uc2U8Uj4oaW5mbywgcmVzcG9uc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBIYW5kbGVzIGF2ZXJhZ2UgY2FsY3VsYXRpb24gZnJvbSBzdW0gYW5kIGNvdW50IHZpZXdzXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGhhbmRsZUF2ZXJhZ2U8Uj4oXG4gICAgaW5mbzogRmFicmljQWdncmVnYXRlSW5mbyxcbiAgICBjdHg6IENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+XG4gICk6IFByb21pc2U8Uj4ge1xuICAgIGlmIChpbmZvLmtpbmQgIT09IFwiYXZnXCIpXG4gICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihcIkF2ZXJhZ2UgZGVzY3JpcHRvciBpcyBub3QgdmFsaWRcIik7XG4gICAgY29uc3QgZmFicmljQWRhcHRlciA9IHRoaXMuZ2V0RmFicmljQWRhcHRlcigpO1xuICAgIGNvbnN0IFtzdW1EZXNjLCBjb3VudERlc2NdID0gW2luZm8uc3VtRGVzY3JpcHRvciwgaW5mby5jb3VudERlc2NyaXB0b3JdO1xuICAgIGNvbnN0IFtzdW1SZXNwb25zZSwgY291bnRSZXNwb25zZV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBmYWJyaWNBZGFwdGVyLnZpZXc8Vmlld1Jlc3BvbnNlPihcbiAgICAgICAgc3VtRGVzYy5kZG9jLFxuICAgICAgICBzdW1EZXNjLnZpZXcsXG4gICAgICAgIHN1bURlc2Mub3B0aW9ucyxcbiAgICAgICAgY3R4XG4gICAgICApLFxuICAgICAgZmFicmljQWRhcHRlci52aWV3PFZpZXdSZXNwb25zZT4oXG4gICAgICAgIGNvdW50RGVzYy5kZG9jLFxuICAgICAgICBjb3VudERlc2MudmlldyxcbiAgICAgICAgY291bnREZXNjLm9wdGlvbnMsXG4gICAgICAgIGN0eFxuICAgICAgKSxcbiAgICBdKTtcbiAgICBjb25zdCBzdW0gPSBzdW1SZXNwb25zZS5yb3dzPy5bMF0/LnZhbHVlID8/IDA7XG4gICAgY29uc3QgY291bnQgPSBjb3VudFJlc3BvbnNlLnJvd3M/LlswXT8udmFsdWUgPz8gMDtcbiAgICBpZiAoIWNvdW50KSByZXR1cm4gMCBhcyB1bmtub3duIGFzIFI7XG4gICAgcmV0dXJuIChzdW0gLyBjb3VudCkgYXMgdW5rbm93biBhcyBSO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9jZXNzZXMgdGhlIHZpZXcgcmVzcG9uc2UgYmFzZWQgb24gYWdncmVnYXRlIGtpbmRcbiAgICovXG4gIHByaXZhdGUgcHJvY2Vzc1ZpZXdSZXNwb25zZTxSPihcbiAgICBpbmZvOiBGYWJyaWNBZ2dyZWdhdGVJbmZvLFxuICAgIHJlc3BvbnNlOiBWaWV3UmVzcG9uc2VcbiAgKTogUiB7XG4gICAgaWYgKGluZm8ua2luZCA9PT0gXCJhdmdcIilcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKFxuICAgICAgICBcIkF2ZXJhZ2UgcmVzdWx0cyBzaG91bGQgYmUgaGFuZGxlZCBiZWZvcmUgcHJvY2Vzc2luZyByb3dzXCJcbiAgICAgICk7XG4gICAgY29uc3Qgcm93cyA9IHJlc3BvbnNlLnJvd3MgfHwgW107XG4gICAgY29uc3Qgdmlld0luZm8gPSBpbmZvIGFzIEV4dHJhY3Q8RmFicmljQWdncmVnYXRlSW5mbywgeyBraW5kOiBWaWV3S2luZCB9PjtcbiAgICBjb25zdCBtZXRhID0gdmlld0luZm8ubWV0YTtcbiAgICBpZiAodmlld0luZm8uY291bnREaXN0aW5jdCkge1xuICAgICAgcmV0dXJuIChyb3dzLmxlbmd0aCB8fCAwKSBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuICAgIGlmICh2aWV3SW5mby5raW5kID09PSBcImRpc3RpbmN0XCIgfHwgdmlld0luZm8ua2luZCA9PT0gXCJncm91cEJ5XCIpIHtcbiAgICAgIHJldHVybiByb3dzLm1hcCgocm93KSA9PiByb3cua2V5ID8/IHJvdy52YWx1ZSkgYXMgdW5rbm93biBhcyBSO1xuICAgIH1cbiAgICBpZiAobWV0YS5yZXR1cm5Eb2NzKSB7XG4gICAgICByZXR1cm4gcm93cy5tYXAoKHJvdykgPT4gcm93LnZhbHVlID8/IHJvdy5kb2MgPz8gcm93KSBhcyB1bmtub3duIGFzIFI7XG4gICAgfVxuICAgIGlmICghcm93cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAodmlld0luZm8ua2luZCA9PT0gXCJjb3VudFwiID8gMCA6IG51bGwpIGFzIHVua25vd24gYXMgUjtcbiAgICB9XG4gICAgcmV0dXJuIChyb3dzWzBdLnZhbHVlID8/IHJvd3NbMF0ua2V5ID8/IG51bGwpIGFzIHVua25vd24gYXMgUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVHlwZSBndWFyZCB0byBjaGVjayBpZiBpbmZvIGlzIGEgdmlldy1iYXNlZCBhZ2dyZWdhdGVcbiAgICovXG4gIHByaXZhdGUgaXNWaWV3QWdncmVnYXRlKFxuICAgIGluZm86IEZhYnJpY0FnZ3JlZ2F0ZUluZm9cbiAgKTogaW5mbyBpcyBFeHRyYWN0PEZhYnJpY0FnZ3JlZ2F0ZUluZm8sIHsga2luZDogVmlld0tpbmQgfT4ge1xuICAgIHJldHVybiBpbmZvLmtpbmQgIT09IFwiYXZnXCI7XG4gIH1cbn1cbiJdfQ==
|
|
447
|
+
//# sourceMappingURL=FabricClientStatement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricClientStatement.js","sourceRoot":"","sources":["../../../src/client/FabricClientStatement.ts"],"names":[],"mappings":"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"}
|
|
@@ -102,4 +102,4 @@ export function writeCollectionDesignDocs(docs, p = process.cwd(), collection) {
|
|
|
102
102
|
return;
|
|
103
103
|
writeDesignDocs(docs, p, collection);
|
|
104
104
|
}
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGllbnQvY29sbGVjdGlvbnMvZ2VuZXJhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUNBQThCO0FBc0R4RCxNQUFNLFVBQVUsYUFBYSxDQUMzQixjQUFzQixFQUN0QixNQUFjLEVBQ2QsaUJBQXlCLEVBQ3pCLFlBQW9CLEVBQ3BCLFdBQW1CLEVBQ25CLGNBQXVCLEVBQ3ZCLGVBQXdCO0lBRXhCLE9BQU87UUFDTCxJQUFJLEVBQUUsY0FBYztRQUNwQixNQUFNLEVBQUUsTUFBTTtRQUNkLGlCQUFpQjtRQUNqQixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxlQUFlO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUNsQyxLQUFhLEVBQ2IsaUJBQXlCLEdBQUcsS0FBSyxTQUFTLEVBQzFDLG9CQUE0QixDQUFDLEVBQzdCLGVBQXVCLENBQUMsRUFDeEIsY0FBc0IsQ0FBQyxFQUN2QixpQkFBMEIsSUFBSSxFQUM5QixrQkFBMkIsSUFBSTtJQUUvQixNQUFNLENBQUMsR0FBRyxhQUFhLENBQ3JCLGNBQWMsRUFDZCxPQUFPLEtBQUssV0FBVyxFQUN2QixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLFdBQVcsRUFDWCxjQUFjLEVBQ2QsZUFBZSxDQUNoQixDQUFDO0lBRUYsQ0FBQyxDQUFDLGlCQUFpQixHQUFHO1FBQ3BCLGVBQWUsRUFBRSxPQUFPLEtBQUssU0FBUztLQUN2QyxDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFnQixFQUNoQixjQUFzQixFQUN0QixvQkFBNEIsQ0FBQyxFQUM3QixlQUF1QixDQUFDLEVBQ3hCLGNBQXNCLENBQUMsRUFDdkIsaUJBQTBCLElBQUksRUFDOUIsa0JBQTJCLElBQUk7SUFFL0IsTUFBTSxDQUFDLEdBQUcsYUFBYSxDQUNyQixjQUFjLEVBQ2QsTUFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQ3JELGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLENBQ2hCLENBQUM7SUFDRixDQUFDLENBQUMsaUJBQWlCLEdBQUc7UUFDcEIsZUFBZSxFQUFFLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRztLQUN0RSxDQUFDO0lBQ0YsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0IsQ0FDdEMsQ0FBaUIsRUFDakIsTUFBZ0IsRUFDaEIsWUFHSSxFQUFFLEVBQ04sU0FBa0IsS0FBSztJQUV2QixJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFMUQsU0FBUyxpQkFBaUIsQ0FBQyxHQUFnQztRQUN6RCxJQUFJLENBQUM7WUFDSCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7Z0JBQUUsT0FBTyxHQUFHLENBQUM7WUFDeEMsT0FBTyxHQUFHLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO1FBQ3JDLENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxhQUFhLENBQUMsQ0FBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pELFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFFL0MsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDbkMsRUFBRSxFQUNGO1FBQ0UsaUJBQWlCLEVBQUUsQ0FBQztRQUNwQixZQUFZLEVBQUUsQ0FBQztRQUNmLFdBQVcsRUFBRSxDQUFDO1FBQ2QsY0FBYyxFQUFFLElBQUk7UUFDcEIsZUFBZSxFQUFFLElBQUk7S0FDdEIsRUFDRCxTQUFTLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FDN0IsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ2xDLEVBQUUsRUFDRjtRQUNFLGlCQUFpQixFQUFFLENBQUM7UUFDcEIsWUFBWSxFQUFFLENBQUM7UUFDZixXQUFXLEVBQUUsQ0FBQztRQUNkLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLGVBQWUsRUFBRSxJQUFJO0tBQ3RCLEVBQ0QsU0FBUyxFQUFFLFVBQVUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFFRixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUU1RCxNQUFNLFFBQVEsR0FBRyxNQUFNO1NBQ3BCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ1osV0FBd0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtRQUNsQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsR0FDcEUsZUFBZSxDQUFDO1FBQ2xCLE9BQU8sb0JBQW9CLENBQ3pCLEtBQUssRUFDTCxDQUFDLEVBQ0QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLEtBQUssQ0FDTixDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0g7U0FDQSxJQUFJLEVBQUUsQ0FBQztJQUVWLElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxNQUFNLFFBQVEsR0FDWixPQUFPLFVBQVUsQ0FBQyxRQUFRLEtBQUssUUFBUTtZQUNyQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVE7WUFDckIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUNFLFFBQVE7WUFDUixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ1osQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FDbEUsRUFDRCxDQUFDO1lBQ0QsTUFBTSxFQUFFLGlCQUFpQixFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLEdBQ3BFLGVBQWUsQ0FBQztZQUNsQixRQUFRLENBQUMsSUFBSSxDQUNYLG9CQUFvQixDQUNsQixVQUFVLENBQUMsS0FBSyxFQUNoQixRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLEtBQUssQ0FDTixDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFJLFVBQXVCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEQsTUFBTSxFQUNKLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osV0FBVyxFQUNYLGNBQWMsRUFDZCxlQUFlLEdBQ2hCLEdBQUcsY0FBYyxDQUFDO1FBQ25CLE9BQU8sbUJBQW1CLENBQ3hCLE1BQU0sRUFDTixDQUFDLEVBQ0QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixXQUFXLEVBQ1gsY0FBYyxFQUNkLGVBQWUsQ0FDaEIsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTztRQUNMLFFBQVE7UUFDUixNQUFNO0tBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLElBQXlCLEVBQ3pCLElBQVksT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUN6QixRQUFRLEdBQUcsb0JBQW9CO0lBRS9CLGlFQUFpRTtJQUNqRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekIsaUVBQWlFO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUU3QixTQUFTLHdCQUF3QixDQUFDLFFBQWdCO1FBQ2hELE1BQU0sT0FBTyxHQUFXLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFXLENBQUM7UUFDekQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0Qsd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxjQUFjLFFBQVEsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN2RSx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvQixFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM3RCxDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxJQUF3QixFQUN4QixJQUFZLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFDekIsVUFBbUI7SUFFbkIsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNO1FBQUUsT0FBTztJQUMxQixlQUFlLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUN2QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IENvdWNoREJEZXNpZ25Eb2MgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25SZXNvbHZlciB9IGZyb20gXCIuLi8uLi9zaGFyZWQvaW5kZXhcIjtcbmltcG9ydCB7IHdyaXRlRGVzaWduRG9jcyB9IGZyb20gXCIuLi9pbmRleGVzL2dlbmVyYXRpb25cIjtcblxuLy9cbi8vIGV4cG9ydCB0eXBlIEZhYnJpY0NvbGxlY3Rpb24gPSB7XG4vLyAgIG5hbWU6IFwiY29sbGVjdGlvbk1hcmJsZXNcIjtcbi8vICAgcG9saWN5OiBcIk9SKCdPcmcxTVNQLm1lbWJlcicsICdPcmcyTVNQLm1lbWJlcicpXCI7XG4vLyAgIHJlcXVpcmVkUGVlckNvdW50OiAwO1xuLy8gICBtYXhQZWVyQ291bnQ6IDM7XG4vLyAgIGJsb2NrVG9MaXZlOiAwO1xuLy8gICBtZW1iZXJPbmx5UmVhZDogdHJ1ZTtcbi8vICAgbWVtYmVyT25seVdyaXRlOiB0cnVlO1xuLy8gICBlbmRvcnNlbWVudFBvbGljeToge1xuLy8gICAgIGlkZW50aXRpZXM6IFtcbi8vICAgICAgIHsgcm9sZTogeyBuYW1lOiBcIm1lbWJlclwiOyBtc3BJZDogXCJPcmcxTVNQXCIgfSB9LFxuLy8gICAgICAgeyByb2xlOiB7IG5hbWU6IFwibWVtYmVyXCI7IG1zcElkOiBcIk9yZzJNU1BcIiB9IH0sXG4vLyAgICAgXTtcbi8vICAgICBydWxlOiBcIk9SKCdPcmcxTVNQLm1lbWJlcicsICdPcmcyTVNQLm1lbWJlcicpXCI7XG4vLyAgIH07XG4vLyB9O1xuXG5leHBvcnQgdHlwZSBGYWJyaWNQb2xpY3lJZGVudGl0eSA9IHtcbiAgcm9sZToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBtc3BJZDogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgRmFicmljQ29sbGVjdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwb2xpY3k6IHN0cmluZztcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlcjtcbiAgbWF4UGVlckNvdW50OiBudW1iZXI7XG4gIGJsb2NrVG9MaXZlOiBudW1iZXI7XG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuO1xuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW47XG4gIGVuZG9yc2VtZW50UG9saWN5OiB7XG4gICAgaWRlbnRpdGllczogRmFicmljUG9saWN5SWRlbnRpdHlbXTtcbiAgICBydWxlOiBzdHJpbmc7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBQcml2YXRlQ29sbGVjdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwb2xpY3k6IHN0cmluZztcbiAgcmVxdWlyZWRQZWVyQ291bnQ6IG51bWJlcjtcbiAgbWF4UGVlckNvdW50OiBudW1iZXI7XG4gIGJsb2NrVG9MaXZlOiBudW1iZXI7XG4gIG1lbWJlck9ubHlSZWFkOiBib29sZWFuO1xuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW47XG4gIGVuZG9yc2VtZW50UG9saWN5Pzoge1xuICAgIHNpZ25hdHVyZVBvbGljeTogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbGxlY3Rpb25Gb3IoXG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIHBvbGljeTogc3RyaW5nLFxuICByZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyLFxuICBtYXhQZWVyQ291bnQ6IG51bWJlcixcbiAgYmxvY2tUb0xpdmU6IG51bWJlcixcbiAgbWVtYmVyT25seVJlYWQ6IGJvb2xlYW4sXG4gIG1lbWJlck9ubHlXcml0ZTogYm9vbGVhblxuKTogUHJpdmF0ZUNvbGxlY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIG5hbWU6IGNvbGxlY3Rpb25OYW1lLFxuICAgIHBvbGljeTogcG9saWN5LFxuICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgIG1heFBlZXJDb3VudCxcbiAgICBibG9ja1RvTGl2ZSxcbiAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICBtZW1iZXJPbmx5V3JpdGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcml2YXRlQ29sbGVjdGlvbkZvcihcbiAgbXNwSWQ6IHN0cmluZyxcbiAgY29sbGVjdGlvbk5hbWU6IHN0cmluZyA9IGAke21zcElkfVByaXZhdGVgLFxuICByZXF1aXJlZFBlZXJDb3VudDogbnVtYmVyID0gMCxcbiAgbWF4UGVlckNvdW50OiBudW1iZXIgPSAwLFxuICBibG9ja1RvTGl2ZTogbnVtYmVyID0gMCxcbiAgbWVtYmVyT25seVJlYWQ6IGJvb2xlYW4gPSB0cnVlLFxuICBtZW1iZXJPbmx5V3JpdGU6IGJvb2xlYW4gPSB0cnVlXG4pOiBQcml2YXRlQ29sbGVjdGlvbiB7XG4gIGNvbnN0IGMgPSBjb2xsZWN0aW9uRm9yKFxuICAgIGNvbGxlY3Rpb25OYW1lLFxuICAgIGBPUignJHttc3BJZH0ubWVtYmVyJylgLFxuICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgIG1heFBlZXJDb3VudCxcbiAgICBibG9ja1RvTGl2ZSxcbiAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICBtZW1iZXJPbmx5V3JpdGVcbiAgKTtcblxuICBjLmVuZG9yc2VtZW50UG9saWN5ID0ge1xuICAgIHNpZ25hdHVyZVBvbGljeTogYE9SKCcke21zcElkfS5wZWVyJylgLFxuICB9O1xuICByZXR1cm4gYztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYXJlZENvbGxlY3Rpb25Gb3IoXG4gIG1zcElkczogc3RyaW5nW10sXG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmcsXG4gIHJlcXVpcmVkUGVlckNvdW50OiBudW1iZXIgPSAxLFxuICBtYXhQZWVyQ291bnQ6IG51bWJlciA9IDIsXG4gIGJsb2NrVG9MaXZlOiBudW1iZXIgPSAwLFxuICBtZW1iZXJPbmx5UmVhZDogYm9vbGVhbiA9IHRydWUsXG4gIG1lbWJlck9ubHlXcml0ZTogYm9vbGVhbiA9IHRydWVcbik6IFByaXZhdGVDb2xsZWN0aW9uIHtcbiAgY29uc3QgYyA9IGNvbGxlY3Rpb25Gb3IoXG4gICAgY29sbGVjdGlvbk5hbWUsXG4gICAgYE9SKCR7bXNwSWRzLm1hcCgobSkgPT4gYCcke219Lm1lbWJlcidgKS5qb2luKFwiLFwiKX0pYCxcbiAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICBtYXhQZWVyQ291bnQsXG4gICAgYmxvY2tUb0xpdmUsXG4gICAgbWVtYmVyT25seVJlYWQsXG4gICAgbWVtYmVyT25seVdyaXRlXG4gICk7XG4gIGMuZW5kb3JzZW1lbnRQb2xpY3kgPSB7XG4gICAgc2lnbmF0dXJlUG9saWN5OiBgQU5EKCR7bXNwSWRzLm1hcCgobSkgPT4gYCcke219LnBlZXInYCkuam9pbihcIixcIil9KWAsXG4gIH07XG4gIHJldHVybiBjO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXh0cmFjdENvbGxlY3Rpb25zPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIG06IENvbnN0cnVjdG9yPE0+LFxuICBtc3BJZHM6IHN0cmluZ1tdLFxuICBvdmVycmlkZXM6IHtcbiAgICBwcml2YXRlQ29scz86IFBhcnRpYWw8UHJpdmF0ZUNvbGxlY3Rpb24+O1xuICAgIHNoYXJlZENvbHM/OiBQYXJ0aWFsPFByaXZhdGVDb2xsZWN0aW9uPjtcbiAgfSA9IHt9LFxuICBtaXJyb3I6IGJvb2xlYW4gPSBmYWxzZVxuKSB7XG4gIGxldCB7IHByaXZhdGVDb2xzLCBzaGFyZWRDb2xzIH0gPSBNb2RlbC5jb2xsZWN0aW9uc0ZvcihtKTtcblxuICBmdW5jdGlvbiByZXNvbHZlQ29sbGVjdGlvbihhcmc6IHN0cmluZyB8IENvbGxlY3Rpb25SZXNvbHZlcik6IHN0cmluZyB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0eXBlb2YgYXJnID09PSBcInN0cmluZ1wiKSByZXR1cm4gYXJnO1xuICAgICAgcmV0dXJuIGFyZyhtLCBtc3BJZHNbMF0pIGFzIHN0cmluZztcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlQ29scyA9IHByaXZhdGVDb2xzLm1hcChyZXNvbHZlQ29sbGVjdGlvbik7XG4gIHNoYXJlZENvbHMgPSBzaGFyZWRDb2xzLm1hcChyZXNvbHZlQ29sbGVjdGlvbik7XG5cbiAgY29uc3QgcHJpdmF0ZURlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICB7XG4gICAgICByZXF1aXJlZFBlZXJDb3VudDogMCxcbiAgICAgIG1heFBlZXJDb3VudDogMCxcbiAgICAgIGJsb2NrVG9MaXZlOiAwLFxuICAgICAgbWVtYmVyT25seVJlYWQ6IHRydWUsXG4gICAgICBtZW1iZXJPbmx5V3JpdGU6IHRydWUsXG4gICAgfSxcbiAgICBvdmVycmlkZXM/LnByaXZhdGVDb2xzIHx8IHt9XG4gICk7XG4gIGNvbnN0IHNoYXJlZERlZmF1bHRzID0gT2JqZWN0LmFzc2lnbihcbiAgICB7fSxcbiAgICB7XG4gICAgICByZXF1aXJlZFBlZXJDb3VudDogMSxcbiAgICAgIG1heFBlZXJDb3VudDogMixcbiAgICAgIGJsb2NrVG9MaXZlOiAwLFxuICAgICAgbWVtYmVyT25seVJlYWQ6IHRydWUsXG4gICAgICBtZW1iZXJPbmx5V3JpdGU6IHRydWUsXG4gICAgfSxcbiAgICBvdmVycmlkZXM/LnNoYXJlZENvbHMgfHwge31cbiAgKTtcblxuICBjb25zdCBtaXJyb3JNZXRhID0gbWlycm9yID8gTW9kZWwubWlycm9yZWRBdChtKSA6IHVuZGVmaW5lZDtcblxuICBjb25zdCBwcml2YXRlcyA9IG1zcElkc1xuICAgIC5tYXAoKG1zcElkKSA9PlxuICAgICAgKHByaXZhdGVDb2xzIGFzIHN0cmluZ1tdKS5tYXAoKHApID0+IHtcbiAgICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9XG4gICAgICAgICAgcHJpdmF0ZURlZmF1bHRzO1xuICAgICAgICByZXR1cm4gcHJpdmF0ZUNvbGxlY3Rpb25Gb3IoXG4gICAgICAgICAgbXNwSWQsXG4gICAgICAgICAgcCxcbiAgICAgICAgICByZXF1aXJlZFBlZXJDb3VudCxcbiAgICAgICAgICBtYXhQZWVyQ291bnQsXG4gICAgICAgICAgYmxvY2tUb0xpdmUsXG4gICAgICAgICAgbWVtYmVyT25seVJlYWQsXG4gICAgICAgICAgZmFsc2VcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKVxuICAgIC5mbGF0KCk7XG5cbiAgaWYgKG1pcnJvck1ldGEgJiYgbWlycm9yTWV0YS5tc3BJZCkge1xuICAgIGNvbnN0IHJlc29sdmVkID1cbiAgICAgIHR5cGVvZiBtaXJyb3JNZXRhLnJlc29sdmVyID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gbWlycm9yTWV0YS5yZXNvbHZlclxuICAgICAgICA6IG1pcnJvck1ldGEucmVzb2x2ZXIobSwgbWlycm9yTWV0YS5tc3BJZCk7XG4gICAgaWYgKFxuICAgICAgcmVzb2x2ZWQgJiZcbiAgICAgICFwcml2YXRlcy5zb21lKFxuICAgICAgICAocCkgPT4gcC5uYW1lID09PSByZXNvbHZlZCAmJiBwLnBvbGljeS5pbmNsdWRlcyhtaXJyb3JNZXRhLm1zcElkKVxuICAgICAgKVxuICAgICkge1xuICAgICAgY29uc3QgeyByZXF1aXJlZFBlZXJDb3VudCwgbWF4UGVlckNvdW50LCBibG9ja1RvTGl2ZSwgbWVtYmVyT25seVJlYWQgfSA9XG4gICAgICAgIHByaXZhdGVEZWZhdWx0cztcbiAgICAgIHByaXZhdGVzLnB1c2goXG4gICAgICAgIHByaXZhdGVDb2xsZWN0aW9uRm9yKFxuICAgICAgICAgIG1pcnJvck1ldGEubXNwSWQsXG4gICAgICAgICAgcmVzb2x2ZWQsXG4gICAgICAgICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgICAgIGJsb2NrVG9MaXZlLFxuICAgICAgICAgIG1lbWJlck9ubHlSZWFkLFxuICAgICAgICAgIGZhbHNlXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2hhcmVkID0gKHNoYXJlZENvbHMgYXMgc3RyaW5nW10pLm1hcCgocCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIHJlcXVpcmVkUGVlckNvdW50LFxuICAgICAgbWF4UGVlckNvdW50LFxuICAgICAgYmxvY2tUb0xpdmUsXG4gICAgICBtZW1iZXJPbmx5UmVhZCxcbiAgICAgIG1lbWJlck9ubHlXcml0ZSxcbiAgICB9ID0gc2hhcmVkRGVmYXVsdHM7XG4gICAgcmV0dXJuIHNoYXJlZENvbGxlY3Rpb25Gb3IoXG4gICAgICBtc3BJZHMsXG4gICAgICBwLFxuICAgICAgcmVxdWlyZWRQZWVyQ291bnQsXG4gICAgICBtYXhQZWVyQ291bnQsXG4gICAgICBibG9ja1RvTGl2ZSxcbiAgICAgIG1lbWJlck9ubHlSZWFkLFxuICAgICAgbWVtYmVyT25seVdyaXRlXG4gICAgKTtcbiAgfSk7XG5cbiAgcmV0dXJuIHtcbiAgICBwcml2YXRlcyxcbiAgICBzaGFyZWQsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3cml0ZUNvbGxlY3Rpb25zKFxuICBjb2xzOiBQcml2YXRlQ29sbGVjdGlvbltdLFxuICBwOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuICBmaWxlTmFtZSA9IFwiY29sbGVjdGlvbnNfY29uZmlnXCJcbikge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuICBjb25zdCBmcyA9IHJlcXVpcmUoXCJmc1wiKTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgY29uc3QgcGF0aCA9IHJlcXVpcmUoXCJwYXRoXCIpO1xuXG4gIGZ1bmN0aW9uIGVuc3VyZURpcmVjdG9yeUV4aXN0ZW5jZShmaWxlUGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgZGlybmFtZTogc3RyaW5nID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKSBhcyBzdHJpbmc7XG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoZGlybmFtZSkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbnN1cmVEaXJlY3RvcnlFeGlzdGVuY2UoZGlybmFtZSk7XG4gICAgZnMubWtkaXJTeW5jKGRpcm5hbWUpO1xuICB9XG5cbiAgY29uc3QgZmlsZSA9IHBhdGgucmVzb2x2ZShwYXRoLmpvaW4ocCwgYC4vTUVUQS1JTkYvJHtmaWxlTmFtZX0uanNvbmApKTtcbiAgZW5zdXJlRGlyZWN0b3J5RXhpc3RlbmNlKGZpbGUpO1xuICBmcy53cml0ZUZpbGVTeW5jKGZpbGUsIEpTT04uc3RyaW5naWZ5KGNvbHMsIHVuZGVmaW5lZCwgMikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd3JpdGVDb2xsZWN0aW9uRGVzaWduRG9jcyhcbiAgZG9jczogQ291Y2hEQkRlc2lnbkRvY1tdLFxuICBwOiBzdHJpbmcgPSBwcm9jZXNzLmN3ZCgpLFxuICBjb2xsZWN0aW9uPzogc3RyaW5nXG4pIHtcbiAgaWYgKCFkb2NzPy5sZW5ndGgpIHJldHVybjtcbiAgd3JpdGVEZXNpZ25Eb2NzKGRvY3MsIHAsIGNvbGxlY3Rpb24pO1xufVxuIl19
|
|
105
|
+
//# sourceMappingURL=generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../../../../src/client/collections/generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./generation.js";
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/collections/index.ts"],"names":[],"mappings":"AAAA,gCAA6B"}
|
|
@@ -10,4 +10,4 @@ export const DefaultFabricClientFlags = Object.assign({
|
|
|
10
10
|
encryptTransient: false,
|
|
11
11
|
syntheticEvents: true,
|
|
12
12
|
});
|
|
13
|
-
//# sourceMappingURL=
|
|
13
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/client/constants.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,wBAAwB,GAAsB,MAAM,CAAC,MAAM,CAAC;IACvE,eAAe,EAAE,CAAC;IAClB,cAAc,EAAE,EAAE;IAClB,aAAa,EAAE,CAAC;IAChB,aAAa,EAAE,EAAE;IACjB,MAAM,EAAE,KAAK;IACb,wBAAwB,EAAE,KAAK;IAC/B,oBAAoB,EAAE,KAAK;IAC3B,oBAAoB,EAAE,IAAI;IAC1B,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,IAAI;CACtB,CAAQ,CAAC"}
|
package/lib/esm/client/crypto.js
CHANGED
|
@@ -327,4 +327,4 @@ export class CryptoUtils {
|
|
|
327
327
|
return textDecoder.decode(decryptedText);
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NsaWVudC9jcnlwdG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxnQkFBZ0IsQ0FBQztBQUN2QyxPQUFPLEVBQUUsTUFBTSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFMUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztBQUM1QixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUVoQyxNQUFNLENBQU4sSUFBWSxhQVlYO0FBWkQsV0FBWSxhQUFhO0lBQ3ZCLDZCQUFZLENBQUE7SUFDWixtQ0FBa0IsQ0FBQTtJQUNsQix1Q0FBc0IsQ0FBQTtJQUN0Qiw0Q0FBMkIsQ0FBQTtJQUMzQiw0REFBMkMsQ0FBQTtJQUMzQyw4REFBNkMsQ0FBQTtJQUM3QyxnRUFBK0MsQ0FBQTtJQUMvQyxzRkFBcUUsQ0FBQTtJQUNyRSwwRkFBeUUsQ0FBQTtJQUN6RSw0RkFBMkUsQ0FBQTtJQUMzRSwrRkFBOEUsQ0FBQTtBQUNoRixDQUFDLEVBWlcsYUFBYSxLQUFiLGFBQWEsUUFZeEI7QUFPRCxNQUFNLENBQU4sSUFBWSxNQVFYO0FBUkQsV0FBWSxNQUFNO0lBQ2hCLDBCQUFnQixDQUFBO0lBQ2hCLGtEQUFpQixDQUFBO0lBQ2pCLDhDQUFjLENBQUE7SUFDZCw4REFBc0IsQ0FBQTtJQUN0QixnRUFBdUIsQ0FBQTtJQUN2QiwrQkFBcUIsQ0FBQTtJQUNyQixrQ0FBd0IsQ0FBQTtBQUMxQixDQUFDLEVBUlcsTUFBTSxLQUFOLE1BQU0sUUFRakI7QUFFRCxNQUFNLE9BQU8sV0FBVztJQU90QixZQUFvQixRQUF1QjtRQUF2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QUFhLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsT0FBTyxDQUN4RCxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsU0FBbUIsRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUN0RCxTQUFTLENBQUMsR0FBRyxFQUNiLFVBQVUsQ0FDWCxDQUFDO1FBQ0YsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FDckIsYUFBMEIsRUFDMUIsU0FBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUN0QyxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxPQUFPLENBQ3hELEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFtQixFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQ3RELFNBQVMsQ0FBQyxHQUFHLEVBQ2IsYUFBYSxDQUNkLENBQUM7UUFDRixPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHg1MDkgZnJvbSBcIkBwZWN1bGlhci94NTA5XCI7XG5pbXBvcnQgeyBDcnlwdG8sIENyeXB0b0tleSB9IGZyb20gXCJAcGVjdWxpYXIvd2ViY3J5cHRvXCI7XG5pbXBvcnQgeyBzdHJpbmdGb3JtYXQgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBpc0Jyb3dzZXIsIE1pbmlMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuY29uc3QgY3J5cHRvID0gbmV3IENyeXB0bygpO1xueDUwOS5jcnlwdG9Qcm92aWRlci5zZXQoY3J5cHRvKTtcblxuZXhwb3J0IGVudW0gQkFTRV9BTFBIQUJFVCB7XG4gIEJBU0UyID0gXCIwMVwiLFxuICBCQVNFOCA9IFwiMDEyMzQ1NjdcIixcbiAgQkFTRTExID0gXCIwMTIzNDU2Nzg5YVwiLFxuICBCQVNFMTYgPSBcIjAxMjM0NTY3ODlhYmNkZWZcIixcbiAgQkFTRTMyID0gXCIwMTIzNDU2Nzg5QUJDREVGR0hKS01OUFFSU1RWV1hZWlwiLFxuICBCQVNFMzJfWiA9IFwieWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3NjlcIixcbiAgQkFTRTM2ID0gXCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpcIixcbiAgQkFTRTU4ID0gXCIxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6XCIsXG4gIEJBU0U2MiA9IFwiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpcIixcbiAgQkFTRTY0ID0gXCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvXCIsXG4gIEJBU0U2NyA9IFwiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXy4hflwiLFxufVxuXG5leHBvcnQgdHlwZSBrZXlPYmplY3QgPSB7XG4gIGl2OiBBcnJheUJ1ZmZlcjtcbiAga2V5OiBDcnlwdG9LZXk7XG59O1xuXG5leHBvcnQgZW51bSBDUllQVE8ge1xuICBIQVNIID0gXCJTSEEtMjU2XCIsXG4gIElURVJBVElPTlMgPSAxMDAwLFxuICBLRVlMRU5HVEggPSA0OCxcbiAgREVSSVZFRF9JVl9MRU5HVEggPSAxNixcbiAgREVSSVZFRF9LRVlfTEVOR1RIID0gMzIsIC8vIEJlY2F1c2UgU0hBLTI1NiB1c2VkIGhhcyBhIG5hdGl2ZSBzaXplIG9mIDMyIGJ5dGVzXG4gIEFMR09SWVRITSA9IFwiQUVTLUdDTVwiLFxuICBLRVlfQUxHT1JZVEhNID0gXCJQQktERjJcIixcbn1cblxuZXhwb3J0IGNsYXNzIEJhc2VFbmNvZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlTWFwOiBVaW50OEFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoMjU2KTtcbiAgcHJpdmF0ZSByZWFkb25seSBiYXNlOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgbGVhZGVyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjdG9yOiBudW1iZXI7XG4gIHByaXZhdGUgcmVhZG9ubHkgaUZhY3RvcjogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYWxwaGFiZXQ6IEJBU0VfQUxQSEFCRVQpIHtcbiAgICBpZiAodGhpcy5hbHBoYWJldC5sZW5ndGggPj0gMjU1KSB0aHJvdyBuZXcgRXJyb3IoXCJBbHBoYWJldCB0b28gbG9uZ1wiKTtcblxuICAgIGZvciAobGV0IGogPSAwOyBqIDwgdGhpcy5iYXNlTWFwLmxlbmd0aDsgaisrKSB0aGlzLmJhc2VNYXBbal0gPSAyNTU7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFscGhhYmV0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCB4ID0gYWxwaGFiZXQuY2hhckF0KGkpO1xuICAgICAgY29uc3QgeGMgPSB4LmNoYXJDb2RlQXQoMCk7XG4gICAgICBpZiAodGhpcy5iYXNlTWFwW3hjXSAhPT0gMjU1KSB0aHJvdyBuZXcgRXJyb3IoeCArIFwiIGlzIGFtYmlndW91c1wiKTtcblxuICAgICAgdGhpcy5iYXNlTWFwW3hjXSA9IGk7XG4gICAgfVxuXG4gICAgdGhpcy5iYXNlID0gdGhpcy5hbHBoYWJldC5sZW5ndGg7XG4gICAgdGhpcy5sZWFkZXIgPSB0aGlzLmFscGhhYmV0LmNoYXJBdCgwKTtcbiAgICB0aGlzLmZhY3RvciA9IE1hdGgubG9nKHRoaXMuYmFzZSkgLyBNYXRoLmxvZygyNTYpOyAvLyBsb2coQkFTRSkgLyBsb2coMjU2KSwgcm91bmRlZCB1cFxuICAgIHRoaXMuaUZhY3RvciA9IE1hdGgubG9nKDI1NikgLyBNYXRoLmxvZyh0aGlzLmJhc2UpOyAvLyBsb2coMjU2KSAvIGxvZyhCQVNFKSwgcm91bmRlZCB1cFxuICB9XG5cbiAgZW5jb2RlKHNvdXJjZTogVWludDhBcnJheSB8IERhdGFWaWV3IHwgYW55W10gfCBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgc291cmNlID0gQnVmZmVyLmZyb20oc291cmNlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5QnVmZmVyLmlzVmlldyhzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBuZXcgVWludDhBcnJheShcbiAgICAgICAgc291cmNlLmJ1ZmZlcixcbiAgICAgICAgc291cmNlLmJ5dGVPZmZzZXQsXG4gICAgICAgIHNvdXJjZS5ieXRlTGVuZ3RoXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBzb3VyY2UgPSBVaW50OEFycmF5LmZyb20oc291cmNlKTtcbiAgICB9XG5cbiAgICBpZiAoc291cmNlLmxlbmd0aCA9PT0gMCkgcmV0dXJuIFwiXCI7XG5cbiAgICAvLyBTa2lwICYgY291bnQgbGVhZGluZyB6ZXJvZXMuXG4gICAgbGV0IHplcm9lcyA9IDA7XG4gICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgbGV0IHBiZWdpbiA9IDA7XG4gICAgY29uc3QgcGVuZCA9IHNvdXJjZS5sZW5ndGg7XG4gICAgd2hpbGUgKHBiZWdpbiAhPT0gcGVuZCAmJiBzb3VyY2VbcGJlZ2luXSA9PT0gMCkge1xuICAgICAgcGJlZ2luKys7XG4gICAgICB6ZXJvZXMrKztcbiAgICB9XG4gICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGluIGJpZy1lbmRpYW4gYmFzZTU4IHJlcHJlc2VudGF0aW9uLlxuICAgIGNvbnN0IHNpemUgPSAoKHBlbmQgLSBwYmVnaW4pICogdGhpcy5pRmFjdG9yICsgMSkgPj4+IDA7XG4gICAgY29uc3QgYjU4ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgLy8gUHJvY2VzcyB0aGUgYnl0ZXMuXG4gICAgd2hpbGUgKHBiZWdpbiAhPT0gcGVuZCkge1xuICAgICAgbGV0IGNhcnJ5ID0gc291cmNlW3BiZWdpbl07XG4gICAgICAvLyBBcHBseSBcImI1OCA9IGI1OCAqIDI1NiArIGNoXCIuXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgaXQxID0gc2l6ZSAtIDE7XG4gICAgICAgIChjYXJyeSAhPT0gMCB8fCBpIDwgbGVuZ3RoKSAmJiBpdDEgIT09IC0xO1xuICAgICAgICBpdDEtLSwgaSsrXG4gICAgICApIHtcbiAgICAgICAgY2FycnkgKz0gKDI1NiAqIGI1OFtpdDFdKSA+Pj4gMDtcbiAgICAgICAgYjU4W2l0MV0gPSBjYXJyeSAlIHRoaXMuYmFzZSA+Pj4gMDtcbiAgICAgICAgY2FycnkgPSAoY2FycnkgLyB0aGlzLmJhc2UpID4+PiAwO1xuICAgICAgfVxuICAgICAgaWYgKGNhcnJ5ICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoXCJOb24temVybyBjYXJyeVwiKTtcblxuICAgICAgbGVuZ3RoID0gaTtcbiAgICAgIHBiZWdpbisrO1xuICAgIH1cbiAgICAvLyBTa2lwIGxlYWRpbmcgemVyb2VzIGluIGJhc2U1OCByZXN1bHQuXG4gICAgbGV0IGl0MiA9IHNpemUgLSBsZW5ndGg7XG4gICAgd2hpbGUgKGl0MiAhPT0gc2l6ZSAmJiBiNThbaXQyXSA9PT0gMCkgaXQyKys7XG5cbiAgICAvLyBUcmFuc2xhdGUgdGhlIHJlc3VsdCBpbnRvIGEgc3RyaW5nLlxuICAgIGxldCBzdHIgPSB0aGlzLmxlYWRlci5yZXBlYXQoemVyb2VzKTtcbiAgICBmb3IgKDsgaXQyIDwgc2l6ZTsgKytpdDIpIHtcbiAgICAgIHN0ciArPSB0aGlzLmFscGhhYmV0LmNoYXJBdChiNThbaXQyXSk7XG4gICAgfVxuICAgIHJldHVybiBzdHI7XG4gIH1cblxuICBwcml2YXRlIGRlY29kZVVuc2FmZShzb3VyY2U6IHN0cmluZyk6IFVpbnQ4QXJyYXkgfCB1bmRlZmluZWQge1xuICAgIGlmIChzb3VyY2UubGVuZ3RoID09PSAwKSByZXR1cm4gbmV3IFVpbnQ4QXJyYXkoMCk7XG5cbiAgICBsZXQgcHN6ID0gMDtcbiAgICAvLyBTa2lwIGFuZCBjb3VudCBsZWFkaW5nICcxJ3MuXG4gICAgbGV0IHplcm9lcyA9IDA7XG4gICAgbGV0IGxlbmd0aCA9IDA7XG4gICAgd2hpbGUgKHNvdXJjZVtwc3pdID09PSB0aGlzLmxlYWRlcikge1xuICAgICAgemVyb2VzKys7XG4gICAgICBwc3orKztcbiAgICB9XG4gICAgLy8gQWxsb2NhdGUgZW5vdWdoIHNwYWNlIGluIGJpZy1lbmRpYW4gYmFzZTI1NiByZXByZXNlbnRhdGlvbi5cbiAgICBjb25zdCBzaXplID0gKChzb3VyY2UubGVuZ3RoIC0gcHN6KSAqIHRoaXMuZmFjdG9yICsgMSkgPj4+IDA7IC8vIGxvZyg1OCkgLyBsb2coMjU2KSwgcm91bmRlZCB1cC5cbiAgICBjb25zdCBiMjU2ID0gbmV3IFVpbnQ4QXJyYXkoc2l6ZSk7XG4gICAgLy8gUHJvY2VzcyB0aGUgY2hhcmFjdGVycy5cbiAgICB3aGlsZSAoc291cmNlW3Bzel0pIHtcbiAgICAgIC8vIERlY29kZSBjaGFyYWN0ZXJcbiAgICAgIGxldCBjYXJyeSA9IHRoaXMuYmFzZU1hcFtzb3VyY2UuY2hhckNvZGVBdChwc3opXTtcbiAgICAgIC8vIEludmFsaWQgY2hhcmFjdGVyXG4gICAgICBpZiAoY2FycnkgPT09IDI1NSkgcmV0dXJuO1xuXG4gICAgICBsZXQgaSA9IDA7XG4gICAgICBmb3IgKFxuICAgICAgICBsZXQgaXQzID0gc2l6ZSAtIDE7XG4gICAgICAgIChjYXJyeSAhPT0gMCB8fCBpIDwgbGVuZ3RoKSAmJiBpdDMgIT09IC0xO1xuICAgICAgICBpdDMtLSwgaSsrXG4gICAgICApIHtcbiAgICAgICAgY2FycnkgKz0gKHRoaXMuYmFzZSAqIGIyNTZbaXQzXSkgPj4+IDA7XG4gICAgICAgIGIyNTZbaXQzXSA9IGNhcnJ5ICUgMjU2ID4+PiAwO1xuICAgICAgICBjYXJyeSA9IChjYXJyeSAvIDI1NikgPj4+IDA7XG4gICAgICB9XG4gICAgICBpZiAoY2FycnkgIT09IDApIHRocm93IG5ldyBFcnJvcihcIk5vbi16ZXJvIGNhcnJ5XCIpO1xuXG4gICAgICBsZW5ndGggPSBpO1xuICAgICAgcHN6Kys7XG4gICAgfVxuICAgIC8vIFNraXAgbGVhZGluZyB6ZXJvZXMgaW4gYjI1Ni5cbiAgICBsZXQgaXQ0ID0gc2l6ZSAtIGxlbmd0aDtcbiAgICB3aGlsZSAoaXQ0ICE9PSBzaXplICYmIGIyNTZbaXQ0XSA9PT0gMCkgaXQ0Kys7XG5cbiAgICBjb25zdCB2Y2ggPSBuZXcgVWludDhBcnJheSh6ZXJvZXMgKyAoc2l6ZSAtIGl0NCkpO1xuICAgIGxldCBqID0gemVyb2VzO1xuICAgIHdoaWxlIChpdDQgIT09IHNpemUpIHZjaFtqKytdID0gYjI1NltpdDQrK107XG5cbiAgICByZXR1cm4gdmNoO1xuICB9XG5cbiAgZGVjb2RlKHNvdXJjZTogc3RyaW5nKSB7XG4gICAgY29uc3QgYnVmZmVyID0gdGhpcy5kZWNvZGVVbnNhZmUoc291cmNlKTtcbiAgICBpZiAoYnVmZmVyKSByZXR1cm4gYnVmZmVyO1xuICAgIHRocm93IG5ldyBFcnJvcihcIk5vbi1iYXNlXCIgKyB0aGlzLmJhc2UgKyBcIiBjaGFyYWN0ZXJcIik7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIENyeXB0b1V0aWxzIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgYjU4ZW5jb2RlciA9IG5ldyBCYXNlRW5jb2RlcihCQVNFX0FMUEhBQkVULkJBU0U1OCk7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IGxvZ2dlciA9IG5ldyBNaW5pTG9nZ2VyKENyeXB0b1V0aWxzLm5hbWUpO1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cblxuICBzdGF0aWMgZmFicmljSWRGcm9tQ2VydGlmaWNhdGUoY2VydGlmaWNhdGU6IHN0cmluZykge1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKHN0cmluZ0Zvcm1hdChcIlBhcnNpbmcgY2VydGlmaWNhdGU6IHswfVwiLCBjZXJ0aWZpY2F0ZSkpO1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgeDUwOS5YNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgIGNvbnN0IHsgc3ViamVjdCwgaXNzdWVyIH0gPSBjZXJ0O1xuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFxuICAgICAgc3RyaW5nRm9ybWF0KFxuICAgICAgICBcIkNlcnRpZmljYXRlIHBhcnNlZCB3aXRoIHN1YmplY3QgezB9IGFuZCBpc3N1ZXIgezF9XCIsXG4gICAgICAgIHN1YmplY3QsXG4gICAgICAgIGlzc3VlclxuICAgICAgKVxuICAgICk7XG4gICAgcmV0dXJuIGB4NTA5OjovJHtzdWJqZWN0LnJlcGxhY2VBbGwoXCIsIFwiLCBcIi9cIil9OjovJHtpc3N1ZXIucmVwbGFjZUFsbChcIiwgXCIsIFwiL1wiKX1gO1xuICB9XG5cbiAgc3RhdGljIGVuY29kZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYjU4ZW5jb2Rlci5lbmNvZGUoc3RyKTtcbiAgfVxuICBzdGF0aWMgZGVjb2RlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBkZWNvZGVkID0gdGhpcy5iNThlbmNvZGVyLmRlY29kZShzdHIpO1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShkZWNvZGVkKTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RhdGljIHN0cmluZ1RvQXJyYXlCdWZmZXIoc3RyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBidWYgPSBuZXcgQXJyYXlCdWZmZXIoc3RyLmxlbmd0aCk7XG4gICAgY29uc3QgYnVmVmlldyA9IG5ldyBVaW50OEFycmF5KGJ1Zik7XG4gICAgZm9yIChsZXQgaSA9IDAsIHN0ckxlbiA9IHN0ci5sZW5ndGg7IGkgPCBzdHJMZW47IGkrKykge1xuICAgICAgYnVmVmlld1tpXSA9IHN0ci5jaGFyQ29kZUF0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gYnVmO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgYXN5bmMgZXh0cmFjdEtleShcbiAgICB0eXBlOiBcInByaXZhdGVcIiB8IFwicHVibGljXCIsXG4gICAgcGVtOiBCdWZmZXIgfCBzdHJpbmcsXG4gICAgdXNhZ2VzPzogYW55W11cbiAgKSB7XG4gICAgY29uc3Qgc3VidGxlID0gY3J5cHRvLnN1YnRsZTtcblxuICAgIGNvbnN0IHN0ciA9IHBlbVxuICAgICAgLnRvU3RyaW5nKFwidXRmOFwiKVxuICAgICAgLnJlcGxhY2UoXG4gICAgICAgIG5ldyBSZWdFeHAoYC0tLS0tQkVHSU4gKCR7dHlwZS50b1VwcGVyQ2FzZSgpfSBLRVl8Q0VSVElGSUNBVEUpLS0tLS1gKSxcbiAgICAgICAgXCJcIlxuICAgICAgKVxuICAgICAgLnJlcGxhY2VBbGwoXCJcXG5cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFxuICAgICAgICBuZXcgUmVnRXhwKGAtLS0tLUVORCAoJHt0eXBlLnRvVXBwZXJDYXNlKCl9IEtFWXxDRVJUSUZJQ0FURSktLS0tLWApLFxuICAgICAgICBcIlwiXG4gICAgICApO1xuICAgIGNvbnN0IGRlY29kZWQgPSBCdWZmZXIuZnJvbShzdHIsIFwiYmFzZTY0XCIpLnRvU3RyaW5nKFwiYmluYXJ5XCIpO1xuICAgIGNvbnN0IGJpbmFyeURlciA9IHRoaXMuc3RyaW5nVG9BcnJheUJ1ZmZlcihkZWNvZGVkKTtcbiAgICBjb25zdCBrZXkgPSBhd2FpdCBzdWJ0bGUuaW1wb3J0S2V5KFxuICAgICAgXCJwa2NzOFwiLFxuICAgICAgYmluYXJ5RGVyLFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICAgIG5hbWVkQ3VydmU6IFwiUC0yNTZcIixcbiAgICAgIH0sXG4gICAgICB0cnVlLFxuICAgICAgdXNhZ2VzID8gdXNhZ2VzIDogW1wic2lnblwiXVxuICAgICk7XG5cbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGV4dHJhY3RQcml2YXRlS2V5KHBlbTogQnVmZmVyIHwgc3RyaW5nLCB1c2FnZXM/OiBhbnlbXSkge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RLZXkoXCJwcml2YXRlXCIsIHBlbSwgdXNhZ2VzKTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBleHRyYWN0UHVibGljS2V5KHBlbTogQnVmZmVyIHwgc3RyaW5nLCB1c2FnZXM/OiBhbnlbXSkge1xuICAgIHJldHVybiB0aGlzLmV4dHJhY3RLZXkoXCJwdWJsaWNcIiwgcGVtLCB1c2FnZXMpO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIHNpZ24ocHJpdmF0ZUtleTogc3RyaW5nLCBkYXRhOiBCdWZmZXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IHRoaXMuZXh0cmFjdFByaXZhdGVLZXkocHJpdmF0ZUtleSk7XG4gICAgY29uc3QgYnVmZiA9IChhd2FpdCBjcnlwdG8uc3VidGxlLnNpZ24oXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgICAgaGFzaDogXCJTSEEtMjU2XCIsXG4gICAgICB9LFxuICAgICAga2V5LFxuICAgICAgZGF0YSBhcyBhbnlcbiAgICApKSBhcyBBcnJheUJ1ZmZlcjtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmYpKVxuICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgLmpvaW4oXCJcIik7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgdmVyaWZ5KFxuICAgIGNlcnRpZmljYXRlOiBzdHJpbmcsXG4gICAgc2lnbmF0dXJlOiBCdWZmZXIgfCBzdHJpbmcsXG4gICAgZGF0YTogQnVmZmVyIHwgc3RyaW5nXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgeDUwOS5YNTA5Q2VydGlmaWNhdGUoY2VydGlmaWNhdGUpO1xuICAgIGNvbnN0IGtleSA9IGF3YWl0IGNlcnQucHVibGljS2V5LmV4cG9ydCgpO1xuICAgIHNpZ25hdHVyZSA9IChcbiAgICAgIHR5cGVvZiBzaWduYXR1cmUgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShzaWduYXR1cmUsIFwiaGV4XCIpIDogc2lnbmF0dXJlXG4gICAgKSBhcyBCdWZmZXI7XG4gICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEpIDogZGF0YSkgYXMgQnVmZmVyO1xuICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeShcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJFQ0RTQVwiLFxuICAgICAgICBoYXNoOiBcIlNIQS0yNTZcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBzaWduYXR1cmUgYXMgYW55LFxuICAgICAgZGF0YSBhcyBhbnlcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGVuY3J5cHQoY2VydGlmaWNhdGU6IHN0cmluZywgZGF0YTogc3RyaW5nIHwgQnVmZmVyKSB7XG4gICAgY29uc3QgY2VydCA9IG5ldyB4NTA5Llg1MDlDZXJ0aWZpY2F0ZShjZXJ0aWZpY2F0ZSk7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgY2VydC5wdWJsaWNLZXkuZXhwb3J0KCk7XG4gICAgZGF0YSA9ICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEJ1ZmZlci5mcm9tKGRhdGEpIDogZGF0YSkgYXMgQnVmZmVyO1xuICAgIGNvbnN0IGJ1ZmYgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmVuY3J5cHQoXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiRUNEU0FcIixcbiAgICAgIH0sXG4gICAgICBrZXksXG4gICAgICBkYXRhXG4gICAgKTtcblxuICAgIHJldHVybiBBcnJheS5mcm9tKG5ldyBVaW50OEFycmF5KGJ1ZmYpKVxuICAgICAgLm1hcCgoYikgPT4gYi50b1N0cmluZygxNikucGFkU3RhcnQoMiwgXCIwXCIpKVxuICAgICAgLmpvaW4oXCJcIik7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRTdWJ0bGVDcnlwdG8oKSB7XG4gICAgcmV0dXJuIGlzQnJvd3NlcigpXG4gICAgICA/IChnbG9iYWxUaGlzIGFzIGFueSkud2luZG93LmNyeXB0by5zdWJ0bGVcbiAgICAgIDogY3J5cHRvLnN1YnRsZTtcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBkZWNyeXB0KHByaXZhdGVLZXk6IHN0cmluZywgZGF0YTogc3RyaW5nIHwgQnVmZmVyKSB7XG4gICAgY29uc3Qga2V5ID0gYXdhaXQgdGhpcy5leHRyYWN0UHJpdmF0ZUtleShwcml2YXRlS2V5KTtcbiAgICBkYXRhID0gKFxuICAgICAgdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgPyBCdWZmZXIuZnJvbShkYXRhLCBcImhleFwiKSA6IGRhdGFcbiAgICApIGFzIEJ1ZmZlcjtcbiAgICByZXR1cm4gdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kZWNyeXB0KFxuICAgICAge1xuICAgICAgICBuYW1lOiBcIkVDRFNBXCIsXG4gICAgICB9LFxuICAgICAga2V5LFxuICAgICAgZGF0YVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBnZXQgYSByYW5kb20gbWFzdGVyIGtleVxuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gSWYgZGF0YSBpcyBub3QgcGFzc2VkLCBhIHJhbmRvbSBBcnJheUJ1ZmZlciB3aWxsIGJlIGdlbmVyYXRlZFxuICAgKlxuICAgKiBAcGFyYW0ge0FycmF5QnVmZmVyfSBkYXRhIGVuY3J5dGlvbiBkYXRhXG4gICAqXG4gICAqIEBmdW5jdGlvbiBnZXRNYXN0ZXJcbiAgICovXG4gIHN0YXRpYyBhc3luYyBnZXRNYXN0ZXIoZGF0YT86IEFycmF5QnVmZmVyKTogUHJvbWlzZTxrZXlPYmplY3Q+IHtcbiAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGlmIChkYXRhID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IGdlbkdlbmVzaXMgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xuICAgICAgZGF0YSA9IHRleHRFbmNvZGVyLmVuY29kZShnZW5HZW5lc2lzKS5idWZmZXI7XG4gICAgfVxuXG4gICAgY29uc3QgaW1wb3J0ZWRLZXkgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBkYXRhLFxuICAgICAgQ1JZUFRPLktFWV9BTEdPUllUSE0gYXMgc3RyaW5nLFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJkZXJpdmVCaXRzXCJdXG4gICAgKTtcblxuICAgIHJldHVybiB7XG4gICAgICBrZXk6IGltcG9ydGVkS2V5LFxuICAgICAgaXY6IGRhdGEhLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBkZXJpdmUgYSBrZXkgZnJvbSBhbm90aGVyIGtleVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2FsdFxuICAgKiBAcGFyYW0ge0NyeXB0b0tleX0ga2V5IE9yaWdpbmFsIGtleVxuICAgKlxuICAgKiBAZnVuY3Rpb24gZ2V0RGVyaXZhdGlvbktleVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGdldERlcml2YXRpb25LZXkoc2FsdDogc3RyaW5nLCBrZXk6IENyeXB0b0tleSkge1xuICAgIGNvbnN0IHRleHRFbmNvZGVyID0gbmV3IFRleHRFbmNvZGVyKCk7XG4gICAgY29uc3Qgc2FsdEJ1ZmZlciA9IHRleHRFbmNvZGVyLmVuY29kZShzYWx0KTtcbiAgICBjb25zdCBzYWx0SGFzaGVkID0gYXdhaXQgdGhpcy5nZXRTdWJ0bGVDcnlwdG8oKS5kaWdlc3QoXG4gICAgICBcIlNIQS0yNTZcIixcbiAgICAgIHNhbHRCdWZmZXJcbiAgICApO1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIG5hbWU6IENSWVBUTy5LRVlfQUxHT1JZVEhNIGFzIHN0cmluZyxcbiAgICAgIGhhc2g6IENSWVBUTy5IQVNILFxuICAgICAgc2FsdDogc2FsdEhhc2hlZCxcbiAgICAgIGl0ZXJhdGlvbnM6IENSWVBUTy5JVEVSQVRJT05TLFxuICAgIH07XG4gICAgY29uc3QgZGVyaXZhdGlvbiA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVyaXZlQml0cyhcbiAgICAgIHBhcmFtcyxcbiAgICAgIGtleSxcbiAgICAgIENSWVBUTy5LRVlMRU5HVEggKiA4XG4gICAgKTtcbiAgICByZXR1cm4gdGhpcy5nZXRLZXkoZGVyaXZhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBnZXQgdGhlIGtleSBhbmQgSVYgZnJvbSB0aGUgQ3J5dG9LZXkgYXJyYXlcbiAgICpcbiAgICogQHBhcmFtIHtBcnJheUJ1ZmZlcn0gZGVyaXZhdGlvblxuICAgKlxuICAgKiBAZnVuY3Rpb24gZ2V0S2V5XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZ2V0S2V5KGRlcml2YXRpb246IEFycmF5QnVmZmVyKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIGNvbnN0IGl2bGVuID0gMTY7XG4gICAgY29uc3Qga2V5bGVuID0gMzI7XG4gICAgY29uc3QgZGVyaXZlZEtleSA9IGRlcml2YXRpb24uc2xpY2UoMCwga2V5bGVuKTtcbiAgICBjb25zdCBpdiA9IGRlcml2YXRpb24uc2xpY2Uoa2V5bGVuKTtcbiAgICBjb25zdCBpbXBvcnRlZEVuY3J5cHRpb25LZXkgPSBhd2FpdCB0aGlzLmdldFN1YnRsZUNyeXB0bygpLmltcG9ydEtleShcbiAgICAgIFwicmF3XCIsXG4gICAgICBkZXJpdmVkS2V5LFxuICAgICAgeyBuYW1lOiBDUllQVE8uQUxHT1JZVEhNIGFzIHN0cmluZyB9LFxuICAgICAgZmFsc2UsXG4gICAgICBbXCJlbmNyeXB0XCIsIFwiZGVjcnlwdFwiXVxuICAgICk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogaW1wb3J0ZWRFbmNyeXB0aW9uS2V5LFxuICAgICAgaXY6IGl2LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQHN1bW1hcnkgVXRpbCBmdW5jdGlvbiB0byBkZWNyeXB0IGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRleHRcbiAgICogQHBhcmFtIHtrZXlPYmplY3R9IGtleU9iamVjdFxuICAgKlxuICAgKiBAZnVuY3Rpb24gZW5jcnlwdFxuICAgKi9cbiAgc3RhdGljIGFzeW5jIGVuY3J5cHRQaW4oXG4gICAgdGV4dDogc3RyaW5nLFxuICAgIGtleU9iamVjdDoga2V5T2JqZWN0XG4gICk6IFByb21pc2U8QXJyYXlCdWZmZXI+IHtcbiAgICBjb25zdCB0ZXh0RW5jb2RlciA9IG5ldyBUZXh0RW5jb2RlcigpO1xuICAgIGNvbnN0IHRleHRCdWZmZXIgPSB0ZXh0RW5jb2Rlci5lbmNvZGUodGV4dCk7XG4gICAgY29uc3QgZW5jcnlwdGVkVGV4dCA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZW5jcnlwdChcbiAgICAgIHsgbmFtZTogQ1JZUFRPLkFMR09SWVRITSBhcyBzdHJpbmcsIGl2OiBrZXlPYmplY3QuaXYgfSxcbiAgICAgIGtleU9iamVjdC5rZXksXG4gICAgICB0ZXh0QnVmZmVyXG4gICAgKTtcbiAgICByZXR1cm4gZW5jcnlwdGVkVGV4dDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAc3VtbWFyeSBVdGlsIGZ1bmN0aW9uIHRvIGRlY3J5cHQgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlclNvdXJjZX0gZW5jcnlwdGVkVGV4dFxuICAgKiBAcGFyYW0ge2tleU9iamVjdH0ga2V5T2JqZWN0XG4gICAqXG4gICAqIEBmdW5jdGlvbiBkZWNyeXB0XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgZGVjcnlwdFBpbihcbiAgICBlbmNyeXB0ZWRUZXh0OiBBcnJheUJ1ZmZlcixcbiAgICBrZXlPYmplY3Q6IGtleU9iamVjdFxuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRleHREZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKCk7XG4gICAgY29uc3QgZGVjcnlwdGVkVGV4dCA9IGF3YWl0IHRoaXMuZ2V0U3VidGxlQ3J5cHRvKCkuZGVjcnlwdChcbiAgICAgIHsgbmFtZTogQ1JZUFRPLkFMR09SWVRITSBhcyBzdHJpbmcsIGl2OiBrZXlPYmplY3QuaXYgfSxcbiAgICAgIGtleU9iamVjdC5rZXksXG4gICAgICBlbmNyeXB0ZWRUZXh0XG4gICAgKTtcbiAgICByZXR1cm4gdGV4dERlY29kZXIuZGVjb2RlKGRlY3J5cHRlZFRleHQpO1xuICB9XG59XG4iXX0=
|
|
330
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../src/client/crypto.ts"],"names":[],"mappings":"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"}
|