@ensuro/core 2.0.1 → 2.1.0-beta2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/build/contracts/AccessManager.sol/AccessManager.json +2 -2
  2. package/build/contracts/ERC4626AssetManager.sol/ERC4626AssetManager.json +2 -2
  3. package/build/contracts/EToken.sol/EToken.json +71 -7
  4. package/build/contracts/LPManualWhitelist.sol/LPManualWhitelist.json +193 -9
  5. package/build/contracts/Policy.sol/Policy.json +2 -2
  6. package/build/contracts/PolicyPool.sol/PolicyPool.json +2 -2
  7. package/build/contracts/PremiumsAccount.sol/PremiumsAccount.json +46 -2
  8. package/build/contracts/SignedQuoteRiskModule.sol/SignedQuoteRiskModule.json +2 -2
  9. package/build/contracts/TimeScaled.sol/TimeScaled.json +2 -2
  10. package/build/contracts/TrustfulRiskModule.sol/TrustfulRiskModule.json +2 -2
  11. package/build/contracts/interfaces/IEToken.sol/IEToken.json +0 -5
  12. package/build/contracts/interfaces/ILPWhitelist.sol/ILPWhitelist.json +29 -0
  13. package/build/contracts/mocks/FixedRateVault.sol/FixedRateVault.json +2 -2
  14. package/build/contracts/mocks/InterfaceIdCalculator.sol/InterfaceIdCalculator.json +2 -2
  15. package/build/contracts/mocks/PolicyPoolComponentMock.sol/PolicyPoolComponentMock.json +2 -2
  16. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMock.json +2 -2
  17. package/build/contracts/mocks/PolicyPoolMock.sol/PolicyPoolMockForward.json +2 -2
  18. package/build/contracts/mocks/RiskModuleMock.sol/RiskModuleMock.json +2 -2
  19. package/contracts/EToken.sol +64 -17
  20. package/contracts/LPManualWhitelist.sol +97 -11
  21. package/contracts/PremiumsAccount.sol +90 -11
  22. package/contracts/RiskModule.sol +2 -2
  23. package/contracts/TimeScaled.sol +2 -9
  24. package/contracts/interfaces/IAccessManager.sol +4 -4
  25. package/contracts/interfaces/IEToken.sol +1 -7
  26. package/contracts/interfaces/ILPWhitelist.sol +14 -0
  27. package/js/deploy.js +21 -12
  28. package/js/test-utils.js +2 -2
  29. package/package.json +1 -1
@@ -107,13 +107,35 @@
107
107
  "type": "address"
108
108
  },
109
109
  {
110
+ "components": [
111
+ {
112
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
113
+ "name": "deposit",
114
+ "type": "uint8"
115
+ },
116
+ {
117
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
118
+ "name": "withdraw",
119
+ "type": "uint8"
120
+ },
121
+ {
122
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
123
+ "name": "sendTransfer",
124
+ "type": "uint8"
125
+ },
126
+ {
127
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
128
+ "name": "receiveTransfer",
129
+ "type": "uint8"
130
+ }
131
+ ],
110
132
  "indexed": false,
111
- "internalType": "bool",
133
+ "internalType": "struct LPManualWhitelist.WhitelistStatus",
112
134
  "name": "whitelisted",
113
- "type": "bool"
135
+ "type": "tuple"
114
136
  }
115
137
  ],
116
- "name": "LPWhitelisted",
138
+ "name": "LPWhitelistStatusChanged",
117
139
  "type": "event"
118
140
  },
119
141
  {
@@ -207,6 +229,19 @@
207
229
  "stateMutability": "view",
208
230
  "type": "function"
209
231
  },
