From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-it0-f42.google.com ([209.85.214.42]) by ur; Thu Sep 1 19:19:47 EDT 2016 Received: by mail-it0-f42.google.com with SMTP id e124so8673165ith.0 for <9front@9front.org>; Thu, 01 Sep 2016 16:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to; bh=Sl4/Evi5KKE+t202lFYx4IdKv5rxd/6wKF9GVkTalsU=; b=to5Ec/OfXURZC/DRgi8c+xU84j4/VMUkJ6nW30jgOrpWaKVK3vB3ptN5MyXcRus/f1 GmbW1c9N6K+GoFjiHEgdu69jhWRYEq40kWFFg9Gt1plE7IRsVWQNEsvdKW7XzqugX0gW ie7qzGwrxdTcxbcD/8TC3x1EocdRlvRS+ZMyp0ctQRFLYCmlOQV4o8NnRkxhvwIJC4PJ X4200Lzcw5AIE2y1B4/EmfyhNy0Sf4abSrAcPGeYZfEd2mKtzpqEqWN1FaVP/h/3eukl hugrnWqkd3iILAKseGyh2qRsupgFs4LvDDO5wHXfCdVgaNCyOUvMHz5kfHCp8MZgkQcV 6SYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=Sl4/Evi5KKE+t202lFYx4IdKv5rxd/6wKF9GVkTalsU=; b=WFAUJRH+MwyOB/mqJT3CJYeTFAeLAYgRsJe2YlCzcQbzMVuWNxJa0+Fzq/iOTxFqlO XGidr/564m5niNOj7ku6KX1W0wCrX05/nIr4gxJHTKd2FllFtbEO4F4Jo33mOeLKpDeA O1TQCxZyLQPZhQFQ+ZM4KqA/PvQeEI1dEmdoF7YMbxJAR6Hhxe9l4kQvTtZLbWsajOJK OysXvXYeTQ4w5gi1SC4knhw6lZflVd8S0WIXJNCVszNFWDDeHcsWMUHomyolxnCZboav XfOLc+ssXe+KpkJw7k4tl5Cj6XUMXJ4iMXRTXa3k5R3uZ/kKcW8EZ2Sb9NyFStPhKcJv FhFg== X-Gm-Message-State: AE9vXwOUBk112z4JveoXXQXI3iEcjWhjxLp4R25dYjehRk4sHqZsWT4LwNbV2GaLw93lIoZ5cTyRuEmluk+H5w== X-Received: by 10.36.254.74 with SMTP id w71mr151291ith.1.1472771984998; Thu, 01 Sep 2016 16:19:44 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.34.71 with HTTP; Thu, 1 Sep 2016 16:19:44 -0700 (PDT) From: Matthew Veety Date: Thu, 1 Sep 2016 19:19:44 -0400 Message-ID: Subject: Acme Fixes and Changes To: "9front@9front.org" <9front@9front.org> Content-Type: multipart/mixed; boundary=94eb2c03088e0072d1053b7a73eb List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: basic open-source HTML over SOAP NoSQL general-purpose-based solution --94eb2c03088e0072d1053b7a73eb Content-Type: text/plain; charset=UTF-8 I made some changes to acme and am wondering if you guys want this committed. The changes I made are: Made brackets work as per the documentation acme -l loads a default dumpfile without arguments Dump dumps to a default dumpfile Moved function defs from dat.h to fns.h Made manpages have functionality similar to /guide files (ie you can't put them) Updated the manpage. I've been using these changes for a few months, so they should work well. Go raibh maith agat! -- Veety --94eb2c03088e0072d1053b7a73eb Content-Type: application/octet-stream; name="acme-changes.patch" Content-Disposition: attachment; filename="acme-changes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_isky4rv50 ZGlmZiAtciA1ZDA2ODYyZjliMjEgc3lzL21hbi8xL2FjbWUKLS0tIGEvc3lzL21hbi8xL2FjbWUJ VGh1IFNlcCAwMSAxMTo0Njo0NCAyMDE2ICswMDAwCisrKyBiL3N5cy9tYW4vMS9hY21lCVRodSBT ZXAgMDEgMTk6MDc6NTkgMjAxNiAtMDQwMApAQCAtMSw2ICsxLDYgQEAKIC5USCBBQ01FIDEKIC5T SCBOQU1FCi1hY21lLCB3aW4gXC0gaW50ZXJhY3RpdmUgdGV4dCB3aW5kb3dzCithY21lLCB3aW4s IGF3ZCBcLSBpbnRlcmFjdGl2ZSB0ZXh0IHdpbmRvd3MKIC5TSCBTWU5PUFNJUwogLkIgYWNtZQog WwpAQCAtMjAsNyArMjAsNyBAQAogXQogWwogLkIgLWwKLS5JIGxvYWRmaWxlCisuSSBbbG9hZGZp bGVdCiB8CiAuSSBmaWxlCiBcJi4uLiBdCkBAIC0yOSw2ICsyOSwxMSBAQAogWwogLkkgY29tbWFu ZAogXQorLkxQCisuQiBhd2QKK1sKKy5JIGxhYmVsCitdCiAuU0ggREVTQ1JJUFRJT04KIC5JIEFj bWUKIG1hbmFnZXMgd2luZG93cyBvZiB0ZXh0IHRoYXQgbWF5IGJlIGVkaXRlZCBpbnRlcmFjdGl2 ZWx5IG9yIGJ5IGV4dGVybmFsIHByb2dyYW1zLgpAQCAtNDksOCArNTQsMTAgQEAKIC5CIC1sCiBv cHRpb24sIHRoZSBzdGF0ZSBvZiB0aGUgZW50aXJlIHN5c3RlbSBpcyBsb2FkZWQKIGZyb20KLS5J UiBsb2FkZmlsZSAsCi13aGljaCBzaG91bGQgaGF2ZSBiZWVuIGNyZWF0ZWQgYnkgYQorLkkgbG9h ZGZpbGUgCitvciAKKy5CICRob21lL2xpYi9hY21lLiRzeXNuYW1lLmR1bXAKK2lmIG5vIGxvYWRm aWxlIGlzIHNwZWNpZmllZCwgd2hpY2ggc2hvdWxkIGhhdmUgYmVlbiBjcmVhdGVkIGJ5IGEKIC5C IER1bXAKIGNvbW1hbmQgKHEudi4pLAogYW5kIHN1YnNlcXVlbnQKQEAgLTY2LDggKzczLDEyIEBA CiAuUkIgKCAtRiApCiBvcHRpb24gc2V0cyB0aGUgbWFpbiBmb250LCB1c3VhbGx5IHZhcmlhYmxl LXBpdGNoIChhbHRlcm5hdGUsIHVzdWFsbHkgZml4ZWQtcGl0Y2gpOwogdGhlIGRlZmF1bHQgaXMK Ky5CICRmb250Cisob3IsIGlmCisuQiAkZm9udAoraXMgbm90IHNldAogLkIgL2xpYi9mb250L2Jp dC9sdWNpZGFzYW5zL2V1cm8uOC5mb250Ci0uUkIgKCBcJi4uLi9sdWNtL3VuaWNvZGUuOS5mb250 ICkuCisuUkIgKCBcJi4uLi9sdWNtL3VuaWNvZGUuOS5mb250ICkpLgogVGFiIGludGVydmFscyBh cmUgc2V0IHRvIHRoZSB3aWR0aCBvZiA0IChvciB0aGUgdmFsdWUgb2YKIC5CUiAkdGFic3RvcCAp CiBudW1lcmFsIHplcm9zIGluIHRoZSBhcHByb3ByaWF0ZSBmb250LgpAQCAtNjE5LDYgKzYzMCwy MSBAQAogd2luZG93IHdpdGggYnV0dG9uCiAyIGlzIHNpbWlsYXIgdG8gdXNpbmcKIC5CUiBTZW5k IC4KKy5QUAorLkkgQXdkCitsb2FkcyB0aGUgdGFnIGxpbmUgb2YgaXRzIHdpbmRvdyB3aXRoIHRo ZSBkaXJlY3RvcnkgaW4gd2hpY2ggaXQncyBydW5uaW5nLCBzdWZmaXhlZAorLkJJIC0gbGFiZWwK KyhkZWZhdWx0CisuQlIgcmMgKTsKK2l0IGlzCitpbnRlbmRlZCB0byBiZSBleGVjdXRlZCBieSBh CisuQiBjZAorZnVuY3Rpb24gZm9yIHVzZSBpbgorLkkgd2luCit3aW5kb3dzLiAgQW4gZXhhbXBs ZSBkZWZpbml0aW9uIGlzCisuRVgKKwlmbiBjZCB7IGJ1aWx0aW4gY2QgJDEgJiYgYXdkICRzeXNu YW1lIH0KKy5FRQogLlNTICJBcHBsaWNhdGlvbnMgYW5kIGd1aWRlIGZpbGVzCiBJbiB0aGUgZGly ZWN0b3J5CiAuQiAvYWNtZQpAQCAtNjU3LDYgKzY4Myw4IEBACiAuSVIgYWNtZSAtc3BlY2lmaWMK IHByb2dyYW1zIHN1Y2ggYXMKIC5JIHdpbgorYW5kCisuSSBhd2QKIHJlc2lkZS4KIC5TSCBGSUxF UwogLlRGICRob21lL2FjbWUuZHVtcApAQCAtNjg1LDYgKzcxMyw4IEBACiAuQiAvc3lzL3NyYy9j bWQvYWNtZQogLmJyCiAuQiAvYWNtZS9iaW4vc291cmNlL3dpbgorLmJyCisuQiAvc3lzL3NyYy9j bWQvYXdkLmMKIC5TSCBTRUUgQUxTTwogLklSIGFjbWUgKDQpCiAuYnIKZGlmZiAtciA1ZDA2ODYy ZjliMjEgc3lzL3NyYy9jbWQvYWNtZS9hY21lLmMKLS0tIGEvc3lzL3NyYy9jbWQvYWNtZS9hY21l LmMJVGh1IFNlcCAwMSAxMTo0Njo0NCAyMDE2ICswMDAwCisrKyBiL3N5cy9zcmMvY21kL2FjbWUv YWNtZS5jCVRodSBTZXAgMDEgMTk6MDc6NTkgMjAxNiAtMDQwMApAQCAtNTIsNyArNTIsNyBAQAog dm9pZAogdGhyZWFkbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogewotCWludCBpOworCWlu dCBpLCBub2xvYWQ7CiAJY2hhciAqcCwgKmxvYWRmaWxlOwogCWNoYXIgYnVmWzI1Nl07CiAJQ29s dW1uICpjOwpAQCAtNjUsNiArNjUsNyBAQAogCW5jb2wgPSAtMTsKIAogCWxvYWRmaWxlID0gbmls OworCW5vbG9hZCA9IDE7CiAJQVJHQkVHSU57CiAJY2FzZSAnYSc6CiAJCWdsb2JhbGF1dG9pbmRl bnQgPSBUUlVFOwpAQCAtOTIsMTIgKzkzLDExIEBACiAJCWJyZWFrOwogCWNhc2UgJ2wnOgogCQls b2FkZmlsZSA9IEFSR0YoKTsKLQkJaWYobG9hZGZpbGUgPT0gbmlsKQotCQkJZ290byBVc2FnZTsK KwkJbm9sb2FkID0gMDsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAlVc2FnZToKLQkJZnByaW50KDIs ICJ1c2FnZTogYWNtZSBbLWFiXSBbLWMgbmNvbF0gWy1mIGZvbnRdIFstRiBmaXhlZGZvbnRdIFst bCBsb2FkZmlsZSB8IGZpbGUuLi5dXG4iKTsKKwkJZnByaW50KDIsICJ1c2FnZTogYWNtZSBbLWFi TF0gWy1jIG5jb2xdIFstZiBmb250XSBbLUYgZml4ZWRmb250XSBbLWwgbG9hZGZpbGUgfCBmaWxl Li4uXVxuIik7CiAJCWV4aXRzKCJ1c2FnZSIpOwogCX1BUkdFTkQKIApAQCAtMTE5LDYgKzExOSwx NCBAQAogCW9ianR5cGUgPSBnZXRlbnYoIm9ianR5cGUiKTsKIAlob21lID0gZ2V0ZW52KCJob21l Iik7CiAJcCA9IGdldGVudigidGFic3RvcCIpOworCWlmKCFub2xvYWQpCisJaWYobG9hZGZpbGUg PT0gbmlsKXsKKwkJbG9hZGZpbGUgPSBzbXByaW50KCIlcy9saWIvYWNtZS4lcy5kdW1wIiwgaG9t ZSwgc3lzbmFtZSgpKTsKKwkJaWYoYWNjZXNzKGxvYWRmaWxlLCBBRVhJU1QpKXsKKwkJCWZyZWUo bG9hZGZpbGUpOworCQkJbG9hZGZpbGUgPSBuaWw7CisJCX0KKwl9CiAJaWYocCAhPSBuaWwpewog CQltYXh0YWIgPSBzdHJ0b3VsKHAsIG5pbCwgMCk7CiAJCWZyZWUocCk7CmRpZmYgLXIgNWQwNjg2 MmY5YjIxIHN5cy9zcmMvY21kL2FjbWUvYnVmZi5jCi0tLSBhL3N5cy9zcmMvY21kL2FjbWUvYnVm Zi5jCVRodSBTZXAgMDEgMTE6NDY6NDQgMjAxNiArMDAwMAorKysgYi9zeXMvc3JjL2NtZC9hY21l L2J1ZmYuYwlUaHUgU2VwIDAxIDE5OjA3OjU5IDIwMTYgLTA0MDAKQEAgLTI3NiwxMyArMjc2LDEz IEBACiAJcmV0dXJuIGxvYWRmaWxlKGZkLCBxMCwgbnVsbHMsIGJ1ZmxvYWRlciwgYik7CiB9CiAK LXZvaWQKK2ludAogYnVmcmVhZChCdWZmZXIgKmIsIHVpbnQgcTAsIFJ1bmUgKnMsIHVpbnQgbikK IHsKIAl1aW50IG07CiAKIAlpZighKHEwPD1iLT5uYyAmJiBxMCtuPD1iLT5uYykpCi0JCWVycm9y KCJidWZyZWFkOiBpbnRlcm5hbCBlcnJvciIpOworCQlyZXR1cm4gLTE7CiAKIAl3aGlsZShuID4g MCl7CiAJCXNldGNhY2hlKGIsIHEwKTsKQEAgLTI5Miw2ICsyOTIsNyBAQAogCQlzICs9IG07CiAJ CW4gLT0gbTsKIAl9CisJcmV0dXJuIDA7CiB9CiAKIHZvaWQKZGlmZiAtciA1ZDA2ODYyZjliMjEg c3lzL3NyYy9jbWQvYWNtZS9kYXQuaAotLS0gYS9zeXMvc3JjL2NtZC9hY21lL2RhdC5oCVRodSBT ZXAgMDEgMTE6NDY6NDQgMjAxNiArMDAwMAorKysgYi9zeXMvc3JjL2NtZC9hY21lL2RhdC5oCVRo dSBTZXAgMDEgMTk6MDc6NTkgMjAxNiAtMDQwMApAQCAtODMsMTIgKzgzLDYgQEAKIAlCbG9jawkq ZnJlZVtNYXhibG9jay9CbG9ja2luY3IrMV07CiB9OwogCi1EaXNrKglkaXNraW5pdCh2b2lkKTsK LUJsb2NrKglkaXNrbmV3YmxvY2soRGlzayosIHVpbnQpOwotdm9pZAkJZGlza3JlbGVhc2UoRGlz ayosIEJsb2NrKik7Ci12b2lkCQlkaXNrcmVhZChEaXNrKiwgQmxvY2sqLCBSdW5lKiwgdWludCk7 Ci12b2lkCQlkaXNrd3JpdGUoRGlzayosIEJsb2NrKiosIFJ1bmUqLCB1aW50KTsKLQogc3RydWN0 IEJ1ZmZlcgogewogCXVpbnQJbmM7CkBAIC0xMDEsMTIgKzk1LDYgQEAKIAlCbG9jawkqKmJsOwkJ LyogYXJyYXkgb2YgYmxvY2tzICovCiAJdWludAluYmw7CQkJLyogbnVtYmVyIG9mIGJsb2NrcyAq LwogfTsKLXZvaWQJCWJ1Zmluc2VydChCdWZmZXIqLCB1aW50LCBSdW5lKiwgdWludCk7Ci12b2lk CQlidWZkZWxldGUoQnVmZmVyKiwgdWludCwgdWludCk7Ci11aW50CQlidWZsb2FkKEJ1ZmZlcios IHVpbnQsIGludCwgaW50Kik7Ci12b2lkCQlidWZyZWFkKEJ1ZmZlciosIHVpbnQsIFJ1bmUqLCB1 aW50KTsKLXZvaWQJCWJ1ZmNsb3NlKEJ1ZmZlciopOwotdm9pZAkJYnVmcmVzZXQoQnVmZmVyKik7 CiAKIHN0cnVjdCBFbG9nCiB7CkBAIC0xMTYsMTIgKzEwNCw2IEBACiAJdWludAkJbnI7CQkvKiAj IHJ1bmVzIGluIHN0cmluZyBvciBmaWxlIG5hbWUgKi8KIAlSdW5lCQkqcjsKIH07Ci12b2lkCWVs b2d0ZXJtKEZpbGUqKTsKLXZvaWQJZWxvZ2Nsb3NlKEZpbGUqKTsKLXZvaWQJZWxvZ2luc2VydChG aWxlKiwgaW50LCBSdW5lKiwgaW50KTsKLXZvaWQJZWxvZ2RlbGV0ZShGaWxlKiwgaW50LCBpbnQp Owotdm9pZAllbG9ncmVwbGFjZShGaWxlKiwgaW50LCBpbnQsIFJ1bmUqLCBpbnQpOwotdm9pZAll bG9nYXBwbHkoRmlsZSopOwogCiBzdHJ1Y3QgRmlsZQogewpAQCAtMTQ1LDIwICsxMjcsNiBAQAog CWludAkJbnRleHQ7CiAJaW50CQlkdW1waWQ7CS8qIHVzZWQgaW4gZHVtcGluZyB6ZXJveGVkIHdp bmRvd3MgKi8KIH07Ci1GaWxlKgkJZmlsZWFkZHRleHQoRmlsZSosIFRleHQqKTsKLXZvaWQJCWZp bGVjbG9zZShGaWxlKik7Ci12b2lkCQlmaWxlZGVsZXRlKEZpbGUqLCB1aW50LCB1aW50KTsKLXZv aWQJCWZpbGVkZWx0ZXh0KEZpbGUqLCBUZXh0Kik7Ci12b2lkCQlmaWxlaW5zZXJ0KEZpbGUqLCB1 aW50LCBSdW5lKiwgdWludCk7Ci11aW50CQlmaWxlbG9hZChGaWxlKiwgdWludCwgaW50LCBpbnQq KTsKLXZvaWQJCWZpbGVtYXJrKEZpbGUqKTsKLXZvaWQJCWZpbGVyZXNldChGaWxlKik7Ci12b2lk CQlmaWxlc2V0bmFtZShGaWxlKiwgUnVuZSosIGludCk7Ci12b2lkCQlmaWxldW5kZWxldGUoRmls ZSosIEJ1ZmZlciosIHVpbnQsIHVpbnQpOwotdm9pZAkJZmlsZXVuaW5zZXJ0KEZpbGUqLCBCdWZm ZXIqLCB1aW50LCB1aW50KTsKLXZvaWQJCWZpbGV1bnNldG5hbWUoRmlsZSosIEJ1ZmZlciopOwot dm9pZAkJZmlsZXVuZG8oRmlsZSosIGludCwgdWludCosIHVpbnQqKTsKLXVpbnQJCWZpbGVyZWRv c2VxKEZpbGUqKTsKIAogZW51bQkvKiBUZXh0LndoYXQgKi8KIHsKQEAgLTE5NCwzNiArMTYyLDYg QEAKIAlpbnQJbmVlZHVuZG87CiB9OwogCi11aW50CQl0ZXh0YmFja25sKFRleHQqLCB1aW50LCB1 aW50KTsKLXVpbnQJCXRleHRic2luc2VydChUZXh0KiwgdWludCwgUnVuZSosIHVpbnQsIGludCwg aW50Kik7Ci1pbnQJCXRleHRic3dpZHRoKFRleHQqLCBSdW5lKTsKLWludAkJdGV4dGNsaWNrbWF0 Y2goVGV4dCosIGludCwgaW50LCBpbnQsIHVpbnQqKTsKLXZvaWQJCXRleHRjbG9zZShUZXh0Kik7 Ci12b2lkCQl0ZXh0Y29sdW1uYXRlKFRleHQqLCBEaXJsaXN0KiosIGludCk7Ci12b2lkCQl0ZXh0 Y29tbWl0KFRleHQqLCBpbnQpOwotdm9pZAkJdGV4dGNvbnN0cmFpbihUZXh0KiwgdWludCwgdWlu dCwgdWludCosIHVpbnQqKTsKLXZvaWQJCXRleHRkZWxldGUoVGV4dCosIHVpbnQsIHVpbnQsIGlu dCk7Ci12b2lkCQl0ZXh0ZG91YmxlY2xpY2soVGV4dCosIHVpbnQqLCB1aW50Kik7Ci12b2lkCQl0 ZXh0ZmlsbChUZXh0Kik7Ci12b2lkCQl0ZXh0ZnJhbWVzY3JvbGwoVGV4dCosIGludCk7Ci12b2lk CQl0ZXh0aW5pdChUZXh0KiwgRmlsZSosIFJlY3RhbmdsZSwgUmVmZm9udCosIEltYWdlKiopOwot dm9pZAkJdGV4dGluc2VydChUZXh0KiwgdWludCwgUnVuZSosIHVpbnQsIGludCk7Ci11aW50CQl0 ZXh0bG9hZChUZXh0KiwgdWludCwgY2hhciosIGludCk7Ci1SdW5lCQl0ZXh0cmVhZGMoVGV4dCos IHVpbnQpOwotdm9pZAkJdGV4dHJlZHJhdyhUZXh0KiwgUmVjdGFuZ2xlLCBGb250KiwgSW1hZ2Uq LCBpbnQpOwotdm9pZAkJdGV4dHJlc2V0KFRleHQqKTsKLWludAkJdGV4dHJlc2l6ZShUZXh0Kiwg UmVjdGFuZ2xlKTsKLXZvaWQJCXRleHRzY3JkcmF3KFRleHQqKTsKLXZvaWQJCXRleHRzY3JvbGwo VGV4dCosIGludCk7Ci12b2lkCQl0ZXh0c2VsZWN0KFRleHQqKTsKLWludAkJdGV4dHNlbGVjdDIo VGV4dCosIHVpbnQqLCB1aW50KiwgVGV4dCoqKTsKLWludAkJdGV4dHNlbGVjdDIzKFRleHQqLCB1 aW50KiwgdWludCosIEltYWdlKiwgaW50KTsKLWludAkJdGV4dHNlbGVjdDMoVGV4dCosIHVpbnQq LCB1aW50Kik7Ci12b2lkCQl0ZXh0c2V0b3JpZ2luKFRleHQqLCB1aW50LCBpbnQpOwotdm9pZAkJ dGV4dHNldHNlbGVjdChUZXh0KiwgdWludCwgdWludCk7Ci12b2lkCQl0ZXh0c2hvdyhUZXh0Kiwg dWludCwgdWludCwgaW50KTsKLXZvaWQJCXRleHR0eXBlKFRleHQqLCBSdW5lKTsKLQogc3RydWN0 IFdpbmRvdwogewogCQlRTG9jazsKQEAgLTI3MiwyNyArMjEwLDYgQEAKIAlSZWN0YW5nbGUJdGFn dG9wOwogfTsKIAotdm9pZAl3aW5pbml0KFdpbmRvdyosIFdpbmRvdyosIFJlY3RhbmdsZSk7Ci12 b2lkCXdpbmxvY2soV2luZG93KiwgaW50KTsKLXZvaWQJd2lubG9jazEoV2luZG93KiwgaW50KTsK LXZvaWQJd2ludW5sb2NrKFdpbmRvdyopOwotdm9pZAl3aW50eXBlKFdpbmRvdyosIFRleHQqLCBS dW5lKTsKLXZvaWQJd2ludW5kbyhXaW5kb3cqLCBpbnQpOwotdm9pZAl3aW5zZXRuYW1lKFdpbmRv dyosIFJ1bmUqLCBpbnQpOwotdm9pZAl3aW5zZXR0YWcoV2luZG93Kik7Ci12b2lkCXdpbnNldHRh ZzEoV2luZG93Kik7Ci12b2lkCXdpbmNvbW1pdChXaW5kb3cqLCBUZXh0Kik7Ci1pbnQJd2lucmVz aXplKFdpbmRvdyosIFJlY3RhbmdsZSwgaW50KTsKLXZvaWQJd2luY2xvc2UoV2luZG93Kik7Ci12 b2lkCXdpbmRlbGV0ZShXaW5kb3cqKTsKLWludAl3aW5jbGVhbihXaW5kb3cqLCBpbnQpOwotdm9p ZAl3aW5kaXJmcmVlKFdpbmRvdyopOwotdm9pZAl3aW5ldmVudChXaW5kb3cqLCBjaGFyKiwgLi4u KTsKLXZvaWQJd2lubW91c2VidXQoV2luZG93Kik7Ci12b2lkCXdpbmFkZGluY2woV2luZG93Kiwg UnVuZSosIGludCk7Ci12b2lkCXdpbmNsZWFydGFnKFdpbmRvdyopOwotY2hhcgkqd2luY3RscHJp bnQoV2luZG93KiwgY2hhciosIGludCk7Ci0KIHN0cnVjdCBDb2x1bW4KIHsKIAlSZWN0YW5nbGUg cjsKQEAgLTMwMywxOCArMjIwLDYgQEAKIAlpbnQJCXNhZmU7CiB9OwogCi12b2lkCQljb2xpbml0 KENvbHVtbiosIFJlY3RhbmdsZSk7Ci1XaW5kb3cqCWNvbGFkZChDb2x1bW4qLCBXaW5kb3cqLCBX aW5kb3cqLCBpbnQpOwotdm9pZAkJY29sY2xvc2UoQ29sdW1uKiwgV2luZG93KiwgaW50KTsKLXZv aWQJCWNvbGNsb3NlYWxsKENvbHVtbiopOwotdm9pZAkJY29scmVzaXplKENvbHVtbiosIFJlY3Rh bmdsZSk7Ci1UZXh0Kgljb2x3aGljaChDb2x1bW4qLCBQb2ludCk7Ci12b2lkCQljb2xkcmFnd2lu KENvbHVtbiosIFdpbmRvdyosIGludCk7Ci12b2lkCQljb2xncm93KENvbHVtbiosIFdpbmRvdyos IGludCk7Ci1pbnQJCWNvbGNsZWFuKENvbHVtbiopOwotdm9pZAkJY29sc29ydChDb2x1bW4qKTsK LXZvaWQJCWNvbG1vdXNlYnV0KENvbHVtbiopOwotCiBzdHJ1Y3QgUm93CiB7CiAJUUxvY2s7CkBA IC0zMjUsMTkgKzIzMCw2IEBACiAKIH07CiAKLXZvaWQJCXJvd2luaXQoUm93KiwgUmVjdGFuZ2xl KTsKLUNvbHVtbioJcm93YWRkKFJvdyosIENvbHVtbiAqYywgaW50KTsKLXZvaWQJCXJvd2Nsb3Nl KFJvdyosIENvbHVtbiosIGludCk7Ci1UZXh0Kglyb3d3aGljaChSb3cqLCBQb2ludCk7Ci1Db2x1 bW4qCXJvd3doaWNoY29sKFJvdyosIFBvaW50KTsKLXZvaWQJCXJvd3Jlc2l6ZShSb3cqLCBSZWN0 YW5nbGUpOwotVGV4dCoJcm93dHlwZShSb3cqLCBSdW5lLCBQb2ludCk7Ci12b2lkCQlyb3dkcmFn Y29sKFJvdyosIENvbHVtbiosIGludCBidXQpOwotaW50CQlyb3djbGVhbihSb3cqKTsKLXZvaWQJ CXJvd2R1bXAoUm93KiwgY2hhciopOwotaW50CQlyb3dsb2FkKFJvdyosIGNoYXIqLCBpbnQpOwot dm9pZAkJcm93bG9hZGZvbnRzKGNoYXIqKTsKLQogc3RydWN0IFRpbWVyCiB7CiAJaW50CQlkdDsK QEAgLTQwNCwyNyArMjk2LDEyIEBACiAKIH07CiAKLXZvaWQJCXhmaWRjdGwodm9pZCAqKTsKLXZv aWQJCXhmaWRmbHVzaChYZmlkKik7Ci12b2lkCQl4Zmlkb3BlbihYZmlkKik7Ci12b2lkCQl4Zmlk Y2xvc2UoWGZpZCopOwotdm9pZAkJeGZpZHJlYWQoWGZpZCopOwotdm9pZAkJeGZpZHdyaXRlKFhm aWQqKTsKLXZvaWQJCXhmaWRjdGx3cml0ZShYZmlkKiwgV2luZG93Kik7Ci12b2lkCQl4ZmlkZXZl bnRyZWFkKFhmaWQqLCBXaW5kb3cqKTsKLXZvaWQJCXhmaWRldmVudHdyaXRlKFhmaWQqLCBXaW5k b3cqKTsKLXZvaWQJCXhmaWRpbmRleHJlYWQoWGZpZCopOwotdm9pZAkJeGZpZHV0ZnJlYWQoWGZp ZCosIFRleHQqLCB1aW50LCBpbnQpOwotaW50CQl4ZmlkcnVuZXJlYWQoWGZpZCosIFRleHQqLCB1 aW50LCB1aW50KTsKLQogc3RydWN0IFJlZmZvbnQKIHsKIAlSZWY7CiAJRm9udAkJKmY7CiAKIH07 Ci1SZWZmb250CSpyZmdldChpbnQsIGludCwgaW50LCBjaGFyKik7Ci12b2lkCQlyZmNsb3NlKFJl ZmZvbnQqKTsKIAogc3RydWN0IFJhbmdlc2V0CiB7CmRpZmYgLXIgNWQwNjg2MmY5YjIxIHN5cy9z cmMvY21kL2FjbWUvZm5zLmgKLS0tIGEvc3lzL3NyYy9jbWQvYWNtZS9mbnMuaAlUaHUgU2VwIDAx IDExOjQ2OjQ0IDIwMTYgKzAwMDAKKysrIGIvc3lzL3NyYy9jbWQvYWNtZS9mbnMuaAlUaHUgU2Vw IDAxIDE5OjA3OjU5IDIwMTYgLTA0MDAKQEAgLTg3LDYgKzg3LDEyNyBAQAogY2hhcioJZWRpdHRl eHQoV2luZG93KiwgaW50LCBSdW5lKiwgaW50KTsKIHZvaWQJCWZsdXNod2FybmluZ3Modm9pZCk7 CiAKKy8qIG1vdmVkIGZyb20gZGF0LmggKi8KKworRmlsZSoJCWZpbGVhZGR0ZXh0KEZpbGUqLCBU ZXh0Kik7Cit2b2lkCQlmaWxlY2xvc2UoRmlsZSopOwordm9pZAkJZmlsZWRlbGV0ZShGaWxlKiwg dWludCwgdWludCk7Cit2b2lkCQlmaWxlZGVsdGV4dChGaWxlKiwgVGV4dCopOwordm9pZAkJZmls ZWluc2VydChGaWxlKiwgdWludCwgUnVuZSosIHVpbnQpOwordWludAkJZmlsZWxvYWQoRmlsZSos IHVpbnQsIGludCwgaW50Kik7Cit2b2lkCQlmaWxlbWFyayhGaWxlKik7Cit2b2lkCQlmaWxlcmVz ZXQoRmlsZSopOwordm9pZAkJZmlsZXNldG5hbWUoRmlsZSosIFJ1bmUqLCBpbnQpOwordm9pZAkJ ZmlsZXVuZGVsZXRlKEZpbGUqLCBCdWZmZXIqLCB1aW50LCB1aW50KTsKK3ZvaWQJCWZpbGV1bmlu c2VydChGaWxlKiwgQnVmZmVyKiwgdWludCwgdWludCk7Cit2b2lkCQlmaWxldW5zZXRuYW1lKEZp bGUqLCBCdWZmZXIqKTsKK3ZvaWQJCWZpbGV1bmRvKEZpbGUqLCBpbnQsIHVpbnQqLCB1aW50Kik7 Cit1aW50CQlmaWxlcmVkb3NlcShGaWxlKik7CitEaXNrKglkaXNraW5pdCh2b2lkKTsKK0Jsb2Nr KglkaXNrbmV3YmxvY2soRGlzayosIHVpbnQpOwordm9pZAkJZGlza3JlbGVhc2UoRGlzayosIEJs b2NrKik7Cit2b2lkCQlkaXNrcmVhZChEaXNrKiwgQmxvY2sqLCBSdW5lKiwgdWludCk7Cit2b2lk CQlkaXNrd3JpdGUoRGlzayosIEJsb2NrKiosIFJ1bmUqLCB1aW50KTsKK3ZvaWQJCWJ1Zmluc2Vy dChCdWZmZXIqLCB1aW50LCBSdW5lKiwgdWludCk7Cit2b2lkCQlidWZkZWxldGUoQnVmZmVyKiwg dWludCwgdWludCk7Cit1aW50CQlidWZsb2FkKEJ1ZmZlciosIHVpbnQsIGludCwgaW50Kik7Citp bnQJCWJ1ZnJlYWQoQnVmZmVyKiwgdWludCwgUnVuZSosIHVpbnQpOwordm9pZAkJYnVmY2xvc2Uo QnVmZmVyKik7Cit2b2lkCQlidWZyZXNldChCdWZmZXIqKTsKK3ZvaWQJZWxvZ3Rlcm0oRmlsZSop Owordm9pZAllbG9nY2xvc2UoRmlsZSopOwordm9pZAllbG9naW5zZXJ0KEZpbGUqLCBpbnQsIFJ1 bmUqLCBpbnQpOwordm9pZAllbG9nZGVsZXRlKEZpbGUqLCBpbnQsIGludCk7Cit2b2lkCWVsb2dy ZXBsYWNlKEZpbGUqLCBpbnQsIGludCwgUnVuZSosIGludCk7Cit2b2lkCWVsb2dhcHBseShGaWxl Kik7Cit1aW50CQl0ZXh0YmFja25sKFRleHQqLCB1aW50LCB1aW50KTsKK3VpbnQJCXRleHRic2lu c2VydChUZXh0KiwgdWludCwgUnVuZSosIHVpbnQsIGludCwgaW50Kik7CitpbnQJCXRleHRic3dp ZHRoKFRleHQqLCBSdW5lKTsKK2ludAkJdGV4dGNsaWNrbWF0Y2goVGV4dCosIGludCwgaW50LCBp bnQsIHVpbnQqKTsKK3ZvaWQJCXRleHRjbG9zZShUZXh0Kik7Cit2b2lkCQl0ZXh0Y29sdW1uYXRl KFRleHQqLCBEaXJsaXN0KiosIGludCk7Cit2b2lkCQl0ZXh0Y29tbWl0KFRleHQqLCBpbnQpOwor dm9pZAkJdGV4dGNvbnN0cmFpbihUZXh0KiwgdWludCwgdWludCwgdWludCosIHVpbnQqKTsKK3Zv aWQJCXRleHRkZWxldGUoVGV4dCosIHVpbnQsIHVpbnQsIGludCk7Cit2b2lkCQl0ZXh0ZG91Ymxl Y2xpY2soVGV4dCosIHVpbnQqLCB1aW50Kik7Cit2b2lkCQl0ZXh0ZmlsbChUZXh0Kik7Cit2b2lk CQl0ZXh0ZnJhbWVzY3JvbGwoVGV4dCosIGludCk7Cit2b2lkCQl0ZXh0aW5pdChUZXh0KiwgRmls ZSosIFJlY3RhbmdsZSwgUmVmZm9udCosIEltYWdlKiopOwordm9pZAkJdGV4dGluc2VydChUZXh0 KiwgdWludCwgUnVuZSosIHVpbnQsIGludCk7Cit1aW50CQl0ZXh0bG9hZChUZXh0KiwgdWludCwg Y2hhciosIGludCk7CitSdW5lCQl0ZXh0cmVhZGMoVGV4dCosIHVpbnQpOwordm9pZAkJdGV4dHJl ZHJhdyhUZXh0KiwgUmVjdGFuZ2xlLCBGb250KiwgSW1hZ2UqLCBpbnQpOwordm9pZAkJdGV4dHJl c2V0KFRleHQqKTsKK2ludAkJdGV4dHJlc2l6ZShUZXh0KiwgUmVjdGFuZ2xlKTsKK3ZvaWQJCXRl eHRzY3JkcmF3KFRleHQqKTsKK3ZvaWQJCXRleHRzY3JvbGwoVGV4dCosIGludCk7Cit2b2lkCQl0 ZXh0c2VsZWN0KFRleHQqKTsKK2ludAkJdGV4dHNlbGVjdDIoVGV4dCosIHVpbnQqLCB1aW50Kiwg VGV4dCoqKTsKK2ludAkJdGV4dHNlbGVjdDIzKFRleHQqLCB1aW50KiwgdWludCosIEltYWdlKiwg aW50KTsKK2ludAkJdGV4dHNlbGVjdDMoVGV4dCosIHVpbnQqLCB1aW50Kik7Cit2b2lkCQl0ZXh0 c2V0b3JpZ2luKFRleHQqLCB1aW50LCBpbnQpOwordm9pZAkJdGV4dHNldHNlbGVjdChUZXh0Kiwg dWludCwgdWludCk7Cit2b2lkCQl0ZXh0c2hvdyhUZXh0KiwgdWludCwgdWludCwgaW50KTsKK3Zv aWQJCXRleHR0eXBlKFRleHQqLCBSdW5lKTsKK3ZvaWQJd2luaW5pdChXaW5kb3cqLCBXaW5kb3cq LCBSZWN0YW5nbGUpOwordm9pZAl3aW5sb2NrKFdpbmRvdyosIGludCk7Cit2b2lkCXdpbmxvY2sx KFdpbmRvdyosIGludCk7Cit2b2lkCXdpbnVubG9jayhXaW5kb3cqKTsKK3ZvaWQJd2ludHlwZShX aW5kb3cqLCBUZXh0KiwgUnVuZSk7Cit2b2lkCXdpbnVuZG8oV2luZG93KiwgaW50KTsKK3ZvaWQJ d2luc2V0bmFtZShXaW5kb3cqLCBSdW5lKiwgaW50KTsKK3ZvaWQJd2luc2V0dGFnKFdpbmRvdyop Owordm9pZAl3aW5zZXR0YWcxKFdpbmRvdyopOwordm9pZAl3aW5jb21taXQoV2luZG93KiwgVGV4 dCopOworaW50CXdpbnJlc2l6ZShXaW5kb3cqLCBSZWN0YW5nbGUsIGludCk7Cit2b2lkCXdpbmNs b3NlKFdpbmRvdyopOwordm9pZAl3aW5kZWxldGUoV2luZG93Kik7CitpbnQJd2luY2xlYW4oV2lu ZG93KiwgaW50KTsKK3ZvaWQJd2luZGlyZnJlZShXaW5kb3cqKTsKK3ZvaWQJd2luZXZlbnQoV2lu ZG93KiwgY2hhciosIC4uLik7Cit2b2lkCXdpbm1vdXNlYnV0KFdpbmRvdyopOwordm9pZAl3aW5h ZGRpbmNsKFdpbmRvdyosIFJ1bmUqLCBpbnQpOwordm9pZAl3aW5jbGVhcnRhZyhXaW5kb3cqKTsK K2NoYXIJKndpbmN0bHByaW50KFdpbmRvdyosIGNoYXIqLCBpbnQpOwordm9pZAkJY29saW5pdChD b2x1bW4qLCBSZWN0YW5nbGUpOworV2luZG93Kgljb2xhZGQoQ29sdW1uKiwgV2luZG93KiwgV2lu ZG93KiwgaW50KTsKK3ZvaWQJCWNvbGNsb3NlKENvbHVtbiosIFdpbmRvdyosIGludCk7Cit2b2lk CQljb2xjbG9zZWFsbChDb2x1bW4qKTsKK3ZvaWQJCWNvbHJlc2l6ZShDb2x1bW4qLCBSZWN0YW5n bGUpOworVGV4dCoJY29sd2hpY2goQ29sdW1uKiwgUG9pbnQpOwordm9pZAkJY29sZHJhZ3dpbihD b2x1bW4qLCBXaW5kb3cqLCBpbnQpOwordm9pZAkJY29sZ3JvdyhDb2x1bW4qLCBXaW5kb3cqLCBp bnQpOworaW50CQljb2xjbGVhbihDb2x1bW4qKTsKK3ZvaWQJCWNvbHNvcnQoQ29sdW1uKik7Cit2 b2lkCQljb2xtb3VzZWJ1dChDb2x1bW4qKTsKK3ZvaWQJCXJvd2luaXQoUm93KiwgUmVjdGFuZ2xl KTsKK0NvbHVtbioJcm93YWRkKFJvdyosIENvbHVtbiAqYywgaW50KTsKK3ZvaWQJCXJvd2Nsb3Nl KFJvdyosIENvbHVtbiosIGludCk7CitUZXh0Kglyb3d3aGljaChSb3cqLCBQb2ludCk7CitDb2x1 bW4qCXJvd3doaWNoY29sKFJvdyosIFBvaW50KTsKK3ZvaWQJCXJvd3Jlc2l6ZShSb3cqLCBSZWN0 YW5nbGUpOworVGV4dCoJcm93dHlwZShSb3cqLCBSdW5lLCBQb2ludCk7Cit2b2lkCQlyb3dkcmFn Y29sKFJvdyosIENvbHVtbiosIGludCBidXQpOworaW50CQlyb3djbGVhbihSb3cqKTsKK3ZvaWQJ CXJvd2R1bXAoUm93KiwgY2hhciopOworaW50CQlyb3dsb2FkKFJvdyosIGNoYXIqLCBpbnQpOwor dm9pZAkJcm93bG9hZGZvbnRzKGNoYXIqKTsKK3ZvaWQJCXhmaWRjdGwodm9pZCAqKTsKK3ZvaWQJ CXhmaWRmbHVzaChYZmlkKik7Cit2b2lkCQl4Zmlkb3BlbihYZmlkKik7Cit2b2lkCQl4ZmlkY2xv c2UoWGZpZCopOwordm9pZAkJeGZpZHJlYWQoWGZpZCopOwordm9pZAkJeGZpZHdyaXRlKFhmaWQq KTsKK3ZvaWQJCXhmaWRjdGx3cml0ZShYZmlkKiwgV2luZG93Kik7Cit2b2lkCQl4ZmlkZXZlbnRy ZWFkKFhmaWQqLCBXaW5kb3cqKTsKK3ZvaWQJCXhmaWRldmVudHdyaXRlKFhmaWQqLCBXaW5kb3cq KTsKK3ZvaWQJCXhmaWRpbmRleHJlYWQoWGZpZCopOwordm9pZAkJeGZpZHV0ZnJlYWQoWGZpZCos IFRleHQqLCB1aW50LCBpbnQpOworaW50CQl4ZmlkcnVuZXJlYWQoWGZpZCosIFRleHQqLCB1aW50 LCB1aW50KTsKK1JlZmZvbnQJKnJmZ2V0KGludCwgaW50LCBpbnQsIGNoYXIqKTsKK3ZvaWQJCXJm Y2xvc2UoUmVmZm9udCopOworCisKICNkZWZpbmUJcnVuZW1hbGxvYyhhKQkJKFJ1bmUqKWVtYWxs b2MoKGEpKnNpemVvZihSdW5lKSkKICNkZWZpbmUJcnVuZXJlYWxsb2MoYSwgYikJKFJ1bmUqKWVy ZWFsbG9jKChhKSwgKGIpKnNpemVvZihSdW5lKSkKICNkZWZpbmUJcnVuZW1vdmUoYSwgYiwgYykJ bWVtbW92ZSgoYSksIChiKSwgKGMpKnNpemVvZihSdW5lKSkKZGlmZiAtciA1ZDA2ODYyZjliMjEg c3lzL3NyYy9jbWQvYWNtZS9yb3dzLmMKLS0tIGEvc3lzL3NyYy9jbWQvYWNtZS9yb3dzLmMJVGh1 IFNlcCAwMSAxMTo0Njo0NCAyMDE2ICswMDAwCisrKyBiL3N5cy9zcmMvY21kL2FjbWUvcm93cy5j CVRodSBTZXAgMDEgMTk6MDc6NTkgMjAxNiAtMDQwMApAQCAtMzEwLDcgKzMxMCw3IEBACiAJCQl3 YXJuaW5nKG5pbCwgImNhbid0IGZpbmQgZmlsZSBmb3IgZHVtcDogJGhvbWUgbm90IGRlZmluZWRc biIpOwogCQkJZ290byBSZXNjdWU7CiAJCX0KLQkJc3ByaW50KGJ1ZiwgIiVzL2FjbWUuZHVtcCIs IGhvbWUpOworCQlzcHJpbnQoYnVmLCAiJXMvbGliL2FjbWUuJXMuZHVtcCIsIGhvbWUsIHN5c25h bWUoKSk7CiAJCWZpbGUgPSBidWY7CiAJfQogCWZkID0gY3JlYXRlKGZpbGUsIE9XUklURSwgMDYw MCk7CmRpZmYgLXIgNWQwNjg2MmY5YjIxIHN5cy9zcmMvY21kL2FjbWUvdGV4dC5jCi0tLSBhL3N5 cy9zcmMvY21kL2FjbWUvdGV4dC5jCVRodSBTZXAgMDEgMTE6NDY6NDQgMjAxNiArMDAwMAorKysg Yi9zeXMvc3JjL2NtZC9hY21lL3RleHQuYwlUaHUgU2VwIDAxIDE5OjA3OjU5IDIwMTYgLTA0MDAK QEAgLTQ5OCw3ICs0OTgsOCBAQAogCWlmKHQtPmNxMDw9cSAmJiBxPHQtPmNxMCt0LT5uY2FjaGUp CiAJCXIgPSB0LT5jYWNoZVtxLXQtPmNxMF07CiAJZWxzZQotCQlidWZyZWFkKHQtPmZpbGUsIHEs ICZyLCAxKTsKKwkJaWYoYnVmcmVhZCh0LT5maWxlLCBxLCAmciwgMSkgPT0gLTEpCisJCQlyZXR1 cm4gKFJ1bmUpMDsKIAlyZXR1cm4gcjsKIH0KIApAQCAtMTI1MywxMiArMTI1NCw1MCBAQAogCW5p bAogfTsKIAorc3RhdGljIGludCBicmFja2V0cmFuZ2UgPSA1MDsKKwordWludAorZmluZGxlZnRi cmFja2V0KFRleHQgKnQsIHVpbnQgcSkKK3sKKwlpbnQgaTsKKwlSdW5lIGM7CisKKwlmb3IoaSA9 IDA7IGkgPCBicmFja2V0cmFuZ2U7IGkrKyl7CisJCWMgPSB0ZXh0cmVhZGModCwgcS0odWludClp KTsKKwkJaWYoYyA9PSAoUnVuZSkwKQorCQkJcmV0dXJuIHE7CisJCWlmKHJ1bmVzdHJjaHIobGVm dDEsIGMpICE9IG5pbCkKKwkJCXJldHVybiBxLSh1aW50KWkrMTsKKwkJaWYgKHJ1bmVzdHJjaHIo bGVmdDMsIGMpICE9IG5pbCkKKwkJCXJldHVybiBxLSh1aW50KWkrMTsKKwkJaWYgKHJ1bmVzdHJj aHIobGVmdDIsIGMpICE9IG5pbCkKKwkJCXJldHVybiBxOworCX0KKwlyZXR1cm4gcTsKK30KKwog dm9pZAogdGV4dGRvdWJsZWNsaWNrKFRleHQgKnQsIHVpbnQgKnEwLCB1aW50ICpxMSkKIHsKIAlp bnQgYywgaTsKLQlSdW5lICpyLCAqbCwgKnA7CisJUnVuZSAqciwgKmwsICpwLCByYjsKIAl1aW50 IHE7CisJdWludCBtcSwgb3EwOworCisvKiBkb3VibGUgY2xpY2tpbmcgaW4gYnJhY2tldHMgLTEw LCsyNSBhd2F5IGZyb20gb25lIHdpbGwgc2VsZWN0CisgICBhbGwgaW4gYmV0d2VlbiB0aGUgYnJh Y2tldHMgKi8KKwlpZigobXEgPSBmaW5kbGVmdGJyYWNrZXQodCwgKnEwKSkgIT0gKnEwKXsKKwkJ b3EwID0gKnEwOworCQkqcTAgPSBtcTsKKwkJZm9yKGkgPSAwOyBpIDwgYnJhY2tldHJhbmdlOyBp KyspeworCQkJcmIgPSB0ZXh0cmVhZGModCwgbXEraSk7CisJCQlpZihydW5lc3RyY2hyKHJpZ2h0 MSwgcmIpICE9IG5pbCl7CisJCQkJKnExID0gbXEraTsKKwkJCQlyZXR1cm47CisJCQl9CisJCX0K KwkJKnEwID0gb3EwOworCX0KIAogCWZvcihpPTA7IGxlZnRbaV0hPW5pbDsgaSsrKXsKIAkJcSA9 ICpxMDsKZGlmZiAtciA1ZDA2ODYyZjliMjEgc3lzL3NyYy9jbWQvYWNtZS93aW5kLmMKLS0tIGEv c3lzL3NyYy9jbWQvYWNtZS93aW5kLmMJVGh1IFNlcCAwMSAxMTo0Njo0NCAyMDE2ICswMDAwCisr KyBiL3N5cy9zcmMvY21kL2FjbWUvd2luZC5jCVRodSBTZXAgMDEgMTk6MDc6NTkgMjAxNiAtMDQw MApAQCAtMzcyLDYgKzM3Miw4IEBACiAJdy0+aXNzY3JhdGNoID0gRkFMU0U7CiAJaWYobj49NiAm JiBydW5lZXEoTCIvZ3VpZGUiLCA2LCBuYW1lKyhuLTYpLCA2KSkKIAkJdy0+aXNzY3JhdGNoID0g VFJVRTsKKwlpZihuPj00ICYmIHJ1bmVlcShMIi9tYW4iLCA0LCBuYW1lLCA0KSkKKwkJdy0+aXNz Y3JhdGNoID0gVFJVRTsKIAllbHNlIGlmKG4+PTcgJiYgcnVuZWVxKEwiK0Vycm9ycyIsIDcsIG5h bWUrKG4tNyksIDcpKQogCQl3LT5pc3NjcmF0Y2ggPSBUUlVFOwogCWZpbGVzZXRuYW1lKHQtPmZp bGUsIG5hbWUsIG4pOwo= --94eb2c03088e0072d1053b7a73eb--