@keep-network/tbtc-v2 1.6.0 → 1.7.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/.chainId +1 -1
- package/artifacts/BLS.json +223 -0
- package/artifacts/Bank.json +50 -40
- package/artifacts/BeaconAuthorization.json +273 -0
- package/artifacts/BeaconDkg.json +241 -0
- package/artifacts/BeaconDkgValidator.json +501 -0
- package/artifacts/BeaconInactivity.json +151 -0
- package/artifacts/BeaconSortitionPool.json +1187 -0
- package/artifacts/Bridge.json +449 -32
- package/artifacts/BridgeGovernance.json +22 -22
- package/artifacts/BridgeGovernanceParameters.json +10 -10
- package/artifacts/Deposit.json +12 -12
- package/artifacts/DepositSweep.json +12 -12
- package/artifacts/DonationVault.json +17 -17
- package/artifacts/EcdsaDkgValidator.json +517 -0
- package/artifacts/EcdsaInactivity.json +156 -0
- package/artifacts/EcdsaSortitionPool.json +1187 -0
- package/artifacts/Fraud.json +12 -12
- package/artifacts/LightRelay.json +38 -38
- package/artifacts/LightRelayMaintainerProxy.json +31 -31
- package/artifacts/MaintainerProxy.json +43 -43
- package/artifacts/MovingFunds.json +12 -12
- package/artifacts/NuCypherToken.json +711 -0
- package/artifacts/RandomBeacon.json +3271 -0
- package/artifacts/RandomBeaconChaosnet.json +252 -0
- package/artifacts/RandomBeaconGovernance.json +3499 -0
- package/artifacts/Redemption.json +12 -12
- package/artifacts/RedemptionWatchtower.json +39 -39
- package/artifacts/ReimbursementPool.json +509 -0
- package/artifacts/T.json +1148 -0
- package/artifacts/TBTC.json +37 -36
- package/artifacts/TBTCToken.json +738 -0
- package/artifacts/TBTCVault.json +47 -47
- package/artifacts/TokenStaking.json +2117 -0
- package/artifacts/TokenholderGovernor.json +1795 -0
- package/artifacts/TokenholderTimelock.json +1058 -0
- package/artifacts/VendingMachine.json +35 -34
- package/artifacts/VendingMachineNuCypher.json +400 -0
- package/artifacts/VendingMachineV2.json +21 -21
- package/artifacts/VendingMachineV3.json +21 -21
- package/artifacts/WalletProposalValidator.json +12 -12
- package/artifacts/WalletRegistry.json +1962 -0
- package/artifacts/WalletRegistryGovernance.json +2863 -0
- package/artifacts/Wallets.json +12 -12
- package/artifacts/solcInputs/{be146ce112252bdda3a03de3614fbbf1.json → c151efc9521638a56d4195bcc684d7ff.json} +2 -2
- package/build/contracts/GovernanceUtils.sol/GovernanceUtils.dbg.json +1 -1
- package/build/contracts/bank/Bank.sol/Bank.dbg.json +1 -1
- package/build/contracts/bank/IReceiveBalanceApproval.sol/IReceiveBalanceApproval.dbg.json +1 -1
- package/build/contracts/bridge/BitcoinTx.sol/BitcoinTx.dbg.json +1 -1
- package/build/contracts/bridge/Bridge.sol/Bridge.dbg.json +1 -1
- package/build/contracts/bridge/BridgeGovernanceParameters.sol/BridgeGovernanceParameters.dbg.json +1 -1
- package/build/contracts/bridge/BridgeState.sol/BridgeState.dbg.json +1 -1
- package/build/contracts/bridge/Deposit.sol/Deposit.dbg.json +1 -1
- package/build/contracts/bridge/DepositSweep.sol/DepositSweep.dbg.json +1 -1
- package/build/contracts/bridge/EcdsaLib.sol/EcdsaLib.dbg.json +1 -1
- package/build/contracts/bridge/Fraud.sol/Fraud.dbg.json +1 -1
- package/build/contracts/bridge/Heartbeat.sol/Heartbeat.dbg.json +1 -1
- package/build/contracts/bridge/IRelay.sol/IRelay.dbg.json +1 -1
- package/build/contracts/bridge/MovingFunds.sol/MovingFunds.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/IRedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/OutboundTx.dbg.json +1 -1
- package/build/contracts/bridge/Redemption.sol/Redemption.dbg.json +1 -1
- package/build/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachine.sol/VendingMachine.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.dbg.json +1 -1
- package/build/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.dbg.json +1 -1
- package/build/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.dbg.json +1 -1
- package/build/contracts/bridge/Wallets.sol/Wallets.dbg.json +1 -1
- package/build/contracts/integrator/AbstractTBTCDepositor.sol/AbstractTBTCDepositor.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridge.dbg.json +1 -1
- package/build/contracts/integrator/IBridge.sol/IBridgeTypes.dbg.json +1 -1
- package/build/contracts/integrator/ITBTCVault.sol/ITBTCVault.dbg.json +1 -1
- package/build/contracts/l2/L2TBTC.sol/L2TBTC.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/IWormholeTokenBridge.dbg.json +1 -1
- package/build/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.dbg.json +1 -1
- package/build/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/ILightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/LightRelay.dbg.json +1 -1
- package/build/contracts/relay/LightRelay.sol/RelayUtils.dbg.json +1 -1
- package/build/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.dbg.json +1 -1
- package/build/contracts/test/BankStub.sol/BankStub.dbg.json +1 -1
- package/build/contracts/test/BridgeStub.sol/BridgeStub.dbg.json +1 -1
- package/build/contracts/test/HeartbeatStub.sol/HeartbeatStub.dbg.json +1 -1
- package/build/contracts/test/LightRelayStub.sol/LightRelayStub.dbg.json +1 -1
- package/build/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.dbg.json +1 -1
- package/build/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.dbg.json +1 -1
- package/build/contracts/test/SystemTestRelay.sol/SystemTestRelay.dbg.json +1 -1
- package/build/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.dbg.json +1 -1
- package/build/contracts/test/TestERC20.sol/TestERC20.dbg.json +1 -1
- package/build/contracts/test/TestERC721.sol/TestERC721.dbg.json +1 -1
- package/build/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockBridge.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.dbg.json +1 -1
- package/build/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.dbg.json +1 -1
- package/build/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.dbg.json +1 -1
- package/build/contracts/token/TBTC.sol/TBTC.dbg.json +1 -1
- package/build/contracts/vault/DonationVault.sol/DonationVault.dbg.json +1 -1
- package/build/contracts/vault/IVault.sol/IVault.dbg.json +1 -1
- package/build/contracts/vault/TBTCOptimisticMinting.sol/TBTCOptimisticMinting.dbg.json +1 -1
- package/build/contracts/vault/TBTCVault.sol/TBTCVault.dbg.json +1 -1
- package/export/artifacts/@keep-network/ecdsa/contracts/WalletRegistry.sol/WalletRegistry.json +13 -13
- package/export/artifacts/contracts/bank/Bank.sol/Bank.json +58 -58
- package/export/artifacts/contracts/bridge/Bridge.sol/Bridge.json +318 -318
- package/export/artifacts/contracts/bridge/RedemptionWatchtower.sol/RedemptionWatchtower.json +103 -103
- package/export/artifacts/contracts/bridge/VendingMachine.sol/VendingMachine.json +71 -71
- package/export/artifacts/contracts/bridge/VendingMachineV2.sol/VendingMachineV2.json +24 -24
- package/export/artifacts/contracts/bridge/VendingMachineV3.sol/VendingMachineV3.json +26 -26
- package/export/artifacts/contracts/bridge/WalletProposalValidator.sol/WalletProposalValidator.json +67 -67
- package/export/artifacts/contracts/l2/L2TBTC.sol/L2TBTC.json +40 -40
- package/export/artifacts/contracts/l2/L2WormholeGateway.sol/L2WormholeGateway.json +47 -47
- package/export/artifacts/contracts/maintainer/MaintainerProxy.sol/MaintainerProxy.json +118 -118
- package/export/artifacts/contracts/relay/LightRelay.sol/LightRelay.json +57 -57
- package/export/artifacts/contracts/relay/LightRelayMaintainerProxy.sol/LightRelayMaintainerProxy.json +31 -31
- package/export/artifacts/contracts/test/BankStub.sol/BankStub.json +60 -60
- package/export/artifacts/contracts/test/BridgeStub.sol/BridgeStub.json +356 -356
- package/export/artifacts/contracts/test/HeartbeatStub.sol/HeartbeatStub.json +4 -4
- package/export/artifacts/contracts/test/LightRelayStub.sol/LightRelayStub.json +59 -59
- package/export/artifacts/contracts/test/ReceiveApprovalStub.sol/ReceiveApprovalStub.json +7 -7
- package/export/artifacts/contracts/test/SepoliaLightRelay.sol/SepoliaLightRelay.json +59 -59
- package/export/artifacts/contracts/test/SystemTestRelay.sol/SystemTestRelay.json +14 -14
- package/export/artifacts/contracts/test/TestBitcoinTx.sol/TestBitcoinTx.json +128 -128
- package/export/artifacts/contracts/test/TestERC20.sol/TestERC20.json +6 -6
- package/export/artifacts/contracts/test/TestERC721.sol/TestERC721.json +8 -8
- package/export/artifacts/contracts/test/TestEcdsaLib.sol/TestEcdsaLib.json +4 -4
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockBridge.json +34 -34
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/MockTBTCVault.json +18 -18
- package/export/artifacts/contracts/test/TestTBTCDepositor.sol/TestTBTCDepositor.json +48 -48
- package/export/artifacts/contracts/test/WormholeBridgeStub.sol/WormholeBridgeStub.json +37 -37
- package/export/artifacts/contracts/token/TBTC.sol/TBTC.json +2 -2
- package/export/artifacts/contracts/vault/DonationVault.sol/DonationVault.json +19 -19
- package/export/artifacts/contracts/vault/TBTCVault.sol/TBTCVault.json +143 -143
- package/export/typechain/factories/EcdsaAuthorization__factory.js +1 -1
- package/export/typechain/factories/IStaking__factory.js +24 -116
- package/export/typechain/factories/WalletRegistry__factory.js +1 -1
- package/package.json +5 -5
- package/artifacts/solcInputs/7c1f8f1dbded4c787d87a982d1fc8349.json +0 -410
- package/artifacts/solcInputs/7cc3eda3cb3ff2522d18b5e7b31ea228.json +0 -102
- package/artifacts/solcInputs/802132f7da69a8a4226cb9424480847b.json +0 -218
- package/artifacts/solcInputs/887fad6b16575ba42183543c324eeb0e.json +0 -335
- package/artifacts/solcInputs/b0025f1f7efe4824592ac0c9793776c3.json +0 -392
- package/artifacts/solcInputs/b7c5f3550cc22e16e6b6ea9582ccbee3.json +0 -341
- package/artifacts/solcInputs/d71d4b4434e6669852eaf643ebd2a7bc.json +0 -209
- package/artifacts/solcInputs/fccb130292c8c7cc958ab4fa31a3e180.json +0 -187
|
@@ -216,7 +216,7 @@ var _abi = [
|
|
|
216
216
|
type: "event",
|
|
217
217
|
},
|
|
218
218
|
];
|
|
219
|
-
var _bytecode = "
|
|
219
|
+
var _bytecode = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206f647ea212e74a91596721d9a2189532dcdfb40671860387fb2c3cd1e4d4bdb464736f6c63430008110033";
|
|
220
220
|
var isSuperArgs = function (xs) { return xs.length > 1; };
|
|
221
221
|
var EcdsaAuthorization__factory = /** @class */ (function (_super) {
|
|
222
222
|
__extends(EcdsaAuthorization__factory, _super);
|
|
@@ -106,6 +106,25 @@ var _abi = [
|
|
|
106
106
|
stateMutability: "view",
|
|
107
107
|
type: "function",
|
|
108
108
|
},
|
|
109
|
+
{
|
|
110
|
+
inputs: [
|
|
111
|
+
{
|
|
112
|
+
internalType: "address",
|
|
113
|
+
name: "stakingProvider",
|
|
114
|
+
type: "address",
|
|
115
|
+
},
|
|
116
|
+
],
|
|
117
|
+
name: "getAutoIncreaseFlag",
|
|
118
|
+
outputs: [
|
|
119
|
+
{
|
|
120
|
+
internalType: "bool",
|
|
121
|
+
name: "",
|
|
122
|
+
type: "bool",
|
|
123
|
+
},
|
|
124
|
+
],
|
|
125
|
+
stateMutability: "view",
|
|
126
|
+
type: "function",
|
|
127
|
+
},
|
|
109
128
|
{
|
|
110
129
|
inputs: [
|
|
111
130
|
{
|
|
@@ -209,32 +228,6 @@ var _abi = [
|
|
|
209
228
|
stateMutability: "nonpayable",
|
|
210
229
|
type: "function",
|
|
211
230
|
},
|
|
212
|
-
{
|
|
213
|
-
inputs: [
|
|
214
|
-
{
|
|
215
|
-
internalType: "address",
|
|
216
|
-
name: "stakingProvider",
|
|
217
|
-
type: "address",
|
|
218
|
-
},
|
|
219
|
-
],
|
|
220
|
-
name: "notifyKeepStakeDiscrepancy",
|
|
221
|
-
outputs: [],
|
|
222
|
-
stateMutability: "nonpayable",
|
|
223
|
-
type: "function",
|
|
224
|
-
},
|
|
225
|
-
{
|
|
226
|
-
inputs: [
|
|
227
|
-
{
|
|
228
|
-
internalType: "address",
|
|
229
|
-
name: "stakingProvider",
|
|
230
|
-
type: "address",
|
|
231
|
-
},
|
|
232
|
-
],
|
|
233
|
-
name: "notifyNuStakeDiscrepancy",
|
|
234
|
-
outputs: [],
|
|
235
|
-
stateMutability: "nonpayable",
|
|
236
|
-
type: "function",
|
|
237
|
-
},
|
|
238
231
|
{
|
|
239
232
|
inputs: [
|
|
240
233
|
{
|
|
@@ -274,19 +267,6 @@ var _abi = [
|
|
|
274
267
|
stateMutability: "nonpayable",
|
|
275
268
|
type: "function",
|
|
276
269
|
},
|
|
277
|
-
{
|
|
278
|
-
inputs: [
|
|
279
|
-
{
|
|
280
|
-
internalType: "address",
|
|
281
|
-
name: "stakingProvider",
|
|
282
|
-
type: "address",
|
|
283
|
-
},
|
|
284
|
-
],
|
|
285
|
-
name: "refreshKeepStakeOwner",
|
|
286
|
-
outputs: [],
|
|
287
|
-
stateMutability: "nonpayable",
|
|
288
|
-
type: "function",
|
|
289
|
-
},
|
|
290
270
|
{
|
|
291
271
|
inputs: [
|
|
292
272
|
{
|
|
@@ -437,24 +417,6 @@ var _abi = [
|
|
|
437
417
|
stateMutability: "nonpayable",
|
|
438
418
|
type: "function",
|
|
439
419
|
},
|
|
440
|
-
{
|
|
441
|
-
inputs: [
|
|
442
|
-
{
|
|
443
|
-
internalType: "uint96",
|
|
444
|
-
name: "penalty",
|
|
445
|
-
type: "uint96",
|
|
446
|
-
},
|
|
447
|
-
{
|
|
448
|
-
internalType: "uint256",
|
|
449
|
-
name: "rewardMultiplier",
|
|
450
|
-
type: "uint256",
|
|
451
|
-
},
|
|
452
|
-
],
|
|
453
|
-
name: "setStakeDiscrepancyPenalty",
|
|
454
|
-
outputs: [],
|
|
455
|
-
stateMutability: "nonpayable",
|
|
456
|
-
type: "function",
|
|
457
|
-
},
|
|
458
420
|
{
|
|
459
421
|
inputs: [
|
|
460
422
|
{
|
|
@@ -501,42 +463,6 @@ var _abi = [
|
|
|
501
463
|
stateMutability: "nonpayable",
|
|
502
464
|
type: "function",
|
|
503
465
|
},
|
|
504
|
-
{
|
|
505
|
-
inputs: [
|
|
506
|
-
{
|
|
507
|
-
internalType: "address",
|
|
508
|
-
name: "stakingProvider",
|
|
509
|
-
type: "address",
|
|
510
|
-
},
|
|
511
|
-
],
|
|
512
|
-
name: "stakeKeep",
|
|
513
|
-
outputs: [],
|
|
514
|
-
stateMutability: "nonpayable",
|
|
515
|
-
type: "function",
|
|
516
|
-
},
|
|
517
|
-
{
|
|
518
|
-
inputs: [
|
|
519
|
-
{
|
|
520
|
-
internalType: "address",
|
|
521
|
-
name: "stakingProvider",
|
|
522
|
-
type: "address",
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
internalType: "address payable",
|
|
526
|
-
name: "beneficiary",
|
|
527
|
-
type: "address",
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
internalType: "address",
|
|
531
|
-
name: "authorizer",
|
|
532
|
-
type: "address",
|
|
533
|
-
},
|
|
534
|
-
],
|
|
535
|
-
name: "stakeNu",
|
|
536
|
-
outputs: [],
|
|
537
|
-
stateMutability: "nonpayable",
|
|
538
|
-
type: "function",
|
|
539
|
-
},
|
|
540
466
|
{
|
|
541
467
|
inputs: [
|
|
542
468
|
{
|
|
@@ -592,13 +518,8 @@ var _abi = [
|
|
|
592
518
|
name: "stakingProvider",
|
|
593
519
|
type: "address",
|
|
594
520
|
},
|
|
595
|
-
{
|
|
596
|
-
internalType: "uint96",
|
|
597
|
-
name: "amount",
|
|
598
|
-
type: "uint96",
|
|
599
|
-
},
|
|
600
521
|
],
|
|
601
|
-
name: "
|
|
522
|
+
name: "toggleAutoAuthorizationIncrease",
|
|
602
523
|
outputs: [],
|
|
603
524
|
stateMutability: "nonpayable",
|
|
604
525
|
type: "function",
|
|
@@ -610,21 +531,13 @@ var _abi = [
|
|
|
610
531
|
name: "stakingProvider",
|
|
611
532
|
type: "address",
|
|
612
533
|
},
|
|
613
|
-
],
|
|
614
|
-
name: "topUpKeep",
|
|
615
|
-
outputs: [],
|
|
616
|
-
stateMutability: "nonpayable",
|
|
617
|
-
type: "function",
|
|
618
|
-
},
|
|
619
|
-
{
|
|
620
|
-
inputs: [
|
|
621
534
|
{
|
|
622
|
-
internalType: "
|
|
623
|
-
name: "
|
|
624
|
-
type: "
|
|
535
|
+
internalType: "uint96",
|
|
536
|
+
name: "amount",
|
|
537
|
+
type: "uint96",
|
|
625
538
|
},
|
|
626
539
|
],
|
|
627
|
-
name: "
|
|
540
|
+
name: "topUp",
|
|
628
541
|
outputs: [],
|
|
629
542
|
stateMutability: "nonpayable",
|
|
630
543
|
type: "function",
|
|
@@ -662,11 +575,6 @@ var _abi = [
|
|
|
662
575
|
name: "stakingProvider",
|
|
663
576
|
type: "address",
|
|
664
577
|
},
|
|
665
|
-
{
|
|
666
|
-
internalType: "uint96",
|
|
667
|
-
name: "amount",
|
|
668
|
-
type: "uint96",
|
|
669
|
-
},
|
|
670
578
|
],
|
|
671
579
|
name: "unstakeNu",
|
|
672
580
|
outputs: [],
|
|
@@ -1928,7 +1928,7 @@ var _abi = [
|
|
|
1928
1928
|
type: "function",
|
|
1929
1929
|
},
|
|
1930
1930
|
];
|
|
1931
|
-
var _bytecode = "0x60c06040523480156200001157600080fd5b50604051620060e4380380620060e4833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b606454610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60645460ff908116101562000119576064805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051615e876200025d600039600081816104ea01528181610a3a01528181610a8701528181610adb01528181610b2901528181610d4e01528181610f42015281816113ad015281816115e8015281816116ce01528181611f6a0152818161230401526126110152600081816107e601528181610aa801528181610afc01528181610b4a01528181610c6301528181610fde0152818161115201528181611338015281816118b1015281816119c401528181611df7015281816121a5015281816123a0015281816125910152818161263201528181612691015261276a0152615e876000f3fe608060405234801561001057600080fd5b50600436106103995760003560e01c80637e0049fd116101e9578063c9bacaad1161010f578063df07ce59116100ad578063f0820c921161007c578063f0820c921461097e578063f7186ce01461098f578063f854a27f146109a2578063fd2a4788146109b557600080fd5b8063df07ce5914610922578063e03e453514610935578063e686440f1461094a578063e83ab3a51461095d57600080fd5b8063d38bfff4116100e9578063d38bfff4146108c8578063d855c631146108db578063d8dc404d146108e3578063ded56d45146108f657600080fd5b8063c9bacaad1461088d578063cc562388146108a0578063d0bcc0e3146108b557600080fd5b8063a04e298011610187578063c09975cd11610156578063c09975cd14610828578063c0c53b8b1461083b578063c7c49c981461084e578063c88e70f41461087a57600080fd5b8063a04e2980146107c6578063b13b55b2146107d9578063b54a2374146107e1578063b5e9ce8b1461080857600080fd5b806388a59590116101c357806388a595901461073a5780638dcbdf4a146107755780639879d19b146107885780639c9de0281461079b57600080fd5b80637e0049fd146106e55780637e33cba6146106f8578063830f9e021461070b57600080fd5b806352902301116102ce5780636c9ecd641161026c578063770124d31161023b578063770124d3146105f2578063789d392a146105fa5780637b14729e146106755780637b35b4e6146106d257600080fd5b80636c9ecd64146105b15780636febd464146105c457806372cc8c6d146105d757806375e0ae5a146105df57600080fd5b8063663032cd116102a8578063663032cd1461057057806368c34948146105835780636a7f7a901461058b5780636b5f2bff1461059e57600080fd5b8063529023011461052f5780635aa6e6751461054a5780635c5b38701461055d57600080fd5b8063227fd44f1161033b5780633682a450116103155780633682a450146104bf57806342d86693146104d25780634cf088d9146104e55780634d99f4731461050c57600080fd5b8063227fd44f146104865780633137676614610499578063343bb927146104ac57600080fd5b8063167f051711610377578063167f0517146104325780631ae879e81461043a5780631c5b07621461044e5780631d35fa631461046157600080fd5b806308aa090b1461039e57806314a85474146103f1578063153622b314610406575b600080fd5b6103a66109c8565b6040516103e89190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60405180910390f35b6104046103ff366004614e9c565b610a2f565b005b6101065461041a906001600160a01b031681565b6040516001600160a01b0390911681526020016103e8565b610404610ad4565b6101055461041a906001600160a01b031681565b61040461045c366004614ee7565b610b22565b60fc546001600160601b03165b6040516001600160601b0390911681526020016103e8565b610404610494366004614f04565b610b72565b6104046104a7366004614f21565b610bf1565b6104046104ba366004614f5b565b610e79565b6104046104cd366004614ee7565b610edd565b6104046104e0366004614ee7565b610ee8565b61041a7f000000000000000000000000000000000000000000000000000000000000000081565b61051f61051a366004614f5b565b61109d565b60405190151581526020016103e8565b60fd5460fe54604080519283526020830191909152016103e8565b60005461041a906001600160a01b031681565b61040461056b366004614f21565b6110b8565b61040461057e366004614ee7565b6112ef565b61051f611391565b610404610599366004614e9c565b6113a2565b6104046105ac366004614ee7565b6113f7565b6104046105bf366004614f74565b611470565b6104046105d2366004614f74565b6114e2565b61040461154c565b6104046105ed366004614ee7565b6115e1565b61051f61160d565b610653610608366004614f5b565b60408051606080820183526000808352602080840182905292840181905293845260ca8252928290208251938401835280548452600181015491840191909152600201549082015290565b60408051825181526020808401519082015291810151908201526060016103e8565b6106a36065546001600160601b038116916001600160401b03600160601b8304811692600160a01b90041690565b604080516001600160601b0390941684526001600160401b0392831660208501529116908201526060016103e8565b6104046106e0366004614ee7565b611619565b6104046106f3366004614f21565b6116a1565b61046e610706366004614ee7565b6116c5565b61072c610719366004614f5b565b6101046020526000908152604090205481565b6040519081526020016103e8565b60ff5461010054610101546101025461010354604080519586526020860194909452928401919091526060830152608082015260a0016103e8565b610404610783366004614f96565b6116f3565b610404610796366004615015565b6117ab565b6107ae6107a9366004614ee7565b611b64565b6040516001600160401b0390911681526020016103e8565b6104046107d43660046150a3565b611b71565b610404611c23565b61041a7f000000000000000000000000000000000000000000000000000000000000000081565b61081b610816366004614f5b565b611c8a565b6040516103e89190615138565b60325461041a906001600160a01b031681565b61040461084936600461514b565b611c97565b61041a61085c366004614ee7565b6001600160a01b039081166000908152606660205260409020541690565b610404610888366004614f96565b611ecc565b61040461089b366004614e9c565b611f5f565b6108a8611fb4565b6040516103e891906151a1565b6104046108c3366004614ee7565b611fc0565b6104046108d6366004614ee7565b612039565b6104046120cd565b6104046108f13660046151c9565b61210a565b61041a610904366004614ee7565b6001600160a01b039081166000908152606760205260409020541690565b61051f610930366004615244565b61237c565b61093d61256d565b6040516103e891906152eb565b61051f610958366004614ee7565b612608565b61097061096b366004614f21565b612657565b6040516103e89291906152fe565b6065546001600160601b031661046e565b61051f61099d366004614ee7565b61266f565b61046e6109b0366004614ee7565b6126fe565b61046e6109c3366004614ee7565b6127dc565b6109fa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a0810182526099548152609a546020820152609b5491810191909152609c546060820152609d54608082015290565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a805760405162461bcd60e51b8152600401610a7790615319565b60405180910390fd5b610acf60657f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000868686612803565b505050565b610b2060657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061296f565b565b610b6f60657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084612b49565b50565b6000546001600160a01b03163314610b9c5760405162461bcd60e51b8152600401610a779061535b565b60fc80546001600160601b0319166001600160601b0383169081179091556040519081527fe132b87eb6644ee4d4c3c32744f7e1c3906335a2d4f99330767bf573909c7d84906020015b60405180910390a150565b333214610c2a5760405162461bcd60e51b81526020600482015260076024820152664e6f7420454f4160c81b6044820152606401610a77565b600080610c38609784612d28565b604051638871ca5d60e01b815263ffffffff8216600482015291935091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638871ca5d90602401602060405180830381865afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce9190615392565b6040805160018082528183019092529192506000919060208083019080368337019050506001600160a01b038084166000908152606760205260409020549192501681600081518110610d2357610d236153c5565b6001600160a01b03928316602091820292909201015260fc5460fd546040516383ddba8f60e01b81527f0000000000000000000000000000000000000000000000000000000000000000909316926383ddba8f92610d93926001600160601b0390911691339087906004016153db565b600060405180830381600087803b158015610dad57600080fd5b505af1925050508015610dbe575060015b610e175760fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f14621289a12ab59e0737decc388bba91d929c723defb4682d5d19b9a12ecfecb910160405180910390a2610e68565b60fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f88f76c659db78142f88e94db3ca791869495394c6c1b3d412ced9022dc97c9e3910160405180910390a25b610e726097613091565b5050505050565b610105546001600160a01b03163314610ea45760405162461bcd60e51b8152600401610a779061544e565b610eaf60ca826130e5565b60405181907fa6ae4af610b8ada39d3675190ead27a5552631a8e33f53e4e37dbb082f11a73e90600090a250565b610b6f606582613132565b6001600160a01b038181166000908152606660205260409020541680610f205760405162461bcd60e51b8152600401610a7790615485565b604051632de9480760e01b81526001600160a01b0383811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632de9480790602401606060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf91906154af565b50604051637104c0e560e11b81526001600160a01b0385811660048301528281166024830152919350600092507f00000000000000000000000000000000000000000000000000000000000000009091169063e20981ca906044016020604051808303816000875af1158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d91906154f1565b6040516001600160601b03821681529091506001600160a01b038516907f38532b6dea69d7266fa923c7813d190be37625f2454ddfa3d93c45c79482e3fd9060200160405180910390a250505050565b600081815260ca602052604081206001015415155b92915050565b60005a905060006110ca609784613395565b9050600080806110ef60c08701356110e5602089018961550e565b60ca9291906137bc565b925092509250856040516020016111069190615794565b60405160208183030381529060405280519060200120837fbe8f27cef1f3d94120c9c547c3614f5b992fdb0c0a497cc920fde06546291ab460405160405180910390a38351156111de577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928560fe544261118e91906157bd565b6040518363ffffffff1660e01b81526004016111ab9291906157d0565b600060405180830381600087803b1580156111c557600080fd5b505af11580156111d9573d6000803e3d6000fd5b505050505b6101055460405163547d07a160e11b81526004810185905260248101849052604481018390526001600160a01b039091169063a8fa0f4290606401600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b505050506112556097613837565b603254610100546001600160a01b0390911690637ad226dc905a61127990896157f2565b60ff5461128691906157bd565b61129091906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b031633146113195760405162461bcd60e51b8152600401610a779061535b565b604051632a59250560e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a9649414906024015b600060405180830381600087803b15801561137d57600080fd5b505af1158015610e72573d6000803e3d6000fd5b600061139d609761389b565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ea5760405162461bcd60e51b8152600401610a7790615319565b610acf60658484846138ec565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610a779061535b565b61010680546001600160a01b0319166001600160a01b0383169081179091556040519081527f2b34e21b6daa8fcf8cba1c3ed709cbed2b0231d5fb60e9ccd8c2e75a5674bcb390602001610be6565b6000546001600160a01b0316331461149a5760405162461bcd60e51b8152600401610a779061535b565b60fd82905560fe81905560408051838152602081018390527ff3a6ee10a78fb7d212e87d9be970fb16bd7324e9dc9c38d21cd7ecde781a1d2a91015b60405180910390a15050565b610106546001600160a01b0316331461153d5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74207468652052616e646f6d20426561636f6e006044820152606401610a77565b611548609783613b27565b5050565b610105546001600160a01b031633146115775760405162461bcd60e51b8152600401610a779061544e565b6115816097613bd4565b610106546040516310da3b0360e21b81523060048201526001600160a01b0390911690634368ec0c90602401600060405180830381600087803b1580156115c757600080fd5b505af11580156115db573d6000803e3d6000fd5b50505050565b610b6f60657f000000000000000000000000000000000000000000000000000000000000000083613c9f565b600061139d6097613ee0565b6000546001600160a01b031633146116435760405162461bcd60e51b8152600401610a779061535b565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1603280546001600160a01b0319166001600160a01b0392909216919091179055565b6116ba6116b1602083018361550e565b60ca9190613f1a565b610b6f609782614073565b60006110b260657f000000000000000000000000000000000000000000000000000000000000000084614383565b6000546001600160a01b0316331461171d5760405162461bcd60e51b8152600401610a779061535b565b6117286097866143be565b61173360978561441f565b61173e609784614480565b6117496097836144c1565b611754609782614522565b604080518681526020810186905290810184905260608101839052608081018290527f59ae8ed7b3a7e5f6dde4cff478f0ac0aa652c5edc4f4757b09a778a430b02c569060a0015b60405180910390a15050505050565b60005a8535600081815261010460205260409020549192509085146118025760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206e6f6e636560981b6044820152606401610a77565b60008061181060ca846145dc565b9092509050600061182260ca8561462c565b90508686604051602001611837929190615805565b6040516020818303038152906040528051906020012081146118935760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642067726f7570206d656d6265727360581b6044820152606401610a77565b600073__$c28dd63714b1a086d50ecbb702fff9dbb7$__63f4df04be7f00000000000000000000000000000000000000000000000000000000000000008c87876040516020016118ed929190918252602082015260400190565b6040516020818303038152906040528d8d8d6040518763ffffffff1660e01b815260040161192096959493929190615827565b600060405180830381865af415801561193d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611965919081019061595e565b600086815261010460205260408120805492935090611983836159fc565b9091555050604080518a815233602082015286917f326e1ff7c130ed708307116f79cf7dbca649503e7082e5e35a19ceeee1523b39910160405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928260fe5442611a0091906157bd565b6040518363ffffffff1660e01b8152600401611a1d9291906157d0565b600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b50611a609250505060608b0160408c01615a15565b15611ad35761010554604051631ee74c0960e11b81526004810187905260248101869052604481018590526001600160a01b0390911690633dce981290606401600060405180830381600087803b158015611aba57600080fd5b505af1158015611ace573d6000803e3d6000fd5b505050505b603254610101546001600160a01b0390911690637ad226dc905a611af7908a6157f2565b611b0191906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015611b4057600080fd5b505af1158015611b54573d6000803e3d6000fd5b5050505050505050505050505050565b60006110b260658361466e565b6000546001600160a01b03163314611b9b5760405162461bcd60e51b8152600401610a779061535b565b606580546001600160601b0319166001600160601b038516179055611bc1606583614706565b611bcc60658261472e565b604080516001600160601b03851681526001600160401b03848116602083015283168183015290517f544b726e42801bb47073854eeedae851903f66fe32a5bd24e626e10b90027b519181900360600190a1505050565b60005a9050611c326097614756565b603254610102546001600160a01b0390911690637ad226dc905a611c5690856157f2565b611c6091906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401611363565b60606110b260ca836147dd565b606454610100900460ff1615808015611cb75750606454600160ff909116105b80611cd15750303b158015611cd1575060645460ff166001145b611d345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a77565b6064805460ff191660011790558015611d57576064805461ff0019166101001790555b61010680546001600160a01b038086166001600160a01b0319928316179092556032805492851692909116919091179055611d9133614818565b606580546001600160601b031916690878678326eac9000000179055611dbb6065623b5380614706565b611dc96065623b538061472e565b60fc80546001600160601b0319166815af1d78b58c400000179055606460fd556212750060fe55611e1c60977f000000000000000000000000000000000000000000000000000000000000000086614872565b611e296097612d006143be565b611e366097612d0061441f565b611e43609761c350614480565b611e506097610a0f6144c1565b611e5c60976014614522565b62046cd060ff55620119406101005562016b4861010155611c52610102556108fc6101035580156115db576064805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000546001600160a01b03163314611ef65760405162461bcd60e51b8152600401610a779061535b565b60ff859055610100849055610101839055610102829055610103819055604080518681526020810186905290810184905260608101839052608081018290527f8a3e64fa6013a36bccca7362e8826b11ba41e57fb60f55309c0ca48904dad0829060a00161179c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611fa75760405162461bcd60e51b8152600401610a7790615319565b610acf6065848484614967565b600061139d6097614a34565b6000546001600160a01b03163314611fea5760405162461bcd60e51b8152600401610a779061535b565b61010580546001600160a01b0319166001600160a01b0383169081179091556040519081527fa1993af5a189ba5ad4155263c920cfee33ce0593a8eb231a13bb3ce6f39459e390602001610be6565b6000546001600160a01b031633146120635760405162461bcd60e51b8152600401610a779061535b565b6001600160a01b0381166120c45760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f206164647265604482015261737360f01b6064820152608401610a77565b610b6f81614818565b60005a90506120dc6097614acb565b603254610103546001600160a01b0390911690637ad226dc905a61210090856157f2565b611c6091906157f2565b610105546001600160a01b031633146121355760405162461bcd60e51b8152600401610a779061544e565b600061214260ca8561462c565b90508282604051602001612157929190615805565b60405160208183030381529060405280519060200120811461218b5760405162461bcd60e51b8152600401610a7790615a32565b604051637bfcd47d60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7f9a8fa906121dc9087908790600401615805565b600060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122219190810190615a74565b90506000836001600160401b0381111561223d5761223d6153af565b604051908082528060200260200182016040528015612266578160200160208202803683370190505b50905060005b82518110156122ec576122b083828151811061228a5761228a6153c5565b60200260200101516001600160a01b039081166000908152606760205260409020541690565b8282815181106122c2576122c26153c5565b6001600160a01b0390921660209283029190910190910152806122e4816159fc565b91505061226c565b506040516383ddba8f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906383ddba8f9061233f908c908c908c9087906004016153db565b600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50505050505050505050505050565b604051635a48b46b60e01b81526001600160a01b03838116600483015260009182917f00000000000000000000000000000000000000000000000000000000000000001690635a48b46b90602401602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190615b02565b90508063ffffffff166000036124635760405162461bcd60e51b815260206004820152601d60248201527f4e6f74206120736f72746974696f6e20706f6f6c206f70657261746f720000006044820152606401610a77565b600061247060ca8961462c565b90508686604051602001612485929190615805565b6040516020818303038152906040528051906020012081146124b95760405162461bcd60e51b8152600401610a7790615a32565b836001111580156124ca5750858411155b6125225760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d656d62657220696e646578206973206f7574206f662072616044820152626e676560e81b6064820152608401610a77565b63ffffffff821687876125366001886157f2565b818110612545576125456153c5565b905060200201602081019061255a9190615b1f565b63ffffffff161498975050505050505050565b60a054604051636c2530b960e01b81526064600482015260248101919091526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c2530b990604401600060405180830381865afa1580156125e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139d919081019061595e565b60006110b260657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614b4a565b60006060612666609784614cbe565b91509150915091565b6040516307b8c36760e51b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063f7186ce090602401602060405180830381865afa1580156126da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190615b3c565b600080612723836001600160a01b039081166000908152606660205260409020541690565b90506001600160a01b03811661274b5760405162461bcd60e51b8152600401610a7790615485565b60405163439f18fd60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063873e31fa90602401602060405180830381865afa1580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d591906154f1565b9392505050565b6001600160a01b0381166000908152606860205260408120546001600160601b03166110b2565b6001600160a01b038084166000908152600188016020526040902054168061282b5750612967565b6040516307b8c36760e51b81526001600160a01b03828116600483015286169063f7186ce090602401602060405180830381865afa158015612871573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128959190615b3c565b1561296557846001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fc9190615b3c565b1561295957604080516001600160601b038086168252841660208201526001600160a01b0380841692908716917f1b09380d63e78fd72c1d79a805a7e2dfadf02b22418e24bebff51376b7df33b0910160405180910390a3612965565b61296587878784612b49565b505b505050505050565b3360008181526002850160205260409020546001600160a01b0316806129a75760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b0381166000908152600386016020526040812080549091906129de908890889086906001600160601b0316614da2565b9050806001600160601b0316600003612a395760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a77565b836001600160a01b0316836001600160a01b03167f5075aaa89894a888eb2cac81a27320c60855febb0cf1706b66bdc754e640d43360405160405180910390a3604051630483483160e31b81526001600160a01b0386169063241a418890612aa79087908590600401615b59565b600060405180830381600087803b158015612ac157600080fd5b505af1158015612ad5573d6000803e3d6000fd5b5050835467fffffffffffffffe19600160601b9091046001600160401b03160191506129659050578654612b1990600160601b90046001600160401b031642615b7b565b82546001600160401b0391909116600160601b0267ffffffffffffffff60601b1990911617825550505050505050565b6001600160a01b0380821660009081526002860160205260409020541680612b835760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b03808216600081815260038801602052604080822090519093861692917f1231fe5ee649a593b524a494cd53146a196380a872115a0d0fe16c0735afdf2691a36040516307b8c36760e51b81526001600160a01b03848116600483015285169063f7186ce090602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190615b3c565b15612cbb578054600090612c56908890889086906001600160601b0316614da2565b60405163dc7520c560e01b81529091506001600160a01b0386169063dc7520c590612c879087908590600401615b59565b600060405180830381600087803b158015612ca157600080fd5b505af1158015612cb5573d6000803e3d6000fd5b50505050505b805467fffffffffffffffe19600160601b9091046001600160401b031601612967578554612cf990600160601b90046001600160401b031642615b7b565b81546001600160401b0391909116600160601b0267ffffffffffffffff60601b19909116178155505050505050565b6000806003612d3685614a34565b6003811115612d4757612d4761518b565b14612d945760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a77565b6003840154600c850154612da891906157bd565b431115612e035760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f642068617320616c7265616479207061736044820152621cd95960ea1b6064820152608401610a77565b83600b015483604051602001612e199190615794565b6040516020818303038152906040528051906020012014612ea25760405162461bcd60e51b815260206004820152603a60248201527f526573756c7420756e646572206368616c6c656e67652069732064696666657260448201527f656e74207468616e20746865207375626d6974746564206f6e650000000000006064820152608401610a77565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92612ede928892600401615ba2565b600060405180830381865afa925050508015612f1c57506040513d6000823e601f3d908101601f19168201604052612f199190810190615bc7565b60015b612f9157336001600160a01b031684600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436604051612f84906020808252601390820152721d985b1a59185d1a5bdb881c995d995c9d1959606a1b604082015260600190565b60405180910390a3613020565b8115612fd75760405162461bcd60e51b8152602060048201526015602482015274756e6a7573746966696564206368616c6c656e676560581b6044820152606401610a77565b336001600160a01b031686600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436836040516130159190615138565b60405180910390a350505b600b840154915061303460a0840184615c70565b613040600186356157f2565b81811061304f5761304f6153c5565b90506020020160208101906130649190615b1f565b905083600801544361307691906157f2565b600a8501556000600b8501819055600c8501555b9250929050565b60048101545a1015610b6f5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820657874726120676173206c656674000000000000006044820152606401610a77565b6000818152602083905260409020600101546131135760405162461bcd60e51b8152600401610a7790615cb9565b6000908152602091909152604081208181556001810182905560020155565b336001600160a01b0382166131895760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f722063616e206e6f74206265207a65726f20616464726573736044820152606401610a77565b6001600160a01b03818116600090815260018501602052604090205416156132095760405162461bcd60e51b815260206004820152602d60248201527f4f70657261746f7220616c72656164792073657420666f72207468652073746160448201526c35b4b73390383937bb34b232b960991b6064820152608401610a77565b6001600160a01b03828116600090815260028501602052604090205416156132735760405162461bcd60e51b815260206004820152601f60248201527f4f70657261746f72206164647265737320616c726561647920696e20757365006044820152606401610a77565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316156133065760405162461bcd60e51b815260206004820152603160248201527f546865726520697320612070656e64696e6720617574686f72697a6174696f6e60448201527008191958dc99585cd9481c995c5d595cdd607a1b6064820152608401610a77565b826001600160a01b0316826001600160a01b03167fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c160405160405180910390a3506001600160a01b03908116600081815260018501602090815260408083208054959096166001600160a01b031995861681179096559482526002909501909452919092208054909216179055565b606060036133a284614a34565b60038111156133b3576133b361518b565b146134005760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a77565b6003830154600c840154600091613416916157bd565b90508043116134735760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f6420686173206e6f7420706173736564206044820152621e595d60ea1b6064820152608401610a77565b83600b0154836040516020016134899190615794565b60405160208183030381529060405280519060200120146135125760405162461bcd60e51b815260206004820152603960248201527f526573756c7420756e64657220617070726f76616c206973206469666665726560448201527f6e74207468616e20746865207375626d6974746564206f6e65000000000000006064820152608401610a77565b83546000906001600160a01b0316638871ca5d61353260a0870187615c70565b61353e600189356157f2565b81811061354d5761354d6153c5565b90506020020160208101906135629190615b1f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156135a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c89190615392565b9050336001600160a01b03821614806135ee575060068501546135eb90836157bd565b43115b61366c5760405162461bcd60e51b815260206004820152604360248201527f4f6e6c792074686520444b4720726573756c74207375626d697474657220636160448201527f6e20617070726f76652074686520726573756c742061742074686973206d6f6d606482015262195b9d60ea1b608482015260a401610a77565b6136796040850185615c70565b90506001600160401b03811115613692576136926153af565b6040519080825280602002602001820160405280156136bb578160200160208202803683370190505b50925060005b6136ce6040860186615c70565b9050811015613782576136e460a0860186615c70565b60016136f36040890189615c70565b85818110613703576137036153c5565b90506020020160208101906137189190615d09565b6137229190615d24565b60ff16818110613734576137346153c5565b90506020020160208101906137499190615b1f565b84828151811061375b5761375b6153c5565b63ffffffff909216602092830291909101909101528061377a816159fc565b9150506136c1565b50600b8501546040513391907fe6e9d5eba171e82025efb3f3d44fd35905e7283d104284cb9f3bbc5bf1e4276f90600090a3505092915050565b600080600084846040516137d1929190615d3d565b60405190819003902092506137ea602060008688615d4d565b6137f391615d77565b91506138028460208188615d4d565b61380b91615d77565b600084815260209890985260409097209586555060018501819055600290940185905594929392915050565b60006008820181905560098201819055600a8201819055600b8201819055600c820181905581546040805163a69df4b560e01b815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b15801561137d57600080fd5b600060026138a883614a34565b60038111156138b9576138b961518b565b1480156110b257506005820154600a83015460088401546138da91906157bd565b6138e491906157bd565b431192915050565b6001600160601b0381161580613910575083546001600160601b0390811690821610155b61397a5760405162461bcd60e51b815260206004820152603560248201527f417574686f72697a6174696f6e20616d6f756e742073686f756c642062652030604482015274206f722061626f766520746865206d696e696d756d60581b6064820152608401610a77565b6001600160a01b03808416600090815260018601602052604081205490911690816139a65750426139b0565b506001600160401b035b60006139bc8486615d95565b6001600160a01b03871660009081526003890160205260409020805491925090600160601b90046001600160401b03168015801590613a0457506001600160401b0381811614155b15613a97578854613a2590600160a01b90046001600160401b031682615db5565b6001600160401b0316421015613a975760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f7567682074696d65207061737365642073696e636520746865604482015270081bdc9a59da5b985b081c995c5d595cdd607a1b6064820152608401610a77565b81546001600160401b038516600160601b81026001600160a01b03199092166001600160601b0386811691909117929092178455604080518a8416815292891660208401528201526001600160a01b0386811691908a16907f545cbf267cef6fe43f11f6219417ab43a0e8e345adbaae5f626d9bc325e8535a9060600160405180910390a3505050505050505050565b6001613b3283614a34565b6003811115613b4357613b4361518b565b14613b9b5760405162461bcd60e51b815260206004820152602260248201527f43757272656e74207374617465206973206e6f74204157414954494e475f5345604482015261115160f21b6064820152608401610a77565b60405181907fb2ad26c2940889d79df2ee9c758a8aefa00c5ca90eee119af0e5d795df3b98bb90600090a2436008830155600990910155565b6000613bdf82614a34565b6003811115613bf057613bf061518b565b14613c0d5760405162461bcd60e51b8152600401610a7790615dd5565b6040517f5c3ed2397d4d21298b2fb5027ac8e2d42e3c9c72bbb55ddb030e2a36a0cdff6b90600090a1805460408051637c1e845d60e11b815290516001600160a01b039092169163f83d08ba9160048082019260009290919082900301818387803b158015613c7b57600080fd5b505af1158015613c8f573d6000803e3d6000fd5b5050505043816007018190555050565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316613d235760405162461bcd60e51b8152602060048201526024808201527f417574686f72697a6174696f6e206465637265617365206e6f742072657175656044820152631cdd195960e21b6064820152608401610a77565b805467fffffffffffffffe19600160601b9091046001600160401b031601613da25760405162461bcd60e51b815260206004820152602c60248201527f417574686f72697a6174696f6e2064656372656173652072657175657374206e60448201526b1bdd081858dd1a5d985d195960a21b6064820152608401610a77565b8054600160601b90046001600160401b0316421015613e135760405162461bcd60e51b815260206004820152602760248201527f417574686f72697a6174696f6e2064656372656173652064656c6179206e6f74604482015266081c185cdcd95960ca1b6064820152608401610a77565b6040516001600160a01b038316907f50270a522c2fef97b6b7385c2aa4a4518adda681530e0a1fe9f5e840f6f2cd9d90600090a2604051633af0572d60e11b81526001600160a01b0383811660048301528416906375e0ae5a906024016020604051808303816000875af1158015613e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb391906154f1565b50506001600160a01b031660009081526003909201602052506040902080546001600160a01b0319169055565b60006001613eed83614a34565b6003811115613efe57613efe61518b565b1480156110b25750600282015460078301546138e491906157bd565b60408114613f6a5760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206c656e677468206f6620746865207075626c6963206b65796044820152606401610a77565b60008282604051613f7c929190615d3d565b6040805191829003909120600081815260208790529190912060010154909150156140015760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420776974682074686520676976656e207075626c6963206b657960448201526e20616c72656164792065786973747360881b6064820152608401610a77565b60006140106020828587615d4d565b61401991615d77565b905080610e725760405162461bcd60e51b815260206004820152602260248201527f57616c6c6574207075626c6963206b6579206d757374206265206e6f6e2d7a65604482015261726f60f01b6064820152608401610a77565b600261407e83614a34565b600381111561408f5761408f61518b565b146140e85760405162461bcd60e51b8152602060048201526024808201527f43757272656e74207374617465206973206e6f74204157414954494e475f524560448201526314d5531560e21b6064820152608401610a77565b6140f18261389b565b1561413e5760405162461bcd60e51b815260206004820152601a60248201527f444b472074696d656f757420616c7265616479207061737365640000000000006044820152606401610a77565b81546040516307b8c36760e51b81523360048201526001600160a01b0390911690819063f7186ce090602401602060405180830381865afa158015614187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ab9190615b3c565b6142035760405162461bcd60e51b815260206004820152602360248201527f5375626d6974746572206e6f7420696e2074686520736f72746974696f6e20706044820152621bdbdb60ea1b6064820152608401610a77565b336001600160a01b038216638871ca5d61422060a0860186615c70565b61422c600188356157f2565b81811061423b5761423b6153c5565b90506020020160208101906142509190615b1f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015614292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142b69190615392565b6001600160a01b03161461430c5760405162461bcd60e51b815260206004820152601a60248201527f556e6578706563746564207375626d697474657220696e6465780000000000006044820152606401610a77565b8160405160200161431d9190615794565b60408051601f19818403018152908290528051602090910120600b850181905543600c8601556009850154917f8e7fd4293d7db11807147d8890c287fad3396fbb09a4e92273fc7856076c153a90614376908690615794565b60405180910390a3505050565b6001600160a01b03811660009081526003840160205260408120546143b6908590859085906001600160601b0316614da2565b949350505050565b60006143c983614a34565b60038111156143da576143da61518b565b146143f75760405162461bcd60e51b8152600401610a7790615dd5565b600081116144175760405162461bcd60e51b8152600401610a7790615e0c565b600290910155565b600061442a83614a34565b600381111561443b5761443b61518b565b146144585760405162461bcd60e51b8152600401610a7790615dd5565b600081116144785760405162461bcd60e51b8152600401610a7790615e0c565b600390910155565b600061448b83614a34565b600381111561449c5761449c61518b565b146144b95760405162461bcd60e51b8152600401610a7790615dd5565b600490910155565b60006144cc83614a34565b60038111156144dd576144dd61518b565b146144fa5760405162461bcd60e51b8152600401610a7790615dd5565b6000811161451a5760405162461bcd60e51b8152600401610a7790615e0c565b600590910155565b600061452d83614a34565b600381111561453e5761453e61518b565b1461455b5760405162461bcd60e51b8152600401610a7790615dd5565b600582015481106145d45760405162461bcd60e51b815260206004820152603d60248201527f4e65772076616c75652073686f756c64206265206c657373207468616e20726560448201527f73756c74207375626d697373696f6e20706572696f64206c656e6774680000006064820152608401610a77565b600690910155565b600081815260208390526040812060010154819061460c5760405162461bcd60e51b8152600401610a7790615cb9565b505060009081526020919091526040902060018101546002909101549091565b60008181526020839052604081206001015461465a5760405162461bcd60e51b8152600401610a7790615cb9565b506000908152602091909152604090205490565b6001600160a01b03811660009081526003830160205260408120805467fffffffffffffffe19600160601b9091046001600160401b0316016146ba576001600160401b039150506110b2565b805442906001600160401b03600160601b9091048116908216116146fa5781546146f5908290600160601b90046001600160401b0316615db5565b6146fd565b60005b95945050505050565b81546001600160401b03909116600160601b0267ffffffffffffffff60601b19909116179055565b81546001600160401b03909116600160a01b0267ffffffffffffffff60a01b19909116179055565b61475f81613ee0565b6147ab5760405162461bcd60e51b815260206004820152601f60248201527f4177616974696e67207365656420686173206e6f742074696d6564206f7574006044820152606401610a77565b6040517f68c52f05452e81639fa06f379aee3178cddee4725521fff886f244c99e868b5090600090a1610b6f81613837565b60606000806147ec85856145dc565b604080516020810193909352828101919091528051808303820181526060909201905295945050505050565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091016114d6565b82546001600160a01b0316156148d55760405162461bcd60e51b815260206004820152602260248201527f536f72746974696f6e20506f6f6c206164647265737320616c72656164792073604482015261195d60f21b6064820152608401610a77565b60018301546001600160a01b03161561493a5760405162461bcd60e51b815260206004820152602160248201527f444b472056616c696461746f72206164647265737320616c72656164792073656044820152601d60fa1b6064820152608401610a77565b82546001600160a01b03199081166001600160a01b03938416178455600190930180549093169116179055565b83546001600160601b0390811690821610156149c55760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a77565b6001600160a01b0383811660008181526001870160209081526040918290205482516001600160601b03888116825287169281019290925282519416938493927f87f9f9f59204f53d57a89a817c6083a17979cd0531791c91e18551a56e3cfdd7928290030190a35050505050565b805460408051632938b58d60e21b815290516000926001600160a01b03169163a4e2d6349160048083019260209291908290030181865afa158015614a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614aa19190615b3c565b15614ac65750600881015460019015614ac65750600c81015460029015614ac6575060035b919050565b614ad48161389b565b614b185760405162461bcd60e51b81526020600482015260156024820152741112d1c81a185cc81b9bdd081d1a5b5959081bdd5d605a1b6044820152606401610a77565b6040517f2852b3e178dd281713b041c3d90b4815bb55b7ec812931d1e8e8d8bb2ed72d3e90600090a1610b6f81613837565b6001600160a01b03808216600090815260028601602052604081205490911680614b865760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b038116600090815260038701602052604081208054909190614bbd908990899086906001600160601b0316614da2565b6040516307b8c36760e51b81526001600160a01b0387811660048301529192509087169063f7186ce090602401602060405180830381865afa158015614c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c2b9190615b3c565b614c43576001600160601b03161592506143b6915050565b6040516304de824f60e41b81526001600160a01b03871690634de824f090614c719088908590600401615b59565b602060405180830381865afa158015614c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cb29190615b3c565b98975050505050505050565b600060606000846008015411614d165760405162461bcd60e51b815260206004820152601860248201527f444b4720686173206e6f74206265656e207374617274656400000000000000006044820152606401610a77565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92614d52928892600401615ba2565b600060405180830381865afa158015614d6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614d979190810190615bc7565b915091509250929050565b604051637004922d60e11b81526001600160a01b038381166004830152306024830152600091829186169063e009245a90604401602060405180830381865afa158015614df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e1791906154f1565b90506000836001600160601b0316826001600160601b031611614e3b576000614e45565b614e458483615d95565b87549091506001600160601b039081169082161015614e69576000925050506143b6565b91506143b69050565b6001600160a01b0381168114610b6f57600080fd5b6001600160601b0381168114610b6f57600080fd5b600080600060608486031215614eb157600080fd5b8335614ebc81614e72565b92506020840135614ecc81614e87565b91506040840135614edc81614e87565b809150509250925092565b600060208284031215614ef957600080fd5b81356127d581614e72565b600060208284031215614f1657600080fd5b81356127d581614e87565b600060208284031215614f3357600080fd5b81356001600160401b03811115614f4957600080fd5b820160e081850312156127d557600080fd5b600060208284031215614f6d57600080fd5b5035919050565b60008060408385031215614f8757600080fd5b50508035926020909101359150565b600080600080600060a08688031215614fae57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008083601f840112614fe357600080fd5b5081356001600160401b03811115614ffa57600080fd5b6020830191508360208260051b850101111561308a57600080fd5b6000806000806060858703121561502b57600080fd5b84356001600160401b038082111561504257600080fd5b9086019060a0828903121561505657600080fd5b909450602086013593506040860135908082111561507357600080fd5b5061508087828801614fd1565b95989497509550505050565b80356001600160401b0381168114614ac657600080fd5b6000806000606084860312156150b857600080fd5b83356150c381614e87565b92506150d16020850161508c565b91506150df6040850161508c565b90509250925092565b60005b838110156151035781810151838201526020016150eb565b50506000910152565b600081518084526151248160208601602086016150e8565b601f01601f19169290920160200192915050565b6020815260006127d5602083018461510c565b60008060006060848603121561516057600080fd5b833561516b81614e72565b9250602084013561517b81614e72565b91506040840135614edc81614e72565b634e487b7160e01b600052602160045260246000fd5b60208101600483106151c357634e487b7160e01b600052602160045260246000fd5b91905290565b60008060008060008060a087890312156151e257600080fd5b86356151ed81614e87565b955060208701359450604087013561520481614e72565b93506060870135925060808701356001600160401b0381111561522657600080fd5b61523289828a01614fd1565b979a9699509497509295939492505050565b60008060008060006080868803121561525c57600080fd5b8535945060208601356001600160401b0381111561527957600080fd5b61528588828901614fd1565b909550935050604086013561529981614e72565b949793965091946060013592915050565b600081518084526020808501945080840160005b838110156152e057815163ffffffff16875295820195908201906001016152be565b509495945050505050565b6020815260006127d560208301846152aa565b82151581526040602082015260006143b6604083018461510c565b60208082526022908201527f43616c6c6572206973206e6f7420746865207374616b696e6720636f6e74726160408201526118dd60f21b606082015260800190565b6020808252601c908201527f43616c6c6572206973206e6f742074686520676f7665726e616e636500000000604082015260600190565b6000602082840312156153a457600080fd5b81516127d581614e72565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160601b038516815260208082018590526001600160a01b038481166040840152608060608401819052845190840181905260009285810192909160a0860190855b8181101561543e578551841683529484019491840191600101615420565b50909a9950505050505050505050565b6020808252601e908201527f43616c6c6572206973206e6f74207468652057616c6c6574204f776e65720000604082015260600190565b60208082526010908201526f2ab735b737bbb71037b832b930ba37b960811b604082015260600190565b6000806000606084860312156154c457600080fd5b83516154cf81614e72565b60208501519093506154e081614e72565b6040850151909250614edc81614e72565b60006020828403121561550357600080fd5b81516127d581614e87565b6000808335601e1984360301811261552557600080fd5b8301803591506001600160401b0382111561553f57600080fd5b60200191503681900382131561308a57600080fd5b6000808335601e1984360301811261556b57600080fd5b83016020810192503590506001600160401b0381111561558a57600080fd5b80360382131561308a57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126155d957600080fd5b83016020810192503590506001600160401b038111156155f857600080fd5b8060051b360382131561308a57600080fd5b803560ff81168114614ac657600080fd5b81835260006001600160fb1b0383111561563457600080fd5b8260051b80836020870137939093016020019392505050565b63ffffffff81168114610b6f57600080fd5b8183526000602080850194508260005b858110156152e05781356156828161564d565b63ffffffff168752958201959082019060010161566f565b80358252600060206156ae81840184615554565b60e0838701526156c260e087018284615599565b9150506156d260408501856155c2565b868303604088015280835290916000919084015b8183101561570e5760ff6156f98561560a565b168152928401926001929092019184016156e6565b61571b6060880188615554565b955093508781036060890152615732818686615599565b94505050505061574560808401846155c2565b858303608087015261575883828461561b565b9250505061576960a08401846155c2565b85830360a087015261577c83828461565f565b9250505060c083013560c08501528091505092915050565b6020815260006127d5602083018461569a565b634e487b7160e01b600052601160045260246000fd5b808201808211156110b2576110b26157a7565b6040815260006157e360408301856152aa565b90508260208301529392505050565b818103818111156110b2576110b26157a7565b6020815260006143b660208301848661565f565b8015158114610b6f57600080fd5b60018060a01b038716815260a06020820152853560a0820152600061584f60208801886155c2565b60a060c08501526158656101408501828461561b565b915050604088013561587681615819565b151560e084015261588a6060890189615554565b609f1980868503016101008701526158a3848385615599565b93506158b260808c018c6155c2565b935091508086850301610120870152506158cd83838361561b565b9250505082810360408401526158e3818861510c565b905085606084015282810360808401526158fe81858761565f565b9998505050505050505050565b604051601f8201601f191681016001600160401b0381118282101715615933576159336153af565b604052919050565b60006001600160401b03821115615954576159546153af565b5060051b60200190565b6000602080838503121561597157600080fd5b82516001600160401b0381111561598757600080fd5b8301601f8101851361599857600080fd5b80516159ab6159a68261593b565b61590b565b81815260059190911b820183019083810190878311156159ca57600080fd5b928401925b828410156159f15783516159e28161564d565b825292840192908401906159cf565b979650505050505050565b600060018201615a0e57615a0e6157a7565b5060010190565b600060208284031215615a2757600080fd5b81356127d581615819565b60208082526022908201527f496e76616c69642077616c6c6574206d656d62657273206964656e7469666965604082015261727360f01b606082015260800190565b60006020808385031215615a8757600080fd5b82516001600160401b03811115615a9d57600080fd5b8301601f81018513615aae57600080fd5b8051615abc6159a68261593b565b81815260059190911b82018301908381019087831115615adb57600080fd5b928401925b828410156159f1578351615af381614e72565b82529284019290840190615ae0565b600060208284031215615b1457600080fd5b81516127d58161564d565b600060208284031215615b3157600080fd5b81356127d58161564d565b600060208284031215615b4e57600080fd5b81516127d581615819565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160401b03818116838216019080821115615b9b57615b9b6157a7565b5092915050565b606081526000615bb5606083018661569a565b60208301949094525060400152919050565b60008060408385031215615bda57600080fd5b8251615be581615819565b60208401519092506001600160401b0380821115615c0257600080fd5b818501915085601f830112615c1657600080fd5b815181811115615c2857615c286153af565b615c3b601f8201601f191660200161590b565b9150808252866020828501011115615c5257600080fd5b615c638160208401602086016150e8565b5080925050509250929050565b6000808335601e19843603018112615c8757600080fd5b8301803591506001600160401b03821115615ca157600080fd5b6020019150600581901b360382131561308a57600080fd5b60208082526030908201527f57616c6c657420776974682074686520676976656e20494420686173206e6f7460408201526f081899595b881c9959da5cdd195c995960821b606082015260800190565b600060208284031215615d1b57600080fd5b6127d58261560a565b60ff82811682821603908111156110b2576110b26157a7565b8183823760009101908152919050565b60008085851115615d5d57600080fd5b83861115615d6a57600080fd5b5050820193919092039150565b803560208310156110b257600019602084900360031b1b1692915050565b6001600160601b03828116828216039080821115615b9b57615b9b6157a7565b6001600160401b03828116828216039080821115615b9b57615b9b6157a7565b60208082526019908201527f43757272656e74207374617465206973206e6f742049444c4500000000000000604082015260600190565b60208082526025908201527f4e65772076616c75652073686f756c642062652067726561746572207468616e604082015264207a65726f60d81b60608201526080019056fea26469706673582212202c52db1666a67071c52c809d6f1482237ccedd54f29a74fd7591931ccaa6f48c64736f6c63430008110033";
|
|
1931
|
+
var _bytecode = "0x60c06040523480156200001157600080fd5b50604051620060e4380380620060e4833981016040819052620000349162000134565b6001600160a01b03808316608052811660a0526200005162000059565b505062000173565b606454610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60645460ff908116101562000119576064805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013157600080fd5b50565b600080604083850312156200014857600080fd5b825162000155816200011b565b602084015190925062000168816200011b565b809150509250929050565b60805160a051615e876200025d600039600081816104ea01528181610a3a01528181610a8701528181610adb01528181610b2901528181610d4e01528181610f42015281816113ad015281816115e8015281816116ce01528181611f6a0152818161230401526126110152600081816107e601528181610aa801528181610afc01528181610b4a01528181610c6301528181610fde0152818161115201528181611338015281816118b1015281816119c401528181611df7015281816121a5015281816123a0015281816125910152818161263201528181612691015261276a0152615e876000f3fe608060405234801561001057600080fd5b50600436106103995760003560e01c80637e0049fd116101e9578063c9bacaad1161010f578063df07ce59116100ad578063f0820c921161007c578063f0820c921461097e578063f7186ce01461098f578063f854a27f146109a2578063fd2a4788146109b557600080fd5b8063df07ce5914610922578063e03e453514610935578063e686440f1461094a578063e83ab3a51461095d57600080fd5b8063d38bfff4116100e9578063d38bfff4146108c8578063d855c631146108db578063d8dc404d146108e3578063ded56d45146108f657600080fd5b8063c9bacaad1461088d578063cc562388146108a0578063d0bcc0e3146108b557600080fd5b8063a04e298011610187578063c09975cd11610156578063c09975cd14610828578063c0c53b8b1461083b578063c7c49c981461084e578063c88e70f41461087a57600080fd5b8063a04e2980146107c6578063b13b55b2146107d9578063b54a2374146107e1578063b5e9ce8b1461080857600080fd5b806388a59590116101c357806388a595901461073a5780638dcbdf4a146107755780639879d19b146107885780639c9de0281461079b57600080fd5b80637e0049fd146106e55780637e33cba6146106f8578063830f9e021461070b57600080fd5b806352902301116102ce5780636c9ecd641161026c578063770124d31161023b578063770124d3146105f2578063789d392a146105fa5780637b14729e146106755780637b35b4e6146106d257600080fd5b80636c9ecd64146105b15780636febd464146105c457806372cc8c6d146105d757806375e0ae5a146105df57600080fd5b8063663032cd116102a8578063663032cd1461057057806368c34948146105835780636a7f7a901461058b5780636b5f2bff1461059e57600080fd5b8063529023011461052f5780635aa6e6751461054a5780635c5b38701461055d57600080fd5b8063227fd44f1161033b5780633682a450116103155780633682a450146104bf57806342d86693146104d25780634cf088d9146104e55780634d99f4731461050c57600080fd5b8063227fd44f146104865780633137676614610499578063343bb927146104ac57600080fd5b8063167f051711610377578063167f0517146104325780631ae879e81461043a5780631c5b07621461044e5780631d35fa631461046157600080fd5b806308aa090b1461039e57806314a85474146103f1578063153622b314610406575b600080fd5b6103a66109c8565b6040516103e89190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60405180910390f35b6104046103ff366004614e9c565b610a2f565b005b6101065461041a906001600160a01b031681565b6040516001600160a01b0390911681526020016103e8565b610404610ad4565b6101055461041a906001600160a01b031681565b61040461045c366004614ee7565b610b22565b60fc546001600160601b03165b6040516001600160601b0390911681526020016103e8565b610404610494366004614f04565b610b72565b6104046104a7366004614f21565b610bf1565b6104046104ba366004614f5b565b610e79565b6104046104cd366004614ee7565b610edd565b6104046104e0366004614ee7565b610ee8565b61041a7f000000000000000000000000000000000000000000000000000000000000000081565b61051f61051a366004614f5b565b61109d565b60405190151581526020016103e8565b60fd5460fe54604080519283526020830191909152016103e8565b60005461041a906001600160a01b031681565b61040461056b366004614f21565b6110b8565b61040461057e366004614ee7565b6112ef565b61051f611391565b610404610599366004614e9c565b6113a2565b6104046105ac366004614ee7565b6113f7565b6104046105bf366004614f74565b611470565b6104046105d2366004614f74565b6114e2565b61040461154c565b6104046105ed366004614ee7565b6115e1565b61051f61160d565b610653610608366004614f5b565b60408051606080820183526000808352602080840182905292840181905293845260ca8252928290208251938401835280548452600181015491840191909152600201549082015290565b60408051825181526020808401519082015291810151908201526060016103e8565b6106a36065546001600160601b038116916001600160401b03600160601b8304811692600160a01b90041690565b604080516001600160601b0390941684526001600160401b0392831660208501529116908201526060016103e8565b6104046106e0366004614ee7565b611619565b6104046106f3366004614f21565b6116a1565b61046e610706366004614ee7565b6116c5565b61072c610719366004614f5b565b6101046020526000908152604090205481565b6040519081526020016103e8565b60ff5461010054610101546101025461010354604080519586526020860194909452928401919091526060830152608082015260a0016103e8565b610404610783366004614f96565b6116f3565b610404610796366004615015565b6117ab565b6107ae6107a9366004614ee7565b611b64565b6040516001600160401b0390911681526020016103e8565b6104046107d43660046150a3565b611b71565b610404611c23565b61041a7f000000000000000000000000000000000000000000000000000000000000000081565b61081b610816366004614f5b565b611c8a565b6040516103e89190615138565b60325461041a906001600160a01b031681565b61040461084936600461514b565b611c97565b61041a61085c366004614ee7565b6001600160a01b039081166000908152606660205260409020541690565b610404610888366004614f96565b611ecc565b61040461089b366004614e9c565b611f5f565b6108a8611fb4565b6040516103e891906151a1565b6104046108c3366004614ee7565b611fc0565b6104046108d6366004614ee7565b612039565b6104046120cd565b6104046108f13660046151c9565b61210a565b61041a610904366004614ee7565b6001600160a01b039081166000908152606760205260409020541690565b61051f610930366004615244565b61237c565b61093d61256d565b6040516103e891906152eb565b61051f610958366004614ee7565b612608565b61097061096b366004614f21565b612657565b6040516103e89291906152fe565b6065546001600160601b031661046e565b61051f61099d366004614ee7565b61266f565b61046e6109b0366004614ee7565b6126fe565b61046e6109c3366004614ee7565b6127dc565b6109fa6040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a0810182526099548152609a546020820152609b5491810191909152609c546060820152609d54608082015290565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a805760405162461bcd60e51b8152600401610a7790615319565b60405180910390fd5b610acf60657f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000868686612803565b505050565b610b2060657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061296f565b565b610b6f60657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000084612b49565b50565b6000546001600160a01b03163314610b9c5760405162461bcd60e51b8152600401610a779061535b565b60fc80546001600160601b0319166001600160601b0383169081179091556040519081527fe132b87eb6644ee4d4c3c32744f7e1c3906335a2d4f99330767bf573909c7d84906020015b60405180910390a150565b333214610c2a5760405162461bcd60e51b81526020600482015260076024820152664e6f7420454f4160c81b6044820152606401610a77565b600080610c38609784612d28565b604051638871ca5d60e01b815263ffffffff8216600482015291935091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638871ca5d90602401602060405180830381865afa158015610caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cce9190615392565b6040805160018082528183019092529192506000919060208083019080368337019050506001600160a01b038084166000908152606760205260409020549192501681600081518110610d2357610d236153c5565b6001600160a01b03928316602091820292909201015260fc5460fd546040516383ddba8f60e01b81527f0000000000000000000000000000000000000000000000000000000000000000909316926383ddba8f92610d93926001600160601b0390911691339087906004016153db565b600060405180830381600087803b158015610dad57600080fd5b505af1925050508015610dbe575060015b610e175760fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f14621289a12ab59e0737decc388bba91d929c723defb4682d5d19b9a12ecfecb910160405180910390a2610e68565b60fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f88f76c659db78142f88e94db3ca791869495394c6c1b3d412ced9022dc97c9e3910160405180910390a25b610e726097613091565b5050505050565b610105546001600160a01b03163314610ea45760405162461bcd60e51b8152600401610a779061544e565b610eaf60ca826130e5565b60405181907fa6ae4af610b8ada39d3675190ead27a5552631a8e33f53e4e37dbb082f11a73e90600090a250565b610b6f606582613132565b6001600160a01b038181166000908152606660205260409020541680610f205760405162461bcd60e51b8152600401610a7790615485565b604051632de9480760e01b81526001600160a01b0383811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632de9480790602401606060405180830381865afa158015610f8b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610faf91906154af565b50604051637104c0e560e11b81526001600160a01b0385811660048301528281166024830152919350600092507f00000000000000000000000000000000000000000000000000000000000000009091169063e20981ca906044016020604051808303816000875af1158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d91906154f1565b6040516001600160601b03821681529091506001600160a01b038516907f38532b6dea69d7266fa923c7813d190be37625f2454ddfa3d93c45c79482e3fd9060200160405180910390a250505050565b600081815260ca602052604081206001015415155b92915050565b60005a905060006110ca609784613395565b9050600080806110ef60c08701356110e5602089018961550e565b60ca9291906137bc565b925092509250856040516020016111069190615794565b60405160208183030381529060405280519060200120837fbe8f27cef1f3d94120c9c547c3614f5b992fdb0c0a497cc920fde06546291ab460405160405180910390a38351156111de577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928560fe544261118e91906157bd565b6040518363ffffffff1660e01b81526004016111ab9291906157d0565b600060405180830381600087803b1580156111c557600080fd5b505af11580156111d9573d6000803e3d6000fd5b505050505b6101055460405163547d07a160e11b81526004810185905260248101849052604481018390526001600160a01b039091169063a8fa0f4290606401600060405180830381600087803b15801561123357600080fd5b505af1158015611247573d6000803e3d6000fd5b505050506112556097613837565b603254610100546001600160a01b0390911690637ad226dc905a61127990896157f2565b60ff5461128691906157bd565b61129091906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156112cf57600080fd5b505af11580156112e3573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b031633146113195760405162461bcd60e51b8152600401610a779061535b565b604051632a59250560e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a9649414906024015b600060405180830381600087803b15801561137d57600080fd5b505af1158015610e72573d6000803e3d6000fd5b600061139d609761389b565b905090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146113ea5760405162461bcd60e51b8152600401610a7790615319565b610acf60658484846138ec565b6000546001600160a01b031633146114215760405162461bcd60e51b8152600401610a779061535b565b61010680546001600160a01b0319166001600160a01b0383169081179091556040519081527f2b34e21b6daa8fcf8cba1c3ed709cbed2b0231d5fb60e9ccd8c2e75a5674bcb390602001610be6565b6000546001600160a01b0316331461149a5760405162461bcd60e51b8152600401610a779061535b565b60fd82905560fe81905560408051838152602081018390527ff3a6ee10a78fb7d212e87d9be970fb16bd7324e9dc9c38d21cd7ecde781a1d2a91015b60405180910390a15050565b610106546001600160a01b0316331461153d5760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74207468652052616e646f6d20426561636f6e006044820152606401610a77565b611548609783613b27565b5050565b610105546001600160a01b031633146115775760405162461bcd60e51b8152600401610a779061544e565b6115816097613bd4565b610106546040516310da3b0360e21b81523060048201526001600160a01b0390911690634368ec0c90602401600060405180830381600087803b1580156115c757600080fd5b505af11580156115db573d6000803e3d6000fd5b50505050565b610b6f60657f000000000000000000000000000000000000000000000000000000000000000083613c9f565b600061139d6097613ee0565b6000546001600160a01b031633146116435760405162461bcd60e51b8152600401610a779061535b565b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1603280546001600160a01b0319166001600160a01b0392909216919091179055565b6116ba6116b1602083018361550e565b60ca9190613f1a565b610b6f609782614073565b60006110b260657f000000000000000000000000000000000000000000000000000000000000000084614383565b6000546001600160a01b0316331461171d5760405162461bcd60e51b8152600401610a779061535b565b6117286097866143be565b61173360978561441f565b61173e609784614480565b6117496097836144c1565b611754609782614522565b604080518681526020810186905290810184905260608101839052608081018290527f59ae8ed7b3a7e5f6dde4cff478f0ac0aa652c5edc4f4757b09a778a430b02c569060a0015b60405180910390a15050505050565b60005a8535600081815261010460205260409020549192509085146118025760405162461bcd60e51b815260206004820152600d60248201526c496e76616c6964206e6f6e636560981b6044820152606401610a77565b60008061181060ca846145dc565b9092509050600061182260ca8561462c565b90508686604051602001611837929190615805565b6040516020818303038152906040528051906020012081146118935760405162461bcd60e51b8152602060048201526015602482015274496e76616c69642067726f7570206d656d6265727360581b6044820152606401610a77565b600073__$c28dd63714b1a086d50ecbb702fff9dbb7$__63f4df04be7f00000000000000000000000000000000000000000000000000000000000000008c87876040516020016118ed929190918252602082015260400190565b6040516020818303038152906040528d8d8d6040518763ffffffff1660e01b815260040161192096959493929190615827565b600060405180830381865af415801561193d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611965919081019061595e565b600086815261010460205260408120805492935090611983836159fc565b9091555050604080518a815233602082015286917f326e1ff7c130ed708307116f79cf7dbca649503e7082e5e35a19ceeee1523b39910160405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928260fe5442611a0091906157bd565b6040518363ffffffff1660e01b8152600401611a1d9291906157d0565b600060405180830381600087803b158015611a3757600080fd5b505af1158015611a4b573d6000803e3d6000fd5b50611a609250505060608b0160408c01615a15565b15611ad35761010554604051631ee74c0960e11b81526004810187905260248101869052604481018590526001600160a01b0390911690633dce981290606401600060405180830381600087803b158015611aba57600080fd5b505af1158015611ace573d6000803e3d6000fd5b505050505b603254610101546001600160a01b0390911690637ad226dc905a611af7908a6157f2565b611b0191906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015611b4057600080fd5b505af1158015611b54573d6000803e3d6000fd5b5050505050505050505050505050565b60006110b260658361466e565b6000546001600160a01b03163314611b9b5760405162461bcd60e51b8152600401610a779061535b565b606580546001600160601b0319166001600160601b038516179055611bc1606583614706565b611bcc60658261472e565b604080516001600160601b03851681526001600160401b03848116602083015283168183015290517f544b726e42801bb47073854eeedae851903f66fe32a5bd24e626e10b90027b519181900360600190a1505050565b60005a9050611c326097614756565b603254610102546001600160a01b0390911690637ad226dc905a611c5690856157f2565b611c6091906157bd565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401611363565b60606110b260ca836147dd565b606454610100900460ff1615808015611cb75750606454600160ff909116105b80611cd15750303b158015611cd1575060645460ff166001145b611d345760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a77565b6064805460ff191660011790558015611d57576064805461ff0019166101001790555b61010680546001600160a01b038086166001600160a01b0319928316179092556032805492851692909116919091179055611d9133614818565b606580546001600160601b031916690878678326eac9000000179055611dbb6065623b5380614706565b611dc96065623b538061472e565b60fc80546001600160601b0319166815af1d78b58c400000179055606460fd556212750060fe55611e1c60977f000000000000000000000000000000000000000000000000000000000000000086614872565b611e296097612d006143be565b611e366097612d0061441f565b611e43609761c350614480565b611e5060976102186144c1565b611e5c60976014614522565b62046cd060ff55620119406101005562016b4861010155611c52610102556108fc6101035580156115db576064805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000546001600160a01b03163314611ef65760405162461bcd60e51b8152600401610a779061535b565b60ff859055610100849055610101839055610102829055610103819055604080518681526020810186905290810184905260608101839052608081018290527f8a3e64fa6013a36bccca7362e8826b11ba41e57fb60f55309c0ca48904dad0829060a00161179c565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611fa75760405162461bcd60e51b8152600401610a7790615319565b610acf6065848484614967565b600061139d6097614a34565b6000546001600160a01b03163314611fea5760405162461bcd60e51b8152600401610a779061535b565b61010580546001600160a01b0319166001600160a01b0383169081179091556040519081527fa1993af5a189ba5ad4155263c920cfee33ce0593a8eb231a13bb3ce6f39459e390602001610be6565b6000546001600160a01b031633146120635760405162461bcd60e51b8152600401610a779061535b565b6001600160a01b0381166120c45760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f206164647265604482015261737360f01b6064820152608401610a77565b610b6f81614818565b60005a90506120dc6097614acb565b603254610103546001600160a01b0390911690637ad226dc905a61210090856157f2565b611c6091906157f2565b610105546001600160a01b031633146121355760405162461bcd60e51b8152600401610a779061544e565b600061214260ca8561462c565b90508282604051602001612157929190615805565b60405160208183030381529060405280519060200120811461218b5760405162461bcd60e51b8152600401610a7790615a32565b604051637bfcd47d60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7f9a8fa906121dc9087908790600401615805565b600060405180830381865afa1580156121f9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122219190810190615a74565b90506000836001600160401b0381111561223d5761223d6153af565b604051908082528060200260200182016040528015612266578160200160208202803683370190505b50905060005b82518110156122ec576122b083828151811061228a5761228a6153c5565b60200260200101516001600160a01b039081166000908152606760205260409020541690565b8282815181106122c2576122c26153c5565b6001600160a01b0390921660209283029190910190910152806122e4816159fc565b91505061226c565b506040516383ddba8f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906383ddba8f9061233f908c908c908c9087906004016153db565b600060405180830381600087803b15801561235957600080fd5b505af115801561236d573d6000803e3d6000fd5b50505050505050505050505050565b604051635a48b46b60e01b81526001600160a01b03838116600483015260009182917f00000000000000000000000000000000000000000000000000000000000000001690635a48b46b90602401602060405180830381865afa1580156123e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240b9190615b02565b90508063ffffffff166000036124635760405162461bcd60e51b815260206004820152601d60248201527f4e6f74206120736f72746974696f6e20706f6f6c206f70657261746f720000006044820152606401610a77565b600061247060ca8961462c565b90508686604051602001612485929190615805565b6040516020818303038152906040528051906020012081146124b95760405162461bcd60e51b8152600401610a7790615a32565b836001111580156124ca5750858411155b6125225760405162461bcd60e51b815260206004820152602360248201527f57616c6c6574206d656d62657220696e646578206973206f7574206f662072616044820152626e676560e81b6064820152608401610a77565b63ffffffff821687876125366001886157f2565b818110612545576125456153c5565b905060200201602081019061255a9190615b1f565b63ffffffff161498975050505050505050565b60a054604051636c2530b960e01b81526064600482015260248101919091526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c2530b990604401600060405180830381865afa1580156125e0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261139d919081019061595e565b60006110b260657f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000085614b4a565b60006060612666609784614cbe565b91509150915091565b6040516307b8c36760e51b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063f7186ce090602401602060405180830381865afa1580156126da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b29190615b3c565b600080612723836001600160a01b039081166000908152606660205260409020541690565b90506001600160a01b03811661274b5760405162461bcd60e51b8152600401610a7790615485565b60405163439f18fd60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063873e31fa90602401602060405180830381865afa1580156127b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127d591906154f1565b9392505050565b6001600160a01b0381166000908152606860205260408120546001600160601b03166110b2565b6001600160a01b038084166000908152600188016020526040902054168061282b5750612967565b6040516307b8c36760e51b81526001600160a01b03828116600483015286169063f7186ce090602401602060405180830381865afa158015612871573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128959190615b3c565b1561296557846001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fc9190615b3c565b1561295957604080516001600160601b038086168252841660208201526001600160a01b0380841692908716917f1b09380d63e78fd72c1d79a805a7e2dfadf02b22418e24bebff51376b7df33b0910160405180910390a3612965565b61296587878784612b49565b505b505050505050565b3360008181526002850160205260409020546001600160a01b0316806129a75760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b0381166000908152600386016020526040812080549091906129de908890889086906001600160601b0316614da2565b9050806001600160601b0316600003612a395760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a77565b836001600160a01b0316836001600160a01b03167f5075aaa89894a888eb2cac81a27320c60855febb0cf1706b66bdc754e640d43360405160405180910390a3604051630483483160e31b81526001600160a01b0386169063241a418890612aa79087908590600401615b59565b600060405180830381600087803b158015612ac157600080fd5b505af1158015612ad5573d6000803e3d6000fd5b5050835467fffffffffffffffe19600160601b9091046001600160401b03160191506129659050578654612b1990600160601b90046001600160401b031642615b7b565b82546001600160401b0391909116600160601b0267ffffffffffffffff60601b1990911617825550505050505050565b6001600160a01b0380821660009081526002860160205260409020541680612b835760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b03808216600081815260038801602052604080822090519093861692917f1231fe5ee649a593b524a494cd53146a196380a872115a0d0fe16c0735afdf2691a36040516307b8c36760e51b81526001600160a01b03848116600483015285169063f7186ce090602401602060405180830381865afa158015612c10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c349190615b3c565b15612cbb578054600090612c56908890889086906001600160601b0316614da2565b60405163dc7520c560e01b81529091506001600160a01b0386169063dc7520c590612c879087908590600401615b59565b600060405180830381600087803b158015612ca157600080fd5b505af1158015612cb5573d6000803e3d6000fd5b50505050505b805467fffffffffffffffe19600160601b9091046001600160401b031601612967578554612cf990600160601b90046001600160401b031642615b7b565b81546001600160401b0391909116600160601b0267ffffffffffffffff60601b19909116178155505050505050565b6000806003612d3685614a34565b6003811115612d4757612d4761518b565b14612d945760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a77565b6003840154600c850154612da891906157bd565b431115612e035760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f642068617320616c7265616479207061736044820152621cd95960ea1b6064820152608401610a77565b83600b015483604051602001612e199190615794565b6040516020818303038152906040528051906020012014612ea25760405162461bcd60e51b815260206004820152603a60248201527f526573756c7420756e646572206368616c6c656e67652069732064696666657260448201527f656e74207468616e20746865207375626d6974746564206f6e650000000000006064820152608401610a77565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92612ede928892600401615ba2565b600060405180830381865afa925050508015612f1c57506040513d6000823e601f3d908101601f19168201604052612f199190810190615bc7565b60015b612f9157336001600160a01b031684600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436604051612f84906020808252601390820152721d985b1a59185d1a5bdb881c995d995c9d1959606a1b604082015260600190565b60405180910390a3613020565b8115612fd75760405162461bcd60e51b8152602060048201526015602482015274756e6a7573746966696564206368616c6c656e676560581b6044820152606401610a77565b336001600160a01b031686600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436836040516130159190615138565b60405180910390a350505b600b840154915061303460a0840184615c70565b613040600186356157f2565b81811061304f5761304f6153c5565b90506020020160208101906130649190615b1f565b905083600801544361307691906157f2565b600a8501556000600b8501819055600c8501555b9250929050565b60048101545a1015610b6f5760405162461bcd60e51b815260206004820152601960248201527f4e6f7420656e6f75676820657874726120676173206c656674000000000000006044820152606401610a77565b6000818152602083905260409020600101546131135760405162461bcd60e51b8152600401610a7790615cb9565b6000908152602091909152604081208181556001810182905560020155565b336001600160a01b0382166131895760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f722063616e206e6f74206265207a65726f20616464726573736044820152606401610a77565b6001600160a01b03818116600090815260018501602052604090205416156132095760405162461bcd60e51b815260206004820152602d60248201527f4f70657261746f7220616c72656164792073657420666f72207468652073746160448201526c35b4b73390383937bb34b232b960991b6064820152608401610a77565b6001600160a01b03828116600090815260028501602052604090205416156132735760405162461bcd60e51b815260206004820152601f60248201527f4f70657261746f72206164647265737320616c726561647920696e20757365006044820152606401610a77565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316156133065760405162461bcd60e51b815260206004820152603160248201527f546865726520697320612070656e64696e6720617574686f72697a6174696f6e60448201527008191958dc99585cd9481c995c5d595cdd607a1b6064820152608401610a77565b826001600160a01b0316826001600160a01b03167fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c160405160405180910390a3506001600160a01b03908116600081815260018501602090815260408083208054959096166001600160a01b031995861681179096559482526002909501909452919092208054909216179055565b606060036133a284614a34565b60038111156133b3576133b361518b565b146134005760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610a77565b6003830154600c840154600091613416916157bd565b90508043116134735760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f6420686173206e6f7420706173736564206044820152621e595d60ea1b6064820152608401610a77565b83600b0154836040516020016134899190615794565b60405160208183030381529060405280519060200120146135125760405162461bcd60e51b815260206004820152603960248201527f526573756c7420756e64657220617070726f76616c206973206469666665726560448201527f6e74207468616e20746865207375626d6974746564206f6e65000000000000006064820152608401610a77565b83546000906001600160a01b0316638871ca5d61353260a0870187615c70565b61353e600189356157f2565b81811061354d5761354d6153c5565b90506020020160208101906135629190615b1f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156135a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135c89190615392565b9050336001600160a01b03821614806135ee575060068501546135eb90836157bd565b43115b61366c5760405162461bcd60e51b815260206004820152604360248201527f4f6e6c792074686520444b4720726573756c74207375626d697474657220636160448201527f6e20617070726f76652074686520726573756c742061742074686973206d6f6d606482015262195b9d60ea1b608482015260a401610a77565b6136796040850185615c70565b90506001600160401b03811115613692576136926153af565b6040519080825280602002602001820160405280156136bb578160200160208202803683370190505b50925060005b6136ce6040860186615c70565b9050811015613782576136e460a0860186615c70565b60016136f36040890189615c70565b85818110613703576137036153c5565b90506020020160208101906137189190615d09565b6137229190615d24565b60ff16818110613734576137346153c5565b90506020020160208101906137499190615b1f565b84828151811061375b5761375b6153c5565b63ffffffff909216602092830291909101909101528061377a816159fc565b9150506136c1565b50600b8501546040513391907fe6e9d5eba171e82025efb3f3d44fd35905e7283d104284cb9f3bbc5bf1e4276f90600090a3505092915050565b600080600084846040516137d1929190615d3d565b60405190819003902092506137ea602060008688615d4d565b6137f391615d77565b91506138028460208188615d4d565b61380b91615d77565b600084815260209890985260409097209586555060018501819055600290940185905594929392915050565b60006008820181905560098201819055600a8201819055600b8201819055600c820181905581546040805163a69df4b560e01b815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b15801561137d57600080fd5b600060026138a883614a34565b60038111156138b9576138b961518b565b1480156110b257506005820154600a83015460088401546138da91906157bd565b6138e491906157bd565b431192915050565b6001600160601b0381161580613910575083546001600160601b0390811690821610155b61397a5760405162461bcd60e51b815260206004820152603560248201527f417574686f72697a6174696f6e20616d6f756e742073686f756c642062652030604482015274206f722061626f766520746865206d696e696d756d60581b6064820152608401610a77565b6001600160a01b03808416600090815260018601602052604081205490911690816139a65750426139b0565b506001600160401b035b60006139bc8486615d95565b6001600160a01b03871660009081526003890160205260409020805491925090600160601b90046001600160401b03168015801590613a0457506001600160401b0381811614155b15613a97578854613a2590600160a01b90046001600160401b031682615db5565b6001600160401b0316421015613a975760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f7567682074696d65207061737365642073696e636520746865604482015270081bdc9a59da5b985b081c995c5d595cdd607a1b6064820152608401610a77565b81546001600160401b038516600160601b81026001600160a01b03199092166001600160601b0386811691909117929092178455604080518a8416815292891660208401528201526001600160a01b0386811691908a16907f545cbf267cef6fe43f11f6219417ab43a0e8e345adbaae5f626d9bc325e8535a9060600160405180910390a3505050505050505050565b6001613b3283614a34565b6003811115613b4357613b4361518b565b14613b9b5760405162461bcd60e51b815260206004820152602260248201527f43757272656e74207374617465206973206e6f74204157414954494e475f5345604482015261115160f21b6064820152608401610a77565b60405181907fb2ad26c2940889d79df2ee9c758a8aefa00c5ca90eee119af0e5d795df3b98bb90600090a2436008830155600990910155565b6000613bdf82614a34565b6003811115613bf057613bf061518b565b14613c0d5760405162461bcd60e51b8152600401610a7790615dd5565b6040517f5c3ed2397d4d21298b2fb5027ac8e2d42e3c9c72bbb55ddb030e2a36a0cdff6b90600090a1805460408051637c1e845d60e11b815290516001600160a01b039092169163f83d08ba9160048082019260009290919082900301818387803b158015613c7b57600080fd5b505af1158015613c8f573d6000803e3d6000fd5b5050505043816007018190555050565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316613d235760405162461bcd60e51b8152602060048201526024808201527f417574686f72697a6174696f6e206465637265617365206e6f742072657175656044820152631cdd195960e21b6064820152608401610a77565b805467fffffffffffffffe19600160601b9091046001600160401b031601613da25760405162461bcd60e51b815260206004820152602c60248201527f417574686f72697a6174696f6e2064656372656173652072657175657374206e60448201526b1bdd081858dd1a5d985d195960a21b6064820152608401610a77565b8054600160601b90046001600160401b0316421015613e135760405162461bcd60e51b815260206004820152602760248201527f417574686f72697a6174696f6e2064656372656173652064656c6179206e6f74604482015266081c185cdcd95960ca1b6064820152608401610a77565b6040516001600160a01b038316907f50270a522c2fef97b6b7385c2aa4a4518adda681530e0a1fe9f5e840f6f2cd9d90600090a2604051633af0572d60e11b81526001600160a01b0383811660048301528416906375e0ae5a906024016020604051808303816000875af1158015613e8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613eb391906154f1565b50506001600160a01b031660009081526003909201602052506040902080546001600160a01b0319169055565b60006001613eed83614a34565b6003811115613efe57613efe61518b565b1480156110b25750600282015460078301546138e491906157bd565b60408114613f6a5760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206c656e677468206f6620746865207075626c6963206b65796044820152606401610a77565b60008282604051613f7c929190615d3d565b6040805191829003909120600081815260208790529190912060010154909150156140015760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420776974682074686520676976656e207075626c6963206b657960448201526e20616c72656164792065786973747360881b6064820152608401610a77565b60006140106020828587615d4d565b61401991615d77565b905080610e725760405162461bcd60e51b815260206004820152602260248201527f57616c6c6574207075626c6963206b6579206d757374206265206e6f6e2d7a65604482015261726f60f01b6064820152608401610a77565b600261407e83614a34565b600381111561408f5761408f61518b565b146140e85760405162461bcd60e51b8152602060048201526024808201527f43757272656e74207374617465206973206e6f74204157414954494e475f524560448201526314d5531560e21b6064820152608401610a77565b6140f18261389b565b1561413e5760405162461bcd60e51b815260206004820152601a60248201527f444b472074696d656f757420616c7265616479207061737365640000000000006044820152606401610a77565b81546040516307b8c36760e51b81523360048201526001600160a01b0390911690819063f7186ce090602401602060405180830381865afa158015614187573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ab9190615b3c565b6142035760405162461bcd60e51b815260206004820152602360248201527f5375626d6974746572206e6f7420696e2074686520736f72746974696f6e20706044820152621bdbdb60ea1b6064820152608401610a77565b336001600160a01b038216638871ca5d61422060a0860186615c70565b61422c600188356157f2565b81811061423b5761423b6153c5565b90506020020160208101906142509190615b1f565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa158015614292573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142b69190615392565b6001600160a01b03161461430c5760405162461bcd60e51b815260206004820152601a60248201527f556e6578706563746564207375626d697474657220696e6465780000000000006044820152606401610a77565b8160405160200161431d9190615794565b60408051601f19818403018152908290528051602090910120600b850181905543600c8601556009850154917f8e7fd4293d7db11807147d8890c287fad3396fbb09a4e92273fc7856076c153a90614376908690615794565b60405180910390a3505050565b6001600160a01b03811660009081526003840160205260408120546143b6908590859085906001600160601b0316614da2565b949350505050565b60006143c983614a34565b60038111156143da576143da61518b565b146143f75760405162461bcd60e51b8152600401610a7790615dd5565b600081116144175760405162461bcd60e51b8152600401610a7790615e0c565b600290910155565b600061442a83614a34565b600381111561443b5761443b61518b565b146144585760405162461bcd60e51b8152600401610a7790615dd5565b600081116144785760405162461bcd60e51b8152600401610a7790615e0c565b600390910155565b600061448b83614a34565b600381111561449c5761449c61518b565b146144b95760405162461bcd60e51b8152600401610a7790615dd5565b600490910155565b60006144cc83614a34565b60038111156144dd576144dd61518b565b146144fa5760405162461bcd60e51b8152600401610a7790615dd5565b6000811161451a5760405162461bcd60e51b8152600401610a7790615e0c565b600590910155565b600061452d83614a34565b600381111561453e5761453e61518b565b1461455b5760405162461bcd60e51b8152600401610a7790615dd5565b600582015481106145d45760405162461bcd60e51b815260206004820152603d60248201527f4e65772076616c75652073686f756c64206265206c657373207468616e20726560448201527f73756c74207375626d697373696f6e20706572696f64206c656e6774680000006064820152608401610a77565b600690910155565b600081815260208390526040812060010154819061460c5760405162461bcd60e51b8152600401610a7790615cb9565b505060009081526020919091526040902060018101546002909101549091565b60008181526020839052604081206001015461465a5760405162461bcd60e51b8152600401610a7790615cb9565b506000908152602091909152604090205490565b6001600160a01b03811660009081526003830160205260408120805467fffffffffffffffe19600160601b9091046001600160401b0316016146ba576001600160401b039150506110b2565b805442906001600160401b03600160601b9091048116908216116146fa5781546146f5908290600160601b90046001600160401b0316615db5565b6146fd565b60005b95945050505050565b81546001600160401b03909116600160601b0267ffffffffffffffff60601b19909116179055565b81546001600160401b03909116600160a01b0267ffffffffffffffff60a01b19909116179055565b61475f81613ee0565b6147ab5760405162461bcd60e51b815260206004820152601f60248201527f4177616974696e67207365656420686173206e6f742074696d6564206f7574006044820152606401610a77565b6040517f68c52f05452e81639fa06f379aee3178cddee4725521fff886f244c99e868b5090600090a1610b6f81613837565b60606000806147ec85856145dc565b604080516020810193909352828101919091528051808303820181526060909201905295945050505050565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce8091016114d6565b82546001600160a01b0316156148d55760405162461bcd60e51b815260206004820152602260248201527f536f72746974696f6e20506f6f6c206164647265737320616c72656164792073604482015261195d60f21b6064820152608401610a77565b60018301546001600160a01b03161561493a5760405162461bcd60e51b815260206004820152602160248201527f444b472056616c696461746f72206164647265737320616c72656164792073656044820152601d60fa1b6064820152608401610a77565b82546001600160a01b03199081166001600160a01b03938416178455600190930180549093169116179055565b83546001600160601b0390811690821610156149c55760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610a77565b6001600160a01b0383811660008181526001870160209081526040918290205482516001600160601b03888116825287169281019290925282519416938493927f87f9f9f59204f53d57a89a817c6083a17979cd0531791c91e18551a56e3cfdd7928290030190a35050505050565b805460408051632938b58d60e21b815290516000926001600160a01b03169163a4e2d6349160048083019260209291908290030181865afa158015614a7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614aa19190615b3c565b15614ac65750600881015460019015614ac65750600c81015460029015614ac6575060035b919050565b614ad48161389b565b614b185760405162461bcd60e51b81526020600482015260156024820152741112d1c81a185cc81b9bdd081d1a5b5959081bdd5d605a1b6044820152606401610a77565b6040517f2852b3e178dd281713b041c3d90b4815bb55b7ec812931d1e8e8d8bb2ed72d3e90600090a1610b6f81613837565b6001600160a01b03808216600090815260028601602052604081205490911680614b865760405162461bcd60e51b8152600401610a7790615485565b6001600160a01b038116600090815260038701602052604081208054909190614bbd908990899086906001600160601b0316614da2565b6040516307b8c36760e51b81526001600160a01b0387811660048301529192509087169063f7186ce090602401602060405180830381865afa158015614c07573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c2b9190615b3c565b614c43576001600160601b03161592506143b6915050565b6040516304de824f60e41b81526001600160a01b03871690634de824f090614c719088908590600401615b59565b602060405180830381865afa158015614c8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614cb29190615b3c565b98975050505050505050565b600060606000846008015411614d165760405162461bcd60e51b815260206004820152601860248201527f444b4720686173206e6f74206265656e207374617274656400000000000000006044820152606401610a77565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92614d52928892600401615ba2565b600060405180830381865afa158015614d6f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614d979190810190615bc7565b915091509250929050565b604051637004922d60e11b81526001600160a01b038381166004830152306024830152600091829186169063e009245a90604401602060405180830381865afa158015614df3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e1791906154f1565b90506000836001600160601b0316826001600160601b031611614e3b576000614e45565b614e458483615d95565b87549091506001600160601b039081169082161015614e69576000925050506143b6565b91506143b69050565b6001600160a01b0381168114610b6f57600080fd5b6001600160601b0381168114610b6f57600080fd5b600080600060608486031215614eb157600080fd5b8335614ebc81614e72565b92506020840135614ecc81614e87565b91506040840135614edc81614e87565b809150509250925092565b600060208284031215614ef957600080fd5b81356127d581614e72565b600060208284031215614f1657600080fd5b81356127d581614e87565b600060208284031215614f3357600080fd5b81356001600160401b03811115614f4957600080fd5b820160e081850312156127d557600080fd5b600060208284031215614f6d57600080fd5b5035919050565b60008060408385031215614f8757600080fd5b50508035926020909101359150565b600080600080600060a08688031215614fae57600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008083601f840112614fe357600080fd5b5081356001600160401b03811115614ffa57600080fd5b6020830191508360208260051b850101111561308a57600080fd5b6000806000806060858703121561502b57600080fd5b84356001600160401b038082111561504257600080fd5b9086019060a0828903121561505657600080fd5b909450602086013593506040860135908082111561507357600080fd5b5061508087828801614fd1565b95989497509550505050565b80356001600160401b0381168114614ac657600080fd5b6000806000606084860312156150b857600080fd5b83356150c381614e87565b92506150d16020850161508c565b91506150df6040850161508c565b90509250925092565b60005b838110156151035781810151838201526020016150eb565b50506000910152565b600081518084526151248160208601602086016150e8565b601f01601f19169290920160200192915050565b6020815260006127d5602083018461510c565b60008060006060848603121561516057600080fd5b833561516b81614e72565b9250602084013561517b81614e72565b91506040840135614edc81614e72565b634e487b7160e01b600052602160045260246000fd5b60208101600483106151c357634e487b7160e01b600052602160045260246000fd5b91905290565b60008060008060008060a087890312156151e257600080fd5b86356151ed81614e87565b955060208701359450604087013561520481614e72565b93506060870135925060808701356001600160401b0381111561522657600080fd5b61523289828a01614fd1565b979a9699509497509295939492505050565b60008060008060006080868803121561525c57600080fd5b8535945060208601356001600160401b0381111561527957600080fd5b61528588828901614fd1565b909550935050604086013561529981614e72565b949793965091946060013592915050565b600081518084526020808501945080840160005b838110156152e057815163ffffffff16875295820195908201906001016152be565b509495945050505050565b6020815260006127d560208301846152aa565b82151581526040602082015260006143b6604083018461510c565b60208082526022908201527f43616c6c6572206973206e6f7420746865207374616b696e6720636f6e74726160408201526118dd60f21b606082015260800190565b6020808252601c908201527f43616c6c6572206973206e6f742074686520676f7665726e616e636500000000604082015260600190565b6000602082840312156153a457600080fd5b81516127d581614e72565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160601b038516815260208082018590526001600160a01b038481166040840152608060608401819052845190840181905260009285810192909160a0860190855b8181101561543e578551841683529484019491840191600101615420565b50909a9950505050505050505050565b6020808252601e908201527f43616c6c6572206973206e6f74207468652057616c6c6574204f776e65720000604082015260600190565b60208082526010908201526f2ab735b737bbb71037b832b930ba37b960811b604082015260600190565b6000806000606084860312156154c457600080fd5b83516154cf81614e72565b60208501519093506154e081614e72565b6040850151909250614edc81614e72565b60006020828403121561550357600080fd5b81516127d581614e87565b6000808335601e1984360301811261552557600080fd5b8301803591506001600160401b0382111561553f57600080fd5b60200191503681900382131561308a57600080fd5b6000808335601e1984360301811261556b57600080fd5b83016020810192503590506001600160401b0381111561558a57600080fd5b80360382131561308a57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126155d957600080fd5b83016020810192503590506001600160401b038111156155f857600080fd5b8060051b360382131561308a57600080fd5b803560ff81168114614ac657600080fd5b81835260006001600160fb1b0383111561563457600080fd5b8260051b80836020870137939093016020019392505050565b63ffffffff81168114610b6f57600080fd5b8183526000602080850194508260005b858110156152e05781356156828161564d565b63ffffffff168752958201959082019060010161566f565b80358252600060206156ae81840184615554565b60e0838701526156c260e087018284615599565b9150506156d260408501856155c2565b868303604088015280835290916000919084015b8183101561570e5760ff6156f98561560a565b168152928401926001929092019184016156e6565b61571b6060880188615554565b955093508781036060890152615732818686615599565b94505050505061574560808401846155c2565b858303608087015261575883828461561b565b9250505061576960a08401846155c2565b85830360a087015261577c83828461565f565b9250505060c083013560c08501528091505092915050565b6020815260006127d5602083018461569a565b634e487b7160e01b600052601160045260246000fd5b808201808211156110b2576110b26157a7565b6040815260006157e360408301856152aa565b90508260208301529392505050565b818103818111156110b2576110b26157a7565b6020815260006143b660208301848661565f565b8015158114610b6f57600080fd5b60018060a01b038716815260a06020820152853560a0820152600061584f60208801886155c2565b60a060c08501526158656101408501828461561b565b915050604088013561587681615819565b151560e084015261588a6060890189615554565b609f1980868503016101008701526158a3848385615599565b93506158b260808c018c6155c2565b935091508086850301610120870152506158cd83838361561b565b9250505082810360408401526158e3818861510c565b905085606084015282810360808401526158fe81858761565f565b9998505050505050505050565b604051601f8201601f191681016001600160401b0381118282101715615933576159336153af565b604052919050565b60006001600160401b03821115615954576159546153af565b5060051b60200190565b6000602080838503121561597157600080fd5b82516001600160401b0381111561598757600080fd5b8301601f8101851361599857600080fd5b80516159ab6159a68261593b565b61590b565b81815260059190911b820183019083810190878311156159ca57600080fd5b928401925b828410156159f15783516159e28161564d565b825292840192908401906159cf565b979650505050505050565b600060018201615a0e57615a0e6157a7565b5060010190565b600060208284031215615a2757600080fd5b81356127d581615819565b60208082526022908201527f496e76616c69642077616c6c6574206d656d62657273206964656e7469666965604082015261727360f01b606082015260800190565b60006020808385031215615a8757600080fd5b82516001600160401b03811115615a9d57600080fd5b8301601f81018513615aae57600080fd5b8051615abc6159a68261593b565b81815260059190911b82018301908381019087831115615adb57600080fd5b928401925b828410156159f1578351615af381614e72565b82529284019290840190615ae0565b600060208284031215615b1457600080fd5b81516127d58161564d565b600060208284031215615b3157600080fd5b81356127d58161564d565b600060208284031215615b4e57600080fd5b81516127d581615819565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160401b03818116838216019080821115615b9b57615b9b6157a7565b5092915050565b606081526000615bb5606083018661569a565b60208301949094525060400152919050565b60008060408385031215615bda57600080fd5b8251615be581615819565b60208401519092506001600160401b0380821115615c0257600080fd5b818501915085601f830112615c1657600080fd5b815181811115615c2857615c286153af565b615c3b601f8201601f191660200161590b565b9150808252866020828501011115615c5257600080fd5b615c638160208401602086016150e8565b5080925050509250929050565b6000808335601e19843603018112615c8757600080fd5b8301803591506001600160401b03821115615ca157600080fd5b6020019150600581901b360382131561308a57600080fd5b60208082526030908201527f57616c6c657420776974682074686520676976656e20494420686173206e6f7460408201526f081899595b881c9959da5cdd195c995960821b606082015260800190565b600060208284031215615d1b57600080fd5b6127d58261560a565b60ff82811682821603908111156110b2576110b26157a7565b8183823760009101908152919050565b60008085851115615d5d57600080fd5b83861115615d6a57600080fd5b5050820193919092039150565b803560208310156110b257600019602084900360031b1b1692915050565b6001600160601b03828116828216039080821115615b9b57615b9b6157a7565b6001600160401b03828116828216039080821115615b9b57615b9b6157a7565b60208082526019908201527f43757272656e74207374617465206973206e6f742049444c4500000000000000604082015260600190565b60208082526025908201527f4e65772076616c75652073686f756c642062652067726561746572207468616e604082015264207a65726f60d81b60608201526080019056fea26469706673582212200acc8d3a35eb7f0c278ea02b100d1e16170230c6f24d81b24748e6e288278b6b64736f6c63430008110033";
|
|
1932
1932
|
var isSuperArgs = function (xs) {
|
|
1933
1933
|
return (typeof xs[0] === "string" ||
|
|
1934
1934
|
Array.isArray(xs[0]) ||
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keep-network/tbtc-v2",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.0-dev.0+main.60c336f22a73a367bc70c4b00a3e133a23e1850b",
|
|
4
4
|
"license": "GPL-3.0-only",
|
|
5
5
|
"files": [
|
|
6
6
|
"artifacts/",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
33
|
"@keep-network/bitcoin-spv-sol": "3.4.0-solc-0.8",
|
|
34
|
-
"@keep-network/ecdsa": "2.0.
|
|
35
|
-
"@keep-network/random-beacon": "2.0.
|
|
36
|
-
"@keep-network/tbtc": "1.1.
|
|
34
|
+
"@keep-network/ecdsa": "2.1.0-dev.19",
|
|
35
|
+
"@keep-network/random-beacon": "2.1.0-dev.18",
|
|
36
|
+
"@keep-network/tbtc": "1.1.2-dev.1",
|
|
37
37
|
"@openzeppelin/contracts": "^4.8.1",
|
|
38
38
|
"@openzeppelin/contracts-upgradeable": "^4.8.1",
|
|
39
39
|
"@thesis/solidity-contracts": "github:thesis/solidity-contracts#4985bcf"
|
|
@@ -76,4 +76,4 @@
|
|
|
76
76
|
"engines": {
|
|
77
77
|
"node": ">= 14.0.0"
|
|
78
78
|
}
|
|
79
|
-
}
|
|
79
|
+
}
|