Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com X-Lotus-FromDomain: COMPUTRITION From: Fred_Smith AT computrition DOT com To: cygwin AT cygwin DOT com Message-ID: <85256C26.000D0E3C.00@cinote.computrition.com> Date: Fri, 30 Aug 2002 22:24:20 -0400 Subject: Re: printing from within Cygwin Mime-Version: 1.0 Content-type: multipart/mixed; Boundary="0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw" Note-from-DJ: This may be spam --0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw Content-type: text/plain; charset=us-ascii Igor: Thanks for all the info! I'll review it all next week after the holiday. I see you work at Watson labs,... do you by any chance know my brother (David N. Smith) ??? Thanks again! Fred Igor Pechtchanski on 08/30/2002 05:59:39 PM Please respond to cygwin AT cygwin DOT com To: Fred Smith/Computrition cc: cygwin AT cygwin DOT com Subject: Re: printing from within Cygwin On Fri, 30 Aug 2002 Fred_Smith AT computrition DOT com wrote: > Trying to figure out how to print from a Cywin (console) app. > > Porting a Linux app to cygwin. On Linux it uses popen() to pipe output to a > shellscript which in turn cats its input to lpr (it may do other things, > and may transform the data, but that's the ultimate goal). > > trying to figure out how to do something akin to that under cygwin. > > Invoking "lpr " at the command prompt comes back with an error > message: > > can't open 'prn' for writing. > > Advice would be appreciated. (I hope you're not going to tell me I need to > learn all about the innards of windoze printing!) > > Thanks! > Fred No, learning the innards of "windoze" printing is not necessary. Learning ghostscript options, however, wouldn't hurt. ;-) I have been using the attached script for a while. It works on my current system (Win2k with gs7.03 installed). Note the disabled support for gsprint -- I couldn't get it to work properly. If anyone can get the gsprint part to work, please let me know. I also had to tweak the standard gslp.ps that comes with ghostscript to allow printing standard input properly (modified script attached). My copy of gslp.ps is in /usr/local/bin, and the script expects to find it there. The -P option and the $PRINTER variable will recognize windows printer names (spaces and all). 'ware of the backslashes... Use the -Q option to select the printer using the windows printer selection dialog. Igor -- http://cs.nyu.edu/~pechtcha/ |\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu ZZZzz /,`.-'`' -. ;-;;,_ igor AT watson DOT ibm DOT com |,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski '---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow! It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file --0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw Content-type: application/octet-stream; name="lpr-mine" Content-transfer-encoding: base64 IyEgL2Jpbi9zaA0NCiMgQXV0aG9yOiBQaWVycmUgQS4gSHVtYmxldCBwaWVycmUuaHVtYmxldEBp ZWVlLm9yZyAgDQ0KIyAgIENyZWF0ZWQ6IE1heSAyMDAwDQ0KIyAgIE1vZGlmaWVkOiBNYXJjaCAy MDAxIEFkZCBzdXBwb3J0IGZvciBnc3ByaW50DQ0KIyBNb2RpZnkgYW5kIHJlZGlzdHJpYnV0ZSBm cmVlbHkuIFVzZSBhdCB5b3VyIG93biByaXNrLg0NCiMgVGhpcyBpcyBkaXN0cmlidXRlZCBhcyBw YXJ0IG9mIHRoZSBYZmlnLUN5Z3dpbiBwYWNrYWdlLg0NCiMNDQojIE1vZGlmaWVkOiBJZ29yIFBl Y2h0Y2hhbnNraSBwZWNodGNoYUBjcy5ueXUuZWR1DQ0KIyAgIE1vZGlmaWVkOiBGZWJydWFyeSAy MDAyIEFkZCBzdXBwb3J0IGZvciAtUCBhbmQgJFBSSU5URVINDQojICAgTW9kaWZpZWQ6IEZlYnJ1 YXJ5IDIwMDIgQWRkIHN1cHBvcnQgZm9yIHN0ZGluDQ0KIyAgIE1vZGlmaWVkOiBNYXJjaCAyMDAy IERpc2FibGUgZ3NwcmludCBzdXBwb3J0DQ0KIyAgIE1vZGlmaWVkOiBNYXkgMjAwMiBUd2VhayBn cyBvcHRpb25zDQ0KIyAgIE1vZGlmaWVkOiBBdWd1c3QgMjAwMiBBZGQgLVEgYW5kIC1oOyBtYWtl IHByZXNlbnRhYmxlDQ0KIw0NCiMgU2NyaXB0IHRvIHByaW50IHBvc3RzY3JpcHQgZnJvbSBzdGRp biBvciB0aGUgZmlsZSBnaXZlbiBhcyANDQojICAgc2luZ2xlIGFyZ3VtZW50Lg0NCiMgUmVsaWVz IG9uIHRoZSBleGlzdGVuY2Ugb2YgZ3NwcmludCANDQojICAgKCBodHRwOi8vd3d3LmNzLndpc2Mu ZWR1L35naG9zdC9nc3ZpZXcvZ3NwcmludC5odG0gKQ0NCiMgICBvciBvZiBncyAoZ2hvc3RzY3Jp cHQpIHdpdGggZGV2aWNlIG1zd2lucHIyDQ0KIw0NCg0NCiNHU0xQPWdzbHAucHMNDQpHU0xQPWBj eWdwYXRoIC13IC91c3IvbG9jYWwvYmluL2dzbHAucHNgDQ0KVVNBR0U9IlwNDQpVc2FnZTogJDAg Wy0taGVscF0gWy0tcXVlcnl8LVFdDQ0KICAgICAgIFstLXByaW50ZXIgPHByaW50ZXI+fC1QIDxw cmludGVyPnwtUDxwcmludGVyPl0gW2ZpbGVfMSAuLiBmaWxlX25dIg0NCg0NCndoaWxlIFsgJCMg LWd0IDAgXTsgZG8NDQogY2FzZSAiJDEiIGluDQ0KICAtaCB8IC0taGVscCkgICAgc2hpZnQ7IGVj aG8gIiRVU0FHRSI7IGV4aXQgMCA7Ow0NCiAgLVEgfCAtLXF1ZXJ5KSAgIHNoaWZ0OyBRVUVSWT10 cnVlIDs7DQ0KICAtUCB8IC0tcHJpbnRlcikgc2hpZnQ7IFBSSU5URVI9IiQxIjsgc2hpZnQNDQog ICAgICAgICAgICAgICAgICBpZiBbIC16ICIkUFJJTlRFUiIgXTsgdGhlbg0NCiAgICAgICAgICAg ICAgICAgICBlY2hvIFBsZWFzZSBzcGVjaWZ5IGEgcHJpbnRlciB3aXRoIC1QIDE+JjINDQogICAg ICAgICAgICAgICAgICAgZXhpdCAyDQ0KICAgICAgICAgICAgICAgICAgZmkgOzsNDQogIC1QKikg ICAgICAgICAgICBQUklOVEVSPSIkezEjLVB9Ijsgc2hpZnQgOzsNDQogIC0tKSAgICAgICAgICAg ICBzaGlmdDsgYnJlYWsgOzsNDQogIC0qKSAgICAgICAgICAgICBlY2hvICIkMDogJDE6IGludmFs aWQgb3B0aW9uIiAxPiYyDQ0KICAJCSAgZWNobyAiJFVTQUdFIiAxPiYyDQ0KICAJCSAgZXhpdCAy IDs7DQ0KICAqKSAgICAgICAgICAgICAgYnJlYWsgOzsNDQogZXNhYw0NCmRvbmUNDQoNDQppZiBb ICIkezE6LX0iID0gIiIgXQ0NCnRoZW4NDQojIGZpbGU9LV8NDQogZmlsZT0nJXN0ZGluJw0NCmVs c2UNDQogZmlsZT0iJDEiDQ0KIGlmIFsgISAtciAiJGZpbGUiIF0NDQogdGhlbg0NCiAgZmlsZT0i JHtmaWxlfS5wcyINDQogIGlmIFsgISAtciAiJGZpbGUiIF0NDQogIHRoZW4NDQogICBlY2hvIENh bm5vdCByZWFkICIkZmlsZSIgMT4mMg0NCiAgIGV4aXQNDQogIGZpDQ0KIGZpDQ0KIGZpbGU9YGN5 Z3BhdGggLXcgIiRmaWxlImANDQpmaQ0NCg0NCiNlY2hvICJQcmludGluZyAnJHtmaWxlfScgdG8g JFBSSU5URVIiDQ0KDQ0KIyBMb29rIGZvciBHaG9zdGd1bSBHc3ZpZXcgaW4gdGhlIHJlZ2lzdHJ5 DQ0KR1NQUklOVD0iIg0NClZFUlNJT05TPWByZWd0b29sIC1xIGxpc3QgJ1xIS0xNXFNPRlRXQVJF XEdob3N0Z3VtXEdzdmlldydgDQ0KIyBTY2FuIGFsbCB2ZXJzaW9ucywga2VlcCB0aGUgbGFzdCBn b29kIG9uZQ0NCmZvciBWRVIgaW4gJHtWRVJTSU9OU30NDQpkbw0NCiBXSEVSRV9XPWByZWd0b29s IC1xIGdldCAnXEhLTE1cU09GVFdBUkVcR2hvc3RndW1cR3N2aWV3XCciJHtWRVJ9ImANDQogaWYg WyAtbiAiJFdIRVJFX1ciIF0NDQogdGhlbg0NCiAgV0hFUkVfVT1gY3lncGF0aCAtdSAiJFdIRVJF X1ciYA0NCiAgR1NQUklOVF9DQU5EPSIke1dIRVJFX1V9L2dzdmlldy9nc3ByaW50LmV4ZSINDQog IGlmIFsgLXggIiRHU1BSSU5UX0NBTkQiIF0NDQogIHRoZW4NDQojICAgR1NQUklOVD0iJHtHU1BS SU5UX0NBTkR9Ig0NCiAgZmkNDQogZmkNDQpkb25lICAgDQ0KDQ0KIyBFc2NhcGUgYmFja3NsYXNo ZXMgaW4gJFBSSU5URVINDQpQUklOVEVSPWBlY2hvICRQUklOVEVSIHwgc2VkICdzL1xcXFwvXFxc XFxcXFwvZydgDQ0KDQ0KaWYgWyAtbiAiJEdTUFJJTlQiIF0NDQp0aGVuDQ0KIyBVc2UgZ3Nwcmlu dA0NCiBQUklOVFNUUj0iIg0NCiBpZiBbIC1uICIkUFJJTlRFUiIgXQ0NCiB0aGVuDQ0KICBQUklO VFNUUj0iLXByaW50ZXIgJFBSSU5URVIiDQ0KIGZpDQ0KIGVjaG8gIiR7R1NQUklOVH0iIC1xIC1x dWVyeSAkUFJJTlRTVFIgIiR7ZmlsZX0iDQ0KICIke0dTUFJJTlR9IiAtcSAtcXVlcnkgJFBSSU5U U1RSICIke2ZpbGV9Ig0NCmVsc2UNDQojIFRyeSBncw0NCiBpZiBbIC1uICIkUFJJTlRFUiIgXQ0N CiB0aGVuDQ0KICBQUklOVFNUUj0nL091dHB1dEZpbGUgKFxcXFxzcG9vbFxcJyIkUFJJTlRFUiIn KScNDQogZWxpZiBbIC1uICIkUVVFUlkiIF0NDQogdGhlbg0NCiAgUFJJTlRTVFI9Jy9RdWVyeVVz ZXIgMScNDQogZWxzZQ0NCiAgUFJJTlRTVFI9Jy9RdWVyeVVzZXIgMycNDQogZmkNDQojIGVjaG8g IlByaW50aW5nICcke2ZpbGV9JyB0byAkUFJJTlRFUiB1c2luZyBncyAtZE5PUEFVU0UgLWRCQVRD SCAtcSAtYyBtYXJrIC9Ob0NhbmNlbCB0cnVlICRQUklOVFNUUiAvVXNlclNldHRpbmdzICc8PCcg L01heFJlc29sdXRpb24gMTIwMCAnPj4nICcobXN3aW5wcjIpJyBmaW5kZGV2aWNlIHB1dGRldmlj ZXByb3BzIHNldGRldmljZSAtZiAtc1BST0dOQU1FPWxwciAtLSAkR1NMUCAtLWRldGVjdCAtQiAk e2ZpbGV9Ig0NCiBncyAtZE5PUEFVU0UgLWRCQVRDSCAtcSAtYyBtYXJrIC9Ob0NhbmNlbCB0cnVl ICIkUFJJTlRTVFIiIC9Vc2VyU2V0dGluZ3MgJzw8JyAvTWF4UmVzb2x1dGlvbiAxMjAwICc+Picg Jyhtc3dpbnByMiknIGZpbmRkZXZpY2UgcHV0ZGV2aWNlcHJvcHMgc2V0ZGV2aWNlIC1mIC1zUFJP R05BTUU9bHByIC0tICRHU0xQIC0tZGV0ZWN0IC1CICIke2ZpbGV9Ig0NCmZpDQ0KDQ0KIyBUaGlz IHdvcmtlZDogImdzIC1kTk9QQVVTRSAtZEJBVENIIC1xIC1zREVWSUNFPW1zd2lucHIyIC1yNjAw ICctc091dHB1dEZpbGU9XFxzcG9vbFwkUFJJTlRFUicgLWROb0NhbmNlbCAtc1BST0dOQU1FPWdz bHAgLS0gZ3NscC5wcyAke2ZpbGV9Ig0NCiMgU28gZGlkIHRoaXM6ICJncyAtZE5PUEFVU0UgLWRC QVRDSCAtcSAtYyBtYXJrIC9Ob0NhbmNlbCB0cnVlIC9RdWVyeVVzZXIgMyAvT3V0cHV0RmlsZSAn KFxcc3Bvb2xcbHAuc2NzLmNzLm55dS5lZHUpJyAvVXNlclNldHRpbmdzICc8PCcgL01heFJlc29s dXRpb24gMTIwMCAnPj4nICcobXN3aW5wcjIpJyBmaW5kZGV2aWNlIHB1dGRldmljZXByb3BzIHNl dGRldmljZSAtZiAtc1BST0dOQU1FPWdzbHAgLS0gZ3NscC5wcyAke2ZpbGV9Ig0NCg== --0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw Content-type: application/octet-stream; name="gslp.ps" Content-transfer-encoding: base64 JSAgICBDb3B5cmlnaHQgKEMpIDE5OTEsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTkgQWxh ZGRpbiBFbnRlcnByaXNlcy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuDQ0KJSANDQolIFRoaXMgZmls ZSBpcyBwYXJ0IG9mIEFGUEwgR2hvc3RzY3JpcHQuDQ0KJSANDQolIEFGUEwgR2hvc3RzY3JpcHQg aXMgZGlzdHJpYnV0ZWQgd2l0aCBOTyBXQVJSQU5UWSBPRiBBTlkgS0lORC4gIE5vIGF1dGhvciBv cg0NCiUgZGlzdHJpYnV0b3IgYWNjZXB0cyBhbnkgcmVzcG9uc2liaWxpdHkgZm9yIHRoZSBjb25z ZXF1ZW5jZXMgb2YgdXNpbmcgaXQsIG9yDQ0KJSBmb3Igd2hldGhlciBpdCBzZXJ2ZXMgYW55IHBh cnRpY3VsYXIgcHVycG9zZSBvciB3b3JrcyBhdCBhbGwsIHVubGVzcyBoZSBvcg0NCiUgc2hlIHNh eXMgc28gaW4gd3JpdGluZy4gIFJlZmVyIHRvIHRoZSBBbGFkZGluIEZyZWUgUHVibGljIExpY2Vu c2UgKHRoZQ0NCiUgIkxpY2Vuc2UiKSBmb3IgZnVsbCBkZXRhaWxzLg0NCiUgDQ0KJSBFdmVyeSBj b3B5IG9mIEFGUEwgR2hvc3RzY3JpcHQgbXVzdCBpbmNsdWRlIGEgY29weSBvZiB0aGUgTGljZW5z ZSwgbm9ybWFsbHkNDQolIGluIGEgcGxhaW4gQVNDSUkgdGV4dCBmaWxlIG5hbWVkIFBVQkxJQy4g IFRoZSBMaWNlbnNlIGdyYW50cyB5b3UgdGhlIHJpZ2h0DQ0KJSB0byBjb3B5LCBtb2RpZnkgYW5k IHJlZGlzdHJpYnV0ZSBBRlBMIEdob3N0c2NyaXB0LCBidXQgb25seSB1bmRlciBjZXJ0YWluDQ0K JSBjb25kaXRpb25zIGRlc2NyaWJlZCBpbiB0aGUgTGljZW5zZS4gIEFtb25nIG90aGVyIHRoaW5n cywgdGhlIExpY2Vuc2UNDQolIHJlcXVpcmVzIHRoYXQgdGhlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgbm90aWNlIGJlIHByZXNlcnZlZCBvbiBhbGwNDQolIGNvcGllcy4NDQoNDQolICRJZDog Z3NscC5wcyx2IDEuMiAyMDAwLzA5LzE5IDE4OjI5OjExIGxwZCBFeHAgJA0NCiUgZ3NscC5wcyAt IGZvcm1hdCBhbmQgcHJpbnQgdGV4dA0NCg0NCiUgVGhpcyB1dGlsaXR5IHByb3ZpZGVzIGZ1bmN0 aW9uYWxpdHkgYXBwcm94aW1hdGVseSBlcXVpdmFsZW50IHRvIHRoZSBVbml4DQ0KJSBgZW5zY3Jp cHQnIHByb2dyYW0uICBJdCBwcmludHMgcGxhaW4gdGV4dCBmaWxlcyB1c2luZyBhIHNpbmdsZSBm b250Lg0NCiUgSXQgY3VycmVudGx5IGhhbmRsZXMgdGFicyBhbmQgZm9ybWZlZWRzLCBidXQgbm90 IGJhY2tzcGFjZXMuDQ0KJSBJdCB3aWxsIGxpbmUtd3JhcCB3aGVuIHVzaW5nIGZpeGVkLXBpdGNo IGZvbnRzLg0NCiUgSXQgd2lsbCBhbHNvIGRvIGtlcm5pbmcgYW5kIHdpZHRoIGFkanVzdG1lbnQu DQ0KJSBTdGFuZGFyZCBzd2l0Y2hlcyBpbXBsZW1lbnRlZDoNDQolCS0xMkJjbHFSciAtYjxoZWFk ZXI+IC1mPGZvbnQ+IC1GPGhmb250PiAtTDxsaW5lcz4gLXA8b3V0ZmlsZT4NDQolIFN1biBzd2l0 Y2hlcyBpbXBsZW1lbnRlZDoNDQolCS1UPG4+CXNldCB0YWIgd2lkdGgNDQolIFN3aXRjaGVzIGln bm9yZWQ6DQ0KJQktR2doS2ttb3cgLSMgLUMgLWQgLUogLW4gLVAgLVMgLXMgLXQgLXYNDQolIFN3 aXRjaGVzIGFkZGVkOg0NCiUJLS1hZGQtdG8tc3BhY2UgPHVuaXRzPg0NCiUJCWFkZCB0aGUgZ2l2 ZW4gbnVtYmVyIG9mIDEvNzIiIHVuaXRzIHRvIHRoZSB3aWR0aCBvZiBlYWNoDQ0KJQkJc3BhY2Ug KG1heSBiZSBuZWdhdGl2ZSkNDQolCS0tYWRkLXRvLXdpZHRoIDx1bml0cz4NDQolCQlhZGQgdGhl IGdpdmVuIG51bWJlciBvZiAxLzcyIiB1bml0cyB0byB0aGUgd2lkdGggb2YgZWFjaA0NCiUJCWNo YXJhY3RlciAobWF5IGJlIG5lZ2F0aXZlKQ0NCiUJLS1jb2x1bW5zIDxuPg0NCiUJCXByaW50IGlu IDxuPiBjb2x1bW5zDQ0KJQktLWRldGVjdA0NCiUJCXRyZWF0IHRoZSBmaWxlIGFzIFBvc3RTY3Jp cHQgaWYgaXQgc3RhcnRzIHdpdGggJSENDQolCS0tZmlyc3QtcGFnZSA8bj4NDQolCQlzdGFydCBw cmludGluZyBhdCBwYWdlIDxuPg0NCiUJLS1rZXJuIDxmaWxlLmFmbT4NDQolCQlrZXJuIHVzaW5n IGluZm9ybWF0aW9uIGZyb20gdGhlIGdpdmVuIC5BRk0gZmlsZQ0NCiUJLS1sYXN0LXBhZ2UgPG4+ DQ0KJQkJc3RvcCBwcmludGluZyBhZnRlciBwYWdlIDxuPg0NCiUJLS0oaGVhZGluZ3xmb290aW5n KS0obGVmdHxjZW50ZXJ8cmlnaHQpIDxzdHJpbmc+DQ0KJQkJc2V0IHRoZSBoZWFkaW5nL2Zvb3Rp bmcgZmllbGRzOyB1c2UgLUIgZmlyc3QgdG8gY2xlYXINDQolCS0tbWFyZ2luLSh0b3B8Ym90dG9t fGxlZnR8cmlnaHQpIDxpbmNoZXM+DQ0KJQkJc2V0IGEgbWFyZ2luDQ0KJQktLW5vLWVqZWN0LShm aWxlfGZvcm1mZWVkKQ0NCiUJCWVuZC1vZi1maWxlL0ZGIG9ubHkgc3RhcnRzIGEgbmV3IGNvbHVt biwgbm90IGEgbmV3IHNoZWV0DQ0KJQktLXNwYWNpbmcgPG4+DQ0KJQkJdXNlIGRvdWJsZSAobj0y KSwgdHJpcGxlIChuPTMpLCBldGMuIHNwYWNpbmcNDQolIEFsc28sIHRoZSBzdHJpbmcgJSMgaW4g YSBoZWFkaW5nIG9yIGZvb3RpbmcgaXMgcmVwbGFjZWQgd2l0aCB0aGUgcGFnZSAjLg0NCi9QYWdl TnVtYmVyU3RyaW5nICglIykgZGVmDQ0KDQ0KL2xwZGljdCAxNTAgZGljdCBkZWYNDQpscGRpY3Qg YmVnaW4NDQoNDQolIGJ1aWxkIGlzby1sYXRpbi0xIHZlcnNpb24gb2YgYSBmb250DQ0KL2ZvbnQt dG8taXNvLWxhdGluLTEgewklIDxmb250PiBmb250LXRvLWlzby1sYXRpbi0xIDxmb250Pg0NCiAg ICAlJSByZWVuY29kZSBmb3IgaXNvIGxhdGluMTsgZnJvbSB0aGUgMm5kIGVkaXRpb24gcmVkIGJv b2ssIHNlYyA1LjYuMQ0NCiAgICBkdXAgbGVuZ3RoIGRpY3QgYmVnaW4gezEgaW5kZXggL0ZJRCBu ZSB7ZGVmfSB7cG9wIHBvcH0gaWZlbHNlfSBmb3JhbGwNDQogICAgL0VuY29kaW5nIElTT0xhdGlu MUVuY29kaW5nIGRlZiBjdXJyZW50ZGljdCBlbmQNDQogICAgZHVwIC9Gb250TmFtZSBnZXQgODAg c3RyaW5nIGN2cyAoLUlTT0xhdGluMSkgY29uY2F0c3RyaW5ncyBjdm4gDQ0KICAgIGV4Y2ggZGVm aW5lZm9udA0NCn0gZGVmDQ0KDQ0KL2ZpbmQtbGF0aW4tZm9udCB7CSUgPG5hbWU+IGZpbmQtbGF0 aW4tZm9udCA8Zm9udD4NDQogIGZpbmRmb250IGZvbnQtdG8taXNvLWxhdGluLTENDQp9IGRlZg0N Cg0NCiUgRGVmaW5lIHRoZSBpbml0aWFsIHZhbHVlcyBvZiB0aGUgcHJpbnRpbmcgcGFyYW1ldGVy cy4NDQoNDQovQWRkVG9TcGFjZSAwIGRlZg0NCi9BZGRUb1dpZHRoIDAgZGVmDQ0KL0JvZHlGb250 IG51bGwgZGVmCQklIHVzZSBkZWZhdWx0DQ0KICAvZGVmYXVsdEJvZHlGb250UG9ydHJhaXQNDQog ICAgL0NvdXJpZXIgZmluZC1sYXRpbi1mb250IDEwIHNjYWxlZm9udCBkZWYNDQogIC9kZWZhdWx0 Qm9keUZvbnRMYW5kc2NhcGUNDQogICAgL0NvdXJpZXIgZmluZC1sYXRpbi1mb250IDcgc2NhbGVm b250IGRlZg0NCiAgL2RlZmF1bHRCb2R5Rm9udA0NCiAgICB7IExhbmRzY2FwZSB7IGRlZmF1bHRC b2R5Rm9udExhbmRzY2FwZSB9IHsgZGVmYXVsdEJvZHlGb250UG9ydHJhaXQgfSBpZmVsc2UgfSBk ZWYNDQovQ29sdW1ucyAxIGRlZg0NCi9EZXRlY3RGaWxlVHlwZSBmYWxzZSBkZWYNDQovRWplY3RF T0YgdHJ1ZSBkZWYNDQovRWplY3RGRiB0cnVlIGRlZg0NCi9Gb290ZXJzIGZhbHNlIGRlZg0NCi9G b290aW5nTGVmdCAoKSBkZWYNDQovRm9vdGluZ0NlbnRlciAoKSBkZWYNDQovRm9vdGluZ1JpZ2h0 ICgpIGRlZg0NCi9IZWFkZXJzIHRydWUgZGVmDQ0KL0hlYWRpbmdMZWZ0ICgpIGRlZg0NCi9IZWFk aW5nQ2VudGVyICgpIGRlZg0NCi9IZWFkaW5nUmlnaHQgKHBhZ2UgKSBQYWdlTnVtYmVyU3RyaW5n IGNvbmNhdHN0cmluZ3MgZGVmDQ0KL0hlYWRpbmdGb250IG51bGwgZGVmCQklIHVzZSBkZWZhdWx0 DQ0KICAvZGVmYXVsdEhlYWRpbmdGb250DQ0KICAgIC9Db3VyaWVyLUJvbGQgZmluZC1sYXRpbi1m b250IDEwIHNjYWxlZm9udCBkZWYNDQovS2VybiAwIGRpY3QgZGVmCQklIG5vIGtlcm5pbmcNDQov TGFuZHNjYXBlIGZhbHNlIGRlZg0NCi9NYXJnaW5Cb3R0b20gMzYgZGVmCQklIDEvMiINDQovTWFy Z2luTGVmdCAzNiBkZWYJCSUgMS8yIg0NCi9NYXJnaW5SaWdodCAzNiBkZWYJCSUgMS8yIg0NCi9N YXJnaW5Ub3AgMzYgZGVmCQklIDEvMiINDQovTWF4TGluZXMgOTk5OSBkZWYJCSUgbWF4IGxpbmVz IHBlciBwYWdlDQ0KL05vaXN5IHRydWUgZGVmCQkJJSBpLmUuLCBub3QgcXVpZXQNDQovT3V0Rmls ZSBudWxsIGRlZgkJJSBudWxsID0gd3JpdGUgZGlyZWN0bHkgdG8gZGV2aWNlDQ0KL1BhZ2VGaXJz dCAxIGRlZg0NCi9QYWdlTGFzdCA5OTk5OSBkZWYNDQovU3BhY2luZyAxIGRlZg0NCi9UYWIgOCBk ZWYNDQovVHJ1bmNhdGUgZmFsc2UgZGVmCQklIHdyYXAgbG9uZyBsaW5lcywgZG9uJ3QgdHJ1bmNh dGUNDQoNDQolIFdoZW4gd3JpdGluZyB0byBhIGZpbGUsIHdlIHdhbnQgdG8gd3JpdGUgb3V0IFBv c3RTY3JpcHQ7DQ0KJSB3aGVuIHdyaXRpbmcgdG8gdGhlIHByaW50ZXIsIHdlIHdhbnQgdG8gZXhl Y3V0ZSBpdDsNDQolIHNvbWUgY29tbWFuZHMgc2hvdWxkIGJlIGV4ZWN1dGVkIHJlZ2FyZGxlc3Mu DQ0KJSBscGV4ZWMgcHJvdmlkZXMgZm9yIGFsbCB0aGlzLg0NCg0NCi9scGRlZiB7CSUgPG5hbWU+ IDx2YWx1ZT4gbHBkZWYgLQ0NCiAgL2RlZiAyIHRydWUgbHBleGVjDQ0KfSBkZWYNDQoNDQovbHBl eGVjIHsJJSA8YXJnMT4gLi4uIDxhcmduPiA8L29wPiA8bj4gPGRvX2Fsd2F5cz4gbHBleGVjIC0N DQogIE91dEZpbGUgbnVsbCBlcSB7DQ0KICAgIHBvcCAxIGFkZCB0cnVlDQ0KICB9IHsNDQogICAg L3QgZXhjaCBkZWYgMSBhZGQgL24gZXhjaCBkZWYgY3Z4DQ0KICAgIG4gLTEgcm9sbCBkdXAgd28N DQogICAgbiAxIHN1YiB7IG4gLTEgcm9sbCBkdXAgd29zcCB9IHJlcGVhdA0NCiAgICAoXG4pIHdz IG4gdA0NCiAgfSBpZmVsc2UNDQogICAgeyBwb3AgbG9hZCBleGVjIH0NDQogICAgeyB7IHBvcCB9 IHJlcGVhdCB9DQ0KICBpZmVsc2UNDQp9IGRlZg0NCg0NCi9scG1vdmV0byB7CSUgPHg+IDx5PiBs cG1vdmV0byAtDQ0KCSUgUm91bmQgdGhlIGNvb3JkaW5hdGVzIGZvciBzbWFsbGVyIG91dHB1dC4N DQogIDIgew0NCiAgICBleGNoIDEwMCBtdWwgcm91bmQgMTAwIGRpdg0NCiAgICBkdXAgZHVwIGN2 aSBlcSB7IGN2aSB9IGlmDQ0KICB9IHJlcGVhdA0NCiAgMSBpbmRleCBYIGVxIHsgbmVnIGV4Y2gg cG9wIC9WIDEgfSB7IG5lZyAvTSAyIH0gaWZlbHNlIHRydWUgbHBleGVjDQ0KfSBkZWYNDQovbHBz aG93IHsJJSA8c3RyaW5nPiBscHNob3cgLQ0NCiAgZHVwIGxlbmd0aCAwIG5lIHsNDQogICAgYWRk c3BhY2UgMCBuZSB7DQ0KICAgICAgYWRkc3BhY2UgMCAzMiANDQogICAgICBhZGR3aWR0aCAwIG5l IHsNDQoJYWRkd2lkdGggMCA2IC0xIHJvbGwgL2F3aWR0aHNob3cgNiB0cnVlIGxwZXhlYw0NCiAg ICAgIH0gew0NCgk0IC0xIHJvbGwgL3dpZHRoc2hvdyA0IHRydWUgbHBleGVjDQ0KICAgICAgfSBp ZmVsc2UNDQogICAgfSB7DQ0KICAgICAgYWRkd2lkdGggMCBuZSB7DQ0KCWFkZHdpZHRoIDAgMyAt MSByb2xsIC9hc2hvdyAzIHRydWUgbHBleGVjDQ0KICAgICAgfSB7DQ0KCU91dEZpbGUgbnVsbCBu ZSB7DQ0KCSAgZHVwIGR1cCBsZW5ndGggPXN0cmluZyBsZW5ndGggZ3Qgew0NCgkgICAgL3Nob3cg MSBmYWxzZSBscGV4ZWMNDQoJICB9IHsNDQoJICAgIChTICkgd3Mgd3MgKFxuKSB3cw0NCgkgIH0g aWZlbHNlDQ0KCX0gaWYgc2hvdyANDQogICAgICB9IGlmZWxzZQ0NCiAgICB9IGlmZWxzZQ0NCiAg fSB7DQ0KICAgIHBvcA0NCiAgfSBpZmVsc2UNDQp9IGRlZg0NCi9scHNldG15Zm9udCB7DQ0KICBk dXAgbG9hZCBzZXRmb250DQ0KICAgT3V0RmlsZSBudWxsIG5lIHsgY3Z4IC9zZXRmb250IDEgZmFs c2UgbHBleGVjIH0geyBwb3AgfSBpZmVsc2UNDQp9IGRlZg0NCg0NCiUgRGVmaW5lIHNvbWUgdXRp bGl0eSBwcm9jZWR1cmVzLg0NCg0NCi9iYW5uZXIJCSUgeXBvcyBsZWZ0IGNlbnRlciByaWdodA0N CiB7IC9IRm9udCBscHNldG15Zm9udA0NCiAgIC9hZGRzcGFjZSAwIGRlZiAvYWRkd2lkdGggMCBk ZWYNDQogICAvcGFpcmtlcm4gMCBkaWN0IGRlZg0NCiAgIDMgLTEgcm9sbCBiYW5uZXJzdHJpbmcg cG9wIDAgNCBpbmRleCBwd2lkdGggc2hvd2xpbmUyIHBvcA0NCiAgIGV4Y2ggYmFubmVyc3RyaW5n IHB3aWR0aCBleGNoIHN1YiAyIGRpdiAzIGluZGV4IHB3aWR0aCBzaG93bGluZTIgcG9wDQ0KICAg YmFubmVyc3RyaW5nDQ0KCQklIFByZXZlbnQgdGhlIGxhc3QgY2hhcmFjdGVyIG9mIHRoZSBoZWFk aW5nIGZyb20gZ3JhemluZw0NCgkJJSB0aGUgcmlnaHQgbWFyZ2luLg0NCgkJJSAqKioqKiogV0hZ IERPRVMgSVQgUkVRVUlSRSBTTyBNVUNIIFBBRERJTkc/ICoqKioqKg0NCiAgICggKSBzdHJpbmd3 aWR0aCBwb3AgMiBtdWwgYWRkDQ0KICAgcHdpZHRoIGV4Y2ggc3ViDQ0KICAgMyAtMSByb2xsIHB3 aWR0aCBzaG93bGluZTIgcG9wDQ0KIH0gZGVmDQ0KDQ0KL2Jhbm5lcnN0cmluZwklIHN0cmluZyAt PiBzdHJpbmcgd2lkdGgNDQogIHsgUGFnZU51bWJlclN0cmluZyBzZWFyY2gNDQogICAgIHsgZXhj aCBwb3AgcGluZGV4IDQgc3RyaW5nIGN2cyBjb25jYXRzdHJpbmdzIGV4Y2ggY29uY2F0c3RyaW5n cw0NCiAgICAgfQ0NCiAgICBpZiBkdXAgc3RyaW5nd2lkdGggcG9wDQ0KICB9IGRlZg0NCg0NCi9i ZWdpbnBhZ2UNDQogeyAvbGluZGV4IDAgZGVmDQ0KICAgL3NraXBwaW5nIHBpbmRleCBQYWdlRmly c3QgZ2UgcGluZGV4IFBhZ2VMYXN0IGxlIGFuZCBub3QgZGVmDQ0KICAgcGFnZXggcGFnZXkgTGFu ZHNjYXBlIHsvQkx9IHsvQn0gaWZlbHNlIDIgdHJ1ZSBscGV4ZWMNDQogICAvcGFnZXNhdmUgZXhj aCBkZWYNDQogICBza2lwcGluZyB7IG51bGxkZXZpY2UgICAvT3V0RmlsZSBudWxsIGRlZiB9IGlm DQ0KICAgSGVhZGVycw0NCiAgICB7IGxoZWlnaHQgaGRlc2NlbnQgYWRkDQ0KICAgICAgSGVhZGlu Z0xlZnQgSGVhZGluZ0NlbnRlciBIZWFkaW5nUmlnaHQgYmFubmVyDQ0KICAgIH0gaWYNDQogICAv QkZvbnQgbHBzZXRteWZvbnQNDQogICAvcGFpcmtlcm4gS2VybiBkZWYNDQogICAvYWRkc3BhY2Ug QWRkVG9TcGFjZSBkZWYgL2FkZHdpZHRoIEFkZFRvV2lkdGggZGVmDQ0KICAgcGFpcmtlcm4gbGVu Z3RoIDAgbmUgew0NCiAgICAgL2FkZHNwYWNlIEFkZFRvU3BhY2UgbHBkZWYgL2FkZHdpZHRoIEFk ZFRvV2lkdGggbHBkZWYNDQogICB9IGlmDQ0KIH0gZGVmDQ0KDQ0KL2VuZHBhZ2Ugew0NCiAgbGlu ZGV4IDAgbmUgew0NCiAgICBGb290ZXJzIHsNDQogICAgICB0b3Bza2lwIHBsZW5ndGggc3ViIGhk ZXNjZW50IGFkZA0NCiAgICAgIEZvb3RpbmdMZWZ0IEZvb3RpbmdDZW50ZXIgRm9vdGluZ1JpZ2h0 IGJhbm5lcg0NCiAgICB9IGlmDQ0KICAgIC9FDQ0KICB9IHsNDQogICAgL3Jlc3RvcmUNDQogIH0g aWZlbHNlDQ0KICBwYWdlc2F2ZSBleGNoIDAgdHJ1ZSBscGV4ZWMNDQogIC9waW5kZXggcGluZGV4 IDEgYWRkIGRlZg0NCn0gZGVmDQ0KDQ0KL2VuZGNvbHVtbg0NCiB7IGxpbmRleCBjb2xpbmVzIDEg c3ViIGFkZCBjb2xpbmVzIGlkaXYgY29saW5lcyBtdWwNDQogICBkdXAgbGxlbmd0aCBnZSB7IHBv cCBlbmRwYWdlIGJlZ2lucGFnZSB9IHsgL2xpbmRleCBleGNoIGRlZiB9IGlmZWxzZQ0NCiB9IGRl Zg0NCg0NCi9mb250aGVpZ2h0CSUgPGZvbnQ+IGZvbnRoZWlnaHQgPGFzY2VudD4gPGhlaWdodD4N DQogeyBnc2F2ZSBzZXRmb250DQ0KICAgbmV3cGF0aCAwIDAgbW92ZXRvDQ0KICAgKHxeX2opIGZh bHNlIGNoYXJwYXRoDQ0KICAgcGF0aGJib3ggZXhjaCBwb3AgZHVwIDIgaW5kZXggc3ViIDQgLTIg cm9sbCBwb3AgcG9wDQ0KICAgZ3Jlc3RvcmUgZXhjaCAxLjI1IG11bCBleGNoIDEuMjUgbXVsDQ0K IH0gZGVmDQ0KDQ0KL3dkaWN0IHsNDQogIGR1cCBsZW5ndGggd29zcCAoIGRpY3Rcbikgd3MNDQog IHsgKGR1cCkgd3MgZXhjaCB3b3NwIHdvc3AgKCBwdXRcbikgd3MgfSBmb3JhbGwNDQp9IGRlZg0N Ci93b3NwIHsgKCApIHdzIHdvIH0gZGVmDQ0KL3dvIHsNDQogIGR1cCB0eXBlIC9kaWN0dHlwZSBl cSB7IHdkaWN0IH0geyBPdXRGaWxlIGV4Y2ggd3JpdGU9PW9ubHkgfSBpZmVsc2UNDQp9IGRlZg0N Ci93cyB7DQ0KICBPdXRGaWxlIGV4Y2ggd3JpdGVzdHJpbmcNDQp9IGRlZg0NCg0NCi9vdXRmb250 IHsJCSUgPG5hbWU+IDxmb250PiBvdXRmb250IC0NDQogIE91dEZpbGUgbnVsbCBuZSB7DQ0KICAg IGV4Y2ggd28NDQogICAgZHVwIC9Gb250TmFtZSBnZXQgDQ0KICAgIGR1cCB3b3NwICgtSVNPTGF0 aW4xKSB3cyB3b3NwICggUkUpIHdzDQ0KICAgIC9Gb250TWF0cml4IGdldCAwIGdldCAxMDAwIG11 bCByb3VuZCBjdmkgd29zcA0NCiAgICAoIHNjYWxlZm9udCBkZWZcbikgd3MNDQogIH0gew0NCiAg ICBwb3AgcG9wDQ0KICB9aWZlbHNlDQ0KfSBkZWYNDQoNDQovU3RyaW5nRkYgKFxmKSBkZWYNDQov Q2hhckZGIFN0cmluZ0ZGIDAgZ2V0IGRlZg0NCi9TdHJpbmdUQUIgKFx0KSBkZWYNDQovQ2hhclRB QiBTdHJpbmdUQUIgMCBnZXQgZGVmDQ0KDQ0KL3Nob3dsaW5lCQklIGxpbmUgLT4gbGVmdG92ZXJf bGluZSAoaGFuZGxlcyBcZikNDQogeyAgeyBzaG93bGluZTEgZHVwIGxlbmd0aCAwIGVxIHsgZXhp dCB9IGlmDQ0KICAgICAgZHVwIDAgZ2V0IENoYXJGRiBuZSB7IGV4aXQgfSBpZg0NCiAgICAgIEVq ZWN0RkYgeyBlbmRwYWdlIGJlZ2lucGFnZSB9IHsgZW5kY29sdW1uIH0gaWZlbHNlDQ0KICAgICAg c2tpcDENDQogICAgfQ0NCiAgIGxvb3ANDQogfSBkZWYNDQoNDQovc2hvd2xpbmUxCQklIGxpbmUg LT4gbGVmdG92ZXJfbGluZSAoaGFuZGxlcyBwYWdlIGJyZWFrKQ0NCiB7IGxpbmRleCBsbGVuZ3Ro IGVxIHsgZW5kcGFnZSBiZWdpbnBhZ2UgfSBpZg0NCiAgIGxpbmRleCBjb2xpbmVzIGlkaXYgY293 aWR0aCBtdWwJCSUgeA0NCiAgIGxpbmRleCBjb2xpbmVzIG1vZCAxIGFkZCBsaGVpZ2h0IG11bCBu ZWcgZmFzY2VudCBzdWIJJSB5DQ0KICAgMSBpbmRleCBjb3dpZHRoIGFkZA0NCiAgIHNob3dsaW5l Mg0NCiAgIC9saW5kZXggbGluZGV4IDEgYWRkIGRlZg0NCiB9IGRlZg0NCg0NCi9zZXR4eSB7DQ0K ICAvdHkgZXhjaCBkZWYgL3R4IGV4Y2ggZGVmDQ0KfSBkZWYNDQoNDQovc2hvd2xpbmUyIHsJJSBz dHJpbmcgeCB5IHhsaW1pdCAtPiBsZWZ0b3Zlcl9zdHJpbmcgKGhhbmRsZXMgdGFicykNDQogIDIg aW5kZXggZXhjaCA1IDIgcm9sbCBzZXR4eSB7DQ0KCQklIFN0YWNrOiB4aW5pdCB4bGltaXQgc3Ry aW5nDQ0KICAgIHNob3dsaW5lMyBkdXAgbGVuZ3RoIDAgZXEgeyBleGl0IH0gaWYNDQogICAgZHVw IDAgZ2V0IENoYXJUQUIgbmUgeyBleGl0IH0gaWYNDQogICAgdHggMyBpbmRleCBzdWIgdGFid3gg ZGl2DQ0KICAgICAgMC4wNSBhZGQgY2VpbGluZyB0YWJ3eCBtdWwgMyBpbmRleCBhZGQgdHkgc2V0 eHkNDQogICAgc2tpcDENDQogICAgdHggMiBpbmRleCBnZSB7IGV4aXQgfSBpZg0NCiAgfSBsb29w IGV4Y2ggcG9wIGV4Y2ggcG9wDQ0KfSBkZWYNDQoNDQovc2hvd2xpbmUzIHsJJSB4bGltaXQgc3Ry aW5nIC0+IHhsaW1pdCBsZWZ0b3Zlcl9zdHJpbmcNDQoJCSUgKGZpbmRzIGxpbmUgYnJlYWsgLyB0 YWIgLyBmb3JtZmVlZCkNDQogIDEgaW5kZXggdHggc3ViDQ0KICAgIGN3eCBkaXYgMC4xIGFkZCBj dmkgMCBtYXggMSBpbmRleCBsZW5ndGggbWluDQ0KICAxIGluZGV4IDAgMyAtMSByb2xsIGdldGlu dGVydmFsDQ0KCSUgbG9vayBmb3IgXGYgb3IgXHQNDQogIFN0cmluZ0ZGIHNlYXJjaCB7IGV4Y2gg cG9wIGV4Y2ggcG9wIH0gaWYNDQogIFN0cmluZ1RBQiBzZWFyY2ggeyBleGNoIHBvcCBleGNoIHBv cCB9IGlmDQ0KICBkdXAgbGVuZ3RoIDAgbmUgew0NCiAgICB0eCB0eSBscG1vdmV0bw0NCiAgICBk dXAgcGFpcmtlcm4gbGVuZ3RoIDAgZXEgew0NCiAgICAgIGxwc2hvdw0NCiAgICB9IHsNDQogICAg ICB7IGtwcm9jIH0gZXhjaCAva3Nob3cgMiB0cnVlIGxwZXhlYw0NCiAgICB9IGlmZWxzZQ0NCiAg ICBjdXJyZW50cG9pbnQgc2V0eHkNDQogIH0gaWYNDQogIGxlbmd0aCBkdXAgMiBpbmRleCBsZW5n dGggZXhjaCBzdWIgZ2V0aW50ZXJ2YWwNDQp9IGRlZg0NCg0NCi9rcHJvYyB7CSUgPGNoYXIxPiA8 Y2hhcjI+IGtwcm9jIC0NDQogIHBhaXJrZXJuIGN1cnJlbnRmb250IC9FbmNvZGluZyBnZXQgMyBp bmRleCBnZXQNDQogIDIgY29weSBrbm93biB7DQ0KICAgIGdldCBjdXJyZW50Zm9udCAvRW5jb2Rp bmcgZ2V0IDIgaW5kZXggZ2V0DQ0KICAgIDIgY29weSBrbm93biB7DQ0KICAgICAgZ2V0IGN1cnJl bnRmb250IC9Gb250TWF0cml4IGdldCAwIGdldCBtdWwNDQogICAgfSB7DQ0KICAgICAgcG9wIHBv cCAwDQ0KICAgIH0gaWZlbHNlDQ0KICB9IHsNDQogICAgcG9wIHBvcCAwDQ0KICB9IGlmZWxzZQ0N CiAgYWRkd2lkdGggYWRkIDIgaW5kZXggMzIgZXEgeyBhZGRzcGFjZSBhZGQgfSBpZg0NCiAgZHVw IDAgZXEgeyBwb3AgfSB7IDAgcm1vdmV0byB9IGlmZWxzZQ0NCiAgcG9wIHBvcA0NCn0gZGVmDQ0K DQ0KL3NraXAxDQ0KIHsgZHVwIGxlbmd0aCAxIHN1YiAxIGV4Y2ggZ2V0aW50ZXJ2YWwNDQogfSBk ZWYNDQoNDQovZT09IHsJCSUgPG9iamVjdD4gZT09IC0gLS0gcHJpbnQgYW4gb2JqZWN0IHRvIHN0 ZGVycg0NCiAgKCVzdGRlcnIpICh3KSBmaWxlIGR1cCAzIC0xIHJvbGwgd3JpdGU9PW9ubHkgZmx1 c2hmaWxlDQ0KfSBkZWYNDQoNDQovZXByaW50IHsJJSA8c3RyaW5nPiBlcHJpbnQgLSAtLSBwcmlu dCBhIHN0cmluZyB0byBzdGRlcnINDQogICglc3RkZXJyKSAodykgZmlsZSBkdXAgMyAtMSByb2xs IHdyaXRlc3RyaW5nIGZsdXNoZmlsZQ0NCn0gZGVmDQ0KDQ0KJSBSZWFkIGtlcm5pbmcgaW5mb3Jt YXRpb24gZnJvbSBhIC5BRk0gZmlsZS4NDQoNDQovcmVhZGtlcm4gewklIDxhZm1maWxlPiByZWFk a2VybiA8cGFpcmtlcm5kaWN0Pg0NCiAgL21maWxlbmFtZSAxIGluZGV4IGRlZg0NCiAgKHIpIGZp bGUgL21maWxlIGV4Y2ggZGVmDQ0KICBtZmlsZSA9c3RyaW5nIHJlYWRsaW5lIHBvcA0NCiAgKFN0 YXJ0Rm9udE1ldHJpY3MgKSBhbmNob3JzZWFyY2ggew0NCiAgICBwb3AgcG9wDQ0KICAgIC9rZGlj dCAyNTYgZGljdCBkZWYNDQogICAgeyBtZmlsZSA9c3RyaW5nIHJlYWRsaW5lIHBvcA0NCiAgICAg IChFbmRGb250TWV0cmljcykgYW5jaG9yc2VhcmNoIHsgcG9wIHBvcCBleGl0IH0gaWYNDQogICAg ICAoS1BYICkgYW5jaG9yc2VhcmNoIHsNDQoJcG9wIHRva2VuIHBvcCBjdmxpdCAvY2hhcjEgZXhj aCBkZWYNDQoJdG9rZW4gcG9wIGN2bGl0IC9jaGFyMiBleGNoIGRlZg0NCgl0b2tlbiBwb3AgL2tl cm4gZXhjaCBkZWYgcG9wDQ0KCWtkaWN0IGNoYXIxIC5rbm93bmdldCBub3Qgew0NCgkgIDUgZGlj dCBrZGljdCBjaGFyMSAyIGluZGV4IC5ncm93cHV0DQ0KCX0gaWYNDQoJY2hhcjIga2VybiAuZ3Jv d3B1dA0NCiAgICAgIH0gew0NCglwb3ANDQogICAgICB9IGlmZWxzZQ0NCiAgICB9IGxvb3Aga2Rp Y3QNDQogIH0gew0NCiAgICBwb3ANDQogICAgbWZpbGVuYW1lIGVwcmludCAoIGRvZXMgbm90IGJl Z2luIHdpdGggU3RhcnRGb250TWV0cmljcy5cbikgZXByaW50DQ0KICAgIDAgZGljdA0NCiAgfSBp ZmVsc2UNDQogIG1maWxlIGNsb3NlZmlsZQ0NCn0gZGVmDQ0KDQ0KJSBUaGUgbWFpbiBwcmludGlu ZyBwcm9jZWR1cmUNDQoNDQovZG9GaXJzdCB0cnVlIGRlZg0NCi9wcmV2QkZvbnQgbnVsbCBkZWYN DQovcHJldkhGb250IG51bGwgZGVmDQ0KDQ0KL2xwZmlyc3QgewklIC0gbHBmaXJzdCAtDQ0KJSBE ZWZpbmUgc29tZSBhYmJyZXZpYXRpbmcgcHJvY2VkdXJlcy4NDQogIC9CIHtzYXZlIDMgMSByb2xs IHRyYW5zbGF0ZSAvWCAwIGRlZn0gbHBkZWYNDQogIC9CTCB7c2F2ZSAzIDEgcm9sbCA5MCByb3Rh dGUgdHJhbnNsYXRlIC9YIDAgZGVmfSBscGRlZg0NCiAgL0Uge3Nob3dwYWdlIHJlc3RvcmV9IGxw ZGVmDQ0KICAvViB7bmVnIFggZXhjaCBtb3ZldG99IGxwZGVmDQ0KICAvTSB7L1ggMiBpbmRleCBk ZWYgbmVnIG1vdmV0b30gbHBkZWYNDQogIC9TIHtjdXJyZW50ZmlsZSA9c3RyaW5nIHJlYWRsaW5l IHBvcCBzaG93fSBscGRlZg0NCiAgL1JFIHsJCSUgPGlzb25hbWU+IDxmb250bmFtZT4gUkUgPGZv bnQ+DQ0KICAgIGZpbmRmb250DQ0KCSUlIHJlZW5jb2RlIGZvciBpc28gbGF0aW4xOyBmcm9tIHRo ZSAybmQgZWRpdGlvbiByZWQgYm9vaywgc2VjIDUuNi4xDQ0KICAgIGR1cCBsZW5ndGggZGljdCBi ZWdpbiB7MSBpbmRleCAvRklEIG5lIHtkZWZ9IHtwb3AgcG9wfSBpZmVsc2V9IGZvcmFsbA0NCiAg ICAvRW5jb2RpbmcgSVNPTGF0aW4xRW5jb2RpbmcgZGVmIGN1cnJlbnRkaWN0IGVuZA0NCiAgICBk ZWZpbmVmb250DQ0KICB9IGxwZGVmDQ0KfSBkZWYNDQoNDQovbHAgewkJJSBmaWxlIGluaXRpYWxf Y2hhcnMgLT4NDQogIC9scGxpbmUgZXhjaCBkZWYNDQogIC9scGZpbGUgZXhjaCBkZWYNDQoNDQog IGRvRmlyc3QgeyBscGZpcnN0IC9kb0ZpcnN0IGZhbHNlIGRlZiB9IGlmDQ0KDQ0KJSBJbml0aWFs aXplIHRoZSBkZXZpY2UgYW5kIGZvbnRzLg0NCiAgL0JGb250DQ0KICAgIEJvZHlGb250IG51bGwg ZXEgeyBkZWZhdWx0Qm9keUZvbnQgfSB7IEJvZHlGb250IH0gaWZlbHNlIGRlZg0NCiAgQkZvbnQg cHJldkJGb250IG5lIHsNDQogICAgL0JGb250IEJGb250IG91dGZvbnQNDQogICAgL3ByZXZCRm9u dCBCRm9udCBkZWYNDQogIH0gaWYNDQogIEhlYWRlcnMgRm9vdGVycyBvciB7DQ0KICAgIC9IRm9u dA0NCiAgICAgIEhlYWRpbmdGb250IG51bGwgZXEgeyBkZWZhdWx0SGVhZGluZ0ZvbnQgfSB7IEhl YWRpbmdGb250IH0gaWZlbHNlIGRlZg0NCiAgICBIRm9udCBwcmV2SEZvbnQgbmUgew0NCiAgICAg IC9IRm9udCBIRm9udCBvdXRmb250DQ0KICAgICAgL3ByZXZIRm9udCBIRm9udCBkZWYNDQogICAg fSBpZg0NCiAgfSBpZg0NCiAgc2F2ZQ0NCg0NCiUgR2V0IHRoZSBsYXlvdXQgcGFyYW1ldGVycy4N DQogICBjbGlwcGF0aA0NCiAgIGdzYXZlCSUgZm9yIHBvc3NpYmxlIHJvdGF0aW9uDQ0KICAgTGFu ZHNjYXBlIHsgOTAgcm90YXRlIH0gaWYNDQogICBCRm9udCBzZXRmb250ICggKSBzdHJpbmd3aWR0 aCBwb3AgL2N3eCBleGNoIGRlZg0NCiAgICAgY3d4IFRhYiBtdWwgL3RhYnd4IGV4Y2ggZGVmDQ0K ICAgQkZvbnQgZm9udGhlaWdodCAvZmhlaWdodCBleGNoIGRlZiAvZmFzY2VudCBleGNoIGRlZg0N CiAgIEhlYWRlcnMgRm9vdGVycyBvciB7IEhGb250IGZvbnRoZWlnaHQgfSB7IDAgMCB9IGlmZWxz ZQ0NCiAgICAgL2hoZWlnaHQgZXhjaCBkZWYgL2hhc2NlbnQgZXhjaCBkZWYNDQogICAgIC9oZGVz Y2VudCBoaGVpZ2h0IGhhc2NlbnQgc3ViIGRlZg0NCiAgIGZoZWlnaHQgU3BhY2luZyBtdWwgL2xo ZWlnaHQgZXhjaCBkZWYNDQogICBIZWFkZXJzIHsgaGhlaWdodCBsaGVpZ2h0IGFkZCB9IHsgMCB9 IGlmZWxzZQ0NCiAgICAgL3RvcHNraXAgZXhjaCBkZWYNDQogICBGb290ZXJzIHsgaGhlaWdodCBs aGVpZ2h0IGFkZCB9IHsgMCB9IGlmZWxzZQ0NCiAgICAgL2JvdHNraXAgZXhjaCBkZWYNDQogICAv cHNraXAgdG9wc2tpcCBib3Rza2lwIGFkZCBkZWYNDQoJJSBUcmFuc2xhdGUgdGhlIHBhZ2Ugc28g dGhhdCAoMCwwKSBjb3JyZXNwb25kcyB0bw0NCgklIHRoZSB0b3Agb2YgdGhlIHRvcG1vc3QgYm9k eSBsaW5lLg0NCiAgIHBhdGhiYm94DQ0KICAgICAyIGluZGV4IHN1YiBNYXJnaW5Cb3R0b20gTWFy Z2luVG9wIGFkZCBzdWIgL3BsZW5ndGggZXhjaCBkZWYNDQogICAgIDIgaW5kZXggc3ViIE1hcmdp bkxlZnQgTWFyZ2luUmlnaHQgYWRkIHN1YiAvcHdpZHRoIGV4Y2ggZGVmDQ0KICAgICBwd2lkdGgg Q29sdW1ucyBkaXYgL2Nvd2lkdGggZXhjaCBkZWYNDQogICAgIGV4Y2ggTWFyZ2luTGVmdCBhZGQN DQogICAgIGV4Y2ggTWFyZ2luQm90dG9tIGFkZCBwbGVuZ3RoIGFkZCB0b3Bza2lwIHN1Yg0NCiAg ICAgL3BhZ2V5IGV4Y2ggZGVmIC9wYWdleCBleGNoIGRlZg0NCiAgIHBsZW5ndGggcHNraXAgc3Vi IGxoZWlnaHQgZGl2IGN2aSBNYXhMaW5lcyBtaW4NDQogICAgIGR1cCAvY29saW5lcyBleGNoIGRl Zg0NCiAgICAgQ29sdW1ucyBtdWwgL2xsZW5ndGggZXhjaCBkZWYNDQogICBncmVzdG9yZQ0NCiAg IE91dEZpbGUgbnVsbCBuZSB7IG51bGxkZXZpY2UgfSBpZg0NCg0NCiUgUHJpbnQgbGF5b3V0DQ0K ICAgTm9pc3kNDQogICAgeyAoUGFnZSBoZWlnaHQgPSApIGVwcmludCBsbGVuZ3RoIGU9PQ0NCiAg ICAgICguXG4pIGVwcmludCBmbHVzaA0NCiAgICB9IGlmDQ0KDQ0KJSBXcml0ZSB0aGUga2Vybmlu ZyB0YWJsZSwgaWYgcmVsZXZhbnQuDQ0KICAgT3V0RmlsZSBudWxsIG5lIEtlcm4gbGVuZ3RoIDAg bmUgYW5kIHsNDQogICAgICgva3Byb2MpIHdzIC9rcHJvYyBsb2FkIHdvc3AgKCBkZWZcbikgd3MN DQogICAgICgvcGFpcmtlcm4pIHdzIEtlcm4gd29zcCAoIGRlZlxuKSB3cw0NCiAgIH0gaWYNDQoN DQolIERpc2FibGUgc3RhY2sgcmVjb3JkaW5nIHNvIHdlIGNhbiB1c2Ugc3RvcHBlZCB3aXRoIHJl YWRsaW5lLg0NCiAgICRlcnJvciAvcmVjb3Jkc3RhY2tzIGZhbHNlIHB1dA0NCg0NCiUgSW5pdGlh bGl6ZSBmb3IgdGhlIGZpcnN0IHBhZ2UuDQ0KICAgL2xidWYgMTAwMCBzdHJpbmcgZGVmDQ0KICAg L3BpbmRleCAxIGRlZg0NCiAgIGJlZ2lucGFnZQ0NCg0NCiUgSXRlcmF0ZSB0aHJvdWdoIHRoZSBm aWxlLg0NCiAgIGxwbGluZQ0NCiAgICB7IGR1cCBsZW5ndGggL3BvcyBleGNoIGRlZg0NCiAgICAg IGxidWYgZXhjaCAwIGV4Y2ggcHV0aW50ZXJ2YWwNDQogICAgICAgeyBscGZpbGUgbGJ1ZiBwb3Mg bGJ1ZiBsZW5ndGggcG9zIHN1YiBnZXRpbnRlcnZhbCByZWFkbGluZSB9IHN0b3BwZWQNDQogICAg ICAgewklIEZpbGxlZCB0aGUgbGluZSBiZWZvcmUgYSBDUiBvciBFT0YuDQ0KICAgICAgICAgZXhj aCBwb3Agc2hvd2xpbmUNDQogICAgICAgfQ0NCiAgICAgICB7CSUgUmVhY2hlZCBDUiBhbmQvb3Ig RU9GIGZpcnN0Lg0NCiAgICAgICAgIGV4Y2ggbGVuZ3RoIHBvcyBhZGQgbGJ1ZiBleGNoIDAgZXhj aCBnZXRpbnRlcnZhbA0NCgkgMSBpbmRleCB7IHNob3dsaW5lIH0gaWYJCSUgb21pdCBmaW5hbCBl bXB0eSBsaW5lDQ0KCSAgeyBkdXAgbGVuZ3RoIDAgZXEgVHJ1bmNhdGUgb3IgeyBwb3AgKCkgZXhp dCB9IGlmDQ0KCSAgICBzaG93bGluZQ0NCgkgIH0NDQoJIGxvb3ANDQoJIGV4Y2ggbm90IHsgZXhp dCB9IGlmDQ0KICAgICAgIH0NDQogICAgICBpZmVsc2UNDQogICAgfSBsb29wDQ0KICAgcG9wDQ0K DQ0KJSBXcmFwIHVwLg0NCiUqKioqKioqKioqKioqKioqIFdIWSBJUyBUSElTIENPTU1FTlRFRCBP VVQ/ICoqKioqKioqKioqKioqKioNDQolICAgRWplY3RFT0YgeyBlbmRwYWdlIH0geyBlbmRjb2x1 bW4gfSBpZmVsc2UNDQogICBlbmRwYWdlDQ0KICAgcmVzdG9yZQ0NCg0NCn0gZGVmDQ0KDQ0KZW5k DQ0KDQ0KJSBVc2FnZTogPGZpbGU+IGxwDQ0KJSAgIHByaW50cyA8ZmlsZT4gdXNpbmcgdGhlIGN1 cnJlbnQgcGFyYW1ldGVyIHNldHRpbmdzLg0NCiUgVXNhZ2U6IFsgPGFyZzE+IC4uLiA8YXJnbj4g XSBscGNvbW1hbmQNDQolICAgaW50ZXJwcmV0cyBhcmdzIGxpa2UgYSBjb21tYW5kIGxpbmUuDQ0K DQ0KL2xwIHsgc2F2ZSAgIGxwZGljdCBiZWdpbiAoKSBscCBlbmQgICByZXN0b3JlIH0gZGVmDQ0K DQ0KbHBkaWN0IGJlZ2luDQ0KDQ0KL3NwbGl0Zm4JCSUgKEZvbnROTk4pIC0+IDxmb250Pg0NCiB7 IGR1cCAvYXJnIGV4Y2ggZGVmIGxlbmd0aA0NCiAgICB7IGR1cCAwIGxlIHsgZXhpdCB9IGlmDQ0K ICAgICAgZHVwIDEgc3ViIGFyZyBleGNoIGdldCBkdXAgNDggZ2UgZXhjaCA1OSBsZSBhbmQgbm90 IHsgZXhpdCB9IGlmDQ0KICAgICAgMSBzdWINDQogICAgfSBsb29wDQ0KICAgYXJnIGV4Y2ggMCBl eGNoIGdldGludGVydmFsIGR1cCBjdm4gZmluZC1sYXRpbi1mb250DQ0KICAgZXhjaCBhcmcgZXhj aCBhbmNob3JzZWFyY2ggcG9wIHBvcCBjdnIgc2NhbGVmb250DQ0KIH0gZGVmDQ0KDQ0KJSBQYXJz ZSB0aGUgY29tbWFuZCBsaW5lIHN3aXRjaGVzLg0NCg0NCi9kb3N3aXRjaAklIGFyZ24gLi4uIGFy ZzEgKC0/KSByZXN0b2Zzd2l0Y2ggLT4NDQogeyBleGNoIGR1cCBjdm4gbHBkaWN0IGV4Y2gga25v d24NDQogICAgeyBjdm4gbG9hZCBleGVjIH0NDQogICAgeyBleGNoIHBvcCAoVW5rbm93biBzd2l0 Y2g6ICkgZXByaW50IGVwcmludCAoXG4pIGVwcmludCB9DQ0KICAgaWZlbHNlDQ0KIH0gZGVmDQ0K DQ0KL21vcmUJCSUgYXJnbiAuLi4gYXJnMSByZXN0b2Zzd2l0Y2ggLT4NDQogeyBkdXAgbGVuZ3Ro IDAgbmUNDQogICAgeyAoLSApIGR1cCAxIDMgaW5kZXggMCBnZXQgcHV0DQ0KICAgICAgZXhjaCBk dXAgbGVuZ3RoIDEgc3ViIDEgZXhjaCBnZXRpbnRlcnZhbA0NCiAgICAgIGRvc3dpdGNoDQ0KICAg IH0NDQogICAgeyBwb3ANDQogICAgfQ0NCiAgIGlmZWxzZQ0NCiB9IGRlZg0NCg0NCi8tLSB7ICgt LSkgZXhjaCBjb25jYXRzdHJpbmdzDQ0KICAgICAgZHVwIGN2biBscGRpY3QgZXhjaCBrbm93bg0N CiAgICAgICB7IGN2biBsb2FkIGV4ZWMgfQ0NCiAgICAgICB7IChVbmtub3duIHN3aXRjaDogKSBl cHJpbnQgZXByaW50IChcbikgZXByaW50IH0NDQogICAgICBpZmVsc2UNDQogICAgfSBkZWYNDQov LS1hZGQtdG8tc3BhY2UgeyBjdnIgL0FkZFRvU3BhY2UgZXhjaCBkZWYgfSBkZWYNDQovLS1hZGQt dG8td2lkdGggeyBjdnIgL0FkZFRvV2lkdGggZXhjaCBkZWYgfSBkZWYNDQovLS1jb2x1bW5zIHsg Y3ZpIDEgbWF4IC9Db2x1bW5zIGV4Y2ggZGVmIH0gZGVmDQ0KLy0tZGV0ZWN0IHsgL0RldGVjdEZp bGVUeXBlIHRydWUgZGVmIH0gZGVmDQ0KLy0tZmlyc3QtcGFnZSB7IGN2aSAvUGFnZUZpcnN0IGV4 Y2ggZGVmIH0gZGVmDQ0KLy0tZm9vdGluZy1jZW50ZXIgeyAvRm9vdGluZ0NlbnRlciBleGNoIGRl ZiAgIC9Gb290ZXJzIHRydWUgZGVmIH0gZGVmDQ0KLy0tZm9vdGluZy1sZWZ0IHsgL0Zvb3RpbmdM ZWZ0IGV4Y2ggZGVmICAgL0Zvb3RlcnMgdHJ1ZSBkZWYgfSBkZWYNDQovLS1mb290aW5nLXJpZ2h0 IHsgL0Zvb3RpbmdSaWdodCBleGNoIGRlZiAgIC9Gb290ZXJzIHRydWUgZGVmfSBkZWYNDQovLS1o ZWFkaW5nLWNlbnRlciB7IC9IZWFkaW5nQ2VudGVyIGV4Y2ggZGVmICAgL0hlYWRlcnMgdHJ1ZSBk ZWYgfSBkZWYNDQovLS1oZWFkaW5nLWxlZnQgeyAvSGVhZGluZ0xlZnQgZXhjaCBkZWYgICAvSGVh ZGVycyB0cnVlIGRlZiB9IGRlZg0NCi8tLWhlYWRpbmctcmlnaHQgeyAvSGVhZGluZ1JpZ2h0IGV4 Y2ggZGVmICAgL0hlYWRlcnMgdHJ1ZSBkZWYgfSBkZWYNDQovLS1rZXJuIHsgcmVhZGtlcm4gL0tl cm4gZXhjaCBkZWYgfSBkZWYNDQovLS1sYXN0LXBhZ2UgeyBjdmkgL1BhZ2VMYXN0IGV4Y2ggZGVm IH0gZGVmDQ0KLy0tbWFyZ2luLWJvdHRvbSB7IGN2ciA3Mi4wIG11bCAvTWFyZ2luQm90dG9tIGV4 Y2ggZGVmIH0gZGVmDQ0KLy0tbWFyZ2luLWxlZnQgeyBjdnIgNzIuMCBtdWwgL01hcmdpbkxlZnQg ZXhjaCBkZWYgfSBkZWYNDQovLS1tYXJnaW4tcmlnaHQgeyBjdnIgNzIuMCBtdWwgL01hcmdpblJp Z2h0IGV4Y2ggZGVmIH0gZGVmDQ0KLy0tbWFyZ2luLXRvcCB7IGN2ciA3Mi4wIG11bCAvTWFyZ2lu VG9wIGV4Y2ggZGVmIH0gZGVmDQ0KLy0tbm8tZWplY3QtZmlsZSB7IC9FamVjdEVPRiBmYWxzZSBk ZWYgfSBkZWYNDQovLS1uby1lamVjdC1mb3JtZmVlZCB7IC9FamVjdEZGIGZhbHNlIGRlZiB9IGRl Zg0NCi8tLXNwYWNpbmcgeyBjdnIgL1NwYWNpbmcgZXhjaCBkZWYgfSBkZWYNDQoNDQovLSMgeyBw b3AgfSBkZWYJCSUgaWdub3JlDQ0KLy0rIHsgLS0gfSBkZWYNDQooLTEpY3ZuIHsgL0NvbHVtbnMg MSBkZWYgICBtb3JlIH0gZGVmDQ0KKC0yKWN2biB7IC9Db2x1bW5zIDIgZGVmICAgbW9yZSB9IGRl Zg0NCi8tYiB7IC9IZWFkaW5nTGVmdCBleGNoIGRlZiAgIC9IZWFkaW5nQ2VudGVyICgpIGRlZiAg IC9IZWFkaW5nUmlnaHQgUGFnZU51bWJlclN0cmluZyBkZWYNDQogICAgICAvSGVhZGVycyB0cnVl IGRlZg0NCiAgICAgIC9icmVhayB0cnVlIGRlZg0NCiAgICB9IGRlZg0NCi8tQiB7IC9IZWFkaW5n TGVmdCAoKSBkZWYgICAvSGVhZGluZ0NlbnRlciAoKSBkZWYgICAvSGVhZGluZ1JpZ2h0ICgpIGRl Zg0NCiAgICAgIC9IZWFkZXJzIGZhbHNlIGRlZg0NCiAgICAgIC9Gb290aW5nTGVmdCAoKSBkZWYg ICAvRm9vdGluZ0NlbnRlciAoKSBkZWYgICAvRm9vdGluZ1JpZ2h0ICgpIGRlZg0NCiAgICAgIC9G b290ZXJzIGZhbHNlIGRlZg0NCiAgICAgIC9icmVhayB0cnVlIGRlZg0NCiAgICAgIG1vcmUNDQog ICAgfSBkZWYNDQovLUMgeyBwb3AgfSBkZWYJCSUgaWdub3JlDQ0KLy1jIHsgL1RydW5jYXRlIHRy dWUgZGVmICAgbW9yZSB9IGRlZg0NCi8tZCB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLWYgeyBz cGxpdGZuIC9Cb2R5Rm9udCBleGNoIGRlZiB9IGRlZg0NCi8tRiB7IHNwbGl0Zm4gL0hlYWRpbmdG b250IGV4Y2ggZGVmIH0gZGVmDQ0KLy1HIHsgbW9yZSB9IGRlZgklIGlnbm9yZQ0NCi8tZyB7IG1v cmUgfSBkZWYJJSBpZ25vcmUNDQovLWggeyBtb3JlIH0gZGVmCSUgaWdub3JlDQ0KLy1KIHsgcG9w IH0gZGVmCQklIGlnbm9yZQ0NCi8tSyB7IG1vcmUgfSBkZWYJJSBpZ25vcmUNDQovLWsgeyBtb3Jl IH0gZGVmCSUgaWdub3JlDQ0KLy1sIHsgNjYgLUwgLUIgfSBkZWYNDQovLUwgeyBjdmkgL01heExp bmVzIGV4Y2ggZGVmIH0gZGVmDQ0KLy1tIHsgbW9yZSB9IGRlZgklIGlnbm9yZQ0NCi8tbiB7IHBv cCB9IGRlZgkJJSBpZ25vcmUNDQovLW8geyBtb3JlIH0gZGVmCSUgaWdub3JlDQ0KLy1wIHsgKHcp IGZpbGUgL091dEZpbGUgZXhjaCBkZWYgICBPdXRGaWxlICglIVxuKSB3cml0ZXN0cmluZyB9IGRl Zg0NCi8tUCB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLXEgeyAvTm9pc3kgZmFsc2UgZGVmICAg bW9yZSB9IGRlZg0NCi8tciB7IC9MYW5kc2NhcGUgdHJ1ZSBkZWYgICBtb3JlIH0gZGVmDQ0KLy1S IHsgL0xhbmRzY2FwZSBmYWxzZSBkZWYgICBtb3JlIH0gZGVmDQ0KLy1TIHsgcG9wIH0gZGVmCQkl IGlnbm9yZQ0NCi8tcyB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLVQgeyBjdmkgL1RhYiBleGNo IGRlZiB9IGRlZg0NCi8tdiB7IHBvcCB9IGRlZgkJJSBpZ25vcmUNDQovLXcgeyBtb3JlIH0gZGVm CSUgaWdub3JlDQ0KDQ0KL2xwMQkJJSBmaWxlbmFtZSAtPg0NCiB7IGJyZWFrIG5vdCB7IGR1cCAv SGVhZGluZ0xlZnQgZXhjaCBkZWYgfSBpZg0NCiAgIE5vaXN5DQ0KICAgIHsgKFByaW50aW5nICkg ZXByaW50IGR1cCBlcHJpbnQgKFxuKSBlcHJpbnQgDQ0KICAgIH0gaWYNDQogICAocikgZmlsZQ0N CgkJJSBJZiByZXF1ZXN0ZWQsIGNoZWNrIGZvciBhIFBvc3RTY3JpcHQgZmlsZS4NDQogICBEZXRl Y3RGaWxlVHlwZQ0NCiAgICB7IGR1cCAyIHN0cmluZyByZWFkc3RyaW5nIHBvcCBkdXAgKCUhKSBl cQ0NCiAgICAgICB7CSUgWWVzLCBpdCdzIGEgUG9zdFNjcmlwdCBmaWxlLg0NCiAgICAgICAgIHBv cCBkdXAgODAgc3RyaW5nIHJlYWRsaW5lIHBvcCBwb3AgY3Z4IGV4ZWMNDQogICAgICAgfQ0NCiAg ICAgICB7IGxwDQ0KICAgICAgIH0NDQogICAgICBpZmVsc2UNDQogICAgfQ0NCiAgICB7ICgpIGxw DQ0KICAgIH0NDQogICBpZmVsc2UNDQogfSBiaW5kIGRlZg0NCg0NCi9scGNzdHJpbmcgMTAwIHN0 cmluZyBkZWYNDQoNDQplbmQNDQoNDQovbHBjb21tYW5kCQklIDxbYXJnMSAuLi4gYXJnbl0+IGxw Y29tbWFuZCA8YW55X3ByaW50ZWQ+DQ0KIHsJJSBQdXNoIHRoZSBjb21tYW5kcyBvbiB0aGUgc3Rh Y2sgaW4gcmV2ZXJzZSBvcmRlcg0NCiAgIG1hcmsgZXhjaA0NCiAgIGR1cCBsZW5ndGggMSBzdWIg LTEgMCB7IDEgaW5kZXggZXhjaCBnZXQgZXhjaCB9IGZvciBwb3ANDQogICBscGRpY3QgYmVnaW4N DQogICAvYW55IGZhbHNlIGRlZg0NCiAgIC9icmVhayBmYWxzZSBkZWYNDQogICAgeyBkdXAgbWFy ayBlcSB7IHBvcCBleGl0IH0gaWYNDQogICAgICBkdXAgbGVuZ3RoIDIgZ2UgeyBkdXAgMCBnZXQg KC0pIDAgZ2V0IGVxIH0geyBmYWxzZSB9IGlmZWxzZQ0NCiAgICAgICB7IGR1cCAwIDIgZ2V0aW50 ZXJ2YWwNDQogICAgICAgICBleGNoIGR1cCBsZW5ndGggMiBzdWIgMiBleGNoIGdldGludGVydmFs DQ0KCSBkb3N3aXRjaA0NCiAgICAgICB9DQ0KICAgICAgIHsgZHVwICglc3RkaW4pIGVxDQ0KCSAg eyAvYW55IHRydWUgZGVmICAgbHAxIH0NDQoJICB7IGR1cCAgL21hdGNoZWQgZmFsc2UgZGVmDQ0K ICAgICAgICAgICAgeyAvbWF0Y2hlZCB0cnVlIGRlZiAgIC9hbnkgdHJ1ZSBkZWYgICBscDEgfSBs cGNzdHJpbmcgZmlsZW5hbWVmb3JhbGwNDQoJICAgIG1hdGNoZWQgeyBwb3AgfSB7IGxwMSB9IGlm ZWxzZQkJJSBsZXQgdGhlIGVycm9yIGhhcHBlbg0NCgkgIH0NDQoJIGlmZWxzZQ0NCiAgICAgICB9 DQ0KICAgICAgaWZlbHNlDQ0KICAgIH0gbG9vcA0NCiAgIE91dEZpbGUgbnVsbCBuZQ0NCiAgICB7 IE91dEZpbGUgKCVzdGRvdXQpICh3KSBmaWxlIG5lIHsgT3V0RmlsZSBjbG9zZWZpbGUgfSBpZg0N CiAgICAgIC9PdXRGaWxlIG51bGwgZGVmDQ0KICAgIH0gaWYNDQogICBhbnkNDQogICBlbmQNDQog fSBkZWYNDQoNDQpbIHNoZWxsYXJndW1lbnRzDQ0KIHsgXSBkdXAgbGVuZ3RoIDAgbmUgeyBscGNv bW1hbmQgfSB7IGZhbHNlIH0gaWZlbHNlIG5vdA0NCiAgICB7ICglc3RkZXJyKSAodykgZmlsZQ0N CiAgICAgIFsgKFVzYWdlOiApDQ0KCS9QUk9HTkFNRSB3aGVyZSB7IHBvcCBQUk9HTkFNRSB9IHsg KGdzbHApIH0gaWZlbHNlDQ0KCSggWy0xMkJjbHFScl0gWy1iPGhlYWRlcj5dIFstZjxmb250Pl0g Wy1GPGhmb250Pl1cbikNDQoJKCAgICAgICAgWy1MPGxpbmVzPl0gWy1wPG91dGZpbGU+XSBbLVQ8 dGFid2lkdGg+XVxuKQ0NCgkoICAgICAgICBbLS1hZGQtdG8tKHNwYWNlfHdpZHRoKSA8dW5pdHM+ XSBbLS1jb2x1bW5zIDxuPl1cbikNDQoJKCAgICAgICAgWy0tZGV0ZWN0XSBbLS1maXJzdC1wYWdl IDxwYWdlIz5dIFstLWxhc3QtcGFnZSA8cGFnZSM+XVxuKQ0NCgkoICAgICAgICBbLS0oaGVhZGlu Z3xmb290aW5nKS0obGVmdHxyaWdodHxjZW50ZXIpIDxzdHJpbmc+XVxuKQ0NCgkoICAgICAgICBb LS1rZXJuIDxhZm1maWxlPl0gWy0tbWFyZ2luLSh0b3B8Ym90dG9tfGxlZnR8cmlnaHQpIDxpbmNo ZXM+XVxuKQ0NCgkoICAgICAgICBbLS1uby1lamVjdC0oZmlsZXxmb3JtZmVlZCldIFstLXNwYWNp bmcgPG4+XSBmaWxlMSAuLi4gZmlsZW5cbikNDQogICAgICBdIHsgMiBjb3B5IHdyaXRlc3RyaW5n IHBvcCB9IGZvcmFsbCBkdXAgZmx1c2hmaWxlIGNsb3NlZmlsZQ0NCiAgICB9DQ0KICAgaWYNDQog fQ0NCiB7IHBvcCB9DQ0KaWZlbHNlDQ0K --0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw Content-Type: text/plain; charset=us-ascii -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/ --0__=WkuPYFtYQZrXLTZgq28R2RcY4lzuNk6cxUA6EKxx1c3kMmYcEwZfClLw--