@bitgo/account-lib 2.20.0-rc.2 → 2.20.0-rc.22
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/CHANGELOG.md +195 -0
- package/dist/resources/README.md +8 -2
- package/dist/resources/trx/protobuf/tron.js +5 -1
- package/dist/src/coin/avaxc/index.js +3 -3
- package/dist/src/coin/avaxc/keyPair.d.ts +1 -2
- package/dist/src/coin/avaxc/keyPair.d.ts.map +1 -1
- package/dist/src/coin/avaxc/keyPair.js +25 -44
- package/dist/src/coin/avaxc/resources.js +3 -3
- package/dist/src/coin/avaxc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/avaxc/transactionBuilder.js +22 -41
- package/dist/src/coin/avaxc/transferBuilder.js +8 -28
- package/dist/src/coin/avaxc/utils.js +14 -54
- package/dist/src/coin/celo/index.js +3 -3
- package/dist/src/coin/celo/resources.js +3 -3
- package/dist/src/coin/celo/stakingBuilder.d.ts +1 -1
- package/dist/src/coin/celo/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingBuilder.js +102 -104
- package/dist/src/coin/celo/stakingCall.js +8 -26
- package/dist/src/coin/celo/stakingUtils.d.ts +1 -1
- package/dist/src/coin/celo/stakingUtils.d.ts.map +1 -1
- package/dist/src/coin/celo/stakingUtils.js +33 -34
- package/dist/src/coin/celo/transaction.js +10 -30
- package/dist/src/coin/celo/transactionBuilder.d.ts +1 -1
- package/dist/src/coin/celo/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/celo/transactionBuilder.js +96 -115
- package/dist/src/coin/celo/transferBuilder.js +8 -28
- package/dist/src/coin/celo/types.js +71 -125
- package/dist/src/coin/celo/utils.js +25 -25
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts +1 -2
- package/dist/src/coin/dot/addressInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/addressInitializationBuilder.js +60 -83
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts +1 -1
- package/dist/src/coin/dot/batchTransactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/batchTransactionBuilder.js +55 -78
- package/dist/src/coin/dot/claimBuilder.d.ts +1 -2
- package/dist/src/coin/dot/claimBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/claimBuilder.js +46 -68
- package/dist/src/coin/dot/errors.d.ts +1 -1
- package/dist/src/coin/dot/errors.d.ts.map +1 -1
- package/dist/src/coin/dot/errors.js +12 -33
- package/dist/src/coin/dot/iface.d.ts +1 -2
- package/dist/src/coin/dot/iface.d.ts.map +1 -1
- package/dist/src/coin/dot/iface.js +1 -1
- package/dist/src/coin/dot/index.js +3 -3
- package/dist/src/coin/dot/keyPair.d.ts +1 -2
- package/dist/src/coin/dot/keyPair.d.ts.map +1 -1
- package/dist/src/coin/dot/keyPair.js +34 -52
- package/dist/src/coin/dot/singletonRegistry.js +6 -9
- package/dist/src/coin/dot/stakingBuilder.d.ts +1 -2
- package/dist/src/coin/dot/stakingBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/stakingBuilder.js +49 -71
- package/dist/src/coin/dot/transaction.d.ts +1 -2
- package/dist/src/coin/dot/transaction.d.ts.map +1 -1
- package/dist/src/coin/dot/transaction.js +146 -162
- package/dist/src/coin/dot/transactionBuilder.d.ts +2 -3
- package/dist/src/coin/dot/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilder.js +132 -204
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/dot/transactionBuilderFactory.js +46 -65
- package/dist/src/coin/dot/transferBuilder.d.ts +1 -2
- package/dist/src/coin/dot/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/transferBuilder.js +62 -85
- package/dist/src/coin/dot/txnSchema.js +17 -15
- package/dist/src/coin/dot/unnominateBuilder.d.ts +1 -1
- package/dist/src/coin/dot/unnominateBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/unnominateBuilder.js +24 -46
- package/dist/src/coin/dot/unstakeBuilder.d.ts +1 -1
- package/dist/src/coin/dot/unstakeBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/unstakeBuilder.js +38 -60
- package/dist/src/coin/dot/utils.d.ts +1 -2
- package/dist/src/coin/dot/utils.d.ts.map +1 -1
- package/dist/src/coin/dot/utils.js +97 -101
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts +1 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.d.ts.map +1 -1
- package/dist/src/coin/dot/withdrawUnstakedBuilder.js +38 -60
- package/dist/src/coin/etc/index.js +3 -3
- package/dist/src/coin/etc/resources.js +3 -3
- package/dist/src/coin/etc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/etc/transactionBuilder.js +22 -41
- package/dist/src/coin/etc/transferBuilder.js +8 -28
- package/dist/src/coin/etc/utils.js +10 -50
- package/dist/src/coin/eth/contractCall.js +8 -9
- package/dist/src/coin/eth/iface.d.ts +1 -1
- package/dist/src/coin/eth/iface.d.ts.map +1 -1
- package/dist/src/coin/eth/iface.js +1 -1
- package/dist/src/coin/eth/index.js +3 -3
- package/dist/src/coin/eth/keyPair.d.ts +1 -2
- package/dist/src/coin/eth/keyPair.d.ts.map +1 -1
- package/dist/src/coin/eth/keyPair.js +25 -44
- package/dist/src/coin/eth/transaction.d.ts +1 -2
- package/dist/src/coin/eth/transaction.d.ts.map +1 -1
- package/dist/src/coin/eth/transaction.js +48 -114
- package/dist/src/coin/eth/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/eth/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/eth/transactionBuilder.js +232 -303
- package/dist/src/coin/eth/transferBuilder/baseNFTTransferBuilder.js +37 -38
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC1155.js +36 -53
- package/dist/src/coin/eth/transferBuilder/transferBuilderERC721.js +32 -49
- package/dist/src/coin/eth/transferBuilder.js +58 -59
- package/dist/src/coin/eth/types.js +52 -56
- package/dist/src/coin/eth/utils.d.ts +1 -1
- package/dist/src/coin/eth/utils.d.ts.map +1 -1
- package/dist/src/coin/eth/utils.js +100 -147
- package/dist/src/coin/eth/walletUtil.d.ts +2 -0
- package/dist/src/coin/eth/walletUtil.d.ts.map +1 -1
- package/dist/src/coin/eth/walletUtil.js +4 -2
- package/dist/src/coin/eth2/keyPair.d.ts +1 -2
- package/dist/src/coin/eth2/keyPair.d.ts.map +1 -1
- package/dist/src/coin/eth2/keyPair.js +19 -37
- package/dist/src/coin/hbar/index.js +2 -2
- package/dist/src/coin/hbar/keyPair.d.ts +1 -2
- package/dist/src/coin/hbar/keyPair.d.ts.map +1 -1
- package/dist/src/coin/hbar/keyPair.js +30 -49
- package/dist/src/coin/hbar/transaction.d.ts +1 -2
- package/dist/src/coin/hbar/transaction.d.ts.map +1 -1
- package/dist/src/coin/hbar/transaction.js +77 -146
- package/dist/src/coin/hbar/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/hbar/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilder.js +110 -193
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/hbar/transactionBuilderFactory.js +27 -45
- package/dist/src/coin/hbar/transferBuilder.d.ts +1 -1
- package/dist/src/coin/hbar/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/transferBuilder.js +49 -113
- package/dist/src/coin/hbar/utils.d.ts +2 -15
- package/dist/src/coin/hbar/utils.d.ts.map +1 -1
- package/dist/src/coin/hbar/utils.js +38 -57
- package/dist/src/coin/hbar/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/hbar/walletInitializationBuilder.js +42 -107
- package/dist/src/coin/near/contractCallWrapper.js +46 -65
- package/dist/src/coin/near/errors.d.ts +1 -1
- package/dist/src/coin/near/errors.d.ts.map +1 -1
- package/dist/src/coin/near/errors.js +7 -25
- package/dist/src/coin/near/iface.d.ts +1 -2
- package/dist/src/coin/near/iface.d.ts.map +1 -1
- package/dist/src/coin/near/iface.js +1 -1
- package/dist/src/coin/near/index.d.ts +3 -0
- package/dist/src/coin/near/index.d.ts.map +1 -1
- package/dist/src/coin/near/index.js +9 -3
- package/dist/src/coin/near/keyPair.d.ts +1 -2
- package/dist/src/coin/near/keyPair.d.ts.map +1 -1
- package/dist/src/coin/near/keyPair.js +23 -40
- package/dist/src/coin/near/stakingActivateBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingActivateBuilder.js +36 -105
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingDeactivateBuilder.js +36 -105
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts +1 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/stakingWithdrawBuilder.js +36 -105
- package/dist/src/coin/near/transaction.d.ts +1 -2
- package/dist/src/coin/near/transaction.d.ts.map +1 -1
- package/dist/src/coin/near/transaction.js +125 -154
- package/dist/src/coin/near/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/near/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/transactionBuilder.js +81 -144
- package/dist/src/coin/near/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/near/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/near/transactionBuilderFactory.js +33 -51
- package/dist/src/coin/near/transferBuilder.d.ts +1 -1
- package/dist/src/coin/near/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/transferBuilder.js +27 -91
- package/dist/src/coin/near/utils.d.ts +1 -1
- package/dist/src/coin/near/utils.d.ts.map +1 -1
- package/dist/src/coin/near/utils.js +35 -45
- package/dist/src/coin/near/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/near/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/near/walletInitializationBuilder.js +13 -70
- package/dist/src/coin/polygon/index.d.ts +8 -0
- package/dist/src/coin/polygon/index.d.ts.map +1 -0
- package/dist/src/coin/polygon/index.js +35 -0
- package/dist/src/coin/polygon/resources.d.ts +10 -0
- package/dist/src/coin/polygon/resources.d.ts.map +1 -0
- package/dist/src/coin/polygon/resources.js +25 -0
- package/dist/src/coin/polygon/transactionBuilder.d.ts +17 -0
- package/dist/src/coin/polygon/transactionBuilder.d.ts.map +1 -0
- package/dist/src/coin/polygon/transactionBuilder.js +44 -0
- package/dist/src/coin/polygon/transferBuilder.d.ts +19 -0
- package/dist/src/coin/polygon/transferBuilder.d.ts.map +1 -0
- package/dist/src/coin/polygon/transferBuilder.js +27 -0
- package/dist/src/coin/polygon/utils.d.ts +18 -0
- package/dist/src/coin/polygon/utils.d.ts.map +1 -0
- package/dist/src/coin/polygon/utils.js +42 -0
- package/dist/src/coin/polygon/walletUtil.d.ts +48 -0
- package/dist/src/coin/polygon/walletUtil.d.ts.map +1 -0
- package/dist/src/coin/polygon/walletUtil.js +632 -0
- package/dist/src/coin/rbtc/index.js +3 -3
- package/dist/src/coin/rbtc/resources.js +3 -3
- package/dist/src/coin/rbtc/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/rbtc/transactionBuilder.js +21 -40
- package/dist/src/coin/rbtc/transferBuilder.js +8 -28
- package/dist/src/coin/rbtc/utils.js +10 -50
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationBuilder.js +52 -123
- package/dist/src/coin/sol/ataInitializationTransaction.d.ts.map +1 -1
- package/dist/src/coin/sol/ataInitializationTransaction.js +34 -57
- package/dist/src/coin/sol/iface.d.ts +1 -1
- package/dist/src/coin/sol/iface.d.ts.map +1 -1
- package/dist/src/coin/sol/iface.js +1 -1
- package/dist/src/coin/sol/index.js +3 -3
- package/dist/src/coin/sol/instructionParamsFactory.d.ts +1 -1
- package/dist/src/coin/sol/instructionParamsFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/instructionParamsFactory.js +62 -67
- package/dist/src/coin/sol/keyPair.d.ts +1 -2
- package/dist/src/coin/sol/keyPair.d.ts.map +1 -1
- package/dist/src/coin/sol/keyPair.js +24 -42
- package/dist/src/coin/sol/solInstructionFactory.js +33 -33
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingActivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingActivateBuilder.js +45 -113
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingDeactivateBuilder.js +36 -104
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts +1 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/stakingWithdrawBuilder.js +41 -109
- package/dist/src/coin/sol/tokenEncodeDecode.js +46 -75
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts +1 -1
- package/dist/src/coin/sol/tokenTransferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/tokenTransferBuilder.js +42 -115
- package/dist/src/coin/sol/transaction.d.ts +1 -2
- package/dist/src/coin/sol/transaction.d.ts.map +1 -1
- package/dist/src/coin/sol/transaction.js +130 -221
- package/dist/src/coin/sol/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/sol/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilder.js +104 -171
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/sol/transactionBuilderFactory.js +46 -64
- package/dist/src/coin/sol/transferBuilder.d.ts +1 -1
- package/dist/src/coin/sol/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/transferBuilder.js +37 -108
- package/dist/src/coin/sol/utils.d.ts +1 -1
- package/dist/src/coin/sol/utils.d.ts.map +1 -1
- package/dist/src/coin/sol/utils.js +49 -117
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/sol/walletInitializationBuilder.js +39 -107
- package/dist/src/coin/stx/abstractContractBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/abstractContractBuilder.js +34 -104
- package/dist/src/coin/stx/contractBuilder.js +38 -57
- package/dist/src/coin/stx/index.js +2 -2
- package/dist/src/coin/stx/keyPair.d.ts +1 -2
- package/dist/src/coin/stx/keyPair.d.ts.map +1 -1
- package/dist/src/coin/stx/keyPair.js +39 -62
- package/dist/src/coin/stx/sendmanyBuilder.js +43 -108
- package/dist/src/coin/stx/transaction.d.ts +1 -2
- package/dist/src/coin/stx/transaction.d.ts.map +1 -1
- package/dist/src/coin/stx/transaction.js +102 -183
- package/dist/src/coin/stx/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/stx/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/transactionBuilder.js +121 -218
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/stx/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/stx/transactionBuilderFactory.js +36 -54
- package/dist/src/coin/stx/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/stx/transferBuilder.js +41 -111
- package/dist/src/coin/stx/utils.d.ts.map +1 -1
- package/dist/src/coin/stx/utils.js +58 -65
- package/dist/src/coin/trx/address.d.ts +1 -1
- package/dist/src/coin/trx/address.d.ts.map +1 -1
- package/dist/src/coin/trx/address.js +3 -6
- package/dist/src/coin/trx/contractCallBuilder.d.ts +1 -1
- package/dist/src/coin/trx/contractCallBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/contractCallBuilder.js +100 -160
- package/dist/src/coin/trx/iface.d.ts +1 -1
- package/dist/src/coin/trx/iface.d.ts.map +1 -1
- package/dist/src/coin/trx/iface.js +1 -1
- package/dist/src/coin/trx/index.js +4 -4
- package/dist/src/coin/trx/keyPair.d.ts +1 -3
- package/dist/src/coin/trx/keyPair.d.ts.map +1 -1
- package/dist/src/coin/trx/keyPair.js +37 -57
- package/dist/src/coin/trx/transaction.d.ts +1 -3
- package/dist/src/coin/trx/transaction.d.ts.map +1 -1
- package/dist/src/coin/trx/transaction.js +84 -124
- package/dist/src/coin/trx/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/trx/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/transactionBuilder.js +72 -134
- package/dist/src/coin/trx/utils.js +57 -59
- package/dist/src/coin/trx/wrappedBuilder.d.ts +1 -2
- package/dist/src/coin/trx/wrappedBuilder.d.ts.map +1 -1
- package/dist/src/coin/trx/wrappedBuilder.js +43 -101
- package/dist/src/coin/xrp/index.js +2 -2
- package/dist/src/coin/xrp/keyPair.d.ts +1 -2
- package/dist/src/coin/xrp/keyPair.d.ts.map +1 -1
- package/dist/src/coin/xrp/keyPair.js +6 -23
- package/dist/src/coin/xrp/transaction.d.ts +1 -2
- package/dist/src/coin/xrp/transaction.d.ts.map +1 -1
- package/dist/src/coin/xrp/transaction.js +13 -34
- package/dist/src/coin/xrp/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/xrp/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/transactionBuilder.js +29 -51
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/coin/xrp/transactionBuilderFactory.js +17 -35
- package/dist/src/coin/xrp/transferBuilder.d.ts +1 -1
- package/dist/src/coin/xrp/transferBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/transferBuilder.js +16 -73
- package/dist/src/coin/xrp/utils.d.ts +1 -1
- package/dist/src/coin/xrp/utils.d.ts.map +1 -1
- package/dist/src/coin/xrp/utils.js +22 -25
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts +1 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.d.ts.map +1 -1
- package/dist/src/coin/xrp/walletInitializationBuilder.js +16 -73
- package/dist/src/coin/xtz/address.d.ts +1 -1
- package/dist/src/coin/xtz/address.d.ts.map +1 -1
- package/dist/src/coin/xtz/address.js +3 -6
- package/dist/src/coin/xtz/iface.d.ts +1 -1
- package/dist/src/coin/xtz/iface.d.ts.map +1 -1
- package/dist/src/coin/xtz/iface.js +1 -1
- package/dist/src/coin/xtz/index.js +4 -4
- package/dist/src/coin/xtz/keyPair.d.ts +1 -2
- package/dist/src/coin/xtz/keyPair.d.ts.map +1 -1
- package/dist/src/coin/xtz/keyPair.js +39 -59
- package/dist/src/coin/xtz/multisigUtils.js +64 -77
- package/dist/src/coin/xtz/transaction.d.ts +1 -2
- package/dist/src/coin/xtz/transaction.d.ts.map +1 -1
- package/dist/src/coin/xtz/transaction.js +175 -345
- package/dist/src/coin/xtz/transactionBuilder.d.ts +1 -2
- package/dist/src/coin/xtz/transactionBuilder.d.ts.map +1 -1
- package/dist/src/coin/xtz/transactionBuilder.js +212 -347
- package/dist/src/coin/xtz/transferBuilder.js +25 -28
- package/dist/src/coin/xtz/utils.d.ts.map +1 -1
- package/dist/src/coin/xtz/utils.js +54 -125
- package/dist/src/index.d.ts +7 -11
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +38 -44
- package/dist/src/keyPair/index.d.ts +1 -2
- package/dist/src/keyPair/index.d.ts.map +1 -1
- package/dist/src/keyPair/index.js +9 -9
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +9 -9
- package/dist/tsconfig.tsbuildinfo +21131 -16701
- package/package.json +21 -43
- package/resources/README.md +8 -2
- package/resources/trx/protobuf/tron.js +5 -1
- package/dist/browser/bitgo-account-lib.js +0 -2
- package/dist/browser/bitgo-account-lib.js.LICENSE.txt +0 -335
- package/dist/src/coin/algo/assetTransferBuilder.d.ts +0 -43
- package/dist/src/coin/algo/assetTransferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/assetTransferBuilder.js +0 -127
- package/dist/src/coin/algo/errors.d.ts +0 -11
- package/dist/src/coin/algo/errors.d.ts.map +0 -1
- package/dist/src/coin/algo/errors.js +0 -51
- package/dist/src/coin/algo/ifaces.d.ts +0 -46
- package/dist/src/coin/algo/ifaces.d.ts.map +0 -1
- package/dist/src/coin/algo/ifaces.js +0 -3
- package/dist/src/coin/algo/index.d.ts +0 -13
- package/dist/src/coin/algo/index.d.ts.map +0 -1
- package/dist/src/coin/algo/index.js +0 -47
- package/dist/src/coin/algo/keyPair.d.ts +0 -26
- package/dist/src/coin/algo/keyPair.d.ts.map +0 -1
- package/dist/src/coin/algo/keyPair.js +0 -95
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts +0 -104
- package/dist/src/coin/algo/keyRegistrationBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/keyRegistrationBuilder.js +0 -262
- package/dist/src/coin/algo/seedEncoding.d.ts +0 -25
- package/dist/src/coin/algo/seedEncoding.d.ts.map +0 -1
- package/dist/src/coin/algo/seedEncoding.js +0 -100
- package/dist/src/coin/algo/transaction.d.ts +0 -76
- package/dist/src/coin/algo/transaction.d.ts.map +0 -1
- package/dist/src/coin/algo/transaction.js +0 -287
- package/dist/src/coin/algo/transactionBuilder.d.ts +0 -205
- package/dist/src/coin/algo/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilder.js +0 -445
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts +0 -16
- package/dist/src/coin/algo/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/algo/transactionBuilderFactory.js +0 -70
- package/dist/src/coin/algo/transferBuilder.d.ts +0 -41
- package/dist/src/coin/algo/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/algo/transferBuilder.js +0 -111
- package/dist/src/coin/algo/txnSchema.d.ts +0 -7
- package/dist/src/coin/algo/txnSchema.d.ts.map +0 -1
- package/dist/src/coin/algo/txnSchema.js +0 -68
- package/dist/src/coin/algo/utils.d.ts +0 -249
- package/dist/src/coin/algo/utils.d.ts.map +0 -1
- package/dist/src/coin/algo/utils.js +0 -544
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts +0 -27
- package/dist/src/coin/baseCoin/baseKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseKeyPair.js +0 -3
- package/dist/src/coin/baseCoin/baseTransaction.d.ts +0 -71
- package/dist/src/coin/baseCoin/baseTransaction.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransaction.js +0 -94
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts +0 -128
- package/dist/src/coin/baseCoin/baseTransactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilder.js +0 -179
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts +0 -30
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseTransactionBuilderFactory.js +0 -20
- package/dist/src/coin/baseCoin/baseUtils.d.ts +0 -45
- package/dist/src/coin/baseCoin/baseUtils.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/baseUtils.js +0 -3
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts +0 -75
- package/dist/src/coin/baseCoin/blsKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/blsKeyPair.js +0 -232
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts +0 -50
- package/dist/src/coin/baseCoin/ed25519KeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/ed25519KeyPair.js +0 -141
- package/dist/src/coin/baseCoin/enum.d.ts +0 -43
- package/dist/src/coin/baseCoin/enum.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/enum.js +0 -70
- package/dist/src/coin/baseCoin/errors.d.ts +0 -65
- package/dist/src/coin/baseCoin/errors.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/errors.js +0 -156
- package/dist/src/coin/baseCoin/iface.d.ts +0 -162
- package/dist/src/coin/baseCoin/iface.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/iface.js +0 -38
- package/dist/src/coin/baseCoin/index.d.ts +0 -12
- package/dist/src/coin/baseCoin/index.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/index.js +0 -41
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts +0 -55
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.d.ts.map +0 -1
- package/dist/src/coin/baseCoin/secp256k1ExtendedKeyPair.js +0 -124
- package/dist/src/coin/cspr/constants.d.ts +0 -19
- package/dist/src/coin/cspr/constants.d.ts.map +0 -1
- package/dist/src/coin/cspr/constants.js +0 -28
- package/dist/src/coin/cspr/delegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/delegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/delegateBuilder.js +0 -175
- package/dist/src/coin/cspr/ifaces.d.ts +0 -69
- package/dist/src/coin/cspr/ifaces.d.ts.map +0 -1
- package/dist/src/coin/cspr/ifaces.js +0 -3
- package/dist/src/coin/cspr/index.d.ts +0 -5
- package/dist/src/coin/cspr/index.d.ts.map +0 -1
- package/dist/src/coin/cspr/index.js +0 -29
- package/dist/src/coin/cspr/keyPair.d.ts +0 -19
- package/dist/src/coin/cspr/keyPair.d.ts.map +0 -1
- package/dist/src/coin/cspr/keyPair.js +0 -94
- package/dist/src/coin/cspr/transaction.d.ts +0 -56
- package/dist/src/coin/cspr/transaction.d.ts.map +0 -1
- package/dist/src/coin/cspr/transaction.js +0 -251
- package/dist/src/coin/cspr/transactionBuilder.d.ts +0 -125
- package/dist/src/coin/cspr/transactionBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilder.js +0 -383
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts +0 -46
- package/dist/src/coin/cspr/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/coin/cspr/transactionBuilderFactory.js +0 -116
- package/dist/src/coin/cspr/transferBuilder.d.ts +0 -39
- package/dist/src/coin/cspr/transferBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/transferBuilder.js +0 -169
- package/dist/src/coin/cspr/undelegateBuilder.d.ts +0 -49
- package/dist/src/coin/cspr/undelegateBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/undelegateBuilder.js +0 -175
- package/dist/src/coin/cspr/utils.d.ts +0 -189
- package/dist/src/coin/cspr/utils.d.ts.map +0 -1
- package/dist/src/coin/cspr/utils.js +0 -483
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts +0 -27
- package/dist/src/coin/cspr/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/coin/cspr/walletInitializationBuilder.js +0 -160
- package/dist/src/mpc/curves/baseCurve.d.ts +0 -18
- package/dist/src/mpc/curves/baseCurve.d.ts.map +0 -1
- package/dist/src/mpc/curves/baseCurve.js +0 -6
- package/dist/src/mpc/curves/ed25519.d.ts +0 -17
- package/dist/src/mpc/curves/ed25519.d.ts.map +0 -1
- package/dist/src/mpc/curves/ed25519.js +0 -96
- package/dist/src/mpc/curves/index.d.ts +0 -5
- package/dist/src/mpc/curves/index.d.ts.map +0 -1
- package/dist/src/mpc/curves/index.js +0 -6
- package/dist/src/mpc/hdTree.d.ts +0 -24
- package/dist/src/mpc/hdTree.d.ts.map +0 -1
- package/dist/src/mpc/hdTree.js +0 -143
- package/dist/src/mpc/shamir.d.ts +0 -26
- package/dist/src/mpc/shamir.d.ts.map +0 -1
- package/dist/src/mpc/shamir.js +0 -87
- package/dist/src/mpc/tss.d.ts +0 -98
- package/dist/src/mpc/tss.d.ts.map +0 -1
- package/dist/src/mpc/tss.js +0 -346
- package/dist/src/mpc/util.d.ts +0 -7
- package/dist/src/mpc/util.d.ts.map +0 -1
- package/dist/src/mpc/util.js +0 -38
- package/dist/src/utils/crypto.d.ts +0 -99
- package/dist/src/utils/crypto.d.ts.map +0 -1
- package/dist/src/utils/crypto.js +0 -260
- package/dist/src/utils/ed25519KeyDeriver.d.ts +0 -49
- package/dist/src/utils/ed25519KeyDeriver.d.ts.map +0 -1
- package/dist/src/utils/ed25519KeyDeriver.js +0 -92
|
@@ -1,63 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
14
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
15
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
16
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
17
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
18
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
19
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
20
|
-
});
|
|
21
|
-
};
|
|
22
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
-
function step(op) {
|
|
27
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
-
while (_) try {
|
|
29
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
30
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
-
switch (op[0]) {
|
|
32
|
-
case 0: case 1: t = op; break;
|
|
33
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
-
default:
|
|
37
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
-
if (t[2]) _.ops.pop();
|
|
42
|
-
_.trys.pop(); continue;
|
|
43
|
-
}
|
|
44
|
-
op = body.call(thisArg, _);
|
|
45
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
4
|
};
|
|
52
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
6
|
exports.CeloTransactionData = exports.CeloTransaction = void 0;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const wallet_local_1 = require("@celo/wallet-local");
|
|
9
|
+
const ethereumjs_utils_old_1 = require("@bitgo/ethereumjs-utils-old");
|
|
10
|
+
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
11
|
+
const iface_1 = require("../eth/iface");
|
|
12
|
+
class CeloTransaction {
|
|
13
|
+
constructor(tx) {
|
|
61
14
|
this._feeCurrency = ethereumjs_utils_old_1.toBuffer('0x');
|
|
62
15
|
this._gatewayFeeRecipient = ethereumjs_utils_old_1.toBuffer('0x');
|
|
63
16
|
this._gatewayFee = ethereumjs_utils_old_1.toBuffer('0x');
|
|
@@ -94,7 +47,7 @@ var CeloTransaction = /** @class */ (function () {
|
|
|
94
47
|
* @param numberValue Hex formatted number value. Example '0x01'
|
|
95
48
|
* @returns sanitized value
|
|
96
49
|
*/
|
|
97
|
-
|
|
50
|
+
sanitizeHexString(numberValue) {
|
|
98
51
|
if (numberValue === '0x0') {
|
|
99
52
|
return '0x';
|
|
100
53
|
}
|
|
@@ -102,8 +55,8 @@ var CeloTransaction = /** @class */ (function () {
|
|
|
102
55
|
return numberValue;
|
|
103
56
|
}
|
|
104
57
|
return '0x0' + numberValue.slice(2);
|
|
105
|
-
}
|
|
106
|
-
|
|
58
|
+
}
|
|
59
|
+
initRaw() {
|
|
107
60
|
this.raw = [
|
|
108
61
|
this.nonce,
|
|
109
62
|
this.gasPrice,
|
|
@@ -118,9 +71,9 @@ var CeloTransaction = /** @class */ (function () {
|
|
|
118
71
|
this.r,
|
|
119
72
|
this.s,
|
|
120
73
|
];
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
|
|
74
|
+
}
|
|
75
|
+
hash(includeSignature) {
|
|
76
|
+
let items;
|
|
124
77
|
if (includeSignature) {
|
|
125
78
|
items = this.raw;
|
|
126
79
|
}
|
|
@@ -128,57 +81,56 @@ var CeloTransaction = /** @class */ (function () {
|
|
|
128
81
|
items = this.raw.slice(0, 9).concat([ethereumjs_utils_old_1.toBuffer(this.getChainId()), ethereumjs_util_1.unpad(ethereumjs_utils_old_1.toBuffer(0)), ethereumjs_util_1.unpad(ethereumjs_utils_old_1.toBuffer(0))]);
|
|
129
82
|
}
|
|
130
83
|
return ethereumjs_utils_old_1.rlphash(items);
|
|
131
|
-
}
|
|
132
|
-
|
|
84
|
+
}
|
|
85
|
+
getSenderAddress() {
|
|
133
86
|
if (this._from) {
|
|
134
87
|
return this._from;
|
|
135
88
|
}
|
|
136
|
-
|
|
89
|
+
const pubKey = this.getSenderPublicKey();
|
|
137
90
|
this._from = ethereumjs_utils_old_1.publicToAddress(pubKey);
|
|
138
91
|
return this._from;
|
|
139
|
-
}
|
|
140
|
-
|
|
92
|
+
}
|
|
93
|
+
getSenderPublicKey() {
|
|
141
94
|
if (this.verifySignature()) {
|
|
142
95
|
// If the signature was verified successfully the _senderPubKey field is defined
|
|
143
96
|
return this._senderPubKey;
|
|
144
97
|
}
|
|
145
98
|
throw new Error('Invalid Signature');
|
|
146
|
-
}
|
|
147
|
-
|
|
99
|
+
}
|
|
100
|
+
serialize() {
|
|
148
101
|
return ethereumjs_utils_old_1.rlp.encode(this.raw);
|
|
149
|
-
}
|
|
150
|
-
|
|
102
|
+
}
|
|
103
|
+
sign(privateKey) {
|
|
151
104
|
this._signatures = [this.v, this.r, this.s, privateKey];
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
105
|
+
}
|
|
106
|
+
verifySignature() {
|
|
107
|
+
const msgHash = this.hash(false);
|
|
155
108
|
try {
|
|
156
|
-
|
|
157
|
-
|
|
109
|
+
const chainId = this.getChainId();
|
|
110
|
+
const v = ethereumjs_utils_old_1.bufferToInt(this.v) - (2 * chainId + 35);
|
|
158
111
|
this._senderPubKey = ethereumjs_utils_old_1.ecrecover(msgHash, v + 27, this.r, this.s);
|
|
159
112
|
}
|
|
160
113
|
catch (e) {
|
|
161
114
|
return false;
|
|
162
115
|
}
|
|
163
116
|
return !!this._senderPubKey;
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
|
|
117
|
+
}
|
|
118
|
+
getChainId() {
|
|
119
|
+
let chainId = ethereumjs_utils_old_1.bufferToInt(this.v);
|
|
167
120
|
if (this.r.length && this.s.length) {
|
|
168
121
|
chainId = (chainId - 35) >> 1;
|
|
169
122
|
}
|
|
170
123
|
return chainId;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
}());
|
|
124
|
+
}
|
|
125
|
+
}
|
|
174
126
|
exports.CeloTransaction = CeloTransaction;
|
|
175
|
-
|
|
176
|
-
|
|
127
|
+
class CeloTransactionData {
|
|
128
|
+
constructor(tx, deployedAddress) {
|
|
177
129
|
this.tx = tx;
|
|
178
130
|
this.deployedAddress = deployedAddress;
|
|
179
131
|
}
|
|
180
|
-
|
|
181
|
-
|
|
132
|
+
static fromJson(tx) {
|
|
133
|
+
const chainId = ethereumjs_utils_old_1.addHexPrefix(new bignumber_js_1.default(Number(tx.chainId)).toString(16));
|
|
182
134
|
return new CeloTransactionData(new CeloTransaction({
|
|
183
135
|
_type: iface_1.ETHTransactionType.LEGACY,
|
|
184
136
|
nonce: tx.nonce,
|
|
@@ -192,34 +144,23 @@ var CeloTransactionData = /** @class */ (function () {
|
|
|
192
144
|
r: tx.r,
|
|
193
145
|
v: tx.v || chainId,
|
|
194
146
|
}), tx.deployedAddress);
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
nonceBigNumber = new bignumber_js_1.default(rawTransaction.tx.nonce);
|
|
210
|
-
rawTransaction.tx.nonce = ethereumjs_utils_old_1.addHexPrefix(nonceBigNumber.toString(16));
|
|
211
|
-
rawTransaction.raw = data.data === undefined ? '' : data.data;
|
|
212
|
-
rawTransaction.tx.gas = rawTransaction.tx.gas;
|
|
213
|
-
this.tx = new CeloTransaction(CeloTransactionData.encodedTxToJson(rawTransaction));
|
|
214
|
-
this.tx.sign(ethereumjs_utils_old_1.toBuffer(privateKey));
|
|
215
|
-
return [2 /*return*/];
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
});
|
|
219
|
-
};
|
|
147
|
+
}
|
|
148
|
+
async sign(keyPair) {
|
|
149
|
+
const privateKey = ethereumjs_utils_old_1.addHexPrefix(keyPair.getKeys().prv);
|
|
150
|
+
const data = CeloTransactionData.txJsonToCeloTx(this.toJson(), keyPair.getAddress());
|
|
151
|
+
const celoLocalWallet = new wallet_local_1.LocalWallet();
|
|
152
|
+
celoLocalWallet.addAccount(privateKey);
|
|
153
|
+
const rawTransaction = await celoLocalWallet.signTransaction(data);
|
|
154
|
+
const nonceBigNumber = new bignumber_js_1.default(rawTransaction.tx.nonce);
|
|
155
|
+
rawTransaction.tx.nonce = ethereumjs_utils_old_1.addHexPrefix(nonceBigNumber.toString(16));
|
|
156
|
+
rawTransaction.raw = data.data === undefined ? '' : data.data;
|
|
157
|
+
rawTransaction.tx.gas = rawTransaction.tx.gas;
|
|
158
|
+
this.tx = new CeloTransaction(CeloTransactionData.encodedTxToJson(rawTransaction));
|
|
159
|
+
this.tx.sign(ethereumjs_utils_old_1.toBuffer(privateKey));
|
|
160
|
+
}
|
|
220
161
|
/** @inheritdoc */
|
|
221
|
-
|
|
222
|
-
|
|
162
|
+
toJson() {
|
|
163
|
+
const result = {
|
|
223
164
|
_type: iface_1.ETHTransactionType.LEGACY,
|
|
224
165
|
nonce: ethereumjs_utils_old_1.bufferToInt(this.tx.nonce),
|
|
225
166
|
gasPrice: new bignumber_js_1.default(ethereumjs_utils_old_1.bufferToHex(this.tx.gasPrice), 16).toString(10),
|
|
@@ -234,7 +175,7 @@ var CeloTransactionData = /** @class */ (function () {
|
|
|
234
175
|
if (this.tx.verifySignature()) {
|
|
235
176
|
result.from = ethereumjs_utils_old_1.bufferToHex(this.tx.getSenderAddress());
|
|
236
177
|
}
|
|
237
|
-
|
|
178
|
+
const chainId = this.tx.getChainId();
|
|
238
179
|
if (chainId) {
|
|
239
180
|
result.chainId = chainId.toString();
|
|
240
181
|
}
|
|
@@ -243,8 +184,8 @@ var CeloTransactionData = /** @class */ (function () {
|
|
|
243
184
|
}
|
|
244
185
|
this.setSignatureFields(result);
|
|
245
186
|
return result;
|
|
246
|
-
}
|
|
247
|
-
|
|
187
|
+
}
|
|
188
|
+
setSignatureFields(result) {
|
|
248
189
|
if (this.tx.v && this.tx.v.length) {
|
|
249
190
|
result.v = ethereumjs_utils_old_1.bufferToHex(this.tx.v);
|
|
250
191
|
}
|
|
@@ -254,23 +195,28 @@ var CeloTransactionData = /** @class */ (function () {
|
|
|
254
195
|
if (this.tx.s && this.tx.s.length) {
|
|
255
196
|
result.s = ethereumjs_utils_old_1.bufferToHex(this.tx.s);
|
|
256
197
|
}
|
|
257
|
-
}
|
|
198
|
+
}
|
|
258
199
|
/** @inheritdoc */
|
|
259
|
-
|
|
200
|
+
toSerialized() {
|
|
260
201
|
return ethereumjs_utils_old_1.addHexPrefix(this.tx.serialize().toString('hex'));
|
|
261
|
-
}
|
|
262
|
-
|
|
202
|
+
}
|
|
203
|
+
static txJsonToCeloTx(txJson, signer) {
|
|
263
204
|
// the celo library requires you to specify the signer address with the from field
|
|
264
205
|
return Object.assign({}, txJson, {
|
|
265
206
|
chainId: txJson.chainId === undefined ? 0 : parseInt(txJson.chainId, 10),
|
|
266
207
|
gas: txJson.gasLimit,
|
|
267
208
|
from: signer,
|
|
268
209
|
});
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
return
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
210
|
+
}
|
|
211
|
+
static encodedTxToJson(encodedTx) {
|
|
212
|
+
return {
|
|
213
|
+
...encodedTx.tx,
|
|
214
|
+
_type: iface_1.ETHTransactionType.LEGACY,
|
|
215
|
+
nonce: parseInt(encodedTx.tx.nonce, 16),
|
|
216
|
+
gasLimit: encodedTx.tx.gas,
|
|
217
|
+
data: encodedTx.raw,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
275
221
|
exports.CeloTransactionData = CeloTransactionData;
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOERBQXFDO0FBQ3JDLG1EQUFpRDtBQUNqRCw2REFTOEI7QUFDOUIsbURBQXdDO0FBRXhDLHNDQUF3RjtBQUd4RjtJQWtDRSx5QkFBWSxFQUFnQjtRQTdCcEIsaUJBQVksR0FBVywrQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLHlCQUFvQixHQUFXLCtCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUMsZ0JBQVcsR0FBVywrQkFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBTTdDLE9BQUUsR0FBVywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLE1BQUMsR0FBVywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLE1BQUMsR0FBVywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLE1BQUMsR0FBVywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBbUJ2QixJQUFJLENBQUMsS0FBSyxHQUFHLHVCQUFLLENBQUMsK0JBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLCtCQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxRQUFRLEdBQUcsK0JBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxHQUFHLCtCQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNULElBQUksQ0FBQyxFQUFFLEdBQUcsK0JBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDM0I7UUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsQ0FBQyxHQUFHLCtCQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsR0FBRywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNSLElBQUksQ0FBQyxDQUFDLEdBQUcsK0JBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekI7UUFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUU7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLCtCQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUF0Q0QsMERBQTBEO0lBQzFEOzs7OztPQUtHO0lBQ0ssMkNBQWlCLEdBQXpCLFVBQTBCLFdBQVc7UUFDbkMsSUFBSSxXQUFXLEtBQUssS0FBSyxFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFBTSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN2QyxPQUFPLFdBQVcsQ0FBQztTQUNwQjtRQUNELE9BQU8sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQTBCTyxpQ0FBTyxHQUFmO1FBQ0UsSUFBSSxDQUFDLEdBQUcsR0FBRztZQUNULElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLFFBQVE7WUFDYixJQUFJLENBQUMsUUFBUTtZQUNiLElBQUksQ0FBQyxZQUFZO1lBQ2pCLElBQUksQ0FBQyxvQkFBb0I7WUFDekIsSUFBSSxDQUFDLFdBQVc7WUFDaEIsSUFBSSxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsS0FBSztZQUNWLElBQUksQ0FBQyxJQUFJO1lBQ1QsSUFBSSxDQUFDLENBQUM7WUFDTixJQUFJLENBQUMsQ0FBQztZQUNOLElBQUksQ0FBQyxDQUFDO1NBQ1AsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBSSxHQUFKLFVBQUssZ0JBQTBCO1FBQzdCLElBQUksS0FBSyxDQUFDO1FBQ1YsSUFBSSxnQkFBZ0IsRUFBRTtZQUNwQixLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNsQjthQUFNO1lBQ0wsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQywrQkFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLHVCQUFLLENBQUMsK0JBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLHVCQUFLLENBQUMsK0JBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RztRQUNELE9BQU8sOEJBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsMENBQWdCLEdBQWhCO1FBQ0UsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBQ0QsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxzQ0FBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsNENBQWtCLEdBQWxCO1FBQ0UsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDMUIsZ0ZBQWdGO1lBQ2hGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMzQjtRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsbUNBQVMsR0FBVDtRQUNFLE9BQU8sMEJBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCw4QkFBSSxHQUFKLFVBQUssVUFBa0I7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCx5Q0FBZSxHQUFmO1FBQ0UsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQyxJQUFJO1lBQ0YsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xDLElBQU0sQ0FBQyxHQUFHLGtDQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsYUFBYSxHQUFHLGdDQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakU7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxvQ0FBVSxHQUFWO1FBQ0UsSUFBSSxPQUFPLEdBQUcsa0NBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxPQUFPLEdBQUcsQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUNILHNCQUFDO0FBQUQsQ0FBQyxBQWpJRCxJQWlJQztBQWpJWSwwQ0FBZTtBQW1JNUI7SUFJRSw2QkFBWSxFQUFtQixFQUFFLGVBQXdCO1FBQ3ZELElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7SUFDekMsQ0FBQztJQUVhLDRCQUFRLEdBQXRCLFVBQXVCLEVBQWdCO1FBQ3JDLElBQU0sT0FBTyxHQUFHLG1DQUFZLENBQUMsSUFBSSxzQkFBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3RSxPQUFPLElBQUksbUJBQW1CLENBQzVCLElBQUksZUFBZSxDQUFDO1lBQ2xCLEtBQUssRUFBRSwwQkFBa0IsQ0FBQyxNQUFNO1lBQ2hDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSztZQUNmLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtZQUNULFFBQVEsRUFBRSxtQ0FBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELFFBQVEsRUFBRSxtQ0FBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELEtBQUssRUFBRSxtQ0FBWSxDQUFDLElBQUksc0JBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSTtZQUNyQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7WUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDUCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDUCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxPQUFPO1NBQ25CLENBQUMsRUFDRixFQUFFLENBQUMsZUFBZSxDQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVLLGtDQUFJLEdBQVYsVUFBVyxPQUFnQjs7Ozs7O3dCQUNuQixVQUFVLEdBQUcsbUNBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBYSxDQUFDLENBQUM7d0JBQzNELElBQUksR0FBRyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO3dCQUMvRSxlQUFlLEdBQUcsSUFBSSwwQkFBVyxFQUFFLENBQUM7d0JBQzFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQ2hCLHFCQUFNLGVBQWUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUE7O3dCQUE1RCxjQUFjLEdBQUcsU0FBMkM7d0JBRTVELGNBQWMsR0FBRyxJQUFJLHNCQUFTLENBQUMsY0FBYyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDOUQsY0FBYyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsbUNBQVksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQ3BFLGNBQWMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDOUQsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7d0JBQzlDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxlQUFlLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7d0JBQ25GLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLCtCQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzs7Ozs7S0FDcEM7SUFFRCxrQkFBa0I7SUFDbEIsb0NBQU0sR0FBTjtRQUNFLElBQU0sTUFBTSxHQUFpQjtZQUMzQixLQUFLLEVBQUUsMEJBQWtCLENBQUMsTUFBTTtZQUNoQyxLQUFLLEVBQUUsa0NBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNqQyxRQUFRLEVBQUUsSUFBSSxzQkFBUyxDQUFDLGtDQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLFFBQVEsRUFBRSxJQUFJLHNCQUFTLENBQUMsa0NBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDdkUsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxzQkFBUyxDQUFDLGtDQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3BHLElBQUksRUFBRSxrQ0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDO1lBQy9CLEVBQUUsRUFBRSxtQ0FBWSxDQUFDLGtDQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNsRCxDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsTUFBTSxDQUFDLEVBQUUsR0FBRyxrQ0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckM7UUFFRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUFFLEVBQUU7WUFDN0IsTUFBTSxDQUFDLElBQUksR0FBRyxrQ0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZEO1FBRUQsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE1BQU0sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3JDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE1BQU0sQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUMvQztRQUVELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVoQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sZ0RBQWtCLEdBQTFCLFVBQTJCLE1BQW9CO1FBQzdDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO1lBQ2pDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsa0NBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25DO1FBRUQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDakMsTUFBTSxDQUFDLENBQUMsR0FBRyxrQ0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbkM7UUFFRCxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRTtZQUNqQyxNQUFNLENBQUMsQ0FBQyxHQUFHLGtDQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsMENBQVksR0FBWjtRQUNFLE9BQU8sbUNBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFYyxrQ0FBYyxHQUE3QixVQUE4QixNQUFvQixFQUFFLE1BQWM7UUFDaEUsa0ZBQWtGO1FBQ2xGLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsTUFBTSxFQUFFO1lBQy9CLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDeEUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxRQUFRO1lBQ3BCLElBQUksRUFBRSxNQUFNO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVjLG1DQUFlLEdBQTlCLFVBQStCLFNBQTZCO1FBQzFELDZCQUNLLFNBQVMsQ0FBQyxFQUFFLEtBQ2YsS0FBSyxFQUFFLDBCQUFrQixDQUFDLE1BQU0sRUFDaEMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsRUFDdkMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUMxQixJQUFJLEVBQUUsU0FBUyxDQUFDLEdBQUcsSUFDbkI7SUFDSixDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBbkhELElBbUhDO0FBbkhZLGtEQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IExvY2FsV2FsbGV0IH0gZnJvbSAnQGNlbG8vd2FsbGV0LWxvY2FsJztcbmltcG9ydCB7XG4gIGFkZEhleFByZWZpeCxcbiAgdG9CdWZmZXIsXG4gIGJ1ZmZlclRvSGV4LFxuICBidWZmZXJUb0ludCxcbiAgcmxwLFxuICBybHBoYXNoLFxuICBlY3JlY292ZXIsXG4gIHB1YmxpY1RvQWRkcmVzcyxcbn0gZnJvbSAnZXRoZXJldW1qcy11dGlscy1vbGQnO1xuaW1wb3J0IHsgdW5wYWQgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IHsgQ2Vsb1R4LCBFbmNvZGVkVHJhbnNhY3Rpb24gfSBmcm9tICdAY2Vsby9jb25uZWN0JztcbmltcG9ydCB7IEV0aExpa2VUcmFuc2FjdGlvbkRhdGEsIEVUSFRyYW5zYWN0aW9uVHlwZSwgTGVnYWN5VHhEYXRhIH0gZnJvbSAnLi4vZXRoL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi9ldGgnO1xuXG5leHBvcnQgY2xhc3MgQ2Vsb1RyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSByYXc6IEJ1ZmZlcltdO1xuICBwcml2YXRlIF9mcm9tOiBCdWZmZXI7XG4gIHByaXZhdGUgX3NlbmRlclB1YktleT87XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IEJ1ZmZlcltdO1xuICBwcml2YXRlIF9mZWVDdXJyZW5jeTogQnVmZmVyID0gdG9CdWZmZXIoJzB4Jyk7XG4gIHByaXZhdGUgX2dhdGV3YXlGZWVSZWNpcGllbnQ6IEJ1ZmZlciA9IHRvQnVmZmVyKCcweCcpO1xuICBwcml2YXRlIF9nYXRld2F5RmVlOiBCdWZmZXIgPSB0b0J1ZmZlcignMHgnKTtcbiAgbm9uY2U6IEJ1ZmZlcjtcbiAgZ2FzTGltaXQ6IEJ1ZmZlcjtcbiAgZ2FzUHJpY2U6IEJ1ZmZlcjtcbiAgZGF0YTogQnVmZmVyO1xuICB2YWx1ZTogQnVmZmVyO1xuICB0bzogQnVmZmVyID0gdG9CdWZmZXIoW10pO1xuICB2OiBCdWZmZXIgPSB0b0J1ZmZlcihbXSk7XG4gIHI6IEJ1ZmZlciA9IHRvQnVmZmVyKFtdKTtcbiAgczogQnVmZmVyID0gdG9CdWZmZXIoW10pO1xuXG4gIC8vIFRPRE86IHZhbGlkYXRlIGlmIHRoaXMgbmVlZHMgdG8gYmUgbW92ZWQgdG8gVXRpbHMgY2xhc3NcbiAgLyoqXG4gICAqIENsZWFuIGhleCBmb3JtYXR0ZWQgdmFsdWVzIGVuc3VyaW5nIHRoZXkgaGF2ZSBhbiBldmVuIGxlbmd0aFxuICAgKlxuICAgKiBAcGFyYW0gbnVtYmVyVmFsdWUgSGV4IGZvcm1hdHRlZCBudW1iZXIgdmFsdWUuIEV4YW1wbGUgJzB4MDEnXG4gICAqIEByZXR1cm5zIHNhbml0aXplZCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBzYW5pdGl6ZUhleFN0cmluZyhudW1iZXJWYWx1ZSkge1xuICAgIGlmIChudW1iZXJWYWx1ZSA9PT0gJzB4MCcpIHtcbiAgICAgIHJldHVybiAnMHgnO1xuICAgIH0gZWxzZSBpZiAobnVtYmVyVmFsdWUubGVuZ3RoICUgMiA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bWJlclZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gJzB4MCcgKyBudW1iZXJWYWx1ZS5zbGljZSgyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHR4OiBMZWdhY3lUeERhdGEpIHtcbiAgICB0aGlzLm5vbmNlID0gdW5wYWQodG9CdWZmZXIodHgubm9uY2UpKTtcbiAgICB0aGlzLmdhc0xpbWl0ID0gdG9CdWZmZXIodGhpcy5zYW5pdGl6ZUhleFN0cmluZyh0eC5nYXNMaW1pdCkpO1xuICAgIHRoaXMuZ2FzUHJpY2UgPSB0b0J1ZmZlcih0aGlzLnNhbml0aXplSGV4U3RyaW5nKHR4Lmdhc1ByaWNlKSk7XG4gICAgdGhpcy5kYXRhID0gdG9CdWZmZXIodHguZGF0YSk7XG4gICAgdGhpcy52YWx1ZSA9IHRvQnVmZmVyKHRoaXMuc2FuaXRpemVIZXhTdHJpbmcodHgudmFsdWUpKTtcbiAgICBpZiAodHgudG8pIHtcbiAgICAgIHRoaXMudG8gPSB0b0J1ZmZlcih0eC50byk7XG4gICAgfVxuICAgIGlmICh0eC52KSB7XG4gICAgICB0aGlzLnYgPSB0b0J1ZmZlcih0eC52KTtcbiAgICB9XG4gICAgaWYgKHR4LnIpIHtcbiAgICAgIHRoaXMuciA9IHRvQnVmZmVyKHR4LnIpO1xuICAgIH1cbiAgICBpZiAodHgucykge1xuICAgICAgdGhpcy5zID0gdG9CdWZmZXIodHgucyk7XG4gICAgfVxuICAgIGlmICh0eC5mcm9tKSB7XG4gICAgICB0aGlzLl9mcm9tID0gdG9CdWZmZXIodHguZnJvbSk7XG4gICAgfVxuICAgIHRoaXMuaW5pdFJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmF3KCkge1xuICAgIHRoaXMucmF3ID0gW1xuICAgICAgdGhpcy5ub25jZSxcbiAgICAgIHRoaXMuZ2FzUHJpY2UsXG4gICAgICB0aGlzLmdhc0xpbWl0LFxuICAgICAgdGhpcy5fZmVlQ3VycmVuY3ksXG4gICAgICB0aGlzLl9nYXRld2F5RmVlUmVjaXBpZW50LFxuICAgICAgdGhpcy5fZ2F0ZXdheUZlZSxcbiAgICAgIHRoaXMudG8sXG4gICAgICB0aGlzLnZhbHVlLFxuICAgICAgdGhpcy5kYXRhLFxuICAgICAgdGhpcy52LFxuICAgICAgdGhpcy5yLFxuICAgICAgdGhpcy5zLFxuICAgIF07XG4gIH1cblxuICBoYXNoKGluY2x1ZGVTaWduYXR1cmU/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBsZXQgaXRlbXM7XG4gICAgaWYgKGluY2x1ZGVTaWduYXR1cmUpIHtcbiAgICAgIGl0ZW1zID0gdGhpcy5yYXc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW1zID0gdGhpcy5yYXcuc2xpY2UoMCwgOSkuY29uY2F0KFt0b0J1ZmZlcih0aGlzLmdldENoYWluSWQoKSksIHVucGFkKHRvQnVmZmVyKDApKSwgdW5wYWQodG9CdWZmZXIoMCkpXSk7XG4gICAgfVxuICAgIHJldHVybiBybHBoYXNoKGl0ZW1zKTtcbiAgfVxuXG4gIGdldFNlbmRlckFkZHJlc3MoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5fZnJvbSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zyb207XG4gICAgfVxuICAgIGNvbnN0IHB1YktleSA9IHRoaXMuZ2V0U2VuZGVyUHVibGljS2V5KCk7XG4gICAgdGhpcy5fZnJvbSA9IHB1YmxpY1RvQWRkcmVzcyhwdWJLZXkpO1xuICAgIHJldHVybiB0aGlzLl9mcm9tO1xuICB9XG5cbiAgZ2V0U2VuZGVyUHVibGljS2V5KCkge1xuICAgIGlmICh0aGlzLnZlcmlmeVNpZ25hdHVyZSgpKSB7XG4gICAgICAvLyBJZiB0aGUgc2lnbmF0dXJlIHdhcyB2ZXJpZmllZCBzdWNjZXNzZnVsbHkgdGhlIF9zZW5kZXJQdWJLZXkgZmllbGQgaXMgZGVmaW5lZFxuICAgICAgcmV0dXJuIHRoaXMuX3NlbmRlclB1YktleTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFNpZ25hdHVyZScpO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHJscC5lbmNvZGUodGhpcy5yYXcpO1xuICB9XG5cbiAgc2lnbihwcml2YXRlS2V5OiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW3RoaXMudiwgdGhpcy5yLCB0aGlzLnMsIHByaXZhdGVLZXldO1xuICB9XG5cbiAgdmVyaWZ5U2lnbmF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1zZ0hhc2ggPSB0aGlzLmhhc2goZmFsc2UpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGFpbklkID0gdGhpcy5nZXRDaGFpbklkKCk7XG4gICAgICBjb25zdCB2ID0gYnVmZmVyVG9JbnQodGhpcy52KSAtICgyICogY2hhaW5JZCArIDM1KTtcbiAgICAgIHRoaXMuX3NlbmRlclB1YktleSA9IGVjcmVjb3Zlcihtc2dIYXNoLCB2ICsgMjcsIHRoaXMuciwgdGhpcy5zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhIXRoaXMuX3NlbmRlclB1YktleTtcbiAgfVxuXG4gIGdldENoYWluSWQoKTogbnVtYmVyIHtcbiAgICBsZXQgY2hhaW5JZCA9IGJ1ZmZlclRvSW50KHRoaXMudik7XG4gICAgaWYgKHRoaXMuci5sZW5ndGggJiYgdGhpcy5zLmxlbmd0aCkge1xuICAgICAgY2hhaW5JZCA9IChjaGFpbklkIC0gMzUpID4+IDE7XG4gICAgfVxuICAgIHJldHVybiBjaGFpbklkO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDZWxvVHJhbnNhY3Rpb25EYXRhIGltcGxlbWVudHMgRXRoTGlrZVRyYW5zYWN0aW9uRGF0YSB7XG4gIHByaXZhdGUgdHg6IENlbG9UcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBkZXBsb3llZEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IodHg6IENlbG9UcmFuc2FjdGlvbiwgZGVwbG95ZWRBZGRyZXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy50eCA9IHR4O1xuICAgIHRoaXMuZGVwbG95ZWRBZGRyZXNzID0gZGVwbG95ZWRBZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tSnNvbih0eDogTGVnYWN5VHhEYXRhKTogQ2Vsb1RyYW5zYWN0aW9uRGF0YSB7XG4gICAgY29uc3QgY2hhaW5JZCA9IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKE51bWJlcih0eC5jaGFpbklkKSkudG9TdHJpbmcoMTYpKTtcbiAgICByZXR1cm4gbmV3IENlbG9UcmFuc2FjdGlvbkRhdGEoXG4gICAgICBuZXcgQ2Vsb1RyYW5zYWN0aW9uKHtcbiAgICAgICAgX3R5cGU6IEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1ksXG4gICAgICAgIG5vbmNlOiB0eC5ub25jZSxcbiAgICAgICAgdG86IHR4LnRvLFxuICAgICAgICBnYXNQcmljZTogYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHguZ2FzUHJpY2UpLnRvU3RyaW5nKDE2KSksXG4gICAgICAgIGdhc0xpbWl0OiBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5nYXNMaW1pdCkudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgdmFsdWU6IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4LnZhbHVlKS50b1N0cmluZygxNikpLFxuICAgICAgICBkYXRhOiB0eC5kYXRhID09PSAnMHgnID8gJycgOiB0eC5kYXRhLFxuICAgICAgICBmcm9tOiB0eC5mcm9tLFxuICAgICAgICBzOiB0eC5zLFxuICAgICAgICByOiB0eC5yLFxuICAgICAgICB2OiB0eC52IHx8IGNoYWluSWQsXG4gICAgICB9KSxcbiAgICAgIHR4LmRlcGxveWVkQWRkcmVzcyxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyKSB7XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IGFkZEhleFByZWZpeChrZXlQYWlyLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nKTtcbiAgICBjb25zdCBkYXRhID0gQ2Vsb1RyYW5zYWN0aW9uRGF0YS50eEpzb25Ub0NlbG9UeCh0aGlzLnRvSnNvbigpLCBrZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgY29uc3QgY2Vsb0xvY2FsV2FsbGV0ID0gbmV3IExvY2FsV2FsbGV0KCk7XG4gICAgY2Vsb0xvY2FsV2FsbGV0LmFkZEFjY291bnQocHJpdmF0ZUtleSk7XG4gICAgY29uc3QgcmF3VHJhbnNhY3Rpb24gPSBhd2FpdCBjZWxvTG9jYWxXYWxsZXQuc2lnblRyYW5zYWN0aW9uKGRhdGEpO1xuXG4gICAgY29uc3Qgbm9uY2VCaWdOdW1iZXIgPSBuZXcgQmlnTnVtYmVyKHJhd1RyYW5zYWN0aW9uLnR4Lm5vbmNlKTtcbiAgICByYXdUcmFuc2FjdGlvbi50eC5ub25jZSA9IGFkZEhleFByZWZpeChub25jZUJpZ051bWJlci50b1N0cmluZygxNikpO1xuICAgIHJhd1RyYW5zYWN0aW9uLnJhdyA9IGRhdGEuZGF0YSA9PT0gdW5kZWZpbmVkID8gJycgOiBkYXRhLmRhdGE7XG4gICAgcmF3VHJhbnNhY3Rpb24udHguZ2FzID0gcmF3VHJhbnNhY3Rpb24udHguZ2FzO1xuICAgIHRoaXMudHggPSBuZXcgQ2Vsb1RyYW5zYWN0aW9uKENlbG9UcmFuc2FjdGlvbkRhdGEuZW5jb2RlZFR4VG9Kc29uKHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgdGhpcy50eC5zaWduKHRvQnVmZmVyKHByaXZhdGVLZXkpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogTGVnYWN5VHhEYXRhIHtcbiAgICBjb25zdCByZXN1bHQ6IExlZ2FjeVR4RGF0YSA9IHtcbiAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZLFxuICAgICAgbm9uY2U6IGJ1ZmZlclRvSW50KHRoaXMudHgubm9uY2UpLFxuICAgICAgZ2FzUHJpY2U6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC5nYXNQcmljZSksIDE2KS50b1N0cmluZygxMCksXG4gICAgICBnYXNMaW1pdDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0aGlzLnR4Lmdhc0xpbWl0KSwgMTYpLnRvU3RyaW5nKDEwKSxcbiAgICAgIHZhbHVlOiB0aGlzLnR4LnZhbHVlLmxlbmd0aCA9PT0gMCA/ICcwJyA6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC52YWx1ZSksIDE2KS50b1N0cmluZygxMCksXG4gICAgICBkYXRhOiBidWZmZXJUb0hleCh0aGlzLnR4LmRhdGEpLFxuICAgICAgaWQ6IGFkZEhleFByZWZpeChidWZmZXJUb0hleCh0aGlzLnR4Lmhhc2godHJ1ZSkpKSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudHgudG8gJiYgdGhpcy50eC50by5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC50byA9IGJ1ZmZlclRvSGV4KHRoaXMudHgudG8pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR4LnZlcmlmeVNpZ25hdHVyZSgpKSB7XG4gICAgICByZXN1bHQuZnJvbSA9IGJ1ZmZlclRvSGV4KHRoaXMudHguZ2V0U2VuZGVyQWRkcmVzcygpKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFpbklkID0gdGhpcy50eC5nZXRDaGFpbklkKCk7XG4gICAgaWYgKGNoYWluSWQpIHtcbiAgICAgIHJlc3VsdC5jaGFpbklkID0gY2hhaW5JZC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlcGxveWVkQWRkcmVzcykge1xuICAgICAgcmVzdWx0LmRlcGxveWVkQWRkcmVzcyA9IHRoaXMuZGVwbG95ZWRBZGRyZXNzO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2lnbmF0dXJlRmllbGRzKHJlc3VsdCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaWduYXR1cmVGaWVsZHMocmVzdWx0OiBMZWdhY3lUeERhdGEpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eC52ICYmIHRoaXMudHgudi5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC52ID0gYnVmZmVyVG9IZXgodGhpcy50eC52KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC5yICYmIHRoaXMudHguci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5yID0gYnVmZmVyVG9IZXgodGhpcy50eC5yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC5zICYmIHRoaXMudHgucy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5zID0gYnVmZmVyVG9IZXgodGhpcy50eC5zKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9TZXJpYWxpemVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFkZEhleFByZWZpeCh0aGlzLnR4LnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0eEpzb25Ub0NlbG9UeCh0eEpzb246IExlZ2FjeVR4RGF0YSwgc2lnbmVyOiBzdHJpbmcpOiBDZWxvVHgge1xuICAgIC8vIHRoZSBjZWxvIGxpYnJhcnkgcmVxdWlyZXMgeW91IHRvIHNwZWNpZnkgdGhlIHNpZ25lciBhZGRyZXNzIHdpdGggdGhlIGZyb20gZmllbGRcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdHhKc29uLCB7XG4gICAgICBjaGFpbklkOiB0eEpzb24uY2hhaW5JZCA9PT0gdW5kZWZpbmVkID8gMCA6IHBhcnNlSW50KHR4SnNvbi5jaGFpbklkLCAxMCksXG4gICAgICBnYXM6IHR4SnNvbi5nYXNMaW1pdCxcbiAgICAgIGZyb206IHNpZ25lcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGVuY29kZWRUeFRvSnNvbihlbmNvZGVkVHg6IEVuY29kZWRUcmFuc2FjdGlvbik6IExlZ2FjeVR4RGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmVuY29kZWRUeC50eCxcbiAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZLFxuICAgICAgbm9uY2U6IHBhcnNlSW50KGVuY29kZWRUeC50eC5ub25jZSwgMTYpLFxuICAgICAgZ2FzTGltaXQ6IGVuY29kZWRUeC50eC5nYXMsXG4gICAgICBkYXRhOiBlbmNvZGVkVHgucmF3LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdFQUFxQztBQUNyQyxxREFBaUQ7QUFDakQsc0VBU3FDO0FBQ3JDLHFEQUF3QztBQUV4Qyx3Q0FBd0Y7QUFHeEYsTUFBYSxlQUFlO0lBa0MxQixZQUFZLEVBQWdCO1FBN0JwQixpQkFBWSxHQUFXLCtCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMseUJBQW9CLEdBQVcsK0JBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxnQkFBVyxHQUFXLCtCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFNN0MsT0FBRSxHQUFXLCtCQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsTUFBQyxHQUFXLCtCQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsTUFBQyxHQUFXLCtCQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekIsTUFBQyxHQUFXLCtCQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFtQnZCLElBQUksQ0FBQyxLQUFLLEdBQUcsdUJBQUssQ0FBQywrQkFBUSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsK0JBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRywrQkFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLCtCQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEdBQUcsK0JBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMs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QUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsWUFBWTtRQUNWLE9BQU8sbUNBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQW9CLEVBQUUsTUFBYztRQUNoRSxrRkFBa0Y7UUFDbEYsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUU7WUFDL0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN4RSxHQUFHLEVBQUUsTUFBTSxDQUFDLFFBQVE7WUFDcEIsSUFBSSxFQUFFLE1BQU07U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxTQUE2QjtRQUMxRCxPQUFPO1lBQ0wsR0FBRyxTQUFTLENBQUMsRUFBRTtZQUNmLEtBQUssRUFBRSwwQkFBa0IsQ0FBQyxNQUFNO1lBQ2hDLEtBQUssRUFBRSxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRSxDQUFDLEdBQUc7WUFDMUIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxHQUFHO1NBQ3BCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFuSEQsa0RBbUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgTG9jYWxXYWxsZXQgfSBmcm9tICdAY2Vsby93YWxsZXQtbG9jYWwnO1xuaW1wb3J0IHtcbiAgYWRkSGV4UHJlZml4LFxuICB0b0J1ZmZlcixcbiAgYnVmZmVyVG9IZXgsXG4gIGJ1ZmZlclRvSW50LFxuICBybHAsXG4gIHJscGhhc2gsXG4gIGVjcmVjb3ZlcixcbiAgcHVibGljVG9BZGRyZXNzLFxufSBmcm9tICdAYml0Z28vZXRoZXJldW1qcy11dGlscy1vbGQnO1xuaW1wb3J0IHsgdW5wYWQgfSBmcm9tICdldGhlcmV1bWpzLXV0aWwnO1xuaW1wb3J0IHsgQ2Vsb1R4LCBFbmNvZGVkVHJhbnNhY3Rpb24gfSBmcm9tICdAY2Vsby9jb25uZWN0JztcbmltcG9ydCB7IEV0aExpa2VUcmFuc2FjdGlvbkRhdGEsIEVUSFRyYW5zYWN0aW9uVHlwZSwgTGVnYWN5VHhEYXRhIH0gZnJvbSAnLi4vZXRoL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuLi9ldGgnO1xuXG5leHBvcnQgY2xhc3MgQ2Vsb1RyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSByYXc6IEJ1ZmZlcltdO1xuICBwcml2YXRlIF9mcm9tOiBCdWZmZXI7XG4gIHByaXZhdGUgX3NlbmRlclB1YktleT87XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IEJ1ZmZlcltdO1xuICBwcml2YXRlIF9mZWVDdXJyZW5jeTogQnVmZmVyID0gdG9CdWZmZXIoJzB4Jyk7XG4gIHByaXZhdGUgX2dhdGV3YXlGZWVSZWNpcGllbnQ6IEJ1ZmZlciA9IHRvQnVmZmVyKCcweCcpO1xuICBwcml2YXRlIF9nYXRld2F5RmVlOiBCdWZmZXIgPSB0b0J1ZmZlcignMHgnKTtcbiAgbm9uY2U6IEJ1ZmZlcjtcbiAgZ2FzTGltaXQ6IEJ1ZmZlcjtcbiAgZ2FzUHJpY2U6IEJ1ZmZlcjtcbiAgZGF0YTogQnVmZmVyO1xuICB2YWx1ZTogQnVmZmVyO1xuICB0bzogQnVmZmVyID0gdG9CdWZmZXIoW10pO1xuICB2OiBCdWZmZXIgPSB0b0J1ZmZlcihbXSk7XG4gIHI6IEJ1ZmZlciA9IHRvQnVmZmVyKFtdKTtcbiAgczogQnVmZmVyID0gdG9CdWZmZXIoW10pO1xuXG4gIC8vIFRPRE86IHZhbGlkYXRlIGlmIHRoaXMgbmVlZHMgdG8gYmUgbW92ZWQgdG8gVXRpbHMgY2xhc3NcbiAgLyoqXG4gICAqIENsZWFuIGhleCBmb3JtYXR0ZWQgdmFsdWVzIGVuc3VyaW5nIHRoZXkgaGF2ZSBhbiBldmVuIGxlbmd0aFxuICAgKlxuICAgKiBAcGFyYW0gbnVtYmVyVmFsdWUgSGV4IGZvcm1hdHRlZCBudW1iZXIgdmFsdWUuIEV4YW1wbGUgJzB4MDEnXG4gICAqIEByZXR1cm5zIHNhbml0aXplZCB2YWx1ZVxuICAgKi9cbiAgcHJpdmF0ZSBzYW5pdGl6ZUhleFN0cmluZyhudW1iZXJWYWx1ZSkge1xuICAgIGlmIChudW1iZXJWYWx1ZSA9PT0gJzB4MCcpIHtcbiAgICAgIHJldHVybiAnMHgnO1xuICAgIH0gZWxzZSBpZiAobnVtYmVyVmFsdWUubGVuZ3RoICUgMiA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bWJlclZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gJzB4MCcgKyBudW1iZXJWYWx1ZS5zbGljZSgyKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHR4OiBMZWdhY3lUeERhdGEpIHtcbiAgICB0aGlzLm5vbmNlID0gdW5wYWQodG9CdWZmZXIodHgubm9uY2UpKTtcbiAgICB0aGlzLmdhc0xpbWl0ID0gdG9CdWZmZXIodGhpcy5zYW5pdGl6ZUhleFN0cmluZyh0eC5nYXNMaW1pdCkpO1xuICAgIHRoaXMuZ2FzUHJpY2UgPSB0b0J1ZmZlcih0aGlzLnNhbml0aXplSGV4U3RyaW5nKHR4Lmdhc1ByaWNlKSk7XG4gICAgdGhpcy5kYXRhID0gdG9CdWZmZXIodHguZGF0YSk7XG4gICAgdGhpcy52YWx1ZSA9IHRvQnVmZmVyKHRoaXMuc2FuaXRpemVIZXhTdHJpbmcodHgudmFsdWUpKTtcbiAgICBpZiAodHgudG8pIHtcbiAgICAgIHRoaXMudG8gPSB0b0J1ZmZlcih0eC50byk7XG4gICAgfVxuICAgIGlmICh0eC52KSB7XG4gICAgICB0aGlzLnYgPSB0b0J1ZmZlcih0eC52KTtcbiAgICB9XG4gICAgaWYgKHR4LnIpIHtcbiAgICAgIHRoaXMuciA9IHRvQnVmZmVyKHR4LnIpO1xuICAgIH1cbiAgICBpZiAodHgucykge1xuICAgICAgdGhpcy5zID0gdG9CdWZmZXIodHgucyk7XG4gICAgfVxuICAgIGlmICh0eC5mcm9tKSB7XG4gICAgICB0aGlzLl9mcm9tID0gdG9CdWZmZXIodHguZnJvbSk7XG4gICAgfVxuICAgIHRoaXMuaW5pdFJhdygpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UmF3KCkge1xuICAgIHRoaXMucmF3ID0gW1xuICAgICAgdGhpcy5ub25jZSxcbiAgICAgIHRoaXMuZ2FzUHJpY2UsXG4gICAgICB0aGlzLmdhc0xpbWl0LFxuICAgICAgdGhpcy5fZmVlQ3VycmVuY3ksXG4gICAgICB0aGlzLl9nYXRld2F5RmVlUmVjaXBpZW50LFxuICAgICAgdGhpcy5fZ2F0ZXdheUZlZSxcbiAgICAgIHRoaXMudG8sXG4gICAgICB0aGlzLnZhbHVlLFxuICAgICAgdGhpcy5kYXRhLFxuICAgICAgdGhpcy52LFxuICAgICAgdGhpcy5yLFxuICAgICAgdGhpcy5zLFxuICAgIF07XG4gIH1cblxuICBoYXNoKGluY2x1ZGVTaWduYXR1cmU/OiBib29sZWFuKTogQnVmZmVyIHtcbiAgICBsZXQgaXRlbXM7XG4gICAgaWYgKGluY2x1ZGVTaWduYXR1cmUpIHtcbiAgICAgIGl0ZW1zID0gdGhpcy5yYXc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGl0ZW1zID0gdGhpcy5yYXcuc2xpY2UoMCwgOSkuY29uY2F0KFt0b0J1ZmZlcih0aGlzLmdldENoYWluSWQoKSksIHVucGFkKHRvQnVmZmVyKDApKSwgdW5wYWQodG9CdWZmZXIoMCkpXSk7XG4gICAgfVxuICAgIHJldHVybiBybHBoYXNoKGl0ZW1zKTtcbiAgfVxuXG4gIGdldFNlbmRlckFkZHJlc3MoKTogQnVmZmVyIHtcbiAgICBpZiAodGhpcy5fZnJvbSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Zyb207XG4gICAgfVxuICAgIGNvbnN0IHB1YktleSA9IHRoaXMuZ2V0U2VuZGVyUHVibGljS2V5KCk7XG4gICAgdGhpcy5fZnJvbSA9IHB1YmxpY1RvQWRkcmVzcyhwdWJLZXkpO1xuICAgIHJldHVybiB0aGlzLl9mcm9tO1xuICB9XG5cbiAgZ2V0U2VuZGVyUHVibGljS2V5KCkge1xuICAgIGlmICh0aGlzLnZlcmlmeVNpZ25hdHVyZSgpKSB7XG4gICAgICAvLyBJZiB0aGUgc2lnbmF0dXJlIHdhcyB2ZXJpZmllZCBzdWNjZXNzZnVsbHkgdGhlIF9zZW5kZXJQdWJLZXkgZmllbGQgaXMgZGVmaW5lZFxuICAgICAgcmV0dXJuIHRoaXMuX3NlbmRlclB1YktleTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIFNpZ25hdHVyZScpO1xuICB9XG5cbiAgc2VyaWFsaXplKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHJscC5lbmNvZGUodGhpcy5yYXcpO1xuICB9XG5cbiAgc2lnbihwcml2YXRlS2V5OiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW3RoaXMudiwgdGhpcy5yLCB0aGlzLnMsIHByaXZhdGVLZXldO1xuICB9XG5cbiAgdmVyaWZ5U2lnbmF0dXJlKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1zZ0hhc2ggPSB0aGlzLmhhc2goZmFsc2UpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGFpbklkID0gdGhpcy5nZXRDaGFpbklkKCk7XG4gICAgICBjb25zdCB2ID0gYnVmZmVyVG9JbnQodGhpcy52KSAtICgyICogY2hhaW5JZCArIDM1KTtcbiAgICAgIHRoaXMuX3NlbmRlclB1YktleSA9IGVjcmVjb3Zlcihtc2dIYXNoLCB2ICsgMjcsIHRoaXMuciwgdGhpcy5zKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhIXRoaXMuX3NlbmRlclB1YktleTtcbiAgfVxuXG4gIGdldENoYWluSWQoKTogbnVtYmVyIHtcbiAgICBsZXQgY2hhaW5JZCA9IGJ1ZmZlclRvSW50KHRoaXMudik7XG4gICAgaWYgKHRoaXMuci5sZW5ndGggJiYgdGhpcy5zLmxlbmd0aCkge1xuICAgICAgY2hhaW5JZCA9IChjaGFpbklkIC0gMzUpID4+IDE7XG4gICAgfVxuICAgIHJldHVybiBjaGFpbklkO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBDZWxvVHJhbnNhY3Rpb25EYXRhIGltcGxlbWVudHMgRXRoTGlrZVRyYW5zYWN0aW9uRGF0YSB7XG4gIHByaXZhdGUgdHg6IENlbG9UcmFuc2FjdGlvbjtcbiAgcHJpdmF0ZSBkZXBsb3llZEFkZHJlc3M/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IodHg6IENlbG9UcmFuc2FjdGlvbiwgZGVwbG95ZWRBZGRyZXNzPzogc3RyaW5nKSB7XG4gICAgdGhpcy50eCA9IHR4O1xuICAgIHRoaXMuZGVwbG95ZWRBZGRyZXNzID0gZGVwbG95ZWRBZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBmcm9tSnNvbih0eDogTGVnYWN5VHhEYXRhKTogQ2Vsb1RyYW5zYWN0aW9uRGF0YSB7XG4gICAgY29uc3QgY2hhaW5JZCA9IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKE51bWJlcih0eC5jaGFpbklkKSkudG9TdHJpbmcoMTYpKTtcbiAgICByZXR1cm4gbmV3IENlbG9UcmFuc2FjdGlvbkRhdGEoXG4gICAgICBuZXcgQ2Vsb1RyYW5zYWN0aW9uKHtcbiAgICAgICAgX3R5cGU6IEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1ksXG4gICAgICAgIG5vbmNlOiB0eC5ub25jZSxcbiAgICAgICAgdG86IHR4LnRvLFxuICAgICAgICBnYXNQcmljZTogYWRkSGV4UHJlZml4KG5ldyBCaWdOdW1iZXIodHguZ2FzUHJpY2UpLnRvU3RyaW5nKDE2KSksXG4gICAgICAgIGdhc0xpbWl0OiBhZGRIZXhQcmVmaXgobmV3IEJpZ051bWJlcih0eC5nYXNMaW1pdCkudG9TdHJpbmcoMTYpKSxcbiAgICAgICAgdmFsdWU6IGFkZEhleFByZWZpeChuZXcgQmlnTnVtYmVyKHR4LnZhbHVlKS50b1N0cmluZygxNikpLFxuICAgICAgICBkYXRhOiB0eC5kYXRhID09PSAnMHgnID8gJycgOiB0eC5kYXRhLFxuICAgICAgICBmcm9tOiB0eC5mcm9tLFxuICAgICAgICBzOiB0eC5zLFxuICAgICAgICByOiB0eC5yLFxuICAgICAgICB2OiB0eC52IHx8IGNoYWluSWQsXG4gICAgICB9KSxcbiAgICAgIHR4LmRlcGxveWVkQWRkcmVzcyxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2lnbihrZXlQYWlyOiBLZXlQYWlyKSB7XG4gICAgY29uc3QgcHJpdmF0ZUtleSA9IGFkZEhleFByZWZpeChrZXlQYWlyLmdldEtleXMoKS5wcnYgYXMgc3RyaW5nKTtcbiAgICBjb25zdCBkYXRhID0gQ2Vsb1RyYW5zYWN0aW9uRGF0YS50eEpzb25Ub0NlbG9UeCh0aGlzLnRvSnNvbigpLCBrZXlQYWlyLmdldEFkZHJlc3MoKSk7XG4gICAgY29uc3QgY2Vsb0xvY2FsV2FsbGV0ID0gbmV3IExvY2FsV2FsbGV0KCk7XG4gICAgY2Vsb0xvY2FsV2FsbGV0LmFkZEFjY291bnQocHJpdmF0ZUtleSk7XG4gICAgY29uc3QgcmF3VHJhbnNhY3Rpb24gPSBhd2FpdCBjZWxvTG9jYWxXYWxsZXQuc2lnblRyYW5zYWN0aW9uKGRhdGEpO1xuXG4gICAgY29uc3Qgbm9uY2VCaWdOdW1iZXIgPSBuZXcgQmlnTnVtYmVyKHJhd1RyYW5zYWN0aW9uLnR4Lm5vbmNlKTtcbiAgICByYXdUcmFuc2FjdGlvbi50eC5ub25jZSA9IGFkZEhleFByZWZpeChub25jZUJpZ051bWJlci50b1N0cmluZygxNikpO1xuICAgIHJhd1RyYW5zYWN0aW9uLnJhdyA9IGRhdGEuZGF0YSA9PT0gdW5kZWZpbmVkID8gJycgOiBkYXRhLmRhdGE7XG4gICAgcmF3VHJhbnNhY3Rpb24udHguZ2FzID0gcmF3VHJhbnNhY3Rpb24udHguZ2FzO1xuICAgIHRoaXMudHggPSBuZXcgQ2Vsb1RyYW5zYWN0aW9uKENlbG9UcmFuc2FjdGlvbkRhdGEuZW5jb2RlZFR4VG9Kc29uKHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgdGhpcy50eC5zaWduKHRvQnVmZmVyKHByaXZhdGVLZXkpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0pzb24oKTogTGVnYWN5VHhEYXRhIHtcbiAgICBjb25zdCByZXN1bHQ6IExlZ2FjeVR4RGF0YSA9IHtcbiAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZLFxuICAgICAgbm9uY2U6IGJ1ZmZlclRvSW50KHRoaXMudHgubm9uY2UpLFxuICAgICAgZ2FzUHJpY2U6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC5nYXNQcmljZSksIDE2KS50b1N0cmluZygxMCksXG4gICAgICBnYXNMaW1pdDogbmV3IEJpZ051bWJlcihidWZmZXJUb0hleCh0aGlzLnR4Lmdhc0xpbWl0KSwgMTYpLnRvU3RyaW5nKDEwKSxcbiAgICAgIHZhbHVlOiB0aGlzLnR4LnZhbHVlLmxlbmd0aCA9PT0gMCA/ICcwJyA6IG5ldyBCaWdOdW1iZXIoYnVmZmVyVG9IZXgodGhpcy50eC52YWx1ZSksIDE2KS50b1N0cmluZygxMCksXG4gICAgICBkYXRhOiBidWZmZXJUb0hleCh0aGlzLnR4LmRhdGEpLFxuICAgICAgaWQ6IGFkZEhleFByZWZpeChidWZmZXJUb0hleCh0aGlzLnR4Lmhhc2godHJ1ZSkpKSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudHgudG8gJiYgdGhpcy50eC50by5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC50byA9IGJ1ZmZlclRvSGV4KHRoaXMudHgudG8pO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR4LnZlcmlmeVNpZ25hdHVyZSgpKSB7XG4gICAgICByZXN1bHQuZnJvbSA9IGJ1ZmZlclRvSGV4KHRoaXMudHguZ2V0U2VuZGVyQWRkcmVzcygpKTtcbiAgICB9XG5cbiAgICBjb25zdCBjaGFpbklkID0gdGhpcy50eC5nZXRDaGFpbklkKCk7XG4gICAgaWYgKGNoYWluSWQpIHtcbiAgICAgIHJlc3VsdC5jaGFpbklkID0gY2hhaW5JZC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlcGxveWVkQWRkcmVzcykge1xuICAgICAgcmVzdWx0LmRlcGxveWVkQWRkcmVzcyA9IHRoaXMuZGVwbG95ZWRBZGRyZXNzO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U2lnbmF0dXJlRmllbGRzKHJlc3VsdCk7XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaWduYXR1cmVGaWVsZHMocmVzdWx0OiBMZWdhY3lUeERhdGEpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50eC52ICYmIHRoaXMudHgudi5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC52ID0gYnVmZmVyVG9IZXgodGhpcy50eC52KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC5yICYmIHRoaXMudHguci5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5yID0gYnVmZmVyVG9IZXgodGhpcy50eC5yKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eC5zICYmIHRoaXMudHgucy5sZW5ndGgpIHtcbiAgICAgIHJlc3VsdC5zID0gYnVmZmVyVG9IZXgodGhpcy50eC5zKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9TZXJpYWxpemVkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGFkZEhleFByZWZpeCh0aGlzLnR4LnNlcmlhbGl6ZSgpLnRvU3RyaW5nKCdoZXgnKSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyB0eEpzb25Ub0NlbG9UeCh0eEpzb246IExlZ2FjeVR4RGF0YSwgc2lnbmVyOiBzdHJpbmcpOiBDZWxvVHgge1xuICAgIC8vIHRoZSBjZWxvIGxpYnJhcnkgcmVxdWlyZXMgeW91IHRvIHNwZWNpZnkgdGhlIHNpZ25lciBhZGRyZXNzIHdpdGggdGhlIGZyb20gZmllbGRcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgdHhKc29uLCB7XG4gICAgICBjaGFpbklkOiB0eEpzb24uY2hhaW5JZCA9PT0gdW5kZWZpbmVkID8gMCA6IHBhcnNlSW50KHR4SnNvbi5jaGFpbklkLCAxMCksXG4gICAgICBnYXM6IHR4SnNvbi5nYXNMaW1pdCxcbiAgICAgIGZyb206IHNpZ25lcixcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGVuY29kZWRUeFRvSnNvbihlbmNvZGVkVHg6IEVuY29kZWRUcmFuc2FjdGlvbik6IExlZ2FjeVR4RGF0YSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmVuY29kZWRUeC50eCxcbiAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZLFxuICAgICAgbm9uY2U6IHBhcnNlSW50KGVuY29kZWRUeC50eC5ub25jZSwgMTYpLFxuICAgICAgZ2FzTGltaXQ6IGVuY29kZWRUeC50eC5nYXMsXG4gICAgICBkYXRhOiBlbmNvZGVkVHgucmF3LFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -23,13 +23,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
25
|
exports.walletSimpleByteCode = exports.getCommon = exports.deserialize = void 0;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
const statics_1 = require("@bitgo/statics");
|
|
27
|
+
const wallet_base_1 = require("@celo/wallet-base");
|
|
28
|
+
const ethers = __importStar(require("ethers"));
|
|
29
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
30
|
+
const iface_1 = require("../eth/iface");
|
|
31
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
32
|
+
const resources_1 = require("./resources");
|
|
33
33
|
/**
|
|
34
34
|
* Celo transaction deserialization based on code
|
|
35
35
|
* from @celo/contractkit/lib/utils/signing-utils
|
|
@@ -40,40 +40,40 @@ var resources_1 = require("./resources");
|
|
|
40
40
|
*/
|
|
41
41
|
function deserialize(serializedTx) {
|
|
42
42
|
try {
|
|
43
|
-
|
|
43
|
+
const decodedTx = ethers.utils.RLP.decode(serializedTx);
|
|
44
44
|
decodedTx.splice(3, 3); // remove unused feeCurrency, gatewayFeeRecipient and gatewayFee
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const [nonce, gasPrice, gasLimit, to, value, data, v, r, s] = decodedTx;
|
|
46
|
+
let chainId = v;
|
|
47
|
+
let from;
|
|
48
48
|
if (r !== '0x' && s !== '0x') {
|
|
49
|
-
|
|
49
|
+
const [tx, sender] = wallet_base_1.recoverTransaction(serializedTx);
|
|
50
50
|
from = sender;
|
|
51
51
|
chainId = tx.chainId;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
const celoTx = {
|
|
54
54
|
_type: iface_1.ETHTransactionType.LEGACY,
|
|
55
55
|
nonce: nonce.toLowerCase() === '0x' ? 0 : parseInt(nonce, 16),
|
|
56
56
|
gasPrice: gasPrice.toLowerCase() === '0x' ? '0' : new bignumber_js_1.default(gasPrice, 16).toString(),
|
|
57
57
|
gasLimit: gasLimit.toLowerCase() === '0x' ? '0' : new bignumber_js_1.default(gasLimit, 16).toString(),
|
|
58
58
|
value: value.toLowerCase() === '0x' ? '0' : new bignumber_js_1.default(value, 16).toString(),
|
|
59
|
-
data
|
|
60
|
-
chainId
|
|
61
|
-
from
|
|
62
|
-
v
|
|
63
|
-
r
|
|
64
|
-
s
|
|
59
|
+
data,
|
|
60
|
+
chainId,
|
|
61
|
+
from,
|
|
62
|
+
v,
|
|
63
|
+
r,
|
|
64
|
+
s,
|
|
65
65
|
};
|
|
66
66
|
if (to !== '0x') {
|
|
67
67
|
celoTx.to = to;
|
|
68
68
|
}
|
|
69
69
|
return celoTx;
|
|
70
70
|
}
|
|
71
|
-
catch
|
|
72
|
-
throw new
|
|
71
|
+
catch {
|
|
72
|
+
throw new sdk_core_1.ParseTransactionError('Invalid serialized transaction');
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
exports.deserialize = deserialize;
|
|
76
|
-
|
|
76
|
+
const commons = new Map([
|
|
77
77
|
[statics_1.NetworkType.MAINNET, resources_1.mainnetCommon],
|
|
78
78
|
[statics_1.NetworkType.TESTNET, resources_1.testnetCommon],
|
|
79
79
|
]);
|
|
@@ -81,9 +81,9 @@ var commons = new Map([
|
|
|
81
81
|
* @param network
|
|
82
82
|
*/
|
|
83
83
|
function getCommon(network) {
|
|
84
|
-
|
|
84
|
+
const common = commons.get(network);
|
|
85
85
|
if (!common) {
|
|
86
|
-
throw new
|
|
86
|
+
throw new sdk_core_1.InvalidTransactionError('Missing network common configuration');
|
|
87
87
|
}
|
|
88
88
|
return common;
|
|
89
89
|
}
|
|
@@ -96,4 +96,4 @@ exports.getCommon = getCommon;
|
|
|
96
96
|
cat CeloWalletSimple.bin
|
|
97
97
|
*/
|
|
98
98
|
exports.walletSimpleByteCode = '0x60606040526000600160006101000a81548160ff021916908315150217905550341561002a57600080fd5b60405161155b38038061155b833981016040528080518201919050506003815114151561005657600080fd5b806000908051906020019061006c929190610073565b5050610140565b8280548282559060005260206000209081019282156100ec579160200282015b828111156100eb5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555091602001919060010190610093565b5b5090506100f991906100fd565b5090565b61013d91905b8082111561013957600081816101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905550600101610103565b5090565b90565b61140c8061014f6000396000f300606060405260043610610099576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630dcd7a6c146101335780632079fb9a146101e95780632da034091461024c57806339125215146102a45780637df73e271461037e578063a0b7967b146103cf578063a68a76cc146103f8578063abe3219c1461044d578063fc0f392d1461047a575b6000341115610131577f6e89d517057028190560dd200cf6bf792842861353d1173761dfa362e1c133f03334600036604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a15b005b341561013e57600080fd5b6101e7600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190505061048f565b005b34156101f457600080fd5b61020a6004808035906020019091905050610668565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561025757600080fd5b6102a2600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803573ffffffffffffffffffffffffffffffffffffffff169060200190919050506106a7565b005b34156102af57600080fd5b61037c600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190803590602001909190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509190803590602001909190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050610773565b005b341561038957600080fd5b6103b5600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610a72565b604051808215151515815260200191505060405180910390f35b34156103da57600080fd5b6103e2610b16565b6040518082815260200191505060405180910390f35b341561040357600080fd5b61040b610b70565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561045857600080fd5b610460610b95565b604051808215151515815260200191505060405180910390f35b341561048557600080fd5b61048d610ba8565b005b60008061049b33610a72565b15156104a657600080fd5b878787878760405180807f43454c4f2d455243323000000000000000000000000000000000000000000000815250600a018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c010000000000000000000000000281526014018581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140183815260200182815260200195505050505050604051809103902091506105898883858888610c3b565b508590508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb89896000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561063857600080fd5b6102c65a03f1151561064957600080fd5b50505060405180519050151561065e57600080fd5b5050505050505050565b60008181548110151561067757fe5b90600052602060002090016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006106b233610a72565b15156106bd57600080fd5b8290508073ffffffffffffffffffffffffffffffffffffffff16633ef13367836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050600060405180830381600087803b151561075a57600080fd5b6102c65a03f1151561076b57600080fd5b505050505050565b60008061077f33610a72565b151561078a57600080fd5b878787878760405180807f43454c4f000000000000000000000000000000000000000000000000000000008152506004018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140185815260200184805190602001908083835b602083101515610833578051825260208201915060208101905060208303925061080e565b6001836020036101000a038019825116818451168082178552505050505050905001838152602001828152602001955050505050506040518091039020915061087f8883858888610c3b565b90508773ffffffffffffffffffffffffffffffffffffffff16878760405180828051906020019080838360005b838110156108c75780820151818401526020810190506108ac565b50505050905090810190601f1680156108f45780820380516001836020036101000a031916815260200191505b5091505060006040518083038185876187965a03f192505050151561091857600080fd5b7f59bed9ab5d78073465dd642a9e3e76dfdb7d53bcae9d09df7d0b8f5234d5a8063382848b8b8b604051808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200185600019166000191681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610a29578082015181840152602081019050610a0e565b50505050905090810190601f168015610a565780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a15050505050505050565b600080600090505b600080549050811015610b0b578273ffffffffffffffffffffffffffffffffffffffff16600082815481101515610aad57fe5b906000526020600020900160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415610afe5760019150610b10565b8080600101915050610a7a565b600091505b50919050565b6000806000809150600090505b600a811015610b655781600282600a81101515610b3c57fe5b01541115610b5857600281600a81101515610b5357fe5b015491505b8080600101915050610b23565b600182019250505090565b6000610b7a610e90565b604051809103906000f0801515610b9057600080fd5b905090565b600160009054906101000a900460ff1681565b610bb133610a72565b1515610bbc57600080fd5b60018060006101000a81548160ff0219169083151502179055507f0909e8f76a4fd3e970f2eaef56c0ee6dfaf8b87c5b8d3f56ffce78e825a9115733604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b600080610c488686610ce6565b9050600160009054906101000a900460ff168015610c6c5750610c6a87610a72565b155b15610c7657600080fd5b42841015610c8357600080fd5b610c8c83610db9565b610c9581610a72565b1515610ca057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd957600080fd5b8091505095945050505050565b60008060008060418551141515610cfc57600080fd5b602085015192506040850151915060ff6041860151169050601b8160ff161015610d2757601b810190505b600186828585604051600081526020016040526000604051602001526040518085600019166000191681526020018460ff1660ff16815260200183600019166000191681526020018260001916600019168152602001945050505050602060405160208103908084039060008661646e5a03f11515610da557600080fd5b505060206040510351935050505092915050565b600080610dc533610a72565b1515610dd057600080fd5b60009150600090505b600a811015610e385782600282600a81101515610df257fe5b01541415610dff57600080fd5b600282600a81101515610e0e57fe5b0154600282600a81101515610e1f57fe5b01541015610e2b578091505b8080600101915050610dd9565b600282600a81101515610e4757fe5b0154831015610e5557600080fd5b612710600283600a81101515610e6757fe5b015401831115610e7657600080fd5b82600283600a81101515610e8657fe5b0181905550505050565b60405161054080610ea18339019056006060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506104e28061005e6000396000f300606060405260043610610056576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168062821de3146101475780633ef133671461019c5780636b9f96ea146101d5575b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015156100b757600080fd5b7f69b31548dea9b3b707b4dff357d326e3e9348b24e7a6080a218a6edeeec48f9b3334600036604051808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184815260200180602001828103825284848281815260200192508082843782019150509550505050505060405180910390a1005b341561015257600080fd5b61015a6101ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34156101a757600080fd5b6101d3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061020f565b005b34156101e057600080fd5b6101e861043c565b005b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561026f57600080fd5b8392503091508273ffffffffffffffffffffffffffffffffffffffff166370a08231836000604051602001526040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b151561031857600080fd5b6102c65a03f1151561032957600080fd5b505050604051805190509050600081141561034357610436565b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836000604051602001526040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b151561040f57600080fd5b6102c65a03f1151561042057600080fd5b50505060405180519050151561043557600080fd5b5b50505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015156104b457600080fd5b5600a165627a7a7230582042193b8fa36bb211143819a525fe07f597a57ac51bda735499ecebe2eda648870029a165627a7a7230582011b3e786820bbf974fbf8802c6bfd0fb44ab2ec30ed9018b91aad7503cd214aa0029';
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBNkM7QUFFN0MsaURBQXVEO0FBQ3ZELDZDQUFpQztBQUNqQyw4REFBcUM7QUFDckMsc0NBQWdFO0FBQ2hFLDZDQUFvRjtBQUNwRix5Q0FBMkQ7QUFFM0Q7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxZQUFvQjtJQUM5QyxJQUFJO1FBQ0YsSUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ2pGLElBQUEsS0FBSyxHQUFrRCxTQUFTLEdBQTNELEVBQUUsUUFBUSxHQUF3QyxTQUFTLEdBQWpELEVBQUUsUUFBUSxHQUE4QixTQUFTLEdBQXZDLEVBQUUsRUFBRSxHQUEwQixTQUFTLEdBQW5DLEVBQUUsS0FBSyxHQUFtQixTQUFTLEdBQTVCLEVBQUUsSUFBSSxHQUFhLFNBQVMsR0FBdEIsRUFBRSxDQUFDLEdBQVUsU0FBUyxHQUFuQixFQUFFLENBQUMsR0FBTyxTQUFTLEdBQWhCLEVBQUUsQ0FBQyxHQUFJLFNBQVMsR0FBYixDQUFjO1FBQ3hFLElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNoQixJQUFJLElBQUksU0FBQSxDQUFDO1FBQ1QsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsSUFBQSxLQUFlLGdDQUFrQixDQUFDLFlBQVksQ0FBQyxFQUE5QyxFQUFFLFFBQUEsRUFBRSxNQUFNLFFBQW9DLENBQUM7WUFDdEQsSUFBSSxHQUFHLE1BQU0sQ0FBQztZQUNkLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ3RCO1FBQ0QsSUFBTSxNQUFNLEdBQWlCO1lBQzNCLEtBQUssRUFBRSwwQkFBa0IsQ0FBQyxNQUFNO1lBQ2hDLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQzdELFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQ3hGLFFBQVEsRUFBRSxRQUFRLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQ3hGLEtBQUssRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksc0JBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO1lBQy9FLElBQUksTUFBQTtZQUNKLE9BQU8sU0FBQTtZQUNQLElBQUksTUFBQTtZQUNKLENBQUMsR0FBQTtZQUNELENBQUMsR0FBQTtZQUNELENBQUMsR0FBQTtTQUNGLENBQUM7UUFFRixJQUFJLEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDZixNQUFNLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQztTQUNoQjtRQUVELE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFBQyxXQUFNO1FBQ04sTUFBTSxJQUFJLDhCQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7S0FDbkU7QUFDSCxDQUFDO0FBbENELGtDQWtDQztBQUVELElBQU0sT0FBTyxHQUFxQyxJQUFJLEdBQUcsQ0FBOEI7SUFDckYsQ0FBQyxxQkFBVyxDQUFDLE9BQU8sRUFBRSx5QkFBYSxDQUFDO0lBQ3BDLENBQUMscUJBQVcsQ0FBQyxPQUFPLEVBQUUseUJBQWEsQ0FBQztDQUNyQyxDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxPQUFvQjtJQUM1QyxJQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDWCxNQUFNLElBQUksZ0NBQXVCLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUMzRTtJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFORCw4QkFNQztBQUVEOzs7Ozs7RUFNRTtBQUNXLFFBQUEsb0JBQW9CLEdBQy9CLDByVkFBMHJWLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrVHlwZSB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCBFdGhlcmV1bUNvbW1vbiBmcm9tICdAZXRoZXJldW1qcy9jb21tb24nO1xuaW1wb3J0IHsgcmVjb3ZlclRyYW5zYWN0aW9uIH0gZnJvbSAnQGNlbG8vd2FsbGV0LWJhc2UnO1xuaW1wb3J0ICogYXMgZXRoZXJzIGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBFVEhUcmFuc2FjdGlvblR5cGUsIExlZ2FjeVR4RGF0YSB9IGZyb20gJy4uL2V0aC9pZmFjZSc7XG5pbXBvcnQgeyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgUGFyc2VUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnLi4vYmFzZUNvaW4vZXJyb3JzJztcbmltcG9ydCB7IG1haW5uZXRDb21tb24sIHRlc3RuZXRDb21tb24gfSBmcm9tICcuL3Jlc291cmNlcyc7XG5cbi8qKlxuICogQ2VsbyB0cmFuc2FjdGlvbiBkZXNlcmlhbGl6YXRpb24gYmFzZWQgb24gY29kZVxuICogZnJvbSBAY2Vsby9jb250cmFjdGtpdC9saWIvdXRpbHMvc2lnbmluZy11dGlsc1xuICogZ2l0aHViOiBodHRwczovL2dpdGh1Yi5jb20vY2Vsby1vcmcvY2Vsby1tb25vcmVwby90cmVlL21hc3Rlci9wYWNrYWdlcy9jb250cmFjdGtpdFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzZXJpYWxpemVkVHggdGhlIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb25cbiAqIEByZXR1cm5zIHtMZWdhY3lUeERhdGF9IHRoZSBkZXNlcmlhbGl6ZWQgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlc2VyaWFsaXplKHNlcmlhbGl6ZWRUeDogc3RyaW5nKTogTGVnYWN5VHhEYXRhIHtcbiAgdHJ5IHtcbiAgICBjb25zdCBkZWNvZGVkVHggPSBldGhlcnMudXRpbHMuUkxQLmRlY29kZShzZXJpYWxpemVkVHgpO1xuICAgIGRlY29kZWRUeC5zcGxpY2UoMywgMyk7IC8vIHJlbW92ZSB1bnVzZWQgZmVlQ3VycmVuY3ksIGdhdGV3YXlGZWVSZWNpcGllbnQgYW5kIGdhdGV3YXlGZWVcbiAgICBjb25zdCBbbm9uY2UsIGdhc1ByaWNlLCBnYXNMaW1pdCwgdG8sIHZhbHVlLCBkYXRhLCB2LCByLCBzXSA9IGRlY29kZWRUeDtcbiAgICBsZXQgY2hhaW5JZCA9IHY7XG4gICAgbGV0IGZyb207XG4gICAgaWYgKHIgIT09ICcweCcgJiYgcyAhPT0gJzB4Jykge1xuICAgICAgY29uc3QgW3R4LCBzZW5kZXJdID0gcmVjb3ZlclRyYW5zYWN0aW9uKHNlcmlhbGl6ZWRUeCk7XG4gICAgICBmcm9tID0gc2VuZGVyO1xuICAgICAgY2hhaW5JZCA9IHR4LmNoYWluSWQ7XG4gICAgfVxuICAgIGNvbnN0IGNlbG9UeDogTGVnYWN5VHhEYXRhID0ge1xuICAgICAgX3R5cGU6IEVUSFRyYW5zYWN0aW9uVHlwZS5MRUdBQ1ksXG4gICAgICBub25jZTogbm9uY2UudG9Mb3dlckNhc2UoKSA9PT0gJzB4JyA/IDAgOiBwYXJzZUludChub25jZSwgMTYpLFxuICAgICAgZ2FzUHJpY2U6IGdhc1ByaWNlLnRvTG93ZXJDYXNlKCkgPT09ICcweCcgPyAnMCcgOiBuZXcgQmlnTnVtYmVyKGdhc1ByaWNlLCAxNikudG9TdHJpbmcoKSxcbiAgICAgIGdhc0xpbWl0OiBnYXNMaW1pdC50b0xvd2VyQ2FzZSgpID09PSAnMHgnID8gJzAnIDogbmV3IEJpZ051bWJlcihnYXNMaW1pdCwgMTYpLnRvU3RyaW5nKCksXG4gICAgICB2YWx1ZTogdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gJzB4JyA/ICcwJyA6IG5ldyBCaWdOdW1iZXIodmFsdWUsIDE2KS50b1N0cmluZygpLFxuICAgICAgZGF0YSxcbiAgICAgIGNoYWluSWQsXG4gICAgICBmcm9tLFxuICAgICAgdixcbiAgICAgIHIsXG4gICAgICBzLFxuICAgIH07XG5cbiAgICBpZiAodG8gIT09ICcweCcpIHtcbiAgICAgIGNlbG9UeC50byA9IHRvO1xuICAgIH1cblxuICAgIHJldHVybiBjZWxvVHg7XG4gIH0gY2F0Y2gge1xuICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgc2VyaWFsaXplZCB0cmFuc2FjdGlvbicpO1xuICB9XG59XG5cbmNvbnN0IGNvbW1vbnM6IE1hcDxOZXR3b3JrVHlwZSwgRXRoZXJldW1Db21tb24+ID0gbmV3IE1hcDxOZXR3b3JrVHlwZSwgRXRoZXJldW1Db21tb24+KFtcbiAgW05ldHdvcmtUeXBlLk1BSU5ORVQsIG1haW5uZXRDb21tb25dLFxuICBbTmV0d29ya1R5cGUuVEVTVE5FVCwgdGVzdG5ldENvbW1vbl0sXG5dKTtcblxuLyoqXG4gKiBAcGFyYW0gbmV0d29ya1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29tbW9uKG5ldHdvcms6IE5ldHdvcmtUeXBlKTogRXRoZXJldW1Db21tb24ge1xuICBjb25zdCBjb21tb24gPSBjb21tb25zLmdldChuZXR3b3JrKTtcbiAgaWYgKCFjb21tb24pIHtcbiAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgbmV0d29yayBjb21tb24gY29uZmlndXJhdGlvbicpO1xuICB9XG4gIHJldHVybiBjb21tb247XG59XG5cbi8qXG4gIFN0ZXBzIHRvIHJlcHJvZHVjZTpcbiAgQ2hlY2tvdXQgaHR0cHM6Ly9naXRodWIuY29tL2JpdGdvL2V0aC1tdWx0aXNpZy12MlxuICBucG0gaW5zdGFsbCAtZyBzb2xjQDAuNC4xOFxuICBzb2xjanMgLS1iaW4gLi9jb250cmFjdHMvY29pbnMvQ2Vsb1dhbGxldFNpbXBsZS5zb2wgLi9jb250cmFjdHMvRm9yd2FyZGVyLnNvbCAuL2NvbnRyYWN0cy9FUkMyMEludGVyZmFjZS5zb2xcbiAgY2F0IENlbG9XYWxsZXRTaW1wbGUuYmluXG4qL1xuZXhwb3J0IGNvbnN0IHdhbGxldFNpbXBsZUJ5dGVDb2RlID1cbiAgJzB4NjA2MDYwNDA1MjYwMDA2MDAxNjAwMDYxMDEwMDBhODE1NDgxNjBmZjAyMTkxNjkwODMxNTE1MDIxNzkwNTU1MDM0MTU2MTAwMmE1NzYwMDA4MGZkNWI2MDQwNTE2MTE1NWIzODAzODA2MTE1NWI4MzM5ODEwMTYwNDA1MjgwODA1MTgyMDE5MTkwNTA1MDYwMDM4MTUxMTQxNTE1NjEwMDU2NTc2MDAwODBmZDViODA2MDAwOTA4MDUxOTA2MDIwMDE5MDYxMDA2YzkyOTE5MDYxMDA3MzU2NWI1MDUwNjEwMTQwNTY1YjgyODA1NDgyODI1NTkwNjAwMDUyNjAyMDYwMDAyMDkwODEwMTkyODIxNTYxMDBlYzU3OTE2MDIwMDI4MjAxNWI4MjgxMTExNTYxMDBlYjU3ODI1MTgyNjAwMDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDkxNjAyMDAxOTE5MDYwMDEwMTkwNjEwMDkzNTY1YjViNTA5MDUwNjEwMGY5OTE5MDYxMDBmZDU2NWI1MDkwNTY1YjYxMDEzZDkxOTA1YjgwODIxMTE1NjEwMTM5NTc2MDAwODE4MTYxMDEwMDBhODE1NDkwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA1NTUwNjAwMTAxNjEwMTAzNTY1YjUwOTA1NjViOTA1NjViNjExNDBjODA2MTAxNGY2MDAwMzk2MDAwZjMwMDYwNjA2MDQwNTI2MDA0MzYxMDYxMDA5OTU3NjAwMDM1N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwOTAwNDYzZmZmZmZmZmYxNjgwNjMwZGNkN2E2YzE0NjEwMTMzNTc4MDYzMjA3OWZiOWExNDYxMDFlOTU3ODA2MzJkYTAzNDA5MTQ2MTAyNGM1NzgwNjMzOTEyNTIxNTE0NjEwMmE0NTc4MDYzN2RmNzNlMjcxNDYxMDM3ZTU3ODA2M2EwYjc5NjdiMTQ2MTAzY2Y1NzgwNjNhNjhhNzZjYzE0NjEwM2Y4NTc4MDYzYWJlMzIxOWMxNDYxMDQ0ZDU3ODA2M2ZjMGYzOTJkMTQ2MTA0N2E1NzViNjAwMDM0MTExNTYxMDEzMTU3N2Y2ZTg5ZDUxNzA1NzAyODE5MDU2MGRkMjAwY2Y2YmY3OTI4NDI4NjEzNTNkMTE3Mzc2MWRmYTM2MmUxYzEzM2YwMzMzNDYwMDAzNjYwNDA1MTgwODU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg0ODE1MjYwMjAwMTgwNjAyMDAxODI4MTAzODI1Mjg0ODQ4MjgxODE1MjYwMjAwMTkyNTA4MDgyODQzNzgyMDE5MTUwNTA5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwYTE1YjAwNWIzNDE1NjEwMTNlNTc2MDAwODBmZDViNjEwMWU3NjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDQ4ZjU2NWIwMDViMzQxNTYxMDFmNDU3NjAwMDgwZmQ1YjYxMDIwYTYwMDQ4MDgwMzU5MDYwMjAwMTkwOTE5MDUwNTA2MTA2Njg1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDI1NzU3NjAwMDgwZmQ1YjYxMDJhMjYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA1MDUwNjEwNmE3NTY1YjAwNWIzNDE1NjEwMmFmNTc2MDAwODBmZDViNjEwMzdjNjAwNDgwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDgyMDE4MDM1OTA2MDIwMDE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3ODIwMTkxNTA1MDUwNTA1MDUwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwOTE5MDgwMzU5MDYwMjAwMTkwODIwMTgwMzU5MDYwMjAwMTkwODA4MDYwMWYwMTYwMjA4MDkxMDQwMjYwMjAwMTYwNDA1MTkwODEwMTYwNDA1MjgwOTM5MjkxOTA4MTgxNTI2MDIwMDE4MzgzODA4Mjg0Mzc4MjAxOTE1MDUwNTA1MDUwNTA5MTkwNTA1MDYxMDc3MzU2NWIwMDViMzQxNTYxMDM4OTU3NjAwMDgwZmQ1YjYxMDNiNTYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMGE3MjU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDNkYTU3NjAwMDgwZmQ1YjYxMDNlMjYxMGIxNjU2NWI2MDQwNTE4MDgyODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTA0MDM1NzYwMDA4MGZkNWI2MTA0MGI2MTBiNzA1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ1ODU3NjAwMDgwZmQ1YjYxMDQ2MDYxMGI5NTU2NWI2MDQwNTE4MDgyMTUxNTE1MTU4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDQ4NTU3NjAwMDgwZmQ1YjYxMDQ4ZDYxMGJhODU2NWIwMDViNjAwMDgwNjEwNDliMzM2MTBhNzI1NjViMTUxNTYxMDRhNjU3NjAwMDgwZmQ1Yjg3ODc4Nzg3ODc2MDQwNTE4MDgwN2Y0MzQ1NGM0ZjJkNDU1MjQzMzIzMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwODE1MjUwNjAwYTAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NmMwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyODE1MjYwMTQwMTg1ODE1MjYwMjAwMTg0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4MzgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5NTUwNTA1MDUwNTA1MDYwNDA1MTgwOTEwMzkwMjA5MTUwNjEwNTg5ODg4Mzg1ODg4ODYxMGMzYjU2NWI1MDg1OTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2E5MDU5Y2JiODk4OTYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgzNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTI1MDUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDYzODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTA2NDk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDE1MTU2MTA2NWU1NzYwMDA4MGZkNWI1MDUwNTA1MDUwNTA1MDUwNTY1YjYwMDA4MTgxNTQ4MTEwMTUxNTYxMDY3NzU3ZmU1YjkwNjAwMDUyNjAyMDYwMDAyMDkwMDE2MDAwOTE1MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTY1YjYwMDA2MTA2YjIzMzYxMGE3MjU2NWIxNTE1NjEwNmJkNTc2MDAwODBmZDViODI5MDUwODA3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzM2VmMTMzNjc4MzYwNDA1MTgyNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjAwMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1MTU2MTA3NWE1NzYwMDA4MGZkNWI2MTAyYzY1YTAzZjExNTE1NjEwNzZiNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTY1YjYwMDA4MDYxMDc3ZjMzNjEwYTcyNTY1YjE1MTU2MTA3OGE1NzYwMDA4MGZkNWI4Nzg3ODc4Nzg3NjA0MDUxODA4MDdmNDM0NTRjNGYwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDYwMDQwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4NTgxNTI2MDIwMDE4NDgwNTE5MDYwMjAwMTkwODA4MzgzNWI2MDIwODMxMDE1MTU2MTA4MzM1NzgwNTE4MjUyNjAyMDgyMDE5MTUwNjAyMDgxMDE5MDUwNjAyMDgzMDM5MjUwNjEwODBlNTY1YjYwMDE4MzYwMjAwMzYxMDEwMDBhMDM4MDE5ODI1MTE2ODE4NDUxMTY4MDgyMTc4NTUyNTA1MDUwNTA1MDUwOTA1MDAxODM4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MDIwOTE1MDYxMDg3Zjg4ODM4NTg4ODg2MTBjM2I1NjViOTA1MDg3NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4Nzg3NjA0MDUxODA4MjgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTA4Yzc1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTA4YWM1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwOGY0NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5MTUwNTA2MDAwNjA0MDUxODA4MzAzODE4NTg3NjE4Nzk2NWEwM2YxOTI1MDUwNTAxNTE1NjEwOTE4NTc2MDAwODBmZDViN2Y1OWJlZDlhYjVkNzgwNzM0NjVkZDY0MmE5ZTNlNzZkZmRiN2Q1M2JjYWU5ZDA5ZGY3ZDBiOGY1MjM0ZDVhODA2MzM4Mjg0OGI4YjhiNjA0MDUxODA4NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg1NjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4NDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODM4MTUyNjAyMDAxODA2MDIwMDE4MjgxMDM4MjUyODM4MTgxNTE4MTUyNjAyMDAxOTE1MDgwNTE5MDYwMjAwMTkwODA4MzgzNjAwMDViODM4MTEwMTU2MTBhMjk1NzgwODIwMTUxODE4NDAxNTI2MDIwODEwMTkwNTA2MTBhMGU1NjViNTA1MDUwNTA5MDUwOTA4MTAxOTA2MDFmMTY4MDE1NjEwYTU2NTc4MDgyMDM4MDUxNjAwMTgzNjAyMDAzNjEwMTAwMGEwMzE5MTY4MTUyNjAyMDAxOTE1MDViNTA5NzUwNTA1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwOTA1MDViNjAwMDgwNTQ5MDUwODExMDE1NjEwYjBiNTc4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjAwMDgyODE1NDgxMTAxNTE1NjEwYWFkNTdmZTViOTA2MDAwNTI2MDIwNjAwMDIwOTAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MTQxNTYxMGFmZTU3NjAwMTkxNTA2MTBiMTA1NjViODA4MDYwMDEwMTkxNTA1MDYxMGE3YTU2NWI2MDAwOTE1MDViNTA5MTkwNTA1NjViNjAwMDgwNjAwMDgwOTE1MDYwMDA5MDUwNWI2MDBhODExMDE1NjEwYjY1NTc4MTYwMDI4MjYwMGE4MTEwMTUxNTYxMGIzYzU3ZmU1YjAxNTQxMTE1NjEwYjU4NTc2MDAyODE2MDBhODExMDE1MTU2MTBiNTM1N2ZlNWIwMTU0OTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGIyMzU2NWI2MDAxODIwMTkyNTA1MDUwOTA1NjViNjAwMDYxMGI3YTYxMGU5MDU2NWI2MDQwNTE4MDkxMDM5MDYwMDBmMDgwMTUxNTYxMGI5MDU3NjAwMDgwZmQ1YjkwNTA5MDU2NWI2MDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjgxNTY1YjYxMGJiMTMzNjEwYTcyNTY1YjE1MTU2MTBiYmM1NzYwMDA4MGZkNWI2MDAxODA2MDAwNjEwMTAwMGE4MTU0ODE2MGZmMDIxOTE2OTA4MzE1MTUwMjE3OTA1NTUwN2YwOTA5ZThmNzZhNGZkM2U5NzBmMmVhZWY1NmMwZWU2ZGZhZjhiODdjNWI4ZDNmNTZmZmNlNzhlODI1YTkxMTU3MzM2MDQwNTE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGExNTY1YjYwMDA4MDYxMGM0ODg2ODY2MTBjZTY1NjViOTA1MDYwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NjBmZjE2ODAxNTYxMGM2YzU3NTA2MTBjNmE4NzYxMGE3MjU2NWIxNTViMTU2MTBjNzY1NzYwMDA4MGZkNWI0Mjg0MTAxNTYxMGM4MzU3NjAwMDgwZmQ1YjYxMGM4YzgzNjEwZGI5NTY1YjYxMGM5NTgxNjEwYTcyNTY1YjE1MTU2MTBjYTA1NzYwMDA4MGZkNWIzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0MTU2MTBjZDk1NzYwMDA4MGZkNWI4MDkxNTA1MDk1OTQ1MDUwNTA1MDUwNTY1YjYwMDA4MDYwMDA4MDYwNDE4NTUxMTQxNTE1NjEwY2ZjNTc2MDAwODBmZDViNjAyMDg1MDE1MTkyNTA2MDQwODUwMTUxOTE1MDYwZmY2MDQxODYwMTUxMTY5MDUwNjAxYjgxNjBmZjE2MTAxNTYxMGQyNzU3NjAxYjgxMDE5MDUwNWI2MDAxODY4Mjg1ODU2MDQwNTE2MDAwODE1MjYwMjAwMTYwNDA1MjYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgwODU2MDAwMTkxNjYwMDAxOTE2ODE1MjYwMjAwMTg0NjBmZjE2NjBmZjE2ODE1MjYwMjAwMTgzNjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4MjYwMDAxOTE2NjAwMDE5MTY4MTUyNjAyMDAxOTQ1MDUwNTA1MDUwNjAyMDYwNDA1MTYwMjA4MTAzOTA4MDg0MDM5MDYwMDA4NjYxNjQ2ZTVhMDNmMTE1MTU2MTBkYTU1NzYwMDA4MGZkNWI1MDUwNjAyMDYwNDA1MTAzNTE5MzUwNTA1MDUwOTI5MTUwNTA1NjViNjAwMDgwNjEwZGM1MzM2MTBhNzI1NjViMTUxNTYxMGRkMDU3NjAwMDgwZmQ1YjYwMDA5MTUwNjAwMDkwNTA1YjYwMGE4MTEwMTU2MTBlMzg1NzgyNjAwMjgyNjAwYTgxMTAxNTE1NjEwZGYyNTdmZTViMDE1NDE0MTU2MTBkZmY1NzYwMDA4MGZkNWI2MDAyODI2MDBhODExMDE1MTU2MTBlMGU1N2ZlNWIwMTU0NjAwMjgyNjAwYTgxMTAxNTE1NjEwZTFmNTdmZTViMDE1NDEwMTU2MTBlMmI1NzgwOTE1MDViODA4MDYwMDEwMTkxNTA1MDYxMGRkOTU2NWI2MDAyODI2MDBhODExMDE1MTU2MTBlNDc1N2ZlNWIwMTU0ODMxMDE1NjEwZTU1NTc2MDAwODBmZDViNjEyNzEwNjAwMjgzNjAwYTgxMTAxNTE1NjEwZTY3NTdmZTViMDE1NDAxODMxMTE1NjEwZTc2NTc2MDAwODBmZDViODI2MDAyODM2MDBhODExMDE1MTU2MTBlODY1N2ZlNWIwMTgxOTA1NTUwNTA1MDUwNTY1YjYwNDA1MTYxMDU0MDgwNjEwZWExODMzOTAxOTA1NjAwNjA2MDYwNDA1MjM0MTU2MTAwMGY1NzYwMDA4MGZkNWIzMzYwMDA4MDYxMDEwMDBhODE1NDgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMDIxOTE2OTA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MDIxNzkwNTU1MDYxMDRlMjgwNjEwMDVlNjAwMDM5NjAwMGYzMDA2MDYwNjA0MDUyNjAwNDM2MTA2MTAwNTY1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYyODIxZGUzMTQ2MTAxNDc1NzgwNjMzZWYxMzM2NzE0NjEwMTljNTc4MDYzNmI5Zjk2ZWExNDYxMDFkNTU3NWI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjEwOGZjMzQ5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTUxNTYxMDBiNzU3NjAwMDgwZmQ1YjdmNjliMzE1NDhkZWE5YjNiNzA3YjRkZmYzNTdkMzI2ZTNlOTM0OGIyNGU3YTYwODBhMjE4YTZlZGVlZWM0OGY5YjMzMzQ2MDAwMzY2MDQwNTE4MDg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4NDgxNTI2MDIwMDE4MDYwMjAwMTgyODEwMzgyNTI4NDg0ODI4MTgxNTI2MDIwMDE5MjUwODA4Mjg0Mzc4MjAxOTE1MDUwOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExMDA1YjM0MTU2MTAxNTI1NzYwMDA4MGZkNWI2MTAxNWE2MTAxZWE1NjViNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBmMzViMzQxNTYxMDFhNzU3NjAwMDgwZmQ1YjYxMDFkMzYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMDIwZjU2NWIwMDViMzQxNTYxMDFlMDU3NjAwMDgwZmQ1YjYxMDFlODYxMDQzYzU2NWIwMDViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTU2NWI2MDAwODA2MDAwODA2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjMzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYxNDE1MTU2MTAyNmY1NzYwMDA4MGZkNWI4MzkyNTAzMDkxNTA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjM3MGEwODIzMTgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODI2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE5MTUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDMxODU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTAzMjk1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDkwNTA2MDAwODExNDE1NjEwMzQzNTc2MTA0MzY1NjViODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzYTkwNTljYmI2MDAwODA5MDU0OTA2MTAxMDAwYTkwMDQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgzNjAwMDYwNDA1MTYwMjAwMTUyNjA0MDUxODM2M2ZmZmZmZmZmMTY3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDA0MDE4MDgzNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4MjgxNTI2MDIwMDE5MjUwNTA1MDYwMjA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTE1NjEwNDBmNTc2MDAwODBmZDViNjEwMmM2NWEwM2YxMTUxNTYxMDQyMDU3NjAwMDgwZmQ1YjUwNTA1MDYwNDA1MTgwNTE5MDUwMTUxNTYxMDQzNTU3NjAwMDgwZmQ1YjViNTA1MDUwNTA1NjViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzMwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMTkwODExNTAyOTA2MDQwNTE2MDAwNjA0MDUxODA4MzAzODE4NTg4ODhmMTkzNTA1MDUwNTAxNTE1NjEwNGI0NTc2MDAwODBmZDViNTYwMGExNjU2MjdhN2E3MjMwNTgyMDQyMTkzYjhmYTM2YmIyMTExNDM4MTlhNTI1ZmUwN2Y1OTdhNTdhYzUxYmRhNzM1NDk5ZWNlYmUyZWRhNjQ4ODcwMDI5YTE2NTYyN2E3YTcyMzA1ODIwMTFiM2U3ODY4MjBiYmY5NzRmYmY4ODAyYzZiZmQwZmI0NGFiMmVjMzBlZDkwMThiOTFhYWQ3NTAzY2QyMTRhYTAwMjknO1xuIl19
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29pbi9jZWxvL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBNkM7QUFFN0MsbURBQXVEO0FBQ3ZELCtDQUFpQztBQUNqQyxnRUFBcUM7QUFDckMsd0NBQWdFO0FBQ2hFLDhDQUFpRjtBQUNqRiwyQ0FBMkQ7QUFFM0Q7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLFdBQVcsQ0FBQyxZQUFvQjtJQUM5QyxJQUFJO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hELFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0VBQWdFO1FBQ3hGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsSUFBSSxJQUFJLENBQUM7UUFDVCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtZQUM1QixNQUFNLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxHQUFHLGdDQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3RELElBQUksR0FBRyxNQUFNLENBQUM7WUFDZCxPQUFPLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUN0QjtRQUNELE1BQU0sTUFBTSxHQUFpQjtZQUMzQixLQUFLLEVBQUUsMEJBQWtCLENBQUMsTUFBTTtZQUNoQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUM3RCxRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUN4RixRQUFRLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUN4RixLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtZQUMvRSxJQUFJO1lBQ0osT0FBTztZQUNQLElBQUk7WUFDSixDQUFDO1lBQ0QsQ0FBQztZQUNELENBQUM7U0FDRixDQUFDO1FBRUYsSUFBSSxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQ2YsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7U0FDaEI7UUFFRCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBQUMsTUFBTTtRQUNOLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO0tBQ25FO0FBQ0gsQ0FBQztBQWxDRCxrQ0FrQ0M7QUFFRCxNQUFNLE9BQU8sR0FBcUMsSUFBSSxHQUFHLENBQThCO0lBQ3JGLENBQUMscUJBQVcsQ0FBQyxPQUFPLEVBQUUseUJBQWEsQ0FBQztJQUNwQyxDQUFDLHFCQUFXLENBQUMsT0FBTyxFQUFFLHlCQUFhLENBQUM7Q0FDckMsQ0FBQyxDQUFDO0FBRUg7O0dBRUc7QUFDSCxTQUFnQixTQUFTLENBQUMsT0FBb0I7SUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxJQUFJLENBQUMsTUFBTSxFQUFFO1FBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHNDQUFzQyxDQUFDLENBQUM7S0FDM0U7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBTkQsOEJBTUM7QUFFRDs7Ozs7O0VBTUU7QUFDVyxRQUFBLG9CQUFvQixHQUMvQiwwclZBQTByVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmV0d29ya1R5cGUgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgRXRoZXJldW1Db21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IHJlY292ZXJUcmFuc2FjdGlvbiB9IGZyb20gJ0BjZWxvL3dhbGxldC1iYXNlJztcbmltcG9ydCAqIGFzIGV0aGVycyBmcm9tICdldGhlcnMnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgRVRIVHJhbnNhY3Rpb25UeXBlLCBMZWdhY3lUeERhdGEgfSBmcm9tICcuLi9ldGgvaWZhY2UnO1xuaW1wb3J0IHsgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFBhcnNlVHJhbnNhY3Rpb25FcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBtYWlubmV0Q29tbW9uLCB0ZXN0bmV0Q29tbW9uIH0gZnJvbSAnLi9yZXNvdXJjZXMnO1xuXG4vKipcbiAqIENlbG8gdHJhbnNhY3Rpb24gZGVzZXJpYWxpemF0aW9uIGJhc2VkIG9uIGNvZGVcbiAqIGZyb20gQGNlbG8vY29udHJhY3RraXQvbGliL3V0aWxzL3NpZ25pbmctdXRpbHNcbiAqIGdpdGh1YjogaHR0cHM6Ly9naXRodWIuY29tL2NlbG8tb3JnL2NlbG8tbW9ub3JlcG8vdHJlZS9tYXN0ZXIvcGFja2FnZXMvY29udHJhY3RraXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gc2VyaWFsaXplZFR4IHRoZSBzZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gKiBAcmV0dXJucyB7TGVnYWN5VHhEYXRhfSB0aGUgZGVzZXJpYWxpemVkIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXNlcmlhbGl6ZShzZXJpYWxpemVkVHg6IHN0cmluZyk6IExlZ2FjeVR4RGF0YSB7XG4gIHRyeSB7XG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZXRoZXJzLnV0aWxzLlJMUC5kZWNvZGUoc2VyaWFsaXplZFR4KTtcbiAgICBkZWNvZGVkVHguc3BsaWNlKDMsIDMpOyAvLyByZW1vdmUgdW51c2VkIGZlZUN1cnJlbmN5LCBnYXRld2F5RmVlUmVjaXBpZW50IGFuZCBnYXRld2F5RmVlXG4gICAgY29uc3QgW25vbmNlLCBnYXNQcmljZSwgZ2FzTGltaXQsIHRvLCB2YWx1ZSwgZGF0YSwgdiwgciwgc10gPSBkZWNvZGVkVHg7XG4gICAgbGV0IGNoYWluSWQgPSB2O1xuICAgIGxldCBmcm9tO1xuICAgIGlmIChyICE9PSAnMHgnICYmIHMgIT09ICcweCcpIHtcbiAgICAgIGNvbnN0IFt0eCwgc2VuZGVyXSA9IHJlY292ZXJUcmFuc2FjdGlvbihzZXJpYWxpemVkVHgpO1xuICAgICAgZnJvbSA9IHNlbmRlcjtcbiAgICAgIGNoYWluSWQgPSB0eC5jaGFpbklkO1xuICAgIH1cbiAgICBjb25zdCBjZWxvVHg6IExlZ2FjeVR4RGF0YSA9IHtcbiAgICAgIF90eXBlOiBFVEhUcmFuc2FjdGlvblR5cGUuTEVHQUNZLFxuICAgICAgbm9uY2U6IG5vbmNlLnRvTG93ZXJDYXNlKCkgPT09ICcweCcgPyAwIDogcGFyc2VJbnQobm9uY2UsIDE2KSxcbiAgICAgIGdhc1ByaWNlOiBnYXNQcmljZS50b0xvd2VyQ2FzZSgpID09PSAnMHgnID8gJzAnIDogbmV3IEJpZ051bWJlcihnYXNQcmljZSwgMTYpLnRvU3RyaW5nKCksXG4gICAgICBnYXNMaW1pdDogZ2FzTGltaXQudG9Mb3dlckNhc2UoKSA9PT0gJzB4JyA/ICcwJyA6IG5ldyBCaWdOdW1iZXIoZ2FzTGltaXQsIDE2KS50b1N0cmluZygpLFxuICAgICAgdmFsdWU6IHZhbHVlLnRvTG93ZXJDYXNlKCkgPT09ICcweCcgPyAnMCcgOiBuZXcgQmlnTnVtYmVyKHZhbHVlLCAxNikudG9TdHJpbmcoKSxcbiAgICAgIGRhdGEsXG4gICAgICBjaGFpbklkLFxuICAgICAgZnJvbSxcbiAgICAgIHYsXG4gICAgICByLFxuICAgICAgcyxcbiAgICB9O1xuXG4gICAgaWYgKHRvICE9PSAnMHgnKSB7XG4gICAgICBjZWxvVHgudG8gPSB0bztcbiAgICB9XG5cbiAgICByZXR1cm4gY2Vsb1R4O1xuICB9IGNhdGNoIHtcbiAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHNlcmlhbGl6ZWQgdHJhbnNhY3Rpb24nKTtcbiAgfVxufVxuXG5jb25zdCBjb21tb25zOiBNYXA8TmV0d29ya1R5cGUsIEV0aGVyZXVtQ29tbW9uPiA9IG5ldyBNYXA8TmV0d29ya1R5cGUsIEV0aGVyZXVtQ29tbW9uPihbXG4gIFtOZXR3b3JrVHlwZS5NQUlOTkVULCBtYWlubmV0Q29tbW9uXSxcbiAgW05ldHdvcmtUeXBlLlRFU1RORVQsIHRlc3RuZXRDb21tb25dLFxuXSk7XG5cbi8qKlxuICogQHBhcmFtIG5ldHdvcmtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbW1vbihuZXR3b3JrOiBOZXR3b3JrVHlwZSk6IEV0aGVyZXVtQ29tbW9uIHtcbiAgY29uc3QgY29tbW9uID0gY29tbW9ucy5nZXQobmV0d29yayk7XG4gIGlmICghY29tbW9uKSB7XG4gICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIG5ldHdvcmsgY29tbW9uIGNvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICByZXR1cm4gY29tbW9uO1xufVxuXG4vKlxuICBTdGVwcyB0byByZXByb2R1Y2U6XG4gIENoZWNrb3V0IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRnby9ldGgtbXVsdGlzaWctdjJcbiAgbnBtIGluc3RhbGwgLWcgc29sY0AwLjQuMThcbiAgc29sY2pzIC0tYmluIC4vY29udHJhY3RzL2NvaW5zL0NlbG9XYWxsZXRTaW1wbGUuc29sIC4vY29udHJhY3RzL0ZvcndhcmRlci5zb2wgLi9jb250cmFjdHMvRVJDMjBJbnRlcmZhY2Uuc29sXG4gIGNhdCBDZWxvV2FsbGV0U2ltcGxlLmJpblxuKi9cbmV4cG9ydCBjb25zdCB3YWxsZXRTaW1wbGVCeXRlQ29kZSA9XG4gICcweDYwNjA2MDQwNTI2MDAwNjAwMTYwMDA2MTAxMDAwYTgxNTQ4MTYwZmYwMjE5MTY5MDgzMTUxNTAyMTc5MDU1NTAzNDE1NjEwMDJhNTc2MDAwODBmZDViNjA0MDUxNjExNTViMzgwMzgwNjExNTViODMzOTgxMDE2MDQwNTI4MDgwNTE4MjAxOTE5MDUwNTA2MDAzODE1MTE0MTUxNTYxMDA1NjU3NjAwMDgwZmQ1YjgwNjAwMDkwODA1MTkwNjAyMDAxOTA2MTAwNmM5MjkxOTA2MTAwNzM1NjViNTA1MDYxMDE0MDU2NWI4MjgwNTQ4MjgyNTU5MDYwMDA1MjYwMjA2MDAwMjA5MDgxMDE5MjgyMTU2MTAwZWM1NzkxNjAyMDAyODIwMTViODI4MTExMTU2MTAwZWI1NzgyNTE4MjYwMDA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA5MTYwMjAwMTkxOTA2MDAxMDE5MDYxMDA5MzU2NWI1YjUwOTA1MDYxMDBmOTkxOTA2MTAwZmQ1NjViNTA5MDU2NWI2MTAxM2Q5MTkwNWI4MDgyMTExNTYxMDEzOTU3NjAwMDgxODE2MTAxMDAwYTgxNTQ5MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwNTU1MDYwMDEwMTYxMDEwMzU2NWI1MDkwNTY1YjkwNTY1YjYxMTQwYzgwNjEwMTRmNjAwMDM5NjAwMGYzMDA2MDYwNjA0MDUyNjAwNDM2MTA2MTAwOTk1NzYwMDAzNTdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDkwMDQ2M2ZmZmZmZmZmMTY4MDYzMGRjZDdhNmMxNDYxMDEzMzU3ODA2MzIwNzlmYjlhMTQ2MTAxZTk1NzgwNjMyZGEwMzQwOTE0NjEwMjRjNTc4MDYzMzkxMjUyMTUxNDYxMDJhNDU3ODA2MzdkZjczZTI3MTQ2MTAzN2U1NzgwNjNhMGI3OTY3YjE0NjEwM2NmNTc4MDYzYTY4YTc2Y2MxNDYxMDNmODU3ODA2M2FiZTMyMTljMTQ2MTA0NGQ1NzgwNjNmYzBmMzkyZDE0NjEwNDdhNTc1YjYwMDAzNDExMTU2MTAxMzE1NzdmNmU4OWQ1MTcwNTcwMjgxOTA1NjBkZDIwMGNmNmJmNzkyODQyODYxMzUzZDExNzM3NjFkZmEzNjJlMWMxMzNmMDMzMzQ2MDAwMzY2MDQwNTE4MDg1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4NDgxNTI2MDIwMDE4MDYwMjAwMTgyODEwMzgyNTI4NDg0ODI4MTgxNTI2MDIwMDE5MjUwODA4Mjg0Mzc4MjAxOTE1MDUwOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MGExNWIwMDViMzQxNTYxMDEzZTU3NjAwMDgwZmQ1YjYxMDFlNzYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwODAzNTkwNjAyMDAxOTA5MTkwODAzNTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDgyMDE4MDM1OTA2MDIwMDE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3ODIwMTkxNTA1MDUwNTA1MDUwOTE5MDUwNTA2MTA0OGY1NjViMDA1YjM0MTU2MTAxZjQ1NzYwMDA4MGZkNWI2MTAyMGE2MDA0ODA4MDM1OTA2MDIwMDE5MDkxOTA1MDUwNjEwNjY4NTY1YjYwNDA1MTgwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTAyNTc1NzYwMDA4MGZkNWI2MTAyYTI2MDA0ODA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwNTA1MDYxMDZhNzU2NWIwMDViMzQxNTYxMDJhZjU3NjAwMDgwZmQ1YjYxMDM3YzYwMDQ4MDgwMzU3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjkwNjAyMDAxOTA5MTkwODAzNTkwNjAyMDAxOTA5MTkwODAzNTkwNjAyMDAxOTA4MjAxODAzNTkwNjAyMDAxOTA4MDgwNjAxZjAxNjAyMDgwOTEwNDAyNjAyMDAxNjA0MDUxOTA4MTAxNjA0MDUyODA5MzkyOTE5MDgxODE1MjYwMjAwMTgzODM4MDgyODQzNzgyMDE5MTUwNTA1MDUwNTA1MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDkxOTA4MDM1OTA2MDIwMDE5MDgyMDE4MDM1OTA2MDIwMDE5MDgwODA2MDFmMDE2MDIwODA5MTA0MDI2MDIwMDE2MDQwNTE5MDgxMDE2MDQwNTI4MDkzOTI5MTkwODE4MTUyNjAyMDAxODM4MzgwODI4NDM3ODIwMTkxNTA1MDUwNTA1MDUwOTE5MDUwNTA2MTA3NzM1NjViMDA1YjM0MTU2MTAzODk1NzYwMDA4MGZkNWI2MTAzYjU2MDA0ODA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDUwNTA2MTBhNzI1NjViNjA0MDUxODA4MjE1MTUxNTE1ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTAzZGE1NzYwMDA4MGZkNWI2MTAzZTI2MTBiMTY1NjViNjA0MDUxODA4MjgxNTI2MDIwMDE5MTUwNTA2MDQwNTE4MDkxMDM5MGYzNWIzNDE1NjEwNDAzNTc2MDAwODBmZDViNjEwNDBiNjEwYjcwNTY1YjYwNDA1MTgwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTA0NTg1NzYwMDA4MGZkNWI2MTA0NjA2MTBiOTU1NjViNjA0MDUxODA4MjE1MTUxNTE1ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTA0ODU1NzYwMDA4MGZkNWI2MTA0OGQ2MTBiYTg1NjViMDA1YjYwMDA4MDYxMDQ5YjMzNjEwYTcyNTY1YjE1MTU2MTA0YTY1NzYwMDA4MGZkNWI4Nzg3ODc4Nzg3NjA0MDUxODA4MDdmNDM0NTRjNGYyZDQ1NTI0MzMyMzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDgxNTI1MDYwMGEwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjZjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMjgxNTI2MDE0MDE4NTgxNTI2MDIwMDE4NDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAxNDAxODM4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTU1MDUwNTA1MDUwNTA2MDQwNTE4MDkxMDM5MDIwOTE1MDYxMDU4OTg4ODM4NTg4ODg2MTBjM2I1NjViNTA4NTkwNTA4MDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NjNhOTA1OWNiYjg5ODk2MDAwNjA0MDUxNjAyMDAxNTI2MDQwNTE4MzYzZmZmZmZmZmYxNjdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyODE1MjYwMDQwMTgwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgyODE1MjYwMjAwMTkyNTA1MDUwNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1MTU2MTA2Mzg1NzYwMDA4MGZkNWI2MTAyYzY1YTAzZjExNTE1NjEwNjQ5NTc2MDAwODBmZDViNTA1MDUwNjA0MDUxODA1MTkwNTAxNTE1NjEwNjVlNTc2MDAwODBmZDViNTA1MDUwNTA1MDUwNTA1MDU2NWI2MDAwODE4MTU0ODExMDE1MTU2MTA2Nzc1N2ZlNWI5MDYwMDA1MjYwMjA2MDAwMjA5MDAxNjAwMDkxNTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTU2NWI2MDAwNjEwNmIyMzM2MTBhNzI1NjViMTUxNTYxMDZiZDU3NjAwMDgwZmQ1YjgyOTA1MDgwNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MzNlZjEzMzY3ODM2MDQwNTE4MjYzZmZmZmZmZmYxNjdjMDEwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyODE1MjYwMDQwMTgwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwMDA2MDQwNTE4MDgzMDM4MTYwMDA4NzgwM2IxNTE1NjEwNzVhNTc2MDAwODBmZDViNjEwMmM2NWEwM2YxMTUxNTYxMDc2YjU3NjAwMDgwZmQ1YjUwNTA1MDUwNTA1MDU2NWI2MDAwODA2MTA3N2YzMzYxMGE3MjU2NWIxNTE1NjEwNzhhNTc2MDAwODBmZDViODc4Nzg3ODc4NzYwNDA1MTgwODA3ZjQzNDU0YzRmMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA4MTUyNTA2MDA0MDE4NjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAxNDAxODU4MTUyNjAyMDAxODQ4MDUxOTA2MDIwMDE5MDgwODM4MzViNjAyMDgzMTAxNTE1NjEwODMzNTc4MDUxODI1MjYwMjA4MjAxOTE1MDYwMjA4MTAxOTA1MDYwMjA4MzAzOTI1MDYxMDgwZTU2NWI2MDAxODM2MDIwMDM2MTAxMDAwYTAzODAxOTgyNTExNjgxODQ1MTE2ODA4MjE3ODU1MjUwNTA1MDUwNTA1MDkwNTAwMTgzODE1MjYwMjAwMTgyODE1MjYwMjAwMTk1NTA1MDUwNTA1MDUwNjA0MDUxODA5MTAzOTAyMDkxNTA2MTA4N2Y4ODgzODU4ODg4NjEwYzNiNTY1YjkwNTA4NzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODc4NzYwNDA1MTgwODI4MDUxOTA2MDIwMDE5MDgwODM4MzYwMDA1YjgzODExMDE1NjEwOGM3NTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwOGFjNTY1YjUwNTA1MDUwOTA1MDkwODEwMTkwNjAxZjE2ODAxNTYxMDhmNDU3ODA4MjAzODA1MTYwMDE4MzYwMjAwMzYxMDEwMDBhMDMxOTE2ODE1MjYwMjAwMTkxNTA1YjUwOTE1MDUwNjAwMDYwNDA1MTgwODMwMzgxODU4NzYxODc5NjVhMDNmMTkyNTA1MDUwMTUxNTYxMDkxODU3NjAwMDgwZmQ1YjdmNTliZWQ5YWI1ZDc4MDczNDY1ZGQ2NDJhOWUzZTc2ZGZkYjdkNTNiY2FlOWQwOWRmN2QwYjhmNTIzNGQ1YTgwNjMzODI4NDhiOGI4YjYwNDA1MTgwODc3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTg2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNTI2MDIwMDE4NTYwMDAxOTE2NjAwMDE5MTY4MTUyNjAyMDAxODQ3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTgzODE1MjYwMjAwMTgwNjAyMDAxODI4MTAzODI1MjgzODE4MTUxODE1MjYwMjAwMTkxNTA4MDUxOTA2MDIwMDE5MDgwODM4MzYwMDA1YjgzODExMDE1NjEwYTI5NTc4MDgyMDE1MTgxODQwMTUyNjAyMDgxMDE5MDUwNjEwYTBlNTY1YjUwNTA1MDUwOTA1MDkwODEwMTkwNjAxZjE2ODAxNTYxMGE1NjU3ODA4MjAzODA1MTYwMDE4MzYwMjAwMzYxMDEwMDBhMDMxOTE2ODE1MjYwMjAwMTkxNTA1YjUwOTc1MDUwNTA1MDUwNTA1MDUwNjA0MDUxODA5MTAzOTBhMTUwNTA1MDUwNTA1MDUwNTA1NjViNjAwMDgwNjAwMDkwNTA1YjYwMDA4MDU0OTA1MDgxMTAxNTYxMGIwYjU3ODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYwMDA4MjgxNTQ4MTEwMTUxNTYxMGFhZDU3ZmU1YjkwNjAwMDUyNjAyMDYwMDAyMDkwMDE2MDAwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjE0MTU2MTBhZmU1NzYwMDE5MTUwNjEwYjEwNTY1YjgwODA2MDAxMDE5MTUwNTA2MTBhN2E1NjViNjAwMDkxNTA1YjUwOTE5MDUwNTY1YjYwMDA4MDYwMDA4MDkxNTA2MDAwOTA1MDViNjAwYTgxMTAxNTYxMGI2NTU3ODE2MDAyODI2MDBhODExMDE1MTU2MTBiM2M1N2ZlNWIwMTU0MTExNTYxMGI1ODU3NjAwMjgxNjAwYTgxMTAxNTE1NjEwYjUzNTdmZTViMDE1NDkxNTA1YjgwODA2MDAxMDE5MTUwNTA2MTBiMjM1NjViNjAwMTgyMDE5MjUwNTA1MDkwNTY1YjYwMDA2MTBiN2E2MTBlOTA1NjViNjA0MDUxODA5MTAzOTA2MDAwZjA4MDE1MTU2MTBiOTA1NzYwMDA4MGZkNWI5MDUwOTA1NjViNjAwMTYwMDA5MDU0OTA2MTAxMDAwYTkwMDQ2MGZmMTY4MTU2NWI2MTBiYjEzMzYxMGE3MjU2NWIxNTE1NjEwYmJjNTc2MDAwODBmZDViNjAwMTgwNjAwMDYxMDEwMDBhODE1NDgxNjBmZjAyMTkxNjkwODMxNTE1MDIxNzkwNTU1MDdmMDkwOWU4Zjc2YTRmZDNlOTcwZjJlYWVmNTZjMGVlNmRmYWY4Yjg3YzViOGQzZjU2ZmZjZTc4ZTgyNWE5MTE1NzMzNjA0MDUxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjA0MDUxODA5MTAzOTBhMTU2NWI2MDAwODA2MTBjNDg4Njg2NjEwY2U2NTY1YjkwNTA2MDAxNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDYwZmYxNjgwMTU2MTBjNmM1NzUwNjEwYzZhODc2MTBhNzI1NjViMTU1YjE1NjEwYzc2NTc2MDAwODBmZDViNDI4NDEwMTU2MTBjODM1NzYwMDA4MGZkNWI2MTBjOGM4MzYxMGRiOTU2NWI2MTBjOTU4MTYxMGE3MjU2NWIxNTE1NjEwY2EwNTc2MDAwODBmZDViMzM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjgxNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYxNDE1NjEwY2Q5NTc2MDAwODBmZDViODA5MTUwNTA5NTk0NTA1MDUwNTA1MDU2NWI2MDAwODA2MDAwODA2MDQxODU1MTE0MTUxNTYxMGNmYzU3NjAwMDgwZmQ1YjYwMjA4NTAxNTE5MjUwNjA0MDg1MDE1MTkxNTA2MGZmNjA0MTg2MDE1MTE2OTA1MDYwMWI4MTYwZmYxNjEwMTU2MTBkMjc1NzYwMWI4MTAxOTA1MDViNjAwMTg2ODI4NTg1NjA0MDUxNjAwMDgxNTI2MDIwMDE2MDQwNTI2MDAwNjA0MDUxNjAyMDAxNTI2MDQwNTE4MDg1NjAwMDE5MTY2MDAwMTkxNjgxNTI2MDIwMDE4NDYwZmYxNjYwZmYxNjgxNTI2MDIwMDE4MzYwMDAxOTE2NjAwMDE5MTY4MTUyNjAyMDAxODI2MDAwMTkxNjYwMDAxOTE2ODE1MjYwMjAwMTk0NTA1MDUwNTA1MDYwMjA2MDQwNTE2MDIwODEwMzkwODA4NDAzOTA2MDAwODY2MTY0NmU1YTAzZjExNTE1NjEwZGE1NTc2MDAwODBmZDViNTA1MDYwMjA2MDQwNTEwMzUxOTM1MDUwNTA1MDkyOTE1MDUwNTY1YjYwMDA4MDYxMGRjNTMzNjEwYTcyNTY1YjE1MTU2MTBkZDA1NzYwMDA4MGZkNWI2MDAwOTE1MDYwMDA5MDUwNWI2MDBhODExMDE1NjEwZTM4NTc4MjYwMDI4MjYwMGE4MTEwMTUxNTYxMGRmMjU3ZmU1YjAxNTQxNDE1NjEwZGZmNTc2MDAwODBmZDViNjAwMjgyNjAwYTgxMTAxNTE1NjEwZTBlNTdmZTViMDE1NDYwMDI4MjYwMGE4MTEwMTUxNTYxMGUxZjU3ZmU1YjAxNTQxMDE1NjEwZTJiNTc4MDkxNTA1YjgwODA2MDAxMDE5MTUwNTA2MTBkZDk1NjViNjAwMjgyNjAwYTgxMTAxNTE1NjEwZTQ3NTdmZTViMDE1NDgzMTAxNTYxMGU1NTU3NjAwMDgwZmQ1YjYxMjcxMDYwMDI4MzYwMGE4MTEwMTUxNTYxMGU2NzU3ZmU1YjAxNTQwMTgzMTExNTYxMGU3NjU3NjAwMDgwZmQ1YjgyNjAwMjgzNjAwYTgxMTAxNTE1NjEwZTg2NTdmZTViMDE4MTkwNTU1MDUwNTA1MDU2NWI2MDQwNTE2MTA1NDA4MDYxMGVhMTgzMzkwMTkwNTYwMDYwNjA2MDQwNTIzNDE1NjEwMDBmNTc2MDAwODBmZDViMzM2MDAwODA2MTAxMDAwYTgxNTQ4MTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjAyMTkxNjkwODM3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjAyMTc5MDU1NTA2MTA0ZTI4MDYxMDA1ZTYwMDAzOTYwMDBmMzAwNjA2MDYwNDA1MjYwMDQzNjEwNjEwMDU2NTc2MDAwMzU3YzAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA5MDA0NjNmZmZmZmZmZjE2ODA2MjgyMWRlMzE0NjEwMTQ3NTc4MDYzM2VmMTMzNjcxNDYxMDE5YzU3ODA2MzZiOWY5NmVhMTQ2MTAxZDU1NzViNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYxMDhmYzM0OTA4MTE1MDI5MDYwNDA1MTYwMDA2MDQwNTE4MDgzMDM4MTg1ODg4OGYxOTM1MDUwNTA1MDE1MTU2MTAwYjc1NzYwMDA4MGZkNWI3ZjY5YjMxNTQ4ZGVhOWIzYjcwN2I0ZGZmMzU3ZDMyNmUzZTkzNDhiMjRlN2E2MDgwYTIxOGE2ZWRlZWVjNDhmOWIzMzM0NjAwMDM2NjA0MDUxODA4NTczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODQ4MTUyNjAyMDAxODA2MDIwMDE4MjgxMDM4MjUyODQ4NDgyODE4MTUyNjAyMDAxOTI1MDgwODI4NDM3ODIwMTkxNTA1MDk1NTA1MDUwNTA1MDUwNjA0MDUxODA5MTAzOTBhMTAwNWIzNDE1NjEwMTUyNTc2MDAwODBmZDViNjEwMTVhNjEwMWVhNTY1YjYwNDA1MTgwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1MjYwMjAwMTkxNTA1MDYwNDA1MTgwOTEwMzkwZjM1YjM0MTU2MTAxYTc1NzYwMDA4MGZkNWI2MTAxZDM2MDA0ODA4MDM1NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY5MDYwMjAwMTkwOTE5MDUwNTA2MTAyMGY1NjViMDA1YjM0MTU2MTAxZTA1NzYwMDA4MGZkNWI2MTAxZTg2MTA0M2M1NjViMDA1YjYwMDA4MDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2ODE1NjViNjAwMDgwNjAwMDgwNjAwMDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTYzMzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MTQxNTE1NjEwMjZmNTc2MDAwODBmZDViODM5MjUwMzA5MTUwODI3M2ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYxNjYzNzBhMDgyMzE4MzYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgyNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MjczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxOTE1MDUwNjAyMDYwNDA1MTgwODMwMzgxNjAwMDg3ODAzYjE1MTU2MTAzMTg1NzYwMDA4MGZkNWI2MTAyYzY1YTAzZjExNTE1NjEwMzI5NTc2MDAwODBmZDViNTA1MDUwNjA0MDUxODA1MTkwNTA5MDUwNjAwMDgxMTQxNTYxMDM0MzU3NjEwNDM2NTY1YjgyNzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2M2E5MDU5Y2JiNjAwMDgwOTA1NDkwNjEwMTAwMGE5MDA0NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MzYwMDA2MDQwNTE2MDIwMDE1MjYwNDA1MTgzNjNmZmZmZmZmZjE2N2MwMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDI4MTUyNjAwNDAxODA4MzczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY4MTUyNjAyMDAxODI4MTUyNjAyMDAxOTI1MDUwNTA2MDIwNjA0MDUxODA4MzAzODE2MDAwODc4MDNiMTUxNTYxMDQwZjU3NjAwMDgwZmQ1YjYxMDJjNjVhMDNmMTE1MTU2MTA0MjA1NzYwMDA4MGZkNWI1MDUwNTA2MDQwNTE4MDUxOTA1MDE1MTU2MTA0MzU1NzYwMDA4MGZkNWI1YjUwNTA1MDUwNTY1YjYwMDA4MDkwNTQ5MDYxMDEwMDBhOTAwNDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2NzNmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmMTY2MTA4ZmMzMDczZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZjE2MzE5MDgxMTUwMjkwNjA0MDUxNjAwMDYwNDA1MTgwODMwMzgxODU4ODg4ZjE5MzUwNTA1MDUwMTUxNTYxMDRiNDU3NjAwMDgwZmQ1YjU2MDBhMTY1NjI3YTdhNzIzMDU4MjA0MjE5M2I4ZmEzNmJiMjExMTQzODE5YTUyNWZlMDdmNTk3YTU3YWM1MWJkYTczNTQ5OWVjZWJlMmVkYTY0ODg3MDAyOWExNjU2MjdhN2E3MjMwNTgyMDExYjNlNzg2ODIwYmJmOTc0ZmJmODgwMmM2YmZkMGZiNDRhYjJlYzMwZWQ5MDE4YjkxYWFkNzUwM2NkMjE0YWEwMDI5JztcbiJdfQ==
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
2
|
+
import { BaseAddress, TransactionType } from '@bitgo/sdk-core';
|
|
2
3
|
import { TransactionBuilder } from './transactionBuilder';
|
|
3
4
|
import { Transaction } from './transaction';
|
|
4
5
|
import { DecodedSignedTx, DecodedSigningPayload, UnsignedTransaction } from '@substrate/txwrapper-core';
|
|
5
|
-
import { TransactionType } from '../baseCoin';
|
|
6
6
|
import { ProxyType } from './iface';
|
|
7
|
-
import { BaseAddress } from '../baseCoin/iface';
|
|
8
7
|
export declare class AddressInitializationBuilder extends TransactionBuilder {
|
|
9
8
|
protected _delegate: string;
|
|
10
9
|
protected _proxyType: ProxyType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addressInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/addressInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"addressInitializationBuilder.d.ts","sourceRoot":"","sources":["../../../../src/coin/dot/addressInitializationBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAA2B,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACxG,OAAO,EAAoD,SAAS,EAAE,MAAM,SAAS,CAAC;AAItF,qBAAa,4BAA6B,SAAQ,kBAAkB;IAClE,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC;IAChC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,MAAM,SAAK;gBAET,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,SAAS,CAAC,gBAAgB,IAAI,mBAAmB;IAQjD;;;;;;OAMG;IACH,SAAS,CAAC,wBAAwB,IAAI,mBAAmB;IAazD;;;;OAIG;IACH,SAAS,CAAC,8BAA8B,IAAI,mBAAmB;IAa/D,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAM/B;;;;;;;OAOG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B;;;;;;;OAOG;IACH,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAKhC;;;;;;;;;;OAUG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAM1B,kBAAkB;IAClB,0BAA0B,CAAC,UAAU,EAAE,qBAAqB,GAAG,eAAe,GAAG,IAAI;IAkBrF,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAoBjE,kBAAkB;IAClB,mBAAmB,CAAC,CAAC,EAAE,WAAW,GAAG,IAAI;IAKzC,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,sBAAsB;IAQ9B,OAAO,CAAC,4BAA4B;CAOrC"}
|