Date: Sun, 1 Dec 1996 14:18:03 +0800 (GMT) From: Orlando Andico To: Mike Pope
cc: djgpp AT delorie DOT com Subject: SVGALIB stuff In-Reply-To: <32A10DF1.20AD@inreach.com> Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-1512304180-1784015697-849421083=:16357" This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime AT docserver DOT cac DOT washington DOT edu for more info. ---1512304180-1784015697-849421083=:16357 Content-Type: TEXT/PLAIN; charset=US-ASCII On Sat, 30 Nov 1996, Mike Pope wrote: [...] > SVGALib's pretty much the same difference, can't figure out how > to get a dang thing working. :P All the docs I have aren't worth > spit, anyplace I can get a tutorial or something? I've looked > on Altavista to no avail. Thanks for responding. :) [...] I don't know what you mean about a tutorial, but all the info I ever got about SVGALIB is in /usr/doc/svgalib/README.gl of Slackware Linux (I've attached it if you're not using Linux right now or don't have the file). I've NEVER used SVGALIB under MSDOG, but someone on the DJGPP mailing list is responsible for the port. I think the DJGPP version currently supports Tseng, S3, and Cirrus cards. The Linux version 1.2.10 also does Mach32/64 and Oak cards. Note that the SVGALIB support for S3 in versions of Slackware Linux < 3.1 (i.e. SVGALIB 1.2.7 or less) is flaky. Check on Sunsite for later versions (Linux at least, which is stable -- Linux DOOM was implemented with it). Also, when using SVGALIB under Linux, the program must be setuid root so it can access the hardware; the last program I tried writing with SVGALIB crashed my Linux machine.. but that was libvga.so.1.2.7 which as I've said is kinda buggy. Hope this helps.. .-----------------------------------------------------------------. | Orlando Andico email: orly AT gibson DOT eee DOT upd DOT edu DOT ph | | IRC Lab/EE Dept/UP Diliman http://gibson.eee.upd.edu.ph/~orly | | "through adventure we are not adventuresome" -- 10000 Maniacs | `-----------------------------------------------------------------' ---1512304180-1784015697-849421083=:16357 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="README.gl" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: DQpUaGlzIGlzIGEgZmFzdCBmcmFtZWJ1ZmZlci1sZXZlbCBncmFwaGljcyBs aWJyYXJ5IGZvciBsaW5lYXIgMSwgMiwgMyBhbmQgNA0KYnl0ZS1wZXItcGl4 ZWwgbW9kZXMgKDI1Ni1jb2xvciwgaGljb2xvciwgdHJ1ZWNvbG9yKS4gSXQg dXNlcyBhIGxpbWl0ZWQNCm51bWJlciBvZiBmdW5jdGlvbnMgZnJvbSBzdmdh bGliIChsaWJ2Z2EpIGZvciBsb3ctbGV2ZWwgaGFyZHdhcmUNCmNvbW11bmlj YXRpb24gKHRoZSBsaWJyYXJ5IGlzIGluY2x1ZGVkIGluIHRoZSBzdmdhbGli IHNoYXJlZCBpbWFnZSkuDQpJbiBwYXJ0aWN1bGFyLCBzdmdhbGliIG1hcHMg dGhlIDY0SyBWR0EgZnJhbWUgYnVmZmVyIHdpbmRvdywgYW5kIHRoaXMgbGli cmFyeQ0KZGlyZWN0bHkgYWRkcmVzc2VzIHRoZSBidWZmZXIuIEZvciBTVkdB IG1vZGVzIHRoYXQgdXNlIG1vcmUgdGhhbiA2NEsgb2YNCnNjcmVlbiBtZW1v cnksIFNWR0EgcGFnaW5nIGlzIHJlcXVpcmVkIHdoZW4gd3JpdGluZyB0byB0 aGUgcGh5c2ljYWwgc2NyZWVuOw0KdGhpcyBpcyBkb25lIGF1dG9tYXRpY2Fs bHkgZm9yIG1vc3QgZnVuY3Rpb25zIChhdCBhIGNlcnRhaW4gY29zdCkuDQpB bHRlcm5hdGl2ZWx5LCBhbnkgbnVtYmVyIG9mIHZpcnR1YWwgc2NyZWVucyBv ZiBhbnkgdHlwZSBpbiBzeXN0ZW0gbWVtb3J5IGNhbg0KYmUgdXNlZCwgd2hp Y2ggY2FuIHRoZW4gYmUgY29waWVkIHRvIHRoZSBwaHlzaWNhbCBzY3JlZW4u IFRoZXJlIGlzIGFsc28NCnN1cHBvcnQgZm9yIDQgYnl0ZXMgcGVyIHBpeGVs IGZyYW1lYnVmZmVycyAoYW5kIGNvcHlpbmcgdGhlbSB0byBhIDMgYnl0ZXMg cGVyDQpwaXhlbCBjb250ZXh0KSwgYW5kIGxpbWl0ZWQgcGxhbmFyIDI1NiBj b2xvciBtb2RlIHN1cHBvcnQgKGNvcHlzY3JlZW4sDQphbGlnbmVkIHB1dGJv eCkuDQoNClRoZSBwbGFuYXIgMjU2IGNvbG9yIG1vZGVzIChhdmFpbGFibGUg b24gYWxsIFZHQSBjYXJkcykgY2FuIG5vdyBiZSB1c2VkDQp3aXRoIGEgdmly dHVhbCBzY3JlZW4sIHdoaWNoIGlzIGNvcGllZCB0byB0aGUgcGh5c2ljYWwg c2NyZWVuICh3aXRoIG9wdGlvbmFsDQpwYWdlLWZsaXBwaW5nKS4NCg0KQml0 bWFwcyBhcmUgcmF3LCB3aXRoIG9uZSAob3IgbW9yZSkgYnl0ZXMgcGVyIHBp eGVsIChsaWtlIHBpeG1hcHMgaW4gWCksDQpzdG9yZWQgaW4gcm93LW1ham9y IG9yZGVyLiBUaGV5IGFyZSB1c3VhbGx5IG1hbmlwdWxhdGVkIHdpdGggdGhl IGdldGJveA0KYW5kIHB1dGJveCBmdW5jdGlvbnMuDQoNCkEgZ3JhcGhpY3Mg Y29udGV4dCBpcyBqdXN0IGEgc3RydWN0dXJlIHRoYXQgaG9sZHMgdGhlIHNp emUgb2YgdGhlIGFzc29jaWF0ZWQNCmdyYXBoaWNzIHNjcmVlbiwgaG93IGl0 IGlzIG9yZ2FuaXplZCwgY2xpcHBpbmcgc3RhdHVzIGV0Yy4gWW91IGNhbiBk ZWZpbmUgYQ0KY3VzdG9tIHZpcnR1YWwgKHN5c3RlbSBtZW1vcnkpIGdyYXBo aWNzIGNvbnRleHQgb2YgYW55IHNpemUgd2l0aCB0aGUNCnNldGNvbnRleHR2 aXJ0dWFsIGZ1bmN0aW9uLiBBbGwgb3BlcmF0aW9ucyB3b3JrIG9uIHRoZSBj dXJyZW50IGNvbnRleHQuDQoNCkFueSBxdWVzdGlvbnMsIGJ1Zy1yZXBvcnRz LCBhZGRpdGlvbnMsIHN1Z2dlc3Rpb25zIGV0Yy4gYXJlIHdlbGNvbWUuDQoN Cg0KRnVuY3Rpb25zIChhbGwgaGF2ZSBhICJnbF8iIHByZWZpeCk6DQoNCgkt IHNpbXBsZSBsaW5lIGRyYXdpbmcgDQoNCglzZXRwaXhlbCggaW50IHgsIGlu dCB5LCBpbnQgYyApDQoJCURyYXcgYSBzaW5nbGUgcGl4ZWwgYXQgcG9zaXRp b24gKHgsIHkpIGluIGNvbG9yIGMuIFRoZSBsb3dlcg0KCQk4LCAxNSwgMTYg b3IgMjQgYml0cyBvZiB0aGUgY29sb3IgYXJlIHNpZ25pZmljYW50LCBkZXBl bmRpbmcNCgkJb24gdGhlIG51bWJlciBvZiBjb2xvcnMgdGhlIGN1cnJlbnQg bW9kZSBzdXBwb3J0cy4gDQoNCglzZXRwaXhlbHJnYiggaW50IHgsIGludCB5 LCBpbnQgciwgaW50IGcsIGludCBiICkNCgkJRHJhdyBhIHNpbmdsZSBwaXhl bCBhdCAoeCwgeSkgd2l0aCBjb2xvciBjb21wb25lbnRzIHIsIGcsDQoJCWFu ZCBiLCByYW5naW5nIGZyb20gMCB0byAyNTUuIEluIDI1NiBjb2xvciBtb2Rl LCBvbmx5DQoJCW1lYW5pbmdmdWwgaWYgdGhlIFJHQiBwYWxldHRlIGlzIHNl dCAoc2V0cmdicGFsZXR0ZSkuDQoNCglpbnQgZ2V0cGl4ZWwoIGludCB4LCBp bnQgeSApDQoJCVJldHVybnMgY29sb3Igb2YgcGl4ZWwgYXQgcG9zaXRpb24g KHgsIHkpLg0KDQoJZ2V0cGl4ZWxyZ2IoIGludCB4LCBpbnQgeSwgaW50ICpy LCBpbnQgKmcsIGludCAqYiApDQoJCVN0b3JlIGNvbG9yIGNvbXBvbmVudHMg ZnJvbSBwaXhlbCBhdCAoeCwgeSkgcmFuZ2luZyBmcm9tIDANCgkJdG8gMjU1 LCBpbnRvIGludGVnZXJzIHBvaW50ZWQgdG8gYnkgciwgZyBhbmQgYi4NCg0K CWludCByZ2Jjb2xvciggaW50IHIsIGludCBnLCBpbnQgYiApDQoJCVJldHVy bnMgcGl4ZWwgdmFsdWUgdGhhdCBjb3JyZXNwb25kcyB3aXRoIHRoZSBnaXZl biBjb2xvcg0KCQljb21wb25lbnRzLiBVc2VkIGJ5IHNldHBpeGVscmdiLg0K DQoJbGluZSggaW50IHgxLCBpbnQgeTEsIGludCB4MiwgaW50IHkyLCBpbnQg YyApDQoJCURyYXcgYSBsaW5lIGZyb20gKHgxLCB5MSkgdG8gKHgyLCB5Mikg aW5jbHVzaXZlIGluIA0KCQljb2xvciBjLg0KDQoJaGxpbmUoIGludCB4MSwg aW50IHksIGludCB4MiwgaW50IGMgKQ0KCQlEcmF3IGEgaG9yaXpvbnRhbCBs aW5lIGZyb20gKHgxLCB5KSB0byAoeDIsIHkpIGluIGNvbG9yIGMuDQoNCglj aXJjbGUoIGludCB4LCBpbnQgeSwgaW50IHIsIGludCBjICkNCgkJRHJhdyBh IGNpcmNsZSBvZiByYWRpdXMgciBpbiBjb2xvciBjLCBjZW50ZXJlZCBhdCAo eCwgeSkuDQoNCg0KCS0gYm94IChiaXRtYXApIGZ1bmN0aW9ucyANCg0KCWZp bGxib3goIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoLCBpbnQgYyApDQoJ CVNjcmVlbiBwb3NpdGlvbiAoeCwgeSksIGJveCBzaXplICh3LCBoKS4NCgkJ RmlsbCBhIHJlY3Rhbmd1bGFyIGFyZWEgb2YgdGhlIHNjcmVlbiB3aXRoIGEg c2luZ2xlIGNvbG9yLg0KDQoJZ2V0Ym94KCBpbnQgeCwgaW50IHksIGludCB3 LCBpbnQgaCwgdm9pZCAqZHAgKQ0KCQlCaXRtYXAgZGF0YSBwb2ludGVyIGRw LiBCaXRtYXBzIGFyZSBpbiByb3ctbWFqb3Igb3JkZXIuDQoJCUNvcHkgYSBy ZWN0YW5ndWxhciBiaXRtYXAgZnJvbSB0aGUgc2NyZWVuIHRvIGEgYnVmZmVy Lg0KDQoJcHV0Ym94KAlpbnQgeCwgaW50IHksIGludCB3LCBpbnQgaCwgdm9p ZCAqZHAgKQ0KCQlCaXRtYXAgZGF0YSBwb2ludGVyIGRwLg0KCQlDb3B5IGEg Yml0bWFwIHRvIGEgcmVjdGFuZ3VsYXIgYXJlYSBvZiB0aGUgc2NyZWVuLg0K DQoJcHV0Ym94cGFydCggaW50IHgsIGludCB5LCBpbnQgdywgaW50IGgsIGlu dCBidywgaW50IGJoLCB2b2lkICpicCwNCglpbnQgeG8sIGludCB5byApDQoJ CUNvcHkgYSBwYXJ0aWFsIGJpdG1hcCB0byB0aGUgc2NyZWVuLiAodywgaCkg aXMgdGhlIHNpemUNCgkJb2YgdGhlIHBhcnRpYWwgYml0bWFwLCAoYncsIGJo KSB0aGF0IG9mIHRoZSBzb3VyY2UgYml0bWFwLA0KCQlhbmQgKHhvLCB5bykg aXMgdGhlIG9mZnNldCBpbiBwaXhlbHMgaW50byB0aGUgc291cmNlIGJpdG1h cC4NCg0KCXB1dGJveG1hc2soIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBo LCB2b2lkICpkcCApDQoJCUFzIHB1dGJveCwgYnV0IGRvIG5vdCB3cml0ZSBi aXRtYXAgcGl4ZWxzIG9mIGNvbG9yIHplcm8uDQoNCgljb3B5Ym94KCBpbnQg eDEsIGludCB5MSwgaW50IHcsIGludCBoLCBpbnQgeDIsIGludCB5MiApDQoJ CUNvcHkgdGhlIHJlY3Rhbmd1bGFyIGFyZWEgYXQgKHgxLCB5MSkgb2Ygc2l6 ZSAodywgaCksDQoJCXRvICh4MiwgeTIpIChzY3JlZW5jb3B5KS4NCg0KCWNv cHlib3h0b2NvbnRleHQoIGludCB4MSwgaW50IHkxLCBpbnQgdywgaW50IGgs IEdyYXBoaWNzQ29udGV4dCAqZ2MsDQoJaW50IHgyLCBpbnQgeTIgKQ0KCQlD b3B5IHRoZSByZWN0YW5ndWxhciBhcmVhIGF0ICh4MSwgeTEpIG9mIHNpemUg KHcsIGgpLCB0bw0KCQlwb3NpdGlvbiAoeDIsIHkyKSBpbiB0aGUgY29udGV4 dCBnYy4gSWYgcG9zc2libGUgdXNlDQoJCWNvcHlib3hmcm9tY29udGV4dC4N Cg0KCWNvcHlib3hmcm9tY29udGV4dCggR3JhcGhpY3NDb250ZXh0ICpnYywg aW50IHgxLCBpbnQgeTEsIGludCB3LA0KCWludCBoLCBpbnQgeDIsIGludCB5 MiApDQoJCUNvcHkgdGhlIHJlY3Rhbmd1bGFyIGFyZWEgYXQgKHgxLCB5MSkg aW4gdGhlIGNvbnRleHQgZ2MsIG9mDQoJCXNpemUgKHcsIGgpLCB0byBwb3Np dGlvbiAoeDIsIHkyKSBpbiB0aGUgY3VycmVudCBjb250ZXh0Lg0KCQlUaGlz IGlzIG1vcmUgZWZmaWNpZW50IHRoYW4gY29weWJveHRvY29udGV4dC4NCg0K DQoJLSBjb21waWxlZCBiaXRtYXBzIChsaW5lYXIgMjU2IGNvbG9yIG1vZGUg b25seSkNCg0KCWNvbXBpbGVib3htYXNrKCBpbnQgdywgaW50IGgsIHZvaWQg KnNkcCwgdm9pZCAqZGRwICkNCgkJQ29udmVydCByZWN0YW5ndWxhciBtYXNr ZWQgYml0bWFwIG9mIHNpemUgKHcsIGgpIGF0IHNkcCB0bw0KCQlhIGNvbXBy ZXNzZWQgZm9ybWF0IHRoYXQgYWxsb3dzIGZhc3RlciBkcmF3aW5nLCB3aGlj aCBpcw0KCQlzdG9yZWQgYXQgZGRwLiBBbGxvY2F0aW5nIHcgKiBoIGJ5dGVz IGZvciB0aGUgY29tcGlsZWQNCgkJdmVyc2lvbiBpcyB1c3VhbGx5IGVub3Vn aDsgYW4gdXBwZXIgbGltaXQgc2hvdWxkIGJlIA0KCQkodyArIDIpICogaC4N Cg0KCWludCBjb21waWxlZGJveG1hc2tzaXplKCBpbnQgdywgaW50IGgsIHZv aWQgKnNkcCApDQoJCVJldHVybnMgdGhlIHNpemUgb2YgdGhlIGNvbXBpbGVk IHZlcnNpb24gb2YgdGhlIG1hc2tlZA0KCQliaXRtYXAgb2Ygc2l6ZSAodywg aCkgYXQgc2RwIHRoYXQgd2lsbCBiZSBnZW5lcmF0ZWQgYnkNCgkJY29tcGls ZWJveG1hc2suDQoNCglwdXRib3htYXNrY29tcGlsZWQoIGludCB4LCBpbnQg eSwgaW50IHcsIGludCBoLCB2b2lkICpkcCApDQoJCVdyaXRlIGNvbXBpbGVk IGJpdG1hcCB0byBzY3JlZW4uIFRoaXMgaXMgc2lnbmlmaWNhbnRseQ0KCQlm YXN0ZXIgdGhhbiBub24tY29tcGlsZWQgbWFza2VkIGJpdG1hcHMsIGVzcGVj aWFsbHkgZm9yDQoJCXNwYXJzZSBiaXRtYXBzLg0KDQoNCgktIGNsaXBwaW5n DQoJDQoJZW5hYmxlY2xpcHBpbmcoKQ0KCQlFbmFibGUgYXV0b21hdGljIGNs aXBwaW5nIGluIG1vc3QgZnVuY3Rpb25zLg0KDQoJZGlzYWJsZWNsaXBwaW5n KCkNCgkJRGlzYWJsZSBjbGlwcGluZy4NCg0KCXNldGNsaXBwaW5nd2luZG93 KCBpbnQgeDEsIGludCB5MSwgaW50IHgyLCBpbnQgeTIgKQ0KCQlTZXQgdGhl IGNsaXBwaW5nIHdpbmRvdyB0byB0aGUgcmVjdGFuZ2xlIHdpdGggdG9wLWxl ZnQNCgkJY29ybmVyICh4MSwgeTEpIGFuZCBib3R0b20tcmlnaHQgY29ybmVy ICh4MiwgeTIpIChpbmNsLikuDQoNCg0KCS0gZ3JhcGhpY3MgY29udGV4dHMg YW5kIHZpcnR1YWwgc2NyZWVucw0KDQoJR3JhcGhpY3NDb250ZXh0ICphbGxv Y2F0ZWNvbnRleHQoKQ0KCQlBbGxvY2F0ZSBhIGdyYXBoaWNzIGNvbnRleHQu IFRoaXMgaXMgcHJlZmVycmVkIHRvDQoJCWhhcmRjb2RpbmcgYSBjb250ZXh0 IHZhcmlhYmxlIGluIGEgcHJvZ3JhbSBzaW5jZSB0aGUNCgkJbGF0dGVyIGlz IGluY29tcGF0aWJsZSB3aXRoIGEgZnV0dXJlIHZnYWdsIHZlcnNpb24gdGhh dA0KCQloYXMgYWRkaXRpb25hbCBjb250ZXh0IGZpZWxkcy4NCg0KCXNldGNv bnRleHR2Z2EoIGludCBtb2RlICkNCgkJU2V0IHRoZSBncmFwaGljcyBjb250 ZXh0IHRvIHRoZSBwaHlzaWNhbCBzY3JlZW4gb2YgYQ0KCQl2Z2EgbW9kZSAo YXMgZGVmaW5lZCBpbiBzdmdhbGliKS4gVGhlIG1vZGUgbXVzdCBiZSBzZXQN CgkJZmlyc3QuIFRoZSBvbmx5IHRoaW5nIHlvdSBjYW4gZG8gd2l0aCBhIHBs YW5hciAobW9kZSBYLWxpa2UpDQoJCTI1NiBjb2xvciBtb2RlIGlzIGFsaWdu ZWQgcHV0Ym94LCBhbmQgdXNlIGl0IGFzIGEgdGFyZ2V0IGZvcg0KCQljb3B5 c2NyZWVuLg0KDQoJc2V0Y29udGV4dHZnYXZpcnR1YWwoIGludCBtb2RlICkN CgkJQWxsb2NhdGUgYSB2aXJ0dWFsIHNjcmVlbiBpbiBzeXN0ZW0gbWVtb3J5 IGlkZW50aWNhbCB0bw0KCQl0aGUgZ3JhcGhpY3MgbW9kZSwgYW5kIG1ha2Ug dGhhdCB0aGUgY3VycmVudCBncmFwaGljcw0KCQljb250ZXh0Lg0KDQoJc2V0 Y29udGV4dHZpcnR1YWwoIGludCB3LCBpbnQgaCwgaW50IGJwcCwgaW50IGJp dHNwcCwgdm9pZCAqdmJ1ZiApDQoJCURlZmluZSB0aGUgY3VycmVudCBncmFw aGljcyBjb250ZXh0IHRvIGhhdmUgYSB3aWR0aCBvZiB3DQoJCXBpeGVscywg aGVpZ2h0IGgsIGJwcCBieXRlcyBwZXIgcGl4ZWwsIGJpdHNwcCBzaWduaWZp Y2FudA0KCQljb2xvciBiaXRzIHBlciBwaXhlbCAoOCwgMTUsIDE2IG9yIDI0 KSwgd2l0aCB0aGUgZnJhbWVidWZmZXINCgkJYXQgdmJ1Zi4gQSA0IGJ5dGVz IHBlciBwaXhlbCBjb250ZXh0LCB3aXRoIDI0IHNpZ25pZmljYW50DQoJCWNv bG9yIGJpdHMgaXMgYWxzbyB2YWxpZC4NCg0KCWdldGNvbnRleHQoIEdyYXBo aWNzQ29udGV4dCAqZ2MgKQ0KCQlTYXZlIHRoZSBjdXJyZW50IGNvbnRleHQg aW4gYSBzdHJ1Y3R1cmUgdmFyaWFibGUuDQoNCglzZXRjb250ZXh0KCBHcmFw aGljc0NvbnRleHQgKmdjICkNCgkJUmVzdG9yZSBhIHByZXZpb3VzbHkgc2F2 ZWQgY29udGV4dCAobWFrZSBpdCB0aGUgY3VycmVudA0KCQljb250ZXh0KS4N Cg0KCWZyZWVjb250ZXh0KCBHcmFwaGljc0NvbnRleHQgKmdjICkNCgkJRnJl ZSB0aGUgc3BhY2UgYWxsb2NhdGVkIGZvciB0aGUgdmlydHVhbCBzY3JlZW4g aW4gdGhlDQoJCWdpdmVuIGNvbnRleHQuDQoNCgljb3B5c2NyZWVuKCBHcmFw aGljc0NvbnRleHQgKmdjICkNCgkJQ29weSB0aGUgY3VycmVudCBncmFwaGlj cyBjb250ZXh0IGNvbnRlbnRzIChzY3JlZW4gZGF0YSkgdG8NCgkJdGhlIHNw ZWNpZmllZCBncmFwaGljcyBjb250ZXh0ICh0aGUgcGh5c2ljYWwgc2NyZWVu LCBmb3INCgkJZXhhbXBsZSkuIENvbnRleHRzIGFyZSBhc3N1bWVkIHRvIGJl IGlkZW50aWNhbCBpbiBzaXplLg0KDQoJc2V0c2NyZWVub2Zmc2V0KCBpbnQg byApDQoJCVNldCB0aGUgb2Zmc2V0IGluIHBpeGVscyBpbnRvIHZpZGVvIG1l bW9yeSBmb3IgY29weXNjcmVlbg0KCQlhbmQgY29weWJveHRvc2NyZWVuLCBh bGxvd3MgZm9yIHBhZ2UtZmxpcHBpbmcuIE11c3QgYmUgYQ0KCQltdWx0aXBs ZSBvZiB0aGUgc2NhbmxpbmUgd2lkdGggaW4gYnl0ZXMuIEl0IGlzIHJlc2V0 IHRvDQoJCXplcm8gYWZ0ZXIgY29tcGxldGlvbiBvZiBjb3B5c2NyZWVuLg0K DQoJaW50IGVuYWJsZXBhZ2VmbGlwcGluZyggR3JhcGhpY3NDb250ZXh0ICpn YyApDQoJCUVuYWJsZSBwYWdlIGZsaXBwaW5nIG9yIHRyaXBsZSBidWZmZXJp bmcgaW4gY29weXNjcmVlbiBpZg0KCQl0aGUgcGh5c2ljYWwgY29udGV4dCBn YyBjYW4gZG8gaXQuIFJldHVybnMgMyBpZiB0cmlwbGUNCgkJYnVmZmVyaW5n IHdpbGwgYmUgdXNlZCwgMiBmb3IgcGFnZSBmbGlwcGluZywgMCBpZiBwYWdl DQoJCWZsaXBwaW5nIGlzIG5vdCBwb3NzaWJsZSAoZHVlIHRvIHZpZGVvIG1l bW9yeS9tb2RlDQoJCWxpbWl0YXRpb25zKS4gV2hlbiBwYWdlZmxpcHBpbmcg aXMgZW5hYmxlZCwgdGhlIHNjcmVlbm9mZnNldA0KCQlpcyBpZ25vcmVkIGlu IGNvcHlzY3JlZW4uDQoNCg0KCS0gdGV4dCB3cml0aW5nLCBmb250IGhhbmRs aW5nDQoNCglzZXRmb250KCBpbnQgZncsIGludCBmaCwgdm9pZCAqZnAgKQ0K CQlVc2UgdGhlIGZvbnQgc3RvcmVkIGFzIGNoYXJhY3RlciBiaXRtYXBzIGF0 IGZwLCB3aXRoIA0KCQljaGFyYWN0ZXJzIG9mIHNpemUgKGZ3LCBmaCksIGFz IHRoZSBiYXNpYyBmb250IGZvciB3cml0ZQ0KCQlvcGVyYXRpb25zLiBOb3Rl IHRoYXQgdGhlIGZvbnQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkgbXVzdA0K CQliZSBleHBhbmRlZCBmaXJzdCwgYmVjYXVzZSBpdCBpcyBzdG9yZWQgYml0 LXBlci1waXhlbDsNCgkJdGhpcyBpcyBub3QgcmVxdWlyZWQgaWYgdGhlIEZP TlRfQ09NUFJFU1NFRCB3cml0ZW1vZGUNCgkJZmxhZyBpcyBzZXQuDQoNCglz ZXR3cml0ZW1vZGUoIGludCBtICkNCgkJU2V0cyB3cml0ZW1vZGUgZmxhZ3Mu IElmIFdSSVRFTU9ERV9NQVNLRUQgaXMgc2V0IChhcyBvcHBvc2VkDQoJCXRv IFdSSVRFTU9ERV9PVkVSV1JJVEUpLCBvbmx5IGZvcmVncm91bmQgcGl4ZWxz IG9mIHRoZSBmb250DQoJCWFyZSB1c2VkIGZvciB3cml0ZSBvcGVyYXRpb25z OyB0aGUgc2NyZWVuIGJhY2tncm91bmQgaXMgbm90DQoJCWVyYXNlZC4gSWYg Rk9OVF9DT01QUkVTU0VEIGlzIHNldCAoYXMgb3Bwb3NlZCB0bw0KCQlGT05U X0VYUEFOREVEKSwgdGV4dCB3cml0ZXMgd2lsbCB1c2UgdGhlIGNvbXByZXNz ZWQNCgkJYml0LXBlci1waXhlbCBmb250IHJhdGhlciB0aGFuIHRoZSBleHBh bmRlZCBmb250Lg0KDQoJd3JpdGUoIGludCB4LCBpbnQgeSwgY2hhciAqcyAp DQoJCVdyaXRlIHN0cmluZyBzIGF0ICh4LCB5KSB1c2luZyBjdXJyZW50bHkg c2VsZWN0ZWQgZm9udC4NCg0KCXdyaXRlbiggaW50IHgsIGludCB5LCBpbnQg biwgY2hhciAqcyApDQoJCVdyaXRlIG4gY2hhcmFjdGVyIHN0cmluZyBzIGF0 ICh4LCB5KS4NCg0KCWV4cGFuZGZvbnQoIGludCBmdywgaW50IGZoLCBpbnQg Yywgdm9pZCAqc2ZwLCB2b2lkICpkZnAgKQ0KCQlDb252ZXJ0IGJpdC1wZXIt cGl4ZWwgZm9udCBhdCBzZnAsIHdpdGggY2hhcmFjdGVycyBvZiBzaXplDQoJ CShmdywgZmgpLCB0byBhbiBleHBhbmRlZCBmb250IG9mIGNoYXJhY3RlciBi aXRtYXBzLCBzdG9yZWQgYXQNCgkJZGZwIChzaXplIHdpbGwgYmUgMjU2ICog ZncgKiBmdyAqIEJZVEVTUEVSUElYRUwpLiBBbGwNCgkJbm9uLXplcm8gcGl4 ZWxzIGFyZSBzZXQgdG8gY29sb3IgYy4NCg0KCWNvbG9yZm9udCggaW50IGZ3 LCBpbnQgZmgsIGludCBjLCB2b2lkICpmcCApDQoJCVNldCBhbGwgbm9uemVy byBwaXhlbHMgaW4gdGhlIGV4cGFuZGVkIGZvbnQgdG8gY29sb3IgYy4NCg0K CXNldGZvbnRjb2xvcnMoIGludCBiZywgaW50IGZnICkNCgkJU2V0IHRoZSBi YWNrZ3JvdW5kIGFuZCBmb3JlZ3JvdW5kIGNvbG9ycyBmb3IgdGhlIGNvbXBy ZXNzZWQNCgkJZm9udCB3cml0ZSBtb2RlLg0KDQoNCgktIFZHQSAyNTYtY29s b3IgcGFsZXR0ZSBoYW5kbGluZw0KDQoJVGhlc2UgZnVuY3Rpb25zIGFyZSBv bmx5IHZhbGlkIGluIDI1Ni1jb2xvciBtb2Rlcy4NCg0KCWdldHBhbGV0dGVj b2xvciggaW50IGMsIGludCAqciwgaW50ICpnLCBpbnQgKmIgKQ0KCQlHZXQg cmVkLCBncmVlbiBhbmQgYmx1ZSB2YWx1ZXMgKGluIHRoZSByYW5nZSAwLTYz KSBvZiANCgkJY29sb3IgYyBmcm9tIHRoZSBjb2xvci1sb29rdXAtdGFibGUs IGFuZCBzdG9yZSB0aGVtIGFzDQoJCWludGVnZXJzIGluIHRoZSBtZW1vcnkg bG9jYXRpb25zIHBvaW50ZWQgdG8gYnkgciwgZyBhbmQgYi4gIA0KDQoJc2V0 cGFsZXR0ZWNvbG9yKCBpbnQgYywgaW50IHIsIGludCBnLCBpbnQgYiApDQoJ CVNldCBSR0IgdmFsdWVzICgwLTYzKSBmb3IgY29sb3IgYy4NCg0KCWdldHBh bGV0dGVjb2xvcnMoIGludCBzLCBpbnQgbiwgdm9pZCAqZHAgKQ0KCQlHZXQg UkdCIHZhbHVlcyBvZiBuIGNvbG9ycyBzdGFydGluZyBhdCBzLCB3aGljaCBh cmUgc3RvcmVkDQoJCWFzIGEgdGFibGUgb2YgZ3JvdXBzIG9mIHRocmVlIGJ5 dGVzIGF0IGRwLiANCg0KCXNldHBhbGV0dGVjb2xvcnMoIGludCBzLCBpbnQg biwgdm9pZCAqZHAgKQ0KCQlTZXQgUkdCIHZhbHVlcyBvZiBuIGNvbG9ycyBz dGFydGluZyBhdCBjb2xvciBzLg0KDQoJZ2V0cGFsZXR0ZSggdm9pZCAqcCAp DQoJCUVxdWl2YWxlbnQgdG8gZ2V0cGFsZXR0ZWNvbG9ycygwLCAyNTYsIHAp Lg0KDQoJc2V0cGFsZXR0ZSggdm9pZCAqcCApDQoJCUVxdWl2YWxlbnQgdG8g c2V0cGFsZXR0ZWNvbG9ycygwLCAyNTYsIHApLg0KDQoJc2V0cmdicGFsZXR0 ZSgpDQoJCVNldCAyNTYtY29sb3IgUkdCIHBhbGV0dGUgKGJpdHMgMC0yIGJs dWUsIDMtNSBncmVlbiwNCgkJNi03IHJlZCkuIFVzZSB3aXRoIHNldHBpeGVs cmdiLg0KDQoNCgktIG1pc2NlbGxhbmVvdXMNCg0KCWNsZWFyc2NyZWVuKCBp bnQgYyApDQoJCUZpbGwgdGhlIGVudGlyZSBzY3JlZW4gd2l0aCBjb2xvciBj Lg0KDQoJc2NhbGVib3goIGludCB3MSwgaW50IGgxLCB2b2lkICpzZHAsIGlu dCB3MiwgaW50IGgyLCB2b2lkICpkZHAgKQ0KCQlTY2FsZSB0aGUgYml0bWFw IG9mIHNpemUgKHcxLCBoMSkgYXQgc2RwIHRvIHNpemUgKHcyLCBoMikNCgkJ YW5kIHN0b3JlIGl0IGF0IGRkcCwgd2hpY2ggbXVzdCBiZSBhIGxhcmdlIGVu b3VnaCBidWZmZXIuDQoJCVRoZSBwaXhlbCBzaXplIG9mIHRoZSBjdXJyZW50 IGdyYXBoaWNzIGNvbnRleHQgaXMgdXNlZC4NCg0KCXNldGRpc3BsYXlzdGFy dChpbnQgeCwgaW50IHkpDQoJCVNldCB0aGUgcGh5c2ljYWwgZGlzcGxheSBz dGFydCBhZGRyZXNzIHRvIHRoZSBwaXhlbCBhdCAoeCwNCgkJeSkuIENhbiBi ZSB1c2VkIGZvciBoYXJkd2FyZSBzY3JvbGxpbmcsIG9yIGZvciBwYWdlIGZs aXBwaW5nDQoJCShlLmcuIHNldGRpc3BsYXlzdGFydCgwLCBIRUlHSFQpIGRp c3BsYXlzIGZyb20gdGhlIHNlY29uZA0KCQlwYWdlKS4gTWFrZSBzdXJlIHRo ZSBzY2FubGluZSB3aWR0aCAoQllURVdJRFRIKSBpbiBieXRlcw0KCQlvZiB0 aGUgY3VycmVudCBjb250ZXh0IGNvcnJlc3BvbmRzIHdpdGggdGhlIHBoeXNp Y2FsDQoJCXNjcmVlbi4NCg0KDQpNYWNyb3MgZGVmaW5lZCBpbiB2Z2FnbC5o Og0KDQoJV0lEVEgJCVRoZSB3aWR0aCBpbiBwaXhlbHMgb2YgdGhlIGN1cnJl bnQgZ3JhcGhpY3MgY29udGV4dC4NCglIRUlHSFQgCQlIZWlnaHQgaW4gcGl4 ZWxzLg0KCUJZVEVTUEVSUElYRUwJTnVtYmVyIG9mIGJ5dGVzIHBlciBwaXhl bCAoMSwgMiwgMyBvciA0KS4NCglCWVRFV0lEVEgJV2lkdGggb2YgYSBzY2Fu bGluZSBpbiBieXRlcy4NCglDT0xPUlMJCU51bWJlciBvZiBjb2xvcnMuDQoJ QklUU1BFUlBJWEVMCU51bWJlciBvZiBzaWduaWZpY2FudCBjb2xvciBiaXRz Lg0KCVZCVUYJCUFkZHJlc3Mgb2YgdGhlIGZyYW1lYnVmZmVyLg0KCV9fY2xp cAkJQ2xpcHBpbmcgZmxhZy4NCglfX2NsaXB4MQlUb3AtbGVmdCBjb3JuZXIg b2YgY2xpcHBpbmcgd2luZG93Lg0KCV9fY2xpcHkxDQoJX19jbGlweDIJQm90 dG9tLXJpZ2h0IGNvcm5lciBvZiBjbGlwcGluZyB3aW5kb3cuDQoJX19jbGlw eTINCg0KDQpVc2UgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIEdTVkdBTU9E RSB0byBzZWxlY3QgdGhlIGdyYXBoaWNzIG1vZGUgdXNlZCBieQ0KdGhlIHRl c3RnbCBwcm9ncmFtIChlLmcuIGV4cG9ydCBHU1ZHQU1PREU9RzY0MHg0ODB4 MjU2KS4NCg0KTm90ZQ0KDQoJRm9yIHRocmVlIGJ5dGVzIHBlciBwaXhlbCAo dHJ1ZSBjb2xvcikgbW9kZXMsIGl0IGlzIHBvc3NpYmxlIHRoYXQNCglwaXhl bHMgY3Jvc3MgYSBTVkdBIHNlZ21lbnQgYm91bmRhcnkuIFRoaXMgc2hvdWxk IGJlIGNvcnJlY3RseQ0KCWhhbmRsZWQJYnkgbW9zdCBmdW5jdGlvbnMuIEl0 IGNhbiBiZSBhdm9pZGVkIGJ5IHVzaW5nIGEgbG9naWNhbA0KCXNjYW5saW5l IGxlbmd0aCB0aGF0IGlzIGEgZGl2aXNvciBvZiA2NTUzNiAoYSBwb3dlciBv ZiAyKSwgbGlrZSAxMDI0DQoJKGFzIG9wcG9zZWQgdG8gOTYwKSBmb3IgMzIw eDIwMCBhbmQgMjA0OCAoMTkyMCkgZm9yIDY0MHg0ODAuIEZvcg0KCTgwMHg2 MDAsIHRoaXMgaXMgaW1wcmFjdGljYWwgKDQwOTYgYXMgb3Bwb3NlZCB0byAy NDAwIGRvZXNuJ3QgZml0IGluDQoJMk1CKS4gQWx0ZXJuYXRpdmVseSwgYXZv aWQgdGhvc2UgZnVuY3Rpb25zIGJ5IHVzaW5nIGEgdmlydHVhbCBzY3JlZW4u DQoNCg0KUXVlc3Rpb246IEhvdyBkbyBJIHBvbGwgdGhlIGtleWJvYXJkIHdp dGhvdXQgd2FpdGluZyBhbmQgaGFuZGxlIG11bHRpcGxlDQoJICBrZXlwcmVz c2VzPw0KDQpZb3UgY2FuIGhhdmUgY29tcGxldGUga2V5Ym9hcmQgY29udHJv bCBieSB1c2luZyBSQVcgbW9kZS4gQW4gZXhhbXBsZSBzaG91bGQNCmJlIGlu IHRoZSBrYmQtMDg/IHBhY2thZ2UgKG5pYy5mdW5ldC5maSwgL3B1Yi9MaW51 eC9QRU9QTEUvTGludXMgb3Igc2ltaWxhcikuDQoNClRoZXJlIGlzIG5vdyBh IGxvdy1sZXZlbCBrZXlib2FyZCBpbnRlcmZhY2UgaW4gc3ZnYWxpYi4NClRo ZXJlIGlzIGFsc28gYSBzZXBlcmF0ZSAncmF3a2V5JyBsaWJyYXJ5IGZvciB1 c2Ugd2l0aCBzdmdhbGliLCBieSBSdXNzZWxsDQpNYXJrcy4NCg0KDQpROiBX aGF0J3MgdGhlIGZ1c3MgYWJvdXQgYSBETEwgbGlicmFyeT8NCkE6IFRoZSBi dWlsZGluZyBvZiBhIERMTCBsaWJyYXJ5IGluY2x1ZGVzIGEgY29udmVyc2lv biwgYXQgdGhlIGFzc2VtYmxlcg0KICAgbGV2ZWwsIG9mIGFsbCByZWZlcmVu Y2VzIGluIHRoZSBsaWJyYXJ5IGNvZGUgb2YgZXhwb3J0ZWQgZ2xvYmFsIHZh cmlhYmxlcw0KICAgaW50byBpbmRpcmVjdCByZWZlcmVuY2VzIHdpdGggc29t ZSBvdmVyaGVhZCBhZGRlZCB0byBwcmVzZXJ2ZSByZWdpc3Rlcg0KICAgdmFs dWVzLiBUaGlzIGlzIG5vdCB2ZXJ5IGVmZmljaWVudCBpZiB0aGUgZ2xvYmFs IHZhcmlhYmxlcyBhcmUgdXNlZCBhbGwNCiAgIG92ZXIgdGhlIHBsYWNlIChl LmcuIGN1cnJlbnRjb250ZXh0IGFuZCBpdHMgZmllbGRzKS4gVGhlIHRlc3Rn bCBwcm9ncmFtDQogICByYW4gMjAlIHNsb3dlciBiZWNhdXNlIG9mIHRoaXMu IFRoZXJlZm9yZSwgdGhlIGxpYnJhcnkgaW50ZXJuYWxseSB1c2VzIGENCiAg IGNvcHkgb2YgY3VycmVudGNvbnRleHQgdGhhdCBpcyBub3QgZXhwb3J0ZWQu IFRoaXMgbWVhbnMgdGhhdCB0aGUgY3VycmVudA0KICAgY29udGV4dCBtYXkg b25seSBiZSBjaGFuZ2VkIHdpdGggdmdhZ2wgZnVuY3Rpb25zLg0K ---1512304180-1784015697-849421083=:16357--