@decaf-ts/for-fabric 0.12.6 → 0.12.7
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 -3797
- package/dist/for-fabric.cjs.map +1 -0
- package/dist/for-fabric.js +2 -3901
- package/dist/for-fabric.js.map +1 -0
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/bin/cli.cjs.map +1 -0
- package/lib/cjs/cli-module.cjs +2 -2
- package/lib/cjs/cli-module.cjs.map +1 -0
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/cli-utils.cjs.map +1 -0
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs.map +1 -0
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs.map +1 -0
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs.map +1 -0
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs.map +1 -0
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs.map +1 -0
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs.map +1 -0
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs.map +1 -0
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/constants.cjs.map +1 -0
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/crypto.cjs.map +1 -0
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +1 -0
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs.map +1 -0
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs.map +1 -0
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs.map +1 -0
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs.map +1 -0
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs.map +1 -0
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/index.cjs.map +1 -0
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs.map +1 -0
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs.map +1 -0
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/logging.cjs.map +1 -0
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +1 -0
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +1 -0
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +1 -0
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs.map +1 -0
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/services/index.cjs.map +1 -0
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/types.cjs.map +1 -0
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/client/utils.cjs.map +1 -0
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/Address.cjs.map +1 -0
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs.map +1 -0
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs.map +1 -0
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs.map +1 -0
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +1 -0
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/Product.cjs.map +1 -0
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs.map +1 -0
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +1 -0
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/User.cjs.map +1 -0
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs.map +1 -0
- package/lib/cjs/contract/index.cjs +3 -2
- package/lib/cjs/contract/index.cjs.map +1 -0
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs.map +1 -0
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +1 -0
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs.map +1 -0
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs.map +1 -0
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs.map +1 -0
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs.map +1 -0
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +1 -0
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs.map +1 -0
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs.map +1 -0
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +1 -0
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs.map +1 -0
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs.map +1 -0
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs.map +1 -0
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs.map +1 -0
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs.map +1 -0
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +1 -0
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +1 -0
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs.map +1 -0
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs.map +1 -0
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs.map +1 -0
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs.map +1 -0
- package/lib/cjs/contracts/bootstrap.cjs +14 -0
- package/lib/cjs/contracts/bootstrap.cjs.map +1 -0
- package/lib/cjs/contracts/crud/crud-contract.cjs +3 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs.map +1 -0
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs.map +1 -0
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs.map +1 -0
- package/lib/cjs/contracts/fabric-overrides.cjs +65 -0
- package/lib/cjs/contracts/fabric-overrides.cjs.map +1 -0
- package/lib/cjs/contracts/index.cjs +3 -2
- package/lib/cjs/contracts/index.cjs.map +1 -0
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs.map +1 -0
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs.map +1 -0
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/types.cjs.map +1 -0
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs.map +1 -0
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/index.cjs.map +1 -0
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs.map +1 -0
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +1 -0
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/constants.cjs.map +1 -0
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs.map +1 -0
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +1 -0
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs.map +1 -0
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/errors.cjs.map +1 -0
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/events.cjs.map +1 -0
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs.map +1 -0
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/index.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +1 -0
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs.map +1 -0
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/math.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +1 -0
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs.map +1 -0
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +1 -0
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs.map +1 -0
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs.map +1 -0
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs.map +1 -0
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/shared/types.cjs.map +1 -0
- package/lib/cjs/version.cjs +2 -2
- package/lib/cjs/version.cjs.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.js +1 -1
- package/lib/esm/client/FabricClientRepository.js.map +1 -0
- package/lib/esm/client/FabricClientStatement.js +1 -1
- 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 +2 -1
- package/lib/esm/contract/index.js.map +1 -0
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/logging-context.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.js +1 -1
- 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 +1 -1
- 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.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +1 -0
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/MigrationContract.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/bootstrap.js +11 -0
- package/lib/esm/contracts/bootstrap.js.map +1 -0
- package/lib/esm/contracts/crud/crud-contract.js +2 -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/fabric-overrides.js +61 -0
- package/lib/esm/contracts/fabric-overrides.js.map +1 -0
- package/lib/esm/contracts/index.js +2 -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.js +1 -1
- package/lib/esm/version.js.map +1 -0
- package/lib/types/contract/index.d.cts +1 -0
- package/lib/types/contract/index.d.mts +1 -0
- package/lib/types/contracts/bootstrap.d.cts +10 -0
- package/lib/types/contracts/bootstrap.d.mts +10 -0
- package/lib/types/contracts/crud/crud-contract.d.cts +1 -0
- package/lib/types/contracts/crud/crud-contract.d.mts +1 -0
- package/lib/types/contracts/fabric-overrides.d.cts +1 -0
- package/lib/types/contracts/fabric-overrides.d.mts +1 -0
- package/lib/types/contracts/index.d.cts +1 -0
- package/lib/types/contracts/index.d.mts +1 -0
- package/package.json +16 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricClientAdapter.js","sourceRoot":"","sources":["FabricClientAdapter.js"],"names":[],"mappings":"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"}
|
|
@@ -287,5 +287,5 @@ class FabricClientDispatch extends core_1.Dispatch {
|
|
|
287
287
|
exports.FabricClientDispatch = FabricClientDispatch;
|
|
288
288
|
if (FabricClientAdapter_js_1.FabricClientAdapter)
|
|
289
289
|
FabricClientAdapter_js_1.FabricClientAdapter["_baseDispatch"] = FabricClientDispatch;
|
|
290
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L0ZhYnJpY0NsaWVudERpc3BhdGNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBRVAsUUFBUSxFQUVSLGdCQUFnQixFQUdoQixlQUFlLEdBQ2hCLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUM1RCxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsY0FBYyxFQUFFLDhCQUF5QjtBQUNsRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFJdkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0NHO0FBQ0gsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFFBQTZCO0lBV3JFOzs7O09BSUc7SUFDSCxZQUFzQixNQUFjO1FBQ2xDLEtBQUssRUFBRSxDQUFDO1FBRFksV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZwQzs7V0FFRztRQUNLLFlBQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQVMxQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNNLEtBQUssQ0FBQyxLQUFLLENBQ2xCLEdBQUcsT0FBbUQ7UUFFdEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FDbkMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUMzRCxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcs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LENBQVUsRUFBRSxFQUFFLENBQ3JCLEdBQUcsQ0FBQyxLQUFLLENBQ1AsMkNBQTJDLE1BQU0sT0FBTyxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssUUFBUSxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQy9GLENBQ0YsQ0FBQztvQkFDRixPQUFPLE1BQU0sQ0FBQztnQkFDaEIsQ0FBQzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBRUQsSUFBSSxtQkFBbUI7SUFDckIsbUJBQW1CLENBQUMsZUFBZSxDQUFDLEdBQUcsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZGFwdGVyLFxuICBDb250ZXh0dWFsQXJncyxcbiAgRGlzcGF0Y2gsXG4gIEV2ZW50SWRzLFxuICBVbnN1cHBvcnRlZEVycm9yLFxuICBDb250ZXh0LFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBQZWVyQ29uZmlnIH0gZnJvbSBcIi4uL3NoYXJlZC90eXBlc1wiO1xuaW1wb3J0IHsgQ2xpZW50IH0gZnJvbSBcIkBncnBjL2dycGMtanNcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyXCI7XG5pbXBvcnQge1xuICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsXG4gIEludGVybmFsRXJyb3IsXG4gIE9wZXJhdGlvbktleXMsXG59IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQ2hhaW5jb2RlRXZlbnQsXG4gIENsb3NlYWJsZUFzeW5jSXRlcmFibGUsXG59IGZyb20gXCJAaHlwZXJsZWRnZXIvZmFicmljLWdhdGV3YXlcIjtcbmltcG9ydCB7IHBhcnNlRXZlbnROYW1lIH0gZnJvbSBcIi4uL3NoYXJlZC9ldmVudHNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2g8RmFicmljQ2xpZW50QWRhcHRlcj4ge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEV2ZW50IGxpc3RlbmluZyBzdGFjayBmb3IgY2hhaW5jb2RlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBsaXN0ZW5pbmdTdGFjaz86IENsb3NlYWJsZUFzeW5jSXRlcmFibGU8Q2hhaW5jb2RlRXZlbnQ+O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgKi9cbiAgcHJpdmF0ZSBkZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljRGlzcGF0Y2ggaW5zdGFuY2VcbiAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgKiBAcGFyYW0ge0NsaWVudH0gY2xpZW50IC0gZ1JQQyBjbGllbnQgZm9yIGNvbm5lY3RpbmcgdG8gdGhlIEZhYnJpYyBuZXR3b3JrXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2xpZW50OiBDbGllbnQpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDbG9zZXMgdGhlIGV2ZW50IGxpc3RlbmluZyBjb25uZWN0aW9uXG4gICAqIEBzdW1tYXJ5IFN0b3BzIGxpc3RlbmluZyBmb3IgY2hhaW5jb2RlIGV2ZW50cyBhbmQgcmVsZWFzZXMgcmVzb3VyY2VzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY2xvc2UoXG4gICAgLi4uY3R4QXJnczogQ29udGV4dHVhbEFyZ3M8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzOiBsb2dnZWRBcmdzIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpXG4gICAgKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHN1cGVyLmNsb3NlKC4uLmxvZ2dlZEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBwcm94aWVzIGV2ZW50IGxpc3RlbmVyYCwgZSBhcyBFcnJvcik7XG4gICAgfVxuICAgIGlmICh0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUgYXMgRXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFBhcnNlcyBldmVudCBwYXlsb2FkIGZyb20gYmluYXJ5IGZvcm1hdFxuICAgKiBAc3VtbWFyeSBDb252ZXJ0cyBhIFVpbnQ4QXJyYXkgY29udGFpbmluZyBKU09OIHRvIGFuIG9iamVjdCB3aXRoIGFuIGlkIHByb3BlcnR5XG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgKiBAcmV0dXJuIHt7IGlkOiBzdHJpbmcgfX0gVGhlIHBhcnNlZCBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHJlY29yZCBJRFxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVBheWxvYWQoanNvbkJ5dGVzOiBVaW50OEFycmF5KTogeyBpZDogc3RyaW5nOyByZXN1bHQ/OiBhbnkgfSB7XG4gICAgY29uc3QganNvbiA9IHRoaXMuZGVjb2Rlci5kZWNvZGUoanNvbkJ5dGVzKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3RhcnRzIG9ic2VydmluZyBhbiBhZGFwdGVyXG4gICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAqIEBwYXJhbSB7QWRhcHRlcjxhbnksIGFueSwgYW55LCBhbnk+fSBvYnNlcnZlciAtIFRoZSBhZGFwdGVyIHRvIG9ic2VydmVcbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIG92ZXJyaWRlIG9ic2VydmUob2JzZXJ2ZXI6IEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pik6ICgpID0+IHZvaWQge1xuICAgIGlmICghKG9ic2VydmVyIGluc3RhbmNlb2YgRmFicmljQ2xpZW50QWRhcHRlcikpXG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCJcbiAgICAgICk7XG4gICAgc3VwZXIub2JzZXJ2ZShvYnNlcnZlciBhcyBGYWJyaWNDbGllbnRBZGFwdGVyKTtcbiAgICByZXR1cm4gKCkgPT4gdGhpcy51bk9ic2VydmUob2JzZXJ2ZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBhYm91dCBhIGRhdGFiYXNlIGV2ZW50XG4gICAqIEBzdW1tYXJ5IE5vdGlmaWVzIG9ic2VydmVycyBhYm91dCBhIGNoYW5nZSBpbiB0aGUgZGF0YWJhc2VcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzfEJ1bGtDcnVkT3BlcmF0aW9uS2V5c3xzdHJpbmd9IGV2ZW50IC0gVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIHRoYXQgb2NjdXJyZWRcbiAgICogQHBhcmFtIHthbnl9IHBheWxvYWQgLSBUaGUgZXZlbnQgcGF5bG9hZFxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnMoXG4gICAgbW9kZWw6IENvbnN0cnVjdG9yPGFueT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPENvbnRleHQ8RmFicmljQ2xpZW50RmxhZ3M+PlxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gQWRhcHRlci5sb2dDdHg8Q29udGV4dDxGYWJyaWNDbGllbnRGbGFncz4+KFxuICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMsXG4gICAgICBldmVudCxcbiAgICAgIGZhbHNlLFxuICAgICAgLi4uYXJnc1xuICAgICk7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpIHtcbiAgICAgIGxvZy52ZXJib3NlKFxuICAgICAgICBgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2g7IHNraXBwaW5nIG9ic2VydmVyIHVwZGF0ZSBmb3IgJHt0eXBlb2YgbW9kZWwgPT09IFwic3RyaW5nXCIgPyBtb2RlbCA6IE1vZGVsLnRhYmxlTmFtZShtb2RlbCl9OiR7ZXZlbnR9YFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRhcHRlci5yZWZyZXNoKG1vZGVsLCBldmVudCwgaWQsIC4uLmN0eEFyZ3MpO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBGYWlsZWQgdG8gcmVmcmVzaCBkaXNwYXRjaDogJHtlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gUHJvY2Vzc2VzIGluY29taW5nIGNoYWluY29kZSBldmVudHNcbiAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGV2ZW50IGhhbmRsaW5nIHN0b3BzXG4gICAqIEBtZXJtYWlkXG4gICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgKiAgIHBhcnRpY2lwYW50IEZhYnJpY0Rpc3BhdGNoXG4gICAqICAgcGFydGljaXBhbnQgRXZlbnRTdGFja1xuICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAqICAgcGFydGljaXBhbnQgT2JzZXJ2ZXJzXG4gICAqXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkV2ZW50U3RhY2s6IGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIGxpc3RlbmluZ1N0YWNrKVxuICAgKiAgIEV2ZW50U3RhY2stLT4+RmFicmljRGlzcGF0Y2g6IENoYWluY29kZUV2ZW50XG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICogICBFdmVudFBhcnNlci0tPj5GYWJyaWNEaXNwYXRjaDogeyB0YWJsZSwgZXZlbnQsIG93bmVyIH1cbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBDaGVjayBpZiBldmVudCBpcyBmb3IgdGhpcyBNU1BcbiAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAqICAgRmFicmljRGlzcGF0Y2gtPj5PYnNlcnZlcnM6IHVwZGF0ZU9ic2VydmVycyh0YWJsZSwgZXZlbnQsIHBheWxvYWQuaWQpXG4gICAqICAgT2JzZXJ2ZXJzLS0+PkZhYnJpY0Rpc3BhdGNoOiBDYWxsYmFja3MgZXhlY3V0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVFdmVudHMoXG4gICAgY3R4QXJnPzogQ29udGV4dDxGYWJyaWNDbGllbnRGbGFncz5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmxpc3RlbmluZ1N0YWNrKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgIGBFdmVudCBzdGFjayBub3QgaW5pdGlhbGl6ZWQuIEVuc3VyZSB0aGF0IFwic3RhcnRMaXN0ZW5pbmdcIiBpcyBjYWxsZWQgYmVmb3JlIGF0dGVtcHRpbmcgdGhpcyBvcGVyYXRpb24uYFxuICAgICAgKTtcblxuICAgIGlmICghdGhpcy5hZGFwdGVyIHx8ICF0aGlzLmFkYXB0ZXIuY29uZmlnKVxuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgZm91bmQuIHNob3VsZCBiZSBpbXBvc3NpYmxlYCk7XG5cbiAgICBjb25zdCBjdHggPVxuICAgICAgY3R4QXJnIHx8XG4gICAgICAoYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIE9wZXJhdGlvbktleXMuUkVBRCxcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgKHRoaXMubW9kZWxzICYmIHRoaXMubW9kZWxzWzBdKSB8fCAoTW9kZWwgYXMgdW5rbm93biBhcyBDb25zdHJ1Y3RvcilcbiAgICAgICkpO1xuICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG5cbiAgICBsb2cuaW5mbyhcbiAgICAgIGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gXG4gICAgKTtcblxuICAgIHRyeSB7XG4gICAgICBmb3IgYXdhaXQgKGNvbnN0IGV2dCBvZiB0aGlzLmxpc3RlbmluZ1N0YWNrKSB7XG4gICAgICAgIGNvbnN0IHsgdGFibGUsIGV2ZW50LCBvd25lciB9ID0gcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICBvd25lciAmJlxuICAgICAgICAgIG93bmVyICE9PSB0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BJZFxuICAgICAgICApXG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNvbnN0IHBheWxvYWQ6IHsgaWQ6IHN0cmluZzsgcmVzdWx0PzogYW55IH0gPSB0aGlzLnBhcnNlUGF5bG9hZChcbiAgICAgICAgICBldnQucGF5bG9hZFxuICAgICAgICApO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgbW9kZWxSZWYgPSB0YXJnZXRNb2RlbCA/PyAodGFibGUgfHwgdGhpcy5tb2RlbHNbMF0/Lm5hbWUpO1xuICAgICAgICAgIGNvbnN0IG9ic2VydmVyQXJncyA9IHBheWxvYWQucmVzdWx0ID8gW3BheWxvYWQucmVzdWx0LCBjdHhdIDogW2N0eF07XG4gICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICBtb2RlbFJlZiBhcyBDb25zdHJ1Y3RvciB8IHN0cmluZyxcbiAgICAgICAgICAgIGV2ZW50LFxuICAgICAgICAgICAgcGF5bG9hZC5pZCBhcyBzdHJpbmcsXG4gICAgICAgICAgICAuLi4ob2JzZXJ2ZXJBcmdzIGFzIENvbnRleHR1YWxBcmdzPGFueT4pXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgIGBGYWlsZWQgdXBkYXRlIG9ic2VydmFibGVzIGZvciB0YWJsZSAke3RhYmxlfSBldmVudCAke2V2ZW50fSBpZDogJHtwYXlsb2FkLmlkfTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBsb2cuZXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcmVhZCBldmVudCBmb3IgY2hhaW5jb2RlIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWV9XCIgb24gY2hhbm5lbCBcIiR7dGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsfVwiOiAke2V9YFxuICAgICAgKTtcbiAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluaXRpYWxpemVzIHRoZSBldmVudCBsaXN0ZW5lclxuICAgKiBAc3VtbWFyeSBTZXRzIHVwIGV2ZW50IGRpc3BhdGNoaW5nIGZvciB0aGUgb2JzZXJ2ZWQgYWRhcHRlci4gV2hlblxuICAgKiBgc3ludGhldGljRXZlbnRzYCBpcyB0cnVlICh0aGUgZGVmYXVsdCkgbm8gZ2F0ZXdheSBjb25uZWN0aW9uIGlzIG9wZW5lZDtcbiAgICogaW5zdGVhZCBldmVyeSBDUlVEIG9wZXJhdGlvbiBpcyB3cmFwcGVkIHdpdGggYSBQcm94eSB0aGF0IGZpcmVzXG4gICAqIGB1cGRhdGVPYnNlcnZlcnNgIGZvciAqKmFsbCoqIG1vZGVscy4gV2hlbiBgc3ludGhldGljRXZlbnRzYCBpcyBmYWxzZSB0aGVcbiAgICogZXhpc3RpbmcgZ2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIGlzIGVzdGFibGlzaGVkIGFuZCB0aGVcbiAgICogbG9jYWwgUHJveHkgZmFsbGJhY2sgaXMgbGltaXRlZCB0byBmdWxseS1zZWdyZWdhdGVkICh0cmFuc2llbnQpIG1vZGVscyBvbmx5LlxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBpbml0aWFsaXphdGlvbiBpcyBjb21wbGV0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGFzeW5jIGluaXRpYWxpemUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvciBjb25maWcgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoYCk7XG5cbiAgICBjb25zdCBzeW50aGV0aWNFdmVudHMgPSB0aGlzLmFkYXB0ZXIuY29uZmlnLnN5bnRoZXRpY0V2ZW50cyAhPT0gZmFsc2U7XG5cbiAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cykge1xuICAgICAgLy8gR2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIChub24tc3ludGhldGljIHBhdGgpXG4gICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXG4gICAgICAgIFwiZGlzcGF0Y2hcIixcbiAgICAgICAge1xuICAgICAgICAgIGNvcnJlbGF0aW9uSWQ6IHRoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgTW9kZWwgYXMgYW55XG4gICAgICApO1xuICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoXG4gICAgICAgIGN0eCxcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZyBhcyBQZWVyQ29uZmlnLFxuICAgICAgICB0aGlzLmNsaWVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IG5ldHdvcmsgPSBnYXRld2F5LmdldE5ldHdvcmsodGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFubmVsKTtcbiAgICAgIGlmICghdGhpcy5hZGFwdGVyKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSBhd2FpdCBuZXR3b3JrLmdldENoYWluY29kZUV2ZW50cyhcbiAgICAgICAgdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lXG4gICAgICApO1xuICAgICAgdGhpcy5oYW5kbGVFdmVudHMoY3R4KTtcbiAgICB9XG5cbiAgICAvLyBQcm94eSBDUlVEIG1ldGhvZHMuXG4gICAgLy8g4oCiIHN5bnRoZXRpY0V2ZW50cyA9IHRydWUgIOKGkiBub3RpZnkgZm9yIEFMTCBtb2RlbHMgKHJlcGxhY2VzIGdhdGV3YXkgZXZlbnRzIGVudGlyZWx5KVxuICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSBmYWxzZSDihpIgbm90aWZ5IG9ubHkgZm9yIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzXG4gICAgLy8gICAodGhlIGdhdGV3YXkgc3Vic2NyaXB0aW9uIGhhbmRsZXMgcHVibGljIG1vZGVscylcbiAgICAoXG4gICAgICBbXG4gICAgICAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5ERUxFVEUsXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkRFTEVURV9BTEwsXG4gICAgICBdIGFzIChrZXlvZiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4pW11cbiAgICApLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgIGBObyBhZGFwdGVyIHByb3ZpZGVkIGZvciB0aGUgZmFsbGJhY2sgb2YgZnVsbHkgc2VncmVnYXRlZCBtb2RlbHNgXG4gICAgICAgICk7XG4gICAgICBpZiAoIXRoaXMuYWRhcHRlclt0b1dyYXBdKVxuICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICBgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGBcbiAgICAgICAgKTtcblxuICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgIGxldCBwcm90bzogYW55ID0gdGhpcy5hZGFwdGVyO1xuICAgICAgd2hpbGUgKCFkZXNjcmlwdG9yICYmIHByb3RvICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocHJvdG8sIHRvV3JhcCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICB0aGlzLmxvZy5lcnJvcihcbiAgICAgICAgICBgQ291bGQgbm90IGZpbmQgbWV0aG9kICR7dG9XcmFwfSB0byBiaW5kIE9ic2VydmFibGVzIERpc3BhdGNoYFxuICAgICAgICApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICBjYXNlIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5DUkVBVEVfQUxMOlxuICAgICAgICAgICAgcmV0dXJuIE9wZXJhdGlvbktleXMuQ1JFQVRFO1xuICAgICAgICAgIGNhc2UgQnVsa0NydWRPcGVyYXRpb25LZXlzLlVQREFURV9BTEw6XG4gICAgICAgICAgICByZXR1cm4gT3BlcmF0aW9uS2V5cy5VUERBVEU7XG4gICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGJlY2F1c2UgdGhlcmUgYXJlIHJlYWQgb25seSBwcm9wZXJ0aWVzXG4gICAgICB0aGlzLmFkYXB0ZXJbdG9XcmFwXSA9IG5ldyBQcm94eSh0aGlzLmFkYXB0ZXJbdG9XcmFwXSwge1xuICAgICAgICBhcHBseTogYXN5bmMgKFxuICAgICAgICAgIHRhcmdldDogYW55LFxuICAgICAgICAgIHRoaXNBcmc6IEZhYnJpY0NsaWVudEFkYXB0ZXIsXG4gICAgICAgICAgYXJnQXJyYXk6IGFueVtdXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIC8vIFJ1biB0aGUgb3JpZ2luYWwgbWV0aG9kIHVuY2hhbmdlZCBzbyB0cmFuc2llbnQgZGF0YSBpcyBwcmVzZXJ2ZWRcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuXG4gICAgICAgICAgY29uc3QgY2xheno6IENvbnN0cnVjdG9yPGFueT4gPSBhcmdBcnJheVswXTtcbiAgICAgICAgICAvLyBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyBmYWxzZSwgcHVibGljIG1vZGVscyBlbWl0IGEgY2hhaW5jb2RlIGV2ZW50XG4gICAgICAgICAgLy8gb24gdGhlIGNvbnRyYWN0IHNpZGU7IHNraXAgdGhlIGxvY2FsIGZhbGxiYWNrIHRvIGF2b2lkXG4gICAgICAgICAgLy8gZG91YmxlLW5vdGlmaWNhdGlvbi4gV2hlbiBzeW50aGV0aWNFdmVudHMgaXMgdHJ1ZSB3ZSBoYW5kbGUgYWxsIG1vZGVscy5cbiAgICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cyAmJiAhTW9kZWwuaXNUcmFuc2llbnQoY2xhenopKSByZXR1cm4gcmVzdWx0O1xuXG4gICAgICAgICAgLy8gQ29udGV4dCBpcyBhbHdheXMgdGhlIGxhc3QgZWxlbWVudCBvZiBhcmdBcnJheVxuICAgICAgICAgIGNvbnN0IHsgbG9nLCBjdHhBcmdzLCBjdHggfSA9IHRoaXNBcmdbXCJsb2dDdHhcIl0oXG4gICAgICAgICAgICBhcmdBcnJheS5zbGljZShhcmdBcnJheS5sZW5ndGggLSAxKSxcbiAgICAgICAgICAgIHRhcmdldFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgaWRzID0gYXJnQXJyYXlbMV07XG4gICAgICAgICAgY29uc3QgcmVzdWx0QXJnczogYW55W10gPSBbY2xhenosIGJ1bGtUb1NpbmdsZSh0b1dyYXApLCBpZHNdO1xuXG4gICAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm9ic2VydmVGdWxsUmVzdWx0XCIpKSB7XG4gICAgICAgICAgICByZXN1bHRBcmdzLnB1c2gocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMoXG4gICAgICAgICAgICAuLi4ocmVzdWx0QXJncyBhcyBQYXJhbWV0ZXJzPHR5cGVvZiB0aGlzLnVwZGF0ZU9ic2VydmVycz4pLFxuICAgICAgICAgICAgLi4uY3R4QXJnc1xuICAgICAgICAgICkuY2F0Y2goKGU6IHVua25vd24pID0+XG4gICAgICAgICAgICBsb2cuZXJyb3IoXG4gICAgICAgICAgICAgIGBGYWlsZWQgdG8gZGlzcGF0Y2ggb2JzZXJ2ZXIgcmVmcmVzaCBmb3IgJHt0b1dyYXB9IG9uICR7Y2xhenoubmFtZSB8fCBjbGF6en0gZm9yICR7aWRzfTogJHtlfWBcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuXG5pZiAoRmFicmljQ2xpZW50QWRhcHRlcilcbiAgRmFicmljQ2xpZW50QWRhcHRlcltcIl9iYXNlRGlzcGF0Y2hcIl0gPSBGYWJyaWNDbGllbnREaXNwYXRjaDtcbiJdfQ==
|
|
291
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ2xpZW50RGlzcGF0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDbGllbnREaXNwYXRjaC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBdUY7QUFDdkYscUVBQStEO0FBQy9ELDJEQUErRjtBQUMvRixxREFBdUQ7QUFDdkQseUVBQXVEO0FBQ3ZEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStDRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBUTtJQUM5Qzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFNO1FBQ2QsS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQjs7V0FFRztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUNEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTztRQUNsQixNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsc0JBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQztZQUNELE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDO2dCQUNELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxL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RCxvREFxT0M7QUFDRCxJQUFJLDRDQUFtQjtJQUNuQiw0Q0FBbUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxvQkFBb0IsQ0FBQztBQUNoRSxzejZCQUFzejZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlciwgRGlzcGF0Y2gsIFVuc3VwcG9ydGVkRXJyb3IsIFBlcnNpc3RlbmNlS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NsaWVudEFkYXB0ZXIgfSBmcm9tIFwiLi9GYWJyaWNDbGllbnRBZGFwdGVyLmpzXCI7XG5pbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIEludGVybmFsRXJyb3IsIE9wZXJhdGlvbktleXMsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBwYXJzZUV2ZW50TmFtZSB9IGZyb20gXCIuLy4uL3NoYXJlZC9ldmVudHMuanNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gRXZlbnQgZGlzcGF0Y2hlciBmb3IgSHlwZXJsZWRnZXIgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IExpc3RlbnMgZm9yIGFuZCBwcm9jZXNzZXMgZXZlbnRzIGVtaXR0ZWQgYnkgRmFicmljIGNoYWluY29kZSwgZGlzcGF0Y2hpbmcgdGhlbSB0byByZWdpc3RlcmVkIG9ic2VydmVyc1xuICogQHRlbXBsYXRlIFBlZXJDb25maWcgLSBDb25maWd1cmF0aW9uIHR5cGUgZm9yIGNvbm5lY3RpbmcgdG8gYSBGYWJyaWMgcGVlclxuICogQHBhcmFtIGNsaWVudCAtIGdSUEMgY2xpZW50IGZvciBjb25uZWN0aW5nIHRvIHRoZSBGYWJyaWMgbmV0d29ya1xuICogQGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gQ3JlYXRlIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gKiBjb25zdCBjbGllbnQgPSBhd2FpdCBGYWJyaWNBZGFwdGVyLmdldENsaWVudChwZWVyQ29uZmlnKTtcbiAqIGNvbnN0IGRpc3BhdGNoID0gbmV3IEZhYnJpY0Rpc3BhdGNoKGNsaWVudCk7XG4gKlxuICogLy8gQ29uZmlndXJlIHRoZSBkaXNwYXRjaCB3aXRoIHBlZXIgY29uZmlndXJhdGlvblxuICogZGlzcGF0Y2guY29uZmlndXJlKHBlZXJDb25maWcpO1xuICpcbiAqIC8vIFJlZ2lzdGVyIGFuIG9ic2VydmVyIGZvciBhIHNwZWNpZmljIHRhYmxlIGFuZCBldmVudFxuICogZGlzcGF0Y2gub2JzZXJ2ZSgndXNlcnMnLCAnY3JlYXRlJywgKGlkKSA9PiB7XG4gKiAgIGNvbnNvbGUubG9nKGBVc2VyIGNyZWF0ZWQ6ICR7aWR9YCk7XG4gKiB9KTtcbiAqXG4gKiAvLyBTdGFydCBsaXN0ZW5pbmcgZm9yIGV2ZW50c1xuICogYXdhaXQgZGlzcGF0Y2guc3RhcnQoKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBDbGllbnRcbiAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAqICAgcGFydGljaXBhbnQgR2F0ZXdheVxuICogICBwYXJ0aWNpcGFudCBOZXR3b3JrXG4gKiAgIHBhcnRpY2lwYW50IENoYWluY29kZVxuICpcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG5ldyBGYWJyaWNEaXNwYXRjaChjbGllbnQpXG4gKiAgIENsaWVudC0+PkZhYnJpY0Rpc3BhdGNoOiBjb25maWd1cmUocGVlckNvbmZpZylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IG9ic2VydmUodGFibGUsIGV2ZW50LCBjYWxsYmFjaylcbiAqICAgQ2xpZW50LT4+RmFicmljRGlzcGF0Y2g6IHN0YXJ0KClcbiAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaW5pdGlhbGl6ZSgpXG4gKiAgIEZhYnJpY0Rpc3BhdGNoLT4+R2F0ZXdheTogZ2V0R2F0ZXdheShjb25maWcsIGNsaWVudClcbiAqICAgR2F0ZXdheS0+Pk5ldHdvcms6IGdldE5ldHdvcmsoY2hhbm5lbClcbiAqICAgTmV0d29yay0+Pk5ldHdvcms6IGdldENoYWluY29kZUV2ZW50cyhjaGFpbmNvZGVOYW1lKVxuICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBoYW5kbGVFdmVudHMoKVxuICogICBsb29wIEZvciBlYWNoIGV2ZW50XG4gKiAgICAgQ2hhaW5jb2RlLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICogICAgIEZhYnJpY0Rpc3BhdGNoLT4+RmFicmljRGlzcGF0Y2g6IHBhcnNlRXZlbnROYW1lKGV2ZW50TmFtZSlcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQocGF5bG9hZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZClcbiAqICAgICBGYWJyaWNEaXNwYXRjaC0tPj5DbGllbnQ6IGNhbGxiYWNrKGlkKVxuICogICBlbmRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NsaWVudERpc3BhdGNoIGV4dGVuZHMgRGlzcGF0Y2gge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0Rpc3BhdGNoIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgSW5pdGlhbGl6ZXMgYSBkaXNwYXRjaGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICAgICAqIEBwYXJhbSB7Q2xpZW50fSBjbGllbnQgLSBnUlBDIGNsaWVudCBmb3IgY29ubmVjdGluZyB0byB0aGUgRmFicmljIG5ldHdvcmtcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihjbGllbnQpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBkZWNvZGVyIGZvciBjb252ZXJ0aW5nIGV2ZW50IHBheWxvYWRzIGZyb20gYnl0ZXMgdG8gc3RyaW5nc1xuICAgICAgICAgKi9cbiAgICAgICAgdGhpcy5kZWNvZGVyID0gbmV3IFRleHREZWNvZGVyKFwidXRmOFwiKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsb3NlcyB0aGUgZXZlbnQgbGlzdGVuaW5nIGNvbm5lY3Rpb25cbiAgICAgKiBAc3VtbWFyeSBTdG9wcyBsaXN0ZW5pbmcgZm9yIGNoYWluY29kZSBldmVudHMgYW5kIHJlbGVhc2VzIHJlc291cmNlc1xuICAgICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZFxuICAgICAqL1xuICAgIGFzeW5jIGNsb3NlKC4uLmN0eEFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3M6IGxvZ2dlZEFyZ3MgfSA9IChhd2FpdCB0aGlzLmxvZ0N0eChjdHhBcmdzLCBQZXJzaXN0ZW5jZUtleXMuU0hVVERPV04sIHRydWUpKS5mb3IodGhpcy5jbG9zZSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBzdXBlci5jbG9zZSguLi5sb2dnZWRBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKGBGYWlsZWQgdG8gY2xvc2UgRmFicmljIHByb3hpZXMgZXZlbnQgbGlzdGVuZXJgLCBlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5saXN0ZW5pbmdTdGFjaykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLmxpc3RlbmluZ1N0YWNrLmNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihgRmFpbGVkIHRvIGNsb3NlIEZhYnJpYyBldmVudCBsaXN0ZW5lcmAsIGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saXN0ZW5pbmdTdGFjayA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUGFyc2VzIGV2ZW50IHBheWxvYWQgZnJvbSBiaW5hcnkgZm9ybWF0XG4gICAgICogQHN1bW1hcnkgQ29udmVydHMgYSBVaW50OEFycmF5IGNvbnRhaW5pbmcgSlNPTiB0byBhbiBvYmplY3Qgd2l0aCBhbiBpZCBwcm9wZXJ0eVxuICAgICAqIEBwYXJhbSB7VWludDhBcnJheX0ganNvbkJ5dGVzIC0gVGhlIGJpbmFyeSBwYXlsb2FkIGZyb20gdGhlIGNoYWluY29kZSBldmVudFxuICAgICAqIEByZXR1cm4ge3sgaWQ6IHN0cmluZyB9fSBUaGUgcGFyc2VkIHBheWxvYWQgY29udGFpbmluZyB0aGUgcmVjb3JkIElEXG4gICAgICovXG4gICAgcGFyc2VQYXlsb2FkKGpzb25CeXRlcykge1xuICAgICAgICBjb25zdCBqc29uID0gdGhpcy5kZWNvZGVyLmRlY29kZShqc29uQnl0ZXMpO1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShqc29uKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN0YXJ0cyBvYnNlcnZpbmcgYW4gYWRhcHRlclxuICAgICAqIEBzdW1tYXJ5IENvbm5lY3RzIHRoaXMgZGlzcGF0Y2ggdG8gYW4gYWRhcHRlciB0byBtb25pdG9yIGl0cyBvcGVyYXRpb25zXG4gICAgICogQHBhcmFtIHtBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT59IG9ic2VydmVyIC0gVGhlIGFkYXB0ZXIgdG8gb2JzZXJ2ZVxuICAgICAqIEByZXR1cm4ge3ZvaWR9XG4gICAgICovXG4gICAgb2JzZXJ2ZShvYnNlcnZlcikge1xuICAgICAgICBpZiAoIShvYnNlcnZlciBpbnN0YW5jZW9mIEZhYnJpY0NsaWVudEFkYXB0ZXIpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFVuc3VwcG9ydGVkRXJyb3IoXCJPbmx5IEZhYnJpY0NsaWVudEFkYXB0ZXIgY2FuIGJlIG9ic2VydmVkIGJ5IGRpc3BhdGNoXCIpO1xuICAgICAgICBzdXBlci5vYnNlcnZlKG9ic2VydmVyKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHRoaXMudW5PYnNlcnZlKG9ic2VydmVyKTtcbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgb2JzZXJ2ZXJzIGFib3V0IGEgZGF0YWJhc2UgZXZlbnRcbiAgICAgKiBAc3VtbWFyeSBOb3RpZmllcyBvYnNlcnZlcnMgYWJvdXQgYSBjaGFuZ2UgaW4gdGhlIGRhdGFiYXNlXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIG5hbWUgb2YgdGhlIHRhYmxlIHdoZXJlIHRoZSBjaGFuZ2Ugb2NjdXJyZWRcbiAgICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXN8QnVsa0NydWRPcGVyYXRpb25LZXlzfHN0cmluZ30gZXZlbnQgLSBUaGUgdHlwZSBvZiBvcGVyYXRpb24gdGhhdCBvY2N1cnJlZFxuICAgICAqIEBwYXJhbSB7YW55fSBwYXlsb2FkIC0gVGhlIGV2ZW50IHBheWxvYWRcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGFsbCBvYnNlcnZlcnMgaGF2ZSBiZWVuIG5vdGlmaWVkXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlT2JzZXJ2ZXJzKG1vZGVsLCBldmVudCwgaWQsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IEFkYXB0ZXIubG9nQ3R4KHRoaXMudXBkYXRlT2JzZXJ2ZXJzLCBldmVudCwgZmFsc2UsIC4uLmFyZ3MpO1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcikge1xuICAgICAgICAgICAgbG9nLnZlcmJvc2UoYE5vIGFkYXB0ZXIgb2JzZXJ2ZWQgZm9yIGRpc3BhdGNoOyBza2lwcGluZyBvYnNlcnZlciB1cGRhdGUgZm9yICR7dHlwZW9mIG1vZGVsID09PSBcInN0cmluZ1wiID8gbW9kZWwgOiBNb2RlbC50YWJsZU5hbWUobW9kZWwpfToke2V2ZW50fWApO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmFkYXB0ZXIucmVmcmVzaChtb2RlbCwgZXZlbnQsIGlkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byByZWZyZXNoIGRpc3BhdGNoOiAke2V9YCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2Nlc3NlcyBpbmNvbWluZyBjaGFpbmNvZGUgZXZlbnRzXG4gICAgICogQHN1bW1hcnkgTGlzdGVucyBmb3IgZXZlbnRzIGZyb20gdGhlIGNoYWluY29kZSBhbmQgZGlzcGF0Y2hlcyB0aGVtIHRvIHJlZ2lzdGVyZWQgb2JzZXJ2ZXJzXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gZXZlbnQgaGFuZGxpbmcgc3RvcHNcbiAgICAgKiBAbWVybWFpZFxuICAgICAqIHNlcXVlbmNlRGlhZ3JhbVxuICAgICAqICAgcGFydGljaXBhbnQgRmFicmljRGlzcGF0Y2hcbiAgICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50U3RhY2tcbiAgICAgKiAgIHBhcnRpY2lwYW50IEV2ZW50UGFyc2VyXG4gICAgICogICBwYXJ0aWNpcGFudCBPYnNlcnZlcnNcbiAgICAgKlxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogaGFuZGxlRXZlbnRzKClcbiAgICAgKiAgIEZhYnJpY0Rpc3BhdGNoLT4+RXZlbnRTdGFjazogZm9yIGF3YWl0IChjb25zdCBldnQgb2YgbGlzdGVuaW5nU3RhY2spXG4gICAgICogICBFdmVudFN0YWNrLS0+PkZhYnJpY0Rpc3BhdGNoOiBDaGFpbmNvZGVFdmVudFxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5FdmVudFBhcnNlcjogcGFyc2VFdmVudE5hbWUoZXZ0LmV2ZW50TmFtZSlcbiAgICAgKiAgIEV2ZW50UGFyc2VyLS0+PkZhYnJpY0Rpc3BhdGNoOiB7IHRhYmxlLCBldmVudCwgb3duZXIgfVxuICAgICAqICAgRmFicmljRGlzcGF0Y2gtPj5GYWJyaWNEaXNwYXRjaDogQ2hlY2sgaWYgZXZlbnQgaXMgZm9yIHRoaXMgTVNQXG4gICAgICogICBGYWJyaWNEaXNwYXRjaC0+PkZhYnJpY0Rpc3BhdGNoOiBwYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpXG4gICAgICogICBGYWJyaWNEaXNwYXRjaC0+Pk9ic2VydmVyczogdXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgcGF5bG9hZC5pZClcbiAgICAgKiAgIE9ic2VydmVycy0tPj5GYWJyaWNEaXNwYXRjaDogQ2FsbGJhY2tzIGV4ZWN1dGVkXG4gICAgICovXG4gICAgYXN5bmMgaGFuZGxlRXZlbnRzKGN0eEFyZykge1xuICAgICAgICBpZiAoIXRoaXMubGlzdGVuaW5nU3RhY2spXG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRXZlbnQgc3RhY2sgbm90IGluaXRpYWxpemVkLiBFbnN1cmUgdGhhdCBcInN0YXJ0TGlzdGVuaW5nXCIgaXMgY2FsbGVkIGJlZm9yZSBhdHRlbXB0aW5nIHRoaXMgb3BlcmF0aW9uLmApO1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlciB8fCAhdGhpcy5hZGFwdGVyLmNvbmZpZylcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIGZvdW5kLiBzaG91bGQgYmUgaW1wb3NzaWJsZWApO1xuICAgICAgICBjb25zdCBjdHggPSBjdHhBcmcgfHxcbiAgICAgICAgICAgIChhd2FpdCB0aGlzLmFkYXB0ZXIuY29udGV4dChPcGVyYXRpb25LZXlzLlJFQUQsIHtcbiAgICAgICAgICAgICAgICBjb3JyZWxhdGlvbklkOiB0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWUsXG4gICAgICAgICAgICB9LCAodGhpcy5tb2RlbHMgJiYgdGhpcy5tb2RlbHNbMF0pIHx8IE1vZGVsKSk7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmhhbmRsZUV2ZW50cyk7XG4gICAgICAgIGxvZy5pbmZvKGBMaXN0ZW5pbmcgZm9yIGluY29taW5nIGV2ZW50cyBvbiBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCIuLi5gKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgZXZ0IG9mIHRoaXMubGlzdGVuaW5nU3RhY2spIHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRhYmxlLCBldmVudCwgb3duZXIgfSA9IHBhcnNlRXZlbnROYW1lKGV2dC5ldmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFkYXB0ZXIuY29uZmlnPy5tc3BFdmVudE9ubHkgJiZcbiAgICAgICAgICAgICAgICAgICAgb3duZXIgJiZcbiAgICAgICAgICAgICAgICAgICAgb3duZXIgIT09IHRoaXMuYWRhcHRlci5jb25maWc/Lm1zcElkKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gdGhpcy5wYXJzZVBheWxvYWQoZXZ0LnBheWxvYWQpO1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhcmdldE1vZGVsID0gdGFibGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gTW9kZWwuZ2V0KHRhYmxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBNb2RlbC5nZXQodGhpcy5tb2RlbHNbMF0ubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGVsUmVmID0gdGFyZ2V0TW9kZWwgPz8gKHRhYmxlIHx8IHRoaXMubW9kZWxzWzBdPy5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JzZXJ2ZXJBcmdzID0gcGF5bG9hZC5yZXN1bHQgPyBbcGF5bG9hZC5yZXN1bHQsIGN0eF0gOiBbY3R4XTtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPYnNlcnZlcnMobW9kZWxSZWYsIGV2ZW50LCBwYXlsb2FkLmlkLCAuLi5vYnNlcnZlckFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB1cGRhdGUgb2JzZXJ2YWJsZXMgZm9yIHRhYmxlICR7dGFibGV9IGV2ZW50ICR7ZXZlbnR9IGlkOiAke3BheWxvYWQuaWR9OiAke2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBsb2cuZXJyb3IoYEZhaWxlZCB0byByZWFkIGV2ZW50IGZvciBjaGFpbmNvZGUgXCIke3RoaXMuYWRhcHRlci5jb25maWcuY2hhaW5jb2RlTmFtZX1cIiBvbiBjaGFubmVsIFwiJHt0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYW5uZWx9XCI6ICR7ZX1gKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2xvc2UoY3R4KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5pdGlhbGl6ZXMgdGhlIGV2ZW50IGxpc3RlbmVyXG4gICAgICogQHN1bW1hcnkgU2V0cyB1cCBldmVudCBkaXNwYXRjaGluZyBmb3IgdGhlIG9ic2VydmVkIGFkYXB0ZXIuIFdoZW5cbiAgICAgKiBgc3ludGhldGljRXZlbnRzYCBpcyB0cnVlICh0aGUgZGVmYXVsdCkgbm8gZ2F0ZXdheSBjb25uZWN0aW9uIGlzIG9wZW5lZDtcbiAgICAgKiBpbnN0ZWFkIGV2ZXJ5IENSVUQgb3BlcmF0aW9uIGlzIHdyYXBwZWQgd2l0aCBhIFByb3h5IHRoYXQgZmlyZXNcbiAgICAgKiBgdXBkYXRlT2JzZXJ2ZXJzYCBmb3IgKiphbGwqKiBtb2RlbHMuIFdoZW4gYHN5bnRoZXRpY0V2ZW50c2AgaXMgZmFsc2UgdGhlXG4gICAgICogZXhpc3RpbmcgZ2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIGlzIGVzdGFibGlzaGVkIGFuZCB0aGVcbiAgICAgKiBsb2NhbCBQcm94eSBmYWxsYmFjayBpcyBsaW1pdGVkIHRvIGZ1bGx5LXNlZ3JlZ2F0ZWQgKHRyYW5zaWVudCkgbW9kZWxzIG9ubHkuXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gaW5pdGlhbGl6YXRpb24gaXMgY29tcGxldGVcbiAgICAgKi9cbiAgICBhc3luYyBpbml0aWFsaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcilcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBObyBhZGFwdGVyIG9yIGNvbmZpZyBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgICAgY29uc3Qgc3ludGhldGljRXZlbnRzID0gdGhpcy5hZGFwdGVyLmNvbmZpZy5zeW50aGV0aWNFdmVudHMgIT09IGZhbHNlO1xuICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cykge1xuICAgICAgICAgICAgLy8gR2F0ZXdheS1iYXNlZCBjaGFpbmNvZGUtZXZlbnQgc3Vic2NyaXB0aW9uIChub24tc3ludGhldGljIHBhdGgpXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNvbnRleHQoXCJkaXNwYXRjaFwiLCB7XG4gICAgICAgICAgICAgICAgY29ycmVsYXRpb25JZDogdGhpcy5hZGFwdGVyLmNvbmZpZy5jaGFpbmNvZGVOYW1lLFxuICAgICAgICAgICAgfSwgTW9kZWwpO1xuICAgICAgICAgICAgY29uc3QgeyBjdHggfSA9IHRoaXMubG9nQ3R4KFtjb250ZXh0XSwgdGhpcy5pbml0aWFsaXplKTtcbiAgICAgICAgICAgIGNvbnN0IGdhdGV3YXkgPSBhd2FpdCBGYWJyaWNDbGllbnRBZGFwdGVyLmdldEdhdGV3YXkoY3R4LCB0aGlzLmFkYXB0ZXIuY29uZmlnLCB0aGlzLmNsaWVudCk7XG4gICAgICAgICAgICBjb25zdCBuZXR3b3JrID0gZ2F0ZXdheS5nZXROZXR3b3JrKHRoaXMuYWRhcHRlci5jb25maWcuY2hhbm5lbCk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYWRhcHRlcilcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTm8gYWRhcHRlciBvYnNlcnZlZCBmb3IgZGlzcGF0Y2hgKTtcbiAgICAgICAgICAgIHRoaXMubGlzdGVuaW5nU3RhY2sgPSBhd2FpdCBuZXR3b3JrLmdldENoYWluY29kZUV2ZW50cyh0aGlzLmFkYXB0ZXIuY29uZmlnLmNoYWluY29kZU5hbWUpO1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudHMoY3R4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBQcm94eSBDUlVEIG1ldGhvZHMuXG4gICAgICAgIC8vIOKAoiBzeW50aGV0aWNFdmVudHMgPSB0cnVlICDihpIgbm90aWZ5IGZvciBBTEwgbW9kZWxzIChyZXBsYWNlcyBnYXRld2F5IGV2ZW50cyBlbnRpcmVseSlcbiAgICAgICAgLy8g4oCiIHN5bnRoZXRpY0V2ZW50cyA9IGZhbHNlIOKGkiBub3RpZnkgb25seSBmb3IgZnVsbHktc2VncmVnYXRlZCAodHJhbnNpZW50KSBtb2RlbHNcbiAgICAgICAgLy8gICAodGhlIGdhdGV3YXkgc3Vic2NyaXB0aW9uIGhhbmRsZXMgcHVibGljIG1vZGVscylcbiAgICAgICAgW1xuICAgICAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgICAgICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgICAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsXG4gICAgICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLFxuICAgICAgICBdLmZvckVhY2goKHRvV3JhcCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXIpXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYE5vIGFkYXB0ZXIgcHJvdmlkZWQgZm9yIHRoZSBmYWxsYmFjayBvZiBmdWxseSBzZWdyZWdhdGVkIG1vZGVsc2ApO1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFkYXB0ZXJbdG9XcmFwXSlcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgTWV0aG9kICR7dG9XcmFwfSBub3QgZm91bmQgaW4gJHt0aGlzLmFkYXB0ZXIuYWxpYXN9IGFkYXB0ZXIgdG8gYmluZCBPYnNlcnZhYmxlcyBEaXNwYXRjaGApO1xuICAgICAgICAgICAgbGV0IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRoaXMuYWRhcHRlciwgdG9XcmFwKTtcbiAgICAgICAgICAgIGxldCBwcm90byA9IHRoaXMuYWRhcHRlcjtcbiAgICAgICAgICAgIHdoaWxlICghZGVzY3JpcHRvciAmJiBwcm90byAhPT0gT2JqZWN0LnByb3RvdHlwZSkge1xuICAgICAgICAgICAgICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihwcm90bywgdG9XcmFwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghZGVzY3JpcHRvciB8fCAhZGVzY3JpcHRvci53cml0YWJsZSkge1xuICAgICAgICAgICAgICAgIHRoaXMubG9nLmVycm9yKGBDb3VsZCBub3QgZmluZCBtZXRob2QgJHt0b1dyYXB9IHRvIGJpbmQgT2JzZXJ2YWJsZXMgRGlzcGF0Y2hgKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmdW5jdGlvbiBidWxrVG9TaW5nbGUobWV0aG9kKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChtZXRob2QpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuQ1JFQVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkNSRUFURTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLlVQREFURTtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBPcGVyYXRpb25LZXlzLkRFTEVURTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtZXRob2Q7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBiZWNhdXNlIHRoZXJlIGFyZSByZWFkIG9ubHkgcHJvcGVydGllc1xuICAgICAgICAgICAgdGhpcy5hZGFwdGVyW3RvV3JhcF0gPSBuZXcgUHJveHkodGhpcy5hZGFwdGVyW3RvV3JhcF0sIHtcbiAgICAgICAgICAgICAgICBhcHBseTogYXN5bmMgKHRhcmdldCwgdGhpc0FyZywgYXJnQXJyYXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgLy8gUnVuIHRoZSBvcmlnaW5hbCBtZXRob2QgdW5jaGFuZ2VkIHNvIHRyYW5zaWVudCBkYXRhIGlzIHByZXNlcnZlZFxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0YXJnZXQuYXBwbHkodGhpc0FyZywgYXJnQXJyYXkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjbGF6eiA9IGFyZ0FycmF5WzBdO1xuICAgICAgICAgICAgICAgICAgICAvLyBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyBmYWxzZSwgcHVibGljIG1vZGVscyBlbWl0IGEgY2hhaW5jb2RlIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgIC8vIG9uIHRoZSBjb250cmFjdCBzaWRlOyBza2lwIHRoZSBsb2NhbCBmYWxsYmFjayB0byBhdm9pZFxuICAgICAgICAgICAgICAgICAgICAvLyBkb3VibGUtbm90aWZpY2F0aW9uLiBXaGVuIHN5bnRoZXRpY0V2ZW50cyBpcyB0cnVlIHdlIGhhbmRsZSBhbGwgbW9kZWxzLlxuICAgICAgICAgICAgICAgICAgICBpZiAoIXN5bnRoZXRpY0V2ZW50cyAmJiAhTW9kZWwuaXNUcmFuc2llbnQoY2xhenopKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ29udGV4dCBpcyBhbHdheXMgdGhlIGxhc3QgZWxlbWVudCBvZiBhcmdBcnJheVxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSB0aGlzQXJnW1wibG9nQ3R4XCJdKGFyZ0FycmF5LnNsaWNlKGFyZ0FycmF5Lmxlbmd0aCAtIDEpLCB0YXJnZXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpZHMgPSBhcmdBcnJheVsxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0QXJncyA9IFtjbGF6eiwgYnVsa1RvU2luZ2xlKHRvV3JhcCksIGlkc107XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJvYnNlcnZlRnVsbFJlc3VsdFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0QXJncy5wdXNoKHJlc3VsdCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVPYnNlcnZlcnMoLi4ucmVzdWx0QXJncywgLi4uY3R4QXJncykuY2F0Y2goKGUpID0+IGxvZy5lcnJvcihgRmFpbGVkIHRvIGRpc3BhdGNoIG9ic2VydmVyIHJlZnJlc2ggZm9yICR7dG9XcmFwfSBvbiAke2NsYXp6Lm5hbWUgfHwgY2xhenp9IGZvciAke2lkc306ICR7ZX1gKSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5pZiAoRmFicmljQ2xpZW50QWRhcHRlcilcbiAgICBGYWJyaWNDbGllbnRBZGFwdGVyW1wiX2Jhc2VEaXNwYXRjaFwiXSA9IEZhYnJpY0NsaWVudERpc3BhdGNoO1xuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMnhwWlc1MFJHbHpjR0YwWTJndWFuTWlMQ0p6YjNWeVkyVlNiMjkwSWpvaUlpd2ljMjkxY21ObGN5STZXeUl1TGk4dUxpOHVMaTl6Y21NdlkyeHBaVzUwTDBaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb0xuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZEVEN4UFFVRlBMRVZCUlZBc1VVRkJVU3hGUVVWU0xHZENRVUZuUWl4RlFVZG9RaXhsUVVGbExFZEJRMmhDTEUxQlFVMHNaMEpCUVdkQ0xFTkJRVU03UVVGSGVFSXNUMEZCVHl4RlFVRkZMRzFDUVVGdFFpeEZRVUZGTEdsRFFVRTRRanRCUVVNMVJDeFBRVUZQTEVWQlEwd3NjVUpCUVhGQ0xFVkJRM0pDTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVdHFReXhQUVVGUExFVkJRVVVzWTBGQll5eEZRVUZGTERoQ1FVRjVRanRCUVVOc1JDeFBRVUZQTEVWQlFVVXNTMEZCU3l4RlFVRkZMRTFCUVUwc1owTkJRV2RETEVOQlFVTTdRVUZKZGtRN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN08wZEJLME5ITzBGQlEwZ3NUVUZCVFN4UFFVRlBMRzlDUVVGeFFpeFRRVUZSTEZGQlFUWkNPMGxCVjNKRk96czdPMDlCU1VjN1NVRkRTQ3haUVVGelFpeE5RVUZqTzFGQlEyeERMRXRCUVVzc1JVRkJSU3hEUVVGRE8xRkJSRmtzVjBGQlRTeEhRVUZPTEUxQlFVMHNRMEZCVVR0UlFWWndRenM3VjBGRlJ6dFJRVU5MTEZsQlFVOHNSMEZCUnl4SlFVRkpMRmRCUVZjc1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF6dEpRVk14UXl4RFFVRkRPMGxCUlVRN096czdUMEZKUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhMUVVGTExFTkJRMnhDTEVkQlFVY3NUMEZCYlVRN1VVRkZkRVFzVFVGQlRTeEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1ZVRkJWU3hGUVVGRkxFZEJRVWNzUTBGRGJrTXNUVUZCVFN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFOUJRVThzUlVGQlJTeGxRVUZsTEVOQlFVTXNVVUZCVVN4RlFVRkZMRWxCUVVrc1EwRkJReXhEUVVNelJDeERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRGJFSXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRia01zUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVlN4RlFVRkZMRU5CUVVNN1dVRkRjRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl3clEwRkJLME1zUlVGQlJTeERRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjZSU3hEUVVGRE8xRkJRMFFzU1VGQlNTeEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1dVRkRlRUlzU1VGQlNTeERRVUZETzJkQ1FVTklMRTFCUVUwc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTndReXhEUVVGRE8xbEJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0blFrRkRjRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZCUXl4MVEwRkJkVU1zUlVGQlJTeERRVUZWTEVOQlFVTXNRMEZCUXp0WlFVTnFSU3hEUVVGRE8yOUNRVUZUTEVOQlFVTTdaMEpCUTFRc1NVRkJTU3hEUVVGRExHTkJRV01zUjBGQlJ5eFRRVUZUTEVOQlFVTTdXVUZEYkVNc1EwRkJRenRSUVVOSUxFTkJRVU03U1VGRFNDeERRVUZETzBsQlJVUTdPenM3TzA5QlMwYzdTVUZEU3l4WlFVRlpMRU5CUVVNc1UwRkJjVUk3VVVGRGVFTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkROVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRE8wbEJRekZDTEVOQlFVTTdTVUZGUkRzN096czdUMEZMUnp0SlFVTk5MRTlCUVU4c1EwRkJReXhSUVVGeFF6dFJRVU53UkN4SlFVRkpMRU5CUVVNc1EwRkJReXhSUVVGUkxGbEJRVmtzYlVKQlFXMUNMRU5CUVVNN1dVRkROVU1zVFVGQlRTeEpRVUZKTEdkQ1FVRm5RaXhEUVVONFFpeHpSRUZCYzBRc1EwRkRka1FzUTBGQlF6dFJRVU5LTEV0QlFVc3NRMEZCUXl4UFFVRlBMRU5CUVVNc1VVRkJLMElzUTBGQlF5eERRVUZETzFGQlF5OURMRTlCUVU4c1IwRkJSeXhGUVVGRkxFTkJRVU1zU1VGQlNTeERRVUZETEZOQlFWTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRKUVVONFF5eERRVUZETzBsQlJVUTdPenM3T3pzN1QwRlBSenRKUVVOTkxFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlF6VkNMRXRCUVdkRExFVkJRMmhETEV0QlFYRkVMRVZCUTNKRUxFVkJRVmtzUlVGRFdpeEhRVUZITEVsQlFXZEVPMUZCUlc1RUxFMUJRVTBzUlVGQlJTeEhRVUZITEVWQlFVVXNUMEZCVHl4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGRGNrTXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1JVRkRjRUlzUzBGQlN5eEZRVU5NTEV0QlFVc3NSVUZEVEN4SFFVRkhMRWxCUVVrc1EwRkRVaXhEUVVGRE8xRkJRMFlzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRVZCUVVVc1EwRkJRenRaUVVOc1FpeEhRVUZITEVOQlFVTXNUMEZCVHl4RFFVTlVMR3RGUVVGclJTeFBRVUZQTEV0QlFVc3NTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhMUVVGTExFTkJRVU1zU1VGQlNTeExRVUZMTEVWQlFVVXNRMEZEZUVrc1EwRkJRenRaUVVOR0xFOUJRVTg3VVVGRFZDeERRVUZETzFGQlEwUXNTVUZCU1N4RFFVRkRPMWxCUTBnc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUXpORUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlFVTXNLMEpCUVN0Q0xFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTTdVVUZET1VRc1EwRkJRenRKUVVOSUxFTkJRVU03U1VGRlJEczdPenM3T3pzN096czdPenM3T3pzN096czdUMEZ2UWtjN1NVRkRUeXhMUVVGTExFTkJRVU1zV1VGQldTeERRVU14UWl4TlFVRnRRenRSUVVWdVF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMR05CUVdNN1dVRkRkRUlzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2RVZEJRWFZITEVOQlEzaEhMRU5CUVVNN1VVRkZTaXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zVFVGQlRUdFpRVU4yUXl4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIZERRVUYzUXl4RFFVRkRMRU5CUVVNN1VVRkZjRVVzVFVGQlRTeEhRVUZITEVkQlExQXNUVUZCVFR0WlFVTk9MRU5CUVVNc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZEZWtJc1lVRkJZU3hEUVVGRExFbEJRVWtzUlVGRGJFSTdaMEpCUTBVc1lVRkJZU3hGUVVGRkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMR0ZCUVdFN1lVRkRha1FzUlVGRFJDeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkxMRXRCUVdkRExFTkJRM0pGTEVOQlFVTXNRMEZCUXp0UlFVTk1MRTFCUVUwc1IwRkJSeXhIUVVGSExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUTBGQlF6dFJRVVUxUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVOT0xDdERRVUVyUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTEdsQ1FVRnBRaXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRTFCUVUwc1EwRkRia2tzUTBGQlF6dFJRVVZHTEVsQlFVa3NRMEZCUXp0WlFVTklMRWxCUVVrc1MwRkJTeXhGUVVGRkxFMUJRVTBzUjBGQlJ5eEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRuUWtGRE5VTXNUVUZCVFN4RlFVRkZMRXRCUVVzc1JVRkJSU3hMUVVGTExFVkJRVVVzUzBGQlN5eEZRVUZGTEVkQlFVY3NZMEZCWXl4RFFVRkRMRWRCUVVjc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dG5Ra0ZET1VRc1NVRkRSU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4WlFVRlpPMjlDUVVOcVF5eExRVUZMTzI5Q1FVTk1MRXRCUVVzc1MwRkJTeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNSVUZCUlN4TFFVRkxPMjlDUVVWd1F5eFRRVUZUTzJkQ1FVTllMRTFCUVUwc1QwRkJUeXhIUVVGcFF5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVTTNSQ3hIUVVGSExFTkJRVU1zVDBGQlR5eERRVU5hTEVOQlFVTTdaMEpCUTBZc1NVRkJTU3hEUVVGRE8yOUNRVU5JTEUxQlFVMHNWMEZCVnl4SFFVRkhMRXRCUVVzN2QwSkJRM1pDTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF6dDNRa0ZEYkVJc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0dlFrRkRia01zVFVGQlRTeFJRVUZSTEVkQlFVY3NWMEZCVnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhKUVVGSkxFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1NVRkJTU3hEUVVGRExFTkJRVU03YjBKQlEyaEZMRTFCUVUwc1dVRkJXU3hIUVVGSExFOUJRVThzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dHZRa0ZEY0VVc1RVRkJUU3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVU40UWl4UlFVRm5ReXhGUVVOb1F5eExRVUZMTEVWQlEwd3NUMEZCVHl4RFFVRkRMRVZCUVZrc1JVRkRjRUlzUjBGQlNTeFpRVUZ2UXl4RFFVTjZReXhEUVVGRE8yZENRVU5LTEVOQlFVTTdaMEpCUVVNc1QwRkJUeXhEUVVGVkxFVkJRVVVzUTBGQlF6dHZRa0ZEY0VJc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeDFRMEZCZFVNc1MwRkJTeXhWUVVGVkxFdEJRVXNzVVVGQlVTeFBRVUZQTEVOQlFVTXNSVUZCUlN4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVOMFJpeERRVUZETzJkQ1FVTktMRU5CUVVNN1dVRkRTQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN1dVRkRhRUlzUjBGQlJ5eERRVUZETEV0QlFVc3NRMEZEVUN4MVEwRkJkVU1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1lVRkJZU3hwUWtGQmFVSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eE5RVUZOTEVOQlFVTXNSVUZCUlN4RFFVTTVTQ3hEUVVGRE8xbEJRMFlzVFVGQlRTeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8xRkJRM2hDTEVOQlFVTTdTVUZEU0N4RFFVRkRPMGxCUlVRN096czdPenM3T3p0UFFWTkhPMGxCUTJkQ0xFdEJRVXNzUTBGQlF5eFZRVUZWTzFGQlEycERMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR6dFpRVU5tTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUVVNc05FTkJRVFJETEVOQlFVTXNRMEZCUXp0UlFVVjRSU3hOUVVGTkxHVkJRV1VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhsUVVGbExFdEJRVXNzUzBGQlN5eERRVUZETzFGQlJYUkZMRWxCUVVrc1EwRkJReXhsUVVGbExFVkJRVVVzUTBGQlF6dFpRVU55UWl4clJVRkJhMFU3V1VGRGJFVXNUVUZCVFN4UFFVRlBMRWRCUVVjc1RVRkJUU3hKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEU5QlFVOHNRMEZEZUVNc1ZVRkJWU3hGUVVOV08yZENRVU5GTEdGQlFXRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eGhRVUZoTzJGQlEycEVMRVZCUTBRc1MwRkJXU3hEUVVOaUxFTkJRVU03V1VGRFJpeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eERRVUZETEU5QlFVOHNRMEZCUXl4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dFpRVU40UkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxHMUNRVUZ0UWl4RFFVRkRMRlZCUVZVc1EwRkRiRVFzUjBGQlJ5eEZRVU5JTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJiMElzUlVGRGFrTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkRXaXhEUVVGRE8xbEJRMFlzVFVGQlRTeFBRVUZQTEVkQlFVY3NUMEZCVHl4RFFVRkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRaUVVOb1JTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4N1owSkJRMllzVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZCUXl4clEwRkJhME1zUTBGQlF5eERRVUZETzFsQlF6bEVMRWxCUVVrc1EwRkJReXhqUVVGakxFZEJRVWNzVFVGQlRTeFBRVUZQTEVOQlFVTXNhMEpCUVd0Q0xFTkJRM0JFTEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGRGJFTXNRMEZCUXp0WlFVTkdMRWxCUVVrc1EwRkJReXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZEZWtJc1EwRkJRenRSUVVWRUxITkNRVUZ6UWp0UlFVTjBRaXgxUmtGQmRVWTdVVUZEZGtZc2EwWkJRV3RHTzFGQlEyeEdMSEZFUVVGeFJEdFJRVVZ1UkR0WlFVTkZMR0ZCUVdFc1EwRkJReXhOUVVGTk8xbEJRM0JDTEdGQlFXRXNRMEZCUXl4TlFVRk5PMWxCUTNCQ0xHRkJRV0VzUTBGQlF5eE5RVUZOTzFsQlEzQkNMSEZDUVVGeFFpeERRVUZETEZWQlFWVTdXVUZEYUVNc2NVSkJRWEZDTEVOQlFVTXNWVUZCVlR0WlFVTm9ReXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZPMU5CUlc1RExFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRVZCUVVVN1dVRkRia0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBPMmRDUVVObUxFMUJRVTBzU1VGQlNTeGhRVUZoTEVOQlEzSkNMR2xGUVVGcFJTeERRVU5zUlN4RFFVRkRPMWxCUTBvc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRPMmRDUVVOMlFpeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhWUVVGVkxFMUJRVTBzYVVKQlFXbENMRWxCUVVrc1EwRkJReXhQUVVGUExFTkJRVU1zUzBGQlN5eDFRMEZCZFVNc1EwRkRNMFlzUTBGQlF6dFpRVVZLTEVsQlFVa3NWVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXgzUWtGQmQwSXNRMEZCUXl4SlFVRkpMRU5CUVVNc1QwRkJUeXhGUVVGRkxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlEzWkZMRWxCUVVrc1MwRkJTeXhIUVVGUkxFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdXVUZET1VJc1QwRkJUeXhEUVVGRExGVkJRVlVzU1VGQlNTeExRVUZMTEV0QlFVc3NUVUZCVFN4RFFVRkRMRk5CUVZNc1JVRkJSU3hEUVVGRE8yZENRVU5xUkN4TFFVRkxMRWRCUVVjc1RVRkJUU3hEUVVGRExHTkJRV01zUTBGQlF5eExRVUZMTEVOQlFVTXNRMEZCUXp0blFrRkRja01zVlVGQlZTeEhRVUZITEUxQlFVMHNRMEZCUXl4M1FrRkJkMElzUTBGQlF5eExRVUZMTEVWQlFVVXNUVUZCVFN4RFFVRkRMRU5CUVVNN1dVRkRPVVFzUTBGQlF6dFpRVVZFTEVsQlFVa3NRMEZCUXl4VlFVRlZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVVVGQlVTeEZRVUZGTEVOQlFVTTdaMEpCUTNoRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTmFMSGxDUVVGNVFpeE5RVUZOTEN0Q1FVRXJRaXhEUVVNdlJDeERRVUZETzJkQ1FVTkdMRTlCUVU4N1dVRkRWQ3hEUVVGRE8xbEJRMFFzVTBGQlV5eFpRVUZaTEVOQlFVTXNUVUZCWXp0blFrRkRiRU1zVVVGQlVTeE5RVUZOTEVWQlFVVXNRMEZCUXp0dlFrRkRaaXhMUVVGTExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVN2QwSkJRMjVETEU5QlFVOHNZVUZCWVN4RFFVRkRMRTFCUVUwc1EwRkJRenR2UWtGRE9VSXNTMEZCU3l4eFFrRkJjVUlzUTBGQlF5eFZRVUZWTzNkQ1FVTnVReXhQUVVGUExHRkJRV0VzUTBGQlF5eE5RVUZOTEVOQlFVTTdiMEpCUXpsQ0xFdEJRVXNzY1VKQlFYRkNMRU5CUVVNc1ZVRkJWVHQzUWtGRGJrTXNUMEZCVHl4aFFVRmhMRU5CUVVNc1RVRkJUU3hEUVVGRE8yOUNRVU01UWp0M1FrRkRSU3hQUVVGUExFMUJRVTBzUTBGQlF6dG5Ra0ZEYkVJc1EwRkJRenRaUVVOSUxFTkJRVU03V1VGRlJDd3dSRUZCTUVRN1dVRkRNVVFzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhKUVVGSkxFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRk8yZENRVU55UkN4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVOV0xFMUJRVmNzUlVGRFdDeFBRVUUwUWl4RlFVTTFRaXhSUVVGbExFVkJRMllzUlVGQlJUdHZRa0ZEUml4dFJVRkJiVVU3YjBKQlEyNUZMRTFCUVUwc1RVRkJUU3hIUVVGSExFMUJRVTBzVFVGQlRTeERRVUZETEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1VVRkJVU3hEUVVGRExFTkJRVU03YjBKQlJYSkVMRTFCUVUwc1MwRkJTeXhIUVVGeFFpeFJRVUZSTEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNN2IwSkJRelZETEhORlFVRnpSVHR2UWtGRGRFVXNlVVJCUVhsRU8yOUNRVU42UkN3d1JVRkJNRVU3YjBKQlF6RkZMRWxCUVVrc1EwRkJReXhsUVVGbExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNWMEZCVnl4RFFVRkRMRXRCUVVzc1EwRkJRenQzUWtGQlJTeFBRVUZQTEUxQlFVMHNRMEZCUXp0dlFrRkZha1VzYVVSQlFXbEVPMjlDUVVOcVJDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRTlCUVU4c1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNVVUZCVVN4RFFVRkRMRU5CUXpkRExGRkJRVkVzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRTFCUVUwc1IwRkJSeXhEUVVGRExFTkJRVU1zUlVGRGJrTXNUVUZCVFN4RFFVTlFMRU5CUVVNN2IwSkJRMFlzVFVGQlRTeEhRVUZITEVkQlFVY3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yOUNRVU40UWl4TlFVRk5MRlZCUVZVc1IwRkJWU3hEUVVGRExFdEJRVXNzUlVGQlJTeFpRVUZaTEVOQlFVTXNUVUZCVFN4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03YjBKQlJUZEVMRWxCUVVrc1IwRkJSeXhEUVVGRExHTkJRV01zUTBGQlF5eHRRa0ZCYlVJc1EwRkJReXhGUVVGRkxFTkJRVU03ZDBKQlF6VkRMRlZCUVZVc1EwRkJReXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdiMEpCUXpGQ0xFTkJRVU03YjBKQlEwUXNTVUZCU1N4RFFVRkRMR1ZCUVdVc1EwRkRiRUlzUjBGQlNTeFZRVUZ6UkN4RlFVTXhSQ3hIUVVGSExFOUJRVThzUTBGRFdDeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRMRU5CUVZVc1JVRkJSU3hGUVVGRkxFTkJRM0pDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRU5CUTFBc01rTkJRVEpETEUxQlFVMHNUMEZCVHl4TFFVRkxMRU5CUVVNc1NVRkJTU3hKUVVGSkxFdEJRVXNzVVVGQlVTeEhRVUZITEV0QlFVc3NRMEZCUXl4RlFVRkZMRU5CUXk5R0xFTkJRMFlzUTBGQlF6dHZRa0ZEUml4UFFVRlBMRTFCUVUwc1EwRkJRenRuUWtGRGFFSXNRMEZCUXp0aFFVTkdMRU5CUVVNc1EwRkJRenRSUVVOTUxFTkJRVU1zUTBGQlF5eERRVUZETzBsQlEwd3NRMEZCUXp0RFFVTkdPMEZCUlVRc1NVRkJTU3h0UWtGQmJVSTdTVUZEY2tJc2JVSkJRVzFDTEVOQlFVTXNaVUZCWlN4RFFVRkRMRWRCUVVjc2IwSkJRVzlDTEVOQlFVTWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCQlpHRndkR1Z5TEZ4dUlDQkRiMjUwWlhoMGRXRnNRWEpuY3l4Y2JpQWdSR2x6Y0dGMFkyZ3NYRzRnSUVWMlpXNTBTV1J6TEZ4dUlDQlZibk4xY0hCdmNuUmxaRVZ5Y205eUxGeHVJQ0JEYjI1MFpYaDBMRnh1SUNCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jc1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNibjBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlqYjNKbFhDSTdYRzVwYlhCdmNuUWdleUJRWldWeVEyOXVabWxuSUgwZ1puSnZiU0JjSWk0dUwzTm9ZWEpsWkM5MGVYQmxjMXdpTzF4dWFXMXdiM0owSUhzZ1EyeHBaVzUwSUgwZ1puSnZiU0JjSWtCbmNuQmpMMmR5Y0dNdGFuTmNJanRjYm1sdGNHOXlkQ0I3SUVaaFluSnBZME5zYVdWdWRFRmtZWEIwWlhJZ2ZTQm1jbTl0SUZ3aUxpOUdZV0p5YVdORGJHbGxiblJCWkdGd2RHVnlYQ0k3WEc1cGJYQnZjblFnZTF4dUlDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE1zWEc0Z0lFbHVkR1Z5Ym1Gc1JYSnliM0lzWEc0Z0lFOXdaWEpoZEdsdmJrdGxlWE1zWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHSXRaR1ZqYjNKaGRHOXljMXdpTzF4dWFXMXdiM0owSUh0Y2JpQWdRMmhoYVc1amIyUmxSWFpsYm5Rc1hHNGdJRU5zYjNObFlXSnNaVUZ6ZVc1alNYUmxjbUZpYkdVc1hHNTlJR1p5YjIwZ1hDSkFhSGx3WlhKc1pXUm5aWEl2Wm1GaWNtbGpMV2RoZEdWM1lYbGNJanRjYm1sdGNHOXlkQ0I3SUhCaGNuTmxSWFpsYm5ST1lXMWxJSDBnWm5KdmJTQmNJaTR1TDNOb1lYSmxaQzlsZG1WdWRITmNJanRjYm1sdGNHOXlkQ0I3SUUxdlpHVnNJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWldOdmNtRjBiM0l0ZG1Gc2FXUmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dRMjl1YzNSeWRXTjBiM0lnZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJSbFkyOXlZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnNhV1Z1ZEVac1lXZHpJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYmx4dUx5b3FYRzRnS2lCQVpHVnpZM0pwY0hScGIyNGdSWFpsYm5RZ1pHbHpjR0YwWTJobGNpQm1iM0lnU0hsd1pYSnNaV1JuWlhJZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlNCbGRtVnVkSE5jYmlBcUlFQnpkVzF0WVhKNUlFeHBjM1JsYm5NZ1ptOXlJR0Z1WkNCd2NtOWpaWE56WlhNZ1pYWmxiblJ6SUdWdGFYUjBaV1FnWW5rZ1JtRmljbWxqSUdOb1lXbHVZMjlrWlN3Z1pHbHpjR0YwWTJocGJtY2dkR2hsYlNCMGJ5QnlaV2RwYzNSbGNtVmtJRzlpYzJWeWRtVnljMXh1SUNvZ1FIUmxiWEJzWVhSbElGQmxaWEpEYjI1bWFXY2dMU0JEYjI1bWFXZDFjbUYwYVc5dUlIUjVjR1VnWm05eUlHTnZibTVsWTNScGJtY2dkRzhnWVNCR1lXSnlhV01nY0dWbGNseHVJQ29nUUhCaGNtRnRJR05zYVdWdWRDQXRJR2RTVUVNZ1kyeHBaVzUwSUdadmNpQmpiMjV1WldOMGFXNW5JSFJ2SUhSb1pTQkdZV0p5YVdNZ2JtVjBkMjl5YTF4dUlDb2dRR05zWVhOeklFWmhZbkpwWTBOc2FXVnVkRVJwYzNCaGRHTm9YRzRnS2lCQVpYaGhiWEJzWlZ4dUlDb2dZR0JnZEhsd1pYTmpjbWx3ZEZ4dUlDb2dMeThnUTNKbFlYUmxJR0VnYm1WM0lFWmhZbkpwWTBScGMzQmhkR05vSUdsdWMzUmhibU5sWEc0Z0tpQmpiMjV6ZENCamJHbGxiblFnUFNCaGQyRnBkQ0JHWVdKeWFXTkJaR0Z3ZEdWeUxtZGxkRU5zYVdWdWRDaHdaV1Z5UTI5dVptbG5LVHRjYmlBcUlHTnZibk4wSUdScGMzQmhkR05vSUQwZ2JtVjNJRVpoWW5KcFkwUnBjM0JoZEdOb0tHTnNhV1Z1ZENrN1hHNGdLbHh1SUNvZ0x5OGdRMjl1Wm1sbmRYSmxJSFJvWlNCa2FYTndZWFJqYUNCM2FYUm9JSEJsWlhJZ1kyOXVabWxuZFhKaGRHbHZibHh1SUNvZ1pHbHpjR0YwWTJndVkyOXVabWxuZFhKbEtIQmxaWEpEYjI1bWFXY3BPMXh1SUNwY2JpQXFJQzh2SUZKbFoybHpkR1Z5SUdGdUlHOWljMlZ5ZG1WeUlHWnZjaUJoSUhOd1pXTnBabWxqSUhSaFlteGxJR0Z1WkNCbGRtVnVkRnh1SUNvZ1pHbHpjR0YwWTJndWIySnpaWEoyWlNnbmRYTmxjbk1uTENBblkzSmxZWFJsSnl3Z0tHbGtLU0E5UGlCN1hHNGdLaUFnSUdOdmJuTnZiR1V1Ykc5bktHQlZjMlZ5SUdOeVpXRjBaV1E2SUNSN2FXUjlZQ2s3WEc0Z0tpQjlLVHRjYmlBcVhHNGdLaUF2THlCVGRHRnlkQ0JzYVhOMFpXNXBibWNnWm05eUlHVjJaVzUwYzF4dUlDb2dZWGRoYVhRZ1pHbHpjR0YwWTJndWMzUmhjblFvS1R0Y2JpQXFJR0JnWUZ4dUlDb2dRRzFsY20xaGFXUmNiaUFxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNvZ0lDQndZWEowYVdOcGNHRnVkQ0JEYkdsbGJuUmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdSbUZpY21salJHbHpjR0YwWTJoY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1IyRjBaWGRoZVZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCT1pYUjNiM0pyWEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVOb1lXbHVZMjlrWlZ4dUlDcGNiaUFxSUNBZ1EyeHBaVzUwTFQ0K1JtRmljbWxqUkdsemNHRjBZMmc2SUc1bGR5QkdZV0p5YVdORWFYTndZWFJqYUNoamJHbGxiblFwWEc0Z0tpQWdJRU5zYVdWdWRDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQmpiMjVtYVdkMWNtVW9jR1ZsY2tOdmJtWnBaeWxjYmlBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salJHbHpjR0YwWTJnNklHOWljMlZ5ZG1Vb2RHRmliR1VzSUdWMlpXNTBMQ0JqWVd4c1ltRmpheWxjYmlBcUlDQWdRMnhwWlc1MExUNCtSbUZpY21salJHbHpjR0YwWTJnNklITjBZWEowS0NsY2JpQXFJQ0FnUm1GaWNtbGpSR2x6Y0dGMFkyZ3RQajVHWVdKeWFXTkVhWE53WVhSamFEb2dhVzVwZEdsaGJHbDZaU2dwWEc0Z0tpQWdJRVpoWW5KcFkwUnBjM0JoZEdOb0xUNCtSMkYwWlhkaGVUb2daMlYwUjJGMFpYZGhlU2hqYjI1bWFXY3NJR05zYVdWdWRDbGNiaUFxSUNBZ1IyRjBaWGRoZVMwK1BrNWxkSGR2Y21zNklHZGxkRTVsZEhkdmNtc29ZMmhoYm01bGJDbGNiaUFxSUNBZ1RtVjBkMjl5YXkwK1BrNWxkSGR2Y21zNklHZGxkRU5vWVdsdVkyOWtaVVYyWlc1MGN5aGphR0ZwYm1OdlpHVk9ZVzFsS1Z4dUlDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQm9ZVzVrYkdWRmRtVnVkSE1vS1Z4dUlDb2dJQ0JzYjI5d0lFWnZjaUJsWVdOb0lHVjJaVzUwWEc0Z0tpQWdJQ0FnUTJoaGFXNWpiMlJsTFMwK1BrWmhZbkpwWTBScGMzQmhkR05vT2lCRGFHRnBibU52WkdWRmRtVnVkRnh1SUNvZ0lDQWdJRVpoWW5KcFkwUnBjM0JoZEdOb0xUNCtSbUZpY21salJHbHpjR0YwWTJnNklIQmhjbk5sUlhabGJuUk9ZVzFsS0dWMlpXNTBUbUZ0WlNsY2JpQXFJQ0FnSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUJ3WVhKelpWQmhlV3h2WVdRb2NHRjViRzloWkNsY2JpQXFJQ0FnSUNCR1lXSnlhV05FYVhOd1lYUmphQzArUGtaaFluSnBZMFJwYzNCaGRHTm9PaUIxY0dSaGRHVlBZbk5sY25abGNuTW9kR0ZpYkdVc0lHVjJaVzUwTENCcFpDbGNiaUFxSUNBZ0lDQkdZV0p5YVdORWFYTndZWFJqYUMwdFBqNURiR2xsYm5RNklHTmhiR3hpWVdOcktHbGtLVnh1SUNvZ0lDQmxibVJjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaFluSnBZME5zYVdWdWRFUnBjM0JoZEdOb0lHVjRkR1Z1WkhNZ1JHbHpjR0YwWTJnOFJtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNqNGdlMXh1SUNBdktpcGNiaUFnSUNvZ1FHUmxjMk55YVhCMGFXOXVJRVYyWlc1MElHeHBjM1JsYm1sdVp5QnpkR0ZqYXlCbWIzSWdZMmhoYVc1amIyUmxJR1YyWlc1MGMxeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQnNhWE4wWlc1cGJtZFRkR0ZqYXo4NklFTnNiM05sWVdKc1pVRnplVzVqU1hSbGNtRmliR1U4UTJoaGFXNWpiMlJsUlhabGJuUStPMXh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnVkdWNGRDQmtaV052WkdWeUlHWnZjaUJqYjI1MlpYSjBhVzVuSUdWMlpXNTBJSEJoZVd4dllXUnpJR1p5YjIwZ1lubDBaWE1nZEc4Z2MzUnlhVzVuYzF4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCa1pXTnZaR1Z5SUQwZ2JtVjNJRlJsZUhSRVpXTnZaR1Z5S0Z3aWRYUm1PRndpS1R0Y2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFTnlaV0YwWlhNZ1lTQnVaWGNnUm1GaWNtbGpSR2x6Y0dGMFkyZ2dhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FITjFiVzFoY25rZ1NXNXBkR2xoYkdsNlpYTWdZU0JrYVhOd1lYUmphR1Z5SUdadmNpQkdZV0p5YVdNZ1kyaGhhVzVqYjJSbElHVjJaVzUwYzF4dUlDQWdLaUJBY0dGeVlXMGdlME5zYVdWdWRIMGdZMnhwWlc1MElDMGdaMUpRUXlCamJHbGxiblFnWm05eUlHTnZibTVsWTNScGJtY2dkRzhnZEdobElFWmhZbkpwWXlCdVpYUjNiM0pyWEc0Z0lDQXFMMXh1SUNCamIyNXpkSEoxWTNSdmNpaHdjbTkwWldOMFpXUWdZMnhwWlc1ME9pQkRiR2xsYm5RcElIdGNiaUFnSUNCemRYQmxjaWdwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJEYkc5elpYTWdkR2hsSUdWMlpXNTBJR3hwYzNSbGJtbHVaeUJqYjI1dVpXTjBhVzl1WEc0Z0lDQXFJRUJ6ZFcxdFlYSjVJRk4wYjNCeklHeHBjM1JsYm1sdVp5Qm1iM0lnWTJoaGFXNWpiMlJsSUdWMlpXNTBjeUJoYm1RZ2NtVnNaV0Z6WlhNZ2NtVnpiM1Z5WTJWelhHNGdJQ0FxSUVCeVpYUjFjbTRnZTFCeWIyMXBjMlU4ZG05cFpENTlJRkJ5YjIxcGMyVWdkR2hoZENCeVpYTnZiSFpsY3lCM2FHVnVJSFJvWlNCamIyNXVaV04wYVc5dUlHbHpJR05zYjNObFpGeHVJQ0FnS2k5Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ1kyeHZjMlVvWEc0Z0lDQWdMaTR1WTNSNFFYSm5jem9nUTI5dWRHVjRkSFZoYkVGeVozTThRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtYRzRnSUNrNklGQnliMjFwYzJVOGRtOXBaRDRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIaEJjbWR6T2lCc2IyZG5aV1JCY21keklIMGdQU0FvWEc0Z0lDQWdJQ0JoZDJGcGRDQjBhR2x6TG14dlowTjBlQ2hqZEhoQmNtZHpMQ0JRWlhKemFYTjBaVzVqWlV0bGVYTXVVMGhWVkVSUFYwNHNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1amJHOXpaU2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdGM1lXbDBJSE4xY0dWeUxtTnNiM05sS0M0dUxteHZaMmRsWkVGeVozTXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJSFZ1YTI1dmQyNHBJSHRjYmlBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhnUm1GcGJHVmtJSFJ2SUdOc2IzTmxJRVpoWW5KcFl5QndjbTk0YVdWeklHVjJaVzUwSUd4cGMzUmxibVZ5WUN3Z1pTQmhjeUJGY25KdmNpazdYRzRnSUNBZ2ZWeHVJQ0FnSUdsbUlDaDBhR2x6TG14cGMzUmxibWx1WjFOMFlXTnJLU0I3WEc0Z0lDQWdJQ0IwY25rZ2UxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbXhwYzNSbGJtbHVaMU4wWVdOckxtTnNiM05sS0NrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQjFibXR1YjNkdUtTQjdYRzRnSUNBZ0lDQWdJR3h2Wnk1bGNuSnZjaWhnUm1GcGJHVmtJSFJ2SUdOc2IzTmxJRVpoWW5KcFl5QmxkbVZ1ZENCc2FYTjBaVzVsY21Bc0lHVWdZWE1nUlhKeWIzSXBPMXh1SUNBZ0lDQWdmU0JtYVc1aGJHeDVJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXNhWE4wWlc1cGJtZFRkR0ZqYXlBOUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUZCaGNuTmxjeUJsZG1WdWRDQndZWGxzYjJGa0lHWnliMjBnWW1sdVlYSjVJR1p2Y20xaGRGeHVJQ0FnS2lCQWMzVnRiV0Z5ZVNCRGIyNTJaWEowY3lCaElGVnBiblE0UVhKeVlYa2dZMjl1ZEdGcGJtbHVaeUJLVTA5T0lIUnZJR0Z1SUc5aWFtVmpkQ0IzYVhSb0lHRnVJR2xrSUhCeWIzQmxjblI1WEc0Z0lDQXFJRUJ3WVhKaGJTQjdWV2x1ZERoQmNuSmhlWDBnYW5OdmJrSjVkR1Z6SUMwZ1ZHaGxJR0pwYm1GeWVTQndZWGxzYjJGa0lHWnliMjBnZEdobElHTm9ZV2x1WTI5a1pTQmxkbVZ1ZEZ4dUlDQWdLaUJBY21WMGRYSnVJSHQ3SUdsa09pQnpkSEpwYm1jZ2ZYMGdWR2hsSUhCaGNuTmxaQ0J3WVhsc2IyRmtJR052Ym5SaGFXNXBibWNnZEdobElISmxZMjl5WkNCSlJGeHVJQ0FnS2k5Y2JpQWdjSEpwZG1GMFpTQndZWEp6WlZCaGVXeHZZV1FvYW5OdmJrSjVkR1Z6T2lCVmFXNTBPRUZ5Y21GNUtUb2dleUJwWkRvZ2MzUnlhVzVuT3lCeVpYTjFiSFEvT2lCaGJua2dmU0I3WEc0Z0lDQWdZMjl1YzNRZ2FuTnZiaUE5SUhSb2FYTXVaR1ZqYjJSbGNpNWtaV052WkdVb2FuTnZia0o1ZEdWektUdGNiaUFnSUNCeVpYUjFjbTRnU2xOUFRpNXdZWEp6WlNocWMyOXVLVHRjYmlBZ2ZWeHVYRzRnSUM4cUtseHVJQ0FnS2lCQVpHVnpZM0pwY0hScGIyNGdVM1JoY25SeklHOWljMlZ5ZG1sdVp5QmhiaUJoWkdGd2RHVnlYRzRnSUNBcUlFQnpkVzF0WVhKNUlFTnZibTVsWTNSeklIUm9hWE1nWkdsemNHRjBZMmdnZEc4Z1lXNGdZV1JoY0hSbGNpQjBieUJ0YjI1cGRHOXlJR2wwY3lCdmNHVnlZWFJwYjI1elhHNGdJQ0FxSUVCd1lYSmhiU0I3UVdSaGNIUmxjanhoYm5rc0lHRnVlU3dnWVc1NUxDQmhibmsrZlNCdlluTmxjblpsY2lBdElGUm9aU0JoWkdGd2RHVnlJSFJ2SUc5aWMyVnlkbVZjYmlBZ0lDb2dRSEpsZEhWeWJpQjdkbTlwWkgxY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHOWljMlZ5ZG1Vb2IySnpaWEoyWlhJNklFRmtZWEIwWlhJOFlXNTVMQ0JoYm5rc0lHRnVlU3dnWVc1NVBpazZJQ2dwSUQwK0lIWnZhV1FnZTF4dUlDQWdJR2xtSUNnaEtHOWljMlZ5ZG1WeUlHbHVjM1JoYm1ObGIyWWdSbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaWtwWEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnVlc1emRYQndiM0owWldSRmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWENKUGJteDVJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElnWTJGdUlHSmxJRzlpYzJWeWRtVmtJR0o1SUdScGMzQmhkR05vWENKY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnYzNWd1pYSXViMkp6WlhKMlpTaHZZbk5sY25abGNpQmhjeUJHWVdKeWFXTkRiR2xsYm5SQlpHRndkR1Z5S1R0Y2JpQWdJQ0J5WlhSMWNtNGdLQ2tnUFQ0Z2RHaHBjeTUxYms5aWMyVnlkbVVvYjJKelpYSjJaWElwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJWY0dSaGRHVnpJRzlpYzJWeWRtVnljeUJoWW05MWRDQmhJR1JoZEdGaVlYTmxJR1YyWlc1MFhHNGdJQ0FxSUVCemRXMXRZWEo1SUU1dmRHbG1hV1Z6SUc5aWMyVnlkbVZ5Y3lCaFltOTFkQ0JoSUdOb1lXNW5aU0JwYmlCMGFHVWdaR0YwWVdKaGMyVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSaFlteGxJQzBnVkdobElHNWhiV1VnYjJZZ2RHaGxJSFJoWW14bElIZG9aWEpsSUhSb1pTQmphR0Z1WjJVZ2IyTmpkWEp5WldSY2JpQWdJQ29nUUhCaGNtRnRJSHRQY0dWeVlYUnBiMjVMWlhsemZFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjM3h6ZEhKcGJtZDlJR1YyWlc1MElDMGdWR2hsSUhSNWNHVWdiMllnYjNCbGNtRjBhVzl1SUhSb1lYUWdiMk5qZFhKeVpXUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0aGJubDlJSEJoZVd4dllXUWdMU0JVYUdVZ1pYWmxiblFnY0dGNWJHOWhaRnh1SUNBZ0tpQkFjbVYwZFhKdUlIdFFjbTl0YVhObFBIWnZhV1ErZlNCQklIQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlHRnNiQ0J2WW5ObGNuWmxjbk1nYUdGMlpTQmlaV1Z1SUc1dmRHbG1hV1ZrWEc0Z0lDQXFMMXh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUIxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ2JXOWtaV3c2SUVOdmJuTjBjblZqZEc5eVBHRnVlVDRnZkNCemRISnBibWNzWEc0Z0lDQWdaWFpsYm5RNklFOXdaWEpoZEdsdmJrdGxlWE1nZkNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ2FXUTZJRVYyWlc1MFNXUnpMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVOdmJuUmxlSFE4Um1GaWNtbGpRMnhwWlc1MFJteGhaM00rUGx4dUlDQXBPaUJRY205dGFYTmxQSFp2YVdRK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUd4dlp5d2dZM1I0UVhKbmN5QjlJRDBnUVdSaGNIUmxjaTVzYjJkRGRIZzhRMjl1ZEdWNGREeEdZV0p5YVdORGJHbGxiblJHYkdGbmN6NCtLRnh1SUNBZ0lDQWdkR2hwY3k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1zWEc0Z0lDQWdJQ0JsZG1WdWRDeGNiaUFnSUNBZ0lHWmhiSE5sTEZ4dUlDQWdJQ0FnTGk0dVlYSm5jMXh1SUNBZ0lDazdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxtRmtZWEIwWlhJcElIdGNiaUFnSUNBZ0lHeHZaeTUyWlhKaWIzTmxLRnh1SUNBZ0lDQWdJQ0JnVG04Z1lXUmhjSFJsY2lCdlluTmxjblpsWkNCbWIzSWdaR2x6Y0dGMFkyZzdJSE5yYVhCd2FXNW5JRzlpYzJWeWRtVnlJSFZ3WkdGMFpTQm1iM0lnSkh0MGVYQmxiMllnYlc5a1pXd2dQVDA5SUZ3aWMzUnlhVzVuWENJZ1B5QnRiMlJsYkNBNklFMXZaR1ZzTG5SaFlteGxUbUZ0WlNodGIyUmxiQ2w5T2lSN1pYWmxiblI5WUZ4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11WVdSaGNIUmxjaTV5WldaeVpYTm9LRzF2WkdWc0xDQmxkbVZ1ZEN3Z2FXUXNJQzR1TG1OMGVFRnlaM01wTzF4dUlDQWdJSDBnWTJGMFkyZ2dLR1U2SUhWdWEyNXZkMjRwSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLR0JHWVdsc1pXUWdkRzhnY21WbWNtVnphQ0JrYVhOd1lYUmphRG9nSkh0bGZXQXBPMXh1SUNBZ0lIMWNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1VISnZZMlZ6YzJWeklHbHVZMjl0YVc1bklHTm9ZV2x1WTI5a1pTQmxkbVZ1ZEhOY2JpQWdJQ29nUUhOMWJXMWhjbmtnVEdsemRHVnVjeUJtYjNJZ1pYWmxiblJ6SUdaeWIyMGdkR2hsSUdOb1lXbHVZMjlrWlNCaGJtUWdaR2x6Y0dGMFkyaGxjeUIwYUdWdElIUnZJSEpsWjJsemRHVnlaV1FnYjJKelpYSjJaWEp6WEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThkbTlwWkQ1OUlGQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlHVjJaVzUwSUdoaGJtUnNhVzVuSUhOMGIzQnpYRzRnSUNBcUlFQnRaWEp0WVdsa1hHNGdJQ0FxSUhObGNYVmxibU5sUkdsaFozSmhiVnh1SUNBZ0tpQWdJSEJoY25ScFkybHdZVzUwSUVaaFluSnBZMFJwYzNCaGRHTm9YRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnUlhabGJuUlRkR0ZqYTF4dUlDQWdLaUFnSUhCaGNuUnBZMmx3WVc1MElFVjJaVzUwVUdGeWMyVnlYRzRnSUNBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVDJKelpYSjJaWEp6WEc0Z0lDQXFYRzRnSUNBcUlDQWdSbUZpY21salJHbHpjR0YwWTJndFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2FHRnVaR3hsUlhabGJuUnpLQ2xjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1YyWlc1MFUzUmhZMnM2SUdadmNpQmhkMkZwZENBb1kyOXVjM1FnWlhaMElHOW1JR3hwYzNSbGJtbHVaMU4wWVdOcktWeHVJQ0FnS2lBZ0lFVjJaVzUwVTNSaFkyc3RMVDQrUm1GaWNtbGpSR2x6Y0dGMFkyZzZJRU5vWVdsdVkyOWtaVVYyWlc1MFhHNGdJQ0FxSUNBZ1JtRmljbWxqUkdsemNHRjBZMmd0UGo1RmRtVnVkRkJoY25ObGNqb2djR0Z5YzJWRmRtVnVkRTVoYldVb1pYWjBMbVYyWlc1MFRtRnRaU2xjYmlBZ0lDb2dJQ0JGZG1WdWRGQmhjbk5sY2kwdFBqNUdZV0p5YVdORWFYTndZWFJqYURvZ2V5QjBZV0pzWlN3Z1pYWmxiblFzSUc5M2JtVnlJSDFjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQkRhR1ZqYXlCcFppQmxkbVZ1ZENCcGN5Qm1iM0lnZEdocGN5Qk5VMUJjYmlBZ0lDb2dJQ0JHWVdKeWFXTkVhWE53WVhSamFDMCtQa1poWW5KcFkwUnBjM0JoZEdOb09pQndZWEp6WlZCaGVXeHZZV1FvWlhaMExuQmhlV3h2WVdRcFhHNGdJQ0FxSUNBZ1JtRmljbWxqUkdsemNHRjBZMmd0UGo1UFluTmxjblpsY25NNklIVndaR0YwWlU5aWMyVnlkbVZ5Y3loMFlXSnNaU3dnWlhabGJuUXNJSEJoZVd4dllXUXVhV1FwWEc0Z0lDQXFJQ0FnVDJKelpYSjJaWEp6TFMwK1BrWmhZbkpwWTBScGMzQmhkR05vT2lCRFlXeHNZbUZqYTNNZ1pYaGxZM1YwWldSY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQmhjM2x1WXlCb1lXNWtiR1ZGZG1WdWRITW9YRzRnSUNBZ1kzUjRRWEpuUHpvZ1EyOXVkR1Y0ZER4R1lXSnlhV05EYkdsbGJuUkdiR0ZuY3o1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ2FXWWdLQ0YwYUdsekxteHBjM1JsYm1sdVoxTjBZV05yS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJR0JGZG1WdWRDQnpkR0ZqYXlCdWIzUWdhVzVwZEdsaGJHbDZaV1F1SUVWdWMzVnlaU0IwYUdGMElGd2ljM1JoY25STWFYTjBaVzVwYm1kY0lpQnBjeUJqWVd4c1pXUWdZbVZtYjNKbElHRjBkR1Z0Y0hScGJtY2dkR2hwY3lCdmNHVnlZWFJwYjI0dVlGeHVJQ0FnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NWhaR0Z3ZEdWeUlIeDhJQ0YwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuS1Z4dUlDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9ZRTV2SUdGa1lYQjBaWElnWm05MWJtUXVJSE5vYjNWc1pDQmlaU0JwYlhCdmMzTnBZbXhsWUNrN1hHNWNiaUFnSUNCamIyNXpkQ0JqZEhnZ1BWeHVJQ0FnSUNBZ1kzUjRRWEpuSUh4OFhHNGdJQ0FnSUNBb1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxtTnZiblJsZUhRb1hHNGdJQ0FnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11VWtWQlJDeGNiaUFnSUNBZ0lDQWdlMXh1SUNBZ0lDQWdJQ0FnSUdOdmNuSmxiR0YwYVc5dVNXUTZJSFJvYVhNdVlXUmhjSFJsY2k1amIyNW1hV2N1WTJoaGFXNWpiMlJsVG1GdFpTeGNiaUFnSUNBZ0lDQWdmU3hjYmlBZ0lDQWdJQ0FnS0hSb2FYTXViVzlrWld4eklDWW1JSFJvYVhNdWJXOWtaV3h6V3pCZEtTQjhmQ0FvVFc5a1pXd2dZWE1nZFc1cmJtOTNiaUJoY3lCRGIyNXpkSEoxWTNSdmNpbGNiaUFnSUNBZ0lDa3BPMXh1SUNBZ0lHTnZibk4wSUd4dlp5QTlJSFJvYVhNdWJHOW5MbVp2Y2loMGFHbHpMbWhoYm1Sc1pVVjJaVzUwY3lrN1hHNWNiaUFnSUNCc2IyY3VhVzVtYnloY2JpQWdJQ0FnSUdCTWFYTjBaVzVwYm1jZ1ptOXlJR2x1WTI5dGFXNW5JR1YyWlc1MGN5QnZiaUJqYUdGcGJtTnZaR1VnWENJa2UzUm9hWE11WVdSaGNIUmxjaTVqYjI1bWFXY3VZMmhoYVc1amIyUmxUbUZ0WlgxY0lpQnZiaUJqYUdGdWJtVnNJRndpSkh0MGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sbkxtTm9ZVzV1Wld4OVhDSXVMaTVnWEc0Z0lDQWdLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCbWIzSWdZWGRoYVhRZ0tHTnZibk4wSUdWMmRDQnZaaUIwYUdsekxteHBjM1JsYm1sdVoxTjBZV05yS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhzZ2RHRmliR1VzSUdWMlpXNTBMQ0J2ZDI1bGNpQjlJRDBnY0dGeWMyVkZkbVZ1ZEU1aGJXVW9aWFowTG1WMlpXNTBUbUZ0WlNrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2hjYmlBZ0lDQWdJQ0FnSUNCMGFHbHpMbUZrWVhCMFpYSXVZMjl1Wm1sblB5NXRjM0JGZG1WdWRFOXViSGtnSmlaY2JpQWdJQ0FnSUNBZ0lDQnZkMjVsY2lBbUpseHVJQ0FnSUNBZ0lDQWdJRzkzYm1WeUlDRTlQU0IwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuUHk1dGMzQkpaRnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FnSUNBZ1kyOXVkR2x1ZFdVN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhCaGVXeHZZV1E2SUhzZ2FXUTZJSE4wY21sdVp6c2djbVZ6ZFd4MFB6b2dZVzU1SUgwZ1BTQjBhR2x6TG5CaGNuTmxVR0Y1Ykc5aFpDaGNiaUFnSUNBZ0lDQWdJQ0JsZG5RdWNHRjViRzloWkZ4dUlDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhSaGNtZGxkRTF2WkdWc0lEMGdkR0ZpYkdWY2JpQWdJQ0FnSUNBZ0lDQWdJRDhnVFc5a1pXd3VaMlYwS0hSaFlteGxLVnh1SUNBZ0lDQWdJQ0FnSUNBZ09pQk5iMlJsYkM1blpYUW9kR2hwY3k1dGIyUmxiSE5iTUYwdWJtRnRaU2s3WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnYlc5a1pXeFNaV1lnUFNCMFlYSm5aWFJOYjJSbGJDQS9QeUFvZEdGaWJHVWdmSHdnZEdocGN5NXRiMlJsYkhOYk1GMC9MbTVoYldVcE8xeHVJQ0FnSUNBZ0lDQWdJR052Ym5OMElHOWljMlZ5ZG1WeVFYSm5jeUE5SUhCaGVXeHZZV1F1Y21WemRXeDBJRDhnVzNCaGVXeHZZV1F1Y21WemRXeDBMQ0JqZEhoZElEb2dXMk4wZUYwN1hHNGdJQ0FnSUNBZ0lDQWdZWGRoYVhRZ2RHaHBjeTUxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ0lDQWdJQ0FnSUNCdGIyUmxiRkpsWmlCaGN5QkRiMjV6ZEhKMVkzUnZjaUI4SUhOMGNtbHVaeXhjYmlBZ0lDQWdJQ0FnSUNBZ0lHVjJaVzUwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdjR0Y1Ykc5aFpDNXBaQ0JoY3lCemRISnBibWNzWEc0Z0lDQWdJQ0FnSUNBZ0lDQXVMaTRvYjJKelpYSjJaWEpCY21keklHRnpJRU52Ym5SbGVIUjFZV3hCY21kelBHRnVlVDRwWEc0Z0lDQWdJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNBZ0lHeHZaeTVsY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0FnSUdCR1lXbHNaV1FnZFhCa1lYUmxJRzlpYzJWeWRtRmliR1Z6SUdadmNpQjBZV0pzWlNBa2UzUmhZbXhsZlNCbGRtVnVkQ0FrZTJWMlpXNTBmU0JwWkRvZ0pIdHdZWGxzYjJGa0xtbGtmVG9nSkh0bGZXQmNiaUFnSUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNCOVhHNGdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0JzYjJjdVpYSnliM0lvWEc0Z0lDQWdJQ0FnSUdCR1lXbHNaV1FnZEc4Z2NtVmhaQ0JsZG1WdWRDQm1iM0lnWTJoaGFXNWpiMlJsSUZ3aUpIdDBhR2x6TG1Ga1lYQjBaWEl1WTI5dVptbG5MbU5vWVdsdVkyOWtaVTVoYldWOVhDSWdiMjRnWTJoaGJtNWxiQ0JjSWlSN2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0Z1Ym1Wc2ZWd2lPaUFrZTJWOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVZMnh2YzJVb1kzUjRLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlFbHVhWFJwWVd4cGVtVnpJSFJvWlNCbGRtVnVkQ0JzYVhOMFpXNWxjbHh1SUNBZ0tpQkFjM1Z0YldGeWVTQlRaWFJ6SUhWd0lHVjJaVzUwSUdScGMzQmhkR05vYVc1bklHWnZjaUIwYUdVZ2IySnpaWEoyWldRZ1lXUmhjSFJsY2k0Z1YyaGxibHh1SUNBZ0tpQmdjM2x1ZEdobGRHbGpSWFpsYm5SellDQnBjeUIwY25WbElDaDBhR1VnWkdWbVlYVnNkQ2tnYm04Z1oyRjBaWGRoZVNCamIyNXVaV04wYVc5dUlHbHpJRzl3Wlc1bFpEdGNiaUFnSUNvZ2FXNXpkR1ZoWkNCbGRtVnllU0JEVWxWRUlHOXdaWEpoZEdsdmJpQnBjeUIzY21Gd2NHVmtJSGRwZEdnZ1lTQlFjbTk0ZVNCMGFHRjBJR1pwY21WelhHNGdJQ0FxSUdCMWNHUmhkR1ZQWW5ObGNuWmxjbk5nSUdadmNpQXFLbUZzYkNvcUlHMXZaR1ZzY3k0Z1YyaGxiaUJnYzNsdWRHaGxkR2xqUlhabGJuUnpZQ0JwY3lCbVlXeHpaU0IwYUdWY2JpQWdJQ29nWlhocGMzUnBibWNnWjJGMFpYZGhlUzFpWVhObFpDQmphR0ZwYm1OdlpHVXRaWFpsYm5RZ2MzVmljMk55YVhCMGFXOXVJR2x6SUdWemRHRmliR2x6YUdWa0lHRnVaQ0IwYUdWY2JpQWdJQ29nYkc5allXd2dVSEp2ZUhrZ1ptRnNiR0poWTJzZ2FYTWdiR2x0YVhSbFpDQjBieUJtZFd4c2VTMXpaV2R5WldkaGRHVmtJQ2gwY21GdWMybGxiblFwSUcxdlpHVnNjeUJ2Ym14NUxseHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JRY205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QyaGxiaUJwYm1sMGFXRnNhWHBoZEdsdmJpQnBjeUJqYjIxd2JHVjBaVnh1SUNBZ0tpOWNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUdGemVXNWpJR2x1YVhScFlXeHBlbVVvS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbUZrWVhCMFpYSXBYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1RtOGdZV1JoY0hSbGNpQnZjaUJqYjI1bWFXY2diMkp6WlhKMlpXUWdabTl5SUdScGMzQmhkR05vWUNrN1hHNWNiaUFnSUNCamIyNXpkQ0J6ZVc1MGFHVjBhV05GZG1WdWRITWdQU0IwYUdsekxtRmtZWEIwWlhJdVkyOXVabWxuTG5ONWJuUm9aWFJwWTBWMlpXNTBjeUFoUFQwZ1ptRnNjMlU3WEc1Y2JpQWdJQ0JwWmlBb0lYTjViblJvWlhScFkwVjJaVzUwY3lrZ2UxeHVJQ0FnSUNBZ0x5OGdSMkYwWlhkaGVTMWlZWE5sWkNCamFHRnBibU52WkdVdFpYWmxiblFnYzNWaWMyTnlhWEIwYVc5dUlDaHViMjR0YzNsdWRHaGxkR2xqSUhCaGRHZ3BYRzRnSUNBZ0lDQmpiMjV6ZENCamIyNTBaWGgwSUQwZ1lYZGhhWFFnZEdocGN5NWhaR0Z3ZEdWeUxtTnZiblJsZUhRb1hHNGdJQ0FnSUNBZ0lGd2laR2x6Y0dGMFkyaGNJaXhjYmlBZ0lDQWdJQ0FnZTF4dUlDQWdJQ0FnSUNBZ0lHTnZjbkpsYkdGMGFXOXVTV1E2SUhSb2FYTXVZV1JoY0hSbGNpNWpiMjVtYVdjdVkyaGhhVzVqYjJSbFRtRnRaU3hjYmlBZ0lDQWdJQ0FnZlN4Y2JpQWdJQ0FnSUNBZ1RXOWtaV3dnWVhNZ1lXNTVYRzRnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdZMjl1YzNRZ2V5QmpkSGdnZlNBOUlIUm9hWE11Ykc5blEzUjRLRnRqYjI1MFpYaDBYU3dnZEdocGN5NXBibWwwYVdGc2FYcGxLVHRjYmlBZ0lDQWdJR052Ym5OMElHZGhkR1YzWVhrZ1BTQmhkMkZwZENCR1lXSnlhV05EYkdsbGJuUkJaR0Z3ZEdWeUxtZGxkRWRoZEdWM1lYa29YRzRnSUNBZ0lDQWdJR04wZUN4Y2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5QmhjeUJRWldWeVEyOXVabWxuTEZ4dUlDQWdJQ0FnSUNCMGFHbHpMbU5zYVdWdWRGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lHTnZibk4wSUc1bGRIZHZjbXNnUFNCbllYUmxkMkY1TG1kbGRFNWxkSGR2Y21zb2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0Z1Ym1Wc0tUdGNiaUFnSUNBZ0lHbG1JQ2doZEdocGN5NWhaR0Z3ZEdWeUtWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loZ1RtOGdZV1JoY0hSbGNpQnZZbk5sY25abFpDQm1iM0lnWkdsemNHRjBZMmhnS1R0Y2JpQWdJQ0FnSUhSb2FYTXViR2x6ZEdWdWFXNW5VM1JoWTJzZ1BTQmhkMkZwZENCdVpYUjNiM0pyTG1kbGRFTm9ZV2x1WTI5a1pVVjJaVzUwY3loY2JpQWdJQ0FnSUNBZ2RHaHBjeTVoWkdGd2RHVnlMbU52Ym1acFp5NWphR0ZwYm1OdlpHVk9ZVzFsWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJQ0FnZEdocGN5NW9ZVzVrYkdWRmRtVnVkSE1vWTNSNEtUdGNiaUFnSUNCOVhHNWNiaUFnSUNBdkx5QlFjbTk0ZVNCRFVsVkVJRzFsZEdodlpITXVYRzRnSUNBZ0x5OGc0b0NpSUhONWJuUm9aWFJwWTBWMlpXNTBjeUE5SUhSeWRXVWdJT0tHa2lCdWIzUnBabmtnWm05eUlFRk1UQ0J0YjJSbGJITWdLSEpsY0d4aFkyVnpJR2RoZEdWM1lYa2daWFpsYm5SeklHVnVkR2x5Wld4NUtWeHVJQ0FnSUM4dklPS0FvaUJ6ZVc1MGFHVjBhV05GZG1WdWRITWdQU0JtWVd4elpTRGlocElnYm05MGFXWjVJRzl1YkhrZ1ptOXlJR1oxYkd4NUxYTmxaM0psWjJGMFpXUWdLSFJ5WVc1emFXVnVkQ2tnYlc5a1pXeHpYRzRnSUNBZ0x5OGdJQ0FvZEdobElHZGhkR1YzWVhrZ2MzVmljMk55YVhCMGFXOXVJR2hoYm1Sc1pYTWdjSFZpYkdsaklHMXZaR1ZzY3lsY2JpQWdJQ0FvWEc0Z0lDQWdJQ0JiWEc0Z0lDQWdJQ0FnSUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRkxGeHVJQ0FnSUNBZ0lDQlBjR1Z5WVhScGIyNUxaWGx6TGxWUVJFRlVSU3hjYmlBZ0lDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NUVSVXhGVkVVc1hHNGdJQ0FnSUNBZ0lFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeTVEVWtWQlZFVmZRVXhNTEZ4dUlDQWdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRlgwRk1UQ3hjYmlBZ0lDQWdJQ0FnUW5Wc2EwTnlkV1JQY0dWeVlYUnBiMjVMWlhsekxrUkZURVZVUlY5QlRFd3NYRzRnSUNBZ0lDQmRJR0Z6SUNoclpYbHZaaUJCWkdGd2RHVnlQR0Z1ZVN3Z1lXNTVMQ0JoYm5rc0lHRnVlVDRwVzExY2JpQWdJQ0FwTG1admNrVmhZMmdvS0hSdlYzSmhjQ2tnUFQ0Z2UxeHVJQ0FnSUNBZ2FXWWdLQ0YwYUdsekxtRmtZWEIwWlhJcFhHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkpiblJsY201aGJFVnljbTl5S0Z4dUlDQWdJQ0FnSUNBZ0lHQk9ieUJoWkdGd2RHVnlJSEJ5YjNacFpHVmtJR1p2Y2lCMGFHVWdabUZzYkdKaFkyc2diMllnWm5Wc2JIa2djMlZuY21WbllYUmxaQ0J0YjJSbGJITmdYRzRnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0JwWmlBb0lYUm9hWE11WVdSaGNIUmxjbHQwYjFkeVlYQmRLVnh1SUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0JnVFdWMGFHOWtJQ1I3ZEc5WGNtRndmU0J1YjNRZ1ptOTFibVFnYVc0Z0pIdDBhR2x6TG1Ga1lYQjBaWEl1WVd4cFlYTjlJR0ZrWVhCMFpYSWdkRzhnWW1sdVpDQlBZbk5sY25aaFlteGxjeUJFYVhOd1lYUmphR0JjYmlBZ0lDQWdJQ0FnS1R0Y2JseHVJQ0FnSUNBZ2JHVjBJR1JsYzJOeWFYQjBiM0lnUFNCUFltcGxZM1F1WjJWMFQzZHVVSEp2Y0dWeWRIbEVaWE5qY21sd2RHOXlLSFJvYVhNdVlXUmhjSFJsY2l3Z2RHOVhjbUZ3S1R0Y2JpQWdJQ0FnSUd4bGRDQndjbTkwYnpvZ1lXNTVJRDBnZEdocGN5NWhaR0Z3ZEdWeU8xeHVJQ0FnSUNBZ2QyaHBiR1VnS0NGa1pYTmpjbWx3ZEc5eUlDWW1JSEJ5YjNSdklDRTlQU0JQWW1wbFkzUXVjSEp2ZEc5MGVYQmxLU0I3WEc0Z0lDQWdJQ0FnSUhCeWIzUnZJRDBnVDJKcVpXTjBMbWRsZEZCeWIzUnZkSGx3WlU5bUtIQnliM1J2S1R0Y2JpQWdJQ0FnSUNBZ1pHVnpZM0pwY0hSdmNpQTlJRTlpYW1WamRDNW5aWFJQZDI1UWNtOXdaWEowZVVSbGMyTnlhWEIwYjNJb2NISnZkRzhzSUhSdlYzSmhjQ2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUdsbUlDZ2haR1Z6WTNKcGNIUnZjaUI4ZkNBaFpHVnpZM0pwY0hSdmNpNTNjbWwwWVdKc1pTa2dlMXh1SUNBZ0lDQWdJQ0IwYUdsekxteHZaeTVsY25KdmNpaGNiaUFnSUNBZ0lDQWdJQ0JnUTI5MWJHUWdibTkwSUdacGJtUWdiV1YwYUc5a0lDUjdkRzlYY21Gd2ZTQjBieUJpYVc1a0lFOWljMlZ5ZG1GaWJHVnpJRVJwYzNCaGRHTm9ZRnh1SUNBZ0lDQWdJQ0FwTzF4dUlDQWdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0JtZFc1amRHbHZiaUJpZFd4clZHOVRhVzVuYkdVb2JXVjBhRzlrT2lCemRISnBibWNwSUh0Y2JpQWdJQ0FnSUNBZ2MzZHBkR05vSUNodFpYUm9iMlFwSUh0Y2JpQWdJQ0FnSUNBZ0lDQmpZWE5sSUVKMWJHdERjblZrVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVWZlFVeE1PbHh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRk8xeHVJQ0FnSUNBZ0lDQWdJR05oYzJVZ1FuVnNhME55ZFdSUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJWOUJURXc2WEc0Z0lDQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z1QzQmxjbUYwYVc5dVMyVjVjeTVWVUVSQlZFVTdYRzRnSUNBZ0lDQWdJQ0FnWTJGelpTQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE11UkVWTVJWUkZYMEZNVERwY2JpQWdJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQlBjR1Z5WVhScGIyNUxaWGx6TGtSRlRFVlVSVHRjYmlBZ0lDQWdJQ0FnSUNCa1pXWmhkV3gwT2x4dUlDQWdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlHMWxkR2h2WkR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZWeHVYRzRnSUNBZ0lDQXZMeUJBZEhNdFpYaHdaV04wTFdWeWNtOXlJR0psWTJGMWMyVWdkR2hsY21VZ1lYSmxJSEpsWVdRZ2IyNXNlU0J3Y205d1pYSjBhV1Z6WEc0Z0lDQWdJQ0IwYUdsekxtRmtZWEIwWlhKYmRHOVhjbUZ3WFNBOUlHNWxkeUJRY205NGVTaDBhR2x6TG1Ga1lYQjBaWEpiZEc5WGNtRndYU3dnZTF4dUlDQWdJQ0FnSUNCaGNIQnNlVG9nWVhONWJtTWdLRnh1SUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRG9nWVc1NUxGeHVJQ0FnSUNBZ0lDQWdJSFJvYVhOQmNtYzZJRVpoWW5KcFkwTnNhV1Z1ZEVGa1lYQjBaWElzWEc0Z0lDQWdJQ0FnSUNBZ1lYSm5RWEp5WVhrNklHRnVlVnRkWEc0Z0lDQWdJQ0FnSUNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUM4dklGSjFiaUIwYUdVZ2IzSnBaMmx1WVd3Z2JXVjBhRzlrSUhWdVkyaGhibWRsWkNCemJ5QjBjbUZ1YzJsbGJuUWdaR0YwWVNCcGN5QndjbVZ6WlhKMlpXUmNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMFlYSm5aWFF1WVhCd2JIa29kR2hwYzBGeVp5d2dZWEpuUVhKeVlYa3BPMXh1WEc0Z0lDQWdJQ0FnSUNBZ1kyOXVjM1FnWTJ4aGVubzZJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNGdQU0JoY21kQmNuSmhlVnN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQXZMeUJYYUdWdUlITjViblJvWlhScFkwVjJaVzUwY3lCcGN5Qm1ZV3h6WlN3Z2NIVmliR2xqSUcxdlpHVnNjeUJsYldsMElHRWdZMmhoYVc1amIyUmxJR1YyWlc1MFhHNGdJQ0FnSUNBZ0lDQWdMeThnYjI0Z2RHaGxJR052Ym5SeVlXTjBJSE5wWkdVN0lITnJhWEFnZEdobElHeHZZMkZzSUdaaGJHeGlZV05ySUhSdklHRjJiMmxrWEc0Z0lDQWdJQ0FnSUNBZ0x5OGdaRzkxWW14bExXNXZkR2xtYVdOaGRHbHZiaTRnVjJobGJpQnplVzUwYUdWMGFXTkZkbVZ1ZEhNZ2FYTWdkSEoxWlNCM1pTQm9ZVzVrYkdVZ1lXeHNJRzF2WkdWc2N5NWNiaUFnSUNBZ0lDQWdJQ0JwWmlBb0lYTjViblJvWlhScFkwVjJaVzUwY3lBbUppQWhUVzlrWld3dWFYTlVjbUZ1YzJsbGJuUW9ZMnhoZW5vcEtTQnlaWFIxY200Z2NtVnpkV3gwTzF4dVhHNGdJQ0FnSUNBZ0lDQWdMeThnUTI5dWRHVjRkQ0JwY3lCaGJIZGhlWE1nZEdobElHeGhjM1FnWld4bGJXVnVkQ0J2WmlCaGNtZEJjbkpoZVZ4dUlDQWdJQ0FnSUNBZ0lHTnZibk4wSUhzZ2JHOW5MQ0JqZEhoQmNtZHpMQ0JqZEhnZ2ZTQTlJSFJvYVhOQmNtZGJYQ0pzYjJkRGRIaGNJbDBvWEc0Z0lDQWdJQ0FnSUNBZ0lDQmhjbWRCY25KaGVTNXpiR2xqWlNoaGNtZEJjbkpoZVM1c1pXNW5kR2dnTFNBeEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUhSaGNtZGxkRnh1SUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2FXUnpJRDBnWVhKblFYSnlZWGxiTVYwN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwUVhKbmN6b2dZVzU1VzEwZ1BTQmJZMnhoZW5vc0lHSjFiR3RVYjFOcGJtZHNaU2gwYjFkeVlYQXBMQ0JwWkhOZE8xeHVYRzRnSUNBZ0lDQWdJQ0FnYVdZZ0tHTjBlQzVuWlhSUGNsVnVaR1ZtYVc1bFpDaGNJbTlpYzJWeWRtVkdkV3hzVW1WemRXeDBYQ0lwS1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0J5WlhOMWJIUkJjbWR6TG5CMWMyZ29jbVZ6ZFd4MEtUdGNiaUFnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVlBZbk5sY25abGNuTW9YRzRnSUNBZ0lDQWdJQ0FnSUNBdUxpNG9jbVZ6ZFd4MFFYSm5jeUJoY3lCUVlYSmhiV1YwWlhKelBIUjVjR1Z2WmlCMGFHbHpMblZ3WkdGMFpVOWljMlZ5ZG1WeWN6NHBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0xpNHVZM1I0UVhKbmMxeHVJQ0FnSUNBZ0lDQWdJQ2t1WTJGMFkyZ29LR1U2SUhWdWEyNXZkMjRwSUQwK1hHNGdJQ0FnSUNBZ0lDQWdJQ0JzYjJjdVpYSnliM0lvWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR0JHWVdsc1pXUWdkRzhnWkdsemNHRjBZMmdnYjJKelpYSjJaWElnY21WbWNtVnphQ0JtYjNJZ0pIdDBiMWR5WVhCOUlHOXVJQ1I3WTJ4aGVub3VibUZ0WlNCOGZDQmpiR0Y2ZW4wZ1ptOXlJQ1I3YVdSemZUb2dKSHRsZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJQ0FnSUNBZ0lIMHNYRzRnSUNBZ0lDQjlLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZWeHVmVnh1WEc1cFppQW9SbUZpY21salEyeHBaVzUwUVdSaGNIUmxjaWxjYmlBZ1JtRmljbWxqUTJ4cFpXNTBRV1JoY0hSbGNsdGNJbDlpWVhObFJHbHpjR0YwWTJoY0lsMGdQU0JHWVdKeWFXTkRiR2xsYm5SRWFYTndZWFJqYUR0Y2JpSmRmUT09Il19
|
|
290
|
+
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
291
|
+
//# sourceMappingURL=FabricClientDispatch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricClientDispatch.js","sourceRoot":"","sources":["FabricClientDispatch.js"],"names":[],"mappings":"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"}
|
|
@@ -18,5 +18,5 @@ class FabricClientPaginator extends core_1.Paginator {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.FabricClientPaginator = FabricClientPaginator;
|
|
21
|
-
//# sourceMappingURL=
|
|
22
|
-
//# sourceMappingURL=
|
|
21
|
+
//# sourceMappingURL=FabricClientPaginator.js.map
|
|
22
|
+
//# sourceMappingURL=FabricClientPaginator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricClientPaginator.js","sourceRoot":"","sources":["FabricClientPaginator.js"],"names":[],"mappings":";;;AAAA,yCAA8D;AAC9D,MAAa,qBAAsB,SAAQ,gBAAS;IAChD,YAAY,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;QACnC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,6DAA6D;IAC7D,OAAO,CAAC,YAAY;QAChB,MAAM,IAAI,uBAAgB,CAAC,qGAAqG,CAAC,CAAC;IACtI,CAAC;IACD,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI;QAClB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,6CAA6C;IACnF,CAAC;IACD,MAAM,CAAC,gBAAgB,CAAC,GAAG;QACvB,OAAO,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;CACJ;AAdD,sDAcC;AACD,iDAAiD"}
|