60806040526003600b556001600c556005600d55600a600e556000600f5560006010556107d06011553480156200003557600080fd5b50604051620039f7380380620039f78339810160408190526200005891620003ed565b604080518082018252601581527f507265736964656e74204461766f204e6174696f6e000000000000000000000060208083019182528351808501909452600384526228222760e91b908401528151733cc6cdda760b79bafa08df41ecfa224f810dceb693600193929091620000d19160029162000331565b508051620000e790600390602084019062000331565b50600160005550506daaeb6d7670e522a718067333cd4e3b15620002345780156200018257604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200016357600080fd5b505af115801562000178573d6000803e3d6000fd5b5050505062000234565b6001600160a01b03821615620001d35760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af29039060440162000148565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200021a57600080fd5b505af11580156200022f573d6000803e3d6000fd5b505050505b506200024490506000336200027d565b600980546001600160a01b0319166001600160a01b03841617905580516200027490600a90602084019062000331565b50505062000529565b6200028982826200028d565b5050565b60008281526008602090815260408083206001600160a01b038516845290915290205460ff16620002895760008281526008602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620002ed3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b8280546200033f90620004ed565b90600052602060002090601f016020900481019282620003635760008555620003ae565b82601f106200037e57805160ff1916838001178555620003ae565b82800160010185558215620003ae579182015b82811115620003ae57825182559160200191906001019062000391565b50620003bc929150620003c0565b5090565b5b80821115620003bc5760008155600101620003c1565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156200040157600080fd5b82516001600160a01b03811681146200041957600080fd5b602084810151919350906001600160401b03808211156200043957600080fd5b818601915086601f8301126200044e57600080fd5b815181811115620004635762000463620003d7565b604051601f8201601f19908116603f011681019083821181831017156200048e576200048e620003d7565b816040528281528986848701011115620004a757600080fd5b600093505b82841015620004cb5784840186015181850187015292850192620004ac565b82841115620004dd5760008684830101525b8096505050505050509250929050565b600181811c908216806200050257607f821691505b6020821081036200052357634e487b7160e01b600052602260045260246000fd5b50919050565b6134be80620005396000396000f3fe6080604052600436106103c65760003560e01c80637ad71f72116101f2578063ce6df2b91161010d578063eb980abf116100a0578063f43303681161006f578063f433036814610b0d578063f43a22dc14610b23578063fb4bcd4f14610b39578063fe77dca914610b5957600080fd5b8063eb980abf14610a80578063edc9a64714610aa0578063f008db8014610acd578063f103b43314610aed57600080fd5b8063d54d0b88116100dc578063d54d0b88146109e2578063db42ab2514610a02578063dee2accc14610a17578063e985e9c514610a3757600080fd5b8063ce6df2b91461095b578063d2cab0561461097b578063d53913931461098e578063d547741f146109c257600080fd5b8063a5ce30d211610185578063bd32fb6611610154578063bd32fb66146108f0578063c1439c5e14610910578063c87b56dd14610926578063cd10ba771461094657600080fd5b8063a5ce30d214610891578063aa98e0c6146108a7578063ac2f2f4e146108bd578063b88d4fde146108dd57600080fd5b806399e0d742116101c157806399e0d74214610822578063a217fddf14610842578063a22cb46514610857578063a4435dfd1461087757600080fd5b80637ad71f72146107a057806391d14854146107c057806395d89b41146107e057806398a8cffe146107f557600080fd5b806336568abe116102e257806342842e0e116102755780636352211e116102445780636352211e146107295780636c0360eb1461074957806370a082311461075e57806375b238fc1461077e57600080fd5b806342842e0e146106d55780634da09aa0146106e85780634efca9fe146106fe578063594654191461071357600080fd5b80633c530256116102b15780633c5302561461065e5780633ccfd60b1461067e5780633fd9d9821461069357806341f43434146106b357600080fd5b806336568abe146105e857806339e69b1e1461060857806339f7e37f146106285780633a98ef391461064857600080fd5b806318f52c481161035a578063248a9ca311610329578063248a9ca31461056f5780632db115441461059f5780632f2ff15d146105b257806332cb6b0c146105d257600080fd5b806318f52c48146104f057806319ec4b4e1461050f57806321a104221461052f57806323b872dd1461055c57600080fd5b8063081812fc11610396578063081812fc1461046b578063095ea7b3146104a357806310266687146104b657806318160ddd146104c957600080fd5b8062728e46146103d257806301ffc9a7146103f457806306fdde03146104295780630808da041461044b57600080fd5b366103cd57005b600080fd5b3480156103de57600080fd5b506103f26103ed366004612bdc565b610b6f565b005b34801561040057600080fd5b5061041461040f366004612c0b565b610bb3565b60405190151581526020015b60405180910390f35b34801561043557600080fd5b5061043e610bde565b6040516104209190612c80565b34801561045757600080fd5b506103f2610466366004612d85565b610c70565b34801561047757600080fd5b5061048b610486366004612bdc565b610d64565b6040516001600160a01b039091168152602001610420565b6103f26104b1366004612e45565b610da8565b6103f26104c4366004612ebb565b610e71565b3480156104d557600080fd5b5060015460005403600019015b604051908152602001610420565b3480156104fc57600080fd5b5060175461041490610100900460ff1681565b34801561051b57600080fd5b506017546104149062010000900460ff1681565b34801561053b57600080fd5b506104e261054a366004612f07565b60156020526000908152604090205481565b6103f261056a366004612f22565b610f8d565b34801561057b57600080fd5b506104e261058a366004612bdc565b60009081526008602052604090206001015490565b6103f26105ad366004612bdc565b611060565b3480156105be57600080fd5b506103f26105cd366004612f5e565b6112c4565b3480156105de57600080fd5b506104e260115481565b3480156105f457600080fd5b506103f2610603366004612f5e565b6112e9565b34801561061457600080fd5b506103f2610623366004612f07565b611363565b34801561063457600080fd5b506103f2610643366004612fe2565b6113bb565b34801561065457600080fd5b506104e2601a5481565b34801561066a57600080fd5b506103f2610679366004612bdc565b611403565b34801561068a57600080fd5b506103f261143e565b34801561069f57600080fd5b506103f26106ae366004612bdc565b611544565b3480156106bf57600080fd5b5061048b6daaeb6d7670e522a718067333cd4e81565b6103f26106e3366004612f22565b61157f565b3480156106f457600080fd5b506104e260105481565b34801561070a57600080fd5b506103f261164d565b34801561071f57600080fd5b506104e2600d5481565b34801561073557600080fd5b5061048b610744366004612bdc565b6116a0565b34801561075557600080fd5b5061043e6116ab565b34801561076a57600080fd5b506104e2610779366004612f07565b611739565b34801561078a57600080fd5b506104e260008051602061346983398151915281565b3480156107ac57600080fd5b5061048b6107bb366004612bdc565b611788565b3480156107cc57600080fd5b506104146107db366004612f5e565b6117b2565b3480156107ec57600080fd5b5061043e6117dd565b34801561080157600080fd5b506104e2610810366004612f07565b60136020526000908152604090205481565b34801561082e57600080fd5b506103f261083d366004612bdc565b6117ec565b34801561084e57600080fd5b506104e2600081565b34801561086357600080fd5b506103f2610872366004613039565b611827565b34801561088357600080fd5b506017546104149060ff1681565b34801561089d57600080fd5b506104e260145481565b3480156108b357600080fd5b506104e260125481565b3480156108c957600080fd5b5060095461048b906001600160a01b031681565b6103f26108eb366004613070565b6118eb565b3480156108fc57600080fd5b506103f261090b366004612bdc565b6119c7565b34801561091c57600080fd5b506104e2600b5481565b34801561093257600080fd5b5061043e610941366004612bdc565b611a02565b34801561095257600080fd5b506103f2611a86565b34801561096757600080fd5b506103f2610976366004612e45565b611ad0565b6103f2610989366004612ebb565b611bd9565b34801561099a57600080fd5b506104e27f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b3480156109ce57600080fd5b506103f26109dd366004612f5e565b611d40565b3480156109ee57600080fd5b506103f26109fd366004612bdc565b611d65565b348015610a0e57600080fd5b506103f2611da0565b348015610a2357600080fd5b506104e2610a32366004612bdc565b611df5565b348015610a4357600080fd5b50610414610a523660046130ec565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610a8c57600080fd5b506103f2610a9b366004612bdc565b611e16565b348015610aac57600080fd5b506104e2610abb366004612f07565b60166020526000908152604090205481565b348015610ad957600080fd5b50610414610ae8366004613116565b611e51565b348015610af957600080fd5b506103f2610b08366004612bdc565b611e6a565b348015610b1957600080fd5b506104e2600f5481565b348015610b2f57600080fd5b506104e2600e5481565b348015610b4557600080fd5b506103f2610b54366004612bdc565b611ea5565b348015610b6557600080fd5b506104e2600c5481565b600080516020613469833981519152610b8881336117b2565b610bad5760405162461bcd60e51b8152600401610ba490613170565b60405180910390fd5b50600f55565b60006001600160e01b0319821663da8def7360e01b1480610bd85750610bd882611ee0565b92915050565b606060028054610bed906131a7565b80601f0160208091040260200160405190810160405280929190818152602001828054610c19906131a7565b8015610c665780601f10610c3b57610100808354040283529160200191610c66565b820191906000526020600020905b815481529060010190602001808311610c4957829003601f168201915b5050505050905090565b600080516020613469833981519152610c8981336117b2565b610ca55760405162461bcd60e51b8152600401610ba490613170565b8151835114610ce25760405162461bcd60e51b81526020600482015260096024820152681b9bdd08195c5d585b60ba1b6044820152606401610ba4565b8251610cf5906018906020860190612ab4565b508151610d09906019906020850190612b19565b506000601a8190555b8251811015610d5e57828181518110610d2d57610d2d6131e1565b6020026020010151601a6000828254610d46919061320d565b90915550819050610d5681613225565b915050610d12565b50505050565b6000610d6f82611f15565b610d8c576040516333d1c03960e21b815260040160405180910390fd5b506000908152600660205260409020546001600160a01b031690565b816daaeb6d7670e522a718067333cd4e3b15610e6257604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015610e16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3a919061323e565b610e6257604051633b79c77360e21b81526001600160a01b0382166004820152602401610ba4565b610e6c8383611f4a565b505050565b60175462010000900460ff16610e995760405162461bcd60e51b8152600401610ba49061325b565b610ea7336014548484611fea565b610ee95760405162461bcd60e51b8152602060048201526013602482015272223937b81d1034b73b30b634b210383937b7b360691b6044820152606401610ba4565b600c5433600090815260156020526040902054610f0790859061320d565b1115610f255760405162461bcd60e51b8152600401610ba490613288565b60115483610f366000546000190190565b610f40919061320d565b1115610f5e5760405162461bcd60e51b8152600401610ba4906132cc565b3360009081526015602052604081208054859290610f7d90849061320d565b90915550610e6c90503384612070565b826daaeb6d7670e522a718067333cd4e3b1561105557336001600160a01b03821603610fc357610fbe84848461208a565b610d5e565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611012573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611036919061323e565b61105557604051633b79c77360e21b8152336004820152602401610ba4565b610d5e84848461208a565b60175460ff166110825760405162461bcd60e51b8152600401610ba49061325b565b6009546040516370a0823160e01b81523360048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa1580156110cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ef9190613303565b9050600081116111415760405162461bcd60e51b815260206004820152601a60248201527f4e6f2046697273742044726f70204e465420486f6c64696e672e0000000000006044820152606401610ba4565b808211156111855760405162461bcd60e51b8152602060048201526011602482015270195e18d95959081b5a5b9d081b1a5b5a5d607a1b6044820152606401610ba4565b601154826111966000546000190190565b6111a0919061320d565b11156111be5760405162461bcd60e51b8152600401610ba4906132cc565b3360009081526016602052604090205481906111db90849061320d565b11156112355760405162461bcd60e51b8152602060048201526024808201527f44726f703a206d6178206c696d697420706572206164647265737320657863656044820152631959195960e21b6064820152608401610ba4565b34600f5483611244919061331c565b146112915760405162461bcd60e51b815260206004820152601d60248201527f44726f703a20496e76616c69642066756e64732070726f76696465642e0000006044820152606401610ba4565b33600090815260166020526040812080548492906112b090849061320d565b909155506112c090503383612070565b5050565b6000828152600860205260409020600101546112df81612222565b610e6c838361222f565b6001600160a01b03811633146113595760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610ba4565b6112c082826122b5565b60008051602061346983398151915261137c81336117b2565b6113985760405162461bcd60e51b8152600401610ba490613170565b50600980546001600160a01b0319166001600160a01b0392909216919091179055565b6000805160206134698339815191526113d481336117b2565b6113f05760405162461bcd60e51b8152600401610ba490613170565b8151610e6c90600a906020850190612b54565b60008051602061346983398151915261141c81336117b2565b6114385760405162461bcd60e51b8152600401610ba490613170565b50600e55565b60008051602061346983398151915261145781336117b2565b6114735760405162461bcd60e51b8152600401610ba490613170565b600047116114b85760405162461bcd60e51b81526020600482015260126024820152716e6f2065746820746f20776974686472617760701b6044820152606401610ba4565b4760005b601954811015610e6c576000601a54601983815481106114de576114de6131e1565b9060005260206000200154846114f4919061331c565b6114fe919061333b565b905061153160188381548110611516576115166131e1565b6000918252602090912001546001600160a01b03168261231c565b508061153c81613225565b9150506114bc565b60008051602061346983398151915261155d81336117b2565b6115795760405162461bcd60e51b8152600401610ba490613170565b50600c55565b826daaeb6d7670e522a718067333cd4e3b1561164257336001600160a01b038216036115b057610fbe848484612435565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa1580156115ff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611623919061323e565b61164257604051633b79c77360e21b8152336004820152602401610ba4565b610d5e848484612435565b60008051602061346983398151915261166681336117b2565b6116825760405162461bcd60e51b8152600401610ba490613170565b506017805461ff001981166101009182900460ff1615909102179055565b6000610bd882612450565b600a80546116b8906131a7565b80601f01602080910402602001604051908101604052809291908181526020018280546116e4906131a7565b80156117315780601f1061170657610100808354040283529160200191611731565b820191906000526020600020905b81548152906001019060200180831161171457829003601f168201915b505050505081565b60006001600160a01b038216611762576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b031660009081526005602052604090205467ffffffffffffffff1690565b6018818154811061179857600080fd5b6000918252602090912001546001600160a01b0316905081565b60009182526008602090815260408084206001600160a01b0393909316845291905290205460ff1690565b606060038054610bed906131a7565b60008051602061346983398151915261180581336117b2565b6118215760405162461bcd60e51b8152600401610ba490613170565b50600b55565b816daaeb6d7670e522a718067333cd4e3b156118e157604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611895573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b9919061323e565b6118e157604051633b79c77360e21b81526001600160a01b0382166004820152602401610ba4565b610e6c83836124bf565b836daaeb6d7670e522a718067333cd4e3b156119b457336001600160a01b038216036119225761191d8585858561252b565b6119c0565b604051633185c44d60e21b81523060048201523360248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015611971573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611995919061323e565b6119b457604051633b79c77360e21b8152336004820152602401610ba4565b6119c08585858561252b565b5050505050565b6000805160206134698339815191526119e081336117b2565b6119fc5760405162461bcd60e51b8152600401610ba490613170565b50601255565b6060611a0d82611f15565b611a2a57604051630a14c4b560e41b815260040160405180910390fd5b6000611a3461256f565b90508051600003611a545760405180602001604052806000815250611a7f565b80611a5e8461257e565b604051602001611a6f92919061335d565b6040516020818303038152906040525b9392505050565b600080516020613469833981519152611a9f81336117b2565b611abb5760405162461bcd60e51b8152600401610ba490613170565b506017805460ff19811660ff90911615179055565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6611afb81336117b2565b611b175760405162461bcd60e51b8152600401610ba490613170565b60175460ff16611b395760405162461bcd60e51b8152600401610ba49061325b565b60115482611b4a6000546000190190565b611b54919061320d565b1115611b725760405162461bcd60e51b8152600401610ba4906132cc565b600e54821115611bcf5760405162461bcd60e51b815260206004820152602260248201527f44726f703a2045786365656473206d617820706572207472616e73616374696f604482015261371760f11b6064820152608401610ba4565b610e6c8383612070565b601754610100900460ff16611c005760405162461bcd60e51b8152600401610ba49061325b565b611c0e336012548484611fea565b611c505760405162461bcd60e51b8152602060048201526013602482015272223937b81d1034b73b30b634b210383937b7b360691b6044820152606401610ba4565b600b5433600090815260136020526040902054611c6e90859061320d565b1115611c8c5760405162461bcd60e51b8152600401610ba490613288565b60115483611c9d6000546000190190565b611ca7919061320d565b1115611cc55760405162461bcd60e51b8152600401610ba4906132cc565b3460105484611cd4919061331c565b14611d215760405162461bcd60e51b815260206004820152601d60248201527f44726f703a20496e76616c69642066756e64732070726f76696465642e0000006044820152606401610ba4565b3360009081526013602052604081208054859290610f7d90849061320d565b600082815260086020526040902060010154611d5b81612222565b610e6c83836122b5565b600080516020613469833981519152611d7e81336117b2565b611d9a5760405162461bcd60e51b8152600401610ba490613170565b50600d55565b600080516020613469833981519152611db981336117b2565b611dd55760405162461bcd60e51b8152600401610ba490613170565b506017805462ff0000198116620100009182900460ff1615909102179055565b60198181548110611e0557600080fd5b600091825260209091200154905081565b600080516020613469833981519152611e2f81336117b2565b611e4b5760405162461bcd60e51b8152600401610ba490613170565b50601055565b6000611e5f85858585611fea565b90505b949350505050565b600080516020613469833981519152611e8381336117b2565b611e9f5760405162461bcd60e51b8152600401610ba490613170565b50601155565b600080516020613469833981519152611ebe81336117b2565b611eda5760405162461bcd60e51b8152600401610ba490613170565b50601455565b60006001600160e01b03198216637965db0b60e01b1480610bd857506301ffc9a760e01b6001600160e01b0319831614610bd8565b600081600111158015611f29575060005482105b8015610bd8575050600090815260046020526040902054600160e01b161590565b6000611f55826116a0565b9050336001600160a01b03821614611f8e57611f718133610a52565b611f8e576040516367d9dca160e11b815260040160405180910390fd5b60008281526006602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6040516bffffffffffffffffffffffff19606086901b16602082015260009081906034016040516020818303038152906040528051906020012090506120668484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152508992508591506125c29050565b9695505050505050565b6112c08282604051806020016040528060008152506125cf565b600061209582612450565b9050836001600160a01b0316816001600160a01b0316146120c85760405162a1148160e81b815260040160405180910390fd5b60008281526006602052604090208054338082146001600160a01b03881690911417612115576120f88633610a52565b61211557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b03851661213c57604051633a954ecd60e21b815260040160405180910390fd5b801561214757600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b841690036121d9576001840160008181526004602052604081205490036121d75760005481146121d75760008181526004602052604090208490555b505b83856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050505050565b61222c8133612635565b50565b61223982826117b2565b6112c05760008281526008602090815260408083206001600160a01b03851684529091529020805460ff191660011790556122713390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6122bf82826117b2565b156112c05760008281526008602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8047101561236c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610ba4565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146123b9576040519150601f19603f3d011682016040523d82523d6000602084013e6123be565b606091505b5050905080610e6c5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610ba4565b610e6c838383604051806020016040528060008152506118eb565b600081806001116124a6576000548110156124a65760008181526004602052604081205490600160e01b821690036124a4575b80600003611a7f575060001901600081815260046020526040902054612483565b505b604051636f96cda160e11b815260040160405180910390fd5b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b612536848484610f8d565b6001600160a01b0383163b15610d5e576125528484848461268e565b610d5e576040516368d2bf6b60e11b815260040160405180910390fd5b6060600a8054610bed906131a7565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806125985750819003601f19909101908152919050565b6000611e62848484612776565b6125d9838361278c565b6001600160a01b0383163b15610e6c576000548281035b612603600086838060010194508661268e565b612620576040516368d2bf6b60e11b815260040160405180910390fd5b8181106125f05781600054146119c057600080fd5b61263f82826117b2565b6112c05761264c8161288a565b61265783602061289c565b60405160200161266892919061338c565b60408051601f198184030181529082905262461bcd60e51b8252610ba491600401612c80565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a02906126c3903390899088908890600401613401565b6020604051808303816000875af19250505080156126fe575060408051601f3d908101601f191682019092526126fb91810190613434565b60015b61275c573d80801561272c576040519150601f19603f3d011682016040523d82523d6000602084013e612731565b606091505b508051600003612754576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611e62565b6000826127838584612a38565b14949350505050565b60008054908290036127b15760405163b562e8dd60e01b815260040160405180910390fd5b6001600160a01b03831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b81811461286057808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101612828565b508160000361288157604051622e076360e81b815260040160405180910390fd5b60005550505050565b6060610bd86001600160a01b03831660145b606060006128ab83600261331c565b6128b690600261320d565b67ffffffffffffffff8111156128ce576128ce612c93565b6040519080825280601f01601f1916602001820160405280156128f8576020820181803683370190505b509050600360fc1b81600081518110612913576129136131e1565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612942576129426131e1565b60200101906001600160f81b031916908160001a905350600061296684600261331c565b61297190600161320d565b90505b60018111156129e9576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106129a5576129a56131e1565b1a60f81b8282815181106129bb576129bb6131e1565b60200101906001600160f81b031916908160001a90535060049490941c936129e281613451565b9050612974565b508315611a7f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ba4565b600081815b8451811015612a7d57612a6982868381518110612a5c57612a5c6131e1565b6020026020010151612a85565b915080612a7581613225565b915050612a3d565b509392505050565b6000818310612aa1576000828152602084905260409020611a7f565b6000838152602083905260409020611a7f565b828054828255906000526020600020908101928215612b09579160200282015b82811115612b0957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612ad4565b50612b15929150612bc7565b5090565b828054828255906000526020600020908101928215612b09579160200282015b82811115612b09578251825591602001919060010190612b39565b828054612b60906131a7565b90600052602060002090601f016020900481019282612b825760008555612b09565b82601f10612b9b57805160ff1916838001178555612b09565b82800160010185558215612b095791820182811115612b09578251825591602001919060010190612b39565b5b80821115612b155760008155600101612bc8565b600060208284031215612bee57600080fd5b5035919050565b6001600160e01b03198116811461222c57600080fd5b600060208284031215612c1d57600080fd5b8135611a7f81612bf5565b60005b83811015612c43578181015183820152602001612c2b565b83811115610d5e5750506000910152565b60008151808452612c6c816020860160208601612c28565b601f01601f19169290920160200192915050565b602081526000611a7f6020830184612c54565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612cd257612cd2612c93565b604052919050565b600067ffffffffffffffff821115612cf457612cf4612c93565b5060051b60200190565b80356001600160a01b0381168114612d1557600080fd5b919050565b600082601f830112612d2b57600080fd5b81356020612d40612d3b83612cda565b612ca9565b82815260059290921b84018101918181019086841115612d5f57600080fd5b8286015b84811015612d7a5780358352918301918301612d63565b509695505050505050565b60008060408385031215612d9857600080fd5b823567ffffffffffffffff80821115612db057600080fd5b818501915085601f830112612dc457600080fd5b81356020612dd4612d3b83612cda565b82815260059290921b84018101918181019089841115612df357600080fd5b948201945b83861015612e1857612e0986612cfe565b82529482019490820190612df8565b96505086013592505080821115612e2e57600080fd5b50612e3b85828601612d1a565b9150509250929050565b60008060408385031215612e5857600080fd5b612e6183612cfe565b946020939093013593505050565b60008083601f840112612e8157600080fd5b50813567ffffffffffffffff811115612e9957600080fd5b6020830191508360208260051b8501011115612eb457600080fd5b9250929050565b600080600060408486031215612ed057600080fd5b83359250602084013567ffffffffffffffff811115612eee57600080fd5b612efa86828701612e6f565b9497909650939450505050565b600060208284031215612f1957600080fd5b611a7f82612cfe565b600080600060608486031215612f3757600080fd5b612f4084612cfe565b9250612f4e60208501612cfe565b9150604084013590509250925092565b60008060408385031215612f7157600080fd5b82359150612f8160208401612cfe565b90509250929050565b600067ffffffffffffffff831115612fa457612fa4612c93565b612fb7601f8401601f1916602001612ca9565b9050828152838383011115612fcb57600080fd5b828260208301376000602084830101529392505050565b600060208284031215612ff457600080fd5b813567ffffffffffffffff81111561300b57600080fd5b8201601f8101841361301c57600080fd5b611e6284823560208401612f8a565b801515811461222c57600080fd5b6000806040838503121561304c57600080fd5b61305583612cfe565b915060208301356130658161302b565b809150509250929050565b6000806000806080858703121561308657600080fd5b61308f85612cfe565b935061309d60208601612cfe565b925060408501359150606085013567ffffffffffffffff8111156130c057600080fd5b8501601f810187136130d157600080fd5b6130e087823560208401612f8a565b91505092959194509250565b600080604083850312156130ff57600080fd5b61310883612cfe565b9150612f8160208401612cfe565b6000806000806060858703121561312c57600080fd5b61313585612cfe565b935060208501359250604085013567ffffffffffffffff81111561315857600080fd5b61316487828801612e6f565b95989497509550505050565b60208082526019908201527f43616c6c657220646f6573206e6f74206861766520726f6c6500000000000000604082015260600190565b600181811c908216806131bb57607f821691505b6020821081036131db57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60008219821115613220576132206131f7565b500190565b600060018201613237576132376131f7565b5060010190565b60006020828403121561325057600080fd5b8151611a7f8161302b565b602080825260139082015272223937b81d102737ba103cb2ba1037b832b71760691b604082015260600190565b60208082526024908201527f44726f703a20457863656564206d61782077686974656c69737420616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526019908201527f44726f703a2045786365656473206d617820737570706c792e00000000000000604082015260600190565b60006020828403121561331557600080fd5b5051919050565b6000816000190483118215151615613336576133366131f7565b500290565b60008261335857634e487b7160e01b600052601260045260246000fd5b500490565b6000835161336f818460208801612c28565b835190830190613383818360208801612c28565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516133c4816017850160208801612c28565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516133f5816028840160208801612c28565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061206690830184612c54565b60006020828403121561344657600080fd5b8151611a7f81612bf5565b600081613460576134606131f7565b50600019019056fea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a2646970667358221220cf1082a485853548d7afbdb516ccbef1893980128c757bb7bc64d3620f06a16864736f6c634300080d00330000000000000000000000005087b8eb16de44f807b1ad564cc36a9de88b33c500000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d594d6250384d43314e4a537548583547646336674371647a4e79786e4d753742473544396e436659586734722f00000000000000000000