@decaf-ts/for-fabric 0.11.0 → 0.12.1
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 +3797 -2
- package/dist/for-fabric.js +3901 -2
- package/lib/cjs/bin/cli.cjs +2 -2
- package/lib/cjs/cli-module.cjs +28 -3
- package/lib/cjs/cli-utils.cjs +2 -2
- package/lib/cjs/client/FabricClientAdapter.cjs +2 -2
- package/lib/cjs/client/FabricClientDispatch.cjs +2 -2
- package/lib/cjs/client/FabricClientPaginator.cjs +2 -2
- package/lib/cjs/client/FabricClientRepository.cjs +2 -2
- package/lib/cjs/client/FabricClientStatement.cjs +2 -2
- package/lib/cjs/client/collections/generation.cjs +2 -2
- package/lib/cjs/client/collections/index.cjs +2 -2
- package/lib/cjs/client/constants.cjs +2 -2
- package/lib/cjs/client/crypto.cjs +2 -2
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs +2 -2
- package/lib/cjs/client/erc20/index.cjs +2 -2
- package/lib/cjs/client/fabric-fs.cjs +2 -2
- package/lib/cjs/client/fabric-hsm.cjs +2 -2
- package/lib/cjs/client/ids/id-extraction.cjs +2 -2
- package/lib/cjs/client/ids/index.cjs +2 -2
- package/lib/cjs/client/index.cjs +2 -2
- package/lib/cjs/client/indexes/generation.cjs +2 -2
- package/lib/cjs/client/indexes/index.cjs +2 -2
- package/lib/cjs/client/logging.cjs +2 -2
- package/lib/cjs/client/services/FabricEnrollmentService.cjs +2 -2
- package/lib/cjs/client/services/FabricIdentityService.cjs +2 -2
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs +2 -2
- package/lib/cjs/client/services/constants.cjs +2 -2
- package/lib/cjs/client/services/index.cjs +2 -2
- package/lib/cjs/client/types.cjs +2 -2
- package/lib/cjs/client/utils.cjs +2 -2
- package/lib/cjs/contract/Address.cjs +2 -2
- package/lib/cjs/contract/AddressContract.cjs +2 -2
- package/lib/cjs/contract/AuditContract.cjs +2 -2
- package/lib/cjs/contract/BatchContract.cjs +2 -2
- package/lib/cjs/contract/MarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherAuditContract.cjs +2 -2
- package/lib/cjs/contract/OtherBatchContract.cjs +2 -2
- package/lib/cjs/contract/OtherMarketContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductImageContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductSharedContract.cjs +2 -2
- package/lib/cjs/contract/OtherProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/Product.cjs +2 -2
- package/lib/cjs/contract/ProductContract.cjs +2 -2
- package/lib/cjs/contract/ProductStrengthContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs +2 -2
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs +2 -2
- package/lib/cjs/contract/User.cjs +2 -2
- package/lib/cjs/contract/UserContract.cjs +2 -2
- package/lib/cjs/contract/index.cjs +2 -2
- package/lib/cjs/contract/logging-context.cjs +2 -2
- package/lib/cjs/contract/models/Audit.cjs +2 -2
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs +2 -2
- package/lib/cjs/contract/models/BaseModel.cjs +2 -2
- package/lib/cjs/contract/models/Batch.cjs +2 -2
- package/lib/cjs/contract/models/GtinOwner.cjs +2 -2
- package/lib/cjs/contract/models/History.cjs +2 -2
- package/lib/cjs/contract/models/Leaflet.cjs +2 -2
- package/lib/cjs/contract/models/LeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/Market.cjs +2 -2
- package/lib/cjs/contract/models/OtherAudit.cjs +2 -2
- package/lib/cjs/contract/models/OtherBatchShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeaflet.cjs +2 -2
- package/lib/cjs/contract/models/OtherLeafletFile.cjs +2 -2
- package/lib/cjs/contract/models/OtherMarket.cjs +2 -2
- package/lib/cjs/contract/models/OtherProduct.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductImage.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductShared.cjs +2 -2
- package/lib/cjs/contract/models/OtherProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/Product.cjs +2 -2
- package/lib/cjs/contract/models/ProductStrength.cjs +2 -2
- package/lib/cjs/contract/models/SegregatedDocument.cjs +2 -2
- package/lib/cjs/contract/models/constants.cjs +2 -2
- package/lib/cjs/contract/models/decorators-private.cjs +2 -2
- package/lib/cjs/contract/models/decorators.cjs +2 -2
- package/lib/cjs/contract/models/gtin.cjs +2 -2
- package/lib/cjs/contract/models/history-dec.cjs +2 -2
- package/lib/cjs/contracts/ContractAdapter.cjs +2 -2
- package/lib/cjs/contracts/ContractContext.cjs +2 -2
- package/lib/cjs/contracts/FabricContractDispatch.cjs +2 -2
- package/lib/cjs/contracts/FabricContractPaginator.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepository.cjs +2 -2
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs +2 -2
- package/lib/cjs/contracts/FabricContractSequence.cjs +2 -2
- package/lib/cjs/contracts/FabricContractStatement.cjs +2 -2
- package/lib/cjs/contracts/MigrationContract.cjs +2 -2
- package/lib/cjs/contracts/PrivateSequence.cjs +2 -2
- package/lib/cjs/contracts/auth/decorators.cjs +2 -2
- package/lib/cjs/contracts/auth/index.cjs +2 -2
- package/lib/cjs/contracts/crud/crud-contract.cjs +2 -2
- package/lib/cjs/contracts/crud/index.cjs +2 -2
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/erc20contract.cjs +2 -2
- package/lib/cjs/contracts/erc20/index.cjs +2 -2
- package/lib/cjs/contracts/erc20/models.cjs +2 -2
- package/lib/cjs/contracts/index.cjs +2 -2
- package/lib/cjs/contracts/logging.cjs +2 -2
- package/lib/cjs/contracts/overrides.cjs +2 -2
- package/lib/cjs/contracts/types.cjs +2 -2
- package/lib/cjs/contracts/uuid.cjs +2 -2
- package/lib/cjs/index.cjs +2 -2
- package/lib/cjs/shared/ClientSerializer.cjs +2 -2
- package/lib/cjs/shared/DeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs +2 -2
- package/lib/cjs/shared/constants.cjs +2 -2
- package/lib/cjs/shared/decorators.cjs +2 -2
- package/lib/cjs/shared/erc20/erc20-constants.cjs +2 -2
- package/lib/cjs/shared/erc20/index.cjs +2 -2
- package/lib/cjs/shared/errors.cjs +2 -2
- package/lib/cjs/shared/events.cjs +2 -2
- package/lib/cjs/shared/fabric-types.cjs +2 -2
- package/lib/cjs/shared/index.cjs +2 -2
- package/lib/cjs/shared/interfaces/Checkable.cjs +2 -2
- package/lib/cjs/shared/interfaces/index.cjs +2 -2
- package/lib/cjs/shared/math.cjs +2 -2
- package/lib/cjs/shared/model/FabricBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs +2 -2
- package/lib/cjs/shared/model/Identity.cjs +2 -2
- package/lib/cjs/shared/model/IdentityCredentials.cjs +2 -2
- package/lib/cjs/shared/model/index.cjs +2 -2
- package/lib/cjs/shared/overrides/Model.cjs +2 -2
- package/lib/cjs/shared/overrides/index.cjs +2 -2
- package/lib/cjs/shared/overrides/overrides.cjs +2 -2
- package/lib/cjs/shared/types.cjs +2 -2
- package/lib/cjs/version.cjs +3 -3
- package/lib/esm/bin/cli.js +1 -1
- package/lib/esm/cli-module.js +27 -2
- package/lib/esm/cli-utils.js +1 -1
- package/lib/esm/client/FabricClientAdapter.js +1 -1
- package/lib/esm/client/FabricClientDispatch.js +1 -1
- package/lib/esm/client/FabricClientPaginator.js +1 -1
- package/lib/esm/client/FabricClientRepository.js +1 -1
- package/lib/esm/client/FabricClientStatement.js +1 -1
- package/lib/esm/client/collections/generation.js +1 -1
- package/lib/esm/client/collections/index.js +1 -1
- package/lib/esm/client/constants.js +1 -1
- package/lib/esm/client/crypto.js +1 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js +1 -1
- package/lib/esm/client/erc20/index.js +1 -1
- package/lib/esm/client/fabric-fs.js +1 -1
- package/lib/esm/client/fabric-hsm.js +1 -1
- package/lib/esm/client/ids/id-extraction.js +1 -1
- package/lib/esm/client/ids/index.js +1 -1
- package/lib/esm/client/index.js +1 -1
- package/lib/esm/client/indexes/generation.js +1 -1
- package/lib/esm/client/indexes/index.js +1 -1
- package/lib/esm/client/logging.js +1 -1
- package/lib/esm/client/services/FabricEnrollmentService.js +1 -1
- package/lib/esm/client/services/FabricIdentityService.js +1 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js +1 -1
- package/lib/esm/client/services/constants.js +1 -1
- package/lib/esm/client/services/index.js +1 -1
- package/lib/esm/client/types.js +1 -1
- package/lib/esm/client/utils.js +1 -1
- package/lib/esm/contract/Address.js +1 -1
- package/lib/esm/contract/AddressContract.js +1 -1
- package/lib/esm/contract/AuditContract.js +1 -1
- package/lib/esm/contract/BatchContract.js +1 -1
- package/lib/esm/contract/MarketContract.js +1 -1
- package/lib/esm/contract/OtherAuditContract.js +1 -1
- package/lib/esm/contract/OtherBatchContract.js +1 -1
- package/lib/esm/contract/OtherMarketContract.js +1 -1
- package/lib/esm/contract/OtherProductContract.js +1 -1
- package/lib/esm/contract/OtherProductImageContract.js +1 -1
- package/lib/esm/contract/OtherProductSharedContract.js +1 -1
- package/lib/esm/contract/OtherProductStrengthContract.js +1 -1
- package/lib/esm/contract/Product.js +1 -1
- package/lib/esm/contract/ProductContract.js +1 -1
- package/lib/esm/contract/ProductStrengthContract.js +1 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js +1 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js +1 -1
- package/lib/esm/contract/User.js +1 -1
- package/lib/esm/contract/UserContract.js +1 -1
- package/lib/esm/contract/index.js +1 -1
- package/lib/esm/contract/logging-context.js +1 -1
- package/lib/esm/contract/models/Audit.js +1 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js +1 -1
- package/lib/esm/contract/models/BaseModel.js +1 -1
- package/lib/esm/contract/models/Batch.js +1 -1
- package/lib/esm/contract/models/GtinOwner.js +1 -1
- package/lib/esm/contract/models/History.js +1 -1
- package/lib/esm/contract/models/Leaflet.js +1 -1
- package/lib/esm/contract/models/LeafletFile.js +1 -1
- package/lib/esm/contract/models/Market.js +1 -1
- package/lib/esm/contract/models/OtherAudit.js +1 -1
- package/lib/esm/contract/models/OtherBatchShared.js +1 -1
- package/lib/esm/contract/models/OtherLeaflet.js +1 -1
- package/lib/esm/contract/models/OtherLeafletFile.js +1 -1
- package/lib/esm/contract/models/OtherMarket.js +1 -1
- package/lib/esm/contract/models/OtherProduct.js +1 -1
- package/lib/esm/contract/models/OtherProductImage.js +1 -1
- package/lib/esm/contract/models/OtherProductShared.js +1 -1
- package/lib/esm/contract/models/OtherProductStrength.js +1 -1
- package/lib/esm/contract/models/Product.js +1 -1
- package/lib/esm/contract/models/ProductStrength.js +1 -1
- package/lib/esm/contract/models/SegregatedDocument.js +1 -1
- package/lib/esm/contract/models/constants.js +1 -1
- package/lib/esm/contract/models/decorators-private.js +1 -1
- package/lib/esm/contract/models/decorators.js +1 -1
- package/lib/esm/contract/models/gtin.js +1 -1
- package/lib/esm/contract/models/history-dec.js +1 -1
- package/lib/esm/contracts/ContractAdapter.js +1 -1
- package/lib/esm/contracts/ContractContext.js +1 -1
- package/lib/esm/contracts/FabricContractDispatch.js +1 -1
- package/lib/esm/contracts/FabricContractPaginator.js +1 -1
- package/lib/esm/contracts/FabricContractRepository.js +1 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js +1 -1
- package/lib/esm/contracts/FabricContractSequence.js +1 -1
- package/lib/esm/contracts/FabricContractStatement.js +1 -1
- package/lib/esm/contracts/MigrationContract.js +1 -1
- package/lib/esm/contracts/PrivateSequence.js +1 -1
- package/lib/esm/contracts/auth/decorators.js +1 -1
- package/lib/esm/contracts/auth/index.js +1 -1
- package/lib/esm/contracts/crud/crud-contract.js +1 -1
- package/lib/esm/contracts/crud/index.js +1 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js +1 -1
- package/lib/esm/contracts/erc20/erc20contract.js +1 -1
- package/lib/esm/contracts/erc20/index.js +1 -1
- package/lib/esm/contracts/erc20/models.js +1 -1
- package/lib/esm/contracts/index.js +1 -1
- package/lib/esm/contracts/logging.js +1 -1
- package/lib/esm/contracts/overrides.js +1 -1
- package/lib/esm/contracts/types.js +1 -1
- package/lib/esm/contracts/uuid.js +1 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/shared/ClientSerializer.js +1 -1
- package/lib/esm/shared/DeterministicSerializer.js +1 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js +1 -1
- package/lib/esm/shared/constants.js +1 -1
- package/lib/esm/shared/decorators.js +1 -1
- package/lib/esm/shared/erc20/erc20-constants.js +1 -1
- package/lib/esm/shared/erc20/index.js +1 -1
- package/lib/esm/shared/errors.js +1 -1
- package/lib/esm/shared/events.js +1 -1
- package/lib/esm/shared/fabric-types.js +1 -1
- package/lib/esm/shared/index.js +1 -1
- package/lib/esm/shared/interfaces/Checkable.js +1 -1
- package/lib/esm/shared/interfaces/index.js +1 -1
- package/lib/esm/shared/math.js +1 -1
- package/lib/esm/shared/model/FabricBaseModel.js +1 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js +1 -1
- package/lib/esm/shared/model/Identity.js +1 -1
- package/lib/esm/shared/model/IdentityCredentials.js +1 -1
- package/lib/esm/shared/model/index.js +1 -1
- package/lib/esm/shared/overrides/Model.js +1 -1
- package/lib/esm/shared/overrides/index.js +1 -1
- package/lib/esm/shared/overrides/overrides.js +1 -1
- package/lib/esm/shared/types.js +1 -1
- package/lib/esm/version.js +2 -2
- package/lib/types/client/FabricClientAdapter.d.cts +3 -3
- package/lib/types/client/FabricClientAdapter.d.mts +3 -3
- package/lib/types/client/FabricClientDispatch.d.cts +2 -2
- package/lib/types/client/FabricClientDispatch.d.mts +2 -2
- package/lib/types/client/FabricClientPaginator.d.cts +1 -1
- package/lib/types/client/FabricClientPaginator.d.mts +1 -1
- package/lib/types/client/FabricClientRepository.d.cts +1 -1
- package/lib/types/client/FabricClientRepository.d.mts +1 -1
- package/lib/types/client/FabricClientStatement.d.cts +2 -2
- package/lib/types/client/FabricClientStatement.d.mts +2 -2
- package/lib/types/client/collections/index.d.cts +1 -1
- package/lib/types/client/collections/index.d.mts +1 -1
- package/lib/types/client/constants.d.cts +1 -1
- package/lib/types/client/constants.d.mts +1 -1
- package/lib/types/client/erc20/FabricERC20ClientRepository.d.cts +3 -3
- package/lib/types/client/erc20/FabricERC20ClientRepository.d.mts +3 -3
- package/lib/types/client/erc20/index.d.cts +1 -1
- package/lib/types/client/erc20/index.d.mts +1 -1
- package/lib/types/client/ids/index.d.cts +1 -1
- package/lib/types/client/ids/index.d.mts +1 -1
- package/lib/types/client/index.d.cts +14 -14
- package/lib/types/client/index.d.mts +14 -14
- package/lib/types/client/indexes/index.d.cts +1 -1
- package/lib/types/client/indexes/index.d.mts +1 -1
- package/lib/types/client/services/FabricEnrollmentService.d.cts +4 -4
- package/lib/types/client/services/FabricEnrollmentService.d.mts +4 -4
- package/lib/types/client/services/FabricIdentityService.d.cts +5 -5
- package/lib/types/client/services/FabricIdentityService.d.mts +5 -5
- package/lib/types/client/services/RegistrationRequestBuilder.d.cts +1 -1
- package/lib/types/client/services/RegistrationRequestBuilder.d.mts +1 -1
- package/lib/types/client/services/index.d.cts +4 -4
- package/lib/types/client/services/index.d.mts +4 -4
- package/lib/types/client/types.d.cts +1 -1
- package/lib/types/client/types.d.mts +1 -1
- package/lib/types/client/utils.d.cts +1 -1
- package/lib/types/client/utils.d.mts +1 -1
- package/lib/types/contract/AddressContract.d.cts +2 -2
- package/lib/types/contract/AddressContract.d.mts +2 -2
- package/lib/types/contract/AuditContract.d.cts +2 -2
- package/lib/types/contract/AuditContract.d.mts +2 -2
- package/lib/types/contract/BatchContract.d.cts +2 -2
- package/lib/types/contract/BatchContract.d.mts +2 -2
- package/lib/types/contract/MarketContract.d.cts +2 -2
- package/lib/types/contract/MarketContract.d.mts +2 -2
- package/lib/types/contract/OtherAuditContract.d.cts +2 -2
- package/lib/types/contract/OtherAuditContract.d.mts +2 -2
- package/lib/types/contract/OtherBatchContract.d.cts +2 -2
- package/lib/types/contract/OtherBatchContract.d.mts +2 -2
- package/lib/types/contract/OtherMarketContract.d.cts +2 -2
- package/lib/types/contract/OtherMarketContract.d.mts +2 -2
- package/lib/types/contract/OtherProductContract.d.cts +2 -2
- package/lib/types/contract/OtherProductContract.d.mts +2 -2
- package/lib/types/contract/OtherProductImageContract.d.cts +2 -2
- package/lib/types/contract/OtherProductImageContract.d.mts +2 -2
- package/lib/types/contract/OtherProductSharedContract.d.cts +2 -2
- package/lib/types/contract/OtherProductSharedContract.d.mts +2 -2
- package/lib/types/contract/OtherProductStrengthContract.d.cts +2 -2
- package/lib/types/contract/OtherProductStrengthContract.d.mts +2 -2
- package/lib/types/contract/Product.d.cts +1 -1
- package/lib/types/contract/Product.d.mts +1 -1
- package/lib/types/contract/ProductContract.d.cts +2 -2
- package/lib/types/contract/ProductContract.d.mts +2 -2
- package/lib/types/contract/ProductStrengthContract.d.cts +2 -2
- package/lib/types/contract/ProductStrengthContract.d.mts +2 -2
- package/lib/types/contract/SegregatedPrivateDocumentContract.d.cts +2 -2
- package/lib/types/contract/SegregatedPrivateDocumentContract.d.mts +2 -2
- package/lib/types/contract/SegregatedSharedDocumentContract.d.cts +2 -2
- package/lib/types/contract/SegregatedSharedDocumentContract.d.mts +2 -2
- package/lib/types/contract/UserContract.d.cts +2 -2
- package/lib/types/contract/UserContract.d.mts +2 -2
- package/lib/types/contract/models/Audit.d.cts +2 -2
- package/lib/types/contract/models/Audit.d.mts +2 -2
- package/lib/types/contract/models/BaseIdentifiedModel.d.cts +1 -1
- package/lib/types/contract/models/BaseIdentifiedModel.d.mts +1 -1
- package/lib/types/contract/models/Batch.d.cts +1 -1
- package/lib/types/contract/models/Batch.d.mts +1 -1
- package/lib/types/contract/models/GtinOwner.d.cts +1 -1
- package/lib/types/contract/models/GtinOwner.d.mts +1 -1
- package/lib/types/contract/models/Leaflet.d.cts +1 -1
- package/lib/types/contract/models/Leaflet.d.mts +1 -1
- package/lib/types/contract/models/LeafletFile.d.cts +1 -1
- package/lib/types/contract/models/LeafletFile.d.mts +1 -1
- package/lib/types/contract/models/Market.d.cts +1 -1
- package/lib/types/contract/models/Market.d.mts +1 -1
- package/lib/types/contract/models/OtherAudit.d.cts +2 -2
- package/lib/types/contract/models/OtherAudit.d.mts +2 -2
- package/lib/types/contract/models/OtherBatchShared.d.cts +1 -1
- package/lib/types/contract/models/OtherBatchShared.d.mts +1 -1
- package/lib/types/contract/models/OtherLeaflet.d.cts +2 -2
- package/lib/types/contract/models/OtherLeaflet.d.mts +2 -2
- package/lib/types/contract/models/OtherLeafletFile.d.cts +1 -1
- package/lib/types/contract/models/OtherLeafletFile.d.mts +1 -1
- package/lib/types/contract/models/OtherMarket.d.cts +1 -1
- package/lib/types/contract/models/OtherMarket.d.mts +1 -1
- package/lib/types/contract/models/OtherProduct.d.cts +1 -1
- package/lib/types/contract/models/OtherProduct.d.mts +1 -1
- package/lib/types/contract/models/OtherProductImage.d.cts +1 -1
- package/lib/types/contract/models/OtherProductImage.d.mts +1 -1
- package/lib/types/contract/models/OtherProductShared.d.cts +4 -4
- package/lib/types/contract/models/OtherProductShared.d.mts +4 -4
- package/lib/types/contract/models/OtherProductStrength.d.cts +1 -1
- package/lib/types/contract/models/OtherProductStrength.d.mts +1 -1
- package/lib/types/contract/models/Product.d.cts +3 -3
- package/lib/types/contract/models/Product.d.mts +3 -3
- package/lib/types/contract/models/ProductStrength.d.cts +1 -1
- package/lib/types/contract/models/ProductStrength.d.mts +1 -1
- package/lib/types/contract/models/SegregatedDocument.d.cts +1 -1
- package/lib/types/contract/models/SegregatedDocument.d.mts +1 -1
- package/lib/types/contract/models/decorators-private.d.cts +2 -2
- package/lib/types/contract/models/decorators-private.d.mts +2 -2
- package/lib/types/contract/models/decorators.d.cts +2 -2
- package/lib/types/contract/models/decorators.d.mts +2 -2
- package/lib/types/contract/models/history-dec.d.cts +1 -1
- package/lib/types/contract/models/history-dec.d.mts +1 -1
- package/lib/types/contracts/ContractAdapter.d.cts +5 -5
- package/lib/types/contracts/ContractAdapter.d.mts +5 -5
- package/lib/types/contracts/ContractContext.d.cts +1 -1
- package/lib/types/contracts/ContractContext.d.mts +1 -1
- package/lib/types/contracts/FabricContractDispatch.d.cts +2 -2
- package/lib/types/contracts/FabricContractDispatch.d.mts +2 -2
- package/lib/types/contracts/FabricContractPaginator.d.cts +1 -1
- package/lib/types/contracts/FabricContractPaginator.d.mts +1 -1
- package/lib/types/contracts/FabricContractRepository.d.cts +3 -3
- package/lib/types/contracts/FabricContractRepository.d.mts +3 -3
- package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.cts +1 -1
- package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.mts +1 -1
- package/lib/types/contracts/FabricContractStatement.d.cts +1 -1
- package/lib/types/contracts/FabricContractStatement.d.mts +1 -1
- package/lib/types/contracts/MigrationContract.d.cts +3 -3
- package/lib/types/contracts/MigrationContract.d.mts +3 -3
- package/lib/types/contracts/auth/index.d.cts +1 -1
- package/lib/types/contracts/auth/index.d.mts +1 -1
- package/lib/types/contracts/crud/crud-contract.d.cts +5 -5
- package/lib/types/contracts/crud/crud-contract.d.mts +5 -5
- package/lib/types/contracts/crud/index.d.cts +2 -2
- package/lib/types/contracts/crud/index.d.mts +2 -2
- package/lib/types/contracts/crud/serialized-crud-contract.d.cts +1 -1
- package/lib/types/contracts/crud/serialized-crud-contract.d.mts +1 -1
- package/lib/types/contracts/erc20/erc20contract.d.cts +3 -3
- package/lib/types/contracts/erc20/erc20contract.d.mts +3 -3
- package/lib/types/contracts/erc20/index.d.cts +1 -1
- package/lib/types/contracts/erc20/index.d.mts +1 -1
- package/lib/types/contracts/index.d.cts +13 -13
- package/lib/types/contracts/index.d.mts +13 -13
- package/lib/types/contracts/types.d.cts +1 -1
- package/lib/types/contracts/types.d.mts +1 -1
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/shared/decorators.d.cts +3 -3
- package/lib/types/shared/decorators.d.mts +3 -3
- package/lib/types/shared/erc20/index.d.cts +1 -1
- package/lib/types/shared/erc20/index.d.mts +1 -1
- package/lib/types/shared/index.d.cts +14 -14
- package/lib/types/shared/index.d.mts +14 -14
- package/lib/types/shared/interfaces/index.d.cts +1 -1
- package/lib/types/shared/interfaces/index.d.mts +1 -1
- package/lib/types/shared/model/FabricIdentifiedBaseModel.d.cts +1 -1
- package/lib/types/shared/model/FabricIdentifiedBaseModel.d.mts +1 -1
- package/lib/types/shared/model/Identity.d.cts +2 -2
- package/lib/types/shared/model/Identity.d.mts +2 -2
- package/lib/types/shared/model/index.d.cts +4 -4
- package/lib/types/shared/model/index.d.mts +4 -4
- package/lib/types/shared/overrides/Model.d.cts +2 -2
- package/lib/types/shared/overrides/Model.d.mts +2 -2
- package/lib/types/shared/overrides/index.d.cts +2 -2
- package/lib/types/shared/overrides/index.d.mts +2 -2
- package/lib/types/version.d.cts +1 -1
- package/lib/types/version.d.mts +1 -1
- package/package.json +7 -7
- package/dist/for-fabric.cjs.map +0 -1
- package/dist/for-fabric.js.map +0 -1
- package/lib/cjs/bin/cli.cjs.map +0 -1
- package/lib/cjs/cli-module.cjs.map +0 -1
- package/lib/cjs/cli-utils.cjs.map +0 -1
- package/lib/cjs/client/FabricClientAdapter.cjs.map +0 -1
- package/lib/cjs/client/FabricClientDispatch.cjs.map +0 -1
- package/lib/cjs/client/FabricClientPaginator.cjs.map +0 -1
- package/lib/cjs/client/FabricClientRepository.cjs.map +0 -1
- package/lib/cjs/client/FabricClientStatement.cjs.map +0 -1
- package/lib/cjs/client/collections/generation.cjs.map +0 -1
- package/lib/cjs/client/collections/index.cjs.map +0 -1
- package/lib/cjs/client/constants.cjs.map +0 -1
- package/lib/cjs/client/crypto.cjs.map +0 -1
- package/lib/cjs/client/erc20/FabricERC20ClientRepository.cjs.map +0 -1
- package/lib/cjs/client/erc20/index.cjs.map +0 -1
- package/lib/cjs/client/fabric-fs.cjs.map +0 -1
- package/lib/cjs/client/fabric-hsm.cjs.map +0 -1
- package/lib/cjs/client/ids/id-extraction.cjs.map +0 -1
- package/lib/cjs/client/ids/index.cjs.map +0 -1
- package/lib/cjs/client/index.cjs.map +0 -1
- package/lib/cjs/client/indexes/generation.cjs.map +0 -1
- package/lib/cjs/client/indexes/index.cjs.map +0 -1
- package/lib/cjs/client/logging.cjs.map +0 -1
- package/lib/cjs/client/services/FabricEnrollmentService.cjs.map +0 -1
- package/lib/cjs/client/services/FabricIdentityService.cjs.map +0 -1
- package/lib/cjs/client/services/RegistrationRequestBuilder.cjs.map +0 -1
- package/lib/cjs/client/services/constants.cjs.map +0 -1
- package/lib/cjs/client/services/index.cjs.map +0 -1
- package/lib/cjs/client/types.cjs.map +0 -1
- package/lib/cjs/client/utils.cjs.map +0 -1
- package/lib/cjs/contract/Address.cjs.map +0 -1
- package/lib/cjs/contract/AddressContract.cjs.map +0 -1
- package/lib/cjs/contract/AuditContract.cjs.map +0 -1
- package/lib/cjs/contract/BatchContract.cjs.map +0 -1
- package/lib/cjs/contract/MarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherAuditContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherBatchContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherMarketContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductImageContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductSharedContract.cjs.map +0 -1
- package/lib/cjs/contract/OtherProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/Product.cjs.map +0 -1
- package/lib/cjs/contract/ProductContract.cjs.map +0 -1
- package/lib/cjs/contract/ProductStrengthContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedPrivateDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/SegregatedSharedDocumentContract.cjs.map +0 -1
- package/lib/cjs/contract/User.cjs.map +0 -1
- package/lib/cjs/contract/UserContract.cjs.map +0 -1
- package/lib/cjs/contract/index.cjs.map +0 -1
- package/lib/cjs/contract/logging-context.cjs.map +0 -1
- package/lib/cjs/contract/models/Audit.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseIdentifiedModel.cjs.map +0 -1
- package/lib/cjs/contract/models/BaseModel.cjs.map +0 -1
- package/lib/cjs/contract/models/Batch.cjs.map +0 -1
- package/lib/cjs/contract/models/GtinOwner.cjs.map +0 -1
- package/lib/cjs/contract/models/History.cjs.map +0 -1
- package/lib/cjs/contract/models/Leaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/LeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/Market.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherAudit.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherBatchShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeaflet.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherLeafletFile.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherMarket.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProduct.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductImage.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductShared.cjs.map +0 -1
- package/lib/cjs/contract/models/OtherProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/Product.cjs.map +0 -1
- package/lib/cjs/contract/models/ProductStrength.cjs.map +0 -1
- package/lib/cjs/contract/models/SegregatedDocument.cjs.map +0 -1
- package/lib/cjs/contract/models/constants.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators-private.cjs.map +0 -1
- package/lib/cjs/contract/models/decorators.cjs.map +0 -1
- package/lib/cjs/contract/models/gtin.cjs.map +0 -1
- package/lib/cjs/contract/models/history-dec.cjs.map +0 -1
- package/lib/cjs/contracts/ContractAdapter.cjs.map +0 -1
- package/lib/cjs/contracts/ContractContext.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractDispatch.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractPaginator.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepository.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractRepositoryObservableHandler.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractSequence.cjs.map +0 -1
- package/lib/cjs/contracts/FabricContractStatement.cjs.map +0 -1
- package/lib/cjs/contracts/MigrationContract.cjs.map +0 -1
- package/lib/cjs/contracts/PrivateSequence.cjs.map +0 -1
- package/lib/cjs/contracts/auth/decorators.cjs.map +0 -1
- package/lib/cjs/contracts/auth/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/crud/index.cjs.map +0 -1
- package/lib/cjs/contracts/crud/serialized-crud-contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/erc20contract.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/index.cjs.map +0 -1
- package/lib/cjs/contracts/erc20/models.cjs.map +0 -1
- package/lib/cjs/contracts/index.cjs.map +0 -1
- package/lib/cjs/contracts/logging.cjs.map +0 -1
- package/lib/cjs/contracts/overrides.cjs.map +0 -1
- package/lib/cjs/contracts/types.cjs.map +0 -1
- package/lib/cjs/contracts/uuid.cjs.map +0 -1
- package/lib/cjs/index.cjs.map +0 -1
- package/lib/cjs/shared/ClientSerializer.cjs.map +0 -1
- package/lib/cjs/shared/DeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/SimpleDeterministicSerializer.cjs.map +0 -1
- package/lib/cjs/shared/constants.cjs.map +0 -1
- package/lib/cjs/shared/decorators.cjs.map +0 -1
- package/lib/cjs/shared/erc20/erc20-constants.cjs.map +0 -1
- package/lib/cjs/shared/erc20/index.cjs.map +0 -1
- package/lib/cjs/shared/errors.cjs.map +0 -1
- package/lib/cjs/shared/events.cjs.map +0 -1
- package/lib/cjs/shared/fabric-types.cjs.map +0 -1
- package/lib/cjs/shared/index.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/Checkable.cjs.map +0 -1
- package/lib/cjs/shared/interfaces/index.cjs.map +0 -1
- package/lib/cjs/shared/math.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/FabricIdentifiedBaseModel.cjs.map +0 -1
- package/lib/cjs/shared/model/Identity.cjs.map +0 -1
- package/lib/cjs/shared/model/IdentityCredentials.cjs.map +0 -1
- package/lib/cjs/shared/model/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/Model.cjs.map +0 -1
- package/lib/cjs/shared/overrides/index.cjs.map +0 -1
- package/lib/cjs/shared/overrides/overrides.cjs.map +0 -1
- package/lib/cjs/shared/types.cjs.map +0 -1
- package/lib/cjs/version.cjs.map +0 -1
- package/lib/esm/bin/cli.js.map +0 -1
- package/lib/esm/cli-module.js.map +0 -1
- package/lib/esm/cli-utils.js.map +0 -1
- package/lib/esm/client/FabricClientAdapter.js.map +0 -1
- package/lib/esm/client/FabricClientDispatch.js.map +0 -1
- package/lib/esm/client/FabricClientPaginator.js.map +0 -1
- package/lib/esm/client/FabricClientRepository.js.map +0 -1
- package/lib/esm/client/FabricClientStatement.js.map +0 -1
- package/lib/esm/client/collections/generation.js.map +0 -1
- package/lib/esm/client/collections/index.js.map +0 -1
- package/lib/esm/client/constants.js.map +0 -1
- package/lib/esm/client/crypto.js.map +0 -1
- package/lib/esm/client/erc20/FabricERC20ClientRepository.js.map +0 -1
- package/lib/esm/client/erc20/index.js.map +0 -1
- package/lib/esm/client/fabric-fs.js.map +0 -1
- package/lib/esm/client/fabric-hsm.js.map +0 -1
- package/lib/esm/client/ids/id-extraction.js.map +0 -1
- package/lib/esm/client/ids/index.js.map +0 -1
- package/lib/esm/client/index.js.map +0 -1
- package/lib/esm/client/indexes/generation.js.map +0 -1
- package/lib/esm/client/indexes/index.js.map +0 -1
- package/lib/esm/client/logging.js.map +0 -1
- package/lib/esm/client/services/FabricEnrollmentService.js.map +0 -1
- package/lib/esm/client/services/FabricIdentityService.js.map +0 -1
- package/lib/esm/client/services/RegistrationRequestBuilder.js.map +0 -1
- package/lib/esm/client/services/constants.js.map +0 -1
- package/lib/esm/client/services/index.js.map +0 -1
- package/lib/esm/client/types.js.map +0 -1
- package/lib/esm/client/utils.js.map +0 -1
- package/lib/esm/contract/Address.js.map +0 -1
- package/lib/esm/contract/AddressContract.js.map +0 -1
- package/lib/esm/contract/AuditContract.js.map +0 -1
- package/lib/esm/contract/BatchContract.js.map +0 -1
- package/lib/esm/contract/MarketContract.js.map +0 -1
- package/lib/esm/contract/OtherAuditContract.js.map +0 -1
- package/lib/esm/contract/OtherBatchContract.js.map +0 -1
- package/lib/esm/contract/OtherMarketContract.js.map +0 -1
- package/lib/esm/contract/OtherProductContract.js.map +0 -1
- package/lib/esm/contract/OtherProductImageContract.js.map +0 -1
- package/lib/esm/contract/OtherProductSharedContract.js.map +0 -1
- package/lib/esm/contract/OtherProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/Product.js.map +0 -1
- package/lib/esm/contract/ProductContract.js.map +0 -1
- package/lib/esm/contract/ProductStrengthContract.js.map +0 -1
- package/lib/esm/contract/SegregatedPrivateDocumentContract.js.map +0 -1
- package/lib/esm/contract/SegregatedSharedDocumentContract.js.map +0 -1
- package/lib/esm/contract/User.js.map +0 -1
- package/lib/esm/contract/UserContract.js.map +0 -1
- package/lib/esm/contract/index.js.map +0 -1
- package/lib/esm/contract/logging-context.js.map +0 -1
- package/lib/esm/contract/models/Audit.js.map +0 -1
- package/lib/esm/contract/models/BaseIdentifiedModel.js.map +0 -1
- package/lib/esm/contract/models/BaseModel.js.map +0 -1
- package/lib/esm/contract/models/Batch.js.map +0 -1
- package/lib/esm/contract/models/GtinOwner.js.map +0 -1
- package/lib/esm/contract/models/History.js.map +0 -1
- package/lib/esm/contract/models/Leaflet.js.map +0 -1
- package/lib/esm/contract/models/LeafletFile.js.map +0 -1
- package/lib/esm/contract/models/Market.js.map +0 -1
- package/lib/esm/contract/models/OtherAudit.js.map +0 -1
- package/lib/esm/contract/models/OtherBatchShared.js.map +0 -1
- package/lib/esm/contract/models/OtherLeaflet.js.map +0 -1
- package/lib/esm/contract/models/OtherLeafletFile.js.map +0 -1
- package/lib/esm/contract/models/OtherMarket.js.map +0 -1
- package/lib/esm/contract/models/OtherProduct.js.map +0 -1
- package/lib/esm/contract/models/OtherProductImage.js.map +0 -1
- package/lib/esm/contract/models/OtherProductShared.js.map +0 -1
- package/lib/esm/contract/models/OtherProductStrength.js.map +0 -1
- package/lib/esm/contract/models/Product.js.map +0 -1
- package/lib/esm/contract/models/ProductStrength.js.map +0 -1
- package/lib/esm/contract/models/SegregatedDocument.js.map +0 -1
- package/lib/esm/contract/models/constants.js.map +0 -1
- package/lib/esm/contract/models/decorators-private.js.map +0 -1
- package/lib/esm/contract/models/decorators.js.map +0 -1
- package/lib/esm/contract/models/gtin.js.map +0 -1
- package/lib/esm/contract/models/history-dec.js.map +0 -1
- package/lib/esm/contracts/ContractAdapter.js.map +0 -1
- package/lib/esm/contracts/ContractContext.js.map +0 -1
- package/lib/esm/contracts/FabricContractDispatch.js.map +0 -1
- package/lib/esm/contracts/FabricContractPaginator.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepository.js.map +0 -1
- package/lib/esm/contracts/FabricContractRepositoryObservableHandler.js.map +0 -1
- package/lib/esm/contracts/FabricContractSequence.js.map +0 -1
- package/lib/esm/contracts/FabricContractStatement.js.map +0 -1
- package/lib/esm/contracts/MigrationContract.js.map +0 -1
- package/lib/esm/contracts/PrivateSequence.js.map +0 -1
- package/lib/esm/contracts/auth/decorators.js.map +0 -1
- package/lib/esm/contracts/auth/index.js.map +0 -1
- package/lib/esm/contracts/crud/crud-contract.js.map +0 -1
- package/lib/esm/contracts/crud/index.js.map +0 -1
- package/lib/esm/contracts/crud/serialized-crud-contract.js.map +0 -1
- package/lib/esm/contracts/erc20/erc20contract.js.map +0 -1
- package/lib/esm/contracts/erc20/index.js.map +0 -1
- package/lib/esm/contracts/erc20/models.js.map +0 -1
- package/lib/esm/contracts/index.js.map +0 -1
- package/lib/esm/contracts/logging.js.map +0 -1
- package/lib/esm/contracts/overrides.js.map +0 -1
- package/lib/esm/contracts/types.js.map +0 -1
- package/lib/esm/contracts/uuid.js.map +0 -1
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/shared/ClientSerializer.js.map +0 -1
- package/lib/esm/shared/DeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/SimpleDeterministicSerializer.js.map +0 -1
- package/lib/esm/shared/constants.js.map +0 -1
- package/lib/esm/shared/decorators.js.map +0 -1
- package/lib/esm/shared/erc20/erc20-constants.js.map +0 -1
- package/lib/esm/shared/erc20/index.js.map +0 -1
- package/lib/esm/shared/errors.js.map +0 -1
- package/lib/esm/shared/events.js.map +0 -1
- package/lib/esm/shared/fabric-types.js.map +0 -1
- package/lib/esm/shared/index.js.map +0 -1
- package/lib/esm/shared/interfaces/Checkable.js.map +0 -1
- package/lib/esm/shared/interfaces/index.js.map +0 -1
- package/lib/esm/shared/math.js.map +0 -1
- package/lib/esm/shared/model/FabricBaseModel.js.map +0 -1
- package/lib/esm/shared/model/FabricIdentifiedBaseModel.js.map +0 -1
- package/lib/esm/shared/model/Identity.js.map +0 -1
- package/lib/esm/shared/model/IdentityCredentials.js.map +0 -1
- package/lib/esm/shared/model/index.js.map +0 -1
- package/lib/esm/shared/overrides/Model.js.map +0 -1
- package/lib/esm/shared/overrides/index.js.map +0 -1
- package/lib/esm/shared/overrides/overrides.js.map +0 -1
- package/lib/esm/shared/types.js.map +0 -1
- package/lib/esm/version.js.map +0 -1
- package/lib/types/bin/cli.d.ts +0 -1
- package/lib/types/cli-module.d.ts +0 -3
- package/lib/types/cli-utils.d.ts +0 -21
- package/lib/types/client/FabricClientAdapter.d.ts +0 -404
- package/lib/types/client/FabricClientDispatch.d.ts +0 -133
- package/lib/types/client/FabricClientPaginator.d.ts +0 -12
- package/lib/types/client/FabricClientRepository.d.ts +0 -71
- package/lib/types/client/FabricClientStatement.d.ts +0 -64
- package/lib/types/client/collections/generation.d.ts +0 -46
- package/lib/types/client/collections/index.d.ts +0 -1
- package/lib/types/client/constants.d.ts +0 -2
- package/lib/types/client/crypto.d.ts +0 -107
- package/lib/types/client/erc20/FabricERC20ClientRepository.d.ts +0 -254
- package/lib/types/client/erc20/index.d.ts +0 -1
- package/lib/types/client/fabric-fs.d.ts +0 -92
- package/lib/types/client/fabric-hsm.d.ts +0 -24
- package/lib/types/client/ids/id-extraction.d.ts +0 -4
- package/lib/types/client/ids/index.d.ts +0 -1
- package/lib/types/client/index.d.ts +0 -23
- package/lib/types/client/indexes/generation.d.ts +0 -10
- package/lib/types/client/indexes/index.d.ts +0 -1
- package/lib/types/client/logging.d.ts +0 -60
- package/lib/types/client/services/FabricEnrollmentService.d.ts +0 -176
- package/lib/types/client/services/FabricIdentityService.d.ts +0 -98
- package/lib/types/client/services/RegistrationRequestBuilder.d.ts +0 -19
- package/lib/types/client/services/constants.d.ts +0 -15
- package/lib/types/client/services/index.d.ts +0 -4
- package/lib/types/client/types.d.ts +0 -20
- package/lib/types/client/utils.d.ts +0 -71
- package/lib/types/contract/Address.d.ts +0 -13
- package/lib/types/contract/AddressContract.d.ts +0 -5
- package/lib/types/contract/AuditContract.d.ts +0 -5
- package/lib/types/contract/BatchContract.d.ts +0 -5
- package/lib/types/contract/MarketContract.d.ts +0 -5
- package/lib/types/contract/OtherAuditContract.d.ts +0 -5
- package/lib/types/contract/OtherBatchContract.d.ts +0 -5
- package/lib/types/contract/OtherMarketContract.d.ts +0 -5
- package/lib/types/contract/OtherProductContract.d.ts +0 -5
- package/lib/types/contract/OtherProductImageContract.d.ts +0 -5
- package/lib/types/contract/OtherProductSharedContract.d.ts +0 -5
- package/lib/types/contract/OtherProductStrengthContract.d.ts +0 -5
- package/lib/types/contract/Product.d.ts +0 -7
- package/lib/types/contract/ProductContract.d.ts +0 -5
- package/lib/types/contract/ProductStrengthContract.d.ts +0 -5
- package/lib/types/contract/SegregatedPrivateDocumentContract.d.ts +0 -5
- package/lib/types/contract/SegregatedSharedDocumentContract.d.ts +0 -5
- package/lib/types/contract/User.d.ts +0 -7
- package/lib/types/contract/UserContract.d.ts +0 -5
- package/lib/types/contract/index.d.ts +0 -2
- package/lib/types/contract/logging-context.d.ts +0 -8
- package/lib/types/contract/models/Audit.d.ts +0 -13
- package/lib/types/contract/models/BaseIdentifiedModel.d.ts +0 -7
- package/lib/types/contract/models/BaseModel.d.ts +0 -7
- package/lib/types/contract/models/Batch.d.ts +0 -18
- package/lib/types/contract/models/GtinOwner.d.ts +0 -8
- package/lib/types/contract/models/History.d.ts +0 -9
- package/lib/types/contract/models/Leaflet.d.ts +0 -12
- package/lib/types/contract/models/LeafletFile.d.ts +0 -9
- package/lib/types/contract/models/Market.d.ts +0 -12
- package/lib/types/contract/models/OtherAudit.d.ts +0 -15
- package/lib/types/contract/models/OtherBatchShared.d.ts +0 -18
- package/lib/types/contract/models/OtherLeaflet.d.ts +0 -16
- package/lib/types/contract/models/OtherLeafletFile.d.ts +0 -10
- package/lib/types/contract/models/OtherMarket.d.ts +0 -13
- package/lib/types/contract/models/OtherProduct.d.ts +0 -12
- package/lib/types/contract/models/OtherProductImage.d.ts +0 -9
- package/lib/types/contract/models/OtherProductShared.d.ts +0 -18
- package/lib/types/contract/models/OtherProductStrength.d.ts +0 -12
- package/lib/types/contract/models/Product.d.ts +0 -15
- package/lib/types/contract/models/ProductStrength.d.ts +0 -11
- package/lib/types/contract/models/SegregatedDocument.d.ts +0 -18
- package/lib/types/contract/models/constants.d.ts +0 -24
- package/lib/types/contract/models/decorators-private.d.ts +0 -16
- package/lib/types/contract/models/decorators.d.ts +0 -28
- package/lib/types/contract/models/gtin.d.ts +0 -8
- package/lib/types/contract/models/history-dec.d.ts +0 -6
- package/lib/types/contracts/ContractAdapter.d.ts +0 -287
- package/lib/types/contracts/ContractContext.d.ts +0 -89
- package/lib/types/contracts/FabricContractDispatch.d.ts +0 -7
- package/lib/types/contracts/FabricContractPaginator.d.ts +0 -105
- package/lib/types/contracts/FabricContractRepository.d.ts +0 -119
- package/lib/types/contracts/FabricContractRepositoryObservableHandler.d.ts +0 -62
- package/lib/types/contracts/FabricContractSequence.d.ts +0 -87
- package/lib/types/contracts/FabricContractStatement.d.ts +0 -36
- package/lib/types/contracts/MigrationContract.d.ts +0 -22
- package/lib/types/contracts/PrivateSequence.d.ts +0 -15
- package/lib/types/contracts/auth/decorators.d.ts +0 -6
- package/lib/types/contracts/auth/index.d.ts +0 -1
- package/lib/types/contracts/crud/crud-contract.d.ts +0 -199
- package/lib/types/contracts/crud/index.d.ts +0 -2
- package/lib/types/contracts/crud/serialized-crud-contract.d.ts +0 -42
- package/lib/types/contracts/erc20/erc20contract.d.ts +0 -152
- package/lib/types/contracts/erc20/index.d.ts +0 -2
- package/lib/types/contracts/erc20/models.d.ts +0 -114
- package/lib/types/contracts/index.d.ts +0 -20
- package/lib/types/contracts/logging.d.ts +0 -54
- package/lib/types/contracts/overrides.d.ts +0 -1
- package/lib/types/contracts/types.d.ts +0 -38
- package/lib/types/contracts/uuid.d.ts +0 -2
- package/lib/types/index.d.ts +0 -8
- package/lib/types/shared/ClientSerializer.d.ts +0 -52
- package/lib/types/shared/DeterministicSerializer.d.ts +0 -47
- package/lib/types/shared/SimpleDeterministicSerializer.d.ts +0 -7
- package/lib/types/shared/constants.d.ts +0 -35
- package/lib/types/shared/decorators.d.ts +0 -81
- package/lib/types/shared/erc20/erc20-constants.d.ts +0 -25
- package/lib/types/shared/erc20/index.d.ts +0 -1
- package/lib/types/shared/errors.d.ts +0 -140
- package/lib/types/shared/events.d.ts +0 -37
- package/lib/types/shared/fabric-types.d.ts +0 -32
- package/lib/types/shared/index.d.ts +0 -21
- package/lib/types/shared/interfaces/Checkable.d.ts +0 -23
- package/lib/types/shared/interfaces/index.d.ts +0 -1
- package/lib/types/shared/math.d.ts +0 -34
- package/lib/types/shared/model/FabricBaseModel.d.ts +0 -7
- package/lib/types/shared/model/FabricIdentifiedBaseModel.d.ts +0 -7
- package/lib/types/shared/model/Identity.d.ts +0 -42
- package/lib/types/shared/model/IdentityCredentials.d.ts +0 -41
- package/lib/types/shared/model/index.d.ts +0 -4
- package/lib/types/shared/overrides/Model.d.ts +0 -22
- package/lib/types/shared/overrides/index.d.ts +0 -2
- package/lib/types/shared/overrides/overrides.d.ts +0 -1
- package/lib/types/shared/types.d.ts +0 -125
- package/lib/types/version.d.ts +0 -2
|
@@ -319,5 +319,5 @@ async function countStoredEntries(ctx, clazz) {
|
|
|
319
319
|
}
|
|
320
320
|
return seen.size ? seen.size : undefined;
|
|
321
321
|
}
|
|
322
|
-
//# sourceMappingURL=FabricContractRepository.js.map
|
|
323
|
-
//# sourceMappingURL=FabricContractRepository.js.map
|
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy9GYWJyaWNDb250cmFjdFJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0JBQXFCO0FBQ3JCLE9BQU8sRUFDTCxVQUFVLEVBS1YsVUFBVSxFQUNWLGVBQWUsRUFDZixxQkFBcUIsR0FPdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdkQsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLHVEQUFvRDtBQUN4RyxPQUFPLEVBQ0wsU0FBUyxFQUVULGFBQWEsR0FHZCxNQUFNLHlCQUF5QixDQUFDO0FBSWpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIscUJBQXFCLEVBQ3JCLFlBQVksR0FDYixrQ0FBNkI7QUFDOUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0RHO0FBQ0gsTUFBTSxPQUFPLHdCQUEwQyxTQUFRLFVBRzlEO0lBVUMsWUFDRSxPQUErQixFQUMvQixLQUFzQixFQUNaLGFBQWtFO1FBRTVFLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFGWixrQkFBYSxHQUFiLGFBQWEsQ0FBcUQ7UUFaM0QsZUFBVSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUNyRSxnQkFBZ0IsRUFBRSxLQUFLO1lBQ3ZCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLGtCQUFrQixFQUFFLElBQUk7WUFDeEIseUJBQXlCLEVBQUUsS0FBSztZQUNoQywwQkFBMEIsRUFBRSxLQUFLO1lBQ2pDLG9CQUFvQixFQUFFLEtBQUs7U0FDNUIsQ0FBQyxDQUFDO0lBUUgsQ0FBQztJQUVRLEtBQUssQ0FBQyxNQUFNLENBQ25CLEtBQVEsRUFDUixHQUFHLElBQStDO1FBRWxELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsS0FBSyxDQUNQLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUMxRSxDQUFDO1FBQ0Ysd0NBQXdDO1FBQ3hDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FDOUQsS0FBSyxFQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFRLEVBQ3JCLEdBQUcsQ0FDSixDQUFDO1FBQ0YsSUFBSSxVQUFVO1lBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFJLE1BQU0sSUFBSSxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBUyxDQUN0QixNQUFXLEVBQ1gsR0FBRyxJQUErQztRQUVsRCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxPQUFPLE1BQU0sQ0FBQztRQUNsQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsR0FBRyxDQUFDLEtBQUssQ0FDUCxZQUFZLE1BQU0sQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDM0YsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDVCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNELEVBQXlCLENBQzFCLENBQUM7UUFDRixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQ3BDLElBQUksQ0FBQyxLQUFLLEVBQ1YsR0FBdUIsRUFDdkIsT0FBTyxFQUNQLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsS0FBUSxFQUNSLEdBQUcsSUFBK0M7UUFFbEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELHdDQUF3QztRQUN4QyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQzlELEtBQUssRUFDTCxHQUFHLENBQ0osQ0FBQztRQUNGLEdBQUcsQ0FBQyxLQUFLLENBQ1AsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FDcEYsQ0FBQztRQUNGLElBQUksVUFBVTtZQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEQsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBSSxNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFUSxLQUFLLENBQUMsU0FBUyxDQUN0QixNQUFXLEVBQ1gsR0FBRyxJQUErQztRQUVsRCxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEUsR0FBRyxDQUFDLE9BQU8sQ0FDVCxZQUFZLE1BQU0sQ0FBQyxNQUFNLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDM0YsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FDaEMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDVCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNqQixHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNyRCxDQUFDLENBQUMsQ0FBQztZQUNILE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNELEVBQXlCLENBQzFCLENBQUM7UUFDRixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FDMUMsSUFBSSxDQUFDLEtBQUssRUFDVixHQUFHLEVBQ0gsT0FBTyxFQUNQLEdBQUcsT0FBTyxDQUNYLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRVEsS0FBSyxDQUFDLE1BQU0sQ0FDbkIsR0FBWSxFQUNaLEtBQXFCLEVBQ3JCLEdBQUcsSUFBK0M7UUFFbEQsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUN2QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FDN0QsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25CLEdBQUcsQ0FBQyxPQUFPLENBQ1QsV0FBVyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFhLElBQUksS0FBSyxFQUFFLENBQ3RFLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7YUFDakIsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFUSxLQUFLLENBQUMsVUFBVSxDQUN2QixHQUFZLEVBQ1osS0FBcUIsRUFDckIsTUFBK0M7UUFDN0MsTUFBTSxFQUFFLENBQUM7UUFDVCxLQUFLLEVBQUUsRUFBRTtLQUNWLEVBQ0QsR0FBRyxJQUErQztRQUVsRCxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQzdCLEdBQUcsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDNUIsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxRQUFRO1lBQ3RCLE1BQU0sSUFBSSxVQUFVLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUNoRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUM1QixNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FDN0QsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQ1QsY0FBYyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEtBQUssRUFBRSxDQUNwRSxDQUFDO1FBRUYsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN2QyxNQUFNLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sV0FBVyxHQUFHO1lBQ2xCLEdBQUcsSUFBSSxHQUFHLENBQ1IsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLENBQUMsR0FBRyxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUN4QyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUNwRCxDQUNGLENBQ0Y7U0FDRixDQUFDO1FBQ0YscUJBQXFCLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzFELE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFN0MsSUFBSSxTQUF1QixDQUFDO1FBQzVCLElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLDBCQUEwQixFQUFFLEtBQUs7Z0JBQ2pDLHlCQUF5QixFQUFFLEtBQUs7YUFDMUIsQ0FBQztpQkFDTixNQUFNLEVBQUU7aUJBQ1IsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUNyQixRQUFRLENBQUMsS0FBZSxFQUFFLFFBQVEsRUFBRSxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUM7YUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQzlCLDBCQUEwQixFQUFFLEtBQUs7Z0JBQ2pDLHlCQUF5QixFQUFFLEtBQUs7YUFDMUIsQ0FBQztpQkFDTixNQUFNLEVBQUU7aUJBQ1IsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUNyQixRQUFRLENBQUMsS0FBZSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksVUFBVSxDQUFDLHVDQUF1QyxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE1BQU0sS0FBSyxHQUFHLE1BQU0sU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDakUsTUFBTSxVQUFVLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdELElBQUksT0FBTyxVQUFVLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsU0FBaUIsQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1lBQzVDLFNBQWlCLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQ3ZDLENBQUMsRUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsQ0FDOUIsQ0FBQztRQUNKLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBc0IsQ0FBQztRQUN0RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsY0FBYyxDQUNaLDBCQUEwQixFQUMxQixJQUFJLENBQUMsU0FBUyxDQUNaLE1BQU0sQ0FBQyxNQUFNLENBQ1g7Z0JBQ0UsR0FBRztnQkFDSCxLQUFLO2dCQUNMLEdBQUc7YUFDSixFQUNELGFBQWEsQ0FDZCxDQUNGLEdBQUcsSUFBSSxDQUNULENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVRLEtBQUssQ0FBQyxTQUFTLENBQ3RCLElBQVksRUFDWixHQUFHLElBQStDO1FBRWxELE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQzVCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FDekQsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUF5QixDQUFDO1lBQ3pELE1BQU0sSUFBSSxVQUFVLENBQUMsd0NBQXdDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkUsSUFBSSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdkQsQ0FBQztRQUNELEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLElBQUksY0FBYyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXpFLElBQUksTUFBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxNQUFPLElBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxZQUFZLFNBQVM7Z0JBQUUsTUFBTSxDQUFDLENBQUM7WUFDcEMsTUFBTSxJQUFJLGFBQWEsQ0FDckIsd0NBQXdDLElBQUksY0FBYyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQzFFLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDTSxlQUFlO1FBQ3RCLE9BQU8sSUFBSSx5Q0FBeUMsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDTSxLQUFLLENBQUMsZUFBZSxDQUM1QixLQUE4QixFQUM5QixLQUFxRCxFQUNyRCxFQUFZLEVBQ1osR0FBRyxJQUEyQztRQUU5QyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUM1RCxPQUFPLE1BQU0sS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFtRWtCLE1BQU0sQ0FJdkIsSUFBcUQsRUFDckQsU0FBaUIsRUFDakIsV0FBcUIsRUFDckIsU0FBd0M7UUFjeEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFdBQWtCLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDNUUsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVPLHVCQUF1QixDQUk3QixJQVlLO1FBY0wsSUFBSSxJQUFJLFlBQVksT0FBTyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVPLGlCQUFpQixDQUl2QixPQUlDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUEwQjtRQUM3QyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqQyxHQUFHLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztDQUNGO0FBRUQsS0FBSyxVQUFVLGtCQUFrQixDQUMvQixHQUEwQixFQUMxQixLQUFxQjtJQUVyQixNQUFNLElBQUksR0FBRyxHQUFHLEVBQUUsSUFTTCxDQUFDO0lBQ2QsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUU1QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxHQUFHLENBQUM7SUFDM0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUUvQixJQUFJLE9BQU8sSUFBSSxDQUFDLDZCQUE2QixLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzdELE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLDZCQUE2QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUM7WUFDSCxPQUFPLElBQUksRUFBRSxDQUFDO2dCQUNaLE1BQU0sTUFBTSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQyxJQUFJLE1BQU0sRUFBRSxJQUFJO29CQUFFLE1BQU07Z0JBQ3hCLE1BQU0sR0FBRyxHQUFHLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxDQUFDO2dCQUMvQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsSUFBSSxRQUFRLElBQUksT0FBTyxRQUFRLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUNyRCxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN6QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNwQixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoRSxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFDbEQsSUFBSSxTQUFTLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sV0FBVyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDbkMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQ3pCLE9BQU8sUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FDcEUsQ0FDRixDQUFDO1FBQ0YsS0FBSyxNQUFNLFVBQVUsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlDLElBQUksQ0FBQyxPQUFPO2dCQUFFLFNBQVM7WUFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7aUJBQ2pCLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdkMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMzQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi9vdmVycmlkZXNcIjtcbmltcG9ydCB7XG4gIFJlcG9zaXRvcnksXG4gIE9ic2VydmVySGFuZGxlcixcbiAgRXZlbnRJZHMsXG4gIENvbnRleHR1YWxBcmdzLFxuICBNYXliZUNvbnRleHR1YWxBcmcsXG4gIFF1ZXJ5RXJyb3IsXG4gIFBlcnNpc3RlbmNlS2V5cyxcbiAgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLFxuICBPcmRlckRpcmVjdGlvbixcbiAgU2VyaWFsaXplZFBhZ2UsXG4gIFBhZ2luYXRvcixcbiAgRGlyZWN0aW9uTGltaXRPZmZzZXQsXG4gIE1ldGhvZE9yT3BlcmF0aW9uLFxuICBDb250ZXh0dWFsaXplZEFyZ3MsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5pbXBvcnQgeyBNb2RlbCB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdG9yLXZhbGlkYXRpb25cIjtcbmltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIH0gZnJvbSBcIi4vRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXJcIjtcbmltcG9ydCB7XG4gIEJhc2VFcnJvcixcbiAgQnVsa0NydWRPcGVyYXRpb25LZXlzLFxuICBJbnRlcm5hbEVycm9yLFxuICBPcGVyYXRpb25LZXlzLFxuICBQcmltYXJ5S2V5VHlwZSxcbn0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSBcIi4vQ29udHJhY3RBZGFwdGVyXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdEZsYWdzIH0gZnJvbSBcIi4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIGFwcGx5TWlycm9yRmxhZ3MsXG4gIGFwcGx5U2VncmVnYXRpb25GbGFncyxcbiAgZXh0cmFjdE1zcElkLFxufSBmcm9tIFwiLi4vc2hhcmVkL2RlY29yYXRvcnNcIjtcbmltcG9ydCB7IGFwcGVuZEZpbGVTeW5jIH0gZnJvbSBcImZzXCI7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgbW9kZWxzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBDUlVEIG9wZXJhdGlvbnMgZm9yIG1vZGVscyB3aXRoaW4gRmFicmljIGNoYWluY29kZSBjb250cmFjdHNcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBNYW5nb1F1ZXJ5IC0gUXVlcnkgdHlwZSBmb3IgQ291Y2hEQi1saWtlIHF1ZXJpZXNcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdEFkYXB0ZXIgLSBBZGFwdGVyIHR5cGUgZm9yIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RGbGFncyAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RDb250ZXh0IC0gQ29udGV4dCB0eXBlIGZvciBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICpcbiAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RBZGFwdGVyfSBbYWRhcHRlcl0gLSBUaGUgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3RhdGUgZGF0YWJhc2VcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXk8T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZz59IFt0cmFja2VkRXZlbnRzXSAtIEV2ZW50cyB0byB0cmFjayBmb3Igb2JzZXJ2ZXIgbm90aWZpY2F0aW9uc1xuICpcbiAqIEBjbGFzcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3QgY2xhc3NcbiAqIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSwgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1mYWJyaWMnO1xuICpcbiAqIEB0YWJsZSgnYXNzZXRzJylcbiAqIGNsYXNzIEFzc2V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAaWQoKVxuICogICBpZDogc3RyaW5nO1xuICpcbiAqICAgQHByb3BlcnR5KClcbiAqICAgZGF0YTogc3RyaW5nO1xuICogfVxuICpcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBwcml2YXRlIGFkYXB0ZXIgPSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG4gKiAgIHByaXZhdGUgcmVwb3NpdG9yeTogRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PEFzc2V0PjtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHN1cGVyKCdNeUNvbnRyYWN0Jyk7XG4gKiAgICAgdGhpcy5yZXBvc2l0b3J5ID0gbmV3IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxBc3NldD4odGhpcy5hZGFwdGVyLCBBc3NldCk7XG4gKiAgIH1cbiAqXG4gKiAgIEBUcmFuc2FjdGlvbigpXG4gKiAgIGFzeW5jIGNyZWF0ZUFzc2V0KGN0eDogQ29udGV4dCwgaWQ6IHN0cmluZywgZGF0YTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgY29uc3QgYXNzZXQgPSBuZXcgQXNzZXQoKTtcbiAqICAgICBhc3NldC5pZCA9IGlkO1xuICogICAgIGFzc2V0LmRhdGEgPSBkYXRhO1xuICpcbiAqICAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuY3JlYXRlKGFzc2V0LCB7IHN0dWI6IGN0eC5zdHViIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAqXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogY3JlYXRlKG1vZGVsLCBjdHgpXG4gKiAgIFJlcG9zaXRvcnktPj5BZGFwdGVyOiBwcmVwYXJlKG1vZGVsLCBwaylcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCByZWNvcmQsIHRyYW5zaWVudCwgY3R4KVxuICogICBBZGFwdGVyLT4+U3RhdGVEQjogcHV0U3RhdGUoaWQsIHNlcmlhbGl6ZWREYXRhKVxuICogICBTdGF0ZURCLS0+PkFkYXB0ZXI6IFN1Y2Nlc3NcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiByZWNvcmRcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IHJldmVydChyZWNvcmQsIGNsYXNzLCBwaywgaWQsIHRyYW5zaWVudClcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiBtb2RlbFxuICogICBSZXBvc2l0b3J5LS0+PkNvbnRyYWN0OiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PE0gZXh0ZW5kcyBNb2RlbD4gZXh0ZW5kcyBSZXBvc2l0b3J5PFxuICBNLFxuICBGYWJyaWNDb250cmFjdEFkYXB0ZXJcbj4ge1xuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX292ZXJyaWRlcyA9IE9iamVjdC5hc3NpZ24oe30sIHN1cGVyW1wiX292ZXJyaWRlc1wiXSwge1xuICAgIGlnbm9yZVZhbGlkYXRpb246IGZhbHNlLFxuICAgIGlnbm9yZUhhbmRsZXJzOiBmYWxzZSxcbiAgICBhbGxvd1Jhd1N0YXRlbWVudHM6IHRydWUsXG4gICAgZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllczogZmFsc2UsXG4gICAgZm9yY2VQcmVwYXJlQ29tcGxleFF1ZXJpZXM6IGZhbHNlLFxuICAgIHJlYnVpbGRXaXRoVHJhbnNpZW50OiBmYWxzZSxcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYWRhcHRlcj86IEZhYnJpY0NvbnRyYWN0QWRhcHRlcixcbiAgICBjbGF6ej86IENvbnN0cnVjdG9yPE0+LFxuICAgIHByb3RlY3RlZCBvbWl0dGVkRXZlbnRzPzogKE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcpW11cbiAgKSB7XG4gICAgc3VwZXIoYWRhcHRlciwgY2xhenopO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlKFxuICAgIG1vZGVsOiBNLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8TT4ge1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gXG4gICAgKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG4gICAgbGV0IHsgcmVjb3JkLCBpZCwgdHJhbnNpZW50LCBzZWdyZWdhdGVkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShcbiAgICAgIG1vZGVsLFxuICAgICAgbW9kZWxbdGhpcy5wa10gYXMgYW55LFxuICAgICAgY3R4XG4gICAgKTtcbiAgICBpZiAoc2VncmVnYXRlZCkgY3R4LnB1dChcInNlZ3JlZ2F0ZWREYXRhXCIsIHNlZ3JlZ2F0ZWQpO1xuICAgIHJlY29yZCA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGUodGhpcy5jbGFzcywgaWQsIHJlY29yZCwgLi4uY3R4QXJncyk7XG4gICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQ8TT4ocmVjb3JkIHx8IHt9LCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlQWxsKFxuICAgIG1vZGVsczogTVtdLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICk6IFByb21pc2U8TVtdPiB7XG4gICAgaWYgKCFtb2RlbHMubGVuZ3RoKSByZXR1cm4gbW9kZWxzO1xuICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMuY3JlYXRlQWxsKTtcbiAgICBsb2cuZGVidWcoXG4gICAgICBgQ3JlYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGxldCByZWNvcmRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLnJlY29yZCk7XG4gICAgY29uc3Qgc2VncmVnYXRlZCA9IHByZXBhcmVkLnJlZHVjZShcbiAgICAgIChhY2MsIHApID0+IHtcbiAgICAgICAgY29uc3QgY29scyA9IE9iamVjdC5rZXlzKHAuc2VncmVnYXRlZCB8fCB7fSk7XG4gICAgICAgIGNvbHMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgIGFjY1tjXSA9IGFjY1tjXSB8fCB7fTtcbiAgICAgICAgICBhY2NbY10gPSB7IC4uLmFjY1tjXSwgLi4uKHAuc2VncmVnYXRlZCB8fCB7fSlbY10gfTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgUmVjb3JkPHN0cmluZywgYW55PlxuICAgICk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHNlZ3JlZ2F0ZWQpLmxlbmd0aCkge1xuICAgICAgY3R4LnB1dChcInNlZ3JlZ2F0ZWREYXRhXCIsIHNlZ3JlZ2F0ZWQpO1xuICAgIH1cbiAgICByZWNvcmRzID0gYXdhaXQgdGhpcy5hZGFwdGVyLmNyZWF0ZUFsbChcbiAgICAgIHRoaXMuY2xhc3MsXG4gICAgICBpZHMgYXMgUHJpbWFyeUtleVR5cGVbXSxcbiAgICAgIHJlY29yZHMsXG4gICAgICAuLi5jdHhBcmdzXG4gICAgKTtcbiAgICByZXR1cm4gcmVjb3Jkcy5tYXAoKHIsIGkpID0+XG4gICAgICB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIGlkc1tpXSwgcHJlcGFyZWRbaV0udHJhbnNpZW50LCBjdHgpXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZShcbiAgICBtb2RlbDogTSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPE0+IHtcbiAgICBjb25zdCB7IGN0eEFyZ3MsIGxvZywgY3R4IH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZSk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgIGxldCB7IHJlY29yZCwgaWQsIHRyYW5zaWVudCwgc2VncmVnYXRlZCB9ID0gdGhpcy5hZGFwdGVyLnByZXBhcmUoXG4gICAgICBtb2RlbCxcbiAgICAgIGN0eFxuICAgICk7XG4gICAgbG9nLmRlYnVnKFxuICAgICAgYHVwZGF0aW5nICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCBpZCAke2lkfWBcbiAgICApO1xuICAgIGlmIChzZWdyZWdhdGVkKSBjdHgucHV0KFwic2VncmVnYXRlZERhdGFcIiwgc2VncmVnYXRlZCk7XG4gICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZSh0aGlzLmNsYXNzLCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzKTtcbiAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydDxNPihyZWNvcmQsIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVBbGwoXG4gICAgbW9kZWxzOiBNW10sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTxNW10+IHtcbiAgICBjb25zdCB7IGN0eCwgbG9nLCBjdHhBcmdzIH0gPSB0aGlzLmxvZ0N0eChhcmdzLCB0aGlzLnVwZGF0ZUFsbCk7XG4gICAgbG9nLnZlcmJvc2UoXG4gICAgICBgVXBkYXRpbmcgJHttb2RlbHMubGVuZ3RofSBuZXcgJHt0aGlzLmNsYXNzLm5hbWV9IGluIHRhYmxlICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfWBcbiAgICApO1xuXG4gICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICBjb25zdCBpZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAuaWQpO1xuICAgIGNvbnN0IHJlY29yZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAucmVjb3JkKTtcbiAgICBjb25zdCBzZWdyZWdhdGVkID0gcHJlcGFyZWQucmVkdWNlKFxuICAgICAgKGFjYywgcCkgPT4ge1xuICAgICAgICBjb25zdCBjb2xzID0gT2JqZWN0LmtleXMocC5zZWdyZWdhdGVkIHx8IHt9KTtcbiAgICAgICAgY29scy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgYWNjW2NdID0gYWNjW2NdIHx8IHt9O1xuICAgICAgICAgIGFjY1tjXSA9IHsgLi4uYWNjW2NdLCAuLi4ocC5zZWdyZWdhdGVkIHx8IHt9KVtjXSB9O1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgKTtcbiAgICBpZiAoT2JqZWN0LmtleXMoc2VncmVnYXRlZCkubGVuZ3RoKSB7XG4gICAgICBjdHgucHV0KFwic2VncmVnYXRlZERhdGFcIiwgc2VncmVnYXRlZCk7XG4gICAgfVxuXG4gICAgY29uc3QgdXBkYXRlZCA9IGF3YWl0IHRoaXMuYWRhcHRlci51cGRhdGVBbGwoXG4gICAgICB0aGlzLmNsYXNzLFxuICAgICAgaWRzLFxuICAgICAgcmVjb3JkcyxcbiAgICAgIC4uLmN0eEFyZ3NcbiAgICApO1xuICAgIHJldHVybiB1cGRhdGVkLm1hcCgodSwgaSkgPT5cbiAgICAgIHRoaXMuYWRhcHRlci5yZXZlcnQodSwgdGhpcy5jbGFzcywgaWRzW2ldLCBwcmVwYXJlZFtpXS50cmFuc2llbnQsIGN0eClcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgbGlzdEJ5KFxuICAgIGtleToga2V5b2YgTSxcbiAgICBvcmRlcjogT3JkZXJEaXJlY3Rpb24sXG4gICAgLi4uYXJnczogTWF5YmVDb250ZXh0dWFsQXJnPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKSB7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLCB0cnVlKVxuICAgICkuZm9yKHRoaXMubGlzdEJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBsaXN0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSBieSAke2tleSBhcyBzdHJpbmd9ICR7b3JkZXJ9YFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0KClcbiAgICAgIC5vcmRlckJ5KFtrZXksIG9yZGVyXSlcbiAgICAgIC5leGVjdXRlKC4uLmN0eEFyZ3MpO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcGFnaW5hdGVCeShcbiAgICBrZXk6IGtleW9mIE0sXG4gICAgb3JkZXI6IE9yZGVyRGlyZWN0aW9uLFxuICAgIHJlZjogT21pdDxEaXJlY3Rpb25MaW1pdE9mZnNldCwgXCJkaXJlY3Rpb25cIj4gPSB7XG4gICAgICBvZmZzZXQ6IDEsXG4gICAgICBsaW1pdDogMTAsXG4gICAgfSxcbiAgICAuLi5hcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0PlxuICApOiBQcm9taXNlPFNlcmlhbGl6ZWRQYWdlPE0+PiB7XG4gICAgcmVmLm9mZnNldCA9IHJlZi5vZmZzZXQgfHwgMTtcbiAgICByZWYubGltaXQgPSByZWYubGltaXQgfHwgMTA7XG4gICAgY29uc3QgeyBvZmZzZXQsIGJvb2ttYXJrLCBsaW1pdCB9ID0gcmVmO1xuICAgIGlmICghb2Zmc2V0ICYmICFib29rbWFyaylcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBQYWdpbmF0ZUJ5IG5lZWRzIGEgcGFnZSBvciBhIGJvb2ttYXJrYCk7XG4gICAgY29uc3QgeyBsb2csIGN0eEFyZ3MsIGN0eCB9ID0gKFxuICAgICAgYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0VfQlksIHRydWUpXG4gICAgKS5mb3IodGhpcy5wYWdpbmF0ZUJ5KTtcbiAgICBsb2cudmVyYm9zZShcbiAgICAgIGBwYWdpbmF0aW5nICR7TW9kZWwudGFibGVOYW1lKHRoaXMuY2xhc3MpfSB3aXRoIHBhZ2Ugc2l6ZSAke2xpbWl0fWBcbiAgICApO1xuXG4gICAgY29uc3QgbXNwID0gZXh0cmFjdE1zcElkKGN0eC5pZGVudGl0eSk7XG4gICAgY29uc3QgeyBwcml2YXRlQ29scywgc2hhcmVkQ29scyB9ID0gTW9kZWwuY29sbGVjdGlvbnNGb3IodGhpcy5jbGFzcyk7XG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSBbXG4gICAgICAuLi5uZXcgU2V0KFxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICBbLi4ucHJpdmF0ZUNvbHMsIC4uLnNoYXJlZENvbHNdLm1hcCgoYykgPT5cbiAgICAgICAgICAgIHR5cGVvZiBjID09PSBcInN0cmluZ1wiID8gYyA6IGModGhpcy5jbGFzcywgbXNwLCBjdHgpXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICApLFxuICAgIF07XG4gICAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzKG5ldyB0aGlzLmNsYXNzKCksIGNvbGxlY3Rpb25zLCBjdHgpO1xuICAgIGF3YWl0IGFwcGx5TWlycm9yRmxhZ3ModGhpcy5jbGFzcywgbXNwLCBjdHgpO1xuXG4gICAgbGV0IHBhZ2luYXRvcjogUGFnaW5hdG9yPE0+O1xuICAgIGlmIChvZmZzZXQgJiYgYm9va21hcmspIHtcbiAgICAgIHBhZ2luYXRvciA9IGF3YWl0IHRoaXMub3ZlcnJpZGUoe1xuICAgICAgICBmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllczogZmFsc2UsXG4gICAgICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IGZhbHNlLFxuICAgICAgfSBhcyBhbnkpXG4gICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAub3JkZXJCeShba2V5LCBvcmRlcl0pXG4gICAgICAgIC5wYWdpbmF0ZShsaW1pdCBhcyBudW1iZXIsIGJvb2ttYXJrLCAuLi5jdHhBcmdzKTtcbiAgICB9IGVsc2UgaWYgKG9mZnNldCkge1xuICAgICAgcGFnaW5hdG9yID0gYXdhaXQgdGhpcy5vdmVycmlkZSh7XG4gICAgICAgIGZvcmNlUHJlcGFyZUNvbXBsZXhRdWVyaWVzOiBmYWxzZSxcbiAgICAgICAgZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllczogZmFsc2UsXG4gICAgICB9IGFzIGFueSlcbiAgICAgICAgLnNlbGVjdCgpXG4gICAgICAgIC5vcmRlckJ5KFtrZXksIG9yZGVyXSlcbiAgICAgICAgLnBhZ2luYXRlKGxpbWl0IGFzIG51bWJlciwgLi4uY3R4QXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBRdWVyeUVycm9yKGBQYWdpbmF0ZUJ5IG5lZWRzIGEgcGFnZSBvciBhIGJvb2ttYXJrYCk7XG4gICAgfVxuICAgIGNvbnN0IHBhZ2VkID0gYXdhaXQgcGFnaW5hdG9yLnBhZ2Uob2Zmc2V0LCBib29rbWFyaywgLi4uY3R4QXJncyk7XG4gICAgY29uc3QgdG90YWxDb3VudCA9IGF3YWl0IGNvdW50U3RvcmVkRW50cmllcyhjdHgsIHRoaXMuY2xhc3MpO1xuICAgIGlmICh0eXBlb2YgdG90YWxDb3VudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgKHBhZ2luYXRvciBhcyBhbnkpLl9yZWNvcmRDb3VudCA9IHRvdGFsQ291bnQ7XG4gICAgICAocGFnaW5hdG9yIGFzIGFueSkuX3RvdGFsUGFnZXMgPSBNYXRoLm1heChcbiAgICAgICAgMSxcbiAgICAgICAgTWF0aC5jZWlsKHRvdGFsQ291bnQgLyBsaW1pdClcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNlcmlhbGl6YXRpb24gPSBwYWdpbmF0b3Iuc2VyaWFsaXplKHBhZ2VkKSBhcyBTZXJpYWxpemVkUGFnZTxNPjtcbiAgICBpZiAocHJvY2Vzcy5lbnYuUEFHRV9ERUJVRykge1xuICAgICAgYXBwZW5kRmlsZVN5bmMoXG4gICAgICAgIFwiL3RtcC9mYWJyaWMtcGFnaW5hdGUubG9nXCIsXG4gICAgICAgIEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgb3JkZXIsXG4gICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXJpYWxpemF0aW9uXG4gICAgICAgICAgKVxuICAgICAgICApICsgXCJcXG5cIlxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlcmlhbGl6YXRpb247XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBzdGF0ZW1lbnQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIC4uLmFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQ+XG4gICkge1xuICAgIGNvbnN0IHsgbG9nLCBjdHgsIGN0eEFyZ3MgfSA9IChcbiAgICAgIGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFBlcnNpc3RlbmNlS2V5cy5TVEFURU1FTlQsIHRydWUpXG4gICAgKS5mb3IodGhpcy5zdGF0ZW1lbnQpO1xuICAgIGlmICghUmVwb3NpdG9yeS5zdGF0ZW1lbnRzKHRoaXMsIG5hbWUgYXMga2V5b2YgdHlwZW9mIHRoaXMpKVxuICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYEludmFsaWQgcHJlcGFyZWQgc3RhdGVtZW50IHJlcXVlc3RlZCAke25hbWV9YCk7XG4gICAgaWYgKGN0eC5sb2dnZXIpIHtcbiAgICAgIGN0eC5sb2dnZXIuaW5mbyhgUmVwbyBzdGF0ZW1lbnQ6ICR7bmFtZX0gKyAke2FyZ3N9YCk7XG4gICAgfVxuICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX0gd2l0aCBhcmdzICR7Y3R4QXJnc31gKTtcblxuICAgIGxldCByZXN1bHQ6IGFueTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgKHRoaXMgYXMgYW55KVtuYW1lXSguLi5jdHhBcmdzKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEJhc2VFcnJvcikgdGhyb3cgZTtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICBgRmFpbGVkIHRvIGV4ZWN1dGUgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX0gd2l0aCBhcmdzICR7Y3R4QXJnc306ICR7ZX1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHMgdGhlIG9ic2VydmVyIGhhbmRsZXIgZm9yIHRoaXMgcmVwb3NpdG9yeVxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgaW5zdGFuY2VcbiAgICogQHJldHVybiB7T2JzZXJ2ZXJIYW5kbGVyfSBUaGUgb2JzZXJ2ZXIgaGFuZGxlclxuICAgKi9cbiAgb3ZlcnJpZGUgT2JzZXJ2ZXJIYW5kbGVyKCk6IE9ic2VydmVySGFuZGxlciB7XG4gICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBVcGRhdGVzIG9ic2VydmVycyBiYXNlZCBvbiB0cmFja2VkIGV2ZW50c1xuICAgKiBAc3VtbWFyeSBGaWx0ZXJzIGV2ZW50cyBiYXNlZCBvbiB0cmFja2VkRXZlbnRzIGFuZCBkZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBtZXRob2RcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIHRhYmxlL2NvbGxlY3Rpb24gbmFtZVxuICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IHR5cGVcbiAgICogQHBhcmFtIHtFdmVudElkc30gaWQgLSBUaGUgZXZlbnQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY3R4IC0gVGhlIEZhYnJpYyBjb250cmFjdCBjb250ZXh0XG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBBZGRpdGlvbmFsIGFyZ3VtZW50c1xuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBvYnNlcnZlcnMgYXJlIHVwZGF0ZWRcbiAgICovXG4gIG92ZXJyaWRlIGFzeW5jIHVwZGF0ZU9ic2VydmVycyhcbiAgICB0YWJsZTogQ29uc3RydWN0b3I8TT4gfCBzdHJpbmcsXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLm9taXR0ZWRFdmVudHMgfHwgIXRoaXMub21pdHRlZEV2ZW50cy5pbmNsdWRlcyhldmVudCkpXG4gICAgICByZXR1cm4gYXdhaXQgc3VwZXIudXBkYXRlT2JzZXJ2ZXJzKHRhYmxlLCBldmVudCwgaWQsIC4uLmFyZ3MpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9EXG4gICk6IENvbnRleHR1YWxpemVkQXJnczxcbiAgICBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgQVJHUyxcbiAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBmYWxzZVxuICApOiBDb250ZXh0dWFsaXplZEFyZ3M8XG4gICAgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgIEFSR1MsXG4gICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gID47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZVxuICApOiBQcm9taXNlPFxuICAgIENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICAgIEFSR1MsXG4gICAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgICA+XG4gID47XG4gIHByb3RlY3RlZCBvdmVycmlkZSBsb2dDdHg8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24gPSBNZXRob2RPck9wZXJhdGlvbixcbiAgPihcbiAgICBhcmdzOiBNYXliZUNvbnRleHR1YWxBcmc8RmFicmljQ29udHJhY3RDb250ZXh0LCBBUkdTPixcbiAgICBvcGVyYXRpb246IE1FVEhPRCxcbiAgICBhbGxvd0NyZWF0ZTogdHJ1ZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+XG4gICk6IFByb21pc2U8XG4gICAgQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgICAgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgICAgQVJHUyxcbiAgICAgIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZVxuICAgID5cbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlOiBmYWxzZSxcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+XG4gICk6IENvbnRleHR1YWxpemVkQXJnczxcbiAgICBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgQVJHUyxcbiAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgPjtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGxvZ0N0eDxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10gPSBhbnlbXSxcbiAgICBNRVRIT0QgZXh0ZW5kcyBNZXRob2RPck9wZXJhdGlvbiA9IE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGFyZ3M6IE1heWJlQ29udGV4dHVhbEFyZzxGYWJyaWNDb250cmFjdENvbnRleHQsIEFSR1M+LFxuICAgIG9wZXJhdGlvbjogTUVUSE9ELFxuICAgIGFsbG93Q3JlYXRlPzogYm9vbGVhbixcbiAgICBvdmVycmlkZXM/OiBQYXJ0aWFsPEZhYnJpY0NvbnRyYWN0RmxhZ3M+XG4gICk6XG4gICAgfCBDb250ZXh0dWFsaXplZEFyZ3M8XG4gICAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICAgICAgQVJHUyxcbiAgICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgICA+XG4gICAgfCBQcm9taXNlPFxuICAgICAgICBDb250ZXh0dWFsaXplZEFyZ3M8XG4gICAgICAgICAgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgICAgICAgIEFSR1MsXG4gICAgICAgICAgTUVUSE9EIGV4dGVuZHMgc3RyaW5nID8gdHJ1ZSA6IGZhbHNlXG4gICAgICAgID5cbiAgICAgID4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHN1cGVyLmxvZ0N0eChhcmdzLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlIGFzIGFueSwgb3ZlcnJpZGVzKTtcbiAgICByZXR1cm4gdGhpcy5jbGVhbkNvbnRleHR1YWxpemVkQXJncyhyZXN1bHQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhbkNvbnRleHR1YWxpemVkQXJnczxcbiAgICBBUkdTIGV4dGVuZHMgYW55W10sXG4gICAgTUVUSE9EIGV4dGVuZHMgTWV0aG9kT3JPcGVyYXRpb24sXG4gID4oXG4gICAgYXJnczpcbiAgICAgIHwgQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgICAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICAgICAgICBBUkdTLFxuICAgICAgICAgIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZVxuICAgICAgICA+XG4gICAgICB8IFByb21pc2U8XG4gICAgICAgICAgQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgICAgICAgICAgRmFicmljQ29udHJhY3RDb250ZXh0LFxuICAgICAgICAgICAgQVJHUyxcbiAgICAgICAgICAgIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZVxuICAgICAgICAgID5cbiAgICAgICAgPlxuICApOlxuICAgIHwgQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgICAgICBGYWJyaWNDb250cmFjdENvbnRleHQsXG4gICAgICAgIEFSR1MsXG4gICAgICAgIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZVxuICAgICAgPlxuICAgIHwgUHJvbWlzZTxcbiAgICAgICAgQ29udGV4dHVhbGl6ZWRBcmdzPFxuICAgICAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICAgICAgICBBUkdTLFxuICAgICAgICAgIE1FVEhPRCBleHRlbmRzIHN0cmluZyA/IHRydWUgOiBmYWxzZVxuICAgICAgICA+XG4gICAgICA+IHtcbiAgICBpZiAoYXJncyBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgIHJldHVybiBhcmdzLnRoZW4oKGN0eEFyZ3MpID0+IHRoaXMuYXBwbHlDbGVhbkNvbnRleHQoY3R4QXJncykpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcHBseUNsZWFuQ29udGV4dChhcmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlDbGVhbkNvbnRleHQ8XG4gICAgQVJHUyBleHRlbmRzIGFueVtdLFxuICAgIE1FVEhPRCBleHRlbmRzIE1ldGhvZE9yT3BlcmF0aW9uLFxuICA+KFxuICAgIGN0eEFyZ3M6IENvbnRleHR1YWxpemVkQXJnczxcbiAgICAgIEZhYnJpY0NvbnRyYWN0Q29udGV4dCxcbiAgICAgIEFSR1MsXG4gICAgICBNRVRIT0QgZXh0ZW5kcyBzdHJpbmcgPyB0cnVlIDogZmFsc2VcbiAgICA+XG4gICkge1xuICAgIHRoaXMuY2xlYW5Db250ZXh0KGN0eEFyZ3MuY3R4KTtcbiAgICByZXR1cm4gY3R4QXJncztcbiAgfVxuXG4gIHByaXZhdGUgY2xlYW5Db250ZXh0KGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0KTogRmFicmljQ29udHJhY3RDb250ZXh0IHtcbiAgICBjdHgucHV0KFwic2VncmVnYXRlZFwiLCB1bmRlZmluZWQpO1xuICAgIGN0eC5wdXQoXCJhbGxvd0dhdGV3YXlPdmVycmlkZVwiLCB1bmRlZmluZWQpO1xuICAgIHJldHVybiBjdHg7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gY291bnRTdG9yZWRFbnRyaWVzPE0gZXh0ZW5kcyBNb2RlbD4oXG4gIGN0eDogRmFicmljQ29udHJhY3RDb250ZXh0LFxuICBjbGF6ejogQ29uc3RydWN0b3I8TT5cbik6IFByb21pc2U8bnVtYmVyIHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHN0dWIgPSBjdHg/LnN0dWIgYXNcbiAgICB8IHtcbiAgICAgICAgc3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCBCdWZmZXI+O1xuICAgICAgICBwcml2YXRlU3RhdGU/OiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBCdWZmZXI+PjtcbiAgICAgICAgZ2V0U3RhdGVCeVBhcnRpYWxDb21wb3NpdGVLZXk/OiAoXG4gICAgICAgICAgb2JqZWN0VHlwZTogc3RyaW5nLFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHN0cmluZ1tdXG4gICAgICAgICkgPT4gUHJvbWlzZTxhbnk+O1xuICAgICAgfVxuICAgIHwgdW5kZWZpbmVkO1xuICBpZiAoIXN0dWIpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgdGFibGUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICBjb25zdCBwcmVmaXggPSBgJHt0YWJsZX1fYDtcbiAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGlmICh0eXBlb2Ygc3R1Yi5nZXRTdGF0ZUJ5UGFydGlhbENvbXBvc2l0ZUtleSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgY29uc3QgaXRlcmF0b3IgPSBhd2FpdCBzdHViLmdldFN0YXRlQnlQYXJ0aWFsQ29tcG9zaXRlS2V5KHRhYmxlLCBbXSk7XG4gICAgdHJ5IHtcbiAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgaWYgKHJlc3VsdD8uZG9uZSkgYnJlYWs7XG4gICAgICAgIGNvbnN0IGtleSA9IHJlc3VsdD8udmFsdWU/LmtleTtcbiAgICAgICAgaWYgKGtleSAmJiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgc2Vlbi5hZGQoa2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoaXRlcmF0b3IgJiYgdHlwZW9mIGl0ZXJhdG9yLmNsb3NlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpZiAoc3R1Yi5zdGF0ZSkge1xuICAgIE9iamVjdC5rZXlzKHN0dWIuc3RhdGUpXG4gICAgICAuZmlsdGVyKChrZXkpID0+IGtleS5zdGFydHNXaXRoKHByZWZpeCkpXG4gICAgICAuZm9yRWFjaCgoa2V5KSA9PiBzZWVuLmFkZChrZXkpKTtcbiAgfVxuXG4gIGNvbnN0IHsgcHJpdmF0ZUNvbHMsIHNoYXJlZENvbHMgfSA9IE1vZGVsLmNvbGxlY3Rpb25zRm9yKGNsYXp6KTtcbiAgY29uc3QgcmVzb2x2ZXJzID0gWy4uLnByaXZhdGVDb2xzLCAuLi5zaGFyZWRDb2xzXTtcbiAgaWYgKHJlc29sdmVycy5sZW5ndGggJiYgc3R1Yi5wcml2YXRlU3RhdGUpIHtcbiAgICBjb25zdCBtc3AgPSBleHRyYWN0TXNwSWQoY3R4LmlkZW50aXR5KTtcbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcmVzb2x2ZXJzLm1hcCgocmVzb2x2ZXIpID0+XG4gICAgICAgIHR5cGVvZiByZXNvbHZlciA9PT0gXCJzdHJpbmdcIiA/IHJlc29sdmVyIDogcmVzb2x2ZXIoY2xhenosIG1zcCwgY3R4KVxuICAgICAgKVxuICAgICk7XG4gICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4gICAgICBjb25zdCBlbnRyaWVzID0gc3R1Yi5wcml2YXRlU3RhdGVbY29sbGVjdGlvbl07XG4gICAgICBpZiAoIWVudHJpZXMpIGNvbnRpbnVlO1xuICAgICAgT2JqZWN0LmtleXMoZW50cmllcylcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiBzZWVuLmFkZChrZXkpKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc2Vlbi5zaXplID8gc2Vlbi5zaXplIDogdW5kZWZpbmVkO1xufVxuIl19
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBCQUF3QjtBQUN4Qix5Q0FBaUc7QUFDakcseUVBQXVEO0FBQ3ZELGlIQUEyRztBQUMzRywyREFBb0U7QUFDcEUsNkRBQW1HO0FBQ25HLDJCQUFvQztBQUNwQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0RHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxpQkFBVTtJQUNwRCxZQUFZLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYTtRQUNyQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3JELGdCQUFnQixFQUFFLEtBQUs7WUFDdkIsY0FBYyxFQUFFLEtBQUs7WUFDckIsa0JBQWtCLEVBQUUsSUFBSTtZQUN4Qix5QkFBeUIsRUFBRSxLQUFLO1lBQ2hDLDBCQUEwQixFQUFFLEtBQUs7WUFDakMsb0JBQW9CLEVBQUUsS0FBSztTQUM5QixDQUFDLENBQUM7SUFDUCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RCxHQUFHLENBQUMsS0FBSyxDQUFDLGdCQUFnQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSw0QkFB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QU0sQ0FBQyxDQUFDO2lCQUN2QyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN6QyxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdDLENBQUM7QUFDRCwwZ3hDQUEwZ3hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwiLi9vdmVycmlkZXMuanNcIjtcbmltcG9ydCB7IFJlcG9zaXRvcnksIFF1ZXJ5RXJyb3IsIFBlcnNpc3RlbmNlS2V5cywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLCB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlciB9IGZyb20gXCIuL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyLmpzXCI7XG5pbXBvcnQgeyBCYXNlRXJyb3IsIEludGVybmFsRXJyb3IsIH0gZnJvbSBcIkBkZWNhZi10cy9kYi1kZWNvcmF0b3JzXCI7XG5pbXBvcnQgeyBhcHBseU1pcnJvckZsYWdzLCBhcHBseVNlZ3JlZ2F0aW9uRmxhZ3MsIGV4dHJhY3RNc3BJZCwgfSBmcm9tIFwiLi8uLi9zaGFyZWQvZGVjb3JhdG9ycy5qc1wiO1xuaW1wb3J0IHsgYXBwZW5kRmlsZVN5bmMgfSBmcm9tIFwiZnNcIjtcbi8qKlxuICogQGRlc2NyaXB0aW9uIFJlcG9zaXRvcnkgZm9yIEh5cGVybGVkZ2VyIEZhYnJpYyBjaGFpbmNvZGUgbW9kZWxzXG4gKiBAc3VtbWFyeSBQcm92aWRlcyBDUlVEIG9wZXJhdGlvbnMgZm9yIG1vZGVscyB3aXRoaW4gRmFicmljIGNoYWluY29kZSBjb250cmFjdHNcbiAqIEB0ZW1wbGF0ZSBNIC0gVHlwZSBleHRlbmRpbmcgTW9kZWxcbiAqIEB0ZW1wbGF0ZSBNYW5nb1F1ZXJ5IC0gUXVlcnkgdHlwZSBmb3IgQ291Y2hEQi1saWtlIHF1ZXJpZXNcbiAqIEB0ZW1wbGF0ZSBGYWJyaWNDb250cmFjdEFkYXB0ZXIgLSBBZGFwdGVyIHR5cGUgZm9yIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RGbGFncyAtIEZsYWdzIHNwZWNpZmljIHRvIEZhYnJpYyBjb250cmFjdCBvcGVyYXRpb25zXG4gKiBAdGVtcGxhdGUgRmFicmljQ29udHJhY3RDb250ZXh0IC0gQ29udGV4dCB0eXBlIGZvciBGYWJyaWMgY29udHJhY3Qgb3BlcmF0aW9uc1xuICpcbiAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RBZGFwdGVyfSBbYWRhcHRlcl0gLSBUaGUgYWRhcHRlciBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3RhdGUgZGF0YWJhc2VcbiAqIEBwYXJhbSB7Q29uc3RydWN0b3I8TT59IFtjbGF6el0gLSBUaGUgbW9kZWwgY29uc3RydWN0b3JcbiAqIEBwYXJhbSB7QXJyYXk8T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZz59IFt0cmFja2VkRXZlbnRzXSAtIEV2ZW50cyB0byB0cmFjayBmb3Igb2JzZXJ2ZXIgbm90aWZpY2F0aW9uc1xuICpcbiAqIEBjbGFzcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBJbiBhIEZhYnJpYyBjaGFpbmNvZGUgY29udHJhY3QgY2xhc3NcbiAqIGltcG9ydCB7IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeSwgRmFicmljQ29udHJhY3RBZGFwdGVyIH0gZnJvbSAnQGRlY2FmLXRzL2Zvci1mYWJyaWMnO1xuICpcbiAqIEB0YWJsZSgnYXNzZXRzJylcbiAqIGNsYXNzIEFzc2V0IGV4dGVuZHMgTW9kZWwge1xuICogICBAaWQoKVxuICogICBpZDogc3RyaW5nO1xuICpcbiAqICAgQHByb3BlcnR5KClcbiAqICAgZGF0YTogc3RyaW5nO1xuICogfVxuICpcbiAqIGV4cG9ydCBjbGFzcyBNeUNvbnRyYWN0IGV4dGVuZHMgQ29udHJhY3Qge1xuICogICBwcml2YXRlIGFkYXB0ZXIgPSBuZXcgRmFicmljQ29udHJhY3RBZGFwdGVyKCk7XG4gKiAgIHByaXZhdGUgcmVwb3NpdG9yeTogRmFicmljQ29udHJhY3RSZXBvc2l0b3J5PEFzc2V0PjtcbiAqXG4gKiAgIGNvbnN0cnVjdG9yKCkge1xuICogICAgIHN1cGVyKCdNeUNvbnRyYWN0Jyk7XG4gKiAgICAgdGhpcy5yZXBvc2l0b3J5ID0gbmV3IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeTxBc3NldD4odGhpcy5hZGFwdGVyLCBBc3NldCk7XG4gKiAgIH1cbiAqXG4gKiAgIEBUcmFuc2FjdGlvbigpXG4gKiAgIGFzeW5jIGNyZWF0ZUFzc2V0KGN0eDogQ29udGV4dCwgaWQ6IHN0cmluZywgZGF0YTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gKiAgICAgY29uc3QgYXNzZXQgPSBuZXcgQXNzZXQoKTtcbiAqICAgICBhc3NldC5pZCA9IGlkO1xuICogICAgIGFzc2V0LmRhdGEgPSBkYXRhO1xuICpcbiAqICAgICBhd2FpdCB0aGlzLnJlcG9zaXRvcnkuY3JlYXRlKGFzc2V0LCB7IHN0dWI6IGN0eC5zdHViIH0pO1xuICogICB9XG4gKiB9XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgQ29udHJhY3RcbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBBZGFwdGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0YXRlREJcbiAqXG4gKiAgIENvbnRyYWN0LT4+UmVwb3NpdG9yeTogY3JlYXRlKG1vZGVsLCBjdHgpXG4gKiAgIFJlcG9zaXRvcnktPj5BZGFwdGVyOiBwcmVwYXJlKG1vZGVsLCBwaylcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IGNyZWF0ZSh0YWJsZU5hbWUsIGlkLCByZWNvcmQsIHRyYW5zaWVudCwgY3R4KVxuICogICBBZGFwdGVyLT4+U3RhdGVEQjogcHV0U3RhdGUoaWQsIHNlcmlhbGl6ZWREYXRhKVxuICogICBTdGF0ZURCLS0+PkFkYXB0ZXI6IFN1Y2Nlc3NcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiByZWNvcmRcbiAqICAgUmVwb3NpdG9yeS0+PkFkYXB0ZXI6IHJldmVydChyZWNvcmQsIGNsYXNzLCBwaywgaWQsIHRyYW5zaWVudClcbiAqICAgQWRhcHRlci0tPj5SZXBvc2l0b3J5OiBtb2RlbFxuICogICBSZXBvc2l0b3J5LS0+PkNvbnRyYWN0OiBtb2RlbFxuICovXG5leHBvcnQgY2xhc3MgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5IGV4dGVuZHMgUmVwb3NpdG9yeSB7XG4gICAgY29uc3RydWN0b3IoYWRhcHRlciwgY2xhenosIG9taXR0ZWRFdmVudHMpIHtcbiAgICAgICAgc3VwZXIoYWRhcHRlciwgY2xhenopO1xuICAgICAgICB0aGlzLm9taXR0ZWRFdmVudHMgPSBvbWl0dGVkRXZlbnRzO1xuICAgICAgICB0aGlzLl9vdmVycmlkZXMgPSBPYmplY3QuYXNzaWduKHt9LCBzdXBlcltcIl9vdmVycmlkZXNcIl0sIHtcbiAgICAgICAgICAgIGlnbm9yZVZhbGlkYXRpb246IGZhbHNlLFxuICAgICAgICAgICAgaWdub3JlSGFuZGxlcnM6IGZhbHNlLFxuICAgICAgICAgICAgYWxsb3dSYXdTdGF0ZW1lbnRzOiB0cnVlLFxuICAgICAgICAgICAgZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllczogZmFsc2UsXG4gICAgICAgICAgICBmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllczogZmFsc2UsXG4gICAgICAgICAgICByZWJ1aWxkV2l0aFRyYW5zaWVudDogZmFsc2UsXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBhc3luYyBjcmVhdGUobW9kZWwsIC4uLmFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGUpO1xuICAgICAgICBsb2cuZGVidWcoYENyZWF0aW5nIG5ldyAke3RoaXMuY2xhc3MubmFtZX0gaW4gdGFibGUgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9YCk7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3RcbiAgICAgICAgbGV0IHsgcmVjb3JkLCBpZCwgdHJhbnNpZW50LCBzZWdyZWdhdGVkIH0gPSB0aGlzLmFkYXB0ZXIucHJlcGFyZShtb2RlbCwgbW9kZWxbdGhpcy5wa10sIGN0eCk7XG4gICAgICAgIGlmIChzZWdyZWdhdGVkKVxuICAgICAgICAgICAgY3R4LnB1dChcInNlZ3JlZ2F0ZWREYXRhXCIsIHNlZ3JlZ2F0ZWQpO1xuICAgICAgICByZWNvcmQgPSBhd2FpdCB0aGlzLmFkYXB0ZXIuY3JlYXRlKHRoaXMuY2xhc3MsIGlkLCByZWNvcmQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdGhpcy5hZGFwdGVyLnJldmVydChyZWNvcmQgfHwge30sIHRoaXMuY2xhc3MsIGlkLCB0cmFuc2llbnQsIGN0eCk7XG4gICAgfVxuICAgIGFzeW5jIGNyZWF0ZUFsbChtb2RlbHMsIC4uLmFyZ3MpIHtcbiAgICAgICAgaWYgKCFtb2RlbHMubGVuZ3RoKVxuICAgICAgICAgICAgcmV0dXJuIG1vZGVscztcbiAgICAgICAgY29uc3QgeyBjdHgsIGxvZywgY3R4QXJncyB9ID0gdGhpcy5sb2dDdHgoYXJncywgdGhpcy5jcmVhdGVBbGwpO1xuICAgICAgICBsb2cuZGVidWcoYENyZWF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICAgICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICAgICAgbGV0IHJlY29yZHMgPSBwcmVwYXJlZC5tYXAoKHApID0+IHAucmVjb3JkKTtcbiAgICAgICAgY29uc3Qgc2VncmVnYXRlZCA9IHByZXBhcmVkLnJlZHVjZSgoYWNjLCBwKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2xzID0gT2JqZWN0LmtleXMocC5zZWdyZWdhdGVkIHx8IHt9KTtcbiAgICAgICAgICAgIGNvbHMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgIGFjY1tjXSA9IGFjY1tjXSB8fCB7fTtcbiAgICAgICAgICAgICAgICBhY2NbY10gPSB7IC4uLmFjY1tjXSwgLi4uKHAuc2VncmVnYXRlZCB8fCB7fSlbY10gfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgICAgICBpZiAoT2JqZWN0LmtleXMoc2VncmVnYXRlZCkubGVuZ3RoKSB7XG4gICAgICAgICAgICBjdHgucHV0KFwic2VncmVnYXRlZERhdGFcIiwgc2VncmVnYXRlZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmVjb3JkcyA9IGF3YWl0IHRoaXMuYWRhcHRlci5jcmVhdGVBbGwodGhpcy5jbGFzcywgaWRzLCByZWNvcmRzLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHJlY29yZHMubWFwKChyLCBpKSA9PiB0aGlzLmFkYXB0ZXIucmV2ZXJ0KHIsIHRoaXMuY2xhc3MsIGlkc1tpXSwgcHJlcGFyZWRbaV0udHJhbnNpZW50LCBjdHgpKTtcbiAgICB9XG4gICAgYXN5bmMgdXBkYXRlKG1vZGVsLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4QXJncywgbG9nLCBjdHggfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdFxuICAgICAgICBsZXQgeyByZWNvcmQsIGlkLCB0cmFuc2llbnQsIHNlZ3JlZ2F0ZWQgfSA9IHRoaXMuYWRhcHRlci5wcmVwYXJlKG1vZGVsLCBjdHgpO1xuICAgICAgICBsb2cuZGVidWcoYHVwZGF0aW5nICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX0gd2l0aCBpZCAke2lkfWApO1xuICAgICAgICBpZiAoc2VncmVnYXRlZClcbiAgICAgICAgICAgIGN0eC5wdXQoXCJzZWdyZWdhdGVkRGF0YVwiLCBzZWdyZWdhdGVkKTtcbiAgICAgICAgcmVjb3JkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZSh0aGlzLmNsYXNzLCBpZCwgcmVjb3JkLCAuLi5jdHhBcmdzKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRhcHRlci5yZXZlcnQocmVjb3JkLCB0aGlzLmNsYXNzLCBpZCwgdHJhbnNpZW50LCBjdHgpO1xuICAgIH1cbiAgICBhc3luYyB1cGRhdGVBbGwobW9kZWxzLCAuLi5hcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgY3R4LCBsb2csIGN0eEFyZ3MgfSA9IHRoaXMubG9nQ3R4KGFyZ3MsIHRoaXMudXBkYXRlQWxsKTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYFVwZGF0aW5nICR7bW9kZWxzLmxlbmd0aH0gbmV3ICR7dGhpcy5jbGFzcy5uYW1lfSBpbiB0YWJsZSAke01vZGVsLnRhYmxlTmFtZSh0aGlzLmNsYXNzKX1gKTtcbiAgICAgICAgY29uc3QgcHJlcGFyZWQgPSBtb2RlbHMubWFwKChtKSA9PiB0aGlzLmFkYXB0ZXIucHJlcGFyZShtLCBjdHgpKTtcbiAgICAgICAgY29uc3QgaWRzID0gcHJlcGFyZWQubWFwKChwKSA9PiBwLmlkKTtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IHByZXBhcmVkLm1hcCgocCkgPT4gcC5yZWNvcmQpO1xuICAgICAgICBjb25zdCBzZWdyZWdhdGVkID0gcHJlcGFyZWQucmVkdWNlKChhY2MsIHApID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHMgPSBPYmplY3Qua2V5cyhwLnNlZ3JlZ2F0ZWQgfHwge30pO1xuICAgICAgICAgICAgY29scy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICAgICAgYWNjW2NdID0gYWNjW2NdIHx8IHt9O1xuICAgICAgICAgICAgICAgIGFjY1tjXSA9IHsgLi4uYWNjW2NdLCAuLi4ocC5zZWdyZWdhdGVkIHx8IHt9KVtjXSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCB7fSk7XG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhzZWdyZWdhdGVkKS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGN0eC5wdXQoXCJzZWdyZWdhdGVkRGF0YVwiLCBzZWdyZWdhdGVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB1cGRhdGVkID0gYXdhaXQgdGhpcy5hZGFwdGVyLnVwZGF0ZUFsbCh0aGlzLmNsYXNzLCBpZHMsIHJlY29yZHMsIC4uLmN0eEFyZ3MpO1xuICAgICAgICByZXR1cm4gdXBkYXRlZC5tYXAoKHUsIGkpID0+IHRoaXMuYWRhcHRlci5yZXZlcnQodSwgdGhpcy5jbGFzcywgaWRzW2ldLCBwcmVwYXJlZFtpXS50cmFuc2llbnQsIGN0eCkpO1xuICAgIH1cbiAgICBhc3luYyBsaXN0Qnkoa2V5LCBvcmRlciwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncyB9ID0gKGF3YWl0IHRoaXMubG9nQ3R4KGFyZ3MsIFByZXBhcmVkU3RhdGVtZW50S2V5cy5MSVNUX0JZLCB0cnVlKSkuZm9yKHRoaXMubGlzdEJ5KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYGxpc3RpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IGJ5ICR7a2V5fSAke29yZGVyfWApO1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3QoKVxuICAgICAgICAgICAgLm9yZGVyQnkoW2tleSwgb3JkZXJdKVxuICAgICAgICAgICAgLmV4ZWN1dGUoLi4uY3R4QXJncyk7XG4gICAgfVxuICAgIGFzeW5jIHBhZ2luYXRlQnkoa2V5LCBvcmRlciwgcmVmID0ge1xuICAgICAgICBvZmZzZXQ6IDEsXG4gICAgICAgIGxpbWl0OiAxMCxcbiAgICB9LCAuLi5hcmdzKSB7XG4gICAgICAgIHJlZi5vZmZzZXQgPSByZWYub2Zmc2V0IHx8IDE7XG4gICAgICAgIHJlZi5saW1pdCA9IHJlZi5saW1pdCB8fCAxMDtcbiAgICAgICAgY29uc3QgeyBvZmZzZXQsIGJvb2ttYXJrLCBsaW1pdCB9ID0gcmVmO1xuICAgICAgICBpZiAoIW9mZnNldCAmJiAhYm9va21hcmspXG4gICAgICAgICAgICB0aHJvdyBuZXcgUXVlcnlFcnJvcihgUGFnaW5hdGVCeSBuZWVkcyBhIHBhZ2Ugb3IgYSBib29rbWFya2ApO1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4QXJncywgY3R4IH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUHJlcGFyZWRTdGF0ZW1lbnRLZXlzLlBBR0VfQlksIHRydWUpKS5mb3IodGhpcy5wYWdpbmF0ZUJ5KTtcbiAgICAgICAgbG9nLnZlcmJvc2UoYHBhZ2luYXRpbmcgJHtNb2RlbC50YWJsZU5hbWUodGhpcy5jbGFzcyl9IHdpdGggcGFnZSBzaXplICR7bGltaXR9YCk7XG4gICAgICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjdHguaWRlbnRpdHkpO1xuICAgICAgICBjb25zdCB7IHByaXZhdGVDb2xzLCBzaGFyZWRDb2xzIH0gPSBNb2RlbC5jb2xsZWN0aW9uc0Zvcih0aGlzLmNsYXNzKTtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbnMgPSBbXG4gICAgICAgICAgICAuLi5uZXcgU2V0KGF3YWl0IFByb21pc2UuYWxsKFsuLi5wcml2YXRlQ29scywgLi4uc2hhcmVkQ29sc10ubWFwKChjKSA9PiB0eXBlb2YgYyA9PT0gXCJzdHJpbmdcIiA/IGMgOiBjKHRoaXMuY2xhc3MsIG1zcCwgY3R4KSkpKSxcbiAgICAgICAgXTtcbiAgICAgICAgYXBwbHlTZWdyZWdhdGlvbkZsYWdzKG5ldyB0aGlzLmNsYXNzKCksIGNvbGxlY3Rpb25zLCBjdHgpO1xuICAgICAgICBhd2FpdCBhcHBseU1pcnJvckZsYWdzKHRoaXMuY2xhc3MsIG1zcCwgY3R4KTtcbiAgICAgICAgbGV0IHBhZ2luYXRvcjtcbiAgICAgICAgaWYgKG9mZnNldCAmJiBib29rbWFyaykge1xuICAgICAgICAgICAgcGFnaW5hdG9yID0gYXdhaXQgdGhpcy5vdmVycmlkZSh7XG4gICAgICAgICAgICAgICAgZm9yY2VQcmVwYXJlQ29tcGxleFF1ZXJpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGZvcmNlUHJlcGFyZVNpbXBsZVF1ZXJpZXM6IGZhbHNlLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuc2VsZWN0KClcbiAgICAgICAgICAgICAgICAub3JkZXJCeShba2V5LCBvcmRlcl0pXG4gICAgICAgICAgICAgICAgLnBhZ2luYXRlKGxpbWl0LCBib29rbWFyaywgLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAob2Zmc2V0KSB7XG4gICAgICAgICAgICBwYWdpbmF0b3IgPSBhd2FpdCB0aGlzLm92ZXJyaWRlKHtcbiAgICAgICAgICAgICAgICBmb3JjZVByZXBhcmVDb21wbGV4UXVlcmllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgZm9yY2VQcmVwYXJlU2ltcGxlUXVlcmllczogZmFsc2UsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5zZWxlY3QoKVxuICAgICAgICAgICAgICAgIC5vcmRlckJ5KFtrZXksIG9yZGVyXSlcbiAgICAgICAgICAgICAgICAucGFnaW5hdGUobGltaXQsIC4uLmN0eEFyZ3MpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYFBhZ2luYXRlQnkgbmVlZHMgYSBwYWdlIG9yIGEgYm9va21hcmtgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwYWdlZCA9IGF3YWl0IHBhZ2luYXRvci5wYWdlKG9mZnNldCwgYm9va21hcmssIC4uLmN0eEFyZ3MpO1xuICAgICAgICBjb25zdCB0b3RhbENvdW50ID0gYXdhaXQgY291bnRTdG9yZWRFbnRyaWVzKGN0eCwgdGhpcy5jbGFzcyk7XG4gICAgICAgIGlmICh0eXBlb2YgdG90YWxDb3VudCA9PT0gXCJudW1iZXJcIikge1xuICAgICAgICAgICAgcGFnaW5hdG9yLl9yZWNvcmRDb3VudCA9IHRvdGFsQ291bnQ7XG4gICAgICAgICAgICBwYWdpbmF0b3IuX3RvdGFsUGFnZXMgPSBNYXRoLm1heCgxLCBNYXRoLmNlaWwodG90YWxDb3VudCAvIGxpbWl0KSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2VyaWFsaXphdGlvbiA9IHBhZ2luYXRvci5zZXJpYWxpemUocGFnZWQpO1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuUEFHRV9ERUJVRykge1xuICAgICAgICAgICAgYXBwZW5kRmlsZVN5bmMoXCIvdG1wL2ZhYnJpYy1wYWdpbmF0ZS5sb2dcIiwgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmFzc2lnbih7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgICAgIG9yZGVyLFxuICAgICAgICAgICAgICAgIHJlZixcbiAgICAgICAgICAgIH0sIHNlcmlhbGl6YXRpb24pKSArIFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzZXJpYWxpemF0aW9uO1xuICAgIH1cbiAgICBhc3luYyBzdGF0ZW1lbnQobmFtZSwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4LCBjdHhBcmdzIH0gPSAoYXdhaXQgdGhpcy5sb2dDdHgoYXJncywgUGVyc2lzdGVuY2VLZXlzLlNUQVRFTUVOVCwgdHJ1ZSkpLmZvcih0aGlzLnN0YXRlbWVudCk7XG4gICAgICAgIGlmICghUmVwb3NpdG9yeS5zdGF0ZW1lbnRzKHRoaXMsIG5hbWUpKVxuICAgICAgICAgICAgdGhyb3cgbmV3IFF1ZXJ5RXJyb3IoYEludmFsaWQgcHJlcGFyZWQgc3RhdGVtZW50IHJlcXVlc3RlZCAke25hbWV9YCk7XG4gICAgICAgIGlmIChjdHgubG9nZ2VyKSB7XG4gICAgICAgICAgICBjdHgubG9nZ2VyLmluZm8oYFJlcG8gc3RhdGVtZW50OiAke25hbWV9ICsgJHthcmdzfWApO1xuICAgICAgICB9XG4gICAgICAgIGxvZy52ZXJib3NlKGBFeGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX0gd2l0aCBhcmdzICR7Y3R4QXJnc31gKTtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXNbbmFtZV0oLi4uY3R4QXJncyk7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgQmFzZUVycm9yKVxuICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihgRmFpbGVkIHRvIGV4ZWN1dGUgcHJlcGFyZWQgc3RhdGVtZW50ICR7bmFtZX0gd2l0aCBhcmdzICR7Y3R4QXJnc306ICR7ZX1gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gR2V0cyB0aGUgb2JzZXJ2ZXIgaGFuZGxlciBmb3IgdGhpcyByZXBvc2l0b3J5XG4gICAgICogQHN1bW1hcnkgUmV0dXJucyBhIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIGluc3RhbmNlXG4gICAgICogQHJldHVybiB7T2JzZXJ2ZXJIYW5kbGVyfSBUaGUgb2JzZXJ2ZXIgaGFuZGxlclxuICAgICAqL1xuICAgIE9ic2VydmVySGFuZGxlcigpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlcigpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBvYnNlcnZlcnMgYmFzZWQgb24gdHJhY2tlZCBldmVudHNcbiAgICAgKiBAc3VtbWFyeSBGaWx0ZXJzIGV2ZW50cyBiYXNlZCBvbiB0cmFja2VkRXZlbnRzIGFuZCBkZWxlZ2F0ZXMgdG8gdGhlIHBhcmVudCBtZXRob2RcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdGFibGUgLSBUaGUgdGFibGUvY29sbGVjdGlvbiBuYW1lXG4gICAgICogQHBhcmFtIHtPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nfSBldmVudCAtIFRoZSBldmVudCB0eXBlXG4gICAgICogQHBhcmFtIHtFdmVudElkc30gaWQgLSBUaGUgZXZlbnQgaWRlbnRpZmllclxuICAgICAqIEBwYXJhbSB7RmFicmljQ29udHJhY3RDb250ZXh0fSBjdHggLSBUaGUgRmFicmljIGNvbnRyYWN0IGNvbnRleHRcbiAgICAgKiBAcGFyYW0gey4uLmFueVtdfSBhcmdzIC0gQWRkaXRpb25hbCBhcmd1bWVudHNcbiAgICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fSBQcm9taXNlIHRoYXQgcmVzb2x2ZXMgd2hlbiBvYnNlcnZlcnMgYXJlIHVwZGF0ZWRcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgLi4uYXJncykge1xuICAgICAgICBpZiAoIXRoaXMub21pdHRlZEV2ZW50cyB8fCAhdGhpcy5vbWl0dGVkRXZlbnRzLmluY2x1ZGVzKGV2ZW50KSlcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBzdXBlci51cGRhdGVPYnNlcnZlcnModGFibGUsIGV2ZW50LCBpZCwgLi4uYXJncyk7XG4gICAgfVxuICAgIGxvZ0N0eChhcmdzLCBvcGVyYXRpb24sIGFsbG93Q3JlYXRlLCBvdmVycmlkZXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gc3VwZXIubG9nQ3R4KGFyZ3MsIG9wZXJhdGlvbiwgYWxsb3dDcmVhdGUsIG92ZXJyaWRlcyk7XG4gICAgICAgIHJldHVybiB0aGlzLmNsZWFuQ29udGV4dHVhbGl6ZWRBcmdzKHJlc3VsdCk7XG4gICAgfVxuICAgIGNsZWFuQ29udGV4dHVhbGl6ZWRBcmdzKGFyZ3MpIHtcbiAgICAgICAgaWYgKGFyZ3MgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJncy50aGVuKChjdHhBcmdzKSA9PiB0aGlzLmFwcGx5Q2xlYW5Db250ZXh0KGN0eEFyZ3MpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5hcHBseUNsZWFuQ29udGV4dChhcmdzKTtcbiAgICB9XG4gICAgYXBwbHlDbGVhbkNvbnRleHQoY3R4QXJncykge1xuICAgICAgICB0aGlzLmNsZWFuQ29udGV4dChjdHhBcmdzLmN0eCk7XG4gICAgICAgIHJldHVybiBjdHhBcmdzO1xuICAgIH1cbiAgICBjbGVhbkNvbnRleHQoY3R4KSB7XG4gICAgICAgIGN0eC5wdXQoXCJzZWdyZWdhdGVkXCIsIHVuZGVmaW5lZCk7XG4gICAgICAgIGN0eC5wdXQoXCJhbGxvd0dhdGV3YXlPdmVycmlkZVwiLCB1bmRlZmluZWQpO1xuICAgICAgICByZXR1cm4gY3R4O1xuICAgIH1cbn1cbmFzeW5jIGZ1bmN0aW9uIGNvdW50U3RvcmVkRW50cmllcyhjdHgsIGNsYXp6KSB7XG4gICAgY29uc3Qgc3R1YiA9IGN0eD8uc3R1YjtcbiAgICBpZiAoIXN0dWIpXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGFibGUgPSBNb2RlbC50YWJsZU5hbWUoY2xhenopO1xuICAgIGNvbnN0IHByZWZpeCA9IGAke3RhYmxlfV9gO1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0KCk7XG4gICAgaWYgKHR5cGVvZiBzdHViLmdldFN0YXRlQnlQYXJ0aWFsQ29tcG9zaXRlS2V5ID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgY29uc3QgaXRlcmF0b3IgPSBhd2FpdCBzdHViLmdldFN0YXRlQnlQYXJ0aWFsQ29tcG9zaXRlS2V5KHRhYmxlLCBbXSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGl0ZXJhdG9yLm5leHQoKTtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0Py5kb25lKVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSByZXN1bHQ/LnZhbHVlPy5rZXk7XG4gICAgICAgICAgICAgICAgaWYgKGtleSAmJiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlZW4uYWRkKGtleSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgaWYgKGl0ZXJhdG9yICYmIHR5cGVvZiBpdGVyYXRvci5jbG9zZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgaXRlcmF0b3IuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAoc3R1Yi5zdGF0ZSkge1xuICAgICAgICBPYmplY3Qua2V5cyhzdHViLnN0YXRlKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiBrZXkuc3RhcnRzV2l0aChwcmVmaXgpKVxuICAgICAgICAgICAgLmZvckVhY2goKGtleSkgPT4gc2Vlbi5hZGQoa2V5KSk7XG4gICAgfVxuICAgIGNvbnN0IHsgcHJpdmF0ZUNvbHMsIHNoYXJlZENvbHMgfSA9IE1vZGVsLmNvbGxlY3Rpb25zRm9yKGNsYXp6KTtcbiAgICBjb25zdCByZXNvbHZlcnMgPSBbLi4ucHJpdmF0ZUNvbHMsIC4uLnNoYXJlZENvbHNdO1xuICAgIGlmIChyZXNvbHZlcnMubGVuZ3RoICYmIHN0dWIucHJpdmF0ZVN0YXRlKSB7XG4gICAgICAgIGNvbnN0IG1zcCA9IGV4dHJhY3RNc3BJZChjdHguaWRlbnRpdHkpO1xuICAgICAgICBjb25zdCBjb2xsZWN0aW9ucyA9IGF3YWl0IFByb21pc2UuYWxsKHJlc29sdmVycy5tYXAoKHJlc29sdmVyKSA9PiB0eXBlb2YgcmVzb2x2ZXIgPT09IFwic3RyaW5nXCIgPyByZXNvbHZlciA6IHJlc29sdmVyKGNsYXp6LCBtc3AsIGN0eCkpKTtcbiAgICAgICAgZm9yIChjb25zdCBjb2xsZWN0aW9uIG9mIGNvbGxlY3Rpb25zKSB7XG4gICAgICAgICAgICBjb25zdCBlbnRyaWVzID0gc3R1Yi5wcml2YXRlU3RhdGVbY29sbGVjdGlvbl07XG4gICAgICAgICAgICBpZiAoIWVudHJpZXMpXG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICBPYmplY3Qua2V5cyhlbnRyaWVzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ga2V5LnN0YXJ0c1dpdGgocHJlZml4KSlcbiAgICAgICAgICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiBzZWVuLmFkZChrZXkpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc2Vlbi5zaXplID8gc2Vlbi5zaXplIDogdW5kZWZpbmVkO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVMbXB6SWl3aWMyOTFjbU5sVW05dmRDSTZJaUlzSW5OdmRYSmpaWE1pT2xzaUxpNHZMaTR2TGk0dmMzSmpMMk52Ym5SeVlXTjBjeTlHWVdKeWFXTkRiMjUwY21GamRGSmxjRzl6YVhSdmNua3VkSE1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc2QwSkJRWEZDTzBGQlEzSkNMRTlCUVU4c1JVRkRUQ3hWUVVGVkxFVkJTMVlzVlVGQlZTeEZRVU5XTEdWQlFXVXNSVUZEWml4eFFrRkJjVUlzUjBGUGRFSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVVY0UWl4UFFVRlBMRVZCUVVVc1MwRkJTeXhGUVVGRkxFMUJRVTBzWjBOQlFXZERMRU5CUVVNN1FVRkRka1FzVDBGQlR5eEZRVUZGTEhsRFFVRjVReXhGUVVGRkxIVkVRVUZ2UkR0QlFVTjRSeXhQUVVGUExFVkJRMHdzVTBGQlV5eEZRVVZVTEdGQlFXRXNSMEZIWkN4TlFVRk5MSGxDUVVGNVFpeERRVUZETzBGQlNXcERMRTlCUVU4c1JVRkRUQ3huUWtGQlowSXNSVUZEYUVJc2NVSkJRWEZDTEVWQlEzSkNMRmxCUVZrc1IwRkRZaXhyUTBGQk5rSTdRVUZET1VJc1QwRkJUeXhGUVVGRkxHTkJRV01zUlVGQlJTeE5RVUZOTEVsQlFVa3NRMEZCUXp0QlFVVndRenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCSzBSSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhkQ1FVRXdReXhUUVVGUkxGVkJSemxFTzBsQlZVTXNXVUZEUlN4UFFVRXJRaXhGUVVNdlFpeExRVUZ6UWl4RlFVTmFMR0ZCUVd0Rk8xRkJSVFZGTEV0QlFVc3NRMEZCUXl4UFFVRlBMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03VVVGR1dpeHJRa0ZCWVN4SFFVRmlMR0ZCUVdFc1EwRkJjVVE3VVVGYU0wUXNaVUZCVlN4SFFVRkhMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRVU1zUlVGQlJTeEZRVUZGTEV0QlFVc3NRMEZCUXl4WlFVRlpMRU5CUVVNc1JVRkJSVHRaUVVOeVJTeG5Ra0ZCWjBJc1JVRkJSU3hMUVVGTE8xbEJRM1pDTEdOQlFXTXNSVUZCUlN4TFFVRkxPMWxCUTNKQ0xHdENRVUZyUWl4RlFVRkZMRWxCUVVrN1dVRkRlRUlzZVVKQlFYbENMRVZCUVVVc1MwRkJTenRaUVVOb1F5d3dRa0ZCTUVJc1JVRkJSU3hMUVVGTE8xbEJRMnBETEc5Q1FVRnZRaXhGUVVGRkxFdEJRVXM3VTBGRE5VSXNRMEZCUXl4RFFVRkRPMGxCVVVnc1EwRkJRenRKUVVWUkxFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlEyNUNMRXRCUVZFc1JVRkRVaXhIUVVGSExFbEJRU3RETzFGQlJXeEVMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRSUVVNM1JDeEhRVUZITEVOQlFVTXNTMEZCU3l4RFFVTlFMR2RDUVVGblFpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRWxCUVVrc1lVRkJZU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1JVRkJSU3hEUVVNeFJTeERRVUZETzFGQlEwWXNkME5CUVhkRE8xRkJRM2hETEVsQlFVa3NSVUZCUlN4TlFVRk5MRVZCUVVVc1JVRkJSU3hGUVVGRkxGTkJRVk1zUlVGQlJTeFZRVUZWTEVWQlFVVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFOUJRVThzUTBGRE9VUXNTMEZCU3l4RlFVTk1MRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZSTEVWQlEzSkNMRWRCUVVjc1EwRkRTaXhEUVVGRE8xRkJRMFlzU1VGQlNTeFZRVUZWTzFsQlFVVXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4VlFVRlZMRU5CUVVNc1EwRkJRenRSUVVOMFJDeE5RVUZOTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRVZCUVVVc1JVRkJSU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eFBRVUZQTEVOQlFVTXNRMEZCUXp0UlFVTjJSU3hQUVVGUExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkpMRTFCUVUwc1NVRkJTU3hGUVVGRkxFVkJRVVVzU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRVZCUVVVc1UwRkJVeXhGUVVGRkxFZEJRVWNzUTBGQlF5eERRVUZETzBsQlF6bEZMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zVTBGQlV5eERRVU4wUWl4TlFVRlhMRVZCUTFnc1IwRkJSeXhKUVVFclF6dFJRVVZzUkN4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFMUJRVTA3V1VGQlJTeFBRVUZQTEUxQlFVMHNRMEZCUXp0UlFVTnNReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlN4UFFVRlBMRVZCUVVVc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFTkJRVU03VVVGRGFFVXNSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkRVQ3haUVVGWkxFMUJRVTBzUTBGQlF5eE5RVUZOTEZGQlFWRXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxHRkJRV0VzUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVVzUTBGRE0wWXNRMEZCUXp0UlFVVkdMRTFCUVUwc1VVRkJVU3hIUVVGSExFMUJRVTBzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1JVRkJSU3hIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETzFGQlEycEZMRTFCUVUwc1IwRkJSeXhIUVVGSExGRkJRVkVzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1JVRkJSU3hEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVOQlFVTXNRMEZCUXp0UlFVTjBReXhKUVVGSkxFOUJRVThzUjBGQlJ5eFJRVUZSTEVOQlFVTXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGQlF5eERRVUZETEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1VVRkROVU1zVFVGQlRTeFZRVUZWTEVkQlFVY3NVVUZCVVN4RFFVRkRMRTFCUVUwc1EwRkRhRU1zUTBGQlF5eEhRVUZITEVWQlFVVXNRMEZCUXl4RlFVRkZMRVZCUVVVN1dVRkRWQ3hOUVVGTkxFbEJRVWtzUjBGQlJ5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTTdXVUZETjBNc1NVRkJTU3hEUVVGRExFOUJRVThzUTBGQlF5eERRVUZETEVOQlFVTXNSVUZCUlN4RlFVRkZPMmRDUVVOcVFpeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRWRCUVVjc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEpRVUZKTEVWQlFVVXNRMEZCUXp0blFrRkRkRUlzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1IwRkJSeXhIUVVGSExFTkJRVU1zUTBGQlF5eERRVUZETEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJRenRaUVVOeVJDeERRVUZETEVOQlFVTXNRMEZCUXp0WlFVTklMRTlCUVU4c1IwRkJSeXhEUVVGRE8xRkJRMklzUTBGQlF5eEZRVU5FTEVWQlFYbENMRU5CUXpGQ0xFTkJRVU03VVVGRFJpeEpRVUZKTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU1zVFVGQlRTeEZRVUZGTEVOQlFVTTdXVUZEYmtNc1IwRkJSeXhEUVVGRExFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1JVRkJSU3hWUVVGVkxFTkJRVU1zUTBGQlF6dFJRVU40UXl4RFFVRkRPMUZCUTBRc1QwRkJUeXhIUVVGSExFMUJRVTBzU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4VFFVRlRMRU5CUTNCRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlExWXNSMEZCZFVJc1JVRkRka0lzVDBGQlR5eEZRVU5RTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGRE1VSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlEzWkZMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1MwRkJVU3hGUVVOU0xFZEJRVWNzU1VGQkswTTdVVUZGYkVRc1RVRkJUU3hGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRemRFTEhkRFFVRjNRenRSUVVONFF5eEpRVUZKTEVWQlFVVXNUVUZCVFN4RlFVRkZMRVZCUVVVc1JVRkJSU3hUUVVGVExFVkJRVVVzVlVGQlZTeEZRVUZGTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhQUVVGUExFTkJRemxFTEV0QlFVc3NSVUZEVEN4SFFVRkhMRU5CUTBvc1EwRkJRenRSUVVOR0xFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlExQXNXVUZCV1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzWVVGQllTeExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zV1VGQldTeEZRVUZGTEVWQlFVVXNRMEZEY0VZc1EwRkJRenRSUVVOR0xFbEJRVWtzVlVGQlZUdFpRVUZGTEVkQlFVY3NRMEZCUXl4SFFVRkhMRU5CUVVNc1owSkJRV2RDTEVWQlFVVXNWVUZCVlN4RFFVRkRMRU5CUVVNN1VVRkRkRVFzVFVGQlRTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRVZCUVVVc1RVRkJUU3hGUVVGRkxFZEJRVWNzVDBGQlR5eERRVUZETEVOQlFVTTdVVUZEZGtVc1QwRkJUeXhKUVVGSkxFTkJRVU1zVDBGQlR5eERRVUZETEUxQlFVMHNRMEZCU1N4TlFVRk5MRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeEZRVUZGTEVWQlFVVXNVMEZCVXl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVGRE8wbEJRM2hGTEVOQlFVTTdTVUZGVVN4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVOMFFpeE5RVUZYTEVWQlExZ3NSMEZCUnl4SlFVRXJRenRSUVVWc1JDeE5RVUZOTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdVVUZEYUVVc1IwRkJSeXhEUVVGRExFOUJRVThzUTBGRFZDeFpRVUZaTEUxQlFVMHNRMEZCUXl4TlFVRk5MRkZCUVZFc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEpRVUZKTEdGQlFXRXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVWQlFVVXNRMEZETTBZc1EwRkJRenRSUVVWR0xFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVsQlFVa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRPMUZCUTJwRkxFMUJRVTBzUjBGQlJ5eEhRVUZITEZGQlFWRXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXl4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOMFF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4UlFVRlJMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEVWQlFVVXNRMEZCUXl4RFFVRkRMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03VVVGRE9VTXNUVUZCVFN4VlFVRlZMRWRCUVVjc1VVRkJVU3hEUVVGRExFMUJRVTBzUTBGRGFFTXNRMEZCUXl4SFFVRkhMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVU3V1VGRFZDeE5RVUZOTEVsQlFVa3NSMEZCUnl4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1dVRkROME1zU1VGQlNTeERRVUZETEU5QlFVOHNRMEZCUXl4RFFVRkRMRU5CUVVNc1JVRkJSU3hGUVVGRk8yZENRVU5xUWl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFZEJRVWNzUjBGQlJ5eERRVUZETEVOQlFVTXNRMEZCUXl4SlFVRkpMRVZCUVVVc1EwRkJRenRuUWtGRGRFSXNSMEZCUnl4RFFVRkRMRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUjBGQlJ5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUTBGQlF6dFpRVU55UkN4RFFVRkRMRU5CUVVNc1EwRkJRenRaUVVOSUxFOUJRVThzUjBGQlJ5eERRVUZETzFGQlEySXNRMEZCUXl4RlFVTkVMRVZCUVhsQ0xFTkJRekZDTEVOQlFVTTdVVUZEUml4SlFVRkpMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zVlVGQlZTeERRVUZETEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRia01zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUlVGQlJTeFZRVUZWTEVOQlFVTXNRMEZCUXp0UlFVTjRReXhEUVVGRE8xRkJSVVFzVFVGQlRTeFBRVUZQTEVkQlFVY3NUVUZCVFN4SlFVRkpMRU5CUVVNc1QwRkJUeXhEUVVGRExGTkJRVk1zUTBGRE1VTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1JVRkRWaXhIUVVGSExFVkJRMGdzVDBGQlR5eEZRVU5RTEVkQlFVY3NUMEZCVHl4RFFVTllMRU5CUVVNN1VVRkRSaXhQUVVGUExFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXl4RFFVRkRMRVZCUVVVc1EwRkJReXhGUVVGRkxFVkJRVVVzUTBGRE1VSXNTVUZCU1N4RFFVRkRMRTlCUVU4c1EwRkJReXhOUVVGTkxFTkJRVU1zUTBGQlF5eEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRVZCUVVVc1IwRkJSeXhEUVVGRExFTkJRVU1zUTBGQlF5eEZRVUZGTEZGQlFWRXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhUUVVGVExFVkJRVVVzUjBGQlJ5eERRVUZETEVOQlEzWkZMRU5CUVVNN1NVRkRTaXhEUVVGRE8wbEJSVkVzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZEYmtJc1IwRkJXU3hGUVVOYUxFdEJRWEZDTEVWQlEzSkNMRWRCUVVjc1NVRkJLME03VVVGRmJFUXNUVUZCVFN4RlFVRkZMRWRCUVVjc1JVRkJSU3hQUVVGUExFVkJRVVVzUjBGQlJ5eERRVU4yUWl4TlFVRk5MRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeEZRVUZGTEhGQ1FVRnhRaXhEUVVGRExFOUJRVThzUlVGQlJTeEpRVUZKTEVOQlFVTXNRMEZETjBRc1EwRkJReXhIUVVGSExFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMUZCUTI1Q0xFZEJRVWNzUTBGQlF5eFBRVUZQTEVOQlExUXNWMEZCVnl4TFFVRkxMRU5CUVVNc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNUMEZCVHl4SFFVRmhMRWxCUVVrc1MwRkJTeXhGUVVGRkxFTkJRM1JGTEVOQlFVTTdVVUZEUml4UFFVRlBMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVU3WVVGRGFrSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzJGQlEzSkNMRTlCUVU4c1EwRkJReXhIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzBsQlEzcENMRU5CUVVNN1NVRkZVU3hMUVVGTExFTkJRVU1zVlVGQlZTeERRVU4yUWl4SFFVRlpMRVZCUTFvc1MwRkJjVUlzUlVGRGNrSXNUVUZCSzBNN1VVRkROME1zVFVGQlRTeEZRVUZGTEVOQlFVTTdVVUZEVkN4TFFVRkxMRVZCUVVVc1JVRkJSVHRMUVVOV0xFVkJRMFFzUjBGQlJ5eEpRVUVyUXp0UlFVVnNSQ3hIUVVGSExFTkJRVU1zVFVGQlRTeEhRVUZITEVkQlFVY3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhEUVVGRE8xRkJRemRDTEVkQlFVY3NRMEZCUXl4TFFVRkxMRWRCUVVjc1IwRkJSeXhEUVVGRExFdEJRVXNzU1VGQlNTeEZRVUZGTEVOQlFVTTdVVUZETlVJc1RVRkJUU3hGUVVGRkxFMUJRVTBzUlVGQlJTeFJRVUZSTEVWQlFVVXNTMEZCU3l4RlFVRkZMRWRCUVVjc1IwRkJSeXhEUVVGRE8xRkJRM2hETEVsQlFVa3NRMEZCUXl4TlFVRk5MRWxCUVVrc1EwRkJReXhSUVVGUk8xbEJRM1JDTEUxQlFVMHNTVUZCU1N4VlFVRlZMRU5CUVVNc2RVTkJRWFZETEVOQlFVTXNRMEZCUXp0UlFVTm9SU3hOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEU5QlFVOHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhEUVVNMVFpeE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1NVRkJTU3hGUVVGRkxIRkNRVUZ4UWl4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRE4wUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFGQlEzWkNMRWRCUVVjc1EwRkJReXhQUVVGUExFTkJRMVFzWTBGQll5eExRVUZMTEVOQlFVTXNVMEZCVXl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zYlVKQlFXMUNMRXRCUVVzc1JVRkJSU3hEUVVOd1JTeERRVUZETzFGQlJVWXNUVUZCVFN4SFFVRkhMRWRCUVVjc1dVRkJXU3hEUVVGRExFZEJRVWNzUTBGQlF5eFJRVUZSTEVOQlFVTXNRMEZCUXp0UlFVTjJReXhOUVVGTkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEZWQlFWVXNSVUZCUlN4SFFVRkhMRXRCUVVzc1EwRkJReXhqUVVGakxFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMUZCUTNKRkxFMUJRVTBzVjBGQlZ5eEhRVUZITzFsQlEyeENMRWRCUVVjc1NVRkJTU3hIUVVGSExFTkJRMUlzVFVGQlRTeFBRVUZQTEVOQlFVTXNSMEZCUnl4RFFVTm1MRU5CUVVNc1IwRkJSeXhYUVVGWExFVkJRVVVzUjBGQlJ5eFZRVUZWTEVOQlFVTXNRMEZCUXl4SFFVRkhMRU5CUVVNc1EwRkJReXhEUVVGRExFVkJRVVVzUlVGQlJTeERRVU40UXl4UFFVRlBMRU5CUVVNc1MwRkJTeXhSUVVGUkxFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJReXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZMRWRCUVVjc1EwRkJReXhEUVVOd1JDeERRVU5HTEVOQlEwWTdVMEZEUml4RFFVRkRPMUZCUTBZc2NVSkJRWEZDTEVOQlFVTXNTVUZCU1N4SlFVRkpMRU5CUVVNc1MwRkJTeXhGUVVGRkxFVkJRVVVzVjBGQlZ5eEZRVUZGTEVkQlFVY3NRMEZCUXl4RFFVRkRPMUZCUXpGRUxFMUJRVTBzWjBKQlFXZENMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUlVGQlJTeEhRVUZITEVWQlFVVXNSMEZCUnl4RFFVRkRMRU5CUVVNN1VVRkZOME1zU1VGQlNTeFRRVUYxUWl4RFFVRkRPMUZCUXpWQ0xFbEJRVWtzVFVGQlRTeEpRVUZKTEZGQlFWRXNSVUZCUlN4RFFVRkRPMWxCUTNaQ0xGTkJRVk1zUjBGQlJ5eE5RVUZOTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNN1owSkJRemxDTERCQ1FVRXdRaXhGUVVGRkxFdEJRVXM3WjBKQlEycERMSGxDUVVGNVFpeEZRVUZGTEV0QlFVczdZVUZETVVJc1EwRkJRenRwUWtGRFRpeE5RVUZOTEVWQlFVVTdhVUpCUTFJc1QwRkJUeXhEUVVGRExFTkJRVU1zUjBGQlJ5eEZRVUZGTEV0QlFVc3NRMEZCUXl4RFFVRkRPMmxDUVVOeVFpeFJRVUZSTEVOQlFVTXNTMEZCWlN4RlFVRkZMRkZCUVZFc1JVRkJSU3hIUVVGSExFOUJRVThzUTBGQlF5eERRVUZETzFGQlEzSkVMRU5CUVVNN1lVRkJUU3hKUVVGSkxFMUJRVTBzUlVGQlJTeERRVUZETzFsQlEyeENMRk5CUVZNc1IwRkJSeXhOUVVGTkxFbEJRVWtzUTBGQlF5eFJRVUZSTEVOQlFVTTdaMEpCUXpsQ0xEQkNRVUV3UWl4RlFVRkZMRXRCUVVzN1owSkJRMnBETEhsQ1FVRjVRaXhGUVVGRkxFdEJRVXM3WVVGRE1VSXNRMEZCUXp0cFFrRkRUaXhOUVVGTkxFVkJRVVU3YVVKQlExSXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFdEJRVXNzUTBGQlF5eERRVUZETzJsQ1FVTnlRaXhSUVVGUkxFTkJRVU1zUzBGQlpTeEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRU5CUVVNN1VVRkRNME1zUTBGQlF6dGhRVUZOTEVOQlFVTTdXVUZEVGl4TlFVRk5MRWxCUVVrc1ZVRkJWU3hEUVVGRExIVkRRVUYxUXl4RFFVRkRMRU5CUVVNN1VVRkRhRVVzUTBGQlF6dFJRVU5FTEUxQlFVMHNTMEZCU3l4SFFVRkhMRTFCUVUwc1UwRkJVeXhEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVWQlFVVXNVVUZCVVN4RlFVRkZMRWRCUVVjc1QwRkJUeXhEUVVGRExFTkJRVU03VVVGRGFrVXNUVUZCVFN4VlFVRlZMRWRCUVVjc1RVRkJUU3hyUWtGQmEwSXNRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eERRVUZETzFGQlF6ZEVMRWxCUVVrc1QwRkJUeXhWUVVGVkxFdEJRVXNzVVVGQlVTeEZRVUZGTEVOQlFVTTdXVUZEYkVNc1UwRkJhVUlzUTBGQlF5eFpRVUZaTEVkQlFVY3NWVUZCVlN4RFFVRkRPMWxCUXpWRExGTkJRV2xDTEVOQlFVTXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRM1pETEVOQlFVTXNSVUZEUkN4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExGVkJRVlVzUjBGQlJ5eExRVUZMTEVOQlFVTXNRMEZET1VJc1EwRkJRenRSUVVOS0xFTkJRVU03VVVGRFJDeE5RVUZOTEdGQlFXRXNSMEZCUnl4VFFVRlRMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQmMwSXNRMEZCUXp0UlFVTjBSU3hKUVVGSkxFOUJRVThzUTBGQlF5eEhRVUZITEVOQlFVTXNWVUZCVlN4RlFVRkZMRU5CUVVNN1dVRkRNMElzWTBGQll5eERRVU5hTERCQ1FVRXdRaXhGUVVNeFFpeEpRVUZKTEVOQlFVTXNVMEZCVXl4RFFVTmFMRTFCUVUwc1EwRkJReXhOUVVGTkxFTkJRMWc3WjBKQlEwVXNSMEZCUnp0blFrRkRTQ3hMUVVGTE8yZENRVU5NTEVkQlFVYzdZVUZEU2l4RlFVTkVMR0ZCUVdFc1EwRkRaQ3hEUVVOR0xFZEJRVWNzU1VGQlNTeERRVU5VTEVOQlFVTTdVVUZEU2l4RFFVRkRPMUZCUTBRc1QwRkJUeXhoUVVGaExFTkJRVU03U1VGRGRrSXNRMEZCUXp0SlFVVlJMRXRCUVVzc1EwRkJReXhUUVVGVExFTkJRM1JDTEVsQlFWa3NSVUZEV2l4SFFVRkhMRWxCUVN0RE8xRkJSV3hFTEUxQlFVMHNSVUZCUlN4SFFVRkhMRVZCUVVVc1IwRkJSeXhGUVVGRkxFOUJRVThzUlVGQlJTeEhRVUZITEVOQlF6VkNMRTFCUVUwc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVWQlFVVXNaVUZCWlN4RFFVRkRMRk5CUVZNc1JVRkJSU3hKUVVGSkxFTkJRVU1zUTBGRGVrUXNRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETzFGQlEzUkNMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zVlVGQlZTeERRVUZETEVsQlFVa3NSVUZCUlN4SlFVRjVRaXhEUVVGRE8xbEJRM3BFTEUxQlFVMHNTVUZCU1N4VlFVRlZMRU5CUVVNc2QwTkJRWGRETEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRka1VzU1VGQlNTeEhRVUZITEVOQlFVTXNUVUZCVFN4RlFVRkZMRU5CUVVNN1dVRkRaaXhIUVVGSExFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4dFFrRkJiVUlzU1VGQlNTeE5RVUZOTEVsQlFVa3NSVUZCUlN4RFFVRkRMRU5CUVVNN1VVRkRka1FzUTBGQlF6dFJRVU5FTEVkQlFVY3NRMEZCUXl4UFFVRlBMRU5CUVVNc1owTkJRV2RETEVsQlFVa3NZMEZCWXl4UFFVRlBMRVZCUVVVc1EwRkJReXhEUVVGRE8xRkJSWHBGTEVsQlFVa3NUVUZCVnl4RFFVRkRPMUZCUTJoQ0xFbEJRVWtzUTBGQlF6dFpRVU5JTEUxQlFVMHNSMEZCUnl4TlFVRlBMRWxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eEhRVUZITEU5QlFVOHNRMEZCUXl4RFFVRkRPMUZCUTJwRUxFTkJRVU03VVVGQlF5eFBRVUZQTEVOQlFWVXNSVUZCUlN4RFFVRkRPMWxCUTNCQ0xFbEJRVWtzUTBGQlF5eFpRVUZaTEZOQlFWTTdaMEpCUVVVc1RVRkJUU3hEUVVGRExFTkJRVU03V1VGRGNFTXNUVUZCVFN4SlFVRkpMR0ZCUVdFc1EwRkRja0lzZDBOQlFYZERMRWxCUVVrc1kwRkJZeXhQUVVGUExFdEJRVXNzUTBGQlF5eEZRVUZGTEVOQlF6RkZMRU5CUVVNN1VVRkRTaXhEUVVGRE8xRkJSVVFzVDBGQlR5eE5RVUZOTEVOQlFVTTdTVUZEYUVJc1EwRkJRenRKUVVWRU96czdPMDlCU1VjN1NVRkRUU3hsUVVGbE8xRkJRM1JDTEU5QlFVOHNTVUZCU1N4NVEwRkJlVU1zUlVGQlJTeERRVUZETzBsQlEzcEVMRU5CUVVNN1NVRkZSRHM3T3pzN096czdPMDlCVTBjN1NVRkRUU3hMUVVGTExFTkJRVU1zWlVGQlpTeERRVU0xUWl4TFFVRTRRaXhGUVVNNVFpeExRVUZ4UkN4RlFVTnlSQ3hGUVVGWkxFVkJRMW9zUjBGQlJ5eEpRVUV5UXp0UlFVVTVReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEdGQlFXRXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVVVGQlVTeERRVUZETEV0QlFVc3NRMEZCUXp0WlFVTTFSQ3hQUVVGUExFMUJRVTBzUzBGQlN5eERRVUZETEdWQlFXVXNRMEZCUXl4TFFVRkxMRVZCUVVVc1MwRkJTeXhGUVVGRkxFVkJRVVVzUlVGQlJTeEhRVUZITEVsQlFVa3NRMEZCUXl4RFFVRkRPMGxCUTJ4RkxFTkJRVU03U1VGdFJXdENMRTFCUVUwc1EwRkpka0lzU1VGQmNVUXNSVUZEY2tRc1UwRkJhVUlzUlVGRGFrSXNWMEZCY1VJc1JVRkRja0lzVTBGQmQwTTdVVUZqZUVNc1RVRkJUU3hOUVVGTkxFZEJRVWNzUzBGQlN5eERRVUZETEUxQlFVMHNRMEZCUXl4SlFVRkpMRVZCUVVVc1UwRkJVeXhGUVVGRkxGZEJRV3RDTEVWQlFVVXNVMEZCVXl4RFFVRkRMRU5CUVVNN1VVRkROVVVzVDBGQlR5eEpRVUZKTEVOQlFVTXNkVUpCUVhWQ0xFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTTdTVUZET1VNc1EwRkJRenRKUVVWUExIVkNRVUYxUWl4RFFVazNRaXhKUVZsTE8xRkJZMHdzU1VGQlNTeEpRVUZKTEZsQlFWa3NUMEZCVHl4RlFVRkZMRU5CUVVNN1dVRkROVUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1QwRkJUeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zVDBGQlR5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnFSU3hEUVVGRE8xRkJRMFFzVDBGQlR5eEpRVUZKTEVOQlFVTXNhVUpCUVdsQ0xFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTVUZEZEVNc1EwRkJRenRKUVVWUExHbENRVUZwUWl4RFFVbDJRaXhQUVVsRE8xRkJSVVFzU1VGQlNTeERRVUZETEZsQlFWa3NRMEZCUXl4UFFVRlBMRU5CUVVNc1IwRkJSeXhEUVVGRExFTkJRVU03VVVGREwwSXNUMEZCVHl4UFFVRlBMRU5CUVVNN1NVRkRha0lzUTBGQlF6dEpRVVZQTEZsQlFWa3NRMEZCUXl4SFFVRXdRanRSUVVNM1F5eEhRVUZITEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1JVRkJSU3hUUVVGVExFTkJRVU1zUTBGQlF6dFJRVU5xUXl4SFFVRkhMRU5CUVVNc1IwRkJSeXhEUVVGRExITkNRVUZ6UWl4RlFVRkZMRk5CUVZNc1EwRkJReXhEUVVGRE8xRkJRek5ETEU5QlFVOHNSMEZCUnl4RFFVRkRPMGxCUTJJc1EwRkJRenREUVVOR08wRkJSVVFzUzBGQlN5eFZRVUZWTEd0Q1FVRnJRaXhEUVVNdlFpeEhRVUV3UWl4RlFVTXhRaXhMUVVGeFFqdEpRVVZ5UWl4TlFVRk5MRWxCUVVrc1IwRkJSeXhIUVVGSExFVkJRVVVzU1VGVFRDeERRVUZETzBsQlEyUXNTVUZCU1N4RFFVRkRMRWxCUVVrN1VVRkJSU3hQUVVGUExGTkJRVk1zUTBGQlF6dEpRVVUxUWl4TlFVRk5MRXRCUVVzc1IwRkJSeXhMUVVGTExFTkJRVU1zVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4RFFVRkRPMGxCUTNKRExFMUJRVTBzVFVGQlRTeEhRVUZITEVkQlFVY3NTMEZCU3l4SFFVRkhMRU5CUVVNN1NVRkRNMElzVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4SFFVRkhMRVZCUVZVc1EwRkJRenRKUVVVdlFpeEpRVUZKTEU5QlFVOHNTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeExRVUZMTEZWQlFWVXNSVUZCUlN4RFFVRkRPMUZCUXpkRUxFMUJRVTBzVVVGQlVTeEhRVUZITEUxQlFVMHNTVUZCU1N4RFFVRkRMRFpDUVVFMlFpeERRVUZETEV0QlFVc3NSVUZCUlN4RlFVRkZMRU5CUVVNc1EwRkJRenRSUVVOeVJTeEpRVUZKTEVOQlFVTTdXVUZEU0N4UFFVRlBMRWxCUVVrc1JVRkJSU3hEUVVGRE8yZENRVU5hTEUxQlFVMHNUVUZCVFN4SFFVRkhMRTFCUVUwc1VVRkJVU3hEUVVGRExFbEJRVWtzUlVGQlJTeERRVUZETzJkQ1FVTnlReXhKUVVGSkxFMUJRVTBzUlVGQlJTeEpRVUZKTzI5Q1FVRkZMRTFCUVUwN1owSkJRM2hDTEUxQlFVMHNSMEZCUnl4SFFVRkhMRTFCUVUwc1JVRkJSU3hMUVVGTExFVkJRVVVzUjBGQlJ5eERRVUZETzJkQ1FVTXZRaXhKUVVGSkxFZEJRVWNzU1VGQlNTeEhRVUZITEVOQlFVTXNWVUZCVlN4RFFVRkRMRTFCUVUwc1EwRkJReXhGUVVGRkxFTkJRVU03YjBKQlEyeERMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUjBGQlJ5eERRVUZETEVOQlFVTTdaMEpCUTJoQ0xFTkJRVU03V1VGRFNDeERRVUZETzFGQlEwZ3NRMEZCUXp0blFrRkJVeXhEUVVGRE8xbEJRMVFzU1VGQlNTeFJRVUZSTEVsQlFVa3NUMEZCVHl4UlFVRlJMRU5CUVVNc1MwRkJTeXhMUVVGTExGVkJRVlVzUlVGQlJTeERRVUZETzJkQ1FVTnlSQ3hOUVVGTkxGRkJRVkVzUTBGQlF5eExRVUZMTEVWQlFVVXNRMEZCUXp0WlFVTjZRaXhEUVVGRE8xRkJRMGdzUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkN4SlFVRkpMRWxCUVVrc1EwRkJReXhMUVVGTExFVkJRVVVzUTBGQlF6dFJRVU5tTEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF6dGhRVU53UWl4TlFVRk5MRU5CUVVNc1EwRkJReXhIUVVGSExFVkJRVVVzUlVGQlJTeERRVUZETEVkQlFVY3NRMEZCUXl4VlFVRlZMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU03WVVGRGRrTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1IwRkJSeXhGUVVGRkxFVkJRVVVzUTBGQlF5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWRCUVVjc1EwRkJReXhEUVVGRExFTkJRVU03U1VGRGNrTXNRMEZCUXp0SlFVVkVMRTFCUVUwc1JVRkJSU3hYUVVGWExFVkJRVVVzVlVGQlZTeEZRVUZGTEVkQlFVY3NTMEZCU3l4RFFVRkRMR05CUVdNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dEpRVU5vUlN4TlFVRk5MRk5CUVZNc1IwRkJSeXhEUVVGRExFZEJRVWNzVjBGQlZ5eEZRVUZGTEVkQlFVY3NWVUZCVlN4RFFVRkRMRU5CUVVNN1NVRkRiRVFzU1VGQlNTeFRRVUZUTEVOQlFVTXNUVUZCVFN4SlFVRkpMRWxCUVVrc1EwRkJReXhaUVVGWkxFVkJRVVVzUTBGQlF6dFJRVU14UXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhaUVVGWkxFTkJRVU1zUjBGQlJ5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPMUZCUTNaRExFMUJRVTBzVjBGQlZ5eEhRVUZITEUxQlFVMHNUMEZCVHl4RFFVRkRMRWRCUVVjc1EwRkRia01zVTBGQlV5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRkZCUVZFc1JVRkJSU3hGUVVGRkxFTkJRM3BDTEU5QlFVOHNVVUZCVVN4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRExFTkJRVU1zVVVGQlVTeERRVUZETEVOQlFVTXNRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEhRVUZITEVOQlFVTXNRMEZEY0VVc1EwRkRSaXhEUVVGRE8xRkJRMFlzUzBGQlN5eE5RVUZOTEZWQlFWVXNTVUZCU1N4WFFVRlhMRVZCUVVVc1EwRkJRenRaUVVOeVF5eE5RVUZOTEU5QlFVOHNSMEZCUnl4SlFVRkpMRU5CUVVNc1dVRkJXU3hEUVVGRExGVkJRVlVzUTBGQlF5eERRVUZETzFsQlF6bERMRWxCUVVrc1EwRkJReXhQUVVGUE8yZENRVUZGTEZOQlFWTTdXVUZEZGtJc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTTdhVUpCUTJwQ0xFMUJRVTBzUTBGQlF5eERRVUZETEVkQlFVY3NSVUZCUlN4RlFVRkZMRU5CUVVNc1IwRkJSeXhEUVVGRExGVkJRVlVzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0cFFrRkRka01zVDBGQlR5eERRVUZETEVOQlFVTXNSMEZCUnl4RlFVRkZMRVZCUVVVc1EwRkJReXhKUVVGSkxFTkJRVU1zUjBGQlJ5eERRVUZETEVkQlFVY3NRMEZCUXl4RFFVRkRMRU5CUVVNN1VVRkRja01zUTBGQlF6dEpRVU5JTEVOQlFVTTdTVUZGUkN4UFFVRlBMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRExGTkJRVk1zUTBGQlF6dEJRVU16UXl4RFFVRkRJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpYVcxd2IzSjBJRndpTGk5dmRtVnljbWxrWlhOY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUZKbGNHOXphWFJ2Y25rc1hHNGdJRTlpYzJWeWRtVnlTR0Z1Wkd4bGNpeGNiaUFnUlhabGJuUkpaSE1zWEc0Z0lFTnZiblJsZUhSMVlXeEJjbWR6TEZ4dUlDQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtY3NYRzRnSUZGMVpYSjVSWEp5YjNJc1hHNGdJRkJsY25OcGMzUmxibU5sUzJWNWN5eGNiaUFnVUhKbGNHRnlaV1JUZEdGMFpXMWxiblJMWlhsekxGeHVJQ0JQY21SbGNrUnBjbVZqZEdsdmJpeGNiaUFnVTJWeWFXRnNhWHBsWkZCaFoyVXNYRzRnSUZCaFoybHVZWFJ2Y2l4Y2JpQWdSR2x5WldOMGFXOXVUR2x0YVhSUFptWnpaWFFzWEc0Z0lFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0JEYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM01zWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSDBnWm5KdmJTQmNJaTR2UTI5dWRISmhZM1JEYjI1MFpYaDBYQ0k3WEc1cGJYQnZjblFnZXlCTmIyUmxiQ0I5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkRzl5TFhaaGJHbGtZWFJwYjI1Y0lqdGNibWx0Y0c5eWRDQjdJRVpoWW5KcFkwTnZiblJ5WVdOMFVtVndiM05wZEc5eWVVOWljMlZ5ZG1GaWJHVklZVzVrYkdWeUlIMGdabkp2YlNCY0lpNHZSbUZpY21salEyOXVkSEpoWTNSU1pYQnZjMmwwYjNKNVQySnpaWEoyWVdKc1pVaGhibVJzWlhKY0lqdGNibWx0Y0c5eWRDQjdYRzRnSUVKaGMyVkZjbkp2Y2l4Y2JpQWdRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TEZ4dUlDQkpiblJsY201aGJFVnljbTl5TEZ4dUlDQlBjR1Z5WVhScGIyNUxaWGx6TEZ4dUlDQlFjbWx0WVhKNVMyVjVWSGx3WlN4Y2JuMGdabkp2YlNCY0lrQmtaV05oWmkxMGN5OWtZaTFrWldOdmNtRjBiM0p6WENJN1hHNXBiWEJ2Y25RZ2V5QkRiMjV6ZEhKMVkzUnZjaUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdWamIzSmhkR2x2Ymx3aU8xeHVhVzF3YjNKMElIc2dSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5SUgwZ1puSnZiU0JjSWk0dlEyOXVkSEpoWTNSQlpHRndkR1Z5WENJN1hHNXBiWEJ2Y25RZ2V5QkdZV0p5YVdORGIyNTBjbUZqZEVac1lXZHpJSDBnWm5KdmJTQmNJaTR2ZEhsd1pYTmNJanRjYm1sdGNHOXlkQ0I3WEc0Z0lHRndjR3g1VFdseWNtOXlSbXhoWjNNc1hHNGdJR0Z3Y0d4NVUyVm5jbVZuWVhScGIyNUdiR0ZuY3l4Y2JpQWdaWGgwY21GamRFMXpjRWxrTEZ4dWZTQm1jbTl0SUZ3aUxpNHZjMmhoY21Wa0wyUmxZMjl5WVhSdmNuTmNJanRjYm1sdGNHOXlkQ0I3SUdGd2NHVnVaRVpwYkdWVGVXNWpJSDBnWm5KdmJTQmNJbVp6WENJN1hHNWNiaThxS2x4dUlDb2dRR1JsYzJOeWFYQjBhVzl1SUZKbGNHOXphWFJ2Y25rZ1ptOXlJRWg1Y0dWeWJHVmtaMlZ5SUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnYlc5a1pXeHpYRzRnS2lCQWMzVnRiV0Z5ZVNCUWNtOTJhV1JsY3lCRFVsVkVJRzl3WlhKaGRHbHZibk1nWm05eUlHMXZaR1ZzY3lCM2FYUm9hVzRnUm1GaWNtbGpJR05vWVdsdVkyOWtaU0JqYjI1MGNtRmpkSE5jYmlBcUlFQjBaVzF3YkdGMFpTQk5JQzBnVkhsd1pTQmxlSFJsYm1ScGJtY2dUVzlrWld4Y2JpQXFJRUIwWlcxd2JHRjBaU0JOWVc1bmIxRjFaWEo1SUMwZ1VYVmxjbmtnZEhsd1pTQm1iM0lnUTI5MVkyaEVRaTFzYVd0bElIRjFaWEpwWlhOY2JpQXFJRUIwWlcxd2JHRjBaU0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhJZ0xTQkJaR0Z3ZEdWeUlIUjVjR1VnWm05eUlFWmhZbkpwWXlCamIyNTBjbUZqZENCdmNHVnlZWFJwYjI1elhHNGdLaUJBZEdWdGNHeGhkR1VnUm1GaWNtbGpRMjl1ZEhKaFkzUkdiR0ZuY3lBdElFWnNZV2R6SUhOd1pXTnBabWxqSUhSdklFWmhZbkpwWXlCamIyNTBjbUZqZENCdmNHVnlZWFJwYjI1elhHNGdLaUJBZEdWdGNHeGhkR1VnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMElDMGdRMjl1ZEdWNGRDQjBlWEJsSUdadmNpQkdZV0p5YVdNZ1kyOXVkSEpoWTNRZ2IzQmxjbUYwYVc5dWMxeHVJQ3BjYmlBcUlFQndZWEpoYlNCN1JtRmljbWxqUTI5dWRISmhZM1JCWkdGd2RHVnlmU0JiWVdSaGNIUmxjbDBnTFNCVWFHVWdZV1JoY0hSbGNpQm1iM0lnYVc1MFpYSmhZM1JwYm1jZ2QybDBhQ0IwYUdVZ2MzUmhkR1VnWkdGMFlXSmhjMlZjYmlBcUlFQndZWEpoYlNCN1EyOXVjM1J5ZFdOMGIzSThUVDU5SUZ0amJHRjZlbDBnTFNCVWFHVWdiVzlrWld3Z1kyOXVjM1J5ZFdOMGIzSmNiaUFxSUVCd1lYSmhiU0I3UVhKeVlYazhUM0JsY21GMGFXOXVTMlY1Y3lCOElFSjFiR3REY25Wa1QzQmxjbUYwYVc5dVMyVjVjeUI4SUhOMGNtbHVaejU5SUZ0MGNtRmphMlZrUlhabGJuUnpYU0F0SUVWMlpXNTBjeUIwYnlCMGNtRmpheUJtYjNJZ2IySnpaWEoyWlhJZ2JtOTBhV1pwWTJGMGFXOXVjMXh1SUNwY2JpQXFJRUJqYkdGemN5QkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25sY2JpQXFJRUJsZUdGdGNHeGxYRzRnS2lCZ1lHQjBlWEJsYzJOeWFYQjBYRzRnS2lBdkx5QkpiaUJoSUVaaFluSnBZeUJqYUdGcGJtTnZaR1VnWTI5dWRISmhZM1FnWTJ4aGMzTmNiaUFxSUdsdGNHOXlkQ0I3SUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllU3dnUm1GaWNtbGpRMjl1ZEhKaFkzUkJaR0Z3ZEdWeUlIMGdabkp2YlNBblFHUmxZMkZtTFhSekwyWnZjaTFtWVdKeWFXTW5PMXh1SUNwY2JpQXFJRUIwWVdKc1pTZ25ZWE56WlhSekp5bGNiaUFxSUdOc1lYTnpJRUZ6YzJWMElHVjRkR1Z1WkhNZ1RXOWtaV3dnZTF4dUlDb2dJQ0JBYVdRb0tWeHVJQ29nSUNCcFpEb2djM1J5YVc1bk8xeHVJQ3BjYmlBcUlDQWdRSEJ5YjNCbGNuUjVLQ2xjYmlBcUlDQWdaR0YwWVRvZ2MzUnlhVzVuTzF4dUlDb2dmVnh1SUNwY2JpQXFJR1Y0Y0c5eWRDQmpiR0Z6Y3lCTmVVTnZiblJ5WVdOMElHVjRkR1Z1WkhNZ1EyOXVkSEpoWTNRZ2UxeHVJQ29nSUNCd2NtbDJZWFJsSUdGa1lYQjBaWElnUFNCdVpYY2dSbUZpY21salEyOXVkSEpoWTNSQlpHRndkR1Z5S0NrN1hHNGdLaUFnSUhCeWFYWmhkR1VnY21Wd2IzTnBkRzl5ZVRvZ1JtRmljbWxqUTI5dWRISmhZM1JTWlhCdmMybDBiM0o1UEVGemMyVjBQanRjYmlBcVhHNGdLaUFnSUdOdmJuTjBjblZqZEc5eUtDa2dlMXh1SUNvZ0lDQWdJSE4xY0dWeUtDZE5lVU52Ym5SeVlXTjBKeWs3WEc0Z0tpQWdJQ0FnZEdocGN5NXlaWEJ2YzJsMGIzSjVJRDBnYm1WM0lFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVR4QmMzTmxkRDRvZEdocGN5NWhaR0Z3ZEdWeUxDQkJjM05sZENrN1hHNGdLaUFnSUgxY2JpQXFYRzRnS2lBZ0lFQlVjbUZ1YzJGamRHbHZiaWdwWEc0Z0tpQWdJR0Z6ZVc1aklHTnlaV0YwWlVGemMyVjBLR04wZURvZ1EyOXVkR1Y0ZEN3Z2FXUTZJSE4wY21sdVp5d2daR0YwWVRvZ2MzUnlhVzVuS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0tpQWdJQ0FnWTI5dWMzUWdZWE56WlhRZ1BTQnVaWGNnUVhOelpYUW9LVHRjYmlBcUlDQWdJQ0JoYzNObGRDNXBaQ0E5SUdsa08xeHVJQ29nSUNBZ0lHRnpjMlYwTG1SaGRHRWdQU0JrWVhSaE8xeHVJQ3BjYmlBcUlDQWdJQ0JoZDJGcGRDQjBhR2x6TG5KbGNHOXphWFJ2Y25rdVkzSmxZWFJsS0dGemMyVjBMQ0I3SUhOMGRXSTZJR04wZUM1emRIVmlJSDBwTzF4dUlDb2dJQ0I5WEc0Z0tpQjlYRzRnS2lCZ1lHQmNiaUFxSUVCdFpYSnRZV2xrWEc0Z0tpQnpaWEYxWlc1alpVUnBZV2R5WVcxY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1EyOXVkSEpoWTNSY2JpQXFJQ0FnY0dGeWRHbGphWEJoYm5RZ1VtVndiM05wZEc5eWVWeHVJQ29nSUNCd1lYSjBhV05wY0dGdWRDQkJaR0Z3ZEdWeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGTjBZWFJsUkVKY2JpQXFYRzRnS2lBZ0lFTnZiblJ5WVdOMExUNCtVbVZ3YjNOcGRHOXllVG9nWTNKbFlYUmxLRzF2WkdWc0xDQmpkSGdwWEc0Z0tpQWdJRkpsY0c5emFYUnZjbmt0UGo1QlpHRndkR1Z5T2lCd2NtVndZWEpsS0cxdlpHVnNMQ0J3YXlsY2JpQXFJQ0FnVW1Wd2IzTnBkRzl5ZVMwK1BrRmtZWEIwWlhJNklHTnlaV0YwWlNoMFlXSnNaVTVoYldVc0lHbGtMQ0J5WldOdmNtUXNJSFJ5WVc1emFXVnVkQ3dnWTNSNEtWeHVJQ29nSUNCQlpHRndkR1Z5TFQ0K1UzUmhkR1ZFUWpvZ2NIVjBVM1JoZEdVb2FXUXNJSE5sY21saGJHbDZaV1JFWVhSaEtWeHVJQ29nSUNCVGRHRjBaVVJDTFMwK1BrRmtZWEIwWlhJNklGTjFZMk5sYzNOY2JpQXFJQ0FnUVdSaGNIUmxjaTB0UGo1U1pYQnZjMmwwYjNKNU9pQnlaV052Y21SY2JpQXFJQ0FnVW1Wd2IzTnBkRzl5ZVMwK1BrRmtZWEIwWlhJNklISmxkbVZ5ZENoeVpXTnZjbVFzSUdOc1lYTnpMQ0J3YXl3Z2FXUXNJSFJ5WVc1emFXVnVkQ2xjYmlBcUlDQWdRV1JoY0hSbGNpMHRQajVTWlhCdmMybDBiM0o1T2lCdGIyUmxiRnh1SUNvZ0lDQlNaWEJ2YzJsMGIzSjVMUzArUGtOdmJuUnlZV04wT2lCdGIyUmxiRnh1SUNvdlhHNWxlSEJ2Y25RZ1kyeGhjM01nUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVQRTBnWlhoMFpXNWtjeUJOYjJSbGJENGdaWGgwWlc1a2N5QlNaWEJ2YzJsMGIzSjVQRnh1SUNCTkxGeHVJQ0JHWVdKeWFXTkRiMjUwY21GamRFRmtZWEIwWlhKY2JqNGdlMXh1SUNCd2NtOTBaV04wWldRZ2IzWmxjbkpwWkdVZ1gyOTJaWEp5YVdSbGN5QTlJRTlpYW1WamRDNWhjM05wWjI0b2UzMHNJSE4xY0dWeVcxd2lYMjkyWlhKeWFXUmxjMXdpWFN3Z2UxeHVJQ0FnSUdsbmJtOXlaVlpoYkdsa1lYUnBiMjQ2SUdaaGJITmxMRnh1SUNBZ0lHbG5ibTl5WlVoaGJtUnNaWEp6T2lCbVlXeHpaU3hjYmlBZ0lDQmhiR3h2ZDFKaGQxTjBZWFJsYldWdWRITTZJSFJ5ZFdVc1hHNGdJQ0FnWm05eVkyVlFjbVZ3WVhKbFUybHRjR3hsVVhWbGNtbGxjem9nWm1Gc2MyVXNYRzRnSUNBZ1ptOXlZMlZRY21Wd1lYSmxRMjl0Y0d4bGVGRjFaWEpwWlhNNklHWmhiSE5sTEZ4dUlDQWdJSEpsWW5WcGJHUlhhWFJvVkhKaGJuTnBaVzUwT2lCbVlXeHpaU3hjYmlBZ2ZTazdYRzVjYmlBZ1kyOXVjM1J5ZFdOMGIzSW9YRzRnSUNBZ1lXUmhjSFJsY2o4NklFWmhZbkpwWTBOdmJuUnlZV04wUVdSaGNIUmxjaXhjYmlBZ0lDQmpiR0Y2ZWo4NklFTnZibk4wY25WamRHOXlQRTArTEZ4dUlDQWdJSEJ5YjNSbFkzUmxaQ0J2YldsMGRHVmtSWFpsYm5SelB6b2dLRTl3WlhKaGRHbHZia3RsZVhNZ2ZDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE1nZkNCemRISnBibWNwVzExY2JpQWdLU0I3WEc0Z0lDQWdjM1Z3WlhJb1lXUmhjSFJsY2l3Z1kyeGhlbm9wTzF4dUlDQjlYRzVjYmlBZ2IzWmxjbkpwWkdVZ1lYTjVibU1nWTNKbFlYUmxLRnh1SUNBZ0lHMXZaR1ZzT2lCTkxGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrNklGQnliMjFwYzJVOFRUNGdlMXh1SUNBZ0lHTnZibk4wSUhzZ1kzUjRMQ0JzYjJjc0lHTjBlRUZ5WjNNZ2ZTQTlJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJSFJvYVhNdVkzSmxZWFJsS1R0Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0JnUTNKbFlYUnBibWNnYm1WM0lDUjdkR2hwY3k1amJHRnpjeTV1WVcxbGZTQnBiaUIwWVdKc1pTQWtlMDF2WkdWc0xuUmhZbXhsVG1GdFpTaDBhR2x6TG1Oc1lYTnpLWDFnWEc0Z0lDQWdLVHRjYmlBZ0lDQXZMeUJsYzJ4cGJuUXRaR2x6WVdKc1pTMXVaWGgwTFd4cGJtVWdjSEpsWm1WeUxXTnZibk4wWEc0Z0lDQWdiR1YwSUhzZ2NtVmpiM0prTENCcFpDd2dkSEpoYm5OcFpXNTBMQ0J6WldkeVpXZGhkR1ZrSUgwZ1BTQjBhR2x6TG1Ga1lYQjBaWEl1Y0hKbGNHRnlaU2hjYmlBZ0lDQWdJRzF2WkdWc0xGeHVJQ0FnSUNBZ2JXOWtaV3hiZEdocGN5NXdhMTBnWVhNZ1lXNTVMRnh1SUNBZ0lDQWdZM1I0WEc0Z0lDQWdLVHRjYmlBZ0lDQnBaaUFvYzJWbmNtVm5ZWFJsWkNrZ1kzUjRMbkIxZENoY0luTmxaM0psWjJGMFpXUkVZWFJoWENJc0lITmxaM0psWjJGMFpXUXBPMXh1SUNBZ0lISmxZMjl5WkNBOUlHRjNZV2wwSUhSb2FYTXVZV1JoY0hSbGNpNWpjbVZoZEdVb2RHaHBjeTVqYkdGemN5d2dhV1FzSUhKbFkyOXlaQ3dnTGk0dVkzUjRRWEpuY3lrN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdVlXUmhjSFJsY2k1eVpYWmxjblE4VFQ0b2NtVmpiM0prSUh4OElIdDlMQ0IwYUdsekxtTnNZWE56TENCcFpDd2dkSEpoYm5OcFpXNTBMQ0JqZEhncE8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ1kzSmxZWFJsUVd4c0tGeHVJQ0FnSUcxdlpHVnNjem9nVFZ0ZExGeHVJQ0FnSUM0dUxtRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUStYRzRnSUNrNklGQnliMjFwYzJVOFRWdGRQaUI3WEc0Z0lDQWdhV1lnS0NGdGIyUmxiSE11YkdWdVozUm9LU0J5WlhSMWNtNGdiVzlrWld4ek8xeHVJQ0FnSUdOdmJuTjBJSHNnWTNSNExDQnNiMmNzSUdOMGVFRnlaM01nZlNBOUlIUm9hWE11Ykc5blEzUjRLR0Z5WjNNc0lIUm9hWE11WTNKbFlYUmxRV3hzS1R0Y2JpQWdJQ0JzYjJjdVpHVmlkV2NvWEc0Z0lDQWdJQ0JnUTNKbFlYUnBibWNnSkh0dGIyUmxiSE11YkdWdVozUm9mU0J1WlhjZ0pIdDBhR2x6TG1Oc1lYTnpMbTVoYldWOUlHbHVJSFJoWW14bElDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmV0JjYmlBZ0lDQXBPMXh1WEc0Z0lDQWdZMjl1YzNRZ2NISmxjR0Z5WldRZ1BTQnRiMlJsYkhNdWJXRndLQ2h0S1NBOVBpQjBhR2x6TG1Ga1lYQjBaWEl1Y0hKbGNHRnlaU2h0TENCamRIZ3BLVHRjYmlBZ0lDQmpiMjV6ZENCcFpITWdQU0J3Y21Wd1lYSmxaQzV0WVhBb0tIQXBJRDArSUhBdWFXUXBPMXh1SUNBZ0lHeGxkQ0J5WldOdmNtUnpJRDBnY0hKbGNHRnlaV1F1YldGd0tDaHdLU0E5UGlCd0xuSmxZMjl5WkNrN1hHNGdJQ0FnWTI5dWMzUWdjMlZuY21WbllYUmxaQ0E5SUhCeVpYQmhjbVZrTG5KbFpIVmpaU2hjYmlBZ0lDQWdJQ2hoWTJNc0lIQXBJRDArSUh0Y2JpQWdJQ0FnSUNBZ1kyOXVjM1FnWTI5c2N5QTlJRTlpYW1WamRDNXJaWGx6S0hBdWMyVm5jbVZuWVhSbFpDQjhmQ0I3ZlNrN1hHNGdJQ0FnSUNBZ0lHTnZiSE11Wm05eVJXRmphQ2dvWXlrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0FnSUdGalkxdGpYU0E5SUdGalkxdGpYU0I4ZkNCN2ZUdGNiaUFnSUNBZ0lDQWdJQ0JoWTJOYlkxMGdQU0I3SUM0dUxtRmpZMXRqWFN3Z0xpNHVLSEF1YzJWbmNtVm5ZWFJsWkNCOGZDQjdmU2xiWTEwZ2ZUdGNiaUFnSUNBZ0lDQWdmU2s3WEc0Z0lDQWdJQ0FnSUhKbGRIVnliaUJoWTJNN1hHNGdJQ0FnSUNCOUxGeHVJQ0FnSUNBZ2UzMGdZWE1nVW1WamIzSmtQSE4wY21sdVp5d2dZVzU1UGx4dUlDQWdJQ2s3WEc0Z0lDQWdhV1lnS0U5aWFtVmpkQzVyWlhsektITmxaM0psWjJGMFpXUXBMbXhsYm1kMGFDa2dlMXh1SUNBZ0lDQWdZM1I0TG5CMWRDaGNJbk5sWjNKbFoyRjBaV1JFWVhSaFhDSXNJSE5sWjNKbFoyRjBaV1FwTzF4dUlDQWdJSDFjYmlBZ0lDQnlaV052Y21SeklEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMbU55WldGMFpVRnNiQ2hjYmlBZ0lDQWdJSFJvYVhNdVkyeGhjM01zWEc0Z0lDQWdJQ0JwWkhNZ1lYTWdVSEpwYldGeWVVdGxlVlI1Y0dWYlhTeGNiaUFnSUNBZ0lISmxZMjl5WkhNc1hHNGdJQ0FnSUNBdUxpNWpkSGhCY21kelhHNGdJQ0FnS1R0Y2JpQWdJQ0J5WlhSMWNtNGdjbVZqYjNKa2N5NXRZWEFvS0hJc0lHa3BJRDArWEc0Z0lDQWdJQ0IwYUdsekxtRmtZWEIwWlhJdWNtVjJaWEowS0hJc0lIUm9hWE11WTJ4aGMzTXNJR2xrYzF0cFhTd2djSEpsY0dGeVpXUmJhVjB1ZEhKaGJuTnBaVzUwTENCamRIZ3BYRzRnSUNBZ0tUdGNiaUFnZlZ4dVhHNGdJRzkyWlhKeWFXUmxJR0Z6ZVc1aklIVndaR0YwWlNoY2JpQWdJQ0J0YjJSbGJEb2dUU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQRTArSUh0Y2JpQWdJQ0JqYjI1emRDQjdJR04wZUVGeVozTXNJR3h2Wnl3Z1kzUjRJSDBnUFNCMGFHbHpMbXh2WjBOMGVDaGhjbWR6TENCMGFHbHpMblZ3WkdGMFpTazdYRzRnSUNBZ0x5OGdaWE5zYVc1MExXUnBjMkZpYkdVdGJtVjRkQzFzYVc1bElIQnlaV1psY2kxamIyNXpkRnh1SUNBZ0lHeGxkQ0I3SUhKbFkyOXlaQ3dnYVdRc0lIUnlZVzV6YVdWdWRDd2djMlZuY21WbllYUmxaQ0I5SUQwZ2RHaHBjeTVoWkdGd2RHVnlMbkJ5WlhCaGNtVW9YRzRnSUNBZ0lDQnRiMlJsYkN4Y2JpQWdJQ0FnSUdOMGVGeHVJQ0FnSUNrN1hHNGdJQ0FnYkc5bkxtUmxZblZuS0Z4dUlDQWdJQ0FnWUhWd1pHRjBhVzVuSUNSN2RHaHBjeTVqYkdGemN5NXVZVzFsZlNCcGJpQjBZV0pzWlNBa2UwMXZaR1ZzTG5SaFlteGxUbUZ0WlNoMGFHbHpMbU5zWVhOektYMGdkMmwwYUNCcFpDQWtlMmxrZldCY2JpQWdJQ0FwTzF4dUlDQWdJR2xtSUNoelpXZHlaV2RoZEdWa0tTQmpkSGd1Y0hWMEtGd2ljMlZuY21WbllYUmxaRVJoZEdGY0lpd2djMlZuY21WbllYUmxaQ2s3WEc0Z0lDQWdjbVZqYjNKa0lEMGdZWGRoYVhRZ2RHaHBjeTVoWkdGd2RHVnlMblZ3WkdGMFpTaDBhR2x6TG1Oc1lYTnpMQ0JwWkN3Z2NtVmpiM0prTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWhaR0Z3ZEdWeUxuSmxkbVZ5ZER4TlBpaHlaV052Y21Rc0lIUm9hWE11WTJ4aGMzTXNJR2xrTENCMGNtRnVjMmxsYm5Rc0lHTjBlQ2s3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUIxY0dSaGRHVkJiR3dvWEc0Z0lDQWdiVzlrWld4ek9pQk5XMTBzWEc0Z0lDQWdMaTR1WVhKbmN6b2dUV0Y1WW1WRGIyNTBaWGgwZFdGc1FYSm5QRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHhOVzEwK0lIdGNiaUFnSUNCamIyNXpkQ0I3SUdOMGVDd2diRzluTENCamRIaEJjbWR6SUgwZ1BTQjBhR2x6TG14dlowTjBlQ2hoY21kekxDQjBhR2x6TG5Wd1pHRjBaVUZzYkNrN1hHNGdJQ0FnYkc5bkxuWmxjbUp2YzJVb1hHNGdJQ0FnSUNCZ1ZYQmtZWFJwYm1jZ0pIdHRiMlJsYkhNdWJHVnVaM1JvZlNCdVpYY2dKSHQwYUdsekxtTnNZWE56TG01aGJXVjlJR2x1SUhSaFlteGxJQ1I3VFc5a1pXd3VkR0ZpYkdWT1lXMWxLSFJvYVhNdVkyeGhjM01wZldCY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdjSEpsY0dGeVpXUWdQU0J0YjJSbGJITXViV0Z3S0NodEtTQTlQaUIwYUdsekxtRmtZWEIwWlhJdWNISmxjR0Z5WlNodExDQmpkSGdwS1R0Y2JpQWdJQ0JqYjI1emRDQnBaSE1nUFNCd2NtVndZWEpsWkM1dFlYQW9LSEFwSUQwK0lIQXVhV1FwTzF4dUlDQWdJR052Ym5OMElISmxZMjl5WkhNZ1BTQndjbVZ3WVhKbFpDNXRZWEFvS0hBcElEMCtJSEF1Y21WamIzSmtLVHRjYmlBZ0lDQmpiMjV6ZENCelpXZHlaV2RoZEdWa0lEMGdjSEpsY0dGeVpXUXVjbVZrZFdObEtGeHVJQ0FnSUNBZ0tHRmpZeXdnY0NrZ1BUNGdlMXh1SUNBZ0lDQWdJQ0JqYjI1emRDQmpiMnh6SUQwZ1QySnFaV04wTG10bGVYTW9jQzV6WldkeVpXZGhkR1ZrSUh4OElIdDlLVHRjYmlBZ0lDQWdJQ0FnWTI5c2N5NW1iM0pGWVdOb0tDaGpLU0E5UGlCN1hHNGdJQ0FnSUNBZ0lDQWdZV05qVzJOZElEMGdZV05qVzJOZElIeDhJSHQ5TzF4dUlDQWdJQ0FnSUNBZ0lHRmpZMXRqWFNBOUlIc2dMaTR1WVdOalcyTmRMQ0F1TGk0b2NDNXpaV2R5WldkaGRHVmtJSHg4SUh0OUtWdGpYU0I5TzF4dUlDQWdJQ0FnSUNCOUtUdGNiaUFnSUNBZ0lDQWdjbVYwZFhKdUlHRmpZenRjYmlBZ0lDQWdJSDBzWEc0Z0lDQWdJQ0I3ZlNCaGN5QlNaV052Y21ROGMzUnlhVzVuTENCaGJuaytYRzRnSUNBZ0tUdGNiaUFnSUNCcFppQW9UMkpxWldOMExtdGxlWE1vYzJWbmNtVm5ZWFJsWkNrdWJHVnVaM1JvS1NCN1hHNGdJQ0FnSUNCamRIZ3VjSFYwS0Z3aWMyVm5jbVZuWVhSbFpFUmhkR0ZjSWl3Z2MyVm5jbVZuWVhSbFpDazdYRzRnSUNBZ2ZWeHVYRzRnSUNBZ1kyOXVjM1FnZFhCa1lYUmxaQ0E5SUdGM1lXbDBJSFJvYVhNdVlXUmhjSFJsY2k1MWNHUmhkR1ZCYkd3b1hHNGdJQ0FnSUNCMGFHbHpMbU5zWVhOekxGeHVJQ0FnSUNBZ2FXUnpMRnh1SUNBZ0lDQWdjbVZqYjNKa2N5eGNiaUFnSUNBZ0lDNHVMbU4wZUVGeVozTmNiaUFnSUNBcE8xeHVJQ0FnSUhKbGRIVnliaUIxY0dSaGRHVmtMbTFoY0Nnb2RTd2dhU2tnUFQ1Y2JpQWdJQ0FnSUhSb2FYTXVZV1JoY0hSbGNpNXlaWFpsY25Rb2RTd2dkR2hwY3k1amJHRnpjeXdnYVdSelcybGRMQ0J3Y21Wd1lYSmxaRnRwWFM1MGNtRnVjMmxsYm5Rc0lHTjBlQ2xjYmlBZ0lDQXBPMXh1SUNCOVhHNWNiaUFnYjNabGNuSnBaR1VnWVhONWJtTWdiR2x6ZEVKNUtGeHVJQ0FnSUd0bGVUb2dhMlY1YjJZZ1RTeGNiaUFnSUNCdmNtUmxjam9nVDNKa1pYSkVhWEpsWTNScGIyNHNYRzRnSUNBZ0xpNHVZWEpuY3pvZ1RXRjVZbVZEYjI1MFpYaDBkV0ZzUVhKblBFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkRDVjYmlBZ0tTQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRkJ5WlhCaGNtVmtVM1JoZEdWdFpXNTBTMlY1Y3k1TVNWTlVYMEpaTENCMGNuVmxLVnh1SUNBZ0lDa3VabTl5S0hSb2FYTXViR2x6ZEVKNUtUdGNiaUFnSUNCc2IyY3VkbVZ5WW05elpTaGNiaUFnSUNBZ0lHQnNhWE4wYVc1bklDUjdUVzlrWld3dWRHRmliR1ZPWVcxbEtIUm9hWE11WTJ4aGMzTXBmU0JpZVNBa2UydGxlU0JoY3lCemRISnBibWQ5SUNSN2IzSmtaWEo5WUZ4dUlDQWdJQ2s3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YzJWc1pXTjBLQ2xjYmlBZ0lDQWdJQzV2Y21SbGNrSjVLRnRyWlhrc0lHOXlaR1Z5WFNsY2JpQWdJQ0FnSUM1bGVHVmpkWFJsS0M0dUxtTjBlRUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdiM1psY25KcFpHVWdZWE41Ym1NZ2NHRm5hVzVoZEdWQ2VTaGNiaUFnSUNCclpYazZJR3RsZVc5bUlFMHNYRzRnSUNBZ2IzSmtaWEk2SUU5eVpHVnlSR2x5WldOMGFXOXVMRnh1SUNBZ0lISmxaam9nVDIxcGREeEVhWEpsWTNScGIyNU1hVzFwZEU5bVpuTmxkQ3dnWENKa2FYSmxZM1JwYjI1Y0lqNGdQU0I3WEc0Z0lDQWdJQ0J2Wm1aelpYUTZJREVzWEc0Z0lDQWdJQ0JzYVcxcGREb2dNVEFzWEc0Z0lDQWdmU3hjYmlBZ0lDQXVMaTVoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwUGx4dUlDQXBPaUJRY205dGFYTmxQRk5sY21saGJHbDZaV1JRWVdkbFBFMCtQaUI3WEc0Z0lDQWdjbVZtTG05bVpuTmxkQ0E5SUhKbFppNXZabVp6WlhRZ2ZId2dNVHRjYmlBZ0lDQnlaV1l1YkdsdGFYUWdQU0J5WldZdWJHbHRhWFFnZkh3Z01UQTdYRzRnSUNBZ1kyOXVjM1FnZXlCdlptWnpaWFFzSUdKdmIydHRZWEpyTENCc2FXMXBkQ0I5SUQwZ2NtVm1PMXh1SUNBZ0lHbG1JQ2doYjJabWMyVjBJQ1ltSUNGaWIyOXJiV0Z5YXlsY2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCUmRXVnllVVZ5Y205eUtHQlFZV2RwYm1GMFpVSjVJRzVsWldSeklHRWdjR0ZuWlNCdmNpQmhJR0p2YjJ0dFlYSnJZQ2s3WEc0Z0lDQWdZMjl1YzNRZ2V5QnNiMmNzSUdOMGVFRnlaM01zSUdOMGVDQjlJRDBnS0Z4dUlDQWdJQ0FnWVhkaGFYUWdkR2hwY3k1c2IyZERkSGdvWVhKbmN5d2dVSEpsY0dGeVpXUlRkR0YwWlcxbGJuUkxaWGx6TGxCQlIwVmZRbGtzSUhSeWRXVXBYRzRnSUNBZ0tTNW1iM0lvZEdocGN5NXdZV2RwYm1GMFpVSjVLVHRjYmlBZ0lDQnNiMmN1ZG1WeVltOXpaU2hjYmlBZ0lDQWdJR0J3WVdkcGJtRjBhVzVuSUNSN1RXOWtaV3d1ZEdGaWJHVk9ZVzFsS0hSb2FYTXVZMnhoYzNNcGZTQjNhWFJvSUhCaFoyVWdjMmw2WlNBa2UyeHBiV2wwZldCY2JpQWdJQ0FwTzF4dVhHNGdJQ0FnWTI5dWMzUWdiWE53SUQwZ1pYaDBjbUZqZEUxemNFbGtLR04wZUM1cFpHVnVkR2wwZVNrN1hHNGdJQ0FnWTI5dWMzUWdleUJ3Y21sMllYUmxRMjlzY3l3Z2MyaGhjbVZrUTI5c2N5QjlJRDBnVFc5a1pXd3VZMjlzYkdWamRHbHZibk5HYjNJb2RHaHBjeTVqYkdGemN5azdYRzRnSUNBZ1kyOXVjM1FnWTI5c2JHVmpkR2x2Ym5NZ1BTQmJYRzRnSUNBZ0lDQXVMaTV1WlhjZ1UyVjBLRnh1SUNBZ0lDQWdJQ0JoZDJGcGRDQlFjbTl0YVhObExtRnNiQ2hjYmlBZ0lDQWdJQ0FnSUNCYkxpNHVjSEpwZG1GMFpVTnZiSE1zSUM0dUxuTm9ZWEpsWkVOdmJITmRMbTFoY0Nnb1l5a2dQVDVjYmlBZ0lDQWdJQ0FnSUNBZ0lIUjVjR1Z2WmlCaklEMDlQU0JjSW5OMGNtbHVaMXdpSUQ4Z1l5QTZJR01vZEdocGN5NWpiR0Z6Y3l3Z2JYTndMQ0JqZEhncFhHNGdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FwWEc0Z0lDQWdJQ0FwTEZ4dUlDQWdJRjA3WEc0Z0lDQWdZWEJ3YkhsVFpXZHlaV2RoZEdsdmJrWnNZV2R6S0c1bGR5QjBhR2x6TG1Oc1lYTnpLQ2tzSUdOdmJHeGxZM1JwYjI1ekxDQmpkSGdwTzF4dUlDQWdJR0YzWVdsMElHRndjR3g1VFdseWNtOXlSbXhoWjNNb2RHaHBjeTVqYkdGemN5d2diWE53TENCamRIZ3BPMXh1WEc0Z0lDQWdiR1YwSUhCaFoybHVZWFJ2Y2pvZ1VHRm5hVzVoZEc5eVBFMCtPMXh1SUNBZ0lHbG1JQ2h2Wm1aelpYUWdKaVlnWW05dmEyMWhjbXNwSUh0Y2JpQWdJQ0FnSUhCaFoybHVZWFJ2Y2lBOUlHRjNZV2wwSUhSb2FYTXViM1psY25KcFpHVW9lMXh1SUNBZ0lDQWdJQ0JtYjNKalpWQnlaWEJoY21WRGIyMXdiR1Y0VVhWbGNtbGxjem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQWdJR1p2Y21ObFVISmxjR0Z5WlZOcGJYQnNaVkYxWlhKcFpYTTZJR1poYkhObExGeHVJQ0FnSUNBZ2ZTQmhjeUJoYm5rcFhHNGdJQ0FnSUNBZ0lDNXpaV3hsWTNRb0tWeHVJQ0FnSUNBZ0lDQXViM0prWlhKQ2VTaGJhMlY1TENCdmNtUmxjbDBwWEc0Z0lDQWdJQ0FnSUM1d1lXZHBibUYwWlNoc2FXMXBkQ0JoY3lCdWRXMWlaWElzSUdKdmIydHRZWEpyTENBdUxpNWpkSGhCY21kektUdGNiaUFnSUNCOUlHVnNjMlVnYVdZZ0tHOW1abk5sZENrZ2UxeHVJQ0FnSUNBZ2NHRm5hVzVoZEc5eUlEMGdZWGRoYVhRZ2RHaHBjeTV2ZG1WeWNtbGtaU2g3WEc0Z0lDQWdJQ0FnSUdadmNtTmxVSEpsY0dGeVpVTnZiWEJzWlhoUmRXVnlhV1Z6T2lCbVlXeHpaU3hjYmlBZ0lDQWdJQ0FnWm05eVkyVlFjbVZ3WVhKbFUybHRjR3hsVVhWbGNtbGxjem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQjlJR0Z6SUdGdWVTbGNiaUFnSUNBZ0lDQWdMbk5sYkdWamRDZ3BYRzRnSUNBZ0lDQWdJQzV2Y21SbGNrSjVLRnRyWlhrc0lHOXlaR1Z5WFNsY2JpQWdJQ0FnSUNBZ0xuQmhaMmx1WVhSbEtHeHBiV2wwSUdGeklHNTFiV0psY2l3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCUmRXVnllVVZ5Y205eUtHQlFZV2RwYm1GMFpVSjVJRzVsWldSeklHRWdjR0ZuWlNCdmNpQmhJR0p2YjJ0dFlYSnJZQ2s3WEc0Z0lDQWdmVnh1SUNBZ0lHTnZibk4wSUhCaFoyVmtJRDBnWVhkaGFYUWdjR0ZuYVc1aGRHOXlMbkJoWjJVb2IyWm1jMlYwTENCaWIyOXJiV0Z5YXl3Z0xpNHVZM1I0UVhKbmN5azdYRzRnSUNBZ1kyOXVjM1FnZEc5MFlXeERiM1Z1ZENBOUlHRjNZV2wwSUdOdmRXNTBVM1J2Y21Wa1JXNTBjbWxsY3loamRIZ3NJSFJvYVhNdVkyeGhjM01wTzF4dUlDQWdJR2xtSUNoMGVYQmxiMllnZEc5MFlXeERiM1Z1ZENBOVBUMGdYQ0p1ZFcxaVpYSmNJaWtnZTF4dUlDQWdJQ0FnS0hCaFoybHVZWFJ2Y2lCaGN5QmhibmtwTGw5eVpXTnZjbVJEYjNWdWRDQTlJSFJ2ZEdGc1EyOTFiblE3WEc0Z0lDQWdJQ0FvY0dGbmFXNWhkRzl5SUdGeklHRnVlU2t1WDNSdmRHRnNVR0ZuWlhNZ1BTQk5ZWFJvTG0xaGVDaGNiaUFnSUNBZ0lDQWdNU3hjYmlBZ0lDQWdJQ0FnVFdGMGFDNWpaV2xzS0hSdmRHRnNRMjkxYm5RZ0x5QnNhVzFwZENsY2JpQWdJQ0FnSUNrN1hHNGdJQ0FnZlZ4dUlDQWdJR052Ym5OMElITmxjbWxoYkdsNllYUnBiMjRnUFNCd1lXZHBibUYwYjNJdWMyVnlhV0ZzYVhwbEtIQmhaMlZrS1NCaGN5QlRaWEpwWVd4cGVtVmtVR0ZuWlR4TlBqdGNiaUFnSUNCcFppQW9jSEp2WTJWemN5NWxibll1VUVGSFJWOUVSVUpWUnlrZ2UxeHVJQ0FnSUNBZ1lYQndaVzVrUm1sc1pWTjVibU1vWEc0Z0lDQWdJQ0FnSUZ3aUwzUnRjQzltWVdKeWFXTXRjR0ZuYVc1aGRHVXViRzluWENJc1hHNGdJQ0FnSUNBZ0lFcFRUMDR1YzNSeWFXNW5hV1o1S0Z4dUlDQWdJQ0FnSUNBZ0lFOWlhbVZqZEM1aGMzTnBaMjRvWEc0Z0lDQWdJQ0FnSUNBZ0lDQjdYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lHdGxlU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdiM0prWlhJc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbFppeGNiaUFnSUNBZ0lDQWdJQ0FnSUgwc1hHNGdJQ0FnSUNBZ0lDQWdJQ0J6WlhKcFlXeHBlbUYwYVc5dVhHNGdJQ0FnSUNBZ0lDQWdLVnh1SUNBZ0lDQWdJQ0FwSUNzZ1hDSmNYRzVjSWx4dUlDQWdJQ0FnS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlITmxjbWxoYkdsNllYUnBiMjQ3WEc0Z0lIMWNibHh1SUNCdmRtVnljbWxrWlNCaGMzbHVZeUJ6ZEdGMFpXMWxiblFvWEc0Z0lDQWdibUZ0WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQzR1TG1GeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRK1hHNGdJQ2tnZTF4dUlDQWdJR052Ym5OMElIc2diRzluTENCamRIZ3NJR04wZUVGeVozTWdmU0E5SUNoY2JpQWdJQ0FnSUdGM1lXbDBJSFJvYVhNdWJHOW5RM1I0S0dGeVozTXNJRkJsY25OcGMzUmxibU5sUzJWNWN5NVRWRUZVUlUxRlRsUXNJSFJ5ZFdVcFhHNGdJQ0FnS1M1bWIzSW9kR2hwY3k1emRHRjBaVzFsYm5RcE8xeHVJQ0FnSUdsbUlDZ2hVbVZ3YjNOcGRHOXllUzV6ZEdGMFpXMWxiblJ6S0hSb2FYTXNJRzVoYldVZ1lYTWdhMlY1YjJZZ2RIbHdaVzltSUhSb2FYTXBLVnh1SUNBZ0lDQWdkR2h5YjNjZ2JtVjNJRkYxWlhKNVJYSnliM0lvWUVsdWRtRnNhV1FnY0hKbGNHRnlaV1FnYzNSaGRHVnRaVzUwSUhKbGNYVmxjM1JsWkNBa2UyNWhiV1Y5WUNrN1hHNGdJQ0FnYVdZZ0tHTjBlQzVzYjJkblpYSXBJSHRjYmlBZ0lDQWdJR04wZUM1c2IyZG5aWEl1YVc1bWJ5aGdVbVZ3YnlCemRHRjBaVzFsYm5RNklDUjdibUZ0WlgwZ0t5QWtlMkZ5WjNOOVlDazdYRzRnSUNBZ2ZWeHVJQ0FnSUd4dlp5NTJaWEppYjNObEtHQkZlR1ZqZFhScGJtY2djSEpsY0dGeVpXUWdjM1JoZEdWdFpXNTBJQ1I3Ym1GdFpYMGdkMmwwYUNCaGNtZHpJQ1I3WTNSNFFYSm5jMzFnS1R0Y2JseHVJQ0FnSUd4bGRDQnlaWE4xYkhRNklHRnVlVHRjYmlBZ0lDQjBjbmtnZTF4dUlDQWdJQ0FnY21WemRXeDBJRDBnWVhkaGFYUWdLSFJvYVhNZ1lYTWdZVzU1S1Z0dVlXMWxYU2d1TGk1amRIaEJjbWR6S1R0Y2JpQWdJQ0I5SUdOaGRHTm9JQ2hsT2lCMWJtdHViM2R1S1NCN1hHNGdJQ0FnSUNCcFppQW9aU0JwYm5OMFlXNWpaVzltSUVKaGMyVkZjbkp2Y2lrZ2RHaHliM2NnWlR0Y2JpQWdJQ0FnSUhSb2NtOTNJRzVsZHlCSmJuUmxjbTVoYkVWeWNtOXlLRnh1SUNBZ0lDQWdJQ0JnUm1GcGJHVmtJSFJ2SUdWNFpXTjFkR1VnY0hKbGNHRnlaV1FnYzNSaGRHVnRaVzUwSUNSN2JtRnRaWDBnZDJsMGFDQmhjbWR6SUNSN1kzUjRRWEpuYzMwNklDUjdaWDFnWEc0Z0lDQWdJQ0FwTzF4dUlDQWdJSDFjYmx4dUlDQWdJSEpsZEhWeWJpQnlaWE4xYkhRN1hHNGdJSDFjYmx4dUlDQXZLaXBjYmlBZ0lDb2dRR1JsYzJOeWFYQjBhVzl1SUVkbGRITWdkR2hsSUc5aWMyVnlkbVZ5SUdoaGJtUnNaWElnWm05eUlIUm9hWE1nY21Wd2IzTnBkRzl5ZVZ4dUlDQWdLaUJBYzNWdGJXRnllU0JTWlhSMWNtNXpJR0VnUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVUMkp6WlhKMllXSnNaVWhoYm1Sc1pYSWdhVzV6ZEdGdVkyVmNiaUFnSUNvZ1FISmxkSFZ5YmlCN1QySnpaWEoyWlhKSVlXNWtiR1Z5ZlNCVWFHVWdiMkp6WlhKMlpYSWdhR0Z1Wkd4bGNseHVJQ0FnS2k5Y2JpQWdiM1psY25KcFpHVWdUMkp6WlhKMlpYSklZVzVrYkdWeUtDazZJRTlpYzJWeWRtVnlTR0Z1Wkd4bGNpQjdYRzRnSUNBZ2NtVjBkWEp1SUc1bGR5QkdZV0p5YVdORGIyNTBjbUZqZEZKbGNHOXphWFJ2Y25sUFluTmxjblpoWW14bFNHRnVaR3hsY2lncE8xeHVJQ0I5WEc1Y2JpQWdMeW9xWEc0Z0lDQXFJRUJrWlhOamNtbHdkR2x2YmlCVmNHUmhkR1Z6SUc5aWMyVnlkbVZ5Y3lCaVlYTmxaQ0J2YmlCMGNtRmphMlZrSUdWMlpXNTBjMXh1SUNBZ0tpQkFjM1Z0YldGeWVTQkdhV3gwWlhKeklHVjJaVzUwY3lCaVlYTmxaQ0J2YmlCMGNtRmphMlZrUlhabGJuUnpJR0Z1WkNCa1pXeGxaMkYwWlhNZ2RHOGdkR2hsSUhCaGNtVnVkQ0J0WlhSb2IyUmNiaUFnSUNvZ1FIQmhjbUZ0SUh0emRISnBibWQ5SUhSaFlteGxJQzBnVkdobElIUmhZbXhsTDJOdmJHeGxZM1JwYjI0Z2JtRnRaVnh1SUNBZ0tpQkFjR0Z5WVcwZ2UwOXdaWEpoZEdsdmJrdGxlWE1nZkNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0J6ZEhKcGJtZDlJR1YyWlc1MElDMGdWR2hsSUdWMlpXNTBJSFI1Y0dWY2JpQWdJQ29nUUhCaGNtRnRJSHRGZG1WdWRFbGtjMzBnYVdRZ0xTQlVhR1VnWlhabGJuUWdhV1JsYm5ScFptbGxjbHh1SUNBZ0tpQkFjR0Z5WVcwZ2UwWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkSDBnWTNSNElDMGdWR2hsSUVaaFluSnBZeUJqYjI1MGNtRmpkQ0JqYjI1MFpYaDBYRzRnSUNBcUlFQndZWEpoYlNCN0xpNHVZVzU1VzExOUlHRnlaM01nTFNCQlpHUnBkR2x2Ym1Gc0lHRnlaM1Z0Wlc1MGMxeHVJQ0FnS2lCQWNtVjBkWEp1SUh0UWNtOXRhWE5sUEhadmFXUStmU0JRY205dGFYTmxJSFJvWVhRZ2NtVnpiMngyWlhNZ2QyaGxiaUJ2WW5ObGNuWmxjbk1nWVhKbElIVndaR0YwWldSY2JpQWdJQ292WEc0Z0lHOTJaWEp5YVdSbElHRnplVzVqSUhWd1pHRjBaVTlpYzJWeWRtVnljeWhjYmlBZ0lDQjBZV0pzWlRvZ1EyOXVjM1J5ZFdOMGIzSThUVDRnZkNCemRISnBibWNzWEc0Z0lDQWdaWFpsYm5RNklFOXdaWEpoZEdsdmJrdGxlWE1nZkNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0J6ZEhKcGJtY3NYRzRnSUNBZ2FXUTZJRVYyWlc1MFNXUnpMRnh1SUNBZ0lDNHVMbUZ5WjNNNklFTnZiblJsZUhSMVlXeEJjbWR6UEVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRENWNiaUFnS1RvZ1VISnZiV2x6WlR4MmIybGtQaUI3WEc0Z0lDQWdhV1lnS0NGMGFHbHpMbTl0YVhSMFpXUkZkbVZ1ZEhNZ2ZId2dJWFJvYVhNdWIyMXBkSFJsWkVWMlpXNTBjeTVwYm1Oc2RXUmxjeWhsZG1WdWRDa3BYRzRnSUNBZ0lDQnlaWFIxY200Z1lYZGhhWFFnYzNWd1pYSXVkWEJrWVhSbFQySnpaWEoyWlhKektIUmhZbXhsTENCbGRtVnVkQ3dnYVdRc0lDNHVMbUZ5WjNNcE8xeHVJQ0I5WEc1Y2JpQWdjSEp2ZEdWamRHVmtJRzkyWlhKeWFXUmxJR3h2WjBOMGVEeGNiaUFnSUNCQlVrZFRJR1Y0ZEdWdVpITWdZVzU1VzEwZ1BTQmhibmxiWFN4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5Qk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpQTlJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNBK0tGeHVJQ0FnSUdGeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc0lFRlNSMU0rTEZ4dUlDQWdJRzl3WlhKaGRHbHZiam9nVFVWVVNFOUVYRzRnSUNrNklFTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN6eGNiaUFnSUNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ1FWSkhVeXhjYmlBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCemRISnBibWNnUHlCMGNuVmxJRG9nWm1Gc2MyVmNiaUFnUGp0Y2JpQWdjSEp2ZEdWamRHVmtJRzkyWlhKeWFXUmxJR3h2WjBOMGVEeGNiaUFnSUNCQlVrZFRJR1Y0ZEdWdVpITWdZVzU1VzEwZ1BTQmhibmxiWFN4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5Qk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpQTlJRTFsZEdodlpFOXlUM0JsY21GMGFXOXVMRnh1SUNBK0tGeHVJQ0FnSUdGeVozTTZJRTFoZVdKbFEyOXVkR1Y0ZEhWaGJFRnlaenhHWVdKeWFXTkRiMjUwY21GamRFTnZiblJsZUhRc0lFRlNSMU0rTEZ4dUlDQWdJRzl3WlhKaGRHbHZiam9nVFVWVVNFOUVMRnh1SUNBZ0lHRnNiRzkzUTNKbFlYUmxPaUJtWVd4elpWeHVJQ0FwT2lCRGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFhHNGdJQ0FnUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0FnSUVGU1IxTXNYRzRnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFhHNGdJRDQ3WEc0Z0lIQnliM1JsWTNSbFpDQnZkbVZ5Y21sa1pTQnNiMmREZEhnOFhHNGdJQ0FnUVZKSFV5QmxlSFJsYm1SeklHRnVlVnRkSUQwZ1lXNTVXMTBzWEc0Z0lDQWdUVVZVU0U5RUlHVjRkR1Z1WkhNZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0Z1BTQk5aWFJvYjJSUGNrOXdaWEpoZEdsdmJpeGNiaUFnUGloY2JpQWdJQ0JoY21kek9pQk5ZWGxpWlVOdmJuUmxlSFIxWVd4QmNtYzhSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTENCQlVrZFRQaXhjYmlBZ0lDQnZjR1Z5WVhScGIyNDZJRTFGVkVoUFJDeGNiaUFnSUNCaGJHeHZkME55WldGMFpUb2dkSEoxWlZ4dUlDQXBPaUJRY205dGFYTmxQRnh1SUNBZ0lFTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN6eGNiaUFnSUNBZ0lFWmhZbkpwWTBOdmJuUnlZV04wUTI5dWRHVjRkQ3hjYmlBZ0lDQWdJRUZTUjFNc1hHNGdJQ0FnSUNCTlJWUklUMFFnWlhoMFpXNWtjeUJ6ZEhKcGJtY2dQeUIwY25WbElEb2dabUZzYzJWY2JpQWdJQ0ErWEc0Z0lENDdYRzRnSUhCeWIzUmxZM1JsWkNCdmRtVnljbWxrWlNCc2IyZERkSGc4WEc0Z0lDQWdRVkpIVXlCbGVIUmxibVJ6SUdGdWVWdGRJRDBnWVc1NVcxMHNYRzRnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nVFdWMGFHOWtUM0pQY0dWeVlYUnBiMjRnUFNCTlpYUm9iMlJQY2s5d1pYSmhkR2x2Yml4Y2JpQWdQaWhjYmlBZ0lDQmhjbWR6T2lCTllYbGlaVU52Ym5SbGVIUjFZV3hCY21jOFJtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMQ0JCVWtkVFBpeGNiaUFnSUNCdmNHVnlZWFJwYjI0NklFMUZWRWhQUkN4Y2JpQWdJQ0JoYkd4dmQwTnlaV0YwWlRvZ2RISjFaU3hjYmlBZ0lDQnZkbVZ5Y21sa1pYTS9PaUJRWVhKMGFXRnNQRVpoWW5KcFkwTnZiblJ5WVdOMFJteGhaM00rWEc0Z0lDazZJRkJ5YjIxcGMyVThYRzRnSUNBZ1EyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBGeHVJQ0FnSUNBZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBMRnh1SUNBZ0lDQWdRVkpIVXl4Y2JpQWdJQ0FnSUUxRlZFaFBSQ0JsZUhSbGJtUnpJSE4wY21sdVp5QS9JSFJ5ZFdVZ09pQm1ZV3h6WlZ4dUlDQWdJRDVjYmlBZ1BqdGNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUd4dlowTjBlRHhjYmlBZ0lDQkJVa2RUSUdWNGRHVnVaSE1nWVc1NVcxMGdQU0JoYm5sYlhTeGNiaUFnSUNCTlJWUklUMFFnWlhoMFpXNWtjeUJOWlhSb2IyUlBjazl3WlhKaGRHbHZiaUE5SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1TEZ4dUlDQStLRnh1SUNBZ0lHRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNJRUZTUjFNK0xGeHVJQ0FnSUc5d1pYSmhkR2x2YmpvZ1RVVlVTRTlFTEZ4dUlDQWdJR0ZzYkc5M1EzSmxZWFJsT2lCbVlXeHpaU3hjYmlBZ0lDQnZkbVZ5Y21sa1pYTS9PaUJRWVhKMGFXRnNQRVpoWW5KcFkwTnZiblJ5WVdOMFJteGhaM00rWEc0Z0lDazZJRU52Ym5SbGVIUjFZV3hwZW1Wa1FYSm5jenhjYmlBZ0lDQkdZV0p5YVdORGIyNTBjbUZqZEVOdmJuUmxlSFFzWEc0Z0lDQWdRVkpIVXl4Y2JpQWdJQ0JOUlZSSVQwUWdaWGgwWlc1a2N5QnpkSEpwYm1jZ1B5QjBjblZsSURvZ1ptRnNjMlZjYmlBZ1BqdGNiaUFnY0hKdmRHVmpkR1ZrSUc5MlpYSnlhV1JsSUd4dlowTjBlRHhjYmlBZ0lDQkJVa2RUSUdWNGRHVnVaSE1nWVc1NVcxMGdQU0JoYm5sYlhTeGNiaUFnSUNCTlJWUklUMFFnWlhoMFpXNWtjeUJOWlhSb2IyUlBjazl3WlhKaGRHbHZiaUE5SUUxbGRHaHZaRTl5VDNCbGNtRjBhVzl1TEZ4dUlDQStLRnh1SUNBZ0lHRnlaM002SUUxaGVXSmxRMjl1ZEdWNGRIVmhiRUZ5Wnp4R1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNJRUZTUjFNK0xGeHVJQ0FnSUc5d1pYSmhkR2x2YmpvZ1RVVlVTRTlFTEZ4dUlDQWdJR0ZzYkc5M1EzSmxZWFJsUHpvZ1ltOXZiR1ZoYml4Y2JpQWdJQ0J2ZG1WeWNtbGtaWE0vT2lCUVlYSjBhV0ZzUEVaaFluSnBZME52Ym5SeVlXTjBSbXhoWjNNK1hHNGdJQ2s2WEc0Z0lDQWdmQ0JEYjI1MFpYaDBkV0ZzYVhwbFpFRnlaM004WEc0Z0lDQWdJQ0FnSUVaaFluSnBZME52Ym5SeVlXTjBRMjl1ZEdWNGRDeGNiaUFnSUNBZ0lDQWdRVkpIVXl4Y2JpQWdJQ0FnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFhHNGdJQ0FnSUNBK1hHNGdJQ0FnZkNCUWNtOXRhWE5sUEZ4dUlDQWdJQ0FnSUNCRGIyNTBaWGgwZFdGc2FYcGxaRUZ5WjNNOFhHNGdJQ0FnSUNBZ0lDQWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJQ0FnSUNBZ0lFRlNSMU1zWEc0Z0lDQWdJQ0FnSUNBZ1RVVlVTRTlFSUdWNGRHVnVaSE1nYzNSeWFXNW5JRDhnZEhKMVpTQTZJR1poYkhObFhHNGdJQ0FnSUNBZ0lENWNiaUFnSUNBZ0lENGdlMXh1SUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUhOMWNHVnlMbXh2WjBOMGVDaGhjbWR6TENCdmNHVnlZWFJwYjI0c0lHRnNiRzkzUTNKbFlYUmxJR0Z6SUdGdWVTd2diM1psY25KcFpHVnpLVHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTVqYkdWaGJrTnZiblJsZUhSMVlXeHBlbVZrUVhKbmN5aHlaWE4xYkhRcE8xeHVJQ0I5WEc1Y2JpQWdjSEpwZG1GMFpTQmpiR1ZoYmtOdmJuUmxlSFIxWVd4cGVtVmtRWEpuY3p4Y2JpQWdJQ0JCVWtkVElHVjRkR1Z1WkhNZ1lXNTVXMTBzWEc0Z0lDQWdUVVZVU0U5RUlHVjRkR1Z1WkhNZ1RXVjBhRzlrVDNKUGNHVnlZWFJwYjI0c1hHNGdJRDRvWEc0Z0lDQWdZWEpuY3pwY2JpQWdJQ0FnSUh3Z1EyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBGeHVJQ0FnSUNBZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ0lDQkJVa2RUTEZ4dUlDQWdJQ0FnSUNBZ0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpWeHVJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQjhJRkJ5YjIxcGMyVThYRzRnSUNBZ0lDQWdJQ0FnUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6UEZ4dUlDQWdJQ0FnSUNBZ0lDQWdSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwTEZ4dUlDQWdJQ0FnSUNBZ0lDQWdRVkpIVXl4Y2JpQWdJQ0FnSUNBZ0lDQWdJRTFGVkVoUFJDQmxlSFJsYm1SeklITjBjbWx1WnlBL0lIUnlkV1VnT2lCbVlXeHpaVnh1SUNBZ0lDQWdJQ0FnSUQ1Y2JpQWdJQ0FnSUNBZ1BseHVJQ0FwT2x4dUlDQWdJSHdnUTI5dWRHVjRkSFZoYkdsNlpXUkJjbWR6UEZ4dUlDQWdJQ0FnSUNCR1lXSnlhV05EYjI1MGNtRmpkRU52Ym5SbGVIUXNYRzRnSUNBZ0lDQWdJRUZTUjFNc1hHNGdJQ0FnSUNBZ0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpWeHVJQ0FnSUNBZ1BseHVJQ0FnSUh3Z1VISnZiV2x6WlR4Y2JpQWdJQ0FnSUNBZ1EyOXVkR1Y0ZEhWaGJHbDZaV1JCY21kelBGeHVJQ0FnSUNBZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUNBZ0lDQkJVa2RUTEZ4dUlDQWdJQ0FnSUNBZ0lFMUZWRWhQUkNCbGVIUmxibVJ6SUhOMGNtbHVaeUEvSUhSeWRXVWdPaUJtWVd4elpWeHVJQ0FnSUNBZ0lDQStYRzRnSUNBZ0lDQStJSHRjYmlBZ0lDQnBaaUFvWVhKbmN5QnBibk4wWVc1alpXOW1JRkJ5YjIxcGMyVXBJSHRjYmlBZ0lDQWdJSEpsZEhWeWJpQmhjbWR6TG5Sb1pXNG9LR04wZUVGeVozTXBJRDArSUhSb2FYTXVZWEJ3YkhsRGJHVmhia052Ym5SbGVIUW9ZM1I0UVhKbmN5a3BPMXh1SUNBZ0lIMWNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NWhjSEJzZVVOc1pXRnVRMjl1ZEdWNGRDaGhjbWR6S1R0Y2JpQWdmVnh1WEc0Z0lIQnlhWFpoZEdVZ1lYQndiSGxEYkdWaGJrTnZiblJsZUhROFhHNGdJQ0FnUVZKSFV5QmxlSFJsYm1SeklHRnVlVnRkTEZ4dUlDQWdJRTFGVkVoUFJDQmxlSFJsYm1SeklFMWxkR2h2WkU5eVQzQmxjbUYwYVc5dUxGeHVJQ0ErS0Z4dUlDQWdJR04wZUVGeVozTTZJRU52Ym5SbGVIUjFZV3hwZW1Wa1FYSm5jenhjYmlBZ0lDQWdJRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEN4Y2JpQWdJQ0FnSUVGU1IxTXNYRzRnSUNBZ0lDQk5SVlJJVDBRZ1pYaDBaVzVrY3lCemRISnBibWNnUHlCMGNuVmxJRG9nWm1Gc2MyVmNiaUFnSUNBK1hHNGdJQ2tnZTF4dUlDQWdJSFJvYVhNdVkyeGxZVzVEYjI1MFpYaDBLR04wZUVGeVozTXVZM1I0S1R0Y2JpQWdJQ0J5WlhSMWNtNGdZM1I0UVhKbmN6dGNiaUFnZlZ4dVhHNGdJSEJ5YVhaaGRHVWdZMnhsWVc1RGIyNTBaWGgwS0dOMGVEb2dSbUZpY21salEyOXVkSEpoWTNSRGIyNTBaWGgwS1RvZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSHRjYmlBZ0lDQmpkSGd1Y0hWMEtGd2ljMlZuY21WbllYUmxaRndpTENCMWJtUmxabWx1WldRcE8xeHVJQ0FnSUdOMGVDNXdkWFFvWENKaGJHeHZkMGRoZEdWM1lYbFBkbVZ5Y21sa1pWd2lMQ0IxYm1SbFptbHVaV1FwTzF4dUlDQWdJSEpsZEhWeWJpQmpkSGc3WEc0Z0lIMWNibjFjYmx4dVlYTjVibU1nWm5WdVkzUnBiMjRnWTI5MWJuUlRkRzl5WldSRmJuUnlhV1Z6UEUwZ1pYaDBaVzVrY3lCTmIyUmxiRDRvWEc0Z0lHTjBlRG9nUm1GaWNtbGpRMjl1ZEhKaFkzUkRiMjUwWlhoMExGeHVJQ0JqYkdGNmVqb2dRMjl1YzNSeWRXTjBiM0k4VFQ1Y2JpazZJRkJ5YjIxcGMyVThiblZ0WW1WeUlId2dkVzVrWldacGJtVmtQaUI3WEc0Z0lHTnZibk4wSUhOMGRXSWdQU0JqZEhnL0xuTjBkV0lnWVhOY2JpQWdJQ0I4SUh0Y2JpQWdJQ0FnSUNBZ2MzUmhkR1UvT2lCU1pXTnZjbVE4YzNSeWFXNW5MQ0JDZFdabVpYSStPMXh1SUNBZ0lDQWdJQ0J3Y21sMllYUmxVM1JoZEdVL09pQlNaV052Y21ROGMzUnlhVzVuTENCU1pXTnZjbVE4YzNSeWFXNW5MQ0JDZFdabVpYSStQanRjYmlBZ0lDQWdJQ0FnWjJWMFUzUmhkR1ZDZVZCaGNuUnBZV3hEYjIxd2IzTnBkR1ZMWlhrL09pQW9YRzRnSUNBZ0lDQWdJQ0FnYjJKcVpXTjBWSGx3WlRvZ2MzUnlhVzVuTEZ4dUlDQWdJQ0FnSUNBZ0lHRjBkSEpwWW5WMFpYTTZJSE4wY21sdVoxdGRYRzRnSUNBZ0lDQWdJQ2tnUFQ0Z1VISnZiV2x6WlR4aGJuaytPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lId2dkVzVrWldacGJtVmtPMXh1SUNCcFppQW9JWE4wZFdJcElISmxkSFZ5YmlCMWJtUmxabWx1WldRN1hHNWNiaUFnWTI5dWMzUWdkR0ZpYkdVZ1BTQk5iMlJsYkM1MFlXSnNaVTVoYldVb1kyeGhlbm9wTzF4dUlDQmpiMjV6ZENCd2NtVm1hWGdnUFNCZ0pIdDBZV0pzWlgxZllEdGNiaUFnWTI5dWMzUWdjMlZsYmlBOUlHNWxkeUJUWlhROGMzUnlhVzVuUGlncE8xeHVYRzRnSUdsbUlDaDBlWEJsYjJZZ2MzUjFZaTVuWlhSVGRHRjBaVUo1VUdGeWRHbGhiRU52YlhCdmMybDBaVXRsZVNBOVBUMGdYQ0ptZFc1amRHbHZibHdpS1NCN1hHNGdJQ0FnWTI5dWMzUWdhWFJsY21GMGIzSWdQU0JoZDJGcGRDQnpkSFZpTG1kbGRGTjBZWFJsUW5sUVlYSjBhV0ZzUTI5dGNHOXphWFJsUzJWNUtIUmhZbXhsTENCYlhTazdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSGRvYVd4bElDaDBjblZsS1NCN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUhKbGMzVnNkQ0E5SUdGM1lXbDBJR2wwWlhKaGRHOXlMbTVsZUhRb0tUdGNiaUFnSUNBZ0lDQWdhV1lnS0hKbGMzVnNkRDh1Wkc5dVpTa2dZbkpsWVdzN1hHNGdJQ0FnSUNBZ0lHTnZibk4wSUd0bGVTQTlJSEpsYzNWc2REOHVkbUZzZFdVL0xtdGxlVHRjYmlBZ0lDQWdJQ0FnYVdZZ0tHdGxlU0FtSmlCclpYa3VjM1JoY25SelYybDBhQ2h3Y21WbWFYZ3BLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2MyVmxiaTVoWkdRb2EyVjVLVHRjYmlBZ0lDQWdJQ0FnZlZ4dUlDQWdJQ0FnZlZ4dUlDQWdJSDBnWm1sdVlXeHNlU0I3WEc0Z0lDQWdJQ0JwWmlBb2FYUmxjbUYwYjNJZ0ppWWdkSGx3Wlc5bUlHbDBaWEpoZEc5eUxtTnNiM05sSUQwOVBTQmNJbVoxYm1OMGFXOXVYQ0lwSUh0Y2JpQWdJQ0FnSUNBZ1lYZGhhWFFnYVhSbGNtRjBiM0l1WTJ4dmMyVW9LVHRjYmlBZ0lDQWdJSDFjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0JwWmlBb2MzUjFZaTV6ZEdGMFpTa2dlMXh1SUNBZ0lFOWlhbVZqZEM1clpYbHpLSE4wZFdJdWMzUmhkR1VwWEc0Z0lDQWdJQ0F1Wm1sc2RHVnlLQ2hyWlhrcElEMCtJR3RsZVM1emRHRnlkSE5YYVhSb0tIQnlaV1pwZUNrcFhHNGdJQ0FnSUNBdVptOXlSV0ZqYUNnb2EyVjVLU0E5UGlCelpXVnVMbUZrWkNoclpYa3BLVHRjYmlBZ2ZWeHVYRzRnSUdOdmJuTjBJSHNnY0hKcGRtRjBaVU52YkhNc0lITm9ZWEpsWkVOdmJITWdmU0E5SUUxdlpHVnNMbU52Ykd4bFkzUnBiMjV6Um05eUtHTnNZWHA2S1R0Y2JpQWdZMjl1YzNRZ2NtVnpiMngyWlhKeklEMGdXeTR1TG5CeWFYWmhkR1ZEYjJ4ekxDQXVMaTV6YUdGeVpXUkRiMnh6WFR0Y2JpQWdhV1lnS0hKbGMyOXNkbVZ5Y3k1c1pXNW5kR2dnSmlZZ2MzUjFZaTV3Y21sMllYUmxVM1JoZEdVcElIdGNiaUFnSUNCamIyNXpkQ0J0YzNBZ1BTQmxlSFJ5WVdOMFRYTndTV1FvWTNSNExtbGtaVzUwYVhSNUtUdGNiaUFnSUNCamIyNXpkQ0JqYjJ4c1pXTjBhVzl1Y3lBOUlHRjNZV2wwSUZCeWIyMXBjMlV1WVd4c0tGeHVJQ0FnSUNBZ2NtVnpiMngyWlhKekxtMWhjQ2dvY21WemIyeDJaWElwSUQwK1hHNGdJQ0FnSUNBZ0lIUjVjR1Z2WmlCeVpYTnZiSFpsY2lBOVBUMGdYQ0p6ZEhKcGJtZGNJaUEvSUhKbGMyOXNkbVZ5SURvZ2NtVnpiMngyWlhJb1kyeGhlbm9zSUcxemNDd2dZM1I0S1Z4dUlDQWdJQ0FnS1Z4dUlDQWdJQ2s3WEc0Z0lDQWdabTl5SUNoamIyNXpkQ0JqYjJ4c1pXTjBhVzl1SUc5bUlHTnZiR3hsWTNScGIyNXpLU0I3WEc0Z0lDQWdJQ0JqYjI1emRDQmxiblJ5YVdWeklEMGdjM1IxWWk1d2NtbDJZWFJsVTNSaGRHVmJZMjlzYkdWamRHbHZibDA3WEc0Z0lDQWdJQ0JwWmlBb0lXVnVkSEpwWlhNcElHTnZiblJwYm5WbE8xeHVJQ0FnSUNBZ1QySnFaV04wTG10bGVYTW9aVzUwY21sbGN5bGNiaUFnSUNBZ0lDQWdMbVpwYkhSbGNpZ29hMlY1S1NBOVBpQnJaWGt1YzNSaGNuUnpWMmwwYUNod2NtVm1hWGdwS1Z4dUlDQWdJQ0FnSUNBdVptOXlSV0ZqYUNnb2EyVjVLU0E5UGlCelpXVnVMbUZrWkNoclpYa3BLVHRjYmlBZ0lDQjlYRzRnSUgxY2JseHVJQ0J5WlhSMWNtNGdjMlZsYmk1emFYcGxJRDhnYzJWbGJpNXphWHBsSURvZ2RXNWtaV1pwYm1Wa08xeHVmVnh1SWwxOSJdfQ==
|
|
@@ -93,5 +93,5 @@ class FabricContractRepositoryObservableHandler extends core_1.ObserverHandler {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
exports.FabricContractRepositoryObservableHandler = FabricContractRepositoryObservableHandler;
|
|
96
|
-
//# sourceMappingURL=
|
|
97
|
-
//# sourceMappingURL=FabricContractRepositoryObservableHandler.js.map
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RzL0ZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsT0FBTyxFQUdQLGVBQWUsR0FDaEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsOEJBQXlCO0FBSTNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxPQUFPLHlDQUEwQyxTQUFRLGVBQWU7SUFDNUU7Ozs7T0FJRztJQUNILFlBQ1Usa0JBSUY7UUFDSixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtRQUNwQixhQUFhLENBQUMsTUFBTTtRQUNwQixxQkFBcUIsQ0FBQyxVQUFVO1FBQ2hDLHFCQUFxQixDQUFDLFVBQVU7UUFDaEMscUJBQXFCLENBQUMsVUFBVTtLQUNqQztRQUVELEtBQUssRUFBRSxDQUFDO1FBYkEsb0JBQWUsR0FBZixlQUFlLENBV3RCO0lBR0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNNLEtBQUssQ0FBQyxlQUFlLENBQzVCLEtBQWdDLEVBQ2hDLEtBQXFELEVBQ3JELEVBQVksRUFDWixHQUFHLElBQTJDO1FBRTlDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FDakMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsS0FBSyxFQUNMLEtBQUssRUFDTCxHQUFHLElBQUksQ0FDUixDQUFDO1FBQ0YsSUFBSSxHQUFHLENBQUMsaUJBQWlCO1lBQUUsT0FBTztRQUNsQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUk7WUFBRSxPQUFPO1FBQ3RCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDckIsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQy9DLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLHVCQUF1QixDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDL0QsTUFBTSxTQUFTLEdBQTRCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQ3RELElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUN2RCxTQUFTLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUM3QixDQUFDO1lBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0QsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cywgT3BlcmF0aW9uS2V5cyB9IGZyb20gXCJAZGVjYWYtdHMvZGItZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtcbiAgQWRhcHRlcixcbiAgQ29udGV4dHVhbEFyZ3MsXG4gIEV2ZW50SWRzLFxuICBPYnNlcnZlckhhbmRsZXIsXG59IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWUgfSBmcm9tIFwiLi4vc2hhcmVkL2V2ZW50c1wiO1xuaW1wb3J0IHsgRmFicmljQ29udHJhY3RDb250ZXh0IH0gZnJvbSBcIi4vQ29udHJhY3RDb250ZXh0XCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RvciB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBPYnNlcnZlciBoYW5kbGVyIGZvciBGYWJyaWMgY2hhaW5jb2RlIGV2ZW50c1xuICogQHN1bW1hcnkgRW1pdHMgZXZlbnRzIG9uIHRoZSBGYWJyaWMgbGVkZ2VyIHdoZW4gcmVwb3NpdG9yeSBvcGVyYXRpb25zIG9jY3VyXG4gKiBAY2xhc3MgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXJcbiAqIEBleHRlbmRzIHtPYnNlcnZlckhhbmRsZXJ9XG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogLy8gSW4gYSBGYWJyaWMgY2hhaW5jb2RlIGNvbnRyYWN0XG4gKiBpbXBvcnQgeyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlciB9IGZyb20gJ0BkZWNhZi10cy9mb3ItZmFicmljJztcbiAqXG4gKiAvLyBDcmVhdGUgYSBoYW5kbGVyIHdpdGggZGVmYXVsdCBzdXBwb3J0ZWQgZXZlbnRzXG4gKiBjb25zdCBoYW5kbGVyID0gbmV3IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyKCk7XG4gKlxuICogLy8gRW1pdCBhbiBldmVudFxuICogYXdhaXQgaGFuZGxlci51cGRhdGVPYnNlcnZlcnMoXG4gKiAgIGxvZ2dlcixcbiAqICAgJ2Fzc2V0cycsXG4gKiAgIE9wZXJhdGlvbktleXMuQ1JFQVRFLFxuICogICAnYXNzZXQxJyxcbiAqICAgY29udGV4dFxuICogKTtcbiAqIGBgYFxuICogQG1lcm1haWRcbiAqIHNlcXVlbmNlRGlhZ3JhbVxuICogICBwYXJ0aWNpcGFudCBSZXBvc2l0b3J5XG4gKiAgIHBhcnRpY2lwYW50IE9ic2VydmFibGVIYW5kbGVyXG4gKiAgIHBhcnRpY2lwYW50IFN0dWJcbiAqICAgcGFydGljaXBhbnQgTGVkZ2VyXG4gKlxuICogICBSZXBvc2l0b3J5LT4+T2JzZXJ2YWJsZUhhbmRsZXI6IHVwZGF0ZU9ic2VydmVycyhsb2csIHRhYmxlLCBldmVudCwgaWQsIGN0eClcbiAqICAgT2JzZXJ2YWJsZUhhbmRsZXItPj5PYnNlcnZhYmxlSGFuZGxlcjogQ2hlY2sgaWYgZXZlbnQgaXMgc3VwcG9ydGVkXG4gKiAgIE9ic2VydmFibGVIYW5kbGVyLT4+T2JzZXJ2YWJsZUhhbmRsZXI6IGdlbmVyYXRlRmFicmljRXZlbnROYW1lKHRhYmxlLCBldmVudCwgb3duZXIpXG4gKiAgIE9ic2VydmFibGVIYW5kbGVyLT4+U3R1Yjogc2V0RXZlbnQoZXZlbnROYW1lLCBwYXlsb2FkKVxuICogICBTdHViLT4+TGVkZ2VyOiBSZWNvcmQgZXZlbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIGV4dGVuZHMgT2JzZXJ2ZXJIYW5kbGVyIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyIGluc3RhbmNlXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIHRoZSBoYW5kbGVyIHdpdGggYSBsaXN0IG9mIHN1cHBvcnRlZCBldmVudHNcbiAgICogQHBhcmFtIHtBcnJheTxPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nPn0gW3N1cHBvcnRlZEV2ZW50c10gLSBFdmVudHMgdGhhdCB3aWxsIHRyaWdnZXIgRmFicmljIGV2ZW50c1xuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdXBwb3J0ZWRFdmVudHM6IChcbiAgICAgIHwgT3BlcmF0aW9uS2V5c1xuICAgICAgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXNcbiAgICAgIHwgc3RyaW5nXG4gICAgKVtdID0gW1xuICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICBPcGVyYXRpb25LZXlzLlVQREFURSxcbiAgICAgIE9wZXJhdGlvbktleXMuREVMRVRFLFxuICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsXG4gICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuVVBEQVRFX0FMTCxcbiAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5ERUxFVEVfQUxMLFxuICAgIF1cbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBvYnNlcnZlcnMgYnkgZW1pdHRpbmcgRmFicmljIGV2ZW50c1xuICAgKiBAc3VtbWFyeSBFbWl0cyBldmVudHMgb24gdGhlIEZhYnJpYyBsZWRnZXIgZm9yIHN1cHBvcnRlZCBldmVudCB0eXBlc1xuICAgKiBAcGFyYW0ge0xvZ2dlcn0gbG9nIC0gTG9nZ2VyIGluc3RhbmNlIGZvciBkZWJ1Z2dpbmdcbiAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIHRhYmxlL2NvbGxlY3Rpb24gbmFtZVxuICAgKiBAcGFyYW0ge09wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmd9IGV2ZW50IC0gVGhlIGV2ZW50IHR5cGVcbiAgICogQHBhcmFtIHtFdmVudElkc30gaWQgLSBUaGUgZXZlbnQgaWRlbnRpZmllclxuICAgKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY3R4IC0gVGhlIEZhYnJpYyBjb250cmFjdCBjb250ZXh0XG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbb3duZXJdIC0gT3B0aW9uYWwgb3duZXIgaWRlbnRpZmllciBmb3IgdGhlIGV2ZW50XG4gICAqIEBwYXJhbSB7b2JqZWN0IHwgc3RyaW5nIHwgdW5kZWZpbmVkfSBbb3duZXJdIC0gT3B0aW9uYWwgcGF5bG9hZCBmb3IgdGhlIGV2ZW50XG4gICAqXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59IFByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBldmVudCBpcyBlbWl0dGVkXG4gICAqL1xuICBvdmVycmlkZSBhc3luYyB1cGRhdGVPYnNlcnZlcnMoXG4gICAgY2xheno6IHN0cmluZyB8IENvbnN0cnVjdG9yPGFueT4sXG4gICAgZXZlbnQ6IE9wZXJhdGlvbktleXMgfCBCdWxrQ3J1ZE9wZXJhdGlvbktleXMgfCBzdHJpbmcsXG4gICAgaWQ6IEV2ZW50SWRzLFxuICAgIC4uLmFyZ3M6IENvbnRleHR1YWxBcmdzPEZhYnJpY0NvbnRyYWN0Q29udGV4dD5cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgeyBsb2csIGN0eCB9ID0gQWRhcHRlci5sb2dDdHg8RmFicmljQ29udHJhY3RDb250ZXh0PihcbiAgICAgIHRoaXMudXBkYXRlT2JzZXJ2ZXJzLFxuICAgICAgZXZlbnQsXG4gICAgICBmYWxzZSxcbiAgICAgIC4uLmFyZ3NcbiAgICApO1xuICAgIGlmIChjdHguaXNGdWxseVNlZ3JlZ2F0ZWQpIHJldHVybjtcbiAgICBpZiAoIWN0eC5zdHViKSByZXR1cm47XG4gICAgY29uc3QgeyBzdHViIH0gPSBjdHg7XG4gICAgY29uc3QgW293bmVyLCBwYXlsb2FkXSA9IGFyZ3M7XG4gICAgY29uc3QgdGFibGUgPSB0eXBlb2YgY2xhenogPT09IFwic3RyaW5nXCIgPyBjbGF6eiA6IGNsYXp6Lm5hbWU7XG4gICAgaWYgKHRoaXMuc3VwcG9ydGVkRXZlbnRzLmluZGV4T2YoZXZlbnQpICE9PSAtMSkge1xuICAgICAgbG9nLmRlYnVnKGBFbWl0dGluZyAke2V2ZW50fSBldmVudGApO1xuICAgICAgY29uc3QgZXZlbnROYW1lID0gZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWUodGFibGUsIGV2ZW50LCBvd25lcik7XG4gICAgICBjb25zdCBldmVudERhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0geyBpZDogaWQgfTtcbiAgICAgIGlmIChjdHguZ2V0T3JVbmRlZmluZWQoXCJvYnNlcnZlRnVsbFJlc3VsdFwiKSAmJiBwYXlsb2FkKSB7XG4gICAgICAgIGV2ZW50RGF0YS5yZXN1bHQgPSBwYXlsb2FkO1xuICAgICAgfVxuICAgICAgc3R1Yi5zZXRFdmVudChldmVudE5hbWUsIEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGV2ZW50RGF0YSkpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc3R1Yi5zZXRFdmVudChldmVudCwgQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocGF5bG9hZCkpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBK0U7QUFDL0UseUNBQTJEO0FBQzNELHFEQUFnRTtBQUNoRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQWEseUNBQTBDLFNBQVEsc0JBQWU7SUFDMUU7Ozs7T0FJRztJQUNILFlBQVksZUFBZSxHQUFHO1FBQzFCLDZCQUFhLENBQUMsTUFBTTtRQUNwQiw2QkFBYSxDQUFDLE1BQU07UUFDcEIsNkJBQWEsQ0FBQyxNQUFNO1FBQ3BCLHFDQUFxQixDQUFDLFVBQVU7UUFDaEMscUNBQXFCLENBQUMsVUFBVTtRQUNoQyxxQ0FBcUIsQ0FBQyxVQUFVO0tBQ25DO1FBQ0csS0FBSyxFQUFFLENBQUM7UUFDUixJQUFJLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztJQUMzQyxDQUFDO0lBQ0Q7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxHQUFHLElBQUk7UUFDM0MsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxjQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pGLElBQUksR0FBRyxDQUFDLGlCQUFpQjtZQUNyQixPQUFPO1FBQ1gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ1QsT0FBTztRQUNYLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDckIsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDOUIsTUFBTSxLQUFLLEdBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFDN0QsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdDLEdBQUcsQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sU0FBUyxHQUFHLElBQUEsbUNBQXVCLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvRCxNQUFNLFNBQVMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3QixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDckQsU0FBUyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUM7WUFDL0IsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQzthQUNJLENBQUM7WUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDTCxDQUFDO0NBQ0o7QUFwREQsOEZBb0RDO0FBQ0Qsc3BQQUFzcFAiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWxrQ3J1ZE9wZXJhdGlvbktleXMsIE9wZXJhdGlvbktleXMgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IEFkYXB0ZXIsIE9ic2VydmVySGFuZGxlciwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IGdlbmVyYXRlRmFicmljRXZlbnROYW1lIH0gZnJvbSBcIi4vLi4vc2hhcmVkL2V2ZW50cy5qc1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gT2JzZXJ2ZXIgaGFuZGxlciBmb3IgRmFicmljIGNoYWluY29kZSBldmVudHNcbiAqIEBzdW1tYXJ5IEVtaXRzIGV2ZW50cyBvbiB0aGUgRmFicmljIGxlZGdlciB3aGVuIHJlcG9zaXRvcnkgb3BlcmF0aW9ucyBvY2N1clxuICogQGNsYXNzIEZhYnJpY0NvbnRyYWN0UmVwb3NpdG9yeU9ic2VydmFibGVIYW5kbGVyXG4gKiBAZXh0ZW5kcyB7T2JzZXJ2ZXJIYW5kbGVyfVxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIEluIGEgRmFicmljIGNoYWluY29kZSBjb250cmFjdFxuICogaW1wb3J0IHsgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgfSBmcm9tICdAZGVjYWYtdHMvZm9yLWZhYnJpYyc7XG4gKlxuICogLy8gQ3JlYXRlIGEgaGFuZGxlciB3aXRoIGRlZmF1bHQgc3VwcG9ydGVkIGV2ZW50c1xuICogY29uc3QgaGFuZGxlciA9IG5ldyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlcigpO1xuICpcbiAqIC8vIEVtaXQgYW4gZXZlbnRcbiAqIGF3YWl0IGhhbmRsZXIudXBkYXRlT2JzZXJ2ZXJzKFxuICogICBsb2dnZXIsXG4gKiAgICdhc3NldHMnLFxuICogICBPcGVyYXRpb25LZXlzLkNSRUFURSxcbiAqICAgJ2Fzc2V0MScsXG4gKiAgIGNvbnRleHRcbiAqICk7XG4gKiBgYGBcbiAqIEBtZXJtYWlkXG4gKiBzZXF1ZW5jZURpYWdyYW1cbiAqICAgcGFydGljaXBhbnQgUmVwb3NpdG9yeVxuICogICBwYXJ0aWNpcGFudCBPYnNlcnZhYmxlSGFuZGxlclxuICogICBwYXJ0aWNpcGFudCBTdHViXG4gKiAgIHBhcnRpY2lwYW50IExlZGdlclxuICpcbiAqICAgUmVwb3NpdG9yeS0+Pk9ic2VydmFibGVIYW5kbGVyOiB1cGRhdGVPYnNlcnZlcnMobG9nLCB0YWJsZSwgZXZlbnQsIGlkLCBjdHgpXG4gKiAgIE9ic2VydmFibGVIYW5kbGVyLT4+T2JzZXJ2YWJsZUhhbmRsZXI6IENoZWNrIGlmIGV2ZW50IGlzIHN1cHBvcnRlZFxuICogICBPYnNlcnZhYmxlSGFuZGxlci0+Pk9ic2VydmFibGVIYW5kbGVyOiBnZW5lcmF0ZUZhYnJpY0V2ZW50TmFtZSh0YWJsZSwgZXZlbnQsIG93bmVyKVxuICogICBPYnNlcnZhYmxlSGFuZGxlci0+PlN0dWI6IHNldEV2ZW50KGV2ZW50TmFtZSwgcGF5bG9hZClcbiAqICAgU3R1Yi0+PkxlZGdlcjogUmVjb3JkIGV2ZW50XG4gKi9cbmV4cG9ydCBjbGFzcyBGYWJyaWNDb250cmFjdFJlcG9zaXRvcnlPYnNlcnZhYmxlSGFuZGxlciBleHRlbmRzIE9ic2VydmVySGFuZGxlciB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENyZWF0ZXMgYSBuZXcgRmFicmljQ29udHJhY3RSZXBvc2l0b3J5T2JzZXJ2YWJsZUhhbmRsZXIgaW5zdGFuY2VcbiAgICAgKiBAc3VtbWFyeSBJbml0aWFsaXplcyB0aGUgaGFuZGxlciB3aXRoIGEgbGlzdCBvZiBzdXBwb3J0ZWQgZXZlbnRzXG4gICAgICogQHBhcmFtIHtBcnJheTxPcGVyYXRpb25LZXlzIHwgQnVsa0NydWRPcGVyYXRpb25LZXlzIHwgc3RyaW5nPn0gW3N1cHBvcnRlZEV2ZW50c10gLSBFdmVudHMgdGhhdCB3aWxsIHRyaWdnZXIgRmFicmljIGV2ZW50c1xuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHN1cHBvcnRlZEV2ZW50cyA9IFtcbiAgICAgICAgT3BlcmF0aW9uS2V5cy5DUkVBVEUsXG4gICAgICAgIE9wZXJhdGlvbktleXMuVVBEQVRFLFxuICAgICAgICBPcGVyYXRpb25LZXlzLkRFTEVURSxcbiAgICAgICAgQnVsa0NydWRPcGVyYXRpb25LZXlzLkNSRUFURV9BTEwsXG4gICAgICAgIEJ1bGtDcnVkT3BlcmF0aW9uS2V5cy5VUERBVEVfQUxMLFxuICAgICAgICBCdWxrQ3J1ZE9wZXJhdGlvbktleXMuREVMRVRFX0FMTCxcbiAgICBdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuc3VwcG9ydGVkRXZlbnRzID0gc3VwcG9ydGVkRXZlbnRzO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyBvYnNlcnZlcnMgYnkgZW1pdHRpbmcgRmFicmljIGV2ZW50c1xuICAgICAqIEBzdW1tYXJ5IEVtaXRzIGV2ZW50cyBvbiB0aGUgRmFicmljIGxlZGdlciBmb3Igc3VwcG9ydGVkIGV2ZW50IHR5cGVzXG4gICAgICogQHBhcmFtIHtMb2dnZXJ9IGxvZyAtIExvZ2dlciBpbnN0YW5jZSBmb3IgZGVidWdnaW5nXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRhYmxlIC0gVGhlIHRhYmxlL2NvbGxlY3Rpb24gbmFtZVxuICAgICAqIEBwYXJhbSB7T3BlcmF0aW9uS2V5cyB8IEJ1bGtDcnVkT3BlcmF0aW9uS2V5cyB8IHN0cmluZ30gZXZlbnQgLSBUaGUgZXZlbnQgdHlwZVxuICAgICAqIEBwYXJhbSB7RXZlbnRJZHN9IGlkIC0gVGhlIGV2ZW50IGlkZW50aWZpZXJcbiAgICAgKiBAcGFyYW0ge0ZhYnJpY0NvbnRyYWN0Q29udGV4dH0gY3R4IC0gVGhlIEZhYnJpYyBjb250cmFjdCBjb250ZXh0XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IFtvd25lcl0gLSBPcHRpb25hbCBvd25lciBpZGVudGlmaWVyIGZvciB0aGUgZXZlbnRcbiAgICAgKiBAcGFyYW0ge29iamVjdCB8IHN0cmluZyB8IHVuZGVmaW5lZH0gW293bmVyXSAtIE9wdGlvbmFsIHBheWxvYWQgZm9yIHRoZSBldmVudFxuICAgICAqXG4gICAgICogQHJldHVybiB7UHJvbWlzZTx2b2lkPn0gUHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGV2ZW50IGlzIGVtaXR0ZWRcbiAgICAgKi9cbiAgICBhc3luYyB1cGRhdGVPYnNlcnZlcnMoY2xhenosIGV2ZW50LCBpZCwgLi4uYXJncykge1xuICAgICAgICBjb25zdCB7IGxvZywgY3R4IH0gPSBBZGFwdGVyLmxvZ0N0eCh0aGlzLnVwZGF0ZU9ic2VydmVycywgZXZlbnQsIGZhbHNlLCAuLi5hcmdzKTtcbiAgICAgICAgaWYgKGN0eC5pc0Z1bGx5U2VncmVnYXRlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFjdHguc3R1YilcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgeyBzdHViIH0gPSBjdHg7XG4gICAgICAgIGNvbnN0IFtvd25lciwgcGF5bG9hZF0gPSBhcmdzO1xuICAgICAgICBjb25zdCB0YWJsZSA9IHR5cGVvZiBjbGF6eiA9PT0gXCJzdHJpbmdcIiA/IGNsYXp6IDogY2xhenoubmFtZTtcbiAgICAgICAgaWYgKHRoaXMuc3VwcG9ydGVkRXZlbnRzLmluZGV4T2YoZXZlbnQpICE9PSAtMSkge1xuICAgICAgICAgICAgbG9nLmRlYnVnKGBFbWl0dGluZyAke2V2ZW50fSBldmVudGApO1xuICAgICAgICAgICAgY29uc3QgZXZlbnROYW1lID0gZ2VuZXJhdGVGYWJyaWNFdmVudE5hbWUodGFibGUsIGV2ZW50LCBvd25lcik7XG4gICAgICAgICAgICBjb25zdCBldmVudERhdGEgPSB7IGlkOiBpZCB9O1xuICAgICAgICAgICAgaWYgKGN0eC5nZXRPclVuZGVmaW5lZChcIm9ic2VydmVGdWxsUmVzdWx0XCIpICYmIHBheWxvYWQpIHtcbiAgICAgICAgICAgICAgICBldmVudERhdGEucmVzdWx0ID0gcGF5bG9hZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0dWIuc2V0RXZlbnQoZXZlbnROYW1lLCBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShldmVudERhdGEpKSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBzdHViLnNldEV2ZW50KGV2ZW50LCBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShwYXlsb2FkKSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2Jhc2U2NCxleUoyWlhKemFXOXVJam96TENKbWFXeGxJam9pUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVUMkp6WlhKMllXSnNaVWhoYm1Sc1pYSXVhbk1pTENKemIzVnlZMlZTYjI5MElqb2lJaXdpYzI5MWNtTmxjeUk2V3lJdUxpOHVMaTh1TGk5emNtTXZZMjl1ZEhKaFkzUnpMMFpoWW5KcFkwTnZiblJ5WVdOMFVtVndiM05wZEc5eWVVOWljMlZ5ZG1GaWJHVklZVzVrYkdWeUxuUnpJbDBzSW01aGJXVnpJanBiWFN3aWJXRndjR2x1WjNNaU9pSkJRVUZCTEU5QlFVOHNSVUZCUlN4eFFrRkJjVUlzUlVGQlJTeGhRVUZoTEVWQlFVVXNUVUZCVFN4NVFrRkJlVUlzUTBGQlF6dEJRVU12UlN4UFFVRlBMRVZCUTB3c1QwRkJUeXhGUVVkUUxHVkJRV1VzUjBGRGFFSXNUVUZCVFN4blFrRkJaMElzUTBGQlF6dEJRVU40UWl4UFFVRlBMRVZCUVVVc2RVSkJRWFZDTEVWQlFVVXNPRUpCUVhsQ08wRkJTVE5FT3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPMGRCYTBOSE8wRkJRMGdzVFVGQlRTeFBRVUZQTEhsRFFVRXdReXhUUVVGUkxHVkJRV1U3U1VGRE5VVTdPenM3VDBGSlJ6dEpRVU5JTEZsQlExVXNhMEpCU1VZN1VVRkRTaXhoUVVGaExFTkJRVU1zVFVGQlRUdFJRVU53UWl4aFFVRmhMRU5CUVVNc1RVRkJUVHRSUVVOd1FpeGhRVUZoTEVOQlFVTXNUVUZCVFR0UlFVTndRaXh4UWtGQmNVSXNRMEZCUXl4VlFVRlZPMUZCUTJoRExIRkNRVUZ4UWl4RFFVRkRMRlZCUVZVN1VVRkRhRU1zY1VKQlFYRkNMRU5CUVVNc1ZVRkJWVHRMUVVOcVF6dFJRVVZFTEV0QlFVc3NSVUZCUlN4RFFVRkRPMUZCWWtFc2IwSkJRV1VzUjBGQlppeGxRVUZsTEVOQlYzUkNPMGxCUjBnc1EwRkJRenRKUVVWRU96czdPenM3T3pzN096czdUMEZaUnp0SlFVTk5MRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRelZDTEV0QlFXZERMRVZCUTJoRExFdEJRWEZFTEVWQlEzSkVMRVZCUVZrc1JVRkRXaXhIUVVGSExFbEJRVEpETzFGQlJUbERMRTFCUVUwc1JVRkJSU3hIUVVGSExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NUMEZCVHl4RFFVRkRMRTFCUVUwc1EwRkRha01zU1VGQlNTeERRVUZETEdWQlFXVXNSVUZEY0VJc1MwRkJTeXhGUVVOTUxFdEJRVXNzUlVGRFRDeEhRVUZITEVsQlFVa3NRMEZEVWl4RFFVRkRPMUZCUTBZc1NVRkJTU3hIUVVGSExFTkJRVU1zYVVKQlFXbENPMWxCUVVVc1QwRkJUenRSUVVOc1F5eEpRVUZKTEVOQlFVTXNSMEZCUnl4RFFVRkRMRWxCUVVrN1dVRkJSU3hQUVVGUE8xRkJRM1JDTEUxQlFVMHNSVUZCUlN4SlFVRkpMRVZCUVVVc1IwRkJSeXhIUVVGSExFTkJRVU03VVVGRGNrSXNUVUZCVFN4RFFVRkRMRXRCUVVzc1JVRkJSU3hQUVVGUExFTkJRVU1zUjBGQlJ5eEpRVUZKTEVOQlFVTTdVVUZET1VJc1RVRkJUU3hMUVVGTExFZEJRVWNzVDBGQlR5eExRVUZMTEV0QlFVc3NVVUZCVVN4RFFVRkRMRU5CUVVNc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF5eERRVUZETEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNN1VVRkROMFFzU1VGQlNTeEpRVUZKTEVOQlFVTXNaVUZCWlN4RFFVRkRMRTlCUVU4c1EwRkJReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEVOQlFVTXNSVUZCUlN4RFFVRkRPMWxCUXk5RExFZEJRVWNzUTBGQlF5eExRVUZMTEVOQlFVTXNXVUZCV1N4TFFVRkxMRkZCUVZFc1EwRkJReXhEUVVGRE8xbEJRM0pETEUxQlFVMHNVMEZCVXl4SFFVRkhMSFZDUVVGMVFpeERRVUZETEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVc1MwRkJTeXhEUVVGRExFTkJRVU03V1VGREwwUXNUVUZCVFN4VFFVRlRMRWRCUVRSQ0xFVkJRVVVzUlVGQlJTeEZRVUZGTEVWQlFVVXNSVUZCUlN4RFFVRkRPMWxCUTNSRUxFbEJRVWtzUjBGQlJ5eERRVUZETEdOQlFXTXNRMEZCUXl4dFFrRkJiVUlzUTBGQlF5eEpRVUZKTEU5QlFVOHNSVUZCUlN4RFFVRkRPMmRDUVVOMlJDeFRRVUZUTEVOQlFVTXNUVUZCVFN4SFFVRkhMRTlCUVU4c1EwRkJRenRaUVVNM1FpeERRVUZETzFsQlEwUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhUUVVGVExFVkJRVVVzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExGTkJRVk1zUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0UlFVTnVSU3hEUVVGRE8yRkJRVTBzUTBGQlF6dFpRVU5PTEVsQlFVa3NRMEZCUXl4UlFVRlJMRU5CUVVNc1MwRkJTeXhGUVVGRkxFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zUTBGQlF5eERRVUZETEVOQlFVTTdVVUZETjBRc1EwRkJRenRKUVVOSUxFTkJRVU03UTBGRFJpSXNJbk52ZFhKalpYTkRiMjUwWlc1MElqcGJJbWx0Y0c5eWRDQjdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3l3Z1QzQmxjbUYwYVc5dVMyVjVjeUI5SUdaeWIyMGdYQ0pBWkdWallXWXRkSE12WkdJdFpHVmpiM0poZEc5eWMxd2lPMXh1YVcxd2IzSjBJSHRjYmlBZ1FXUmhjSFJsY2l4Y2JpQWdRMjl1ZEdWNGRIVmhiRUZ5WjNNc1hHNGdJRVYyWlc1MFNXUnpMRnh1SUNCUFluTmxjblpsY2toaGJtUnNaWElzWEc1OUlHWnliMjBnWENKQVpHVmpZV1l0ZEhNdlkyOXlaVndpTzF4dWFXMXdiM0owSUhzZ1oyVnVaWEpoZEdWR1lXSnlhV05GZG1WdWRFNWhiV1VnZlNCbWNtOXRJRndpTGk0dmMyaGhjbVZrTDJWMlpXNTBjMXdpTzF4dWFXMXdiM0owSUhzZ1JtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBJSDBnWm5KdmJTQmNJaTR2UTI5dWRISmhZM1JEYjI1MFpYaDBYQ0k3WEc1cGJYQnZjblFnZXlCRGIyNXpkSEoxWTNSdmNpQjlJR1p5YjIwZ1hDSkFaR1ZqWVdZdGRITXZaR1ZqYjNKaGRHbHZibHdpTzF4dVhHNHZLaXBjYmlBcUlFQmtaWE5qY21sd2RHbHZiaUJQWW5ObGNuWmxjaUJvWVc1a2JHVnlJR1p2Y2lCR1lXSnlhV01nWTJoaGFXNWpiMlJsSUdWMlpXNTBjMXh1SUNvZ1FITjFiVzFoY25rZ1JXMXBkSE1nWlhabGJuUnpJRzl1SUhSb1pTQkdZV0p5YVdNZ2JHVmtaMlZ5SUhkb1pXNGdjbVZ3YjNOcGRHOXllU0J2Y0dWeVlYUnBiMjV6SUc5alkzVnlYRzRnS2lCQVkyeGhjM01nUm1GaWNtbGpRMjl1ZEhKaFkzUlNaWEJ2YzJsMGIzSjVUMkp6WlhKMllXSnNaVWhoYm1Sc1pYSmNiaUFxSUVCbGVIUmxibVJ6SUh0UFluTmxjblpsY2toaGJtUnNaWEo5WEc0Z0tpQkFaWGhoYlhCc1pWeHVJQ29nWUdCZ2RIbHdaWE5qY21sd2RGeHVJQ29nTHk4Z1NXNGdZU0JHWVdKeWFXTWdZMmhoYVc1amIyUmxJR052Ym5SeVlXTjBYRzRnS2lCcGJYQnZjblFnZXlCR1lXSnlhV05EYjI1MGNtRmpkRkpsY0c5emFYUnZjbmxQWW5ObGNuWmhZbXhsU0dGdVpHeGxjaUI5SUdaeWIyMGdKMEJrWldOaFppMTBjeTltYjNJdFptRmljbWxqSnp0Y2JpQXFYRzRnS2lBdkx5QkRjbVZoZEdVZ1lTQm9ZVzVrYkdWeUlIZHBkR2dnWkdWbVlYVnNkQ0J6ZFhCd2IzSjBaV1FnWlhabGJuUnpYRzRnS2lCamIyNXpkQ0JvWVc1a2JHVnlJRDBnYm1WM0lFWmhZbkpwWTBOdmJuUnlZV04wVW1Wd2IzTnBkRzl5ZVU5aWMyVnlkbUZpYkdWSVlXNWtiR1Z5S0NrN1hHNGdLbHh1SUNvZ0x5OGdSVzFwZENCaGJpQmxkbVZ1ZEZ4dUlDb2dZWGRoYVhRZ2FHRnVaR3hsY2k1MWNHUmhkR1ZQWW5ObGNuWmxjbk1vWEc0Z0tpQWdJR3h2WjJkbGNpeGNiaUFxSUNBZ0oyRnpjMlYwY3ljc1hHNGdLaUFnSUU5d1pYSmhkR2x2Ymt0bGVYTXVRMUpGUVZSRkxGeHVJQ29nSUNBbllYTnpaWFF4Snl4Y2JpQXFJQ0FnWTI5dWRHVjRkRnh1SUNvZ0tUdGNiaUFxSUdCZ1lGeHVJQ29nUUcxbGNtMWhhV1JjYmlBcUlITmxjWFZsYm1ObFJHbGhaM0poYlZ4dUlDb2dJQ0J3WVhKMGFXTnBjR0Z1ZENCU1pYQnZjMmwwYjNKNVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElFOWljMlZ5ZG1GaWJHVklZVzVrYkdWeVhHNGdLaUFnSUhCaGNuUnBZMmx3WVc1MElGTjBkV0pjYmlBcUlDQWdjR0Z5ZEdsamFYQmhiblFnVEdWa1oyVnlYRzRnS2x4dUlDb2dJQ0JTWlhCdmMybDBiM0o1TFQ0K1QySnpaWEoyWVdKc1pVaGhibVJzWlhJNklIVndaR0YwWlU5aWMyVnlkbVZ5Y3loc2IyY3NJSFJoWW14bExDQmxkbVZ1ZEN3Z2FXUXNJR04wZUNsY2JpQXFJQ0FnVDJKelpYSjJZV0pzWlVoaGJtUnNaWEl0UGo1UFluTmxjblpoWW14bFNHRnVaR3hsY2pvZ1EyaGxZMnNnYVdZZ1pYWmxiblFnYVhNZ2MzVndjRzl5ZEdWa1hHNGdLaUFnSUU5aWMyVnlkbUZpYkdWSVlXNWtiR1Z5TFQ0K1QySnpaWEoyWVdKc1pVaGhibVJzWlhJNklHZGxibVZ5WVhSbFJtRmljbWxqUlhabGJuUk9ZVzFsS0hSaFlteGxMQ0JsZG1WdWRDd2diM2R1WlhJcFhHNGdLaUFnSUU5aWMyVnlkbUZpYkdWSVlXNWtiR1Z5TFQ0K1UzUjFZam9nYzJWMFJYWmxiblFvWlhabGJuUk9ZVzFsTENCd1lYbHNiMkZrS1Z4dUlDb2dJQ0JUZEhWaUxUNCtUR1ZrWjJWeU9pQlNaV052Y21RZ1pYWmxiblJjYmlBcUwxeHVaWGh3YjNKMElHTnNZWE56SUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlJR1Y0ZEdWdVpITWdUMkp6WlhKMlpYSklZVzVrYkdWeUlIdGNiaUFnTHlvcVhHNGdJQ0FxSUVCa1pYTmpjbWx3ZEdsdmJpQkRjbVZoZEdWeklHRWdibVYzSUVaaFluSnBZME52Ym5SeVlXTjBVbVZ3YjNOcGRHOXllVTlpYzJWeWRtRmliR1ZJWVc1a2JHVnlJR2x1YzNSaGJtTmxYRzRnSUNBcUlFQnpkVzF0WVhKNUlFbHVhWFJwWVd4cGVtVnpJSFJvWlNCb1lXNWtiR1Z5SUhkcGRHZ2dZU0JzYVhOMElHOW1JSE4xY0hCdmNuUmxaQ0JsZG1WdWRITmNiaUFnSUNvZ1FIQmhjbUZ0SUh0QmNuSmhlVHhQY0dWeVlYUnBiMjVMWlhseklId2dRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6SUh3Z2MzUnlhVzVuUG4wZ1czTjFjSEJ2Y25SbFpFVjJaVzUwYzEwZ0xTQkZkbVZ1ZEhNZ2RHaGhkQ0IzYVd4c0lIUnlhV2RuWlhJZ1JtRmljbWxqSUdWMlpXNTBjMXh1SUNBZ0tpOWNiaUFnWTI5dWMzUnlkV04wYjNJb1hHNGdJQ0FnY0hKcGRtRjBaU0J6ZFhCd2IzSjBaV1JGZG1WdWRITTZJQ2hjYmlBZ0lDQWdJSHdnVDNCbGNtRjBhVzl1UzJWNWMxeHVJQ0FnSUNBZ2ZDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE5jYmlBZ0lDQWdJSHdnYzNSeWFXNW5YRzRnSUNBZ0tWdGRJRDBnVzF4dUlDQWdJQ0FnVDNCbGNtRjBhVzl1UzJWNWN5NURVa1ZCVkVVc1hHNGdJQ0FnSUNCUGNHVnlZWFJwYjI1TFpYbHpMbFZRUkVGVVJTeGNiaUFnSUNBZ0lFOXdaWEpoZEdsdmJrdGxlWE11UkVWTVJWUkZMRnh1SUNBZ0lDQWdRblZzYTBOeWRXUlBjR1Z5WVhScGIyNUxaWGx6TGtOU1JVRlVSVjlCVEV3c1hHNGdJQ0FnSUNCQ2RXeHJRM0oxWkU5d1pYSmhkR2x2Ymt0bGVYTXVWVkJFUVZSRlgwRk1UQ3hjYmlBZ0lDQWdJRUoxYkd0RGNuVmtUM0JsY21GMGFXOXVTMlY1Y3k1RVJVeEZWRVZmUVV4TUxGeHVJQ0FnSUYxY2JpQWdLU0I3WEc0Z0lDQWdjM1Z3WlhJb0tUdGNiaUFnZlZ4dVhHNGdJQzhxS2x4dUlDQWdLaUJBWkdWelkzSnBjSFJwYjI0Z1ZYQmtZWFJsY3lCdlluTmxjblpsY25NZ1lua2daVzFwZEhScGJtY2dSbUZpY21saklHVjJaVzUwYzF4dUlDQWdLaUJBYzNWdGJXRnllU0JGYldsMGN5QmxkbVZ1ZEhNZ2IyNGdkR2hsSUVaaFluSnBZeUJzWldSblpYSWdabTl5SUhOMWNIQnZjblJsWkNCbGRtVnVkQ0IwZVhCbGMxeHVJQ0FnS2lCQWNHRnlZVzBnZTB4dloyZGxjbjBnYkc5bklDMGdURzluWjJWeUlHbHVjM1JoYm1ObElHWnZjaUJrWldKMVoyZHBibWRjYmlBZ0lDb2dRSEJoY21GdElIdHpkSEpwYm1kOUlIUmhZbXhsSUMwZ1ZHaGxJSFJoWW14bEwyTnZiR3hsWTNScGIyNGdibUZ0WlZ4dUlDQWdLaUJBY0dGeVlXMGdlMDl3WlhKaGRHbHZia3RsZVhNZ2ZDQkNkV3hyUTNKMVpFOXdaWEpoZEdsdmJrdGxlWE1nZkNCemRISnBibWQ5SUdWMlpXNTBJQzBnVkdobElHVjJaVzUwSUhSNWNHVmNiaUFnSUNvZ1FIQmhjbUZ0SUh0RmRtVnVkRWxrYzMwZ2FXUWdMU0JVYUdVZ1pYWmxiblFnYVdSbGJuUnBabWxsY2x4dUlDQWdLaUJBY0dGeVlXMGdlMFpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEgwZ1kzUjRJQzBnVkdobElFWmhZbkpwWXlCamIyNTBjbUZqZENCamIyNTBaWGgwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdjM1J5YVc1bmZTQmJiM2R1WlhKZElDMGdUM0IwYVc5dVlXd2diM2R1WlhJZ2FXUmxiblJwWm1sbGNpQm1iM0lnZEdobElHVjJaVzUwWEc0Z0lDQXFJRUJ3WVhKaGJTQjdiMkpxWldOMElId2djM1J5YVc1bklId2dkVzVrWldacGJtVmtmU0JiYjNkdVpYSmRJQzBnVDNCMGFXOXVZV3dnY0dGNWJHOWhaQ0JtYjNJZ2RHaGxJR1YyWlc1MFhHNGdJQ0FxWEc0Z0lDQXFJRUJ5WlhSMWNtNGdlMUJ5YjIxcGMyVThkbTlwWkQ1OUlGQnliMjFwYzJVZ2RHaGhkQ0J5WlhOdmJIWmxjeUIzYUdWdUlIUm9aU0JsZG1WdWRDQnBjeUJsYldsMGRHVmtYRzRnSUNBcUwxeHVJQ0J2ZG1WeWNtbGtaU0JoYzNsdVl5QjFjR1JoZEdWUFluTmxjblpsY25Nb1hHNGdJQ0FnWTJ4aGVubzZJSE4wY21sdVp5QjhJRU52Ym5OMGNuVmpkRzl5UEdGdWVUNHNYRzRnSUNBZ1pYWmxiblE2SUU5d1pYSmhkR2x2Ymt0bGVYTWdmQ0JDZFd4clEzSjFaRTl3WlhKaGRHbHZia3RsZVhNZ2ZDQnpkSEpwYm1jc1hHNGdJQ0FnYVdRNklFVjJaVzUwU1dSekxGeHVJQ0FnSUM0dUxtRnlaM002SUVOdmJuUmxlSFIxWVd4QmNtZHpQRVpoWW5KcFkwTnZiblJ5WVdOMFEyOXVkR1Y0ZEQ1Y2JpQWdLVG9nVUhKdmJXbHpaVHgyYjJsa1BpQjdYRzRnSUNBZ1kyOXVjM1FnZXlCc2IyY3NJR04wZUNCOUlEMGdRV1JoY0hSbGNpNXNiMmREZEhnOFJtRmljbWxqUTI5dWRISmhZM1JEYjI1MFpYaDBQaWhjYmlBZ0lDQWdJSFJvYVhNdWRYQmtZWFJsVDJKelpYSjJaWEp6TEZ4dUlDQWdJQ0FnWlhabGJuUXNYRzRnSUNBZ0lDQm1ZV3h6WlN4Y2JpQWdJQ0FnSUM0dUxtRnlaM05jYmlBZ0lDQXBPMXh1SUNBZ0lHbG1JQ2hqZEhndWFYTkdkV3hzZVZObFozSmxaMkYwWldRcElISmxkSFZ5Ymp0Y2JpQWdJQ0JwWmlBb0lXTjBlQzV6ZEhWaUtTQnlaWFIxY200N1hHNGdJQ0FnWTI5dWMzUWdleUJ6ZEhWaUlIMGdQU0JqZEhnN1hHNGdJQ0FnWTI5dWMzUWdXMjkzYm1WeUxDQndZWGxzYjJGa1hTQTlJR0Z5WjNNN1hHNGdJQ0FnWTI5dWMzUWdkR0ZpYkdVZ1BTQjBlWEJsYjJZZ1kyeGhlbm9nUFQwOUlGd2ljM1J5YVc1blhDSWdQeUJqYkdGNmVpQTZJR05zWVhwNkxtNWhiV1U3WEc0Z0lDQWdhV1lnS0hSb2FYTXVjM1Z3Y0c5eWRHVmtSWFpsYm5SekxtbHVaR1Y0VDJZb1pYWmxiblFwSUNFOVBTQXRNU2tnZTF4dUlDQWdJQ0FnYkc5bkxtUmxZblZuS0dCRmJXbDBkR2x1WnlBa2UyVjJaVzUwZlNCbGRtVnVkR0FwTzF4dUlDQWdJQ0FnWTI5dWMzUWdaWFpsYm5ST1lXMWxJRDBnWjJWdVpYSmhkR1ZHWVdKeWFXTkZkbVZ1ZEU1aGJXVW9kR0ZpYkdVc0lHVjJaVzUwTENCdmQyNWxjaWs3WEc0Z0lDQWdJQ0JqYjI1emRDQmxkbVZ1ZEVSaGRHRTZJRkpsWTI5eVpEeHpkSEpwYm1jc0lIVnVhMjV2ZDI0K0lEMGdleUJwWkRvZ2FXUWdmVHRjYmlBZ0lDQWdJR2xtSUNoamRIZ3VaMlYwVDNKVmJtUmxabWx1WldRb1hDSnZZbk5sY25abFJuVnNiRkpsYzNWc2RGd2lLU0FtSmlCd1lYbHNiMkZrS1NCN1hHNGdJQ0FnSUNBZ0lHVjJaVzUwUkdGMFlTNXlaWE4xYkhRZ1BTQndZWGxzYjJGa08xeHVJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2MzUjFZaTV6WlhSRmRtVnVkQ2hsZG1WdWRFNWhiV1VzSUVKMVptWmxjaTVtY205dEtFcFRUMDR1YzNSeWFXNW5hV1o1S0dWMlpXNTBSR0YwWVNrcEtUdGNiaUFnSUNCOUlHVnNjMlVnZTF4dUlDQWdJQ0FnYzNSMVlpNXpaWFJGZG1WdWRDaGxkbVZ1ZEN3Z1FuVm1abVZ5TG1aeWIyMG9TbE5QVGk1emRISnBibWRwWm5rb2NHRjViRzloWkNrcEtUdGNiaUFnSUNCOVhHNGdJSDFjYm4xY2JpSmRmUT09Il19
|