forked from ethersphere/docker-setup-contracts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeploy.sh
159 lines (122 loc) · 111 KB
/
deploy.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#!/usr/bin/env bash
set -e
set -o errtrace
set -o pipefail
set -u
#set -x
[ -z ${BACKEND+x} ] && BACKEND=http://localhost:8545
[ -z ${BZZACCOUNTS+x} ] && BZZACCOUNTS="bf4f9637c281ddfb1fbd3be5a1dae6531d408f11 c45d64d8f9642a604db93c59fd38492b262391ca"
TOKEN_BIN=0x608060405262000024620000186200002a60201b60201c565b6200003260201b60201c565b62000257565b600033905090565b6200004d8160036200009360201b620012a81790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620000a582826200017760201b60201c565b1562000119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000200576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620018506022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115e980620002676000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146102e7578063986502751461032b578063a457c2d714610335578063a9059cbb1461039b578063aa271e1a14610401578063dd62ed3e1461045d576100b4565b8063095ea7b3146100b957806318160ddd1461011f57806323b872dd1461013d57806339509351146101c357806340c10f191461022957806370a082311461028f575b600080fd5b610105600480360360408110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104d5565b604051808215151515815260200191505060405180910390f35b6101276104f3565b6040518082815260200191505060405180910390f35b6101a96004803603606081101561015357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104fd565b604051808215151515815260200191505060405180910390f35b61020f600480360360408110156101d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105d6565b604051808215151515815260200191505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610689565b604051808215151515815260200191505060405180910390f35b6102d1600480360360208110156102a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610704565b6040518082815260200191505060405180910390f35b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061074c565b005b6103336107bd565b005b6103816004803603604081101561034b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107cf565b604051808215151515815260200191505060405180910390f35b6103e7600480360360408110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089c565b604051808215151515815260200191505060405180910390f35b6104436004803603602081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108ba565b604051808215151515815260200191505060405180910390f35b6104bf6004803603604081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d7565b6040518082815260200191505060405180910390f35b60006104e96104e261095e565b8484610966565b6001905092915050565b6000600254905090565b600061050a848484610b5d565b6105cb8461051661095e565b6105c6856040518060600160405280602881526020016114fd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057c61095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b610966565b600190509392505050565b600061067f6105e361095e565b8461067a85600160006105f461095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b610966565b6001905092915050565b600061069b61069661095e565b6108ba565b6106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114ac6030913960400191505060405180910390fd5b6106fa8383610f5b565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075c61075761095e565b6108ba565b6107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114ac6030913960400191505060405180910390fd5b6107ba81611116565b50565b6107cd6107c861095e565b611170565b565b60006108926107dc61095e565b8461088d85604051806060016040528060258152602001611590602591396001600061080661095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b610966565b6001905092915050565b60006108b06108a961095e565b8484610b5d565b6001905092915050565b60006108d08260036111ca90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061156c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114646022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610be3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115476025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806114416023913960400191505060405180910390fd5b610cd481604051806060016040528060268152602001611486602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d67816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e85578082015181840152602081019050610e6a565b50505050905090810190601f168015610eb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ffe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61101381600254610ed390919063ffffffff16565b60028190555061106a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61112a8160036112a890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61118481600361138390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115256022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112b282826111ca565b15611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61138d82826111ca565b6113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806114dc6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158209365f743f4259fd57b70b0249fd5414047db47568854d4cd343852d2e5ad185164736f6c634300050b0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373
LEGACY_FACTORY_BIN=0x608060405234801561001057600080fd5b50604051611c1b380380611c1b8339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055611bb8806100636000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063576d727114610046578063a6021ace1461008e578063c70242ad14610096575b600080fd5b6100726004803603604081101561005c57600080fd5b506001600160a01b0381351690602001356100d0565b604080516001600160a01b039092168252519081900360200190f35b610072610198565b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b03166101a7565b604080519115158252519081900360200190f35b600154604051600091829185916001600160a01b03169085906100f2906101bc565b80846001600160a01b03168152602001836001600160a01b031681526020018281526020019350505050604051809103906000f080158015610138573d6000803e3d6000fd5b506001600160a01b03811660008181526020818152604091829020805460ff19166001179055815192835290519293507fc0ffc525a1c7689549d7f79b49eca900e61ac49b43d977f680bcc3b36224c00492918290030190a19392505050565b6001546001600160a01b031681565b60006020819052908152604090205460ff1681565b6119b9806101ca8339019056fe608060405234801561001057600080fd5b506040516119b93803806119b98339818101604052606081101561003357600080fd5b5080516020820151604090920151600680546001600160a01b039384166001600160a01b0319918216179091556001805493909416921691909117909155600055611936806100836000396000f3fe608060405234801561001057600080fd5b50600436106101425760003560e01c8063b6343b0d116100b8578063b7ec1a331161007c578063b7ec1a33146104e2578063c49f91d3146104ea578063c76a4d31146104f2578063d4c9a8e814610518578063e0bcf13a146105d1578063fc0c546a146105d957610142565b8063b6343b0d1461043e578063b648b4171461048a578063b69ef8a8146104a6578063b7770350146104ae578063b7998907146104da57610142565b80631d1438481161010a5780631d1438481461037d5780632e1a7d4d146103a1578063338f3fed146103be578063488b017c146103ea57806381f03fcb146103f2578063946f46a21461041857610142565b80630d5f26591461014757806312101021146102025780631357e1dc1461021c57806315c3343f146102245780631633fb1d1461022c575b600080fd5b6102006004803603606081101561015d57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561018c57600080fd5b82018360208201111561019e57600080fd5b803590602001918460018302840111600160201b831117156101bf57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506105e1945050505050565b005b61020a6105f4565b60408051918252519081900360200190f35b61020a6105fa565b61020a610600565b610200600480360360c081101561024257600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561027c57600080fd5b82018360208201111561028e57600080fd5b803590602001918460018302840111600160201b831117156102af57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435959094909350604081019250602001359050600160201b81111561030957600080fd5b82018360208201111561031b57600080fd5b803590602001918460018302840111600160201b8311171561033c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610624945050505050565b61038561069e565b604080516001600160a01b039092168252519081900360200190f35b610200600480360360208110156103b757600080fd5b50356106ad565b610200600480360360408110156103d457600080fd5b506001600160a01b03813516906020013561080e565b61020a61093a565b61020a6004803603602081101561040857600080fd5b50356001600160a01b031661095e565b6102006004803603602081101561042e57600080fd5b50356001600160a01b0316610970565b6104646004803603602081101561045457600080fd5b50356001600160a01b0316610a4b565b604080519485526020850193909352838301919091526060830152519081900360800190f35b610492610a72565b604080519115158252519081900360200190f35b61020a610a82565b610200600480360360408110156104c457600080fd5b506001600160a01b038135169060200135610afe565b61020a610c20565b61020a610c44565b61020a610c5f565b61020a6004803603602081101561050857600080fd5b50356001600160a01b0316610c83565b6102006004803603606081101561052e57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561055d57600080fd5b82018360208201111561056f57600080fd5b803590602001918460018302840111600160201b8311171561059057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610cb4945050505050565b61020a610dc7565b610385610dcd565b6105ef338484600085610ddc565b505050565b60005481565b60035481565b7f48ebe6deff4a5ee645c01506a026031e2a945d6f41f1f4e5098ad65347492c1281565b61063a61063430338789876111cb565b84611243565b6001600160a01b0316866001600160a01b0316146106895760405162461bcd60e51b81526004018080602001828103825260298152602001806118656029913960400191505060405180910390fd5b6106968686868585610ddc565b505050505050565b6006546001600160a01b031681565b6006546001600160a01b03163314610705576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b61070d610c44565b81111561074b5760405162461bcd60e51b81526004018080602001828103825260288152602001806118d96028913960400191505060405180910390fd5b6001546006546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b1580156107a457600080fd5b505af11580156107b8573d6000803e3d6000fd5b505050506040513d60208110156107ce57600080fd5b505161080b5760405162461bcd60e51b815260040180806020018281038252602781526020018061183e6027913960400191505060405180910390fd5b50565b6006546001600160a01b03163314610866576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b61086e610a82565b60055461087b90836112a5565b11156108b85760405162461bcd60e51b81526004018080602001828103825260348152602001806117a16034913960400191505060405180910390fd5b6001600160a01b038216600090815260046020526040902080546108dc90836112a5565b81556005546108eb90836112a5565b60055560006003820155805460408051918252516001600160a01b038516917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad919081900360200190a2505050565b7f7d824962dd0f01520922ea1766c987b1db570cd5db90bdba5ccf5e320607950281565b60026020526000908152604090205481565b6001600160a01b03811660009081526004602052604090206003810154421080159061099f5750600381015415155b6109da5760405162461bcd60e51b81526004018080602001828103825260258152602001806118196025913960400191505060405180910390fd5b600181015481546109ea91611306565b8155600060038201556001810154600554610a0491611306565b600555805460408051918252516001600160a01b038416917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad919081900360200190a25050565b60046020526000908152604090208054600182015460028301546003909301549192909184565b600654600160a01b900460ff1681565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610acd57600080fd5b505afa158015610ae1573d6000803e3d6000fd5b505050506040513d6020811015610af757600080fd5b5051905090565b6006546001600160a01b03163314610b56576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b6001600160a01b03821660009081526004602052604090208054821115610bae5760405162461bcd60e51b815260040180806020018281038252602781526020018061188e6027913960400191505060405180910390fd5b60008160020154600014610bc6578160020154610bca565b6000545b4281016003840155600183018490556040805185815290519192506001600160a01b038616917fc8305077b495025ec4c1d977b176a762c350bb18cad4666ce1ee85c32b78698a9181900360200190a250505050565b7fe95f353750f192082df064ca5142d3a2d6f0bef0f3ffad66d80d8af86b7a749a81565b6000610c5a600554610c54610a82565b90611306565b905090565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81565b6001600160a01b038116600090815260046020526040812054610cae90610ca8610c44565b906112a5565b92915050565b6006546001600160a01b03163314610d0c576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b610d20610d1a308585611348565b82611243565b6001600160a01b0316836001600160a01b031614610d6f5760405162461bcd60e51b81526004018080602001828103825260298152602001806118656029913960400191505060405180910390fd5b6001600160a01b038316600081815260046020908152604091829020600201859055815185815291517f7b816003a769eb718bd9c66bdbd2dd5827da3f92bc6645276876bd7957b08cf09281900390910190a2505050565b60055481565b6001546001600160a01b031681565b6006546001600160a01b03163314610e4857610dfc610d1a3087866113b1565b6006546001600160a01b03908116911614610e485760405162461bcd60e51b81526004018080602001828103825260248152602001806118b56024913960400191505060405180910390fd5b6001600160a01b038516600090815260026020526040812054610e6c908590611306565b90506000610e8282610e7d89610c83565b61141a565b6001600160a01b03881660009081526004602052604081205491925090610eaa90839061141a565b905084821015610f01576040805162461bcd60e51b815260206004820152601d60248201527f53696d706c65537761703a2063616e6e6f74207061792063616c6c6572000000604482015290519081900360640190fd5b8015610f54576001600160a01b038816600090815260046020526040902054610f2a9082611306565b6001600160a01b038916600090815260046020526040902055600554610f509082611306565b6005555b6001600160a01b038816600090815260026020526040902054610f7790836112a5565b6001600160a01b038916600090815260026020526040902055600354610f9d90836112a5565b6003556001546001600160a01b031663a9059cbb88610fbc8589611306565b6040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561100257600080fd5b505af1158015611016573d6000803e3d6000fd5b505050506040513d602081101561102c57600080fd5b50516110695760405162461bcd60e51b815260040180806020018281038252602781526020018061183e6027913960400191505060405180910390fd5b841561112a576001546040805163a9059cbb60e01b81523360048201526024810188905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156110c357600080fd5b505af11580156110d7573d6000803e3d6000fd5b505050506040513d60208110156110ed57600080fd5b505161112a5760405162461bcd60e51b815260040180806020018281038252602781526020018061183e6027913960400191505060405180910390fd5b6040805183815260208101889052808201879052905133916001600160a01b038a811692908c16917f950494fc3642fae5221b6c32e0e45765c95ebb382a04a71b160db0843e74c99f919081900360600190a48183146111c1576006805460ff60a01b1916600160a01b1790556040517f3f4449c047e11092ec54dc0751b6b4817a9162745de856c893a26e611d18ffc490600090a15b5050505050505050565b604080517f7d824962dd0f01520922ea1766c987b1db570cd5db90bdba5ccf5e32060795026020808301919091526001600160a01b0397881682840152958716606082015260808101949094529190941660a083015260c0808301949094528051808303909401845260e09091019052815191012090565b600080611256611251611430565b61148a565b84604051602001808061190160f01b8152506002018381526020018281526020019250505060405160208183030381529060405280519060200120905061129d81846114fd565b949350505050565b6000828201838110156112ff576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b60006112ff83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506116e8565b604080517fe95f353750f192082df064ca5142d3a2d6f0bef0f3ffad66d80d8af86b7a749a6020808301919091526001600160a01b03958616828401529390941660608501526080808501929092528051808503909201825260a0909301909252815191012090565b604080517f48ebe6deff4a5ee645c01506a026031e2a945d6f41f1f4e5098ad65347492c126020808301919091526001600160a01b03958616828401529390941660608501526080808501929092528051808503909201825260a0909301909252815191012090565b600081831061142957816112ff565b5090919050565b61143861177f565b506040805160a081018252600a6060820190815269436865717565626f6f6b60b01b608083015281528151808301835260038152620312e360ec1b602082810191909152820152469181019190915290565b805180516020918201208183015180519083012060409384015184517fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e818601528086019390935260608301919091526080808301919091528351808303909101815260a0909101909252815191012090565b60008151604114611555576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08211156115c65760405162461bcd60e51b81526004018080602001828103825260228152602001806117d56022913960400191505060405180910390fd5b8060ff16601b141580156115de57508060ff16601c14155b1561161a5760405162461bcd60e51b81526004018080602001828103825260228152602001806117f76022913960400191505060405180910390fd5b600060018783868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015611676573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166116de576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b9695505050505050565b600081848411156117775760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561173c578181015183820152602001611724565b50505050905090810190601f1680156117695780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6040518060600160405280606081526020016060815260200160008152509056fe53696d706c65537761703a2068617264206465706f7369742063616e6e6f74206265206d6f7265207468616e2062616c616e636545434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c756553696d706c65537761703a206465706f736974206e6f74207965742074696d6564206f757453696d706c65537761703a2053696d706c65537761703a207472616e73666572206661696c656453696d706c65537761703a20696e76616c69642062656e6566696369617279207369676e617475726553696d706c65537761703a2068617264206465706f736974206e6f742073756666696369656e7453696d706c65537761703a20696e76616c696420697373756572207369676e617475726553696d706c65537761703a206c697175696442616c616e6365206e6f742073756666696369656e74a2646970667358221220e966e3935e65edd1eee5f40a145487964af1fa6f0f5e354d400ee94b6a207d1364736f6c634300060c0033a264697066735822122049e3e76706404d752db8abe986ff6e887ddc5113cd62647fee1728e5ca5a53b064736f6c634300060c0033__TOKEN_ADDRESS__
FACTORY_BIN=0x608060405234801561001057600080fd5b50604051611df2380380611df283398101604081905261002f91610112565b600180546001600160a01b0319166001600160a01b03831617905560405160009061005990610105565b604051809103906000f080158015610075573d6000803e3d6000fd5b506040516343431f6360e11b81529091506001600160a01b038216906386863ec6906100ab906001906000908190600401610140565b600060405180830381600087803b1580156100c557600080fd5b505af11580156100d9573d6000803e3d6000fd5b5050600280546001600160a01b0319166001600160a01b03949094169390931790925550610164915050565b6118e58061050d83390190565b600060208284031215610123578081fd5b81516001600160a01b0381168114610139578182fd5b9392505050565b6001600160a01b039384168152919092166020820152604081019190915260600190565b61039a806101736000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c806315efd8a714610051578063a6021ace1461007a578063c70242ad14610082578063ee97f7f3146100a2575b600080fd5b61006461005f3660046102d6565b6100aa565b6040516100719190610308565b60405180910390f35b6100646101bb565b6100956100903660046102b5565b6101ca565b6040516100719190610359565b6100646101df565b60025460405160009182916100ee916001600160a01b0316906100d3903390879060200161031c565b604051602081830303815290604052805190602001206101ee565b6001546040516343431f6360e11b81529192506001600160a01b03808416926386863ec692610126928a929116908990600401610335565b600060405180830381600087803b15801561014057600080fd5b505af1158015610154573d6000803e3d6000fd5b5050506001600160a01b03821660009081526020819052604090819020805460ff19166001179055517fc0ffc525a1c7689549d7f79b49eca900e61ac49b43d977f680bcc3b36224c00491506101ab908390610308565b60405180910390a1949350505050565b6001546001600160a01b031681565b60006020819052908152604090205460ff1681565b6002546001600160a01b031681565b6000604051733d602d80600a3d3981f3363d3d373d3d3d363d7360601b81528360601b60148201526e5af43d82803e903d91602b57fd5bf360881b6028820152826037826000f59150506001600160a01b038116610293576040805162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c6564000000000000000000604482015290519081900360640190fd5b92915050565b80356001600160a01b03811681146102b057600080fd5b919050565b6000602082840312156102c6578081fd5b6102cf82610299565b9392505050565b6000806000606084860312156102ea578182fd5b6102f384610299565b95602085013595506040909401359392505050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b90151581526020019056fea2646970667358221220186c321a2442413d58858aac3960b8440cb5e558ae8361aefefac6b31923710564736f6c63430007060033608060405234801561001057600080fd5b506118c5806100206000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c8063946f46a2116100c3578063b7ec1a331161007c578063b7ec1a331461027f578063c49f91d314610287578063c76a4d311461028f578063d4c9a8e8146102a2578063e0bcf13a146102b5578063fc0c546a146102bd5761014d565b8063946f46a214610211578063b6343b0d14610224578063b648b41714610247578063b69ef8a81461025c578063b777035014610264578063b7998907146102775761014d565b80631d143848116101155780631d143848146101a85780632e1a7d4d146101bd578063338f3fed146101d0578063488b017c146101e357806381f03fcb146101eb57806386863ec6146101fe5761014d565b80630d5f26591461015257806312101021146101675780631357e1dc1461018557806315c3343f1461018d5780631633fb1d14610195575b600080fd5b61016561016036600461146b565b6102c5565b005b61016f6102d8565b60405161017c9190611563565b60405180910390f35b61016f6102de565b61016f6102e4565b6101656101a33660046113ae565b610308565b6101b061036c565b60405161017c919061152b565b6101656101cb3660046114e0565b61037b565b6101656101de366004611442565b610473565b61016f610556565b61016f6101f9366004611359565b61057a565b61016561020c366004611373565b61058c565b61016561021f366004611359565b610610565b610237610232366004611359565b6106d0565b60405161017c94939291906115c7565b61024f6106f7565b60405161017c9190611558565b61016f610707565b610165610272366004611442565b61078d565b61016f610867565b61016f61088b565b61016f6108a1565b61016f61029d366004611359565b6108c5565b6101656102b036600461146b565b6108f8565b61016f6109b4565b6101b06109ba565b6102d33384846000856109c9565b505050565b60005481565b60035481565b7f48ebe6deff4a5ee645c01506a026031e2a945d6f41f1f4e5098ad65347492c1281565b61031e6103183033878987610dd2565b84610e30565b6001600160a01b0316866001600160a01b0316146103575760405162461bcd60e51b815260040161034e906117d5565b60405180910390fd5b61036486868685856109c9565b505050505050565b6006546001600160a01b031681565b6006546001600160a01b031633146103a55760405162461bcd60e51b815260040161034e906115e2565b6103ad61088b565b8111156103cc5760405162461bcd60e51b815260040161034e90611695565b60015460065460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb9261040292911690859060040161153f565b602060405180830381600087803b15801561041c57600080fd5b505af1158015610430573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045491906114c0565b6104705760405162461bcd60e51b815260040161034e9061180c565b50565b6006546001600160a01b0316331461049d5760405162461bcd60e51b815260040161034e90611665565b6104a5610707565b6005546104b29083610e7f565b11156104d05760405162461bcd60e51b815260040161034e90611730565b6001600160a01b038216600090815260046020526040902080546104f49083610e7f565b81556005546105039083610e7f565b6005556000600382015580546040516001600160a01b038516917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad916105499190611563565b60405180910390a2505050565b7f7d824962dd0f01520922ea1766c987b1db570cd5db90bdba5ccf5e320607950281565b60026020526000908152604090205481565b6001600160a01b0383166105b25760405162461bcd60e51b815260040161034e9061163d565b6006546001600160a01b0316156105db5760405162461bcd60e51b815260040161034e906116cc565b600680546001600160a01b039485166001600160a01b0319918216179091556001805493909416921691909117909155600055565b6001600160a01b03811660009081526004602052604090206003810154421080159061063f5750600381015415155b61065b5760405162461bcd60e51b815260040161034e90611606565b6001810154815461066b91610ee0565b815560006003820155600181015460055461068591610ee0565b60055580546040516001600160a01b038416917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad916106c49190611563565b60405180910390a25050565b60046020526000908152604090208054600182015460028301546003909301549192909184565b600654600160a01b900460ff1681565b6001546040516370a0823160e01b81526000916001600160a01b0316906370a082319061073890309060040161152b565b60206040518083038186803b15801561075057600080fd5b505afa158015610764573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078891906114f8565b905090565b6006546001600160a01b031633146107b75760405162461bcd60e51b815260040161034e90611665565b6001600160a01b038216600090815260046020526040902080548211156107f05760405162461bcd60e51b815260040161034e906116f9565b6000816002015460001461080857816002015461080c565b6000545b4281016003840155600183018490556040519091506001600160a01b038516907fc8305077b495025ec4c1d977b176a762c350bb18cad4666ce1ee85c32b78698a90610859908690611563565b60405180910390a250505050565b7fe95f353750f192082df064ca5142d3a2d6f0bef0f3ffad66d80d8af86b7a749a81565b600061078860055461089b610707565b90610ee0565b7fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e81565b6001600160a01b0381166000908152600460205260408120546108f0906108ea61088b565b90610e7f565b90505b919050565b6006546001600160a01b031633146109225760405162461bcd60e51b815260040161034e906115e2565b610936610930308585610f3d565b82610e30565b6001600160a01b0316836001600160a01b0316146109665760405162461bcd60e51b815260040161034e906117d5565b6001600160a01b03831660008181526004602052604090819020600201849055517f7b816003a769eb718bd9c66bdbd2dd5827da3f92bc6645276876bd7957b08cf090610549908590611563565b60055481565b6001546001600160a01b031681565b6006546001600160a01b03163314610a16576109e9610930308786610f95565b6006546001600160a01b03908116911614610a165760405162461bcd60e51b815260040161034e9061179e565b6001600160a01b038516600090815260026020526040812054610a3a908590610ee0565b90506000610a5082610a4b896108c5565b610fce565b6001600160a01b03881660009081526004602052604081205491925090610a78908390610fce565b905084821015610a9a5760405162461bcd60e51b815260040161034e90611767565b8015610aed576001600160a01b038816600090815260046020526040902054610ac39082610ee0565b6001600160a01b038916600090815260046020526040902055600554610ae99082610ee0565b6005555b6001600160a01b038816600090815260026020526040902054610b109083610e7f565b6001600160a01b038916600090815260026020526040902055600354610b369083610e7f565b600355828214610b7d576006805460ff60a01b1916600160a01b1790556040517f3f4449c047e11092ec54dc0751b6b4817a9162745de856c893a26e611d18ffc490600090a15b8415610ccf5760015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610bb5903390899060040161153f565b602060405180830381600087803b158015610bcf57600080fd5b505af1158015610be3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0791906114c0565b610c235760405162461bcd60e51b815260040161034e9061180c565b6001546001600160a01b031663a9059cbb88610c3f8589610ee0565b6040518363ffffffff1660e01b8152600401610c5c92919061153f565b602060405180830381600087803b158015610c7657600080fd5b505af1158015610c8a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cae91906114c0565b610cca5760405162461bcd60e51b815260040161034e9061180c565b610d6f565b60015460405163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610d01908a90869060040161153f565b602060405180830381600087803b158015610d1b57600080fd5b505af1158015610d2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5391906114c0565b610d6f5760405162461bcd60e51b815260040161034e9061180c565b336001600160a01b0316876001600160a01b0316896001600160a01b03167f950494fc3642fae5221b6c32e0e45765c95ebb382a04a71b160db0843e74c99f858a8a604051610dc093929190611835565b60405180910390a45050505050505050565b60007f7d824962dd0f01520922ea1766c987b1db570cd5db90bdba5ccf5e32060795028686868686604051602001610e0f96959493929190611591565b60405160208183030381529060405280519060200120905095945050505050565b600080610e43610e3e610fe4565b61103e565b84604051602001610e55929190611510565b604051602081830303815290604052805190602001209050610e7781846110ae565b949350505050565b600082820183811015610ed9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600082821115610f37576040805162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f770000604482015290519081900360640190fd5b50900390565b60007fe95f353750f192082df064ca5142d3a2d6f0bef0f3ffad66d80d8af86b7a749a848484604051602001610f76949392919061156c565b6040516020818303038152906040528051906020012090509392505050565b60007f48ebe6deff4a5ee645c01506a026031e2a945d6f41f1f4e5098ad65347492c12848484604051602001610f76949392919061156c565b6000818310610fdd5781610ed9565b5090919050565b610fec6112ac565b506040805160a081018252600a6060820190815269436865717565626f6f6b60b01b608083015281528151808301835260038152620312e360ec1b602082810191909152820152469181019190915290565b60007fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e826000015180519060200120836020015180519060200120846040015160405160200161109194939291906115c7565b604051602081830303815290604052805190602001209050919050565b60008151604114611106576040805162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604482015290519081900360640190fd5b60208201516040830151606084015160001a6111248682858561112e565b9695505050505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561118f5760405162461bcd60e51b815260040180806020018281038252602281526020018061184c6022913960400191505060405180910390fd5b8360ff16601b14806111a457508360ff16601c145b6111df5760405162461bcd60e51b815260040180806020018281038252602281526020018061186e6022913960400191505060405180910390fd5b600060018686868660405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa15801561123b573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166112a3576040805162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604482015290519081900360640190fd5b95945050505050565b60405180606001604052806060815260200160608152602001600081525090565b80356001600160a01b03811681146108f357600080fd5b600082601f8301126112f4578081fd5b813567ffffffffffffffff8082111561130957fe5b604051601f8301601f19168101602001828111828210171561132757fe5b60405282815284830160200186101561133e578384fd5b82602086016020830137918201602001929092529392505050565b60006020828403121561136a578081fd5b610ed9826112cd565b600080600060608486031215611387578182fd5b611390846112cd565b925061139e602085016112cd565b9150604084013590509250925092565b60008060008060008060c087890312156113c6578182fd5b6113cf876112cd565b95506113dd602088016112cd565b945060408701359350606087013567ffffffffffffffff80821115611400578384fd5b61140c8a838b016112e4565b94506080890135935060a0890135915080821115611428578283fd5b5061143589828a016112e4565b9150509295509295509295565b60008060408385031215611454578182fd5b61145d836112cd565b946020939093013593505050565b60008060006060848603121561147f578283fd5b611488846112cd565b925060208401359150604084013567ffffffffffffffff8111156114aa578182fd5b6114b6868287016112e4565b9150509250925092565b6000602082840312156114d1578081fd5b81518015158114610ed9578182fd5b6000602082840312156114f1578081fd5b5035919050565b600060208284031215611509578081fd5b5051919050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b9384526001600160a01b03928316602085015291166040830152606082015260800190565b9586526001600160a01b03948516602087015292841660408601526060850191909152909116608083015260a082015260c00190565b93845260208401929092526040830152606082015260800190565b6020808252600a90820152693737ba1034b9b9bab2b960b11b604082015260600190565b60208082526019908201527f6465706f736974206e6f74207965742074696d6564206f757400000000000000604082015260600190565b6020808252600e908201526d34b73b30b634b21034b9b9bab2b960911b604082015260600190565b60208082526016908201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604082015260600190565b6020808252601c908201527f6c697175696442616c616e6365206e6f742073756666696369656e7400000000604082015260600190565b602080825260139082015272185b1c9958591e481a5b9a5d1a585b1a5e9959606a1b604082015260600190565b6020808252601b908201527f68617264206465706f736974206e6f742073756666696369656e740000000000604082015260600190565b6020808252601c908201527f68617264206465706f73697420657863656564732062616c616e636500000000604082015260600190565b6020808252601d908201527f53696d706c65537761703a2063616e6e6f74207061792063616c6c6572000000604082015260600190565b60208082526018908201527f696e76616c696420697373756572207369676e61747572650000000000000000604082015260600190565b6020808252601d908201527f696e76616c69642062656e6566696369617279207369676e6174757265000000604082015260600190565b6020808252600f908201526e1d1c985b9cd9995c8819985a5b1959608a1b604082015260600190565b928352602083019190915260408201526060019056fe45434453413a20696e76616c6964207369676e6174757265202773272076616c756545434453413a20696e76616c6964207369676e6174757265202776272076616c7565a26469706673582212202e31e31c7c2744ee68a03ed443217b2f9f1a54bafefbc8c8e911e1d5cc01ec0864736f6c63430007060033__TOKEN_ADDRESS__
TOKEN_MINT_DATA=0x40c10f19__RECIPIENT____AMOUNT__
POSTAGE_STAMP_BIN=0x60806040523480156200001157600080fd5b506040516200363638038062003636833981016040819052620000349162000171565b6001805460ff19908116909155600580546001600160a01b0384166001600160a01b031990911617905560078054909116600f17905562000077600033620000aa565b620000a37f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000aa565b50620001a1565b620000b68282620000ba565b5050565b620000c6828262000144565b620000b6576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001006200016d565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b60006020828403121562000183578081fd5b81516001600160a01b03811681146200019a578182fd5b9392505050565b61348580620001b16000396000f3fe608060405234801561001057600080fd5b50600436106102325760003560e01c80638456cb5911610130578063b67644b9116100b8578063e63ab1e91161007c578063e63ab1e914610449578063ea612e1f14610451578063f2a75fe414610459578063f7b188a514610461578063f90ce5ba1461046957610232565b8063b67644b9146103e5578063b998902f146103f8578063c81e25ab14610400578063d547741f14610423578063d71ba7c41461043657610232565b806391d14854116100ff57806391d14854146103a757806399176447146103ba578063a217fddf146103cd578063a6471a1d146103d5578063b545ebc0146103dd57610232565b80638456cb591461037c5780638a5e8e32146103845780638b82547f1461038c57806391b7f5ed1461039457610232565b8063420fc4db116101be57806351cff8d91161018257806351cff8d9146103335780635239af71146103465780635c975abb14610359578063628de8771461036157806379599f961461037457610232565b8063420fc4db146102e857806347aab79b146102fd5780634b410f1f146103105780634ba2363a1461032357806351b17cd01461032b57610232565b806318c8572f1161020557806318c8572f14610292578063248a9ca3146102a757806324b570a9146102ba5780632f2ff15d146102c257806336568abe146102d557610232565b806301ffc9a7146102375780630392723514610260578063053f14da146102755780630ce72c181461028a575b600080fd5b61024a610245366004612b4c565b610471565b6040516102579190612c22565b60405180910390f35b61026861049e565b604051610257919061335e565b61027d6104a7565b6040516102579190612c2d565b61027d6104ad565b6102a56102a0366004612a41565b6104d1565b005b61027d6102b5366004612ac6565b610784565b61027d610799565b6102a56102d0366004612ade565b61083f565b6102a56102e3366004612ade565b61087d565b6102f06108bf565b6040516102579190612ba6565b6102a561030b366004612b2a565b6108ce565b6102a561031e366004612b8c565b610acc565b61027d610b28565b61027d610b2e565b6102a5610341366004612a27565b610b68565b6102a5610354366004612a41565b610c5b565b61024a610f46565b6102a561036f366004612ac6565b610f4f565b6102a5611043565b6102a5611160565b61027d6111b0565b61027d6111b6565b6102a56103a2366004612ac6565b6111df565b61024a6103b5366004612ade565b61127d565b6102a56103c8366004612ac6565b6112a8565b61027d61135c565b61027d611361565b61027d611385565b6102a56103f3366004612b09565b61138b565b61027d61157d565b61041361040e366004612ac6565b6115a1565b6040516102579493929190612bf7565b6102a5610431366004612ade565b6115db565b61027d610444366004612ac6565b611603565b61027d611672565b61027d611696565b61024a61169c565b6102a56116ae565b61027d6116fc565b60006001600160e01b03198216637965db0b60e01b1480610496575061049682611702565b90505b919050565b60075460ff1681565b600a5481565b7fd73e46f8c7bd351d2c14e16efde573a514a9ba57c6a82aebf13a8376f9f0e6ca81565b6104d9610f46565b156104ff5760405162461bcd60e51b81526004016104f690612edb565b60405180910390fd5b61050a60003361127d565b6105265760405162461bcd60e51b81526004016104f690613240565b6001600160a01b03861661054c5760405162461bcd60e51b81526004016104f690612c36565b60ff83161580159061056357508360ff168360ff16105b61057f5760405162461bcd60e51b81526004016104f690612d86565b6000828152600260205260409020546001600160a01b0316156105b45760405162461bcd60e51b81526004016104f690612f8e565b60006105c6600160ff87161b876133b7565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd906105fb90339030908690600401612bba565b602060405180830381600087803b15801561061557600080fd5b505af1158015610629573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061064d9190612aaa565b6106695760405162461bcd60e51b81526004016104f690613217565b600086610674610b2e565b61067e919061337f565b604080516080810182526001600160a01b038b8116825260ff8a811660208085019182528915158587019081526060860188815260008d815260029093529690912094518554925191516001600160a01b031990931694169390931760ff60a01b1916600160a01b93909216929092021760ff60a81b1916600160a81b91151591909102178155905160019091015590508061072c5760405162461bcd60e51b81526004016104f690612ce8565b6107386003858361171b565b837f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838b8a8a8960405161077296959493929190613325565b60405180910390a25050505050505050565b60009081526020819052604090206001015490565b60006107a3611043565b6005546040516370a0823160e01b81526000916001600160a01b0316906370a08231906107d4903090600401612ba6565b60206040518083038186803b1580156107ec57600080fd5b505afa158015610800573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108249190612b74565b905080600954106108355780610839565b6009545b91505090565b61085361084b83610784565b6103b5611901565b61086f5760405162461bcd60e51b81526004016104f690612c6b565b6108798282611905565b5050565b610885611901565b6001600160a01b0316816001600160a01b0316146108b55760405162461bcd60e51b81526004016104f690613286565b610879828261198a565b6005546001600160a01b031681565b6108d6610f46565b156108f35760405162461bcd60e51b81526004016104f690612edb565b600082815260026020526040902080546001600160a01b0316331461092a5760405162461bcd60e51b81526004016104f690612db4565b8054600160a81b900460ff16156109535760405162461bcd60e51b81526004016104f690612f62565b805460ff600160a01b9091048116908316118015610979575060075460ff908116908316115b6109955760405162461bcd60e51b81526004016104f69061316b565b61099d610b2e565b8160010154116109bf5760405162461bcd60e51b81526004016104f6906130c7565b80546000906109d890600160a01b900460ff16846133ed565b90506000600160ff83161b6109ec86611603565b6109f69190613397565b9050610a00611043565b8254610a2090600160ff600160a01b909204821681901b9187161b6133d6565b60086000828254610a31919061337f565b90915550506001830154610a49906003908790611a0d565b825460ff60a01b1916600160a01b60ff86160217835580610a68610b2e565b610a72919061337f565b60018401819055610a8790600390879061171b565b847faf27998ec15e9d3809edad41aec1b5551d8412e71bd07c91611a0237ead1dc8e858560010154604051610abd92919061336c565b60405180910390a25050505050565b610af67fd73e46f8c7bd351d2c14e16efde573a514a9ba57c6a82aebf13a8376f9f0e6ca3361127d565b610b125760405162461bcd60e51b81526004016104f690612ff3565b6007805460ff191660ff92909216919091179055565b60095481565b600080600b5443610b3f91906133d6565b9050600081600a54610b5191906133b7565b905080600654610b61919061337f565b9250505090565b610b927f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb08283361127d565b610bae5760405162461bcd60e51b81526004016104f690612e8a565b6005546001600160a01b031663a9059cbb82610bc8610799565b6040518363ffffffff1660e01b8152600401610be5929190612bde565b602060405180830381600087803b158015610bff57600080fd5b505af1158015610c13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c379190612aaa565b610c535760405162461bcd60e51b81526004016104f690613217565b506000600955565b610c63610f46565b15610c805760405162461bcd60e51b81526004016104f690612edb565b6001600160a01b038616610ca65760405162461bcd60e51b81526004016104f690612c36565b60ff831615801590610cbd57508360ff168360ff16105b8015610cd0575060075460ff8085169116105b610cec5760405162461bcd60e51b81526004016104f690612d86565b60003383604051602001610d01929190612bde565b60408051601f198184030181529181528151602092830120600081815260029093529120549091506001600160a01b031615610d4f5760405162461bcd60e51b81526004016104f690612f8e565b6000610d61600160ff88161b886133b7565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd90610d9690339030908690600401612bba565b602060405180830381600087803b158015610db057600080fd5b505af1158015610dc4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610de89190612aaa565b610e045760405162461bcd60e51b81526004016104f690613217565b600087610e0f610b2e565b610e19919061337f565b9050610e23611043565b8660ff166001901b60086000828254610e3c919061337f565b9091555050604080516080810182526001600160a01b038b8116825260ff8a811660208085019182528915158587019081526060860188815260008b815260029093529690912094518554925191516001600160a01b031990931694169390931760ff60a01b1916600160a01b93909216929092021760ff60a81b1916600160a81b91151591909102178155905160019091015580610eed5760405162461bcd60e51b81526004016104f690612ce8565b610ef96003848361171b565b827f9b088e2c89b322a3c1d81515e1c88db3d386d022926f0e2d0b9b5813b7413d5883838c8b8b8a604051610f3396959493929190613325565b60405180910390a2505050505050505050565b60015460ff1690565b60005b8181101561087957610f6261169c565b15610f6c57610879565b6000610f766111b6565b90506000610f8382611603565b1115610f8f5750610879565b600081815260026020526040812080546008805492936001600160a01b90930460ff169290921b92839290610fc59084906133d6565b9091555050600c546001830154610fdc91906133d6565b610fe690826133b7565b60096000828254610ff7919061337f565b9091555050600182015461100f906003908590611a0d565b5050600090815260026020526040812080546001600160b01b0319168155600101558061103b81613410565b915050610f52565b600c5461104e610b2e565b600c555b61105a61169c565b156110645761112c565b600061106e6111b6565b9050600061107b82611603565b1115611087575061112c565b600081815260026020526040812080546008805492936001600160a01b90930460ff169290921b928392906110bd9084906133d6565b909155505060018201546110d29085906133d6565b6110dc90826133b7565b600960008282546110ed919061337f565b90915550506001820154611105906003908590611a0d565b5050600090815260026020526040812080546001600160b01b031916815560010155611052565b80600c5461113a91906133d6565b60085461114791906133b7565b60096000828254611158919061337f565b909155505050565b61118a7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361127d565b6111a65760405162461bcd60e51b81526004016104f6906132d5565b6111ae611d89565b565b60085481565b6000806111c36003611dfa565b9050600081116111d257600080fd5b6108396003826000611e3c565b6112097fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d83361127d565b6112255760405162461bcd60e51b81526004016104f690613040565b600a541561123957611235610b2e565b6006555b600a81905543600b556040517fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a90611272908390612c2d565b60405180910390a150565b6000828152602081815260408083206001600160a01b038516845290915290205460ff165b92915050565b6005546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906112dc90339030908690600401612bba565b602060405180830381600087803b1580156112f657600080fd5b505af115801561130a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132e9190612aaa565b61134a5760405162461bcd60e51b81526004016104f690613217565b8060096000828254611158919061337f565b600081565b7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082881565b60065481565b611393610f46565b156113b05760405162461bcd60e51b81526004016104f690612edb565b600082815260026020526040902080546001600160a01b03166113e55760405162461bcd60e51b81526004016104f690613199565b6113ed610b2e565b81600101541161140f5760405162461bcd60e51b81526004016104f6906130c7565b600754815460ff918216600160a01b909104909116116114415760405162461bcd60e51b81526004016104f690612fbc565b805460009061145e906001600160a01b90910460ff161b846133b7565b6005546040516323b872dd60e01b81529192506001600160a01b0316906323b872dd9061149390339030908690600401612bba565b602060405180830381600087803b1580156114ad57600080fd5b505af11580156114c1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114e59190612aaa565b6115015760405162461bcd60e51b81526004016104f690613217565b6001820154611514906003908690611a0d565b828260010154611524919061337f565b6001830181905561153990600390869061171b565b837faf5756c62d6c0722ef9be1f82bef97ab06ea5aea7f3eb8ad348422079f01d88d82846001015460405161156f929190613317565b60405180910390a250505050565b7fdd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d881565b600260205260009081526040902080546001909101546001600160a01b0382169160ff600160a01b8204811692600160a81b909204169084565b6115e761084b83610784565b6108b55760405162461bcd60e51b81526004016104f690612e3a565b600081815260026020526040812080546001600160a01b03166116385760405162461bcd60e51b81526004016104f690613199565b611640610b2e565b816001015411611654576000915050610499565b61165c610b2e565b816001015461166b91906133d6565b9392505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b600c5481565b60006116a86003611eab565b15905090565b6116d87f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361127d565b6116f45760405162461bcd60e51b81526004016104f690613083565b6111ae611ebb565b600b5481565b6001600160e01b031981166301ffc9a760e01b14919050565b806117385760405162461bcd60e51b81526004016104f690612d29565b611743838383611f12565b156117605760405162461bcd60e51b81526004016104f6906130f6565b82546000905b80156118415780915080831015611790576000908152600180860160205260409091200154611818565b808311156117b1576000908152600185016020526040902060020154611818565b808314156118185760008181526001808701602090815260408320600401805480840182558185529184209091018790559183905290546117f291906133d6565b6000918252600186016020908152604080842087855260050190915290912055506118fc565b6000828152600186016020526040812060060180549161183783613410565b9190505550611766565b600083815260018087016020908152604083208581558083018490556002810184905560038101805460ff191684179055600481018054808501825581865292909420909101879055915461189691906133d6565b6000868152600583016020526040902055826118b4578386556118ee565b828410156118d757600083815260018088016020526040909120018490556118ee565b600083815260018701602052604090206002018490555b6118f88685611f86565b5050505b505050565b3390565b61190f828261127d565b610879576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611946611901565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611994828261127d565b15610879576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556119c9611901565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b80611a2a5760405162461bcd60e51b81526004016104f690612ddd565b611a35838383611f12565b611a515760405162461bcd60e51b81526004016104f690612f05565b6000818152600180850160209081526040808420868552600581019092528320546004820180549294919391929091611a89916133d6565b81548110611aa757634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905080836004018381548110611ad857634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600585019091526040902082905560048301805480611b1b57634e487b7160e01b600052603160045260246000fd5b60019003818190600052602060002001600090559055600080846004018054905060001415611d7f5760008681526001808a01602052604090912001541580611b7557506000868152600189016020526040902060020154155b15611b81575084611bc9565b5060008581526001880160205260409020600201545b60008181526001808a016020526040909120015415611bc9576000908152600180890160205260409091200154611b97565b60008181526001808a016020526040909120015415611bfd5760008181526001808a01602052604090912001549150611c14565b600081815260018901602052604090206002015491505b60008181526001890160205260408082205484835291208190558015611c865760008181526001808b0160205260409091200154821415611c6a5760008181526001808b01602052604090912001839055611c81565b600081815260018a01602052604090206002018390555b611c8a565b8289555b600082815260018a01602052604090206003015460ff1615878314611d1d57611cb48a848a6121f1565b600088815260018b8101602052604080832080830154878552828520938401819055845281842087905560028082015490840181905584529083208690556003908101549286905201805460ff191660ff9092161515919091179055919691611d1d8a8961226b565b8015611d2d57611d2d8a856122d8565b611d378a8361226b565b60008381526001808c01602052604082208281559081018290556002810182905560038101805460ff1916905590611d7260048301826129c5565b6006820160009055505050505b5050505050505050565b611d91610f46565b15611dae5760405162461bcd60e51b81526004016104f690612edb565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611de3611901565b604051611df09190612ba6565b60405180910390a1565b805480611e0957506000610499565b5b600081815260018084016020526040909120015415610499576000908152600180830160205260409091200154611e0a565b6000611e4884846126f3565b611e645760405162461bcd60e51b81526004016104f6906131c7565b60008381526001850160205260409020600401805483908110611e9757634e487b7160e01b600052603260045260246000fd5b906000526020600020015490509392505050565b600061049682836000015461273a565b611ec3610f46565b611edf5760405162461bcd60e51b81526004016104f690612cba565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa611de3611901565b6000611f1e84836126f3565b611f2a5750600061166b565b600082815260018501602090815260408083208684526005810190925290912054600490910180548592908110611f7157634e487b7160e01b600052603260045260246000fd5b90600052602060002001541490509392505050565b60005b82548214801590611fb35750600082815260018401602052604080822054825290206003015460ff165b156121cf5760008281526001808501602052604080832054808452818420548452922001548114156120d65760008181526001850160205260408082205482528082206002015480835291206003015490925060ff161561205c576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506120d1565b6000818152600185016020526040902060020154831415612084578092506120848484612766565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546120d19085906128e4565b6121c9565b6000818152600180860160205260408083205483528083209091015480835291206003015490925060ff1615612154576000818152600180860160205260408083206003808201805460ff199081169091558786528386208201805482169055825486529285200180549092169092179055908290525492506121c9565b600081815260018086016020526040909120015483141561217c5780925061217c84846128e4565b50600082815260018085016020526040808320548084528184206003808201805460ff199081169091558254875293862001805490931690931790915591829052546121c9908590612766565b50611f89565b505080546000908152600190910160205260409020600301805460ff19169055565b60008181526001840160205260408082205484835291208190558061221857828455612265565b600081815260018086016020526040909120015482141561224e5760008181526001808601602052604090912001839055612265565b600081815260018501602052604090206002018390555b50505050565b801561087957600081815260018301602052604090206002015461229090839061273a565b60008281526001808501602052604090912001546122af90849061273a565b6122b9919061337f565b600091825260018301602052604090912060068101919091555461226b565b60005b825482148015906123005750600082815260018401602052604090206003015460ff16155b156126d45760008281526001808501602052604080832054808452922001548314156124fd5760008181526001850160205260408082206002015480835291206003015490925060ff16156123a4576000828152600180860160205260408083206003908101805460ff1990811690915585855291909320909201805490921617905561238d8482612766565b600081815260018501602052604090206002015491505b60008281526001808601602052604080832090910154825290206003015460ff161580156123ef5750600082815260018501602052604080822060020154825290206003015460ff16155b1561241c57600082815260018581016020526040909120600301805460ff191690911790559150816124f8565b600082815260018501602052604080822060020154825290206003015460ff16612499576000828152600180860160205260408083208083015484529083206003908101805460ff199081169091559386905201805490921617905561248284836128e4565b600081815260018501602052604090206002015491505b600081815260018501602052604080822060039081018054868552838520808401805460ff909316151560ff1993841617905582548216909255600290910154845291909220909101805490911690556124f38482612766565b835492505b6126ce565b6000818152600180860160205260408083209091015480835291206003015490925060ff161561257c576000828152600180860160205260408083206003908101805460ff1990811690915585855291909320909201805490921617905561256584826128e4565b600081815260018086016020526040909120015491505b600082815260018501602052604080822060020154825290206003015460ff161580156125c7575060008281526001808601602052604080832090910154825290206003015460ff16155b156125f457600082815260018581016020526040909120600301805460ff191690911790559150816126ce565b60008281526001808601602052604080832090910154825290206003015460ff1661267357600082815260018086016020526040808320600281015484529083206003908101805460ff199081169091559386905201805490921617905561265c8483612766565b600081815260018086016020526040909120015491505b60008181526001808601602052604080832060039081018054878652838620808401805460ff909316151560ff199384161790558254821690925593015484529220909101805490911690556126c984826128e4565b835492505b506122db565b506000908152600190910160205260409020600301805460ff19169055565b600081612702575060006112a2565b8254821415612713575060016112a2565b600082815260018401602052604090205415612731575060016112a2565b50600092915050565b600081815260018301602052604081206006810154600482015461275e919061337f565b949350505050565b6000818152600180840160205260408083206002810180549154828652928520909301549385905291839055909180156127ae57600081815260018601602052604090208490555b60008381526001860160205260409020829055816127ce5782855561281b565b6000828152600180870160205260409091200154841415612804576000828152600180870160205260409091200183905561281b565b600082815260018601602052604090206002018390555b60008381526001808701602052604080832090910186905585825290208381556002015461284a90869061273a565b600085815260018088016020526040909120015461286990879061273a565b612873919061337f565b600085815260018701602052604080822060060192909255848152206002015461289e90869061273a565b60008481526001808801602052604090912001546128bd90879061273a565b6128c7919061337f565b600093845260019095016020525050604090206006019190915550565b6000818152600180840160205260408083209182018054925483855291842060020154938590528390559091801561292a57600081815260018601602052604090208490555b600083815260018601602052604090208290558161294a57828555612997565b60008281526001860160205260409020600201548414156129805760008281526001860160205260409020600201839055612997565b600082815260018087016020526040909120018390555b600083815260018601602052604080822060029081018790558683529120848155015461284a90869061273a565b50805460008255906000526020600020908101906129e391906129e6565b50565b5b808211156129fb57600081556001016129e7565b5090565b80356001600160a01b038116811461049957600080fd5b803560ff8116811461049957600080fd5b600060208284031215612a38578081fd5b61166b826129ff565b60008060008060008060c08789031215612a59578182fd5b612a62876129ff565b955060208701359450612a7760408801612a16565b9350612a8560608801612a16565b92506080870135915060a0870135612a9c81613441565b809150509295509295509295565b600060208284031215612abb578081fd5b815161166b81613441565b600060208284031215612ad7578081fd5b5035919050565b60008060408385031215612af0578182fd5b82359150612b00602084016129ff565b90509250929050565b60008060408385031215612b1b578182fd5b50508035926020909101359150565b60008060408385031215612b3c578182fd5b82359150612b0060208401612a16565b600060208284031215612b5d578081fd5b81356001600160e01b03198116811461166b578182fd5b600060208284031215612b85578081fd5b5051919050565b600060208284031215612b9d578081fd5b61166b82612a16565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b6001600160a01b0394909416845260ff92909216602084015215156040830152606082015260800190565b901515815260200190565b90815260200190565b6020808252818101527f6f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526021908201527f6e6f726d616c697365642062616c616e63652063616e6e6f74206265207a65726040820152606f60f81b606082015260800190565b60208082526039908201527f4f7264657253746174697374696373547265652834303529202d2056616c756560408201527f20746f20696e736572742063616e6e6f74206265207a65726f00000000000000606082015260800190565b6020808252601490820152730d2dcecc2d8d2c840c4eac6d6cae840c8cae0e8d60631b604082015260600190565b6020808252600f908201526e3737ba103130ba31b41037bbb732b960891b604082015260600190565b60208082526039908201527f4f7264657253746174697374696373547265652834303729202d2056616c756560408201527f20746f2064656c6574652063616e6e6f74206265207a65726f00000000000000606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526031908201527f6f6e6c792072656469737472696275746f722063616e20776974686472617720604082015270199c9bdb481d1a194818dbdb9d1c9858dd607a1b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252603a908201527f4f7264657253746174697374696373547265652834303829202d2056616c756560408201527f20746f2064656c65746520646f6573206e6f742065786973742e000000000000606082015260800190565b602080825260129082015271626174636820697320696d6d757461626c6560701b604082015260600190565b602080825260149082015273626174636820616c72656164792065786973747360601b604082015260600190565b60208082526018908201527f626174636820746f6f20736d616c6c20746f2072656e65770000000000000000604082015260600190565b6020808252602d908201527f6f6e6c79206465707468206f7261636c652063616e20736574206d696e696d7560408201526c0da40c4c2e8c6d040c8cae0e8d609b1b606082015260800190565b60208082526023908201527f6f6e6c79207072696365206f7261636c652063616e207365742074686520707260408201526269636560e81b606082015260800190565b60208082526024908201527f6f6e6c79207061757365722063616e20756e70617573652074686520636f6e746040820152631c9858dd60e21b606082015260800190565b60208082526015908201527418985d18da08185b1c9958591e48195e1c1a5c9959605a1b604082015260600190565b6020808252604f908201527f4f7264657253746174697374696373547265652834303629202d2056616c756560408201527f20616e64204b65792070616972206578697374732e2043616e6e6f742062652060608201526e34b739b2b93a32b21030b3b0b4b71760891b608082015260a00190565b6020808252601490820152736465707468206e6f7420696e6372656173696e6760601b604082015260600190565b60208082526014908201527318985d18da08191bd95cc81b9bdd08195e1a5cdd60621b604082015260600190565b60208082526030908201527f4f7264657253746174697374696373547265652834303429202d2056616c756560408201526f103237b2b9903737ba1032bc34b9ba1760811b606082015260800190565b6020808252600f908201526e3330b4b632b2103a3930b739b332b960891b604082015260600190565b60208082526026908201527f6f6e6c792061646d696e6973747261746f722063616e2075736520636f7079206040820152651b595d1a1bd960d21b606082015260800190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526022908201527f6f6e6c79207061757365722063616e2070617573652074686520636f6e74726160408201526118dd60f21b606082015260800190565b918252602082015260400190565b95865260208601949094526001600160a01b0392909216604085015260ff9081166060850152166080830152151560a082015260c00190565b60ff91909116815260200190565b60ff929092168252602082015260400190565b600082198211156133925761339261342b565b500190565b6000826133b257634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156133d1576133d161342b565b500290565b6000828210156133e8576133e861342b565b500390565b600060ff821660ff8416808210156134075761340761342b565b90039392505050565b60006000198214156134245761342461342b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b80151581146129e357600080fdfea26469706673582212209fc201bfe9cfa74de15da15a43f776d5bd81a9ef99aa6666484ba957aef58fde64736f6c63430008010033
PRICE_ORACLE_BIN=0x608060405234801561001057600080fd5b506040516104b83803806104b883398101604081905261002f9161007e565b600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506001919091556002556100a1565b60008060408385031215610090578182fd5b505080516020909101519092909150565b610408806100b06000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806398d5fdca1161005b57806398d5fdca146100dd578063a035b1fe146100f8578063dd4899321461010f578063f2fde38b1461011857600080fd5b8063710f2dd11461008d578063715018a6146100a25780638d6cc56d146100aa5780638da5cb5b146100bd575b600080fd5b6100a061009b366004610385565b61012b565b005b6100a061019a565b6100a06100b8366004610385565b61020e565b6000546040516001600160a01b0390911681526020015b60405180910390f35b600154600254604080519283526020830191909152016100d4565b61010160015481565b6040519081526020016100d4565b61010160025481565b6100a0610126366004610357565b61026d565b6000546001600160a01b0316331461015e5760405162461bcd60e51b81526004016101559061039d565b60405180910390fd5b60028190556040518181527f0f45948e42a1e34f851df8452200e744563dae2029a99b8178ff6530458bd3df906020015b60405180910390a150565b6000546001600160a01b031633146101c45760405162461bcd60e51b81526004016101559061039d565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146102385760405162461bcd60e51b81526004016101559061039d565b60018190556040518181527fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a9060200161018f565b6000546001600160a01b031633146102975760405162461bcd60e51b81526004016101559061039d565b6001600160a01b0381166102fc5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610155565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600060208284031215610368578081fd5b81356001600160a01b038116811461037e578182fd5b9392505050565b600060208284031215610396578081fd5b5035919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260408201526060019056fea264697066735822122069737c178b79be7973d71a433150ff2571d211a983a7f5a5ba0f7dba3d57fd7664736f6c63430008040033
STAKING_BIN=0x60806040523480156200001157600080fd5b506040516200167238038062001672833981016040819052620000349162000176565b600180546001600160481b0319166101006001600160401b03841602179055600380546001600160a01b0319166001600160a01b0384161790556200007b600033620000af565b620000a77f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000af565b5050620001c8565b620000bb8282620000bf565b5050565b620000cb828262000149565b620000bb576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200010562000172565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b6000806040838503121562000189578182fd5b82516001600160a01b0381168114620001a0578283fd5b60208401519092506001600160401b0381168114620001bd578182fd5b809150509250929050565b61149a80620001d86000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80638fee6407116100c3578063abe385431161007c578063abe3854314610296578063d547741f146102a9578063e34c4527146102bc578063e63ab1e9146102cf578063ede41302146102d7578063f7b188a5146102ea5761014d565b80638fee64071461022957806391d148541461024d578063a0d22b2114610260578063a217fddf14610273578063a6471a1d1461027b578063a6ce31d4146102835761014d565b8063420fc4db11610115578063420fc4db146101d657806348962b93146101eb5780634ba2363a146101fe5780635c975abb14610206578063837fd16a1461020e5780638456cb59146102215761014d565b806301ffc9a7146101525780631ed2cd401461017b578063248a9ca3146101905780632f2ff15d146101b057806336568abe146101c3575b600080fd5b610165610160366004610fb8565b6102f2565b6040516101729190611068565b60405180910390f35b61018e610189366004610efb565b61031f565b005b6101a361019e366004610f54565b61058d565b6040516101729190611073565b61018e6101be366004610f6c565b6105a2565b61018e6101d1366004610f6c565b6105e0565b6101de610622565b6040516101729190611017565b6101a36101f9366004610f54565b610631565b6101a3610646565b61016561064c565b61018e61021c366004610f97565b610655565b61018e61070e565b61023c610237366004610f54565b61075e565b60405161017295949392919061108a565b61016561025b366004610f6c565b61079a565b6101de61026e366004610f54565b6107c3565b6101a36107e2565b6101a36107e7565b61018e610291366004610f97565b61080b565b6101a36102a4366004610f54565b61093e565b61018e6102b7366004610f6c565b61096a565b61018e6102ca366004610f97565b610992565b6101a3610bfa565b6101a36102e5366004610f54565b610c1e565b61018e610c33565b60006001600160e01b03198216637965db0b60e01b1480610317575061031782610c81565b90505b919050565b61032761064c565b1561034d5760405162461bcd60e51b8152600401610344906111e5565b60405180910390fd5b6001600160a01b0383166103735760405162461bcd60e51b8152600401610344906110b8565b60008361039360018054906101000a900467ffffffffffffffff16610c9a565b846040516020016103a693929190610fe0565b60408051601f19818403018152918152815160209283012060008181526002909352912060040154909150829060ff161561041f576103e482610cf9565b6104005760405162461bcd60e51b81526004016103449061130f565b60008281526002602052604090206001015461041c908461141f565b90505b6003546040516323b872dd60e01b81526001600160a01b03909116906323b872dd906104539033903090889060040161102b565b602060405180830381600087803b15801561046d57600080fd5b505af1158015610481573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104a59190610f2d565b6104c15760405162461bcd60e51b815260040161034490611346565b817f61e979698346a2aa868a3a9f08d30c846174841dc9b074bbf2a82d20554bc6828287436040516104f593929190611400565b60405180910390a26040805160a08101825283815260208082019384526001600160a01b03978816828401908152436060840190815260016080850181815260009889526002948590529590972093518455945195830195909555935193810180546001600160a01b031916949097169390931790955551600382015592516004909301805460ff1916931515939093179092555050565b60009081526020819052604090206001015490565b6105b66105ae8361058d565b61025b610d10565b6105d25760405162461bcd60e51b815260040161034490611118565b6105dc8282610d14565b5050565b6105e8610d10565b6001600160a01b0316816001600160a01b0316146106185760405162461bcd60e51b81526004016103449061136f565b6105dc8282610d99565b6003546001600160a01b031681565b60009081526002602052604090206001015490565b60045481565b60015460ff1690565b61067f7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb08283361079a565b61069b5760405162461bcd60e51b815260040161034490611246565b60008281526002602052604090206004015460ff16156105dc577f340439a63c1ee2404f5b7010cab559b4dcbfc28b8baab9acade354fd688ae2b982826040516106e692919061107c565b60405180910390a16106f8814361141f565b6000838152600260205260409020600301555050565b6107387f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361079a565b6107545760405162461bcd60e51b8152600401610344906113be565b61075c610e1c565b565b6002602081905260009182526040909120805460018201549282015460038301546004909301549193926001600160a01b039091169160ff1685565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600090815260026020819052604090912001546001600160a01b031690565b600081565b7f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb082881565b6108357f3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb08283361079a565b6108515760405162461bcd60e51b815260040161034490611289565b7f0956b50d4d586f6b9c90800d4e713bd2b866e044decd047e6d70ea20314ab308828260405161088292919061107c565b60405180910390a160008281526002602052604090206004015460ff16156105dc576000828152600260205260409020600101548110156108fd57600082815260026020526040812060010180548392906108de908490611437565b90915550506000828152600260205260409020436003909101556105dc565b50600090815260026020819052604082208281556001810183905590810180546001600160a01b03191690556003810191909155600401805460ff19169055565b600061094982610cf9565b610954576000610317565b5060009081526002602052604090206001015490565b6109766105ae8361058d565b6106185760405162461bcd60e51b815260040161034490611195565b61099a61064c565b6109b65760405162461bcd60e51b815260040161034490611167565b600082815260026020819052604090912001546001600160a01b031633146109f05760405162461bcd60e51b81526004016103449061120f565b6000828152600260205260409020600101548190811115610a1f57506000828152600260205260409020600101545b600083815260026020526040902060010154811015610b175760008381526002602052604081206001018054839290610a59908490611437565b9091555050600083815260026020526040908190204360039182015554905163a9059cbb60e01b81526001600160a01b039091169063a9059cbb90610aa4903390859060040161104f565b602060405180830381600087803b158015610abe57600080fd5b505af1158015610ad2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af69190610f2d565b610b125760405162461bcd60e51b8152600401610344906110ed565b610bf5565b60008381526002602081905260408083208381556001810184905591820180546001600160a01b03191690556003808301939093556004918201805460ff191690559154915163a9059cbb60e01b81526001600160a01b039092169163a9059cbb91610b8791339186910161104f565b602060405180830381600087803b158015610ba157600080fd5b505af1158015610bb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd99190610f2d565b610bf55760405162461bcd60e51b8152600401610344906110ed565b505050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60009081526002602052604090206003015490565b610c5d7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3361079a565b610c795760405162461bcd60e51b8152600401610344906112cb565b61075c610e8d565b6001600160e01b031981166301ffc9a760e01b14919050565b600881811b67ff00ff00ff00ff001666ff00ff00ff00ff9290911c9190911617601081811b67ffff0000ffff00001665ffff0000ffff9290911c9190911617602081811b6bffffffffffffffff000000001691901c63ffffffff161790565b600090815260026020526040902060030154431190565b3390565b610d1e828261079a565b6105dc576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055610d55610d10565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b610da3828261079a565b156105dc576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055610dd8610d10565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b610e2461064c565b15610e415760405162461bcd60e51b8152600401610344906111e5565b6001805460ff1916811790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610e76610d10565b604051610e839190611017565b60405180910390a1565b610e9561064c565b610eb15760405162461bcd60e51b815260040161034490611167565b6001805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610e76610d10565b80356001600160a01b038116811461031a57600080fd5b600080600060608486031215610f0f578283fd5b610f1884610ee4565b95602085013595506040909401359392505050565b600060208284031215610f3e578081fd5b81518015158114610f4d578182fd5b9392505050565b600060208284031215610f65578081fd5b5035919050565b60008060408385031215610f7e578182fd5b82359150610f8e60208401610ee4565b90509250929050565b60008060408385031215610fa9578182fd5b50508035926020909101359150565b600060208284031215610fc9578081fd5b81356001600160e01b031981168114610f4d578182fd5b60609390931b6bffffffffffffffffffffffff1916835260c09190911b6001600160c01b0319166014830152601c820152603c0190565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b918252602082015260400190565b94855260208501939093526001600160a01b0391909116604084015260608301521515608082015260a00190565b6020808252818101527f6f776e65722063616e6e6f7420626520746865207a65726f2061646472657373604082015260600190565b60208082526011908201527019985a5b1959081dda5d1a191c985dd85b607a1b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b6020808252601d908201527f6f6e6c79206f776e65722063616e207769746864726177207374616b65000000604082015260600190565b60208082526023908201527f6f6e6c792072656469737472696275746f722063616e20667265657a65207374604082015262616b6560e81b606082015260800190565b60208082526022908201527f6f6e6c792072656469737472696275746f722063616e20736c617368207374616040820152616b6560f01b606082015260800190565b60208082526024908201527f6f6e6c79207061757365722063616e20756e70617573652074686520636f6e746040820152631c9858dd60e21b606082015260800190565b60208082526018908201527f6f7665726c61792063757272656e746c792066726f7a656e0000000000000000604082015260600190565b6020808252600f908201526e3330b4b632b2103a3930b739b332b960891b604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b60208082526022908201527f6f6e6c79207061757365722063616e2070617573652074686520636f6e74726160408201526118dd60f21b606082015260800190565b9283526001600160a01b03919091166020830152604082015260600190565b600082198211156114325761143261144e565b500190565b6000828210156114495761144961144e565b500390565b634e487b7160e01b600052601160045260246000fdfea2646970667358221220133d7e8204022a5a359eb451f6c5a525739781b608d84c235de3578c4e62036a64736f6c63430008010033
REDISTRIBUTION_BIN=0x60806040526001600160801b0360055567016345785d8a00006008556098600c553480156200002d57600080fd5b5060405162002ef738038062002ef78339810160408190526200005091620001b0565b60018054600280546001600160a01b038087166001600160a01b0319909216919091179091558316610100026001600160a81b031990911617905562000098600033620000cc565b620000c47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a33620000cc565b5050620001e7565b620000d88282620000dc565b5050565b620000e8828262000166565b620000d8576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620001226200018f565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b80516001600160a01b0381168114620001ab57600080fd5b919050565b60008060408385031215620001c3578182fd5b620001ce8362000193565b9150620001de6020840162000193565b90509250929050565b612d0080620001f76000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c806382b39b1b1161011a578063c1d810d5116100ad578063dfbf53ae1161007c578063dfbf53ae146103d9578063e3ce094d146103e1578063e63ab1e9146103f4578063ec5ffac2146103fc578063fb00f2f31461040457610206565b8063c1d810d514610398578063ce987745146103ab578063d1e8b63d146103be578063d547741f146103c657610206565b80638d8b6428116100e95780638d8b64281461036257806391d148541461036a578063a217fddf1461037d578063b78a52a71461038557610206565b806382b39b1b14610325578063832206261461034a5780638a19c8bc146103525780638b649b941461035a57610206565b80635c975abb1161019d57806369bfac011161016c57806369bfac01146102d65780636f94aaf2146102de57806372286cba146102e657806377c75d101461030a5780637fe019c61461031d57610206565b80635c975abb146102b65780635d4844ea146102be57806362fd29ae146102c657806364c34a85146102ce57610206565b80632f2ff15d116101d95780632f2ff15d1461027e5780632f3906da1461029357806336568abe1461029b5780634e71d92d146102ae57610206565b806301ffc9a71461020b5780631835009614610234578063248a9ca3146102495780632a4e624914610269575b600080fd5b61021e6102193660046122c2565b610417565b60405161022b919061246b565b60405180910390f35b61023c610444565b60405161022b919061239d565b61025c6102573660046121c1565b610458565b60405161022b9190612476565b61027161046d565b60405161022b91906123e7565b61029161028c3660046121d9565b61056a565b005b61021e6105a8565b6102916102a93660046121d9565b6105fe565b610291610640565b61021e610dad565b61023c610db6565b61025c610dc5565b61025c610e48565b61025c610ed9565b61025c610edf565b6102f96102f43660046121c1565b610ee5565b60405161022b95949392919061247f565b61021e6103183660046121c1565b610f33565b61025c6112e9565b6103386103333660046121c1565b6112ef565b60405161022b969594939291906123b1565b61025c611342565b61025c611349565b61025c61135e565b61021e611364565b61021e6103783660046121d9565b611396565b61025c6113bf565b61021e61039336600461225d565b6113c4565b6102916103a6366004612288565b611567565b61025c6103b9366004612288565b611970565b61021e6119a9565b6102916103d43660046121d9565b6119d5565b6103386119fd565b6102916103ef366004612208565b611a21565b61025c611e2d565b61025c611e51565b61021e610412366004612229565b611e57565b60006001600160e01b03198216637965db0b60e01b148061043c575061043c82611e90565b90505b919050565b60015461010090046001600160a01b031681565b60009081526020819052604090206001015490565b6060610477611364565b61049c5760405162461bcd60e51b81526004016104939061250d565b60405180910390fd5b60006104a6611349565b9050600a5481146104c95760405162461bcd60e51b81526004016104939061295d565b6004805480602002602001604051908101604052809291908181526020016000905b8282101561055f5760008481526020908190206040805160c0810182526006860290920180546001600160a01b031683526001808201548486015260028201549284019290925260038101546060840152600481015460808401526005015460ff1660a083015290835290920191016104eb565b505050509150505b90565b61057e61057683610458565b610378611ea9565b61059a5760405162461bcd60e51b8152600401610493906124be565b6105a48282611ead565b5050565b600080600c54436105b99190612c75565b90506004600c546105ca9190612ac2565b81101580156105e757506002600c546105e39190612ac2565b8111155b156105f6576001915050610567565b600091505090565b610606611ea9565b6001600160a01b0316816001600160a01b0316146106365760405162461bcd60e51b815260040161049390612a12565b6105a48282611f32565b610648610dad565b156106655760405162461bcd60e51b815260040161049390612778565b61066d611364565b6106895760405162461bcd60e51b81526004016104939061250d565b6000610693611349565b9050600a5481146106b65760405162461bcd60e51b81526004016104939061295d565b600b5481116106d75760405162461bcd60e51b815260040161049390612994565b60006106e1611fb5565b6003546004546040519293506000928392839283928392839290917f6752c5e71c95fb93bc7137adeb115a33fa4e54e2683e33d3f90c2bb1c4b6c2a590610729908490612476565b60405180910390a17f4c03de6a759749c0c9387b7014634dc5c6af610e1366023d90751c783a998f8d816040516107609190612476565b60405180910390a160005b8281101561088e576003818154811061079457634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600590920201015460ff1661087c57600254600380546001600160a01b039092169163a6ce31d49190849081106107e757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600001546003848154811061081a57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600201546040518363ffffffff1660e01b8152600401610849929190612328565b600060405180830381600087803b15801561086357600080fd5b505af1158015610877573d6000803e3d6000fd5b505050505b8061088681612c5a565b91505061076b565b5060005b818110156109ea57600481815481106108bb57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160030154896108d89190612aaa565b985089816040516020016108ed92919061235e565b60408051601f198184030181529190528051602090910120600554909750808816965061091b906001612aaa565b6004828154811061093c57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301546109589190612c01565b6109628a88612c01565b10156109d8576004818154811061098957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600401549450600481815481106109be57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff1693505b806109e281612c5a565b915050610892565b507f34e8eda4cd857cd2865becf58a47748f31415f4a382cbb2cc0c64b9a27c717be8484604051610a1c9291906124ad565b60405180910390a16000610a2e612030565b90506000805b83811015610cf65760048181548110610a5d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016004015487148015610ab6575060048181548110610a9957634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff8781169116145b15610c255760048181548110610adc57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301548a610af99190612aaa565b99508282604051602001610b0e92919061235e565b60408051601f198184030181529190528051602090910120600554909950808a169850610b3c906001612aaa565b60048281548110610b5d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160030154610b799190612c01565b610b838b8a612c01565b1015610c135760048181548110610baa57634e487b7160e01b600052603260045260246000fd5b600091825260209091206006909102018054600d80546001600160a01b0319166001600160a01b039092169190911790556001810154600e556002810154600f5560038101546010556004810154601155600501546012805460ff191660ff9092169190911790555b81610c1d81612c5a565b925050610ce4565b600254600480546001600160a01b039092169163837fd16a919084908110610c5d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160010154886002610c7c9190612b2f565b600c54610c8a906007612c01565b610c949190612c01565b6040518363ffffffff1660e01b8152600401610cb1929190612328565b600060405180830381600087803b158015610ccb57600080fd5b505af1158015610cdf573d6000803e3d6000fd5b505050505b80610cee81612c5a565b915050610a34565b507f2756aa512df0e32847d196f374c5b2fa5f30705f2fe3a75b8baeac52f2af5b39600d604051610d279190612a61565b60405180910390a1600154600d546040516351cff8d960e01b81526001600160a01b036101009093048316926351cff8d992610d689291169060040161239d565b600060405180830381600087803b158015610d8257600080fd5b505af1158015610d96573d6000803e3d6000fd5b505050600b9c909c55505050505050505050505050565b60015460ff1690565b6002546001600160a01b031681565b600080610dd0611349565b610ddb906001612aaa565b600754600a5491925090610df0906001612aaa565b821115610e425760006001600a5484610e099190612c43565b610e139190612c43565b90508181604051602001610e28929190612328565b604051602081830303815290604052805190602001209150505b91505090565b600080610e53611349565b9050610e5d6119a9565b80610e795750600a5481118015610e795750610e77611364565b155b15610e8e57610e86611342565b915050610567565b610e966105a8565b8015610ea35750600a5481145b15610ec05760405162461bcd60e51b815260040161049390612539565b610ec8611364565b15610ed557610e86610dc5565b5090565b60095481565b600b5481565b60038181548110610ef557600080fd5b6000918252602090912060059091020180546001820154600283015460038401546004909401549294506001600160a01b0390911692909160ff1685565b6000610f3d611364565b610f595760405162461bcd60e51b81526004016104939061266f565b6000610f63611349565b9050600a548114610f865760405162461bcd60e51b81526004016104939061295d565b600b548111610fa75760405162461bcd60e51b815260040161049390612994565b6000610fb1611fb5565b90506000808080808080805b6004548110156111175760048181548110610fe857634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160030154886110059190612aaa565b9750888160405160200161101a92919061235e565b60408051601f1981840301815291905280516020909101206005549095508086169450611048906001612aaa565b6004828154811061106957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600301546110859190612c01565b61108f8986612c01565b101561110557600481815481106110b657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060060201600401549250600481815481106110eb57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff1691505b8061110f81612c5a565b915050610fbd565b506000611122612030565b90506000805b6004548110156112d5576004818154811061115357634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160040154851480156111ac57506004818154811061118f57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600690920201015460ff8581169116145b156112c357600481815481106111d257634e487b7160e01b600052603260045260246000fd5b906000526020600020906006020160030154896111ef9190612aaa565b9850828260405160200161120492919061235e565b60408051601f1981840301815291905280516020909101206005549097508088169650611232906001612aaa565b6004828154811061125357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016003015461126f9190612c01565b6112798a88612c01565b10156112b557600481815481106112a057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600602016001015497505b816112bf81612c5a565b9250505b806112cd81612c5a565b915050611128565b505050999093149998505050505050505050565b600a5481565b600481815481106112ff57600080fd5b60009182526020909120600690910201805460018201546002830154600384015460048501546005909501546001600160a01b0390941695509193909260ff1686565b600080610ddb5b6000600c54436113599190612ac2565b905090565b600c5481565b60006002600c546113759190612ac2565b600c546113829043612c75565b111561139057506001610567565b50600090565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600081565b60006113ce611364565b806113dc57506113dc6119a9565b6113f85760405162461bcd60e51b8152600401610493906127a2565b600c54611406906002612c01565b6114109043612c43565b6002546040516376f2098160e11b81526001600160a01b039091169063ede4130290611440908790600401612476565b60206040518083038186803b15801561145857600080fd5b505afa15801561146c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149091906122ea565b106114ad5760405162461bcd60e51b8152600401610493906128a2565b6008546002546040516348962b9360e01b81526001600160a01b03909116906348962b93906114e0908790600401612476565b60206040518083038186803b1580156114f857600080fd5b505afa15801561150c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153091906122ea565b101561154e5760405162461bcd60e51b815260040161049390612814565b6115608361155a610e48565b84611e57565b9392505050565b61156f610dad565b1561158c5760405162461bcd60e51b815260040161049390612778565b6115946105a8565b6115b05760405162461bcd60e51b8152600401610493906127e7565b60006115ba611349565b905060095481146115dd5760405162461bcd60e51b8152600401610493906126a6565b600a548114611603576115ee610e48565b6006556115fd600460006120c8565b600a8190555b600061161186868686611970565b60035490915060005b8181101561195157876003828154811061164457634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016000015414801561169457506003818154811061167f57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016003015483145b1561193f576116d8600382815481106116bd57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016000015460065489611e57565b6116f45760405162461bcd60e51b81526004016104939061257e565b6003818154811061171557634e487b7160e01b600052603260045260246000fd5b600091825260209091206004600590920201015460ff16156117495760405162461bcd60e51b8152600401610493906125ec565b60016003828154811061176c57634e487b7160e01b600052603260045260246000fd5b906000526020600020906005020160040160006101000a81548160ff02191690831515021790555060046040518060c00160405280600384815481106117c257634e487b7160e01b600052603260045260246000fd5b6000918252602091829020600160059092020101546001600160a01b031682526003805492909101918590811061180957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016000015481526020016003848154811061184157634e487b7160e01b600052603260045260246000fd5b90600052602060002090600502016002015481526020018960026118659190612b2f565b6003858154811061188657634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600201546118a29190612c01565b815260208082018a905260ff8b8116604093840152845460018082018755600096875295839020855160069092020180546001600160a01b0319166001600160a01b039092169190911781559184015194820194909455908201516002820155606082015160038201556080820151600482015560a0909101516005909101805460ff191691909216179055611936612096565b5050505061196a565b8061194981612c5a565b91505061161a565b5060405162461bcd60e51b8152600401610493906129db565b50505050565b6000848484846040516020016119899493929190612336565b604051602081830303815290604052805190602001209050949350505050565b60006004600c546119ba9190612ac2565b600c546119c79043612c75565b101561139057506001610567565b6119e161057683610458565b6106365760405162461bcd60e51b815260040161049390612728565b600d54600e54600f546010546011546012546001600160a01b039095169460ff1686565b611a29610dad565b15611a465760405162461bcd60e51b815260040161049390612778565b611a4e6119a9565b611a6a5760405162461bcd60e51b8152600401610493906125bf565b6002546040516348962b9360e01b81526000916001600160a01b0316906348962b9390611a9b908590600401612476565b60206040518083038186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aeb91906122ea565b9050600854811015611b0f5760405162461bcd60e51b815260040161049390612623565b60025460405163a0d22b2160e01b815233916001600160a01b03169063a0d22b2190611b3f908690600401612476565b60206040518083038186803b158015611b5757600080fd5b505afa158015611b6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b8f91906121a5565b6001600160a01b031614611bb55760405162461bcd60e51b815260040161049390612856565b600c54611bc3906002612c01565b611bcd9043612c43565b6002546040516376f2098160e11b81526001600160a01b039091169063ede4130290611bfd908690600401612476565b60206040518083038186803b158015611c1557600080fd5b505afa158015611c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4d91906122ea565b10611c6a5760405162461bcd60e51b8152600401610493906128d2565b6000611c74611349565b90506009548114611c9157611c8b600360006120ec565b60098190555b60035460005b81811015611d03578460038281548110611cc157634e487b7160e01b600052603260045260246000fd5b9060005260206000209060050201600001541415611cf15760405162461bcd60e51b8152600401610493906126dd565b80611cfb81612c5a565b915050611c97565b50506040805160a08101825293845233602085019081529084019283526060840194855260006080850181815260038054600181018255925294517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b60059092029182015590517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85c820180546001600160a01b0319166001600160a01b0390921691909117905591517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85d8301555091517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85e830155517fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85f909101805460ff1916911515919091179055565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b60085481565b600060ff8216611e6957506001611560565b611e7860ff8316610100612c20565b611e83906002612b1c565b8484181090509392505050565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b611eb78282611396565b6105a4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055611eee611ea9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f3c8282611396565b156105a4576000828152602081815260408083206001600160a01b03851684529091529020805460ff19169055611f71611ea9565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b6060611fbf611364565b611fdb5760405162461bcd60e51b815260040161049390612919565b6000611fe5611349565b9050600a5481146120085760405162461bcd60e51b81526004016104939061295d565b60075460405160200161201b9190612302565b60405160208183030381529060405291505090565b606061203a611364565b6120565760405162461bcd60e51b815260040161049390612919565b6000612060611349565b9050600a5481146120835760405162461bcd60e51b81526004016104939061295d565b60075460405160200161201b9190612315565b600754446040516020016120ab929190612328565b60408051601f198184030181529190528051602090910120600755565b50805460008255600602906000526020600020908101906120e9919061210d565b50565b50805460008255600502906000526020600020908101906120e99190612154565b5b80821115610ed55780546001600160a01b03191681556000600182018190556002820181905560038201819055600482015560058101805460ff1916905560060161210e565b5b80821115610ed55760008082556001820180546001600160a01b031916905560028201819055600382015560048101805460ff19169055600501612155565b803560ff8116811461043f57600080fd5b6000602082840312156121b6578081fd5b815161156081612cb5565b6000602082840312156121d2578081fd5b5035919050565b600080604083850312156121eb578081fd5b8235915060208301356121fd81612cb5565b809150509250929050565b6000806040838503121561221a578182fd5b50508035926020909101359150565b60008060006060848603121561223d578081fd5b833592506020840135915061225460408501612194565b90509250925092565b6000806040838503121561226f578182fd5b8235915061227f60208401612194565b90509250929050565b6000806000806080858703121561229d578081fd5b843593506122ad60208601612194565b93969395505050506040820135916060013590565b6000602082840312156122d3578081fd5b81356001600160e01b031981168114611560578182fd5b6000602082840312156122fb578081fd5b5051919050565b908152600360fc1b602082015260210190565b908152603160f81b602082015260210190565b918252602082015260400190565b93845260f89290921b6001600160f81b03191660208401526021830152604182015260610190565b60008351815b8181101561237e5760208187018101518583015201612364565b8181111561238c5782828501525b509190910191825250602001919050565b6001600160a01b0391909116815260200190565b6001600160a01b03969096168652602086019490945260408501929092526060840152608083015260ff1660a082015260c00190565b602080825282518282018190526000919060409081850190868401855b8281101561245e57815180516001600160a01b0316855286810151878601528581015186860152606080820151908601526080808201519086015260a09081015160ff169085015260c09093019290850190600101612404565b5091979650505050505050565b901515815260200190565b90815260200190565b9485526001600160a01b03939093166020850152604084019190915260608301521515608082015260a00190565b91825260ff16602082015260400190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601290820152716e6f7420696e20636c61696d20706861736560701b604082015260600190565b60208082526025908201527f63616e27742072657475726e2076616c75652061667465722066697273742072604082015264195d99585b60da1b606082015260800190565b60208082526021908201527f616e63686f72206f7574206f662073656c66207265706f7274656420646570746040820152600d60fb1b606082015260800190565b6020808252601390820152726e6f7420696e20636f6d6d697420706861736560681b604082015260600190565b6020808252601c908201527f7061727469636970616e7420616c72656164792072657665616c656400000000604082015260600190565b6020808252602c908201527f6e6f6465206d7573742068617665207374616b6564206174206c65617374206d60408201526b696e696d756d207374616b6560a01b606082015260800190565b60208082526019908201527f77696e6e6572206e6f742064657465726d696e65642079657400000000000000604082015260600190565b60208082526019908201527f726f756e64207265636569766564206e6f20636f6d6d69747300000000000000604082015260600190565b6020808252602b908201527f7061727469636970616e7420616c726561647920636f6d6d697474656420696e60408201526a081d1a1a5cc81c9bdd5b9960aa1b606082015260800190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526025908201527f6e6f742064657465726d696e656420666f72207570636f6d696e6720726f756e60408201526419081e595d60da1b606082015260800190565b6020808252601390820152726e6f7420696e2072657665616c20706861736560681b604082015260600190565b60208082526022908201527f7374616b6520616d6f756e7420646f6573206e6f74206d656574206d696e696d604082015261756d60f01b606082015260800190565b6020808252602c908201527f6f776e6572206d757374206d617463682073656e64657220746f20626520616260408201526b1b19481d1bc818dbdb5b5a5d60a21b606082015260800190565b6020808252601690820152757374616b65207570646174656420726563656e746c7960501b604082015260600190565b60208082526027908201527f6e6f6465206d7573742068617665207374616b6564206265666f7265206c61736040820152661d081c9bdd5b9960ca1b606082015260800190565b60208082526024908201527f6e6f742064657465726d696e656420666f722063757272656e7420726f756e64604082015263081e595d60e21b606082015260800190565b60208082526019908201527f726f756e64207265636569766564206e6f2072657665616c7300000000000000604082015260600190565b60208082526027908201527f726f756e6420616c7265616479207265636569766564207375636365737366756040820152666c20636c61696d60c81b606082015260800190565b6020808252601a908201527f6e6f206d61746368696e6720636f6d6d6974206f722068617368000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b81546001600160a01b031681526001820154602082015260028201546040820152600382015460608201526004820154608082015260059091015460ff1660a082015260c00190565b60008219821115612abd57612abd612c89565b500190565b600082612ad157612ad1612c9f565b500490565b80825b6001808611612ae85750612b13565b818704821115612afa57612afa612c89565b80861615612b0757918102915b9490941c938002612ad9565b94509492505050565b600061156060001961ffff851684612b3d565b600061156060001960ff8516845b600082612b4c57506001611560565b81612b5957506000611560565b8160018114612b6f5760028114612b7957612ba6565b6001915050611560565b60ff841115612b8a57612b8a612c89565b6001841b915084821115612ba057612ba0612c89565b50611560565b5060208310610133831016604e8410600b8410161715612bd9575081810a83811115612bd457612bd4612c89565b611560565b612be68484846001612ad6565b808604821115612bf857612bf8612c89565b02949350505050565b6000816000190483118215151615612c1b57612c1b612c89565b500290565b600061ffff83811690831681811015612c3b57612c3b612c89565b039392505050565b600082821015612c5557612c55612c89565b500390565b6000600019821415612c6e57612c6e612c89565b5060010190565b600082612c8457612c84612c9f565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b03811681146120e957600080fdfea264697066735822122030632b44f442d4ff4dba0c82bb50f51bf0dae8a87307799d0e35f66ee01a881164736f6c63430008010033
function to_hex() {
printf '0x%x\n' $1
}
function to_abi_hex() {
printf "%0$2x" "$1" | tr ' ' '0'
}
function to_abi_address() {
left_pad $(echo "$1" | cut -c 3-) 64
}
function left_pad() {
printf "%0$2s" "$1" | tr ' ' '0'
}
function jsonrpc_raw() {
curl -s -X POST -H "Content-Type: application/json" --data "{\"jsonrpc\":\"2.0\",\"method\":\"$1\",\"params\":$2, \"id\":\"1\" }" "$BACKEND"
}
function jsonrpc() {
local ret
ret=$(jsonrpc_raw "$1" "$2")
if test $? -eq 7
then
echo could not connect to backend >&2
return 2
fi
if echo "$ret" | jq -e .error > /dev/null
then
echo "$ret" | jq -e .error >&2
return 1
else
echo "$ret" | jq -e .result
fi
}
function eth_accounts() {
jsonrpc eth_accounts "[]"
}
function primary_account() {
eth_accounts | jq -r '.[0]'
}
function eth_sendTransaction() {
local args=''
[ ! -z ${FROM+x} ] && args="$args --arg from $FROM"
[ ! -z ${TO+x} ] && args="$args --arg to $TO"
[ ! -z ${VALUE+x} ] && args="$args --arg value $(to_hex $VALUE)"
[ ! -z ${DATA+x} ] && args="$args --arg data $DATA"
[ ! -z ${GAS+x} ] && args="$args --arg gas $(to_hex $GAS)"
jsonrpc eth_sendTransaction "$(jq -n $args '[. + $ARGS.named'])" | jq -r
}
function wait_for_tx() {
local txhash="$1"
while
local receipt=$(jsonrpc eth_getTransactionReceipt "[\"$txhash\"]")
[ "$receipt" == "null" ]
do
sleep 1
done
echo "$receipt"
}
function wait_for_deploy() {
wait_for_tx "$@" | jq -r .contractAddress
}
function mint_erc20() {
local data=$(echo $TOKEN_MINT_DATA | sed -e "s.__RECIPIENT__.$(to_abi_address $2)." -e "s.__AMOUNT__.$(to_abi_hex $3 64).")
wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="$data" eth_sendTransaction)
}
function grantPriceOracleRole() {
wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x2f2ff15ddd24a0f121e5ab7c3e97c63eaaf859e0b46792c3e0edfd86e2b3ad50f63011d8$(to_abi_address $2)" eth_sendTransaction)
}
function grantRedistributorRole() {
wait_for_tx $(FROM=$(primary_account) TO="$1" DATA="0x2f2ff15d3e35b14a9f4fef84b59f9bdcd3044fc28783144b7e42bfb2cd075e6a02cb0828$(to_abi_address $2)" eth_sendTransaction)
}
PRIMARY_ACCOUNT=$(primary_account)
echo found primary account $PRIMARY_ACCOUNT >&2
TOKEN_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA=$TOKEN_BIN GAS=3500000 eth_sendTransaction))
echo deployed token to $TOKEN_ADDRESS >&2
PATCHED_LEGACY_FACTORY_BIN=$(echo $LEGACY_FACTORY_BIN | sed -e "s.__TOKEN_ADDRESS__.$(to_abi_address $TOKEN_ADDRESS).")
LEGACY_FACTORY_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA=$PATCHED_LEGACY_FACTORY_BIN GAS=3500000 eth_sendTransaction))
echo deployed legacy factory to $LEGACY_FACTORY_ADDRESS >&2
POSTAGE_STAMP_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA="${POSTAGE_STAMP_BIN}$(to_abi_address $TOKEN_ADDRESS)" GAS=3500000 eth_sendTransaction))
echo deployed postage stamp contract to $POSTAGE_STAMP_ADDRESS >&2
PRICE_ORACLE_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA="${PRICE_ORACLE_BIN}$(to_abi_hex 100000 64)$(to_abi_hex 1 64)" GAS=3500000 eth_sendTransaction))
echo deployed price oracle contract to $PRICE_ORACLE_ADDRESS >&2
STAKING_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA="${STAKING_BIN}$(to_abi_address $TOKEN_ADDRESS)$(to_abi_hex 12345 64)" GAS=3500000 eth_sendTransaction))
echo deployed staking contract to $STAKING_ADDRESS >&2
REDISTRIBUTION_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA="${REDISTRIBUTION_BIN}$(to_abi_address $STAKING_ADDRESS)$(to_abi_address $POSTAGE_STAMP_ADDRESS)" GAS=3500000 eth_sendTransaction))
echo deployed redistribution contract to $REDISTRIBUTION_ADDRESS >&2
PATCHED_FACTORY_BIN=$(echo $FACTORY_BIN | sed -e "s.__TOKEN_ADDRESS__.$(to_abi_address $TOKEN_ADDRESS).")
FACTORY_ADDRESS=$(wait_for_deploy $(FROM=$PRIMARY_ACCOUNT DATA=$PATCHED_FACTORY_BIN GAS=3500000 eth_sendTransaction))
echo deployed factory to $FACTORY_ADDRESS >&2
grantPriceOracleRole $POSTAGE_STAMP_ADDRESS $PRIMARY_ACCOUNT > /dev/null
grantRedistributorRole $POSTAGE_STAMP_ADDRESS $REDISTRIBUTION_ADDRESS > /dev/null
grantRedistributorRole $STAKING_ADDRESS $REDISTRIBUTION_ADDRESS > /dev/null
for NODEACCOUNT in $BZZACCOUNTS
do
echo "minting tokens for $NODEACCOUNT" >&2
mint_erc20 $TOKEN_ADDRESS 0x$NODEACCOUNT 1000000000000000000 > /dev/null &
echo "sending eth to $NODEACCOUNT" >&2
wait_for_tx $(FROM=$PRIMARY_ACCOUNT TO=0x$NODEACCOUNT VALUE=1000000000000000000 eth_sendTransaction) > /dev/null &
done
wait
echo "----- USE THE COMMANDS BELOW TO SETUP YOUR TERMINALS -----" >&2
echo export BEE_SWAP_ENDPOINT=$BACKEND
echo export BEE_SWAP_FACTORY_ADDRESS=$FACTORY_ADDRESS
echo export BEE_PRICE_ORACLE_ADDRESS=$PRICE_ORACLE_ADDRESS
echo export BEE_SWAP_LEGACY_FACTORY_ADDRESSES=$LEGACY_FACTORY_ADDRESS
echo export BEE_POSTAGE_STAMP_ADDRESS=$POSTAGE_STAMP_ADDRESS
echo export BEE_STAKING_ADDRESS=$STAKING_ADDRESS
echo export BEE_REDISTRIBUTION_ADDRESS=$REDISTRIBUTION_ADDRESS