Path: chuka.playstation.co.uk!news From: Chris Wallace Newsgroups: scee.yaroze.freetalk.english Subject: Re: [NOISE] Re: I have a problem... Date: Wed, 06 Sep 2000 07:23:06 +0100 Organization: PlayStation Net Yaroze (SCEE) Lines: 477 Message-ID: <39B5E2CA.E95A0B83@btinternet.com> References: <39B54C37.70610E7E@btinternet.com> <01c01782$948c8bc0$cc9624c3@pal-s-omnibook> NNTP-Posting-Host: host62-7-70-244.btinternet.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------62A4E3EC1AF7762D7771B61B" X-Mailer: Mozilla 4.5 [en] (Win95; U) X-Accept-Language: en This is a multi-part message in MIME format. --------------62A4E3EC1AF7762D7771B61B Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Well,changing most things it doesn't like. I thought it was a memory problem at one point cos it only did it when adding large arrays (more) but it does it with quite a few things. Here is the code with initgame() in and the file with a list of all the definitions of my OT and stuff... Chris. --------------62A4E3EC1AF7762D7771B61B Content-Type: application/x-unknown-content-type-hFile; name="game.h" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="game.h" DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBGdW5jdGlvbjogUmVhZFRJTSgpDQovLyBE ZXNjcmlwdGlvbjogU2V0dXAgcGxheWVyWzFdLnNwcml0ZSBzdHJ1Y3R1cmUNCi8vIFBhcmFt ZXRlcnM6IG5vbmUNCi8vIFJldHVybnM6IG5vbmUNCi8vIE5vdGVzOiBMb29rIGF0IExpYnJh cnkgUmVmZXJlbmNlIE1hbnVhbA0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpHc0lNQUdF ICpSZWFkVElNMiggdV9sb25nICphZGRyICkNCiB7IAkNCiAgIHN0YXRpYyBHc0lNQUdFIHRp bTsJIA0KCS8vIHNraXAgaWQgYW5kIGluaXRpYWxpemUgaW1hZ2Ugc3RydWN0dXJlIA0KCWFk ZHIgKys7DQoJR3NHZXRUaW1JbmZvKGFkZHIsICZ0aW0pOw0KCURyYXdTeW5jKDApOw0KCQkJ DQoJLy8gdHJhbnNmZXIgcGl4ZWwgZGF0YSB0byBWUkFNIA0KCXJlY3QueCA9IHRpbS5weDsN CglyZWN0LnkgPSB0aW0ucHk7DQoJcmVjdC53ID0gdGltLnB3Ow0KCXJlY3QuaCA9IHRpbS5w aDsNCglMb2FkSW1hZ2UoJnJlY3QsIHRpbS5waXhlbCk7DQoJRHJhd1N5bmMoMCk7DQoJCQkN CiAgICAvLyBpZiBDTFVUIGV4aXN0cywgdHJhbnNmZXIgaXQgdG8gVlJBTSANCiAJaWYoICh0 aW0ucG1vZGUgPj4gMykgJiAweDAxICkgDQogCSAgew0KIAkgIAlyZWN0LnggPSB0aW0uY3g7 DQoJICAJcmVjdC55ID0gdGltLmN5Ow0KCSAgCXJlY3QudyA9IHRpbS5jdzsNCgkgIAlyZWN0 LmggPSB0aW0uY2g7DQoJICAJTG9hZEltYWdlKCZyZWN0LCB0aW0uY2x1dCk7DQoJICB9CSAN CiAgDQogICBEcmF3U3luYygwKTsNCg0KIHJldHVybigmdGltKTsNCiAgIA0KfS8vIGVuZCBS ZWFkVElNIA0KDQogDQoNCkdzSU1BR0UgKlJlYWRUSU0oIHVfbG9uZyAqdGltQWRkciApDQog eyAJDQoJc3RhdGljIEdzSU1BR0UgdGltOwkgDQogCWxvbmcgbmNvbjsNCglsb25nIGxlbmd0 aDsNCgl1X2NoYXIgbnJlcDsNCgl1X2NoYXIgKnBvaW50ZXI7DQoJdV9jaGFyIGJ5dGVfcmVh ZDsNCglzaG9ydCBidWZmX2luZCA9IDA7DQoJdV9jaGFyIGJ1ZmZlcls1MTJdOw0KCXNob3J0 IHlfY291bnQgPSAwOw0KCVJFQ1QgdCwgYzsNCg0KCQ0KDQoJR3NHZXRUaW1JbmZvKCB0aW1B ZGRyICsgMSwgJnRpbSApOw0KDQoJLy8gZ2V0IHRpbSBsZW5ndGgNCglsZW5ndGggPSAodGlt LnB3ICogMikgKiB0aW0ucGg7DQoJLy8gc2V0IHBvaW50ZXIgdG8gaW1hZ2UgZGF0YQ0KCXBv aW50ZXIgPSAodV9jaGFyICopIHRpbS5waXhlbDsNCgkvLyBleHBhbmRpbmcgUkxFIGVuY29k aW5nIGZpbGUNCglmb3IoIG5jb24gPSAwOyBuY29uIDwgbGVuZ3RoOyApDQoJew0KCQlieXRl X3JlYWQgPSAqcG9pbnRlcjsNCgkJcG9pbnRlcisrOw0KCQlpZiggYnl0ZV9yZWFkID4gMTky ICkNCgkJew0KCQkJbnJlcCA9IGJ5dGVfcmVhZCAtIDE5MjsNCgkJCWJ5dGVfcmVhZCA9ICpw b2ludGVyOw0KCQkJcG9pbnRlcisrOw0KCQkJd2hpbGUoIG5yZXAgKQ0KCQkJew0KCQkJCWJ1 ZmZlcltidWZmX2luZF0gPSBieXRlX3JlYWQ7DQoJCQkJYnVmZl9pbmQrKzsNCgkJCQlpZigg YnVmZl9pbmQgPj0gdGltLnB3KjIgKQ0KCQkJCXsNCgkJCQkJc2V0UkVDVCggJnQsIHRpbS5w eCwgdGltLnB5ICsgeV9jb3VudCwgdGltLnB3LCAxICk7DQoJCQkJCUxvYWRJbWFnZSggJnQs ICh1X2xvbmcgKikgYnVmZmVyICk7DQoJCQkJCURyYXdTeW5jKCAwICk7DQoJCQkJCXlfY291 bnQrKzsNCgkJCQkJYnVmZl9pbmQgPSAwOw0KCQkJCX0NCgkJCQluY29uKys7DQoJCQkJbnJl cC0tOw0KCQkJfQ0KCQl9DQoJCWVsc2UNCgkJew0KCQkJYnVmZmVyW2J1ZmZfaW5kXSA9IGJ5 dGVfcmVhZDsNCgkJCWJ1ZmZfaW5kKys7DQoJCQluY29uKys7DQoJCQlpZiggYnVmZl9pbmQg Pj0gdGltLnB3KjIgKQ0KCQkJew0KCQkJCXNldFJFQ1QoICZ0LCB0aW0ucHgsIHRpbS5weSAr IHlfY291bnQsIHRpbS5wdywgMSApOw0KCQkJCUxvYWRJbWFnZSggJnQsICh1X2xvbmcgKikg YnVmZmVyICk7DQoJCQkJRHJhd1N5bmMoIDAgKTsNCgkJCQl5X2NvdW50Kys7DQoJCQkJYnVm Zl9pbmQgPSAwOw0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gbG9hZCBjbHV0DQoJc2V0UkVDVCgg JmMsIHRpbS5jeCwgdGltLmN5LCB0aW0uY3csIHRpbS5jaCApOw0KCUxvYWRJbWFnZSggJmMs IHRpbS5jbHV0ICk7DQoJRHJhd1N5bmMoIDAgKTsNCiAgDQogICAgcmV0dXJuKCZ0aW0pOyAN CiB9DQoNCg0Kdm9pZCBSZWFkREFUKCB1X2xvbmcgKkFkZHIgKQ0KIHsgCQ0KLy8JdV9zaG9y dCBhcnJheVtOVU1fVElMRVMyXTsJIA0KDQovLwlmb3IoaT0wO2k8PU5VTV9USUxFUzI7aSsr KQ0KLy8gCWFycmF5W2ldPUFkZHIraTsNCiAgDQogICANCiB9DQoNCi8vLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCi8vIEZ1bmN0aW9uOiBJbml0R2FtZSgpDQovLyBEZXNjcmlwdGlvbjogSW5p dGlhbGlzZSB0aGUgZ3JhcGhpY3MgbW9kZSwgam95cGFkLCBvcmRlcmluZyB0YWJsZXMsDQov LyAgICAgICAgICAgICAgdGV4dHVyZXMsIGFuZCBvYmplY3RzDQovLyBQYXJhbWV0ZXJzOiBu b25lDQovLyBSZXR1cm5zOiB2b2lkDQovLyBOb3RlczogTi9BDQovLy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQoNCnZvaWQgSW5pdEdhbWUoIHZvaWQgKQ0KIHsNCiANCg0KCWludCBjb3VudDsN CgkNCgkgLy8gbG9hZCBpbiB0aGUgZm9udCBwYXR0ZXJuDQoJIEZudExvYWQoOTYwLDI1Nik7 DQogIA0KCSBmbnRfaWRbMF0gPSBGbnRPcGVuKDAsMTAsU0NSRUVOX1dJRFRILCBTQ1JFRU5f SEVJR0hULDAsODApOw0KCSBmbnRfaWRbMV0gPSBGbnRPcGVuKDAsMjAsU0NSRUVOX1dJRFRI LCBTQ1JFRU5fSEVJR0hULDAsODApOw0KCSBmbnRfaWRbMl0gPSBGbnRPcGVuKDAsMzAsU0NS RUVOX1dJRFRILCBTQ1JFRU5fSEVJR0hULDAsODApOw0KCSBmbnRfaWRbM10gPSBGbnRPcGVu KDAsNDAsU0NSRUVOX1dJRFRILCBTQ1JFRU5fSEVJR0hULDAsODApOw0KDQoJIGZudF9pZFs0 XSA9IEZudE9wZW4oMCwxMjAsU0NSRUVOX1dJRFRILCBTQ1JFRU5fSEVJR0hULDAsODApOw0K CSBmbnRfaWRbNV0gPSBGbnRPcGVuKDAsMTMwLFNDUkVFTl9XSURUSCwgU0NSRUVOX0hFSUdI VCwwLDgwKTsNCgkgZm50X2lkWzZdID0gRm50T3BlbigwLDE0MCxTQ1JFRU5fV0lEVEgsIFND UkVFTl9IRUlHSFQsMCw4MCk7DQoJIGZudF9pZFs3XSA9IEZudE9wZW4oMCwxNTAsU0NSRUVO X1dJRFRILCBTQ1JFRU5fSEVJR0hULDAsODApOw0KCSAvLyBzYXZlIGN1cnJlbnQgdmlkZW8g bW9kZQ0KCSBwcmV2X21vZGUgPSBHZXRWaWRlb01vZGUoKTsNCg0KCSAvLyBpbml0IGdyYXBo aWMgbW9kZQ0KCSBTZXRWaWRlb01vZGUoIE1PREVfUEFMICk7DQoNCg0KCSAvLyBpbml0IHRo ZSBjb250cm9sbGVyIGJ1ZmZlcnMNCgkgR2V0UGFkQnVmKCh2b2xhdGlsZSB1X2NoYXIqKikm YnVmZmVyWzFdLCh2b2xhdGlsZSB1X2NoYXIqKikmYnVmZmVyWzJdLyosKHZvbGF0aWxlIHVf Y2hhcioqKSZidWZmZXJbM10sKHZvbGF0aWxlIHVfY2hhcioqKSZidWZmZXJbNF0qLyk7IA0K CSANCg0KCSAvLyBhbGwgcmVzZXQsIHRoZSBkcmF3aW5nIGVudmlyb25tZW50IGFuZCBkaXNw bGF5IGFyZSBpbml0aWFsaXNlZA0KCSBSZXNldEdyYXBoKDApOw0KDQoJIEdzSW5pdEdyYXBo KCBTQ1JFRU5fV0lEVEgsIFNDUkVFTl9IRUlHSFQsDQoJCQkgICAgICBHc09GU0dQVXxHc05P TklOVEVSLCAwLCAwICk7DQoNCgkNCg0KCSAvLyBkb3VibGUgYnVmZmVyIGRlZmluaXRpb24N CgkgR3NEZWZEaXNwQnVmZiggMCwgMCwgMCwgU0NSRUVOX0hFSUdIVCk7DQoJDQoNCgkgDQoJ IC8vIHNldCBkaXNwbGF5IG91dHB1dCBvbiB0LnYgDQoJIEdzRElTUEVOVi5zY3JlZW4ueCA9 IDI7DQoJIEdzRElTUEVOVi5zY3JlZW4ueSA9IDE4Ow0KCSBHc0RJU1BFTlYuc2NyZWVuLncg PSAyNTU7DQoJIEdzRElTUEVOVi5zY3JlZW4uaCA9IFNDUkVFTl9IRUlHSFQ7IA0KCQ0KCSAv LyBzZXQgYmcgY2xlYXIgY29sb3IgYW5kIGZsYWcNCiAgCSBHc0RSQVdFTlYucjAgPSAweDA7 DQoJIEdzRFJBV0VOVi5nMCA9IDB4MDsNCiAgICAgR3NEUkFXRU5WLmIwID0gMHgwOw0KCSBH c0RSQVdFTlYuaXNiZyA9IDA7CQ0KICANCgkgLy8gc2V0IHVwIHRoZSBvcmRlcmluZyB0YWJs ZSBoYW5kbGVycw0KCSBmb3IoIGNvdW50PTA7IGNvdW50IDwgMjsgY291bnQrKyApDQoJICAg IHsNCgkJICB3b3JsZF9vcmRlcmluZ190YWJsZVtjb3VudF0ubGVuZ3RoID0gNTsNCgkJICB3 b3JsZF9vcmRlcmluZ190YWJsZVtjb3VudF0ub3JnID0gb3JkZXJpbmdfdGFibGVbY291bnRd Ow0KCSAgICB9DQoNCgkgLy8gaW5pdGlhbGlzZXMgdGhlIG9yZGVyaW5nIHRhYmxlDQoJIEdz Q2xlYXJPdCggMCwgMCwgJndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5k ZXhdKTsNCgkgR3NDbGVhck90KCAwLCAwLCAmd29ybGRfb3JkZXJpbmdfdGFibGVbb3V0cHV0 X2J1ZmZlcl9pbmRleCsxXSk7DQoJIA0KCQ0KCQ0KICAgICBwcmludGYoIkdhbWUgc2V0dXAg aXMgY29tcGxldGU6IFxuXG5cblxuXG4iKTsNCiAgICAgcHJpbnRmKCIuLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLlxuIik7DQogICAgIHByaW50Zigi ICAgICAgICAgICAgICAgICBEcnVtICdOJyBSYWNlICAgICAgICAgICAgICAgICBcbiIpOw0K ICAgICBwcmludGYoIkRyaXZpbmcgVG8gVGhlIFNvdW5kcyBvZiBUaGUgRHJ1bXMgJ04nIFRo ZSBCYXNzXG4iKTsNCiAgICAgcHJpbnRmKCIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLlxuIik7DQoNCiB9Ly8gZW5kIEluaXRHYW1lDQoNCg0KDQoN Cg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gRnVuY3Rpb246IERlSW5pdEdhbWUoKQ0K Ly8gRGVzY3JpcHRpb246IERlLWluaXQgdGhlIGdhbWUsIHNvdW5kLCBncmFwaGljcywgZXRj DQovLyBQYXJhbWV0ZXJzOiBub25lDQovLyBSZXR1cm5zOiB2b2lkDQovLyBOb3RlczogTi9B DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCnZvaWQgRGVJbml0R2FtZSggdm9pZCApDQog ew0KDQogCSAvLyBzZXQgcHJldmlvdXMgdmlkZW8gbW9kZQ0KCSBTZXRWaWRlb01vZGUoIHBy ZXZfbW9kZSApOw0KDQoJIC8vIGN1cnJlbnQgZHJhd2luZyBpcyBjYW52ZWxsZWQgYW5kIHRo ZSBjb21tYW5kIHF1ZXVlIGlzIGZsdXNoZWQNCgkgUmVzZXRHcmFwaCgzKTsJICAgDQoNCgkN CiANCiB9Ly8gZW5kIERlSW5pdEdhbWUNCg0KDQoNCg0KDQovLy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KLy8gRnVuY3Rpb246IFVwZGF0ZVNjcmVlbigpDQovLyBEZXNjcmlwdGlvbjog VXBkYXRlcyBhbGwgdGhlIGdhbWUgb2JqZWN0cyBhbmQgcmVkcmF3cyB0aGUgc2NyZWVuDQov LyBQYXJhbWV0ZXJzOiBub25lDQovLyBSZXR1cm5zOiB2b2lkDQovLyBOb3RlczogTm90aWNl IHRoYXQgRHJhd1N5bmMoKSBhbmQgR3NTb3J0Q2xlYXIoKSBhcmUgbm90IGJlaW5nIGNhbGxl ZC4NCi8vDQovLyAgICAgICAgVGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIERyYXdTeW5jKCkg c2luY2Ugd2UgYXJlIGluIGludGVybGFjZQ0KLy8gICAgICAgIG1vZGUgYW5kIGRvIG5vdCB3 YW50IHRvIHdhaXQgZm9yIGRyYXdpbmcgdG8gYmUgY29tcGxldGVkLiANCi8vIA0KLy8gICAg ICAgIFRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCBHc1NvcnRDbGVhcigpIHNpbmNlIHdlIGFy ZSBzZXR0aW5nDQovLyAgICAgICAgR3NEUkFXRU5WLmlzYmcgPSAxOyANCi8vLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tDQoNCnZvaWQgVXBkYXRlU2NyZWVuKCB2b2lkICkNCiB7DQogCWlu dCBjb3VudCxpOw0KIAlzaG9ydCB0YXJnZXRfeCx0YXJnZXRfeTsNCglzaG9ydCB2eCx2eTsN CgkvL2NoYXIgdjsNCgkNCgkvL2lmKEdBTUVtb2RlPT1QTEFZRVIxKQ0KCS8vZGVicmlmbHko KTsJIAkvL0RFQlJJIENPREUhDQoJDQogIAl0b3RoZWFsdGgoKTsNCiAgDQogIAkgaWYoR0FN RW1vZGUgPT0gUExBWUVSMSB8fCBHQU1FbW9kZSA9PSBNRU5VIHx8IEdBTUVtb2RlID09IERF U1RSVUNUSU9OIHx8IEdBTUVtb2RlID09IE1BUE1BS0VSIHx8IEdBTUVtb2RlID09IFJPQk9U KQ0KCXsNCgkvL3RhcGV4ID0gdGFwZWNvdW50ICsgMjgqMTY7DQoJDQoJCS8vIEZpbmQgZGVz aXJlZCAodGFyZ2V0KSBzY3JvbGwgcG9zaXRpb24uCQ0KCQlpZihHQU1FVFlQRT09TVVMVEkp DQoJCWlmKHdpbm5lcj4wKQ0KCQl7DQoJCQkJCXRhcmdldF94ID0gcGxheWVyW3dpbm5lcl0u eC0oU0NSRUVOX1dJRFRILzIpOw0KCQkJCQl0YXJnZXRfeSA9IHBsYXllclt3aW5uZXJdLnkt KFNDUkVFTl9IRUlHSFQvMik7DQoJCX0NCgkJCWlmKEdBTUVUWVBFPT1NVUxUSSkNCgkJCWlm KHdpbm5lciA9PSAwKQ0KCQkJew0KCQkNCgkJCQkJaWYobnVtX3BsYXllcnM9PTEpDQoJCQkJ CXsNCgkJCQkJCWZvcihpPTE7aTw9NDtpKyspDQoJCQkJCQkJaWYocGxheWluZ1tpXSkNCgkJ CQkJCQl7DQoJCQkJCQkJCXRhcmdldF94ID0gcGxheWVyW2ldLngtKFNDUkVFTl9XSURUSC8y KTsNCgkJCQkJCQkJdGFyZ2V0X3kgPSBwbGF5ZXJbaV0ueS0oU0NSRUVOX0hFSUdIVC8yKTsN CgkJCQkJCQl9DQoJCQkJCX0NCgkJDQoJCQkJCWlmKG51bV9wbGF5ZXJzPT00KQ0KCQkJCQl7 DQoJCQkJCQl0YXJnZXRfeD0oKHBsYXllclsxXS54K3BsYXllclsyXS54K3BsYXllclszXS54 K3BsYXllcls0XS54KS80KS0oU0NSRUVOX1dJRFRILzIpOw0KCQkJCQkJdGFyZ2V0X3k9KChw bGF5ZXJbMV0ueStwbGF5ZXJbMl0ueStwbGF5ZXJbM10ueStwbGF5ZXJbNF0ueSkvNCktKFND UkVFTl9IRUlHSFQvMik7DQoJCQkJCX0NCgkJCQkNCgkJCQkJaWYobnVtX3BsYXllcnM9PTMp DQoJCQkJCXsNCgkJCQkJCWludCBpMSxpMixpMzsNCgkJCQkJCWkxPWkyPWkzPTA7DQoJCQkJ DQoJCQkJCQkJZm9yKGk9MTtpPD00O2krKykNCgkJCQkJCQkJew0KCQkJCQkJCQkvL2lmIHBs YXlpbmcsIHB1dCBpbiBjbG9zZXMgYmxhbmsgaQ0KCQkJCQkJCQlpZihwbGF5aW5nW2ldPT0x KQ0KCQkJCQkJCQl7DQoJCQkJCQkJCQlpZihpMT09MCkNCgkJCQkJCQkJCQl7DQoJCQkJCQkJ CQkJCWkxPWk7DQoJCQkJCQkJCQkJCWNvbnRpbnVlOw0KCQkJCQkJCQkJCX0NCgkJCQlpZihp Mj09MCkNCgkJCQl7DQoJCQkJCWkyPWk7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJCQlp ZihpMj09MCkNCgkJCQl7DQoJCQkJCWkyPWk7DQoJCQkJCWNvbnRpbnVlOw0KCQkJCX0NCgkJ CX0NCgkJfQ0KCQl0YXJnZXRfeD0oKHBsYXllcltpMV0ueCtwbGF5ZXJbaTJdLngrcGxheWVy W2kzXS54KS8zKS0oU0NSRUVOX1dJRFRILzIpOw0KCQl0YXJnZXRfeT0oKHBsYXllcltpMV0u eStwbGF5ZXJbaTJdLnkrcGxheWVyW2kzXS55KS8zKS0oU0NSRUVOX0hFSUdIVC8yKTsNCgkJ fQ0KCQkNCgkJaWYobnVtX3BsYXllcnM9PTIpDQoJCXsNCgkJDQoJCWludCBpMSxpMjsNCgkJ aTE9aTI9MDsNCgkJCQkNCgkJZm9yKGk9MTtpPD00O2krKykNCgkJew0KCQkvL2lmIHBsYXlp bmcsIHB1dCBpbiBjbG9zZXMgYmxhbmsgaQ0KCQlpZihwbGF5aW5nW2ldPT0xKQ0KCQkJew0K CQkJCWlmKGkxPT0wKQ0KCQkJCXsNCgkJCQkJaTE9aTsNCgkJCQkJY29udGludWU7DQoJCQkJ fQ0KCQkJCWlmKGkyPT0wKQ0KCQkJCXsNCgkJCQkJaTI9aTsNCgkJCQkJY29udGludWU7DQoJ CQkJfQ0KCQkJCQ0KCQkJfQ0KCQl9DQoJCQ0KCQl0YXJnZXRfeD0oKHBsYXllcltpMV0ueCtw bGF5ZXJbaTJdLngpLzIpLShTQ1JFRU5fV0lEVEgvMik7DQoJCXRhcmdldF95PSgocGxheWVy W2kxXS55K3BsYXllcltpMl0ueSkvMiktKFNDUkVFTl9IRUlHSFQvMik7DQoJCX0NCgkJDQoJ CQ0KCQkNCgkJfQ0KCQlpZihHQU1FVFlQRT09U0lOR0xFKQ0KCQl7DQoJCWlmKHdpbm5lciA9 PSAwKQ0KCQl7DQoJCXRhcmdldF94ID0gcGxheWVyWzFdLngtKFNDUkVFTl9XSURUSC8yKTsN CgkJdGFyZ2V0X3kgPSBwbGF5ZXJbMV0ueS0oU0NSRUVOX0hFSUdIVC8yKTsNCgkJfQ0KCQlp Zih3aW5uZXIgPiAwKQ0KCQl7DQoJCXRhcmdldF94ID0gcGxheWVyW3dpbm5lcl0ueC0oU0NS RUVOX1dJRFRILzIpOw0KCQl0YXJnZXRfeSA9IHBsYXllclt3aW5uZXJdLnktKFNDUkVFTl9I RUlHSFQvMik7DQoJCX0NCgkJfQ0KCQkvLyBGaW5kIGRpc3RhbmNlIGJldHdlZW4gY3VycmVu dCBzY3JvbGwgcG9zaXRpb24gYW5kIHRhcmdldC4NCgkJdng9KHRhcmdldF94LWJnX2RhdGEy LnNjcm9sbHgpLzQ7DQoJCXZ5PSh0YXJnZXRfeS1iZ19kYXRhMi5zY3JvbGx5KS80Ow0KCQ0K CQlsaW1pdFJhbmdlKHZ4LC0zMCwzMCk7DQoJCWxpbWl0UmFuZ2UodnksLTMwLDMwKTsNCgkN CgkJLy8gTW92ZSB1cHBlciBCRy4NCgkJYmdfZGF0YTIuc2Nyb2xseCs9dng7DQoJCWJnX2Rh dGEyLnNjcm9sbHkrPXZ5Ow0KCSANCgkJLy8gTW92ZSBsb3dlciBCRyAoYXQgaGFsZiBzcGVl ZCkuDQoJCWJnX2RhdGE0LnNjcm9sbHg9YmdfZGF0YTIuc2Nyb2xseC8yOw0KCQliZ19kYXRh NC5zY3JvbGx5PWJnX2RhdGEyLnNjcm9sbHkvMjsNCgkJDQoJCS8vYmcudGFwZS54ID0gdGFw ZXgtYmdfZGF0YTIuc2Nyb2xseDsNCgkJLy9iZy50YXBlLnkgPSB0YXBleS1iZ19kYXRhMi5z Y3JvbGx5Ow0KCQkNCgkJZm9yKGk9MTtpPD0oTUFYX1BMQVlFUlMtMSk7aSsrKQ0KCQl7DQoJ CWlmKEdBTUVtb2RlID09IERFU1RSVUNUSU9OKQ0KCQkJaWYodG90YWxoZWFsdGggPCAxMCkN CgkJCQl7DQoJCQkJaW50IHQ7DQoJCQkJZm9yKHQ9Mjt0PE1BWF9QTEFZRVJTLTE7dCsrKQ0K CQkJCXsNCgkJCQlwbGF5ZXJbdF0uRE10YXJnZXQgPSAxOw0KCQkJCX0NCgkJCQl9DQoJCQlp ZihwbGF5ZXJbaV0uaGVhbHRoIDw9IDAgfHwgcGxheWVyW2ldLmhlYWx0aCA+IDUwMCkgDQoJ CQkJd2hpbGUocGxheWVyW2ldLnNwcml0ZS5yPjB4MzApCQkJCQkNCiAgCQkJCXsNCiAgCQkJ CQlwbGF5ZXJbaV0uc3ByaXRlLnItLTsNCiAgCQkJCQlwbGF5ZXJbaV0uc3ByaXRlLmItLTsN CiAgCQkJCQlwbGF5ZXJbaV0uc3ByaXRlLmctLTsNCiAgCQkJCQlwbGF5ZXJbaV0ubWluaS5y LS07DQogIAkJCQkJcGxheWVyW2ldLm1pbmkuYi0tOw0KICAJCQkJCXBsYXllcltpXS5taW5p LmctLTsgCQkJCQkNCiAgCQkJCX0NCgkJDQoJCXBsYXllcltpXS5maXJlYmFsbC54ID0gcGxh eWVyW2ldLmZpcmV4LWJnX2RhdGEyLnNjcm9sbHg7DQoJCXBsYXllcltpXS5maXJlYmFsbC55 ID0gcGxheWVyW2ldLmZpcmV5LWJnX2RhdGEyLnNjcm9sbHk7DQoJCQ0KCQlwbGF5ZXJbaV0u c3ByaXRlLnggPSBwbGF5ZXJbaV0ueC1iZ19kYXRhMi5zY3JvbGx4Ow0KCQlwbGF5ZXJbaV0u c3ByaXRlLnkgPSBwbGF5ZXJbaV0ueS1iZ19kYXRhMi5zY3JvbGx5Ow0KCQkvKg0KCQlmb3Io dj0wO3Y8PTQ7disrKQ0KCQl7DQoJCXBsYXllcltpXS5kc2NyZWVueFt2XSA9IHBsYXllcltp XS5kZWJyaXN4W3ZdLWJnX2RhdGEyLnNjcm9sbHg7DQoJCXBsYXllcltpXS5kc2NyZWVueVt2 XSA9IHBsYXllcltpXS5kZWJyaXN5W3ZdLWJnX2RhdGEyLnNjcm9sbHk7DQoJCX0vLyovDQoJ CQ0KCQlwbGF5ZXJbaV0ubWluZS54ID0gcGxheWVyW2ldLm1pbmV4LWJnX2RhdGEyLnNjcm9s bHg7DQoJCXBsYXllcltpXS5taW5lLnkgPSBwbGF5ZXJbaV0ubWluZXktYmdfZGF0YTIuc2Ny b2xseTsNCgkJDQoJCXBsYXllcltpXS5wbGFzbWEueCA9IHBsYXllcltpXS5wbGFzbWF4LWJn X2RhdGEyLnNjcm9sbHg7DQoJCXBsYXllcltpXS5wbGFzbWEueSA9IHBsYXllcltpXS5wbGFz bWF5LWJnX2RhdGEyLnNjcm9sbHk7DQoJCX0NCgkJDQoJCS8vcmVjb3JkLnggPSByZWNvcmR4 LWJnX2RhdGEyLnNjcm9sbHg7DQoJCS8vcmVjb3JkLnkgPSByZWNvcmR5LWJnX2RhdGEyLnNj cm9sbHk7DQoJCQ0KCQloZWFsdGhiYXIudyA9IHBsYXllclsxXS5oZWFsdGgvMjsNCgkJaGVh bHRoYmFyMi53ID0gdG90YWxoZWFsdGgvMjsNCgkNCgkJDQoJCQ0KCX0NCgkNCgkNCgkNCgkv LyBnZXQgdGhlIGFjdGl2ZSBidWZmZXINCiAgICBvdXRwdXRfYnVmZmVyX2luZGV4ID0gR3NH ZXRBY3RpdmVCdWZmKCk7DQoNCiAgICAvLyBzZXRzIGRyYXdpbmcgY29tbWFuZCBzdG9yYWdl IGFkZHJlc3MNCiAgICBHc1NldFdvcmtCYXNlKChQQUNLRVQqKWdwdV93b3JrX2FyZWFbb3V0 cHV0X2J1ZmZlcl9pbmRleF0pOw0KDQogICAgLy8gaW5pdGlhbGlzZXMgdGhlIG9yZGVyaW5n IHRhYmxlDQogICAgR3NDbGVhck90KDAsIDAsICZ3b3JsZF9vcmRlcmluZ190YWJsZVtvdXRw dXRfYnVmZmVyX2luZGV4XSk7DQoNCiAgICAvLyByZW5kZXJpbmcgZG9uZSBoZXJlDQogICAg DQoJZm9yKCBjb3VudCA9MDsgY291bnQgPDg7IGNvdW50KysgKQ0KICAgICAgICBGbnRGbHVz aChmbnRfaWRbY291bnRdKTsNCglpZihHQU1FbW9kZSAhPSA5OTkpICAgDQogCQlmb3IoaT0x O2k8PShNQVhfUExBWUVSUy0xKTtpKyspDQogICAJCQlwbGF5ZXJbaV0uc3ByaXRlLnJvdGF0 ZSA9IChwbGF5ZXJbaV0uZGlyZWN0aW9uKSAqIDM2MDsJDQogICAgICAgICAJDQogIA0KICAJ bWluaV9tYXAoKTsgDQogIA0KICAJaWYobG9hZHZhcj09MSkNCiAgCQl7DQogIAkJCUdzU29y dFNwcml0ZSgmbG9hZCwgJndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5k ZXhdLCAwKTsgICAgDQogIAkJfSAJCQ0KICANCiANCiAgIAkJew0KIA0KICAgDQoNCgkJICAJ CQ0KICAgCWlmKEdBTUVtb2RlID09IFBMQVlFUjEgfHwgR0FNRW1vZGUgPT0gQkFUVExFIHx8 IEdBTUVtb2RlID09IERFU1RSVUNUSU9OIHx8IEdBTUVtb2RlID09IFJPQk9UKQ0KICAgCQl7 ICANCiAgIAkJDQogICAJCQ0KICAgCQkgZm9yKGk9MTtpPD0oTUFYX1BMQVlFUlMtMSk7aSsr KQ0KICAgCQkgaWYoR0FNRVRZUEU9PVNJTkdMRSB8fCBwbGF5aW5nW2ldPT0xIHx8IGk+NCAp DQogICAJCSAJew0KICAgIAkJDQogICAgCQkNCiAgICAJCWlmKHBsYXllcltpXS50aWxlICE9 IDEwNikNCiAgICAJCWlmKHBsYXllcltpXS50aWxlICE9IDEwNykNCiAgICAJCWlmKHBsYXll cltpXS50aWxlICE9IDEwOCkNCiAgICAJCWlmKHBsYXllcltpXS50aWxlICE9IDEwOSkNCiAg ICAJCXsNCiAgICAJCQlpZihwbGF5ZXJbaV0ud2VhcG9uID09IDApDQogICAgCQkJCUdzU29y dFNwcml0ZSgmcGxheWVyW2ldLmZpcmViYWxsLCAmd29ybGRfb3JkZXJpbmdfdGFibGVbb3V0 cHV0X2J1ZmZlcl9pbmRleF0sIDIpOyAgICANCiAgICAJCQ0KICAgIAkJCWlmKHBsYXllcltp XS5zcHJpdGUuc2NhbGV4PjEwKQ0KICAgIAkJCXsNCiAgICAJCQkJaWYocGxheWVyW2ldLmZh bGwgPT0gMCkNCiAgICAJCQkJCUdzU29ydFNwcml0ZSgmcGxheWVyW2ldLnNwcml0ZSwgJndv cmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhdLCAyKTsgDQogICAgCQkJ CWlmKHBsYXllcltpXS5mYWxsID09IDEgJiYgbWFwX2FycmF5MltwbGF5ZXJbaV0udGlsZV0g IT0gMjApDQogICAgCQkJCQlHc1NvcnRTcHJpdGUoJnBsYXllcltpXS5zcHJpdGUsICZ3b3Js ZF9vcmRlcmluZ190YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwgNCk7ICANCiAgICAJCQkJ aWYocGxheWVyW2ldLmZhbGwgPT0gMSAmJiBtYXBfYXJyYXkyW3BsYXllcltpXS50aWxlXSA9 PSAyMCkNCiAgICAJCQkJCUdzU29ydFNwcml0ZSgmcGxheWVyW2ldLnNwcml0ZSwgJndvcmxk X29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhdLCAyKTsgDQogICAgCQkJCQ0K ICAgIAkJCX0JDQogICAgCQkJLyoNCiAgICAJCQlmb3Iodj0wO3Y8PTQ7disrKS8vREVCUklT IENPREUhDQogICAgCQkJew0KICAgIAkJCXBsYXllcltpXS5kZWJyaXMueCA9IHBsYXllcltp XS5kZWJyaXN4W3ZdLWJnX2RhdGEyLnNjcm9sbHg7DQogICAgCQkJcGxheWVyW2ldLmRlYnJp cy55ID0gcGxheWVyW2ldLmRlYnJpc3lbdl0tYmdfZGF0YTIuc2Nyb2xseTsNCiAgICAJCQlH c1NvcnRTcHJpdGUoJnBsYXllcltpXS5kZWJyaXMsICZ3b3JsZF9vcmRlcmluZ190YWJsZVtv dXRwdXRfYnVmZmVyX2luZGV4XSwgMik7IA0KICAgIAkJCX0qLw0KICAgIAkJCQkNCiAgICAJ CQlpZihwbGF5ZXJbaV0ud2VhcG9uID09IDMpDQogICAgCQkJCQlHc1NvcnRTcHJpdGUoJnBs YXllcltpXS5wbGFzbWEsICZ3b3JsZF9vcmRlcmluZ190YWJsZVtvdXRwdXRfYnVmZmVyX2lu ZGV4XSwgMik7ICANCg0KCQkJCQlpZihwbGF5ZXJbaV0ubGF5ZWQgPT0gMSkNCiAgIAkJCQkJ CUdzU29ydFNwcml0ZSgmcGxheWVyW2ldLm1pbmUsICZ3b3JsZF9vcmRlcmluZ190YWJsZVtv dXRwdXRfYnVmZmVyX2luZGV4XSwgMik7DQogICAJCQkJCQkNCiAgIAkJCQkJR3NTb3J0U3By aXRlKCZwbGF5ZXJbaV0ubWluaSwgJndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZm ZXJfaW5kZXhdLCAwKTsgIA0KDQogICAgCQkJfQ0KICAgIAkJDQogICAgCQkNCiAgICAJCQ0K ICAgIAkJDQogICAgCQkNCiAgICAJCQ0KICAgIAkNCiAgICAJCQl9DQogICAgCQkJDQogICAg CQkNCiAgICAJCX0NCiAgICAJDQogCQ0KICAgDQoNCiAgICAJIGlmKEdBTUVtb2RlID09IE1B UE1BS0VSKQ0KICAgIAlHc1NvcnRTcHJpdGUoJnBsYXllclsxXS5zcHJpdGUsICZ3b3JsZF9v cmRlcmluZ190YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwgMCk7DQogICAgCQ0KIAkJCQkN CiAgDQogICAgCX0NCiAgICAJDQogCQkvKmZvcih2PTA7djw9NDt2KyspLy9ERUJSSVMgQ09E RSENCiAJCXsNCiAgIAkJcGxheWVyW2ldLmRlYnJpcy54ID0gcGxheWVyW2ldLmRlYnJpc3hb dl0tYmdfZGF0YTIuc2Nyb2xseDsNCgkJcGxheWVyW2ldLmRlYnJpcy55ID0gcGxheWVyW2ld LmRlYnJpc3lbdl0tYmdfZGF0YTIuc2Nyb2xseTsNCgkJCUdzU29ydFNwcml0ZSgmcGxheWVy W2ldLmRlYnJpcywgJndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhd LCAwKTsgDQogICAJCX0qLw0KICAgCQkNCiAgIAkJZHJhd19zbW9rZSgpOw0KICAgCQl3aW5u ZXJ0eHQoKTsNCgkJZXh0cmFzKCk7DQoJCQkNCgkJLy9CRw0KCQlHc1NvcnRGaXhCZzE2KCZi Z19kYXRhMixiZ193b3JrX2FyZWEyLCZ3b3JsZF9vcmRlcmluZ190YWJsZVtvdXRwdXRfYnVm ZmVyX2luZGV4XSwgMyk7DQoJCUdzU29ydEZpeEJnMTYoJmJnX2RhdGE0LGJnX3dvcmtfYXJl YTQsJndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhdLCA1KTsgIA0K CQ0KCQkNCg0KICAgICAJLy8gMDogYmxvY2tpbmcgdW50aWwgdmVydGljYWwgc3luY2ggb2Nj dXJzDQogICAgCURyYXdTeW5jKDApOw0KICAgIAkvLyB3YWl0IGZvciB2ZXJ0aWNhbCBzeW5j aHJvbmlzYXRpb24NCiAgICAJVlN5bmMoMCk7ICANCiAgICAJLy8gc3dhcCBkb3VibGUgYnVm ZmVycywgKGNoYW5nZXMgdGhlIGRpc3BsYXkgYnVmZmVyIGFuZCBkcmF3aW5nIGJ1ZmZlcikN CiAgICAJR3NTd2FwRGlzcEJ1ZmYoKTsNCiAJCS8vIHN0YXJ0IGV4ZWN1dGlvbiBvZiB0aGUg ZHJhd2luZyBjb21tYW5kIHJlZ2lzdGVyZWQgaW4gT1QNCgkJR3NEcmF3T3QoJndvcmxkX29y ZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhdKTsNCiAgICAJZnJhbWVjb3VudCsr Ow0KICAgIAlpbmFjdGl2ZSsrOw0KIH0vLyBlbmQgVXBkYXRlU2NyZWVuIA0KDQoNCg0Kdm9p ZCB0b3RoZWFsdGgoIHZvaWQgKQ0Kew0KDQoNCglzdGF0dXMxID0gY2FyWzFdLnN0YXR1czsN CglzdGF0dXMyID0gY2FyWzJdLnN0YXR1czsNCglzdGF0dXMzID0gY2FyWzNdLnN0YXR1czsN CglzdGF0dXM0ID0gY2FyWzRdLnN0YXR1czsNCglzdGF0dXM1ID0gY2FyWzVdLnN0YXR1czsN CglzdGF0dXM2ID0gY2FyWzZdLnN0YXR1czsNCglzdGF0dXM3ID0gY2FyWzddLnN0YXR1czsN CglzdGF0dXM4ID0gY2FyWzhdLnN0YXR1czsNCglzdGF0dXM5ID0gY2FyWzldLnN0YXR1czsN CglzdGF0dXMxMCA9IGNhclsxMF0uc3RhdHVzOw0KCXN0YXR1czExID0gY2FyWzExXS5zdGF0 dXM7DQoJc3RhdHVzMTIgPSBjYXJbMTJdLnN0YXR1czsNCglzdGF0dXMxMyA9IGNhclsxM10u c3RhdHVzOw0KCXN0YXR1czE0ID0gY2FyWzE0XS5zdGF0dXM7DQoJc3RhdHVzMTUgPSBjYXJb MTVdLnN0YXR1czsNCglzdGF0dXMxNiA9IGNhclsxNl0uc3RhdHVzOw0KCXN0YXR1czE3ID0g Y2FyWzE3XS5zdGF0dXM7DQoJc3RhdHVzMTggPSBjYXJbMThdLnN0YXR1czsNCglzdGF0dXMx OSA9IGNhclsxOV0uc3RhdHVzOw0KICANCiAgCSAJaWYoR0FNRW1vZGUgPT0gREVTVFJVQ1RJ T04pCQ0KICAJIAkgdG90YWxoZWFsdGggPSAocGxheWVyWzJdLmhlYWx0aCsNCiAgCSAJCQkJ CXBsYXllclszXS5oZWFsdGgrDQogIAkgCQkJCQlwbGF5ZXJbNF0uaGVhbHRoKw0KICAJIAkJ CQkJcGxheWVyWzVdLmhlYWx0aCsNCiAgCSAJCQkJCXBsYXllcls2XS5oZWFsdGgrDQogIAkg CQkJCQlwbGF5ZXJbN10uaGVhbHRoKw0KICAJIAkJCQkJcGxheWVyWzhdLmhlYWx0aCsNCiAg CSAJCQkJCXBsYXllcls5XS5oZWFsdGgrDQogIAkgCQkJCQlwbGF5ZXJbMTBdLmhlYWx0aCkv OTsNCiAgCSAJaWYoR0FNRW1vZGUgPT0gUk9CT1QpCQ0KICAJIAkgdG90YWxoZWFsdGggPSBw bGF5ZXJbMl0uaGVhbHRoOwkJCQ0KfQ0KDQoNCnZvaWQgd2lubmVydHh0KCB2b2lkICkNCnsN Cg0KICAgaWYoR0FNRW1vZGUgPT0gUExBWUVSMSB8fCBHQU1FbW9kZSA9PSBERVNUUlVDVElP TiB8fCBHQU1FbW9kZSA9PSBST0JPVCkNCiAgICB7DQogICAgDQogICAgaWYocGxheWVyWzFd LmxhcHMgPT0gMCAmJiB3aW5uZXIgPT0gMCkNCgl7DQoJCXdpbm5lciA9IDE7DQoJfQ0KCWlm KHBsYXllclsyXS5sYXBzID09IDAgJiYgd2lubmVyID09IDApDQoJew0KCQl3aW5uZXIgPSAy Ow0KCX0NCglpZihwbGF5ZXJbM10ubGFwcyA9PSAwICYmIHdpbm5lciA9PSAwKQ0KCXsNCgkJ d2lubmVyID0gMzsNCgl9DQoJaWYocGxheWVyWzRdLmxhcHMgPT0gMCAmJiB3aW5uZXIgPT0g MCkNCgl7DQoJCXdpbm5lciA9IDQ7DQoJfQ0KCWlmKHdpbm5lcj4wKQ0KCXsNCgl0ZXh0bnVt LnUgPSAxNSs2NCs1NCsoMTMqKHdpbm5lci0xKSk7DQoJR3NTb3J0U3ByaXRlKCZ0ZXh0MSwg JndvcmxkX29yZGVyaW5nX3RhYmxlW291dHB1dF9idWZmZXJfaW5kZXhdLCAwKTsNCglHc1Nv cnRTcHJpdGUoJnRleHQyLCAmd29ybGRfb3JkZXJpbmdfdGFibGVbb3V0cHV0X2J1ZmZlcl9p bmRleF0sIDApOw0KCUdzU29ydFNwcml0ZSgmdGV4dG51bSwgJndvcmxkX29yZGVyaW5nX3Rh YmxlW291dHB1dF9idWZmZXJfaW5kZXhdLCAwKTsNCgl9DQoJCQ0KCQ0KCQkNCgl9DQoNCn0N Cg0Kdm9pZCBleHRyYXMoIHZvaWQgKQ0Kew0KCS8vdXBkYXRlIG1hcG1ha2VyIHNpZGUgYmFy DQoJCWlmKEdBTUVtb2RlID09IE1BUE1BS0VSKQ0KCQl7DQoJCQlHc1NvcnRTcHJpdGUoJlRp bGVTZWxlY3QsICZ3b3JsZF9vcmRlcmluZ190YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwg Mik7ICAgDQoJCQlHc1NvcnRTcHJpdGUoJnBhZCwgJndvcmxkX29yZGVyaW5nX3RhYmxlW291 dHB1dF9idWZmZXJfaW5kZXhdLCAyKTsgICANCgkJfQkJCQ0KICAJDQogIAkNCiAgCS8vZGlz cGxheSBoZWFsdGggYmFycyBpbiBiYXR0bGUgbW9kZXMuCQ0KICAJIGlmKEdBTUVtb2RlID09 IERFU1RSVUNUSU9OIHx8IEdBTUVtb2RlID09IFJPQk9UKQ0KICAJIHsNCiAgCSBpZihwbGF5 ZXJbMV0uaGVhbHRoPjApDQogIAkgR3NTb3J0U3ByaXRlKCZoZWFsdGhiYXIsICZ3b3JsZF9v cmRlcmluZ190YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwgMCk7DQogIAkgaWYodG90YWxo ZWFsdGg+MCkNCiAgCSBHc1NvcnRTcHJpdGUoJmhlYWx0aGJhcjIsICZ3b3JsZF9vcmRlcmlu Z190YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwgMCk7DQogIAkgfQ0KICAJIA0KICAJIC8v dXBkYXRlIGN1cCBpbWFnZXMNCgkgaWYoR0FNRW1vZGUgPT0gTUVOVSkvL29wdGlvbnMNCgkg ew0KCQlHc1NvcnRTcHJpdGUoJnBsYXllclsxXS5zcHJpdGUsICZ3b3JsZF9vcmRlcmluZ190 YWJsZVtvdXRwdXRfYnVmZmVyX2luZGV4XSwgMik7DQoJCVVwZGF0ZUN1cHMoKTsNCgkgfSAN Cn0= --------------62A4E3EC1AF7762D7771B61B Content-Type: application/x-unknown-content-type-hFile; name="main.h" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="main.h" Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gRmlsZTogbWFpbi5oDQovLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIA0KDQoNCiNpZm5kZWYgX01BSU5fSA0KI2RlZmluZSBfTUFJTl9IDQoNCi8v LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCi8vIEQgRSBGIEkgTiBFIFMgDQovLy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tIA0KLy8gQUkgZGVmaW5lcw0KI2RlZmluZSBIVU1BTiAxDQojZGVmaW5lIENQ VSAgIDINCg0KLy8gc2NyZWVuIHJlc29sdXRpb24NCiNkZWZpbmUgU0NSRUVOX1dJRFRIICAz MjAvLzUxMi8vNjQwLy8NCiNkZWZpbmUgU0NSRUVOX0hFSUdIVCAyNTYvLzUxMi8vDQppbnQg U0NST0xMID0gNzsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tDQovLwlCQUNLR1JPVU5EIFNUVUZGDQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojZGVmaW5lIFRJTEVfV0lEVEggIDE2DQojZGVm aW5lIFRJTEVfSEVJR0hUIDE2DQoNCi8vIExvd2VyIGxldmVsIHN0dWZmDQoNCiNkZWZpbmUg TlVNX1hfVElMRVMxIDIwCQkvLyAzMjAvMTY9MjAJCQ0KI2RlZmluZSBOVU1fWV9USUxFUzEg MTYgIAkvLyAyNTYvMTY9MTYNCiNkZWZpbmUgTlVNX1RJTEVTMSAgIChOVU1fWF9USUxFUzEp ICogKE5VTV9ZX1RJTEVTMSkNCg0KLy8gVXBwZXIgbGV2ZWwgc3R1ZmYNCg0KI2RlZmluZSBO VU1fWF9USUxFUzIgMjANCiNkZWZpbmUgTlVNX1lfVElMRVMyIDE2DQojZGVmaW5lIE5VTV9U SUxFUzIgICAoTlVNX1hfVElMRVMyICogTlVNX1NDUkVFTlNfWCkgKiAoTlVNX1lfVElMRVMy ICogTlVNX1NDUkVFTlNfWSkNCg0KI2RlZmluZSBOVU1fWF9USUxFUzMgMjANCiNkZWZpbmUg TlVNX1lfVElMRVMzIDE2DQojZGVmaW5lIE5VTV9USUxFUzMgICAoTlVNX1hfVElMRVMzICog TlVNX1NDUkVFTlNfWCkgKiAoTlVNX1lfVElMRVMzICogTlVNX1NDUkVFTlNfWSkNCg0KI2Rl ZmluZSBOVU1fWF9USUxFUzQgNC8vMjAJCS8vIDMyMC8xNj0yMAkJDQojZGVmaW5lIE5VTV9Z X1RJTEVTNCA0Ly8xNiAgCS8vIDI1Ni8xNj0xNg0KI2RlZmluZSBOVU1fVElMRVM0ICAoTlVN X1hfVElMRVM0ICogTlVNX1lfVElMRVM0KSANCg0KI2RlZmluZSBOVU1fWF9USUxFUzUgMjAN CiNkZWZpbmUgTlVNX1lfVElMRVM1IDE2DQojZGVmaW5lIE5VTV9USUxFUzUgICAoTlVNX1hf VElMRVM1ICogTlVNX1NDUkVFTlNfWCkgKiAoTlVNX1lfVElMRVM1ICogTlVNX1NDUkVFTlNf WSkNCg0KDQojZGVmaW5lIE5VTV9TQ1JFRU5TX1ggICA4CS8vIDggc2NyZWVucyB3aWRlDQoj ZGVmaW5lIE5VTV9TQ1JFRU5TX1kgICA4CS8vIDggc2NyZWVucyBoZWlnaHQNCg0KR3NCRyBi Z19kYXRhMixiZ19kYXRhNDsvL2JnX2RhdGE1LGJnX2RhdGEyLGJnX2RhdGEzLDsJCQkJCQkv LyBiZyBpbmZvDQpHc01BUCBtYXBfZGF0YTIsbWFwX2RhdGE0Oy8vbWFwX2RhdGE1LG1hcF9k YXRhMixtYXBfZGF0YTMsOwkJCQkJLy8gbWFwIGluZm8NCkdzQ0VMTCBjZWxsX2RhdGEyWzEy NTBdOwkJCQkvLyBjZWxsIGluZm8NCg0KLy8gZm9ybXVsYSBmb3Igd29yayBhcmVhDQp1X2xv bmcgYmdfd29ya19hcmVhIFsoKChTQ1JFRU5fV0lEVEgvVElMRV9XSURUSCsxKSoNCiAgICAg ICAgICAgICAgICAgICAgKFNDUkVFTl9IRUlHSFQvVElMRV9IRUlHSFQrMSsxKSo2KzQpKjIr MildOyANCnVfbG9uZyBiZ193b3JrX2FyZWEyWygoKFNDUkVFTl9XSURUSC9USUxFX1dJRFRI KzEpKg0KICAgICAgICAgICAgICAgICAgICAoU0NSRUVOX0hFSUdIVC9USUxFX0hFSUdIVCsx KzEpKjYrNCkqMisyKV07DQp1X2xvbmcgYmdfd29ya19hcmVhM1soKChTQ1JFRU5fV0lEVEgv VElMRV9XSURUSCsxKSoNCiAgICAgICAgICAgICAgICAgICAgKFNDUkVFTl9IRUlHSFQvVElM RV9IRUlHSFQrMSsxKSo2KzQpKjIrMildOw0KdV9sb25nIGJnX3dvcmtfYXJlYTRbKCgoU0NS RUVOX1dJRFRIL1RJTEVfV0lEVEgrMSkqDQogICAgICAgICAgICAgICAgICAgIChTQ1JFRU5f SEVJR0hUL1RJTEVfSEVJR0hUKzErMSkqNis0KSoyKzIpXTsNCnVfbG9uZyBiZ193b3JrX2Fy ZWE1WygoKFNDUkVFTl9XSURUSC9USUxFX1dJRFRIKzEpKg0KICAgICAgICAgICAgICAgICAg ICAoU0NSRUVOX0hFSUdIVC9USUxFX0hFSUdIVCsxKzEpKjYrNCkqMisyKV07IA0KDQovL3Zv aWQgSW5pdENFTExTKCk7DQp2b2lkIEluaXRDRUxMUzIoKTsNCi8vdm9pZCBJbml0Q0VMTFMz KCk7DQovL3ZvaWQgSW5pdENFTExTNCgpOw0Kdm9pZCBJbml0QkcoKTsNCnZvaWQgSW5pdE1B UCgpOw0Kdm9pZCBDaGVja0JvdW5kcnkoKTsNCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gQmFja2dyb3VuZCBkZWZpbml0aW9u cw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQ0KDQojaW5jbHVkZSAibGV2ZWwxLmgiDQojaW5jbHVkZSAibGV2ZWwxQUkuaCINCiNpbmNs dWRlICJsZXZlbDIuaCINCiNpbmNsdWRlICJsZXZlbDJBSS5oIg0KI2luY2x1ZGUgImxldmVs NC5oIg0KI2luY2x1ZGUgImxldmVsNEFJLmgiDQojaW5jbHVkZSAic19sZXZlbDUuaCIvL3Nw ZWVkDQojaW5jbHVkZSAibGV2ZWw1QUkuaCINCiNpbmNsdWRlICJvcHRpb24uaCINCg0KdV9z aG9ydCBtYXBfYXJyYXk0W05VTV9USUxFUzRdID0gew0KOCAgLDggICwyMjQsMjI0LA0KOCAg LDggICwyMjQsMjI0LA0KMjI0LDIyNCw4ICAsOCAgLA0KMjI0LDIyNCw4ICAsOCAgDQp9Ow0K DQp1X3Nob3J0IG1hcF9hcnJheTJbTlVNX1RJTEVTMl07IA0KDQojaW5jbHVkZSAic2F2ZTEu aCINCg0KDQoNCg0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gRyBMIE8gQiBBIEwgUw0K Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpleHRlcm4gaW50IG91dHB1dF9idWZmZXJfaW5k ZXg7ICAgICAgICAgICAgLy8gYnVmZmVyIGluZGV4DQpleHRlcm4gR3NPVCB3b3JsZF9vcmRl cmluZ190YWJsZVsyXTsgICAgICAgLy8gb3JkZXJpbmcgdGFibGUgaGVhZGVycw0KZXh0ZXJu IEdzT1RfVEFHIG9yZGVyaW5nX3RhYmxlWzJdWzE8PDVdOyAgIC8vIGFjdHVhbCBvcmRlcmlu ZyB0YWJsZXMNCmV4dGVybiBQQUNLRVQgZ3B1X3dvcmtfYXJlYVsyXVs0ODAwMF07ICAgICAv LyBHUFUgcGFja2V0IHdvcmsgYXJlYQ0KZXh0ZXJuIHVfY2hhciBwcmV2X21vZGU7CQkJCSAg IC8vIHByZXZpb3VzIGNvZGUNCmV4dGVybiBpbnQgZm50X2lkWzldOyANCg0KLy8tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQ0KLy8gUCBSIE8gVCBPIFQgWSBQIEUgUw0KLy8tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KdHlwZWRlZiBzdHJ1Y3QgZmlsZV90YWcNCiB7DQoNCgljaGFyIGZpbGVfbmFt ZVszMl07DQoJQ2RsRklMRSBmaWxlX2luZm87DQoNCiB9ZmlsZV9kYXRhLCAqZmlsZV9wdHI7 DQoNCmV4dGVybiBmaWxlX2RhdGEgY2RfZmlsZVsyXTsNCg0KLy8tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KLy8gUCBSIE8gVCBPIFQgWSBQIEUgUw0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K DQp2b2lkIFJlYWRGSUxFKCBmaWxlX2RhdGEgKmZpbGUsIHVfbG9uZyAqYWRkciApOw0KR3NJ TUFHRSAqUmVhZFRJTSggdV9sb25nICphZGRyICk7DQp2b2lkIEluaXRHYW1lKCB2b2lkICk7 DQp2b2lkIERlSW5pdEdhbWUoIHZvaWQgKTsNCnZvaWQgVXBkYXRlU2NyZWVuKCB2b2lkICk7 DQp2b2lkIEluaXRTcHJpdGUoIEdzU1BSSVRFICpzcHJpdGUsIHVfbG9uZyBhdHRyaWJ1dGUs IHNob3J0IHgsIHNob3J0IHksIHVfc2hvcnQgdywgdV9zaG9ydCBoLA0KICAgICAgICAgICAg ICAgICB1X3Nob3J0IHRwYWdlLCB1X2NoYXIgdSwgdV9jaGFyIHYsIHNob3J0IGN4LCBzaG9y dCBjeSwgdV9jaGFyIHIsIHVfY2hhciBnLA0KICAgICAgICAgICAgICAgICB1X2NoYXIgYiwg c2hvcnQgbXgsIHNob3J0IG15LCBzaG9ydCBzY2FsZXgsIHNob3J0IHNjYWxleSwgbG9uZyBy b3RhdGUgKTsNCnZvaWQgSW5pdENhciggdm9pZCApOw0Kdm9pZCBhZGRfbW9ycGhlZF9jbHV0 KHNob3J0IHJyLHNob3J0IHJnLHNob3J0IHJiLA0KICAgICAgICAgICAgICAgICAgICAgIHNo b3J0IGdyLHNob3J0IGdnLHNob3J0IGdiLA0KICAgICAgICAgICAgICAgICAgICAgIHNob3J0 IGJyLHNob3J0IGJnLHNob3J0IGJiKTsgDQp2b2lkIGNhcl9mb3J3YXJkKGludCBpKTsNCnZv aWQgY2FyX2JhY2soaW50IGkpOw0Kdm9pZCBjYXJfcmlnaHQoaW50IGkpOw0Kdm9pZCBjYXJf bGVmdChpbnQgaSk7DQp2b2lkIGNhcl9za2lkKGludCBpKTsNCnZvaWQgY2FyX2JhY2tfc2tp ZChpbnQgaSk7DQp2b2lkIGxpbWl0KCB2b2lkICk7DQp2b2lkIE9GRmxpbWl0cyggdm9pZCAp Ow0Kdm9pZCBjcmFzaGVzKCB2b2lkICk7DQp2b2lkIEluaXRGaXJlKGludCBpKTsNCnZvaWQg UmVzZXRGaXJlKGludCBpKTsNCnZvaWQgU2hvb3RGaXJlKGludCBpKTsNCnZvaWQgTGF1bmNo KGludCBpKTsNCnZvaWQgRklSRWhpdCggdm9pZCApOw0Kdm9pZCBtZW51KCB2b2lkICk7DQp2 b2lkIEluaXRUYXBlKCB2b2lkICk7DQp2b2lkIHNjcm9sbHJpZ2h0KCB2b2lkICk7DQp2b2lk IHNjcm9sbGxlZnQoIHZvaWQgKTsNCnZvaWQgc2Nyb2xsdXAoIHZvaWQgKTsNCnZvaWQgc2Ny b2xsZG93biggdm9pZCApOw0Kdm9pZCBJbml0QmFyKCB2b2lkICk7DQp2b2lkIEluaXRNaW5l KGludCBpKTsNCnZvaWQgTWluZUNvbGxpZGUxKCB2b2lkICk7DQp2b2lkIEluaXRQbGFzbWEg KCB2b2lkICk7DQp2b2lkIEluaXRQbGFzbWEyICggdm9pZCApOw0Kdm9pZCBQbGFzbWExKCB2 b2lkICk7DQp2b2lkIFBsYXNtYTIoIHZvaWQgKTsNCnZvaWQgU2hvb3RQbGFzbWExKGludCBk aXJlY3Rpb24pOw0Kdm9pZCBTaG9vdFBsYXNtYTIoaW50IGRpcmVjdGlvbik7DQp2b2lkIFBM QVNNQTFoaXQoIHZvaWQgKTsNCnZvaWQgSW5pdEhlYWx0aCggdm9pZCApOw0Kdm9pZCBNYXBN YWtlciggdm9pZCApOw0Kdm9pZCBJbml0VGlsZXMoIHZvaWQgKTsNCnZvaWQgSW5pdFRpbGVz Miggdm9pZCApOw0Kdm9pZCBJbml0VGlsZXMzKCB2b2lkICk7DQp2b2lkIEluaXRUaWxlczQo IHZvaWQgKTsNCmludCAgVXBQcmVzcyggdm9pZCApOw0KaW50ICBEb3duUHJlc3MoIHZvaWQg KTsNCmludCAgTGVmdFByZXNzKCB2b2lkICk7DQppbnQgIFJpZ2h0UHJlc3MoIHZvaWQgKTsN CmludCAgQ3Jvc3NQcmVzcyggdm9pZCApOw0KaW50ICBTcXVhcmVQcmVzcyggdm9pZCApOw0K aW50ICBDaXJjbGVQcmVzcyggdm9pZCApOw0KaW50ICBUcmlhbmdsZVByZXNzKCB2b2lkICk7 DQppbnQgIEwxUHJlc3MoIHZvaWQgKTsNCmludCAgTDJQcmVzcyggdm9pZCApOw0KaW50ICBS MVByZXNzKCB2b2lkICk7DQppbnQgIFIyUHJlc3MoIHZvaWQgKTsNCnZvaWQgU2V0dXBSZXZl cmIoIHZvaWQgKTsNCnZvaWQgVGlsZUNoZWNrKCB2b2lkICk7DQp2b2lkIENhcl9Ecml2ZShp bnQgaSxpbnQgY3B1KTsNCnZvaWQgQUlfQ29udHJvbCggdm9pZCApOw0Kdm9pZCBJbml0VGV4 dCggdm9pZCApOw0Kdm9pZCBJbml0U21va2UoIHZvaWQgKTsNCnZvaWQgSW5pdFRhbmtGaXJl KGludCBpKTsNCnZvaWQgU2hvb3RUYW5rKGludCBpKTsNCnZvaWQgVGFua0ZpcmUoaW50IGkp Ow0Kdm9pZCBJbml0Q3JlZGl0eiggdm9pZCApOw0Kdm9pZCBDcmVkaXRQbGF5KCB2b2lkICk7 DQp2b2lkIFVwZGF0ZUN1cHMoIHZvaWQgKTsNCnZvaWQgSW5pdEN1cHMoIHZvaWQgKTsNCnZv aWQgU2V0dXBSb2JvdCggdm9pZCApOw0Kdm9pZCBTZXR1cFNwZWVkKCB2b2lkICk7DQp2b2lk IENvb2xGYWRlKHVfY2hhciByLCB1X2NoYXIgZywgdV9jaGFyIGIsIHVfbG9uZyBzY2FsZSwg bG9uZyByb3RhdGUsIHVfbG9uZyBsZW5ndGgsIHNob3J0IHgsIHNob3J0IHksIHVfY2hhciB0 eXBlKTsNCnZvaWQgSW5pdFBTWCggdm9pZCApOw0Kdm9pZCBtaW5pX21hcCggdm9pZCApOw0K dm9pZCBNdWx0aV9Ecml2ZXIoIHZvaWQgKTsNCnZvaWQgbXVsdGlwbGF5KCB2b2lkICk7DQp2 b2lkIE11bGlQYWRTcHJpdGVzKCB2b2lkICk7DQp2b2lkIExvYWRpbmcoIHZvaWQgKTsNCnZv aWQgRGlzcGxheUxvYWQoIHZvaWQgKTsNCkdzSU1BR0UgKlJlYWRUSU0yKCB1X2xvbmcgKmFk ZHIgKTsNCnZvaWQgTGV2ZWwxKCB2b2lkICk7DQp2b2lkIFJlYWREQVQoIHVfbG9uZyAqQWRk ciApOw0Kdm9pZCB0b3RoZWFsdGgoIHZvaWQgKTsNCnZvaWQgd2lubmVydHh0KCB2b2lkICk7 DQp2b2lkIGV4dHJhcyggdm9pZCApOw0Kdm9pZCBjYXJfc2hvcCggdm9pZCApOw0Kdm9pZCBl bmRyYWNlKCB2b2lkICk7DQp2b2lkIHBsYWNlY2Fycyggdm9pZCApOw0Kdm9pZCBjYXJfc2xv dyggdm9pZCApOw0Kdm9pZCBjYXJfcGF5KCB2b2lkICk7DQp2b2lkIHBhdXNlKCB2b2lkICk7 DQp2b2lkIGRlYnJpKGNoYXIgY2FyMSk7DQp2b2lkIGRlYnJpZmx5KCB2b2lkICk7DQp2b2lk IFNUQVJUU0VBUkNIKCB2b2lkICk7DQp2b2lkIHNwZWNpYWxzZXQoaW50IHNlbGVjdCk7DQoN Cg0KDQoNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KCXVfc2hvcnQgYnJpZ2h0Ow0KCXVfc2hvcnQg c2NhbGU7DQoJbG9uZyBweCxweTsNCglsb25nIHZ4LHZ5Ow0KfSBTTU9LRTsNCg0KDQp2b2lk IGNyZWF0ZV9zbW9rZShsb25nLGxvbmcsbG9uZyxsb25nKTsNCnZvaWQgZHJhd19zbW9rZSh2 b2lkKTsNCg0KDQpHc0lNQUdFICpzbW9rZV90aW07DQoNCg0KR3NTUFJJVEUgc21va2Vfc3B0 Ow0KDQoNCg0KI2RlZmluZSBNQVhfU01PS0UgNjQJCS8vIE1heCBwdWZmcyBvZiBzbW9rZSBv bi1zY3JlZW4uDQoNClNNT0tFIHNtb2tlWzY0XTsJCQkvLyBBcnJheSBvZiBzbW9rZXMuDQp1 X3Nob3J0IG5leHRfc21va2U7CQkJLy8gSW5kZXggb2YgbmV4dCBzbW9rZSBhdmFpbGFibGUu DQoNCg0KDQovL211bHRpcGxheWVyIGRlZmluZXMNCiNkZWZpbmUgU0lOR0xFIDENCiNkZWZp bmUgTVVMVEkgMg0KY2hhciBHQU1FVFlQRSA9IFNJTkdMRTsNCmNoYXIgcGxheW1vZGU9MTsN CmNoYXIgbnVtX3BsYXllcnM9MDsNCmNoYXIgcGxheWluZ1tdPXswLDAsMCwwLDB9Ow0KR3NT UFJJVEUgcGFkOw0KLy9obW1tbSwgZmlyc3QgcGxhY2UgSSBjb3VsZCBmaW5kIHRvIHB1dCBp dC4uIGFuZCB3aHkgbm90Pw0KR3NTUFJJVEUgbG9hZDsNCmNoYXIgbG9hZHZhcj0wOw0KLy9m b3IgdGhlIGRlYnVnZ2luZyBwcmludGYncw0KaW50IGRlYnVnPTE7DQpHc1NQUklURSBtZXNz YWdlOw0KDQovL2RlbW8gY291bnRlciAtIGluYWN0aXZlIHRpbWVyDQp1X2xvbmcgaW5hY3Rp dmU9MDsNCg0KI2VuZGlmDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LUVPRi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg== --------------62A4E3EC1AF7762D7771B61B--