60806040526001600d553480156200001657600080fd5b5060405162003fd738038062003fd783398181016040528101906200003c919062000290565b6040518060400160405280600481526020017f53656d69000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f53454d49000000000000000000000000000000000000000000000000000000008152508160009081620000b991906200053c565b508060019081620000cb91906200053c565b505050620000ee620000e26200015860201b60201c565b6200016060201b60201c565b600c819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000623565b600033905090565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000258826200022b565b9050919050565b6200026a816200024b565b81146200027657600080fd5b50565b6000815190506200028a816200025f565b92915050565b600060208284031215620002a957620002a862000226565b5b6000620002b98482850162000279565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200034457607f821691505b6020821081036200035a5762000359620002fc565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000385565b620003d0868362000385565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200041d620004176200041184620003e8565b620003f2565b620003e8565b9050919050565b6000819050919050565b6200043983620003fc565b62000451620004488262000424565b84845462000392565b825550505050565b600090565b6200046862000459565b620004758184846200042e565b505050565b5b818110156200049d57620004916000826200045e565b6001810190506200047b565b5050565b601f821115620004ec57620004b68162000360565b620004c18462000375565b81016020851015620004d1578190505b620004e9620004e08562000375565b8301826200047a565b50505b505050565b600082821c905092915050565b60006200051160001984600802620004f1565b1980831691505092915050565b60006200052c8383620004fe565b9150826002028217905092915050565b6200054782620002c2565b67ffffffffffffffff811115620005635762000562620002cd565b5b6200056f82546200032b565b6200057c828285620004a1565b600060209050601f831160018114620005b457600084156200059f578287015190505b620005ab85826200051e565b8655506200061b565b601f198416620005c48662000360565b60005b82811015620005ee57848901518255600182019150602085019450602081019050620005c7565b868310156200060e57848901516200060a601f891682620004fe565b8355505b6001600288020188555050505b505050505050565b6139a480620006336000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063710df68911610104578063b88d4fde116100a2578063c87b56dd11610071578063c87b56dd1461052e578063e985e9c51461055e578063f2fde38b1461058e578063fbe150e4146105aa576101cf565b8063b88d4fde146104a6578063bdffd282146104c2578063be610c59146104e0578063c2207fc4146104fc576101cf565b80638da5cb5b116100de5780638da5cb5b1461041e57806395d89b411461043c578063a22cb4651461045a578063ad2cbdd714610476576101cf565b8063710df689146103da578063715018a6146103f85780637c13cd3814610402576101cf565b80632f745c59116101715780634f6ccce71161014b5780634f6ccce71461032e5780636352211e1461035e5780636a6278421461038e57806370a08231146103aa576101cf565b80632f745c59146102c657806342842e0e146102f657806342966c6814610312576101cf565b8063095ea7b3116101ad578063095ea7b31461025257806318160ddd1461026e57806323b872dd1461028c5780632f43c05d146102a8576101cf565b806301ffc9a7146101d457806306fdde0314610204578063081812fc14610222575b600080fd5b6101ee60048036038101906101e99190612662565b6105da565b6040516101fb91906126aa565b60405180910390f35b61020c6105ec565b6040516102199190612755565b60405180910390f35b61023c600480360381019061023791906127ad565b61067e565b604051610249919061281b565b60405180910390f35b61026c60048036038101906102679190612862565b6106c4565b005b6102766107db565b60405161028391906128b1565b60405180910390f35b6102a660048036038101906102a191906128cc565b6107e8565b005b6102b0610848565b6040516102bd91906128b1565b60405180910390f35b6102e060048036038101906102db9190612862565b61084e565b6040516102ed91906128b1565b60405180910390f35b610310600480360381019061030b91906128cc565b6108f3565b005b61032c600480360381019061032791906127ad565b610913565b005b610348600480360381019061034391906127ad565b61096f565b60405161035591906128b1565b60405180910390f35b610378600480360381019061037391906127ad565b6109e0565b604051610385919061281b565b60405180910390f35b6103a860048036038101906103a3919061291f565b610a91565b005b6103c460048036038101906103bf919061291f565b610b91565b6040516103d191906128b1565b60405180910390f35b6103e2610c48565b6040516103ef9190612968565b60405180910390f35b610400610c4d565b005b61041c60048036038101906104179190612983565b610c61565b005b610426610d12565b604051610433919061281b565b60405180910390f35b610444610d3c565b6040516104519190612755565b60405180910390f35b610474600480360381019061046f91906129ef565b610dce565b005b610490600480360381019061048b91906127ad565b610de4565b60405161049d91906128b1565b60405180910390f35b6104c060048036038101906104bb9190612b64565b610dfc565b005b6104ca610e5e565b6040516104d79190612968565b60405180910390f35b6104fa60048036038101906104f5919061291f565b610e63565b005b610516600480360381019061051191906127ad565b610ee9565b60405161052593929190612be7565b60405180910390f35b610548600480360381019061054391906127ad565b610f3a565b6040516105559190612755565b60405180910390f35b61057860048036038101906105739190612c1e565b61110e565b60405161058591906126aa565b60405180910390f35b6105a860048036038101906105a3919061291f565b6111a2565b005b6105c460048036038101906105bf91906127ad565b611225565b6040516105d1919061281b565b60405180910390f35b60006105e582611264565b9050919050565b6060600080546105fb90612c8d565b80601f016020809104026020016040519081016040528092919081815260200182805461062790612c8d565b80156106745780601f1061064957610100808354040283529160200191610674565b820191906000526020600020905b81548152906001019060200180831161065757829003601f168201915b5050505050905090565b6000610689826112de565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106cf826109e0565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361073f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161073690612d30565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661075e611329565b73ffffffffffffffffffffffffffffffffffffffff16148061078d575061078c81610787611329565b61110e565b5b6107cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c390612dc2565b60405180910390fd5b6107d68383611331565b505050565b6000600880549050905090565b6107f96107f3611329565b826113ea565b610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f90612e54565b60405180910390fd5b61084383838361147f565b505050565b600d5481565b600061085983610b91565b821061089a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089190612ee6565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b61090e83838360405180602001604052806000815250610dfc565b505050565b61092461091e611329565b826113ea565b610963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095a90612e54565b60405180910390fd5b61096c816116e5565b50565b60006109796107db565b82106109ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b190612f78565b60405180910390fd5b600882815481106109ce576109cd612f98565b5b90600052602060002001549050919050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610a88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7f90613013565b60405180910390fd5b80915050919050565b610a9b600b611802565b6000610aa7600b611818565b90506040518060600160405280600560ff16834340604051602001610acd92919061307f565b6040516020818303038152906040528051906020012060001c610af091906130da565b60ff168152602001600060ff168152602001600060ff16815250600f600083815260200190815260200160002060008201518160000160006101000a81548160ff021916908360ff16021790555060208201518160000160016101000a81548160ff021916908360ff16021790555060408201518160000160026101000a81548160ff021916908360ff160217905550905050610b8d8282611826565b5050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf89061317d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600581565b610c55611844565b610c5f60006118c2565b565b610c72610c6c611329565b836113ea565b610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca89061320f565b60405180910390fd5b600d54811115610cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ced9061327b565b60405180910390fd5b80600e6000848152602001908152602001600020819055505050565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610d4b90612c8d565b80601f0160208091040260200160405190810160405280929190818152602001828054610d7790612c8d565b8015610dc45780601f10610d9957610100808354040283529160200191610dc4565b820191906000526020600020905b815481529060010190602001808311610da757829003601f168201915b5050505050905090565b610de0610dd9611329565b8383611988565b5050565b600e6020528060005260406000206000915090505481565b610e0d610e07611329565b836113ea565b610e4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4390612e54565b60405180910390fd5b610e5884848484611af4565b50505050565b60ff81565b610e6b611844565b600c819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d6000815480929190610ee1906132ca565b919050555050565b600f6020528060005260406000206000915090508060000160009054906101000a900460ff16908060000160019054906101000a900460ff16908060000160029054906101000a900460ff16905083565b60606000600e600084815260200190815260200160002054111561103b57600c6001600e600085815260200190815260200160002054610f7a9190613312565b81548110610f8b57610f8a612f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b8152600401610fee91906128b1565b600060405180830381865afa15801561100b573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061103491906133e7565b9050611109565b600c6001600d5461104c9190613312565b8154811061105d5761105c612f98565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c87b56dd836040518263ffffffff1660e01b81526004016110c091906128b1565b600060405180830381865afa1580156110dd573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061110691906133e7565b90505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111aa611844565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611219576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611210906134a2565b60405180910390fd5b611222816118c2565b50565b600c818154811061123557600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806112d757506112d682611b50565b5b9050919050565b6112e781611c32565b611326576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131d90613013565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166113a4836109e0565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806113f6836109e0565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806114385750611437818561110e565b5b8061147657508373ffffffffffffffffffffffffffffffffffffffff1661145e8461067e565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661149f826109e0565b73ffffffffffffffffffffffffffffffffffffffff16146114f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ec90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155b906135c6565b60405180910390fd5b61156f838383611c9e565b61157a600082611331565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115ca9190613312565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461162191906135e6565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46116e0838383611d8c565b505050565b60006116f0826109e0565b90506116fe81600084611c9e565b611709600083611331565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117599190613312565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46117fe81600084611d8c565b5050565b6001816000016000828254019250508190555050565b600081600001549050919050565b611840828260405180602001604052806000815250611d91565b5050565b61184c611329565b73ffffffffffffffffffffffffffffffffffffffff1661186a610d12565b73ffffffffffffffffffffffffffffffffffffffff16146118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613666565b60405180910390fd5b565b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ed906136d2565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ae791906126aa565b60405180910390a3505050565b611aff84848461147f565b611b0b84848484611dec565b611b4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4190613764565b60405180910390fd5b50505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611c1b57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611c2b5750611c2a82611f73565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b611ca9838383611fdd565b60ff8016814340604051602001611cc192919061307f565b6040516020818303038152906040528051906020012060001c611ce491906130da565b600f600083815260200190815260200160002060000160016101000a81548160ff021916908360ff16021790555060ff8016600182611d2391906135e6565b4340604051602001611d3692919061307f565b6040516020818303038152906040528051906020012060001c611d5991906130da565b600f600083815260200190815260200160002060000160026101000a81548160ff021916908360ff160217905550505050565b505050565b611d9b83836120ef565b611da86000848484611dec565b611de7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dde90613764565b60405180910390fd5b505050565b6000611e0d8473ffffffffffffffffffffffffffffffffffffffff166122c8565b15611f66578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611e36611329565b8786866040518563ffffffff1660e01b8152600401611e5894939291906137d9565b6020604051808303816000875af1925050508015611e9457506040513d601f19601f82011682018060405250810190611e91919061383a565b60015b611f16573d8060008114611ec4576040519150601f19603f3d011682016040523d82523d6000602084013e611ec9565b606091505b506000815103611f0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0590613764565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050611f6b565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611fe88383836122eb565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361202a57612025816122f0565b612069565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612068576120678382612339565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120ab576120a6816124a6565b6120ea565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146120e9576120e88282612577565b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361215e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612155906138b3565b60405180910390fd5b61216781611c32565b156121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219e9061391f565b60405180910390fd5b6121b360008383611c9e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461220391906135e6565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46122c460008383611d8c565b5050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161234684610b91565b6123509190613312565b9050600060076000848152602001908152602001600020549050818114612435576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506124ba9190613312565b90506000600960008481526020019081526020016000205490506000600883815481106124ea576124e9612f98565b5b90600052602060002001549050806008838154811061250c5761250b612f98565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061255b5761255a61393f565b5b6001900381819060005260206000200160009055905550505050565b600061258283610b91565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61263f8161260a565b811461264a57600080fd5b50565b60008135905061265c81612636565b92915050565b60006020828403121561267857612677612600565b5b60006126868482850161264d565b91505092915050565b60008115159050919050565b6126a48161268f565b82525050565b60006020820190506126bf600083018461269b565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126ff5780820151818401526020810190506126e4565b60008484015250505050565b6000601f19601f8301169050919050565b6000612727826126c5565b61273181856126d0565b93506127418185602086016126e1565b61274a8161270b565b840191505092915050565b6000602082019050818103600083015261276f818461271c565b905092915050565b6000819050919050565b61278a81612777565b811461279557600080fd5b50565b6000813590506127a781612781565b92915050565b6000602082840312156127c3576127c2612600565b5b60006127d184828501612798565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612805826127da565b9050919050565b612815816127fa565b82525050565b6000602082019050612830600083018461280c565b92915050565b61283f816127fa565b811461284a57600080fd5b50565b60008135905061285c81612836565b92915050565b6000806040838503121561287957612878612600565b5b60006128878582860161284d565b925050602061289885828601612798565b9150509250929050565b6128ab81612777565b82525050565b60006020820190506128c660008301846128a2565b92915050565b6000806000606084860312156128e5576128e4612600565b5b60006128f38682870161284d565b93505060206129048682870161284d565b925050604061291586828701612798565b9150509250925092565b60006020828403121561293557612934612600565b5b60006129438482850161284d565b91505092915050565b600060ff82169050919050565b6129628161294c565b82525050565b600060208201905061297d6000830184612959565b92915050565b6000806040838503121561299a57612999612600565b5b60006129a885828601612798565b92505060206129b985828601612798565b9150509250929050565b6129cc8161268f565b81146129d757600080fd5b50565b6000813590506129e9816129c3565b92915050565b60008060408385031215612a0657612a05612600565b5b6000612a148582860161284d565b9250506020612a25858286016129da565b9150509250929050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a718261270b565b810181811067ffffffffffffffff82111715612a9057612a8f612a39565b5b80604052505050565b6000612aa36125f6565b9050612aaf8282612a68565b919050565b600067ffffffffffffffff821115612acf57612ace612a39565b5b612ad88261270b565b9050602081019050919050565b82818337600083830152505050565b6000612b07612b0284612ab4565b612a99565b905082815260208101848484011115612b2357612b22612a34565b5b612b2e848285612ae5565b509392505050565b600082601f830112612b4b57612b4a612a2f565b5b8135612b5b848260208601612af4565b91505092915050565b60008060008060808587031215612b7e57612b7d612600565b5b6000612b8c8782880161284d565b9450506020612b9d8782880161284d565b9350506040612bae87828801612798565b925050606085013567ffffffffffffffff811115612bcf57612bce612605565b5b612bdb87828801612b36565b91505092959194509250565b6000606082019050612bfc6000830186612959565b612c096020830185612959565b612c166040830184612959565b949350505050565b60008060408385031215612c3557612c34612600565b5b6000612c438582860161284d565b9250506020612c548582860161284d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ca557607f821691505b602082108103612cb857612cb7612c5e565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1a6021836126d0565b9150612d2582612cbe565b604082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b6000612dac603e836126d0565b9150612db782612d50565b604082019050919050565b60006020820190508181036000830152612ddb81612d9f565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612e3e602e836126d0565b9150612e4982612de2565b604082019050919050565b60006020820190508181036000830152612e6d81612e31565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000612ed0602b836126d0565b9150612edb82612e74565b604082019050919050565b60006020820190508181036000830152612eff81612ec3565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000612f62602c836126d0565b9150612f6d82612f06565b604082019050919050565b60006020820190508181036000830152612f9181612f55565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000612ffd6018836126d0565b915061300882612fc7565b602082019050919050565b6000602082019050818103600083015261302c81612ff0565b9050919050565b6000819050919050565b61304e61304982612777565b613033565b82525050565b6000819050919050565b6000819050919050565b61307961307482613054565b61305e565b82525050565b600061308b828561303d565b60208201915061309b8284613068565b6020820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e582612777565b91506130f083612777565b925082613100576130ff6130ab565b5b828206905092915050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b60006131676029836126d0565b91506131728261310b565b604082019050919050565b600060208201905081810360008301526131968161315a565b9050919050565b7f53656d693a2063616c6c6572206973206e6f7420746f6b656e206f776e65722060008201527f6e6f7220617070726f7665640000000000000000000000000000000000000000602082015250565b60006131f9602c836126d0565b91506132048261319d565b604082019050919050565b60006020820190508181036000830152613228816131ec565b9050919050565b7f53656d693a20696e76616c69642076657273696f6e0000000000000000000000600082015250565b60006132656015836126d0565b91506132708261322f565b602082019050919050565b6000602082019050818103600083015261329481613258565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006132d582612777565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133075761330661329b565b5b600182019050919050565b600061331d82612777565b915061332883612777565b92508282039050818111156133405761333f61329b565b5b92915050565b600067ffffffffffffffff82111561336157613360612a39565b5b61336a8261270b565b9050602081019050919050565b600061338a61338584613346565b612a99565b9050828152602081018484840111156133a6576133a5612a34565b5b6133b18482856126e1565b509392505050565b600082601f8301126133ce576133cd612a2f565b5b81516133de848260208601613377565b91505092915050565b6000602082840312156133fd576133fc612600565b5b600082015167ffffffffffffffff81111561341b5761341a612605565b5b613427848285016133b9565b91505092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061348c6026836126d0565b915061349782613430565b604082019050919050565b600060208201905081810360008301526134bb8161347f565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b600061351e6025836126d0565b9150613529826134c2565b604082019050919050565b6000602082019050818103600083015261354d81613511565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006135b06024836126d0565b91506135bb82613554565b604082019050919050565b600060208201905081810360008301526135df816135a3565b9050919050565b60006135f182612777565b91506135fc83612777565b92508282019050808211156136145761361361329b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006136506020836126d0565b915061365b8261361a565b602082019050919050565b6000602082019050818103600083015261367f81613643565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006136bc6019836126d0565b91506136c782613686565b602082019050919050565b600060208201905081810360008301526136eb816136af565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061374e6032836126d0565b9150613759826136f2565b604082019050919050565b6000602082019050818103600083015261377d81613741565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006137ab82613784565b6137b5818561378f565b93506137c58185602086016126e1565b6137ce8161270b565b840191505092915050565b60006080820190506137ee600083018761280c565b6137fb602083018661280c565b61380860408301856128a2565b818103606083015261381a81846137a0565b905095945050505050565b60008151905061383481612636565b92915050565b6000602082840312156138505761384f612600565b5b600061385e84828501613825565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061389d6020836126d0565b91506138a882613867565b602082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613909601c836126d0565b9150613914826138d3565b602082019050919050565b60006020820190508181036000830152613938816138fc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220c7184fd7691bc5723466c9c4949a2b30ee52ee4331e9057615ea3787e06435e564736f6c6343000811003300000000000000000000000057d7941bd5f1fb022b9ca2cb7750cdd64f990931