IFRoaXMgcHJvamVjdCBoYXMgYmVlbiBhbGl2ZSBmb3IgbWFueSB5ZWFycy4gQ291bnRsZXNzIHBlb3BsZSBoYXZlIHByb3ZpZGVkCiBmZWVkYmFjayB0aGF0IGhhdmUgaW1wcm92ZWQgY3VybC4gSGVyZSBmb2xsb3dzIGEgbGlzdCBvZiBwZW9wbGUgdGhhdCBoYXZlCiBjb250cmlidXRlZCAoYS16IG9yZGVyKS4KCiBJZiB5b3UgaGF2ZSBjb250cmlidXRlZCBidXQgYXJlIG1pc3NpbmcgaGVyZSwgcGxlYXNlIGxldCB1cyBrbm93IQoKQWxhbiBQaW5zdGVpbiwgQWxiZXJ0IENoaW4tQS1Zb3VuZywgQWxiZXJ0IENob3ksIEFsZWtzYW5kYXIgTWlsaXZvamV2aWMsIEFsZXgKYWthIFdpbmRFYWdsZSwgQWxleCBOZWJsZXR0LCBBbGV4IFN1eWtvdiwgQWxleGFuZGVyIEtvdXJha29zLCBBbGV4YW5kZXIKS3Jhc25vc3RhdnNreSwgQWxleGFuZGVyIFpodXJhdmxldiwgQWxleGlzIENhcnZhbGhvLCBBbmRpIEphaGphLCBBbmRyZWFzIERhbW0sCkFuZHJlYXMgT2xzc29uLCBBbmRyZWFzIFJpZWtlLCBBbmRyZXcgRnJhbmNpcywgQW5kcmV3IEZ1bGxlciwgQW5kculzIEdhcmPtYSwKQW5keSBDZWRpbG5paywgQW5keSBTZXJwYSwgQW5ndXMgTWFja2F5LCBBbnRvaW5lIENhbGFuZG8sIEFudG9uIEthbG15a292LApBcmthZGl1c3ogTWlza2lld2ljeiwgQXVndXN0dXMgU2F1bmRlcnMsIEF2ZXJ5IEZheSwgQmVuIEdyZWVhciwgQmVuamFtaW4KR2VyYXJkLCBCZXJ0cmFuZCBEZW1pZGRlbGFlciwgQmpvcm4gUmVlc2UsIEJq9nJuIFN0ZW5iZXJnLCBCb2IgU2NoYWRlciwgQnJhZApCdXJkaWNrLCBCcmVudCBCZWFyZHNsZXksIEJyaWFuIEFraW5zLCBCcmlhbiBSIER1ZmZ5LCBCcnVjZSBNaXRjaGVuZXIsIEJyeWFuCkhlbmRlcnNvbiwgQnJ5YW4gSGVuZGVyc29uICwgQnJ5YW4gS2VtcCwgQ2FvbGFuIE1jTmFtYXJhLCBDYXNleSBPJ0Rvbm5lbGwsCkNoaWgtQ2h1bmcgQ2hhbmcsIENocmlzICJCb2IgQm9iIiwgQ2hyaXMgQ29tYmVzLCBDaHJpcyBHYXVrcm9nZXIsIENocmlzCk1hbHRieSwgQ2hyaXN0aWFuIEt1cnosIENocmlzdGlhbiBSb2JvdHRvbSBSZWlzLCBDaHJpc3RvcGhlIERlbW9yeSwgQ2hyaXN0b3BoZQpMZWdyeSwgQ2hyaXN0b3BoZXIgUi4gUGFsbWVyLCBDbGFyZW5jZSBHYXJkbmVyLCBDbGlmZm9yZCBXb2xmLCBDb2R5IEpvbmVzLApDb2xpbiBXYXRzb24sIENvbG0gQnVja2xleSwgQ29yeSBOZWxzb24sIENyYWlnIERhdmlzb24sIENyYWlnIE1hcmt3YXJkdCwgQ3JpcwpCYWlsaWZmLCBDeXJpbGwgT3N0ZXJ3YWxkZXIsIERhbWllbiBBZGFudCwgRGFuIEJlY2tlciwgRGFuIEMsIERhbiBGYW5kcmljaCwKRGFuIFRvcm9wLCBEYW4gWml0dGVyLCBEYW5pZWwgYXQgdG91Y2h0dW5lcywgRGFuaWVsIFN0ZW5iZXJnLCBEYXZlIERyaWJpbiwKRGF2ZSBIYWxiYWtrZW4sIERhdmUgSGFtaWx0b24sIERhdmUgTWF5LCBEYXZpZCBCeXJvbiwgRGF2aWQgQ29oZW4sIERhdmlkCkVyaWtzc29uLCBEYXZpZCBIb3VsZGVyLCBEYXZpZCBIdWxsLCBEYXZpZCBKIE1leWVyLCBEYXZpZCBKYW1lcywgRGF2aWQgS2ltZG9uLApEYXZpZCBMZUJsYW5jLCBEYXZpZCBPZGluLCBEYXZpZCBQaGlsbGlwcywgRGF2aWQgU2hhdywgRGF2aWQgVGFyZW5kYXNoLCBEYXZpZApUaGllbCwgRGV0bGVmIFNjaG1pZXIsIERpZWdvIENhc29ycmFuLCBEaW1pdHJpcyBTYXJyaXMsIERpbmFyLCBEaXJrCkVkZGVsYnVldHRlbCwgRGlyayBNYW5za2UsIERvbGJuZWZmIEEuViwgRG9tZW5pY28gQW5kcmVvbGksIERvbWluaWNrIE1lZ2xpbywKRG91ZyBLYXVmbWFuLCBEb3VnIFBvcnRlciwgRG91Z2xhcyBFLiBXZWdzY2hlaWQsIERvdWdsYXMgUi4gSG9ybmVyLCBEdXN0aW4KQm9zd2VsbCwgRHlsYW4gRWxsaWNvdHQsIER5bGFuIFNhbGlzYnVyeSwgRWFybHkgRWhsaW5nZXIsIEVkaW4gS2FkcmliYXNpYywKRWxsaXMgUHJpdGNoYXJkLCBFbWlsaWFubyBJZGEsIEVucmljbyBTY2hvbHosIEVucmlrIEJlcmtoYW4sIEVyaWMgTGF2aWduZSwKRXJpYyBNZWx2aWxsZSwgRXJpYyBSYXV0bWFuLCBFcmljIFRoZWxpbiwgRXJpYyBWZXJnbmF1ZCwgRXJpYyBZb3VuZywgRXJpY2sKTnV3ZW5kYW0sIEVyd2FuIExlZ3JhbmQsIEVyd2luIEF1dGhyaWVkLCBFdmFuIEpvcmRhbiwgRmFicml6aW8gQW1tb2xsbywgRmVkb3IKS2FycGVsZXZpdGNoLCBGZWxpeCB2b24gTGVpdG5lciwgRmxvcmlhbiBTY2hvcHBtYW5uLCBGb3JyZXN0IENhaG9vbiwgRnJhbmsKS2VlbmV5LCBGcmFuayBUaWNoZWxlciwgRnJlZCBOZXcsIEZyZWQgTm96LCBGcmVkZXJpYyBMZXBpZWQsIEdhdXRhbSBNYW5pLCBHYXoKSXFiYWwsIEdlb3JnIEhvcm4sIEdlb3JnIEh1ZXR0ZW5lZ2dlciwgR2VyZCB2LiBFZ2lkeSwgR2VyaGFyZCBIZXJyZSwgR2lhc2xhcwpHZW9yZ2lvcywgR2lsYWQsIEdpbGJlcnQgUmFtaXJleiBKci4sIEdpc2xlIFZhbmVtLCBHaXVzZXBwZSBBdHRhcmRpLCBHaXVzZXBwZQpEJ0FtYnJvc2lvLCBHbGVuIE5ha2FtdXJhLCBHbGVuIFNjb3R0LCBHcmVnIEhld2dpbGwsIEdyZWcgT251ZmVyLCBHcmlnb3J5CkVudGluLCBHdWVub2xlIEJlc2NvbiwgR3VpbGxhdW1lIEFybHVpc29uLCBHdXN0YWYgSHVpLCBHd2Vub2xlIEJlYXVjaGVzbmUsCkf2dHogQmFiaW4tRWJlbGwsIEf8bnRlciBLbmF1ZiwgSGFtaXNoIE1hY2tlbnppZSwgSGFubm8gS3Jhbnpob2ZmLCBIYW5zClN0ZWVnZXJzLCBIYXJkZWVwIFNpbmdoLCBIYXJzaGFsIFByYWRoYW4sIEhlaWtraSBLb3JwZWxhLCBIZW5yaWsgU3Rvcm5lciwKSHpoaWp1biwgSWFuIEZvcmQsIElhbiBHdWxsaXZlciwgSWFuIFdpbGtlcywgSWduYWNpbyBWYXpxdWV6LUFicmFtcywgSWxndWl6CkxhdHlwb3YsIEluZ28gUmFsZiBCbHVtLCBJbmdvIFdpbGtlbiwgSmFja3kgTGFtLCBKYWNvYiBNZXVzZXIsIEphbWVzIEJ1cnNhLApKYW1lcyBDbGFuY3ksIEphbWVzIENvbmUsIEphbWVzIEdhbGxhZ2hlciwgSmFtZXMgR3JpZmZpdGhzLCBKYW1lcyBNYWNNaWxsYW4sCkphbWllIExva2llciwgSmFtaWUgV2lsa2luc29uLCBKYXNvbiBTLiBQcmllYmUsIEplYW4tQ2xhdWRlIENoYXV2ZSwgSmVhbi1Mb3VpcwpMZW1haXJlLCBKZWFuLU1hcmMgUmFuZ2VyLCBKZWFuLVBoaWxpcHBlIEJhcnJldHRlLUxhUGllcnJlLCBKZWZmIExhd3NvbiwgSmVmZgpQaGlsbGlwcywgSmVmZnJleSBQb2hsbWV5ZXIsIEplcmVteSBGcmllc25lciwgSmVzcGVyIEplbnNlbiwgSmVzc2UgTm9sbGVyLCBKaW0KRHJhc2gsIEpvZSBIYWxwaW4sIEpvZWwgQ2hlbiwgSm9oYW4gQW5kZXJzb24sIEpvaGFuIE5pbHNzb24sIEpvaG4gQ3JvdywgSm9obgpKYW5zc2VuLCBKb2huIExhc2ssIEpvaG4gTWNHb3dhbiwgSm9uIFRyYXZpcywgSm9uIFR1cm5lciwgSm9uYXMgRm9yc21hbiwKSm9uYXRhbiBMYW5kZXIsIEpvbmF0aGFuIEhzZXUsIEpvbmdraSBTdXdhbmRpLCBKb3NoIEthcGVsbCwgSnVhbiBGLiBDb2RhZ25vbmUsCkp1YW4gSWduYWNpbyBIZXJ24XMsIEp1ZXJnZW4gV2lsa2UsIEp1a2thIFBpaGwsIEp1bGlhbiBOb2JsZSwgSnVuLWljaGlybwppdG9qdW4gSGFnaW5vLCBKdXJpaiBTbWFrb3YsIEr2cmcgTXVlbGxlci1Ub2xrLCBK9nJuIEhhcnRyb3RoLCBLYWkgU29tbWVyZmVsZCwKS2FpLVV3ZSBSb21tZWwsIEthbmctSmluIExlZSwgS2Fyb2wgUGlldHJ6YWssIEtlaXRoIE1hY0RvbmFsZCwgS2VpdGggTWNHdWlnYW4sCktlbiBIaXJzY2gsIEtlbiBSYXN0YXR0ZXIsIEtldmluIEZpc2ssIEtldmluIFJvdGgsIEtpbW1vIEtpbm51bmVuLCBLamVsbApFcmljc29uLCBLamV0aWwgSmFjb2JzZW4sIEtsZXZ0c292IFZhZGltLCBLcmlzIEtlbm5hd2F5LCBLcmlzaG5lbmR1IE1hanVtZGFyLApLcmlzdGlhbiBL9mhudG9wcCwgS3lsZSBTYWxsZWUsIExhY2hsYW4gTydEZWEsIExhcnJ5IENhbXBiZWxsLCBMYXJyeSBGYWhub2UsCkxhcnMgR3VzdGFmc3NvbiwgTGFycyBKLiBBYXMsIExhcnMgTmlsc3NvbiwgTGFycyBUb3JiZW4gV2lsc29uLCBMZWdvZmYKVmluY2VudCwgTGVoZWwgQmVybmFkdCwgTGVuIEtyYXVzZSwgTGluYXMgVmVwc3RhcywgTGluZyBUaGlvLCBMaW51cyBOaWVsc2VuCkZlbHR6aW5nLCBMb2ljIERhY2hhcnksIExvcmVuIEtpcmtieSwgTHVjYSBBbHRlYSwgTHVjYSBBbHRlYXMsIEx1Y2FzIEFkYW1za2ksCkx1a2FzeiBDemVraWVyZGEsIEx1a2UgQ2FsbCwgTHVvbmcgRGluaCBEdW5nLCBNYWNpZWogVy4gUm96eWNraSwgTWFyYyBCb3VjaGVyLApNYXJjZWxvIEp1Y2hlbSAsIE1hcmNpbiBLb25pY2tpLCBNYXJjbyBHLiBTYWx2YWdubywgTWFyY3VzIFdlYnN0ZXIsIE1hcmsKQnV0bGVyLCBNYXJrdXMgTW9lbGxlciwgTWFya3VzIE9iZXJodW1lciwgTWFydGlqbiBLb3N0ZXIsIE1hcnRpbiBDLiBNYXJ0aW4sCk1hcnRpbiBIZWRlbmZhbGssIE1hcnR5IEt1aHJ0LCBNYXJ1a28sIE1hc3NpbWlsaWFubyBaaWNjYXJkaSwgTWF0aGlhcwpBeGVsc3NvbiwgTWF0cyBMaWRlbGwsIE1hdHQgVmVlbnN0cmEsIE1hdHRoZXcgQmxhaW4sIE1hdHRoZXcgQ2xhcmtlLCBNYXVyaWNlCkJhcm51bSwgTWVrb25pa3VtLCBNZXR0Z3V0IEphbWFsbGEsIE1pY2hhZWwgQmVuZWRpY3QsIE1pY2hhZWwgQ3VydGlzLCBNaWNoYWVsCk1lYWxsaW5nLCBNaWNoYWwgQm9uaW5vLCBNaWhhaSBJb25lc2N1LCBNaWtlIEJ5dG5hciwgTWlrZSBEb2JicywgTWlrbG9zCk5lbWV0aCwgTWl0eiBXYXJrLCBNb2hhbWVkIExyaGF6aSwgTW9odW4gQmlzd2FzLCBNb29uZXNhbXksIE5hdGhhbiBPJ1N1bGxpdmFuLApOYXZlZW4gTm9lbCwgTmVpbCBEdW5iYXIsIE5laWwgU3ByaW5nLCBOaWMgUm9ldHMsIE5pY2sgR2ltYnJvbmUsIE5pY2sgSHVtZnJleSwKTmljbyBCYWdndXMsIE5pY29sYXMgQmVybG9xdWluLCBOaWNvbGFzIENyb2lzZXQsIE5pZWxzIHZhbiBUb25nZXJlbiwgTmlraXRhClNjaG1pZHQsIG5rLCBOb2RhayBTb2RhaywgT3JlbiBUaXJvc2gsIFAgUiBTY2hhZmZuZXIsIFBhdHJpY2sgQmloYW4tRmFvdSwKUGF0cmljayBTbWl0aCwgUGF1bCBIYXJyaW5ndG9uLCBQYXVsIE1hcnF1aXMsIFBhdWwgTW9vcmUsIFBhdWwgTm9sYW4sIFBhdmVsCkNlbmVrLCBQYXZlbCBPcmVob3YsIFBhd2VsIEEuIEdhamRhLCBQZWRybyBOZXZlcywgUGV0ZSBTdSwgUGV0ZXIgQnJheSwgUGV0ZXIKRm9ycmV0LCBQZXRlciBQZW50Y2hldiwgUGV0ZXIgU3lsdmVzdGVyLCBQZXRlciBUb2RkLCBQZXRlciBWZXJoYXMsIFBldGVyCld1bGxpbmdlciwgUGhpbCBLYXJuLCBQaGlsaXAgR2xhZHN0b25lLCBQaGlsaXBwZSBIYW1lYXUsIFBoaWxpcHBlIFJhb3VsdCwKUGllcnJlLCBQdW5lZXQgUGF3YWlhLCBSYWZhZWwgU2FndWxhLCBSYWxwaCBCZWNrbWFubiwgUmFscGggTWl0Y2hlbGwsIFJhbWFuYQpNb2trYXBhdGksIFJhbmR5IE1jTXVyY2h5LCBSZWlub3V0IHZhbiBTY2hvdXdlbiwgUmVuYXVkIENoYWlsbGF0LCBSZW5hdWQKRHVoYXV0LCBSZW5lIEJlcm5oYXJkdCwgUmVuZSBSZWJlLCBSaWNhcmRvIENhZGltZSwgUmljaCBHcmF5LCBSaWNoYXJkIEFyY2hlciwKUmljaGFyZCBBdHRlcmVyLCBSaWNoYXJkIEJyYW1hbnRlLCBSaWNoYXJkIENvb3BlciwgUmljaGFyZCBHb3J0b24sIFJpY2hhcmQKUHJlc2NvdHQsIFJpY2sgSm9uZXMsIFJpY2sgUmljaGFyZHNvbiwgUm9iIFN0YW56ZWwsIFJvYmVydCBELiBZb3VuZywgUm9iZXJ0Ck9sc29uLCBSb2JlcnQgV2VhdmVyLCBSb2JpbiBLYXksIFJvZG5leSBTaW1tb25zLCBSb2xhbmQgS3Jpa2F2YSwgUm9sYW5kClppbW1lcm1hbm4sIFJvbWFuIEtvaWZtYW4sIFJvbiBaYXBwLCBSb3NpbWlsZG8gZGEgU2lsdmEsIFJveSBTaGFuLCBSdW5lCktsZXZlbGFuZCwgUnlhbiBOZWxzb24sIFMuIE1vb25lc2FteSwgU2FsdmFkb3IgROF2aWxhLCBTYWx2YXRvcmUgU29ycmVudGlubywKU2FtcG8gS2VsbG9tYWtpLCBTYW11ZWwgRO1heiBHYXJj7WEsIFNhbXVlbCBMaXN0b3BhZCwgU2FuZGVyIEdhdGVzLCBTYXVsIGdvb2QsClNlYmFzdGllbiBXaWxsZW1pam5zLCBTZXJnaW8gQmFsbGVzdHJlcm8sIFNlc2h1YmFidSBQYXNhbSwgU2hhcmQsIFNoYXduClBvdWxzb24sIFNpZGRoYXJ0aGEgUHJha2FzaCBKYWluLCBTaW1vbiBEaWNrLCBTaW1vbiBMaXUsIFNwaXJpZG9ub2ZmIEEuViwKU3RhZGxlciBTdGVwaGFuLCBTdGVmYW4gVWxyaWNoLCBTdGVwaGFuIEJlcmdtYW5uLCBTdGVwaGVuIEtpY2ssIFN0ZXBoZW4gTW9yZSwKU3RlcmxpbmcgSHVnaGVzLCBTdGV2ZSBHcmVlbiwgU3RldmUgTGhvbW1lLCBTdGV2ZSBNYXJ4LCBTdGV2ZSBPbGlwaGFudCwgU3RldmVuCkJhenlsLCBTdGV2ZW4gRy4gSm9obnNvbiwgU3RvbmVkIEVsaXBvdCwgU3ZlbiBOZXVoYXVzLCBzd2Fsa2F1cyBhdCB5YWhvby5jb20sClPpYmFzdGllbiBXaWxsZW1pam5zLCBULiBCaGFyYXRoLCBULiBZYW1hZGEsIFRob21hcyBTY2h3aW5nZSwgVGhvbWFzIFRvbmlubywKVGltIEJha2VyLCBUaW0gQmFydGxleSwgVGltIENvc3RlbGxvLCBUaW0gU25lZGRvbiwgVG9ieSBQZXRlcnNvbiwgVG9tIEJlbm9pc3QsClRvbSBMZWUsIFRvbSBNYXR0aXNvbiwgVG9tIE1vZXJzLCBUb20gWmVydWNoYSwgVG9tYXMgUG9zcGlzZWssIFRvbWFzIFN6ZXBlLApUb21hc3ogTGFja2ksIFRvbW15IFRhbSwgVG9uIFZvb24sIFRvciBBcm50c2VuLCBUb3JzdGVuIEZvZXJ0c2NoLCBUb3NoaXl1a2kKTWFlemF3YSwgVHJhaWFuIE5pY29sZXNjdSwgVHJvZWxzIFdhbHN0ZWQgSGFuc2VuLCBUcm95IEVuZ2VsLCBVbHJpY2ggWmFkb3csClZpbmNlbnQgQnJvbm5lciwgVmluY2VudCBQZW5xdWVyYydoLCBWaW5jZW50IFNhbmRlcnMsIFZvanRlY2ggSmFub3RhLCBWb2p0ZWNoCk1pbmFyaWssIFdhbHRlciBKLiBNYWNrLCBXYXluZSBIYWlnaCwgV2VybmVyIEtvY2gsIFdlc2xleSBMYXh0b24sIFdleiBGdXJsb25nLApXaWxmcmVkbyBTYW5jaGV6LCBXb2pjaWVjaCBad2llZmthLCBZYXJyYW0gU3VuaWwsIFp2aSBIYXInRWwK