232
+ {
233
+ "inputs": [],
234
+ "name": "LP_WHITELIST_ADMIN_ROLE",
235
+ "outputs": [
236
+ {
237
+ "internalType": "bytes32",
238
+ "name": "",
239
+ "type": "bytes32"
240
+ }
241
+ ],
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
210
245
  {
211
246
  "inputs": [],
212
247
  "name": "LP_WHITELIST_ROLE",
@@ -271,7 +306,7 @@
271
306
  },
272
307
  {
273
308
  "internalType": "address",
274
- "name": "",
309
+ "name": "providerFrom",
275
310
  "type": "address"
276
311
  },
277
312
  {
@@ -296,6 +331,35 @@
296
331
  "stateMutability": "view",
297
332
  "type": "function"
298
333
  },
334
+ {
335
+ "inputs": [
336
+ {
337
+ "internalType": "contract IEToken",
338
+ "name": "",
339
+ "type": "address"
340
+ },
341
+ {
342
+ "internalType": "address",
343
+ "name": "provider",
344
+ "type": "address"
345
+ },
346
+ {
347
+ "internalType": "uint256",
348
+ "name": "",
349
+ "type": "uint256"
350
+ }
351
+ ],
352
+ "name": "acceptsWithdrawal",
353
+ "outputs": [
354
+ {
355
+ "internalType": "bool",
356
+ "name": "",
357
+ "type": "bool"
358
+ }
359
+ ],
360
+ "stateMutability": "view",
361
+ "type": "function"
362
+ },
299
363
  {
300
364
  "inputs": [],
301
365
  "name": "currency",
@@ -311,6 +375,69 @@
311
375
  },
312
376
  {
313
377
  "inputs": [],
378
+ "name": "getWhitelistDefaults",
379
+ "outputs": [
380
+ {
381
+ "components": [
382
+ {
383
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
384
+ "name": "deposit",
385
+ "type": "uint8"
386
+ },
387
+ {
388
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
389
+ "name": "withdraw",
390
+ "type": "uint8"
391
+ },
392
+ {
393
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
394
+ "name": "sendTransfer",
395
+ "type": "uint8"
396
+ },
397
+ {
398
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
399
+ "name": "receiveTransfer",
400
+ "type": "uint8"
401
+ }
402
+ ],
403
+ "internalType": "struct LPManualWhitelist.WhitelistStatus",
404
+ "name": "",
405
+ "type": "tuple"
406
+ }
407
+ ],
408
+ "stateMutability": "view",
409
+ "type": "function"
410
+ },
411
+ {
412
+ "inputs": [
413
+ {
414
+ "components": [
415
+ {
416
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
417
+ "name": "deposit",
418
+ "type": "uint8"
419
+ },
420
+ {
421
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
422
+ "name": "withdraw",
423
+ "type": "uint8"
424
+ },
425
+ {
426
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
427
+ "name": "sendTransfer",
428
+ "type": "uint8"
429
+ },
430
+ {
431
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
432
+ "name": "receiveTransfer",
433
+ "type": "uint8"
434
+ }
435
+ ],
436
+ "internalType": "struct LPManualWhitelist.WhitelistStatus",
437
+ "name": "defaultStatus",
438
+ "type": "tuple"
439
+ }
440
+ ],
314
441
  "name": "initialize",
315
442
  "outputs": [],
316
443
  "stateMutability": "nonpayable",
@@ -380,6 +507,41 @@
380
507
  "stateMutability": "view",
381
508
  "type": "function"
382
509
  },
510
+ {
511
+ "inputs": [
512
+ {
513
+ "components": [
514
+ {
515
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
516
+ "name": "deposit",
517
+ "type": "uint8"
518
+ },
519
+ {
520
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
521
+ "name": "withdraw",
522
+ "type": "uint8"
523
+ },
524
+ {
525
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
526
+ "name": "sendTransfer",
527
+ "type": "uint8"
528
+ },
529
+ {
530
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
531
+ "name": "receiveTransfer",
532
+ "type": "uint8"
533
+ }
534
+ ],
535
+ "internalType": "struct LPManualWhitelist.WhitelistStatus",
536
+ "name": "newStatus",
537
+ "type": "tuple"
538
+ }
539
+ ],
540
+ "name": "setWhitelistDefaults",
541
+ "outputs": [],
542
+ "stateMutability": "nonpayable",
543
+ "type": "function"
544
+ },
383
545
  {
384
546
  "inputs": [
385
547
  {
@@ -445,9 +607,31 @@
445
607
  "type": "address"
446
608
  },
447
609
  {
448
- "internalType": "bool",
449
- "name": "whitelisted",
450
- "type": "bool"
610
+ "components": [
611
+ {
612
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
613
+ "name": "deposit",
614
+ "type": "uint8"
615
+ },
616
+ {
617
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
618
+ "name": "withdraw",
619
+ "type": "uint8"
620
+ },
621
+ {
622
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
623
+ "name": "sendTransfer",
624
+ "type": "uint8"
625
+ },
626
+ {
627
+ "internalType": "enum LPManualWhitelist.WhitelistOptions",
628
+ "name": "receiveTransfer",
629
+ "type": "uint8"
630
+ }
631
+ ],
632
+ "internalType": "struct LPManualWhitelist.WhitelistStatus",
633
+ "name": "newStatus",
634
+ "type": "tuple"
451
635
  }
452
636
  ],
453
637
  "name": "whitelistAddress",
@@ -456,8 +640,8 @@
456
640
  "type": "function"
457
641
  }
458
642
  ],
