h-agent-swap 1.3.0 → 1.3.2
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/package.json +1 -1
- package/src/abi/TokenMarket.json +101 -2
- package/src/agent-swap.js +3 -2
package/package.json
CHANGED
package/src/abi/TokenMarket.json
CHANGED
|
@@ -370,6 +370,40 @@
|
|
|
370
370
|
"stateMutability": "view",
|
|
371
371
|
"type": "function"
|
|
372
372
|
},
|
|
373
|
+
{
|
|
374
|
+
"inputs": [
|
|
375
|
+
{
|
|
376
|
+
"internalType": "uint256",
|
|
377
|
+
"name": "",
|
|
378
|
+
"type": "uint256"
|
|
379
|
+
}
|
|
380
|
+
],
|
|
381
|
+
"name": "history",
|
|
382
|
+
"outputs": [
|
|
383
|
+
{
|
|
384
|
+
"internalType": "uint256",
|
|
385
|
+
"name": "open",
|
|
386
|
+
"type": "uint256"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"internalType": "uint256",
|
|
390
|
+
"name": "close",
|
|
391
|
+
"type": "uint256"
|
|
392
|
+
},
|
|
393
|
+
{
|
|
394
|
+
"internalType": "int256",
|
|
395
|
+
"name": "feeRate",
|
|
396
|
+
"type": "int256"
|
|
397
|
+
},
|
|
398
|
+
{
|
|
399
|
+
"internalType": "int256",
|
|
400
|
+
"name": "reward",
|
|
401
|
+
"type": "int256"
|
|
402
|
+
}
|
|
403
|
+
],
|
|
404
|
+
"stateMutability": "view",
|
|
405
|
+
"type": "function"
|
|
406
|
+
},
|
|
373
407
|
{
|
|
374
408
|
"inputs": [
|
|
375
409
|
{
|
|
@@ -598,6 +632,35 @@
|
|
|
598
632
|
"stateMutability": "view",
|
|
599
633
|
"type": "function"
|
|
600
634
|
},
|
|
635
|
+
{
|
|
636
|
+
"inputs": [
|
|
637
|
+
{
|
|
638
|
+
"internalType": "address",
|
|
639
|
+
"name": "inToken",
|
|
640
|
+
"type": "address"
|
|
641
|
+
},
|
|
642
|
+
{
|
|
643
|
+
"internalType": "address",
|
|
644
|
+
"name": "outToken",
|
|
645
|
+
"type": "address"
|
|
646
|
+
}
|
|
647
|
+
],
|
|
648
|
+
"name": "rateAmount",
|
|
649
|
+
"outputs": [
|
|
650
|
+
{
|
|
651
|
+
"internalType": "int256",
|
|
652
|
+
"name": "feeRate",
|
|
653
|
+
"type": "int256"
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"internalType": "int256",
|
|
657
|
+
"name": "reward",
|
|
658
|
+
"type": "int256"
|
|
659
|
+
}
|
|
660
|
+
],
|
|
661
|
+
"stateMutability": "view",
|
|
662
|
+
"type": "function"
|
|
663
|
+
},
|
|
601
664
|
{
|
|
602
665
|
"inputs": [],
|
|
603
666
|
"name": "renounceOwnership",
|
|
@@ -742,6 +805,19 @@
|
|
|
742
805
|
"stateMutability": "view",
|
|
743
806
|
"type": "function"
|
|
744
807
|
},
|
|
808
|
+
{
|
|
809
|
+
"inputs": [],
|
|
810
|
+
"name": "space",
|
|
811
|
+
"outputs": [
|
|
812
|
+
{
|
|
813
|
+
"internalType": "uint256",
|
|
814
|
+
"name": "",
|
|
815
|
+
"type": "uint256"
|
|
816
|
+
}
|
|
817
|
+
],
|
|
818
|
+
"stateMutability": "view",
|
|
819
|
+
"type": "function"
|
|
820
|
+
},
|
|
745
821
|
{
|
|
746
822
|
"inputs": [
|
|
747
823
|
{
|
|
@@ -809,6 +885,11 @@
|
|
|
809
885
|
"internalType": "uint256",
|
|
810
886
|
"name": "backBuy",
|
|
811
887
|
"type": "uint256"
|
|
888
|
+
},
|
|
889
|
+
{
|
|
890
|
+
"internalType": "address",
|
|
891
|
+
"name": "pricing",
|
|
892
|
+
"type": "address"
|
|
812
893
|
}
|
|
813
894
|
],
|
|
814
895
|
"stateMutability": "view",
|
|
@@ -974,6 +1055,11 @@
|
|
|
974
1055
|
"internalType": "uint256",
|
|
975
1056
|
"name": "backBuy",
|
|
976
1057
|
"type": "uint256"
|
|
1058
|
+
},
|
|
1059
|
+
{
|
|
1060
|
+
"internalType": "address",
|
|
1061
|
+
"name": "pricing",
|
|
1062
|
+
"type": "address"
|
|
977
1063
|
}
|
|
978
1064
|
],
|
|
979
1065
|
"internalType": "struct TokenMarket.TaxConfig",
|
|
@@ -986,6 +1072,19 @@
|
|
|
986
1072
|
"stateMutability": "nonpayable",
|
|
987
1073
|
"type": "function"
|
|
988
1074
|
},
|
|
1075
|
+
{
|
|
1076
|
+
"inputs": [
|
|
1077
|
+
{
|
|
1078
|
+
"internalType": "uint256",
|
|
1079
|
+
"name": "_space",
|
|
1080
|
+
"type": "uint256"
|
|
1081
|
+
}
|
|
1082
|
+
],
|
|
1083
|
+
"name": "updateSpace",
|
|
1084
|
+
"outputs": [],
|
|
1085
|
+
"stateMutability": "nonpayable",
|
|
1086
|
+
"type": "function"
|
|
1087
|
+
},
|
|
989
1088
|
{
|
|
990
1089
|
"inputs": [
|
|
991
1090
|
{
|
|
@@ -1050,8 +1149,8 @@
|
|
|
1050
1149
|
"type": "receive"
|
|
1051
1150
|
}
|
|
1052
1151
|
],
|
|
1053
|
-
"bytecode": "0x60806040526305f5e1006009553480156200001957600080fd5b5060405162005016380380620050168339810160408190526200003c91620001ef565b620000473362000079565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007181620000c9565b50506200024c565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166200012f5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840160405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000189573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001af919062000227565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b80516001600160a01b0381168114620001ea57600080fd5b919050565b600080604083850312156200020357600080fd5b6200020e83620001d2565b91506200021e60208401620001d2565b90509250929050565b6000602082840312156200023a57600080fd5b6200024582620001d2565b9392505050565b614dba806200025c6000396000f3fe6080604052600436106101825760003560e01c80635ff530f2116100d5578063853c074c11610084578063aa5d448f11610061578063aa5d448f146105b9578063d96661ef146105d9578063f2fde38b146105f9578063fe8691b41461061957005b8063853c074c146105685780638da5cb5b14610588578063a6a3694a146105a657005b8063715018a6116100b2578063715018a614610504578063744cfdd91461051957806381f3fdc31461053957005b80635ff530f21461049357806362a76603146104b35780636f151a38146104e457005b8063238ac9331161013157806334e3f92d1161010e57806334e3f92d146104085780633fc8cef3146104535780635c8181211461047357005b8063238ac933146102b75780632926e5de146102ef5780632bd2c18d146103e857005b80630fcc40c41161015f5780630fcc40c41461024a5780631b153401146102775780631f8c24de1461029757005b8063016eb8a81461018b578063089afeae146101be5780630d83b1e41461023457005b3661018957005b005b34801561019757600080fd5b506101ab6101a6366004613f6a565b61066d565b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b5061020f6101d9366004613fb1565b60086020908152600092835260408084209091529082529020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b0390941684526020840192909252908201526060016101b5565b34801561024057600080fd5b506101ab60095481565b34801561025657600080fd5b5061026a61026536600461410c565b61068e565b6040516101b5919061418d565b34801561028357600080fd5b506101896102923660046141a0565b61075e565b3480156102a357600080fd5b506101896102b2366004614251565b610819565b3480156102c357600080fd5b506002546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016101b5565b3480156102fb57600080fd5b5061037e61030a366004613fb1565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101b5565b3480156103f457600080fd5b506101ab6104033660046142be565b610899565b34801561041457600080fd5b50610443610423366004614315565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101b5565b34801561045f57600080fd5b506004546102d7906001600160a01b031681565b34801561047f57600080fd5b506101ab61048e366004614358565b6108ee565b34801561049f57600080fd5b506101ab6104ae366004614391565b610936565b3480156104bf57600080fd5b506104d36104ce3660046143d8565b610a7a565b6040516101b59594939291906144ea565b3480156104f057600080fd5b506101896104ff36600461451f565b610b42565b34801561051057600080fd5b50610189610ba8565b34801561052557600080fd5b506101ab610534366004614391565b610c0e565b34801561054557600080fd5b5061055961055436600461453c565b610d38565b6040516101b59392919061459e565b34801561057457600080fd5b50610189610583366004614625565b611108565b34801561059457600080fd5b506000546001600160a01b03166102d7565b6101896105b4366004614740565b611326565b3480156105c557600080fd5b506101896105d436600461451f565b611662565b3480156105e557600080fd5b506005546102d7906001600160a01b031681565b34801561060557600080fd5b5061018961061436600461451f565b6116c5565b34801561062557600080fd5b50610658610634366004613fb1565b60066020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016101b5565b6009546000906106879061068185856117a4565b906117b6565b9392505050565b805160609060008167ffffffffffffffff8111156106ae576106ae613fea565b6040519080825280602002602001820160405280156106d7578160200160208202803683370190505b5090506000825b6001811061075457856106f26001836147d4565b81518110610702576107026147eb565b602002602001015183838151811061071c5761071c6147eb565b6001600160a01b03909216602092830291909101909101528161073e8161481a565b925050808061074c90614834565b9150506106de565b5090949350505050565b6000546001600160a01b031633146107bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6107c88383836117c2565b6108145760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016107b4565b505050565b6108216117f9565b61082e8585858585611852565b61083a85858584611a3e565b8142106108895760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016107b4565b61089260018055565b5050505050565b600080808481036108c6576108ae8787610936565b91506108bc848360006108ee565b91508192506108e4565b6108d08787610c0e565b90506108de848260016108ee565b90508092505b5050949350505050565b60006001821561090c576009546109059086611aad565b905061091c565b6009546109199086611ab9565b90505b60095461092d9061068186846117a4565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610986908790879060040161484b565b600060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cb9190810190614864565b9050806109e360018351611ab990919063ffffffff16565b815181106109f3576109f36147eb565b6020026020010151915060008211610a735760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016107b4565b5092915050565b610af060405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610b058c8c8c8c611ac5565b92995090945092509050610b1b8c8c8b86611ea9565b9850610b2b8c8c8b8b8686611ef3565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610b9c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610ba581612184565b50565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610c0c6000612239565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610c5e908790879060040161484b565b600060405180830381865afa158015610c7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca39190810190614864565b905080600081518110610cb857610cb86147eb565b6020026020010151915060008211610a735760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016107b4565b610dae60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece91906148f5565b60ff169150610ee7610ee183600a6149fc565b85610936565b90506000808285608001511115610f39576101208501516080860151600954610f1086836147d4565b610f1a9190614a08565b610f249190614a27565b610f2e9190614a27565b905060009150610f82565b8460800151831115610f82576101208501516080860151600954610f5d82876147d4565b610f679190614a08565b610f719190614a27565b610f7b9190614a27565b9050600191505b60008113156110fd576080850183905261014085015161016086015183610fba57610fac82614a62565b9150610fb781614a62565b90505b60008212610ffd576020870151610fd18484614a9a565b610fdb9190614b56565b6020880181905260c08801511215610ff85760c087015160208801525b611059565b86602001518760a0015184611011856122a1565b61101b9190614a9a565b6110259190614b56565b131561103a5760a08701516020880152611059565b60208701516110498484614a9a565b6110539190614b56565b60208801525b6000811261109e5760608701516110708483614a9a565b61107a9190614b56565b6060880181905261010088015112156110995761010087015160608801525b6110fa565b86606001518760e00151846110b2846122a1565b6110bc9190614a9a565b6110c69190614b56565b13156110db5760e087015160608801526110fa565b60608701516110ea8483614a9a565b6110f49190614b56565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146111625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b6000826060015112156111b75760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016107b4565b60008260200151121561120c5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016107b4565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f169285169290921790915560608b0151600385015560808b0151600485015560a08b0151600585015560c08b0151600685015560e08b0151968401969096556101008a01516008808501919091556101208b015160098501556101408b0151600a850155610160909a0151600b9093019290925595855296825280842097845296815291869020845181549816979093169690961782558201519281019290925590910151910155565b61132e6117f9565b33321461137d5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016107b4565b333b156113f15760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016107b4565b82600003611418576114038587610936565b9350611411818560006108ee565b9350611433565b6114228487610c0e565b9450611430818660016108ee565b94505b600086600081518110611448576114486147eb565b602002602001015190506000876001895161146391906147d4565b81518110611473576114736147eb565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916114b7908490614bca565b92505081905550600060405180604001604052806114d4856122bd565b8152602001846001600160a01b03168152509050600060405180604001604052806114fe856122bd565b81526001600160a01b038516602090910152825190915060030361152d576115288433308c6122f6565b6115a2565b8834146115a25760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016107b4565b6115ad84848c612466565b50506115be82828b8b8e8c8c6126f7565b60006115cb85858b6129a0565b90506000806115dc87878f8e612adc565b604080513381526001600160a01b03808c1660208301528a1691810191909152606081018f90526080810186905260a0810183905260c0810182905291935091507f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49060e00160405180910390a15050505050505061165a60018055565b505050505050565b6000546001600160a01b031633146116bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610ba581612d31565b6000546001600160a01b0316331461171f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b6001600160a01b03811661179b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107b4565b610ba581612239565b60006106878284614a08565b92915050565b60006106878284614a27565b60006001600160a01b0384166117e4576117dc8383612e96565b506001610687565b6117ef848484612faf565b5060019392505050565b60026001540361184b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107b4565b6002600155565b6003816040516118629190614c12565b9081526040519081900360200190205460ff16156118c25760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016107b4565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906119869083613117565b6002549091506001600160a01b038083169116146119e65760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016107b4565b60016003836040516119f89190614c12565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611a5b57611a563383612e96565b611a66565b611a66833384612faf565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611a9f96959493929190614c2e565b60405180910390a150505050565b60006106878284614bca565b600061068782846147d4565b611b3b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5d91906148f5565b60ff169150611c76611c7083600a6149fc565b87610936565b90506000808286608001511115611cc8576101208601516080870151600954611c9f86836147d4565b611ca99190614a08565b611cb39190614a27565b611cbd9190614a27565b905060009150611d11565b8560800151831115611d11576101208601516080870151600954611cec82876147d4565b611cf69190614a08565b611d009190614a27565b611d0a9190614a27565b9050600191505b6000811315611e8c576080860183905261014086015161016087015183611d4957611d3b82614a62565b9150611d4681614a62565b90505b60008212611d8c576020880151611d608484614a9a565b611d6a9190614b56565b6020890181905260c08901511215611d875760c088015160208901525b611de8565b87602001518860a0015184611da0856122a1565b611daa9190614a9a565b611db49190614b56565b1315611dc95760a08801516020890152611de8565b6020880151611dd88484614a9a565b611de29190614b56565b60208901525b60008112611e2d576060880151611dff8483614a9a565b611e099190614b56565b606089018190526101008901511215611e285761010088015160608901525b611e89565b87606001518860e0015184611e41846122a1565b611e4b9190614a9a565b611e559190614b56565b1315611e6a5760e08801516060890152611e89565b6060880151611e798483614a9a565b611e839190614b56565b60608901525b50505b611e9a87876020015161066d565b94505050945094509450949050565b6001600160a01b03808516600090815260086020908152604080832093871683529290529081206002015461092d90611ee390859061066d565b611eed8585611ab9565b90611ab9565b6001600160a01b038681166000908152600860209081526040808320898516808552908352818420825160608101845281548716815260018083015482870152600290920154818501529589168552600684528285209185529252822090810154905491928392839211611f7657611f6f88826020015161066d565b935061216b565b6001600160a01b038781166000908152600660209081526040808320938d1683529290522060018101549054611fad908a90614bca565b10612002576001600160a01b038781166000908152600660209081526040808320938d1683529290522060018101549054611f6f9190611fee908b90614bca565b611ff891906147d4565b826020015161066d565b600061200f87600a6149fc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa158015612071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120959190614c91565b61209f9190614a08565b6120a99190614a27565b6001600160a01b038981166000908152600660209081526040808320938f16835292905220600181015490549192509082906120e6908c90614bca565b6120f09190614bca565b1015612169576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612129908b90614bca565b6121339190614bca565b6001600160a01b03808a166000908152600660209081526040808320938f168352929052206001015461216691906147d4565b93505b505b6121758885611ab9565b91505096509650969350505050565b6001600160a01b0381166121ff5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156122b9576122b482614a62565b6117b0565b5090565b600060036001600160a01b0383166122d7575060016117b0565b6004546001600160a01b03908116908416036117b05750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916123889190614c12565b6000604051808303816000865af19150503d80600081146123c5576040519150601f19603f3d011682016040523d82523d6000602084013e6123ca565b606091505b50915091508180156123f45750805115806123f45750808060200190518101906123f49190614caa565b61165a5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016107b4565b6001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce56700000000000000000000000000000000000000000000000000000000815290519395869590948694919363313ce5679380840193919291908290030181865afa158015612565573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258991906148f5565b60ff169050600061259e611c7083600a6149fc565b90506000836101200151116125f55760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016107b4565b60008360800151116126495760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e7072696365203e203000000060448201526064016107b4565b808360800151111561269657610120830151608084015160095461266d84836147d4565b6126779190614a08565b6126819190614a27565b61268b9190614a27565b9450600093506126df565b82608001518111156126df5761012083015160808401516009546126ba82856147d4565b6126c49190614a08565b6126ce9190614a27565b6126d89190614a27565b9450600193505b6126ec888883888861313b565b505050935093915050565b865160030361271c57602087015160055461271c91906001600160a01b0316876134e1565b8651600314801561272e575085516003145b8015612738575081155b156127db576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061278e9088908890889030908890600401614cc7565b6000604051808303816000875af11580156127ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127d59190810190614864565b50612997565b865160031480156127ed575085516003145b80156127f95750816001145b1561284f576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061278e9087908990889030908890600401614cc7565b8651600314801561286c575085516002148061286c575085516001145b80156128785750816001145b156128ce576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061278e9087908990889030908890600401614cc7565b8651600214806128df575086516001145b80156128ec575085516003145b80156128f85750816001145b15612997576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb4190879061294e908890889030908890600401614d03565b60006040518083038185885af115801561296c573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526129959190810190614864565b505b50505050505050565b6001600160a01b0380841660009081526007602081815260408084208786168552825280842081516101808101835281548716815260018201549381018490526002820154909616918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601529182015460e085015260088201546101008501526009820154610120850152600a820154610140850152600b90910154610160840152909190612a5b90849061066d565b915060006040518060400160405280612a73876122bd565b81526001600160a01b0387166020909101528051909150600303612ab65781516001600160a01b03163014612ab157612ab185836000015185612faf565b612ad3565b81516001600160a01b03163014612ad3578151612ad39084613649565b50509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160608101835281549095168552600181015492850192909252600290910154908301529081908180612b388989898961372c565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612b8457612b7d86846020015161066d565b9450612cbf565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612bb9908890614bca565b10612c0c573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612b7d9190612bf8908990614bca565b612c0291906147d4565b846020015161066d565b6000612c1982600a6149fc565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9c9190614c91565b612ca69190614a08565b612cb09190614a27565b9050612cbd898883613aad565b505b612cc98686611ab9565b93508415612ce057612ce088846000015187612faf565b612ceb883386612faf565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612d1e908490614bca565b9250508190555050505094509492505050565b6001600160a01b038116612dad5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa158015612e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5b9190614d38565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b80471015612ee65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107b4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f33576040519150601f19603f3d011682016040523d82523d6000602084013e612f38565b606091505b50509050806108145760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107b4565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916130399190614c12565b6000604051808303816000865af19150503d8060008114613076576040519150601f19603f3d011682016040523d82523d6000602084013e61307b565b606091505b50915091508180156130a55750805115806130a55750808060200190518101906130a59190614caa565b6108925760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016107b4565b60008060006131268585613c16565b9150915061313381613c5b565b509392505050565b6000821315610892576001600160a01b03858116600090815260076020908152604080832093881683529290522060048101849055600a810154600b90910154826131975761318982614a62565b915061319481614a62565b90505b60008212613248576001600160a01b038088166000908152600760209081526040808320938a16835292905220600101546131d28584614a9a565b6131dc9190614b56565b6001600160a01b038881166000908152600760209081526040808320938b1683529290522060018101829055600601541215613243576001600160a01b038781166000908152600760209081526040808320938a1683529290522060068101546001909101555b613338565b6001600160a01b038781166000908152600760209081526040808320938a16835292905220600181015460059091015485613282856122a1565b61328c9190614a9a565b6132969190614b56565b13156132d1576001600160a01b038781166000908152600760209081526040808320938a168352929052206005810154600190910155613338565b6001600160a01b038088166000908152600760209081526040808320938a16835292905220600101546133048584614a9a565b61330e9190614b56565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101555b600081126133e9576001600160a01b038088166000908152600760209081526040808320938a16835292905220600301546133738583614a9a565b61337d9190614b56565b6001600160a01b038881166000908152600760209081526040808320938b16835292905220600381018290556008015412156133e4576001600160a01b038781166000908152600760209081526040808320938a1683529290522060088101546003909101555b612997565b6001600160a01b038781166000908152600760208181526040808420948b168452939052919020600381015491015485613422846122a1565b61342c9190614a9a565b6134369190614b56565b1315613472576001600160a01b038781166000908152600760208181526040808420948b16845293905291902090810154600390910155612997565b6001600160a01b038088166000908152600760209081526040808320938a16835292905220600301546134a58583614a9a565b6134af9190614b56565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015550505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161356b9190614c12565b6000604051808303816000865af19150503d80600081146135a8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ad565b606091505b50915091508180156135d75750805115806135d75750808060200190518101906135d79190614caa565b6108925760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016107b4565b604080516000808252602082019092526001600160a01b0384169083906040516136739190614c12565b60006040518083038185875af1925050503d80600081146136b0576040519150601f19603f3d011682016040523d82523d6000602084013e6136b5565b606091505b50509050806108145760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016107b4565b6001600160a01b0380851660009081526007602081815260408084208886168552825280842081516101808101835281548716815260018201549381019390935260028101549095169082015260038401546060820181905260048501546080830152600585015460a0830152600685015460c08301529184015460e082015260088401546101008201526009840154610120820152600a840154610140820152600b90930154610160840152909182918291906137eb90869061066d565b60408083015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614c91565b10156138e65760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016107b4565b60006138f686836060015161066d565b11156139775761391881604001513361391388856060015161066d565b612faf565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33826040015161394d88856060015161066d565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b0380891660009081526008602090815260408083208b8516845282528083208151606081018352815490951685526001810154928501929092526002909101549083018190526139cf90889061066d565b11156139f4576139f46139e687836040015161066d565b6139ef8961068e565b613dc0565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5691906148f5565b60ff169250613a6f613a6984600a6149fc565b88610936565b93506000613a8187846020015161066d565b9050613a9e613a9488846040015161066d565b611eed8984611ab9565b95505050509450945094915050565b3360009081526006602090815260408083206001600160a01b03871684529091529020600181015490548290613ae4908590614bca565b613aee9190614bca565b1015610814573360009081526006602090815260408083206001600160a01b03871684529091528120548290613b25908590614bca565b613b2f9190614bca565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613b6091906147d4565b90508015613ba1573360009081526006602090815260408083206001600160a01b038816845290915281208054839290613b9b908490614bca565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611a9f565b6000808251604103613c4c5760208301516040840151606085015160001a613c4087828585613ea6565b94509450505050613c54565b506000905060025b9250929050565b6000816004811115613c6f57613c6f614d55565b03613c775750565b6001816004811115613c8b57613c8b614d55565b03613cd85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107b4565b6002816004811115613cec57613cec614d55565b03613d395760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107b4565b6003816004811115613d4d57613d4d614d55565b03610ba55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600081600081518110613dd557613dd56147eb565b6020026020010151905060008260018451613df091906147d4565b81518110613e0057613e006147eb565b6020026020010151905060006040518060400160405280613e20856122bd565b8152602001846001600160a01b0316815250905060006040518060400160405280613e4a856122bd565b8152602001846001600160a01b031681525090506000613e6a8787610936565b9050613e7a6127108260006108ee565b90506000613e8942600a614bca565b9050613e9b84848a858b6000876126f7565b612995853384612faf565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613edd5750600090506003613f61565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f31573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613f5a57600060019250925050613f61565b9150600090505b94509492505050565b60008060408385031215613f7d57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610ba557600080fd5b8035613fac81613f8c565b919050565b60008060408385031215613fc457600080fd5b8235613fcf81613f8c565b91506020830135613fdf81613f8c565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171561403d5761403d613fea565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561406c5761406c613fea565b604052919050565b600067ffffffffffffffff82111561408e5761408e613fea565b5060051b60200190565b600082601f8301126140a957600080fd5b813560206140be6140b983614074565b614043565b82815260059290921b840181019181810190868411156140dd57600080fd5b8286015b848110156141015780356140f481613f8c565b83529183019183016140e1565b509695505050505050565b60006020828403121561411e57600080fd5b813567ffffffffffffffff81111561413557600080fd5b61414184828501614098565b949350505050565b600081518084526020808501945080840160005b838110156141825781516001600160a01b03168752958201959082019060010161415d565b509495945050505050565b6020815260006106876020830184614149565b6000806000606084860312156141b557600080fd5b83356141c081613f8c565b925060208401356141d081613f8c565b929592945050506040919091013590565b600082601f8301126141f257600080fd5b813567ffffffffffffffff81111561420c5761420c613fea565b61421f6020601f19601f84011601614043565b81815284602083860101111561423457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561426957600080fd5b85359450602086013561427b81613f8c565b93506040860135925060608601359150608086013567ffffffffffffffff8111156142a557600080fd5b6142b1888289016141e1565b9150509295509295909350565b600080600080608085870312156142d457600080fd5b84359350602085013567ffffffffffffffff8111156142f257600080fd5b6142fe87828801614098565b949794965050505060408301359260600135919050565b60006020828403121561432757600080fd5b813567ffffffffffffffff81111561433e57600080fd5b614141848285016141e1565b8015158114610ba557600080fd5b60008060006060848603121561436d57600080fd5b833592506020840135915060408401356143868161434a565b809150509250925092565b600080604083850312156143a457600080fd5b82359150602083013567ffffffffffffffff8111156143c257600080fd5b6143ce85828601614098565b9150509250929050565b600080600080600060a086880312156143f057600080fd5b85356143fb81613f8c565b9450602086013561440b81613f8c565b9350604086013567ffffffffffffffff81111561442757600080fd5b61443388828901614098565b93505060608601359150608086013561444b81613f8c565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161448a60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016144f98288614459565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b60006020828403121561453157600080fd5b813561068781613f8c565b60008060006060848603121561455157600080fd5b833561455c81613f8c565b9250602084013561456c81613f8c565b9150604084013567ffffffffffffffff81111561458857600080fd5b61459486828701614098565b9150509250925092565b6101c081016145ad8286614459565b6101808201939093526101a00152919050565b6000606082840312156145d257600080fd5b6040516060810181811067ffffffffffffffff821117156145f5576145f5613fea565b604052905080823561460681613f8c565b8082525060208301356020820152604083013560408201525092915050565b60008060008084860361022081121561463d57600080fd5b853561464881613f8c565b9450602086013561465881613f8c565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820181131561468c57600080fd5b614694614019565b91506146a260408801613fa1565b8252606087013560208301526146ba60808801613fa1565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614735866101c087016145c0565b905092959194509250565b60008060008060008060c0878903121561475957600080fd5b863567ffffffffffffffff81111561477057600080fd5b61477c89828a01614098565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156147e6576147e66147a5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000600019820361482d5761482d6147a5565b5060010190565b600081614843576148436147a5565b506000190190565b8281526040602082015260006141416040830184614149565b6000602080838503121561487757600080fd5b825167ffffffffffffffff81111561488e57600080fd5b8301601f8101851361489f57600080fd5b80516148ad6140b982614074565b81815260059190911b820183019083810190878311156148cc57600080fd5b928401925b828410156148ea578351825292840192908401906148d1565b979650505050505050565b60006020828403121561490757600080fd5b815160ff8116811461068757600080fd5b600181815b80851115614953578160001904821115614939576149396147a5565b8085161561494657918102915b93841c939080029061491d565b509250929050565b60008261496a575060016117b0565b81614977575060006117b0565b816001811461498d5760028114614997576149b3565b60019150506117b0565b60ff8411156149a8576149a86147a5565b50506001821b6117b0565b5060208310610133831016604e8410600b84101617156149d6575081810a6117b0565b6149e08383614918565b80600019048211156149f4576149f46147a5565b029392505050565b6000610687838361495b565b6000816000190483118215151615614a2257614a226147a5565b500290565b600082614a5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007f80000000000000000000000000000000000000000000000000000000000000008203614a9357614a936147a5565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614adb57614adb6147a5565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614b1657614b166147a5565b60008712925087820587128484161615614b3257614b326147a5565b87850587128184161615614b4857614b486147a5565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614b9057614b906147a5565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614bc457614bc46147a5565b50500190565b60008219821115614bdd57614bdd6147a5565b500190565b60005b83811015614bfd578181015183820152602001614be5565b83811115614c0c576000848401525b50505050565b60008251614c24818460208701614be2565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152614c788160e0850160208701614be2565b601f01601f19169190910160e001979650505050505050565b600060208284031215614ca357600080fd5b5051919050565b600060208284031215614cbc57600080fd5b81516106878161434a565b85815284602082015260a060408201526000614ce660a0830186614149565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000614d1c6080830186614149565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215614d4a57600080fd5b815161068781613f8c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea264697066735822122081e6a1dc1ec5a2d4f66bbc01785729d9660dd4323ff42fb772c7e774f006a62664736f6c634300080e0033",
|
|
1054
|
-
"deployedBytecode": "0x6080604052600436106101825760003560e01c80635ff530f2116100d5578063853c074c11610084578063aa5d448f11610061578063aa5d448f146105b9578063d96661ef146105d9578063f2fde38b146105f9578063fe8691b41461061957005b8063853c074c146105685780638da5cb5b14610588578063a6a3694a146105a657005b8063715018a6116100b2578063715018a614610504578063744cfdd91461051957806381f3fdc31461053957005b80635ff530f21461049357806362a76603146104b35780636f151a38146104e457005b8063238ac9331161013157806334e3f92d1161010e57806334e3f92d146104085780633fc8cef3146104535780635c8181211461047357005b8063238ac933146102b75780632926e5de146102ef5780632bd2c18d146103e857005b80630fcc40c41161015f5780630fcc40c41461024a5780631b153401146102775780631f8c24de1461029757005b8063016eb8a81461018b578063089afeae146101be5780630d83b1e41461023457005b3661018957005b005b34801561019757600080fd5b506101ab6101a6366004613f6a565b61066d565b6040519081526020015b60405180910390f35b3480156101ca57600080fd5b5061020f6101d9366004613fb1565b60086020908152600092835260408084209091529082529020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b0390941684526020840192909252908201526060016101b5565b34801561024057600080fd5b506101ab60095481565b34801561025657600080fd5b5061026a61026536600461410c565b61068e565b6040516101b5919061418d565b34801561028357600080fd5b506101896102923660046141a0565b61075e565b3480156102a357600080fd5b506101896102b2366004614251565b610819565b3480156102c357600080fd5b506002546102d7906001600160a01b031681565b6040516001600160a01b0390911681526020016101b5565b3480156102fb57600080fd5b5061037e61030a366004613fb1565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101b5565b3480156103f457600080fd5b506101ab6104033660046142be565b610899565b34801561041457600080fd5b50610443610423366004614315565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101b5565b34801561045f57600080fd5b506004546102d7906001600160a01b031681565b34801561047f57600080fd5b506101ab61048e366004614358565b6108ee565b34801561049f57600080fd5b506101ab6104ae366004614391565b610936565b3480156104bf57600080fd5b506104d36104ce3660046143d8565b610a7a565b6040516101b59594939291906144ea565b3480156104f057600080fd5b506101896104ff36600461451f565b610b42565b34801561051057600080fd5b50610189610ba8565b34801561052557600080fd5b506101ab610534366004614391565b610c0e565b34801561054557600080fd5b5061055961055436600461453c565b610d38565b6040516101b59392919061459e565b34801561057457600080fd5b50610189610583366004614625565b611108565b34801561059457600080fd5b506000546001600160a01b03166102d7565b6101896105b4366004614740565b611326565b3480156105c557600080fd5b506101896105d436600461451f565b611662565b3480156105e557600080fd5b506005546102d7906001600160a01b031681565b34801561060557600080fd5b5061018961061436600461451f565b6116c5565b34801561062557600080fd5b50610658610634366004613fb1565b60066020908152600092835260408084209091529082529020805460019091015482565b604080519283526020830191909152016101b5565b6009546000906106879061068185856117a4565b906117b6565b9392505050565b805160609060008167ffffffffffffffff8111156106ae576106ae613fea565b6040519080825280602002602001820160405280156106d7578160200160208202803683370190505b5090506000825b6001811061075457856106f26001836147d4565b81518110610702576107026147eb565b602002602001015183838151811061071c5761071c6147eb565b6001600160a01b03909216602092830291909101909101528161073e8161481a565b925050808061074c90614834565b9150506106de565b5090949350505050565b6000546001600160a01b031633146107bd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6107c88383836117c2565b6108145760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016107b4565b505050565b6108216117f9565b61082e8585858585611852565b61083a85858584611a3e565b8142106108895760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016107b4565b61089260018055565b5050505050565b600080808481036108c6576108ae8787610936565b91506108bc848360006108ee565b91508192506108e4565b6108d08787610c0e565b90506108de848260016108ee565b90508092505b5050949350505050565b60006001821561090c576009546109059086611aad565b905061091c565b6009546109199086611ab9565b90505b60095461092d9061068186846117a4565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610986908790879060040161484b565b600060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109cb9190810190614864565b9050806109e360018351611ab990919063ffffffff16565b815181106109f3576109f36147eb565b6020026020010151915060008211610a735760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016107b4565b5092915050565b610af060405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610b058c8c8c8c611ac5565b92995090945092509050610b1b8c8c8b86611ea9565b9850610b2b8c8c8b8b8686611ef3565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610b9c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610ba581612184565b50565b6000546001600160a01b03163314610c025760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610c0c6000612239565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610c5e908790879060040161484b565b600060405180830381865afa158015610c7b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca39190810190614864565b905080600081518110610cb857610cb86147eb565b6020026020010151915060008211610a735760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016107b4565b610dae60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa158015610eaa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ece91906148f5565b60ff169150610ee7610ee183600a6149fc565b85610936565b90506000808285608001511115610f39576101208501516080860151600954610f1086836147d4565b610f1a9190614a08565b610f249190614a27565b610f2e9190614a27565b905060009150610f82565b8460800151831115610f82576101208501516080860151600954610f5d82876147d4565b610f679190614a08565b610f719190614a27565b610f7b9190614a27565b9050600191505b60008113156110fd576080850183905261014085015161016086015183610fba57610fac82614a62565b9150610fb781614a62565b90505b60008212610ffd576020870151610fd18484614a9a565b610fdb9190614b56565b6020880181905260c08801511215610ff85760c087015160208801525b611059565b86602001518760a0015184611011856122a1565b61101b9190614a9a565b6110259190614b56565b131561103a5760a08701516020880152611059565b60208701516110498484614a9a565b6110539190614b56565b60208801525b6000811261109e5760608701516110708483614a9a565b61107a9190614b56565b6060880181905261010088015112156110995761010087015160608801525b6110fa565b86606001518760e00151846110b2846122a1565b6110bc9190614a9a565b6110c69190614b56565b13156110db5760e087015160608801526110fa565b60608701516110ea8483614a9a565b6110f49190614b56565b60608801525b50505b505093509350939050565b6000546001600160a01b031633146111625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b6000826060015112156111b75760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016107b4565b60008260200151121561120c5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016107b4565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f169285169290921790915560608b0151600385015560808b0151600485015560a08b0151600585015560c08b0151600685015560e08b0151968401969096556101008a01516008808501919091556101208b015160098501556101408b0151600a850155610160909a0151600b9093019290925595855296825280842097845296815291869020845181549816979093169690961782558201519281019290925590910151910155565b61132e6117f9565b33321461137d5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016107b4565b333b156113f15760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016107b4565b82600003611418576114038587610936565b9350611411818560006108ee565b9350611433565b6114228487610c0e565b9450611430818660016108ee565b94505b600086600081518110611448576114486147eb565b602002602001015190506000876001895161146391906147d4565b81518110611473576114736147eb565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916114b7908490614bca565b92505081905550600060405180604001604052806114d4856122bd565b8152602001846001600160a01b03168152509050600060405180604001604052806114fe856122bd565b81526001600160a01b038516602090910152825190915060030361152d576115288433308c6122f6565b6115a2565b8834146115a25760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016107b4565b6115ad84848c612466565b50506115be82828b8b8e8c8c6126f7565b60006115cb85858b6129a0565b90506000806115dc87878f8e612adc565b604080513381526001600160a01b03808c1660208301528a1691810191909152606081018f90526080810186905260a0810183905260c0810182905291935091507f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49060e00160405180910390a15050505050505061165a60018055565b505050505050565b6000546001600160a01b031633146116bc5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b610ba581612d31565b6000546001600160a01b0316331461171f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107b4565b6001600160a01b03811661179b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107b4565b610ba581612239565b60006106878284614a08565b92915050565b60006106878284614a27565b60006001600160a01b0384166117e4576117dc8383612e96565b506001610687565b6117ef848484612faf565b5060019392505050565b60026001540361184b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107b4565b6002600155565b6003816040516118629190614c12565b9081526040519081900360200190205460ff16156118c25760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016107b4565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e8840152610104808401919091528351808403909101815261012490920190925280519101206000906119869083613117565b6002549091506001600160a01b038083169116146119e65760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016107b4565b60016003836040516119f89190614c12565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611a5b57611a563383612e96565b611a66565b611a66833384612faf565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611a9f96959493929190614c2e565b60405180910390a150505050565b60006106878284614bca565b600061068782846147d4565b611b3b60405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611c39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5d91906148f5565b60ff169150611c76611c7083600a6149fc565b87610936565b90506000808286608001511115611cc8576101208601516080870151600954611c9f86836147d4565b611ca99190614a08565b611cb39190614a27565b611cbd9190614a27565b905060009150611d11565b8560800151831115611d11576101208601516080870151600954611cec82876147d4565b611cf69190614a08565b611d009190614a27565b611d0a9190614a27565b9050600191505b6000811315611e8c576080860183905261014086015161016087015183611d4957611d3b82614a62565b9150611d4681614a62565b90505b60008212611d8c576020880151611d608484614a9a565b611d6a9190614b56565b6020890181905260c08901511215611d875760c088015160208901525b611de8565b87602001518860a0015184611da0856122a1565b611daa9190614a9a565b611db49190614b56565b1315611dc95760a08801516020890152611de8565b6020880151611dd88484614a9a565b611de29190614b56565b60208901525b60008112611e2d576060880151611dff8483614a9a565b611e099190614b56565b606089018190526101008901511215611e285761010088015160608901525b611e89565b87606001518860e0015184611e41846122a1565b611e4b9190614a9a565b611e559190614b56565b1315611e6a5760e08801516060890152611e89565b6060880151611e798483614a9a565b611e839190614b56565b60608901525b50505b611e9a87876020015161066d565b94505050945094509450949050565b6001600160a01b03808516600090815260086020908152604080832093871683529290529081206002015461092d90611ee390859061066d565b611eed8585611ab9565b90611ab9565b6001600160a01b038681166000908152600860209081526040808320898516808552908352818420825160608101845281548716815260018083015482870152600290920154818501529589168552600684528285209185529252822090810154905491928392839211611f7657611f6f88826020015161066d565b935061216b565b6001600160a01b038781166000908152600660209081526040808320938d1683529290522060018101549054611fad908a90614bca565b10612002576001600160a01b038781166000908152600660209081526040808320938d1683529290522060018101549054611f6f9190611fee908b90614bca565b611ff891906147d4565b826020015161066d565b600061200f87600a6149fc565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa158015612071573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120959190614c91565b61209f9190614a08565b6120a99190614a27565b6001600160a01b038981166000908152600660209081526040808320938f16835292905220600181015490549192509082906120e6908c90614bca565b6120f09190614bca565b1015612169576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612129908b90614bca565b6121339190614bca565b6001600160a01b03808a166000908152600660209081526040808320938f168352929052206001015461216691906147d4565b93505b505b6121758885611ab9565b91505096509650969350505050565b6001600160a01b0381166121ff5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156122b9576122b482614a62565b6117b0565b5090565b600060036001600160a01b0383166122d7575060016117b0565b6004546001600160a01b03908116908416036117b05750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916123889190614c12565b6000604051808303816000865af19150503d80600081146123c5576040519150601f19603f3d011682016040523d82523d6000602084013e6123ca565b606091505b50915091508180156123f45750805115806123f45750808060200190518101906123f49190614caa565b61165a5760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016107b4565b6001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce56700000000000000000000000000000000000000000000000000000000815290519395869590948694919363313ce5679380840193919291908290030181865afa158015612565573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061258991906148f5565b60ff169050600061259e611c7083600a6149fc565b90506000836101200151116125f55760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016107b4565b60008360800151116126495760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e7072696365203e203000000060448201526064016107b4565b808360800151111561269657610120830151608084015160095461266d84836147d4565b6126779190614a08565b6126819190614a27565b61268b9190614a27565b9450600093506126df565b82608001518111156126df5761012083015160808401516009546126ba82856147d4565b6126c49190614a08565b6126ce9190614a27565b6126d89190614a27565b9450600193505b6126ec888883888861313b565b505050935093915050565b865160030361271c57602087015160055461271c91906001600160a01b0316876134e1565b8651600314801561272e575085516003145b8015612738575081155b156127db576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061278e9088908890889030908890600401614cc7565b6000604051808303816000875af11580156127ad573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526127d59190810190614864565b50612997565b865160031480156127ed575085516003145b80156127f95750816001145b1561284f576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061278e9087908990889030908890600401614cc7565b8651600314801561286c575085516002148061286c575085516001145b80156128785750816001145b156128ce576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061278e9087908990889030908890600401614cc7565b8651600214806128df575086516001145b80156128ec575085516003145b80156128f85750816001145b15612997576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb4190879061294e908890889030908890600401614d03565b60006040518083038185885af115801561296c573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f191682016040526129959190810190614864565b505b50505050505050565b6001600160a01b0380841660009081526007602081815260408084208786168552825280842081516101808101835281548716815260018201549381018490526002820154909616918601919091526003810154606086015260048101546080860152600581015460a0860152600681015460c08601529182015460e085015260088201546101008501526009820154610120850152600a820154610140850152600b90910154610160840152909190612a5b90849061066d565b915060006040518060400160405280612a73876122bd565b81526001600160a01b0387166020909101528051909150600303612ab65781516001600160a01b03163014612ab157612ab185836000015185612faf565b612ad3565b81516001600160a01b03163014612ad3578151612ad39084613649565b50509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160608101835281549095168552600181015492850192909252600290910154908301529081908180612b388989898961372c565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612b8457612b7d86846020015161066d565b9450612cbf565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612bb9908890614bca565b10612c0c573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612b7d9190612bf8908990614bca565b612c0291906147d4565b846020015161066d565b6000612c1982600a6149fc565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612c78573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c9c9190614c91565b612ca69190614a08565b612cb09190614a27565b9050612cbd898883613aad565b505b612cc98686611ab9565b93508415612ce057612ce088846000015187612faf565b612ceb883386612faf565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612d1e908490614bca565b9250508190555050505094509492505050565b6001600160a01b038116612dad5760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa158015612e37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e5b9190614d38565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b80471015612ee65760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016107b4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612f33576040519150601f19603f3d011682016040523d82523d6000602084013e612f38565b606091505b50509050806108145760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016107b4565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916130399190614c12565b6000604051808303816000865af19150503d8060008114613076576040519150601f19603f3d011682016040523d82523d6000602084013e61307b565b606091505b50915091508180156130a55750805115806130a55750808060200190518101906130a59190614caa565b6108925760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016107b4565b60008060006131268585613c16565b9150915061313381613c5b565b509392505050565b6000821315610892576001600160a01b03858116600090815260076020908152604080832093881683529290522060048101849055600a810154600b90910154826131975761318982614a62565b915061319481614a62565b90505b60008212613248576001600160a01b038088166000908152600760209081526040808320938a16835292905220600101546131d28584614a9a565b6131dc9190614b56565b6001600160a01b038881166000908152600760209081526040808320938b1683529290522060018101829055600601541215613243576001600160a01b038781166000908152600760209081526040808320938a1683529290522060068101546001909101555b613338565b6001600160a01b038781166000908152600760209081526040808320938a16835292905220600181015460059091015485613282856122a1565b61328c9190614a9a565b6132969190614b56565b13156132d1576001600160a01b038781166000908152600760209081526040808320938a168352929052206005810154600190910155613338565b6001600160a01b038088166000908152600760209081526040808320938a16835292905220600101546133048584614a9a565b61330e9190614b56565b6001600160a01b038089166000908152600760209081526040808320938b16835292905220600101555b600081126133e9576001600160a01b038088166000908152600760209081526040808320938a16835292905220600301546133738583614a9a565b61337d9190614b56565b6001600160a01b038881166000908152600760209081526040808320938b16835292905220600381018290556008015412156133e4576001600160a01b038781166000908152600760209081526040808320938a1683529290522060088101546003909101555b612997565b6001600160a01b038781166000908152600760208181526040808420948b168452939052919020600381015491015485613422846122a1565b61342c9190614a9a565b6134369190614b56565b1315613472576001600160a01b038781166000908152600760208181526040808420948b16845293905291902090810154600390910155612997565b6001600160a01b038088166000908152600760209081526040808320938a16835292905220600301546134a58583614a9a565b6134af9190614b56565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206003015550505050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161356b9190614c12565b6000604051808303816000865af19150503d80600081146135a8576040519150601f19603f3d011682016040523d82523d6000602084013e6135ad565b606091505b50915091508180156135d75750805115806135d75750808060200190518101906135d79190614caa565b6108925760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016107b4565b604080516000808252602082019092526001600160a01b0384169083906040516136739190614c12565b60006040518083038185875af1925050503d80600081146136b0576040519150601f19603f3d011682016040523d82523d6000602084013e6136b5565b606091505b50509050806108145760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016107b4565b6001600160a01b0380851660009081526007602081815260408084208886168552825280842081516101808101835281548716815260018201549381019390935260028101549095169082015260038401546060820181905260048501546080830152600585015460a0830152600685015460c08301529184015460e082015260088401546101008201526009840154610120820152600a840154610140820152600b90930154610160840152909182918291906137eb90869061066d565b60408083015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561384e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138729190614c91565b10156138e65760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016107b4565b60006138f686836060015161066d565b11156139775761391881604001513361391388856060015161066d565b612faf565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33826040015161394d88856060015161066d565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b0380891660009081526008602090815260408083208b8516845282528083208151606081018352815490951685526001810154928501929092526002909101549083018190526139cf90889061066d565b11156139f4576139f46139e687836040015161066d565b6139ef8961068e565b613dc0565b886001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a32573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a5691906148f5565b60ff169250613a6f613a6984600a6149fc565b88610936565b93506000613a8187846020015161066d565b9050613a9e613a9488846040015161066d565b611eed8984611ab9565b95505050509450945094915050565b3360009081526006602090815260408083206001600160a01b03871684529091529020600181015490548290613ae4908590614bca565b613aee9190614bca565b1015610814573360009081526006602090815260408083206001600160a01b03871684529091528120548290613b25908590614bca565b613b2f9190614bca565b3360009081526006602090815260408083206001600160a01b0389168452909152902060010154613b6091906147d4565b90508015613ba1573360009081526006602090815260408083206001600160a01b038816845290915281208054839290613b9b908490614bca565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611a9f565b6000808251604103613c4c5760208301516040840151606085015160001a613c4087828585613ea6565b94509450505050613c54565b506000905060025b9250929050565b6000816004811115613c6f57613c6f614d55565b03613c775750565b6001816004811115613c8b57613c8b614d55565b03613cd85760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107b4565b6002816004811115613cec57613cec614d55565b03613d395760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107b4565b6003816004811115613d4d57613d4d614d55565b03610ba55760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016107b4565b600081600081518110613dd557613dd56147eb565b6020026020010151905060008260018451613df091906147d4565b81518110613e0057613e006147eb565b6020026020010151905060006040518060400160405280613e20856122bd565b8152602001846001600160a01b0316815250905060006040518060400160405280613e4a856122bd565b8152602001846001600160a01b031681525090506000613e6a8787610936565b9050613e7a6127108260006108ee565b90506000613e8942600a614bca565b9050613e9b84848a858b6000876126f7565b612995853384612faf565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115613edd5750600090506003613f61565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015613f31573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613f5a57600060019250925050613f61565b9150600090505b94509492505050565b60008060408385031215613f7d57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610ba557600080fd5b8035613fac81613f8c565b919050565b60008060408385031215613fc457600080fd5b8235613fcf81613f8c565b91506020830135613fdf81613f8c565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff8111828210171561403d5761403d613fea565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561406c5761406c613fea565b604052919050565b600067ffffffffffffffff82111561408e5761408e613fea565b5060051b60200190565b600082601f8301126140a957600080fd5b813560206140be6140b983614074565b614043565b82815260059290921b840181019181810190868411156140dd57600080fd5b8286015b848110156141015780356140f481613f8c565b83529183019183016140e1565b509695505050505050565b60006020828403121561411e57600080fd5b813567ffffffffffffffff81111561413557600080fd5b61414184828501614098565b949350505050565b600081518084526020808501945080840160005b838110156141825781516001600160a01b03168752958201959082019060010161415d565b509495945050505050565b6020815260006106876020830184614149565b6000806000606084860312156141b557600080fd5b83356141c081613f8c565b925060208401356141d081613f8c565b929592945050506040919091013590565b600082601f8301126141f257600080fd5b813567ffffffffffffffff81111561420c5761420c613fea565b61421f6020601f19601f84011601614043565b81815284602083860101111561423457600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561426957600080fd5b85359450602086013561427b81613f8c565b93506040860135925060608601359150608086013567ffffffffffffffff8111156142a557600080fd5b6142b1888289016141e1565b9150509295509295909350565b600080600080608085870312156142d457600080fd5b84359350602085013567ffffffffffffffff8111156142f257600080fd5b6142fe87828801614098565b949794965050505060408301359260600135919050565b60006020828403121561432757600080fd5b813567ffffffffffffffff81111561433e57600080fd5b614141848285016141e1565b8015158114610ba557600080fd5b60008060006060848603121561436d57600080fd5b833592506020840135915060408401356143868161434a565b809150509250925092565b600080604083850312156143a457600080fd5b82359150602083013567ffffffffffffffff8111156143c257600080fd5b6143ce85828601614098565b9150509250929050565b600080600080600060a086880312156143f057600080fd5b85356143fb81613f8c565b9450602086013561440b81613f8c565b9350604086013567ffffffffffffffff81111561442757600080fd5b61443388828901614098565b93505060608601359150608086013561444b81613f8c565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161448a60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016144f98288614459565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b60006020828403121561453157600080fd5b813561068781613f8c565b60008060006060848603121561455157600080fd5b833561455c81613f8c565b9250602084013561456c81613f8c565b9150604084013567ffffffffffffffff81111561458857600080fd5b61459486828701614098565b9150509250925092565b6101c081016145ad8286614459565b6101808201939093526101a00152919050565b6000606082840312156145d257600080fd5b6040516060810181811067ffffffffffffffff821117156145f5576145f5613fea565b604052905080823561460681613f8c565b8082525060208301356020820152604083013560408201525092915050565b60008060008084860361022081121561463d57600080fd5b853561464881613f8c565b9450602086013561465881613f8c565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820181131561468c57600080fd5b614694614019565b91506146a260408801613fa1565b8252606087013560208301526146ba60808801613fa1565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614735866101c087016145c0565b905092959194509250565b60008060008060008060c0878903121561475957600080fd5b863567ffffffffffffffff81111561477057600080fd5b61477c89828a01614098565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156147e6576147e66147a5565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000600019820361482d5761482d6147a5565b5060010190565b600081614843576148436147a5565b506000190190565b8281526040602082015260006141416040830184614149565b6000602080838503121561487757600080fd5b825167ffffffffffffffff81111561488e57600080fd5b8301601f8101851361489f57600080fd5b80516148ad6140b982614074565b81815260059190911b820183019083810190878311156148cc57600080fd5b928401925b828410156148ea578351825292840192908401906148d1565b979650505050505050565b60006020828403121561490757600080fd5b815160ff8116811461068757600080fd5b600181815b80851115614953578160001904821115614939576149396147a5565b8085161561494657918102915b93841c939080029061491d565b509250929050565b60008261496a575060016117b0565b81614977575060006117b0565b816001811461498d5760028114614997576149b3565b60019150506117b0565b60ff8411156149a8576149a86147a5565b50506001821b6117b0565b5060208310610133831016604e8410600b84101617156149d6575081810a6117b0565b6149e08383614918565b80600019048211156149f4576149f46147a5565b029392505050565b6000610687838361495b565b6000816000190483118215151615614a2257614a226147a5565b500290565b600082614a5d577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b60007f80000000000000000000000000000000000000000000000000000000000000008203614a9357614a936147a5565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614adb57614adb6147a5565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614b1657614b166147a5565b60008712925087820587128484161615614b3257614b326147a5565b87850587128184161615614b4857614b486147a5565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614b9057614b906147a5565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614bc457614bc46147a5565b50500190565b60008219821115614bdd57614bdd6147a5565b500190565b60005b83811015614bfd578181015183820152602001614be5565b83811115614c0c576000848401525b50505050565b60008251614c24818460208701614be2565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c0840152614c788160e0850160208701614be2565b601f01601f19169190910160e001979650505050505050565b600060208284031215614ca357600080fd5b5051919050565b600060208284031215614cbc57600080fd5b81516106878161434a565b85815284602082015260a060408201526000614ce660a0830186614149565b6001600160a01b0394909416606083015250608001529392505050565b848152608060208201526000614d1c6080830186614149565b6001600160a01b03949094166040830152506060015292915050565b600060208284031215614d4a57600080fd5b815161068781613f8c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea264697066735822122081e6a1dc1ec5a2d4f66bbc01785729d9660dd4323ff42fb772c7e774f006a62664736f6c634300080e0033",
|
|
1152
|
+
"bytecode": "0x608060405262015180600a556305f5e100600b553480156200002057600080fd5b506040516200544d3803806200544d8339810160408190526200004391620001f6565b6200004e3362000080565b60018055600280546001600160a01b0319166001600160a01b0384161790556200007881620000d0565b505062000253565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116620001365760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f757465206164647265604482015261737360f01b606482015260840160405180910390fd5b600580546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000190573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b691906200022e565b600480546001600160a01b0319166001600160a01b039290921691909117905550565b80516001600160a01b0381168114620001f157600080fd5b919050565b600080604083850312156200020a57600080fd5b6200021583620001d9565b91506200022560208401620001d9565b90509250929050565b6000602082840312156200024157600080fd5b6200024c82620001d9565b9392505050565b6151ea80620002636000396000f3fe6080604052600436106101ae5760003560e01c80635ff530f2116100eb57806381f3fdc31161008f578063aa5d448f11610061578063aa5d448f146106c3578063d96661ef146106e3578063f2fde38b14610703578063fe8691b41461072357005b806381f3fdc3146106015780638da5cb5b14610630578063a6a3694a1461064e578063a7a38f0b1461066157005b80636f151a38116100c85780636f151a381461058c578063715018a6146105ac578063744cfdd9146105c15780637aaa9b02146105e157005b80635ff530f21461051b57806362a766031461053b5780636a59f8331461056c57005b806327af9e381161015257806334e3f92d1161012f57806334e3f92d1461045b5780633fc8cef3146104a657806340216a83146104c65780635c818121146104fb57005b806327af9e381461032c5780632926e5de146103425780632bd2c18d1461043b57005b80630fcc40c41161018b5780630fcc40c4146102875780631b153401146102b45780631f8c24de146102d4578063238ac933146102f457005b8063016eb8a8146101b7578063089afeae146101ea5780630d83b1e41461027157005b366101b557005b005b3480156101c357600080fd5b506101d76101d236600461431b565b610762565b6040519081526020015b60405180910390f35b3480156101f657600080fd5b50610242610205366004614362565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101e1565b34801561027d57600080fd5b506101d7600b5481565b34801561029357600080fd5b506102a76102a23660046144bd565b610783565b6040516101e1919061453e565b3480156102c057600080fd5b506101b56102cf366004614551565b610853565b3480156102e057600080fd5b506101b56102ef366004614602565b61090e565b34801561030057600080fd5b50600254610314906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b34801561033857600080fd5b506101d7600a5481565b34801561034e57600080fd5b506103d161035d366004614362565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101e1565b34801561044757600080fd5b506101d761045636600461466f565b61098e565b34801561046757600080fd5b506104966104763660046146c6565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101e1565b3480156104b257600080fd5b50600454610314906001600160a01b031681565b3480156104d257600080fd5b506104e66104e1366004614362565b6109e3565b604080519283526020830191909152016101e1565b34801561050757600080fd5b506101d7610516366004614709565b610aee565b34801561052757600080fd5b506101d7610536366004614742565b610b36565b34801561054757600080fd5b5061055b610556366004614789565b610c7a565b6040516101e195949392919061489b565b34801561057857600080fd5b506101b56105873660046148d0565b610d42565b34801561059857600080fd5b506101b56105a73660046148e9565b610da1565b3480156105b857600080fd5b506101b5610e07565b3480156105cd57600080fd5b506101d76105dc366004614742565b610e6d565b3480156105ed57600080fd5b506101b56105fc36600461497f565b610f97565b34801561060d57600080fd5b5061062161061c366004614a9a565b611253565b6040516101e193929190614afc565b34801561063c57600080fd5b506000546001600160a01b0316610314565b6101b561065c366004614b1e565b611623565b34801561066d57600080fd5b506106a361067c3660046148d0565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101e1565b3480156106cf57600080fd5b506101b56106de3660046148e9565b611958565b3480156106ef57600080fd5b50600554610314906001600160a01b031681565b34801561070f57600080fd5b506101b561071e3660046148e9565b6119bb565b34801561072f57600080fd5b506104e661073e366004614362565b60066020908152600092835260408084209091529082529020805460019091015482565b600b5460009061077c906107768585611a9a565b90611aac565b9392505050565b805160609060008167ffffffffffffffff8111156107a3576107a361439b565b6040519080825280602002602001820160405280156107cc578160200160208202803683370190505b5090506000825b6001811061084957856107e7600183614bb2565b815181106107f7576107f7614bc9565b602002602001015183838151811061081157610811614bc9565b6001600160a01b03909216602092830291909101909101528161083381614bf8565b925050808061084190614c12565b9150506107d3565b5090949350505050565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6108bd838383611ab8565b6109095760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016108a9565b505050565b610916611aef565b6109238585858585611b48565b61092f85858584611d34565b81421061097e5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016108a9565b61098760018055565b5050505050565b600080808481036109bb576109a38787610b36565b91506109b184836000610aee565b91508192506109d9565b6109c58787610e6d565b90506109d384826001610aee565b90508092505b5050949350505050565b6000806000600a54426109f69190614c58565b6001600160a01b0380871660009081526007602081815260408084208a8616855282528084208151610180810183528154871681526001820154818501526002820154909616868301526003810154606087015260048101546080870152600581015460a0870152600681015460c08701529283015460e08601526008830154610100860152600980840154610120870152600a840154610140870152600b9093015461016086015285845291905281205492935090919003610ac6578060200151935080606001519250610ae5565b6000828152600960205260409020600281015460039091015490945092505b50509250929050565b600060018215610b0c57600b54610b059086611da3565b9050610b1c565b600b54610b199086611daf565b90505b600b54610b2d906107768684611a9a565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610b869087908790600401614c6c565b600060405180830381865afa158015610ba3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bcb9190810190614c85565b905080610be360018351611daf90919063ffffffff16565b81518110610bf357610bf3614bc9565b6020026020010151915060008211610c735760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016108a9565b5092915050565b610cf060405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610d058c8c8c8c611dbb565b92995090945092509050610d1b8c8c8b86611fa7565b9850610d2b8c8c8b8b8686611ff1565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610d9c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b600a55565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e048161228e565b50565b6000546001600160a01b03163314610e615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e6b6000612343565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610ebd9087908790600401614c6c565b600060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f029190810190614c85565b905080600081518110610f1757610f17614bc9565b6020026020010151915060008211610c735760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016108a9565b6000546001600160a01b03163314610ff15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b6000826060015112156110465760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016108a9565b60008260200151121561109b5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016108a9565b836001600160a01b031681606001516001600160a01b031614806110d45750826001600160a01b031681606001516001600160a01b0316145b6111205760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e670000000060448201526064016108a9565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b6112c960405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa1580156113c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e99190614d16565b60ff1691506114026113fc83600a614e1d565b85610b36565b90506000808285608001511115611454576101208501516080860151600b5461142b8683614bb2565b6114359190614e29565b61143f9190614c58565b6114499190614c58565b90506000915061149d565b846080015183111561149d576101208501516080860151600b546114788287614bb2565b6114829190614e29565b61148c9190614c58565b6114969190614c58565b9050600191505b60008113156116185760808501839052610140850151610160860151836114d5576114c782614e48565b91506114d281614e48565b90505b600082126115185760208701516114ec8484614e80565b6114f69190614f3c565b6020880181905260c088015112156115135760c087015160208801525b611574565b86602001518760a001518461152c856123ab565b6115369190614e80565b6115409190614f3c565b13156115555760a08701516020880152611574565b60208701516115648484614e80565b61156e9190614f3c565b60208801525b600081126115b957606087015161158b8483614e80565b6115959190614f3c565b6060880181905261010088015112156115b45761010087015160608801525b611615565b86606001518760e00151846115cd846123ab565b6115d79190614e80565b6115e19190614f3c565b13156115f65760e08701516060880152611615565b60608701516116058483614e80565b61160f9190614f3c565b60608801525b50505b505093509350939050565b61162b611aef565b33321461167a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016108a9565b333b156116ee5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016108a9565b82600003611715576117008587610b36565b935061170e81856000610aee565b9350611730565b61171f8487610e6d565b945061172d81866001610aee565b94505b60008660008151811061174557611745614bc9565b60200260200101519050600087600189516117609190614bb2565b8151811061177057611770614bc9565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916117b4908490614fb0565b92505081905550600060405180604001604052806117d1856123c7565b8152602001846001600160a01b03168152509050600060405180604001604052806117fb856123c7565b81526001600160a01b038516602090910152825190915060030361182a576118258433308c612400565b61189f565b88341461189f5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016108a9565b6118ae82828b8b8e8c8c612570565b60006118bb85858b612819565b90506000806118cc87878f8e61295f565b915091506118db87878f612bc1565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a15050505050505061195060018055565b505050505050565b6000546001600160a01b031633146119b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e0481612df7565b6000546001600160a01b03163314611a155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b6001600160a01b038116611a915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108a9565b610e0481612343565b600061077c8284614e29565b92915050565b600061077c8284614c58565b60006001600160a01b038416611ada57611ad28383612f5c565b50600161077c565b611ae5848484613075565b5060019392505050565b600260015403611b415760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108a9565b6002600155565b600381604051611b589190614ff8565b9081526040519081900360200190205460ff1615611bb85760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016108a9565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090611c7c90836131dd565b6002549091506001600160a01b03808316911614611cdc5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016108a9565b6001600383604051611cee9190614ff8565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611d5157611d4c3383612f5c565b611d5c565b611d5c833384613075565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611d9596959493929190615014565b60405180910390a150505050565b600061077c8284614fb0565b600061077c8284614bb2565b611e3160405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f539190614d16565b60ff169150611f6c611f6683600a614e1d565b87610b36565b9050600080611f7b8a8a6109e3565b60208801829052606088018190529092509050611f988783610762565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610b2d90611fe1908590610762565b611feb8585611daf565b90611daf565b6001600160a01b03868116600090815260086020908152604080832089851680855290835281842082516080810184528154871681526001808301548287015260028301548286015260039092015487166060820152958916855260068452828520918552925282209081015490549192839283921161208057612079888260200151610762565b9350612275565b6001600160a01b038781166000908152600660209081526040808320938d16835292905220600181015490546120b7908a90614fb0565b1061210c576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461207991906120f8908b90614fb0565b6121029190614bb2565b8260200151610762565b600061211987600a614e1d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615077565b6121a99190614e29565b6121b39190614c58565b6001600160a01b038981166000908152600660209081526040808320938f16835292905220600181015490549192509082906121f0908c90614fb0565b6121fa9190614fb0565b1015612273576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612233908b90614fb0565b61223d9190614fb0565b6001600160a01b03808a166000908152600660209081526040808320938f16835292905220600101546122709190614bb2565b93505b505b61227f8885611daf565b91505096509650969350505050565b6001600160a01b0381166123095760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156123c3576123be82614e48565b611aa6565b5090565b600060036001600160a01b0383166123e157506001611aa6565b6004546001600160a01b0390811690841603611aa65750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916124929190614ff8565b6000604051808303816000865af19150503d80600081146124cf576040519150601f19603f3d011682016040523d82523d6000602084013e6124d4565b606091505b50915091508180156124fe5750805115806124fe5750808060200190518101906124fe9190615090565b6119505760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016108a9565b865160030361259557602087015160055461259591906001600160a01b031687613201565b865160031480156125a7575085516003145b80156125b1575081155b15612654576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061260790889088908890309088906004016150ad565b6000604051808303816000875af1158015612626573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261264e9190810190614c85565b50612810565b86516003148015612666575085516003145b80156126725750816001145b156126c8576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061260790879089908890309088906004016150ad565b865160031480156126e557508551600214806126e5575085516001145b80156126f15750816001145b15612747576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061260790879089908890309088906004016150ad565b865160021480612758575086516001145b8015612765575085516003145b80156127715750816001145b15612810576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb419087906127c79088908890309088906004016150e9565b60006040518083038185885af11580156127e5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261280e9190810190614c85565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816128d086866109e3565b5090506128dd8482610762565b9250600060405180604001604052806128f5886123c7565b81526001600160a01b03881660209091015280519091506003036129385782516001600160a01b031630146129335761293386846000015186613075565b612955565b82516001600160a01b031630146129555782516129559085613369565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806129c88989898961344c565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612a1457612a0d868460200151610762565b9450612b4f565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612a49908890614fb0565b10612a9c573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612a0d9190612a88908990614fb0565b612a929190614bb2565b8460200151610762565b6000612aa982600a614e1d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2c9190615077565b612b369190614e29565b612b409190614c58565b9050612b4d8988836137d5565b505b612b598686611daf565b93508415612b7057612b7088846000015187613075565b612b7b883386613075565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612bae908490614fb0565b9250508190555050505094509492505050565b6000600a5442612bd19190614c58565b90506000600960008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050600060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020604051806101800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820154815250509050600060096000600186612d4a9190614bb2565b815260200190815260200160002060010154905082600001516000148015612d70575080155b15612d8e576080820151600085815260096020526040902055612da9565b8251600003612da95760008481526009602052604090208190555b6000612db688888861393e565b600086815260096020526040902054909150612dd689898985858b613b31565b50505060009485526009602052604090942060010193909355505050505050565b6001600160a01b038116612e735760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa158015612efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f21919061511e565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b80471015612fac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108a9565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612ff9576040519150601f19603f3d011682016040523d82523d6000602084013e612ffe565b606091505b50509050806109095760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108a9565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916130ff9190614ff8565b6000604051808303816000865af19150503d806000811461313c576040519150601f19603f3d011682016040523d82523d6000602084013e613141565b606091505b509150915081801561316b57508051158061316b57508080602001905181019061316b9190615090565b6109875760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016108a9565b60008060006131ec8585613d43565b915091506131f981613d88565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161328b9190614ff8565b6000604051808303816000865af19150503d80600081146132c8576040519150601f19603f3d011682016040523d82523d6000602084013e6132cd565b606091505b50915091508180156132f75750805115806132f75750808060200190518101906132f79190615090565b6109875760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016108a9565b604080516000808252602082019092526001600160a01b0384169083906040516133939190614ff8565b60006040518083038185875af1925050503d80600081146133d0576040519150601f19603f3d011682016040523d82523d6000602084013e6133d5565b606091505b50509050806109095760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016108a9565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806135088a8a6109e3565b915091506135168782610762565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359d9190615077565b10156136115760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016108a9565b600061361d8883610762565b11156136965761363b8360400151336136368a85610762565b613075565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33846040015161366c8a85610762565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d85168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152916136f9908a90610762565b111561371e5761371e613710898360400151610762565b6137198b610783565b613eed565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561375c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137809190614d16565b60ff16945061379961379386600a614e1d565b8a610b36565b955060006137a78985610762565b90506137c46137ba8a8460400151610762565b611feb8b84611daf565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b0387168452909152902060018101549054829061380c908590614fb0565b6138169190614fb0565b1015610909573360009081526006602090815260408083206001600160a01b0387168452909152812054829061384d908590614fb0565b6138579190614fb0565b3360009081526006602090815260408083206001600160a01b03891684529091529020600101546138889190614bb2565b905080156138c9573360009081526006602090815260408083206001600160a01b0388168452909152812080548392906138c3908490614fb0565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611d95565b6001600160a01b038084166000818152600860209081526040808320878616845282528083208151608081018352815487168152600182015493810193909352600281015491830191909152600301549093166060840181905290929183919003613a2857846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a059190614d16565b60ff169050613a21613a1882600a614e1d565b61053686610783565b9250613b28565b81606001516001600160a01b0316856001600160a01b031603613aba57856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa79190614d16565b60ff169050613a216113fc82600a614e1d565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e63790000000000000000000000000000000000000000000000000060648201526084016108a9565b50509392505050565b6001600160a01b0380871660009081526007602081815260408084208a8616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b909301546101608201529091829190613c2f5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016108a9565b60008511613c7f5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e2030000000000000000000000060448201526064016108a9565b85851115613cc557610120810151600b548690613c9c8983614bb2565b613ca69190614e29565b613cb09190614c58565b613cba9190614c58565b925060009150613d07565b84861115613d0757610120810151600b548690613ce2828a614bb2565b613cec9190614e29565b613cf69190614c58565b613d009190614c58565b9250600191505b600080613d168b8b8787613fd3565b60009788526009602052604090972060028101919091556003019590955550919890975095505050505050565b6000808251604103613d795760208301516040840151606085015160001a613d6d8782858561425a565b94509450505050613d81565b506000905060025b9250929050565b6000816004811115613d9c57613d9c61513b565b03613da45750565b6001816004811115613db857613db861513b565b03613e055760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108a9565b6002816004811115613e1957613e1961513b565b03613e665760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108a9565b6003816004811115613e7a57613e7a61513b565b03610e045760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600081600081518110613f0257613f02614bc9565b6020026020010151905060008260018451613f1d9190614bb2565b81518110613f2d57613f2d614bc9565b6020026020010151905060006040518060400160405280613f4d856123c7565b8152602001846001600160a01b0316815250905060006040518060400160405280613f77856123c7565b8152602001846001600160a01b031681525090506000613f978787610b36565b9050613fa7612710826000610aee565b90506000613fb642600a614fb0565b9050613fc884848a858b600087612570565b61280e853384613075565b600080600084131561421e576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b909101548461402b5761401d82614e48565b915061402881614e48565b90505b614034826123ab565b6001600160a01b03808a166000908152600760209081526040808320938c1683529290522060010154614067919061516a565b6140718784614e80565b61407b9190614f3c565b6001600160a01b03808a166000908152600760209081526040808320938c16835292905220600301549094506140b18783614e80565b6140bb9190614f3c565b925060008212614126576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614121576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614152565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b600081126141bb576001600160a01b038089166000908152600760209081526040808320938b16835292905220600801548313156141b6576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614217565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614217576001600160a01b038089166000908152600760208181526040808420948c168452939052919020015492505b5050614251565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142915750600090506003614251565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142e5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661430e57600060019250925050614251565b9660009650945050505050565b6000806040838503121561432e57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e0457600080fd5b803561435d8161433d565b919050565b6000806040838503121561437557600080fd5b82356143808161433d565b915060208301356143908161433d565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156143ee576143ee61439b565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561441d5761441d61439b565b604052919050565b600067ffffffffffffffff82111561443f5761443f61439b565b5060051b60200190565b600082601f83011261445a57600080fd5b8135602061446f61446a83614425565b6143f4565b82815260059290921b8401810191818101908684111561448e57600080fd5b8286015b848110156144b25780356144a58161433d565b8352918301918301614492565b509695505050505050565b6000602082840312156144cf57600080fd5b813567ffffffffffffffff8111156144e657600080fd5b6144f284828501614449565b949350505050565b600081518084526020808501945080840160005b838110156145335781516001600160a01b03168752958201959082019060010161450e565b509495945050505050565b60208152600061077c60208301846144fa565b60008060006060848603121561456657600080fd5b83356145718161433d565b925060208401356145818161433d565b929592945050506040919091013590565b600082601f8301126145a357600080fd5b813567ffffffffffffffff8111156145bd576145bd61439b565b6145d06020601f19601f840116016143f4565b8181528460208386010111156145e557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561461a57600080fd5b85359450602086013561462c8161433d565b93506040860135925060608601359150608086013567ffffffffffffffff81111561465657600080fd5b61466288828901614592565b9150509295509295909350565b6000806000806080858703121561468557600080fd5b84359350602085013567ffffffffffffffff8111156146a357600080fd5b6146af87828801614449565b949794965050505060408301359260600135919050565b6000602082840312156146d857600080fd5b813567ffffffffffffffff8111156146ef57600080fd5b6144f284828501614592565b8015158114610e0457600080fd5b60008060006060848603121561471e57600080fd5b83359250602084013591506040840135614737816146fb565b809150509250925092565b6000806040838503121561475557600080fd5b82359150602083013567ffffffffffffffff81111561477357600080fd5b61477f85828601614449565b9150509250929050565b600080600080600060a086880312156147a157600080fd5b85356147ac8161433d565b945060208601356147bc8161433d565b9350604086013567ffffffffffffffff8111156147d857600080fd5b6147e488828901614449565b9350506060860135915060808601356147fc8161433d565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161483b60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016148aa828861480a565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b6000602082840312156148e257600080fd5b5035919050565b6000602082840312156148fb57600080fd5b813561077c8161433d565b60006080828403121561491857600080fd5b6040516080810181811067ffffffffffffffff8211171561493b5761493b61439b565b604052905080823561494c8161433d565b80825250602083013560208201526040830135604082015260608301356149728161433d565b6060919091015292915050565b60008060008084860361024081121561499757600080fd5b85356149a28161433d565b945060208601356149b28161433d565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082018113156149e657600080fd5b6149ee6143ca565b91506149fc60408801614352565b825260608701356020830152614a1460808801614352565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614a8f866101c08701614906565b905092959194509250565b600080600060608486031215614aaf57600080fd5b8335614aba8161433d565b92506020840135614aca8161433d565b9150604084013567ffffffffffffffff811115614ae657600080fd5b614af286828701614449565b9150509250925092565b6101c08101614b0b828661480a565b6101808201939093526101a00152919050565b60008060008060008060c08789031215614b3757600080fd5b863567ffffffffffffffff811115614b4e57600080fd5b614b5a89828a01614449565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614bc457614bc4614b83565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203614c0b57614c0b614b83565b5060010190565b600081614c2157614c21614b83565b506000190190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614c6757614c67614c29565b500490565b8281526040602082015260006144f260408301846144fa565b60006020808385031215614c9857600080fd5b825167ffffffffffffffff811115614caf57600080fd5b8301601f81018513614cc057600080fd5b8051614cce61446a82614425565b81815260059190911b82018301908381019087831115614ced57600080fd5b928401925b82841015614d0b57835182529284019290840190614cf2565b979650505050505050565b600060208284031215614d2857600080fd5b815160ff8116811461077c57600080fd5b600181815b80851115614d74578160001904821115614d5a57614d5a614b83565b80851615614d6757918102915b93841c9390800290614d3e565b509250929050565b600082614d8b57506001611aa6565b81614d9857506000611aa6565b8160018114614dae5760028114614db857614dd4565b6001915050611aa6565b60ff841115614dc957614dc9614b83565b50506001821b611aa6565b5060208310610133831016604e8410600b8410161715614df7575081810a611aa6565b614e018383614d39565b8060001904821115614e1557614e15614b83565b029392505050565b600061077c8383614d7c565b6000816000190483118215151615614e4357614e43614b83565b500290565b60007f80000000000000000000000000000000000000000000000000000000000000008203614e7957614e79614b83565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614ec157614ec1614b83565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614efc57614efc614b83565b60008712925087820587128484161615614f1857614f18614b83565b87850587128184161615614f2e57614f2e614b83565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614f7657614f76614b83565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614faa57614faa614b83565b50500190565b60008219821115614fc357614fc3614b83565b500190565b60005b83811015614fe3578181015183820152602001614fcb565b83811115614ff2576000848401525b50505050565b6000825161500a818460208701614fc8565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c084015261505e8160e0850160208701614fc8565b601f01601f19169190910160e001979650505050505050565b60006020828403121561508957600080fd5b5051919050565b6000602082840312156150a257600080fd5b815161077c816146fb565b85815284602082015260a0604082015260006150cc60a08301866144fa565b6001600160a01b0394909416606083015250608001529392505050565b84815260806020820152600061510260808301866144fa565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561513057600080fd5b815161077c8161433d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008261517957615179614c29565b60001983147f8000000000000000000000000000000000000000000000000000000000000000831416156151af576151af614b83565b50059056fea264697066735822122074155467eba2a0d0d61cb665c23eb6f94e85b57eb23af3784e5ca59748bfc42f64736f6c634300080e0033",
|
|
1153
|
+
"deployedBytecode": "0x6080604052600436106101ae5760003560e01c80635ff530f2116100eb57806381f3fdc31161008f578063aa5d448f11610061578063aa5d448f146106c3578063d96661ef146106e3578063f2fde38b14610703578063fe8691b41461072357005b806381f3fdc3146106015780638da5cb5b14610630578063a6a3694a1461064e578063a7a38f0b1461066157005b80636f151a38116100c85780636f151a381461058c578063715018a6146105ac578063744cfdd9146105c15780637aaa9b02146105e157005b80635ff530f21461051b57806362a766031461053b5780636a59f8331461056c57005b806327af9e381161015257806334e3f92d1161012f57806334e3f92d1461045b5780633fc8cef3146104a657806340216a83146104c65780635c818121146104fb57005b806327af9e381461032c5780632926e5de146103425780632bd2c18d1461043b57005b80630fcc40c41161018b5780630fcc40c4146102875780631b153401146102b45780631f8c24de146102d4578063238ac933146102f457005b8063016eb8a8146101b7578063089afeae146101ea5780630d83b1e41461027157005b366101b557005b005b3480156101c357600080fd5b506101d76101d236600461431b565b610762565b6040519081526020015b60405180910390f35b3480156101f657600080fd5b50610242610205366004614362565b600860209081526000928352604080842090915290825290208054600182015460028301546003909301546001600160a01b039283169391921684565b604080516001600160a01b039586168152602081019490945283019190915290911660608201526080016101e1565b34801561027d57600080fd5b506101d7600b5481565b34801561029357600080fd5b506102a76102a23660046144bd565b610783565b6040516101e1919061453e565b3480156102c057600080fd5b506101b56102cf366004614551565b610853565b3480156102e057600080fd5b506101b56102ef366004614602565b61090e565b34801561030057600080fd5b50600254610314906001600160a01b031681565b6040516001600160a01b0390911681526020016101e1565b34801561033857600080fd5b506101d7600a5481565b34801561034e57600080fd5b506103d161035d366004614362565b6007602081815260009384526040808520909152918352912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009890154600a8a0154600b909a01546001600160a01b03998a169b989a99909716989597949693959293919290918c565b604080516001600160a01b039d8e168152602081019c909c5299909b16988a01989098526060890196909652608088019490945260a087019290925260c086015260e0850152610100840152610120830152610140820152610160810191909152610180016101e1565b34801561044757600080fd5b506101d761045636600461466f565b61098e565b34801561046757600080fd5b506104966104763660046146c6565b805160208183018101805160038252928201919093012091525460ff1681565b60405190151581526020016101e1565b3480156104b257600080fd5b50600454610314906001600160a01b031681565b3480156104d257600080fd5b506104e66104e1366004614362565b6109e3565b604080519283526020830191909152016101e1565b34801561050757600080fd5b506101d7610516366004614709565b610aee565b34801561052757600080fd5b506101d7610536366004614742565b610b36565b34801561054757600080fd5b5061055b610556366004614789565b610c7a565b6040516101e195949392919061489b565b34801561057857600080fd5b506101b56105873660046148d0565b610d42565b34801561059857600080fd5b506101b56105a73660046148e9565b610da1565b3480156105b857600080fd5b506101b5610e07565b3480156105cd57600080fd5b506101d76105dc366004614742565b610e6d565b3480156105ed57600080fd5b506101b56105fc36600461497f565b610f97565b34801561060d57600080fd5b5061062161061c366004614a9a565b611253565b6040516101e193929190614afc565b34801561063c57600080fd5b506000546001600160a01b0316610314565b6101b561065c366004614b1e565b611623565b34801561066d57600080fd5b506106a361067c3660046148d0565b60096020526000908152604090208054600182015460028301546003909301549192909184565b6040805194855260208501939093529183015260608201526080016101e1565b3480156106cf57600080fd5b506101b56106de3660046148e9565b611958565b3480156106ef57600080fd5b50600554610314906001600160a01b031681565b34801561070f57600080fd5b506101b561071e3660046148e9565b6119bb565b34801561072f57600080fd5b506104e661073e366004614362565b60066020908152600092835260408084209091529082529020805460019091015482565b600b5460009061077c906107768585611a9a565b90611aac565b9392505050565b805160609060008167ffffffffffffffff8111156107a3576107a361439b565b6040519080825280602002602001820160405280156107cc578160200160208202803683370190505b5090506000825b6001811061084957856107e7600183614bb2565b815181106107f7576107f7614bc9565b602002602001015183838151811061081157610811614bc9565b6001600160a01b03909216602092830291909101909101528161083381614bf8565b925050808061084190614c12565b9150506107d3565b5090949350505050565b6000546001600160a01b031633146108b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6108bd838383611ab8565b6109095760405162461bcd60e51b815260206004820152601660248201527f546f6b656e4d61726b65743a3a73656e64206661696c0000000000000000000060448201526064016108a9565b505050565b610916611aef565b6109238585858585611b48565b61092f85858584611d34565b81421061097e5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a4f726465722045787069726174696f6e00000060448201526064016108a9565b61098760018055565b5050505050565b600080808481036109bb576109a38787610b36565b91506109b184836000610aee565b91508192506109d9565b6109c58787610e6d565b90506109d384826001610aee565b90508092505b5050949350505050565b6000806000600a54426109f69190614c58565b6001600160a01b0380871660009081526007602081815260408084208a8616855282528084208151610180810183528154871681526001820154818501526002820154909616868301526003810154606087015260048101546080870152600581015460a0870152600681015460c08701529283015460e08601526008830154610100860152600980840154610120870152600a840154610140870152600b9093015461016086015285845291905281205492935090919003610ac6578060200151935080606001519250610ae5565b6000828152600960205260409020600281015460039091015490945092505b50509250929050565b600060018215610b0c57600b54610b059086611da3565b9050610b1c565b600b54610b199086611daf565b90505b600b54610b2d906107768684611a9a565b95945050505050565b6005546040517fd06ca61f00000000000000000000000000000000000000000000000000000000815260009182916001600160a01b039091169063d06ca61f90610b869087908790600401614c6c565b600060405180830381865afa158015610ba3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bcb9190810190614c85565b905080610be360018351611daf90919063ffffffff16565b81518110610bf357610bf3614bc9565b6020026020010151915060008211610c735760405162461bcd60e51b815260206004820152602f60248201527f546f6b656e4d61726b65743a3a6f7574416d6f756e742073686f756c6420626560448201527f2067726561746572207468616e2030000000000000000000000000000000000060648201526084016108a9565b5092915050565b610cf060405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b600080600080600080610d058c8c8c8c611dbb565b92995090945092509050610d1b8c8c8b86611fa7565b9850610d2b8c8c8b8b8686611ff1565b989e919d509b509699509197509495505050505050565b6000546001600160a01b03163314610d9c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b600a55565b6000546001600160a01b03163314610dfb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e048161228e565b50565b6000546001600160a01b03163314610e615760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e6b6000612343565b565b6005546040517f1f00ca7400000000000000000000000000000000000000000000000000000000815260009182916001600160a01b0390911690631f00ca7490610ebd9087908790600401614c6c565b600060405180830381865afa158015610eda573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f029190810190614c85565b905080600081518110610f1757610f17614bc9565b6020026020010151915060008211610c735760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a696e416d6f756e742073686f756c642062652060448201527f67726561746572207468616e203000000000000000000000000000000000000060648201526084016108a9565b6000546001600160a01b03163314610ff15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b6000826060015112156110465760405162461bcd60e51b815260206004820152601860248201527f546f6b656e4d61726b65743a3a726577617264203e3d2030000000000000000060448201526064016108a9565b60008260200151121561109b5760405162461bcd60e51b815260206004820152601960248201527f546f6b656e4d61726b65743a3a66656552617465203e3d20300000000000000060448201526064016108a9565b836001600160a01b031681606001516001600160a01b031614806110d45750826001600160a01b031681606001516001600160a01b0316145b6111205760405162461bcd60e51b815260206004820152601c60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2070726963696e670000000060448201526064016108a9565b6001600160a01b03938416600081815260076020818152604080842097891680855297825280842087518154908b167fffffffffffffffffffffffff000000000000000000000000000000000000000091821617825583890151600180840191909155838a015160028085018054928f16928516929092179091556060808c015160038087019190915560808d0151600487015560a08d0151600587015560c08d0151600687015560e08d0151988601989098556101008c01516008808701919091556101208d015160098701556101408d0151600a870155610160909c0151600b909501949094559787529884528286209986529883529381902086518154908b16908a1617815591860151968201969096559484015192850192909255919091015191018054919093169116179055565b6112c960405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808416600081815260076020818152604080842088871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce567000000000000000000000000000000000000000000000000000000008152905193948594909363313ce5679383820193909291908290030181865afa1580156113c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e99190614d16565b60ff1691506114026113fc83600a614e1d565b85610b36565b90506000808285608001511115611454576101208501516080860151600b5461142b8683614bb2565b6114359190614e29565b61143f9190614c58565b6114499190614c58565b90506000915061149d565b846080015183111561149d576101208501516080860151600b546114788287614bb2565b6114829190614e29565b61148c9190614c58565b6114969190614c58565b9050600191505b60008113156116185760808501839052610140850151610160860151836114d5576114c782614e48565b91506114d281614e48565b90505b600082126115185760208701516114ec8484614e80565b6114f69190614f3c565b6020880181905260c088015112156115135760c087015160208801525b611574565b86602001518760a001518461152c856123ab565b6115369190614e80565b6115409190614f3c565b13156115555760a08701516020880152611574565b60208701516115648484614e80565b61156e9190614f3c565b60208801525b600081126115b957606087015161158b8483614e80565b6115959190614f3c565b6060880181905261010088015112156115b45761010087015160608801525b611615565b86606001518760e00151846115cd846123ab565b6115d79190614e80565b6115e19190614f3c565b13156115f65760e08701516060880152611615565b60608701516116058483614e80565b61160f9190614f3c565b60608801525b50505b505093509350939050565b61162b611aef565b33321461167a5760405162461bcd60e51b815260206004820152601b60248201527f546f6b656e4d61726b65743a3a496c6c6567616c2063616c6c6572000000000060448201526064016108a9565b333b156116ee5760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a50726f686962697420636f6e7472616374206360448201527f616c6c730000000000000000000000000000000000000000000000000000000060648201526084016108a9565b82600003611715576117008587610b36565b935061170e81856000610aee565b9350611730565b61171f8487610e6d565b945061172d81866001610aee565b94505b60008660008151811061174557611745614bc9565b60200260200101519050600087600189516117609190614bb2565b8151811061177057611770614bc9565b6020908102919091018101513360009081526006835260408082206001600160a01b03871683529093529182206001018054919350899290916117b4908490614fb0565b92505081905550600060405180604001604052806117d1856123c7565b8152602001846001600160a01b03168152509050600060405180604001604052806117fb856123c7565b81526001600160a01b038516602090910152825190915060030361182a576118258433308c612400565b61189f565b88341461189f5760405162461bcd60e51b815260206004820152602660248201527f546f6b656e4d61726b65743a3a696e70757420657468206973206e6f7420616360448201527f637572617465000000000000000000000000000000000000000000000000000060648201526084016108a9565b6118ae82828b8b8e8c8c612570565b60006118bb85858b612819565b90506000806118cc87878f8e61295f565b915091506118db87878f612bc1565b604080513381526001600160a01b038981166020830152881681830152606081018e90526080810185905260a0810184905260c0810183905290517f38f821c5ea6d48d9d87fc7acd83a6b91f7e510b1e61861bdb0e4377af272d1b49181900360e00190a15050505050505061195060018055565b505050505050565b6000546001600160a01b031633146119b25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b610e0481612df7565b6000546001600160a01b03163314611a155760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016108a9565b6001600160a01b038116611a915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016108a9565b610e0481612343565b600061077c8284614e29565b92915050565b600061077c8284614c58565b60006001600160a01b038416611ada57611ad28383612f5c565b50600161077c565b611ae5848484613075565b5060019392505050565b600260015403611b415760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016108a9565b6002600155565b600381604051611b589190614ff8565b9081526040519081900360200190205460ff1615611bb85760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a6365727469666963617465206578706972656460448201526064016108a9565b60408051466020808301919091528183018890527fffffffffffffffffffffffffffffffffffffffff00000000000000000000000033606090811b82168185015288901b1660748301526088820186905260a88083018690528351808403909101815260c8830184528051908201207f19457468657265756d205369676e6564204d6573736167653a0a33320000000060e884015261010480840191909152835180840390910181526101249092019092528051910120600090611c7c90836131dd565b6002549091506001600160a01b03808316911614611cdc5760405162461bcd60e51b815260206004820181905260248201527f546f6b656e4d61726b65743a3a696e76616c696420636572746966696361746560448201526064016108a9565b6001600383604051611cee9190614ff8565b90815260405190819003602001902080549115157fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00909216919091179055505050505050565b6001600160a01b038316611d5157611d4c3383612f5c565b611d5c565b611d5c833384613075565b7f620ad9fc50d4bd40a79cb189cc547554eb4619554627f5ff4b98002f3269211d338585854286604051611d9596959493929190615014565b60405180910390a150505050565b600061077c8284614fb0565b600061077c8284614bb2565b611e3160405180610180016040528060006001600160a01b031681526020016000815260200160006001600160a01b031681526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b506001600160a01b03808516600081815260076020818152604080842089871685528252808420815161018081018352815488168152600182015481850152600282015490971687830152600381015460608801526004808201546080890152600582015460a0890152600682015460c08901529381015460e088015260088101546101008801526009810154610120880152600a810154610140880152600b015461016087015280517f313ce5670000000000000000000000000000000000000000000000000000000081529051939485948594919363313ce5679380840193919291908290030181865afa158015611f2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f539190614d16565b60ff169150611f6c611f6683600a614e1d565b87610b36565b9050600080611f7b8a8a6109e3565b60208801829052606088018190529092509050611f988783610762565b94505050945094509450949050565b6001600160a01b038085166000908152600860209081526040808320938716835292905290812060020154610b2d90611fe1908590610762565b611feb8585611daf565b90611daf565b6001600160a01b03868116600090815260086020908152604080832089851680855290835281842082516080810184528154871681526001808301548287015260028301548286015260039092015487166060820152958916855260068452828520918552925282209081015490549192839283921161208057612079888260200151610762565b9350612275565b6001600160a01b038781166000908152600660209081526040808320938d16835292905220600181015490546120b7908a90614fb0565b1061210c576001600160a01b038781166000908152600660209081526040808320938d168352929052206001810154905461207991906120f8908b90614fb0565b6121029190614bb2565b8260200151610762565b600061211987600a614e1d565b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b038a811660048301528891908e16906370a0823190602401602060405180830381865afa15801561217b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061219f9190615077565b6121a99190614e29565b6121b39190614c58565b6001600160a01b038981166000908152600660209081526040808320938f16835292905220600181015490549192509082906121f0908c90614fb0565b6121fa9190614fb0565b1015612273576001600160a01b038089166000908152600660209081526040808320938e16835292905220548190612233908b90614fb0565b61223d9190614fb0565b6001600160a01b03808a166000908152600660209081526040808320938f16835292905220600101546122709190614bb2565b93505b505b61227f8885611daf565b91505096509650969350505050565b6001600160a01b0381166123095760405162461bcd60e51b8152602060048201526024808201527f546f6b656e4d61726b65743a3a696e76616c6964207369676e696e672061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808212156123c3576123be82614e48565b611aa6565b5090565b600060036001600160a01b0383166123e157506001611aa6565b6004546001600160a01b0390811690841603611aa65750600292915050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd0000000000000000000000000000000000000000000000000000000017905291516000928392908816916124929190614ff8565b6000604051808303816000865af19150503d80600081146124cf576040519150601f19603f3d011682016040523d82523d6000602084013e6124d4565b606091505b50915091508180156124fe5750805115806124fe5750808060200190518101906124fe9190615090565b6119505760405162461bcd60e51b815260206004820152603160248201527f5472616e7366657248656c7065723a3a7472616e7366657246726f6d3a20747260448201527f616e7366657246726f6d206661696c656400000000000000000000000000000060648201526084016108a9565b865160030361259557602087015160055461259591906001600160a01b031687613201565b865160031480156125a7575085516003145b80156125b1575081155b15612654576005546040517f38ed17390000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906338ed17399061260790889088908890309088906004016150ad565b6000604051808303816000875af1158015612626573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261264e9190810190614c85565b50612810565b86516003148015612666575085516003145b80156126725750816001145b156126c8576005546040517f8803dbee0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690638803dbee9061260790879089908890309088906004016150ad565b865160031480156126e557508551600214806126e5575085516001145b80156126f15750816001145b15612747576005546040517f4a25d94a0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690634a25d94a9061260790879089908890309088906004016150ad565b865160021480612758575086516001145b8015612765575085516003145b80156127715750816001145b15612810576005546040517ffb3bdb410000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063fb3bdb419087906127c79088908890309088906004016150e9565b60006040518083038185885af11580156127e5573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f1916820160405261280e9190810190614c85565b505b50505050505050565b6001600160a01b038084166000908152600760208181526040808420878616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b9092015461016083015290816128d086866109e3565b5090506128dd8482610762565b9250600060405180604001604052806128f5886123c7565b81526001600160a01b03881660209091015280519091506003036129385782516001600160a01b031630146129335761293386846000015186613075565b612955565b82516001600160a01b031630146129555782516129559085613369565b5050509392505050565b6001600160a01b03808516600090815260086020908152604080832087851684528252808320815160808101835281548616815260018201549381019390935260028101549183019190915260030154909216606083015290819081806129c88989898961344c565b3360009081526006602090815260408083206001600160a01b038f168452909152902060018101549054939950919450925011612a1457612a0d868460200151610762565b9450612b4f565b3360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612a49908890614fb0565b10612a9c573360009081526006602090815260408083206001600160a01b038c168452909152902060018101549054612a0d9190612a88908990614fb0565b612a929190614bb2565b8460200151610762565b6000612aa982600a614e1d565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815233600482015284906001600160a01b038d16906370a0823190602401602060405180830381865afa158015612b08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b2c9190615077565b612b369190614e29565b612b409190614c58565b9050612b4d8988836137d5565b505b612b598686611daf565b93508415612b7057612b7088846000015187613075565b612b7b883386613075565b3360009081526006602090815260408083206001600160a01b038c16845290915281208054869290612bae908490614fb0565b9250508190555050505094509492505050565b6000600a5442612bd19190614c58565b90506000600960008381526020019081526020016000206040518060800160405290816000820154815260200160018201548152602001600282015481526020016003820154815250509050600060076000876001600160a01b03166001600160a01b031681526020019081526020016000206000866001600160a01b03166001600160a01b03168152602001908152602001600020604051806101800160405290816000820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b03168152602001600182015481526020016002820160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b0316815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152602001600a8201548152602001600b820154815250509050600060096000600186612d4a9190614bb2565b815260200190815260200160002060010154905082600001516000148015612d70575080155b15612d8e576080820151600085815260096020526040902055612da9565b8251600003612da95760008481526009602052604090208190555b6000612db688888861393e565b600086815260096020526040902054909150612dd689898985858b613b31565b50505060009485526009602052604090942060010193909355505050505050565b6001600160a01b038116612e735760405162461bcd60e51b815260206004820152602260248201527f546f6b656e4d61726b65743a3a696e76616c696420726f75746520616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038316908117909155604080517fad5c4648000000000000000000000000000000000000000000000000000000008152905163ad5c4648916004808201926020929091908290030181865afa158015612efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f21919061511e565b600480547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b039290921691909117905550565b80471015612fac5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108a9565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612ff9576040519150601f19603f3d011682016040523d82523d6000602084013e612ffe565b606091505b50509050806109095760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108a9565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916130ff9190614ff8565b6000604051808303816000865af19150503d806000811461313c576040519150601f19603f3d011682016040523d82523d6000602084013e613141565b606091505b509150915081801561316b57508051158061316b57508080602001905181019061316b9190615090565b6109875760405162461bcd60e51b815260206004820152602d60248201527f5472616e7366657248656c7065723a3a736166655472616e736665723a20747260448201527f616e73666572206661696c65640000000000000000000000000000000000000060648201526084016108a9565b60008060006131ec8585613d43565b915091506131f981613d88565b509392505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052915160009283929087169161328b9190614ff8565b6000604051808303816000865af19150503d80600081146132c8576040519150601f19603f3d011682016040523d82523d6000602084013e6132cd565b606091505b50915091508180156132f75750805115806132f75750808060200190518101906132f79190615090565b6109875760405162461bcd60e51b815260206004820152602b60248201527f5472616e7366657248656c7065723a3a73616665417070726f76653a2061707060448201527f726f7665206661696c656400000000000000000000000000000000000000000060648201526084016108a9565b604080516000808252602082019092526001600160a01b0384169083906040516133939190614ff8565b60006040518083038185875af1925050503d80600081146133d0576040519150601f19603f3d011682016040523d82523d6000602084013e6133d5565b606091505b50509050806109095760405162461bcd60e51b815260206004820152603460248201527f5472616e7366657248656c7065723a3a736166655472616e736665724554483a60448201527f20455448207472616e73666572206661696c656400000000000000000000000060648201526084016108a9565b6001600160a01b038085166000908152600760208181526040808420888616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e082015260088301546101008201526009830154610120820152600a830154610140820152600b90920154610160830152908190819081806135088a8a6109e3565b915091506135168782610762565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015613579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061359d9190615077565b10156136115760405162461bcd60e51b815260206004820152602e60248201527f546f6b656e4d61726b65743a3a52657761726420546f6b656e20496e7375666660448201527f696369656e742042616c616e636500000000000000000000000000000000000060648201526084016108a9565b600061361d8883610762565b11156136965761363b8360400151336136368a85610762565b613075565b7f6b053894d8fdbdcc936dd753e21291f0c48e68ef12306eb39a63a374147ba4bd33846040015161366c8a85610762565b604080516001600160a01b0394851681529390921660208401529082015260600160405180910390a15b6001600160a01b03808b1660009081526008602090815260408083208d85168452825280832081516080810183528154861681526001820154938101939093526002810154918301829052600301549093166060820152916136f9908a90610762565b111561371e5761371e613710898360400151610762565b6137198b610783565b613eed565b8a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561375c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137809190614d16565b60ff16945061379961379386600a614e1d565b8a610b36565b955060006137a78985610762565b90506137c46137ba8a8460400151610762565b611feb8b84611daf565b975050505050509450945094915050565b3360009081526006602090815260408083206001600160a01b0387168452909152902060018101549054829061380c908590614fb0565b6138169190614fb0565b1015610909573360009081526006602090815260408083206001600160a01b0387168452909152812054829061384d908590614fb0565b6138579190614fb0565b3360009081526006602090815260408083206001600160a01b03891684529091529020600101546138889190614bb2565b905080156138c9573360009081526006602090815260408083206001600160a01b0388168452909152812080548392906138c3908490614fb0565b90915550505b3360008181526006602090815260408083206001600160a01b03891680855290835292819020600181015490548251958652928501939093528301849052606083019190915260808201527f4e7e2735528d8c3e943fd545526d432a6f178a48e5e201186f897a1a865336539060a001611d95565b6001600160a01b038084166000818152600860209081526040808320878616845282528083208151608081018352815487168152600182015493810193909352600281015491830191909152600301549093166060840181905290929183919003613a2857846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156139e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a059190614d16565b60ff169050613a21613a1882600a614e1d565b61053686610783565b9250613b28565b81606001516001600160a01b0316856001600160a01b031603613aba57856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa79190614d16565b60ff169050613a216113fc82600a614e1d565b60405162461bcd60e51b815260206004820152602760248201527f546f6b656e4d61726b65743a3a496c6c6567616c2076616c756174696f6e206360448201527f757272656e63790000000000000000000000000000000000000000000000000060648201526084016108a9565b50509392505050565b6001600160a01b0380871660009081526007602081815260408084208a8616855282528084208151610180810183528154871681526001820154938101939093526002810154909516908201526003840154606082015260048401546080820152600584015460a0820152600684015460c08201529083015460e0820152600883015461010082015260098301546101208201819052600a840154610140830152600b909301546101608201529091829190613c2f5760405162461bcd60e51b815260206004820152601d60248201527f546f6b656e4d61726b65743a3a636f6e6669672e72616e6765203e203000000060448201526064016108a9565b60008511613c7f5760405162461bcd60e51b815260206004820152601560248201527f546f6b656e4d61726b65743a3a6f70656e203e2030000000000000000000000060448201526064016108a9565b85851115613cc557610120810151600b548690613c9c8983614bb2565b613ca69190614e29565b613cb09190614c58565b613cba9190614c58565b925060009150613d07565b84861115613d0757610120810151600b548690613ce2828a614bb2565b613cec9190614e29565b613cf69190614c58565b613d009190614c58565b9250600191505b600080613d168b8b8787613fd3565b60009788526009602052604090972060028101919091556003019590955550919890975095505050505050565b6000808251604103613d795760208301516040840151606085015160001a613d6d8782858561425a565b94509450505050613d81565b506000905060025b9250929050565b6000816004811115613d9c57613d9c61513b565b03613da45750565b6001816004811115613db857613db861513b565b03613e055760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016108a9565b6002816004811115613e1957613e1961513b565b03613e665760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016108a9565b6003816004811115613e7a57613e7a61513b565b03610e045760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c60448201527f756500000000000000000000000000000000000000000000000000000000000060648201526084016108a9565b600081600081518110613f0257613f02614bc9565b6020026020010151905060008260018451613f1d9190614bb2565b81518110613f2d57613f2d614bc9565b6020026020010151905060006040518060400160405280613f4d856123c7565b8152602001846001600160a01b0316815250905060006040518060400160405280613f77856123c7565b8152602001846001600160a01b031681525090506000613f978787610b36565b9050613fa7612710826000610aee565b90506000613fb642600a614fb0565b9050613fc884848a858b600087612570565b61280e853384613075565b600080600084131561421e576001600160a01b038681166000908152600760209081526040808320938916835292905220600a810154600b909101548461402b5761401d82614e48565b915061402881614e48565b90505b614034826123ab565b6001600160a01b03808a166000908152600760209081526040808320938c1683529290522060010154614067919061516a565b6140718784614e80565b61407b9190614f3c565b6001600160a01b03808a166000908152600760209081526040808320938c16835292905220600301549094506140b18783614e80565b6140bb9190614f3c565b925060008212614126576001600160a01b038089166000908152600760209081526040808320938b1683529290522060060154841315614121576001600160a01b038089166000908152600760209081526040808320938b168352929052206006015493505b614152565b6001600160a01b038089166000908152600760209081526040808320938b168352929052206001015493505b600081126141bb576001600160a01b038089166000908152600760209081526040808320938b16835292905220600801548313156141b6576001600160a01b038089166000908152600760209081526040808320938b168352929052206008015492505b614217565b6001600160a01b038089166000908152600760208181526040808420948c1684529390529190200154831215614217576001600160a01b038089166000908152600760208181526040808420948c168452939052919020015492505b5050614251565b50506001600160a01b03848116600090815260076020908152604080832093871683529290522060018101546003909101545b94509492505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156142915750600090506003614251565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa1580156142e5573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661430e57600060019250925050614251565b9660009650945050505050565b6000806040838503121561432e57600080fd5b50508035926020909101359150565b6001600160a01b0381168114610e0457600080fd5b803561435d8161433d565b919050565b6000806040838503121561437557600080fd5b82356143808161433d565b915060208301356143908161433d565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610180810167ffffffffffffffff811182821017156143ee576143ee61439b565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561441d5761441d61439b565b604052919050565b600067ffffffffffffffff82111561443f5761443f61439b565b5060051b60200190565b600082601f83011261445a57600080fd5b8135602061446f61446a83614425565b6143f4565b82815260059290921b8401810191818101908684111561448e57600080fd5b8286015b848110156144b25780356144a58161433d565b8352918301918301614492565b509695505050505050565b6000602082840312156144cf57600080fd5b813567ffffffffffffffff8111156144e657600080fd5b6144f284828501614449565b949350505050565b600081518084526020808501945080840160005b838110156145335781516001600160a01b03168752958201959082019060010161450e565b509495945050505050565b60208152600061077c60208301846144fa565b60008060006060848603121561456657600080fd5b83356145718161433d565b925060208401356145818161433d565b929592945050506040919091013590565b600082601f8301126145a357600080fd5b813567ffffffffffffffff8111156145bd576145bd61439b565b6145d06020601f19601f840116016143f4565b8181528460208386010111156145e557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561461a57600080fd5b85359450602086013561462c8161433d565b93506040860135925060608601359150608086013567ffffffffffffffff81111561465657600080fd5b61466288828901614592565b9150509295509295909350565b6000806000806080858703121561468557600080fd5b84359350602085013567ffffffffffffffff8111156146a357600080fd5b6146af87828801614449565b949794965050505060408301359260600135919050565b6000602082840312156146d857600080fd5b813567ffffffffffffffff8111156146ef57600080fd5b6144f284828501614592565b8015158114610e0457600080fd5b60008060006060848603121561471e57600080fd5b83359250602084013591506040840135614737816146fb565b809150509250925092565b6000806040838503121561475557600080fd5b82359150602083013567ffffffffffffffff81111561477357600080fd5b61477f85828601614449565b9150509250929050565b600080600080600060a086880312156147a157600080fd5b85356147ac8161433d565b945060208601356147bc8161433d565b9350604086013567ffffffffffffffff8111156147d857600080fd5b6147e488828901614449565b9350506060860135915060808601356147fc8161433d565b809150509295509295909350565b80516001600160a01b0316825260208101516020830152604081015161483b60408401826001600160a01b03169052565b50606081810151908301526080808201519083015260a0808201519083015260c0808201519083015260e0808201519083015261010080820151908301526101208082015190830152610140808201519083015261016090810151910152565b61020081016148aa828861480a565b85610180830152846101a0830152836101c0830152826101e08301529695505050505050565b6000602082840312156148e257600080fd5b5035919050565b6000602082840312156148fb57600080fd5b813561077c8161433d565b60006080828403121561491857600080fd5b6040516080810181811067ffffffffffffffff8211171561493b5761493b61439b565b604052905080823561494c8161433d565b80825250602083013560208201526040830135604082015260608301356149728161433d565b6060919091015292915050565b60008060008084860361024081121561499757600080fd5b85356149a28161433d565b945060208601356149b28161433d565b93506101807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082018113156149e657600080fd5b6149ee6143ca565b91506149fc60408801614352565b825260608701356020830152614a1460808801614352565b604083015260a0870135606083015260c0870135608083015260e087013560a08301526101008088013560c08401526101208089013560e0850152610140808a0135838601526101609250828a013582860152838a01358186015250506101a088013581840152505080925050614a8f866101c08701614906565b905092959194509250565b600080600060608486031215614aaf57600080fd5b8335614aba8161433d565b92506020840135614aca8161433d565b9150604084013567ffffffffffffffff811115614ae657600080fd5b614af286828701614449565b9150509250925092565b6101c08101614b0b828661480a565b6101808201939093526101a00152919050565b60008060008060008060c08789031215614b3757600080fd5b863567ffffffffffffffff811115614b4e57600080fd5b614b5a89828a01614449565b9960208901359950604089013598606081013598506080810135975060a0013595509350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082821015614bc457614bc4614b83565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006000198203614c0b57614c0b614b83565b5060010190565b600081614c2157614c21614b83565b506000190190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082614c6757614c67614c29565b500490565b8281526040602082015260006144f260408301846144fa565b60006020808385031215614c9857600080fd5b825167ffffffffffffffff811115614caf57600080fd5b8301601f81018513614cc057600080fd5b8051614cce61446a82614425565b81815260059190911b82018301908381019087831115614ced57600080fd5b928401925b82841015614d0b57835182529284019290840190614cf2565b979650505050505050565b600060208284031215614d2857600080fd5b815160ff8116811461077c57600080fd5b600181815b80851115614d74578160001904821115614d5a57614d5a614b83565b80851615614d6757918102915b93841c9390800290614d3e565b509250929050565b600082614d8b57506001611aa6565b81614d9857506000611aa6565b8160018114614dae5760028114614db857614dd4565b6001915050611aa6565b60ff841115614dc957614dc9614b83565b50506001821b611aa6565b5060208310610133831016604e8410600b8410161715614df7575081810a611aa6565b614e018383614d39565b8060001904821115614e1557614e15614b83565b029392505050565b600061077c8383614d7c565b6000816000190483118215151615614e4357614e43614b83565b500290565b60007f80000000000000000000000000000000000000000000000000000000000000008203614e7957614e79614b83565b5060000390565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600084136000841385830485118282161615614ec157614ec1614b83565b7f80000000000000000000000000000000000000000000000000000000000000006000871286820588128184161615614efc57614efc614b83565b60008712925087820587128484161615614f1857614f18614b83565b87850587128184161615614f2e57614f2e614b83565b505050929093029392505050565b6000808212827f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03841381151615614f7657614f76614b83565b827f8000000000000000000000000000000000000000000000000000000000000000038412811615614faa57614faa614b83565b50500190565b60008219821115614fc357614fc3614b83565b500190565b60005b83811015614fe3578181015183820152602001614fcb565b83811115614ff2576000848401525b50505050565b6000825161500a818460208701614fc8565b9190910192915050565b60006001600160a01b03808916835287602084015280871660408401525084606083015283608083015260c060a083015282518060c084015261505e8160e0850160208701614fc8565b601f01601f19169190910160e001979650505050505050565b60006020828403121561508957600080fd5b5051919050565b6000602082840312156150a257600080fd5b815161077c816146fb565b85815284602082015260a0604082015260006150cc60a08301866144fa565b6001600160a01b0394909416606083015250608001529392505050565b84815260806020820152600061510260808301866144fa565b6001600160a01b03949094166040830152506060015292915050565b60006020828403121561513057600080fd5b815161077c8161433d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60008261517957615179614c29565b60001983147f8000000000000000000000000000000000000000000000000000000000000000831416156151af576151af614b83565b50059056fea264697066735822122074155467eba2a0d0d61cb665c23eb6f94e85b57eb23af3784e5ca59748bfc42f64736f6c634300080e0033",
|
|
1055
1154
|
"linkReferences": {},
|
|
1056
1155
|
"deployedLinkReferences": {}
|
|
1057
1156
|
}
|
package/src/agent-swap.js
CHANGED
|
@@ -238,6 +238,7 @@ class AgentSwap extends HI {
|
|
|
238
238
|
// amount = await OToken.toAmount(amount)
|
|
239
239
|
// }
|
|
240
240
|
let result = await this.SC.methods.onlyRate(inToken,outToken,path).call()
|
|
241
|
+
let rates = await this.SC.methods.rateAmount(inToken,outToken).call()
|
|
241
242
|
// if(format) {
|
|
242
243
|
// if(side == 0) {
|
|
243
244
|
// result = await OToken.fromAmount(result)
|
|
@@ -249,8 +250,8 @@ class AgentSwap extends HI {
|
|
|
249
250
|
let taxConfig = await this.SC.methods.taxConfig(inToken,outToken).call()
|
|
250
251
|
result.taxRate = division(taxConfig.tax,this.pointMax)
|
|
251
252
|
result.backRate = division(taxConfig.backBuy,this.pointMax)
|
|
252
|
-
result.feeRate = division(
|
|
253
|
-
result.reward = division(
|
|
253
|
+
result.feeRate = division(rates.feeRate,this.pointMax)
|
|
254
|
+
result.reward = division(rates.reward,this.pointMax)
|
|
254
255
|
return result
|
|
255
256
|
}
|
|
256
257
|
|