60a06040526611c37937e080006009556103e9600a556002600b55604051806060016040528060368152602001620045d360369139600c9081620000449190620004e7565b506000600d60006101000a81548160ff0219169083151502179055503480156200006d57600080fd5b506040516200460938038062004609833981810160405281019062000093919062000638565b6040518060400160405280600d81526020017f56494245525320534b554c4c53000000000000000000000000000000000000008152506040518060400160405280600681526020017f56494245525300000000000000000000000000000000000000000000000000008152508160029081620001109190620004e7565b508060039081620001229190620004e7565b50620001336200019660201b60201c565b60008190555050506200015b6200014f6200019f60201b60201c565b620001a760201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200066a565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620002ef57607f821691505b602082108103620003055762000304620002a7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200036f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000330565b6200037b868362000330565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620003c8620003c2620003bc8462000393565b6200039d565b62000393565b9050919050565b6000819050919050565b620003e483620003a7565b620003fc620003f382620003cf565b8484546200033d565b825550505050565b600090565b6200041362000404565b62000420818484620003d9565b505050565b5b8181101562000448576200043c60008262000409565b60018101905062000426565b5050565b601f821115620004975762000461816200030b565b6200046c8462000320565b810160208510156200047c578190505b620004946200048b8562000320565b83018262000425565b50505b505050565b600082821c905092915050565b6000620004bc600019846008026200049c565b1980831691505092915050565b6000620004d78383620004a9565b9150826002028217905092915050565b620004f2826200026d565b67ffffffffffffffff8111156200050e576200050d62000278565b5b6200051a8254620002d6565b620005278282856200044c565b600060209050601f8311600181146200055f57600084156200054a578287015190505b620005568582620004c9565b865550620005c6565b601f1984166200056f866200030b565b60005b82811015620005995784890151825560018201915060208501945060208101905062000572565b86831015620005b95784890151620005b5601f891682620004a9565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060082620005d3565b9050919050565b6200061281620005f3565b81146200061e57600080fd5b50565b600081519050620006328162000607565b92915050565b600060208284031215620006515762000650620005ce565b5b6000620006618482850162000621565b91505092915050565b608051613f466200068d60003960008181611c200152611c470152613f466000f3fe60806040526004361061020f5760003560e01c80638090839311610118578063a0712d68116100a0578063c87b56dd1161006f578063c87b56dd1461078e578063cd7c0326146107cb578063e985e9c5146107f6578063f2b7813214610833578063f2fde38b1461085c5761020f565b8063a0712d68146106e3578063a22cb465146106ff578063b88d4fde14610728578063c23dc68f146107515761020f565b8063909c0c20116100e7578063909c0c20146105ea57806395d89b411461061357806396b04c751461063e578063981332351461066957806399a2557a146106a65761020f565b8063809083931461052e57806382d5b249146105575780638462151c146105825780638da5cb5b146105bf5761020f565b806342842e0e1161019b5780636352211e1161016a5780636352211e1461045b5780636b1ec2e41461049857806370a08231146104c3578063715018a6146105005780637ba5e621146105175761020f565b806342842e0e146103a157806355f804b3146103ca5780635bbb2177146103f35780635c975abb146104305761020f565b8063095ea7b3116101e2578063095ea7b3146102e457806318160ddd1461030d57806323b872dd1461033857806333f15a1f146103615780633ccfd60b1461038a5761020f565b806301ffc9a71461021457806302ddb65b1461025157806306fdde031461027c578063081812fc146102a7575b600080fd5b34801561022057600080fd5b5061023b60048036038101906102369190612ac1565b610885565b6040516102489190612b09565b60405180910390f35b34801561025d57600080fd5b50610266610917565b6040516102739190612b3d565b60405180910390f35b34801561028857600080fd5b5061029161091d565b60405161029e9190612bf1565b60405180910390f35b3480156102b357600080fd5b506102ce60048036038101906102c99190612c3f565b6109af565b6040516102db9190612cad565b60405180910390f35b3480156102f057600080fd5b5061030b60048036038101906103069190612cf4565b610a2b565b005b34801561031957600080fd5b50610322610bd1565b60405161032f9190612b3d565b60405180910390f35b34801561034457600080fd5b5061035f600480360381019061035a9190612d34565b610be8565b005b34801561036d57600080fd5b5061038860048036038101906103839190612dec565b610bf8565b005b34801561039657600080fd5b5061039f610d37565b005b3480156103ad57600080fd5b506103c860048036038101906103c39190612d34565b610e30565b005b3480156103d657600080fd5b506103f160048036038101906103ec9190612ea2565b610e50565b005b3480156103ff57600080fd5b5061041a6004803603810190610415919061302d565b610ee2565b60405161042791906131a8565b60405180910390f35b34801561043c57600080fd5b50610445610fa3565b6040516104529190612b09565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612c3f565b610fb6565b60405161048f9190612cad565b60405180910390f35b3480156104a457600080fd5b506104ad610fc8565b6040516104ba9190612b3d565b60405180910390f35b3480156104cf57600080fd5b506104ea60048036038101906104e591906131ca565b610fcd565b6040516104f79190612b3d565b60405180910390f35b34801561050c57600080fd5b50610515611085565b005b34801561052357600080fd5b5061052c61110d565b005b34801561053a57600080fd5b5061055560048036038101906105509190612c3f565b6111b5565b005b34801561056357600080fd5b5061056c61123b565b6040516105799190612b3d565b60405180910390f35b34801561058e57600080fd5b506105a960048036038101906105a491906131ca565b611241565b6040516105b691906132b5565b60405180910390f35b3480156105cb57600080fd5b506105d4611384565b6040516105e19190612cad565b60405180910390f35b3480156105f657600080fd5b50610611600480360381019061060c9190612c3f565b6113ae565b005b34801561061f57600080fd5b50610628611434565b6040516106359190612bf1565b60405180910390f35b34801561064a57600080fd5b506106536114c6565b6040516106609190612b3d565b60405180910390f35b34801561067557600080fd5b50610690600480360381019061068b91906131ca565b6114cc565b60405161069d9190612b3d565b60405180910390f35b3480156106b257600080fd5b506106cd60048036038101906106c891906132d7565b611515565b6040516106da91906132b5565b60405180910390f35b6106fd60048036038101906106f89190612c3f565b611721565b005b34801561070b57600080fd5b5061072660048036038101906107219190613356565b61192c565b005b34801561073457600080fd5b5061074f600480360381019061074a919061344b565b611aa3565b005b34801561075d57600080fd5b5061077860048036038101906107739190612c3f565b611b16565b6040516107859190613510565b60405180910390f35b34801561079a57600080fd5b506107b560048036038101906107b09190612c3f565b611b80565b6040516107c29190612bf1565b60405180910390f35b3480156107d757600080fd5b506107e0611c1e565b6040516107ed9190612cad565b60405180910390f35b34801561080257600080fd5b5061081d6004803603810190610818919061352b565b611c42565b60405161082a9190612b09565b60405180910390f35b34801561083f57600080fd5b5061085a60048036038101906108559190612c3f565b611d32565b005b34801561086857600080fd5b50610883600480360381019061087e91906131ca565b611db8565b005b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806108e057506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806109105750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600b5481565b60606002805461092c9061359a565b80601f01602080910402602001604051908101604052809291908181526020018280546109589061359a565b80156109a55780601f1061097a576101008083540402835291602001916109a5565b820191906000526020600020905b81548152906001019060200180831161098857829003601f168201915b5050505050905090565b60006109ba82611eaf565b6109f0576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3682611f0e565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a9d576040517f943f7b8c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610abc611fda565b73ffffffffffffffffffffffffffffffffffffffff1614610b1f57610ae881610ae3611fda565b611c42565b610b1e576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000610bdb611fe2565b6001546000540303905090565b610bf3838383611feb565b505050565b610c00612392565b73ffffffffffffffffffffffffffffffffffffffff16610c1e611384565b73ffffffffffffffffffffffffffffffffffffffff1614610c74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6b90613617565b60405180910390fd5b6000610c7e610bd1565b9050600a548484905083610c929190613666565b82610c9d91906136c0565b1115610cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd590613762565b60405180910390fd5b60005b84849050811015610d3057610d1d858583818110610d0257610d01613782565b5b9050602002016020810190610d1791906131ca565b8461239a565b8080610d28906137b1565b915050610ce1565b5050505050565b610d3f612392565b73ffffffffffffffffffffffffffffffffffffffff16610d5d611384565b73ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90613617565b60405180910390fd5b610dbb611384565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2590613845565b60405180910390fd5b565b610e4b83838360405180602001604052806000815250611aa3565b505050565b610e58612392565b73ffffffffffffffffffffffffffffffffffffffff16610e76611384565b73ffffffffffffffffffffffffffffffffffffffff1614610ecc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec390613617565b60405180910390fd5b8181600c9182610edd929190613a1c565b505050565b606060008251905060008167ffffffffffffffff811115610f0657610f05612eef565b5b604051908082528060200260200182016040528015610f3f57816020015b610f2c612a12565b815260200190600190039081610f245790505b50905060005b828114610f9857610f6f858281518110610f6257610f61613782565b5b6020026020010151611b16565b828281518110610f8257610f81613782565b5b6020026020010181905250806001019050610f45565b508092505050919050565b600d60009054906101000a900460ff1681565b6000610fc182611f0e565b9050919050565b600b81565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611034576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b61108d612392565b73ffffffffffffffffffffffffffffffffffffffff166110ab611384565b73ffffffffffffffffffffffffffffffffffffffff1614611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f890613617565b60405180910390fd5b61110b600061256c565b565b611115612392565b73ffffffffffffffffffffffffffffffffffffffff16611133611384565b73ffffffffffffffffffffffffffffffffffffffff1614611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090613617565b60405180910390fd5b600d60009054906101000a900460ff1615600d60006101000a81548160ff021916908315150217905550565b6111bd612392565b73ffffffffffffffffffffffffffffffffffffffff166111db611384565b73ffffffffffffffffffffffffffffffffffffffff1614611231576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122890613617565b60405180910390fd5b80600a8190555050565b600a5481565b6060600080600061125185610fcd565b905060008167ffffffffffffffff81111561126f5761126e612eef565b5b60405190808252806020026020018201604052801561129d5781602001602082028036833780820191505090505b5090506112a8612a12565b60006112b2611fe2565b90505b838614611376576112c581612632565b9150816040015161136b57600073ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff161461131057816000015194505b8773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361136a578083878060010198508151811061135d5761135c613782565b5b6020026020010181815250505b5b8060010190506112b5565b508195505050505050919050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113b6612392565b73ffffffffffffffffffffffffffffffffffffffff166113d4611384565b73ffffffffffffffffffffffffffffffffffffffff161461142a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142190613617565b60405180910390fd5b80600b8190555050565b6060600380546114439061359a565b80601f016020809104026020016040519081016040528092919081815260200182805461146f9061359a565b80156114bc5780601f10611491576101008083540402835291602001916114bc565b820191906000526020600020905b81548152906001019060200180831161149f57829003601f168201915b5050505050905090565b60095481565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060818310611550576040517f32c1995a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008061155b61265d565b9050611565611fe2565b85101561157757611574611fe2565b94505b80841115611583578093505b600061158e87610fcd565b9050848610156115b15760008686039050818110156115ab578091505b506115b6565b600090505b60008167ffffffffffffffff8111156115d2576115d1612eef565b5b6040519080825280602002602001820160405280156116005781602001602082028036833780820191505090505b50905060008203611617578094505050505061171a565b600061162288611b16565b90506000816040015161163757816000015190505b60008990505b88811415801561164d5750848714155b1561170c5761165b81612632565b9250826040015161170157600073ffffffffffffffffffffffffffffffffffffffff16836000015173ffffffffffffffffffffffffffffffffffffffff16146116a657826000015191505b8a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361170057808488806001019950815181106116f3576116f2613782565b5b6020026020010181815250505b5b80600101905061163d565b508583528296505050505050505b9392505050565b600d60009054906101000a900460ff1615611771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176890613b38565b60405180910390fd5b600061177b610bd1565b9050600a54828261178c91906136c0565b106117cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c390613ba4565b60405180910390fd5b600b821061180f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180690613c10565b60405180910390fd5b60008290506000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600b548110156118cc57600b54841115611880576001846118799190613c30565b9150611885565b600091505b600b54600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600954826118da9190613666565b34101561191c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191390613cb0565b60405180910390fd5b611926338561239a565b50505050565b611934611fda565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611998576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600760006119a5611fda565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a52611fda565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a979190612b09565b60405180910390a35050565b611aae848484611feb565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611b1057611ad984848484612666565b611b0f576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b611b1e612a12565b611b26612a12565b611b2e611fe2565b831080611b425750611b3e61265d565b8310155b15611b505780915050611b7b565b611b5983612632565b9050806040015115611b6e5780915050611b7b565b611b77836127b6565b9150505b919050565b6060611b8b82611eaf565b611bc1576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611bcb6127d6565b90506000815103611beb5760405180602001604052806000815250611c16565b80611bf584612868565b604051602001611c06929190613d0c565b6040516020818303038152906040525b915050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000807f000000000000000000000000000000000000000000000000000000000000000090508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1663c4552791866040518263ffffffff1660e01b8152600401611cb89190612cad565b602060405180830381865afa158015611cd5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cf99190613d6e565b73ffffffffffffffffffffffffffffffffffffffff1603611d1e576001915050611d2c565b611d2884846128c2565b9150505b92915050565b611d3a612392565b73ffffffffffffffffffffffffffffffffffffffff16611d58611384565b73ffffffffffffffffffffffffffffffffffffffff1614611dae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da590613617565b60405180910390fd5b8060098190555050565b611dc0612392565b73ffffffffffffffffffffffffffffffffffffffff16611dde611384565b73ffffffffffffffffffffffffffffffffffffffff1614611e34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2b90613617565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ea3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9a90613e0d565b60405180910390fd5b611eac8161256c565b50565b600081611eba611fe2565b11158015611ec9575060005482105b8015611f07575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b60008082905080611f1d611fe2565b11611fa357600054811015611fa25760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611fa0575b60008103611f96576004600083600190039350838152602001908152602001600020549050611f6c565b8092505050611fd5565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b600033905090565b60006001905090565b6000611ff682611f0e565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461205d576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff1661207e611fda565b73ffffffffffffffffffffffffffffffffffffffff1614806120ad57506120ac856120a7611fda565b611c42565b5b806120f257506120bb611fda565b73ffffffffffffffffffffffffffffffffffffffff166120da846109af565b73ffffffffffffffffffffffffffffffffffffffff16145b90508061212b576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612191576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61219e8585856001612956565b6006600084815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055507c020000000000000000000000000000000000000000000000000000000060a042901b61229b8661295c565b1717600460008581526020019081526020016000208190555060007c02000000000000000000000000000000000000000000000000000000008316036123235760006001840190506000600460008381526020019081526020016000205403612321576000548114612320578260046000838152602001908152602001600020819055505b5b505b828473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461238b8585856001612966565b5050505050565b600033905090565b600080549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612406576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612440576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61244d6000848385612956565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060e16124b26001841461296c565b901b60a042901b6124c28561295c565b171760046000838152602001908152602001600020819055506000819050600083820190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48082106124e8578160008190555050506125676000848385612966565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b61263a612a12565b6126566004600084815260200190815260200160002054612976565b9050919050565b60008054905090565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261268c611fda565b8786866040518563ffffffff1660e01b81526004016126ae9493929190613e82565b6020604051808303816000875af19250505080156126ea57506040513d601f19601f820116820180604052508101906126e79190613ee3565b60015b612763573d806000811461271a576040519150601f19603f3d011682016040523d82523d6000602084013e61271f565b606091505b50600081510361275b576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b6127be612a12565b6127cf6127ca83611f0e565b612976565b9050919050565b6060600c80546127e59061359a565b80601f01602080910402602001604051908101604052809291908181526020018280546128119061359a565b801561285e5780601f106128335761010080835404028352916020019161285e565b820191906000526020600020905b81548152906001019060200180831161284157829003601f168201915b5050505050905090565b60606080604051019050806040528082600183039250600a81066030018353600a810490505b80156128ae57600183039250600a81066030018353600a8104905061288e565b508181036020830392508083525050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b50505050565b6000819050919050565b50505050565b6000819050919050565b61297e612a12565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c010000000000000000000000000000000000000000000000000000000083161415816040019015159081151581525050919050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681526020016000151581525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612a9e81612a69565b8114612aa957600080fd5b50565b600081359050612abb81612a95565b92915050565b600060208284031215612ad757612ad6612a5f565b5b6000612ae584828501612aac565b91505092915050565b60008115159050919050565b612b0381612aee565b82525050565b6000602082019050612b1e6000830184612afa565b92915050565b6000819050919050565b612b3781612b24565b82525050565b6000602082019050612b526000830184612b2e565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b92578082015181840152602081019050612b77565b83811115612ba1576000848401525b50505050565b6000601f19601f8301169050919050565b6000612bc382612b58565b612bcd8185612b63565b9350612bdd818560208601612b74565b612be681612ba7565b840191505092915050565b60006020820190508181036000830152612c0b8184612bb8565b905092915050565b612c1c81612b24565b8114612c2757600080fd5b50565b600081359050612c3981612c13565b92915050565b600060208284031215612c5557612c54612a5f565b5b6000612c6384828501612c2a565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c9782612c6c565b9050919050565b612ca781612c8c565b82525050565b6000602082019050612cc26000830184612c9e565b92915050565b612cd181612c8c565b8114612cdc57600080fd5b50565b600081359050612cee81612cc8565b92915050565b60008060408385031215612d0b57612d0a612a5f565b5b6000612d1985828601612cdf565b9250506020612d2a85828601612c2a565b9150509250929050565b600080600060608486031215612d4d57612d4c612a5f565b5b6000612d5b86828701612cdf565b9350506020612d6c86828701612cdf565b9250506040612d7d86828701612c2a565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612dac57612dab612d87565b5b8235905067ffffffffffffffff811115612dc957612dc8612d8c565b5b602083019150836020820283011115612de557612de4612d91565b5b9250929050565b600080600060408486031215612e0557612e04612a5f565b5b600084013567ffffffffffffffff811115612e2357612e22612a64565b5b612e2f86828701612d96565b93509350506020612e4286828701612c2a565b9150509250925092565b60008083601f840112612e6257612e61612d87565b5b8235905067ffffffffffffffff811115612e7f57612e7e612d8c565b5b602083019150836001820283011115612e9b57612e9a612d91565b5b9250929050565b60008060208385031215612eb957612eb8612a5f565b5b600083013567ffffffffffffffff811115612ed757612ed6612a64565b5b612ee385828601612e4c565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f2782612ba7565b810181811067ffffffffffffffff82111715612f4657612f45612eef565b5b80604052505050565b6000612f59612a55565b9050612f658282612f1e565b919050565b600067ffffffffffffffff821115612f8557612f84612eef565b5b602082029050602081019050919050565b6000612fa9612fa484612f6a565b612f4f565b90508083825260208201905060208402830185811115612fcc57612fcb612d91565b5b835b81811015612ff55780612fe18882612c2a565b845260208401935050602081019050612fce565b5050509392505050565b600082601f83011261301457613013612d87565b5b8135613024848260208601612f96565b91505092915050565b60006020828403121561304357613042612a5f565b5b600082013567ffffffffffffffff81111561306157613060612a64565b5b61306d84828501612fff565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6130ab81612c8c565b82525050565b600067ffffffffffffffff82169050919050565b6130ce816130b1565b82525050565b6130dd81612aee565b82525050565b6060820160008201516130f960008501826130a2565b50602082015161310c60208501826130c5565b50604082015161311f60408501826130d4565b50505050565b600061313183836130e3565b60608301905092915050565b6000602082019050919050565b600061315582613076565b61315f8185613081565b935061316a83613092565b8060005b8381101561319b5781516131828882613125565b975061318d8361313d565b92505060018101905061316e565b5085935050505092915050565b600060208201905081810360008301526131c2818461314a565b905092915050565b6000602082840312156131e0576131df612a5f565b5b60006131ee84828501612cdf565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61322c81612b24565b82525050565b600061323e8383613223565b60208301905092915050565b6000602082019050919050565b6000613262826131f7565b61326c8185613202565b935061327783613213565b8060005b838110156132a857815161328f8882613232565b975061329a8361324a565b92505060018101905061327b565b5085935050505092915050565b600060208201905081810360008301526132cf8184613257565b905092915050565b6000806000606084860312156132f0576132ef612a5f565b5b60006132fe86828701612cdf565b935050602061330f86828701612c2a565b925050604061332086828701612c2a565b9150509250925092565b61333381612aee565b811461333e57600080fd5b50565b6000813590506133508161332a565b92915050565b6000806040838503121561336d5761336c612a5f565b5b600061337b85828601612cdf565b925050602061338c85828601613341565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156133b6576133b5612eef565b5b6133bf82612ba7565b9050602081019050919050565b82818337600083830152505050565b60006133ee6133e98461339b565b612f4f565b90508281526020810184848401111561340a57613409613396565b5b6134158482856133cc565b509392505050565b600082601f83011261343257613431612d87565b5b81356134428482602086016133db565b91505092915050565b6000806000806080858703121561346557613464612a5f565b5b600061347387828801612cdf565b945050602061348487828801612cdf565b935050604061349587828801612c2a565b925050606085013567ffffffffffffffff8111156134b6576134b5612a64565b5b6134c28782880161341d565b91505092959194509250565b6060820160008201516134e460008501826130a2565b5060208201516134f760208501826130c5565b50604082015161350a60408501826130d4565b50505050565b600060608201905061352560008301846134ce565b92915050565b6000806040838503121561354257613541612a5f565b5b600061355085828601612cdf565b925050602061356185828601612cdf565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806135b257607f821691505b6020821081036135c5576135c461356b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613601602083612b63565b915061360c826135cb565b602082019050919050565b60006020820190508181036000830152613630816135f4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061367182612b24565b915061367c83612b24565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136b5576136b4613637565b5b828202905092915050565b60006136cb82612b24565b91506136d683612b24565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561370b5761370a613637565b5b828201905092915050565b7f45786365656473206d617820737570706c790000000000000000000000000000600082015250565b600061374c601283612b63565b915061375782613716565b602082019050919050565b6000602082019050818103600083015261377b8161373f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137bc82612b24565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137ee576137ed613637565b5b600182019050919050565b7f576974686472617720556e7375636365737366756c0000000000000000000000600082015250565b600061382f601583612b63565b915061383a826137f9565b602082019050919050565b6000602082019050818103600083015261385e81613822565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026138d27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613895565b6138dc8683613895565b95508019841693508086168417925050509392505050565b6000819050919050565b600061391961391461390f84612b24565b6138f4565b612b24565b9050919050565b6000819050919050565b613933836138fe565b61394761393f82613920565b8484546138a2565b825550505050565b600090565b61395c61394f565b61396781848461392a565b505050565b5b8181101561398b57613980600082613954565b60018101905061396d565b5050565b601f8211156139d0576139a181613870565b6139aa84613885565b810160208510156139b9578190505b6139cd6139c585613885565b83018261396c565b50505b505050565b600082821c905092915050565b60006139f3600019846008026139d5565b1980831691505092915050565b6000613a0c83836139e2565b9150826002028217905092915050565b613a268383613865565b67ffffffffffffffff811115613a3f57613a3e612eef565b5b613a49825461359a565b613a5482828561398f565b6000601f831160018114613a835760008415613a71578287013590505b613a7b8582613a00565b865550613ae3565b601f198416613a9186613870565b60005b82811015613ab957848901358255600182019150602085019450602081019050613a94565b86831015613ad65784890135613ad2601f8916826139e2565b8355505b6001600288020188555050505b50505050505050565b7f4d696e74696e6720697320506175736564000000000000000000000000000000600082015250565b6000613b22601183612b63565b9150613b2d82613aec565b602082019050919050565b60006020820190508181036000830152613b5181613b15565b9050919050565b7f4578636565647320537570706c79000000000000000000000000000000000000600082015250565b6000613b8e600e83612b63565b9150613b9982613b58565b602082019050919050565b60006020820190508181036000830152613bbd81613b81565b9050919050565b7f457863656564204d617820537570706c79000000000000000000000000000000600082015250565b6000613bfa601183612b63565b9150613c0582613bc4565b602082019050919050565b60006020820190508181036000830152613c2981613bed565b9050919050565b6000613c3b82612b24565b9150613c4683612b24565b925082821015613c5957613c58613637565b5b828203905092915050565b7f457468657220616d6f756e742073656e742077726f6e67000000000000000000600082015250565b6000613c9a601783612b63565b9150613ca582613c64565b602082019050919050565b60006020820190508181036000830152613cc981613c8d565b9050919050565b600081905092915050565b6000613ce682612b58565b613cf08185613cd0565b9350613d00818560208601612b74565b80840191505092915050565b6000613d188285613cdb565b9150613d248284613cdb565b91508190509392505050565b6000613d3b82612c8c565b9050919050565b613d4b81613d30565b8114613d5657600080fd5b50565b600081519050613d6881613d42565b92915050565b600060208284031215613d8457613d83612a5f565b5b6000613d9284828501613d59565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613df7602683612b63565b9150613e0282613d9b565b604082019050919050565b60006020820190508181036000830152613e2681613dea565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613e5482613e2d565b613e5e8185613e38565b9350613e6e818560208601612b74565b613e7781612ba7565b840191505092915050565b6000608082019050613e976000830187612c9e565b613ea46020830186612c9e565b613eb16040830185612b2e565b8181036060830152613ec38184613e49565b905095945050505050565b600081519050613edd81612a95565b92915050565b600060208284031215613ef957613ef8612a5f565b5b6000613f0784828501613ece565b9150509291505056fea2646970667358221220b706bd0746cc17f3689b9887aad26c365bcd38cf74e05713b1ed82c635d791c564736f6c634300080f0033697066733a2f2f516d5a6831427656723157623170584143784271506b376973744a626938506a487957584b7a75665362557068712f000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1