X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=RnHyRcninY+Ly1gdMJJH9tzANCkrLBaywGqhgt0Fejc=; b=MLvv1ahpJ4v1YxOlFIwHbulvQ6I970a5YqgvTkuont23yNfZU5bZI3n+lOH3vt1sac DpMGxUYbXfMkUPIXFypSWpb5ov0N0pOhkmKc9J6LLrfMsiJhGZZcxqFrihadMBt9TByy IZmULuysVwiS2IkuhzbUlhEtD38t8igFInItHTs769dCmHu+o4DLSozzfAxIyX1YzVoe WVn44qFi0Z3yexh3kiyf8K7LvA0FVDgcqcr8DnNg6WoYsKd+g3QR0is+uUH3OGxfFq1H oYdihOvXDJicSBQ46YW8ESEaLhmuUHxJZtmIZqBscSrn/CjgqjPOJmx7VIJZM+m1QVWf uDLA== MIME-Version: 1.0 X-Received: by 10.50.112.167 with SMTP id ir7mr39505968igb.27.1399438907774; Tue, 06 May 2014 22:01:47 -0700 (PDT) Date: Tue, 6 May 2014 22:01:47 -0700 Message-ID: Subject: [geda-user] Pcb_9 extension to put text, other symbols on silk via footprints From: Britton Kerin To: geda-user AT delorie DOT com Content-Type: multipart/mixed; boundary=089e01184990fbd38f04f8c842d4 Reply-To: geda-user AT delorie DOT com --089e01184990fbd38f04f8c842d4 Content-Type: text/plain; charset=UTF-8 Hi folks, I extended Pcb_9.pm somewhat, the major addition being arbitrary shaped/sized text can be drawn on footprint silk screen. There are some other convenient symbols too. The module is attached, here are the header comments: # Extend the Pcb_9 perl module. Stick this wherever your Pcb_9.pm file lives, # and use 'use Pcb_9_Plus;' instead of 'use Pcb_9;' and 'Pcb_9_Plus->new' # instead of 'Pcb_9->new' in clients to get some extra methods. # # There are methods to add arbitrary silk screen text, round pads, an # orientation dot, a plus sign, maybe other bits and pieces as I think # of them. Examples: # # use Pcb_9_Plus; # # my $pcb = Pcb_9_Plus->new(debug => 1); # # $pcb->element_begin( # description => "some_fp", output_file => "some_fp", dim => 'mm'); # # $pcb->element_add_note( # chars => "HOT 120V", # x => 10, # y => 0, # scale => 2.42, # Optional, defaults to 1.0, <1.0 not allowed # dir => 'up' ); # Optional can also be 'left' etc. or degrees); # # $pcb->element_add_mounting_hole( # x => 15, # y => 12, # diameter => 1 ); # # $pcb->element_add_round_pad( # x => 6, # y => 3, # diameter => 1, # clearance => 0.1, # mask => 0.0, # name => 'FOO', # pin_number => 1 ); # # $pcb->element_add_plus_mark( # x => 20, # y => 25, # size => 2, # thickness => .25 ); # # $pcb->element_add_dot( # x => 25, # y => 20, # diameter => 2); --089e01184990fbd38f04f8c842d4 Content-Type: application/x-perl; name="Pcb_9_Plus.pm" Content-Disposition: attachment; filename="Pcb_9_Plus.pm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_huw5qpaa0 cGFja2FnZSBQY2JfOV9QbHVzOwoKIyB2aW06Zm9sZG1ldGhvZD1tYXJrZXIKCiMgRG9jdW1lbnRh dGlvbiB7e3sxCgojIEV4dGVuZCB0aGUgUGNiXzkgcGVybCBtb2R1bGUuICBTdGljayB0aGlzIHdo ZXJldmVyIHlvdXIgUGNiXzkucG0gZmlsZSBsaXZlcywKIyBhbmQgdXNlICd1c2UgUGNiXzlfUGx1 czsnIGluc3RlYWQgb2YgJ3VzZSBQY2JfOTsnIGFuZCAnUGNiXzlfUGx1cy0+bmV3JwojIGluc3Rl YWQgb2YgJ1BjYl85LT5uZXcnIGluIGNsaWVudHMgdG8gZ2V0IHNvbWUgZXh0cmEgbWV0aG9kcy4K IwojIFRoZXJlIGFyZSBtZXRob2RzIHRvIGFkZCBhcmJpdHJhcnkgc2lsayBzY3JlZW4gdGV4dCwg cm91bmQgcGFkcywgYW4KIyBvcmllbnRhdGlvbiBkb3QsIGEgcGx1cyBzaWduLCBtYXliZSBvdGhl ciBiaXRzIGFuZCBwaWVjZXMgYXMgSSB0aGluawojIG9mIHRoZW0uICBFeGFtcGxlczoKIwojICAg ICB1c2UgUGNiXzlfUGx1czsKIwojICAgICBteSAkcGNiID0gUGNiXzlfUGx1cy0+bmV3KGRlYnVn ID0+IDEpOwojCiMgICAgICRwY2ItPmVsZW1lbnRfYmVnaW4oCiMgICAgICAgICBkZXNjcmlwdGlv biA9PiAic29tZV9mcCIsIG91dHB1dF9maWxlID0+ICJzb21lX2ZwIiwgZGltID0+ICdtbScpOwoj CiMgICAgICRwY2ItPmVsZW1lbnRfYWRkX25vdGUoCiMgICAgICAgICBjaGFycyA9PiAiSE9UIDEy MFYiLAojICAgICAgICAgeCAgICAgPT4gMTAsCiMgICAgICAgICB5ICAgICA9PiAwLAojICAgICAg ICAgc2NhbGUgPT4gMi40MiwgICAgICMgT3B0aW9uYWwsIGRlZmF1bHRzIHRvIDEuMCwgPDEuMCBu b3QgYWxsb3dlZAojICAgICAgICAgZGlyICAgPT4gJ3VwJyApOyAgICMgT3B0aW9uYWwgY2FuIGFs c28gYmUgJ2xlZnQnIGV0Yy4gb3IgZGVncmVlcyk7CiMKIyAgICAgJHBjYi0+ZWxlbWVudF9hZGRf bW91bnRpbmdfaG9sZSgKIyAgICAgICAgIHggPT4gMTUsCiMgICAgICAgICB5ID0+IDEyLAojICAg ICAgICAgZGlhbWV0ZXIgPT4gMSApOwojCiMgICAgICRwY2ItPmVsZW1lbnRfYWRkX3JvdW5kX3Bh ZCgKIyAgICAgICAgIHggPT4gNiwKIyAgICAgICAgIHkgPT4gMywKIyAgICAgICAgIGRpYW1ldGVy ID0+IDEsCiMgICAgICAgICBjbGVhcmFuY2UgPT4gMC4xLAojICAgICAgICAgbWFzayA9PiAwLjAs CiMgICAgICAgICBuYW1lID0+ICdGT08nLAojICAgICAgICAgcGluX251bWJlciA9PiAxICk7CiMg ICAgIAojICAgICAkcGNiLT5lbGVtZW50X2FkZF9wbHVzX21hcmsoCiMgICAgICAgICB4ID0+IDIw LAojICAgICAgICAgeSA9PiAyNSwKIyAgICAgICAgIHNpemUgPT4gMiwKIyAgICAgICAgIHRoaWNr bmVzcyA9PiAuMjUgKTsKIyAgICAgCiMgICAgICRwY2ItPmVsZW1lbnRfYWRkX2RvdCgKIyAgICAg ICAgIHggPT4gMjUsCiMgICAgICAgICB5ID0+IDIwLAojICAgICAgICAgZGlhbWV0ZXIgPT4gMik7 CiMKIyB9fX0xCgojIFByYWdtYXMgYW5kIG1vZHVsZXMge3t7MQoKdXNlIHBhcmVudCAnUGNiXzkn OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwoKdXNlIENhcnA7CnVz ZSBEYXRhOjpEdW1wZXI7CgojIH19fTEKCiMgUGFyc2UgdGhlIGZvbnQgZGF0YSB7e3sxCgpteSAl c3ltYm9sczsKCiMgVW5zY2FsZWQgRm9udCBIZWlnaHQuICBJbiB0aGUgZml4ZWQgZm9udCB3ZSdy ZSBnb2luZyB0byB1c2UsIEkgdGhpbmsKIyB0aGVyZSdzIGp1c3Qgb25lIGNoYXJhY3RlciBpbiB0 aGlzIGZvbnQgdGhhdCdzIHRhbGxlciwgdGhlICdAJyBjaGFyYWN0ZXIsCiMgYnV0IGl0cyBhbHNv IHRoZSBvbmx5IG9uZSB3aXRoIG5lZ2F0aXZlIGV4dGVuZCBzbyB3ZSBjYW4gdXNlIHRoaXMgdG8g ZG8KIyBhIHRyYW5zbGF0aW9uIHNvIHRoZSB0ZXh0IHBvc2l0aW9uIGlzIGNvbnNpc3RlbnQgd2l0 aCB0aGUgd2F5IHRoZSByZWZkZXMKIyB0ZXh0IHdvcmtzLgpteSAkdWZoID0gNDA7CgojIFRoZSBz dHVmZiBpbiB0aGUgX19EQVRBX18gc2VjdGlvbiBJIGdyYWJiZWQgZnJvbSBhIGZpbGUgY2FsbGVk CiMgJ2RlZmF1bHRfZm9udCcgaW4gdGhlIHNyYyBkaXJlY3Rvcnkgb2YgYSAyMDE0IFBDQiBkaXN0 cmlidXRpb24uCm15ICRmZCA9IGpvaW4oJycsIDxEQVRBPik7ICAgIyBGb250IERhdGEKJD8gPT0g MCBvciBkaWUgImJhY2t0aWNrIGNvbW1hbmQgZmFpbGVkIjsKCiMgTk9URTogdGhlIHdheSB0aGlz IGlzIGRvbmUgd2UgY2FuJ3QgdG9sZXJhdGUgYmxhbmsgbGluZXMgaW4gX19EQVRBX18Kd2hpbGUg KCAkZmQgPX4gcy9eU3ltYm9sXCgnKC4pJ1xzKFxkKylcKVxzKlxuCiAgICAgICAgICAgICAgICAg IFwoXHMqXG4gCiAgICAgICAgICAgICAgICAgICgoPzpccytTeW1ib2xMaW5lXChbLVxkXHNdK1wp XHMqXG4pKikKICAgICAgICAgICAgICAgICAgXClccypcbj8gICAjIE5vdGU6IG1heWJlIG5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKICAgICAgICAgICAgICAgICAvL3ggKSB7CiAgICAjIFN5bWJv bCBOYW1lLCBTcGFjZSBBZnRlciwgU3ltYm9sIERlZmluaXRpb24KICAgICMgRklYWE1FOiBJJ20g bm90IGFjdHVhbGx5IHN1cmUgd2hhdCB0aGUgdmFsdWUgd2UncmUgY2FsbGluZyBzcGFjZSBhZnRl ciBpcwogICAgIyBmb3IuICBJdCBtYWtlcyBzb21lIHNlbnNlIHdoZW4gdXNlZCB0aGF0IHdheSBi dXQgSSBoYXZlbid0IGNoZWNrZWQuCiAgICBteSAoJHNuLCAkc2EsICRzZCkgPSAoJDEsICQyLCAk Myk7ICAKICAgIG15IEBsaW5lcyA9ICgpOwogICAgd2hpbGUgKCAkc2QgPX4gcy9eXHMqU3ltYm9s TGluZVwoKFstXGRcc10rKVwpXHMqXG4vLyApIHsKICAgICAgICBteSAkbHQgPSAkMTsgICAjIExp bmUgZGVmaW5pdGlvbiB0ZXh0CiAgICAgICAgJGx0ID1+IG0vXHMqKC0/XGQrKVxzKygtP1xkKylc cysoLT9cZCspXHMrKC0/XGQrKVxzKygtP1xkKylccyovCiAgICAgICAgICAgIG9yIGRpZSAibWF0 Y2ggZmFpbHVyZSBwcm9jZXNzaW5nIG51bWJlciBzdHJpbmcgJyRsdCciOwogICAgICAgICMgTk9U RTogdGhlc2UgY29vcmRpbmF0ZXMgYXJlIGluIG1pbHMgKGFzIHRoZXkgY29tZSB0byB1c2UgZnJv bSB0aGUKICAgICAgICAjIGZvbnQgZGF0YS4gIFdlIGNhbid0IGNvbnZlcnQgYW55dGhpbmcgeWV0 IGJlY2F1c2Ugd2UgZG9uJ3Qga25vdwogICAgICAgICMgdW50aWwgcnVuIHRpbWUgd2hhdCB1bml0 cyB0aGUgY2xpZW50IHdhbnRzLgogICAgICAgIHB1c2goCiAgICAgICAgICAgIEBsaW5lcywKICAg ICAgICAgICAgewogICAgICAgICAgICAgICAgeDEgICAgICAgID0+ICQxLAogICAgICAgICAgICAg ICAgeTEgICAgICAgID0+ICQyIC0gJHVmaCwKICAgICAgICAgICAgICAgIHgyICAgICAgICA9PiAk MywKICAgICAgICAgICAgICAgIHkyICAgICAgICA9PiAkNCAtICR1ZmgsCiAgICAgICAgICAgICAg ICB0aGlja25lc3MgPT4gJDUgfSApOwogICAgfQogICAgJHN5bWJvbHN7JHNufSA9IHsgc3BhY2Vf YWZ0ZXIgPT4gJHNhLCBsaW5lcyA9PiBcQGxpbmVzIH07Cn0KbGVuZ3RoKCRmZCkgPT0gMCBvciBk aWUgImZhaWxlZCB0byBwYXJzZSBlbnRpcmUgX19EQVRBX18gc2VjdGlvbiI7CiMgfX19MQoKc3Vi IHN5bV93aWR0aCAoJCQpICMge3t7MQp7CiAgICAjIFJldHVybiB3aWR0aCBvZiBzeW1ib2wgYXJn MSBhcyBpdCBhcHBlYXJzIGluIHN5bWJvbCBkaWN0aW9uYXJ5CiAgICAjIHJlZmVyZW5jZWQgYnkg YXJnMi4KCiAgICBteSAoJHN5bWJvbCwgJGRpY3QpID0gQF87CgoKICAgIG15ICRsaW5lcyA9ICRk aWN0LT57JHN5bWJvbH17bGluZXN9OwoKICAgIGlmICggQCRsaW5lcyA9PSAwICkgewogICAgICAg ICMgU3BhY2UgaXMgc3BlY2lhbAogICAgICAgIHJldHVybiAwOwogICAgfQogICAgZWxzZSB7CiAg ICAgICAgbXkgKCR4bWluLCAkeG1heCkgPSAoMTAwMDQyLCAtMTAwMDQyKTsKICAgICAgICBmb3Jl YWNoIG15ICRsaW5lICggQCRsaW5lcyApIHsKICAgICAgICAgICAgaWYgKCAkbGluZS0+e3gxfSA8 ICR4bWluICkgewogICAgICAgICAgICAgICAgJHhtaW4gPSAkbGluZS0+e3gxfTsKICAgICAgICAg ICAgfQogICAgICAgICAgICBpZiAoICRsaW5lLT57eDJ9IDwgJHhtaW4gKSB7CiAgICAgICAgICAg ICAgICAkeG1pbiA9ICRsaW5lLT57eDJ9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgg JGxpbmUtPnt4MX0gPiAkeG1heCApIHsKICAgICAgICAgICAgICAgICR4bWF4ID0gJGxpbmUtPnt4 MX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkbGluZS0+e3gyfSA+ICR4bWF4ICkg ewogICAgICAgICAgICAgICAgJHhtYXggPSAkbGluZS0+e3gyfTsKICAgICAgICAgICAgfQogICAg ICAgIH0KCiAgICAgICAgcmV0dXJuICR4bWF4IC0gJHhtaW47CiAgICB9Cn0gIyB9fX0xCgpzdWIg cm90YXRlX2xpbmUgKCQkKSAjIHt7ezEKewogICAgIyBHaXZlbiBhbiBhbmdsZSBpbiBkZWdyZWVz IGFuZCBhIGxpbmUgc3RydWN0dXJlIChhcyB1c2VkIGVsc2V3aGVyZSBpbgogICAgIyB0aGlzIGZp bGUpLCByb3RhdGUgYWxsIHRoZSBwb2ludHMgb2YgbGluZSBjbG9ja3dpc2UgYnkgZGVncmVlcyBh Ym91dAogICAgIyB0aGUgb3JpZ2luLgoKICAgIG15ICgkYW5nLCAkbGluZSkgPSBAXzsKCiAgICBt eSAoJHgxLCAkeTEsICR4MiwgJHkyKSA9ICgKICAgICAgICAkbGluZS0+e3gxfSwKICAgICAgICAk bGluZS0+e3kxfSwKICAgICAgICAkbGluZS0+e3gyfSwKICAgICAgICAkbGluZS0+e3kyfSApOwoK ICAgIG15ICRhbmdyID0gJGFuZyAqICgzLjE0MTU5IC8gMTgwKTsgICAjIEFuZ2xlIGluIFJhZGlh bnMKCiAgICBteSAkdHgxID0gJHgxICogY29zKCRhbmdyKSAtICgkeTEgKiBzaW4oJGFuZ3IpKTsK ICAgIG15ICR0eTEgPSAkeTEgKiBjb3MoJGFuZ3IpICsgKCR4MSAqIHNpbigkYW5ncikpOwoKICAg IG15ICR0eDIgPSAkeDIgKiBjb3MoJGFuZ3IpIC0gKCR5MiAqIHNpbigkYW5ncikpOwogICAgbXkg JHR5MiA9ICR5MiAqIGNvcygkYW5ncikgKyAoJHgyICogc2luKCRhbmdyKSk7CgogICAgJGxpbmUt Pnt4MX0gPSAkdHgxOwogICAgJGxpbmUtPnt5MX0gPSAkdHkxOwogICAgJGxpbmUtPnt4Mn0gPSAk dHgyOwogICAgJGxpbmUtPnt5Mn0gPSAkdHkyOwp9ICMgfX19MQoKc3ViIHRyYW5zbGF0ZV9saW5l ICgkJCQpICMge3t7MQp7CiAgICAjIEdpdmVuIHgsIHksIGFuZCBhIGxpbmUgc3RydWN0dXJlIChh cyB1c2VkIGVsc2V3aGVyZSBpbiB0aGlzIGZpbGUpLAogICAgIyB0cmFuc2xhdGUgYWxsIHRoZSBw b2ludHMgb2YgbGluZSBieSAoeCwgeSkuCgogICAgbXkgKCR4dCwgJHl0LCAkbGluZSkgPSBAXzsK CiAgICAkbGluZS0+e3gxfSArPSAkeHQ7CiAgICAkbGluZS0+e3kxfSArPSAkeXQ7CiAgICAkbGlu ZS0+e3gyfSArPSAkeHQ7CiAgICAkbGluZS0+e3kyfSArPSAkeXQ7Cn0gIyB9fX0xCgpzdWIgc2Nh bGVfbGluZSAoJCQpICMge3t7MQp7CiAgICAjIEdpdmVuIGEgc2NhbGUgZmFjdG9yLCBhbmQgYSBs aW5lIHN0cnVjdHVyZSAoYXMgdXNlZCBlbHNld2hlcmUgaW4KICAgICMgdGhpcyBmaWxlKSwgc2Nh bGUgbGluZSBieSBzY2FsZSAocmVsYXRpdmUgdG8gdGhlIG9yaWdpbiwgbm90ZQogICAgIyB0aGF0 IHRoaXMgZWZmZWN0aXZlbHkgdHJhbnNsYXRlcyBsaW5lcyBub3QgY2VudGVyZWQgb24gdGhlIG9y aWdpbikuCiAgICAjIFRoZSB0aGlja25lc3Mgb2YgdGhlIGxpbmUgaXMgc2NhbGVkIGFzIHdlbGwu CgogICAgbXkgKCRzZiwgJGxpbmUpID0gQF87CgogICAgJGxpbmUtPnt4MX0gKj0gJHNmOwogICAg JGxpbmUtPnt5MX0gKj0gJHNmOwogICAgJGxpbmUtPnt4Mn0gKj0gJHNmOwogICAgJGxpbmUtPnt5 Mn0gKj0gJHNmOwoKICAgICRsaW5lLT57dGhpY2tuZXNzfSAqPSAkc2Y7Cn0gIyB9fX0xCgpzdWIg ZWxlbWVudF9hZGRfbm90ZSAoJCUpICMge3t7MQp7CiAgICAjIEFkZCBhIG5vdGUgdG8gdGhlIHNp bGtzY3JlZW4uICBOYW1lZCBhcmd1bWVudHM6IGNoYXJzICh0aGUgY2hhcmFjdGVycwogICAgIyBz dHVmZiB0byBhZGQpLCB4LCB5LCBkaXIgKG9wdGlvbmFsLCBjYW4gYmUgYSBiZWFyaW5nIG9yICd1 cCcsICdkb3duJywKICAgICMgJ2xlZnQnLCBvciAncmlnaHQnKSwgc2NhbGUgKG9wdGlvbmFsLCBt dXN0IGJlID49IDEuMCkuICBOT1RFOiB0aGlzCiAgICAjIGRvZXNuJ3Qgd29yayB0aGUgc2FtZSB3 YXkgdGhlIHJlZmRlcyBhZGRpdGlvbiB3b3Jrcy4gIEZvciByZWZkZXNlcyB0aGUKICAgICMgZWxl bWVudF9zZXRfdGV4dF94eSBmcm9tIFBjYl85IHNob3VsZCBiZSB1c2VkIChhbmQgdGhlIHJlZmRl cyB0ZXh0CiAgICAjIGl0c2VsZiBpcyBzZXQgYnkgUENCIHVzaW5nIG90aGVyIG1lYW5zKS4gIFRo aXMgbWV0aG9kIGlzIGZvciBhZGRpbmcKICAgICMgYXJiaXRyYXJ5IHRleHQgbm90ZXMgdG8gZ28g d2l0aCBhIGZvb3RwcmludC4KCiAgICBteSAkc2VsZiA9IHNoaWZ0OwogICAgIyBOT1RFOiB3ZSBk b24ndCBoYXZlIHRvIHNjYWxlIHRoZSB4IGFuZCB5IGFyZ3MsIGFzIHRoZSBlbGVtZW50X2FkZF9s aW5lCiAgICAjIG1ldGhvZCB3aWxsIGVuZCB1cCBkb2luZyBpdC4KICAgIG15ICV2ID0gQF87CiAg ICAKICAgICMgQ2hlY2sgZm9yIHRoZSByZXF1aXJlZCBhcmd1bWVudHMKICAgIG5vdCBQY2JfOTo6 X3ByaW50X21pc3NpbmdfZmllbGRzKCdlbGVtZW50X2FkZF9ub3RlJywgXCV2LCBxdyhjaGFycyB4 IHkpKQogICAgICAgIG9yIGNvbmZlc3MgInJlcXVpcmVkIGFyZ3VtZW50IGZpZWxkKHMpIG1pc3Np bmcgKHNlZSBhYm92ZSkiOwoKICAgICMgRGVmYXVsdCBmb3Igb3B0aW9uIGRpciBhcmd1bWVudCwg aW50ZXJwcmV0IGVuZ2xpc2ggd29yZCBkaXIgaW4gYWRkaXRpb24KICAgICMgdG8gYmVhcmluZ3Mg aW4gZGVncmVlcy4KICAgIGlmICggbm90IGV4aXN0cygkdntkaXJ9KSApIHsKICAgICAgICAkdntk aXJ9ID0gMDsKICAgIH0KICAgIGVsc2lmICggJHZ7ZGlyfSA9fiBtLyg/OnJpZ2h0fGRvd258bGVm dHx1cCkvICkgewogICAgICAgICR2e2Rpcn0gPSB7cmlnaHQgPT4gMCwgZG93biA9PiA5MCwgbGVm dCA9PiAxODAsIHVwID0+IDI3MH0tPnskdntkaXJ9fTsKICAgIH0KICAgIGVsc2UgewogICAgICAg IGNvbmZlc3MgImludmFsaWQgZGlyIGFyZ3VtZW50ICckdntkaXJ9JyI7CiAgICB9CgogICAgIyBE ZWZhdWx0IGZvciBvcHRpb25hbCBzY2FsZSBhcmd1bWVudAogICAgaWYgKCBub3QgZGVmaW5lZCgk dntzY2FsZX0pICkgewogICAgICAgICR2e3NjYWxlfSA9IDEuMDsKICAgIH0KCiAgICAjIFdlJ3Jl IG5vdCBnb2luZyB0byBzdXBwb3J0IHNjYWxlIGZhY3RvcnMgc21hbGxlciB0aGFuIDEuMCwgYXMg SSB0aGluawogICAgIyB0aGUgZm9udCBhbHJlYWR5IHVzZXMgbGluZXMgYXMgc21hbGwgYXMgUENC IHN1cHBvcnRzOiBJJ3ZlIGhhZCB0aGlubmVyCiAgICAjIGxpbmVzIG5vdCBzaG93IHVwIGF0IGFs bCBJIHRoaW5rLgogICAgJHZ7c2NhbGV9ID49IDEuMCAKICAgICAgICBvciBjb25mZXNzICJzY2Fs ZSBzZXR0aW5ncyBzbWFsbGVyIHRoYW4gMS4wIGFyZW4ndCBzdXBwb3J0ZWQiOwoKICAgICMgQWRk IGNoYXJhY3RlcnMgdG8gdGhlIHNpbGtzY3JlZW4ge3t7MgogICAgbXkgJGNvID0gMDsgICAjIENo YXJhY3RlciBPZmZzZXQgKGdyb3dzIGFzIHdlIHByb2dyZXNzIHRocm91Z2ggc3RyaW5nKQogICAg Zm9yICggbXkgJGlpID0gMCA7ICRpaSA8IGxlbmd0aCgkdntjaGFyc30pIDsgJGlpKysgKSB7CiAg ICAgICAgbXkgJGNjID0gc3Vic3RyKCR2e2NoYXJzfSwgJGlpLCAxKTsgICAjIEN1cnJlbnQgQ2hh cgogICAgICAgIGV4aXN0cygkc3ltYm9sc3skY2N9KSBvciBkaWUgImRvbid0IGtub3cgaG93IHRv IGRyYXcgY2hhcmFjdGVyICckY2MnIjsKICAgICAgICBteSAkc2EgPSAkc3ltYm9sc3skY2N9e3Nw YWNlX2FmdGVyfTsgICAjIFNwYWNlIEFmdGVyIChzeW1ib2wpCiAgICAgICAgbXkgJHNsID0gJHN5 bWJvbHN7JGNjfXtsaW5lc307ICAgICAgICAgIyBTeW1ib2wgTGluZXMKICAgICAgICBmb3JlYWNo IG15ICRsaW5lICggQCRzbCApIHsKICAgICAgICAgICAgbXkgJHRsYyA9IHsgJSRsaW5lIH07ICAg IyBUcmFuc2xhdGVkIExpbmUgQ29weQogICAgICAgICAgICAkdGxjLT57eDF9ICs9ICRjbzsKICAg ICAgICAgICAgJHRsYy0+e3gyfSArPSAkY287CiAgICAgICAgICAgIGZvcmVhY2ggbXkgJHRsY19k aW1fa2V5ICgga2V5cyAlJHRsYyApIHsKICAgICAgICAgICAgICAgICMgV2UgaGF2ZSB0byBjYWxs IHNjYWxlZF92YWx1ZSBoZXJlIGJlY2F1c2UgdGhlIGNvbnZlcnNpb24KICAgICAgICAgICAgICAg ICMgZGlyZWN0aW9uIGFzc3VtcHRpb25zIHRoYXQgc2NhbGVfZGltIGFuZCBfc2NhbGVfZGltIGZy b20KICAgICAgICAgICAgICAgICMgUGNiXzkgbWFrZSBhcmVuJ3QgcmlnaHQgZm9yIHRoZXNlIHZh bHVlcyB0aGF0IG9yaWdpbmF0ZWQKICAgICAgICAgICAgICAgICMgaW4gdGhlIGZvbnQgZGF0YSAo d2hpY2ggaXMgaW4gbWlscykuCiAgICAgICAgICAgICAgICAkdGxjLT57JHRsY19kaW1fa2V5fQog ICAgICAgICAgICAgICAgICAgID0gUGNiXzk6OnNjYWxlZF92YWx1ZSgKICAgICAgICAgICAgICAg ICAgICAgICAgJHRsYy0+eyR0bGNfZGltX2tleX0sCiAgICAgICAgICAgICAgICAgICAgICAgICdt aWxzJywKICAgICAgICAgICAgICAgICAgICAgICAgJHNlbGYtPmVsZW1lbnRfZ2V0KCdkaW0nKSAp OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHNjYWxlX2xpbmUoJHZ7c2NhbGV9LCAkdGxjKTsK ICAgICAgICAgICAgcm90YXRlX2xpbmUoJHZ7ZGlyfSwgJHRsYyk7CiAgICAgICAgICAgIHRyYW5z bGF0ZV9saW5lKCR2e3h9LCAkdnt5fSwgJHRsYyk7CiAgICAgICAgICAgICRzZWxmLT5lbGVtZW50 X2FkZF9saW5lKCUkdGxjKTsKICAgICAgICB9CiAgICAgICAgJGNvICs9IHN5bV93aWR0aCgkY2Ms IFwlc3ltYm9scykgKyAkc2E7CiAgICB9CiAgICAjIH19fTIKCn0gIyB9fX0xCgpzdWIgZWxlbWVu dF9hZGRfcm91bmRfcGFkICgkJSkgIyB7e3sxCnsKICAgICMgQWRkIGEgcm91bmQgcGFkLiAgVGhl IGZvbGxvd2luZyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkOgogICAgIwogICAgIyAgICAgeAogICAg IyAgICAgeQogICAgIyAgICAgZGlhbWV0ZXIKICAgICMgICAgIGNsZWFyYW5jZQogICAgIyAgICAg bWFzawogICAgIyAgICAgbmFtZQogICAgIyAgICAgcGluX251bWJlcgogICAgIwogICAgIyBNb3N0 IG9mIHRoZSBhcmd1bWVudHMgYXJlIHBhc3NlZCBvbiB0byB0aGUgZWxlbWVudF9hZGRfcGFkKCkg bWV0aG9kCiAgICAjIGFzIGV4cGVjdGVkLgoKICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAjIE5P VEU6IHdlIGRvbid0IGhhdmUgdG8gc2NhbGUgdGhlIHggYW5kIHkgYXJncywgYXMgdGhlIGVsZW1l bnRfYWRkX2xpbmUKICAgICMgbWV0aG9kIHdpbGwgZW5kIHVwIGRvaW5nIGl0LgogICAgbXkgJXYg PSBAXzsKIAogICAgIyBDaGVjayBmb3IgdGhlIHJlcXVpcmVkIGFyZ3VtZW50cwogICAgbm90IFBj Yl85OjpfcHJpbnRfbWlzc2luZ19maWVsZHMoCiAgICAgICAgICAgICdlbGVtZW50X2FkZF9yb3Vu ZF9wYWQnLAogICAgICAgICAgICBcJXYsCiAgICAgICAgICAgIHF3KHggeSBkaWFtZXRlciBjbGVh cmFuY2UgbWFzayBuYW1lIHBpbl9udW1iZXIpICkKICAgICAgICBvciBjb25mZXNzICJyZXF1aXJl ZCBhcmd1bWVudCBmaWVsZChzKSBtaXNzaW5nIChzZWUgYWJvdmUpIjsKCiAgICAjIEluIHRydXRo IEknbSBnb2luZyB0byBtYWtlIHRoZSBwYWQgbm90IGFic29sdXRlbHkgcm91bmQuICBUaGlzIGlz CiAgICAjIGJlY2F1c2UgSSBmZWFyIHplcm8tbGVuZ2ggcGFkcyBnZXR0aW5nIG51a2VkIGJ5IGFj Y2lkZW50IHNvbWV3aGVyZS4KICAgIG15ICRydGwgPSAwLjAwMTsgICAjIFJlYWxseSBUaW55IExl bmd0aAogICAgCiAgICAkc2VsZi0+ZWxlbWVudF9hZGRfcGFkKAogICAgICAgIHgxID0+ICR2e3h9 IC0gJHJ0bCAvIDIuMCwKICAgICAgICB5MSA9PiAkdnt5fSwKICAgICAgICB4MiA9PiAkdnt4fSAr ICRydGwgLyAyLjAsCiAgICAgICAgeTIgPT4gJHZ7eX0sCiAgICAgICAgdGhpY2tuZXNzID0+ICR2 e2RpYW1ldGVyfSwKICAgICAgICBjbGVhcmFuY2UgPT4gJHZ7Y2xlYXJhbmNlfSwKICAgICAgICBt YXNrID0+ICR2e21hc2t9LAogICAgICAgIG5hbWUgPT4gJHZ7bmFtZX0sCiAgICAgICAgcGluX251 bWJlciA9PiAkdntwaW5fbnVtYmVyfSwKICAgICAgICBmbGFncyA9PiBQY2JfOTo6UEFEX1JPVU5E RUQgKTsKCn0gIyB9fX0xCgojIE5leHQgTW91bnRpbmcgSG9sZSBOdW1iZXIuICBXZSBnaXZlIG1v dW50aW5nIGhvbGVzIGxhcmdlIHBpbiBudW1iZXJzIHRvCiMga2VlcCB0aGVtIG91dCBvZiB0aGUg d2F5LCBzaW5jZSB3ZSBkb24ndCByZWFsbHkgY2FyZSB3aGF0IHRoZXkgYXJlLgpteSAkbm1obiA9 IDIwNDI7CgpzdWIgZWxlbWVudF9hZGRfbW91bnRpbmdfaG9sZSAoJCUpICMge3t7MQp7CiAgICAj IEFkZCBhIG1vdW50aW5nIGhvbGUgKHdpdGggbm8gY29wcGVyIGFubnVsdXMpLiAgVGhlIHBpbiBu dW1iZXIgd2lsbCBiZQogICAgIyBhdXRvbWF0aWNhbGx5IHNldCB0byBhIGhpZ2ggdmFsdWUsIHNv IGl0IGRvZXNuJ3QgaW50ZXJmZXJlIHdpdGggcGlucwogICAgIyB5b3UgY2FyZSBhYm91dC4gIFRo ZSBwaW4gd2lsbCBiZSBuYW1lZCAiTU9VTlRJTkdfSE9MRSIuICBUaGUgcmVxdWlyZWQKICAgICMg bmFtZXMgYXJndW1lbnRzIGFyZSAieCIsICJ5IiwgYW5kLCAiZGlhbWV0ZXIiLgoKICAgIG15ICRz ZWxmID0gc2hpZnQ7CiAgICAjIE5PVEU6IHdlIGRvbid0IGhhdmUgdG8gc2NhbGUgdGhlIHggYW5k IHkgYXJncywgYXMgdGhlIGVsZW1lbnRfYWRkX3BpbgogICAgIyBtZXRob2Qgd2lsbCBlbmQgdXAg ZG9pbmcgaXQuCiAgICBteSAldiA9IEBfOwoKICAgIG5vdCBQY2JfOTo6X3ByaW50X21pc3Npbmdf ZmllbGRzKAogICAgICAgICAgICAnZWxlbWVudF9hZGRfbW91bnRpbmdfaG9sZScsCiAgICAgICAg ICAgIFwldiwKICAgICAgICAgICAgcXcoeCB5IGRpYW1ldGVyKSApCiAgICAgICAgb3IgY29uZmVz cyAicmVxdWlyZWQgYXJndW1lbnQgZmllbGQocykgbWlzc2luZyAoc2VlIGFib3ZlKSI7CgogICAg JHNlbGYtPmVsZW1lbnRfYWRkX3BpbigKICAgICAgICB4ID0+ICR2e3h9LAogICAgICAgIHkgPT4g JHZ7eX0sCiAgICAgICAgdGhpY2tuZXNzID0+IDAuMCwgICAjIDAuMCBiZWNhdXNlIGl0cyBqdXN0 IGhvbGUsIG5vIGFubnVsYXIgcmluZwogICAgICAgIGNsZWFyYW5jZSA9PiAwLjAsICAgIyBMZXQg dXNlciBlbnN1cmUgdHJhY2VzIGRvbid0IGZhbGwgaW4gaG9sZXMKICAgICAgICBtYXNrID0+IDAu MCwKICAgICAgICBkcmlsbF9ob2xlID0+ICR2e2RpYW1ldGVyfSwKICAgICAgICBuYW1lID0+ICJN T1VOVElOR19IT0xFIiwKICAgICAgICBwaW5fbnVtYmVyID0+ICRubWhuLAogICAgICAgIGZsYWdz ID0+IFBjYl85OjpQSU5fTU9VTlRJTkdfSE9MRSApOwoKICAgICRubWhuICs9IDEwMDsgICAjIEdv IG9uIHRvIGFub3RoZXIgYmlnIG51bWJlciB3ZSBkb24ndCBjYXJlIGFib3V0Lgp9ICMgfX19MQoK c3ViIGVsZW1lbnRfYWRkX3BsdXNfbWFyayAoJCUpICMge3t7MQp7CiAgICAjIEFkZCBhIHBsdXMg bWFyayBhdCB4LCB5IG9mIHNpemUgc2l6ZSB3aXRoIHN0cm9rZSB0aGlja25lc3MgdGhpY2tuZXNz LgoKICAgIG15ICRzZWxmID0gc2hpZnQ7CiAgICAjIE5PVEU6IHdlIGRvbid0IGhhdmUgdG8gc2Nh bGUgdGhlIGFyZ3MsIGFzIHRoZSBlbGVtZW50X2FkZF9waW4gbWV0aG9kCiAgICAjIHdpbGwgZW5k IHVwIGRvaW5nIGl0LgogICAgbXkgJXYgPSBAXzsKICAgIAogICAgbm90IFBjYl85OjpfcHJpbnRf bWlzc2luZ19maWVsZHMoCiAgICAgICAgICAgICdlbGVtZW50X2FkZF9wbHVzX21hcmsnLCBcJXYs IHF3KHggeSBzaXplIHRoaWNrbmVzcykgKQogICAgICAgIG9yIGNvbmZlc3MgInJlcXVpcmVkIGFy Z3VtZW50IGZpZWxkKHMpIG1pc3NpbmcgKHNlZSBhYm92ZSkiOwoKICAgICRzZWxmLT5lbGVtZW50 X2FkZF9saW5lKAogICAgICAgIHgxID0+ICR2e3h9IC0gJHZ7c2l6ZX0gLyAyLjAsCiAgICAgICAg eTEgPT4gJHZ7eX0sCiAgICAgICAgeDIgPT4gJHZ7eH0gKyAkdntzaXplfSAvIDIuMCwKICAgICAg ICB5MiA9PiAkdnt5fSwKICAgICAgICB0aGlja25lc3MgPT4gJHZ7dGhpY2tuZXNzfSApOwogICAg CiAgICAkc2VsZi0+ZWxlbWVudF9hZGRfbGluZSgKICAgICAgICB4MSA9PiAkdnt4fSwKICAgICAg ICB5MSA9PiAkdnt5fSAtICR2e3NpemV9IC8gMi4wLAogICAgICAgIHgyID0+ICR2e3h9LAogICAg ICAgIHkyID0+ICR2e3l9ICsgJHZ7c2l6ZX0gLyAyLjAsCiAgICAgICAgdGhpY2tuZXNzID0+ICR2 e3RoaWNrbmVzc30gKTsKfSAjIH19fTEKCnN1YiBlbGVtZW50X2FkZF9kb3QgKCQlKSAjIHt7ezEK ewogICAgIyBEcmF3IGEgZG90IGF0IHgsIHkgd2l0aCBkaWFtYXRlciBkaWFtZXRlci4KCiAgICBt eSAkc2VsZiA9IHNoaWZ0OwogICAgIyBOT1RFOiB3ZSBkb24ndCBoYXZlIHRvIHNjYWxlIHRoZSBh cmdzLCBhcyB0aGUgZWxlbWVudF9hZGRfYXJjIG1ldGhvZAogICAgIyB3aWxsIGVuZCB1cCBkb2lu ZyBpdC4KICAgIG15ICV2ID0gQF87CiAgICAKICAgIG5vdCBQY2JfOTo6X3ByaW50X21pc3Npbmdf ZmllbGRzKAogICAgICAgICAgICAnZWxlbWVudF9hZGRfZG90JywgXCV2LCBxdyh4IHkgZGlhbWV0 ZXIpICkKICAgICAgICBvciBjb25mZXNzICJyZXF1aXJlZCBhcmd1bWVudCBmaWVsZChzKSBtaXNz aW5nIChzZWUgYWJvdmUpIjsKCiAgICAkc2VsZi0+ZWxlbWVudF9hZGRfYXJjKAogICAgICAgIHgg PT4gJHZ7eH0sCiAgICAgICAgeSA9PiAkdnt5fSwKICAgICAgICB3aWR0aCA9PiAgJHZ7ZGlhbWV0 ZXJ9IC8gNC4wLAogICAgICAgIGhlaWdodCA9PiAkdntkaWFtZXRlcn0gLyA0LjAsCiAgICAgICAg c3RhcnRfYW5nbGUgPT4gMC4wLAogICAgICAgIGRlbHRhX2FuZ2xlID0+IDM2MC4wLAogICAgICAg IHRoaWNrbmVzcyA9PiAkdntkaWFtZXRlcn0gLyAyLjAgKTsKfSAjIH19fTEKCnJldHVybiAibW9k dWxlIHJldHVybiB0cnVlIjsKCl9fREFUQV9fClN5bWJvbCgnICcgMTgpCigKKQpTeW1ib2woJyEn IDEyKQooCglTeW1ib2xMaW5lKDAgMzUgMCA0MCA4KQoJU3ltYm9sTGluZSgwIDAgMCAyNSA4KQop ClN5bWJvbCgnIicgMTIpCigKCVN5bWJvbExpbmUoMCAwIDAgMTAgOCkKCVN5bWJvbExpbmUoMTAg MCAxMCAxMCA4KQopClN5bWJvbCgnIycgMTIpCigKCVN5bWJvbExpbmUoMCAyNSAyMCAyNSA4KQoJ U3ltYm9sTGluZSgwIDE1IDIwIDE1IDgpCglTeW1ib2xMaW5lKDE1IDEwIDE1IDMwIDgpCglTeW1i b2xMaW5lKDUgMTAgNSAzMCA4KQopClN5bWJvbCgnJCcgMTIpCigKCVN5bWJvbExpbmUoMTUgNSAy MCAxMCA4KQoJU3ltYm9sTGluZSg1IDUgMTUgNSA4KQoJU3ltYm9sTGluZSgwIDEwIDUgNSA4KQoJ U3ltYm9sTGluZSgwIDEwIDAgMTUgOCkKCVN5bWJvbExpbmUoMCAxNSA1IDIwIDgpCglTeW1ib2xM aW5lKDUgMjAgMTUgMjAgOCkKCVN5bWJvbExpbmUoMTUgMjAgMjAgMjUgOCkKCVN5bWJvbExpbmUo MjAgMjUgMjAgMzAgOCkKCVN5bWJvbExpbmUoMTUgMzUgMjAgMzAgOCkKCVN5bWJvbExpbmUoNSAz NSAxNSAzNSA4KQoJU3ltYm9sTGluZSgwIDMwIDUgMzUgOCkKCVN5bWJvbExpbmUoMTAgMCAxMCA0 MCA4KQopClN5bWJvbCgnJScgMTIpCigKCVN5bWJvbExpbmUoMCA1IDAgMTAgOCkKCVN5bWJvbExp bmUoMCA1IDUgMCA4KQoJU3ltYm9sTGluZSg1IDAgMTAgMCA4KQoJU3ltYm9sTGluZSgxMCAwIDE1 IDUgOCkKCVN5bWJvbExpbmUoMTUgNSAxNSAxMCA4KQoJU3ltYm9sTGluZSgxMCAxNSAxNSAxMCA4 KQoJU3ltYm9sTGluZSg1IDE1IDEwIDE1IDgpCglTeW1ib2xMaW5lKDAgMTAgNSAxNSA4KQoJU3lt Ym9sTGluZSgwIDQwIDQwIDAgOCkKCVN5bWJvbExpbmUoMzUgNDAgNDAgMzUgOCkKCVN5bWJvbExp bmUoNDAgMzAgNDAgMzUgOCkKCVN5bWJvbExpbmUoMzUgMjUgNDAgMzAgOCkKCVN5bWJvbExpbmUo MzAgMjUgMzUgMjUgOCkKCVN5bWJvbExpbmUoMjUgMzAgMzAgMjUgOCkKCVN5bWJvbExpbmUoMjUg MzAgMjUgMzUgOCkKCVN5bWJvbExpbmUoMjUgMzUgMzAgNDAgOCkKCVN5bWJvbExpbmUoMzAgNDAg MzUgNDAgOCkKKQpTeW1ib2woJyYnIDEyKQooCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQoJU3lt Ym9sTGluZSgwIDUgMCAxNSA4KQoJU3ltYm9sTGluZSgwIDUgNSAwIDgpCglTeW1ib2xMaW5lKDAg MjUgMTUgMTAgOCkKCVN5bWJvbExpbmUoNSA0MCAxMCA0MCA4KQoJU3ltYm9sTGluZSgxMCA0MCAy MCAzMCA4KQoJU3ltYm9sTGluZSgwIDE1IDI1IDQwIDgpCglTeW1ib2xMaW5lKDUgMCAxMCAwIDgp CglTeW1ib2xMaW5lKDEwIDAgMTUgNSA4KQoJU3ltYm9sTGluZSgxNSA1IDE1IDEwIDgpCglTeW1i b2xMaW5lKDAgMjUgMCAzNSA4KQopClN5bWJvbCgnJycgMTIpCigKCVN5bWJvbExpbmUoMCAxMCAx MCAwIDgpCikKU3ltYm9sKCcoJyAxMikKKAoJU3ltYm9sTGluZSgwIDM1IDUgNDAgOCkKCVN5bWJv bExpbmUoMCA1IDUgMCA4KQoJU3ltYm9sTGluZSgwIDUgMCAzNSA4KQopClN5bWJvbCgnKScgMTIp CigKCVN5bWJvbExpbmUoMCAwIDUgNSA4KQoJU3ltYm9sTGluZSg1IDUgNSAzNSA4KQoJU3ltYm9s TGluZSgwIDQwIDUgMzUgOCkKKQpTeW1ib2woJyonIDEyKQooCglTeW1ib2xMaW5lKDAgMTAgMjAg MzAgOCkKCVN5bWJvbExpbmUoMCAzMCAyMCAxMCA4KQoJU3ltYm9sTGluZSgwIDIwIDIwIDIwIDgp CglTeW1ib2xMaW5lKDEwIDEwIDEwIDMwIDgpCikKU3ltYm9sKCcrJyAxMikKKAoJU3ltYm9sTGlu ZSgwIDIwIDIwIDIwIDgpCglTeW1ib2xMaW5lKDEwIDEwIDEwIDMwIDgpCikKU3ltYm9sKCcsJyAx MikKKAoJU3ltYm9sTGluZSgwIDUwIDEwIDQwIDgpCikKU3ltYm9sKCctJyAxMikKKAoJU3ltYm9s TGluZSgwIDIwIDIwIDIwIDgpCikKU3ltYm9sKCcuJyAxMikKKAoJU3ltYm9sTGluZSgwIDQwIDUg NDAgOCkKKQpTeW1ib2woJy8nIDEyKQooCglTeW1ib2xMaW5lKDAgMzUgMzAgNSA4KQopClN5bWJv bCgnMCcgMTIpCigKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xMaW5lKDAgNSAwIDM1 IDgpCglTeW1ib2xMaW5lKDAgNSA1IDAgOCkKCVN5bWJvbExpbmUoNSAwIDE1IDAgOCkKCVN5bWJv bExpbmUoMTUgMCAyMCA1IDgpCglTeW1ib2xMaW5lKDIwIDUgMjAgMzUgOCkKCVN5bWJvbExpbmUo MTUgNDAgMjAgMzUgOCkKCVN5bWJvbExpbmUoNSA0MCAxNSA0MCA4KQoJU3ltYm9sTGluZSgwIDMw IDIwIDEwIDgpCikKU3ltYm9sKCcxJyAxMikKKAoJU3ltYm9sTGluZSggMCAgOCAgOCAgMCA4KQoJ U3ltYm9sTGluZSggOCAgMCAgOCA0MCA4KQoJU3ltYm9sTGluZSggMCA0MCAxNSA0MCA4KQopClN5 bWJvbCgnMicgMTIpCigKCVN5bWJvbExpbmUoMCA1IDUgMCA4KQoJU3ltYm9sTGluZSg1IDAgMjAg MCA4KQoJU3ltYm9sTGluZSgyMCAwIDI1IDUgOCkKCVN5bWJvbExpbmUoMjUgNSAyNSAxNSA4KQoJ U3ltYm9sTGluZSgwIDQwIDI1IDE1IDgpCglTeW1ib2xMaW5lKDAgNDAgMjUgNDAgOCkKKQpTeW1i b2woJzMnIDEyKQooCglTeW1ib2xMaW5lKCAwICA1ICA1ICAwIDgpCglTeW1ib2xMaW5lKCA1ICAw IDE1ICAwIDgpCglTeW1ib2xMaW5lKDE1ICAwIDIwICA1IDgpCglTeW1ib2xMaW5lKDE1IDQwIDIw IDM1IDgpCglTeW1ib2xMaW5lKCA1IDQwIDE1IDQwIDgpCglTeW1ib2xMaW5lKCAwIDM1ICA1IDQw IDgpCgoJU3ltYm9sTGluZSggNSAxOCAxNSAxOCA4KQoJU3ltYm9sTGluZSgyMCAgNSAyMCAxMyA4 KQoJU3ltYm9sTGluZSgyMCAyMyAyMCAzNSA4KQoJU3ltYm9sTGluZSgyMCAyMyAxNSAxOCA4KQoJ U3ltYm9sTGluZSgyMCAxMyAxNSAxOCA4KQopClN5bWJvbCgnNCcgMTIpCigKCVN5bWJvbExpbmUo MCAyNSAyMCAwIDgpCglTeW1ib2xMaW5lKDAgMjUgMjUgMjUgOCkKCVN5bWJvbExpbmUoMjAgMCAy MCA0MCA4KQopClN5bWJvbCgnNScgMTIpCigKCVN5bWJvbExpbmUoMCAwIDIwIDAgOCkKCVN5bWJv bExpbmUoMCAwIDAgMjAgOCkKCVN5bWJvbExpbmUoMCAyMCA1IDE1IDgpCglTeW1ib2xMaW5lKDUg MTUgMTUgMTUgOCkKCVN5bWJvbExpbmUoMTUgMTUgMjAgMjAgOCkKCVN5bWJvbExpbmUoMjAgMjAg MjAgMzUgOCkKCVN5bWJvbExpbmUoMTUgNDAgMjAgMzUgOCkKCVN5bWJvbExpbmUoNSA0MCAxNSA0 MCA4KQoJU3ltYm9sTGluZSgwIDM1IDUgNDAgOCkKKQpTeW1ib2woJzYnIDEyKQooCglTeW1ib2xM aW5lKDE1ICAwIDIwICA1IDgpCglTeW1ib2xMaW5lKCA1ICAwIDE1ICAwIDgpCglTeW1ib2xMaW5l KCAwICA1ICA1ICAwIDgpCglTeW1ib2xMaW5lKCAwICA1ICAwIDM1IDgpCglTeW1ib2xMaW5lKCAw IDM1ICA1IDQwIDgpCglTeW1ib2xMaW5lKDE1IDE4IDIwIDIzIDgpCglTeW1ib2xMaW5lKCAwIDE4 IDE1IDE4IDgpCglTeW1ib2xMaW5lKCA1IDQwIDE1IDQwIDgpCglTeW1ib2xMaW5lKDE1IDQwIDIw IDM1IDgpCglTeW1ib2xMaW5lKDIwIDIzIDIwIDM1IDgpCikKU3ltYm9sKCc3JyAxMikKKAoJU3lt Ym9sTGluZSggNSA0MCAyNSAgMCA4KQoJU3ltYm9sTGluZSggMCAgMCAyNSAgMCA4KQopClN5bWJv bCgnOCcgMTIpCigKCVN5bWJvbExpbmUoIDAgMzUgIDUgNDAgOCkKCVN5bWJvbExpbmUoIDAgMjcg IDAgMzUgOCkKCVN5bWJvbExpbmUoIDAgMjcgIDcgMjAgOCkKCVN5bWJvbExpbmUoIDcgMjAgMTMg MjAgOCkKCVN5bWJvbExpbmUoMTMgMjAgMjAgMjcgOCkKCVN5bWJvbExpbmUoMjAgMjcgMjAgMzUg OCkKCVN5bWJvbExpbmUoMTUgNDAgMjAgMzUgOCkKCVN5bWJvbExpbmUoIDUgNDAgMTUgNDAgOCkK CVN5bWJvbExpbmUoIDAgMTMgIDcgMjAgOCkKCVN5bWJvbExpbmUoIDAgIDUgIDAgMTMgOCkKCVN5 bWJvbExpbmUoIDAgIDUgIDUgIDAgOCkKCVN5bWJvbExpbmUoIDUgIDAgMTUgIDAgOCkKCVN5bWJv bExpbmUoMTUgIDAgMjAgIDUgOCkKCVN5bWJvbExpbmUoMjAgIDUgMjAgMTMgOCkKCVN5bWJvbExp bmUoMTMgMjAgMjAgMTMgOCkKKQpTeW1ib2woJzknIDEyKQooCglTeW1ib2xMaW5lKDUgNDAgMjAg MjAgOCkKCVN5bWJvbExpbmUoMjAgNSAyMCAyMCA4KQoJU3ltYm9sTGluZSgxNSAwIDIwIDUgOCkK CVN5bWJvbExpbmUoNSAwIDE1IDAgOCkKCVN5bWJvbExpbmUoMCA1IDUgMCA4KQoJU3ltYm9sTGlu ZSgwIDUgMCAxNSA4KQoJU3ltYm9sTGluZSgwIDE1IDUgMjAgOCkKCVN5bWJvbExpbmUoNSAyMCAy MCAyMCA4KQopClN5bWJvbCgnOicgMTIpCigKCVN5bWJvbExpbmUoMCAxNSA1IDE1IDgpCglTeW1i b2xMaW5lKDAgMjUgNSAyNSA4KQopClN5bWJvbCgnOycgMTIpCigKCVN5bWJvbExpbmUoMCA0MCAx MCAzMCA4KQoJU3ltYm9sTGluZSgxMCAxNSAxMCAyMCA4KQopClN5bWJvbCgnPCcgMTIpCigKCVN5 bWJvbExpbmUoMCAyMCAxMCAxMCA4KQoJU3ltYm9sTGluZSgwIDIwIDEwIDMwIDgpCikKU3ltYm9s KCc9JyAxMikKKAoJU3ltYm9sTGluZSgwIDE1IDIwIDE1IDgpCglTeW1ib2xMaW5lKDAgMjUgMjAg MjUgOCkKKQpTeW1ib2woJz4nIDEyKQooCglTeW1ib2xMaW5lKDAgMTAgMTAgMjAgOCkKCVN5bWJv bExpbmUoMCAzMCAxMCAyMCA4KQopClN5bWJvbCgnPycgMTIpCigKCVN5bWJvbExpbmUoMTAgMjAg MTAgMjUgOCkKCVN5bWJvbExpbmUoMTAgMzUgMTAgNDAgOCkKCVN5bWJvbExpbmUoMCA1IDAgMTAg OCkKCVN5bWJvbExpbmUoMCA1IDUgMCA4KQoJU3ltYm9sTGluZSg1IDAgMTUgMCA4KQoJU3ltYm9s TGluZSgxNSAwIDIwIDUgOCkKCVN5bWJvbExpbmUoMjAgNSAyMCAxMCA4KQoJU3ltYm9sTGluZSgx MCAyMCAyMCAxMCA4KQopClN5bWJvbCgnQScgMTIpCigKCVN5bWJvbExpbmUoIDAgMTAgIDAgNDAg OCkKCVN5bWJvbExpbmUoIDAgMTAgIDcgIDAgOCkKCVN5bWJvbExpbmUoIDcgIDAgMTggIDAgOCkK CVN5bWJvbExpbmUoMTggIDAgMjUgMTAgOCkKCVN5bWJvbExpbmUoMjUgMTAgMjUgNDAgOCkKCVN5 bWJvbExpbmUoIDAgMjAgMjUgMjAgOCkKKQpTeW1ib2woJ0InIDEyKQooCglTeW1ib2xMaW5lKCAw IDQwIDIwIDQwIDgpCglTeW1ib2xMaW5lKDIwIDQwIDI1IDM1IDgpCglTeW1ib2xMaW5lKDI1IDIz IDI1IDM1IDgpCglTeW1ib2xMaW5lKDIwIDE4IDI1IDIzIDgpCglTeW1ib2xMaW5lKCA1IDE4IDIw IDE4IDgpCglTeW1ib2xMaW5lKCA1ICAwICA1IDQwIDgpCglTeW1ib2xMaW5lKCAwICAwIDIwICAw IDgpCglTeW1ib2xMaW5lKDIwICAwIDI1ICA1IDgpCglTeW1ib2xMaW5lKDI1ICA1IDI1IDEzIDgp CglTeW1ib2xMaW5lKDIwIDE4IDI1IDEzIDgpCikKU3ltYm9sKCdDJyAxMikKKAoJU3ltYm9sTGlu ZSg3IDQwIDIwIDQwIDgpCglTeW1ib2xMaW5lKDAgMzMgIDcgNDAgOCkKCVN5bWJvbExpbmUoMCAg NyAgMCAzMyA4KQoJU3ltYm9sTGluZSgwICA3ICA3ICAwIDgpCglTeW1ib2xMaW5lKDcgIDAgMjAg IDAgOCkKKQpTeW1ib2woJ0QnIDEyKQooCglTeW1ib2xMaW5lKCA1ICAwICA1IDQwIDgpCglTeW1i b2xMaW5lKDE4ICAwIDI1ICA3IDgpCglTeW1ib2xMaW5lKDI1ICA3IDI1IDMzIDgpCglTeW1ib2xM aW5lKDE4IDQwIDI1IDMzIDgpCglTeW1ib2xMaW5lKCAwIDQwIDE4IDQwIDgpCglTeW1ib2xMaW5l KCAwICAwIDE4ICAwIDgpCikKU3ltYm9sKCdFJyAxMikKKAoJU3ltYm9sTGluZSgwIDE4IDE1IDE4 IDgpCglTeW1ib2xMaW5lKDAgNDAgMjAgNDAgOCkKCVN5bWJvbExpbmUoMCAgMCAgMCA0MCA4KQoJ U3ltYm9sTGluZSgwICAwIDIwICAwIDgpCikKU3ltYm9sKCdGJyAxMikKKAoJU3ltYm9sTGluZSgw ICAwICAwIDQwIDgpCglTeW1ib2xMaW5lKDAgIDAgMjAgIDAgOCkKCVN5bWJvbExpbmUoMCAxOCAx NSAxOCA4KQopClN5bWJvbCgnRycgMTIpCigKCVN5bWJvbExpbmUoMjAgMCAyNSA1IDgpCglTeW1i b2xMaW5lKDUgMCAyMCAwIDgpCglTeW1ib2xMaW5lKDAgNSA1IDAgOCkKCVN5bWJvbExpbmUoMCA1 IDAgMzUgOCkKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xMaW5lKDUgNDAgMjAgNDAg OCkKCVN5bWJvbExpbmUoMjAgNDAgMjUgMzUgOCkKCVN5bWJvbExpbmUoMjUgMjUgMjUgMzUgOCkK CVN5bWJvbExpbmUoMjAgMjAgMjUgMjUgOCkKCVN5bWJvbExpbmUoMTAgMjAgMjAgMjAgOCkKKQpT eW1ib2woJ0gnIDEyKQooCglTeW1ib2xMaW5lKDAgMCAwIDQwIDgpCglTeW1ib2xMaW5lKDI1IDAg MjUgNDAgOCkKCVN5bWJvbExpbmUoMCAyMCAyNSAyMCA4KQopClN5bWJvbCgnSScgMTIpCigKCVN5 bWJvbExpbmUoMCAwIDEwIDAgOCkKCVN5bWJvbExpbmUoNSAwIDUgNDAgOCkKCVN5bWJvbExpbmUo MCA0MCAxMCA0MCA4KQopClN5bWJvbCgnSicgMTIpCigKCVN5bWJvbExpbmUoIDcgIDAgMTUgIDAg OCkKCVN5bWJvbExpbmUoMTUgIDAgMTUgMzUgOCkKCVN5bWJvbExpbmUoMTAgNDAgMTUgMzUgOCkK CVN5bWJvbExpbmUoIDUgNDAgMTAgNDAgOCkKCVN5bWJvbExpbmUoIDAgMzUgIDUgNDAgOCkKCVN5 bWJvbExpbmUoIDAgMzUgIDAgMzAgOCkKKQpTeW1ib2woJ0snIDEyKQooCglTeW1ib2xMaW5lKDAg MCAwIDQwIDgpCglTeW1ib2xMaW5lKDAgMjAgMjAgMCA4KQoJU3ltYm9sTGluZSgwIDIwIDIwIDQw IDgpCikKU3ltYm9sKCdMJyAxMikKKAoJU3ltYm9sTGluZSgwIDAgMCA0MCA4KQoJU3ltYm9sTGlu ZSgwIDQwIDIwIDQwIDgpCikKU3ltYm9sKCdNJyAxMikKKAoJU3ltYm9sTGluZSgwIDAgMCA0MCA4 KQoJU3ltYm9sTGluZSgwIDAgMTUgMjAgOCkKCVN5bWJvbExpbmUoMTUgMjAgMzAgMCA4KQoJU3lt Ym9sTGluZSgzMCAwIDMwIDQwIDgpCikKU3ltYm9sKCdOJyAxMikKKAoJU3ltYm9sTGluZSgwIDAg MCA0MCA4KQoJU3ltYm9sTGluZSgwIDAgMjUgNDAgOCkKCVN5bWJvbExpbmUoMjUgMCAyNSA0MCA4 KQopClN5bWJvbCgnTycgMTIpCigKCVN5bWJvbExpbmUoMCA1IDAgMzUgOCkKCVN5bWJvbExpbmUo MCA1IDUgMCA4KQoJU3ltYm9sTGluZSg1IDAgMTUgMCA4KQoJU3ltYm9sTGluZSgxNSAwIDIwIDUg OCkKCVN5bWJvbExpbmUoMjAgNSAyMCAzNSA4KQoJU3ltYm9sTGluZSgxNSA0MCAyMCAzNSA4KQoJ U3ltYm9sTGluZSg1IDQwIDE1IDQwIDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQopClN5bWJv bCgnUCcgMTIpCigKCVN5bWJvbExpbmUoNSAwIDUgNDAgOCkKCVN5bWJvbExpbmUoMCAwIDIwIDAg OCkKCVN5bWJvbExpbmUoMjAgMCAyNSA1IDgpCglTeW1ib2xMaW5lKDI1IDUgMjUgMTUgOCkKCVN5 bWJvbExpbmUoMjAgMjAgMjUgMTUgOCkKCVN5bWJvbExpbmUoNSAyMCAyMCAyMCA4KQopClN5bWJv bCgnUScgMTIpCigKCVN5bWJvbExpbmUoIDAgIDUgIDAgMzUgOCkKCVN5bWJvbExpbmUoIDAgIDUg IDUgIDAgOCkKCVN5bWJvbExpbmUoIDUgIDAgMTUgIDAgOCkKCVN5bWJvbExpbmUoMTUgIDAgMjAg IDUgOCkKCVN5bWJvbExpbmUoMjAgIDUgMjAgMzAgOCkKCVN5bWJvbExpbmUoMTAgNDAgMjAgMzAg OCkKCVN5bWJvbExpbmUoIDUgNDAgMTAgNDAgOCkKCVN5bWJvbExpbmUoIDAgMzUgIDUgNDAgOCkK CVN5bWJvbExpbmUoMTAgMjUgMjAgNDAgOCkKKQpTeW1ib2woJ1InIDEyKQooCglTeW1ib2xMaW5l KCAwICAwIDIwICAwIDgpCglTeW1ib2xMaW5lKDIwICAwIDI1ICA1IDgpCglTeW1ib2xMaW5lKDI1 ICA1IDI1IDE1IDgpCglTeW1ib2xMaW5lKDIwIDIwIDI1IDE1IDgpCglTeW1ib2xMaW5lKCA1IDIw IDIwIDIwIDgpCglTeW1ib2xMaW5lKCA1ICAwICA1IDQwIDgpCglTeW1ib2xMaW5lKDEzIDIwIDI1 IDQwIDgpCikKU3ltYm9sKCdTJyAxMikKKAoJU3ltYm9sTGluZSgyMCAwIDI1IDUgOCkKCVN5bWJv bExpbmUoNSAwIDIwIDAgOCkKCVN5bWJvbExpbmUoMCA1IDUgMCA4KQoJU3ltYm9sTGluZSgwIDUg MCAxNSA4KQoJU3ltYm9sTGluZSgwIDE1IDUgMjAgOCkKCVN5bWJvbExpbmUoNSAyMCAyMCAyMCA4 KQoJU3ltYm9sTGluZSgyMCAyMCAyNSAyNSA4KQoJU3ltYm9sTGluZSgyNSAyNSAyNSAzNSA4KQoJ U3ltYm9sTGluZSgyMCA0MCAyNSAzNSA4KQoJU3ltYm9sTGluZSg1IDQwIDIwIDQwIDgpCglTeW1i b2xMaW5lKDAgMzUgNSA0MCA4KQopClN5bWJvbCgnVCcgMTIpCigKCVN5bWJvbExpbmUoMCAwIDIw IDAgOCkKCVN5bWJvbExpbmUoMTAgMCAxMCA0MCA4KQopClN5bWJvbCgnVScgMTIpCigKCVN5bWJv bExpbmUoMCAwIDAgMzUgOCkKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xMaW5lKDUg NDAgMTUgNDAgOCkKCVN5bWJvbExpbmUoMTUgNDAgMjAgMzUgOCkKCVN5bWJvbExpbmUoMjAgMCAy MCAzNSA4KQopClN5bWJvbCgnVicgMTIpCigKCVN5bWJvbExpbmUoIDAgIDAgMTAgNDAgOCkKCVN5 bWJvbExpbmUoMTAgNDAgMjAgIDAgOCkKKQpTeW1ib2woJ1cnIDEyKQooCglTeW1ib2xMaW5lKCAw ICAwICAwIDIwIDgpCglTeW1ib2xMaW5lKCAwIDIwICA1IDQwIDgpCglTeW1ib2xMaW5lKCA1IDQw IDE1IDIwIDgpCglTeW1ib2xMaW5lKDE1IDIwIDI1IDQwIDgpCglTeW1ib2xMaW5lKDI1IDQwIDMw IDIwIDgpCglTeW1ib2xMaW5lKDMwIDIwIDMwICAwIDgpCikKU3ltYm9sKCdYJyAxMikKKAoJU3lt Ym9sTGluZSggMCA0MCAyNSAgMCA4KQoJU3ltYm9sTGluZSggMCAgMCAyNSA0MCA4KQopClN5bWJv bCgnWScgMTIpCigKCVN5bWJvbExpbmUoIDAgIDAgMTAgMjAgOCkKCVN5bWJvbExpbmUoMTAgMjAg MjAgIDAgOCkKCVN5bWJvbExpbmUoMTAgMjAgMTAgNDAgOCkKKQpTeW1ib2woJ1onIDEyKQooCglT eW1ib2xMaW5lKCAwICAwIDI1ICAwIDgpCglTeW1ib2xMaW5lKCAwIDQwIDI1ICAwIDgpCglTeW1i b2xMaW5lKCAwIDQwIDI1IDQwIDgpCikKU3ltYm9sKCdbJyAxMikKKAoJU3ltYm9sTGluZSgwIDAg NSAwIDgpCglTeW1ib2xMaW5lKDAgMCAwIDQwIDgpCglTeW1ib2xMaW5lKDAgNDAgNSA0MCA4KQop ClN5bWJvbCgnXCcgMTIpCigKCVN5bWJvbExpbmUoMCA1IDMwIDM1IDgpCikKU3ltYm9sKCddJyAx MikKKAoJU3ltYm9sTGluZSgwIDAgNSAwIDgpCglTeW1ib2xMaW5lKDUgMCA1IDQwIDgpCglTeW1i b2xMaW5lKDAgNDAgNSA0MCA4KQopClN5bWJvbCgnXicgMTIpCigKCVN5bWJvbExpbmUoMCA1IDUg MCA4KQoJU3ltYm9sTGluZSg1IDAgMTAgNSA4KQopClN5bWJvbCgnXycgMTIpCigKCVN5bWJvbExp bmUoMCA0MCAyMCA0MCA4KQopClN5bWJvbCgnYScgMTIpCigKCVN5bWJvbExpbmUoMTUgMjAgMjAg MjUgOCkKCVN5bWJvbExpbmUoNSAyMCAxNSAyMCA4KQoJU3ltYm9sTGluZSgwIDI1IDUgMjAgOCkK CVN5bWJvbExpbmUoMCAyNSAwIDM1IDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQoJU3ltYm9s TGluZSgyMCAyMCAyMCAzNSA4KQoJU3ltYm9sTGluZSgyMCAzNSAyNSA0MCA4KQoJU3ltYm9sTGlu ZSg1IDQwIDE1IDQwIDgpCglTeW1ib2xMaW5lKDE1IDQwIDIwIDM1IDgpCikKU3ltYm9sKCdiJyAx MikKKAoJU3ltYm9sTGluZSgwIDAgMCA0MCA4KQoJU3ltYm9sTGluZSgwIDM1IDUgNDAgOCkKCVN5 bWJvbExpbmUoNSA0MCAxNSA0MCA4KQoJU3ltYm9sTGluZSgxNSA0MCAyMCAzNSA4KQoJU3ltYm9s TGluZSgyMCAyNSAyMCAzNSA4KQoJU3ltYm9sTGluZSgxNSAyMCAyMCAyNSA4KQoJU3ltYm9sTGlu ZSg1IDIwIDE1IDIwIDgpCglTeW1ib2xMaW5lKDAgMjUgNSAyMCA4KQopClN5bWJvbCgnYycgMTIp CigKCVN5bWJvbExpbmUoNSAyMCAyMCAyMCA4KQoJU3ltYm9sTGluZSgwIDI1IDUgMjAgOCkKCVN5 bWJvbExpbmUoMCAyNSAwIDM1IDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQoJU3ltYm9sTGlu ZSg1IDQwIDIwIDQwIDgpCikKU3ltYm9sKCdkJyAxMikKKAoJU3ltYm9sTGluZSgyMCAwIDIwIDQw IDgpCglTeW1ib2xMaW5lKDE1IDQwIDIwIDM1IDgpCglTeW1ib2xMaW5lKDUgNDAgMTUgNDAgOCkK CVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xMaW5lKDAgMjUgMCAzNSA4KQoJU3ltYm9s TGluZSgwIDI1IDUgMjAgOCkKCVN5bWJvbExpbmUoNSAyMCAxNSAyMCA4KQoJU3ltYm9sTGluZSgx NSAyMCAyMCAyNSA4KQopClN5bWJvbCgnZScgMTIpCigKCVN5bWJvbExpbmUoNSA0MCAyMCA0MCA4 KQoJU3ltYm9sTGluZSgwIDM1IDUgNDAgOCkKCVN5bWJvbExpbmUoMCAyNSAwIDM1IDgpCglTeW1i b2xMaW5lKDAgMjUgNSAyMCA4KQoJU3ltYm9sTGluZSg1IDIwIDE1IDIwIDgpCglTeW1ib2xMaW5l KDE1IDIwIDIwIDI1IDgpCglTeW1ib2xMaW5lKDAgMzAgMjAgMzAgOCkKCVN5bWJvbExpbmUoMjAg MzAgMjAgMjUgOCkKKQpTeW1ib2woJ2YnIDEwKQooCglTeW1ib2xMaW5lKDUgNSA1IDQwIDgpCglT eW1ib2xMaW5lKDUgNSAxMCAwIDgpCglTeW1ib2xMaW5lKDEwIDAgMTUgMCA4KQoJU3ltYm9sTGlu ZSgwIDIwIDEwIDIwIDgpCikKU3ltYm9sKCdnJyAxMikKKAoJU3ltYm9sTGluZSgxNSAyMCAyMCAy NSA4KQoJU3ltYm9sTGluZSg1IDIwIDE1IDIwIDgpCglTeW1ib2xMaW5lKDAgMjUgNSAyMCA4KQoJ U3ltYm9sTGluZSgwIDI1IDAgMzUgOCkKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xM aW5lKDUgNDAgMTUgNDAgOCkKCVN5bWJvbExpbmUoMTUgNDAgMjAgMzUgOCkKCVN5bWJvbExpbmUo MCA1MCA1IDU1IDgpCglTeW1ib2xMaW5lKDUgNTUgMTUgNTUgOCkKCVN5bWJvbExpbmUoMTUgNTUg MjAgNTAgOCkKCVN5bWJvbExpbmUoMjAgMjAgMjAgNTAgOCkKKQpTeW1ib2woJ2gnIDEyKQooCglT eW1ib2xMaW5lKDAgMCAwIDQwIDgpCglTeW1ib2xMaW5lKDAgMjUgNSAyMCA4KQoJU3ltYm9sTGlu ZSg1IDIwIDE1IDIwIDgpCglTeW1ib2xMaW5lKDE1IDIwIDIwIDI1IDgpCglTeW1ib2xMaW5lKDIw IDI1IDIwIDQwIDgpCikKU3ltYm9sKCdpJyAxMCkKKAoJU3ltYm9sTGluZSgwIDEwIDAgMTEgMTAp CglTeW1ib2xMaW5lKDAgMjUgMCA0MCA4KQopClN5bWJvbCgnaicgMTApCigKCVN5bWJvbExpbmUo NSAxMCA1IDExIDEwKQoJU3ltYm9sTGluZSg1IDI1IDUgNTAgOCkKCVN5bWJvbExpbmUoMCA1NSA1 IDUwIDgpCikKU3ltYm9sKCdrJyAxMikKKAoJU3ltYm9sTGluZSgwIDAgMCA0MCA4KQoJU3ltYm9s TGluZSgwIDI1IDE1IDQwIDgpCglTeW1ib2xMaW5lKDAgMjUgMTAgMTUgOCkKKQpTeW1ib2woJ2wn IDEwKQooCglTeW1ib2xMaW5lKDAgMCAwIDM1IDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQop ClN5bWJvbCgnbScgMTIpCigKCVN5bWJvbExpbmUoNSAyNSA1IDQwIDgpCglTeW1ib2xMaW5lKDUg MjUgMTAgMjAgOCkKCVN5bWJvbExpbmUoMTAgMjAgMTUgMjAgOCkKCVN5bWJvbExpbmUoMTUgMjAg MjAgMjUgOCkKCVN5bWJvbExpbmUoMjAgMjUgMjAgNDAgOCkKCVN5bWJvbExpbmUoMjAgMjUgMjUg MjAgOCkKCVN5bWJvbExpbmUoMjUgMjAgMzAgMjAgOCkKCVN5bWJvbExpbmUoMzAgMjAgMzUgMjUg OCkKCVN5bWJvbExpbmUoMzUgMjUgMzUgNDAgOCkKCVN5bWJvbExpbmUoMCAyMCA1IDI1IDgpCikK U3ltYm9sKCduJyAxMikKKAoJU3ltYm9sTGluZSg1IDI1IDUgNDAgOCkKCVN5bWJvbExpbmUoNSAy NSAxMCAyMCA4KQoJU3ltYm9sTGluZSgxMCAyMCAxNSAyMCA4KQoJU3ltYm9sTGluZSgxNSAyMCAy MCAyNSA4KQoJU3ltYm9sTGluZSgyMCAyNSAyMCA0MCA4KQoJU3ltYm9sTGluZSgwIDIwIDUgMjUg OCkKKQpTeW1ib2woJ28nIDEyKQooCglTeW1ib2xMaW5lKDAgMjUgMCAzNSA4KQoJU3ltYm9sTGlu ZSgwIDI1IDUgMjAgOCkKCVN5bWJvbExpbmUoNSAyMCAxNSAyMCA4KQoJU3ltYm9sTGluZSgxNSAy MCAyMCAyNSA4KQoJU3ltYm9sTGluZSgyMCAyNSAyMCAzNSA4KQoJU3ltYm9sTGluZSgxNSA0MCAy MCAzNSA4KQoJU3ltYm9sTGluZSg1IDQwIDE1IDQwIDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4 KQopClN5bWJvbCgncCcgMTIpCigKCVN5bWJvbExpbmUoNSAyNSA1IDU1IDgpCglTeW1ib2xMaW5l KDAgMjAgNSAyNSA4KQoJU3ltYm9sTGluZSg1IDI1IDEwIDIwIDgpCglTeW1ib2xMaW5lKDEwIDIw IDIwIDIwIDgpCglTeW1ib2xMaW5lKDIwIDIwIDI1IDI1IDgpCglTeW1ib2xMaW5lKDI1IDI1IDI1 IDM1IDgpCglTeW1ib2xMaW5lKDIwIDQwIDI1IDM1IDgpCglTeW1ib2xMaW5lKDEwIDQwIDIwIDQw IDgpCglTeW1ib2xMaW5lKDUgMzUgMTAgNDAgOCkKKQpTeW1ib2woJ3EnIDEyKQooCglTeW1ib2xM aW5lKDIwIDI1IDIwIDU1IDgpCglTeW1ib2xMaW5lKDE1IDIwIDIwIDI1IDgpCglTeW1ib2xMaW5l KDUgMjAgMTUgMjAgOCkKCVN5bWJvbExpbmUoMCAyNSA1IDIwIDgpCglTeW1ib2xMaW5lKDAgMjUg MCAzNSA4KQoJU3ltYm9sTGluZSgwIDM1IDUgNDAgOCkKCVN5bWJvbExpbmUoNSA0MCAxNSA0MCA4 KQoJU3ltYm9sTGluZSgxNSA0MCAyMCAzNSA4KQopClN5bWJvbCgncicgMTIpCigKCVN5bWJvbExp bmUoNSAyNSA1IDQwIDgpCglTeW1ib2xMaW5lKDUgMjUgMTAgMjAgOCkKCVN5bWJvbExpbmUoMTAg MjAgMjAgMjAgOCkKCVN5bWJvbExpbmUoMCAyMCA1IDI1IDgpCikKU3ltYm9sKCdzJyAxMikKKAoJ U3ltYm9sTGluZSg1IDQwIDIwIDQwIDgpCglTeW1ib2xMaW5lKDIwIDQwIDI1IDM1IDgpCglTeW1i b2xMaW5lKDIwIDMwIDI1IDM1IDgpCglTeW1ib2xMaW5lKDUgMzAgMjAgMzAgOCkKCVN5bWJvbExp bmUoMCAyNSA1IDMwIDgpCglTeW1ib2xMaW5lKDAgMjUgNSAyMCA4KQoJU3ltYm9sTGluZSg1IDIw IDIwIDIwIDgpCglTeW1ib2xMaW5lKDIwIDIwIDI1IDI1IDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0 MCA4KQopClN5bWJvbCgndCcgMTApCigKCVN5bWJvbExpbmUoNSAwIDUgMzUgOCkKCVN5bWJvbExp bmUoNSAzNSAxMCA0MCA4KQoJU3ltYm9sTGluZSgwIDE1IDEwIDE1IDgpCikKU3ltYm9sKCd1JyAx MikKKAoJU3ltYm9sTGluZSgwIDIwIDAgMzUgOCkKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglT eW1ib2xMaW5lKDUgNDAgMTUgNDAgOCkKCVN5bWJvbExpbmUoMTUgNDAgMjAgMzUgOCkKCVN5bWJv bExpbmUoMjAgMjAgMjAgMzUgOCkKKQpTeW1ib2woJ3YnIDEyKQooCglTeW1ib2xMaW5lKCAwIDIw IDEwIDQwIDgpCglTeW1ib2xMaW5lKDIwIDIwIDEwIDQwIDgpCikKU3ltYm9sKCd3JyAxMikKKAoJ U3ltYm9sTGluZSgwIDIwIDAgMzUgOCkKCVN5bWJvbExpbmUoMCAzNSA1IDQwIDgpCglTeW1ib2xM aW5lKDUgNDAgMTAgNDAgOCkKCVN5bWJvbExpbmUoMTAgNDAgMTUgMzUgOCkKCVN5bWJvbExpbmUo MTUgMjAgMTUgMzUgOCkKCVN5bWJvbExpbmUoMTUgMzUgMjAgNDAgOCkKCVN5bWJvbExpbmUoMjAg NDAgMjUgNDAgOCkKCVN5bWJvbExpbmUoMjUgNDAgMzAgMzUgOCkKCVN5bWJvbExpbmUoMzAgMjAg MzAgMzUgOCkKKQpTeW1ib2woJ3gnIDEyKQooCglTeW1ib2xMaW5lKDAgMjAgMjAgNDAgOCkKCVN5 bWJvbExpbmUoMCA0MCAyMCAyMCA4KQopClN5bWJvbCgneScgMTIpCigKCVN5bWJvbExpbmUoMCAy MCAwIDM1IDgpCglTeW1ib2xMaW5lKDAgMzUgNSA0MCA4KQoJU3ltYm9sTGluZSgyMCAyMCAyMCA1 MCA4KQoJU3ltYm9sTGluZSgxNSA1NSAyMCA1MCA4KQoJU3ltYm9sTGluZSg1IDU1IDE1IDU1IDgp CglTeW1ib2xMaW5lKDAgNTAgNSA1NSA4KQoJU3ltYm9sTGluZSg1IDQwIDE1IDQwIDgpCglTeW1i b2xMaW5lKDE1IDQwIDIwIDM1IDgpCikKU3ltYm9sKCd6JyAxMikKKAoJU3ltYm9sTGluZSgwIDIw IDIwIDIwIDgpCglTeW1ib2xMaW5lKDAgNDAgMjAgMjAgOCkKCVN5bWJvbExpbmUoMCA0MCAyMCA0 MCA4KQopClN5bWJvbCgneycgMTIpCigKCVN5bWJvbExpbmUoNSA1IDEwIDAgOCkKCVN5bWJvbExp bmUoNSA1IDUgMTUgOCkKCVN5bWJvbExpbmUoMCAyMCA1IDE1IDgpCglTeW1ib2xMaW5lKDAgMjAg NSAyNSA4KQoJU3ltYm9sTGluZSg1IDI1IDUgMzUgOCkKCVN5bWJvbExpbmUoNSAzNSAxMCA0MCA4 KQopClN5bWJvbCgnfCcgMTIpCigKCVN5bWJvbExpbmUoMCAwIDAgNDAgOCkKKQpTeW1ib2woJ30n IDEyKQooCglTeW1ib2xMaW5lKDAgMCA1IDUgOCkKCVN5bWJvbExpbmUoNSA1IDUgMTUgOCkKCVN5 bWJvbExpbmUoNSAxNSAxMCAyMCA4KQoJU3ltYm9sTGluZSg1IDI1IDEwIDIwIDgpCglTeW1ib2xM aW5lKDUgMjUgNSAzNSA4KQoJU3ltYm9sTGluZSgwIDQwIDUgMzUgOCkKKQpTeW1ib2woJ34nIDEy KQooCglTeW1ib2xMaW5lKDAgMjUgNSAyMCA4KQoJU3ltYm9sTGluZSg1IDIwIDEwIDIwIDgpCglT eW1ib2xMaW5lKDEwIDIwIDE1IDI1IDgpCglTeW1ib2xMaW5lKDE1IDI1IDIwIDI1IDgpCglTeW1i b2xMaW5lKDIwIDI1IDI1IDIwIDgpCikKU3ltYm9sKCdAJyAxMikKKCAKCVN5bWJvbExpbmUoMCAw IDAgMzAgOCkKCVN5bWJvbExpbmUoMCAzMCAxMCA0MCA4KQoJU3ltYm9sTGluZSgxMCA0MCA0MCA0 MCA4KQoJU3ltYm9sTGluZSg1MCAyNSA1MCAwIDgpCglTeW1ib2xMaW5lKDUwIDAgNDAgLTEwIDgp CglTeW1ib2xMaW5lKDQwIC0xMCAxMCAtMTAgOCkKCVN5bWJvbExpbmUoMTAgLTEwIDAgMCA4KQoJ U3ltYm9sTGluZSgxNSAxMCAxNSAyMCA4KQoJU3ltYm9sTGluZSgxNSAyMCAyMCAyNSA4KQoJU3lt Ym9sTGluZSgyMCAyNSAzMCAyNSA4KQoJU3ltYm9sTGluZSgzMCAyNSAzNSAyMCA4KQoJU3ltYm9s TGluZSgzNSAyMCA0MCAyNSA4KQoJU3ltYm9sTGluZSgzNSAyMCAzNSA1IDgpCglTeW1ib2xMaW5l KDM1IDEwIDMwIDUgOCkKCVN5bWJvbExpbmUoMjAgNSAzMCA1IDgpCglTeW1ib2xMaW5lKDIwIDUg MTUgMTAgOCkKCVN5bWJvbExpbmUoNDAgMjUgNTAgMjUgOCkKKQo= --089e01184990fbd38f04f8c842d4--