@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
|
@@ -335,5 +335,5 @@ class FabricContractSequence extends core_1.Sequence {
|
|
|
335
335
|
}
|
|
336
336
|
}
|
|
337
337
|
exports.FabricContractSequence = FabricContractSequence;
|
|
338
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTZXF1ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb250cmFjdHMvRmFicmljQ29udHJhY3RTZXF1ZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixhQUFhLEdBQ2QsTUFBTSx5QkFBeUIsQ0FBQztBQUNqQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUlMLFFBQVEsRUFDUixhQUFhLEVBRWIsTUFBTSxFQUNOLGdCQUFnQixHQUNqQixNQUFNLGdCQUFnQixDQUFDO0FBR3hCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNkNHO0FBQ0gsTUFBTSxPQUFPLHNCQUF1QixTQUFRLFFBQVE7SUFDbEQ7OztPQUdHO0lBQ0gsWUFBWSxPQUF3QixFQUFFLE9BQStCO1FBQ25FLEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ00sS0FBSyxDQUFDLE9BQU8sQ0FDcEIsR0FBRyxJQUE2QjtRQUVoQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQ25CLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FDbEQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BCLElBQUksYUFBa0IsQ0FBQztRQUN2QixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUksR0FBNkIsQ0FBQyxzQkFBc0IsQ0FDdkUsTUFBTSxDQUFD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Q2hGLDhGQUE4RjtRQUM5RixNQUFNLFdBQVcsR0FBSSxHQUE2QixDQUFDLHNCQUFzQixDQUN2RSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUNmLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUVELDBGQUEwRjtRQUMxRixJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ2xFLEdBQUcsQ0FBQyxJQUFJLENBQ04sd0JBQXdCLEdBQUcsQ0FBQyxFQUFFLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLDRCQUE0QixXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUNwSSxDQUFDO1FBRUYsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0UsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSW50ZXJuYWxFcnJvcixcbiAgTm90Rm91bmRFcnJvcixcbiAgT3BlcmF0aW9uS2V5cyxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7XG4gIEFkYXB0ZXIsXG4gIENvbnRleHQsXG4gIE1heWJlQ29udGV4dHVhbEFyZyxcbiAgU2VxdWVuY2UsXG4gIFNlcXVlbmNlTW9kZWwsXG4gIFNlcXVlbmNlT3B0aW9ucyxcbiAgU2VyaWFsLFxuICBVbnN1cHBvcnRlZEVycm9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHR5cGUgeyBGYWJyaWNDb250cmFjdEFkYXB0ZXIgfSBmcm9tIFwiLi9Db250cmFjdEFkYXB0ZXJcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBYnN0cmFjdCBiYXNlIGNsYXNzIGZvciBzZXF1ZW5jZSBnZW5lcmF0aW9uXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBhIGZyYW1ld29yayBmb3IgZ2VuZXJhdGluZyBzZXF1ZW50aWFsIHZhbHVlcyAobGlrZSBwcmltYXJ5IGtleXMpIGluIHRoZSBwZXJzaXN0ZW5jZSBsYXllci5cbiAqIEltcGxlbWVudGF0aW9ucyBvZiB0aGlzIGNsYXNzIGhhbmRsZSB0aGUgc3BlY2lmaWNzIG9mIGhvdyBzZXF1ZW5jZXMgYXJlIHN0b3JlZCBhbmQgaW5jcmVtZW50ZWQgaW4gZGlmZmVyZW50XG4gKiBkYXRhYmFzZSBzeXN0ZW1zLlxuICogQHBhcmFtIHtTZXF1ZW5jZU9wdGlvbnN9IG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBzZXF1ZW5jZSBnZW5lcmF0b3JcbiAqIEBjbGFzcyBTZXF1ZW5jZVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gZm9yIGEgc3BlY2lmaWMgZGF0YWJhc2VcbiAqIGNsYXNzIFBvc3RncmVzU2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gKiAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFNlcXVlbmNlT3B0aW9ucykge1xuICogICAgIHN1cGVyKG9wdGlvbnMpO1xuICogICB9XG4gKlxuICogICBhc3luYyBuZXh0KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IG5leHQgdmFsdWUgZnJvbSBQb3N0Z3JlU1FMIHNlcXVlbmNlXG4gKiAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLmV4ZWN1dG9yLnJhdyhgU0VMRUNUIG5leHR2YWwoJyR7dGhpcy5vcHRpb25zLm5hbWV9JylgKTtcbiAqICAgICByZXR1cm4gcGFyc2VJbnQocmVzdWx0LnJvd3NbMF0ubmV4dHZhbCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIGN1cnJlbnQoKTogUHJvbWlzZTxudW1iZXI+IHtcbiAqICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgY3VycmVudCB2YWx1ZSBmcm9tIFBvc3RncmVTUUwgc2VxdWVuY2VcbiAqICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLm9wdGlvbnMuZXhlY3V0b3IucmF3KGBTRUxFQ1QgY3VycnZhbCgnJHt0aGlzLm9wdGlvbnMubmFtZX0nKWApO1xuICogICAgIHJldHVybiBwYXJzZUludChyZXN1bHQucm93c1swXS5jdXJydmFsKTtcbiAqICAgfVxuICpcbiAqICAgYXN5bmMgcmFuZ2UoY291bnQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyW10+IHtcbiAqICAgICAvLyBJbXBsZW1lbnRhdGlvbiB0byBnZXQgYSByYW5nZSBvZiB2YWx1ZXNcbiAqICAgICBjb25zdCB2YWx1ZXM6IG51bWJlcltdID0gW107XG4gKiAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb3VudDsgaSsrKSB7XG4gKiAgICAgICB2YWx1ZXMucHVzaChhd2FpdCB0aGlzLm5leHQoKSk7XG4gKiAgICAgfVxuICogICAgIHJldHVybiB2YWx1ZXM7XG4gKiAgIH1cbiAqIH1cbiAqXG4gKiAvLyBVc2FnZVxuICogY29uc3Qgc2VxdWVuY2UgPSBuZXcgUG9zdGdyZXNTZXF1ZW5jZSh7XG4gKiAgIG5hbWU6ICd1c2VyX2lkX3NlcScsXG4gKiAgIGV4ZWN1dG9yOiBkYkV4ZWN1dG9yXG4gKiB9KTtcbiAqXG4gKiBjb25zdCBuZXh0SWQgPSBhd2FpdCBzZXF1ZW5jZS5uZXh0KCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UgZXh0ZW5kcyBTZXF1ZW5jZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhIG5ldyBzZXF1ZW5jZSBpbnN0YW5jZVxuICAgKiBAc3VtbWFyeSBQcm90ZWN0ZWQgY29uc3RydWN0b3IgdGhhdCBpbml0aWFsaXplcyB0aGUgc2VxdWVuY2Ugd2l0aCB0aGUgcHJvdmlkZWQgb3B0aW9uc1xuICAgKi9cbiAgY29uc3RydWN0b3Iob3B0aW9uczogU2VxdWVuY2VPcHRpb25zLCBhZGFwdGVyOiBBZGFwdGVyPGFueSwgYW55LCBhbnk+KSB7XG4gICAgc3VwZXIob3B0aW9ucywgYWRhcHRlcik7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFJldHJpZXZlcyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VxdWVuY2VcbiAgICogQHN1bW1hcnkgR2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgc2VxdWVuY2UgZnJvbSBzdG9yYWdlLiBJZiB0aGUgc2VxdWVuY2VcbiAgICogZG9lc24ndCBleGlzdCB5ZXQsIGl0IHJldHVybnMgdGhlIGNvbmZpZ3VyZWQgc3RhcnRpbmcgdmFsdWUuXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGN1cnJlbnQgc2VxdWVuY2UgdmFsdWVcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGN1cnJlbnQoXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPGFueT5cbiAgKTogUHJvbWlzZTxzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQ+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoXG4gICAgICBhd2FpdCB0aGlzLmxvZ0N0eChhcmdzLCBPcGVyYXRpb25LZXlzLlJFQUQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5jdXJyZW50KTtcbiAgICBsZXQgY2FjaGVkQ3VycmVudDogYW55O1xuICAgIGNvbnN0IHsgbmFtZSwgc3RhcnRXaXRoIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhuYW1lKVxuICAgICk7XG4gICAgdHJ5IHtcbiAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUgYXMgYW55KTtcbiAgICAgIGlmIChjYWNoZWRDdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkQ3VycmVudCAhPT0gbnVsbClcbiAgICAgICAgcmV0dXJuIHRoaXMucGFyc2UoY2FjaGVkQ3VycmVudCk7XG4gICAgICBjb25zdCBzZXF1ZW5jZTogU2VxdWVuY2VNb2RlbCA9IGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nLCBjdHgpO1xuICAgICAgcmV0dXJuIHRoaXMucGFyc2Uoc2VxdWVuY2UuY3VycmVudCBhcyBzdHJpbmcgfCBudW1iZXIpO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgIC8vIElmIHRoZSBzZXF1ZW5jZSBpcyBzdXBwb3NlZCB0byBsaXZlIGluIHByaXZhdGUvc2hhcmVkIGNvbGxlY3Rpb25zLFxuICAgICAgICAvLyByZWFkIGl0IGZyb20gdGhvc2UgY29sbGVjdGlvbnMgdXNpbmcgdGhlIGFkYXB0ZXIgKG5vdCB0aGUgc3R1YiBkaXJlY3RseSkuXG4gICAgICAgIGlmIChhZGFwdGVyTWV0YT8uY29sbGVjdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXIgYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdEFkYXB0ZXI7XG4gICAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwgYXMgYW55KTtcbiAgICAgICAgICBjb25zdCBwdWJsaWNLZXkgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuc3R1Yi5jcmVhdGVDb21wb3NpdGVLZXkoXG4gICAgICAgICAgICB0YWJsZU5hbWUsXG4gICAgICAgICAgICBbU3RyaW5nKG5hbWUpXVxuICAgICAgICAgICk7XG4gICAgICAgICAgZm9yIChjb25zdCBjb2wgb2YgYWRhcHRlck1ldGEuY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGNvbnN0IHByaXZhdGVBZGFwdGVyID0gYWRhcHRlci5mb3JQcml2YXRlKGNvbCk7XG4gICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IChwcml2YXRlQWRhcHRlciBhcyBhbnkpLnJlYWRTdGF0ZShcbiAgICAgICAgICAgICAgICBwdWJsaWNLZXksXG4gICAgICAgICAgICAgICAgY3R4IGFzIGFueVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBpZiAocmF3ICYmIHJhdy5jdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgcmF3LmN1cnJlbnQgIT09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2UocmF3LmN1cnJlbnQgYXMgYW55KTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycjogYW55KSB7XG4gICAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgLy8gZmFsbCB0aHJvdWdoIHRvIHJlZ3VsYXIgc3RhcnRXaXRoIGZhbGxiYWNrIGZvciBhbnkgcGFyc2UvSU8gZXJyb3JzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9nLmRlYnVnKFxuICAgICAgICAgICAgYFRyeWluZyB0byByZXNvbHZlIGN1cnJlbnQgc2VxdWVuY2UgJHtuYW1lfSB2YWx1ZSBmcm9tIGNvbnRleHQgdHJlZWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUgYXMgYW55KTtcbiAgICAgICAgICBpZiAoY2FjaGVkQ3VycmVudCAhPT0gdW5kZWZpbmVkICYmIGNhY2hlZEN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGxvZy5kZWJ1ZyhcbiAgICAgICAgICAgICAgYFJldHJpZXZlZCBjYWNoZWQgY3VycmVudCB2YWx1ZSBmb3Igc2VxdWVuY2UgJHtuYW1lfTogJHtjYWNoZWRDdXJyZW50fWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaFxuICAgICAgICB9XG4gICAgICAgIGlmIChjYWNoZWRDdXJyZW50ID09PSB1bmRlZmluZWQgfHwgY2FjaGVkQ3VycmVudCA9PT0gbnVsbCkge1xuICAgICAgICAgIGxvZy5pbmZvKGBObyBjYWNoZWQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX0gaW4gY29udGV4dGApO1xuICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBzdGFydFdpdGg7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXG4gICAgICAgICAgICBgRmFpbGVkIHRvIHBhcnNlIGluaXRpYWwgdmFsdWUgZm9yIHNlcXVlbmNlICR7c3RhcnRXaXRofTogJHtlfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYEZhaWxlZCB0byByZXRyaWV2ZSBjdXJyZW50IHZhbHVlIGZvciBzZXF1ZW5jZSAke25hbWV9OiAke2V9YFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEluY3JlbWVudHMgdGhlIHNlcXVlbmNlIHZhbHVlXG4gICAqIEBzdW1tYXJ5IEluY3JlYXNlcyB0aGUgY3VycmVudCBzZXF1ZW5jZSB2YWx1ZSBieSB0aGUgc3BlY2lmaWVkIGFtb3VudCBhbmQgcGVyc2lzdHNcbiAgICogdGhlIG5ldyB2YWx1ZSB0byBzdG9yYWdlLiBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGggbnVtZXJpYyBhbmQgQmlnSW50IHNlcXVlbmNlIHR5cGVzLlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IG51bWJlciB8IGJpZ2ludH0gY3VycmVudCAtIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZXF1ZW5jZVxuICAgKiBAcGFyYW0ge251bWJlcn0gW2NvdW50XSAtIE9wdGlvbmFsIGFtb3VudCB0byBpbmNyZW1lbnQgYnksIGRlZmF1bHRzIHRvIHRoZSBzZXF1ZW5jZSdzIGluY3JlbWVudEJ5IHZhbHVlXG4gICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBzZXF1ZW5jZSB2YWx1ZSBhZnRlciBpbmNyZW1lbnRpbmdcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBhc3luYyBpbmNyZW1lbnQoXG4gICAgY291bnQ6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgICBjdHg6IENvbnRleHQ8YW55PlxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHRoaXMuaW5jcmVtZW50KTtcbiAgICBjb25zdCB7IHR5cGUsIGluY3JlbWVudEJ5LCBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNlcXVlbmNlIG5hbWUgaXMgcmVxdWlyZWRcIik7XG4gICAgbG9nLmluZm8oYE9idGFpbmluZyBzZXF1ZW5jZSBsb2NrIGZvciBzZXF1ZW5jZSAke25hbWV9YCk7XG4gICAgLy8gcmV0dXJuIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UubG9jay5leGVjdXRlKGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB0b0luY3JlbWVudEJ5ID0gY291bnQgfHwgaW5jcmVtZW50Qnk7XG4gICAgaWYgKHRvSW5jcmVtZW50QnkgJSBpbmNyZW1lbnRCeSAhPT0gMClcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgVmFsdWUgdG8gaW5jcmVtZW50IGRvZXMgbm90IGNvbnNpZGVyIHRoZSBpbmNyZW1lbnRCeSBzZXR0aW5nOiAke2luY3JlbWVudEJ5fWBcbiAgICAgICk7XG4gICAgY29uc3QgdHlwZU5hbWUgPVxuICAgICAgdHlwZW9mIHR5cGUgPT09IFwiZnVuY3Rpb25cIiAmJiAodHlwZSBhcyBhbnkpPy5uYW1lXG4gICAgICAgID8gKHR5cGUgYXMgYW55KS5uYW1lXG4gICAgICAgIDogdHlwZTtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBhd2FpdCB0aGlzLmN1cnJlbnQoY3R4KTtcblxuICAgIGFzeW5jIGZ1bmN0aW9uIHJldHVybkFuZENhY2hlKHJlczogU2VxdWVuY2VNb2RlbCB8IFByb21pc2U8U2VxdWVuY2VNb2RlbD4pIHtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSByZXMgPSBhd2FpdCByZXM7XG4gICAgICBsb2dcbiAgICAgICAgLmZvcihyZXR1cm5BbmRDYWNoZSlcbiAgICAgICAgLmluZm8oYFN0b3JpbmcgbmV3ICR7bmFtZX0gc2VxIHZhbHVlIGluIGNhY2hlOiAke3Jlcy5jdXJyZW50fWApO1xuICAgICAgY3R4LmNhY2hlLnB1dChuYW1lIGFzIHN0cmluZywgcmVzLmN1cnJlbnQpO1xuICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBjb25zdCBwZXJmb3JtVXBzZXJ0ID0gYXN5bmMgKFxuICAgICAgbmV4dDogc3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50XG4gICAgKTogUHJvbWlzZTxTZXF1ZW5jZU1vZGVsPiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgcmV0dXJuQW5kQ2FjaGUoXG4gICAgICAgICAgdGhpcy5yZXBvLnVwZGF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpXG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJldHVybkFuZENhY2hlKFxuICAgICAgICAgICAgdGhpcy5yZXBvLmNyZWF0ZShcbiAgICAgICAgICAgICAgbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KSxcbiAgICAgICAgICAgICAgY3R4XG4gICAgICAgICAgICApXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBpbmNyZW1lbnRTZXJpYWwgPSBhc3luYyAoXG4gICAgICBiYXNlOiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnRcbiAgICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4gPT4ge1xuICAgICAgc3dpdGNoICh0eXBlTmFtZSkge1xuICAgICAgICBjYXNlIE51bWJlci5uYW1lOlxuICAgICAgICAgIHJldHVybiAodGhpcy5wYXJzZShiYXNlKSBhcyBudW1iZXIpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgY2FzZSBCaWdJbnQubmFtZTpcbiAgICAgICAgICByZXR1cm4gKHRoaXMucGFyc2UoYmFzZSkgYXMgYmlnaW50KSArIEJpZ0ludCh0b0luY3JlbWVudEJ5KTtcbiAgICAgICAgY2FzZSBTdHJpbmcubmFtZTpcbiAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKTtcbiAgICAgICAgY2FzZSBcInNlcmlhbFwiOlxuICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJlc29sdmUoXG4gICAgICAgICAgICBTZXJpYWwuaW5zdGFuY2UuZ2VuZXJhdGUoYmFzZSBhcyBzdHJpbmcpXG4gICAgICAgICAgKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBuZXZlciBoYXBwZW5cIik7XG4gICAgICB9XG4gICAgfTtcblxuICAgIC8vIENoZWNrIGlmIG1vZGVsIGlzIGZ1bGx5IHNlZ3JlZ2F0ZWQg4oCUIHNlcXVlbmNlIGdvZXMgT05MWSB0byBwcml2YXRlIGNvbGxlY3Rpb25zLlxuICAgIC8vIFByZWZlciB0aGUgZXhwbGljaXQgcGVyLXNlcXVlbmNlIG1ldGFkYXRhIHdoZW4gYXZhaWxhYmxlOyBvdGhlcndpc2UgZmFsbCBiYWNrIHRvXG4gICAgLy8gdGhlIGNvbnRleHQncyByZWdpc3RlcmVkIHJlYWQgY29sbGVjdGlvbnMgKGNvdmVycyBlYXJseSBwayBnZW5lcmF0aW9uIHBhdGhzKS5cbiAgICBjb25zdCBhZGFwdGVyTWV0YSA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKFxuICAgICAgbmFtZVxuICAgICk7XG4gICAgY29uc3QgZmFsbGJhY2tDb2xsZWN0aW9ucyA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KVxuICAgICAgLmdldFJlYWRDb2xsZWN0aW9ucygpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUNvbGxlY3Rpb25zID1cbiAgICAgIGFkYXB0ZXJNZXRhPy5jb2xsZWN0aW9ucz8ubGVuZ3RoID8gYWRhcHRlck1ldGEuY29sbGVjdGlvbnMgOiBmYWxsYmFja0NvbGxlY3Rpb25zO1xuICAgIGNvbnN0IGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCA9XG4gICAgICAoYWRhcHRlck1ldGE/LmZ1bGx5U2VncmVnYXRlZCA/PyAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuaXNGdWxseVNlZ3JlZ2F0ZWQpICYmXG4gICAgICBlZmZlY3RpdmVDb2xsZWN0aW9ucy5sZW5ndGggPiAwO1xuXG4gICAgbGV0IG5leHQ6IGFueTtcbiAgICBpZiAodHlwZU5hbWUgPT09IFwidXVpZFwiKSB7XG4gICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihcbiAgICAgICAgYHV1aWQgcGsgZ2VuZXJhdGlvbiBpcyBvbmx5IHN1cHBvcnRlZCB1c2luZyBAdXVpZCBhbmQgYSBkZXRlcm1pbmlzdGljIHNlZWRgXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXh0ID0gYXdhaXQgaW5jcmVtZW50U2VyaWFsKGN1cnJlbnRWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCkge1xuICAgICAgY29uc3Qgc2VxTW9kZWwgPSBuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pO1xuICAgICAgYXdhaXQgdGhpcy53cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhcbiAgICAgICAgY3R4LFxuICAgICAgICBzZXFNb2RlbCxcbiAgICAgICAgZWZmZWN0aXZlQ29sbGVjdGlvbnNcbiAgICAgICk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBTZXF1ZW5jZS5pbmNyZW1lbnQgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudFZhbHVlIGFzIGFueX0gbmV4dD0ke25leHQgYXMgYW55fWBcbiAgICAgICk7XG4gICAgICBjdHguY2FjaGUucHV0KG5hbWUgYXMgc3RyaW5nLCBuZXh0KTtcbiAgICAgIHJldHVybiBuZXh0O1xuICAgIH1cblxuICAgIGNvbnN0IHNlcSA9IGF3YWl0IHBlcmZvcm1VcHNlcnQobmV4dCk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYFNlcXVlbmNlLmluY3JlbWVudCAke25hbWV9IGN1cnJlbnQ9JHtjdXJyZW50VmFsdWUgYXMgYW55fSBuZXh0PSR7bmV4dCBhcyBhbnl9YFxuICAgICk7XG5cbiAgICAvLyBSZXBsaWNhdGUgc2VxdWVuY2UgdG8gc2VncmVnYXRlZCBjb2xsZWN0aW9ucyBpZiBtb2RlbCB1c2VzIHByaXZhdGUvc2hhcmVkIGRhdGEuXG4gICAgLy8gV2hlbiBtZXRhZGF0YSBpc24ndCBhdmFpbGFibGUsIGZhbGwgYmFjayB0byB0aGUgY29udGV4dCdzIHJlZ2lzdGVyZWQgcmVhZCBjb2xsZWN0aW9ucy5cbiAgICBpZiAoZWZmZWN0aXZlQ29sbGVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBlZmZlY3RpdmVDb2xsZWN0aW9ucyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNlcS5jdXJyZW50IGFzIHN0cmluZyB8IG51bWJlciB8IGJpZ2ludDtcbiAgICAvLyB9LCBuYW1lKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gRW5zdXJlcyB0aGUgc2VxdWVuY2UgZXhpc3RzIGFuZCBpcyBhdCBsZWFzdCBhIGdpdmVuIHZhbHVlXG4gICAqIEBzdW1tYXJ5IEZhYnJpYyBuZWVkcyB0byByZXNwZWN0IHNlZ3JlZ2F0ZWQvcHJpdmF0ZS9zaGFyZWQgc3RvcmFnZSBydWxlcyB3aGVuIGNyZWF0aW5nXG4gICAqIHNlcXVlbmNlcyAoZm9yIGV4YW1wbGUgZm9yIHBlcnNpc3RlbnQgQHZlcnNpb24odHJ1ZSkgYW5kIEBzZXF1ZW5jZSgpKS5cbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIGVuc3VyZUF0TGVhc3QoXG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8YW55PlxuICApOiBQcm9taXNlPHN0cmluZyB8IG51bWJlciB8IGJpZ2ludD4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2cgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIE9wZXJhdGlvbktleXMuVVBEQVRFLCB0cnVlKVxuICAgICkuZm9yKHRoaXMuZW5zdXJlQXRMZWFzdCk7XG4gICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgaWYgKCFuYW1lKSB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNlcXVlbmNlIG5hbWUgaXMgcmVxdWlyZWRcIik7XG5cbiAgICBjb25zdCBkZXNpcmVkID0gdGhpcy5wYXJzZSh2YWx1ZSk7XG5cbiAgICBjb25zdCBncmVhdGVyVGhhbiA9IChcbiAgICAgIGE6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludCxcbiAgICAgIGI6IHN0cmluZyB8IG51bWJlciB8IGJpZ2ludFxuICAgICk6IGJvb2xlYW4gPT4ge1xuICAgICAgaWYgKHR5cGVvZiBhID09PSBcImJpZ2ludFwiIHx8IHR5cGVvZiBiID09PSBcImJpZ2ludFwiKSB7XG4gICAgICAgIHJldHVybiBCaWdJbnQoYSBhcyBhbnkpID4gQmlnSW50KGIgYXMgYW55KTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgYSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlb2YgYiA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICByZXR1cm4gTnVtYmVyKGEpID4gTnVtYmVyKGIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFN0cmluZyhhKSA+IFN0cmluZyhiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhuYW1lKVxuICAgICk7XG4gICAgY29uc3QgaXNGdWxseVNlZ3JlZ2F0ZWQgPVxuICAgICAgYWRhcHRlck1ldGEgIT09IHVuZGVmaW5lZCAmJlxuICAgICAgYWRhcHRlck1ldGEuZnVsbHlTZWdyZWdhdGVkICYmXG4gICAgICBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGggPiAwO1xuXG4gICAgY29uc3QgcmVhZEV4aXN0aW5nID0gYXN5bmMgKCk6IFByb21pc2U8U2VxdWVuY2VNb2RlbCB8IHVuZGVmaW5lZD4gPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUgYXMgc3RyaW5nLCBjdHgpO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgd3JpdGVQcml2YXRlID0gYXN5bmMgKFxuICAgICAgc2VxTW9kZWw6IFNlcXVlbmNlTW9kZWwsXG4gICAgICBjb2xsZWN0aW9uczogc3RyaW5nW11cbiAgICApID0+IHtcbiAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXFNb2RlbCwgY29sbGVjdGlvbnMpO1xuICAgICAgY3R4LmNhY2hlLnB1dChuYW1lIGFzIHN0cmluZywgc2VxTW9kZWwuY3VycmVudCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHVwc2VydFB1YmxpYyA9IGFzeW5jIChuZXh0OiBzdHJpbmcgfCBudW1iZXIgfCBiaWdpbnQpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKFxuICAgICAgICAgIG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksXG4gICAgICAgICAgY3R4XG4gICAgICAgICk7XG4gICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5jcmVhdGUoXG4gICAgICAgICAgICBuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLFxuICAgICAgICAgICAgY3R4XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHJlYWRFeGlzdGluZygpO1xuICAgIGlmICghZXhpc3RpbmcpIHtcbiAgICAgIGNvbnN0IHNlcU1vZGVsID0gbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogZGVzaXJlZCB9KTtcbiAgICAgIGlmIChpc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhIS5jb2xsZWN0aW9ucyk7XG4gICAgICAgIHJldHVybiBkZXNpcmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgY3JlYXRlZCA9IGF3YWl0IHVwc2VydFB1YmxpYyhkZXNpcmVkKTtcbiAgICAgIGF3YWl0IHRoaXMucmVwbGljYXRlVG9TZWdyZWdhdGVkQ29sbGVjdGlvbnMoY3R4LCBjcmVhdGVkKTtcbiAgICAgIHJldHVybiB0aGlzLnBhcnNlKGNyZWF0ZWQuY3VycmVudCBhcyBhbnkpO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnBhcnNlKGV4aXN0aW5nLmN1cnJlbnQgYXMgYW55KTtcbiAgICBpZiAoIWdyZWF0ZXJUaGFuKGRlc2lyZWQsIGN1cnJlbnQpKSB7XG4gICAgICByZXR1cm4gY3VycmVudDtcbiAgICB9XG5cbiAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgaWYgKGlzRnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhIS5jb2xsZWN0aW9ucyk7XG4gICAgICBsb2cuZGVidWcoXG4gICAgICAgIGBTZXF1ZW5jZS5lbnN1cmVBdExlYXN0IChwcml2YXRlLW9ubHkpICR7bmFtZX0gY3VycmVudD0ke2N1cnJlbnQgYXMgYW55fSBkZXNpcmVkPSR7ZGVzaXJlZCBhcyBhbnl9YFxuICAgICAgKTtcbiAgICAgIHJldHVybiBkZXNpcmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHVwZGF0ZWQgPSBhd2FpdCB1cHNlcnRQdWJsaWMoZGVzaXJlZCk7XG4gICAgYXdhaXQgdGhpcy5yZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyhjdHgsIHVwZGF0ZWQpO1xuICAgIHJldHVybiB0aGlzLnBhcnNlKHVwZGF0ZWQuY3VycmVudCBhcyBhbnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBSZXBsaWNhdGVzIHRoZSBzZXF1ZW5jZSB0byBhbGwgc2VncmVnYXRlZCBjb2xsZWN0aW9uc1xuICAgKiBAc3VtbWFyeSBXaGVuIGEgbW9kZWwgdXNlcyBwcml2YXRlRGF0YSBvciBzaGFyZWREYXRhIGRlY29yYXRvcnMsIGl0cyBzZXF1ZW5jZSBtdXN0IGJlXG4gICAqIHJlcGxpY2F0ZWQgdG8gYWxsIGNvbGxlY3Rpb25zIHRoZSBtb2RlbCBpcyBzdG9yZWQgaW4uIFRoaXMgZW5zdXJlcyBjbGllbnRzIHdpdGggYWNjZXNzXG4gICAqIHRvIG9ubHkgb25lIGNvbGxlY3Rpb24gY2FuIHN0aWxsIHJlYWQgdGhlIG1vZGVsJ3Mgc2VxdWVuY2UsIHdoaWxlIGNsaWVudHMgd2l0aG91dFxuICAgKiBhY2Nlc3MgdG8gYW55IGNvbGxlY3Rpb24gd29uJ3Qgc2VlIHRoZSBzZXF1ZW5jZSBvbiB0aGUgcHVibGljIGNoYWluLlxuICAgKiBAcGFyYW0ge0NvbnRleHQ8YW55Pn0gY3R4IC0gVGhlIGV4ZWN1dGlvbiBjb250ZXh0XG4gICAqIEBwYXJhbSB7U2VxdWVuY2VNb2RlbH0gc2VxIC0gVGhlIHNlcXVlbmNlIG1vZGVsIHRvIHJlcGxpY2F0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyB3cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhcbiAgICBjdHg6IENvbnRleHQ8YW55PixcbiAgICBzZXE6IFNlcXVlbmNlTW9kZWwsXG4gICAgY29sbGVjdGlvbnM6IHN0cmluZ1tdXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGxvZyA9IGN0eC5sb2dnZXIuZm9yKHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMpO1xuICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXIgYXMgdW5rbm93biBhcyBGYWJyaWNDb250cmFjdEFkYXB0ZXI7XG4gICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwgYXMgYW55KTtcbiAgICBjb25zdCBjb21wb3NlZEtleSA9IChjdHggYXMgRmFicmljQ29udHJhY3RDb250ZXh0KS5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleShcbiAgICAgIHRhYmxlTmFtZSxcbiAgICAgIFtTdHJpbmcoc2VxLmlkKV1cbiAgICApO1xuXG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwcml2YXRlQWRhcHRlciA9IGFkYXB0ZXIuZm9yUHJpdmF0ZShjb2xsZWN0aW9uKTtcbiAgICAgICAgY29uc3QgcmVjb3JkID0ge1xuICAgICAgICAgIFtDb3VjaERCS2V5cy5UQUJMRV06IHRhYmxlTmFtZSxcbiAgICAgICAgICBpZDogc2VxLmlkLFxuICAgICAgICAgIGN1cnJlbnQ6IHNlcS5jdXJyZW50LFxuICAgICAgICB9O1xuICAgICAgICBhd2FpdCBwcml2YXRlQWRhcHRlcltcInB1dFN0YXRlXCJdKGNvbXBvc2VkS2V5LCByZWNvcmQsIGN0eCBhcyBhbnkpO1xuICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlICR7c2VxLmlkfSB3cml0dGVuIHRvIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufWApO1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICBsb2cud2FybihcbiAgICAgICAgICBgRmFpbGVkIHRvIHdyaXRlIHNlcXVlbmNlICR7c2VxLmlkfSB0byBjb2xsZWN0aW9uICR7Y29sbGVjdGlvbn06ICR7ZX1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyhcbiAgICBjdHg6IENvbnRleHQ8YW55PixcbiAgICBzZXE6IFNlcXVlbmNlTW9kZWxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gVXNlIGFkYXB0ZXIgbWV0YWRhdGEgaW5zdGVhZCBvZiBjdHguZ2V0UmVhZENvbGxlY3Rpb25zKCkgYmVjYXVzZSB0aGUgU2VxdWVuY2VcbiAgICAvLyBjcmVhdGVzIGl0cyBvd24gY29udGV4dCB2aWEgbG9nQ3R4LCBsb3NpbmcgY29sbGVjdGlvbnMgc2V0IGJ5IGV4dHJhY3RTZWdyZWdhdGVkQ29sbGVjdGlvbnMuXG4gICAgY29uc3QgYWRhcHRlck1ldGEgPSAoY3R4IGFzIEZhYnJpY0NvbnRyYWN0Q29udGV4dCkuZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihcbiAgICAgIFN0cmluZyhzZXEuaWQpXG4gICAgKTtcblxuICAgIGlmICghYWRhcHRlck1ldGEgfHwgIWFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIE9ubHkgcmVwbGljYXRlIGZvciBub24tZnVsbHktc2VncmVnYXRlZCBtb2RlbHMgKGZ1bGx5IHNlZ3JlZ2F0ZWQgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5KVxuICAgIGlmIChhZGFwdGVyTWV0YS5mdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKTtcbiAgICBsb2cuaW5mbyhcbiAgICAgIGBSZXBsaWNhdGluZyBzZXF1ZW5jZSAke3NlcS5pZH0gdG8gJHthZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGh9IHNlZ3JlZ2F0ZWQgY29sbGVjdGlvbnM6ICR7YWRhcHRlck1ldGEuY29sbGVjdGlvbnMuam9pbihcIiwgXCIpfWBcbiAgICApO1xuXG4gICAgYXdhaXQgdGhpcy53cml0ZVNlcXVlbmNlVG9Db2xsZWN0aW9ucyhjdHgsIHNlcSwgYWRhcHRlck1ldGEuY29sbGVjdGlvbnMpO1xuICB9XG59XG4iXX0=
|
|
339
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTZXF1ZW5jZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkZhYnJpY0NvbnRyYWN0U2VxdWVuY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXVGO0FBQ3ZGLHlFQUF1RDtBQUN2RCx5Q0FBb0Y7QUFDcEYsdURBQW9EO0FBQ3BEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E2Q0c7QUFDSCxNQUFhLHNCQUF1QixTQUFRLGVBQVE7SUFDaEQ7OztPQUdHO0lBQ0gsWUFBWSxPQUFPLEVBQUUsT0FBTztRQUN4QixLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLDZCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzRixJQUFJLGFBQWEsQ0FBQztRQUNsQixNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQztZQUNELGFBQWEsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzFDLElBQUksYUFBYSxLQUFLLFNBQVMsSUFBSSxhQUFhLEtBQUssSUFBSTtnQkFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sUUFBUSxHQUFHLE1BQU0s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RCxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLENBQUMsRUFBRSxPQUFPLFdBQVcsQ0FBQyxXQUFXLENBQUMsTUFBTSw0QkFBNEIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlJLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdFLENBQUM7Q0FDSjtBQTFSRCx3REEwUkM7QUFDRCw4OG1DQUE4OG1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxFcnJvciwgTm90Rm91bmRFcnJvciwgT3BlcmF0aW9uS2V5cywgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE1vZGVsIH0gZnJvbSBcIkBkZWNhZi10cy9kZWNvcmF0b3ItdmFsaWRhdGlvblwiO1xuaW1wb3J0IHsgU2VxdWVuY2UsIFNlcXVlbmNlTW9kZWwsIFNlcmlhbCwgVW5zdXBwb3J0ZWRFcnJvciwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IENvdWNoREJLZXlzIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQWJzdHJhY3QgYmFzZSBjbGFzcyBmb3Igc2VxdWVuY2UgZ2VuZXJhdGlvblxuICogQHN1bW1hcnkgUHJvdmlkZXMgYSBmcmFtZXdvcmsgZm9yIGdlbmVyYXRpbmcgc2VxdWVudGlhbCB2YWx1ZXMgKGxpa2UgcHJpbWFyeSBrZXlzKSBpbiB0aGUgcGVyc2lzdGVuY2UgbGF5ZXIuXG4gKiBJbXBsZW1lbnRhdGlvbnMgb2YgdGhpcyBjbGFzcyBoYW5kbGUgdGhlIHNwZWNpZmljcyBvZiBob3cgc2VxdWVuY2VzIGFyZSBzdG9yZWQgYW5kIGluY3JlbWVudGVkIGluIGRpZmZlcmVudFxuICogZGF0YWJhc2Ugc3lzdGVtcy5cbiAqIEBwYXJhbSB7U2VxdWVuY2VPcHRpb25zfSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgc2VxdWVuY2UgZ2VuZXJhdG9yXG4gKiBAY2xhc3MgU2VxdWVuY2VcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBFeGFtcGxlIGltcGxlbWVudGF0aW9uIGZvciBhIHNwZWNpZmljIGRhdGFiYXNlXG4gKiBjbGFzcyBQb3N0Z3Jlc1NlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICogICBjb25zdHJ1Y3RvcihvcHRpb25zOiBTZXF1ZW5jZU9wdGlvbnMpIHtcbiAqICAgICBzdXBlcihvcHRpb25zKTtcbiAqICAgfVxuICpcbiAqICAgYXN5bmMgbmV4dCgpOiBQcm9taXNlPG51bWJlcj4ge1xuICogICAgIC8vIEltcGxlbWVudGF0aW9uIHRvIGdldCBuZXh0IHZhbHVlIGZyb20gUG9zdGdyZVNRTCBzZXF1ZW5jZVxuICogICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMub3B0aW9ucy5leGVjdXRvci5yYXcoYFNFTEVDVCBuZXh0dmFsKCcke3RoaXMub3B0aW9ucy5uYW1lfScpYCk7XG4gKiAgICAgcmV0dXJuIHBhcnNlSW50KHJlc3VsdC5yb3dzWzBdLm5leHR2YWwpO1xuICogICB9XG4gKlxuICogICBhc3luYyBjdXJyZW50KCk6IFByb21pc2U8bnVtYmVyPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGN1cnJlbnQgdmFsdWUgZnJvbSBQb3N0Z3JlU1FMIHNlcXVlbmNlXG4gKiAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5vcHRpb25zLmV4ZWN1dG9yLnJhdyhgU0VMRUNUIGN1cnJ2YWwoJyR7dGhpcy5vcHRpb25zLm5hbWV9JylgKTtcbiAqICAgICByZXR1cm4gcGFyc2VJbnQocmVzdWx0LnJvd3NbMF0uY3VycnZhbCk7XG4gKiAgIH1cbiAqXG4gKiAgIGFzeW5jIHJhbmdlKGNvdW50OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcltdPiB7XG4gKiAgICAgLy8gSW1wbGVtZW50YXRpb24gdG8gZ2V0IGEgcmFuZ2Ugb2YgdmFsdWVzXG4gKiAgICAgY29uc3QgdmFsdWVzOiBudW1iZXJbXSA9IFtdO1xuICogICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY291bnQ7IGkrKykge1xuICogICAgICAgdmFsdWVzLnB1c2goYXdhaXQgdGhpcy5uZXh0KCkpO1xuICogICAgIH1cbiAqICAgICByZXR1cm4gdmFsdWVzO1xuICogICB9XG4gKiB9XG4gKlxuICogLy8gVXNhZ2VcbiAqIGNvbnN0IHNlcXVlbmNlID0gbmV3IFBvc3RncmVzU2VxdWVuY2Uoe1xuICogICBuYW1lOiAndXNlcl9pZF9zZXEnLFxuICogICBleGVjdXRvcjogZGJFeGVjdXRvclxuICogfSk7XG4gKlxuICogY29uc3QgbmV4dElkID0gYXdhaXQgc2VxdWVuY2UubmV4dCgpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdFNlcXVlbmNlIGV4dGVuZHMgU2VxdWVuY2Uge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlIGluc3RhbmNlXG4gICAgICogQHN1bW1hcnkgUHJvdGVjdGVkIGNvbnN0cnVjdG9yIHRoYXQgaW5pdGlhbGl6ZXMgdGhlIHNlcXVlbmNlIHdpdGggdGhlIHByb3ZpZGVkIG9wdGlvbnNcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zLCBhZGFwdGVyKSB7XG4gICAgICAgIHN1cGVyKG9wdGlvbnMsIGFkYXB0ZXIpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0cmlldmVzIHRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBzZXF1ZW5jZVxuICAgICAqIEBzdW1tYXJ5IEdldHMgdGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlIGZyb20gc3RvcmFnZS4gSWYgdGhlIHNlcXVlbmNlXG4gICAgICogZG9lc24ndCBleGlzdCB5ZXQsIGl0IHJldHVybnMgdGhlIGNvbmZpZ3VyZWQgc3RhcnRpbmcgdmFsdWUuXG4gICAgICogQHJldHVybiBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB0byB0aGUgY3VycmVudCBzZXF1ZW5jZSB2YWx1ZVxuICAgICAqL1xuICAgIGFzeW5jIGN1cnJlbnQoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5SRUFELCB0cnVlKSkuZm9yKHRoaXMuY3VycmVudCk7XG4gICAgICAgIGxldCBjYWNoZWRDdXJyZW50O1xuICAgICAgICBjb25zdCB7IG5hbWUsIHN0YXJ0V2l0aCB9ID0gdGhpcy5vcHRpb25zO1xuICAgICAgICBjb25zdCBhZGFwdGVyTWV0YSA9IGN0eC5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKFN0cmluZyhuYW1lKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjYWNoZWRDdXJyZW50ID0gY3R4LmdldEZyb21DaGlsZHJlbihuYW1lKTtcbiAgICAgICAgICAgIGlmIChjYWNoZWRDdXJyZW50ICE9PSB1bmRlZmluZWQgJiYgY2FjaGVkQ3VycmVudCAhPT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHNlcXVlbmNlID0gYXdhaXQgdGhpcy5yZXBvLnJlYWQobmFtZSwgY3R4KTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHNlcXVlbmNlLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgc2VxdWVuY2UgaXMgc3VwcG9zZWQgdG8gbGl2ZSBpbiBwcml2YXRlL3NoYXJlZCBjb2xsZWN0aW9ucyxcbiAgICAgICAgICAgICAgICAvLyByZWFkIGl0IGZyb20gdGhvc2UgY29sbGVjdGlvbnMgdXNpbmcgdGhlIGFkYXB0ZXIgKG5vdCB0aGUgc3R1YiBkaXJlY3RseSkuXG4gICAgICAgICAgICAgICAgaWYgKGFkYXB0ZXJNZXRhPy5jb2xsZWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ZXIgPSB0aGlzLmFkYXB0ZXI7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRhYmxlTmFtZSA9IE1vZGVsLnRhYmxlTmFtZShTZXF1ZW5jZU1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVibGljS2V5ID0gY3R4LnN0dWIuY3JlYXRlQ29tcG9zaXRlS2V5KHRhYmxlTmFtZSwgW1N0cmluZyhuYW1lKV0pO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbCBvZiBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwcml2YXRlQWRhcHRlciA9IGFkYXB0ZXIuZm9yUHJpdmF0ZShjb2wpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhdyA9IGF3YWl0IHByaXZhdGVBZGFwdGVyLnJlYWRTdGF0ZShwdWJsaWNLZXksIGN0eCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJhdyAmJiByYXcuY3VycmVudCAhPT0gdW5kZWZpbmVkICYmIHJhdy5jdXJyZW50ICE9PSBudWxsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShyYXcuY3VycmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIE5vdEZvdW5kRXJyb3IpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaCB0byByZWd1bGFyIHN0YXJ0V2l0aCBmYWxsYmFjayBmb3IgYW55IHBhcnNlL0lPIGVycm9yc1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgVHJ5aW5nIHRvIHJlc29sdmUgY3VycmVudCBzZXF1ZW5jZSAke25hbWV9IHZhbHVlIGZyb20gY29udGV4dCB0cmVlYCk7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlZEN1cnJlbnQgPSBjdHguZ2V0RnJvbUNoaWxkcmVuKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkQ3VycmVudCAhPT0gdW5kZWZpbmVkICYmIGNhY2hlZEN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgUmV0cmlldmVkIGNhY2hlZCBjdXJyZW50IHZhbHVlIGZvciBzZXF1ZW5jZSAke25hbWV9OiAke2NhY2hlZEN1cnJlbnR9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBmYWxsIHRocm91Z2hcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGNhY2hlZEN1cnJlbnQgPT09IHVuZGVmaW5lZCB8fCBjYWNoZWRDdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKGBObyBjYWNoZWQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX0gaW4gY29udGV4dGApO1xuICAgICAgICAgICAgICAgICAgICBjYWNoZWRDdXJyZW50ID0gc3RhcnRXaXRoO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjYWNoZWRDdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYEZhaWxlZCB0byBwYXJzZSBpbml0aWFsIHZhbHVlIGZvciBzZXF1ZW5jZSAke3N0YXJ0V2l0aH06ICR7ZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIHJldHJpZXZlIGN1cnJlbnQgdmFsdWUgZm9yIHNlcXVlbmNlICR7bmFtZX06ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSW5jcmVtZW50cyB0aGUgc2VxdWVuY2UgdmFsdWVcbiAgICAgKiBAc3VtbWFyeSBJbmNyZWFzZXMgdGhlIGN1cnJlbnQgc2VxdWVuY2UgdmFsdWUgYnkgdGhlIHNwZWNpZmllZCBhbW91bnQgYW5kIHBlcnNpc3RzXG4gICAgICogdGhlIG5ldyB2YWx1ZSB0byBzdG9yYWdlLiBUaGlzIG1ldGhvZCBoYW5kbGVzIGJvdGggbnVtZXJpYyBhbmQgQmlnSW50IHNlcXVlbmNlIHR5cGVzLlxuICAgICAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyIHwgYmlnaW50fSBjdXJyZW50IC0gVGhlIGN1cnJlbnQgdmFsdWUgb2YgdGhlIHNlcXVlbmNlXG4gICAgICogQHBhcmFtIHtudW1iZXJ9IFtjb3VudF0gLSBPcHRpb25hbCBhbW91bnQgdG8gaW5jcmVtZW50IGJ5LCBkZWZhdWx0cyB0byB0aGUgc2VxdWVuY2UncyBpbmNyZW1lbnRCeSB2YWx1ZVxuICAgICAqIEByZXR1cm4gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIG5ldyBzZXF1ZW5jZSB2YWx1ZSBhZnRlciBpbmNyZW1lbnRpbmdcbiAgICAgKi9cbiAgICBhc3luYyBpbmNyZW1lbnQoY291bnQsIGN0eCkge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLmluY3JlbWVudCk7XG4gICAgICAgIGNvbnN0IHsgdHlwZSwgaW5jcmVtZW50QnksIG5hbWUgfSA9IHRoaXMub3B0aW9ucztcbiAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoXCJTZXF1ZW5jZSBuYW1lIGlzIHJlcXVpcmVkXCIpO1xuICAgICAgICBsb2cuaW5mbyhgT2J0YWluaW5nIHNlcXVlbmNlIGxvY2sgZm9yIHNlcXVlbmNlICR7bmFtZX1gKTtcbiAgICAgICAgLy8gcmV0dXJuIEZhYnJpY0NvbnRyYWN0U2VxdWVuY2UubG9jay5leGVjdXRlKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgdG9JbmNyZW1lbnRCeSA9IGNvdW50IHx8IGluY3JlbWVudEJ5O1xuICAgICAgICBpZiAodG9JbmNyZW1lbnRCeSAlIGluY3JlbWVudEJ5ICE9PSAwKVxuICAgICAgICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoYFZhbHVlIHRvIGluY3JlbWVudCBkb2VzIG5vdCBjb25zaWRlciB0aGUgaW5jcmVtZW50Qnkgc2V0dGluZzogJHtpbmNyZW1lbnRCeX1gKTtcbiAgICAgICAgY29uc3QgdHlwZU5hbWUgPSB0eXBlb2YgdHlwZSA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGU/Lm5hbWVcbiAgICAgICAgICAgID8gdHlwZS5uYW1lXG4gICAgICAgICAgICA6IHR5cGU7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IGF3YWl0IHRoaXMuY3VycmVudChjdHgpO1xuICAgICAgICBhc3luYyBmdW5jdGlvbiByZXR1cm5BbmRDYWNoZShyZXMpIHtcbiAgICAgICAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKVxuICAgICAgICAgICAgICAgIHJlcyA9IGF3YWl0IHJlcztcbiAgICAgICAgICAgIGxvZ1xuICAgICAgICAgICAgICAgIC5mb3IocmV0dXJuQW5kQ2FjaGUpXG4gICAgICAgICAgICAgICAgLmluZm8oYFN0b3JpbmcgbmV3ICR7bmFtZX0gc2VxIHZhbHVlIGluIGNhY2hlOiAke3Jlcy5jdXJyZW50fWApO1xuICAgICAgICAgICAgY3R4LmNhY2hlLnB1dChuYW1lLCByZXMuY3VycmVudCk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBlcmZvcm1VcHNlcnQgPSBhc3luYyAobmV4dCkgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgcmV0dXJuQW5kQ2FjaGUodGhpcy5yZXBvLnVwZGF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOb3RGb3VuZEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCByZXR1cm5BbmRDYWNoZSh0aGlzLnJlcG8uY3JlYXRlKG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksIGN0eCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmNyZW1lbnRTZXJpYWwgPSBhc3luYyAoYmFzZSkgPT4ge1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgTnVtYmVyLm5hbWU6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlKGJhc2UpICsgdG9JbmNyZW1lbnRCeTtcbiAgICAgICAgICAgICAgICBjYXNlIEJpZ0ludC5uYW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKSArIEJpZ0ludCh0b0luY3JlbWVudEJ5KTtcbiAgICAgICAgICAgICAgICBjYXNlIFN0cmluZy5uYW1lOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShiYXNlKTtcbiAgICAgICAgICAgICAgICBjYXNlIFwic2VyaWFsXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCBQcm9taXNlLnJlc29sdmUoU2VyaWFsLmluc3RhbmNlLmdlbmVyYXRlKGJhc2UpKTtcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcIlNob3VsZCBuZXZlciBoYXBwZW5cIik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIC8vIENoZWNrIGlmIG1vZGVsIGlzIGZ1bGx5IHNlZ3JlZ2F0ZWQg4oCUIHNlcXVlbmNlIGdvZXMgT05MWSB0byBwcml2YXRlIGNvbGxlY3Rpb25zLlxuICAgICAgICAvLyBQcmVmZXIgdGhlIGV4cGxpY2l0IHBlci1zZXF1ZW5jZSBtZXRhZGF0YSB3aGVuIGF2YWlsYWJsZTsgb3RoZXJ3aXNlIGZhbGwgYmFjayB0b1xuICAgICAgICAvLyB0aGUgY29udGV4dCdzIHJlZ2lzdGVyZWQgcmVhZCBjb2xsZWN0aW9ucyAoY292ZXJzIGVhcmx5IHBrIGdlbmVyYXRpb24gcGF0aHMpLlxuICAgICAgICBjb25zdCBhZGFwdGVyTWV0YSA9IGN0eC5nZXRTZXF1ZW5jZVNlZ3JlZ2F0aW9uKG5hbWUpO1xuICAgICAgICBjb25zdCBmYWxsYmFja0NvbGxlY3Rpb25zID0gY3R4XG4gICAgICAgICAgICAuZ2V0UmVhZENvbGxlY3Rpb25zKClcbiAgICAgICAgICAgIC5maWx0ZXIoQm9vbGVhbik7XG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUNvbGxlY3Rpb25zID0gYWRhcHRlck1ldGE/LmNvbGxlY3Rpb25zPy5sZW5ndGggPyBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyA6IGZhbGxiYWNrQ29sbGVjdGlvbnM7XG4gICAgICAgIGNvbnN0IGVmZmVjdGl2ZUZ1bGx5U2VncmVnYXRlZCA9IChhZGFwdGVyTWV0YT8uZnVsbHlTZWdyZWdhdGVkID8/IGN0eC5pc0Z1bGx5U2VncmVnYXRlZCkgJiZcbiAgICAgICAgICAgIGVmZmVjdGl2ZUNvbGxlY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGxldCBuZXh0O1xuICAgICAgICBpZiAodHlwZU5hbWUgPT09IFwidXVpZFwiKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVW5zdXBwb3J0ZWRFcnJvcihgdXVpZCBwayBnZW5lcmF0aW9uIGlzIG9ubHkgc3VwcG9ydGVkIHVzaW5nIEB1dWlkIGFuZCBhIGRldGVybWluaXN0aWMgc2VlZGApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgbmV4dCA9IGF3YWl0IGluY3JlbWVudFNlcmlhbChjdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlZmZlY3RpdmVGdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlcU1vZGVsID0gbmV3IFNlcXVlbmNlTW9kZWwoeyBpZDogbmFtZSwgY3VycmVudDogbmV4dCB9KTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXFNb2RlbCwgZWZmZWN0aXZlQ29sbGVjdGlvbnMpO1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBTZXF1ZW5jZS5pbmNyZW1lbnQgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudFZhbHVlfSBuZXh0PSR7bmV4dH1gKTtcbiAgICAgICAgICAgIGN0eC5jYWNoZS5wdXQobmFtZSwgbmV4dCk7XG4gICAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXEgPSBhd2FpdCBwZXJmb3JtVXBzZXJ0KG5leHQpO1xuICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlLmluY3JlbWVudCAke25hbWV9IGN1cnJlbnQ9JHtjdXJyZW50VmFsdWV9IG5leHQ9JHtuZXh0fWApO1xuICAgICAgICAvLyBSZXBsaWNhdGUgc2VxdWVuY2UgdG8gc2VncmVnYXRlZCBjb2xsZWN0aW9ucyBpZiBtb2RlbCB1c2VzIHByaXZhdGUvc2hhcmVkIGRhdGEuXG4gICAgICAgIC8vIFdoZW4gbWV0YWRhdGEgaXNuJ3QgYXZhaWxhYmxlLCBmYWxsIGJhY2sgdG8gdGhlIGNvbnRleHQncyByZWdpc3RlcmVkIHJlYWQgY29sbGVjdGlvbnMuXG4gICAgICAgIGlmIChlZmZlY3RpdmVDb2xsZWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMud3JpdGVTZXF1ZW5jZVRvQ29sbGVjdGlvbnMoY3R4LCBzZXEsIGVmZmVjdGl2ZUNvbGxlY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VxLmN1cnJlbnQ7XG4gICAgICAgIC8vIH0sIG5hbWUpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW5zdXJlcyB0aGUgc2VxdWVuY2UgZXhpc3RzIGFuZCBpcyBhdCBsZWFzdCBhIGdpdmVuIHZhbHVlXG4gICAgICogQHN1bW1hcnkgRmFicmljIG5lZWRzIHRvIHJlc3BlY3Qgc2VncmVnYXRlZC9wcml2YXRlL3NoYXJlZCBzdG9yYWdlIHJ1bGVzIHdoZW4gY3JlYXRpbmdcbiAgICAgKiBzZXF1ZW5jZXMgKGZvciBleGFtcGxlIGZvciBwZXJzaXN0ZW50IEB2ZXJzaW9uKHRydWUpIGFuZCBAc2VxdWVuY2UoKSkuXG4gICAgICovXG4gICAgYXN5bmMgZW5zdXJlQXRMZWFzdCh2YWx1ZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGN0eCwgbG9nIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgT3BlcmF0aW9uS2V5cy5VUERBVEUsIHRydWUpKS5mb3IodGhpcy5lbnN1cmVBdExlYXN0KTtcbiAgICAgICAgY29uc3QgeyBuYW1lIH0gPSB0aGlzLm9wdGlvbnM7XG4gICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFwiU2VxdWVuY2UgbmFtZSBpcyByZXF1aXJlZFwiKTtcbiAgICAgICAgY29uc3QgZGVzaXJlZCA9IHRoaXMucGFyc2UodmFsdWUpO1xuICAgICAgICBjb25zdCBncmVhdGVyVGhhbiA9IChhLCBiKSA9PiB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGEgPT09IFwiYmlnaW50XCIgfHwgdHlwZW9mIGIgPT09IFwiYmlnaW50XCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gQmlnSW50KGEpID4gQmlnSW50KGIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHR5cGVvZiBhID09PSBcIm51bWJlclwiIHx8IHR5cGVvZiBiID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIE51bWJlcihhKSA+IE51bWJlcihiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoYSkgPiBTdHJpbmcoYik7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGFkYXB0ZXJNZXRhID0gY3R4LmdldFNlcXVlbmNlU2VncmVnYXRpb24oU3RyaW5nKG5hbWUpKTtcbiAgICAgICAgY29uc3QgaXNGdWxseVNlZ3JlZ2F0ZWQgPSBhZGFwdGVyTWV0YSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBhZGFwdGVyTWV0YS5mdWxseVNlZ3JlZ2F0ZWQgJiZcbiAgICAgICAgICAgIGFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCA+IDA7XG4gICAgICAgIGNvbnN0IHJlYWRFeGlzdGluZyA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMucmVwby5yZWFkKG5hbWUsIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB3cml0ZVByaXZhdGUgPSBhc3luYyAoc2VxTW9kZWwsIGNvbGxlY3Rpb25zKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxTW9kZWwsIGNvbGxlY3Rpb25zKTtcbiAgICAgICAgICAgIGN0eC5jYWNoZS5wdXQobmFtZSwgc2VxTW9kZWwuY3VycmVudCk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHVwc2VydFB1YmxpYyA9IGFzeW5jIChuZXh0KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhd2FpdCB0aGlzLnJlcG8udXBkYXRlKG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IG5leHQgfSksIGN0eCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5yZXBvLmNyZWF0ZShuZXcgU2VxdWVuY2VNb2RlbCh7IGlkOiBuYW1lLCBjdXJyZW50OiBuZXh0IH0pLCBjdHgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IHJlYWRFeGlzdGluZygpO1xuICAgICAgICBpZiAoIWV4aXN0aW5nKSB7XG4gICAgICAgICAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgICAgICAgICBpZiAoaXNGdWxseVNlZ3JlZ2F0ZWQpIHtcbiAgICAgICAgICAgICAgICBhd2FpdCB3cml0ZVByaXZhdGUoc2VxTW9kZWwsIGFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGVzaXJlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGNyZWF0ZWQgPSBhd2FpdCB1cHNlcnRQdWJsaWMoZGVzaXJlZCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgY3JlYXRlZCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wYXJzZShjcmVhdGVkLmN1cnJlbnQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnBhcnNlKGV4aXN0aW5nLmN1cnJlbnQpO1xuICAgICAgICBpZiAoIWdyZWF0ZXJUaGFuKGRlc2lyZWQsIGN1cnJlbnQpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3VycmVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXFNb2RlbCA9IG5ldyBTZXF1ZW5jZU1vZGVsKHsgaWQ6IG5hbWUsIGN1cnJlbnQ6IGRlc2lyZWQgfSk7XG4gICAgICAgIGlmIChpc0Z1bGx5U2VncmVnYXRlZCkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVQcml2YXRlKHNlcU1vZGVsLCBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyk7XG4gICAgICAgICAgICBsb2cuZGVidWcoYFNlcXVlbmNlLmVuc3VyZUF0TGVhc3QgKHByaXZhdGUtb25seSkgJHtuYW1lfSBjdXJyZW50PSR7Y3VycmVudH0gZGVzaXJlZD0ke2Rlc2lyZWR9YCk7XG4gICAgICAgICAgICByZXR1cm4gZGVzaXJlZDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdXBzZXJ0UHVibGljKGRlc2lyZWQpO1xuICAgICAgICBhd2FpdCB0aGlzLnJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgdXBkYXRlZCk7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlKHVwZGF0ZWQuY3VycmVudCk7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXBsaWNhdGVzIHRoZSBzZXF1ZW5jZSB0byBhbGwgc2VncmVnYXRlZCBjb2xsZWN0aW9uc1xuICAgICAqIEBzdW1tYXJ5IFdoZW4gYSBtb2RlbCB1c2VzIHByaXZhdGVEYXRhIG9yIHNoYXJlZERhdGEgZGVjb3JhdG9ycywgaXRzIHNlcXVlbmNlIG11c3QgYmVcbiAgICAgKiByZXBsaWNhdGVkIHRvIGFsbCBjb2xsZWN0aW9ucyB0aGUgbW9kZWwgaXMgc3RvcmVkIGluLiBUaGlzIGVuc3VyZXMgY2xpZW50cyB3aXRoIGFjY2Vzc1xuICAgICAqIHRvIG9ubHkgb25lIGNvbGxlY3Rpb24gY2FuIHN0aWxsIHJlYWQgdGhlIG1vZGVsJ3Mgc2VxdWVuY2UsIHdoaWxlIGNsaWVudHMgd2l0aG91dFxuICAgICAqIGFjY2VzcyB0byBhbnkgY29sbGVjdGlvbiB3b24ndCBzZWUgdGhlIHNlcXVlbmNlIG9uIHRoZSBwdWJsaWMgY2hhaW4uXG4gICAgICogQHBhcmFtIHtDb250ZXh0PGFueT59IGN0eCAtIFRoZSBleGVjdXRpb24gY29udGV4dFxuICAgICAqIEBwYXJhbSB7U2VxdWVuY2VNb2RlbH0gc2VxIC0gVGhlIHNlcXVlbmNlIG1vZGVsIHRvIHJlcGxpY2F0ZVxuICAgICAqL1xuICAgIGFzeW5jIHdyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBjb2xsZWN0aW9ucykge1xuICAgICAgICBjb25zdCBsb2cgPSBjdHgubG9nZ2VyLmZvcih0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKTtcbiAgICAgICAgY29uc3QgYWRhcHRlciA9IHRoaXMuYWRhcHRlcjtcbiAgICAgICAgY29uc3QgdGFibGVOYW1lID0gTW9kZWwudGFibGVOYW1lKFNlcXVlbmNlTW9kZWwpO1xuICAgICAgICBjb25zdCBjb21wb3NlZEtleSA9IGN0eC5zdHViLmNyZWF0ZUNvbXBvc2l0ZUtleSh0YWJsZU5hbWUsIFtTdHJpbmcoc2VxLmlkKV0pO1xuICAgICAgICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJpdmF0ZUFkYXB0ZXIgPSBhZGFwdGVyLmZvclByaXZhdGUoY29sbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0ge1xuICAgICAgICAgICAgICAgICAgICBbQ291Y2hEQktleXMuVEFCTEVdOiB0YWJsZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBzZXEuaWQsXG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQ6IHNlcS5jdXJyZW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgYXdhaXQgcHJpdmF0ZUFkYXB0ZXJbXCJwdXRTdGF0ZVwiXShjb21wb3NlZEtleSwgcmVjb3JkLCBjdHgpO1xuICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZyhgU2VxdWVuY2UgJHtzZXEuaWR9IHdyaXR0ZW4gdG8gY29sbGVjdGlvbiAke2NvbGxlY3Rpb259YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGxvZy53YXJuKGBGYWlsZWQgdG8gd3JpdGUgc2VxdWVuY2UgJHtzZXEuaWR9IHRvIGNvbGxlY3Rpb24gJHtjb2xsZWN0aW9ufTogJHtlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIGFzeW5jIHJlcGxpY2F0ZVRvU2VncmVnYXRlZENvbGxlY3Rpb25zKGN0eCwgc2VxKSB7XG4gICAgICAgIC8vIFVzZSBhZGFwdGVyIG1ldGFkYXRhIGluc3RlYWQgb2YgY3R4LmdldFJlYWRDb2xsZWN0aW9ucygpIGJlY2F1c2UgdGhlIFNlcXVlbmNlXG4gICAgICAgIC8vIGNyZWF0ZXMgaXRzIG93biBjb250ZXh0IHZpYSBsb2dDdHgsIGxvc2luZyBjb2xsZWN0aW9ucyBzZXQgYnkgZXh0cmFjdFNlZ3JlZ2F0ZWRDb2xsZWN0aW9ucy5cbiAgICAgICAgY29uc3QgYWRhcHRlck1ldGEgPSBjdHguZ2V0U2VxdWVuY2VTZWdyZWdhdGlvbihTdHJpbmcoc2VxLmlkKSk7XG4gICAgICAgIGlmICghYWRhcHRlck1ldGEgfHwgIWFkYXB0ZXJNZXRhLmNvbGxlY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIE9ubHkgcmVwbGljYXRlIGZvciBub24tZnVsbHktc2VncmVnYXRlZCBtb2RlbHMgKGZ1bGx5IHNlZ3JlZ2F0ZWQgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5KVxuICAgICAgICBpZiAoYWRhcHRlck1ldGEuZnVsbHlTZWdyZWdhdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbG9nID0gY3R4LmxvZ2dlci5mb3IodGhpcy5yZXBsaWNhdGVUb1NlZ3JlZ2F0ZWRDb2xsZWN0aW9ucyk7XG4gICAgICAgIGxvZy5pbmZvKGBSZXBsaWNhdGluZyBzZXF1ZW5jZSAke3NlcS5pZH0gdG8gJHthZGFwdGVyTWV0YS5jb2xsZWN0aW9ucy5sZW5ndGh9IHNlZ3JlZ2F0ZWQgY29sbGVjdGlvbnM6ICR7YWRhcHRlck1ldGEuY29sbGVjdGlvbnMuam9pbihcIiwgXCIpfWApO1xuICAgICAgICBhd2FpdCB0aGlzLndyaXRlU2VxdWVuY2VUb0NvbGxlY3Rpb25zKGN0eCwgc2VxLCBhZGFwdGVyTWV0YS5jb2xsZWN0aW9ucyk7XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMjl1ZEhKaFkzUlRaWEYxWlc1alpTNXFjeUlzSW5OdmRYSmpaVkp2YjNRaU9pSWlMQ0p6YjNWeVkyVnpJanBiSWk0dUx5NHVMeTR1TDNOeVl5OWpiMjUwY21GamRITXZSbUZpY21salEyOXVkSEpoWTNSVFpYRjFaVzVqWlM1MGN5SmRMQ0p1WVcxbGN5STZXMTBzSW0xaGNIQnBibWR6SWpvaVFVRkJRU3hQUVVGUExFVkJRMHdzWVVGQllTeEZRVU5pTEdGQlFXRXNSVUZEWWl4aFFVRmhMRWRCUTJRc1RVRkJUU3g1UWtGQmVVSXNRMEZCUXp0QlFVTnFReXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRGRrUXNUMEZCVHl4RlFVbE1MRkZCUVZFc1JVRkRVaXhoUVVGaExFVkJSV0lzVFVGQlRTeEZRVU5PTEdkQ1FVRm5RaXhIUVVOcVFpeE5RVUZOTEdkQ1FVRm5RaXhEUVVGRE8wRkJSM2hDTEU5QlFVOHNSVUZCUlN4WFFVRlhMRVZCUVVVc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXp0QlFVVndSRHM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCTmtOSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhOQ1FVRjFRaXhUUVVGUkxGRkJRVkU3U1VGRGJFUTdPenRQUVVkSE8wbEJRMGdzV1VGQldTeFBRVUYzUWl4RlFVRkZMRTlCUVN0Q08xRkJRMjVGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1QwRkJUeXhEUVVGRExFTkJRVU03U1VGRE1VSXNRMEZCUXp0SlFVVkVPenM3T3p0UFFVdEhPMGxCUTAwc1MwRkJTeXhEUVVGRExFOUJRVThzUTBGRGNFSXNSMEZCUnl4SlFVRTJRanRSUVVWb1F5eE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hIUVVGSExFTkJRMjVDTEUxQlFVMHNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFVkJRVVVzWVVGQllTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkRiRVFzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRE8xRkJRM0JDTEVsQlFVa3NZVUZCYTBJc1EwRkJRenRSUVVOMlFpeE5RVUZOTEVWQlFVVXNTVUZCU1N4RlFVRkZMRk5CUVZNc1JVRkJSU3hIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdVVUZEZWtNc1RVRkJUU3hYUVVGWExFZEJRVWtzUjBGQk5rSXNRMEZCUXl4elFrRkJjMElzUTBGRGRrVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVOaUxFTkJRVU03VVVGRFJpeEpRVUZKTEVOQlFVTTdXVUZEU0N4aFFVRmhMRWRCUVVjc1IwRkJSeXhEUVVGRExHVkJRV1VzUTBGQlF5eEpRVUZYTEVOQlFVTXNRMEZCUXp0WlFVTnFSQ3hKUVVGSkxHRkJRV0VzUzBGQlN5eFRRVUZUTEVsQlFVa3NZVUZCWVN4TFFVRkxMRWxCUVVrN1owSkJRM1pFTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhoUVVGaExFTkJRVU1zUTBGQlF6dFpRVU51UXl4TlFVRk5MRkZCUVZFc1IwRkJhMElzVFVGQlRTeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGakxFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdXVUZETVVVc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRXdRaXhEUVVGRExFTkJRVU03VVVGRGVrUXNRMEZCUXp0UlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03V1VGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03WjBKQlF5OUNMSEZGUVVGeFJUdG5Ra0ZEY2tVc05FVkJRVFJGTzJkQ1FVTTFSU3hKUVVGSkxGZEJRVmNzUlVGQlJTeFhRVUZYTEVWQlFVVXNUVUZCVFN4RlFVRkZMRU5CUVVNN2IwSkJRM0pETEUxQlFVMHNUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhQUVVFeVF5eERRVUZETzI5Q1FVTnFSU3hOUVVGTkxGTkJRVk1zUjBGQlJ5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMR0ZCUVc5Q0xFTkJRVU1zUTBGQlF6dHZRa0ZEZUVRc1RVRkJUU3hUUVVGVExFZEJRVWtzUjBGQk5rSXNRMEZCUXl4SlFVRkpMRU5CUVVNc2EwSkJRV3RDTEVOQlEzUkZMRk5CUVZNc1JVRkRWQ3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4RFFVTm1MRU5CUVVNN2IwSkJRMFlzUzBGQlN5eE5RVUZOTEVkQlFVY3NTVUZCU1N4WFFVRlhMRU5CUVVNc1YwRkJWeXhGUVVGRkxFTkJRVU03ZDBKQlF6RkRMRWxCUVVrc1EwRkJRenMwUWtGRFNDeE5RVUZOTEdOQlFXTXNSMEZCUnl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZET3pSQ1FVTXZReXhOUVVGTkxFZEJRVWNzUjBGQlJ5eE5RVUZQTEdOQlFYTkNMRU5CUVVNc1UwRkJVeXhEUVVOcVJDeFRRVUZUTEVWQlExUXNSMEZCVlN4RFFVTllMRU5CUVVNN05FSkJRMFlzU1VGQlNTeEhRVUZITEVsQlFVa3NSMEZCUnl4RFFVRkRMRTlCUVU4c1MwRkJTeXhUUVVGVExFbEJRVWtzUjBGQlJ5eERRVUZETEU5QlFVOHNTMEZCU3l4SlFVRkpPMmREUVVNeFJDeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1IwRkJSeXhEUVVGRExFOUJRV01zUTBGQlF5eERRVUZETzNkQ1FVTXhReXhEUVVGRE8zZENRVUZETEU5QlFVOHNSMEZCVVN4RlFVRkZMRU5CUVVNN05FSkJRMnhDTEVsQlFVa3NSMEZCUnl4WlFVRlpMR0ZCUVdFN1owTkJRVVVzVTBGQlV6czBRa0ZETTBNc2NVVkJRWEZGTzNkQ1FVTjJSU3hEUVVGRE8yOUNRVU5JTEVOQlFVTTdaMEpCUTBnc1EwRkJRenRuUWtGRFJDeEpRVUZKTEVOQlFVTTdiMEpCUTBnc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGRFVDeHpRMEZCYzBNc1NVRkJTU3d3UWtGQk1FSXNRMEZEY2tVc1EwRkJRenR2UWtGRFJpeGhRVUZoTEVkQlFVY3NSMEZCUnl4RFFVRkRMR1ZCUVdVc1EwRkJReXhKUVVGWExFTkJRVU1zUTBGQlF6dHZRa0ZEYWtRc1NVRkJTU3hoUVVGaExFdEJRVXNzVTBGQlV5eEpRVUZKTEdGQlFXRXNTMEZCU3l4SlFVRkpMRVZCUVVVc1EwRkJRenQzUWtGRE1VUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3dyUTBGQkswTXNTVUZCU1N4TFFVRkxMR0ZCUVdFc1JVRkJSU3hEUVVONFJTeERRVUZETzI5Q1FVTktMRU5CUVVNN2IwSkJRMFFzTmtSQlFUWkVPMmRDUVVNdlJDeERRVUZETzJkQ1FVRkRMRTlCUVU4c1EwRkJWU3hGUVVGRkxFTkJRVU03YjBKQlEzQkNMR1ZCUVdVN1owSkJRMnBDTEVOQlFVTTdaMEpCUTBRc1NVRkJTU3hoUVVGaExFdEJRVXNzVTBGQlV5eEpRVUZKTEdGQlFXRXNTMEZCU3l4SlFVRkpMRVZCUVVVc1EwRkJRenR2UWtGRE1VUXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhuUTBGQlowTXNTVUZCU1N4aFFVRmhMRU5CUVVNc1EwRkJRenR2UWtGRE5VUXNZVUZCWVN4SFFVRkhMRk5CUVZNc1EwRkJRenRuUWtGRE5VSXNRMEZCUXp0blFrRkRSQ3hKUVVGSkxFTkJRVU03YjBKQlEwZ3NUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVTnVReXhEUVVGRE8yZENRVUZETEU5QlFVOHNRMEZCVFN4RlFVRkZMRU5CUVVNN2IwSkJRMmhDTEUxQlFVMHNTVUZCU1N4aFFVRmhMRU5CUTNKQ0xEaERRVUU0UXl4VFFVRlRMRXRCUVVzc1EwRkJReXhGUVVGRkxFTkJRMmhGTEVOQlFVTTdaMEpCUTBvc1EwRkJRenRaUVVOSUxFTkJRVU03V1VGRFJDeE5RVUZOTEVsQlFVa3NZVUZCWVN4RFFVTnlRaXhwUkVGQmFVUXNTVUZCU1N4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVNNVJDeERRVUZETzFGQlEwb3NRMEZCUXp0SlFVTklMRU5CUVVNN1NVRkZSRHM3T3pzN096dFBRVTlITzBsQlEyZENMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRMmhETEV0QlFYbENMRVZCUTNwQ0xFZEJRV2xDTzFGQlJXcENMRTFCUVUwc1IwRkJSeXhIUVVGSExFZEJRVWNzUTBGQlF5eE5RVUZOTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU16UXl4TlFVRk5MRVZCUVVVc1NVRkJTU3hGUVVGRkxGZEJRVmNzUlVGQlJTeEpRVUZKTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRE8xRkJRMnBFTEVsQlFVa3NRMEZCUXl4SlFVRkpPMWxCUVVVc1RVRkJUU3hKUVVGSkxHRkJRV0VzUTBGQlF5d3lRa0ZCTWtJc1EwRkJReXhEUVVGRE8xRkJRMmhGTEVkQlFVY3NRMEZCUXl4SlFVRkpMRU5CUVVNc2QwTkJRWGRETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRla1FzTWtSQlFUSkVPMUZCUXpORUxFMUJRVTBzWVVGQllTeEhRVUZITEV0QlFVc3NTVUZCU1N4WFFVRlhMRU5CUVVNN1VVRkRNME1zU1VGQlNTeGhRVUZoTEVkQlFVY3NWMEZCVnl4TFFVRkxMRU5CUVVNN1dVRkRia01zVFVGQlRTeEpRVUZKTEdGQlFXRXNRMEZEY2tJc2FVVkJRV2xGTEZkQlFWY3NSVUZCUlN4RFFVTXZSU3hEUVVGRE8xRkJRMG9zVFVGQlRTeFJRVUZSTEVkQlExb3NUMEZCVHl4SlFVRkpMRXRCUVVzc1ZVRkJWU3hKUVVGTExFbEJRVmtzUlVGQlJTeEpRVUZKTzFsQlF5OURMRU5CUVVNc1EwRkJSU3hKUVVGWkxFTkJRVU1zU1VGQlNUdFpRVU53UWl4RFFVRkRMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRMWdzVFVGQlRTeFpRVUZaTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFZEJRVWNzUTBGQlF5eERRVUZETzFGQlJUZERMRXRCUVVzc1ZVRkJWU3hqUVVGakxFTkJRVU1zUjBGQk1rTTdXVUZEZGtVc1NVRkJTU3hIUVVGSExGbEJRVmtzVDBGQlR6dG5Ra0ZCUlN4SFFVRkhMRWRCUVVjc1RVRkJUU3hIUVVGSExFTkJRVU03V1VGRE5VTXNSMEZCUnp0cFFrRkRRU3hIUVVGSExFTkJRVU1zWTBGQll5eERRVUZETzJsQ1FVTnVRaXhKUVVGSkxFTkJRVU1zWlVGQlpTeEpRVUZKTEhkQ1FVRjNRaXhIUVVGSExFTkJRVU1zVDBGQlR5eEZRVUZGTEVOQlFVTXNRMEZCUXp0WlFVTnNSU3hIUVVGSExFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NRMEZCUXl4SlFVRmpMRVZCUVVVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETzFsQlF6TkRMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRMklzUTBGQlF6dFJRVVZFTEUxQlFVMHNZVUZCWVN4SFFVRkhMRXRCUVVzc1JVRkRla0lzU1VGQk9FSXNSVUZEVGl4RlFVRkZPMWxCUXpGQ0xFbEJRVWtzUTBGQlF6dG5Ra0ZEU0N4UFFVRlBMRTFCUVUwc1kwRkJZeXhEUVVONlFpeEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUTNSRkxFTkJRVU03V1VGRFNpeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4c1RVRkJUU3hqUVVGakxFTkJRM3BDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVOa0xFbEJRVWtzWVVGQllTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZET1VNc1IwRkJSeXhEUVVOS0xFTkJRMFlzUTBGQlF6dG5Ra0ZEU2l4RFFVRkRPMmRDUVVORUxFMUJRVTBzUTBGQlF5eERRVUZETzFsQlExWXNRMEZCUXp0UlFVTklMRU5CUVVNc1EwRkJRenRSUVVWR0xFMUJRVTBzWlVGQlpTeEhRVUZITEV0QlFVc3NSVUZETTBJc1NVRkJPRUlzUlVGRFN5eEZRVUZGTzFsQlEzSkRMRkZCUVZFc1VVRkJVU3hGUVVGRkxFTkJRVU03WjBKQlEycENMRXRCUVVzc1RVRkJUU3hEUVVGRExFbEJRVWs3YjBKQlEyUXNUMEZCVVN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQldTeEhRVUZITEdGQlFXRXNRMEZCUXp0blFrRkRkRVFzUzBGQlN5eE5RVUZOTEVOQlFVTXNTVUZCU1R0dlFrRkRaQ3hQUVVGUkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRlpMRWRCUVVjc1RVRkJUU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzJkQ1FVTTVSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eEpRVUZKTzI5Q1FVTmtMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0blFrRkRNVUlzUzBGQlN5eFJRVUZSTzI5Q1FVTllMRTlCUVU4c1RVRkJUU3hQUVVGUExFTkJRVU1zVDBGQlR5eERRVU14UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eEpRVUZqTEVOQlFVTXNRMEZEZWtNc1EwRkJRenRuUWtGRFNqdHZRa0ZEUlN4TlFVRk5MRWxCUVVrc1lVRkJZU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN1dVRkRia1FzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVVkdMR3RHUVVGclJqdFJRVU5zUml4dFJrRkJiVVk3VVVGRGJrWXNaMFpCUVdkR08xRkJRMmhHTEUxQlFVMHNWMEZCVnl4SFFVRkpMRWRCUVRaQ0xFTkJRVU1zYzBKQlFYTkNMRU5CUTNaRkxFbEJRVWtzUTBGRFRDeERRVUZETzFGQlEwWXNUVUZCVFN4dFFrRkJiVUlzUjBGQlNTeEhRVUUyUWp0aFFVTjJSQ3hyUWtGQmEwSXNSVUZCUlR0aFFVTndRaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEYmtJc1RVRkJUU3h2UWtGQmIwSXNSMEZEZUVJc1YwRkJWeXhGUVVGRkxGZEJRVmNzUlVGQlJTeE5RVUZOTEVOQlFVTXNRMEZCUXl4RFFVRkRMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF5eERRVUZETEcxQ1FVRnRRaXhEUVVGRE8xRkJRMjVHTEUxQlFVMHNkMEpCUVhkQ0xFZEJRelZDTEVOQlFVTXNWMEZCVnl4RlFVRkZMR1ZCUVdVc1NVRkJTeXhIUVVFMlFpeERRVUZETEdsQ1FVRnBRaXhEUVVGRE8xbEJRMnhHTEc5Q1FVRnZRaXhEUVVGRExFMUJRVTBzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGYkVNc1NVRkJTU3hKUVVGVExFTkJRVU03VVVGRFpDeEpRVUZKTEZGQlFWRXNTMEZCU3l4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVONFFpeE5RVUZOTEVsQlFVa3NaMEpCUVdkQ0xFTkJRM2hDTERKRlFVRXlSU3hEUVVNMVJTeERRVUZETzFGQlEwb3NRMEZCUXp0aFFVRk5MRU5CUVVNN1dVRkRUaXhKUVVGSkxFZEJRVWNzVFVGQlRTeGxRVUZsTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNN1VVRkROME1zUTBGQlF6dFJRVVZFTEVsQlFVa3NkMEpCUVhkQ0xFVkJRVVVzUTBGQlF6dFpRVU0zUWl4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZEYUVVc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUTI1RExFZEJRVWNzUlVGRFNDeFJRVUZSTEVWQlExSXNiMEpCUVc5Q0xFTkJRM0pDTEVOQlFVTTdXVUZEUml4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxIRkRRVUZ4UXl4SlFVRkpMRmxCUVZrc1dVRkJiVUlzVTBGQlV5eEpRVUZYTEVWQlFVVXNRMEZETDBZc1EwRkJRenRaUVVOR0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVdNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGQlF6dFpRVU53UXl4UFFVRlBMRWxCUVVrc1EwRkJRenRSUVVOa0xFTkJRVU03VVVGRlJDeE5RVUZOTEVkQlFVY3NSMEZCUnl4TlFVRk5MR0ZCUVdFc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFJRVU4wUXl4SFFVRkhMRU5CUVVNc1MwRkJTeXhEUVVOUUxITkNRVUZ6UWl4SlFVRkpMRmxCUVZrc1dVRkJiVUlzVTBGQlV5eEpRVUZYTEVWQlFVVXNRMEZEYUVZc1EwRkJRenRSUVVWR0xHdEdRVUZyUmp0UlFVTnNSaXg1UmtGQmVVWTdVVUZEZWtZc1NVRkJTU3h2UWtGQmIwSXNRMEZCUXl4TlFVRk5MRVZCUVVVc1EwRkJRenRaUVVOb1F5eE5RVUZOTEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRzlDUVVGdlFpeERRVUZETEVOQlFVTTdVVUZEZUVVc1EwRkJRenRSUVVWRUxFOUJRVThzUjBGQlJ5eERRVUZETEU5QlFXMURMRU5CUVVNN1VVRkRMME1zV1VGQldUdEpRVU5rTEVOQlFVTTdTVUZGUkRzN096dFBRVWxITzBsQlEwMHNTMEZCU3l4RFFVRkRMR0ZCUVdFc1EwRkRNVUlzUzBGQkswSXNSVUZETDBJc1IwRkJSeXhKUVVFMlFqdFJRVVZvUXl4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlEyNUNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNZVUZCWVN4RFFVRkRMRTFCUVUwc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGNFUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExHRkJRV0VzUTBGQlF5eERRVUZETzFGQlF6RkNMRTFCUVUwc1JVRkJSU3hKUVVGSkxFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRPMUZCUXpsQ0xFbEJRVWtzUTBGQlF5eEpRVUZKTzFsQlFVVXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkJReXd5UWtGQk1rSXNRMEZCUXl4RFFVRkRPMUZCUldoRkxFMUJRVTBzVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGRmJFTXNUVUZCVFN4WFFVRlhMRWRCUVVjc1EwRkRiRUlzUTBGQk1rSXNSVUZETTBJc1EwRkJNa0lzUlVGRGJFSXNSVUZCUlR0WlFVTllMRWxCUVVrc1QwRkJUeXhEUVVGRExFdEJRVXNzVVVGQlVTeEpRVUZKTEU5QlFVOHNRMEZCUXl4TFFVRkxMRkZCUVZFc1JVRkJSU3hEUVVGRE8yZENRVU51UkN4UFFVRlBMRTFCUVUwc1EwRkJReXhEUVVGUkxFTkJRVU1zUjBGQlJ5eE5RVUZOTEVOQlFVTXNRMEZCVVN4RFFVRkRMRU5CUVVNN1dVRkROME1zUTBGQlF6dFpRVU5FTEVsQlFVa3NUMEZCVHl4RFFVRkRMRXRCUVVzc1VVRkJVU3hKUVVGSkxFOUJRVThzUTBGQlF5eExRVUZMTEZGQlFWRXNSVUZCUlN4RFFVRkRPMmRDUVVOdVJDeFBRVUZQTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1IwRkJSeXhOUVVGTkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdXVUZETDBJc1EwRkJRenRaUVVORUxFOUJRVThzVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRTFCUVUwc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF6dFJRVU12UWl4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxGZEJRVmNzUjBGQlNTeEhRVUUyUWl4RFFVRkRMSE5DUVVGelFpeERRVU4yUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRMklzUTBGQlF6dFJRVU5HTEUxQlFVMHNhVUpCUVdsQ0xFZEJRM0pDTEZkQlFWY3NTMEZCU3l4VFFVRlRPMWxCUTNwQ0xGZEJRVmNzUTBGQlF5eGxRVUZsTzFsQlF6TkNMRmRCUVZjc1EwRkJReXhYUVVGWExFTkJRVU1zVFVGQlRTeEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVVnlReXhOUVVGTkxGbEJRVmtzUjBGQlJ5eExRVUZMTEVsQlFYZERMRVZCUVVVN1dVRkRiRVVzU1VGQlNTeERRVUZETzJkQ1FVTklMRTlCUVU4c1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRmpMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU03V1VGRGJrUXNRMEZCUXp0WlFVRkRMRTlCUVU4c1EwRkJUU3hGUVVGRkxFTkJRVU03WjBKQlEyaENMRWxCUVVrc1EwRkJReXhaUVVGWkxHRkJRV0U3YjBKQlFVVXNUMEZCVHl4VFFVRlRMRU5CUVVNN1owSkJRMnBFTEUxQlFVMHNRMEZCUXl4RFFVRkRPMWxCUTFZc1EwRkJRenRSUVVOSUxFTkJRVU1zUTBGQlF6dFJRVVZHTEUxQlFVMHNXVUZCV1N4SFFVRkhMRXRCUVVzc1JVRkRlRUlzVVVGQmRVSXNSVUZEZGtJc1YwRkJjVUlzUlVGRGNrSXNSVUZCUlR0WlFVTkdMRTFCUVUwc1NVRkJTU3hEUVVGRExEQkNRVUV3UWl4RFFVRkRMRWRCUVVjc1JVRkJSU3hSUVVGUkxFVkJRVVVzVjBGQlZ5eERRVUZETEVOQlFVTTdXVUZEYkVVc1IwRkJSeXhEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNTVUZCWXl4RlFVRkZMRkZCUVZFc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF6dFJRVU5zUkN4RFFVRkRMRU5CUVVNN1VVRkZSaXhOUVVGTkxGbEJRVmtzUjBGQlJ5eExRVUZMTEVWQlFVVXNTVUZCT0VJc1JVRkJSU3hGUVVGRk8xbEJRelZFTEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hQUVVGUExFMUJRVTBzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUXpOQ0xFbEJRVWtzWVVGQllTeERRVUZETEVWQlFVVXNSVUZCUlN4RlFVRkZMRWxCUVVrc1JVRkJSU3hQUVVGUExFVkJRVVVzU1VGQlNTeEZRVUZGTEVOQlFVTXNSVUZET1VNc1IwRkJSeXhEUVVOS0xFTkJRVU03V1VGRFNpeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRk5MRVZCUVVVc1EwRkJRenRuUWtGRGFFSXNTVUZCU1N4RFFVRkRMRmxCUVZrc1lVRkJZU3hGUVVGRkxFTkJRVU03YjBKQlF5OUNMRTlCUVU4c1RVRkJUU3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZETTBJc1NVRkJTU3hoUVVGaExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hKUVVGSkxFVkJRVVVzUTBGQlF5eEZRVU01UXl4SFFVRkhMRU5CUTBvc1EwRkJRenRuUWtGRFNpeERRVUZETzJkQ1FVTkVMRTFCUVUwc1EwRkJReXhEUVVGRE8xbEJRMVlzUTBGQlF6dFJRVU5JTEVOQlFVTXNRMEZCUXp0UlFVVkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzV1VGQldTeEZRVUZGTEVOQlFVTTdVVUZEZEVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeERRVUZETzFsQlEyUXNUVUZCVFN4UlFVRlJMRWRCUVVjc1NVRkJTU3hoUVVGaExFTkJRVU1zUlVGQlJTeEZRVUZGTEVWQlFVVXNTVUZCU1N4RlFVRkZMRTlCUVU4c1JVRkJSU3hQUVVGUExFVkJRVVVzUTBGQlF5eERRVUZETzFsQlEyNUZMRWxCUVVrc2FVSkJRV2xDTEVWQlFVVXNRMEZCUXp0blFrRkRkRUlzVFVGQlRTeFpRVUZaTEVOQlFVTXNVVUZCVVN4RlFVRkZMRmRCUVZrc1EwRkJReXhYUVVGWExFTkJRVU1zUTBGQlF6dG5Ra0ZEZGtRc1QwRkJUeXhQUVVGUExFTkJRVU03V1VGRGFrSXNRMEZCUXp0WlFVTkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFMUJRVTBzV1VGQldTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRPMWxCUXpWRExFMUJRVTBzU1VGQlNTeERRVUZETEdkRFFVRm5ReXhEUVVGRExFZEJRVWNzUlVGQlJTeFBRVUZQTEVOQlFVTXNRMEZCUXp0WlFVTXhSQ3hQUVVGUExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4RFFVRkRMRTlCUVdNc1EwRkJReXhEUVVGRE8xRkJRelZETEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4UFFVRmpMRU5CUVVNc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRTlCUVU4c1JVRkJSU3hQUVVGUExFTkJRVU1zUlVGQlJTeERRVUZETzFsQlEyNURMRTlCUVU4c1QwRkJUeXhEUVVGRE8xRkJRMnBDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRkZCUVZFc1IwRkJSeXhKUVVGSkxHRkJRV0VzUTBGQlF5eEZRVUZGTEVWQlFVVXNSVUZCUlN4SlFVRkpMRVZCUVVVc1QwRkJUeXhGUVVGRkxFOUJRVThzUlVGQlJTeERRVUZETEVOQlFVTTdVVUZEYmtVc1NVRkJTU3hwUWtGQmFVSXNSVUZCUlN4RFFVRkRPMWxCUTNSQ0xFMUJRVTBzV1VGQldTeERRVUZETEZGQlFWRXNSVUZCUlN4WFFVRlpMRU5CUVVNc1YwRkJWeXhEUVVGRExFTkJRVU03V1VGRGRrUXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3g1UTBGQmVVTXNTVUZCU1N4WlFVRlpMRTlCUVdNc1dVRkJXU3hQUVVGakxFVkJRVVVzUTBGRGNFY3NRMEZCUXp0WlFVTkdMRTlCUVU4c1QwRkJUeXhEUVVGRE8xRkJRMnBDTEVOQlFVTTdVVUZGUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhOUVVGTkxGbEJRVmtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTTFReXhOUVVGTkxFbEJRVWtzUTBGQlF5eG5RMEZCWjBNc1EwRkJReXhIUVVGSExFVkJRVVVzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZETVVRc1QwRkJUeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRmpMRU5CUVVNc1EwRkJRenRKUVVNMVF5eERRVUZETzBsQlJVUTdPenM3T3pzN08wOUJVVWM3U1VGRFN5eExRVUZMTEVOQlFVTXNNRUpCUVRCQ0xFTkJRM1JETEVkQlFXbENMRVZCUTJwQ0xFZEJRV3RDTEVWQlEyeENMRmRCUVhGQ08xRkJSWEpDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl3d1FrRkJNRUlzUTBGQlF5eERRVUZETzFGQlF6VkVMRTFCUVUwc1QwRkJUeXhIUVVGSExFbEJRVWtzUTBGQlF5eFBRVUV5UXl4RFFVRkRPMUZCUTJwRkxFMUJRVTBzVTBGQlV5eEhRVUZITEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1lVRkJiMElzUTBGQlF5eERRVUZETzFGQlEzaEVMRTFCUVUwc1YwRkJWeXhIUVVGSkxFZEJRVFpDTEVOQlFVTXNTVUZCU1N4RFFVRkRMR3RDUVVGclFpeERRVU40UlN4VFFVRlRMRVZCUTFRc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUTJwQ0xFTkJRVU03VVVGRlJpeExRVUZMTEUxQlFVMHNWVUZCVlN4SlFVRkpMRmRCUVZjc1JVRkJSU3hEUVVGRE8xbEJRM0pETEVsQlFVa3NRMEZCUXp0blFrRkRTQ3hOUVVGTkxHTkJRV01zUjBGQlJ5eFBRVUZQTEVOQlFVTXNWVUZCVlN4RFFVRkRMRlZCUVZVc1EwRkJReXhEUVVGRE8yZENRVU4wUkN4TlFVRk5MRTFCUVUwc1IwRkJSenR2UWtGRFlpeERRVUZETEZkQlFWY3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hUUVVGVE8yOUNRVU01UWl4RlFVRkZMRVZCUVVVc1IwRkJSeXhEUVVGRExFVkJRVVU3YjBKQlExWXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJReXhQUVVGUE8ybENRVU55UWl4RFFVRkRPMmRDUVVOR0xFMUJRVTBzWTBGQll5eERRVUZETEZWQlFWVXNRMEZCUXl4RFFVRkRMRmRCUVZjc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlZTeERRVUZETEVOQlFVTTdaMEpCUTJ4RkxFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4SFFVRkhMRU5CUVVNc1JVRkJSU3d3UWtGQk1FSXNWVUZCVlN4RlFVRkZMRU5CUVVNc1EwRkJRenRaUVVOMFJTeERRVUZETzFsQlFVTXNUMEZCVHl4RFFVRlZMRVZCUVVVc1EwRkJRenRuUWtGRGNFSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkRUaXcwUWtGQk5FSXNSMEZCUnl4RFFVRkRMRVZCUVVVc2EwSkJRV3RDTEZWQlFWVXNTMEZCU3l4RFFVRkRMRVZCUVVVc1EwRkRka1VzUTBGQlF6dFpRVU5LTEVOQlFVTTdVVUZEU0N4RFFVRkRPMGxCUTBnc1EwRkJRenRKUVVWUExFdEJRVXNzUTBGQlF5eG5RMEZCWjBNc1EwRkROVU1zUjBGQmFVSXNSVUZEYWtJc1IwRkJhMEk3VVVGRmJFSXNaMFpCUVdkR08xRkJRMmhHTERoR1FVRTRSanRSUVVNNVJpeE5RVUZOTEZkQlFWY3NSMEZCU1N4SFFVRTJRaXhEUVVGRExITkNRVUZ6UWl4RFFVTjJSU3hOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVWQlFVVXNRMEZCUXl4RFFVTm1MRU5CUVVNN1VVRkZSaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEpRVUZKTEVOQlFVTXNWMEZCVnl4RFFVRkRMRmRCUVZjc1EwRkJReXhOUVVGTkxFVkJRVVVzUTBGQlF6dFpRVU53UkN4UFFVRlBPMUZCUTFRc1EwRkJRenRSUVVWRUxEQkdRVUV3Ump0UlFVTXhSaXhKUVVGSkxGZEJRVmNzUTBGQlF5eGxRVUZsTEVWQlFVVXNRMEZCUXp0WlFVTm9ReXhQUVVGUE8xRkJRMVFzUTBGQlF6dFJRVVZFTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4blEwRkJaME1zUTBGQlF5eERRVUZETzFGQlEyeEZMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzZDBKQlFYZENMRWRCUVVjc1EwRkJReXhGUVVGRkxFOUJRVThzVjBGQlZ5eERRVUZETEZkQlFWY3NRMEZCUXl4TlFVRk5MRFJDUVVFMFFpeFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVU53U1N4RFFVRkRPMUZCUlVZc1RVRkJUU3hKUVVGSkxFTkJRVU1zTUVKQlFUQkNMRU5CUVVNc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFhRVUZYTEVOQlFVTXNWMEZCVnl4RFFVRkRMRU5CUVVNN1NVRkRNMFVzUTBGQlF6dERRVU5HSWl3aWMyOTFjbU5sYzBOdmJuUmxiblFpT2xzaWFXMXdiM0owSUh0Y2JpQWdTVzUwWlhKdVlXeEZjbkp2Y2l4Y2JpQWdUbTkwUm05MWJtUkZjbkp2Y2l4Y2JpQWdUM0JsY21GMGFXOXVTMlY1Y3l4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5Qk5iMlJsYkNCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEc5eUxYWmhiR2xrWVhScGIyNWNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRmtZWEIwWlhJc1hHNGdJRU52Ym5SbGVIUXNYRzRnSUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnl4Y2JpQWdVMlZ4ZFdWdVkyVXNYRzRnSUZObGNYVmxibU5sVFc5a1pXd3NYRzRnSUZObGNYVmxibU5sVDNCMGFXOXVjeXhjYmlBZ1UyVnlhV0ZzTEZ4dUlDQlZibk4xY0hCdmNuUmxaRVZ5Y205eUxGeHVmU0JtY205dElGd2lRR1JsWTJGbUxYUnpMMk52Y21WY0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENCOUlHWnliMjBnWENJdUwwTnZiblJ5WVdOMFEyOXVkR1Y0ZEZ3aU8xeHVhVzF3YjNKMElIUjVjR1VnZXlCR1lXSnlhV05EYjI1MGNtRmpkRUZrWVhCMFpYSWdmU0JtY205dElGd2lMaTlEYjI1MGNtRmpkRUZrWVhCMFpYSmNJanRjYm1sdGNHOXlkQ0I3SUVOdmRXTm9SRUpMWlhseklIMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OW1iM0l0WTI5MVkyaGtZbHdpTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJCWW5OMGNtRmpkQ0JpWVhObElHTnNZWE56SUdadmNpQnpaWEYxWlc1alpTQm5aVzVsY21GMGFXOXVYRzRnS2lCQWMzVnRiV0Z5ZVNCUWNtOTJhV1JsY3lCaElHWnlZVzFsZDI5eWF5Qm1iM0lnWjJWdVpYSmhkR2x1WnlCelpYRjFaVzUwYVdGc0lIWmhiSFZsY3lBb2JHbHJaU0J3Y21sdFlYSjVJR3RsZVhNcElHbHVJSFJvWlNCd1pYSnphWE4wWlc1alpTQnNZWGxsY2k1Y2JpQXFJRWx0Y0d4bGJXVnVkR0YwYVc5dWN5QnZaaUIwYUdseklHTnNZWE56SUdoaGJtUnNaU0IwYUdVZ2MzQmxZMmxtYVdOeklHOW1JR2h2ZHlCelpYRjFaVzVqWlhNZ1lYSmxJSE4wYjNKbFpDQmhibVFnYVc1amNtVnRaVzUwWldRZ2FXNGdaR2xtWm1WeVpXNTBYRzRnS2lCa1lYUmhZbUZ6WlNCemVYTjBaVzF6TGx4dUlDb2dRSEJoY21GdElIdFRaWEYxWlc1alpVOXdkR2x2Ym5OOUlHOXdkR2x2Ym5NZ0xTQkRiMjVtYVdkMWNtRjBhVzl1SUc5d2RHbHZibk1nWm05eUlIUm9aU0J6WlhGMVpXNWpaU0JuWlc1bGNtRjBiM0pjYmlBcUlFQmpiR0Z6Y3lCVFpYRjFaVzVqWlZ4dUlDb2dRR1Y0WVcxd2JHVmNiaUFxSUdCZ1lIUjVjR1Z6WTNKcGNIUmNiaUFxSUM4dklFVjRZVzF3YkdVZ2FXMXdiR1Z0Wlc1MFlYUnBiMjRnWm05eUlHRWdjM0JsWTJsbWFXTWdaR0YwWVdKaGMyVmNiaUFxSUdOc1lYTnpJRkJ2YzNSbmNtVnpVMlZ4ZFdWdVkyVWdaWGgwWlc1a2N5QlRaWEYxWlc1alpTQjdYRzRnS2lBZ0lHTnZibk4wY25WamRHOXlLRzl3ZEdsdmJuTTZJRk5sY1hWbGJtTmxUM0IwYVc5dWN5a2dlMXh1SUNvZ0lDQWdJSE4xY0dWeUtHOXdkR2x2Ym5NcE8xeHVJQ29nSUNCOVhHNGdLbHh1SUNvZ0lDQmhjM2x1WXlCdVpYaDBLQ2s2SUZCeWIyMXBjMlU4Ym5WdFltVnlQaUI3WEc0Z0tpQWdJQ0FnTHk4Z1NXMXdiR1Z0Wlc1MFlYUnBiMjRnZEc4Z1oyVjBJRzVsZUhRZ2RtRnNkV1VnWm5KdmJTQlFiM04wWjNKbFUxRk1JSE5sY1hWbGJtTmxYRzRnS2lBZ0lDQWdZMjl1YzNRZ2NtVnpkV3gwSUQwZ1lYZGhhWFFnZEdocGN5NXZjSFJwYjI1ekxtVjRaV04xZEc5eUxuSmhkeWhnVTBWTVJVTlVJRzVsZUhSMllXd29KeVI3ZEdocGN5NXZjSFJwYjI1ekxtNWhiV1Y5SnlsZ0tUdGNiaUFxSUNBZ0lDQnlaWFIxY200Z2NHRnljMlZKYm5Rb2NtVnpkV3gwTG5KdmQzTmJNRjB1Ym1WNGRIWmhiQ2s3WEc0Z0tpQWdJSDFjYmlBcVhHNGdLaUFnSUdGemVXNWpJR04xY25KbGJuUW9LVG9nVUhKdmJXbHpaVHh1ZFcxaVpYSStJSHRjYmlBcUlDQWdJQ0F2THlCSmJYQnNaVzFsYm5SaGRHbHZiaUIwYnlCblpYUWdZM1Z5Y21WdWRDQjJZV3gxWlNCbWNtOXRJRkJ2YzNSbmNtVlRVVXdnYzJWeGRXVnVZMlZjYmlBcUlDQWdJQ0JqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCMGFHbHpMbTl3ZEdsdmJuTXVaWGhsWTNWMGIzSXVjbUYzS0dCVFJVeEZRMVFnWTNWeWNuWmhiQ2duSkh0MGFHbHpMbTl3ZEdsdmJuTXVibUZ0WlgwbktXQXBPMXh1SUNvZ0lDQWdJSEpsZEhWeWJpQndZWEp6WlVsdWRDaHlaWE4xYkhRdWNtOTNjMXN3WFM1amRYSnlkbUZzS1R0Y2JpQXFJQ0FnZlZ4dUlDcGNiaUFxSUNBZ1lYTjVibU1nY21GdVoyVW9ZMjkxYm5RNklHNTFiV0psY2lrNklGQnliMjFwYzJVOGJuVnRZbVZ5VzEwK0lIdGNiaUFxSUNBZ0lDQXZMeUJKYlhCc1pXMWxiblJoZEdsdmJpQjBieUJuWlhRZ1lTQnlZVzVuWlNCdlppQjJZV3gxWlhOY2JpQXFJQ0FnSUNCamIyNXpkQ0IyWVd4MVpYTTZJRzUxYldKbGNsdGRJRDBnVzEwN1hHNGdLaUFnSUNBZ1ptOXlJQ2hzWlhRZ2FTQTlJREE3SUdrZ1BDQmpiM1Z1ZERzZ2FTc3JLU0I3WEc0Z0tpQWdJQ0FnSUNCMllXeDFaWE11Y0hWemFDaGhkMkZwZENCMGFHbHpMbTVsZUhRb0tTazdYRzRnS2lBZ0lDQWdmVnh1SUNvZ0lDQWdJSEpsZEhWeWJpQjJZV3gxWlhNN1hHNGdLaUFnSUgxY2JpQXFJSDFjYmlBcVhHNGdLaUF2THlCVmMyRm5aVnh1SUNvZ1kyOXVjM1FnYzJWeGRXVnVZMlVnUFNCdVpYY2dVRzl6ZEdkeVpYTlRaWEYxWlc1alpTaDdYRzRnS2lBZ0lHNWhiV1U2SUNkMWMyVnlYMmxrWDNObGNTY3NYRzRnS2lBZ0lHVjRaV04xZEc5eU9pQmtZa1Y0WldOMWRHOXlYRzRnS2lCOUtUdGNiaUFxWEc0Z0tpQmpiMjV6ZENCdVpYaDBTV1FnUFNCaGQyRnBkQ0J6WlhGMVpXNWpaUzV1WlhoMEtDazdYRzRnS2lCZ1lHQmNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoWW5KcFkwTnZiblJ5WVdOMFUyVnhkV1Z1WTJVZ1pYaDBaVzVrY3lCVFpYRjFaVzVqWlNCN1hHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1EzSmxZWFJsY3lCaElHNWxkeUJ6WlhGMVpXNWpaU0JwYm5OMFlXNWpaVnh1SUNBZ0tpQkFjM1Z0YldGeWVTQlFjbTkwWldOMFpXUWdZMjl1YzNSeWRXTjBiM0lnZEdoaGRDQnBibWwwYVdGc2FYcGxjeUIwYUdVZ2MyVnhkV1Z1WTJVZ2QybDBhQ0IwYUdVZ2NISnZkbWxrWldRZ2IzQjBhVzl1YzF4dUlDQWdLaTljYmlBZ1kyOXVjM1J5ZFdOMGIzSW9iM0IwYVc5dWN6b2dVMlZ4ZFdWdVkyVlBjSFJwYjI1ekxDQmhaR0Z3ZEdWeU9pQkJaR0Z3ZEdWeVBHRnVlU3dnWVc1NUxDQmhibmsrS1NCN1hHNGdJQ0FnYzNWd1pYSW9iM0IwYVc5dWN5d2dZV1JoY0hSbGNpazdYRzRnSUgxY2JseHVJQ0F2S2lwY2JpQWdJQ29nUUdSbGMyTnlhWEIwYVc5dUlGSmxkSEpwWlhabGN5QjBhR1VnWTNWeWNtVnVkQ0IyWVd4MVpTQnZaaUIwYUdVZ2MyVnhkV1Z1WTJWY2JpQWdJQ29nUUhOMWJXMWhjbmtnUjJWMGN5QjBhR1VnWTNWeWNtVnVkQ0IyWVd4MVpTQnZaaUIwYUdVZ2MyVnhkV1Z1WTJVZ1puSnZiU0J6ZEc5eVlXZGxMaUJKWmlCMGFHVWdjMlZ4ZFdWdVkyVmNiaUFnSUNvZ1pHOWxjMjRuZENCbGVHbHpkQ0I1WlhRc0lHbDBJSEpsZEhWeWJuTWdkR2hsSUdOdmJtWnBaM1Z5WldRZ2MzUmhjblJwYm1jZ2RtRnNkV1V1WEc0Z0lDQXFJRUJ5WlhSMWNtNGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2RHOGdkR2hsSUdOMWNuSmxiblFnYzJWeGRXVnVZMlVnZG1Gc2RXVmNiaUFnSUNvdlhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklHTjFjbkpsYm5Rb1hHNGdJQ0FnTGk0dVlYSm5jem9nVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuUEdGdWVUNWNiaUFnS1RvZ1VISnZiV2x6WlR4emRISnBibWNnZkNCdWRXMWlaWElnZkNCaWFXZHBiblErSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUN3Z2JHOW5JSDBnUFNBb1hHNGdJQ0FnSUNCaGQyRnBkQ0IwYUdsekxteHZaME4wZUNoaGNtZHpMQ0JQY0dWeVlYUnBiMjVMWlhsekxsSkZRVVFzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NWpkWEp5Wlc1MEtUdGNiaUFnSUNCc1pYUWdZMkZqYUdWa1EzVnljbVZ1ZERvZ1lXNTVPMXh1SUNBZ0lHTnZibk4wSUhzZ2JtRnRaU3dnYzNSaGNuUlhhWFJvSUgwZ1BTQjBhR2x6TG05d2RHbHZibk03WEc0Z0lDQWdZMjl1YzNRZ1lXUmhjSFJsY2sxbGRHRWdQU0FvWTNSNElHRnpJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrdVoyVjBVMlZ4ZFdWdVkyVlRaV2R5WldkaGRHbHZiaWhjYmlBZ0lDQWdJRk4wY21sdVp5aHVZVzFsS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdkSEo1SUh0Y2JpQWdJQ0FnSUdOaFkyaGxaRU4xY25KbGJuUWdQU0JqZEhndVoyVjBSbkp2YlVOb2FXeGtjbVZ1S0c1aGJXVWdZWE1nWVc1NUtUdGNiaUFnSUNBZ0lHbG1JQ2hqWVdOb1pXUkRkWEp5Wlc1MElDRTlQU0IxYm1SbFptbHVaV1FnSmlZZ1kyRmphR1ZrUTNWeWNtVnVkQ0FoUFQwZ2JuVnNiQ2xjYmlBZ0lDQWdJQ0FnY21WMGRYSnVJSFJvYVhNdWNHRnljMlVvWTJGamFHVmtRM1Z5Y21WdWRDazdYRzRnSUNBZ0lDQmpiMjV6ZENCelpYRjFaVzVqWlRvZ1UyVnhkV1Z1WTJWTmIyUmxiQ0E5SUdGM1lXbDBJSFJvYVhNdWNtVndieTV5WldGa0tHNWhiV1VnWVhNZ2MzUnlhVzVuTENCamRIZ3BPMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUm9hWE11Y0dGeWMyVW9jMlZ4ZFdWdVkyVXVZM1Z5Y21WdWRDQmhjeUJ6ZEhKcGJtY2dmQ0J1ZFcxaVpYSXBPMXh1SUNBZ0lIMGdZMkYwWTJnZ0tHVTZJR0Z1ZVNrZ2UxeHVJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUM4dklFbG1JSFJvWlNCelpYRjFaVzVqWlNCcGN5QnpkWEJ3YjNObFpDQjBieUJzYVhabElHbHVJSEJ5YVhaaGRHVXZjMmhoY21Wa0lHTnZiR3hsWTNScGIyNXpMRnh1SUNBZ0lDQWdJQ0F2THlCeVpXRmtJR2wwSUdaeWIyMGdkR2h2YzJVZ1kyOXNiR1ZqZEdsdmJuTWdkWE5wYm1jZ2RHaGxJR0ZrWVhCMFpYSWdLRzV2ZENCMGFHVWdjM1IxWWlCa2FYSmxZM1JzZVNrdVhHNGdJQ0FnSUNBZ0lHbG1JQ2hoWkdGd2RHVnlUV1YwWVQ4dVkyOXNiR1ZqZEdsdmJuTS9MbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdJQ0FnSUdOdmJuTjBJR0ZrWVhCMFpYSWdQU0IwYUdsekxtRmtZWEIwWlhJZ1lYTWdkVzVyYm05M2JpQmhjeUJHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJN1hHNGdJQ0FnSUNBZ0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtGTmxjWFZsYm1ObFRXOWtaV3dnWVhNZ1lXNTVLVHRjYmlBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J3ZFdKc2FXTkxaWGtnUFNBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VjM1IxWWk1amNtVmhkR1ZEYjIxd2IzTnBkR1ZMWlhrb1hHNGdJQ0FnSUNBZ0lDQWdJQ0IwWVdKc1pVNWhiV1VzWEc0Z0lDQWdJQ0FnSUNBZ0lDQmJVM1J5YVc1bktHNWhiV1VwWFZ4dUlDQWdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQWdJQ0FnWm05eUlDaGpiMjV6ZENCamIyd2diMllnWVdSaGNIUmxjazFsZEdFdVkyOXNiR1ZqZEdsdmJuTXBJSHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIUnllU0I3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElIQnlhWFpoZEdWQlpHRndkR1Z5SUQwZ1lXUmhjSFJsY2k1bWIzSlFjbWwyWVhSbEtHTnZiQ2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJR052Ym5OMElISmhkeUE5SUdGM1lXbDBJQ2h3Y21sMllYUmxRV1JoY0hSbGNpQmhjeUJoYm5rcExuSmxZV1JUZEdGMFpTaGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQndkV0pzYVdOTFpYa3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0SUdGeklHRnVlVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQnBaaUFvY21GM0lDWW1JSEpoZHk1amRYSnlaVzUwSUNFOVBTQjFibVJsWm1sdVpXUWdKaVlnY21GM0xtTjFjbkpsYm5RZ0lUMDlJRzUxYkd3cFhHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjR0Z5YzJVb2NtRjNMbU4xY25KbGJuUWdZWE1nWVc1NUtUdGNiaUFnSUNBZ0lDQWdJQ0FnSUgwZ1kyRjBZMmdnS0dWeWNqb2dZVzU1S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdsbUlDaGxjbklnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0JqYjI1MGFXNTFaVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdMeThnWm1Gc2JDQjBhSEp2ZFdkb0lIUnZJSEpsWjNWc1lYSWdjM1JoY25SWGFYUm9JR1poYkd4aVlXTnJJR1p2Y2lCaGJua2djR0Z5YzJVdlNVOGdaWEp5YjNKelhHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lDQWdiRzluTG1SbFluVm5LRnh1SUNBZ0lDQWdJQ0FnSUNBZ1lGUnllV2x1WnlCMGJ5QnlaWE52YkhabElHTjFjbkpsYm5RZ2MyVnhkV1Z1WTJVZ0pIdHVZVzFsZlNCMllXeDFaU0JtY205dElHTnZiblJsZUhRZ2RISmxaV0JjYmlBZ0lDQWdJQ0FnSUNBcE8xeHVJQ0FnSUNBZ0lDQWdJR05oWTJobFpFTjFjbkpsYm5RZ1BTQmpkSGd1WjJWMFJuSnZiVU5vYVd4a2NtVnVLRzVoYldVZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUNBZ0lDQnBaaUFvWTJGamFHVmtRM1Z5Y21WdWRDQWhQVDBnZFc1a1pXWnBibVZrSUNZbUlHTmhZMmhsWkVOMWNuSmxiblFnSVQwOUlHNTFiR3dwSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR3h2Wnk1a1pXSjFaeWhjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZRkpsZEhKcFpYWmxaQ0JqWVdOb1pXUWdZM1Z5Y21WdWRDQjJZV3gxWlNCbWIzSWdjMlZ4ZFdWdVkyVWdKSHR1WVcxbGZUb2dKSHRqWVdOb1pXUkRkWEp5Wlc1MGZXQmNiaUFnSUNBZ0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FnSUM4dklHVnpiR2x1ZEMxa2FYTmhZbXhsTFc1bGVIUXRiR2x1WlNCQWRIbHdaWE5qY21sd2RDMWxjMnhwYm5RdmJtOHRkVzUxYzJWa0xYWmhjbk5jYmlBZ0lDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ2RXNXJibTkzYmlrZ2UxeHVJQ0FnSUNBZ0lDQWdJQzh2SUdaaGJHd2dkR2h5YjNWbmFGeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQWdJR2xtSUNoallXTm9aV1JEZFhKeVpXNTBJRDA5UFNCMWJtUmxabWx1WldRZ2ZId2dZMkZqYUdWa1EzVnljbVZ1ZENBOVBUMGdiblZzYkNrZ2UxeHVJQ0FnSUNBZ0lDQWdJR3h2Wnk1cGJtWnZLR0JPYnlCallXTm9aV1FnZG1Gc2RXVWdabTl5SUhObGNYVmxibU5sSUNSN2JtRnRaWDBnYVc0Z1kyOXVkR1Y0ZEdBcE8xeHVJQ0FnSUNBZ0lDQWdJR05oWTJobFpFTjFjbkpsYm5RZ1BTQnpkR0Z5ZEZkcGRHZzdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdkR2hwY3k1d1lYSnpaU2hqWVdOb1pXUkRkWEp5Wlc1MEtUdGNiaUFnSUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nWVc1NUtTQjdYRzRnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVsdWRHVnlibUZzUlhKeWIzSW9YRzRnSUNBZ0lDQWdJQ0FnSUNCZ1JtRnBiR1ZrSUhSdklIQmhjbk5sSUdsdWFYUnBZV3dnZG1Gc2RXVWdabTl5SUhObGNYVmxibU5sSUNSN2MzUmhjblJYYVhSb2ZUb2dKSHRsZldCY2JpQWdJQ0FnSUNBZ0lDQXBPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNiaUFnSUNBZ0lDQWdZRVpoYVd4bFpDQjBieUJ5WlhSeWFXVjJaU0JqZFhKeVpXNTBJSFpoYkhWbElHWnZjaUJ6WlhGMVpXNWpaU0FrZTI1aGJXVjlPaUFrZTJWOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNCOVhHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVsdVkzSmxiV1Z1ZEhNZ2RHaGxJSE5sY1hWbGJtTmxJSFpoYkhWbFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVsdVkzSmxZWE5sY3lCMGFHVWdZM1Z5Y21WdWRDQnpaWEYxWlc1alpTQjJZV3gxWlNCaWVTQjBhR1VnYzNCbFkybG1hV1ZrSUdGdGIzVnVkQ0JoYm1RZ2NHVnljMmx6ZEhOY2JpQWdJQ29nZEdobElHNWxkeUIyWVd4MVpTQjBieUJ6ZEc5eVlXZGxMaUJVYUdseklHMWxkR2h2WkNCb1lXNWtiR1Z6SUdKdmRHZ2diblZ0WlhKcFl5QmhibVFnUW1sblNXNTBJSE5sY1hWbGJtTmxJSFI1Y0dWekxseHVJQ0FnS2lCQWNHRnlZVzBnZTNOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkSDBnWTNWeWNtVnVkQ0F0SUZSb1pTQmpkWEp5Wlc1MElIWmhiSFZsSUc5bUlIUm9aU0J6WlhGMVpXNWpaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UyNTFiV0psY24wZ1cyTnZkVzUwWFNBdElFOXdkR2x2Ym1Gc0lHRnRiM1Z1ZENCMGJ5QnBibU55WlcxbGJuUWdZbmtzSUdSbFptRjFiSFJ6SUhSdklIUm9aU0J6WlhGMVpXNWpaU2R6SUdsdVkzSmxiV1Z1ZEVKNUlIWmhiSFZsWEc0Z0lDQXFJRUJ5WlhSMWNtNGdRU0J3Y205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2RHOGdkR2hsSUc1bGR5QnpaWEYxWlc1alpTQjJZV3gxWlNCaFpuUmxjaUJwYm1OeVpXMWxiblJwYm1kY2JpQWdJQ292WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQmhjM2x1WXlCcGJtTnlaVzFsYm5Rb1hHNGdJQ0FnWTI5MWJuUTZJRzUxYldKbGNpQjhJSFZ1WkdWbWFXNWxaQ3hjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBseHVJQ0FwT2lCUWNtOXRhWE5sUEhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkRDRnZTF4dUlDQWdJR052Ym5OMElHeHZaeUE5SUdOMGVDNXNiMmRuWlhJdVptOXlLSFJvYVhNdWFXNWpjbVZ0Wlc1MEtUdGNiaUFnSUNCamIyNXpkQ0I3SUhSNWNHVXNJR2x1WTNKbGJXVnVkRUo1TENCdVlXMWxJSDBnUFNCMGFHbHpMbTl3ZEdsdmJuTTdYRzRnSUNBZ2FXWWdLQ0Z1WVcxbEtTQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lsTmxjWFZsYm1ObElHNWhiV1VnYVhNZ2NtVnhkV2x5WldSY0lpazdYRzRnSUNBZ2JHOW5MbWx1Wm04b1lFOWlkR0ZwYm1sdVp5QnpaWEYxWlc1alpTQnNiMk5ySUdadmNpQnpaWEYxWlc1alpTQWtlMjVoYldWOVlDazdYRzRnSUNBZ0x5OGdjbVYwZFhKdUlFWmhZbkpwWTBOdmJuUnlZV04wVTJWeGRXVnVZMlV1Ykc5amF5NWxlR1ZqZFhSbEtHRnplVzVqSUNncElEMCtJSHRjYmlBZ0lDQmpiMjV6ZENCMGIwbHVZM0psYldWdWRFSjVJRDBnWTI5MWJuUWdmSHdnYVc1amNtVnRaVzUwUW5rN1hHNGdJQ0FnYVdZZ0tIUnZTVzVqY21WdFpXNTBRbmtnSlNCcGJtTnlaVzFsYm5SQ2VTQWhQVDBnTUNsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnVm1Gc2RXVWdkRzhnYVc1amNtVnRaVzUwSUdSdlpYTWdibTkwSUdOdmJuTnBaR1Z5SUhSb1pTQnBibU55WlcxbGJuUkNlU0J6WlhSMGFXNW5PaUFrZTJsdVkzSmxiV1Z1ZEVKNWZXQmNiaUFnSUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnZEhsd1pVNWhiV1VnUFZ4dUlDQWdJQ0FnZEhsd1pXOW1JSFI1Y0dVZ1BUMDlJRndpWm5WdVkzUnBiMjVjSWlBbUppQW9kSGx3WlNCaGN5QmhibmtwUHk1dVlXMWxYRzRnSUNBZ0lDQWdJRDhnS0hSNWNHVWdZWE1nWVc1NUtTNXVZVzFsWEc0Z0lDQWdJQ0FnSURvZ2RIbHdaVHRjYmlBZ0lDQmpiMjV6ZENCamRYSnlaVzUwVm1Gc2RXVWdQU0JoZDJGcGRDQjBhR2x6TG1OMWNuSmxiblFvWTNSNEtUdGNibHh1SUNBZ0lHRnplVzVqSUdaMWJtTjBhVzl1SUhKbGRIVnlia0Z1WkVOaFkyaGxLSEpsY3pvZ1UyVnhkV1Z1WTJWTmIyUmxiQ0I4SUZCeWIyMXBjMlU4VTJWeGRXVnVZMlZOYjJSbGJENHBJSHRjYmlBZ0lDQWdJR2xtSUNoeVpYTWdhVzV6ZEdGdVkyVnZaaUJRY205dGFYTmxLU0J5WlhNZ1BTQmhkMkZwZENCeVpYTTdYRzRnSUNBZ0lDQnNiMmRjYmlBZ0lDQWdJQ0FnTG1admNpaHlaWFIxY201QmJtUkRZV05vWlNsY2JpQWdJQ0FnSUNBZ0xtbHVabThvWUZOMGIzSnBibWNnYm1WM0lDUjdibUZ0WlgwZ2MyVnhJSFpoYkhWbElHbHVJR05oWTJobE9pQWtlM0psY3k1amRYSnlaVzUwZldBcE8xeHVJQ0FnSUNBZ1kzUjRMbU5oWTJobExuQjFkQ2h1WVcxbElHRnpJSE4wY21sdVp5d2djbVZ6TG1OMWNuSmxiblFwTzF4dUlDQWdJQ0FnY21WMGRYSnVJSEpsY3p0Y2JpQWdJQ0I5WEc1Y2JpQWdJQ0JqYjI1emRDQndaWEptYjNKdFZYQnpaWEowSUQwZ1lYTjVibU1nS0Z4dUlDQWdJQ0FnYm1WNGREb2djM1J5YVc1bklId2diblZ0WW1WeUlId2dZbWxuYVc1MFhHNGdJQ0FnS1RvZ1VISnZiV2x6WlR4VFpYRjFaVzVqWlUxdlpHVnNQaUE5UGlCN1hHNGdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdZWGRoYVhRZ2NtVjBkWEp1UVc1a1EyRmphR1VvWEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV5WlhCdkxuVndaR0YwWlNodVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcExDQmpkSGdwWEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJSEpsZEhWeWJrRnVaRU5oWTJobEtGeHVJQ0FnSUNBZ0lDQWdJQ0FnZEdocGN5NXlaWEJ2TG1OeVpXRjBaU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdibVYzSUZObGNYVmxibU5sVFc5a1pXd29leUJwWkRvZ2JtRnRaU3dnWTNWeWNtVnVkRG9nYm1WNGRDQjlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdZM1I0WEc0Z0lDQWdJQ0FnSUNBZ0lDQXBYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjBhSEp2ZHlCbE8xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUgwN1hHNWNiaUFnSUNCamIyNXpkQ0JwYm1OeVpXMWxiblJUWlhKcFlXd2dQU0JoYzNsdVl5QW9YRzRnSUNBZ0lDQmlZWE5sT2lCemRISnBibWNnZkNCdWRXMWlaWElnZkNCaWFXZHBiblJjYmlBZ0lDQXBPaUJRY205dGFYTmxQSE4wY21sdVp5QjhJRzUxYldKbGNpQjhJR0pwWjJsdWRENGdQVDRnZTF4dUlDQWdJQ0FnYzNkcGRHTm9JQ2gwZVhCbFRtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCallYTmxJRTUxYldKbGNpNXVZVzFsT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlBb2RHaHBjeTV3WVhKelpTaGlZWE5sS1NCaGN5QnVkVzFpWlhJcElDc2dkRzlKYm1OeVpXMWxiblJDZVR0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JDYVdkSmJuUXVibUZ0WlRwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z0tIUm9hWE11Y0dGeWMyVW9ZbUZ6WlNrZ1lYTWdZbWxuYVc1MEtTQXJJRUpwWjBsdWRDaDBiMGx1WTNKbGJXVnVkRUo1S1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JUZEhKcGJtY3VibUZ0WlRwY2JpQWdJQ0FnSUNBZ0lDQnlaWFIxY200Z2RHaHBjeTV3WVhKelpTaGlZWE5sS1R0Y2JpQWdJQ0FnSUNBZ1kyRnpaU0JjSW5ObGNtbGhiRndpT2x4dUlDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0JRY205dGFYTmxMbkpsYzI5c2RtVW9YRzRnSUNBZ0lDQWdJQ0FnSUNCVFpYSnBZV3d1YVc1emRHRnVZMlV1WjJWdVpYSmhkR1VvWW1GelpTQmhjeUJ6ZEhKcGJtY3BYRzRnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ1pHVm1ZWFZzZERwY2JpQWdJQ0FnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dTVzUwWlhKdVlXeEZjbkp2Y2loY0lsTm9iM1ZzWkNCdVpYWmxjaUJvWVhCd1pXNWNJaWs3WEc0Z0lDQWdJQ0I5WEc0Z0lDQWdmVHRjYmx4dUlDQWdJQzh2SUVOb1pXTnJJR2xtSUcxdlpHVnNJR2x6SUdaMWJHeDVJSE5sWjNKbFoyRjBaV1FnNG9DVUlITmxjWFZsYm1ObElHZHZaWE1nVDA1TVdTQjBieUJ3Y21sMllYUmxJR052Ykd4bFkzUnBiMjV6TGx4dUlDQWdJQzh2SUZCeVpXWmxjaUIwYUdVZ1pYaHdiR2xqYVhRZ2NHVnlMWE5sY1hWbGJtTmxJRzFsZEdGa1lYUmhJSGRvWlc0Z1lYWmhhV3hoWW14bE95QnZkR2hsY25kcGMyVWdabUZzYkNCaVlXTnJJSFJ2WEc0Z0lDQWdMeThnZEdobElHTnZiblJsZUhRbmN5QnlaV2RwYzNSbGNtVmtJSEpsWVdRZ1kyOXNiR1ZqZEdsdmJuTWdLR052ZG1WeWN5QmxZWEpzZVNCd2F5Qm5aVzVsY21GMGFXOXVJSEJoZEdoektTNWNiaUFnSUNCamIyNXpkQ0JoWkdGd2RHVnlUV1YwWVNBOUlDaGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLUzVuWlhSVFpYRjFaVzVqWlZObFozSmxaMkYwYVc5dUtGeHVJQ0FnSUNBZ2JtRnRaVnh1SUNBZ0lDazdYRzRnSUNBZ1kyOXVjM1FnWm1Gc2JHSmhZMnREYjJ4c1pXTjBhVzl1Y3lBOUlDaGpkSGdnWVhNZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBLVnh1SUNBZ0lDQWdMbWRsZEZKbFlXUkRiMnhzWldOMGFXOXVjeWdwWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLRUp2YjJ4bFlXNHBPMXh1SUNBZ0lHTnZibk4wSUdWbVptVmpkR2wyWlVOdmJHeGxZM1JwYjI1eklEMWNiaUFnSUNBZ0lHRmtZWEIwWlhKTlpYUmhQeTVqYjJ4c1pXTjBhVzl1Y3o4dWJHVnVaM1JvSUQ4Z1lXUmhjSFJsY2sxbGRHRXVZMjlzYkdWamRHbHZibk1nT2lCbVlXeHNZbUZqYTBOdmJHeGxZM1JwYjI1ek8xeHVJQ0FnSUdOdmJuTjBJR1ZtWm1WamRHbDJaVVoxYkd4NVUyVm5jbVZuWVhSbFpDQTlYRzRnSUNBZ0lDQW9ZV1JoY0hSbGNrMWxkR0UvTG1aMWJHeDVVMlZuY21WbllYUmxaQ0EvUHlBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VhWE5HZFd4c2VWTmxaM0psWjJGMFpXUXBJQ1ltWEc0Z0lDQWdJQ0JsWm1abFkzUnBkbVZEYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2dnUGlBd08xeHVYRzRnSUNBZ2JHVjBJRzVsZUhRNklHRnVlVHRjYmlBZ0lDQnBaaUFvZEhsd1pVNWhiV1VnUFQwOUlGd2lkWFZwWkZ3aUtTQjdYRzRnSUNBZ0lDQjBhSEp2ZHlCdVpYY2dWVzV6ZFhCd2IzSjBaV1JGY25KdmNpaGNiaUFnSUNBZ0lDQWdZSFYxYVdRZ2NHc2daMlZ1WlhKaGRHbHZiaUJwY3lCdmJteDVJSE4xY0hCdmNuUmxaQ0IxYzJsdVp5QkFkWFZwWkNCaGJtUWdZU0JrWlhSbGNtMXBibWx6ZEdsaklITmxaV1JnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQnVaWGgwSUQwZ1lYZGhhWFFnYVc1amNtVnRaVzUwVTJWeWFXRnNLR04xY25KbGJuUldZV3gxWlNrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnYVdZZ0tHVm1abVZqZEdsMlpVWjFiR3g1VTJWbmNtVm5ZWFJsWkNrZ2UxeHVJQ0FnSUNBZ1kyOXVjM1FnYzJWeFRXOWtaV3dnUFNCdVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcE8xeHVJQ0FnSUNBZ1lYZGhhWFFnZEdocGN5NTNjbWwwWlZObGNYVmxibU5sVkc5RGIyeHNaV04wYVc5dWN5aGNiaUFnSUNBZ0lDQWdZM1I0TEZ4dUlDQWdJQ0FnSUNCelpYRk5iMlJsYkN4Y2JpQWdJQ0FnSUNBZ1pXWm1aV04wYVhabFEyOXNiR1ZqZEdsdmJuTmNiaUFnSUNBZ0lDazdYRzRnSUNBZ0lDQnNiMmN1WkdWaWRXY29YRzRnSUNBZ0lDQWdJR0JUWlhGMVpXNWpaUzVwYm1OeVpXMWxiblFnS0hCeWFYWmhkR1V0YjI1c2VTa2dKSHR1WVcxbGZTQmpkWEp5Wlc1MFBTUjdZM1Z5Y21WdWRGWmhiSFZsSUdGeklHRnVlWDBnYm1WNGREMGtlMjVsZUhRZ1lYTWdZVzU1ZldCY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCamRIZ3VZMkZqYUdVdWNIVjBLRzVoYldVZ1lYTWdjM1J5YVc1bkxDQnVaWGgwS1R0Y2JpQWdJQ0FnSUhKbGRIVnliaUJ1WlhoME8xeHVJQ0FnSUgxY2JseHVJQ0FnSUdOdmJuTjBJSE5sY1NBOUlHRjNZV2wwSUhCbGNtWnZjbTFWY0hObGNuUW9ibVY0ZENrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUZObGNYVmxibU5sTG1sdVkzSmxiV1Z1ZENBa2UyNWhiV1Y5SUdOMWNuSmxiblE5Skh0amRYSnlaVzUwVm1Gc2RXVWdZWE1nWVc1NWZTQnVaWGgwUFNSN2JtVjRkQ0JoY3lCaGJubDlZRnh1SUNBZ0lDazdYRzVjYmlBZ0lDQXZMeUJTWlhCc2FXTmhkR1VnYzJWeGRXVnVZMlVnZEc4Z2MyVm5jbVZuWVhSbFpDQmpiMnhzWldOMGFXOXVjeUJwWmlCdGIyUmxiQ0IxYzJWeklIQnlhWFpoZEdVdmMyaGhjbVZrSUdSaGRHRXVYRzRnSUNBZ0x5OGdWMmhsYmlCdFpYUmhaR0YwWVNCcGMyNG5kQ0JoZG1GcGJHRmliR1VzSUdaaGJHd2dZbUZqYXlCMGJ5QjBhR1VnWTI5dWRHVjRkQ2R6SUhKbFoybHpkR1Z5WldRZ2NtVmhaQ0JqYjJ4c1pXTjBhVzl1Y3k1Y2JpQWdJQ0JwWmlBb1pXWm1aV04wYVhabFEyOXNiR1ZqZEdsdmJuTXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQmhkMkZwZENCMGFHbHpMbmR5YVhSbFUyVnhkV1Z1WTJWVWIwTnZiR3hsWTNScGIyNXpLR04wZUN3Z2MyVnhMQ0JsWm1abFkzUnBkbVZEYjJ4c1pXTjBhVzl1Y3lrN1hHNGdJQ0FnZlZ4dVhHNGdJQ0FnY21WMGRYSnVJSE5sY1M1amRYSnlaVzUwSUdGeklITjBjbWx1WnlCOElHNTFiV0psY2lCOElHSnBaMmx1ZER0Y2JpQWdJQ0F2THlCOUxDQnVZVzFsS1R0Y2JpQWdmVnh1WEc0Z0lDOHFLbHh1SUNBZ0tpQkFaR1Z6WTNKcGNIUnBiMjRnUlc1emRYSmxjeUIwYUdVZ2MyVnhkV1Z1WTJVZ1pYaHBjM1J6SUdGdVpDQnBjeUJoZENCc1pXRnpkQ0JoSUdkcGRtVnVJSFpoYkhWbFhHNGdJQ0FxSUVCemRXMXRZWEo1SUVaaFluSnBZeUJ1WldWa2N5QjBieUJ5WlhOd1pXTjBJSE5sWjNKbFoyRjBaV1F2Y0hKcGRtRjBaUzl6YUdGeVpXUWdjM1J2Y21GblpTQnlkV3hsY3lCM2FHVnVJR055WldGMGFXNW5YRzRnSUNBcUlITmxjWFZsYm1ObGN5QW9abTl5SUdWNFlXMXdiR1VnWm05eUlIQmxjbk5wYzNSbGJuUWdRSFpsY25OcGIyNG9kSEoxWlNrZ1lXNWtJRUJ6WlhGMVpXNWpaU2dwS1M1Y2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUdWdWMzVnlaVUYwVEdWaGMzUW9YRzRnSUNBZ2RtRnNkV1U2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkQ3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhZVzU1UGx4dUlDQXBPaUJRY205dGFYTmxQSE4wY21sdVp5QjhJRzUxYldKbGNpQjhJR0pwWjJsdWRENGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjZ2ZTQTlJQ2hjYmlBZ0lDQWdJR0YzWVdsMElIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lFOXdaWEpoZEdsdmJrdGxlWE11VlZCRVFWUkZMQ0IwY25WbEtWeHVJQ0FnSUNrdVptOXlLSFJvYVhNdVpXNXpkWEpsUVhSTVpXRnpkQ2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QnVZVzFsSUgwZ1BTQjBhR2x6TG05d2RHbHZibk03WEc0Z0lDQWdhV1lnS0NGdVlXMWxLU0IwYUhKdmR5QnVaWGNnU1c1MFpYSnVZV3hGY25KdmNpaGNJbE5sY1hWbGJtTmxJRzVoYldVZ2FYTWdjbVZ4ZFdseVpXUmNJaWs3WEc1Y2JpQWdJQ0JqYjI1emRDQmtaWE5wY21Wa0lEMGdkR2hwY3k1d1lYSnpaU2gyWVd4MVpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCbmNtVmhkR1Z5VkdoaGJpQTlJQ2hjYmlBZ0lDQWdJR0U2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkQ3hjYmlBZ0lDQWdJR0k2SUhOMGNtbHVaeUI4SUc1MWJXSmxjaUI4SUdKcFoybHVkRnh1SUNBZ0lDazZJR0p2YjJ4bFlXNGdQVDRnZTF4dUlDQWdJQ0FnYVdZZ0tIUjVjR1Z2WmlCaElEMDlQU0JjSW1KcFoybHVkRndpSUh4OElIUjVjR1Z2WmlCaUlEMDlQU0JjSW1KcFoybHVkRndpS1NCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCQ2FXZEpiblFvWVNCaGN5QmhibmtwSUQ0Z1FtbG5TVzUwS0dJZ1lYTWdZVzU1S1R0Y2JpQWdJQ0FnSUgxY2JpQWdJQ0FnSUdsbUlDaDBlWEJsYjJZZ1lTQTlQVDBnWENKdWRXMWlaWEpjSWlCOGZDQjBlWEJsYjJZZ1lpQTlQVDBnWENKdWRXMWlaWEpjSWlrZ2UxeHVJQ0FnSUNBZ0lDQnlaWFIxY200Z1RuVnRZbVZ5S0dFcElENGdUblZ0WW1WeUtHSXBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lDQWdjbVYwZFhKdUlGTjBjbWx1WnloaEtTQStJRk4wY21sdVp5aGlLVHRjYmlBZ0lDQjlPMXh1WEc0Z0lDQWdZMjl1YzNRZ1lXUmhjSFJsY2sxbGRHRWdQU0FvWTNSNElHRnpJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZENrdVoyVjBVMlZ4ZFdWdVkyVlRaV2R5WldkaGRHbHZiaWhjYmlBZ0lDQWdJRk4wY21sdVp5aHVZVzFsS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdZMjl1YzNRZ2FYTkdkV3hzZVZObFozSmxaMkYwWldRZ1BWeHVJQ0FnSUNBZ1lXUmhjSFJsY2sxbGRHRWdJVDA5SUhWdVpHVm1hVzVsWkNBbUpseHVJQ0FnSUNBZ1lXUmhjSFJsY2sxbGRHRXVablZzYkhsVFpXZHlaV2RoZEdWa0lDWW1YRzRnSUNBZ0lDQmhaR0Z3ZEdWeVRXVjBZUzVqYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2dnUGlBd08xeHVYRzRnSUNBZ1kyOXVjM1FnY21WaFpFVjRhWE4wYVc1bklEMGdZWE41Ym1NZ0tDazZJRkJ5YjIxcGMyVThVMlZ4ZFdWdVkyVk5iMlJsYkNCOElIVnVaR1ZtYVc1bFpENGdQVDRnZTF4dUlDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRjNZV2wwSUhSb2FYTXVjbVZ3Ynk1eVpXRmtLRzVoYldVZ1lYTWdjM1J5YVc1bkxDQmpkSGdwTzF4dUlDQWdJQ0FnZlNCallYUmphQ0FvWlRvZ1lXNTVLU0I3WEc0Z0lDQWdJQ0FnSUdsbUlDaGxJR2x1YzNSaGJtTmxiMllnVG05MFJtOTFibVJGY25KdmNpa2djbVYwZFhKdUlIVnVaR1ZtYVc1bFpEdGNiaUFnSUNBZ0lDQWdkR2h5YjNjZ1pUdGNiaUFnSUNBZ0lIMWNiaUFnSUNCOU8xeHVYRzRnSUNBZ1kyOXVjM1FnZDNKcGRHVlFjbWwyWVhSbElEMGdZWE41Ym1NZ0tGeHVJQ0FnSUNBZ2MyVnhUVzlrWld3NklGTmxjWFZsYm1ObFRXOWtaV3dzWEc0Z0lDQWdJQ0JqYjJ4c1pXTjBhVzl1Y3pvZ2MzUnlhVzVuVzExY2JpQWdJQ0FwSUQwK0lIdGNiaUFnSUNBZ0lHRjNZV2wwSUhSb2FYTXVkM0pwZEdWVFpYRjFaVzVqWlZSdlEyOXNiR1ZqZEdsdmJuTW9ZM1I0TENCelpYRk5iMlJsYkN3Z1kyOXNiR1ZqZEdsdmJuTXBPMXh1SUNBZ0lDQWdZM1I0TG1OaFkyaGxMbkIxZENodVlXMWxJR0Z6SUhOMGNtbHVaeXdnYzJWeFRXOWtaV3d1WTNWeWNtVnVkQ2s3WEc0Z0lDQWdmVHRjYmx4dUlDQWdJR052Ym5OMElIVndjMlZ5ZEZCMVlteHBZeUE5SUdGemVXNWpJQ2h1WlhoME9pQnpkSEpwYm1jZ2ZDQnVkVzFpWlhJZ2ZDQmlhV2RwYm5RcElEMCtJSHRjYmlBZ0lDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCaGQyRnBkQ0IwYUdsekxuSmxjRzh1ZFhCa1lYUmxLRnh1SUNBZ0lDQWdJQ0FnSUc1bGR5QlRaWEYxWlc1alpVMXZaR1ZzS0hzZ2FXUTZJRzVoYldVc0lHTjFjbkpsYm5RNklHNWxlSFFnZlNrc1hHNGdJQ0FnSUNBZ0lDQWdZM1I0WEc0Z0lDQWdJQ0FnSUNrN1hHNGdJQ0FnSUNCOUlHTmhkR05vSUNobE9pQmhibmtwSUh0Y2JpQWdJQ0FnSUNBZ2FXWWdLR1VnYVc1emRHRnVZMlZ2WmlCT2IzUkdiM1Z1WkVWeWNtOXlLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGM1lXbDBJSFJvYVhNdWNtVndieTVqY21WaGRHVW9YRzRnSUNBZ0lDQWdJQ0FnSUNCdVpYY2dVMlZ4ZFdWdVkyVk5iMlJsYkNoN0lHbGtPaUJ1WVcxbExDQmpkWEp5Wlc1ME9pQnVaWGgwSUgwcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnWTNSNFhHNGdJQ0FnSUNBZ0lDQWdLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnSUNCMGFISnZkeUJsTzF4dUlDQWdJQ0FnZlZ4dUlDQWdJSDA3WEc1Y2JpQWdJQ0JqYjI1emRDQmxlR2x6ZEdsdVp5QTlJR0YzWVdsMElISmxZV1JGZUdsemRHbHVaeWdwTzF4dUlDQWdJR2xtSUNnaFpYaHBjM1JwYm1jcElIdGNiaUFnSUNBZ0lHTnZibk4wSUhObGNVMXZaR1ZzSUQwZ2JtVjNJRk5sY1hWbGJtTmxUVzlrWld3b2V5QnBaRG9nYm1GdFpTd2dZM1Z5Y21WdWREb2daR1Z6YVhKbFpDQjlLVHRjYmlBZ0lDQWdJR2xtSUNocGMwWjFiR3g1VTJWbmNtVm5ZWFJsWkNrZ2UxeHVJQ0FnSUNBZ0lDQmhkMkZwZENCM2NtbDBaVkJ5YVhaaGRHVW9jMlZ4VFc5a1pXd3NJR0ZrWVhCMFpYSk5aWFJoSVM1amIyeHNaV04wYVc5dWN5azdYRzRnSUNBZ0lDQWdJSEpsZEhWeWJpQmtaWE5wY21Wa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1kyOXVjM1FnWTNKbFlYUmxaQ0E5SUdGM1lXbDBJSFZ3YzJWeWRGQjFZbXhwWXloa1pYTnBjbVZrS1R0Y2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWNtVndiR2xqWVhSbFZHOVRaV2R5WldkaGRHVmtRMjlzYkdWamRHbHZibk1vWTNSNExDQmpjbVZoZEdWa0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJoY25ObEtHTnlaV0YwWldRdVkzVnljbVZ1ZENCaGN5QmhibmtwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElHTjFjbkpsYm5RZ1BTQjBhR2x6TG5CaGNuTmxLR1Y0YVhOMGFXNW5MbU4xY25KbGJuUWdZWE1nWVc1NUtUdGNiaUFnSUNCcFppQW9JV2R5WldGMFpYSlVhR0Z1S0dSbGMybHlaV1FzSUdOMWNuSmxiblFwS1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnWTNWeWNtVnVkRHRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCelpYRk5iMlJsYkNBOUlHNWxkeUJUWlhGMVpXNWpaVTF2WkdWc0tIc2dhV1E2SUc1aGJXVXNJR04xY25KbGJuUTZJR1JsYzJseVpXUWdmU2s3WEc0Z0lDQWdhV1lnS0dselJuVnNiSGxUWldkeVpXZGhkR1ZrS1NCN1hHNGdJQ0FnSUNCaGQyRnBkQ0IzY21sMFpWQnlhWFpoZEdVb2MyVnhUVzlrWld3c0lHRmtZWEIwWlhKTlpYUmhJUzVqYjJ4c1pXTjBhVzl1Y3lrN1hHNGdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1hHNGdJQ0FnSUNBZ0lHQlRaWEYxWlc1alpTNWxibk4xY21WQmRFeGxZWE4wSUNod2NtbDJZWFJsTFc5dWJIa3BJQ1I3Ym1GdFpYMGdZM1Z5Y21WdWREMGtlMk4xY25KbGJuUWdZWE1nWVc1NWZTQmtaWE5wY21Wa1BTUjdaR1Z6YVhKbFpDQmhjeUJoYm5sOVlGeHVJQ0FnSUNBZ0tUdGNiaUFnSUNBZ0lISmxkSFZ5YmlCa1pYTnBjbVZrTzF4dUlDQWdJSDFjYmx4dUlDQWdJR052Ym5OMElIVndaR0YwWldRZ1BTQmhkMkZwZENCMWNITmxjblJRZFdKc2FXTW9aR1Z6YVhKbFpDazdYRzRnSUNBZ1lYZGhhWFFnZEdocGN5NXlaWEJzYVdOaGRHVlViMU5sWjNKbFoyRjBaV1JEYjJ4c1pXTjBhVzl1Y3loamRIZ3NJSFZ3WkdGMFpXUXBPMXh1SUNBZ0lISmxkSFZ5YmlCMGFHbHpMbkJoY25ObEtIVndaR0YwWldRdVkzVnljbVZ1ZENCaGN5QmhibmtwTzF4dUlDQjlYRzVjYmlBZ0x5b3FYRzRnSUNBcUlFQmtaWE5qY21sd2RHbHZiaUJTWlhCc2FXTmhkR1Z6SUhSb1pTQnpaWEYxWlc1alpTQjBieUJoYkd3Z2MyVm5jbVZuWVhSbFpDQmpiMnhzWldOMGFXOXVjMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQlhhR1Z1SUdFZ2JXOWtaV3dnZFhObGN5QndjbWwyWVhSbFJHRjBZU0J2Y2lCemFHRnlaV1JFWVhSaElHUmxZMjl5WVhSdmNuTXNJR2wwY3lCelpYRjFaVzVqWlNCdGRYTjBJR0psWEc0Z0lDQXFJSEpsY0d4cFkyRjBaV1FnZEc4Z1lXeHNJR052Ykd4bFkzUnBiMjV6SUhSb1pTQnRiMlJsYkNCcGN5QnpkRzl5WldRZ2FXNHVJRlJvYVhNZ1pXNXpkWEpsY3lCamJHbGxiblJ6SUhkcGRHZ2dZV05qWlhOelhHNGdJQ0FxSUhSdklHOXViSGtnYjI1bElHTnZiR3hsWTNScGIyNGdZMkZ1SUhOMGFXeHNJSEpsWVdRZ2RHaGxJRzF2WkdWc0ozTWdjMlZ4ZFdWdVkyVXNJSGRvYVd4bElHTnNhV1Z1ZEhNZ2QybDBhRzkxZEZ4dUlDQWdLaUJoWTJObGMzTWdkRzhnWVc1NUlHTnZiR3hsWTNScGIyNGdkMjl1SjNRZ2MyVmxJSFJvWlNCelpYRjFaVzVqWlNCdmJpQjBhR1VnY0hWaWJHbGpJR05vWVdsdUxseHVJQ0FnS2lCQWNHRnlZVzBnZTBOdmJuUmxlSFE4WVc1NVBuMGdZM1I0SUMwZ1ZHaGxJR1Y0WldOMWRHbHZiaUJqYjI1MFpYaDBYRzRnSUNBcUlFQndZWEpoYlNCN1UyVnhkV1Z1WTJWTmIyUmxiSDBnYzJWeElDMGdWR2hsSUhObGNYVmxibU5sSUcxdlpHVnNJSFJ2SUhKbGNHeHBZMkYwWlZ4dUlDQWdLaTljYmlBZ2NISnBkbUYwWlNCaGMzbHVZeUIzY21sMFpWTmxjWFZsYm1ObFZHOURiMnhzWldOMGFXOXVjeWhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBpeGNiaUFnSUNCelpYRTZJRk5sY1hWbGJtTmxUVzlrWld3c1hHNGdJQ0FnWTI5c2JHVmpkR2x2Ym5NNklITjBjbWx1WjF0ZFhHNGdJQ2s2SUZCeWIyMXBjMlU4ZG05cFpENGdlMXh1SUNBZ0lHTnZibk4wSUd4dlp5QTlJR04wZUM1c2IyZG5aWEl1Wm05eUtIUm9hWE11ZDNKcGRHVlRaWEYxWlc1alpWUnZRMjlzYkdWamRHbHZibk1wTzF4dUlDQWdJR052Ym5OMElHRmtZWEIwWlhJZ1BTQjBhR2x6TG1Ga1lYQjBaWElnWVhNZ2RXNXJibTkzYmlCaGN5QkdZV0p5YVdORGIyNTBjbUZqZEVGa1lYQjBaWEk3WEc0Z0lDQWdZMjl1YzNRZ2RHRmliR1ZPWVcxbElEMGdUVzlrWld3dWRHRmliR1ZPWVcxbEtGTmxjWFZsYm1ObFRXOWtaV3dnWVhNZ1lXNTVLVHRjYmlBZ0lDQmpiMjV6ZENCamIyMXdiM05sWkV0bGVTQTlJQ2hqZEhnZ1lYTWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1M1emRIVmlMbU55WldGMFpVTnZiWEJ2YzJsMFpVdGxlU2hjYmlBZ0lDQWdJSFJoWW14bFRtRnRaU3hjYmlBZ0lDQWdJRnRUZEhKcGJtY29jMlZ4TG1sa0tWMWNiaUFnSUNBcE8xeHVYRzRnSUNBZ1ptOXlJQ2hqYjI1emRDQmpiMnhzWldOMGFXOXVJRzltSUdOdmJHeGxZM1JwYjI1ektTQjdYRzRnSUNBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J3Y21sMllYUmxRV1JoY0hSbGNpQTlJR0ZrWVhCMFpYSXVabTl5VUhKcGRtRjBaU2hqYjJ4c1pXTjBhVzl1S1R0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnY21WamIzSmtJRDBnZTF4dUlDQWdJQ0FnSUNBZ0lGdERiM1ZqYUVSQ1MyVjVjeTVVUVVKTVJWMDZJSFJoWW14bFRtRnRaU3hjYmlBZ0lDQWdJQ0FnSUNCcFpEb2djMlZ4TG1sa0xGeHVJQ0FnSUNBZ0lDQWdJR04xY25KbGJuUTZJSE5sY1M1amRYSnlaVzUwTEZ4dUlDQWdJQ0FnSUNCOU8xeHVJQ0FnSUNBZ0lDQmhkMkZwZENCd2NtbDJZWFJsUVdSaGNIUmxjbHRjSW5CMWRGTjBZWFJsWENKZEtHTnZiWEJ2YzJWa1MyVjVMQ0J5WldOdmNtUXNJR04wZUNCaGN5QmhibmtwTzF4dUlDQWdJQ0FnSUNCc2IyY3VaR1ZpZFdjb1lGTmxjWFZsYm1ObElDUjdjMlZ4TG1sa2ZTQjNjbWwwZEdWdUlIUnZJR052Ykd4bFkzUnBiMjRnSkh0amIyeHNaV04wYVc5dWZXQXBPMXh1SUNBZ0lDQWdmU0JqWVhSamFDQW9aVG9nZFc1cmJtOTNiaWtnZTF4dUlDQWdJQ0FnSUNCc2IyY3VkMkZ5YmloY2JpQWdJQ0FnSUNBZ0lDQmdSbUZwYkdWa0lIUnZJSGR5YVhSbElITmxjWFZsYm1ObElDUjdjMlZ4TG1sa2ZTQjBieUJqYjJ4c1pXTjBhVzl1SUNSN1kyOXNiR1ZqZEdsdmJuMDZJQ1I3WlgxZ1hHNGdJQ0FnSUNBZ0lDazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmhjM2x1WXlCeVpYQnNhV05oZEdWVWIxTmxaM0psWjJGMFpXUkRiMnhzWldOMGFXOXVjeWhjYmlBZ0lDQmpkSGc2SUVOdmJuUmxlSFE4WVc1NVBpeGNiaUFnSUNCelpYRTZJRk5sY1hWbGJtTmxUVzlrWld4Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ0x5OGdWWE5sSUdGa1lYQjBaWElnYldWMFlXUmhkR0VnYVc1emRHVmhaQ0J2WmlCamRIZ3VaMlYwVW1WaFpFTnZiR3hsWTNScGIyNXpLQ2tnWW1WallYVnpaU0IwYUdVZ1UyVnhkV1Z1WTJWY2JpQWdJQ0F2THlCamNtVmhkR1Z6SUdsMGN5QnZkMjRnWTI5dWRHVjRkQ0IyYVdFZ2JHOW5RM1I0TENCc2IzTnBibWNnWTI5c2JHVmpkR2x2Ym5NZ2MyVjBJR0o1SUdWNGRISmhZM1JUWldkeVpXZGhkR1ZrUTI5c2JHVmpkR2x2Ym5NdVhHNGdJQ0FnWTI5dWMzUWdZV1JoY0hSbGNrMWxkR0VnUFNBb1kzUjRJR0Z6SUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDa3VaMlYwVTJWeGRXVnVZMlZUWldkeVpXZGhkR2x2YmloY2JpQWdJQ0FnSUZOMGNtbHVaeWh6WlhFdWFXUXBYRzRnSUNBZ0tUdGNibHh1SUNBZ0lHbG1JQ2doWVdSaGNIUmxjazFsZEdFZ2ZId2dJV0ZrWVhCMFpYSk5aWFJoTG1OdmJHeGxZM1JwYjI1ekxteGxibWQwYUNrZ2UxeHVJQ0FnSUNBZ2NtVjBkWEp1TzF4dUlDQWdJSDFjYmx4dUlDQWdJQzh2SUU5dWJIa2djbVZ3YkdsallYUmxJR1p2Y2lCdWIyNHRablZzYkhrdGMyVm5jbVZuWVhSbFpDQnRiMlJsYkhNZ0tHWjFiR3g1SUhObFozSmxaMkYwWldRZ2FYTWdhR0Z1Wkd4bFpDQnpaWEJoY21GMFpXeDVLVnh1SUNBZ0lHbG1JQ2hoWkdGd2RHVnlUV1YwWVM1bWRXeHNlVk5sWjNKbFoyRjBaV1FwSUh0Y2JpQWdJQ0FnSUhKbGRIVnlianRjYmlBZ0lDQjlYRzVjYmlBZ0lDQmpiMjV6ZENCc2IyY2dQU0JqZEhndWJHOW5aMlZ5TG1admNpaDBhR2x6TG5KbGNHeHBZMkYwWlZSdlUyVm5jbVZuWVhSbFpFTnZiR3hsWTNScGIyNXpLVHRjYmlBZ0lDQnNiMmN1YVc1bWJ5aGNiaUFnSUNBZ0lHQlNaWEJzYVdOaGRHbHVaeUJ6WlhGMVpXNWpaU0FrZTNObGNTNXBaSDBnZEc4Z0pIdGhaR0Z3ZEdWeVRXVjBZUzVqYjJ4c1pXTjBhVzl1Y3k1c1pXNW5kR2g5SUhObFozSmxaMkYwWldRZ1kyOXNiR1ZqZEdsdmJuTTZJQ1I3WVdSaGNIUmxjazFsZEdFdVkyOXNiR1ZqZEdsdmJuTXVhbTlwYmloY0lpd2dYQ0lwZldCY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWVhkaGFYUWdkR2hwY3k1M2NtbDBaVk5sY1hWbGJtTmxWRzlEYjJ4c1pXTjBhVzl1Y3loamRIZ3NJSE5sY1N3Z1lXUmhjSFJsY2sxbGRHRXVZMjlzYkdWamRHbHZibk1wTzF4dUlDQjlYRzU5WEc0aVhYMD0iXX0=
|
|
338
|
+
//# sourceMappingURL=FabricContractSequence.js.map
|
|
339
|
+
//# sourceMappingURL=FabricContractSequence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricContractSequence.js","sourceRoot":"","sources":["FabricContractSequence.js"],"names":[],"mappings":"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"}
|
|
@@ -177,5 +177,5 @@ class FabricStatement extends for_couchdb_2.CouchDBStatement {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
exports.FabricStatement = FabricStatement;
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTdGF0ZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0ZhYnJpY0NvbnRyYWN0U3RhdGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNYLGVBQWUsR0FLaEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUVMLFNBQVMsRUFJVCxVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixxQkFBcUIsRUFDckIsWUFBWSxHQUNiLGtDQUE2QjtBQUU5Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFNLE9BQU8sZUFBb0MsU0FBUSxnQkFJeEQ7SUFDQyxZQUNFLE9BQXlELEVBQ3pELFNBQWlDO1FBRWpDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUM3QixDQUFDO0lBQ0gsQ0FBQztJQUVrQixLQUFLLENBQUMsZUFBZSxDQUN0QyxNQUFXLEVBQ1gsR0FBRyxJQUErQztRQUVsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUN6QixPQUFPLENBQ3FDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1lBQ2hDLE1BQU0sSUFBSSxhQUFhLENBQ3JCLDhDQUE4QyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQ2hFLENBQUM7UUFDSixPQUFPLEtBQUss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TSxDQUFDO1lBQ25FLENBQUM7WUFDRCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxDQUFVLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksVUFBVSxDQUFDLENBQVUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb3VjaERCQWRhcHRlcixcbiAgQ291Y2hEQkdyb3VwT3BlcmF0b3IsXG4gIENvdWNoREJLZXlzLFxuICBDb3VjaERCT3BlcmF0b3IsXG4gIENvdWNoREJRdWVyeUxpbWl0LFxuICBNYW5nb09wZXJhdG9yLFxuICBNYW5nb1F1ZXJ5LFxuICBNYW5nb1NlbGVjdG9yLFxufSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1jb3VjaGRiXCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0Q29udGV4dCB9IGZyb20gXCIuL0NvbnRyYWN0Q29udGV4dFwiO1xuaW1wb3J0IHsgQ291Y2hEQlN0YXRlbWVudCB9IGZyb20gXCJAZGVjYWYtdHMvZm9yLWNvdWNoZGJcIjtcbmltcG9ydCB7XG4gIEFkYXB0ZXJGbGFncyxcbiAgQ29uZGl0aW9uLFxuICBDb250ZXh0dWFsQXJncyxcbiAgTWF5YmVDb250ZXh0dWFsQXJnLFxuICBPcmRlckRpcmVjdGlvbixcbiAgUXVlcnlFcnJvcixcbn0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBJbnRlcm5hbEVycm9yIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHtcbiAgYXBwbHlNaXJyb3JGbGFncyxcbiAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzLFxuICBleHRyYWN0TXNwSWQsXG59IGZyb20gXCIuLi9zaGFyZWQvZGVjb3JhdG9yc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGF0ZW1lbnQgd3JhcHBlciBmb3IgZXhlY3V0aW5nIE1hbmdvIHF1ZXJpZXMgd2l0aGluIEZhYnJpYyBjb250cmFjdHNcbiAqIEBzdW1tYXJ5IEJyaWRnZXMgQ291Y2hEQi1zdHlsZSBxdWVyaWVzIHRvIEZhYnJpYyB2aWEgdGhlIEZhYnJpY0NvbnRyYWN0QWRhcHRlciwgaGFuZGxpbmcgaWRlbnRpdHkgYW5kIHByaW1hcnkga2V5IHByb2plY3Rpb24gd2hlbiBuZWVkZWQuXG4gKiBAdGVtcGxhdGUgTSAtIE1vZGVsIHR5cGUgdGhpcyBzdGF0ZW1lbnQgb3BlcmF0ZXMgb25cbiAqIEB0ZW1wbGF0ZSBSIC0gUmVzdWx0IHR5cGUgcmV0dXJuZWQgYnkgdGhlIHN0YXRlbWVudFxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdEFkYXB0ZXJ9IGFkYXB0ZXIgLSBUaGUgRmFicmljIGNvbnRyYWN0IGFkYXB0ZXIgdXNlZCBmb3IgcmF3IGV4ZWN1dGlvblxuICogQHBhcmFtIHtGYWJyaWNDb250cmFjdENvbnRleHR9IGN0eCAtIFRoZSBGYWJyaWMgY29udHJhY3QgY29udGV4dCBjYXJyeWluZyBzdHViIGFuZCBpZGVudGl0eVxuICogQHJldHVybiB7dm9pZH1cbiAqIEBjbGFzcyBGYWJyaWNTdGF0ZW1lbnRcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBzdG10ID0gbmV3IEZhYnJpY1N0YXRlbWVudDxNeU1vZGVsLCBNeU1vZGVsW10+KGFkYXB0ZXIsIGN0eCk7XG4gKiBjb25zdCByZXN1bHQgPSBhd2FpdCBzdG10LnJhdzxNeU1vZGVsW10+KHsgc2VsZWN0b3I6IHsgdHlwZTogJ015TW9kZWwnIH0gfSk7XG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IEFwcFxuICogICBwYXJ0aWNpcGFudCBTdGF0ZW1lbnRcbiAqICAgcGFydGljaXBhbnQgQWRhcHRlclxuICogICBwYXJ0aWNpcGFudCBMZWRnZXJcbiAqICAgQXBwLT4+U3RhdGVtZW50OiByYXcoeyBzZWxlY3RvciB9KVxuICogICBTdGF0ZW1lbnQtPj5BZGFwdGVyOiBhZGFwdGVyLnJhdyhtYW5nbywgdHJ1ZSwgY3R4KVxuICogICBBZGFwdGVyLT4+TGVkZ2VyOiBFdmFsdWF0ZSBxdWVyeVxuICogICBBZGFwdGVyLS0+PlN0YXRlbWVudDogcm93c1xuICogICBTdGF0ZW1lbnQtLT4+QXBwOiBtb2RlbHNcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY1N0YXRlbWVudDxNIGV4dGVuZHMgTW9kZWwsIFI+IGV4dGVuZHMgQ291Y2hEQlN0YXRlbWVudDxcbiAgTSxcbiAgQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICBSXG4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcjogQ291Y2hEQkFkYXB0ZXI8YW55LCB2b2lkLCBGYWJyaWNDb250cmFjdENvbnRleHQ+LFxuICAgIG92ZXJyaWRlcz86IFBhcnRpYWw8QWRhcHRlckZsYWdzPlxuICApIHtcbiAgICBzdXBlcihhZGFwdGVyKTtcbiAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlcyA9IG92ZXJyaWRlcztcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgZXhlY3V0aW9uUHJlZml4KFxuICAgIG1ldGhvZDogYW55LFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICkge1xuICAgIGNvbnN0IG5ld0FyZ3MgPSBhcmdzLmZpbHRlcihcbiAgICAgIEJvb2xlYW5cbiAgICApIGFzIE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+O1xuICAgIGlmIChhcmdzLmxlbmd0aCAhPT0gbmV3QXJncy5sZW5ndGgpXG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgYFJlY2VpdmVkIGFuIHVuZGVmaW5lZCBpbiB0aGUgcGFnaW5hdG9yIGZvciAke21ldGhvZH06ICR7YXJnc31gXG4gICAgICApO1xuICAgIHJldHVybiBzdXBlci5leGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBidWlsZCgpOiBNYW5nb1F1ZXJ5IHtcbiAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5idWlsZCk7XG4gICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhZ2dyZWdhdGVJbmZvID0gdGhpcy5idWlsZEFnZ3JlZ2F0ZUluZm8oKTtcbiAgICBpZiAoYWdncmVnYXRlSW5mbykge1xuICAgICAgaWYgKHRoaXMuc2hvdWxkVXNlTWFudWFsQWdncmVnYXRpb24oKSkge1xuICAgICAgICB0aGlzLm1hbnVhbEFnZ3JlZ2F0aW9uID0gYWdncmVnYXRlSW5mbztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUFnZ3JlZ2F0ZVF1ZXJ5KGFnZ3JlZ2F0ZUluZm8pO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzZWxlY3RvcnM6IE1hbmdvU2VsZWN0b3IgPSB7fTtcbiAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0ge307XG4gICAgc2VsZWN0b3JzW0NvdWNoREJLZXlzLlRBQkxFXSA9IE1vZGVsLnRhYmxlTmFtZSh0aGlzLmZyb21TZWxlY3Rvcik7XG4gICAgY29uc3QgcXVlcnk6IE1hbmdvUXVlcnkgPSB7IHNlbGVjdG9yOiBzZWxlY3RvcnMgfTtcbiAgICBpZiAodGhpcy5zZWxlY3RTZWxlY3RvcikgcXVlcnkuZmllbGRzID0gdGhpcy5zZWxlY3RTZWxlY3RvciBhcyBzdHJpbmdbXTtcblxuICAgIGlmICh0aGlzLndoZXJlQ29uZGl0aW9uKSB7XG4gICAgICBjb25zdCBjb25kaXRpb246IE1hbmdvU2VsZWN0b3IgPSB0aGlzLnBhcnNlQ29uZGl0aW9uKFxuICAgICAgICBDb25kaXRpb24uYW5kKFxuICAgICAgICAgIHRoaXMud2hlcmVDb25kaXRpb24sXG4gICAgICAgICAgQ29uZGl0aW9uLmF0dHJpYnV0ZTxNPihDb3VjaERCS2V5cy5UQUJMRSBhcyBrZXlvZiBNKS5lcShcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKS5zZWxlY3RvcjtcbiAgICAgIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbikgYXMgTWFuZ29PcGVyYXRvcltdO1xuICAgICAgaWYgKFxuICAgICAgICBzZWxlY3RvcktleXMubGVuZ3RoID09PSAxICYmXG4gICAgICAgIE9iamVjdC52YWx1ZXMoQ291Y2hEQkdyb3VwT3BlcmF0b3IpLmluZGV4T2Yoc2VsZWN0b3JLZXlzWzBdKSAhPT0gLTFcbiAgICAgIClcbiAgICAgICAgc3dpdGNoIChzZWxlY3RvcktleXNbMF0pIHtcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLkFORDpcbiAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdIGFzIE1hbmdvU2VsZWN0b3JcbiAgICAgICAgICAgICAgKS5yZWR1Y2UoKGFjY3VtOiBNYW5nb1NlbGVjdG9yW10sIHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKVxuICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBcIlRvbyBtYW55IGtleXMgaW4gcXVlcnkgc2VsZWN0b3IuIHNob3VsZCBiZSBvbmVcIlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBrID0ga2V5c1swXTtcbiAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EKVxuICAgICAgICAgICAgICAgICAgYWNjdW0ucHVzaCguLi4odmFsW2tdIGFzIGFueVtdKSk7XG4gICAgICAgICAgICAgICAgZWxzZSBhY2N1bS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjY3VtO1xuICAgICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICBdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBjb25kaXRpb247XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIENvdWNoREJHcm91cE9wZXJhdG9yLk9SOiB7XG4gICAgICAgICAgICBjb25zdCBzOiBSZWNvcmQ8YW55LCBhbnk+ID0ge307XG4gICAgICAgICAgICBzW0NvdWNoREJHcm91cE9wZXJhdG9yLkFORF0gPSBbXG4gICAgICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICAgICAgLi4uT2JqZWN0LmVudHJpZXMocXVlcnkuc2VsZWN0b3IpLm1hcCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdDogUmVjb3JkPGFueSwgYW55PiA9IHt9O1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbmRpdGlvbikuZm9yRWFjaCgoW2tleSwgdmFsXSkgPT4ge1xuICAgICAgICAgIGlmIChxdWVyeS5zZWxlY3RvcltrZXldKVxuICAgICAgICAgICAgbG9nLndhcm4oXG4gICAgICAgICAgICAgIGBBICR7a2V5fSBxdWVyeSBwYXJhbSBpcyBhYm91dCB0byBiZSBvdmVycmlkZGVuOiAke3F1ZXJ5LnNlbGVjdG9yW2tleV19IGJ5ICR7dmFsfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3JkZXJCeVNlbGVjdG9ycz8ubGVuZ3RoKSB7XG4gICAgICBxdWVyeS5zb3J0ID0gcXVlcnkuc29ydCB8fCBbXTtcbiAgICAgIHF1ZXJ5LnNlbGVjdG9yID0gcXVlcnkuc2VsZWN0b3IgfHwgKHt9IGFzIE1hbmdvU2VsZWN0b3IpO1xuICAgICAgZm9yIChjb25zdCBbc2VsZWN0b3JLZXksIGRpcmVjdGlvbl0gb2YgdGhpcy5vcmRlckJ5U2VsZWN0b3JzKSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc2VsZWN0b3JLZXkgYXMgc3RyaW5nO1xuICAgICAgICBjb25zdCByZWM6IFJlY29yZDxzdHJpbmcsIE9yZGVyRGlyZWN0aW9uPiA9IHt9O1xuICAgICAgICByZWNbc2VsZWN0b3JdID0gZGlyZWN0aW9uIGFzIE9yZGVyRGlyZWN0aW9uO1xuICAgICAgICAocXVlcnkuc29ydCBhcyBSZWNvcmQ8c3RyaW5nLCBPcmRlckRpcmVjdGlvbj5bXSkucHVzaChyZWMpO1xuICAgICAgICBpZiAoIXF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSkge1xuICAgICAgICAgIHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSA9IHt9IGFzIE1hbmdvU2VsZWN0b3I7XG4gICAgICAgICAgKHF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSBhcyBNYW5nb1NlbGVjdG9yKVtDb3VjaERCT3BlcmF0b3IuQklHR0VSXSA9XG4gICAgICAgICAgICBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaGFzTWFudWFsQWdncmVnYXRlID0gISF0aGlzLm1hbnVhbEFnZ3JlZ2F0aW9uO1xuICAgIGlmICh0aGlzLmxpbWl0U2VsZWN0b3IpIHtcbiAgICAgIHF1ZXJ5LmxpbWl0ID0gdGhpcy5saW1pdFNlbGVjdG9yO1xuICAgIH0gZWxzZSBpZiAoIWhhc01hbnVhbEFnZ3JlZ2F0ZSkge1xuICAgICAgLy8gbG9nLndhcm4oXG4gICAgICAvLyAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICAvLyApO1xuICAgICAgLy8gcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcikgcXVlcnkuc2tpcCA9IHRoaXMub2Zmc2V0U2VsZWN0b3I7XG5cbiAgICByZXR1cm4gcXVlcnk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBleGVjdXRlKFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8Uj4ge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuZXhlY3V0ZSk7XG5cbiAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcblxuICAgIGNvbnN0IHsgcHJpdmF0ZUNvbHMsIHNoYXJlZENvbHMgfSA9IE1vZGVsLmNvbGxlY3Rpb25zRm9yKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IFtcbiAgICAgIC4uLm5ldyBTZXQoXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIFsuLi5wcml2YXRlQ29scywgLi4uc2hhcmVkQ29sc10ubWFwKChjKSA9PlxuICAgICAgICAgICAgdHlwZW9mIGMgPT09IFwic3RyaW5nXCIgPyBjIDogYyh0aGlzLmZyb21TZWxlY3RvciwgbXNwLCBjdHgpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgIF07XG5cbiAgICBhcHBseVNlZ3JlZ2F0aW9uRmxhZ3MobmV3IHRoaXMuZnJvbVNlbGVjdG9yKCksIGNvbGxlY3Rpb25zLCBjdHgpO1xuICAgIGF3YWl0IGFwcGx5TWlycm9yRmxhZ3ModGhpcy5mcm9tU2VsZWN0b3IsIG1zcCwgY3R4KTtcblxuICAgIHRyeSB7XG4gICAgICBpZiAodGhpcy5wcmVwYXJlZCkgcmV0dXJuIHRoaXMuZXhlY3V0ZVByZXBhcmVkKC4uLihhcmdzIGFzIGFueSkpO1xuICAgICAgbG9nLnNpbGx5KGBCdWlsZGluZyByYXcgc3RhdGVtZW50Li4uYCk7XG4gICAgICBjb25zdCBxdWVyeSA9IHRoaXMuYnVpbGQoKTtcbiAgICAgIGxvZy5zaWxseShgZXhlY3V0aW5nIHJhdyBzdGF0ZW1lbnRgKTtcbiAgICAgIGNvbnN0IHJlc3VsdHMgPSAoYXdhaXQgdGhpcy5yYXc8Uj4oXG4gICAgICAgIHF1ZXJ5LFxuICAgICAgICB0cnVlLFxuICAgICAgICAuLi4oY3R4QXJncyBhcyBDb250ZXh0dWFsQXJnczxGYWJyaWNDb250cmFjdENvbnRleHQ+KVxuICAgICAgKSkgYXMgdW5rbm93biBhcyBSO1xuICAgICAgaWYgKHRoaXMuaGFzQWdncmVnYXRpb24oKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3Rvcikge1xuICAgICAgICBpZiAodGhpcy5ncm91cEJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5yZXZlcnRHcm91cGVkUmVzdWx0cyhcbiAgICAgICAgICAgIHJlc3VsdHMsXG4gICAgICAgICAgICAocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eClcbiAgICAgICAgICApIGFzIFI7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KGdyb3VwZWQsIGN0eCkpIGFzIFI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVzdWx0cykpIHtcbiAgICAgICAgICBjb25zdCBtYXBwZWQgPSByZXN1bHRzLm1hcCgocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eCkpIGFzIHVua25vd24gYXMgUjtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQobWFwcGVkLCBjdHgpKSBhcyBSO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNpbmdsZSA9IHRoaXMucHJvY2Vzc1JlY29yZChyZXN1bHRzLCBjdHgpIGFzIHVua25vd24gYXMgUjtcbiAgICAgICAgcmV0dXJuIChhd2FpdCB0aGlzLmFwcGx5QWZ0ZXJIYW5kbGVyc1RvUmVzdWx0KHNpbmdsZSwgY3R4KSkgYXMgUjtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHRzO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
181
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RTdGF0ZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDb250cmFjdFN0YXRlbWVudC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBNEY7QUFDNUYseUVBQXVEO0FBQ3ZELHVEQUF5RDtBQUN6RCx5Q0FBd0Q7QUFDeEQsMkRBQXdEO0FBQ3hELDZEQUFtRztBQUNuRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Qkc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsOEJBQWdCO0lBQ2pELFlBQVksT0FBTyxFQUFFLFNBQVM7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2YsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJO1FBQ2pDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1lBQzlCLE1BQU0sSUFBSSw2QkFBYSxDQUFDLDhDQUE4QyxNQUFNLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RixPQUFPLEtBQUssQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELEtBQUs7UUFDRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFNBQVMsQ0FBQztRQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNoRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLElBQUks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QUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RGLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDakUsQ0FBQztnQkFDRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDekIsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDOUQsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxDQUFDO2dCQUNELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsMEJBQTBCLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDaEUsQ0FBQztZQUNELE9BQU8sT0FBTyxDQUFDO1FBQ25CLENBQUM7UUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1AsTUFBTSxJQUFJLGlCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQWhKRCwwQ0FnSkM7QUFDRCxzcG5CQUFzcG5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ291Y2hEQkdyb3VwT3BlcmF0b3IsIENvdWNoREJLZXlzLCBDb3VjaERCT3BlcmF0b3IsIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBDb3VjaERCU3RhdGVtZW50IH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItY291Y2hkYlwiO1xuaW1wb3J0IHsgQ29uZGl0aW9uLCBRdWVyeUVycm9yLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgSW50ZXJuYWxFcnJvciB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHsgYXBwbHlNaXJyb3JGbGFncywgYXBwbHlTZWdyZWdhdGlvbkZsYWdzLCBleHRyYWN0TXNwSWQsIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2RlY29yYXRvcnMuanNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YXRlbWVudCB3cmFwcGVyIGZvciBleGVjdXRpbmcgTWFuZ28gcXVlcmllcyB3aXRoaW4gRmFicmljIGNvbnRyYWN0c1xuICogQHN1bW1hcnkgQnJpZGdlcyBDb3VjaERCLXN0eWxlIHF1ZXJpZXMgdG8gRmFicmljIHZpYSB0aGUgRmFicmljQ29udHJhY3RBZGFwdGVyLCBoYW5kbGluZyBpZGVudGl0eSBhbmQgcHJpbWFyeSBrZXkgcHJvamVjdGlvbiB3aGVuIG5lZWRlZC5cbiAqIEB0ZW1wbGF0ZSBNIC0gTW9kZWwgdHlwZSB0aGlzIHN0YXRlbWVudCBvcGVyYXRlcyBvblxuICogQHRlbXBsYXRlIFIgLSBSZXN1bHQgdHlwZSByZXR1cm5lZCBieSB0aGUgc3RhdGVtZW50XG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0QWRhcHRlcn0gYWRhcHRlciAtIFRoZSBGYWJyaWMgY29udHJhY3QgYWRhcHRlciB1c2VkIGZvciByYXcgZXhlY3V0aW9uXG4gKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY3R4IC0gVGhlIEZhYnJpYyBjb250cmFjdCBjb250ZXh0IGNhcnJ5aW5nIHN0dWIgYW5kIGlkZW50aXR5XG4gKiBAcmV0dXJuIHt2b2lkfVxuICogQGNsYXNzIEZhYnJpY1N0YXRlbWVudFxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHN0bXQgPSBuZXcgRmFicmljU3RhdGVtZW50PE15TW9kZWwsIE15TW9kZWxbXT4oYWRhcHRlciwgY3R4KTtcbiAqIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHN0bXQucmF3PE15TW9kZWxbXT4oeyBzZWxlY3RvcjogeyB0eXBlOiAnTXlNb2RlbCcgfSB9KTtcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQXBwXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlbWVudFxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICogICBBcHAtPj5TdGF0ZW1lbnQ6IHJhdyh7IHNlbGVjdG9yIH0pXG4gKiAgIFN0YXRlbWVudC0+PkFkYXB0ZXI6IGFkYXB0ZXIucmF3KG1hbmdvLCB0cnVlLCBjdHgpXG4gKiAgIEFkYXB0ZXItPj5MZWRnZXI6IEV2YWx1YXRlIHF1ZXJ5XG4gKiAgIEFkYXB0ZXItLT4+U3RhdGVtZW50OiByb3dzXG4gKiAgIFN0YXRlbWVudC0tPj5BcHA6IG1vZGVsc1xuICovXG5leHBvcnQgY2xhc3MgRmFicmljU3RhdGVtZW50IGV4dGVuZHMgQ291Y2hEQlN0YXRlbWVudCB7XG4gICAgY29uc3RydWN0b3IoYWRhcHRlciwgb3ZlcnJpZGVzKSB7XG4gICAgICAgIHN1cGVyKGFkYXB0ZXIpO1xuICAgICAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICAgICAgICB0aGlzLm92ZXJyaWRlcyA9IG92ZXJyaWRlcztcbiAgICAgICAgfVxuICAgIH1cbiAgICBhc3luYyBleGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IG5ld0FyZ3MgPSBhcmdzLmZpbHRlcihCb29sZWFuKTtcbiAgICAgICAgaWYgKGFyZ3MubGVuZ3RoICE9PSBuZXdBcmdzLmxlbmd0aClcbiAgICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBSZWNlaXZlZCBhbiB1bmRlZmluZWQgaW4gdGhlIHBhZ2luYXRvciBmb3IgJHttZXRob2R9OiAke2FyZ3N9YCk7XG4gICAgICAgIHJldHVybiBzdXBlci5leGVjdXRpb25QcmVmaXgobWV0aG9kLCAuLi5hcmdzKTtcbiAgICB9XG4gICAgYnVpbGQoKSB7XG4gICAgICAgIGNvbnN0IGxvZyA9IHRoaXMubG9nLmZvcih0aGlzLmJ1aWxkKTtcbiAgICAgICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgYWdncmVnYXRlSW5mbyA9IHRoaXMuYnVpbGRBZ2dyZWdhdGVJbmZvKCk7XG4gICAgICAgIGlmIChhZ2dyZWdhdGVJbmZvKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5zaG91bGRVc2VNYW51YWxBZ2dyZWdhdGlvbigpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYW51YWxBZ2dyZWdhdGlvbiA9IGFnZ3JlZ2F0ZUluZm87XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVBZ2dyZWdhdGVRdWVyeShhZ2dyZWdhdGVJbmZvKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZWxlY3RvcnMgPSB7fTtcbiAgICAgICAgc2VsZWN0b3JzW0NvdWNoREJLZXlzLlRBQkxFXSA9IHt9O1xuICAgICAgICBzZWxlY3RvcnNbQ291Y2hEQktleXMuVEFCTEVdID0gTW9kZWwudGFibGVOYW1lKHRoaXMuZnJvbVNlbGVjdG9yKTtcbiAgICAgICAgY29uc3QgcXVlcnkgPSB7IHNlbGVjdG9yOiBzZWxlY3RvcnMgfTtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0U2VsZWN0b3IpXG4gICAgICAgICAgICBxdWVyeS5maWVsZHMgPSB0aGlzLnNlbGVjdFNlbGVjdG9yO1xuICAgICAgICBpZiAodGhpcy53aGVyZUNvbmRpdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uID0gdGhpcy5wYXJzZUNvbmRpdGlvbihDb25kaXRpb24uYW5kKHRoaXMud2hlcmVDb25kaXRpb24sIENvbmRpdGlvbi5hdHRyaWJ1dGUoQ291Y2hEQktleXMuVEFCTEUpLmVxKHF1ZXJ5LnNlbGVjdG9yW0NvdWNoREJLZXlzLlRBQkxFXSkpKS5zZWxlY3RvcjtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yS2V5cyA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbik7XG4gICAgICAgICAgICBpZiAoc2VsZWN0b3JLZXlzLmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgIE9iamVjdC52YWx1ZXMoQ291Y2hEQkdyb3VwT3BlcmF0b3IpLmluZGV4T2Yoc2VsZWN0b3JLZXlzWzBdKSAhPT0gLTEpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChzZWxlY3RvcktleXNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb3VjaERCR3JvdXBPcGVyYXRvci5BTkQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25bQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EXSA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5PYmplY3QudmFsdWVzKGNvbmRpdGlvbltDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdKS5yZWR1Y2UoKGFjY3VtLCB2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCAhPT0gMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRvbyBtYW55IGtleXMgaW4gcXVlcnkgc2VsZWN0b3IuIHNob3VsZCBiZSBvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXlzWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoayA9PT0gQ291Y2hEQkdyb3VwT3BlcmF0b3IuQU5EKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW0ucHVzaCguLi52YWxba10pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bS5wdXNoKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2N1bTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBbXSksXG4gICAgICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBjb25kaXRpb247XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBDb3VjaERCR3JvdXBPcGVyYXRvci5PUjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgc1tDb3VjaERCR3JvdXBPcGVyYXRvci5BTkRdID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5PYmplY3QuZW50cmllcyhxdWVyeS5zZWxlY3RvcikubWFwKChba2V5LCB2YWxdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvciA9IHM7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVGhpcyBzaG91bGQgYmUgaW1wb3NzaWJsZVwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjb25kaXRpb24pLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHF1ZXJ5LnNlbGVjdG9yW2tleV0pXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2cud2FybihgQSAke2tleX0gcXVlcnkgcGFyYW0gaXMgYWJvdXQgdG8gYmUgb3ZlcnJpZGRlbjogJHtxdWVyeS5zZWxlY3RvcltrZXldfSBieSAke3ZhbH1gKTtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3Jba2V5XSA9IHZhbDtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vcmRlckJ5U2VsZWN0b3JzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHF1ZXJ5LnNvcnQgPSBxdWVyeS5zb3J0IHx8IFtdO1xuICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3IgPSBxdWVyeS5zZWxlY3RvciB8fCB7fTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW3NlbGVjdG9yS2V5LCBkaXJlY3Rpb25dIG9mIHRoaXMub3JkZXJCeVNlbGVjdG9ycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gc2VsZWN0b3JLZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjID0ge307XG4gICAgICAgICAgICAgICAgcmVjW3NlbGVjdG9yXSA9IGRpcmVjdGlvbjtcbiAgICAgICAgICAgICAgICBxdWVyeS5zb3J0LnB1c2gocmVjKTtcbiAgICAgICAgICAgICAgICBpZiAoIXF1ZXJ5LnNlbGVjdG9yW3NlbGVjdG9yXSkge1xuICAgICAgICAgICAgICAgICAgICBxdWVyeS5zZWxlY3RvcltzZWxlY3Rvcl0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgcXVlcnkuc2VsZWN0b3Jbc2VsZWN0b3JdW0NvdWNoREJPcGVyYXRvci5CSUdHRVJdID1cbiAgICAgICAgICAgICAgICAgICAgICAgIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGhhc01hbnVhbEFnZ3JlZ2F0ZSA9ICEhdGhpcy5tYW51YWxBZ2dyZWdhdGlvbjtcbiAgICAgICAgaWYgKHRoaXMubGltaXRTZWxlY3Rvcikge1xuICAgICAgICAgICAgcXVlcnkubGltaXQgPSB0aGlzLmxpbWl0U2VsZWN0b3I7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoIWhhc01hbnVhbEFnZ3JlZ2F0ZSkge1xuICAgICAgICAgICAgLy8gbG9nLndhcm4oXG4gICAgICAgICAgICAvLyAgIGBObyBsaW1pdCBzZWxlY3RvciBkZWZpbmVkLiBVc2luZyBkZWZhdWx0IGNvdWNoZGIgbGltaXQgb2YgJHtDb3VjaERCUXVlcnlMaW1pdH1gXG4gICAgICAgICAgICAvLyApO1xuICAgICAgICAgICAgLy8gcXVlcnkubGltaXQgPSBDb3VjaERCUXVlcnlMaW1pdDtcbiAgICAgICAgICAgIC8vIGRvIG5vdGhpbmdcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5vZmZzZXRTZWxlY3RvcilcbiAgICAgICAgICAgIHF1ZXJ5LnNraXAgPSB0aGlzLm9mZnNldFNlbGVjdG9yO1xuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgfVxuICAgIGFzeW5jIGV4ZWN1dGUoLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLmV4ZWN1dGUpO1xuICAgICAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcbiAgICAgICAgY29uc3QgeyBwcml2YXRlQ29scywgc2hhcmVkQ29scyB9ID0gTW9kZWwuY29sbGVjdGlvbnNGb3IodGhpcy5mcm9tU2VsZWN0b3IpO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IFtcbiAgICAgICAgICAgIC4uLm5ldyBTZXQoYXdhaXQgUHJvbWlzZS5hbGwoWy4uLnByaXZhdGVDb2xzLCAuLi5zaGFyZWRDb2xzXS5tYXAoKGMpID0+IHR5cGVvZiBjID09PSBcInN0cmluZ1wiID8gYyA6IGModGhpcy5mcm9tU2VsZWN0b3IsIG1zcCwgY3R4KSkpKSxcbiAgICAgICAgXTtcbiAgICAgICAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzKG5ldyB0aGlzLmZyb21TZWxlY3RvcigpLCBjb2xsZWN0aW9ucywgY3R4KTtcbiAgICAgICAgYXdhaXQgYXBwbHlNaXJyb3JGbGFncyh0aGlzLmZyb21TZWxlY3RvciwgbXNwLCBjdHgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHRoaXMucHJlcGFyZWQpXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVByZXBhcmVkKC4uLmFyZ3MpO1xuICAgICAgICAgICAgbG9nLnNpbGx5KGBCdWlsZGluZyByYXcgc3RhdGVtZW50Li4uYCk7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuYnVpbGQoKTtcbiAgICAgICAgICAgIGxvZy5zaWxseShgZXhlY3V0aW5nIHJhdyBzdGF0ZW1lbnRgKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSAoYXdhaXQgdGhpcy5yYXcocXVlcnksIHRydWUsIC4uLmN0eEFyZ3MpKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0FnZ3JlZ2F0aW9uKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5zZWxlY3RTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdyb3VwQnlTZWxlY3RvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBncm91cGVkID0gdGhpcy5yZXZlcnRHcm91cGVkUmVzdWx0cyhyZXN1bHRzLCAocikgPT4gdGhpcy5wcm9jZXNzUmVjb3JkKHIsIGN0eCkpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoZ3JvdXBlZCwgY3R4KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc3VsdHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcHBlZCA9IHJlc3VsdHMubWFwKChyKSA9PiB0aGlzLnByb2Nlc3NSZWNvcmQociwgY3R4KSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoYXdhaXQgdGhpcy5hcHBseUFmdGVySGFuZGxlcnNUb1Jlc3VsdChtYXBwZWQsIGN0eCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBzaW5nbGUgPSB0aGlzLnByb2Nlc3NSZWNvcmQocmVzdWx0cywgY3R4KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGF3YWl0IHRoaXMuYXBwbHlBZnRlckhhbmRsZXJzVG9SZXN1bHQoc2luZ2xlLCBjdHgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHRzO1xuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaVJtRmljbWxqUTI5dWRISmhZM1JUZEdGMFpXMWxiblF1YW5NaUxDSnpiM1Z5WTJWU2IyOTBJam9pSWl3aWMyOTFjbU5sY3lJNld5SXVMaTh1TGk4dUxpOXpjbU12WTI5dWRISmhZM1J6TDBaaFluSnBZME52Ym5SeVlXTjBVM1JoZEdWdFpXNTBMblJ6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFOUJRVThzUlVGRlRDeHZRa0ZCYjBJc1JVRkRjRUlzVjBGQlZ5eEZRVU5ZTEdWQlFXVXNSMEZMYUVJc1RVRkJUU3gxUWtGQmRVSXNRMEZCUXp0QlFVTXZRaXhQUVVGUExFVkJRVVVzUzBGQlN5eEZRVUZGTEUxQlFVMHNaME5CUVdkRExFTkJRVU03UVVGRmRrUXNUMEZCVHl4RlFVRkZMR2RDUVVGblFpeEZRVUZGTEUxQlFVMHNkVUpCUVhWQ0xFTkJRVU03UVVGRGVrUXNUMEZCVHl4RlFVVk1MRk5CUVZNc1JVRkpWQ3hWUVVGVkxFZEJRMWdzVFVGQlRTeG5Ra0ZCWjBJc1EwRkJRenRCUVVONFFpeFBRVUZQTEVWQlFVVXNZVUZCWVN4RlFVRkZMRTFCUVUwc2VVSkJRWGxDTEVOQlFVTTdRVUZGZUVRc1QwRkJUeXhGUVVOTUxHZENRVUZuUWl4RlFVTm9RaXh4UWtGQmNVSXNSVUZEY2tJc1dVRkJXU3hIUVVOaUxHdERRVUUyUWp0QlFVVTVRanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN1IwRjFRa2M3UVVGRFNDeE5RVUZOTEU5QlFVOHNaVUZCYjBNc1UwRkJVU3huUWtGSmVFUTdTVUZEUXl4WlFVTkZMRTlCUVhsRUxFVkJRM3BFTEZOQlFXbERPMUZCUldwRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTm1MRWxCUVVrc1UwRkJVeXhGUVVGRkxFTkJRVU03V1VGRFpDeEpRVUZKTEVOQlFVTXNVMEZCVXl4SFFVRkhMRk5CUVZNc1EwRkJRenRSUVVNM1FpeERRVUZETzBsQlEwZ3NRMEZCUXp0SlFVVnJRaXhMUVVGTExFTkJRVU1zWlVGQlpTeERRVU4wUXl4TlFVRlhMRVZCUTFnc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVU42UWl4UFFVRlBMRU5CUTNGRExFTkJRVU03VVVGREwwTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1RVRkJUU3hMUVVGTExFOUJRVThzUTBGQlF5eE5RVUZOTzFsQlEyaERMRTFCUVUwc1NVRkJTU3hoUVVGaExFTkJRM0pDTERoRFFVRTRReXhOUVVGTkxFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlEyaEZMRU5CUVVNN1VVRkRTaXhQUVVGUExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNUVUZCVFN4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGFFUXNRMEZCUXp0SlFVVnJRaXhMUVVGTE8xRkJRM1JDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1EwRkJRenRSUVVOeVF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFZEJRVWNzVTBGQlV5eERRVUZETzFGQlEyNURMRTFCUVUwc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eHJRa0ZCYTBJc1JVRkJSU3hEUVVGRE8xRkJRMmhFTEVsQlFVa3NZVUZCWVN4RlFVRkZMRU5CUVVNN1dVRkRiRUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNNRUpCUVRCQ0xFVkJRVVVzUlVGQlJTeERRVUZETzJkQ1FVTjBReXhKUVVGSkxFTkJRVU1zYVVKQlFXbENMRWRCUVVjc1lVRkJZU3hEUVVGRE8xbEJRM3BETEVOQlFVTTdhVUpCUVUwc1EwRkJRenRuUWtGRFRpeFBRVUZQTEVsQlFVa3NRMEZCUXl4dlFrRkJiMElzUTBGQlF5eGhRVUZoTEVOQlFVTXNRMEZCUXp0WlFVTnNSQ3hEUVVGRE8xRkJRMGdzUTBGQlF6dFJRVU5FTEUxQlFVMHNVMEZCVXl4SFFVRnJRaXhGUVVGRkxFTkJRVU03VVVGRGNFTXNVMEZCVXl4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVOQlFVTTdVVUZEYkVNc1UwRkJVeXhEUVVGRExGZEJRVmNzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVOQlFVTXNRMEZCUXp0UlFVTnNSU3hOUVVGTkxFdEJRVXNzUjBGQlpTeEZRVUZGTEZGQlFWRXNSVUZCUlN4VFFVRlRMRVZCUVVVc1EwRkJRenRSUVVOc1JDeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpPMWxCUVVVc1MwRkJTeXhEUVVGRExFMUJRVTBzUjBGQlJ5eEpRVUZKTEVOQlFVTXNZMEZCTUVJc1EwRkJRenRSUVVWNFJTeEpRVUZKTEVsQlFVa3NRMEZCUXl4alFVRmpMRVZCUVVVc1EwRkJRenRaUVVONFFpeE5RVUZOTEZOQlFWTXNSMEZCYTBJc1NVRkJTU3hEUVVGRExHTkJRV01zUTBGRGJFUXNVMEZCVXl4RFFVRkRMRWRCUVVjc1EwRkRXQ3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVU51UWl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGSkxGZEJRVmNzUTBGQlF5eExRVUZuUWl4RFFVRkRMRU5CUVVNc1JVRkJSU3hEUVVOeVJDeExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRmRCUVZjc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGRGJFTXNRMEZEUml4RFFVTkdMRU5CUVVNc1VVRkJVU3hEUVVGRE8xbEJRMWdzVFVGQlRTeFpRVUZaTEVkQlFVY3NUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVzlDTEVOQlFVTTdXVUZETDBRc1NVRkRSU3haUVVGWkxFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTTdaMEpCUTNwQ0xFMUJRVTBzUTBGQlF5eE5RVUZOTEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUTBGQlF5eFBRVUZQTEVOQlFVTXNXVUZCV1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzJkQ1FVVnVSU3hSUVVGUkxGbEJRVmtzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMjlDUVVONFFpeExRVUZMTEc5Q1FVRnZRaXhEUVVGRExFZEJRVWM3ZDBKQlF6TkNMRk5CUVZNc1EwRkJReXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhMRU5CUVVNc1IwRkJSenMwUWtGRGNFTXNSMEZCUnl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVOa0xGTkJRVk1zUTBGQlF5eHZRa0ZCYjBJc1EwRkJReXhIUVVGSExFTkJRV3RDTEVOQlEzSkVMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUzBGQmMwSXNSVUZCUlN4SFFVRlJMRVZCUVVVc1JVRkJSVHRuUTBGRE5VTXNUVUZCVFN4SlFVRkpMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0blEwRkRPVUlzU1VGQlNTeEpRVUZKTEVOQlFVTXNUVUZCVFN4TFFVRkxMRU5CUVVNN2IwTkJRMjVDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUTJJc1owUkJRV2RFTEVOQlEycEVMRU5CUVVNN1owTkJRMG9zVFVGQlRTeERRVUZETEVkQlFVY3NTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRE8yZERRVU5zUWl4SlFVRkpMRU5CUVVNc1MwRkJTeXh2UWtGQmIwSXNRMEZCUXl4SFFVRkhPMjlEUVVOb1F5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVrc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlZ5eERRVUZETEVOQlFVTTdPMjlEUVVNNVFpeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRE8yZERRVU55UWl4UFFVRlBMRXRCUVVzc1EwRkJRenMwUWtGRFppeERRVUZETEVWQlFVVXNSVUZCUlN4RFFVRkRPM2xDUVVOUUxFTkJRVU03ZDBKQlEwWXNTMEZCU3l4RFFVRkRMRkZCUVZFc1IwRkJSeXhUUVVGVExFTkJRVU03ZDBKQlF6TkNMRTFCUVUwN2IwSkJRMUlzUzBGQlN5eHZRa0ZCYjBJc1EwRkJReXhGUVVGRkxFTkJRVU1zUTBGQlF5eERRVUZETzNkQ1FVTTNRaXhOUVVGTkxFTkJRVU1zUjBGQmNVSXNSVUZCUlN4RFFVRkRPM2RDUVVNdlFpeERRVUZETEVOQlFVTXNiMEpCUVc5Q0xFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVYzdORUpCUXpWQ0xGTkJRVk03TkVKQlExUXNSMEZCUnl4TlFVRk5MRU5CUVVNc1QwRkJUeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNSVUZCUlN4RlFVRkZPMmREUVVOdVJDeE5RVUZOTEUxQlFVMHNSMEZCY1VJc1JVRkJSU3hEUVVGRE8yZERRVU53UXl4TlFVRk5MRU5CUVVNc1IwRkJSeXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETzJkRFFVTnNRaXhQUVVGUExFMUJRVTBzUTBGQlF6czBRa0ZEYUVJc1EwRkJReXhEUVVGRE8zbENRVU5JTEVOQlFVTTdkMEpCUTBZc1MwRkJTeXhEUVVGRExGRkJRVkVzUjBGQlJ5eERRVUZETEVOQlFVTTdkMEpCUTI1Q0xFMUJRVTA3YjBKQlExSXNRMEZCUXp0dlFrRkRSRHQzUWtGRFJTeE5RVUZOTEVsQlFVa3NTMEZCU3l4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdaMEpCUTJwRUxFTkJRVU03YVVKQlEwVXNRMEZCUXp0blFrRkRTaXhOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZOQlFWTXNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RlFVRkZMRVZCUVVVN2IwSkJReTlETEVsQlFVa3NTMEZCU3l4RFFVRkRMRkZCUVZFc1EwRkJReXhIUVVGSExFTkJRVU03ZDBKQlEzSkNMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRMDRzUzBGQlN5eEhRVUZITERKRFFVRXlReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETEVkQlFVY3NRMEZCUXl4UFFVRlBMRWRCUVVjc1JVRkJSU3hEUVVOdVJpeERRVUZETzI5Q1FVTktMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NSMEZCUnl4RFFVRkRPMmRDUVVNMVFpeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTk1MRU5CUVVNN1VVRkRTQ3hEUVVGRE8xRkJSVVFzU1VGQlNTeEpRVUZKTEVOQlFVTXNaMEpCUVdkQ0xFVkJRVVVzVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYkVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUjBGQlJ5eExRVUZMTEVOQlFVTXNTVUZCU1N4SlFVRkpMRVZCUVVVc1EwRkJRenRaUVVNNVFpeExRVUZMTEVOQlFVTXNVVUZCVVN4SFFVRkhMRXRCUVVzc1EwRkJReXhSUVVGUkxFbEJRVXNzUlVGQmIwSXNRMEZCUXp0WlFVTjZSQ3hMUVVGTExFMUJRVTBzUTBGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRWxCUVVrc1NVRkJTU3hEUVVGRExHZENRVUZuUWl4RlFVRkZMRU5CUVVNN1owSkJRemRFTEUxQlFVMHNVVUZCVVN4SFFVRkhMRmRCUVhGQ0xFTkJRVU03WjBKQlEzWkRMRTFCUVUwc1IwRkJSeXhIUVVGdFF5eEZRVUZGTEVOQlFVTTdaMEpCUXk5RExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNSMEZCUnl4VFFVRXlRaXhEUVVGRE8yZENRVU16UXl4TFFVRkxMRU5CUVVNc1NVRkJlVU1zUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNN1owSkJRek5FTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRExGRkJRVkVzUTBGQlF5eEZRVUZGTEVOQlFVTTdiMEpCUXpsQ0xFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWRCUVVjc1JVRkJiVUlzUTBGQlF6dHZRa0ZET1VNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eFJRVUZSTEVOQlFXMUNMRU5CUVVNc1pVRkJaU3hEUVVGRExFMUJRVTBzUTBGQlF6dDNRa0ZEYWtVc1NVRkJTU3hEUVVGRE8yZENRVU5VTEVOQlFVTTdXVUZEU0N4RFFVRkRPMUZCUTBnc1EwRkJRenRSUVVWRUxFMUJRVTBzYTBKQlFXdENMRWRCUVVjc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eHBRa0ZCYVVJc1EwRkJRenRSUVVOd1JDeEpRVUZKTEVsQlFVa3NRMEZCUXl4aFFVRmhMRVZCUVVVc1EwRkJRenRaUVVOMlFpeExRVUZMTEVOQlFVTXNTMEZCU3l4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU03VVVGRGJrTXNRMEZCUXp0aFFVRk5MRWxCUVVrc1EwRkJReXhyUWtGQmEwSXNSVUZCUlN4RFFVRkRPMWxCUXk5Q0xGbEJRVms3V1VGRFdpeHhSa0ZCY1VZN1dVRkRja1lzUzBGQlN6dFpRVU5NTEcxRFFVRnRRenRaUVVOdVF5eGhRVUZoTzFGQlEyWXNRMEZCUXp0UlFVVkVMRWxCUVVrc1NVRkJTU3hEUVVGRExHTkJRV003V1VGQlJTeExRVUZMTEVOQlFVTXNTVUZCU1N4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRk1VUXNUMEZCVHl4TFFVRkxMRU5CUVVNN1NVRkRaaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZEY0VJc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFZEJRVWNzUlVGQlJTeFBRVUZQTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFbEJRVWtzUlVGQlJTeEpRVUZKTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkZPVVFzVFVGQlRTeEhRVUZITEVkQlFVY3NXVUZCV1N4RFFVRkRMRWRCUVVjc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dFJRVVYyUXl4TlFVRk5MRVZCUVVVc1YwRkJWeXhGUVVGRkxGVkJRVlVzUlVGQlJTeEhRVUZITEV0QlFVc3NRMEZCUXl4alFVRmpMRU5CUVVNc1NVRkJTU3hEUVVGRExGbEJRVmtzUTBGQlF5eERRVUZETzFGQlF6VkZMRTFCUVUwc1YwRkJWeXhIUVVGSE8xbEJRMnhDTEVkQlFVY3NTVUZCU1N4SFFVRkhMRU5CUTFJc1RVRkJUU3hQUVVGUExFTkJRVU1zUjBGQlJ5eERRVU5tTEVOQlFVTXNSMEZCUnl4WFFVRlhMRVZCUVVVc1IwRkJSeXhWUVVGVkxFTkJRVU1zUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVONFF5eFBRVUZQTEVOQlFVTXNTMEZCU3l4UlFVRlJMRU5CUVVNc1EwRkJReXhEUVVGRExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVTXpSQ3hEUVVOR0xFTkJRMFk3VTBGRFJpeERRVUZETzFGQlJVWXNjVUpCUVhGQ0xFTkJRVU1zU1VGQlNTeEpRVUZKTEVOQlFVTXNXVUZCV1N4RlFVRkZMRVZCUVVVc1YwRkJWeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzFGQlEycEZMRTFCUVUwc1owSkJRV2RDTEVOQlFVTXNTVUZCU1N4RFFVRkRMRmxCUVZrc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlFVTTdVVUZGY0VRc1NVRkJTU3hEUVVGRE8xbEJRMGdzU1VGQlNTeEpRVUZKTEVOQlFVTXNVVUZCVVR0blFrRkJSU3hQUVVGUExFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNSMEZCU1N4SlFVRlpMRU5CUVVNc1EwRkJRenRaUVVOcVJTeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVRkRMREpDUVVFeVFpeERRVUZETEVOQlFVTTdXVUZEZGtNc1RVRkJUU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RFFVRkRPMWxCUXpOQ0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNlVUpCUVhsQ0xFTkJRVU1zUTBGQlF6dFpRVU55UXl4TlFVRk5MRTlCUVU4c1IwRkJSeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETEVkQlFVY3NRMEZETjBJc1MwRkJTeXhGUVVOTUxFbEJRVWtzUlVGRFNpeEhRVUZKTEU5QlFXbEVMRU5CUTNSRUxFTkJRV2xDTEVOQlFVTTdXVUZEYmtJc1NVRkJTU3hKUVVGSkxFTkJRVU1zWTBGQll5eEZRVUZGTEVWQlFVVXNRMEZCUXp0blFrRkRNVUlzVDBGQlR5eFBRVUZQTEVOQlFVTTdXVUZEYWtJc1EwRkJRenRaUVVORUxFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNZMEZCWXl4RlFVRkZMRU5CUVVNN1owSkJRM3BDTEVsQlFVa3NTVUZCU1N4RFFVRkRMR2RDUVVGblFpeEZRVUZGTEUxQlFVMHNSVUZCUlN4RFFVRkRPMjlDUVVOc1F5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc2IwSkJRVzlDTEVOQlEzWkRMRTlCUVU4c1JVRkRVQ3hEUVVGRExFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNTVUZCU1N4RFFVRkRMR0ZCUVdFc1EwRkJReXhEUVVGRExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlF6ZENMRU5CUVVNN2IwSkJRMUFzVDBGQlR5eERRVUZETEUxQlFVMHNTVUZCU1N4RFFVRkRMREJDUVVFd1FpeERRVUZETEU5QlFVOHNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJUU3hEUVVGRE8yZENRVU53UlN4RFFVRkRPMmRDUVVORUxFbEJRVWtzUzBGQlN5eERRVUZETEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSU3hEUVVGRE8yOUNRVU16UWl4TlFVRk5MRTFCUVUwc1IwRkJSeXhQUVVGUExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zWVVGQllTeERRVUZETEVOQlFVTXNSVUZCUlN4SFFVRkhMRU5CUVVNc1EwRkJhVUlzUTBGQlF6dHZRa0ZET1VVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCVFN4RFFVRkRPMmRDUVVOdVJTeERRVUZETzJkQ1FVTkVMRTFCUVUwc1RVRkJUU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTXNUMEZCVHl4RlFVRkZMRWRCUVVjc1EwRkJhVUlzUTBGQlF6dG5Ra0ZEYUVVc1QwRkJUeXhEUVVGRExFMUJRVTBzU1VGQlNTeERRVUZETERCQ1FVRXdRaXhEUVVGRExFMUJRVTBzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCVFN4RFFVRkRPMWxCUTI1RkxFTkJRVU03V1VGRFJDeFBRVUZQTEU5QlFVOHNRMEZCUXp0UlFVTnFRaXhEUVVGRE8xRkJRVU1zVDBGQlR5eERRVUZWTEVWQlFVVXNRMEZCUXp0WlFVTndRaXhOUVVGTkxFbEJRVWtzVlVGQlZTeERRVUZETEVOQlFWVXNRMEZCUXl4RFFVRkRPMUZCUTI1RExFTkJRVU03U1VGRFNDeERRVUZETzBOQlEwWWlMQ0p6YjNWeVkyVnpRMjl1ZEdWdWRDSTZXeUpwYlhCdmNuUWdlMXh1SUNCRGIzVmphRVJDUVdSaGNIUmxjaXhjYmlBZ1EyOTFZMmhFUWtkeWIzVndUM0JsY21GMGIzSXNYRzRnSUVOdmRXTm9SRUpMWlhsekxGeHVJQ0JEYjNWamFFUkNUM0JsY21GMGIzSXNYRzRnSUVOdmRXTm9SRUpSZFdWeWVVeHBiV2wwTEZ4dUlDQk5ZVzVuYjA5d1pYSmhkRzl5TEZ4dUlDQk5ZVzVuYjFGMVpYSjVMRnh1SUNCTllXNW5iMU5sYkdWamRHOXlMRnh1ZlNCbWNtOXRJRndpUUdSbFkyRm1MWFJ6TDJadmNpMWpiM1ZqYUdSaVhDSTdYRzVwYlhCdmNuUWdleUJOYjJSbGJDQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHOXlMWFpoYkdsa1lYUnBiMjVjSWp0Y2JtbHRjRzl5ZENCN0lFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ0I5SUdaeWIyMGdYQ0l1TDBOdmJuUnlZV04wUTI5dWRHVjRkRndpTzF4dWFXMXdiM0owSUhzZ1EyOTFZMmhFUWxOMFlYUmxiV1Z1ZENCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlptOXlMV052ZFdOb1pHSmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lFRmtZWEIwWlhKR2JHRm5jeXhjYmlBZ1EyOXVaR2wwYVc5dUxGeHVJQ0JEYjI1MFpYaDBkV0ZzUVhKbmN5eGNiaUFnVFdGNVltVkRiMjUwWlhoMGRXRnNRWEpuTEZ4dUlDQlBjbVJsY2tScGNtVmpkR2x2Yml4Y2JpQWdVWFZsY25sRmNuSnZjaXhjYm4wZ1puSnZiU0JjSWtCa1pXTmhaaTEwY3k5amIzSmxYQ0k3WEc1cGJYQnZjblFnZXlCSmJuUmxjbTVoYkVWeWNtOXlJSDBnWm5KdmJTQmNJa0JrWldOaFppMTBjeTlrWWkxa1pXTnZjbUYwYjNKelhDSTdYRzVwYlhCdmNuUWdleUJEYjI1emRISjFZM1J2Y2lCOUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlpHVmpiM0poZEdsdmJsd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1lYQndiSGxOYVhKeWIzSkdiR0ZuY3l4Y2JpQWdZWEJ3YkhsVFpXZHlaV2RoZEdsdmJrWnNZV2R6TEZ4dUlDQmxlSFJ5WVdOMFRYTndTV1FzWEc1OUlHWnliMjBnWENJdUxpOXphR0Z5WldRdlpHVmpiM0poZEc5eWMxd2lPMXh1WEc0dktpcGNiaUFxSUVCa1pYTmpjbWx3ZEdsdmJpQlRkR0YwWlcxbGJuUWdkM0poY0hCbGNpQm1iM0lnWlhobFkzVjBhVzVuSUUxaGJtZHZJSEYxWlhKcFpYTWdkMmwwYUdsdUlFWmhZbkpwWXlCamIyNTBjbUZqZEhOY2JpQXFJRUJ6ZFcxdFlYSjVJRUp5YVdSblpYTWdRMjkxWTJoRVFpMXpkSGxzWlNCeGRXVnlhV1Z6SUhSdklFWmhZbkpwWXlCMmFXRWdkR2hsSUVaaFluSnBZME52Ym5SeVlXTjBRV1JoY0hSbGNpd2dhR0Z1Wkd4cGJtY2dhV1JsYm5ScGRIa2dZVzVrSUhCeWFXMWhjbmtnYTJWNUlIQnliMnBsWTNScGIyNGdkMmhsYmlCdVpXVmtaV1F1WEc0Z0tpQkFkR1Z0Y0d4aGRHVWdUU0F0SUUxdlpHVnNJSFI1Y0dVZ2RHaHBjeUJ6ZEdGMFpXMWxiblFnYjNCbGNtRjBaWE1nYjI1Y2JpQXFJRUIwWlcxd2JHRjBaU0JTSUMwZ1VtVnpkV3gwSUhSNWNHVWdjbVYwZFhKdVpXUWdZbmtnZEdobElITjBZWFJsYldWdWRGeHVJQ29nUUhCaGNtRnRJSHRHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKOUlHRmtZWEIwWlhJZ0xTQlVhR1VnUm1GaWNtbGpJR052Ym5SeVlXTjBJR0ZrWVhCMFpYSWdkWE5sWkNCbWIzSWdjbUYzSUdWNFpXTjFkR2x2Ymx4dUlDb2dRSEJoY21GdElIdEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFI5SUdOMGVDQXRJRlJvWlNCR1lXSnlhV01nWTI5dWRISmhZM1FnWTI5dWRHVjRkQ0JqWVhKeWVXbHVaeUJ6ZEhWaUlHRnVaQ0JwWkdWdWRHbDBlVnh1SUNvZ1FISmxkSFZ5YmlCN2RtOXBaSDFjYmlBcUlFQmpiR0Z6Y3lCR1lXSnlhV05UZEdGMFpXMWxiblJjYmlBcUlFQmxlR0Z0Y0d4bFhHNGdLaUJqYjI1emRDQnpkRzEwSUQwZ2JtVjNJRVpoWW5KcFkxTjBZWFJsYldWdWREeE5lVTF2WkdWc0xDQk5lVTF2WkdWc1cxMCtLR0ZrWVhCMFpYSXNJR04wZUNrN1hHNGdLaUJqYjI1emRDQnlaWE4xYkhRZ1BTQmhkMkZwZENCemRHMTBMbkpoZHp4TmVVMXZaR1ZzVzEwK0tIc2djMlZzWldOMGIzSTZJSHNnZEhsd1pUb2dKMDE1VFc5a1pXd25JSDBnZlNrN1hHNGdLaUJBYldWeWJXRnBaRnh1SUNvZ2MyVnhkV1Z1WTJWRWFXRm5jbUZ0WEc0Z0tpQWdJSEJoY25ScFkybHdZVzUwSUVGd2NGeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQlRkR0YwWlcxbGJuUmNiaUFxSUNBZ2NHRnlkR2xqYVhCaGJuUWdRV1JoY0hSbGNseHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQk1aV1JuWlhKY2JpQXFJQ0FnUVhCd0xUNCtVM1JoZEdWdFpXNTBPaUJ5WVhjb2V5QnpaV3hsWTNSdmNpQjlLVnh1SUNvZ0lDQlRkR0YwWlcxbGJuUXRQajVCWkdGd2RHVnlPaUJoWkdGd2RHVnlMbkpoZHlodFlXNW5ieXdnZEhKMVpTd2dZM1I0S1Z4dUlDb2dJQ0JCWkdGd2RHVnlMVDQrVEdWa1oyVnlPaUJGZG1Gc2RXRjBaU0J4ZFdWeWVWeHVJQ29nSUNCQlpHRndkR1Z5TFMwK1BsTjBZWFJsYldWdWREb2djbTkzYzF4dUlDb2dJQ0JUZEdGMFpXMWxiblF0TFQ0K1FYQndPaUJ0YjJSbGJITmNiaUFxTDF4dVpYaHdiM0owSUdOc1lYTnpJRVpoWW5KcFkxTjBZWFJsYldWdWREeE5JR1Y0ZEdWdVpITWdUVzlrWld3c0lGSStJR1Y0ZEdWdVpITWdRMjkxWTJoRVFsTjBZWFJsYldWdWREeGNiaUFnVFN4Y2JpQWdRMjkxWTJoRVFrRmtZWEIwWlhJOFlXNTVMQ0IyYjJsa0xDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErTEZ4dUlDQlNYRzQrSUh0Y2JpQWdZMjl1YzNSeWRXTjBiM0lvWEc0Z0lDQWdZV1JoY0hSbGNqb2dRMjkxWTJoRVFrRmtZWEIwWlhJOFlXNTVMQ0IyYjJsa0xDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErTEZ4dUlDQWdJRzkyWlhKeWFXUmxjejg2SUZCaGNuUnBZV3c4UVdSaGNIUmxja1pzWVdkelBseHVJQ0FwSUh0Y2JpQWdJQ0J6ZFhCbGNpaGhaR0Z3ZEdWeUtUdGNiaUFnSUNCcFppQW9iM1psY25KcFpHVnpLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtOTJaWEp5YVdSbGN5QTlJRzkyWlhKeWFXUmxjenRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J3Y205MFpXTjBaV1FnYjNabGNuSnBaR1VnWVhONWJtTWdaWGhsWTNWMGFXOXVVSEpsWm1sNEtGeHVJQ0FnSUcxbGRHaHZaRG9nWVc1NUxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrZ2UxeHVJQ0FnSUdOdmJuTjBJRzVsZDBGeVozTWdQU0JoY21kekxtWnBiSFJsY2loY2JpQWdJQ0FnSUVKdmIyeGxZVzVjYmlBZ0lDQXBJR0Z6SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStPMXh1SUNBZ0lHbG1JQ2hoY21kekxteGxibWQwYUNBaFBUMGdibVYzUVhKbmN5NXNaVzVuZEdncFhHNGdJQ0FnSUNCMGFISnZkeUJ1WlhjZ1NXNTBaWEp1WVd4RmNuSnZjaWhjYmlBZ0lDQWdJQ0FnWUZKbFkyVnBkbVZrSUdGdUlIVnVaR1ZtYVc1bFpDQnBiaUIwYUdVZ2NHRm5hVzVoZEc5eUlHWnZjaUFrZTIxbGRHaHZaSDA2SUNSN1lYSm5jMzFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSEpsZEhWeWJpQnpkWEJsY2k1bGVHVmpkWFJwYjI1UWNtVm1hWGdvYldWMGFHOWtMQ0F1TGk1aGNtZHpLVHRjYmlBZ2ZWeHVYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCaWRXbHNaQ2dwT2lCTllXNW5iMUYxWlhKNUlIdGNiaUFnSUNCamIyNXpkQ0JzYjJjZ1BTQjBhR2x6TG14dlp5NW1iM0lvZEdocGN5NWlkV2xzWkNrN1hHNGdJQ0FnZEdocGN5NXRZVzUxWVd4QloyZHlaV2RoZEdsdmJpQTlJSFZ1WkdWbWFXNWxaRHRjYmlBZ0lDQmpiMjV6ZENCaFoyZHlaV2RoZEdWSmJtWnZJRDBnZEdocGN5NWlkV2xzWkVGblozSmxaMkYwWlVsdVptOG9LVHRjYmlBZ0lDQnBaaUFvWVdkbmNtVm5ZWFJsU1c1bWJ5a2dlMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVjMmh2ZFd4a1ZYTmxUV0Z1ZFdGc1FXZG5jbVZuWVhScGIyNG9LU2tnZTF4dUlDQWdJQ0FnSUNCMGFHbHpMbTFoYm5WaGJFRm5aM0psWjJGMGFXOXVJRDBnWVdkbmNtVm5ZWFJsU1c1bWJ6dGNiaUFnSUNBZ0lIMGdaV3h6WlNCN1hHNGdJQ0FnSUNBZ0lISmxkSFZ5YmlCMGFHbHpMbU55WldGMFpVRm5aM0psWjJGMFpWRjFaWEo1S0dGblozSmxaMkYwWlVsdVptOHBPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnSUNCamIyNXpkQ0J6Wld4bFkzUnZjbk02SUUxaGJtZHZVMlZzWldOMGIzSWdQU0I3ZlR0Y2JpQWdJQ0J6Wld4bFkzUnZjbk5iUTI5MVkyaEVRa3RsZVhNdVZFRkNURVZkSUQwZ2UzMDdYRzRnSUNBZ2MyVnNaV04wYjNKelcwTnZkV05vUkVKTFpYbHpMbFJCUWt4RlhTQTlJRTF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1aeWIyMVRaV3hsWTNSdmNpazdYRzRnSUNBZ1kyOXVjM1FnY1hWbGNuazZJRTFoYm1kdlVYVmxjbmtnUFNCN0lITmxiR1ZqZEc5eU9pQnpaV3hsWTNSdmNuTWdmVHRjYmlBZ0lDQnBaaUFvZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lrZ2NYVmxjbmt1Wm1sbGJHUnpJRDBnZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lCaGN5QnpkSEpwYm1kYlhUdGNibHh1SUNBZ0lHbG1JQ2gwYUdsekxuZG9aWEpsUTI5dVpHbDBhVzl1S1NCN1hHNGdJQ0FnSUNCamIyNXpkQ0JqYjI1a2FYUnBiMjQ2SUUxaGJtZHZVMlZzWldOMGIzSWdQU0IwYUdsekxuQmhjbk5sUTI5dVpHbDBhVzl1S0Z4dUlDQWdJQ0FnSUNCRGIyNWthWFJwYjI0dVlXNWtLRnh1SUNBZ0lDQWdJQ0FnSUhSb2FYTXVkMmhsY21WRGIyNWthWFJwYjI0c1hHNGdJQ0FnSUNBZ0lDQWdRMjl1WkdsMGFXOXVMbUYwZEhKcFluVjBaVHhOUGloRGIzVmphRVJDUzJWNWN5NVVRVUpNUlNCaGN5QnJaWGx2WmlCTktTNWxjU2hjYmlBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5VzBOdmRXTm9SRUpMWlhsekxsUkJRa3hGWFZ4dUlDQWdJQ0FnSUNBZ0lDbGNiaUFnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdLUzV6Wld4bFkzUnZjanRjYmlBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEc5eVMyVjVjeUE5SUU5aWFtVmpkQzVyWlhsektHTnZibVJwZEdsdmJpa2dZWE1nVFdGdVoyOVBjR1Z5WVhSdmNsdGRPMXh1SUNBZ0lDQWdhV1lnS0Z4dUlDQWdJQ0FnSUNCelpXeGxZM1J2Y2t0bGVYTXViR1Z1WjNSb0lEMDlQU0F4SUNZbVhHNGdJQ0FnSUNBZ0lFOWlhbVZqZEM1MllXeDFaWE1vUTI5MVkyaEVRa2R5YjNWd1QzQmxjbUYwYjNJcExtbHVaR1Y0VDJZb2MyVnNaV04wYjNKTFpYbHpXekJkS1NBaFBUMGdMVEZjYmlBZ0lDQWdJQ2xjYmlBZ0lDQWdJQ0FnYzNkcGRHTm9JQ2h6Wld4bFkzUnZja3RsZVhOYk1GMHBJSHRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRU52ZFdOb1JFSkhjbTkxY0U5d1pYSmhkRzl5TGtGT1JEcGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJtUnBkR2x2Ymx0RGIzVmphRVJDUjNKdmRYQlBjR1Z5WVhSdmNpNUJUa1JkSUQwZ1cxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBdUxpNVBZbXBsWTNRdWRtRnNkV1Z6S0Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdOdmJtUnBkR2x2Ymx0RGIzVmphRVJDUjNKdmRYQlBjR1Z5WVhSdmNpNUJUa1JkSUdGeklFMWhibWR2VTJWc1pXTjBiM0pjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdLUzV5WldSMVkyVW9LR0ZqWTNWdE9pQk5ZVzVuYjFObGJHVmpkRzl5VzEwc0lIWmhiRG9nWVc1NUtTQTlQaUI3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWTI5dWMzUWdhMlY1Y3lBOUlFOWlhbVZqZEM1clpYbHpLSFpoYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2FXWWdLR3RsZVhNdWJHVnVaM1JvSUNFOVBTQXhLVnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCY0lsUnZieUJ0WVc1NUlHdGxlWE1nYVc0Z2NYVmxjbmtnYzJWc1pXTjBiM0l1SUhOb2IzVnNaQ0JpWlNCdmJtVmNJbHh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0JySUQwZ2EyVjVjMXN3WFR0Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCcFppQW9heUE5UFQwZ1EyOTFZMmhFUWtkeWIzVndUM0JsY21GMGIzSXVRVTVFS1Z4dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1lXTmpkVzB1Y0hWemFDZ3VMaTRvZG1Gc1cydGRJR0Z6SUdGdWVWdGRLU2s3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnWld4elpTQmhZMk4xYlM1d2RYTm9LSFpoYkNrN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUdGalkzVnRPMXh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQjlMQ0JiWFNrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0JkTzF4dUlDQWdJQ0FnSUNBZ0lDQWdjWFZsY25rdWMyVnNaV04wYjNJZ1BTQmpiMjVrYVhScGIyNDdYRzRnSUNBZ0lDQWdJQ0FnSUNCaWNtVmhhenRjYmlBZ0lDQWdJQ0FnSUNCallYTmxJRU52ZFdOb1JFSkhjbTkxY0U5d1pYSmhkRzl5TGs5U09pQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyNXpkQ0J6T2lCU1pXTnZjbVE4WVc1NUxDQmhibmsrSUQwZ2UzMDdYRzRnSUNBZ0lDQWdJQ0FnSUNCelcwTnZkV05vUkVKSGNtOTFjRTl3WlhKaGRHOXlMa0ZPUkYwZ1BTQmJYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibVJwZEdsdmJpeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0xpNHVUMkpxWldOMExtVnVkSEpwWlhNb2NYVmxjbmt1YzJWc1pXTjBiM0lwTG0xaGNDZ29XMnRsZVN3Z2RtRnNYU2tnUFQ0Z2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkRG9nVW1WamIzSmtQR0Z1ZVN3Z1lXNTVQaUE5SUh0OU8xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxjM1ZzZEZ0clpYbGRJRDBnZG1Gc08xeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lISmxkSFZ5YmlCeVpYTjFiSFE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJSDBwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdYVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5SUQwZ2N6dGNiaUFnSUNBZ0lDQWdJQ0FnSUdKeVpXRnJPMXh1SUNBZ0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0lDQmtaV1poZFd4ME9seHVJQ0FnSUNBZ0lDQWdJQ0FnZEdoeWIzY2dibVYzSUVWeWNtOXlLRndpVkdocGN5QnphRzkxYkdRZ1ltVWdhVzF3YjNOemFXSnNaVndpS1R0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ1pXeHpaU0I3WEc0Z0lDQWdJQ0FnSUU5aWFtVmpkQzVsYm5SeWFXVnpLR052Ym1ScGRHbHZiaWt1Wm05eVJXRmphQ2dvVzJ0bGVTd2dkbUZzWFNrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdsbUlDaHhkV1Z5ZVM1elpXeGxZM1J2Y2x0clpYbGRLVnh1SUNBZ0lDQWdJQ0FnSUNBZ2JHOW5MbmRoY200b1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUdCQklDUjdhMlY1ZlNCeGRXVnllU0J3WVhKaGJTQnBjeUJoWW05MWRDQjBieUJpWlNCdmRtVnljbWxrWkdWdU9pQWtlM0YxWlhKNUxuTmxiR1ZqZEc5eVcydGxlVjE5SUdKNUlDUjdkbUZzZldCY2JpQWdJQ0FnSUNBZ0lDQWdJQ2s3WEc0Z0lDQWdJQ0FnSUNBZ2NYVmxjbmt1YzJWc1pXTjBiM0piYTJWNVhTQTlJSFpoYkR0Y2JpQWdJQ0FnSUNBZ2ZTazdYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ2FXWWdLSFJvYVhNdWIzSmtaWEpDZVZObGJHVmpkRzl5Y3o4dWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCeGRXVnllUzV6YjNKMElEMGdjWFZsY25rdWMyOXlkQ0I4ZkNCYlhUdGNiaUFnSUNBZ0lIRjFaWEo1TG5ObGJHVmpkRzl5SUQwZ2NYVmxjbmt1YzJWc1pXTjBiM0lnZkh3Z0tIdDlJR0Z6SUUxaGJtZHZVMlZzWldOMGIzSXBPMXh1SUNBZ0lDQWdabTl5SUNoamIyNXpkQ0JiYzJWc1pXTjBiM0pMWlhrc0lHUnBjbVZqZEdsdmJsMGdiMllnZEdocGN5NXZjbVJsY2tKNVUyVnNaV04wYjNKektTQjdYRzRnSUNBZ0lDQWdJR052Ym5OMElITmxiR1ZqZEc5eUlEMGdjMlZzWldOMGIzSkxaWGtnWVhNZ2MzUnlhVzVuTzF4dUlDQWdJQ0FnSUNCamIyNXpkQ0J5WldNNklGSmxZMjl5WkR4emRISnBibWNzSUU5eVpHVnlSR2x5WldOMGFXOXVQaUE5SUh0OU8xeHVJQ0FnSUNBZ0lDQnlaV05iYzJWc1pXTjBiM0pkSUQwZ1pHbHlaV04wYVc5dUlHRnpJRTl5WkdWeVJHbHlaV04wYVc5dU8xeHVJQ0FnSUNBZ0lDQW9jWFZsY25rdWMyOXlkQ0JoY3lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JQY21SbGNrUnBjbVZqZEdsdmJqNWJYU2t1Y0hWemFDaHlaV01wTzF4dUlDQWdJQ0FnSUNCcFppQW9JWEYxWlhKNUxuTmxiR1ZqZEc5eVczTmxiR1ZqZEc5eVhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhGMVpYSjVMbk5sYkdWamRHOXlXM05sYkdWamRHOXlYU0E5SUh0OUlHRnpJRTFoYm1kdlUyVnNaV04wYjNJN1hHNGdJQ0FnSUNBZ0lDQWdLSEYxWlhKNUxuTmxiR1ZqZEc5eVczTmxiR1ZqZEc5eVhTQmhjeUJOWVc1bmIxTmxiR1ZqZEc5eUtWdERiM1ZqYUVSQ1QzQmxjbUYwYjNJdVFrbEhSMFZTWFNBOVhHNGdJQ0FnSUNBZ0lDQWdJQ0J1ZFd4c08xeHVJQ0FnSUNBZ0lDQjlYRzRnSUNBZ0lDQjlYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnYUdGelRXRnVkV0ZzUVdkbmNtVm5ZWFJsSUQwZ0lTRjBhR2x6TG0xaGJuVmhiRUZuWjNKbFoyRjBhVzl1TzF4dUlDQWdJR2xtSUNoMGFHbHpMbXhwYldsMFUyVnNaV04wYjNJcElIdGNiaUFnSUNBZ0lIRjFaWEo1TG14cGJXbDBJRDBnZEdocGN5NXNhVzFwZEZObGJHVmpkRzl5TzF4dUlDQWdJSDBnWld4elpTQnBaaUFvSVdoaGMwMWhiblZoYkVGblozSmxaMkYwWlNrZ2UxeHVJQ0FnSUNBZ0x5OGdiRzluTG5kaGNtNG9YRzRnSUNBZ0lDQXZMeUFnSUdCT2J5QnNhVzFwZENCelpXeGxZM1J2Y2lCa1pXWnBibVZrTGlCVmMybHVaeUJrWldaaGRXeDBJR052ZFdOb1pHSWdiR2x0YVhRZ2IyWWdKSHREYjNWamFFUkNVWFZsY25sTWFXMXBkSDFnWEc0Z0lDQWdJQ0F2THlBcE8xeHVJQ0FnSUNBZ0x5OGdjWFZsY25rdWJHbHRhWFFnUFNCRGIzVmphRVJDVVhWbGNubE1hVzFwZER0Y2JpQWdJQ0FnSUM4dklHUnZJRzV2ZEdocGJtZGNiaUFnSUNCOVhHNWNiaUFnSUNCcFppQW9kR2hwY3k1dlptWnpaWFJUWld4bFkzUnZjaWtnY1hWbGNua3VjMnRwY0NBOUlIUm9hWE11YjJabWMyVjBVMlZzWldOMGIzSTdYRzVjYmlBZ0lDQnlaWFIxY200Z2NYVmxjbms3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJsZUdWamRYUmxLRnh1SUNBZ0lDNHVMbUZ5WjNNNklFMWhlV0psUTI5dWRHVjRkSFZoYkVGeVp6eEdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFErWEc0Z0lDazZJRkJ5YjIxcGMyVThVajRnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ3NJR04wZUVGeVozTWdmU0E5SUhSb2FYTXViRzluUTNSNEtHRnlaM01zSUhSb2FYTXVaWGhsWTNWMFpTazdYRzVjYmlBZ0lDQmpiMjV6ZENCdGMzQWdQU0JsZUhSeVlXTjBUWE53U1dRb1kzUjRMbWxrWlc1MGFYUjVLVHRjYmx4dUlDQWdJR052Ym5OMElIc2djSEpwZG1GMFpVTnZiSE1zSUhOb1lYSmxaRU52YkhNZ2ZTQTlJRTF2WkdWc0xtTnZiR3hsWTNScGIyNXpSbTl5S0hSb2FYTXVabkp2YlZObGJHVmpkRzl5S1R0Y2JpQWdJQ0JqYjI1emRDQmpiMnhzWldOMGFXOXVjeUE5SUZ0Y2JpQWdJQ0FnSUM0dUxtNWxkeUJUWlhRb1hHNGdJQ0FnSUNBZ0lHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ0lDQWdJRnN1TGk1d2NtbDJZWFJsUTI5c2N5d2dMaTR1YzJoaGNtVmtRMjlzYzEwdWJXRndLQ2hqS1NBOVBseHVJQ0FnSUNBZ0lDQWdJQ0FnZEhsd1pXOW1JR01nUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJqSURvZ1l5aDBhR2x6TG1aeWIyMVRaV3hsWTNSdmNpd2diWE53TENCamRIZ3BYRzRnSUNBZ0lDQWdJQ0FnS1Z4dUlDQWdJQ0FnSUNBcFhHNGdJQ0FnSUNBcExGeHVJQ0FnSUYwN1hHNWNiaUFnSUNCaGNIQnNlVk5sWjNKbFoyRjBhVzl1Um14aFozTW9ibVYzSUhSb2FYTXVabkp2YlZObGJHVmpkRzl5S0Nrc0lHTnZiR3hsWTNScGIyNXpMQ0JqZEhncE8xeHVJQ0FnSUdGM1lXbDBJR0Z3Y0d4NVRXbHljbTl5Um14aFozTW9kR2hwY3k1bWNtOXRVMlZzWldOMGIzSXNJRzF6Y0N3Z1kzUjRLVHRjYmx4dUlDQWdJSFJ5ZVNCN1hHNGdJQ0FnSUNCcFppQW9kR2hwY3k1d2NtVndZWEpsWkNrZ2NtVjBkWEp1SUhSb2FYTXVaWGhsWTNWMFpWQnlaWEJoY21Wa0tDNHVMaWhoY21keklHRnpJR0Z1ZVNrcE8xeHVJQ0FnSUNBZ2JHOW5Mbk5wYkd4NUtHQkNkV2xzWkdsdVp5QnlZWGNnYzNSaGRHVnRaVzUwTGk0dVlDazdYRzRnSUNBZ0lDQmpiMjV6ZENCeGRXVnllU0E5SUhSb2FYTXVZblZwYkdRb0tUdGNiaUFnSUNBZ0lHeHZaeTV6YVd4c2VTaGdaWGhsWTNWMGFXNW5JSEpoZHlCemRHRjBaVzFsYm5SZ0tUdGNiaUFnSUNBZ0lHTnZibk4wSUhKbGMzVnNkSE1nUFNBb1lYZGhhWFFnZEdocGN5NXlZWGM4VWo0b1hHNGdJQ0FnSUNBZ0lIRjFaWEo1TEZ4dUlDQWdJQ0FnSUNCMGNuVmxMRnh1SUNBZ0lDQWdJQ0F1TGk0b1kzUjRRWEpuY3lCaGN5QkRiMjUwWlhoMGRXRnNRWEpuY3p4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStLVnh1SUNBZ0lDQWdLU2tnWVhNZ2RXNXJibTkzYmlCaGN5QlNPMXh1SUNBZ0lDQWdhV1lnS0hSb2FYTXVhR0Z6UVdkbmNtVm5ZWFJwYjI0b0tTa2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdjbVZ6ZFd4MGN6dGNiaUFnSUNBZ0lIMWNiaUFnSUNBZ0lHbG1JQ2doZEdocGN5NXpaV3hsWTNSVFpXeGxZM1J2Y2lrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvZEdocGN5NW5jbTkxY0VKNVUyVnNaV04wYjNKelB5NXNaVzVuZEdncElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQm5jbTkxY0dWa0lEMGdkR2hwY3k1eVpYWmxjblJIY205MWNHVmtVbVZ6ZFd4MGN5aGNiaUFnSUNBZ0lDQWdJQ0FnSUhKbGMzVnNkSE1zWEc0Z0lDQWdJQ0FnSUNBZ0lDQW9jaWtnUFQ0Z2RHaHBjeTV3Y205alpYTnpVbVZqYjNKa0tISXNJR04wZUNsY2JpQWdJQ0FnSUNBZ0lDQXBJR0Z6SUZJN1hHNGdJQ0FnSUNBZ0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbUZ3Y0d4NVFXWjBaWEpJWVc1a2JHVnljMVJ2VW1WemRXeDBLR2R5YjNWd1pXUXNJR04wZUNrcElHRnpJRkk3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ2FXWWdLRUZ5Y21GNUxtbHpRWEp5WVhrb2NtVnpkV3gwY3lrcElIdGNiaUFnSUNBZ0lDQWdJQ0JqYjI1emRDQnRZWEJ3WldRZ1BTQnlaWE4xYkhSekxtMWhjQ2dvY2lrZ1BUNGdkR2hwY3k1d2NtOWpaWE56VW1WamIzSmtLSElzSUdOMGVDa3BJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VqdGNiaUFnSUNBZ0lDQWdJQ0J5WlhSMWNtNGdLR0YzWVdsMElIUm9hWE11WVhCd2JIbEJablJsY2toaGJtUnNaWEp6Vkc5U1pYTjFiSFFvYldGd2NHVmtMQ0JqZEhncEtTQmhjeUJTTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibk4wSUhOcGJtZHNaU0E5SUhSb2FYTXVjSEp2WTJWemMxSmxZMjl5WkNoeVpYTjFiSFJ6TENCamRIZ3BJR0Z6SUhWdWEyNXZkMjRnWVhNZ1VqdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlDaGhkMkZwZENCMGFHbHpMbUZ3Y0d4NVFXWjBaWEpJWVc1a2JHVnljMVJ2VW1WemRXeDBLSE5wYm1kc1pTd2dZM1I0S1NrZ1lYTWdVanRjYmlBZ0lDQWdJSDFjYmlBZ0lDQWdJSEpsZEhWeWJpQnlaWE4xYkhSek8xeHVJQ0FnSUgwZ1kyRjBZMmdnS0dVNklIVnVhMjV2ZDI0cElIdGNiaUFnSUNBZ0lIUm9jbTkzSUc1bGR5QlJkV1Z5ZVVWeWNtOXlLR1VnWVhNZ1JYSnliM0lwTzF4dUlDQWdJSDFjYmlBZ2ZWeHVmVnh1SWwxOSJdfQ==
|
|
180
|
+
//# sourceMappingURL=FabricContractStatement.js.map
|
|
181
|
+
//# sourceMappingURL=FabricContractStatement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FabricContractStatement.js","sourceRoot":"","sources":["FabricContractStatement.js"],"names":[],"mappings":"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"}
|