0x6101606040523480156200001257600080fd5b506040518060400160405280600581526020017f4e41585a45000000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4e41585a450000000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4e585a00000000000000000000000000000000000000000000000000000000008152508160039081620000fd9190620013bd565b5080600490816200010f9190620013bd565b50505062000132620001266200023160201b60201c565b6200023960201b60201c565b6200014d600a83620002ff60201b6200172a1790919060201c565b610120818152505062000170600b82620002ff60201b6200172a1790919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001af6200035c60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff16815250505050506200022b3362000202620003b960201b60201c565b600a62000210919062001634565b610d056200021f919062001685565b620003c260201b60201c565b62001cb4565b600033905090565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600060208351101562000325576200031d83620003dd60201b60201c565b905062000356565b826200033c836200044a60201b6200176e1760201c565b60000190816200034d9190620013bd565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e0516101005146306040516020016200039e95949392919062001741565b60405160208183030381529060405280519060200120905090565b60006012905090565b620003d982826200045460201b620017781760201c565b5050565b600080829050601f815111156200042d57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200042491906200182d565b60405180910390fd5b8051816200043b9062001883565b60001c1760001b915050919050565b6000819050919050565b6200046b82826200051260201b620018051760201c565b6200047b6200067f60201b60201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16620004a9620006a360201b60201c565b1115620004ed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004e49062001969565b60405180910390fd5b6200050c6010620006ad60201b6200195b1783620006c560201b60201c565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000584576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200057b90620019db565b60405180910390fd5b6200059860008383620009ea60201b60201c565b8060026000828254620005ac9190620019fd565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200065f919062001a38565b60405180910390a36200067b6000838362000a0760201b60201c565b5050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b6000600254905090565b60008183620006bd9190620019fd565b905092915050565b60008060008580549050905060008082146200079557620006f0876001840362000a2460201b60201c565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050620007d1565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1693506200080484868860201c565b92506000821180156200083757506200082262000a3960201b60201c565b65ffffffffffff16816000015163ffffffff16145b15620008bf57620008538362000a5660201b620019711760201c565b62000868886001850362000a2460201b60201c565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550620009e0565b866040518060400160405280620008f8620008df62000a3960201b60201c565b65ffffffffffff1662000ac460201b620019dc1760201c565b63ffffffff168152602001620009198662000a5660201b620019711760201c565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b62000a0283838362000b1a60201b62001a2f1760201c565b505050565b62000a1f83838362000c1360201b62001ae71760201c565b505050565b60008260005281602060002001905092915050565b600062000a514362000c6360201b62001b121760201c565b905090565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff801682111562000abc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000ab39062001acb565b60405180910390fd5b819050919050565b600063ffffffff801682111562000b12576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b099062001b63565b60405180910390fd5b819050919050565b62000b3283838362000cbb60201b62001b671760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b8e5762000b788262000cc060201b60201c565b62000b8862000d2360201b60201c565b62000c0e565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000bea5762000bd48362000cc060201b60201c565b62000be462000d2360201b60201c565b62000c0d565b62000bfb8362000cc060201b60201c565b62000c0c8262000cc060201b60201c565b5b5b505050565b62000c2b83838362000d4760201b62001b6c1760201c565b62000c5e62000c408462000d4c60201b60201c565b62000c518462000d4c60201b60201c565b8362000db560201b60201c565b505050565b600065ffffffffffff801682111562000cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000caa9062001bfb565b60405180910390fd5b819050919050565b505050565b62000d20600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002062000d148362000fd860201b60201c565b6200102060201b60201c565b50565b62000d45600662000d39620006a360201b60201c565b6200102060201b60201c565b565b505050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801562000df25750600081115b1562000fd357600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000ee55760008062000e8c600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620010ac60201b62001b711785620006c560201b60201c565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000eda92919062001c1d565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000fd25760008062000f79600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020620006ad60201b6200195b1785620006c560201b60201c565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405162000fc792919062001c1d565b60405180910390a250505b5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600062001032620010c460201b60201c565b9050806200104984600001620010e260201b60201c565b1015620010a75782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b60008183620010bc919062001c4a565b905092915050565b6000620010dd60086200113560201b62001b871760201c565b905090565b600080828054905003620010fa576000905062001130565b81600183805490506200110e919062001c4a565b8154811062001122576200112162001c85565b5b906000526020600020015490505b919050565b600081600001549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620011c557607f821691505b602082108103620011db57620011da6200117d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620012457fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262001206565b62001251868362001206565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200129e62001298620012928462001269565b62001273565b62001269565b9050919050565b6000819050919050565b620012ba836200127d565b620012d2620012c982620012a5565b84845462001213565b825550505050565b600090565b620012e9620012da565b620012f6818484620012af565b505050565b5b818110156200131e5762001312600082620012df565b600181019050620012fc565b5050565b601f8211156200136d576200133781620011e1565b6200134284620011f6565b8101602085101562001352578190505b6200136a6200136185620011f6565b830182620012fb565b50505b505050565b600082821c905092915050565b6000620013926000198460080262001372565b1980831691505092915050565b6000620013ad83836200137f565b9150826002028217905092915050565b620013c88262001143565b67ffffffffffffffff811115620013e457620013e36200114e565b5b620013f08254620011ac565b620013fd82828562001322565b600060209050601f83116001811462001435576000841562001420578287015190505b6200142c85826200139f565b8655506200149c565b601f1984166200144586620011e1565b60005b828110156200146f5784890151825560018201915060208501945060208101905062001448565b868310156200148f57848901516200148b601f8916826200137f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562001532578086048111156200150a5762001509620014a4565b5b60018516156200151a5780820291505b80810290506200152a85620014d3565b9450620014ea565b94509492505050565b6000826200154d576001905062001620565b816200155d576000905062001620565b81600181146200157657600281146200158157620015b7565b600191505062001620565b60ff841115620015965762001595620014a4565b5b8360020a915084821115620015b057620015af620014a4565b5b5062001620565b5060208310610133831016604e8410600b8410161715620015f15782820a905083811115620015eb57620015ea620014a4565b5b62001620565b620016008484846001620014e0565b925090508184048111156200161a5762001619620014a4565b5b81810290505b9392505050565b600060ff82169050919050565b6000620016418262001269565b91506200164e8362001627565b92506200167d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200153b565b905092915050565b6000620016928262001269565b91506200169f8362001269565b9250828202620016af8162001269565b91508282048414831517620016c957620016c8620014a4565b5b5092915050565b6000819050919050565b620016e581620016d0565b82525050565b620016f68162001269565b82525050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200172982620016fc565b9050919050565b6200173b816200171c565b82525050565b600060a082019050620017586000830188620016da565b620017676020830187620016da565b620017766040830186620016da565b620017856060830185620016eb565b62001794608083018462001730565b9695505050505050565b600082825260208201905092915050565b60005b83811015620017cf578082015181840152602081019050620017b2565b60008484015250505050565b6000601f19601f8301169050919050565b6000620017f98262001143565b6200180581856200179e565b935062001817818560208601620017af565b6200182281620017db565b840191505092915050565b60006020820190508181036000830152620018498184620017ec565b905092915050565b600081519050919050565b6000819050602082019050919050565b60006200187a8251620016d0565b80915050919050565b6000620018908262001851565b826200189c846200185c565b9050620018a9816200186c565b92506020821015620018ec57620018e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262001206565b831692505b5050919050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000620019516030836200179e565b91506200195e82620018f3565b604082019050919050565b60006020820190508181036000830152620019848162001942565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000620019c3601f836200179e565b9150620019d0826200198b565b602082019050919050565b60006020820190508181036000830152620019f681620019b4565b9050919050565b600062001a0a8262001269565b915062001a178362001269565b925082820190508082111562001a325762001a31620014a4565b5b92915050565b600060208201905062001a4f6000830184620016eb565b92915050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b600062001ab36027836200179e565b915062001ac08262001a55565b604082019050919050565b6000602082019050818103600083015262001ae68162001aa4565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b600062001b4b6026836200179e565b915062001b588262001aed565b604082019050919050565b6000602082019050818103600083015262001b7e8162001b3c565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b600062001be36026836200179e565b915062001bf08262001b85565b604082019050919050565b6000602082019050818103600083015262001c168162001bd4565b9050919050565b600060408201905062001c346000830185620016eb565b62001c436020830184620016eb565b9392505050565b600062001c578262001269565b915062001c648362001269565b925082820390508181111562001c7f5762001c7e620014a4565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60805160a05160c05160e05161010051610120516101405161571c62001d0f6000396000610e7601526000610e4201526000612db901526000612d980152600061206c015260006120c2015260006120eb015261571c6000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063715018a6116101255780639ab24eb0116100ad578063d505accf1161007c578063d505accf14610692578063d9d98ce4146106ae578063dd62ed3e146106de578063f1127ed81461070e578063f2fde38b1461073e57610211565b80639ab24eb0146105e6578063a457c2d714610616578063a9059cbb14610646578063c3cda5201461067657610211565b80638e539e8c116100f45780638e539e8c1461054057806391ddadf41461057057806395d89b411461058e5780639711715a146105ac578063981b24d0146105b657610211565b8063715018a6146104c45780637ecebe00146104ce57806384b0196e146104fe5780638da5cb5b1461052257610211565b806340c10f19116101a85780635c19a95c116101775780635c19a95c146103e85780635cffe9de14610404578063613255ab146104345780636fcfff451461046457806370a082311461049457610211565b806340c10f191461034e5780634bf5d7e91461036a5780634ee2cd7e14610388578063587cde1e146103b857610211565b8063313ce567116101e4578063313ce567146102b25780633644e515146102d057806339509351146102ee5780633a46b1a81461031e57610211565b806306fdde0314610216578063095ea7b31461023457806318160ddd1461026457806323b872dd14610282575b600080fd5b61021e61075a565b60405161022b9190613810565b60405180910390f35b61024e600480360381019061024991906138d0565b6107ec565b60405161025b919061392b565b60405180910390f35b61026c61080f565b6040516102799190613955565b60405180910390f35b61029c60048036038101906102979190613970565b610819565b6040516102a9919061392b565b60405180910390f35b6102ba610848565b6040516102c791906139df565b60405180910390f35b6102d8610851565b6040516102e59190613a13565b60405180910390f35b610308600480360381019061030391906138d0565b610860565b604051610315919061392b565b60405180910390f35b610338600480360381019061033391906138d0565b610897565b6040516103459190613955565b60405180910390f35b610368600480360381019061036391906138d0565b61093a565b005b610372610950565b60405161037f9190613810565b60405180910390f35b6103a2600480360381019061039d91906138d0565b6109de565b6040516103af9190613955565b60405180910390f35b6103d260048036038101906103cd9190613a2e565b610a4e565b6040516103df9190613a6a565b60405180910390f35b61040260048036038101906103fd9190613a2e565b610ab7565b005b61041e60048036038101906104199190613b28565b610acb565b60405161042b919061392b565b60405180910390f35b61044e60048036038101906104499190613a2e565b610cb8565b60405161045b9190613955565b60405180910390f35b61047e60048036038101906104799190613a2e565b610d2f565b60405161048b9190613bcf565b60405180910390f35b6104ae60048036038101906104a99190613a2e565b610d83565b6040516104bb9190613955565b60405180910390f35b6104cc610dcb565b005b6104e860048036038101906104e39190613a2e565b610ddf565b6040516104f59190613955565b60405180910390f35b610506610e2f565b6040516105199796959493929190613ce3565b60405180910390f35b61052a610f31565b6040516105379190613a6a565b60405180910390f35b61055a60048036038101906105559190613d67565b610f5b565b6040516105679190613955565b60405180910390f35b610578610fc0565b6040516105859190613db5565b60405180910390f35b610596610fd0565b6040516105a39190613810565b60405180910390f35b6105b4611062565b005b6105d060048036038101906105cb9190613d67565b611075565b6040516105dd9190613955565b60405180910390f35b61060060048036038101906105fb9190613a2e565b6110a6565b60405161060d9190613955565b60405180910390f35b610630600480360381019061062b91906138d0565b6111ae565b60405161063d919061392b565b60405180910390f35b610660600480360381019061065b91906138d0565b611225565b60405161066d919061392b565b60405180910390f35b610690600480360381019061068b9190613e28565b611248565b005b6106ac60048036038101906106a79190613eb5565b61134c565b005b6106c860048036038101906106c391906138d0565b61148e565b6040516106d59190613955565b60405180910390f35b6106f860048036038101906106f39190613f57565b611510565b6040516107059190613955565b60405180910390f35b61072860048036038101906107239190613fc3565b611597565b6040516107359190614078565b60405180910390f35b61075860048036038101906107539190613a2e565b6116a7565b005b606060038054610769906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054610795906140c2565b80156107e25780601f106107b7576101008083540402835291602001916107e2565b820191906000526020600020905b8154815290600101906020018083116107c557829003601f168201915b5050505050905090565b6000806107f7611b95565b9050610804818585611b9d565b600191505092915050565b6000600254905090565b600080610824611b95565b9050610831858285611d66565b61083c858585611df2565b60019150509392505050565b60006012905090565b600061085b612068565b905090565b60008061086b611b95565b905061088c81858561087d8589611510565b6108879190614122565b611b9d565b600191505092915050565b60006108a1610fc0565b65ffffffffffff1682106108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e1906141a2565b60405180910390fd5b610932600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208361211f565b905092915050565b610942612267565b61094c82826122e5565b5050565b60604361095b610fc0565b65ffffffffffff16146109a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099a9061420e565b60405180910390fd5b6040518060400160405280601d81526020017f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000815250905090565b6000806000610a2b84600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206122f3565b9150915081610a4257610a3d85610d83565b610a44565b805b9250505092915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b610ac8610ac2611b95565b826123e8565b50565b6000610ad685610cb8565b841115610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f906142a0565b60405180910390fd5b6000610b24868661148e565b9050610b3087866122e5565b7f439148f0bbc682ca079e46d6e2c2f0c1e3b820f1a291b069d8882abf8cf18dd98773ffffffffffffffffffffffffffffffffffffffff166323e30c8b338989868a8a6040518763ffffffff1660e01b8152600401610b949695949392919061430d565b6020604051808303816000875af1158015610bb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bd7919061437e565b14610c17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0e9061441d565b60405180910390fd5b6000610c21612502565b9050610c3988308489610c349190614122565b611d66565b6000821480610c745750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b15610c9357610c8e888388610c899190614122565b612507565b610ca9565b610c9d8887612507565b610ca8888284611df2565b5b60019250505095945050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614610cf4576000610d28565b610cfc61080f565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d27919061443d565b5b9050919050565b6000610d7c600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506119dc565b9050919050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610dd3612267565b610ddd6000612515565b565b6000610e28600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b87565b9050919050565b600060608060008060006060610e6f600a7f00000000000000000000000000000000000000000000000000000000000000006125db90919063ffffffff16565b610ea3600b7f00000000000000000000000000000000000000000000000000000000000000006125db90919063ffffffff16565b46306000801b600067ffffffffffffffff811115610ec457610ec3614471565b5b604051908082528060200260200182016040528015610ef25781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610f65610fc0565b65ffffffffffff168210610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa5906141a2565b60405180910390fd5b610fb960108361211f565b9050919050565b6000610fcb43611b12565b905090565b606060048054610fdf906140c2565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906140c2565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b5050505050905090565b61106a612267565b61107261268b565b50565b60008060006110858460066122f3565b915091508161109b5761109661080f565b61109d565b805b92505050919050565b600080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000811461118557600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600182038154811061114a576111496144a0565b5b9060005260206000200160000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16611188565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16915050919050565b6000806111b9611b95565b905060006111c78286611510565b90508381101561120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390614541565b60405180910390fd5b6112198286868403611b9d565b60019250505092915050565b600080611230611b95565b905061123d818585611df2565b600191505092915050565b8342111561128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906145ad565b60405180910390fd5b60006112ed6112e57fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8989896040516020016112ca94939291906145cd565b604051602081830303815290604052805190602001206126e1565b8585856126fb565b90506112f881612726565b8614611339576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113309061465e565b60405180910390fd5b61134381886123e8565b50505050505050565b8342111561138f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611386906146ca565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886113be8c612726565b896040516020016113d4969594939291906146ea565b60405160208183030381529060405280519060200120905060006113f7826126e1565b90506000611407828787876126fb565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90614797565b60405180910390fd5b6114828a8a8a611b9d565b50505050505050505050565b60003073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590614803565b60405180910390fd5b6115088383612784565b905092915050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61159f613742565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208263ffffffff16815481106115f6576115f56144a0565b5b906000526020600020016040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525050905092915050565b6116af612267565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361171e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171590614895565b60405180910390fd5b61172781612515565b50565b60006020835110156117465761173f8361278c565b9050611768565b826117508361176e565b600001908161175f9190614a61565b5060ff60001b90505b92915050565b6000819050919050565b6117828282611805565b61178a6127f4565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166117b061080f565b11156117f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e890614ba5565b60405180910390fd5b6117ff601061195b83612818565b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90614c11565b60405180910390fd5b61188060008383612af3565b80600260008282546118929190614122565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119439190613955565b60405180910390a361195760008383612b03565b5050565b600081836119699190614122565b905092915050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff80168211156119d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cb90614ca3565b60405180910390fd5b819050919050565b600063ffffffff8016821115611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90614d35565b60405180910390fd5b819050919050565b611a3a838383611b67565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a8457611a7782612b13565b611a7f612b66565b611ae2565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ace57611ac183612b13565b611ac9612b66565b611ae1565b611ad783612b13565b611ae082612b13565b5b5b505050565b611af2838383611b6c565b611b0d611afe84610a4e565b611b0784610a4e565b83612b7a565b505050565b600065ffffffffffff8016821115611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690614dc7565b60405180910390fd5b819050919050565b505050565b505050565b60008183611b7f919061443d565b905092915050565b600081600001549050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c0390614e59565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7290614eeb565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d599190613955565b60405180910390a3505050565b6000611d728484611510565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114611dec5781811015611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd590614f57565b60405180910390fd5b611deb8484848403611b9d565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5890614fe9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ec79061507b565b60405180910390fd5b611edb838383612af3565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f589061510d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161204f9190613955565b60405180910390a3612062848484612b03565b50505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff161480156120e457507f000000000000000000000000000000000000000000000000000000000000000046145b15612111577f0000000000000000000000000000000000000000000000000000000000000000905061211c565b612119612d73565b90505b90565b60008083805490509050600080829050600583111561219557600061214384612e09565b8461214e919061443d565b90508561215b8883612f02565b60000160009054906101000a900463ffffffff1663ffffffff16111561218357809150612193565b6001816121909190614122565b92505b505b5b808210156121f55760006121aa8383612f17565b9050856121b78883612f02565b60000160009054906101000a900463ffffffff1663ffffffff1611156121df578091506121ef565b6001816121ec9190614122565b92505b50612196565b6000811461223b5761220a8660018303612f02565b60000160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1661223e565b60005b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935050505092915050565b61226f611b95565b73ffffffffffffffffffffffffffffffffffffffff1661228d610f31565b73ffffffffffffffffffffffffffffffffffffffff16146122e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122da90615179565b60405180910390fd5b565b6122ef8282611778565b5050565b60008060008411612339576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612330906151e5565b60405180910390fd5b612341612f3d565b841115612383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237a90615251565b60405180910390fd5b600061239b8585600001612f4e90919063ffffffff16565b9050836000018054905081036123b85760008092509250506123e1565b60018460010182815481106123d0576123cf6144a0565b5b906000526020600020015492509250505b9250929050565b60006123f383610a4e565b9050600061240084610d83565b905082600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46124fc828483612b7a565b50505050565b600090565b6125118282613007565b5050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b606060ff60001b83146125f8576125f183613025565b9050612685565b818054612604906140c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612630906140c2565b801561267d5780601f106126525761010080835404028352916020019161267d565b820191906000526020600020905b81548152906001019060200180831161266057829003601f168201915b505050505090505b92915050565b60006126976008613099565b60006126a1612f3d565b90507f8030e83b04d87bef53480e26263266d6ca66863aa8506aca6f2559d18aa1cb67816040516126d29190613955565b60405180910390a18091505090565b60006126f46126ee612068565b836130af565b9050919050565b600080600061270c878787876130f0565b91509150612719816131d2565b8192505050949350505050565b600080600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905061277381611b87565b915061277e81613099565b50919050565b600092915050565b600080829050601f815111156127d957826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016127d09190613810565b60405180910390fd5b8051816127e5906152a1565b60001c1760001b915050919050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b60008060008580549050905060008082146128de5761283a8760018403612f02565b6040518060400160405290816000820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016000820160049054906101000a90047bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505061291a565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152505b905080602001517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16935061294f84868863ffffffff16565b92506000821180156129795750612964610fc0565b65ffffffffffff16816000015163ffffffff16145b156129ea5761298783611971565b6129948860018503612f02565b60000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff160217905550612ae9565b866040518060400160405280612a0e612a01610fc0565b65ffffffffffff166119dc565b63ffffffff168152602001612a2286611971565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff168152509080600181540180825580915050600190039060005260206000200160009091909190915060008201518160000160006101000a81548163ffffffff021916908363ffffffff16021790555060208201518160000160046101000a8154817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff02191690837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff16021790555050505b5050935093915050565b612afe838383611a2f565b505050565b612b0e838383611ae7565b505050565b612b63600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020612b5e83610d83565b613338565b50565b612b786006612b7361080f565b613338565b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612bb65750600081115b15612d6e57600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612c9457600080612c3d600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611b7185612818565b915091508473ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612c89929190615308565b60405180910390a250505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612d6d57600080612d16600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061195b85612818565b915091508373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612d62929190615308565b60405180910390a250505b5b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000004630604051602001612dee959493929190615331565b60405160208183030381529060405280519060200120905090565b6000808203612e1b5760009050612efd565b60006001612e28846133b3565b901c6001901b90506001818481612e4257612e41615384565b5b048201901c90506001818481612e5b57612e5a615384565b5b048201901c90506001818481612e7457612e73615384565b5b048201901c90506001818481612e8d57612e8c615384565b5b048201901c90506001818481612ea657612ea5615384565b5b048201901c90506001818481612ebf57612ebe615384565b5b048201901c90506001818481612ed857612ed7615384565b5b048201901c9050612ef981828581612ef357612ef2615384565b5b04613494565b9150505b919050565b60008260005281602060002001905092915050565b60006002828418612f2891906153b3565b828416612f359190614122565b905092915050565b6000612f496008611b87565b905090565b600080838054905003612f645760009050613001565b600080848054905090505b80821015612fb8576000612f838383612f17565b905084612f9087836134ad565b600001541115612fa257809150612fb2565b600181612faf9190614122565b92505b50612f6f565b600082118015612fe0575083612fda86600185612fd5919061443d565b6134ad565b60000154145b15612ffb57600182612ff2919061443d565b92505050613001565b81925050505b92915050565b61301182826134cf565b61301f6010611b7183612818565b50505050565b606060006130328361369c565b90506000602067ffffffffffffffff81111561305157613050614471565b5b6040519080825280601f01601f1916602001820160405280156130835781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b6001816000016000828254019250508190555050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c111561312b5760006003915091506131c9565b60006001878787876040516000815260200160405260405161315094939291906153e4565b6020604051602081039080840390855afa158015613172573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036131c0576000600192509250506131c9565b80600092509250505b94509492505050565b600060048111156131e6576131e5615429565b5b8160048111156131f9576131f8615429565b5b0315613335576001600481111561321357613212615429565b5b81600481111561322657613225615429565b5b03613266576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161325d906154a4565b60405180910390fd5b6002600481111561327a57613279615429565b5b81600481111561328d5761328c615429565b5b036132cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132c490615510565b60405180910390fd5b600360048111156132e1576132e0615429565b5b8160048111156132f4576132f3615429565b5b03613334576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161332b906155a2565b60405180910390fd5b5b50565b6000613342612f3d565b905080613351846000016136ec565b10156133ae5782600001819080600181540180825580915050600190039060005260206000200160009091909190915055826001018290806001815401808255809150506001900390600052602060002001600090919091909150555b505050565b600080600090506000608084901c11156133d557608083901c92506080810190505b6000604084901c11156133f057604083901c92506040810190505b6000602084901c111561340b57602083901c92506020810190505b6000601084901c111561342657601083901c92506010810190505b6000600884901c111561344157600883901c92506008810190505b6000600484901c111561345c57600483901c92506004810190505b6000600284901c111561347757600283901c92506002810190505b6000600184901c111561348b576001810190505b80915050919050565b60008183106134a357816134a5565b825b905092915050565b600080836000528260206000200190506134c681613738565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361353e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353590615634565b60405180910390fd5b61354a82600083612af3565b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156135d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016135c7906156c6565b60405180910390fd5b8181036000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008282540392505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516136839190613955565b60405180910390a361369783600084612b03565b505050565b60008060ff8360001c169050601f8111156136e3576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b6000808280549050036137025760009050613733565b8160018380549050613714919061443d565b81548110613725576137246144a0565b5b906000526020600020015490505b919050565b6000819050919050565b6040518060400160405280600063ffffffff16815260200160007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1681525090565b600081519050919050565b600082825260208201905092915050565b60005b838110156137ba57808201518184015260208101905061379f565b60008484015250505050565b6000601f19601f8301169050919050565b60006137e282613780565b6137ec818561378b565b93506137fc81856020860161379c565b613805816137c6565b840191505092915050565b6000602082019050818103600083015261382a81846137d7565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006138678261383c565b9050919050565b6138778161385c565b811461388257600080fd5b50565b6000813590506138948161386e565b92915050565b6000819050919050565b6138ad8161389a565b81146138b857600080fd5b50565b6000813590506138ca816138a4565b92915050565b600080604083850312156138e7576138e6613832565b5b60006138f585828601613885565b9250506020613906858286016138bb565b9150509250929050565b60008115159050919050565b61392581613910565b82525050565b6000602082019050613940600083018461391c565b92915050565b61394f8161389a565b82525050565b600060208201905061396a6000830184613946565b92915050565b60008060006060848603121561398957613988613832565b5b600061399786828701613885565b93505060206139a886828701613885565b92505060406139b9868287016138bb565b9150509250925092565b600060ff82169050919050565b6139d9816139c3565b82525050565b60006020820190506139f460008301846139d0565b92915050565b6000819050919050565b613a0d816139fa565b82525050565b6000602082019050613a286000830184613a04565b92915050565b600060208284031215613a4457613a43613832565b5b6000613a5284828501613885565b91505092915050565b613a648161385c565b82525050565b6000602082019050613a7f6000830184613a5b565b92915050565b6000613a908261385c565b9050919050565b613aa081613a85565b8114613aab57600080fd5b50565b600081359050613abd81613a97565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613ae857613ae7613ac3565b5b8235905067ffffffffffffffff811115613b0557613b04613ac8565b5b602083019150836001820283011115613b2157613b20613acd565b5b9250929050565b600080600080600060808688031215613b4457613b43613832565b5b6000613b5288828901613aae565b9550506020613b6388828901613885565b9450506040613b74888289016138bb565b935050606086013567ffffffffffffffff811115613b9557613b94613837565b5b613ba188828901613ad2565b92509250509295509295909350565b600063ffffffff82169050919050565b613bc981613bb0565b82525050565b6000602082019050613be46000830184613bc0565b92915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b613c1f81613bea565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c5a8161389a565b82525050565b6000613c6c8383613c51565b60208301905092915050565b6000602082019050919050565b6000613c9082613c25565b613c9a8185613c30565b9350613ca583613c41565b8060005b83811015613cd6578151613cbd8882613c60565b9750613cc883613c78565b925050600181019050613ca9565b5085935050505092915050565b600060e082019050613cf8600083018a613c16565b8181036020830152613d0a81896137d7565b90508181036040830152613d1e81886137d7565b9050613d2d6060830187613946565b613d3a6080830186613a5b565b613d4760a0830185613a04565b81810360c0830152613d598184613c85565b905098975050505050505050565b600060208284031215613d7d57613d7c613832565b5b6000613d8b848285016138bb565b91505092915050565b600065ffffffffffff82169050919050565b613daf81613d94565b82525050565b6000602082019050613dca6000830184613da6565b92915050565b613dd9816139c3565b8114613de457600080fd5b50565b600081359050613df681613dd0565b92915050565b613e05816139fa565b8114613e1057600080fd5b50565b600081359050613e2281613dfc565b92915050565b60008060008060008060c08789031215613e4557613e44613832565b5b6000613e5389828a01613885565b9650506020613e6489828a016138bb565b9550506040613e7589828a016138bb565b9450506060613e8689828a01613de7565b9350506080613e9789828a01613e13565b92505060a0613ea889828a01613e13565b9150509295509295509295565b600080600080600080600060e0888a031215613ed457613ed3613832565b5b6000613ee28a828b01613885565b9750506020613ef38a828b01613885565b9650506040613f048a828b016138bb565b9550506060613f158a828b016138bb565b9450506080613f268a828b01613de7565b93505060a0613f378a828b01613e13565b92505060c0613f488a828b01613e13565b91505092959891949750929550565b60008060408385031215613f6e57613f6d613832565b5b6000613f7c85828601613885565b9250506020613f8d85828601613885565b9150509250929050565b613fa081613bb0565b8114613fab57600080fd5b50565b600081359050613fbd81613f97565b92915050565b60008060408385031215613fda57613fd9613832565b5b6000613fe885828601613885565b9250506020613ff985828601613fae565b9150509250929050565b61400c81613bb0565b82525050565b60007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff82169050919050565b61404381614012565b82525050565b60408201600082015161405f6000850182614003565b506020820151614072602085018261403a565b50505050565b600060408201905061408d6000830184614049565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806140da57607f821691505b6020821081036140ed576140ec614093565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061412d8261389a565b91506141388361389a565b92508282019050808211156141505761414f6140f3565b5b92915050565b7f4552433230566f7465733a20667574757265206c6f6f6b757000000000000000600082015250565b600061418c60198361378b565b915061419782614156565b602082019050919050565b600060208201905081810360008301526141bb8161417f565b9050919050565b7f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f6465000000600082015250565b60006141f8601d8361378b565b9150614203826141c2565b602082019050919050565b60006020820190508181036000830152614227816141eb565b9050919050565b7f4552433230466c6173684d696e743a20616d6f756e742065786365656473206d60008201527f6178466c6173684c6f616e000000000000000000000000000000000000000000602082015250565b600061428a602b8361378b565b91506142958261422e565b604082019050919050565b600060208201905081810360008301526142b98161427d565b9050919050565b600082825260208201905092915050565b82818337600083830152505050565b60006142ec83856142c0565b93506142f98385846142d1565b614302836137c6565b840190509392505050565b600060a0820190506143226000830189613a5b565b61432f6020830188613a5b565b61433c6040830187613946565b6143496060830186613946565b818103608083015261435c8184866142e0565b9050979650505050505050565b60008151905061437881613dfc565b92915050565b60006020828403121561439457614393613832565b5b60006143a284828501614369565b91505092915050565b7f4552433230466c6173684d696e743a20696e76616c69642072657475726e207660008201527f616c756500000000000000000000000000000000000000000000000000000000602082015250565b600061440760248361378b565b9150614412826143ab565b604082019050919050565b60006020820190508181036000830152614436816143fa565b9050919050565b60006144488261389a565b91506144538361389a565b925082820390508181111561446b5761446a6140f3565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b600061452b60258361378b565b9150614536826144cf565b604082019050919050565b6000602082019050818103600083015261455a8161451e565b9050919050565b7f4552433230566f7465733a207369676e61747572652065787069726564000000600082015250565b6000614597601d8361378b565b91506145a282614561565b602082019050919050565b600060208201905081810360008301526145c68161458a565b9050919050565b60006080820190506145e26000830187613a04565b6145ef6020830186613a5b565b6145fc6040830185613946565b6146096060830184613946565b95945050505050565b7f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000600082015250565b600061464860198361378b565b915061465382614612565b602082019050919050565b600060208201905081810360008301526146778161463b565b9050919050565b7f45524332305065726d69743a206578706972656420646561646c696e65000000600082015250565b60006146b4601d8361378b565b91506146bf8261467e565b602082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b600060c0820190506146ff6000830189613a04565b61470c6020830188613a5b565b6147196040830187613a5b565b6147266060830186613946565b6147336080830185613946565b61474060a0830184613946565b979650505050505050565b7f45524332305065726d69743a20696e76616c6964207369676e61747572650000600082015250565b6000614781601e8361378b565b915061478c8261474b565b602082019050919050565b600060208201905081810360008301526147b081614774565b9050919050565b7f4552433230466c6173684d696e743a2077726f6e6720746f6b656e0000000000600082015250565b60006147ed601b8361378b565b91506147f8826147b7565b602082019050919050565b6000602082019050818103600083015261481c816147e0565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061487f60268361378b565b915061488a82614823565b604082019050919050565b600060208201905081810360008301526148ae81614872565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026149177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826148da565b61492186836148da565b95508019841693508086168417925050509392505050565b6000819050919050565b600061495e6149596149548461389a565b614939565b61389a565b9050919050565b6000819050919050565b61497883614943565b61498c61498482614965565b8484546148e7565b825550505050565b600090565b6149a1614994565b6149ac81848461496f565b505050565b5b818110156149d0576149c5600082614999565b6001810190506149b2565b5050565b601f821115614a15576149e6816148b5565b6149ef846148ca565b810160208510156149fe578190505b614a12614a0a856148ca565b8301826149b1565b50505b505050565b600082821c905092915050565b6000614a3860001984600802614a1a565b1980831691505092915050565b6000614a518383614a27565b9150826002028217905092915050565b614a6a82613780565b67ffffffffffffffff811115614a8357614a82614471565b5b614a8d82546140c2565b614a988282856149d4565b600060209050601f831160018114614acb5760008415614ab9578287015190505b614ac38582614a45565b865550614b2b565b601f198416614ad9866148b5565b60005b82811015614b0157848901518255600182019150602085019450602081019050614adc565b86831015614b1e5784890151614b1a601f891682614a27565b8355505b6001600288020188555050505b505050505050565b7f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60008201527f766572666c6f77696e6720766f74657300000000000000000000000000000000602082015250565b6000614b8f60308361378b565b9150614b9a82614b33565b604082019050919050565b60006020820190508181036000830152614bbe81614b82565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000614bfb601f8361378b565b9150614c0682614bc5565b602082019050919050565b60006020820190508181036000830152614c2a81614bee565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203260008201527f3234206269747300000000000000000000000000000000000000000000000000602082015250565b6000614c8d60278361378b565b9150614c9882614c31565b604082019050919050565b60006020820190508181036000830152614cbc81614c80565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203360008201527f3220626974730000000000000000000000000000000000000000000000000000602082015250565b6000614d1f60268361378b565b9150614d2a82614cc3565b604082019050919050565b60006020820190508181036000830152614d4e81614d12565b9050919050565b7f53616665436173743a2076616c756520646f65736e27742066697420696e203460008201527f3820626974730000000000000000000000000000000000000000000000000000602082015250565b6000614db160268361378b565b9150614dbc82614d55565b604082019050919050565b60006020820190508181036000830152614de081614da4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614e4360248361378b565b9150614e4e82614de7565b604082019050919050565b60006020820190508181036000830152614e7281614e36565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614ed560228361378b565b9150614ee082614e79565b604082019050919050565b60006020820190508181036000830152614f0481614ec8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000614f41601d8361378b565b9150614f4c82614f0b565b602082019050919050565b60006020820190508181036000830152614f7081614f34565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614fd360258361378b565b9150614fde82614f77565b604082019050919050565b6000602082019050818103600083015261500281614fc6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061506560238361378b565b915061507082615009565b604082019050919050565b6000602082019050818103600083015261509481615058565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b60006150f760268361378b565b91506151028261509b565b604082019050919050565b60006020820190508181036000830152615126816150ea565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061516360208361378b565b915061516e8261512d565b602082019050919050565b6000602082019050818103600083015261519281615156565b9050919050565b7f4552433230536e617073686f743a206964206973203000000000000000000000600082015250565b60006151cf60168361378b565b91506151da82615199565b602082019050919050565b600060208201905081810360008301526151fe816151c2565b9050919050565b7f4552433230536e617073686f743a206e6f6e6578697374656e74206964000000600082015250565b600061523b601d8361378b565b915061524682615205565b602082019050919050565b6000602082019050818103600083015261526a8161522e565b9050919050565b600081519050919050565b6000819050602082019050919050565b600061529882516139fa565b80915050919050565b60006152ac82615271565b826152b68461527c565b90506152c18161528c565b92506020821015615301576152fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff836020036008026148da565b831692505b5050919050565b600060408201905061531d6000830185613946565b61532a6020830184613946565b9392505050565b600060a0820190506153466000830188613a04565b6153536020830187613a04565b6153606040830186613a04565b61536d6060830185613946565b61537a6080830184613a5b565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006153be8261389a565b91506153c98361389a565b9250826153d9576153d8615384565b5b828204905092915050565b60006080820190506153f96000830187613a04565b61540660208301866139d0565b6154136040830185613a04565b6154206060830184613a04565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b600061548e60188361378b565b915061549982615458565b602082019050919050565b600060208201905081810360008301526154bd81615481565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b60006154fa601f8361378b565b9150615505826154c4565b602082019050919050565b60006020820190508181036000830152615529816154ed565b9050919050565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b600061558c60228361378b565b915061559782615530565b604082019050919050565b600060208201905081810360008301526155bb8161557f565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b600061561e60218361378b565b9150615629826155c2565b604082019050919050565b6000602082019050818103600083015261564d81615611565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b60006156b060228361378b565b91506156bb82615654565b604082019050919050565b600060208201905081810360008301526156df816156a3565b905091905056fea264697066735822122037649b4a63e99da39731d3debdea998ff78c42971dc5f491c4ca19dd39658f5f64736f6c63430008120033