0x6080604052600436101561001257600080fd5b60e0600035811c9081630356fb7214614127578163070e1119146140c05781631b18ed3914613d335781631f099fea14613d075781632165f39914613ca957816322c08d8914613c8357816322f0409914613c5057816325709be214613c24578163260df27714613801578163273c42ca146137c95781632cc2bb601461367d578163324f4cdd146133fb578163326141f71461339f57816335388966146131085781633a49a7b9146130a35781633a7ce968146130675781633be4c93914612fef5781633fceb9e214612fce578163401202c114612fa7578163401e994d14612eb65781634090b2a414612d65578163463ef6d914612cc957816349e9e8bd14612cad5781634c644a6e14612c7a5781634f4feff9146128e5578163525a330e1461288d57816354d6e36c1461285257816358c47362146128165781635de87228146127c857816360c92f2f146127475781636216091a146124ef5781636c7eba5f146121535781636dfd5a8c14611f5e578163715018a614611eed5781637328fcca14611eb55781637f220f4714611cb25781638429228714611c6957816388d3376714611bd55781638c024a5114611b8c5781638da5cb5b14611b6557816391f2b07814611a985781639366ca6b14611a135781639a973fd4146119f55781639adf3f95146119dc5781639cd90e11146118b15781639f55aac41461184a578163a0cad2111461176c578163a6a09bbe14611732578163abe0a8d314611714578163ae556f9a14611690578163b1e3b1d114611656578163b2a5249a14611511578163b35fadc2146112f5578163b5a9b3e9146110e1578163b6f2bc9c146112d2578163b95247ab14611288578163befe160a1461114b578163c39aee57146110e1578163c873016414610ff1578163d1a9045514610fc7578163d4322d7d14610f8d578163d605aeb714610f35578163d90afeb114610f02578163dc4a42b214610ee1578163e14826b214610d7b578163e74e77da14610cdf578163ebb1708e14610c36578163f29601ac146109b8578163f2fde38b146108c8578163f33229681461072f575063f42ab95d1461032c57600080fd5b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a35761035e903690600401614242565b90916103686147b9565b61037333321461480e565b600892836000526007825260ff9283600460406000200154861c16156106c55760005b8181106103a35760018055005b6103e76103b1828486614859565b35101561065b5785600052600f80855260406000206103d1838587614859565b3560005285526103e886604060002054161561499d565b86600052845260406000206103fe828486614859565b3560005284526040600020600160ff1982541617905561041f818385614859565b3590604051917f6d325d310000000000000000000000000000000000000000000000000000000083526004830152602485838281600073985e1932ffd2aa4bc9ce611dfe12816a248cd2ce5af19283156105af57600093610624575b506001600160a01b038316903382036105bb578890604051927f891407c000000000000000000000000000000000000000000000000000000000845260048401528201528581604481600073dd06d8483868cd0c5e69c24eeaa2a5f2beafd42b5af19081156105af5760009161057b575b507ff8c49ca221d1df5614d0b0cb321288da61168d6c3a7dc52686e4190b4abe9d4b906105769389600052600c8852604060002061052b85888a614859565b3560005288528160406000205561056e61054685888a614859565b3592604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a1614739565b610396565b90508581813d83116105a8575b61059281836142f4565b810103126105a357516105766104ec565b600080fd5b503d610588565b6040513d6000823e3d90fd5b8660316084926040519262461bcd60e51b845260048401528201527f4c6976654d696e743a206d73672e73656e646572204973204e6f74204f776e6560448201527f72204f6620476f6c64656e20546f6b656e0000000000000000000000000000006064820152fd5b9092508581813d8311610654575b61063c81836142f4565b810103126105a35761064d9061496c565b913861047b565b503d610632565b6084846040519062461bcd60e51b82526004820152603660248201527f4c6976654d696e743a20496e76616c696420496e707574205469636b6574494460448201527f2c204d75737420426520476f6c64656e20546f6b656e000000000000000000006064820152fd5b6084836040519062461bcd60e51b82526004820152602f60248201527f4c6976654d696e743a2052656d6f7465204d696e74696e67204f66204369746960448201527f7a656e73204e6f742041637469766500000000000000000000000000000000006064820152fd5b346105a3576003193601126105a35760405161074a816142bb565b6001600160a01b039060043582811681036105a357815260243582811681036105a357602082019081526044359083821682036105a357600691604084019081526060840160643581526080850190608435825260a086019260a435845260c087019460c43586523360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff6076040600020541480156108bb575b6107f390614a8c565b6003549883518a600052601260205260406000205587602052806040600020995116917fffffffffffffffffffffffff000000000000000000000000000000000000000092838b5416178a558160018b0191511683825416179055600289019251169082541617905551600386015551600485015551600584015551910155600181019081811161088c57602091600355604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50600054891633146107ea565b346105a35760206003193601126105a3576108e1614273565b6108e96146c5565b6001600160a01b0380911690811561094e57600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b346105a3576003196040813601126105a35760243567ffffffffffffffff918282116105a35760c09082360301126105a357604051916109f78361429f565b81600401358181116105a3578201366023820112156105a357610a249036906024600482013591016144d4565b835260209081840160248401358152604085019060448501358252606086019260648601358452610a6a60a4610a5c6084890161450b565b9760808a019889520161450b565b9460a08801958652610a7a6146c5565b60043560005260078152604060002097518051928311610c0757610a9e8954614518565b601f8111610bc1575b5081601f8411600114610b4c57509282610b0b969360049693610b3f9b96600092610b41575b50506000198260011b9260031b1c19161784555b5160018401555160028301555160038201550192511515839060ff60ff1983541691151516179055565b5181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690151560081b61ff0016179055565b005b015190508b80610acd565b9190601f1984168a60005283600020936000905b828210610ba95750509360049693610b3f9b969360019383610b0b9b9810610b90575b505050811b018455610ae1565b015160001960f88460031b161c191690558b8080610b83565b80600186978294978701518155019601940190610b60565b8960005282600020601f850160051c810191848610610bfd575b601f0160051c01905b818110610bf15750610aa7565b60008155600101610be4565b9091508190610bdb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346105a3576020806003193601126105a35760405190600435610c58836142d7565b6103e891828452617d00368286013761014d600683068181029391811591850414171561088c5760005b848110610c9b5760405180610c9788826141fe565b0390f35b610cda9082600052600a84526040600020610cb6828761472c565b60005284526001600160a01b0360406000205416610cd48289614b82565b52614739565b610c82565b346105a35760206003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015610d62575b610d3190614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c055005b50610d316001600160a01b036000541633149050610d28565b346105a357610d8936614612565b610d94829392614ef0565b91600090815b858310610daf5760405180610c978782614645565b610db884614ebf565b60009060005b868110610e755750610dcf82614ebf565b916000805b828110610e0e575050505081610e0291610df1610e089489614b82565b52610dfc8188614b82565b50614739565b92614739565b91610d9a565b610e188185614b82565b5115801590610e5a575b610e35575b610e3090614739565b610dd4565b90610e52610e3091610e478487614b82565b51610cd48289614b82565b919050610e27565b50610e658185614b82565b51158015610e2257508015610e22565b610e8a868a87949b95979a989a999699614859565b356000526020600e8152604060002090826000525260ff60406000205416610ec6575b610eb690614739565b9790939197969496959295610dbe565b93610ed98186610cd4610eb6948d614b82565b949050610ead565b346105a3576020610efa610ef4366141e8565b90614f80565b604051908152f35b346105a357610f10366141e8565b90600052600c6020526040600020906000526020526020604060002054604051908152f35b346105a35760006003193601126105a357610f4e6146c5565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c2805460ff818116151660ff19909116179055005b346105a35760206003193601126105a3576001600160a01b03610fae614273565b1660005260146020526020604060002054604051908152f35b346105a357610fd5366141e8565b90610fde6146c5565b6000526012602052604060002055600080f35b346105a35760206003193601126105a357600060c0604051611012816142bb565b8281528260208201528260408201528260608201528260808201528260a0820152015260043560005260066020526040600020604051611051816142bb565b6001600160a01b0391828154169283835280600183015416906020840191825280600284015416906040850191825260038401549160608601928352816004860154946080880195865260c0600660058901549860a08b01998a520154980197885260405198895251166020880152511660408601525160608501525160808401525160a08301525160c0820152f35b346105a35760406003193601126105a357610b3f6110fd614289565b6111056146c5565b60043560005260066020526001600160a01b03600160406000200191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b346105a3576020806003193601126105a3576040519060043561116d836142d7565b6103e8808452617d00368486013760009161014d6006820681810291811591830414171561088c5760005b83811061123457505050506111ac81614ebf565b9260009060005b8381106111cd5760405185815280610c97818801896143f9565b6111d78183614b82565b5115801590611219575b6111f4575b6111ef90614739565b6111b3565b916112116111ef916112068585614b82565b51610cd4828a614b82565b9290506111e6565b506112248183614b82565b511580156111e1575080156111e1565b61123e828261472c565b83600052600f8752604060002081600052875260ff6040600020541661126e575b5061126990614739565b611198565b8561128191610cd461126994988b614b82565b949061125f565b346105a35760206003193601126105a3576112a16146c5565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86bf55005b346105a35760006003193601126105a357602060ff600554166040519015158152f35b346105a35760606003193601126105a35761130e614273565b60243590604435906001600160a01b0390816002541633036114a757836000526020936012855260406000205480851161143d578461134c91614a7f565b906000526012855260406000205560068452600460406000209260018401541692015460005b84811061137b57005b6040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018390529086826044816000895af180156105af57879260009161140a575b50611405927f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a91604051908152a1614739565b611372565b83819492503d8311611436575b61142181836142f4565b810103126105a35790518691906114056113d2565b503d611417565b6084866040519062461bcd60e51b82526004820152603960248201527f4c6976654d696e743a204e6f7420456e6f756768204d696e74732052656d616960448201527f6e696e6720466f722044657369726564204172746973744944000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152603660248201527f4c6976654d696e74207c206f6e6c794d61726b6574706c616365207c2043616c60448201527f6c6572204973204e6f74204d61726b6574706c616365000000000000000000006064820152fd5b346105a35761151f36614612565b61152a829392614ef0565b91600090815b8583106115455760405180610c978782614645565b61154e84614ebf565b60009060005b8681106115e9575061156582614ebf565b916000805b82811061158d575050505081610e0291610df16115879489614b82565b91611530565b6115978185614b82565b51158015906115ce575b6115b4575b6115af90614739565b61156a565b906115c66115af91610e478487614b82565b9190506115a6565b506115d98185614b82565b511580156115a1575080156115a1565b6115fe868a87949b95979a989a999699614859565b356000526020600e8152604060002090826000525260ff604060002054161561163b575b61162b90614739565b9790939197969496959295611554565b9361164e8186610cd461162b948d614b82565b949050611622565b346105a35760206003193601126105a3576004358015158091036105a35761167c6146c5565b60ff60ff1960055416911617600555600080f35b346105a35760206003193601126105a35760043560005260076020526116eb60406000206116bd8161456b565b9060ff600182015491600281015490600460038201549101549160405196879660c0885260c0880190614478565b946020870152604086015260608501528181161515608085015260081c16151560a08301520390f35b346105a35760006003193601126105a3576020600354604051908152f35b346105a35760006003193601126105a35761174b6146c5565b600080808047818115611763575b3390f1156105af57005b506108fc611759565b346105a35761177a3661442d565b919092336000526020601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015611831575b6117bf90614a8c565b6117ca848414614afd565b60005b8381106117d657005b806117e561182c928789614859565b3560086000526009845260406000206001600160a01b0361180f61180a858a8a614859565b614b6e565b166000528452611825604060002091825461472c565b9055614739565b6117cd565b506117bf6001600160a01b0360005416331490506117b6565b346105a35760406003193601126105a357611863614289565b61186b6146c5565b60043560005260066020526001600160a01b03604060002091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346105a3576101006003193601126105a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105a3576040516118f7816142bb565b6001600160a01b0360243581811681036105a35782526044359080821682036105a357602083019182526064359181831683036105a35760069260408501908152606085016084358152608086019160a435835260a087019360c435855260c088019560e43587526119676146c5565b60043560005287602052806040600020995116917fffffffffffffffffffffffff000000000000000000000000000000000000000092838b5416178a558160018b0191511683825416179055600289019251169082541617905551600386015551600485015551600584015551910155600080f35b346105a3576020610efa6119ef366141e8565b90614f39565b346105a35760006003193601126105a3576020600454604051908152f35b346105a35760206003193601126105a3577f2c74592fddad593c2c4403101ce9b30930711ab87571268ddd1e1989ee1d791760206001600160a01b03611a57614273565b611a5f6146c5565b1680600052601482527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002055604051908152a1005b346105a357611aa63661442d565b919092336000526020601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015611b4c575b611aeb90614a8c565b611af6848414614afd565b60005b838110611b0257005b80611b11611b47928789614859565b3560086000526009845260406000206001600160a01b03611b3661180a858a8a614859565b166000528452604060002055614739565b611af9565b50611aeb6001600160a01b036000541633149050611ae2565b346105a35760006003193601126105a35760206001600160a01b0360005416604051908152f35b346105a35760406003193601126105a357611ba5614289565b60043560005260116020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346105a35760006003193601126105a357611bee6146c5565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c2805460ff818116151660ff19909116178155610b3f9080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8116600891821c60ff161590911b61ff0016179055565b346105a35760406003193601126105a357611c82614289565b60043560005260096020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346105a35760a06003193601126105a35760043567ffffffffffffffff8082116105a357366023830112156105a3578160040135918183116105a35736602484830101116105a357606435918215158093036105a357608435918215158093036105a357611d3990611d226146c5565b60405195611d2f8761429f565b60243692016144d4565b8452602090818501604435815260408601917f694206942069420694206942069420694206942069420694206942069420694293848452606088019485526080880196875260a0880195865260243560005260078152604060002097518051928311610c0757611da98954614518565b601f8111611e6f575b5081601f8411600114611e1457509282610b0b969360049693610b3f9b96600092610b415750506000198260011b9260031b1c19161784555160018401555160028301555160038201550192511515839060ff60ff1983541691151516179055565b9190601f1984168a60005283600020936000905b828210611e575750509360049693610b3f9b969360019383610b0b9b9810610b9057505050811b018455610ae1565b80600186978294978701518155019601940190611e28565b8960005282600020601f850160051c810191848610611eab575b601f0160051c01905b818110611e9f5750611db2565b60008155600101611e92565b9091508190611e89565b346105a357611ec3366141e8565b90600052600f602052604060002090600052602052602060ff604060002054166040519015158152f35b346105a35760006003193601126105a357611f066146c5565b60006001600160a01b0381547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a357611f90903690600401614242565b9033600052601483527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff60760406000205414801561213a575b611fd190614a8c565b60005b828110611fdd57005b600880600052600f85526040600020611ff7838686614859565b35600052855260ff604060002054166120d0576103e7612018838686614859565b35111561208c579061208791600052600a8552604060002061203b828686614859565b356000528552604060002073b96e81f80b3aeef65cb6d0e280b15fd5dbe719377fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055614739565b611fd4565b6064856040519062461bcd60e51b82526004820152601a60248201527f4c6976654d696e743a20496e76616c6964205469636b657449440000000000006044820152fd5b6084856040519062461bcd60e51b82526004820152602260248201527f4c6976654d696e743a205469636b657420494420416c7265616479204d696e7460448201527f65640000000000000000000000000000000000000000000000000000000000006064820152fd5b50611fd16001600160a01b036000541633149050611fc8565b346105a3576121613661442d565b92909161216c6147b9565b61217733321461480e565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c25460ff1615612485579060005b8281106121bc5760018055005b6121c7818484614859565b35948560005260066020526040600020936001600160a01b03600181875416960154169360005b6121f985858a614898565b905081101561246d576122178161221187878c614898565b90614859565b359089600052600e8060205260406000208360005260205261224160ff60406000205416156148fb565b8a6000526020526040600020826000526020526040600020600160ff19825416179055604051917f6d325d3100000000000000000000000000000000000000000000000000000000835280600484015260006040848b8160249485925af19081156105af57600094600092612439575b50336001600160a01b038616036123cf57506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101919091529060208260448160008d5af19081156105af578c92600092612396575b509361056e8392612391967f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad95600052600d6020526040600020816000526020528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b6121ee565b925090506020823d6020116123c7575b816123b3602093836142f4565b810103126105a35790518b9161056e61231d565b3d91506123a6565b60849060386040519162461bcd60e51b8352602060048401528201527f4c6976654d696e743a206d73672e73656e646572204973204e6f74205468652060448201527f4f776e6572204f6620496e707574204d696e74205061737300000000000000006064820152fd5b90945061245e915060403d604011612466575b61245681836142f4565b810190614980565b90938d6122b1565b503d61244c565b5094509250945061247d90614739565b9190916121af565b608460405162461bcd60e51b815260206004820152602e60248201527f4c6976654d696e743a2052656d6f7465204d696e74696e67204f66204172746960448201527f737473204e6f74204163746976650000000000000000000000000000000000006064820152fd5b346105a35760606003193601126105a35767ffffffffffffffff6004358181116105a357366023820112156105a357806004013561252c81614317565b9061253a60405192836142f4565b8082526020928383016024809360051b830101913683116105a3578301905b8282106127285750505080358481116105a357366023820112156105a35780600401359061258682614317565b9161259460405193846142f4565b808352838684019160051b830101913683116105a35784879101915b838310612718575050505060449283358681116105a357366023820112156105a35780600401356125e081614317565b976125ee604051998a6142f4565b81895285888a019260051b840101923684116105a357868101925b8484106126e257505050505061261d6146c5565b60005b8151811015610b3f576000806001600160a01b0361263e8486614b82565b511661264a8487614b82565b5190612656858c614b82565b51918a83519301915af13d156126dd573d612670816144b8565b9061267e60405192836142f4565b81526000883d92013e5b1561269b5761269690614739565b612620565b6064867f692068617665206661696c6564207520616e616b696e00000000000000000000876016886040519462461bcd60e51b86526004860152840152820152fd5b612688565b83358381116105a3578201366043820112156105a3578a9161270d839236908d8d82013591016144d4565b815201930192612609565b82358152918101918791016125b0565b81356001600160a01b03811681036105a3578152908501908501612559565b346105a35760006003193601126105a3576127606146c5565b6008600081905260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff811690831c60ff161590921b61ff0016919091179055005b346105a35760406003193601126105a3576127e1614289565b60043560005260086020526001600160a01b0360406000209116600052602052602060ff604060002054166040519015158152f35b346105a357612824366141e8565b90600052600a60205260406000209060005260205260206001600160a01b0360406000205416604051908152f35b346105a35760206003193601126105a3576001600160a01b03612873614273565b61287b6146c5565b16600090815260146020526040812055005b346105a35760206003193601126105a3576001600160a01b036128ae614273565b6128b66146c5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255600080f35b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a357612917903690600401614242565b919033600052601482526129517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b60005b83811061295d57005b60089081600052600f8085526040600020612979838887614859565b35600052855261299160ff604060002054161561499d565b82600052600a9283865260406000206129ab848988614859565b3560005286526001600160a01b039384604060002054161515600014612b595781600052865260406000206129e1848988614859565b3560005286528360406000205416935b8416918215612b15578160005286526040600020612a10848988614859565b3560005286526040600020600160ff19825416179055604051917f891407c000000000000000000000000000000000000000000000000000000000835260048301528060248301528582604481600073dd06d8483868cd0c5e69c24eeaa2a5f2beafd42b5af19182156105af57600092612ae4575b5090612adf937ff8c49ca221d1df5614d0b0cb321288da61168d6c3a7dc52686e4190b4abe9d4b92600052600c87526040600020612ac4858a89614859565b3560005287528160406000205561056e610546858a89614859565b612954565b91508582813d8311612b0e575b612afb81836142f4565b810103126105a357905190612adf612a85565b503d612af1565b6064876040519062461bcd60e51b82526004820152601b60248201527f4c6976654d696e743a20496e76616c696420526563697069656e7400000000006044820152fd5b506103e7612b68848988614859565b351015612c1057612b7a838887614859565b35604051907f6d325d3100000000000000000000000000000000000000000000000000000000825260048201528681602481600073985e1932ffd2aa4bc9ce611dfe12816a248cd2ce5af19081156105af57600091612bdb575b50936129f1565b90508681813d8311612c09575b612bf281836142f4565b810103126105a357612c039061496c565b88612bd4565b503d612be8565b6084866040519062461bcd60e51b82526004820152603260248201527f4c6976654d696e743a205469636b65744944204973204e6f7420456c6967696260448201527f6c6520546f204d696e7420436974697a656e00000000000000000000000000006064820152fd5b346105a357612c88366141e8565b90600052600d6020526040600020906000526020526020604060002054604051908152f35b346105a3576020610efa612cc03661439b565b92919091614b96565b346105a35760206003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015612d4c575b612d1b90614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c155005b50612d1b6001600160a01b036000541633149050612d12565b346105a35760006003193601126105a357604051612d82816142d7565b6103e8808252602090617d00368385013760009060005b818110612deb575050612dab81614ebf565b9260005b828110612dcd57505050610c976040519282849384528301906143f9565b80612ddb612de69284614b82565b51610cd48288614b82565b612daf565b612df48161471d565b600880600052600f808752604060002083600052875260ff908160406000205416159283612e8a575b8315612e55575b505050612e3b575b50612e3690614739565b612d99565b83612e4e91610cd4612e36949689614b82565b9290612e2c565b9091925060005286526040600020826000528652604060002054161580612e7f575b878080612e24565b506103e78110612e77565b809350600052600a885260406000208460005288526001600160a01b0360406000205416151592612e1d565b346105a357602090816003193601126105a35760c091600060a0604051612edc8161429f565b60608152828482015282604082015282606082015282608082015201526004356000526007815260406000209060405192612f168461429f565b612f1f8361456b565b8452600183015492828501938452600281015460408601908152612f80600460038401549360608901948552015494608088019460ff87161515865260ff60a08a019760081c1615158752604051998a99838b5251928a0152880190614478565b9451604087015251606086015251608085015251151560a084015251151560c08301520390f35b346105a35760006003193601126105a35760206001600160a01b0360025416604051908152f35b346105a35760206003193601126105a357612fe76146c5565b600480359055005b346105a35760206003193601126105a357600435600052600660205260406000206001600160a01b038082541691816001820154169160028201541660038201546004830154916006600585015494015494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346105a357613075366141e8565b90600052600b60205260406000209060005260205260206001600160a01b0360406000205416604051908152f35b346105a35760206003193601126105a3577fdce35c6ead5e97f9a12a9dfe363465b6f62c5fab770d14f46f89c82c58819cc660206001600160a01b036130e7614273565b6130ef6146c5565b16806000526014825260006040812055604051908152a1005b346105a3576131163661442d565b90919233600052602093601485526131547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b60005b81811061316057005b61316b818385614859565b359384600052600687526040600020926001600160a01b03600181865416950154169460005b61319c85858b614898565b9050811015613387576131b48161221187878d614898565b359088600052600e808c526040600020836000528c526131dc60ff60406000205416156148fb565b896000528b526040600020826000528b526040600020600160ff19825416179055604051907f6d325d3100000000000000000000000000000000000000000000000000000000825282600483015260408260248160008c5af19283156105af578c8a9460009460009161335a575b506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101919091529394929392839081600081604481015b03925af19081156105af578d8c93600093613326575b508392613321969261056e927f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad96600052600d815260406000209082600052528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b613191565b925090925081813d8311613353575b61333f81836142f4565b810103126105a357518a918d61056e6132ae565b503d613335565b6000949550613298915061337c9060403d6040116124665761245681836142f4565b90959490915061324a565b5095509250925061339790614739565b929192613157565b346105a35760206003193601126105a3576133b8614273565b6001600160a01b031660009081527f5fae251ae169e8e40026ce4ce85a026bc3adcccdc8459be361195e4cd924077f602090815260409182902054915191825290f35b346105a3576020806003193601126105a357613415614273565b9033600052601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015613664575b61345690614a8c565b60ff60055416156135fb5762015180420480600052601382526040600020546001810180911161088c57600454106135b7577fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a2600793600892836000528385526040600020906001600160a01b038316918260005286526134df60ff6040600020541615614748565b6000526013855260406000206134f58154614739565b90558360005283855260406000208160005285526040600020600160ff1982541617905583600052600a8552604060002086865260016040600020015460005285526040600020907fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055826000528484526001604060002001549061359a60405192839283602090939291936001600160a01b0360408201951681520152565b0390a16000525260016040600020016135b38154614739565b9055005b6064826040519062461bcd60e51b82526004820152601d60248201527f4c6976654d696e743a204d6178205065722044617920526561636865640000006044820152fd5b6084906040519062461bcd60e51b825260048201526024808201527f4c6976654d696e743a2051522044656c65676174696f6e73204e6f7420456e6160448201527f626c6564000000000000000000000000000000000000000000000000000000006064820152fd5b506134566001600160a01b03600054163314905061344d565b346105a35760006003193601126105a35760405161369a816142d7565b6103e8808252602090617d00368385013760009060005b8181106137405750506136c381614ebf565b9260009060005b8381106136e45760405185815280610c97818801896143f9565b6136ee8183614b82565b5115801590613725575b61370b575b61370690614739565b6136ca565b9161371d613706916112068585614b82565b9290506136fd565b506137308183614b82565b511580156136f8575080156136f8565b6137498161471d565b600880600052600f8652604060002082600052865260ff6040600020541615908161379e575b50613784575b5061377f90614739565b6136b1565b8361379791610cd461377f949689614b82565b9290613775565b9050600052600a855260406000208160005285526001600160a01b036040600020541615158761376f565b346105a3576137d7366141e8565b90600052600e602052604060002090600052602052602060ff604060002054166040519015158152f35b346105a35760806003193601126105a35767ffffffffffffffff6004358181116105a357613833903690600401614242565b916024359081116105a35761384c903690600401614242565b6044939193356001600160a01b0394858216948583036105a3576064359485936138746147b9565b339780613b73575b50509161389261389a926138a19694369161432f565b92369161432f565b9085614c56565b50600890816000526020926011845260406000209481169485600052845260406000206138cf83825461472c565b90558260005260098452604060002085600052845260406000205415600014613a05577fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a2915082600052828452604060002085600052845261393960ff6040600020541615614748565b82600052600a845260406000206007855260016040600020015460005284526040600020857fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558260005260078452600160406000200154906139bc60405192839283602090939291936001600160a01b0360408201951681520152565b0390a1806000526007825260016040600020016139d98154614739565b90555b806000528152604060002091600052526040600020600160ff1982541617905560018055600080f35b826000526011845260406000208560005284526040600020548360005260098552604060002086600052855260406000205410613b09578260005260078452613a57600160406000200154809361472c565b918360005260078552826001604060002001555b828110613a7a575050506139dc565b613b049084600052600a865260406000208160005286526040600020877fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a26040518061056e848783602090939291936001600160a01b0360408201951681520152565b613a6b565b6084846040519062461bcd60e51b82526004820152603860248201527f4c6976654d696e743a205573657220486173204e6f2052656d61696e696e672060448201527f417574686f72697a65642051527320546f2052656465656d00000000000000006064820152fd5b909192939450604051907f9c395bc200000000000000000000000000000000000000000000000000000000825288600483015260248201526020816044816d76a84fef008cdabe6409d2fe638b5afa9081156105af57600091613bea575b50613be2575b90818694939261387c565b955084613bd7565b90506020813d8211613c1c575b81613c04602093836142f4565b810103126105a3575180151581036105a35789613bd1565b3d9150613bf7565b346105a35760206003193601126105a35760043560005260126020526020604060002054604051908152f35b346105a357613c5e366141e8565b9060005260106020526040600020906000526020526020604060002054604051908152f35b346105a3576020613c9f613c963661439b565b92919091614c56565b6040519015158152f35b346105a35760206003193601126105a3576001600160a01b03613cca614273565b613cd26146c5565b1660005260146020527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6604060002055600080f35b346105a35760206003193601126105a35760043560005260136020526020604060002054604051908152f35b346105a35760406003193601126105a3576004356024803567ffffffffffffffff81116105a357613d68903690600401614242565b92903360005260209360148552613da57f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b826000526006855260406000206001600160a01b03928382541693600180930154169360128852604060002054156140575785600052601288526040600020548411613fee578560005260128852613e0284604060002054614a7f565b866000526012895260406000205560005b848110613e1c57005b613e27818685614859565b359087600052600e808b526040600020836000528b52613e4f60ff60406000205416156148fb565b886000528a526040600020826000528a5260406000208560ff19825416179055604051917f6d325d310000000000000000000000000000000000000000000000000000000083528060048401526040838b816000885af180156105af578b90600094600091613fc5575b506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b0386166004820152602481019190915291908280604481015b038160008d5af19081156105af578c8b93600093613f91575b508392613f8c969261056e927f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad96600052600d815260406000209082600052528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b613e13565b925090925081813d8311613fbe575b613faa81836142f4565b810103126105a3575189918c61056e613f19565b503d613fa0565b613f0093929550613fe5915060403d6040116124665761245681836142f4565b90949192613eb9565b6084886035896040519262461bcd60e51b845260048401528201527f4c6976654d696e743a205469636b65744944204c656e6774682045786365656460448201527f73204172746973744944204d696e74204c696d697400000000000000000000006064820152fd5b6084886025896040519262461bcd60e51b845260048401528201527f4c6976654d696e743a204172746973744944204d696e74204c696d697420526560448201527f61636865640000000000000000000000000000000000000000000000000000006064820152fd5b346105a3576140ce366141e8565b6140d781614ebf565b9160005b8281106140f05760405180610c9786826141fe565b61412290826000526020600b815260406000209082600052526001600160a01b0360406000205416610cd48287614b82565b6140db565b346105a35760406003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff6076040600020541480156141cf575b61417990614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c0556024357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c155005b506141796001600160a01b036000541633149050614170565b60031960409101126105a3576004359060243590565b6020908160408183019282815285518094520193019160005b828110614225575050505090565b83516001600160a01b031685529381019392810192600101614217565b9181601f840112156105a35782359167ffffffffffffffff83116105a3576020808501948460051b0101116105a357565b600435906001600160a01b03821682036105a357565b602435906001600160a01b03821682036105a357565b60c0810190811067ffffffffffffffff821117610c0757604052565b60e0810190811067ffffffffffffffff821117610c0757604052565b617d20810190811067ffffffffffffffff821117610c0757604052565b90601f601f19910116810190811067ffffffffffffffff821117610c0757604052565b67ffffffffffffffff8111610c075760051b60200190565b929161433a82614317565b9161434860405193846142f4565b829481845260208094019160051b81019283116105a357905b82821061436e5750505050565b81358152908301908301614361565b9080601f830112156105a3578160206143989335910161432f565b90565b60806003198201126105a3576004356001600160a01b03811681036105a3579167ffffffffffffffff6024358181116105a357836143db9160040161437d565b926044359182116105a3576143f29160040161437d565b9060643590565b90815180825260208080930193019160005b828110614419575050505090565b83518552938101939281019260010161440b565b60406003198201126105a35767ffffffffffffffff916004358381116105a3578261445a91600401614242565b939093926024359182116105a35761447491600401614242565b9091565b919082519283825260005b8481106144a4575050601f19601f8460006020809697860101520116010190565b602081830181015184830182015201614483565b67ffffffffffffffff8111610c0757601f01601f191660200190565b9291926144e0826144b8565b916144ee60405193846142f4565b8294818452818301116105a3578281602093846000960137010152565b359081151582036105a357565b90600182811c92168015614561575b602083101461453257565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691614527565b906040519182600082549261457f84614518565b9081845260019485811690816000146145ee57506001146145ab575b50506145a9925003836142f4565b565b9093915060005260209081600020936000915b8183106145d65750506145a99350820101388061459b565b855488840185015294850194879450918301916145be565b90506145a995506020935060ff1991501682840152151560051b820101388061459b565b60406003198201126105a3576004359067ffffffffffffffff82116105a35761463d91600401614242565b909160243590565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106146795750505050505090565b90919293949584806146b5837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528a516143f9565b9801930193019194939290614669565b6001600160a01b036000541633036146d957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9061029a820180921161088c57565b9190820180921161088c57565b600019811461088c5760010190565b1561474f57565b608460405162461bcd60e51b815260206004820152602360248201527f4c6976654d696e743a20557365722048617320416c726561647920526564656560448201527f6d656400000000000000000000000000000000000000000000000000000000006064820152fd5b6002600154146147ca576002600155565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b1561481557565b606460405162461bcd60e51b815260206004820152602060248201527f4c6976654d696e743a206d73672e73656e646572204d75737420426520454f416044820152fd5b91908110156148695760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156148695760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156105a357019081359167ffffffffffffffff83116105a3576020018260051b360381136105a3579190565b1561490257565b608460405162461bcd60e51b815260206004820152602960248201527f4c6976654d696e743a20417274697374204d696e74205061737320416c72656160448201527f6479204d696e74656400000000000000000000000000000000000000000000006064820152fd5b51906001600160a01b03821682036105a357565b91908260409103126105a35760206149978361496c565b92015190565b156149a457565b608460405162461bcd60e51b815260206004820152602560248201527f4c6976654d696e743a20476f6c64656e20546f6b656e20416c7265616479204d60448201527f696e7465640000000000000000000000000000000000000000000000000000006064820152fd5b15614a1557565b608460405162461bcd60e51b815260206004820152603960248201527f4c6976654d696e74207c206f6e6c794d696e746572207c2043616c6c6572204960448201527f73204e6f7420417070726f76656420425254204d696e746572000000000000006064820152fd5b9190820391821161088c57565b15614a9357565b608460405162461bcd60e51b815260206004820152603360248201527f4c6976654d696e74207c206f6e6c7941646d696e207c2043616c6c657220497360448201527f204e6f7420417070726f7665642041646d696e000000000000000000000000006064820152fd5b15614b0457565b608460405162461bcd60e51b815260206004820152602160248201527f4c6976654d696e743a20496e70757420417272617973204d757374204d61746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152fd5b356001600160a01b03811681036105a35790565b80518210156148695760209160051b010190565b929091614ba39284614c56565b6001600160a01b039190911660009081527fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a60209081526040808320547f5fae251ae169e8e40026ce4ce85a026bc3adcccdc8459be361195e4cd924077f90925282205491928080614c4d575b15614c2057506143989250614a7f565b919082614c44575b5081614c3b575b50156143985750600190565b90501538614c2f565b15915038614c28565b50828211614c10565b9190918315614df9576040938451917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019160601b1690818152601484528684019067ffffffffffffffff9480831086841117610c075760a091838a52815190209460608201948552607482015260348352019381851090851117610c0757614cfa9387525190209360086000526007602052600286600020015490614e63565b15614d905790614d1c9160086000526007602052600384600020015490614e63565b15614d275750600190565b6084905162461bcd60e51b815260206004820152602560248201527f4c6976654d696e743a20496e76616c6964204d65726b6c6520416d6f756e742060448201527f50726f6f660000000000000000000000000000000000000000000000000000006064820152fd5b6084835162461bcd60e51b815260206004820152602a60248201527f4c6976654d696e743a20496e76616c6964204d65726b6c6520456c696769626960448201527f6c6974792050726f6f66000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f4c6976654d696e743a20515220526564656d7074696f6e20416d6f756e74204d60448201527f757374204265203e2030000000000000000000000000000000000000000000006064820152fd5b929091906000915b8451831015614eb757614e7e8386614b82565b5190600082821015614ea55750600052602052614e9f604060002092614739565b91614e6b565b604091614e9f93825260205220610e02565b915092501490565b90614ec982614317565b614ed660405191826142f4565b828152601f19614ee68294614317565b0190602036910137565b90614efa82614317565b614f0760405191826142f4565b828152601f19614f178294614317565b019060005b828110614f2857505050565b806060602080938501015201614f1c565b90600090828252600e6020526040822081835260205260ff60408320541615600014614f685750505060001990565b6040928252600d602052828220908252602052205490565b90600090828252600f6020526040822081835260205260ff60408320541615600014614faf5750505060001990565b6040928252600c60205282822090825260205220549056fea2646970667358221220f61d094969a3da3368b2bf4411265a4c697c55f51cb5f9e44c0de28399f7163064736f6c63430008130033
0x60406080815234620004da5760008054336001600160a01b03198083168217845592917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0916001600160a01b03918216838580a360146001808055600a6004558060ff196005541617600555848052610534600791602092808452898820620000946200008d8254620004df565b826200051c565b60227043727970746f47616c6163746963616e7360781b019055818852808452898820620000c76200008d8254620004df565b601e6e43727970746f56656e657469616e7360881b01905560028852808452898820620000f96200008d8254620004df565b846f43727970746f4e6577596f726b65727360801b019055600388528084528988206200012b6200008d8254620004df565b601e6e43727970746f4265726c696e65727360881b019055600488528084528988206200015d6200008d8254620004df565b601e6e43727970746f4c6f6e646f6e65727360881b019055600588528084528988206200018f6200008d8254620004df565b60166a43727970746f4d6578617360a81b01905560068852808452898820620001bd6200008d8254620004df565b601c6d43727970746f546f6b796974657360901b019055808852808452898820620001ed6200008d8254620004df565b60227043727970746f50617461676f6e69616e7360781b01905560088852808452898820620002216200008d8254620004df565b601e6e43727970746f506172697369616e7360881b019055600888528084527f4dd20fff095ef5aaf17d6d33b39873402fdc5ff05a0bf8088b2e01fcde3b22ff60038b8a206103e7858201557f302dc7afac84ccea916b1efa18450e9a52cadd533f1e74d596f541fe8a1159056002820155015560098852898820620002ac6200008d8254620004df565b601e6e43727970746f56656e657a69616e7360881b0190556009885283528887200155338552527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff60793848685205573e06f5fae754e81bc050215ff89b03d9e9ff207009485855280878620557318b7511938fbe2ee08adf3d4a24edb00a5c9b783855280878620557391594b5e5d74fccb3f71674ee74c5f4d44f333d5855286852055731a0a3e3ae390a0710f8a6d00587082273ea8f6c984527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68087862055734d8013b0c264034cbf22de9df33e22f58d52f20785528087862055734d9a8cf2fe52b8d49c7f7eaa87b2886c2bcb41608552808786205573124fd966a0d83aa020d3c54ae2c9f4800b46f4608552808786205573100469fea90ac1fe1073e1b2b5c020a8413635c48552808786205573756de4236373fd17652b377315954ca327412bba8552808786205573c5dfba6ef7803665c1bde478b51bd7eb257a2cb98552808786205573fbf32b29bcf8fee32d43a4bfd3e7249daec457c08552808786205573f2a15a83dee7f03c70936449037d65a1c100ff2785528087862055731d2bab965a4bb72f177cd641c7bacf3d8257230d85528087862055732e51e8b950d72bdf003b58e357c2ba28fb77c7fb85528087862055738a7186decb91da854090be8226222ea42c5eecb6855286852055848454918216178455169180a351614ffd9081620005578239f35b600080fd5b90600182811c9216801562000511575b6020831014620004fb57565b634e487b7160e01b600052602260045260246000fd5b91607f1691620004ef565b601f821162000529575050565b6000908152601f60208220920160051c8201915b8281106200054a57505050565b8181556001016200053d56fe6080604052600436101561001257600080fd5b60e0600035811c9081630356fb7214614127578163070e1119146140c05781631b18ed3914613d335781631f099fea14613d075781632165f39914613ca957816322c08d8914613c8357816322f0409914613c5057816325709be214613c24578163260df27714613801578163273c42ca146137c95781632cc2bb601461367d578163324f4cdd146133fb578163326141f71461339f57816335388966146131085781633a49a7b9146130a35781633a7ce968146130675781633be4c93914612fef5781633fceb9e214612fce578163401202c114612fa7578163401e994d14612eb65781634090b2a414612d65578163463ef6d914612cc957816349e9e8bd14612cad5781634c644a6e14612c7a5781634f4feff9146128e5578163525a330e1461288d57816354d6e36c1461285257816358c47362146128165781635de87228146127c857816360c92f2f146127475781636216091a146124ef5781636c7eba5f146121535781636dfd5a8c14611f5e578163715018a614611eed5781637328fcca14611eb55781637f220f4714611cb25781638429228714611c6957816388d3376714611bd55781638c024a5114611b8c5781638da5cb5b14611b6557816391f2b07814611a985781639366ca6b14611a135781639a973fd4146119f55781639adf3f95146119dc5781639cd90e11146118b15781639f55aac41461184a578163a0cad2111461176c578163a6a09bbe14611732578163abe0a8d314611714578163ae556f9a14611690578163b1e3b1d114611656578163b2a5249a14611511578163b35fadc2146112f5578163b5a9b3e9146110e1578163b6f2bc9c146112d2578163b95247ab14611288578163befe160a1461114b578163c39aee57146110e1578163c873016414610ff1578163d1a9045514610fc7578163d4322d7d14610f8d578163d605aeb714610f35578163d90afeb114610f02578163dc4a42b214610ee1578163e14826b214610d7b578163e74e77da14610cdf578163ebb1708e14610c36578163f29601ac146109b8578163f2fde38b146108c8578163f33229681461072f575063f42ab95d1461032c57600080fd5b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a35761035e903690600401614242565b90916103686147b9565b61037333321461480e565b600892836000526007825260ff9283600460406000200154861c16156106c55760005b8181106103a35760018055005b6103e76103b1828486614859565b35101561065b5785600052600f80855260406000206103d1838587614859565b3560005285526103e886604060002054161561499d565b86600052845260406000206103fe828486614859565b3560005284526040600020600160ff1982541617905561041f818385614859565b3590604051917f6d325d310000000000000000000000000000000000000000000000000000000083526004830152602485838281600073985e1932ffd2aa4bc9ce611dfe12816a248cd2ce5af19283156105af57600093610624575b506001600160a01b038316903382036105bb578890604051927f891407c000000000000000000000000000000000000000000000000000000000845260048401528201528581604481600073dd06d8483868cd0c5e69c24eeaa2a5f2beafd42b5af19081156105af5760009161057b575b507ff8c49ca221d1df5614d0b0cb321288da61168d6c3a7dc52686e4190b4abe9d4b906105769389600052600c8852604060002061052b85888a614859565b3560005288528160406000205561056e61054685888a614859565b3592604051938493846040919493926001600160a01b03606083019616825260208201520152565b0390a1614739565b610396565b90508581813d83116105a8575b61059281836142f4565b810103126105a357516105766104ec565b600080fd5b503d610588565b6040513d6000823e3d90fd5b8660316084926040519262461bcd60e51b845260048401528201527f4c6976654d696e743a206d73672e73656e646572204973204e6f74204f776e6560448201527f72204f6620476f6c64656e20546f6b656e0000000000000000000000000000006064820152fd5b9092508581813d8311610654575b61063c81836142f4565b810103126105a35761064d9061496c565b913861047b565b503d610632565b6084846040519062461bcd60e51b82526004820152603660248201527f4c6976654d696e743a20496e76616c696420496e707574205469636b6574494460448201527f2c204d75737420426520476f6c64656e20546f6b656e000000000000000000006064820152fd5b6084836040519062461bcd60e51b82526004820152602f60248201527f4c6976654d696e743a2052656d6f7465204d696e74696e67204f66204369746960448201527f7a656e73204e6f742041637469766500000000000000000000000000000000006064820152fd5b346105a3576003193601126105a35760405161074a816142bb565b6001600160a01b039060043582811681036105a357815260243582811681036105a357602082019081526044359083821682036105a357600691604084019081526060840160643581526080850190608435825260a086019260a435845260c087019460c43586523360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff6076040600020541480156108bb575b6107f390614a8c565b6003549883518a600052601260205260406000205587602052806040600020995116917fffffffffffffffffffffffff000000000000000000000000000000000000000092838b5416178a558160018b0191511683825416179055600289019251169082541617905551600386015551600485015551600584015551910155600181019081811161088c57602091600355604051908152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b50600054891633146107ea565b346105a35760206003193601126105a3576108e1614273565b6108e96146c5565b6001600160a01b0380911690811561094e57600054827fffffffffffffffffffffffff0000000000000000000000000000000000000000821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b608460405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b346105a3576003196040813601126105a35760243567ffffffffffffffff918282116105a35760c09082360301126105a357604051916109f78361429f565b81600401358181116105a3578201366023820112156105a357610a249036906024600482013591016144d4565b835260209081840160248401358152604085019060448501358252606086019260648601358452610a6a60a4610a5c6084890161450b565b9760808a019889520161450b565b9460a08801958652610a7a6146c5565b60043560005260078152604060002097518051928311610c0757610a9e8954614518565b601f8111610bc1575b5081601f8411600114610b4c57509282610b0b969360049693610b3f9b96600092610b41575b50506000198260011b9260031b1c19161784555b5160018401555160028301555160038201550192511515839060ff60ff1983541691151516179055565b5181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff1690151560081b61ff0016179055565b005b015190508b80610acd565b9190601f1984168a60005283600020936000905b828210610ba95750509360049693610b3f9b969360019383610b0b9b9810610b90575b505050811b018455610ae1565b015160001960f88460031b161c191690558b8080610b83565b80600186978294978701518155019601940190610b60565b8960005282600020601f850160051c810191848610610bfd575b601f0160051c01905b818110610bf15750610aa7565b60008155600101610be4565b9091508190610bdb565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b346105a3576020806003193601126105a35760405190600435610c58836142d7565b6103e891828452617d00368286013761014d600683068181029391811591850414171561088c5760005b848110610c9b5760405180610c9788826141fe565b0390f35b610cda9082600052600a84526040600020610cb6828761472c565b60005284526001600160a01b0360406000205416610cd48289614b82565b52614739565b610c82565b346105a35760206003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015610d62575b610d3190614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c055005b50610d316001600160a01b036000541633149050610d28565b346105a357610d8936614612565b610d94829392614ef0565b91600090815b858310610daf5760405180610c978782614645565b610db884614ebf565b60009060005b868110610e755750610dcf82614ebf565b916000805b828110610e0e575050505081610e0291610df1610e089489614b82565b52610dfc8188614b82565b50614739565b92614739565b91610d9a565b610e188185614b82565b5115801590610e5a575b610e35575b610e3090614739565b610dd4565b90610e52610e3091610e478487614b82565b51610cd48289614b82565b919050610e27565b50610e658185614b82565b51158015610e2257508015610e22565b610e8a868a87949b95979a989a999699614859565b356000526020600e8152604060002090826000525260ff60406000205416610ec6575b610eb690614739565b9790939197969496959295610dbe565b93610ed98186610cd4610eb6948d614b82565b949050610ead565b346105a3576020610efa610ef4366141e8565b90614f80565b604051908152f35b346105a357610f10366141e8565b90600052600c6020526040600020906000526020526020604060002054604051908152f35b346105a35760006003193601126105a357610f4e6146c5565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c2805460ff818116151660ff19909116179055005b346105a35760206003193601126105a3576001600160a01b03610fae614273565b1660005260146020526020604060002054604051908152f35b346105a357610fd5366141e8565b90610fde6146c5565b6000526012602052604060002055600080f35b346105a35760206003193601126105a357600060c0604051611012816142bb565b8281528260208201528260408201528260608201528260808201528260a0820152015260043560005260066020526040600020604051611051816142bb565b6001600160a01b0391828154169283835280600183015416906020840191825280600284015416906040850191825260038401549160608601928352816004860154946080880195865260c0600660058901549860a08b01998a520154980197885260405198895251166020880152511660408601525160608501525160808401525160a08301525160c0820152f35b346105a35760406003193601126105a357610b3f6110fd614289565b6111056146c5565b60043560005260066020526001600160a01b03600160406000200191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055565b346105a3576020806003193601126105a3576040519060043561116d836142d7565b6103e8808452617d00368486013760009161014d6006820681810291811591830414171561088c5760005b83811061123457505050506111ac81614ebf565b9260009060005b8381106111cd5760405185815280610c97818801896143f9565b6111d78183614b82565b5115801590611219575b6111f4575b6111ef90614739565b6111b3565b916112116111ef916112068585614b82565b51610cd4828a614b82565b9290506111e6565b506112248183614b82565b511580156111e1575080156111e1565b61123e828261472c565b83600052600f8752604060002081600052875260ff6040600020541661126e575b5061126990614739565b611198565b8561128191610cd461126994988b614b82565b949061125f565b346105a35760206003193601126105a3576112a16146c5565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86bf55005b346105a35760006003193601126105a357602060ff600554166040519015158152f35b346105a35760606003193601126105a35761130e614273565b60243590604435906001600160a01b0390816002541633036114a757836000526020936012855260406000205480851161143d578461134c91614a7f565b906000526012855260406000205560068452600460406000209260018401541692015460005b84811061137b57005b6040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b0384166004820152602481018390529086826044816000895af180156105af57879260009161140a575b50611405927f176b02bb2d12439ff7a20b59f402cca16c76f50508b13ef3166a600eb719354a91604051908152a1614739565b611372565b83819492503d8311611436575b61142181836142f4565b810103126105a35790518691906114056113d2565b503d611417565b6084866040519062461bcd60e51b82526004820152603960248201527f4c6976654d696e743a204e6f7420456e6f756768204d696e74732052656d616960448201527f6e696e6720466f722044657369726564204172746973744944000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152603660248201527f4c6976654d696e74207c206f6e6c794d61726b6574706c616365207c2043616c60448201527f6c6572204973204e6f74204d61726b6574706c616365000000000000000000006064820152fd5b346105a35761151f36614612565b61152a829392614ef0565b91600090815b8583106115455760405180610c978782614645565b61154e84614ebf565b60009060005b8681106115e9575061156582614ebf565b916000805b82811061158d575050505081610e0291610df16115879489614b82565b91611530565b6115978185614b82565b51158015906115ce575b6115b4575b6115af90614739565b61156a565b906115c66115af91610e478487614b82565b9190506115a6565b506115d98185614b82565b511580156115a1575080156115a1565b6115fe868a87949b95979a989a999699614859565b356000526020600e8152604060002090826000525260ff604060002054161561163b575b61162b90614739565b9790939197969496959295611554565b9361164e8186610cd461162b948d614b82565b949050611622565b346105a35760206003193601126105a3576004358015158091036105a35761167c6146c5565b60ff60ff1960055416911617600555600080f35b346105a35760206003193601126105a35760043560005260076020526116eb60406000206116bd8161456b565b9060ff600182015491600281015490600460038201549101549160405196879660c0885260c0880190614478565b946020870152604086015260608501528181161515608085015260081c16151560a08301520390f35b346105a35760006003193601126105a3576020600354604051908152f35b346105a35760006003193601126105a35761174b6146c5565b600080808047818115611763575b3390f1156105af57005b506108fc611759565b346105a35761177a3661442d565b919092336000526020601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015611831575b6117bf90614a8c565b6117ca848414614afd565b60005b8381106117d657005b806117e561182c928789614859565b3560086000526009845260406000206001600160a01b0361180f61180a858a8a614859565b614b6e565b166000528452611825604060002091825461472c565b9055614739565b6117cd565b506117bf6001600160a01b0360005416331490506117b6565b346105a35760406003193601126105a357611863614289565b61186b6146c5565b60043560005260066020526001600160a01b03604060002091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346105a3576101006003193601126105a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc3601126105a3576040516118f7816142bb565b6001600160a01b0360243581811681036105a35782526044359080821682036105a357602083019182526064359181831683036105a35760069260408501908152606085016084358152608086019160a435835260a087019360c435855260c088019560e43587526119676146c5565b60043560005287602052806040600020995116917fffffffffffffffffffffffff000000000000000000000000000000000000000092838b5416178a558160018b0191511683825416179055600289019251169082541617905551600386015551600485015551600584015551910155600080f35b346105a3576020610efa6119ef366141e8565b90614f39565b346105a35760006003193601126105a3576020600454604051908152f35b346105a35760206003193601126105a3577f2c74592fddad593c2c4403101ce9b30930711ab87571268ddd1e1989ee1d791760206001600160a01b03611a57614273565b611a5f6146c5565b1680600052601482527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002055604051908152a1005b346105a357611aa63661442d565b919092336000526020601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015611b4c575b611aeb90614a8c565b611af6848414614afd565b60005b838110611b0257005b80611b11611b47928789614859565b3560086000526009845260406000206001600160a01b03611b3661180a858a8a614859565b166000528452604060002055614739565b611af9565b50611aeb6001600160a01b036000541633149050611ae2565b346105a35760006003193601126105a35760206001600160a01b0360005416604051908152f35b346105a35760406003193601126105a357611ba5614289565b60043560005260116020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346105a35760006003193601126105a357611bee6146c5565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c2805460ff818116151660ff19909116178155610b3f9080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8116600891821c60ff161590911b61ff0016179055565b346105a35760406003193601126105a357611c82614289565b60043560005260096020526001600160a01b03604060002091166000526020526020604060002054604051908152f35b346105a35760a06003193601126105a35760043567ffffffffffffffff8082116105a357366023830112156105a3578160040135918183116105a35736602484830101116105a357606435918215158093036105a357608435918215158093036105a357611d3990611d226146c5565b60405195611d2f8761429f565b60243692016144d4565b8452602090818501604435815260408601917f694206942069420694206942069420694206942069420694206942069420694293848452606088019485526080880196875260a0880195865260243560005260078152604060002097518051928311610c0757611da98954614518565b601f8111611e6f575b5081601f8411600114611e1457509282610b0b969360049693610b3f9b96600092610b415750506000198260011b9260031b1c19161784555160018401555160028301555160038201550192511515839060ff60ff1983541691151516179055565b9190601f1984168a60005283600020936000905b828210611e575750509360049693610b3f9b969360019383610b0b9b9810610b9057505050811b018455610ae1565b80600186978294978701518155019601940190611e28565b8960005282600020601f850160051c810191848610611eab575b601f0160051c01905b818110611e9f5750611db2565b60008155600101611e92565b9091508190611e89565b346105a357611ec3366141e8565b90600052600f602052604060002090600052602052602060ff604060002054166040519015158152f35b346105a35760006003193601126105a357611f066146c5565b60006001600160a01b0381547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a357611f90903690600401614242565b9033600052601483527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff60760406000205414801561213a575b611fd190614a8c565b60005b828110611fdd57005b600880600052600f85526040600020611ff7838686614859565b35600052855260ff604060002054166120d0576103e7612018838686614859565b35111561208c579061208791600052600a8552604060002061203b828686614859565b356000528552604060002073b96e81f80b3aeef65cb6d0e280b15fd5dbe719377fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055614739565b611fd4565b6064856040519062461bcd60e51b82526004820152601a60248201527f4c6976654d696e743a20496e76616c6964205469636b657449440000000000006044820152fd5b6084856040519062461bcd60e51b82526004820152602260248201527f4c6976654d696e743a205469636b657420494420416c7265616479204d696e7460448201527f65640000000000000000000000000000000000000000000000000000000000006064820152fd5b50611fd16001600160a01b036000541633149050611fc8565b346105a3576121613661442d565b92909161216c6147b9565b61217733321461480e565b600860005260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c25460ff1615612485579060005b8281106121bc5760018055005b6121c7818484614859565b35948560005260066020526040600020936001600160a01b03600181875416960154169360005b6121f985858a614898565b905081101561246d576122178161221187878c614898565b90614859565b359089600052600e8060205260406000208360005260205261224160ff60406000205416156148fb565b8a6000526020526040600020826000526020526040600020600160ff19825416179055604051917f6d325d3100000000000000000000000000000000000000000000000000000000835280600484015260006040848b8160249485925af19081156105af57600094600092612439575b50336001600160a01b038616036123cf57506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b038516600482015260248101919091529060208260448160008d5af19081156105af578c92600092612396575b509361056e8392612391967f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad95600052600d6020526040600020816000526020528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b6121ee565b925090506020823d6020116123c7575b816123b3602093836142f4565b810103126105a35790518b9161056e61231d565b3d91506123a6565b60849060386040519162461bcd60e51b8352602060048401528201527f4c6976654d696e743a206d73672e73656e646572204973204e6f74205468652060448201527f4f776e6572204f6620496e707574204d696e74205061737300000000000000006064820152fd5b90945061245e915060403d604011612466575b61245681836142f4565b810190614980565b90938d6122b1565b503d61244c565b5094509250945061247d90614739565b9190916121af565b608460405162461bcd60e51b815260206004820152602e60248201527f4c6976654d696e743a2052656d6f7465204d696e74696e67204f66204172746960448201527f737473204e6f74204163746976650000000000000000000000000000000000006064820152fd5b346105a35760606003193601126105a35767ffffffffffffffff6004358181116105a357366023820112156105a357806004013561252c81614317565b9061253a60405192836142f4565b8082526020928383016024809360051b830101913683116105a3578301905b8282106127285750505080358481116105a357366023820112156105a35780600401359061258682614317565b9161259460405193846142f4565b808352838684019160051b830101913683116105a35784879101915b838310612718575050505060449283358681116105a357366023820112156105a35780600401356125e081614317565b976125ee604051998a6142f4565b81895285888a019260051b840101923684116105a357868101925b8484106126e257505050505061261d6146c5565b60005b8151811015610b3f576000806001600160a01b0361263e8486614b82565b511661264a8487614b82565b5190612656858c614b82565b51918a83519301915af13d156126dd573d612670816144b8565b9061267e60405192836142f4565b81526000883d92013e5b1561269b5761269690614739565b612620565b6064867f692068617665206661696c6564207520616e616b696e00000000000000000000876016886040519462461bcd60e51b86526004860152840152820152fd5b612688565b83358381116105a3578201366043820112156105a3578a9161270d839236908d8d82013591016144d4565b815201930192612609565b82358152918101918791016125b0565b81356001600160a01b03811681036105a3578152908501908501612559565b346105a35760006003193601126105a3576127606146c5565b6008600081905260076020527f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff811690831c60ff161590921b61ff0016919091179055005b346105a35760406003193601126105a3576127e1614289565b60043560005260086020526001600160a01b0360406000209116600052602052602060ff604060002054166040519015158152f35b346105a357612824366141e8565b90600052600a60205260406000209060005260205260206001600160a01b0360406000205416604051908152f35b346105a35760206003193601126105a3576001600160a01b03612873614273565b61287b6146c5565b16600090815260146020526040812055005b346105a35760206003193601126105a3576001600160a01b036128ae614273565b6128b66146c5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255600080f35b346105a3576020806003193601126105a35760043567ffffffffffffffff81116105a357612917903690600401614242565b919033600052601482526129517f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b60005b83811061295d57005b60089081600052600f8085526040600020612979838887614859565b35600052855261299160ff604060002054161561499d565b82600052600a9283865260406000206129ab848988614859565b3560005286526001600160a01b039384604060002054161515600014612b595781600052865260406000206129e1848988614859565b3560005286528360406000205416935b8416918215612b15578160005286526040600020612a10848988614859565b3560005286526040600020600160ff19825416179055604051917f891407c000000000000000000000000000000000000000000000000000000000835260048301528060248301528582604481600073dd06d8483868cd0c5e69c24eeaa2a5f2beafd42b5af19182156105af57600092612ae4575b5090612adf937ff8c49ca221d1df5614d0b0cb321288da61168d6c3a7dc52686e4190b4abe9d4b92600052600c87526040600020612ac4858a89614859565b3560005287528160406000205561056e610546858a89614859565b612954565b91508582813d8311612b0e575b612afb81836142f4565b810103126105a357905190612adf612a85565b503d612af1565b6064876040519062461bcd60e51b82526004820152601b60248201527f4c6976654d696e743a20496e76616c696420526563697069656e7400000000006044820152fd5b506103e7612b68848988614859565b351015612c1057612b7a838887614859565b35604051907f6d325d3100000000000000000000000000000000000000000000000000000000825260048201528681602481600073985e1932ffd2aa4bc9ce611dfe12816a248cd2ce5af19081156105af57600091612bdb575b50936129f1565b90508681813d8311612c09575b612bf281836142f4565b810103126105a357612c039061496c565b88612bd4565b503d612be8565b6084866040519062461bcd60e51b82526004820152603260248201527f4c6976654d696e743a205469636b65744944204973204e6f7420456c6967696260448201527f6c6520546f204d696e7420436974697a656e00000000000000000000000000006064820152fd5b346105a357612c88366141e8565b90600052600d6020526040600020906000526020526020604060002054604051908152f35b346105a3576020610efa612cc03661439b565b92919091614b96565b346105a35760206003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015612d4c575b612d1b90614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c155005b50612d1b6001600160a01b036000541633149050612d12565b346105a35760006003193601126105a357604051612d82816142d7565b6103e8808252602090617d00368385013760009060005b818110612deb575050612dab81614ebf565b9260005b828110612dcd57505050610c976040519282849384528301906143f9565b80612ddb612de69284614b82565b51610cd48288614b82565b612daf565b612df48161471d565b600880600052600f808752604060002083600052875260ff908160406000205416159283612e8a575b8315612e55575b505050612e3b575b50612e3690614739565b612d99565b83612e4e91610cd4612e36949689614b82565b9290612e2c565b9091925060005286526040600020826000528652604060002054161580612e7f575b878080612e24565b506103e78110612e77565b809350600052600a885260406000208460005288526001600160a01b0360406000205416151592612e1d565b346105a357602090816003193601126105a35760c091600060a0604051612edc8161429f565b60608152828482015282604082015282606082015282608082015201526004356000526007815260406000209060405192612f168461429f565b612f1f8361456b565b8452600183015492828501938452600281015460408601908152612f80600460038401549360608901948552015494608088019460ff87161515865260ff60a08a019760081c1615158752604051998a99838b5251928a0152880190614478565b9451604087015251606086015251608085015251151560a084015251151560c08301520390f35b346105a35760006003193601126105a35760206001600160a01b0360025416604051908152f35b346105a35760206003193601126105a357612fe76146c5565b600480359055005b346105a35760206003193601126105a357600435600052600660205260406000206001600160a01b038082541691816001820154169160028201541660038201546004830154916006600585015494015494604051968752602087015260408601526060850152608084015260a083015260c0820152f35b346105a357613075366141e8565b90600052600b60205260406000209060005260205260206001600160a01b0360406000205416604051908152f35b346105a35760206003193601126105a3577fdce35c6ead5e97f9a12a9dfe363465b6f62c5fab770d14f46f89c82c58819cc660206001600160a01b036130e7614273565b6130ef6146c5565b16806000526014825260006040812055604051908152a1005b346105a3576131163661442d565b90919233600052602093601485526131547f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b60005b81811061316057005b61316b818385614859565b359384600052600687526040600020926001600160a01b03600181865416950154169460005b61319c85858b614898565b9050811015613387576131b48161221187878d614898565b359088600052600e808c526040600020836000528c526131dc60ff60406000205416156148fb565b896000528b526040600020826000528b526040600020600160ff19825416179055604051907f6d325d3100000000000000000000000000000000000000000000000000000000825282600483015260408260248160008c5af19283156105af578c8a9460009460009161335a575b506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b038616600482015260248101919091529394929392839081600081604481015b03925af19081156105af578d8c93600093613326575b508392613321969261056e927f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad96600052600d815260406000209082600052528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b613191565b925090925081813d8311613353575b61333f81836142f4565b810103126105a357518a918d61056e6132ae565b503d613335565b6000949550613298915061337c9060403d6040116124665761245681836142f4565b90959490915061324a565b5095509250925061339790614739565b929192613157565b346105a35760206003193601126105a3576133b8614273565b6001600160a01b031660009081527f5fae251ae169e8e40026ce4ce85a026bc3adcccdc8459be361195e4cd924077f602090815260409182902054915191825290f35b346105a3576020806003193601126105a357613415614273565b9033600052601481527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff607604060002054148015613664575b61345690614a8c565b60ff60055416156135fb5762015180420480600052601382526040600020546001810180911161088c57600454106135b7577fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a2600793600892836000528385526040600020906001600160a01b038316918260005286526134df60ff6040600020541615614748565b6000526013855260406000206134f58154614739565b90558360005283855260406000208160005285526040600020600160ff1982541617905583600052600a8552604060002086865260016040600020015460005285526040600020907fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055826000528484526001604060002001549061359a60405192839283602090939291936001600160a01b0360408201951681520152565b0390a16000525260016040600020016135b38154614739565b9055005b6064826040519062461bcd60e51b82526004820152601d60248201527f4c6976654d696e743a204d6178205065722044617920526561636865640000006044820152fd5b6084906040519062461bcd60e51b825260048201526024808201527f4c6976654d696e743a2051522044656c65676174696f6e73204e6f7420456e6160448201527f626c6564000000000000000000000000000000000000000000000000000000006064820152fd5b506134566001600160a01b03600054163314905061344d565b346105a35760006003193601126105a35760405161369a816142d7565b6103e8808252602090617d00368385013760009060005b8181106137405750506136c381614ebf565b9260009060005b8381106136e45760405185815280610c97818801896143f9565b6136ee8183614b82565b5115801590613725575b61370b575b61370690614739565b6136ca565b9161371d613706916112068585614b82565b9290506136fd565b506137308183614b82565b511580156136f8575080156136f8565b6137498161471d565b600880600052600f8652604060002082600052865260ff6040600020541615908161379e575b50613784575b5061377f90614739565b6136b1565b8361379791610cd461377f949689614b82565b9290613775565b9050600052600a855260406000208160005285526001600160a01b036040600020541615158761376f565b346105a3576137d7366141e8565b90600052600e602052604060002090600052602052602060ff604060002054166040519015158152f35b346105a35760806003193601126105a35767ffffffffffffffff6004358181116105a357613833903690600401614242565b916024359081116105a35761384c903690600401614242565b6044939193356001600160a01b0394858216948583036105a3576064359485936138746147b9565b339780613b73575b50509161389261389a926138a19694369161432f565b92369161432f565b9085614c56565b50600890816000526020926011845260406000209481169485600052845260406000206138cf83825461472c565b90558260005260098452604060002085600052845260406000205415600014613a05577fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a2915082600052828452604060002085600052845261393960ff6040600020541615614748565b82600052600a845260406000206007855260016040600020015460005284526040600020857fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790558260005260078452600160406000200154906139bc60405192839283602090939291936001600160a01b0360408201951681520152565b0390a1806000526007825260016040600020016139d98154614739565b90555b806000528152604060002091600052526040600020600160ff1982541617905560018055600080f35b826000526011845260406000208560005284526040600020548360005260098552604060002086600052855260406000205410613b09578260005260078452613a57600160406000200154809361472c565b918360005260078552826001604060002001555b828110613a7a575050506139dc565b613b049084600052600a865260406000208160005286526040600020877fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fb98da0e6a30cd3b780eff429cf26a49da9d9958fba01c872d67b4c3d6707c9a26040518061056e848783602090939291936001600160a01b0360408201951681520152565b613a6b565b6084846040519062461bcd60e51b82526004820152603860248201527f4c6976654d696e743a205573657220486173204e6f2052656d61696e696e672060448201527f417574686f72697a65642051527320546f2052656465656d00000000000000006064820152fd5b909192939450604051907f9c395bc200000000000000000000000000000000000000000000000000000000825288600483015260248201526020816044816d76a84fef008cdabe6409d2fe638b5afa9081156105af57600091613bea575b50613be2575b90818694939261387c565b955084613bd7565b90506020813d8211613c1c575b81613c04602093836142f4565b810103126105a3575180151581036105a35789613bd1565b3d9150613bf7565b346105a35760206003193601126105a35760043560005260126020526020604060002054604051908152f35b346105a357613c5e366141e8565b9060005260106020526040600020906000526020526020604060002054604051908152f35b346105a3576020613c9f613c963661439b565b92919091614c56565b6040519015158152f35b346105a35760206003193601126105a3576001600160a01b03613cca614273565b613cd26146c5565b1660005260146020527f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6604060002055600080f35b346105a35760206003193601126105a35760043560005260136020526020604060002054604051908152f35b346105a35760406003193601126105a3576004356024803567ffffffffffffffff81116105a357613d68903690600401614242565b92903360005260209360148552613da57f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a660406000205414614a0e565b826000526006855260406000206001600160a01b03928382541693600180930154169360128852604060002054156140575785600052601288526040600020548411613fee578560005260128852613e0284604060002054614a7f565b866000526012895260406000205560005b848110613e1c57005b613e27818685614859565b359087600052600e808b526040600020836000528b52613e4f60ff60406000205416156148fb565b886000528a526040600020826000528a5260406000208560ff19825416179055604051917f6d325d310000000000000000000000000000000000000000000000000000000083528060048401526040838b816000885af180156105af578b90600094600091613fc5575b506040517f891407c00000000000000000000000000000000000000000000000000000000081526001600160a01b0386166004820152602481019190915291908280604481015b038160008d5af19081156105af578c8b93600093613f91575b508392613f8c969261056e927f63e2ac9188fe2de978d4fb15017e0654ffd728f711404cb267e805ffdcf6b8ad96600052600d815260406000209082600052528160406000205560405194859485909493926060926001600160a01b036080840197168352602083015260408201520152565b613e13565b925090925081813d8311613fbe575b613faa81836142f4565b810103126105a3575189918c61056e613f19565b503d613fa0565b613f0093929550613fe5915060403d6040116124665761245681836142f4565b90949192613eb9565b6084886035896040519262461bcd60e51b845260048401528201527f4c6976654d696e743a205469636b65744944204c656e6774682045786365656460448201527f73204172746973744944204d696e74204c696d697400000000000000000000006064820152fd5b6084886025896040519262461bcd60e51b845260048401528201527f4c6976654d696e743a204172746973744944204d696e74204c696d697420526560448201527f61636865640000000000000000000000000000000000000000000000000000006064820152fd5b346105a3576140ce366141e8565b6140d781614ebf565b9160005b8281106140f05760405180610c9786826141fe565b61412290826000526020600b815260406000209082600052526001600160a01b0360406000205416610cd48287614b82565b6140db565b346105a35760406003193601126105a3573360005260146020527f50e75b23f8ec51bbcb044fe377457e835f3b5ccc7ebf69e80906452015dff6076040600020541480156141cf575b61417990614a8c565b600860005260076020526004357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c0556024357f4b1bf46c9f1bd48ff8274d40bad76a6615cb6c59a637d451a3994194b2db86c155005b506141796001600160a01b036000541633149050614170565b60031960409101126105a3576004359060243590565b6020908160408183019282815285518094520193019160005b828110614225575050505090565b83516001600160a01b031685529381019392810192600101614217565b9181601f840112156105a35782359167ffffffffffffffff83116105a3576020808501948460051b0101116105a357565b600435906001600160a01b03821682036105a357565b602435906001600160a01b03821682036105a357565b60c0810190811067ffffffffffffffff821117610c0757604052565b60e0810190811067ffffffffffffffff821117610c0757604052565b617d20810190811067ffffffffffffffff821117610c0757604052565b90601f601f19910116810190811067ffffffffffffffff821117610c0757604052565b67ffffffffffffffff8111610c075760051b60200190565b929161433a82614317565b9161434860405193846142f4565b829481845260208094019160051b81019283116105a357905b82821061436e5750505050565b81358152908301908301614361565b9080601f830112156105a3578160206143989335910161432f565b90565b60806003198201126105a3576004356001600160a01b03811681036105a3579167ffffffffffffffff6024358181116105a357836143db9160040161437d565b926044359182116105a3576143f29160040161437d565b9060643590565b90815180825260208080930193019160005b828110614419575050505090565b83518552938101939281019260010161440b565b60406003198201126105a35767ffffffffffffffff916004358381116105a3578261445a91600401614242565b939093926024359182116105a35761447491600401614242565b9091565b919082519283825260005b8481106144a4575050601f19601f8460006020809697860101520116010190565b602081830181015184830182015201614483565b67ffffffffffffffff8111610c0757601f01601f191660200190565b9291926144e0826144b8565b916144ee60405193846142f4565b8294818452818301116105a3578281602093846000960137010152565b359081151582036105a357565b90600182811c92168015614561575b602083101461453257565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f1691614527565b906040519182600082549261457f84614518565b9081845260019485811690816000146145ee57506001146145ab575b50506145a9925003836142f4565b565b9093915060005260209081600020936000915b8183106145d65750506145a99350820101388061459b565b855488840185015294850194879450918301916145be565b90506145a995506020935060ff1991501682840152151560051b820101388061459b565b60406003198201126105a3576004359067ffffffffffffffff82116105a35761463d91600401614242565b909160243590565b602080820190808352835180925260408301928160408460051b8301019501936000915b8483106146795750505050505090565b90919293949584806146b5837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528a516143f9565b9801930193019194939290614669565b6001600160a01b036000541633036146d957565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9061029a820180921161088c57565b9190820180921161088c57565b600019811461088c5760010190565b1561474f57565b608460405162461bcd60e51b815260206004820152602360248201527f4c6976654d696e743a20557365722048617320416c726561647920526564656560448201527f6d656400000000000000000000000000000000000000000000000000000000006064820152fd5b6002600154146147ca576002600155565b606460405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152fd5b1561481557565b606460405162461bcd60e51b815260206004820152602060248201527f4c6976654d696e743a206d73672e73656e646572204d75737420426520454f416044820152fd5b91908110156148695760051b0190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b91908110156148695760051b810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1813603018212156105a357019081359167ffffffffffffffff83116105a3576020018260051b360381136105a3579190565b1561490257565b608460405162461bcd60e51b815260206004820152602960248201527f4c6976654d696e743a20417274697374204d696e74205061737320416c72656160448201527f6479204d696e74656400000000000000000000000000000000000000000000006064820152fd5b51906001600160a01b03821682036105a357565b91908260409103126105a35760206149978361496c565b92015190565b156149a457565b608460405162461bcd60e51b815260206004820152602560248201527f4c6976654d696e743a20476f6c64656e20546f6b656e20416c7265616479204d60448201527f696e7465640000000000000000000000000000000000000000000000000000006064820152fd5b15614a1557565b608460405162461bcd60e51b815260206004820152603960248201527f4c6976654d696e74207c206f6e6c794d696e746572207c2043616c6c6572204960448201527f73204e6f7420417070726f76656420425254204d696e746572000000000000006064820152fd5b9190820391821161088c57565b15614a9357565b608460405162461bcd60e51b815260206004820152603360248201527f4c6976654d696e74207c206f6e6c7941646d696e207c2043616c6c657220497360448201527f204e6f7420417070726f7665642041646d696e000000000000000000000000006064820152fd5b15614b0457565b608460405162461bcd60e51b815260206004820152602160248201527f4c6976654d696e743a20496e70757420417272617973204d757374204d61746360448201527f68000000000000000000000000000000000000000000000000000000000000006064820152fd5b356001600160a01b03811681036105a35790565b80518210156148695760209160051b010190565b929091614ba39284614c56565b6001600160a01b039190911660009081527fc7694af312c4f286114180fd0ba6a52461fcee8a381636770b19a343af92538a60209081526040808320547f5fae251ae169e8e40026ce4ce85a026bc3adcccdc8459be361195e4cd924077f90925282205491928080614c4d575b15614c2057506143989250614a7f565b919082614c44575b5081614c3b575b50156143985750600190565b90501538614c2f565b15915038614c28565b50828211614c10565b9190918315614df9576040938451917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019160601b1690818152601484528684019067ffffffffffffffff9480831086841117610c075760a091838a52815190209460608201948552607482015260348352019381851090851117610c0757614cfa9387525190209360086000526007602052600286600020015490614e63565b15614d905790614d1c9160086000526007602052600384600020015490614e63565b15614d275750600190565b6084905162461bcd60e51b815260206004820152602560248201527f4c6976654d696e743a20496e76616c6964204d65726b6c6520416d6f756e742060448201527f50726f6f660000000000000000000000000000000000000000000000000000006064820152fd5b6084835162461bcd60e51b815260206004820152602a60248201527f4c6976654d696e743a20496e76616c6964204d65726b6c6520456c696769626960448201527f6c6974792050726f6f66000000000000000000000000000000000000000000006064820152fd5b608460405162461bcd60e51b815260206004820152602a60248201527f4c6976654d696e743a20515220526564656d7074696f6e20416d6f756e74204d60448201527f757374204265203e2030000000000000000000000000000000000000000000006064820152fd5b929091906000915b8451831015614eb757614e7e8386614b82565b5190600082821015614ea55750600052602052614e9f604060002092614739565b91614e6b565b604091614e9f93825260205220610e02565b915092501490565b90614ec982614317565b614ed660405191826142f4565b828152601f19614ee68294614317565b0190602036910137565b90614efa82614317565b614f0760405191826142f4565b828152601f19614f178294614317565b019060005b828110614f2857505050565b806060602080938501015201614f1c565b90600090828252600e6020526040822081835260205260ff60408320541615600014614f685750505060001990565b6040928252600d602052828220908252602052205490565b90600090828252600f6020526040822081835260205260ff60408320541615600014614faf5750505060001990565b6040928252600c60205282822090825260205220549056fea2646970667358221220f61d094969a3da3368b2bf4411265a4c697c55f51cb5f9e44c0de28399f7163064736f6c63430008130033