60806040526000600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040518060400160405280600981526020017f476f62627920476f6200000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f474f4242590000000000000000000000000000000000000000000000000000008152508160009080519060200190620000cc929190620001dc565b508060019080519060200190620000e5929190620001dc565b50505062000108620000fc6200010e60201b60201c565b6200011660201b60201c565b620002f1565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001ea906200028c565b90600052602060002090601f0160209004810192826200020e57600085556200025a565b82601f106200022957805160ff19168380011785556200025a565b828001600101855582156200025a579182015b82811115620002595782518255916020019190600101906200023c565b5b5090506200026991906200026d565b5090565b5b80821115620002885760008160009055506001016200026e565b5090565b60006002820490506001821680620002a557607f821691505b60208210811415620002bc57620002bb620002c2565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613d2b80620003016000396000f3fe6080604052600436106101e35760003560e01c806375d0abfa11610102578063d642b4b111610095578063edec5f2711610064578063edec5f27146106d5578063f2fde38b146106fe578063f655ff2214610727578063fdd0f3ca1461073e576101e3565b8063d642b4b11461062b578063df3fdf0014610656578063e3e3506214610681578063e985e9c514610698576101e3565b806397304ced116100d157806397304ced14610580578063a22cb4651461059c578063b88d4fde146105c5578063c87b56dd146105ee576101e3565b806375d0abfa146104c257806381b97161146104ed5780638da5cb5b1461052a57806395d89b4114610555576101e3565b806342842e0e1161017a5780636c0360eb116101495780636c0360eb1461041857806370a082311461044357806371273bb714610480578063715018a6146104ab576101e3565b806342842e0e1461036057806351cff8d91461038957806355f804b3146103b25780636352211e146103db576101e3565b806318160ddd116101b657806318160ddd146102b657806323b872dd146102e157806331f9c9191461030a57806332cb6b0c14610335576101e3565b806301ffc9a7146101e857806306fdde0314610225578063081812fc14610250578063095ea7b31461028d575b600080fd5b3480156101f457600080fd5b5061020f600480360381019061020a9190612a40565b610769565b60405161021c9190612f57565b60405180910390f35b34801561023157600080fd5b5061023a61084b565b6040516102479190612f72565b60405180910390f35b34801561025c57600080fd5b5061027760048036038101906102729190612ae3565b6108dd565b6040516102849190612ef0565b60405180910390f35b34801561029957600080fd5b506102b460048036038101906102af91906129b7565b610962565b005b3480156102c257600080fd5b506102cb610a7a565b6040516102d89190613234565b60405180910390f35b3480156102ed57600080fd5b50610308600480360381019061030391906128a1565b610a80565b005b34801561031657600080fd5b5061031f610ae0565b60405161032c9190612f57565b60405180910390f35b34801561034157600080fd5b5061034a610af3565b6040516103579190613234565b60405180910390f35b34801561036c57600080fd5b50610387600480360381019061038291906128a1565b610af9565b005b34801561039557600080fd5b506103b060048036038101906103ab9190612834565b610b19565b005b3480156103be57600080fd5b506103d960048036038101906103d49190612a9a565b610be5565b005b3480156103e757600080fd5b5061040260048036038101906103fd9190612ae3565b610c7b565b60405161040f9190612ef0565b60405180910390f35b34801561042457600080fd5b5061042d610d2d565b60405161043a9190612f72565b60405180910390f35b34801561044f57600080fd5b5061046a60048036038101906104659190612834565b610dbb565b6040516104779190613234565b60405180910390f35b34801561048c57600080fd5b50610495610e73565b6040516104a29190613234565b60405180910390f35b3480156104b757600080fd5b506104c0610e78565b005b3480156104ce57600080fd5b506104d7610f00565b6040516104e49190613234565b60405180910390f35b3480156104f957600080fd5b50610514600480360381019061050f9190612834565b610f05565b6040516105219190613234565b60405180910390f35b34801561053657600080fd5b5061053f610f1d565b60405161054c9190612ef0565b60405180910390f35b34801561056157600080fd5b5061056a610f47565b6040516105779190612f72565b60405180910390f35b61059a60048036038101906105959190612ae3565b610fd9565b005b3480156105a857600080fd5b506105c360048036038101906105be9190612977565b6111f7565b005b3480156105d157600080fd5b506105ec60048036038101906105e791906128f4565b611378565b005b3480156105fa57600080fd5b5061061560048036038101906106109190612ae3565b6113da565b6040516106229190612f72565b60405180910390f35b34801561063757600080fd5b506106406114b8565b60405161064d9190613234565b60405180910390f35b34801561066257600080fd5b5061066b6114c3565b6040516106789190612f72565b60405180910390f35b34801561068d57600080fd5b506106966114fc565b005b3480156106a457600080fd5b506106bf60048036038101906106ba9190612861565b611689565b6040516106cc9190612f57565b60405180910390f35b3480156106e157600080fd5b506106fc60048036038101906106f791906129f7565b61171d565b005b34801561070a57600080fd5b5061072560048036038101906107209190612834565b61181b565b005b34801561073357600080fd5b5061073c611913565b005b34801561074a57600080fd5b506107536119bb565b6040516107609190612f57565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061083457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806108445750610843826119ce565b5b9050919050565b60606000805461085a90613510565b80601f016020809104026020016040519081016040528092919081815260200182805461088690613510565b80156108d35780601f106108a8576101008083540402835291602001916108d3565b820191906000526020600020905b8154815290600101906020018083116108b657829003601f168201915b5050505050905090565b60006108e882611a38565b610927576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091e906130f4565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061096d82610c7b565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d590613194565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166109fd611aa4565b73ffffffffffffffffffffffffffffffffffffffff161480610a2c5750610a2b81610a26611aa4565b611689565b5b610a6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6290613074565b60405180910390fd5b610a758383611aac565b505050565b60075481565b610a91610a8b611aa4565b82611b65565b610ad0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac7906131d4565b60405180910390fd5b610adb838383611c43565b505050565b600860009054906101000a900460ff1681565b6107d081565b610b1483838360405180602001604052806000815250611378565b505050565b610b21611aa4565b73ffffffffffffffffffffffffffffffffffffffff16610b3f610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c90613114565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610be0573d6000803e3d6000fd5b505050565b610bed611aa4565b73ffffffffffffffffffffffffffffffffffffffff16610c0b610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614610c61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5890613114565b60405180910390fd5b80600a9080519060200190610c779291906125aa565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1b906130b4565b60405180910390fd5b80915050919050565b600a8054610d3a90613510565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6690613510565b8015610db35780601f10610d8857610100808354040283529160200191610db3565b820191906000526020600020905b815481529060010190602001808311610d9657829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2390613094565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600381565b610e80611aa4565b73ffffffffffffffffffffffffffffffffffffffff16610e9e610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614610ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eeb90613114565b60405180910390fd5b610efe6000611e9f565b565b606481565b60096020528060005260406000206000915090505481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610f5690613510565b80601f0160208091040260200160405190810160405280929190818152602001828054610f8290613510565b8015610fcf5780601f10610fa457610100808354040283529160200191610fcf565b820191906000526020600020905b815481529060010190602001808311610fb257829003601f168201915b5050505050905090565b6000600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600860009054906101000a900460ff1661106c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106390612ff4565b60405180910390fd5b808211156110af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a690613134565b60405180910390fd5b6107d0826007546110c09190613345565b1115611101576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f8906131f4565b60405180910390fd5b348266f8b0a10e47000061111591906133cc565b14611155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114c906131b4565b60405180910390fd5b81816111619190613426565b600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060005b828110156111d9576111c633826007546111c19190613345565b611f65565b80806111d190613573565b9150506111a7565b5081600760008282546111ec9190613345565b925050819055505050565b6111ff611aa4565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561126d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161126490613034565b60405180910390fd5b806005600061127a611aa4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611327611aa4565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161136c9190612f57565b60405180910390a35050565b611389611383611aa4565b83611b65565b6113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf906131d4565b60405180910390fd5b6113d484848484611f83565b50505050565b60606113e582611a38565b611424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141b90613174565b60405180910390fd5b600061142e611fdf565b9050600081511161144e57604051806020016040528060008152506114b0565b8061145884612071565b6040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506040516020016114a093929190612ebf565b6040516020818303038152906040525b915050919050565b66f8b0a10e47000081565b6040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525081565b611504611aa4565b73ffffffffffffffffffffffffffffffffffffffff16611522610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614611578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156f90613114565b60405180910390fd5b6107d0606460075461158a9190613345565b11156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c2906131f4565b60405180910390fd5b600860019054906101000a900460ff161561161b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161290613214565b60405180910390fd5b60005b60648110156116515761163e33826007546116399190613345565b611f65565b808061164990613573565b91505061161e565b506064600760008282546116659190613345565b925050819055506001600860016101000a81548160ff021916908315150217905550565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611725611aa4565b73ffffffffffffffffffffffffffffffffffffffff16611743610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614611799576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179090613114565b60405180910390fd5b60005b8151811015611817576003600960008484815181106117be576117bd61367a565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061180f90613573565b91505061179c565b5050565b611823611aa4565b73ffffffffffffffffffffffffffffffffffffffff16611841610f1d565b73ffffffffffffffffffffffffffffffffffffffff1614611897576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188e90613114565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611907576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fe90612fb4565b60405180910390fd5b61191081611e9f565b50565b61191b611aa4565b73ffffffffffffffffffffffffffffffffffffffff16611939610f1d565b73ffffffffffffffffffffffffffffffffffffffff161461198f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198690613114565b60405180910390fd5b600860009054906101000a900460ff1615600860006101000a81548160ff021916908315150217905550565b600860019054906101000a900460ff1681565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611b1f83610c7b565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000611b7082611a38565b611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690613054565b60405180910390fd5b6000611bba83610c7b565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c2957508373ffffffffffffffffffffffffffffffffffffffff16611c11846108dd565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c3a5750611c398185611689565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611c6382610c7b565b73ffffffffffffffffffffffffffffffffffffffff1614611cb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb090613154565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2090613014565b60405180910390fd5b611d348383836121d2565b611d3f600082611aac565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d8f9190613426565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611de69190613345565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611f7f8282604051806020016040528060008152506121d7565b5050565b611f8e848484611c43565b611f9a84848484612232565b611fd9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd090612f94565b60405180910390fd5b50505050565b6060600a8054611fee90613510565b80601f016020809104026020016040519081016040528092919081815260200182805461201a90613510565b80156120675780601f1061203c57610100808354040283529160200191612067565b820191906000526020600020905b81548152906001019060200180831161204a57829003601f168201915b5050505050905090565b606060008214156120b9576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506121cd565b600082905060005b600082146120eb5780806120d490613573565b915050600a826120e4919061339b565b91506120c1565b60008167ffffffffffffffff811115612107576121066136a9565b5b6040519080825280601f01601f1916602001820160405280156121395781602001600182028036833780820191505090505b5090505b600085146121c6576001826121529190613426565b9150600a8561216191906135bc565b603061216d9190613345565b60f81b8183815181106121835761218261367a565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121bf919061339b565b945061213d565b8093505050505b919050565b505050565b6121e183836123c9565b6121ee6000848484612232565b61222d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222490612f94565b60405180910390fd5b505050565b60006122538473ffffffffffffffffffffffffffffffffffffffff16612597565b156123bc578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261227c611aa4565b8786866040518563ffffffff1660e01b815260040161229e9493929190612f0b565b602060405180830381600087803b1580156122b857600080fd5b505af19250505080156122e957506040513d601f19601f820116820180604052508101906122e69190612a6d565b60015b61236c573d8060008114612319576040519150601f19603f3d011682016040523d82523d6000602084013e61231e565b606091505b50600081511415612364576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235b90612f94565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506123c1565b600190505b949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612439576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612430906130d4565b60405180910390fd5b61244281611a38565b15612482576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161247990612fd4565b60405180910390fd5b61248e600083836121d2565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124de9190613345565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b8280546125b690613510565b90600052602060002090601f0160209004810192826125d8576000855561261f565b82601f106125f157805160ff191683800117855561261f565b8280016001018555821561261f579182015b8281111561261e578251825591602001919060010190612603565b5b50905061262c9190612630565b5090565b5b80821115612649576000816000905550600101612631565b5090565b600061266061265b84613274565b61324f565b90508083825260208201905082856020860282011115612683576126826136dd565b5b60005b858110156126b357816126998882612741565b845260208401935060208301925050600181019050612686565b5050509392505050565b60006126d06126cb846132a0565b61324f565b9050828152602081018484840111156126ec576126eb6136e2565b5b6126f78482856134ce565b509392505050565b600061271261270d846132d1565b61324f565b90508281526020810184848401111561272e5761272d6136e2565b5b6127398482856134ce565b509392505050565b60008135905061275081613c99565b92915050565b600082601f83011261276b5761276a6136d8565b5b813561277b84826020860161264d565b91505092915050565b60008135905061279381613cb0565b92915050565b6000813590506127a881613cc7565b92915050565b6000815190506127bd81613cc7565b92915050565b600082601f8301126127d8576127d76136d8565b5b81356127e88482602086016126bd565b91505092915050565b600082601f830112612806576128056136d8565b5b81356128168482602086016126ff565b91505092915050565b60008135905061282e81613cde565b92915050565b60006020828403121561284a576128496136ec565b5b600061285884828501612741565b91505092915050565b60008060408385031215612878576128776136ec565b5b600061288685828601612741565b925050602061289785828601612741565b9150509250929050565b6000806000606084860312156128ba576128b96136ec565b5b60006128c886828701612741565b93505060206128d986828701612741565b92505060406128ea8682870161281f565b9150509250925092565b6000806000806080858703121561290e5761290d6136ec565b5b600061291c87828801612741565b945050602061292d87828801612741565b935050604061293e8782880161281f565b925050606085013567ffffffffffffffff81111561295f5761295e6136e7565b5b61296b878288016127c3565b91505092959194509250565b6000806040838503121561298e5761298d6136ec565b5b600061299c85828601612741565b92505060206129ad85828601612784565b9150509250929050565b600080604083850312156129ce576129cd6136ec565b5b60006129dc85828601612741565b92505060206129ed8582860161281f565b9150509250929050565b600060208284031215612a0d57612a0c6136ec565b5b600082013567ffffffffffffffff811115612a2b57612a2a6136e7565b5b612a3784828501612756565b91505092915050565b600060208284031215612a5657612a556136ec565b5b6000612a6484828501612799565b91505092915050565b600060208284031215612a8357612a826136ec565b5b6000612a91848285016127ae565b91505092915050565b600060208284031215612ab057612aaf6136ec565b5b600082013567ffffffffffffffff811115612ace57612acd6136e7565b5b612ada848285016127f1565b91505092915050565b600060208284031215612af957612af86136ec565b5b6000612b078482850161281f565b91505092915050565b612b198161345a565b82525050565b612b288161346c565b82525050565b6000612b3982613302565b612b438185613318565b9350612b538185602086016134dd565b612b5c816136f1565b840191505092915050565b6000612b728261330d565b612b7c8185613329565b9350612b8c8185602086016134dd565b612b95816136f1565b840191505092915050565b6000612bab8261330d565b612bb5818561333a565b9350612bc58185602086016134dd565b80840191505092915050565b6000612bde603283613329565b9150612be982613702565b604082019050919050565b6000612c01602683613329565b9150612c0c82613751565b604082019050919050565b6000612c24601c83613329565b9150612c2f826137a0565b602082019050919050565b6000612c47602583613329565b9150612c52826137c9565b604082019050919050565b6000612c6a602483613329565b9150612c7582613818565b604082019050919050565b6000612c8d601983613329565b9150612c9882613867565b602082019050919050565b6000612cb0602c83613329565b9150612cbb82613890565b604082019050919050565b6000612cd3603883613329565b9150612cde826138df565b604082019050919050565b6000612cf6602a83613329565b9150612d018261392e565b604082019050919050565b6000612d19602983613329565b9150612d248261397d565b604082019050919050565b6000612d3c602083613329565b9150612d47826139cc565b602082019050919050565b6000612d5f602c83613329565b9150612d6a826139f5565b604082019050919050565b6000612d82602083613329565b9150612d8d82613a44565b602082019050919050565b6000612da5602783613329565b9150612db082613a6d565b604082019050919050565b6000612dc8602983613329565b9150612dd382613abc565b604082019050919050565b6000612deb602f83613329565b9150612df682613b0b565b604082019050919050565b6000612e0e602183613329565b9150612e1982613b5a565b604082019050919050565b6000612e31601583613329565b9150612e3c82613ba9565b602082019050919050565b6000612e54603183613329565b9150612e5f82613bd2565b604082019050919050565b6000612e77602b83613329565b9150612e8282613c21565b604082019050919050565b6000612e9a601783613329565b9150612ea582613c70565b602082019050919050565b612eb9816134c4565b82525050565b6000612ecb8286612ba0565b9150612ed78285612ba0565b9150612ee38284612ba0565b9150819050949350505050565b6000602082019050612f056000830184612b10565b92915050565b6000608082019050612f206000830187612b10565b612f2d6020830186612b10565b612f3a6040830185612eb0565b8181036060830152612f4c8184612b2e565b905095945050505050565b6000602082019050612f6c6000830184612b1f565b92915050565b60006020820190508181036000830152612f8c8184612b67565b905092915050565b60006020820190508181036000830152612fad81612bd1565b9050919050565b60006020820190508181036000830152612fcd81612bf4565b9050919050565b60006020820190508181036000830152612fed81612c17565b9050919050565b6000602082019050818103600083015261300d81612c3a565b9050919050565b6000602082019050818103600083015261302d81612c5d565b9050919050565b6000602082019050818103600083015261304d81612c80565b9050919050565b6000602082019050818103600083015261306d81612ca3565b9050919050565b6000602082019050818103600083015261308d81612cc6565b9050919050565b600060208201905081810360008301526130ad81612ce9565b9050919050565b600060208201905081810360008301526130cd81612d0c565b9050919050565b600060208201905081810360008301526130ed81612d2f565b9050919050565b6000602082019050818103600083015261310d81612d52565b9050919050565b6000602082019050818103600083015261312d81612d75565b9050919050565b6000602082019050818103600083015261314d81612d98565b9050919050565b6000602082019050818103600083015261316d81612dbb565b9050919050565b6000602082019050818103600083015261318d81612dde565b9050919050565b600060208201905081810360008301526131ad81612e01565b9050919050565b600060208201905081810360008301526131cd81612e24565b9050919050565b600060208201905081810360008301526131ed81612e47565b9050919050565b6000602082019050818103600083015261320d81612e6a565b9050919050565b6000602082019050818103600083015261322d81612e8d565b9050919050565b60006020820190506132496000830184612eb0565b92915050565b600061325961326a565b90506132658282613542565b919050565b6000604051905090565b600067ffffffffffffffff82111561328f5761328e6136a9565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156132bb576132ba6136a9565b5b6132c4826136f1565b9050602081019050919050565b600067ffffffffffffffff8211156132ec576132eb6136a9565b5b6132f5826136f1565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613350826134c4565b915061335b836134c4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133905761338f6135ed565b5b828201905092915050565b60006133a6826134c4565b91506133b1836134c4565b9250826133c1576133c061361c565b5b828204905092915050565b60006133d7826134c4565b91506133e2836134c4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561341b5761341a6135ed565b5b828202905092915050565b6000613431826134c4565b915061343c836134c4565b92508282101561344f5761344e6135ed565b5b828203905092915050565b6000613465826134a4565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156134fb5780820151818401526020810190506134e0565b8381111561350a576000848401525b50505050565b6000600282049050600182168061352857607f821691505b6020821081141561353c5761353b61364b565b5b50919050565b61354b826136f1565b810181811067ffffffffffffffff8211171561356a576135696136a9565b5b80604052505050565b600061357e826134c4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135b1576135b06135ed565b5b600182019050919050565b60006135c7826134c4565b91506135d2836134c4565b9250826135e2576135e161361c565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4d696e74696e67206973206e6f7420617661696c61626c65206174207468697360008201527f2074696d65000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f496e74656e646564206d696e7420616d6f756e74206578636565647320616c6c60008201527f6f636174696f6e00000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f496e636f7272656374206d696e74696e67206665650000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f496e74656e646564206d696e7420616d6f756e742065786365656473206d617860008201527f696d756d20737570706c79000000000000000000000000000000000000000000602082015250565b7f547265617375727920616c7265616479206d696e746564000000000000000000600082015250565b613ca28161345a565b8114613cad57600080fd5b50565b613cb98161346c565b8114613cc457600080fd5b50565b613cd081613478565b8114613cdb57600080fd5b50565b613ce7816134c4565b8114613cf257600080fd5b5056fea264697066735822122096a7800ad5a80124fce7964b8fa82a15258257e8f7722e9d06a86f5bf306c96f64736f6c63430008070033