60808060405234601557610f38908161001a8239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f3560e01c90816306fdde0314610b4857508063095ea7b314610acf5780631624f6c6146107a057806318160ddd1461078357806323b872dd14610689578063313ce567146106695780633644e5151461064757806370a082311461060f5780637ecebe00146105d757806395d89b4114610510578063a9059cbb1461046d578063d505accf1461023f578063dd62ed3e146101ef5763ea66696c146100b6575f80fd5b346101d75760403660031901126101d75760043567ffffffffffffffff81116101d757366023820112156101d75780600401359067ffffffffffffffff82116101db578160051b906040519261010f6020840185610c2a565b835260246020840192820101903682116101d757602401915b8183106101b757836024355f5b82518110156101b557600190818060a01b0360208260051b860101511661015e84600354610e69565b600355805f5260046020526101778460405f2054610e69565b815f52600460205260405f20555f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6020604051878152a301610135565b005b82356001600160a01b03811681036101d757815260209283019201610128565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b346101d75760403660031901126101d757610208610bfe565b610210610c14565b6001600160a01b039182165f908152600560209081526040808320949093168252928352819020549051908152f35b346101d75760e03660031901126101d757610258610bfe565b610260610c14565b604435606435916084359260ff84168094036101d75742811061042857610285610cda565b6001600160a01b039095165f818152600860205260409020805496919590915f198814610414576020945f9460809460018b01905560405190878201927f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c984528a604084015260018060a01b03169a8b6060840152898784015260a083015260c082015260c0815261031860e082610c2a565b519020604051908682019261190160f01b84526022830152604282015260428152610344606282610c2a565b519020906040519182528482015260a435604082015260c435606082015282805260015afa15610409575f516001600160a01b031680151580610400575b156103ca577f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925916020915f526005825260405f20855f5282528060405f2055604051908152a3005b60405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606490fd5b50828114610382565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b60405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606490fd5b346101d75760403660031901126101d757610486610bfe565b60243590335f5260046020526104a08260405f2054610e10565b335f52600460205260405f205560018060a01b031690815f5260046020526104cc8160405f2054610e69565b825f52600460205260405f20556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3602060405160018152f35b346101d7575f3660031901126101d7576040515f60015461053081610ca2565b80845290600181169081156105b35750600114610568575b6105648361055881850382610c2a565b60405191829182610bd4565b0390f35b91905060015f525f80516020610ee3833981519152915f905b80821061059957509091508101602001610558610548565b919260018160209254838588010152019101909291610581565b60ff191660208086019190915291151560051b840190910191506105589050610548565b346101d75760203660031901126101d7576001600160a01b036105f8610bfe565b165f526008602052602060405f2054604051908152f35b346101d75760203660031901126101d7576001600160a01b03610630610bfe565b165f526004602052602060405f2054604051908152f35b346101d7575f3660031901126101d7576020610661610cda565b604051908152f35b346101d7575f3660031901126101d757602060ff60025416604051908152f35b346101d75760603660031901126101d7576106a2610bfe565b6106aa610c14565b6001600160a01b039091165f818152600560209081526040808320338452825290912054604435937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9291856001820161075e575b5050835f52600482526107168560405f2054610e10565b845f526004835260405f205560018060a01b031693845f52600482526107408160405f2054610e69565b855f526004835260405f2055604051908152a3602060405160018152f35b61076791610e10565b5f858152600584526040808220338352855290205585856106ff565b346101d7575f3660031901126101d7576020600354604051908152f35b346101d75760603660031901126101d75760043567ffffffffffffffff81116101d7576107d1903690600401610c4c565b60243567ffffffffffffffff81116101d7576107f1903690600401610c4c565b60443560ff81168091036101d75760ff60095416610a9457825167ffffffffffffffff81116101db576108245f54610ca2565b601f8111610a2d575b506020601f82116001146109c157819293945f926109b6575b50508160011b915f199060031b1c1916175f555b815167ffffffffffffffff81116101db57610876600154610ca2565b601f811161094e575b50602092601f82116001146108e257928192935f926108d7575b50508160011b915f199060031b1c1916176001555b60ff196002541617600255466006556108c5610cf4565b6007556009805460ff19166001179055005b015190508380610899565b601f1982169360015f525f80516020610ee3833981519152915f5b868110610936575083600195961061091e575b505050811b016001556108ae565b01515f1960f88460031b161c19169055838080610910565b919260206001819286850151815501940192016108fd565b60015f52601f820160051c5f80516020610ee38339815191520190602083106109a1575b601f0160051c5f80516020610ee383398151915201905b818110610996575061087f565b5f8155600101610989565b5f80516020610ee38339815191529150610972565b015190508480610846565b601f198216905f80525f80516020610ec3833981519152915f5b818110610a15575095836001959697106109fd575b505050811b015f5561085a565b01515f1960f88460031b161c191690558480806109f0565b9192602060018192868b0151815501940192016109db565b5f8052601f820160051c5f80516020610ec3833981519152019060208310610a7f575b601f0160051c5f80516020610ec383398151915201905b818110610a74575061082d565b5f8155600101610a67565b5f80516020610ec38339815191529150610a50565b60405162461bcd60e51b81526020600482015260136024820152721053149150511657d253925512505312569151606a1b6044820152606490fd5b346101d75760403660031901126101d757610ae8610bfe565b335f8181526005602090815260408083206001600160a01b03909516808452948252918290206024359081905591519182527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a3602060405160018152f35b346101d7575f3660031901126101d7575f8054610b6481610ca2565b80845290600181169081156105b35750600114610b8b576105648361055881850382610c2a565b5f8080525f80516020610ec3833981519152939250905b808210610bba57509091508101602001610558610548565b919260018160209254838588010152019101909291610ba2565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101d757565b602435906001600160a01b03821682036101d757565b90601f8019910116810190811067ffffffffffffffff8211176101db57604052565b81601f820112156101d75780359067ffffffffffffffff82116101db5760405192610c81601f8401601f191660200185610c2a565b828452602083830101116101d757815f926020809301838601378301015290565b90600182811c92168015610cd0575b6020831014610cbc57565b634e487b7160e01b5f52602260045260245ffd5b91607f1691610cb1565b6006544603610ce95760075490565b610cf1610cf4565b90565b6040515f905f549181610d0684610ca2565b9182825260208201946001811690815f14610df45750600114610daa575b610d3092500382610c2a565b51902060405160208101917f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f835260408201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260a08152610da460c082610c2a565b51902090565b505f80805290915f80516020610ec38339815191525b818310610dd8575050906020610d3092820101610d24565b6020919350806001915483858801015201910190918392610dc0565b60ff1916865250610d3092151560051b82016020019050610d24565b90808210610e245781039081116104145790565b60405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f77000000006044820152606490fd5b90810190818111610414578110610e7d5790565b60405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f7700000000000000006044820152606490fdfe290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6a2646970667358221220cfadcb203adc334a34e9ce47b3d70597bb9a4bd76388c1ac8a64c05966e0368b64736f6c634300081a0033