0x60806040523480156200001157600080fd5b5060405162003df638038062003df68339810160408190526200003491620002b8565b6040518060400160405280601681526020017f546865204e4654204d6f6e6b6579205468656f72656d00000000000000000000815250604051806040016040528060048152602001631513935560e21b8152508160029081620000989190620003af565b506003620000a78282620003af565b505050620000c4620000be6200014060201b60201c565b62000144565b620000e4620000db6008546001600160a01b031690565b61012c62000196565b600f80546001600160a01b039384166001600160a01b0319918216179091556010805495841695821695909517909455600e805493831693851693909317909255601191909155600854600d805490931691161790556200047b565b3390565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6127106001600160601b03821611156200020a5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002625760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000201565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b80516001600160a01b0381168114620002b357600080fd5b919050565b60008060008060808587031215620002cf57600080fd5b620002da856200029b565b9350620002ea602086016200029b565b9250620002fa604086016200029b565b6060959095015193969295505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200033557607f821691505b6020821081036200035657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003aa57600081815260208120601f850160051c81016020861015620003855750805b601f850160051c820191505b81811015620003a65782815560010162000391565b5050505b505050565b81516001600160401b03811115620003cb57620003cb6200030a565b620003e381620003dc845462000320565b846200035c565b602080601f8311600181146200041b5760008415620004025750858301515b600019600386901b1c1916600185901b178555620003a6565b600085815260208120601f198616915b828110156200044c578886015182559484019460019091019084016200042b565b50858210156200046b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61396b806200048b6000396000f3fe608060405234801561001057600080fd5b50600436106102485760003560e01c80638da5cb5b1161013b578063d6948b75116100b8578063ee32366c1161007c578063ee32366c1461059e578063f111cff6146105b1578063f2fde38b146105d1578063fc4bafb9146105e4578063fca3b5aa146105f757600080fd5b8063d6948b7514610522578063d8d41ae614610535578063dfec2a6e14610547578063e807e1401461054f578063e985e9c51461056257600080fd5b8063b88d4fde116100ff578063b88d4fde146104b5578063c36a0a76146104c8578063c6604027146104e8578063c87b56dd146104fc578063c93fc83d1461050f57600080fd5b80638da5cb5b1461047857806395d89b4114610489578063a22cb46514610491578063a827346b146104a4578063b539e3df146104ad57600080fd5b80632a55205a116101c95780636352211e1161018d5780636352211e1461043a57806370a082311461044d578063715018a61461046057806376daebe1146104685780638702bccb1461047057600080fd5b80632a55205a146103b957806333020312146103eb5780633d6412da1461040c57806342842e0e146104145780635265e0931461042757600080fd5b8063081812fc11610210578063081812fc146102d9578063095ea7b3146103045780631e688e101461031757806321c663ff1461032457806323b872dd146103a657600080fd5b806301ffc9a71461024d578063044d608e1461027557806305f970ff1461029c57806306fdde03146102af57806307e4744c146102c4575b600080fd5b61026061025b366004612922565b61060a565b60405190151581526020015b60405180910390f35b610288610283366004612946565b61061b565b60405161026c9897969594939291906129af565b6102606102aa366004612a16565b6106f7565b6102b76107d5565b60405161026c9190612a42565b6102d76102d2366004612a6a565b610867565b005b6102ec6102e7366004612946565b610911565b6040516001600160a01b03909116815260200161026c565b6102d7610312366004612a87565b610938565b6012546102609060ff1681565b61036f610332366004612946565b600a6020526000908152604090208054600182015460028301546006909301549192909160ff80831692610100900416906001600160a01b031685565b60408051958652602086019490945260ff928316938501939093521660608301526001600160a01b0316608082015260a00161026c565b6102d76103b4366004612ab3565b610a4d565b6103cc6103c7366004612af4565b610a7e565b604080516001600160a01b03909316835260208301919091520161026c565b6103fe6103f9366004612c17565b610b2a565b60405190815260200161026c565b6102d7610e37565b6102d7610422366004612ab3565b610e91565b6102d7610435366004612946565b610eac565b6102ec610448366004612946565b610eb9565b6103fe61045b366004612a6a565b610f19565b6102d7610f9f565b6102d7610fb3565b6102d7611005565b6008546001600160a01b03166102ec565b6102b761105d565b6102d761049f366004612ced565b61106c565b6103fe60115481565b6102d761107b565b6102d76104c3366004612d8c565b6110d1565b6104db6104d6366004612946565b611109565b60405161026c9190612e68565b601254610260906301000000900460ff1681565b6102b761050a366004612946565b6111a6565b6102d761051d366004612a6a565b6114f2565b610260610530366004612e77565b611595565b60125461026090610100900460ff1681565b6013546103fe565b6103fe61055d366004612f2c565b6115c3565b610260610570366004612feb565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6012546102609062010000900460ff1681565b6105c46105bf366004612946565b611c9c565b60405161026c9190613019565b6102d76105df366004612a6a565b611d02565b6102d76105f2366004612a6a565b611d7b565b6102d7610605366004612a6a565b611e1d565b600061061582611eb9565b92915050565b600b602052600090815260409020805460018201546002830154600e840180549394929360ff909216929161064f9061304f565b80601f016020809104026020016040519081016040528092919081815260200182805461067b9061304f565b80156106c85780601f1061069d576101008083540402835291602001916106c8565b820191906000526020600020905b8154815290600101906020018083116106ab57829003601f168201915b505050600f909301549192505060ff808216916101008104821691620100008204811691630100000090041688565b600061070283611ef9565b6107275760405162461bcd60e51b815260040161071e90613089565b60405180910390fd5b3361073184610eb9565b6001600160a01b0316146107875760405162461bcd60e51b815260206004820152601960248201527f53656e646572206973206e6f7420746f6b656e206f776e657200000000000000604482015260640161071e565b6000838152600b6020526040808220600f01805460ff191660ff86161790555184917ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce791a250600192915050565b6060600280546107e49061304f565b80601f01602080910402602001604051908101604052809291908181526020018280546108109061304f565b801561085d5780601f106108325761010080835404028352916020019161085d565b820191906000526020600020905b81548152906001019060200180831161084057829003601f168201915b5050505050905090565b61086f611f16565b6012546301000000900460ff16156108bc5760405162461bcd60e51b815260206004820152601060248201526f135a5b9d195c881a5cc81b1bd8dad95960821b604482015260640161071e565b600f80546001600160a01b0319166001600160a01b0383169081179091556040519081527ff2e4a4967c6b49b5d56ca301807cf47916747c92c88bf60d8783b40de0e68e11906020015b60405180910390a150565b600061091c82611f70565b506000908152600660205260409020546001600160a01b031690565b600061094382610eb9565b9050806001600160a01b0316836001600160a01b0316036109b05760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161071e565b336001600160a01b03821614806109cc57506109cc8133610570565b610a3e5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161071e565b610a488383611fc0565b505050565b610a57338261202e565b610a735760405162461bcd60e51b815260040161071e906130b8565b610a488383836120ad565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610af35750604080518082019091526000546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610b12906001600160601b03168761311b565b610b1c9190613132565b915196919550909350505050565b600d546000906001600160a01b03163314610b875760405162461bcd60e51b815260206004820152601c60248201527f5468652053656e646572206973206e6f7420746865206d696e74657200000000604482015260640161071e565b6107d08610610bce5760405162461bcd60e51b81526020600482015260136024820152724d6178206d6f6e6b65792049643a203139393960681b604482015260640161071e565b60048560ff1610610c145760405162461bcd60e51b815260206004820152601060248201526f13585e081c9bdd185d1a5bdb9cce880d60821b604482015260640161071e565b60048360ff1610610c565760405162461bcd60e51b815260206004820152600c60248201526b13585e0819591a5d1cce880d60a21b604482015260640161071e565b600160136000828254610c699190613154565b92505081905550610c7c8860135461221e565b601380546000908152600b60205260408082208a9055825482528082206001018990559154815220600f01805460ff191660ff87161790556001600160a01b03841615610dfc57601380546000908152600a60205260408082208a90558254825280822060010189905582548252808220600201805460ff191660ff88161790559154815290812060060180546001600160a01b0319166001600160a01b0387161790555b8360ff16811015610dfa57828160038110610d3e57610d3e613167565b6020020151600a600060135481526020019081526020016000206003018260038110610d6c57610d6c613167565b82519101805460208401516040850151606086015160809096015160ff9081166401000000000264ff000000001997821663010000000263ff0000001993831662010000029390931663ffff0000199483166101000261ffff199096169290971691909117939093179190911693909317929092179290921617905580610df28161317d565b915050610d21565b505b6013546040517ffc0c643a4d387c95958893e25b70aad43b607ce5725b662b680b5a86a4745ca990600090a250601354979650505050505050565b610e3f611f16565b6012805461ff001916610100179055600c546040516001600160a01b0390911681527fc0fcde2f7c54f2e41056a2c5fcc6d5931aaef1f1ee8cbe3bcc30196b3fa46bfa906020015b60405180910390a1565b610a48838383604051806020016040528060008152506110d1565b610eb4611f16565b601155565b6000818152600460205260408120546001600160a01b0316806106155760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161071e565b60006001600160a01b038216610f835760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b606482015260840161071e565b506001600160a01b031660009081526005602052604090205490565b610fa7611f16565b610fb16000612238565b565b610fbb611f16565b6012805460ff19166001179055600d546040516001600160a01b0390911681527f829ab796e44901768b079cf8bb0a905662acc5db8783a8aafc5905e27a31e49e90602001610e87565b61100d611f16565b6012805463ff00000019166301000000179055600f546040516001600160a01b0390911681527f056edbcad6c161eea73976ce9c77628656ef059acf4cbf18b022b16cc65c297a90602001610e87565b6060600380546107e49061304f565b61107733838361228a565b5050565b611083611f16565b6012805462ff0000191662010000179055600c546040516001600160a01b0390911681527ff135016729883b2add1958cdbeca9e5c0015bdfce4a43f4a7cd1dea82ee586b890602001610e87565b6110db338361202e565b6110f75760405162461bcd60e51b815260040161071e906130b8565b61110384848484612358565b50505050565b6111116127f4565b6000828152600a6020526040808220815160608101909252909160039182019190835b8282101561119b576040805160a0810182528386015460ff8082168352610100820481166020808501919091526201000083048216948401949094526301000000820481166060840152640100000000909104166080820152825260019092019101611134565b505050509050919050565b60606111b182611ef9565b6111cd5760405162461bcd60e51b815260040161071e90613089565b601c821080156111f657506000828152600b60205260409020600f01546301000000900460ff16155b1561126c57600e5460405163c87b56dd60e01b8152600481018490526001600160a01b039091169063c87b56dd90602401600060405180830381865afa158015611244573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261061591908101906131c6565b6000828152600b6020908152604091829020825160e081018452606060c0820181905282548252600183015493820193909352600282015460ff90811694820194909452600f82015480851693820193909352610100830484161515608082015262010000909204909216151560a0820152600e820180546112ed9061304f565b80601f01602080910402602001604051908101604052809291908181526020018280546113199061304f565b80156113665780601f1061133b57610100808354040283529160200191611366565b820191906000526020600020905b81548152906001019060200180831161134957829003601f168201915b5050505060c080840192909252506000858152600a602090815260408083208151948501825280548552600181015492850192909252600282015460ff80821686840152610100909104166060808601919091528151908101909152919291608083019060038084019086835b8282101561143a576040805160a0810182528386015460ff80821683526101008204811660208085019190915262010000830482169484019490945263010000008204811660608401526401000000009091041660808201528252600190920191016113d3565b50505090825250600691909101546001600160a01b039081166020928301526010546000898152600b8452604080822060099095528082209051631e422e0960e11b815295965090949190921692633c845c12926114a39288926003019190889060040161354b565b600060405180830381865afa1580156114c0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114e891908101906131c6565b9695505050505050565b6114fa611f16565b601254610100900460ff16156115475760405162461bcd60e51b815260206004820152601260248201527114dc1b1a5d1d195c881a5cc81b1bd8dad95960721b604482015260640161071e565b600c80546001600160a01b0319166001600160a01b0383169081179091556040519081527fa941edf4db5b03d4d142b22141cd036faf00086a61e712527ef632e07d2ed1cb90602001610906565b600061159f611f16565b6115ba6115b46008546001600160a01b031690565b8361238b565b5060015b919050565b600f546000906001600160a01b031633146116205760405162461bcd60e51b815260206004820181905260248201527f5468652053656e646572206973206e6f74207468652064617461507573686572604482015260640161071e565b61162989611ef9565b6116455760405162461bcd60e51b815260040161071e90613089565b60008860ff1611801561165b5750600b8860ff16105b61169a5760405162461bcd60e51b815260206004820152601060248201526f0436f6c6f72733a2031202e2e2e2031360841b604482015260640161071e565b6000898152600b602052604090206001015487146116ec5760405162461bcd60e51b815260206004820152600f60248201526e15dc9bdb99c8135bdb9ad95e481259608a1b604482015260640161071e565b6000898152600b60205260409020600f01546301000000900460ff1615801561172e57506000898152600a60205260409020600601546001600160a01b031615155b156119bf5760105460115460008b8152600a6020526040808220600281015491516343f7af6d60e11b815292946001600160a01b0316936387ef5eda9361178593919260ff90921691600301908a906004016135f3565b6020604051808303816000875af11580156117a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117c891906136d5565b1561186957600c5460008b8152600b6020908152604080832054600a9092529182902060060154915163b442b3e760e01b815260048101919091526001600160a01b03918216602482015291169063b442b3e7906044016020604051808303816000875af115801561183e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186291906136d5565b9050611960565b600c5460008b8152600b6020908152604080832054600a9092529182902060060154915163aa49e9b560e01b815260048101919091526001600160a01b03918216602482015291169063aa49e9b5906044016020604051808303816000875af11580156118da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fe91906136d5565b60008b8152600a60205260408120818155600181019190915560028101805461ffff1916905560038101805464ffffffffff1990811690915560048201805482169055600582018054909116905560060180546001600160a01b031916905590505b806119bd5760405162461bcd60e51b815260206004820152602760248201527f536f6d657468696e672077656e742077726f6e672072656c656173696e67207060448201526661796d656e747360c81b606482015260840161071e565b505b60005b8860ff168160ff161015611aff57600a848260ff16600b81106119e7576119e7613167565b60200201515160ff1610611a2d5760405162461bcd60e51b815260206004820152600d60248201526c436f6c6f722049643a20302d3960981b604482015260640161071e565b838160ff16600b8110611a4257611a42613167565b6020020151600b60008c81526020019081526020016000206003018260ff16600b8110611a7157611a71613167565b82519101805460208401516040850151606086015160809096015160ff9081166401000000000264ff000000001997821663010000000263ff0000001993831662010000029390931663ffff0000199483166101000261ffff199096169290971691909117939093179190911693909317929092179290921617905580611af7816136f2565b9150506119c2565b506040805160008152602081018083528151902091611b2091879101613711565b6040516020818303038152906040528051906020012014611bd15761014083015160008a8152600b60205260409020600301600a82519101805460208401516040850151606086015160809096015160ff9081166401000000000264ff000000001997821663010000000263ff0000001993831662010000029390931663ffff0000199483166101000261ffff19909616929097169190911793909317919091169390931792909217929092161790555b6000898152600b6020526040902060028101805460ff191660ff8b1617905560018101889055600f8101805462ffff0019166101008915150262ff00001916176201000088151502179055600e01611c29858261377b565b506000898152600b60209081526040808320600f01805463ff0000001916630100000017905560099091529020611c639083610400612841565b5060405189907ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790600090a25096979650505050505050565b611ca46128d7565b6000828152600960205260408082208151618000810192839052929091610400918390855b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611cc9575094979650505050505050565b611d0a611f16565b6001600160a01b038116611d6f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161071e565b611d7881612238565b50565b611d83611f16565b60125462010000900460ff1615611dcf5760405162461bcd60e51b815260206004820152601060248201526f14dd99d1d95b881a5cc81b1bd8dad95960821b604482015260640161071e565b601080546001600160a01b0319166001600160a01b0383169081179091556040519081527fdbe1b904298079e0bfaf81fbe9c053e75466018ac12ef08f93f74d31e9f9d18590602001610906565b611e25611f16565b60125460ff1615611e6b5760405162461bcd60e51b815260206004820152601060248201526f135a5b9d195c881a5cc81b1bd8dad95960821b604482015260640161071e565b600d80546001600160a01b0319166001600160a01b0383169081179091556040519081527fad0f299ec81a386c98df0ac27dae11dd020ed1b56963c53a7292e7a3a314539a90602001610906565b60006001600160e01b031982166380ac58cd60e01b1480611eea57506001600160e01b03198216635b5e139f60e01b145b80610615575061061582612488565b6000908152600460205260409020546001600160a01b0316151590565b6008546001600160a01b03163314610fb15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161071e565b611f7981611ef9565b611d785760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b604482015260640161071e565b600081815260066020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611ff582610eb9565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061203a83610eb9565b9050806001600160a01b0316846001600160a01b0316148061208157506001600160a01b0380821660009081526007602090815260408083209388168352929052205460ff165b806120a55750836001600160a01b031661209a84610911565b6001600160a01b0316145b949350505050565b826001600160a01b03166120c082610eb9565b6001600160a01b0316146120e65760405162461bcd60e51b815260040161071e9061383b565b6001600160a01b0382166121485760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161071e565b61215583838360016124bd565b826001600160a01b031661216882610eb9565b6001600160a01b03161461218e5760405162461bcd60e51b815260040161071e9061383b565b600081815260066020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260058552838620805460001901905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b611077828260405180602001604052806000815250612545565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036122eb5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161071e565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6123638484846120ad565b61236f84848484612578565b6111035760405162461bcd60e51b815260040161071e90613880565b6127106001600160601b03821611156123f95760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b606482015260840161071e565b6001600160a01b03821661244f5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161071e565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b60006001600160e01b0319821663152a902d60e11b148061061557506301ffc9a760e01b6001600160e01b0319831614610615565b6001811115611103576001600160a01b03841615612503576001600160a01b038416600090815260056020526040812080548392906124fd9084906138d2565b90915550505b6001600160a01b03831615611103576001600160a01b0383166000908152600560205260408120805483929061253a908490613154565b909155505050505050565b61254f8383612679565b61255c6000848484612578565b610a485760405162461bcd60e51b815260040161071e90613880565b60006001600160a01b0384163b1561266e57604051630a85bd0160e11b81526001600160a01b0385169063150b7a02906125bc9033908990889088906004016138e5565b6020604051808303816000875af19250505080156125f7575060408051601f3d908101601f191682019092526125f491810190613918565b60015b612654573d808015612625576040519150601f19603f3d011682016040523d82523d6000602084013e61262a565b606091505b50805160000361264c5760405162461bcd60e51b815260040161071e90613880565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490506120a5565b506001949350505050565b6001600160a01b0382166126cf5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161071e565b6126d881611ef9565b156127255760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161071e565b6127336000838360016124bd565b61273c81611ef9565b156127895760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161071e565b6001600160a01b038216600081815260056020908152604080832080546001019055848352600490915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60405180606001604052806003905b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282526000199092019101816128035790505090565b6020830191839082156128c75791602002820160005b8382111561289857833560ff1683826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302612857565b80156128c55782816101000a81549060ff0219169055600101602081600001049283019260010302612898565b505b506128d39291506128f7565b5090565b604051806180000160405280610400906020820280368337509192915050565b5b808211156128d357600081556001016128f8565b6001600160e01b031981168114611d7857600080fd5b60006020828403121561293457600080fd5b813561293f8161290c565b9392505050565b60006020828403121561295857600080fd5b5035919050565b60005b8381101561297a578181015183820152602001612962565b50506000910152565b6000815180845261299b81602086016020860161295f565b601f01601f19169290920160200192915050565b60006101008a835289602084015260ff891660408401528060608401526129d881840189612983565b60ff979097166080840152505092151560a084015290151560c0830152151560e090910152949350505050565b803560ff811681146115be57600080fd5b60008060408385031215612a2957600080fd5b82359150612a3960208401612a05565b90509250929050565b60208152600061293f6020830184612983565b6001600160a01b0381168114611d7857600080fd5b600060208284031215612a7c57600080fd5b813561293f81612a55565b60008060408385031215612a9a57600080fd5b8235612aa581612a55565b946020939093013593505050565b600080600060608486031215612ac857600080fd5b8335612ad381612a55565b92506020840135612ae381612a55565b929592945050506040919091013590565b60008060408385031215612b0757600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715612b4f57612b4f612b16565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715612b7e57612b7e612b16565b604052919050565b600060a08284031215612b9857600080fd5b60405160a0810181811067ffffffffffffffff82111715612bbb57612bbb612b16565b604052905080612bca83612a05565b8152612bd860208401612a05565b6020820152612be960408401612a05565b6040820152612bfa60608401612a05565b6060820152612c0b60808401612a05565b60808201525092915050565b60008060008060008060006102a080898b031215612c3457600080fd5b8835612c3f81612a55565b9750602089810135975060408a01359650612c5c60608b01612a05565b955060808a0135612c6c81612a55565b945060a0612c7b8b8201612a05565b94508b60df8c0112612c8c57600080fd5b612c94612b2c565b928b0192808d851115612ca657600080fd5b60c08d015b85811015612cca57612cbd8f82612b86565b8352918401918301612cab565b50809550505050505092959891949750929550565b8015158114611d7857600080fd5b60008060408385031215612d0057600080fd5b8235612d0b81612a55565b91506020830135612d1b81612cdf565b809150509250929050565b600067ffffffffffffffff821115612d4057612d40612b16565b50601f01601f191660200190565b6000612d61612d5c84612d26565b612b55565b9050828152838383011115612d7557600080fd5b828260208301376000602084830101529392505050565b60008060008060808587031215612da257600080fd5b8435612dad81612a55565b93506020850135612dbd81612a55565b925060408501359150606085013567ffffffffffffffff811115612de057600080fd5b8501601f81018713612df157600080fd5b612e0087823560208401612d4e565b91505092959194509250565b8060005b6003811015611103578151805160ff9081168652602080830151821690870152604080830151821690870152606080830151821690870152608091820151169085015260a08401935060209190910190600101612e10565b6101e081016106158284612e0c565b600060208284031215612e8957600080fd5b81356001600160601b038116811461293f57600080fd5b600082601f830112612eb157600080fd5b604051610160810181811067ffffffffffffffff82111715612ed557612ed5612b16565b604052806106e0840185811115612eeb57600080fd5b845b81811015612f0f57612eff8782612b86565b835260209092019160a001612eed565b509195945050505050565b80618000810183101561061557600080fd5b6000806000806000806000806187a0898b031215612f4957600080fd5b88359750612f5960208a01612a05565b9650604089013595506060890135612f7081612cdf565b94506080890135612f8081612cdf565b935060a089013567ffffffffffffffff811115612f9c57600080fd5b8901601f81018b13612fad57600080fd5b612fbc8b823560208401612d4e565b935050612fcc8a60c08b01612ea0565b9150612fdc8a6107a08b01612f1a565b90509295985092959890939650565b60008060408385031215612ffe57600080fd5b823561300981612a55565b91506020830135612d1b81612a55565b6180008101818360005b61040081101561304657815160ff16835260209283019290910190600101613023565b50505092915050565b600181811c9082168061306357607f821691505b60208210810361308357634e487b7160e01b600052602260045260246000fd5b50919050565b602080825260159082015274546f6b656e20646f6573206e6f742065786973747360581b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761061557610615613105565b60008261314f57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561061557610615613105565b634e487b7160e01b600052603260045260246000fd5b60006001820161318f5761318f613105565b5060010190565b60006131a4612d5c84612d26565b90508281528383830111156131b857600080fd5b61293f83602083018461295f565b6000602082840312156131d857600080fd5b815167ffffffffffffffff8111156131ef57600080fd5b8201601f8101841361320057600080fd5b6120a584825160208401613196565b8060005b600b81101561110357815460ff8082168652600882901c8116602080880191909152601083901c82166040880152601883901c821660608801529190911c16608085015260a08401935060019182019101613213565b8060005b61040080601f8301106132805750611103565b825460ff8082168752602061329e818901838560081c1660ff169052565b60406132b3818a01848660101c1660ff169052565b60606132c8818b01858760181c1660ff169052565b60806132dc818c018688871c1660ff169052565b60a093506132f3848c01868860281c1660ff169052565b60c0613308818d01878960301c1660ff169052565b60e061331d818e01888a60381c1660ff169052565b60ff88861c8816166101008e01526133406101208e01888a60481c1660ff169052565b6133556101408e01888a60501c1660ff169052565b61336a6101608e01888a60581c1660ff169052565b60ff88851c8816166101808e015261338d6101a08e01888a60681c1660ff169052565b6133a26101c08e01888a60701c1660ff169052565b6133b76101e08e01888a60781c1660ff169052565b60ff88841c8816166102008e01526133da6102208e01888a60881c1660ff169052565b6133ef6102408e01888a60901c1660ff169052565b6134046102608e01888a60981c1660ff169052565b60ff88871c8816166102808e01526134276102a08e01888a60a81c1660ff169052565b61343c6102c08e01888a60b01c1660ff169052565b6134516102e08e01888a60b81c1660ff169052565b60ff88831c8816166103008e01526134746103208e01888a60c81c1660ff169052565b6134896103408e01888a60d01c1660ff169052565b61349e6103608e01888a60d81c1660ff169052565b60ff88821c8816166103808e01525050505050506134c76103a08801828460e81c1660ff169052565b6134dc6103c08801828460f01c1660ff169052565b5060f81c6103e0860152909301926001919091019060200161326d565b805182526020810151602083015260ff604082015116604083015260ff606082015116606083015260808101516135336080840182612e0c565b5060a001516001600160a01b03166102609190910152565b60006189808083528651818401525060208601516189a083015260ff6040870151166189c083015260ff6060870151166189e083015260808601511515618a0083015260a08601516135a2618a2084018215159052565b5060c086015160e0618a408401526135be618a60840182612983565b9150506135ce602083018661320f565b6135dc610700830185613269565b6135ea6187008301846134f9565b95945050505050565b600061090082019050858252602060ff861681840152604083018560005b600381101561366757815460ff8082168552600882901c8116602080870191909152601083901c82166040870152601883901c821660608701529190911c16608084015260a08301925060019182019101613611565b50505061022083018460005b600b8110156136c8578151805160ff9081168552602080830151821690860152604080830151821690860152606080830151821690860152608091820151169084015260a08301925090830190600101613673565b5050505095945050505050565b6000602082840312156136e757600080fd5b815161293f81612cdf565b600060ff821660ff810361370857613708613105565b60010192915050565b6000825161372381846020870161295f565b9190910192915050565b601f821115610a4857600081815260208120601f850160051c810160208610156137545750805b601f850160051c820191505b8181101561377357828155600101613760565b505050505050565b815167ffffffffffffffff81111561379557613795612b16565b6137a9816137a3845461304f565b8461372d565b602080601f8311600181146137de57600084156137c65750858301515b600019600386901b1c1916600185901b178555613773565b600085815260208120601f198616915b8281101561380d578886015182559484019460019091019084016137ee565b508582101561382b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b8181038181111561061557610615613105565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906114e890830184612983565b60006020828403121561392a57600080fd5b815161293f8161290c56fea264697066735822122053de4fdd8b225b291996abb8b0a15245eb3ee5df672d146a574185811e7eaf2564736f6c63430008120033000000000000000000000000c2aff2011f46b0dc1be708cf52cf7b3877da06510000000000000000000000004cd1451728411521ad9e27bc9537ed6aba5db6d90000000000000000000000002b208cc03043c7eb4bcf6fa2292f51be6225db900000000000000000000000000000000000000000000000000000000000000064