459
- "bytecode": "0x60c0604052306080523480156200001557600080fd5b5060405162001acd38038062001acd833981016040819052620000389162000197565b806001600160a01b038116620000bb5760405162461bcd60e51b815260206004820152603660248201527f506f6c696379506f6f6c436f6d706f6e656e743a20706f6c696379506f6f6c2060448201527f63616e6e6f74206265207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b620000c5620000d8565b6001600160a01b031660a05250620001c9565b600054610100900460ff1615620001425760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000b2565b60005460ff908116101562000195576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001aa57600080fd5b81516001600160a01b0381168114620001c257600080fd5b9392505050565b60805160a051611898620002356000396000818161025f015281816105a60152818161094e01528181610a7801528181610c0701528181610cf4015261102e015260008181610472015281816104bb015281816106b8015281816106f8015261078701526118986000f3fe60806040526004361061011f5760003560e01c80635b494dd5116100a05780638456cb59116100645780638456cb591461038a578063aad4148c1461039f578063b9a45aac146103d3578063e5a6b10f146103f3578063f67b2bad1461040857600080fd5b80635b494dd5146102bf5780635c975abb146102f35780635fcdca371461030b5780637ed5acfa146103485780638129fc1c1461037557600080fd5b8063468a8c9f116100e7578063468a8c9f146101e05780634a47a3e01461021c5780634d15eb03146102505780634f1ef2861461029757806352d1902d146102aa57600080fd5b806301ffc9a71461012457806324ea54f4146101595780633659cfe61461018957806337ee20dd146101ab5780633f4ba83a146101cb575b600080fd5b34801561013057600080fd5b5061014461013f366004611469565b61043c565b60405190151581526020015b60405180910390f35b34801561016557600080fd5b5061017b60008051602061184383398151915281565b604051908152602001610150565b34801561019557600080fd5b506101a96101a43660046114a8565b610468565b005b3480156101b757600080fd5b506101446101c63660046114c5565b610550565b3480156101d757600080fd5b506101a9610574565b3480156101ec57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff16602083015201610150565b34801561022857600080fd5b5061017b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b34801561025c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610150565b6101a96102a536600461151c565b6106ae565b3480156102b657600080fd5b5061017b61077a565b3480156102cb57600080fd5b5061017b7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102ff57600080fd5b5060975460ff16610144565b34801561031757600080fd5b506101446103263660046115e0565b506001600160a01b0316600090815260fb602052604090205460ff1692915050565b34801561035457600080fd5b5061035f6201518081565b60405164ffffffffff9091168152602001610150565b34801561038157600080fd5b506101a961082d565b34801561039657600080fd5b506101a961093d565b3480156103ab57600080fd5b5061017b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b3480156103df57600080fd5b506101a96103ee366004611631565b610a55565b3480156103ff57600080fd5b5061027f610c03565b34801561041457600080fd5b5061017b7fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b600061044782610c8c565b8061046257506001600160e01b03198216633411f57560e11b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104b95760405162461bcd60e51b81526004016104b09061166f565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105026000805160206117fc833981519152546001600160a01b031690565b6001600160a01b0316146105285760405162461bcd60e51b81526004016104b0906116bb565b61053181610cc2565b6040805160008082526020820190925261054d91839190610df9565b50565b6001600160a01b038216600090815260fb602052604090205460ff165b9392505050565b6000805160206118438339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190611707565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561068a57600080fd5b505afa15801561069e573d6000803e3d6000fd5b505050506106aa610f64565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106f65760405162461bcd60e51b81526004016104b09061166f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661073f6000805160206117fc833981519152546001600160a01b031690565b6001600160a01b0316146107655760405162461bcd60e51b81526004016104b0906116bb565b61076e82610cc2565b6106aa82826001610df9565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461081a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104b0565b506000805160206117fc83398151915290565b600054610100900460ff161580801561084d5750600054600160ff909116105b806108675750303b158015610867575060005460ff166001145b6108ca5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104b0565b6000805460ff1916600117905580156108ed576000805461ff0019166101001790555b6108f5610fb6565b801561054d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000805160206118438339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce9190611707565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526001606482015260840160006040518083038186803b158015610a3557600080fd5b505afa158015610a49573d6000803e3d6000fd5b5050505061054d610fef565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611707565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526000606482015260840160006040518083038186803b158015610b5f57600080fd5b505afa158015610b73573d6000803e3d6000fd5b5050506001600160a01b038416600090815260fb602052604090205460ff161515831515149050610bfe576001600160a01b038316600081815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611707565b905090565b60006001600160e01b031982166301ffc9a760e01b148061046257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206118438339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190611707565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b50505050610bfe8361102c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e2c57610bfe8361111d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e86575060408051601f3d908101601f19168201909252610e8391810190611724565b60015b610ee95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104b0565b6000805160206117fc8339815191528114610f585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104b0565b50610bfe8383836111b9565b610f6c6111e4565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16610fdd5760405162461bcd60e51b81526004016104b09061173d565b610fe561122d565b610fed611254565b565b610ff7611283565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f993390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b89190611707565b6001600160a01b03161461054d5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b60648201526084016104b0565b6001600160a01b0381163b61118a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104b0565b6000805160206117fc83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6111c2836112c9565b6000825111806111cf5750805b15610bfe576111de8383611309565b50505050565b60975460ff16610fed5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104b0565b600054610100900460ff16610fed5760405162461bcd60e51b81526004016104b09061173d565b600054610100900460ff1661127b5760405162461bcd60e51b81526004016104b09061173d565b610fed6113fd565b60975460ff1615610fed5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104b0565b6112d28161111d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6113715760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104b0565b600080846001600160a01b03168460405161138c91906117ac565b600060405180830381855af49150503d80600081146113c7576040519150601f19603f3d011682016040523d82523d6000602084013e6113cc565b606091505b50915091506113f4828260405180606001604052806027815260200161181c60279139611430565b95945050505050565b600054610100900460ff166114245760405162461bcd60e51b81526004016104b09061173d565b6097805460ff19169055565b6060831561143f57508161056d565b82511561144f5782518084602001fd5b8160405162461bcd60e51b81526004016104b091906117c8565b60006020828403121561147b57600080fd5b81356001600160e01b03198116811461056d57600080fd5b6001600160a01b038116811461054d57600080fd5b6000602082840312156114ba57600080fd5b813561056d81611493565b6000806000606084860312156114da57600080fd5b83356114e581611493565b925060208401356114f581611493565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561152f57600080fd5b823561153a81611493565b9150602083013567ffffffffffffffff8082111561155757600080fd5b818501915085601f83011261156b57600080fd5b81358181111561157d5761157d611506565b604051601f8201601f19908116603f011681019083821181831017156115a5576115a5611506565b816040528281528860208487010111156115be57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080608085870312156115f657600080fd5b843561160181611493565b9350602085013561161181611493565b9250604085013561162181611493565b9396929550929360600135925050565b6000806040838503121561164457600080fd5b823561164f81611493565b91506020830135801515811461166457600080fd5b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561171957600080fd5b815161056d81611493565b60006020828403121561173657600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156117a357818101518382015260200161178b565b50506000910152565b600082516117be818460208701611788565b9190910192915050565b60208152600082518060208401526117e7816040850160208701611788565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220f7ed9332d11c18419a12719d24f2df48604b013f26abc7013c359a104deab22764736f6c63430008100033",
460
- "deployedBytecode": "0x60806040526004361061011f5760003560e01c80635b494dd5116100a05780638456cb59116100645780638456cb591461038a578063aad4148c1461039f578063b9a45aac146103d3578063e5a6b10f146103f3578063f67b2bad1461040857600080fd5b80635b494dd5146102bf5780635c975abb146102f35780635fcdca371461030b5780637ed5acfa146103485780638129fc1c1461037557600080fd5b8063468a8c9f116100e7578063468a8c9f146101e05780634a47a3e01461021c5780634d15eb03146102505780634f1ef2861461029757806352d1902d146102aa57600080fd5b806301ffc9a71461012457806324ea54f4146101595780633659cfe61461018957806337ee20dd146101ab5780633f4ba83a146101cb575b600080fd5b34801561013057600080fd5b5061014461013f366004611469565b61043c565b60405190151581526020015b60405180910390f35b34801561016557600080fd5b5061017b60008051602061184383398151915281565b604051908152602001610150565b34801561019557600080fd5b506101a96101a43660046114a8565b610468565b005b3480156101b757600080fd5b506101446101c63660046114c5565b610550565b3480156101d757600080fd5b506101a9610574565b3480156101ec57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff16602083015201610150565b34801561022857600080fd5b5061017b7fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b34801561025c57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610150565b6101a96102a536600461151c565b6106ae565b3480156102b657600080fd5b5061017b61077a565b3480156102cb57600080fd5b5061017b7f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b3480156102ff57600080fd5b5060975460ff16610144565b34801561031757600080fd5b506101446103263660046115e0565b506001600160a01b0316600090815260fb602052604090205460ff1692915050565b34801561035457600080fd5b5061035f6201518081565b60405164ffffffffff9091168152602001610150565b34801561038157600080fd5b506101a961082d565b34801561039657600080fd5b506101a961093d565b3480156103ab57600080fd5b5061017b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b3480156103df57600080fd5b506101a96103ee366004611631565b610a55565b3480156103ff57600080fd5b5061027f610c03565b34801561041457600080fd5b5061017b7fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b600061044782610c8c565b8061046257506001600160e01b03198216633411f57560e11b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104b95760405162461bcd60e51b81526004016104b09061166f565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105026000805160206117fc833981519152546001600160a01b031690565b6001600160a01b0316146105285760405162461bcd60e51b81526004016104b0906116bb565b61053181610cc2565b6040805160008082526020820190925261054d91839190610df9565b50565b6001600160a01b038216600090815260fb602052604090205460ff165b9392505050565b6000805160206118438339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190611707565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561068a57600080fd5b505afa15801561069e573d6000803e3d6000fd5b505050506106aa610f64565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106f65760405162461bcd60e51b81526004016104b09061166f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661073f6000805160206117fc833981519152546001600160a01b031690565b6001600160a01b0316146107655760405162461bcd60e51b81526004016104b0906116bb565b61076e82610cc2565b6106aa82826001610df9565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461081a5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016104b0565b506000805160206117fc83398151915290565b600054610100900460ff161580801561084d5750600054600160ff909116105b806108675750303b158015610867575060005460ff166001145b6108ca5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016104b0565b6000805460ff1916600117905580156108ed576000805461ff0019166101001790555b6108f5610fb6565b801561054d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6000805160206118438339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ce9190611707565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526001606482015260840160006040518083038186803b158015610a3557600080fd5b505afa158015610a49573d6000803e3d6000fd5b5050505061054d610fef565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af89190611707565b6001600160a01b0316635ff57d2030833360405160e085901b6001600160e01b03191681526001600160a01b039384166004820152602481019290925290911660448201526000606482015260840160006040518083038186803b158015610b5f57600080fd5b505afa158015610b73573d6000803e3d6000fd5b5050506001600160a01b038416600090815260fb602052604090205460ff161515831515149050610bfe576001600160a01b038316600081815260fb6020908152604091829020805460ff19168615159081179091558251938452908301527f8ef34cf5cfaa6ce2f80f1ba2912749c912a8b07c4fb8e9949e928e7cb592918f910160405180910390a15b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c879190611707565b905090565b60006001600160e01b031982166301ffc9a760e01b148061046257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206118438339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d749190611707565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b158015610dd857600080fd5b505afa158015610dec573d6000803e3d6000fd5b50505050610bfe8361102c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610e2c57610bfe8361111d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610e86575060408051601f3d908101601f19168201909252610e8391810190611724565b60015b610ee95760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b60648201526084016104b0565b6000805160206117fc8339815191528114610f585760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b60648201526084016104b0565b50610bfe8383836111b9565b610f6c6111e4565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600054610100900460ff16610fdd5760405162461bcd60e51b81526004016104b09061173d565b610fe561122d565b610fed611254565b565b610ff7611283565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610f993390565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa158015611094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b89190611707565b6001600160a01b03161461054d5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b60648201526084016104b0565b6001600160a01b0381163b61118a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084016104b0565b6000805160206117fc83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6111c2836112c9565b6000825111806111cf5750805b15610bfe576111de8383611309565b50505050565b60975460ff16610fed5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016104b0565b600054610100900460ff16610fed5760405162461bcd60e51b81526004016104b09061173d565b600054610100900460ff1661127b5760405162461bcd60e51b81526004016104b09061173d565b610fed6113fd565b60975460ff1615610fed5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b60448201526064016104b0565b6112d28161111d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b6113715760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084016104b0565b600080846001600160a01b03168460405161138c91906117ac565b600060405180830381855af49150503d80600081146113c7576040519150601f19603f3d011682016040523d82523d6000602084013e6113cc565b606091505b50915091506113f4828260405180606001604052806027815260200161181c60279139611430565b95945050505050565b600054610100900460ff166114245760405162461bcd60e51b81526004016104b09061173d565b6097805460ff19169055565b6060831561143f57508161056d565b82511561144f5782518084602001fd5b8160405162461bcd60e51b81526004016104b091906117c8565b60006020828403121561147b57600080fd5b81356001600160e01b03198116811461056d57600080fd5b6001600160a01b038116811461054d57600080fd5b6000602082840312156114ba57600080fd5b813561056d81611493565b6000806000606084860312156114da57600080fd5b83356114e581611493565b925060208401356114f581611493565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561152f57600080fd5b823561153a81611493565b9150602083013567ffffffffffffffff8082111561155757600080fd5b818501915085601f83011261156b57600080fd5b81358181111561157d5761157d611506565b604051601f8201601f19908116603f011681019083821181831017156115a5576115a5611506565b816040528281528860208487010111156115be57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b600080600080608085870312156115f657600080fd5b843561160181611493565b9350602085013561161181611493565b9250604085013561162181611493565b9396929550929360600135925050565b6000806040838503121561164457600080fd5b823561164f81611493565b91506020830135801515811461166457600080fd5b809150509250929050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b60006020828403121561171957600080fd5b815161056d81611493565b60006020828403121561173657600080fd5b5051919050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60005b838110156117a357818101518382015260200161178b565b50506000910152565b600082516117be818460208701611788565b9190910192915050565b60208152600082518060208401526117e7816040850160208701611788565b601f01601f1916919091016040019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a2646970667358221220f7ed9332d11c18419a12719d24f2df48604b013f26abc7013c359a104deab22764736f6c63430008100033",
643
+ "bytecode": "0x60c0604052306080523480156200001557600080fd5b506040516200258938038062002589833981016040819052620000389162000197565b806001600160a01b038116620000bb5760405162461bcd60e51b815260206004820152603660248201527f506f6c696379506f6f6c436f6d706f6e656e743a20706f6c696379506f6f6c2060448201527f63616e6e6f74206265207a65726f20616464726573730000000000000000000060648201526084015b60405180910390fd5b620000c5620000d8565b6001600160a01b031660a05250620001c9565b600054610100900460ff1615620001425760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608401620000b2565b60005460ff908116101562000195576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b600060208284031215620001aa57600080fd5b81516001600160a01b0381168114620001c257600080fd5b9392505050565b60805160a05161234d6200023c600039600081816102bf015281816106a501528181610a4001528181610b4d01528181610e3b01528181610f3e01528181611149015261168e0152600081816105220152818161056b015281816107b7015281816107f70152610886015261234d6000f3fe60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122045b1e7d37e64e0e18faf2ed58dddf4f15d5055d22036737c4d2ca3f2e4c9e6e364736f6c63430008100033",
644
+ "deployedBytecode": "0x60806040526004361061014b5760003560e01c80635c975abb116100b6578063aa2f92fb1161006f578063aa2f92fb1461040d578063aad4148c1461042d578063cf273ca614610461578063e5a6b10f14610481578063ed716bf414610496578063f67b2bad146104b857600080fd5b80635c975abb146103535780635fcdca371461036b5780637ed5acfa1461038b5780638456cb59146103b8578063896ce44c146103cd5780639051c763146103ed57600080fd5b8063468a8c9f11610108578063468a8c9f146102405780634a47a3e01461027c5780634d15eb03146102b05780634f1ef286146102f757806352d1902d1461030a5780635b494dd51461031f57600080fd5b806301ffc9a7146101505780631e3b9c5e1461018557806324ea54f4146101c75780633659cfe6146101e957806337ee20dd1461020b5780633f4ba83a1461022b575b600080fd5b34801561015c57600080fd5b5061017061016b366004611b95565b6104ec565b60405190151581526020015b60405180910390f35b34801561019157600080fd5b506101b97f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b81565b60405190815260200161017c565b3480156101d357600080fd5b506101b96000805160206122f883398151915281565b3480156101f557600080fd5b50610209610204366004611bd4565b610518565b005b34801561021757600080fd5b50610170610226366004611bf1565b610600565b34801561023757600080fd5b50610209610673565b34801561024c57600080fd5b5060c9546040805164ffffffffff831681526501000000000090920466ffffffffffffff1660208301520161017c565b34801561028857600080fd5b506101b97fa82e22387fca439f316d78ca566f383218ab8ae1b3e830178c9c82cbd16749c081565b3480156102bc57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161017c565b610209610305366004611c79565b6107ad565b34801561031657600080fd5b506101b9610879565b34801561032b57600080fd5b506101b97f5ec196419322369c6bac572d883f4d990ae5ec82f7d93cdf89b85dbb05b63c2781565b34801561035f57600080fd5b5060975460ff16610170565b34801561037757600080fd5b50610170610386366004611d21565b61092c565b34801561039757600080fd5b506103a26201518081565b60405164ffffffffff909116815260200161017c565b3480156103c457600080fd5b50610209610a2f565b3480156103d957600080fd5b506102096103e8366004611d8a565b610b2a565b3480156103f957600080fd5b50610170610408366004611bf1565b610ca3565b34801561041957600080fd5b50610209610428366004611dc0565b610d05565b34801561043957600080fd5b506101b97fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f323581565b34801561046d57600080fd5b5061020961047c366004611dc0565b610e18565b34801561048d57600080fd5b506102df610f3a565b3480156104a257600080fd5b506104ab610fc3565b60405161017c9190611e57565b3480156104c457600080fd5b506101b97fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb281565b60006104f7826110e1565b8061051257506001600160e01b0319821663f8722d8960e01b145b92915050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105695760405162461bcd60e51b815260040161056090611e65565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105b26000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146105d85760405162461bcd60e51b815260040161056090611eb1565b6105e181611117565b604080516000808252602082019092526105fd9183919061124e565b50565b6001600160a01b038216600090815260fb602052604081205460ff168181600281111561062f5761062f611ddc565b0361065257506000805260fb6020526000805160206122918339815191525460ff165b60015b81600281111561066757610667611ddc565b149150505b9392505050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610701573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107259190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561078957600080fd5b505afa15801561079d573d6000803e3d6000fd5b505050506107a96113b9565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107f55760405162461bcd60e51b815260040161056090611e65565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661083e6000805160206122b1833981519152546001600160a01b031690565b6001600160a01b0316146108645760405162461bcd60e51b815260040161056090611eb1565b61086d82611117565b6107a98282600161124e565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109195760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610560565b506000805160206122b183398151915290565b6001600160a01b038316600090815260fb602052604081205462010000900460ff168181600281111561096157610961611ddc565b0361098a57506000805260fb6020526000805160206122918339815191525462010000900460ff165b600181600281111561099e5761099e611ddc565b146109ad576000915050610a27565b506001600160a01b038316600090815260fb60205260408120546301000000900460ff16908160028111156109e4576109e4611ddc565b03610a0e57506000805260fb602052600080516020612291833981519152546301000000900460ff165b6001816002811115610a2257610a22611ddc565b149150505b949350505050565b6000805160206122f88339815191527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac09190611efd565b6001600160a01b0316635ff57d2030833360016040518563ffffffff1660e01b8152600401610af29493929190611f1a565b60006040518083038186803b158015610b0a57600080fd5b505afa158015610b1e573d6000803e3d6000fd5b505050506105fd61140b565b7fb494869573b0a0ce9caac5394e1d0d255d146ec7e2d30d643a4e1d78980f32357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ba9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bcd9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610bff9493929190611f1a565b60006040518083038186803b158015610c1757600080fd5b505afa158015610c2b573d6000803e3d6000fd5b5050506001600160a01b0384169050610c865760405162461bcd60e51b815260206004820152601d60248201527f596f752063616e2774206368616e6765207468652064656661756c74730000006044820152606401610560565b610c9e83610c9936859003850185611f51565b611448565b505050565b6001600160a01b038216600090815260fb6020526040812054610100900460ff1681816002811115610cd757610cd7611ddc565b0361065257506000805260fb60205260008051602061229183398151915254610100900460ff166001610655565b600054610100900460ff1615808015610d255750600054600160ff909116105b80610d3f5750303b158015610d3f575060005460ff166001145b610da25760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610560565b6000805460ff191660011790558015610dc5576000805461ff0019166101001790555b610dce82611539565b80156107a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b7f88aab6b3a9fda9055d4a72094d587b65c9aadcc55fb1631e646a2f2c284ced5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ebb9190611efd565b6001600160a01b0316635ff57d2030833360006040518563ffffffff1660e01b8152600401610eed9493929190611f1a565b60006040518083038186803b158015610f0557600080fd5b505afa158015610f19573d6000803e3d6000fd5b50505050610f2682611571565b6107a96000610c9936859003850185611f51565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e5a6b10f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbe9190611efd565b905090565b610fee6040805160808101909152806000815260200160008152602001600081526020016000905290565b6000805260fb60205260408051608081019091526000805160206122918339815191528054829060ff16600281111561102957611029611ddc565b600281111561103a5761103a611ddc565b81528154602090910190610100900460ff16600281111561105d5761105d611ddc565b600281111561106e5761106e611ddc565b8152815460209091019062010000900460ff16600281111561109257611092611ddc565b60028111156110a3576110a3611ddc565b815281546020909101906301000000900460ff1660028111156110c8576110c8611ddc565b60028111156110d9576110d9611ddc565b905250919050565b60006001600160e01b031982166301ffc9a760e01b148061051257506001600160e01b03198216634d15eb0360e01b1492915050565b6000805160206122f88339815191527fbf372ca3ebecfe59ac256f17697941bbe63302aced610e8b0e3646f743c7beb27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166371907f176040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c99190611efd565b60408051632b1cff1f60e01b815230600482015260248101859052604481018490523360648201526001608482015290516001600160a01b039290921691632b1cff1f9160a480820192600092909190829003018186803b15801561122d57600080fd5b505afa158015611241573d6000803e3d6000fd5b50505050610c9e8361168c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561128157610c9e8361177d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156112db575060408051601f3d908101601f191682019092526112d891810190611fd6565b60015b61133e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610560565b6000805160206122b183398151915281146113ad5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610560565b50610c9e838383611819565b6113c1611844565b6097805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b61141361188f565b6097805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586113ee3390565b6001600160a01b038216600090815260fb602052604090208151815483929190829060ff1916600183600281111561148257611482611ddc565b021790555060208201518154829061ff0019166101008360028111156114aa576114aa611ddc565b021790555060408201518154829062ff00001916620100008360028111156114d4576114d4611ddc565b021790555060608201518154829063ff0000001916630100000083600281111561150057611500611ddc565b02179055509050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a8282604051610e0c929190611fef565b600054610100900460ff166115605760405162461bcd60e51b81526004016105609061200c565b6115686118d5565b6105fd8161190c565b60006115806020830183612057565b600281111561159157611591611ddc565b141580156115c0575060006115ac6040830160208401612057565b60028111156115bd576115bd611ddc565b14155b80156115ed575060006115d96060830160408401612057565b60028111156115ea576115ea611ddc565b14155b801561161a575060006116066080830160608401612057565b600281111561161757611617611ddc565b14155b6105fd5760405162461bcd60e51b815260206004820152603c60248201527f596f75206e65656420746f20646566696e65207468652064656661756c74207360448201527f746174757320666f7220616c6c20746865206f7065726174696f6e73000000006064820152608401610560565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b0316634d15eb036040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117189190611efd565b6001600160a01b0316146105fd5760405162461bcd60e51b815260206004820152602660248201527f43616e27742075706772616465206368616e67696e672074686520506f6c696360448201526579506f6f6c2160d01b6064820152608401610560565b6001600160a01b0381163b6117ea5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610560565b6000805160206122b183398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6118228361199f565b60008251118061182f5750805b15610c9e5761183e83836119df565b50505050565b60975460ff1661188d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610560565b565b60975460ff161561188d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610560565b600054610100900460ff166118fc5760405162461bcd60e51b81526004016105609061200c565b611904611ad3565b61188d611afa565b600054610100900460ff166119335760405162461bcd60e51b81526004016105609061200c565b61193c81611571565b6000805260fb6020528060008051602061229183398151915261195f82826120f3565b9050507f95d7a6740c7954755644347f27cbf1bebf7d02a83371922a49d04ddce4757c2a600082604051611994929190612199565b60405180910390a150565b6119a88161177d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606001600160a01b0383163b611a475760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610560565b600080846001600160a01b031684604051611a629190612241565b600060405180830381855af49150503d8060008114611a9d576040519150601f19603f3d011682016040523d82523d6000602084013e611aa2565b606091505b5091509150611aca82826040518060600160405280602781526020016122d160279139611b29565b95945050505050565b600054610100900460ff1661188d5760405162461bcd60e51b81526004016105609061200c565b600054610100900460ff16611b215760405162461bcd60e51b81526004016105609061200c565b61188d611b62565b60608315611b3857508161066c565b825115611b485782518084602001fd5b8160405162461bcd60e51b8152600401610560919061225d565b600054610100900460ff16611b895760405162461bcd60e51b81526004016105609061200c565b6097805460ff19169055565b600060208284031215611ba757600080fd5b81356001600160e01b03198116811461066c57600080fd5b6001600160a01b03811681146105fd57600080fd5b600060208284031215611be657600080fd5b813561066c81611bbf565b600080600060608486031215611c0657600080fd5b8335611c1181611bbf565b92506020840135611c2181611bbf565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611c7157611c71611c32565b604052919050565b60008060408385031215611c8c57600080fd5b8235611c9781611bbf565b915060208381013567ffffffffffffffff80821115611cb557600080fd5b818601915086601f830112611cc957600080fd5b813581811115611cdb57611cdb611c32565b611ced601f8201601f19168501611c48565b91508082528784828501011115611d0357600080fd5b80848401858401376000848284010152508093505050509250929050565b60008060008060808587031215611d3757600080fd5b8435611d4281611bbf565b93506020850135611d5281611bbf565b92506040850135611d6281611bbf565b9396929550929360600135925050565b600060808284031215611d8457600080fd5b50919050565b60008060a08385031215611d9d57600080fd5b8235611da881611bbf565b9150611db78460208501611d72565b90509250929050565b600060808284031215611dd257600080fd5b61066c8383611d72565b634e487b7160e01b600052602160045260246000fd5b60038110611e1057634e487b7160e01b600052602160045260246000fd5b9052565b611e1f828251611df2565b6020810151611e316020840182611df2565b506040810151611e446040840182611df2565b506060810151610c9e6060840182611df2565b608081016105128284611e14565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b600060208284031215611f0f57600080fd5b815161066c81611bbf565b6001600160a01b039485168152602081019390935292166040820152901515606082015260800190565b600381106105fd57600080fd5b600060808284031215611f6357600080fd5b6040516080810181811067ffffffffffffffff82111715611f8657611f86611c32565b6040528235611f9481611f44565b81526020830135611fa481611f44565b60208201526040830135611fb781611f44565b60408201526060830135611fca81611f44565b60608201529392505050565b600060208284031215611fe857600080fd5b5051919050565b6001600160a01b038316815260a0810161066c6020830184611e14565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561206957600080fd5b813561066c81611f44565b6000813561051281611f44565b6003821061209f57634e487b7160e01b600052602160045260246000fd5b805462ff00008360101b1662ff0000198216178255505050565b600382106120d757634e487b7160e01b600052602160045260246000fd5b805463ff0000008360181b1663ff000000198216178255505050565b81356120fe81611f44565b6003811061211c57634e487b7160e01b600052602160045260246000fd5b815460ff821691508160ff198216178355602084013561213b81611f44565b6003811061215957634e487b7160e01b600052602160045260246000fd5b61ff008160081b168361ffff1984161717845550505061218461217e60408401612074565b82612081565b6107a961219360608401612074565b826120b9565b6001600160a01b038316815260a0810182356121b481611f44565b6121c16020840182611df2565b5060208301356121d081611f44565b6121dd6040840182611df2565b5060408301356121ec81611f44565b6121f96060840182611df2565b50606083013561220881611f44565b6122156080840182611df2565b509392505050565b60005b83811015612238578181015183820152602001612220565b50506000910152565b6000825161225381846020870161221d565b9190910192915050565b602081526000825180602084015261227c81604085016020870161221d565b601f01601f1916919091016040019291505056fec88390e7e62175be0932452175b6a7222b6b094ab0ef984a5153c620345d8975360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656455435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a5041a264697066735822122045b1e7d37e64e0e18faf2ed58dddf4f15d5055d22036737c4d2ca3f2e4c9e6e364736f6c63430008100033",
461
645
  "linkReferences": {},
462
646
  "deployedLinkReferences": {}
463
647
  }
@@ -3,8 +3,8 @@
3
3
  "contractName": "Policy",
4
4
  "sourceName": "contracts/Policy.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c296a2d70e6708f6d99cf56cdaf4cad198bfd6e91a110e9709dec45102a019564736f6c63430008100033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c296a2d70e6708f6d99cf56cdaf4cad198bfd6e91a110e9709dec45102a019564736f6c63430008100033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205abf2819de4c7aaca87eef714462c03d906ec3d94fff6385dba645258b7a317964736f6c63430008100033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205abf2819de4c7aaca87eef714462c03d906ec3d94fff6385dba645258b7a317964736f6c63430008100033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }