60806040819052637df38c5b60e01b81526200008e9060389073d6e9e857b03ff8440493d8c47bbffc274616839a90637df38c5b9060849060209060048186803b1580156200004d57600080fd5b505af415801562000062573d6000803e3d6000fd5b505050506040513d60208110156200007957600080fd5b50519062000277602090811b6200353717901c565b601155620000f66064620000e2603c73d6e9e857b03ff8440493d8c47bbffc274616839a637df38c5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200004d57600080fd5b620002de60201b620037d01790919060201c565b6012556200014a6064620000e2601e73d6e9e857b03ff8440493d8c47bbffc274616839a637df38c5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200004d57600080fd5b6013553480156200015a57600080fd5b50604080518082018252600c81526b212a39bbb0b8102a37b5b2b760a11b602080830191909152825180840184526002815261109560f21b91810191909152600080546001600160a01b03191633178082559351929391926012926001600160a01b031691907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600a805460ff1916905582516200020490600b90602086019062000539565b5081516200021a90600c90602085019062000539565b50600d805460ff191660ff92909216919091179055506200023d90504362000328565b62000251436001600160e01b036200032d16565b62000271336a295be96e640669720000006001600160e01b036200033216565b620005de565b6000826200028857506000620002d8565b828202828482816200029657fe5b0414620002d55760405162461bcd60e51b815260040180806020018281038252602181526020018062004feb6021913960400191505060405180910390fd5b90505b92915050565b6000620002d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200043760201b60201c565b601555565b601655565b6001600160a01b0382166200038e576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b620003aa81601054620004de60201b620035901790919060201c565b6010556001600160a01b0382166000908152600e6020908152604090912054620003df91839062003590620004de821b17901c565b6001600160a01b0383166000818152600e602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183620004c75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156200048b57818101518382015260200162000471565b50505050905090810190601f168015620004b95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581620004d457fe5b0495945050505050565b600082820183811015620002d5576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200057c57805160ff1916838001178555620005ac565b82800160010185558215620005ac579182015b82811115620005ac5782518255916020019190600101906200058f565b50620005ba929150620005be565b5090565b620005db91905b80821115620005ba5760008155600101620005c5565b90565b6149fd80620005ee6000396000f3fe608060405234801561001057600080fd5b50600436106105665760003560e01c806383aedf9c116102ca578063b29876531161018d578063d7b7d58b116100f4578063e9517399116100ad578063f2fde38b11610087578063f2fde38b1461128a578063f3d7d282146112b0578063f887ea40146112d6578063fe575a87146112de57610566565b8063e9517399146111bb578063ee6506e0146111e1578063f18e33e1146111e957610566565b8063d7b7d58b146110ed578063d7bffc9214611113578063d7d98b1e14611139578063dd4bc10114611141578063dd62ed3e14611167578063e509a3b81461119557610566565b8063c0d7865511610146578063c0d786551461108a578063cac4a4ab146110b0578063cc1cfa16146110b8578063ce36a8b3146110c0578063d332a781146110c8578063d6cd9473146110e557610566565b8063b29876531461103c578063b5c8195614611044578063b74e452b1461106a578063b872dd0e14611072578063b9b513d11461107a578063bb84f15b1461108257610566565b80639cf5c3f511610231578063aa271e1a116101ea578063aa271e1a14610f7e578063aacd053b14610fa4578063abe49d8a14610fd2578063af59346214610ffe578063b1c9fe6e14611006578063b22172811461100e57610566565b80639cf5c3f514610ed3578063a42091cf14610edb578063a457c2d714610ee3578063a9059cbb14610f0f578063a93783f814610f3b578063a9fb763c14610f6157610566565b806392236b111161028357806392236b1114610e8557806395d89b4114610e8d578063983b2d5614610e9557806398457ea814610ebb5780639865027514610ec35780639bffba7214610ecb57610566565b806383aedf9c14610e0d5780638456cb5914610e155780638623ec7b14610e1d57806388d1a75214610e3a5780638da5cb5b14610e605780639037a0b114610e6857610566565b80633f4ba83a1161042d5780635af993ea116103945780636fe958d81161034d578063715018a611610327578063715018a614610dcf578063782b360214610dd75780637ae21c0a14610ddf57806382dc1ec414610de757610566565b80636fe958d814610d55578063706eeba114610d8357806370a0823114610da957610566565b80635af993ea14610ba35780635c975abb14610bc0578063615b4a6014610bc85780636bf11d4a14610ceb5780636e81221c14610d115780636ef8d66d14610d4d57610566565b80634b5fe2f9116103e65780634b5fe2f914610a4f57806350655d8c14610a8857806350ad236714610aae57806355d17ee914610b4f57806356518be514610b5757806358f2ef1714610b7d57610566565b80633f4ba83a1461094a578063420a5d6c14610952578063443902811461095a57806344e1cecd146109fb57806346b45af714610a2157806346fbf68e14610a2957610566565b806321e5e2c4116104d1578063313ce5671161048a578063313ce5671461088057806333a149c11461089e578063376de2ab146108a657806339509351146108d25780633af32abf146108fe5780633c4750df1461092457610566565b806321e5e2c414610716578063227275ef14610755578063228cb733146107f657806323338b88146107fe57806323b872dd146108245780632f54bf6e1461085a57610566565b8063119c062711610523578063119c0627146106b35780631249c58b146106bb578063135f8aa7146106c357806316ea5a2c146106e057806318160ddd146106e8578063188efc16146106f057610566565b806305ba0cf11461056b57806306fdde0314610599578063095ea7b3146106165780630d5b5f0f146106565780630f7849431461067057806310154bad1461068d575b600080fd5b6105976004803603604081101561058157600080fd5b506001600160a01b038135169060200135611304565b005b6105a16113ad565b6040805160208082528351818301528351919283929083019185019080838360005b838110156105db5781810151838201526020016105c3565b50505050905090810190601f1680156106085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106426004803603604081101561062c57600080fd5b506001600160a01b038135169060200135611444565b604080519115158252519081900360200190f35b61065e611534565b60408051918252519081900360200190f35b61065e6004803603602081101561068657600080fd5b503561153a565b610597600480360360208110156106a357600080fd5b50356001600160a01b031661161f565b61065e611673565b610642611679565b61065e600480360360208110156106d957600080fd5b5035611739565b61065e611784565b61065e61178a565b6105976004803603602081101561070657600080fd5b50356001600160a01b0316611790565b61073c6004803603602081101561072c57600080fd5b50356001600160a01b03166117e1565b6040805192835260208301919091528051918290030190f35b6105976004803603602081101561076b57600080fd5b810190602081018135600160201b81111561078557600080fd5b82018360208201111561079757600080fd5b803590602001918460208302840111600160201b831117156107b857600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611807945050505050565b61065e611883565b6105976004803603602081101561081457600080fd5b50356001600160a01b0316611893565b6106426004803603606081101561083a57600080fd5b506001600160a01b038135811691602081013590911690604001356118e4565b6106426004803603602081101561087057600080fd5b50356001600160a01b0316611b06565b610888611b1a565b6040805160ff9092168252519081900360200190f35b61065e611b23565b61065e600480360360408110156108bc57600080fd5b506001600160a01b038135169060200135611b29565b610642600480360360408110156108e857600080fd5b506001600160a01b038135169060200135611bde565b6106426004803603602081101561091457600080fd5b50356001600160a01b0316611cf8565b61073c6004803603602081101561093a57600080fd5b50356001600160a01b0316611d0b565b610597611d66565b61065e611e2f565b6105976004803603602081101561097057600080fd5b810190602081018135600160201b81111561098a57600080fd5b82018360208201111561099c57600080fd5b803590602001918460208302840111600160201b831117156109bd57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611e35945050505050565b61065e60048036036020811015610a1157600080fd5b50356001600160a01b0316611ead565b610642611ecb565b61064260048036036020811015610a3f57600080fd5b50356001600160a01b0316611f08565b610a6c60048036036020811015610a6557600080fd5b5035611f1b565b604080516001600160a01b039092168252519081900360200190f35b610a90611f42565b60408051938452602084019290925282820152519081900360600190f35b61059760048036036020811015610ac457600080fd5b810190602081018135600160201b811115610ade57600080fd5b820183602082011115610af057600080fd5b803590602001918460208302840111600160201b83111715610b1157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611f4e945050505050565b61065e611fc6565b61065e60048036036020811015610b6d57600080fd5b50356001600160a01b0316611fcc565b610a9060048036036020811015610b9357600080fd5b50356001600160a01b0316612023565b610a6c60048036036020811015610bb957600080fd5b503561207c565b610642612089565b61059760048036036040811015610bde57600080fd5b810190602081018135600160201b811115610bf857600080fd5b820183602082011115610c0a57600080fd5b803590602001918460208302840111600160201b83111715610c2b57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610c7a57600080fd5b820183602082011115610c8c57600080fd5b803590602001918460208302840111600160201b83111715610cad57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612092945050505050565b61059760048036036020811015610d0157600080fd5b50356001600160a01b0316612163565b61064260048036036080811015610d2757600080fd5b506001600160a01b038135811691602081013582169160408201359160600135166121b4565b61059761233d565b61065e60048036036040811015610d6b57600080fd5b506001600160a01b0381358116916020013516612348565b61065e60048036036020811015610d9957600080fd5b50356001600160a01b0316612776565b61065e60048036036020811015610dbf57600080fd5b50356001600160a01b0316612791565b6105976127ac565b610a9061283e565b61065e61284a565b61059760048036036020811015610dfd57600080fd5b50356001600160a01b0316612856565b61065e6128a7565b6105976128ad565b610a6c60048036036020811015610e3357600080fd5b5035612976565b61059760048036036020811015610e5057600080fd5b50356001600160a01b0316612983565b610a6c6129d4565b610a6c60048036036020811015610e7e57600080fd5b50356129e3565b610a6c6129f0565b6105a16129f5565b61059760048036036020811015610eab57600080fd5b50356001600160a01b0316612a56565b61065e612aa7565b610597612aad565b61065e612ab6565b61065e612ac2565b610a6c612ac8565b61064260048036036040811015610ef957600080fd5b506001600160a01b038135169060200135612acd565b61064260048036036040811015610f2557600080fd5b506001600160a01b038135169060200135612bfa565b61065e60048036036020811015610f5157600080fd5b50356001600160a01b0316612d66565b61065e60048036036020811015610f7757600080fd5b5035612d84565b61064260048036036020811015610f9457600080fd5b50356001600160a01b0316612dc2565b61065e60048036036040811015610fba57600080fd5b506001600160a01b0381358116916020013516612dd5565b61064260048036036040811015610fe857600080fd5b506001600160a01b038135169060200135612e04565b610a6c612f2d565b61065e612f32565b6106426004803603604081101561102457600080fd5b506001600160a01b0381358116916020013516612f3d565b61065e6130bf565b61065e6004803603602081101561105a57600080fd5b50356001600160a01b03166130c5565b61065e6130e3565b6106426130f0565b61065e613117565b61065e61311d565b610597600480360360208110156110a057600080fd5b50356001600160a01b0316613123565b61065e6131d2565b61065e6131d9565b61065e6131df565b610642600480360360208110156110de57600080fd5b50356131e5565b61059761321e565b6105976004803603602081101561110357600080fd5b50356001600160a01b0316613227565b610a906004803603602081101561112957600080fd5b50356001600160a01b0316613278565b610642613299565b61065e6004803603602081101561115757600080fd5b50356001600160a01b03166132ad565b61065e6004803603604081101561117d57600080fd5b506001600160a01b03813581169160200135166132d3565b61065e600480360360208110156111ab57600080fd5b50356001600160a01b03166132fe565b61065e600480360360208110156111d157600080fd5b50356001600160a01b0316613319565b61065e61332f565b610597600480360360208110156111ff57600080fd5b810190602081018135600160201b81111561121957600080fd5b82018360208201111561122b57600080fd5b803590602001918460208302840111600160201b8311171561124c57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061333b945050505050565b610597600480360360208110156112a057600080fd5b50356001600160a01b03166133b3565b610642600480360360208110156112c657600080fd5b50356001600160a01b0316613404565b610a6c613429565b610642600480360360208110156112f457600080fd5b50356001600160a01b0316613438565b61130d33611b06565b61134c576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b6001600160a01b0382166113915760405162461bcd60e51b815260040180806020018281038252602a8152602001806148e1602a913960400191505060405180910390fd5b6001600160a01b03909116600090815260176020526040902055565b600b8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114395780601f1061140e57610100808354040283529160200191611439565b820191906000526020600020905b81548152906001019060200180831161141c57829003601f168201915b505050505090505b90565b600a5460009060ff1615611492576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3361149c81613438565b156114d85760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b836114e281613438565b1561151e5760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b61152933868661344b565b506001949350505050565b60125481565b60008080611546612ac2565b9050600061155a611555612ac2565b611739565b9050600061156786611739565b90505b808210156115e75760019091019060006115a4611585611b23565b611598856280520063ffffffff61353716565b9063ffffffff61359016565b90506115de6115d16115b583612d84565b6115c5848863ffffffff6135ea16565b9063ffffffff61353716565b869063ffffffff61359016565b9450925061156a565b6116136116066115f688612d84565b6115c5898763ffffffff6135ea16565b859063ffffffff61359016565b9450505050505b919050565b61162833611b06565b611667576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b6116708161362c565b50565b601d5490565b6000611683611ecb565b61168f57506000611441565b600061169a4361153a565b9050600081116116ae576000915050611441565b6116b7436136b5565b60006116ce601254836136ba90919063ffffffff16565b905060006116e7601354846136ba90919063ffffffff16565b9050600061170b826116ff868663ffffffff6135ea16565b9063ffffffff6135ea16565b90506117186001846136de565b6117236002836136de565b61172e6003826136de565b600194505050505090565b600080611744611b23565b83111561177e5761177b6280520061176f60016116ff611762611b23565b889063ffffffff6135ea16565b9063ffffffff6137d016565b90505b92915050565b601c5490565b60105490565b61179933611b06565b6117d8576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613812565b60008060006117ee612aa7565b905060006117fb85611ead565b91935090915050915091565b61181033611b06565b61184f576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b60005b815181101561187f5761187782828151811061186a57fe5b602002602001015161362c565b600101611852565b5050565b600061188e43612d84565b905090565b61189c33611b06565b6118db576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b6116708161389b565b600a5460009060ff1615611932576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b3361193c81613438565b156119785760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b8461198281613438565b156119be5760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b846119c881613438565b15611a045760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b8685611a1082826138f9565b611a4b5760405162461bcd60e51b815260040180806020018281038252602c81526020018061499d602c913960400191505060405180910390fd5b6000611a9b88604051806060016040528060258152602001614978602591396001600160a01b038d166000908152600f60209081526040808320338452909152902054919063ffffffff61396316565b6001600160a01b038b16600090815260076020526040902054909150611ac7908963ffffffff61359016565b6001600160a01b038b16600090815260076020526040902055611aeb8a8a8a6139fa565b611af68a338361344b565b5060019998505050505050505050565b6000546001600160a01b0390811691161490565b600d5460ff1690565b60155490565b600080611b34613429565b6001600160a01b031663be20492f856040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b158015611b8957600080fd5b505afa158015611b9d573d6000803e3d6000fd5b505050506040513d6020811015611bb357600080fd5b5051905080611bc657600091505061177e565b611bd6818463ffffffff6136ba16565b949350505050565b600a5460009060ff1615611c2c576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b33611c3681613438565b15611c725760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b83611c7c81613438565b15611cb85760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b336000818152600f602090815260408083206001600160a01b038a16845290915290205461152991908790611cf3908863ffffffff61359016565b61344b565b600061177e60018363ffffffff613b5816565b6000806000611d3e611d36611d2e611d21611784565b439063ffffffff6135ea16565b6115c56130bf565b611598611673565b905060006117fb611d5d611d54611d21886132fe565b6115c5886130c5565b61159887612d66565b611d6f33611f08565b611daa5760405162461bcd60e51b81526004018080602001828103825260308152602001806147fc6030913960400191505060405180910390fd5b600a5460ff16611df8576040805162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604482015290519081900360640190fd5b600a805460ff1916905560405133907f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa90600090a2565b60095490565b611e3e33611b06565b611e7d576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b60005b815181101561187f57611ea5828281518110611e9857fe5b6020026020010151613bbf565b600101611e80565b6001600160a01b03166000908152601b602052604090206001015490565b600080611ed9611d21612ac2565b118015611ef557506000611ef3611eee612ac2565b612d84565b115b15611f0257506001611441565b50600090565b600061177e60088363ffffffff613b5816565b60028181548110611f2857fe5b6000918252602090912001546001600160a01b0316905081565b601c54601d54601e5483565b611f5733611b06565b611f96576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b60005b815181101561187f57611fbe828281518110611fb157fe5b6020026020010151613812565b600101611f99565b60185490565b6000806000611fda846117e1565b9092509050801580611fea575081155b15611ffa5760009250505061161a565b818114156120135761200a61332f565b9250505061161a565b611bd68261176f836115c561332f565b60008060006120306143ea565b505050506001600160a01b0381166000908152600760209081526040918290208251606081018452815480825260018301549382018490526002909201549301839052915b9193909250565b60098181548110611f2857fe5b600a5460ff1690565b61209b33611b06565b6120da576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b805182511461211a5760405162461bcd60e51b81526004018080602001828103825260318152602001806145416031913960400191505060405180910390fd5b60005b825181101561215e5761215683828151811061213557fe5b602002602001015183838151811061214957fe5b6020026020010151613c48565b60010161211d565b505050565b61216c33611b06565b6121ab576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613ce8565b60006121bf33612dc2565b6121fa5760405162461bcd60e51b815260040180806020018281038252603081526020018061460a6030913960400191505060405180910390fd5b6001600160a01b03851661223f5760405162461bcd60e51b81526004018080602001828103825260338152602001806145ac6033913960400191505060405180910390fd5b6001600160a01b0384166122845760405162461bcd60e51b81526004018080602001828103825260318152602001806147cb6031913960400191505060405180910390fd5b6001600160a01b0382166122c95760405162461bcd60e51b81526004018080602001828103825260328152602001806144b46032913960400191505060405180910390fd5b60006122d58585611b29565b9050600081116122e9576000915050611bd6565b6122f1611679565b504260185561230281611598612aa7565b6019556001600160a01b0386166000908152601b6020526040902042815561232d8261159889611ead565b6001918201559695505050505050565b61234633613d46565b565b60006123b7826001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561238657600080fd5b505afa15801561239a573d6000803e3d6000fd5b505050506040513d60208110156123b057600080fd5b5051611cf8565b15806123fc57506123fa826001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561238657600080fd5b155b156124095750600061177e565b6000826001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b15801561244457600080fd5b505afa158015612458573d6000803e3d6000fd5b505050506040513d602081101561246e57600080fd5b5051604080516370a0823160e01b81526001600160a01b0387811660048301529151929350600092918616916370a0823191602480820192602092909190829003018186803b1580156124c057600080fd5b505afa1580156124d4573d6000803e3d6000fd5b505050506040513d60208110156124ea57600080fd5b505190508015806124f9575081155b156125095760009250505061177e565b600080856001600160a01b0316630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561254557600080fd5b505afa158015612559573d6000803e3d6000fd5b505050506040513d606081101561256f57600080fd5b50805160209182015160408051630dfe168160e01b815290519295509093506000926125fd926001600160a01b038b1692630dfe1681926004808301939192829003018186803b1580156125c257600080fd5b505afa1580156125d6573d6000803e3d6000fd5b505050506040513d60208110156125ec57600080fd5b50516001600160701b038516611b29565b9050600061266e886001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561263d57600080fd5b505afa158015612651573d6000803e3d6000fd5b505050506040513d602081101561266757600080fd5b50516132ad565b905060006126e9896001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156126ae57600080fd5b505afa1580156126c2573d6000803e3d6000fd5b505050506040513d60208110156126d857600080fd5b50516001600160701b038616611b29565b905060006127298a6001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b15801561263d57600080fd5b90506000612750612740848463ffffffff61353716565b611598878763ffffffff61353716565b90506127668961176f838b63ffffffff61353716565b9c9b505050505050505050505050565b6001600160a01b03166000908152601b602052604090205490565b6001600160a01b03166000908152600e602052604090205490565b6127b533611b06565b6127f4576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b601854601954601a5483565b600061188e6002612791565b61285f33611b06565b61289e576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613bbf565b60045490565b6128b633611f08565b6128f15760405162461bcd60e51b81526004018080602001828103825260308152602001806147fc6030913960400191505060405180910390fd5b600a5460ff161561293c576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b600a805460ff1916600117905560405133907f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25890600090a2565b60048181548110611f2857fe5b61298c33611b06565b6129cb576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613d46565b6000546001600160a01b031690565b60068181548110611f2857fe5b600181565b600c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114395780601f1061140e57610100808354040283529160200191611439565b612a5f33611b06565b612a9e576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613da4565b60195490565b6123463361389b565b600061188e6003612791565b60165490565b600281565b600a5460009060ff1615612b1b576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b33612b2581613438565b15612b615760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b83612b6b81613438565b15612ba75760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b6115293386611cf38760405180606001604052806025815260200161497860259139336000908152600f602090815260408083206001600160a01b038f168452909152902054919063ffffffff61396316565b600a5460009060ff1615612c48576040805162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015290519081900360640190fd5b33612c5281613438565b15612c8e5760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b83612c9881613438565b15612cd45760405162461bcd60e51b81526004018080602001828103825260318152602001806146ba6031913960400191505060405180910390fd5b3384612ce082826138f9565b612d1b5760405162461bcd60e51b815260040180806020018281038252602c81526020018061499d602c913960400191505060405180910390fd5b33600090815260076020526040902054612d3b908763ffffffff61359016565b33600081815260076020526040902091909155612d599088886139fa565b5060019695505050505050565b6001600160a01b03166000908152601f602052604090206001015490565b600080612d9083611739565b9050600a8110612da457600091505061161a565b601154612dbb90600283900a63ffffffff6137d016565b9392505050565b600061177e60038363ffffffff613b5816565b6001600160a01b039182166000908152601f602090815260408083209390941682526003909201909152205490565b6000612e0f33611b06565b612e4e576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b6001600160a01b038316612e935760405162461bcd60e51b815260040180806020018281038252603781526020018061470c6037913960400191505060405180910390fd5b60008211612ed25760405162461bcd60e51b81526004018080602001828103825260348152602001806148ad6034913960400191505060405180910390fd5b81612edb612ab6565b1015612f185760405162461bcd60e51b815260040180806020018281038252603881526020018061482c6038913960400191505060405180910390fd5b612f24600384846139fa565b50600192915050565b600381565b600061188e43611739565b6000612f4833613404565b612f835760405162461bcd60e51b81526004018080602001828103825260258152602001806147636025913960400191505060405180910390fd5b6001600160a01b038316612fc85760405162461bcd60e51b81526004018080602001828103825260388152602001806146826038913960400191505060405180910390fd5b6001600160a01b03821661300d5760405162461bcd60e51b81526004018080602001828103825260358152602001806144e66035913960400191505060405180910390fd5b613015611679565b506001600160a01b0383166000908152601f60205260408120906130398585612348565b905060006130478686612dd5565b905060008061305588611d0b565b601d82905543601c559092509050613073836116ff866115986130bf565b601e5560018501819055438555613091836116ff866115988c6130c5565b60028601555050506001600160a01b0384166000908152600390920160205260409091205550600192915050565b601e5490565b6001600160a01b03166000908152601f602052604090206002015490565b6201518042908106900390565b60006130fa611679565b50600061310633611fcc565b905061311181613e2d565b91505090565b60025490565b60065490565b61312c33611b06565b61316b576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b6001600160a01b0381166131b05760405162461bcd60e51b815260040180806020018281038252602b8152602001806145df602b913960400191505060405180910390fd5b601480546001600160a01b0319166001600160a01b0392909216919091179055565b6280520081565b60115481565b60135481565b60006131ef611679565b5060006131fb33611fcc565b90508083116132155761320d83613e2d565b91505061161a565b612dbb81613e2d565b61234633613ce8565b61323033611b06565b61326f576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b61167081613f3a565b60076020526000908152604090208054600182015460029092015490919083565b60006132a3611679565b5061188e33613f98565b6001600160a01b0381166000908152601760205260408120548015612f2457905061161a565b6001600160a01b039182166000908152600f6020908152604080832093909416825291909152205490565b6001600160a01b03166000908152601f602052604090205490565b60008061332583614058565b5090949350505050565b600061188e6001612791565b61334433611b06565b613383576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b60005b815181101561187f576133ab82828151811061339e57fe5b6020026020010151613da4565b600101613386565b6133bc33611b06565b6133fb576040805162461bcd60e51b81526020600482018190526024820152600080516020614743833981519152604482015290519081900360640190fd5b611670816140c3565b600061340e613429565b6001600160a01b0316826001600160a01b0316149050919050565b6014546001600160a01b031690565b600061177e60058363ffffffff613b5816565b6001600160a01b0383166134905760405162461bcd60e51b81526004018080602001828103825260248152602001806148896024913960400191505060405180910390fd5b6001600160a01b0382166134d55760405162461bcd60e51b81526004018080602001828103825260228152602001806144926022913960400191505060405180910390fd5b6001600160a01b038084166000818152600f6020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000826135465750600061177e565b8282028284828161355357fe5b0414612dbb5760405162461bcd60e51b81526004018080602001828103825260218152602001806146eb6021913960400191505060405180910390fd5b600082820183811015612dbb576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6000612dbb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613963565b61363d60018263ffffffff61416316565b6002805460018101825560009182527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b0319166001600160a01b03841690811790915560405190917fee1504a83b6d4a361f4c1dc78ab59bfa30d6a3b6612c403e86bb01ef2984295f91a250565b601655565b6000670de0b6b3a76400006136cf8484613537565b816136d657fe5b049392505050565b6001600160a01b038216613739576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b60105461374c908263ffffffff61359016565b6010556001600160a01b0382166000908152600e6020526040902054613778908263ffffffff61359016565b6001600160a01b0383166000818152600e602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000612dbb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614229565b61382360058263ffffffff61416316565b6006805460018101825560009182527ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f0180546001600160a01b0319166001600160a01b03841690811790915560405190917fdbe320accb74107e8da655fa6a1e2b454c3102a3985d4201aba99308881a410a91a250565b6138ac60038263ffffffff61428e16565b6138bd60048263ffffffff6142f516565b15611670576040516001600160a01b038216907fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669290600090a250565b6001600160a01b0382166000908152600760205260408120600181015461391e6130e3565b11156139365761392c6130e3565b6001820155600081555b60028101541580611bd6575060028101548154613959908563ffffffff61359016565b1115949350505050565b600081848411156139f25760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156139b757818101518382015260200161399f565b50505050905090810190601f1680156139e45780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038316613a3f5760405162461bcd60e51b81526004018080602001828103825260258152602001806148646025913960400191505060405180910390fd5b6001600160a01b038216613a845760405162461bcd60e51b81526004018080602001828103825260238152602001806144496023913960400191505060405180910390fd5b613ac78160405180606001604052806026815260200161451b602691396001600160a01b0386166000908152600e6020526040902054919063ffffffff61396316565b6001600160a01b038085166000908152600e60205260408082209390935590841681522054613afc908263ffffffff61359016565b6001600160a01b038084166000818152600e602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60006001600160a01b038216613b9f5760405162461bcd60e51b81526004018080602001828103825260228152602001806147a96022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b613bd060088263ffffffff61416316565b6009805460018101825560009182527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b03841690811790915560405190917f6719d08c1888103bea251a4ed56406bd0c3e69723c8a1686e017e7bbe159b6f891a250565b6001600160a01b038216613c8d5760405162461bcd60e51b815260040180806020018281038252602781526020018061463a6027913960400191505060405180910390fd5b80613cc95760405162461bcd60e51b81526004018080602001828103825260218152602001806147886021913960400191505060405180910390fd5b6001600160a01b03909116600090815260076020526040902060020155565b613cf960018263ffffffff61428e16565b613d0a60028263ffffffff6142f516565b15611670576040516001600160a01b038216907f270d9b30cf5b0793bbfd54c9d5b94aeb49462b8148399000265144a8722da6b690600090a250565b613d5760088263ffffffff61428e16565b613d6860098263ffffffff6142f516565b15611670576040516001600160a01b038216907fcd265ebaf09df2871cc7bd4133404a235ba12eff2041bb89d9c714a2621c7c7e90600090a250565b613db560038263ffffffff61416316565b6004805460018101825560009182527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b0180546001600160a01b0319166001600160a01b03841690811790915560405190917f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f691a250565b6000808211613e6d5760405162461bcd60e51b815260040180806020018281038252603681526020018061490b6036913960400191505060405180910390fd5b81613e7661332f565b1015613eb35760405162461bcd60e51b815260040180806020018281038252603a815260200180614572603a913960400191505060405180910390fd5b6000613ebd612aa7565b905082613ec861332f565b14613ee757613ee4613ed861332f565b61176f856115c5612aa7565b90505b42601855613ef7816116ff612aa7565b601955336000818152601b6020526040902042815590613f1c9083906116ff90611ead565b8160010181905550613f30600133866139fa565b5060019392505050565b613f4b60058263ffffffff61428e16565b613f5c60068263ffffffff6142f516565b15611670576040516001600160a01b038216907ff38e60871ec534937251cd91cad807e15f55f1f6815128faecc256e71994b49790600090a250565b60006001600160a01b038216613fdf5760405162461bcd60e51b81526004018080602001828103825260378152602001806149416037913960400191505060405180910390fd5b6000806000613fed85614058565b92509250925060008311614007576000935050505061161a565b6001600160a01b0385166000908152601f6020526040902043601c55614033838363ffffffff6135ea16565b601d554381556000600182015561404c600287866139fa565b50600195945050505050565b600080600080600061406986611d0b565b9092509050801580614079575081155b1561408c57600094509092509050612075565b818114156140a85761409c61284a565b94509092509050612075565b6140b88261176f836115c561284a565b969195509350915050565b6001600160a01b0381166141085760405162461bcd60e51b815260040180806020018281038252602681526020018061446c6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0381166141a85760405162461bcd60e51b81526004018080602001828103825260228152602001806147a96022913960400191505060405180910390fd5b6141b28282613b58565b15614204576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b600081836142785760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156139b757818101518382015260200161399f565b50600083858161428457fe5b0495945050505050565b6142988282613b58565b6142d35760405162461bcd60e51b81526004018080602001828103825260218152602001806146616021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000805b83548110156143e057826001600160a01b031684828154811061431857fe5b6000918252602090912001546001600160a01b031614156143d85783818154811061433f57fe5b600091825260209091200180546001600160a01b031916905583548490600019810190811061436a57fe5b9060005260206000200160009054906101000a90046001600160a01b031684828154811061439457fe5b600091825260209091200180546001600160a01b0319166001600160a01b039290921691909117905583546143cd85600019830161440b565b50600191505061177e565b6001016142f9565b5060009392505050565b60405180606001604052806000815260200160008152602001600081525090565b81548183558181111561215e5760008381526020902061215e91810190830161144191905b808211156144445760008155600101614430565b509056fe45524332303a207472616e7366657220746f20746865207a65726f20616464726573734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f2061646472657373427473776170546f6b656e3a2074616b65722073776170206f757470757420697320746865207a65726f2061646472657373427473776170546f6b656e3a206d616b6572206c6971756964697479207061697220697320746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654461696c794c696d69743a206163636f756e747320616e64206c696d697473206c656e677468206d69736d617463686564427473776170546f6b656e3a2074616b6572207769746864726177207175616e7469747920657863656564732074616b65722062616c616e6365427473776170546f6b656e3a2074616b65722073776170206163636f756e7420697320746865207a65726f2061646472657373427473776170546f6b656e3a206e657720726f7574657220697320746865207a65726f20616464726573734d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c654461696c794c696d69743a206163636f756e7420697320746865207a65726f2061646472657373526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c65427473776170546f6b656e3a206d616b6572206c6971756964697479206163636f756e7420697320746865207a65726f2061646472657373426c61636b6c6973746564526f6c653a206163636f756e74206861732074686520626c61636b6c697374656420726f6c65536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77427473776170546f6b656e3a2067726f7570207769746864726177206163636f756e7420697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572427473776170546f6b656e3a2063616c6c6572206973206e6f742074686520726f757465724461696c794c696d69743a206c696d69742063616e206e6f74206265207a65726f526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373427473776170546f6b656e3a2074616b6572207377617020696e70757420697320746865207a65726f2061646472657373506175736572526f6c653a2063616c6c657220646f6573206e6f742068617665207468652070617573657220726f6c65427473776170546f6b656e3a2067726f757020776974686472617720616d6f756e7420657863656564732067726f75702062616c616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373427473776170546f6b656e3a2067726f757020776974686472617720616d6f756e7420697320746865207a65726f2076616c7565427473776170546f6b656e3a206e657720746f6b656e20697320746865207a65726f2061646472657373427473776170546f6b656e3a2074616b6572207769746864726177207175616e7469747920697320746865207a65726f2076616c7565427473776170546f6b656e3a206d616b6572207769746864726177206163636f756e7420697320746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f4461696c794c696d69743a20757365722773207370656e742065786365656473206461696c79206c696d6974a265627a7a723158208ad2edf037e5cf92806ccfca6eaf984958938e89bb898b6cae266c759ff3264864736f6c63430005100032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77