60806040523461028a5732638b78c6d819553260007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a332600090815268a20d6e21d0e525531060205260409020546001600160581b0381169060001960579190911c600116151501610278575b32600090815268a20d6e21d0e52553106020526040902080546001600160581b0319166001600160581b039092169190911790556004546100af9061028f565b601f811161022e575b507f4b696e67206f66204669676874657273000000000000000000000000000000206004556005546100e99061028f565b601f8111610200575b5060066225a7a360e91b01600555683635c9adc5dea0000060085569152d02c7e14af6800000600955693f870857a3e0e3800000600a55600b80546001600160a01b031916739016803c141756dee90943e958d343643ffbe52390811790915560005268a20d6e21d0e52553106020526000805160206132e5833981519152546001600160581b0381169060571c6001161515600019016101ee575b739016803c141756dee90943e958d343643ffbe52360005268a20d6e21d0e52553106020526000805160206132e583398151915280546001600160581b0319166001600160581b0390921691909117905560405161301b90816102ca8239f35b6a80000000000000000000001861018e565b6005600052601f6020600020910160051c8101905b81811061022257506100f2565b60008155600101610215565b6004600052601f0160051c7f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b908101905b81811061026c57506100b8565b6000815560010161025f565b6a80000000000000000000001861006f565b600080fd5b90600182811c921680156102bf575b60208310146102a957565b634e487b7160e01b600052602260045260246000fd5b91607f169161029e56fe608080604052600436109081156107a1575b50361561079f5760003560e01c63e985e9c5811461072a57636352211e81146106af5763e5eb36c8811461032b5763813500fc81146102b65763d10b6e0c81146101da5763081812fc81146101375763f5b100ea81146100df5763e2c79281811461008d5763b7a94eb81461008257005b600160005260206000f35b5068a20d6e21d0e5255309546001600160a01b031633036100ce576100c95763ffffffff68a20d6e21d0e52553085460401c1660005260206000f35b600080fd5b63ce5a776b60e01b60005260046000fd5b68a20d6e21d0e5255309546001600160a01b031633036100ce57602436106100c9576004356001600160a01b0316600090815268a20d6e21d0e52553106020526040902063ffffffff905460801c1660005260206000f35b68a20d6e21d0e5255309546001600160a01b031633036100ce57602436106100c9576004356001600160a01b03610192610174600184901b612a04565b63ffffffff1660005268a20d6e21d0e525530a602052604060002090565b54166001600160a01b0316156101c957600090815268a20d6e21d0e525530c602090815260408220546001600160a01b0316825290f35b63677510db60e11b60005260046000fd5b68a20d6e21d0e5255309546001600160a01b031633036100ce57606436106100c9576001600160a01b036044358116906024359061021e610174600184901b612a04565b541691828103610262575b50600090815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166004356001600160a01b0316179055918152f35b6001600160a01b038316600090815268a20d6e21d0e525530b602052604090209060018060a01b031660005260205260ff60406000205416156102a55782610229565b6367d9dca160e11b60005260046000fd5b68a20d6e21d0e5255309546001600160a01b031633036100ce57606436106100c9576044356001600160a01b0316600090815268a20d6e21d0e525530b602052604090206001600160a01b03600435166000908152602091825260408120805460ff191660ff60243515151617905560018152f35b68a20d6e21d0e5255309546001600160a01b031633036100ce57608436106100c9576001600160a01b0360243581169060043581169060643516604435831561069e57600181901b916001600160a01b0361038861017485612a04565b5416840361068e5783810361061d575b506103a2836129a5565b916103ac856129a5565b91835460a01c69152d02c7e14af67fffff1901906001600160601b0382116106075784546001600160a01b031960a093841b81166001600160a01b03928316178755855469152d02c7e14af680000081861c0190941b1692169190911783556105da936105d5919061057f906104c89061042f6104298b89612eb2565b87612f70565b600084815268a20d6e21d0e525530c6020908152604080832080546001600160a01b03191690556001600160a01b038c16835268a20d6e21d0e525530e9091529020815463ffffffff60801b198116608091821c63ffffffff908116600019019283901b63ffffffff60801b169190911790935590911663ffffffff918160031c60005260205260e06040600020549160051b161c1690565b6001600160a01b038816600090815268a20d6e21d0e525530e602052604090206105379060019096019563ffffffff83169063ffffffff61050889612a04565b16909190916020528160031c60005260e060406000209260051b1682549182821c1863ffffffff16901b189055565b855463ffffffff60801b1981166001608092831c63ffffffff1690810190921b63ffffffff60801b161790965560016401fffffffe61057587612a04565b92821b1601612f70565b6001600160a01b038716600090815268a20d6e21d0e525530e60205260409020849063ffffffff90921690916020528160031c60005260e060406000209260051b1682549182821c1863ffffffff16901b189055565b612f70565b600080516020612fa6833981519152602060405169152d02c7e14af68000008152a3600160005260206000f35b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03848116600090815268a20d6e21d0e525530b602090815260408083209385168352929052205460ff1661039857600082815268a20d6e21d0e525530c60205260409020546001600160a01b03160361067d5784610398565b632ce44b5f60e11b60005260046000fd5b62a1148160e81b60005260046000fd5b633a954ecd60e21b60005260046000fd5b68a20d6e21d0e5255309546001600160a01b031633036100ce57602436106100c9576004356001600160a01b036106ec610174600184901b612a04565b54166001600160a01b0316156101c9576001600160a01b0390610715906101749060011b612a04565b54166001600160a01b03166000908152602090f35b68a20d6e21d0e5255309546001600160a01b031633036100ce57604436106100c9576001600160a01b036004358116600090815268a20d6e21d0e525530b602090815260408083206024359094168352929052205460ff16156107965760ff60015b1660005260206000f35b60ff600061078c565b005b60003560e01c90816304884af914611e725750806306fdde0314611dca578063095ea7b314611d485780630e604eca14611d195780630f86ca2014611cf357806318160ddd14611cc1578063183a4f6e14611ca95780631978c0b314611c695780631c10893f14611c075780631cd64df414611bcd57806323b872dd14611b145780632569296214611ac8578063274e430b14611a9b5780632a6a935d14611a0a5780632de94807146119d7578063313ce567146119bb5780633af32abf146119815780633ccfd60b1461194a5780634803650814611920578063485cc9551461152f5780634a4ee7b1146115075780634d9ad316146114e15780634ef41efc146114b0578063514e62fc1461147757806353d6fd59146113af57806353df5c7c1461138757806354d1f13d1461133f57806355f804b3146111b55780635d148e5c1461119257806370a0823114611146578063715018a6146110fa57806375b238fc146110de57806386917524146110c05780638b1b7516146110a25780638da5cb5b146110755780638eb43ca214611047578063906e9dd014610fea57806395d89b4114610f11578063a5ece94114610ee8578063a8aa1b3114610ebf578063a9059cbb14610e8e578063af6900c314610e64578063bd85e93b14610e46578063c87b56dd14610bf6578063d73c1fb314610bd0578063dd62ed3e14610b69578063f04e283e14610b19578063f2fde38b14610add578063f5a5fe3b14610a70578063f5c4eeff14610a49578063fc848cc814610a1d5763fee81cf4146109ea5738610011565b346100c95760203660031901126100c957610a03611ed6565b63389a75e1600c52600052602080600c2054604051908152f35b346100c95760003660031901126100c957610a36611fe9565b6007805462ff0000191662010000179055005b346100c95760003660031901126100c95760206001600160601b0360005416604051908152f35b346100c95760403660031901126100c9576004356001600160601b0381168091036100c957602435906001600160601b03821682036100c957610ab1611fe9565b600054916001600160601b0360601b9060601b169167ffffffffffffffff60c01b161717600055600080f35b60203660031901126100c957610af1611ed6565b610af9611fcc565b8060601b15610b0b5761079f9061285f565b637448fbae6000526004601cfd5b60203660031901126100c957610b2d611ed6565b610b35611fcc565b63389a75e1600c52806000526020600c209081544211610b5b57600061079f925561285f565b636f5e88186000526004601cfd5b346100c95760403660031901126100c957610b82611ed6565b610bb1610b8d611eec565b6001600160a01b03909216600090815268a20d6e21d0e525530d6020526040902090565b9060018060a01b03166000526020526020604060002054604051908152f35b346100c95760003660031901126100c957602060ff60075460081c166040519015158152f35b346100c95760203660031901126100c95760043560606001600160a01b03610c24610174600185901b612a04565b54166001600160a01b0316156101c957610c3f600654611f02565b610c58575b610c549060405191829182611e8d565b0390f35b50604051600a608082019260a0830160405260008452925b6000190192603082820601845304918215610c8d57600a90610c70565b9150608082601f1981019203018152604051916000906006549184610cb184611f02565b918282526020820194600181169081600014610e2a5750600114610ddc575b610cdc92500385611f6e565b6020604051610cea81611f3c565b600481520190637b69647d60e01b8252604051935185850393958051810190602082016000525160041115610d58575b50505050600051925b838110610d4a5792602082610c549501600081520160405282601f19920301018152610c44565b805182820152602001610d23565b601d9096929396019551915b805183811860e01c15610d9757858201526001019286841015610d88575b92610d64565b50505092505b83808080610d1a565b5093919092602060005b808301518186890101520184811015610dbc57602090610da1565b509183016003190193600401929091868410610d82575050509250610d8e565b50600660009081529091600080516020612fc68339815191525b818310610e0e575050906020610cdc92820101610cd0565b6020919350806001915483858b01015201910190918692610df6565b60ff1916865250610cdc92151560051b82016020019050610cd0565b346100c95760003660031901126100c9576020600a54604051908152f35b346100c95760003660031901126100c957610e7d611fe9565b6007805461ff001916610100179055005b346100c95760403660031901126100c957610eb4610eaa611ed6565b6024359033612014565b602060405160018152f35b346100c95760003660031901126100c9576001546040516001600160a01b039091168152602090f35b346100c95760003660031901126100c957600b546040516001600160a01b039091168152602090f35b346100c95760003660031901126100c9576040516000600554610f3381611f02565b8084529060018116908115610fc65750600114610f67575b610c5483610f5b81850382611f6e565b60405191829182611e8d565b600560009081527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0939250905b808210610fac57509091508101602001610f5b610f4b565b919260018160209254838588010152019101909291610f94565b60ff191660208086019190915291151560051b84019091019150610f5b9050610f4b565b346100c95760203660031901126100c957611003611ed6565b61100b611fe9565b600b549060ff8260a01c16611036576001600160a01b03166001600160a01b03199190911617600b55005b6303cb96db60e21b60005260046000fd5b346100c95760003660031901126100c957611060611fe9565b600b805460ff60a01b1916600160a01b179055005b346100c95760003660031901126100c957638b78c6d819546040516001600160a01b039091168152602090f35b346100c95760003660031901126100c9576020600954604051908152f35b346100c95760003660031901126100c9576020600854604051908152f35b346100c95760003660031901126100c957602060405160018152f35b60003660031901126100c95761110e611fcc565b6000638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a36000638b78c6d81955005b346100c95760203660031901126100c9576020611186611164611ed6565b6001600160a01b0316600090815268a20d6e21d0e52553106020526040902090565b5460a01c604051908152f35b346100c95760003660031901126100c957602060ff600754166040519015158152f35b346100c95760203660031901126100c95760043567ffffffffffffffff81116100c957366023820112156100c957806004013567ffffffffffffffff81116100c95736602482840101116100c95761120b611fe9565b60ff6007541661103657600090611223600654611f02565b601f81116112d8575b5081601f821160011461126957829382939261125b575b50508160011b916000199060031b1c19161760065580f35b602492500101358380611243565b601f19821693600080516020612fc683398151915291845b8681106112bd57508360019596106112a0575b505050811b0160065580f35b0160240135600019600384901b60f8161c19169055838080611294565b90926020600181926024878701013581550194019101611281565b601f820160051c600080516020612fc6833981519152019060208310611329575b601f0160051c600080516020612fc683398151915201905b81811061131e575061122c565b838155600101611311565b600080516020612fc683398151915291506112f9565b60003660031901126100c95763389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2005b346100c95760003660031901126100c9576113a0611fe9565b6007805460ff19166001179055005b346100c95760403660031901126100c9576113c8611ed6565b602435908115158092036100c9576113de611fe9565b60ff60075460081c16611036576001600160a01b038116600090815268a20d6e21d0e5255310602052604090206001600160581b0390541691605783901c600116151503611469575b6001600160a01b0316600090815268a20d6e21d0e5255310602052604090206001600160581b03905b80546affffffffffffffffffffff191691909216179055005b600160571b90911890611427565b346100c95760403660031901126100c957611490611ed6565b638b78c6d8600c52600052602060243581600c2054161515604051908152f35b346100c95760003660031901126100c95768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b346100c95760003660031901126100c957602060ff60075460101c166040519015158152f35b60403660031901126100c95761079f61151e611ed6565b611526611fcc565b6024359061289d565b346100c95760403660031901126100c957611548611ed6565b611550611eec565b611558611fe9565b611f406002556d012700000000000000000000012767ffffffffffffffff60c01b600054161760005560018060a01b03166001600160601b0360a01b600354161760035563ffffffff68a20d6e21d0e52553085460201c1661190f576001600160a01b0381169081156118fe5760006024601c82602094630f4599e582523386525af160016000511416156118f05764010000000067ffffffff000000001968a20d6e21d0e525530854161768a20d6e21d0e5255308556001600160601b0360a01b68a20d6e21d0e525530954161768a20d6e21d0e525530955331561069e5768a20d6e21d0e525530880546bffffffffffffffffffffffff60601b1916676765c793fa10079d607b1b17905561166e336129a5565b80546001600160a01b0316676765c793fa10079d60bb1b1790556040516b033b2e3c9fd0803ce800000081523390600090600080516020612fa683398151915290602090a36116bc336129a5565b805460581c906001600283161515036118c8575b5050604051600181527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360203392a230600090815268a20d6e21d0e525530d60209081526040808320600380546001600160a01b0390811686529184529382902060001990559254905163c45a015560e01b815292169082600481845afa90811561187d576004926000926118a6575b50602090604051938480926315ab88c960e31b82525afa90811561187d5760446020926000948591611889575b506040516364e329cb60e11b81523060048201526001600160a01b0391821660248201529485938492165af190811561187d5760009161184e575b50600180546001600160a01b0319166001600160a01b039290921691909117905533600090815268a20d6e21d0e5255310602052604090206001600160581b03905416600019605782901c600116151501611843575b33600090815268a20d6e21d0e5255310602052604090206001600160581b0390611450565b600160571b1861181e565b611870915060203d602011611876575b6118688183611f6e565b810190612840565b816117c8565b503d61185e565b6040513d6000823e3d90fd5b6118a09150843d8611611876576118688183611f6e565b8561178d565b60209192506118c190823d8411611876576118688183611f6e565b9190611760565b805460ff60581b191660ff9290921660021860581b60ff60581b1691909117905580806116d0565b63d125259c6000526004601cfd5b6339a84a7b60e01b60005260046000fd5b633ab534b960e21b60005260046000fd5b346100c95760003660031901126100c95760206001600160601b0360005460601c16604051908152f35b346100c95760003660031901126100c957611963611fe9565b600038818047335af11561197357005b63b12d13eb6000526004601cfd5b346100c95760203660031901126100c957602060016001600160581b036119a9611164611ed6565b541660571c1615156040519015158152f35b346100c95760003660031901126100c957602060405160128152f35b346100c95760203660031901126100c9576119f0611ed6565b638b78c6d8600c52600052602080600c2054604051908152f35b346100c95760203660031901126100c9576004358015158091036100c957611a31336129a5565b805460581c908260028316151503611a73575b826040519081527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360203392a2005b805460ff60581b191660ff9290921660021860581b60ff60581b169190911790558180611a44565b346100c95760203660031901126100c9576020611abe611ab9611ed6565b611f90565b6040519015158152f35b60003660031901126100c95763389a75e1600c52336000526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a2005b346100c95760603660031901126100c957611b2d611ed6565b611b35611eec565b6001600160a01b038216600090815268a20d6e21d0e525530d6020908152604080832033845290915290205491604435919060018401611b7a575b610eb49350612014565b838311611bbc576001600160a01b038116600090815268a20d6e21d0e525530d60209081526040808320338452909152902093839003909355610eb492611b70565b6313be252b60e01b60005260046000fd5b346100c95760403660031901126100c9576020611be8611ed6565b60243590638b78c6d8600c526000528082600c20541614604051908152f35b60403660031901126100c957611c1b611ed6565b611c23611fcc565b638b78c6d8600c526000526020600c20602435815417809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3005b346100c95760203660031901126100c957600435611c85611fe9565b60ff60075460101c166110365769152d02c7e14af68000008111156100c957600a55005b60203660031901126100c95761079f6004353361289d565b346100c95760003660031901126100c95760206001600160601b0368a20d6e21d0e52553085460601c16604051908152f35b346100c95760003660031901126100c957602060ff600b5460a01c166040519015158152f35b346100c95760403660031901126100c957602435600435611d38611fcc565b808211156100c957600855600955005b346100c95760403660031901126100c957611d61611ed6565b33600081815268a20d6e21d0e525530d602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346100c95760003660031901126100c9576040516000600454611dec81611f02565b8084529060018116908115610fc65750600114611e1357610c5483610f5b81850382611f6e565b600460009081527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b939250905b808210611e5857509091508101602001610f5b610f4b565b919260018160209254838588010152019101909291611e40565b346100c95760003660031901126100c9576020906002548152f35b91909160208152825180602083015260005b818110611ec0575060409293506000838284010152601f8019910116010190565b8060208092870101516040828601015201611e9f565b600435906001600160a01b03821682036100c957565b602435906001600160a01b03821682036100c957565b90600182811c92168015611f32575b6020831014611f1c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611f11565b6040810190811067ffffffffffffffff821117611f5857604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117611f5857604052565b6001600160a01b038116600090815268a20d6e21d0e5255310602052604090205460581c6001811615611fc7576002915016151590565b503b90565b638b78c6d819543303611fdb57565b6382b429006000526004601cfd5b638b78c6d819543303611ff857565b638b78c6d8600c523360005260016020600c20541615611fdb57565b91906120218282856128e4565b6001600160a01b0381161561069e57612039836129a5565b612042826129a5565b61204b306129a5565b906040519460c0860186811067ffffffffffffffff821117611f585760405260008652600060208701526040860195606081019060008252608081019186549363ffffffff8560801c16845285549463ffffffff8660801c1660a085015260a01c808b5280821161282f57878c8b6001600160601b0380958f9a829081806120fb998168a20d6e21d0e52553085460601c160316885460a01c9260a01c90031603169a8181510390521691612a73565b995188546001600160a01b031660a082901b6001600160a01b031916178955991698855460a081811c8c018085526001600160a01b0319911b166001600160a01b0390911617865569152d02c7e14af680000084519104808203911102825260016001600160581b036121888a60018060a01b031660005268a20d6e21d0e5255310602052604060002090565b541660571c161580612820575b6127d8575b508051602082015101916060604051936121b385611f3c565b818552600060208601526040519082604083019180835260051b8301016040528552018360200152815161265e575b5060208101516122a3575b50518051612256575b506b033b2e3c9fd0803ce8000000935460a01c01905460a01c01905460a01c0111612245576040519182526001600160a01b03908116921690600080516020612fa683398151915290602090a3565b63e5cfe95760e01b60005260046000fd5b60016020818060a01b0368a20d6e21d0e52553095416603f19840193849163263c69d6835283601f198301526000825160051b6044019260231901915af191511416156100c957386121f6565b6001600160a01b038716600090815268a20d6e21d0e525530e60205260409020979990989197939492939960a08a01519660208b01518801946122e68a89612eb2565b68a20d6e21d0e5255308805460209e8f015163ffffffff60401b198216604083811c63ffffffff90811693811693909301901b63ffffffff60401b16179092558a5463ffffffff60801b191660808a901b63ffffffff60801b16178b559d9199918e901c1660015b15612612575b5068a20d6e21d0e52553085460015460009960209290921c63ffffffff1698906001600160a01b0389811691169081149081156125ff575b50156124c157975b63ffffffff6123a58260011b612a04565b16156123ce576123b490612f61565b9761271089116123c5575b97612394565b600198506123bf565b988e92949698919395979f998e8e8d9e5b8d8163ffffffff86169061241a929190916020528160031c60005260e060406000209260051b1682549182821c1863ffffffff16901b189055565b806001019f68a20d6e21d0e525530f6020528460021c865260408620918560061b60c0169083549263ffffffff169060201b67ffffffff00000000161782821c1867ffffffffffffffff16901b1890558160200151908360081b9060601b17815260200190602001526001019260601c6001600160601b031669152d02c7e14af6800000900483116124b8575b9e969492989e97959391909761234e565b600192506124a7565b60025490988181111561252257505060015b63ffffffff6124e48260011b612a04565b161561250d576124f390612f61565b976127108911612504575b976124d3565b600198506124fe565b988e92949698919395979f998e8e8d9e6123df565b9693909d9c9b9a99989f979491959289975b63ffffffff6125458260011b612a04565b16156125715761255490612f61565b966127108811612565575b96612534565b6001985088975061255f565b929790959f9e9b9196949993989a9b831190816125f6575b506125a2575b918d9e9f918d9e939d8d9e9d8d9e6123df565b9a9b9c9e97959391989d969492905060015b63ffffffff6125c58260011b612a04565b16156125d9576125d490612f61565b6125b4565b979e969d969c9b9a9698959794969395929491939092919061258f565b90501538612589565b6001600160a01b038f161490503861238c565b878b0361235457949d50969550965096509791985067ffffffff0000000068a20d6e21d0e5255308549160201b169067ffffffff0000000019161768a20d6e21d0e525530855386121ed565b96939099959261268c8a9996939a60018060a01b031660005268a20d6e21d0e525530e602052604060002090565b97518b5168a20d6e21d0e5255308805463ffffffff60401b19811663ffffffff808516604093841c9091160390911b63ffffffff60401b16179055855463ffffffff60801b1916908203608081901b63ffffffff60801b16919091178655909b9060015b156127bd575b8b9c600090600019019c6127288e8d9063ffffffff918160031c60005260205260e06040600020549160051b161c1690565b68a20d6e21d0e525530f6020528060021c633fffffff168352604083208160061b643fffffffc01660c01681549081811c67ffffffffffffffff16901b18905563ffffffff8116835268a20d6e21d0e525530c602052604083206001600160601b0360a01b81541690558d82602001519160081b64ffffffff00169060601b17600117815260200190602001529c9b9c6126f0565b808d036126f6575091949750929599509790939697386121e2565b69152d02c7e14af6800000906001600160a01b038b8116908a1614612810575b510460a082015180820391110260208201523861219a565b83518351900360a08401526127f8565b506002855460581c1615612195565b631e9acf1760e31b60005260046000fd5b908160209103126100c957516001600160a01b03811681036100c95790565b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3638b78c6d81955565b638b78c6d8600c526000526020600c2090815490811618809155600c5160601c7f715ad5ce61fc9595c7b415289d59cf203f23a94fa06f04af7e489a0a76e1fe26600080a3565b91600a549069152d02c7e14af6800000821061299c575b8115612996576001600160a01b038416600090815268a20d6e21d0e5255310602052604090205460571c600116612996576001600160a01b038316600090815268a20d6e21d0e5255310602052604090205460571c60011661299657111561299257638b78c6d819546001600160a01b0391821691161461298f573b1561298d5763577538c160e11b60005260046000fd5b565b50565b5050565b50505050565b600091506128fb565b6001600160a01b038116600090815268a20d6e21d0e525531060205260409020909190916001835460581c16156129d95750565b6001903b6129fc575b825460ff60581b191660589190911b60ff60581b16178255565b5060036129e2565b63ffffffff908060031c60005268a20d6e21d0e525530f60205260e06040600020549160051b161c1690565b906001600160601b03809116911601906001600160601b03821161060757565b906001600160601b03809116911602906001600160601b03821691820361060757565b9290919260009160016001600160581b03612aa88460018060a01b031660005268a20d6e21d0e5255310602052604060002090565b541660571c1615158015612e83575b612e7c578254906001600160601b0382166001600160601b038360601c16926001600160601b03612ae88584612a30565b1615159081612e6d575b50612d39575b505030600090815268a20d6e21d0e5255310602052604090209150612b1a9050565b5460015460a09190911c9283916001600160a01b0391821691161480612d2d575b80612d1e575b15612d1857600954809111612d10575b50805460ff60c01b1916600160c01b17815560405191612b72606084611f6e565b60028352602083016040368237835115612cfc573081526003546040516315ab88c960e31b81526001600160a01b039091169290602081600481875afa908115612cf1578591612cd2575b50855160011015612cbe576001600160a01b039081166040870152600b541690833b15612cba57949184939160405196879463791ac94760e01b865260a4860191600487015286602487015260a060448701525180915260c485019290865b818110612c95575050508380928692606483015242608483015203925af19182612c85575b5090612c80577ffd0ec41ed2be327ef56846c0a0a49c14b7d30f9060db552f3bffa54b13ce24a56020604051838152a15b805460ff60c01b1916905590565b612c72565b81612c8f91611f6e565b38612c41565b82516001600160a01b0316855288975089965060209485019490920191600101612c1c565b8480fd5b634e487b7160e01b85526032600452602485fd5b612ceb915060203d602011611876576118688183611f6e565b38612bbd565b6040513d87823e3d90fd5b634e487b7160e01b83526032600452602483fd5b915038612b51565b50505090565b5060ff825460c01c1615612b41565b50600854811015612b3b565b6001546001600160a01b039485169486949116858103612e0f575050916127106001600160601b03612d6f612d7794958a612a50565b160490612a30565b905b6001600160601b038216918215612af85795612dc782612da78596996001600160601b03955460a01c612a30565b81546001600160a01b031660a09190911b6001600160a01b031916179055565b16036001600160601b038111612dfb5793604051918252600080516020612fa683398151915260203093a338808080612af8565b634e487b7160e01b83526011600452602483fd5b9091506001600160a01b03871614612e28575b50612d79565b6001600160601b0380929350612e416127109289612a50565b1604166001600160601b038111612e59579038612e22565b634e487b7160e01b84526011600452602484fd5b60ff915060c01c161538612af2565b5050505090565b506001600160a01b038416600090815268a20d6e21d0e5255310602052604090205460571c6001161515612ab7565b805460601c63ffffffff1692918315612ec9575050565b90925068a20d6e21d0e52553085463ffffffff81169063ffffffff82146106075763ffffffff191663ffffffff60019290920191821690811768a20d6e21d0e525530855845463ffffffff60601b1916606083901b63ffffffff60601b1617909455600093845268a20d6e21d0e525530a602052604090932080546001600160a01b0319166001600160a01b03909216919091179055565b60001981146106075760010190565b9068a20d6e21d0e525530f6020528160031c60005260e060406000209260051b1682549182821c1863ffffffff16901b18905556feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3eff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3fa26469706673582212206c47d5ea23a2606a35125db9a570896c160571dc8b6a9b1c06be20a1ec14390264736f6c634300081b003324a2f34d70fff33fe5be9551d2239a6b8a20dcfc4e4df287269e02b27fe98f7a