From mboxrd@z Thu Jan 1 00:00:00 1970 Received: with ECARTIS (v1.0.0; list linux-mips); Fri, 02 Nov 2007 17:26:45 +0000 (GMT) Received: from py-out-1112.google.com ([64.233.166.180]:45031 "EHLO py-out-1112.google.com") by ftp.linux-mips.org with ESMTP id S20030228AbXKBR0g (ORCPT ); Fri, 2 Nov 2007 17:26:36 +0000 Received: by py-out-1112.google.com with SMTP id p76so1687826pyb for ; Fri, 02 Nov 2007 10:26:24 -0700 (PDT) Received: by 10.65.239.14 with SMTP id q14mr6869495qbr.1194024383114; Fri, 02 Nov 2007 10:26:23 -0700 (PDT) Received: by 10.65.123.7 with HTTP; Fri, 2 Nov 2007 10:26:23 -0700 (PDT) Message-ID: Date: Sat, 3 Nov 2007 02:26:23 +0900 From: "Hyon Lim" To: linux-mips@linux-mips.org Subject: First implementation is done. (software suspend on MIPS) MIME-Version: 1.0 Content-Type: text/plain; charset=EUC-KR Content-Transfer-Encoding: base64 Content-Disposition: inline Return-Path: X-Envelope-To: <"|/home/ecartis/ecartis -s linux-mips"> (uid 0) X-Orcpt: rfc822;linux-mips@linux-mips.org Original-Recipient: rfc822;linux-mips@linux-mips.org X-archive-position: 17377 X-ecartis-version: Ecartis v1.0.0 Sender: linux-mips-bounce@linux-mips.org Errors-to: linux-mips-bounce@linux-mips.org X-original-sender: alex@alexlab.net Precedence: bulk X-list: linux-mips Rmlyc3QgaW1wbGVtZW50YXRpb24gaXMgZG9uZS4KTXkgd29yayBpbmNsdWRlcyAiY3B1LmMsIHN3 c3VzcC5TIiB3aGljaCBpcyBsb2NhdGVkIG9uCmFyY2gvbWlwcy94eHgvcG93ZXIuICh4eHggaXMg eW91ciBzcGVjaWZpYyBhcmNoaXRlY3R1cmUpCkJ1dCwgcHJvYmxlbSBzdGlsbCBleGlzdC4gV2hl biBzeXN0ZW0gcmVzdW1lZCwga2VybmVsIHBhbmljIGlzCm9jY3VyZWQuIChTZWUgYmVsb3cpCkkg dGhpbmsgdGhhdCBwcm9ibGVtIGlzIG9jY3VyZWQgYnkgbWlzc2luZyBjb250ZXh0LiAoSSBzYXZl ZCBvbmx5IGZldyByZWdpc3RlcikKUGxlYXNlIHdhdGNoIG15IGNvZGUgYW5kIHBsZWFzZSBjb21t ZW50IG15IG1pc3Rha2UuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0Kc3dzdXNwLlMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09Ci50ZXh0CgovKgogKiBTdXNwZW5kIHN1cHBvcnQgZm9yIE1JUFMuCiAq CiAqIERpc3RyaWJ1dGUgdW5kZXIgR1BMdjIKICoKICogQ29weXJpZ2h0IChjKSAyMDA3IEh5b24g TGltIDxhbGV4QGFsZXhsYWIubmV0PgogKi8KCiNpbmNsdWRlIDxsaW51eC9saW5rYWdlLmg+CiNp bmNsdWRlIDxhc20vc2VnbWVudC5oPgojaW5jbHVkZSA8YXNtL3BhZ2UuaD4KI2luY2x1ZGUgPGFz bS9hc20uaD4KI2luY2x1ZGUgPGFzbS9vZmZzZXQuaD4KI2luY2x1ZGUgPGFzbS9yZWdkZWYuaD4K CgkudGV4dAoKLyogdGhpcyBtYWNybyBnZW5lcmF0ZXMgbG9jYWwgd29yZCh1bnNpZ25lZCBsb25n KSBzaXplZCB2YXJpYWJsZSAqLwojZGVmaW5lCUxPQ0FMX1dPUkQoeCkJXAoJLmRhdGEJCTtcCgku YWxpZ24gMgk7XAoJLnR5cGUgeCwgQG9iamVjdDtcCgkuc2l6ZSB4LCA0CTtcCng6Cgkuc3BhY2Ug NAoKI2RlZmluZSBXT1JEX0FERFIoeCkJXAoJLmFsaWduIDIJO1wKLkwjI3g6CQkJO1wKCS53b3Jk IHgJCQoKI2RlZmluZSBGVU5DKHgpCQlcCgkudGV4dAkJO1wKCS5hbGlnbiAyCTtcCgkuZ2xvYmwg eAk7XAoJLmVudCB4CQk7XAoJLnR5cGUgeCxAZnVuY3Rpb247XAp4OgoKI2RlZmluZSBGVU5DX0VO RCh4KQlcCgkuZW5kIHgKCkxPQ0FMX1dPUkQoc2F2ZWRfY29udGV4dF9zMCk7CkxPQ0FMX1dPUkQo c2F2ZWRfY29udGV4dF9zMSk7CkxPQ0FMX1dPUkQoc2F2ZWRfY29udGV4dF9zMik7CkxPQ0FMX1dP UkQoc2F2ZWRfY29udGV4dF9zMyk7CkxPQ0FMX1dPUkQoc2F2ZWRfY29udGV4dF9zNCk7CkxPQ0FM X1dPUkQoc2F2ZWRfY29udGV4dF9zNSk7CkxPQ0FMX1dPUkQoc2F2ZWRfY29udGV4dF9zNik7CkxP Q0FMX1dPUkQoc2F2ZWRfY29udGV4dF9zNyk7CkxPQ0FMX1dPUkQoc2F2ZWRfY29udGV4dF9yYSk7 CgpGVU5DKHN3c3VzcF9hcmNoX3N1c3BlbmQpCglzdyBzMCxzYXZlZF9jb250ZXh0X3MwOwoJc3cg czEsc2F2ZWRfY29udGV4dF9zMTsKCXN3IHMyLHNhdmVkX2NvbnRleHRfczI7CglzdyBzMyxzYXZl ZF9jb250ZXh0X3MzOwoJc3cgczQsc2F2ZWRfY29udGV4dF9zNDsKCXN3IHM1LHNhdmVkX2NvbnRl eHRfczU7CglzdyBzNixzYXZlZF9jb250ZXh0X3M2OwoJc3cgczcsc2F2ZWRfY29udGV4dF9zNzsK CXN3IHJhLHNhdmVkX2NvbnRleHRfcmE7CgoJamFsIHN3c3VzcF9zYXZlOwoKCWx3IHJhLHNhdmVk X2NvbnRleHRfcmE7CS8vIHRoaXMgc3RhdGVtZW50IGNvcnJlc3BvbmRzIHRvIFJFVCBpbiB4ODYg YXNtLgoJLy9QUklOVCgiW0FTTV0gUkVUVVJOIFRPIEMhISIpOwoJaiByYTsJCQkJLy8KCQpGVU5D X0VORChzd3N1c3BfYXJjaF9zdXNwZW5kKQoKLy8gZm9yIHVzaW5nIHByaW50awoucmRhdGEKLmFs aWduIDIKJExDMDoKCS5hc2NpaSAiW0RFQlVHXSBSRVRVUk4gVE8gQyEhISBmcm9tIEFTTVxuXDAw MCIKCS5hbGlnbiAyCiRMQzE6CgkuYXNjaWkgIkBAI1wwMDAiCgkuYWxpZ24gMgokTEMyOgoJLmFz Y2lpICJDb3B5ICVkIVxuXDAwMCIKCS5hbGlnbiAyCiRMQzM6CgkuYXNjaWkgIkVuZCBsb29wXG5c MDAwIgoJLmFsaWduIDIKJExDNDoKCS5hc2NpaSAiW0FTTV0gUkVTVU1FIFNVQ0NFU1MhIVxuXDAw MCIKCS5hbGlnbiAyCiRMQzU6CgkuYXNjaWkgIltBU01dIFN0YXJ0IGNvcHlpbmcgcGFnZXMgLi4u IFxuXDAwMCIKCS5hbGlnbiAyCiRMQzY6CgkuYXNjaWkgIltBU01dIExvYWQgbnJfY29weV9wYWdl cyBhbmQgcGFnZWRpcl9ub3NhdmUgc3VjY2VzcyEhXG5cMDAwIgoKTE9DQUxfV09SRCh0bXBfdmFy KTsKTE9DQUxfV09SRCh0bXBfdmFyMik7CgpGVU5DKHN3c3VzcF9hcmNoX3Jlc3VtZSkKLyoKKiAg ICBUaGlzIHBzZXVkbyBjb2RlIHNob3VsZCBiZSBpbXBsZW1lbnRlZC4KKgoqICAgIHJlZ2lzdGVy IHUzMiAqc3JjLCpkc3Q7CiogICAgZm9yIChqPW5yX2NvcHlfcGFnZXM7IGo+MDsgai0tKQoqICAg ICB7CioJc3JjID0gcGFnZWRpcl9ub3NhdmVbal0uc3JjOwoqCWRzdCA9IHBhZ2VkaXJfbm9zYXZl W2pdLmRzdDsKKglmb3IoaT0wO2k8MTAyNDtpKyspewoqCQkqZHN0KysgPSAqc3JjKys7CioJfQoq ICAgICB9CiovCi8qCioJdHlwZWRlZiBzdHJ1Y3QgcGJlewoqCQl1bnNpZ25lZCBsb25nIGFkZHJl c3M7CS8vIGFkZHJlc3Mgb2YgdGhlIGNvcHkJCQk6IGJhc2UgYWRkcjsKKgkJdW5zaWduZWQgbG9u ZyBvcmlnX2FkZHJlc3M7CS8vb3JpZ2luYWwgYWRkcmVzcy4uLgkJOiBiYXNlIGFkZHIgKyA0Owoq CS4uLgoqLwoJLy8gVXNlZCByZWdpc3RlciBsb29rdXAgdGFibGUKCS8vICR0MCA6IG9yaWcncyBj b250ZW50cwoJLy8gJHQxIDoKCS8vICR0MiA6IGNvdW50ZXIsIDEwMjQKCS8vICR0MyA6CgkvLyAk dDQgOgoJLy8gJHQ1IDoKCS8vICR0NiA6CgkvLyAkdDcgOgoJLy8KCS8vICRzMCA6IHBhZ2VkaXJf bm9zYXZlJ3MgYWRkcmVzcwoJLy8gJHMxIDogbnJfY29weV9wYWdlcydzIGFkZHJlc3MKCS8vICRz MiA6IHRlbXBfdmFyCgkvLyAkczMgOiBzcmMgcG9pbnRlcgoJLy8gJHM0IDogZHN0IHBvaW50ZXIK CS8vICRzNSA6CgkvLyAkczYgOgoJLy8gJHM3IDoKCS8vCgkKCS8vIEdldCBwb2ludGVyIGZyb20g dmFyaWFibGVzLgoJbHcgczAscGFnZWRpcl9ub3NhdmU7CQkvLyBsb2FkIHBhZ2VkaXJfbm9zYXZl J3MgYWRkcmVzcwoJbHcgczEsbnJfY29weV9wYWdlczsJCQkvLyAkczE9bnJfY29weV9wYWdlczsK JGNvcHlfbG9vcDoKCWx3IHMzLDAoczApOwkJLy8gJHMzIGhhcyBzb3VyY2UgZGVzdGluYXRpb24n cyBhZGRyZXNzCglsdyBzNCw0KHMwKTsJCS8vICRzNCBoYXMgb3JpZ25hbCBhZGRyZXNzCgkJCQkv LyBPYmplY3RpdmUgOiBjb3B5IG9yaWdfYWRkcmVzcydzIGNvbnRlbnRzIHRvIGFkZHJlc3MKCWxp IHQyLDEwMjQ7CQkvLyAkdDIgPSAxMDI0OywgaW5kZXggdmFyaWFibGUuCiRjb3B5X2xvb3BfaW5u ZXI6CglsdyB0MCwwKHMzKTsJCS8vIG9yaWcncyBjb250ZW50cyBpbnRvICR0MAoJc3cgdDAsMChz NCk7CQkvLyBvcmlnJ3MgY29udGVudHMgdG8gdGFyZ2V0IGFkZHJlc3MncyBjb250ZW50cwoKCWFk ZGl1IHMzLHMzLDQJCS8vIGFkZHJlc3MrKwoJYWRkaXUgczQsczQsNAkJLy8gb3JpZ19hZGRyKysK CQoJYWRkaXUgdDIsdDIsLTEJCS8vIGRlY3JlYXNlIGNvdW50ZXIKCWJsZXogdDIsJGVuZF9pbm5l cl9sb29wCS8vIGxlc3MgdGhhbiBvciBlcXVhbCB6ZXJvCglqICRjb3B5X2xvb3BfaW5uZXI7CS8v IGptcCEKJGVuZF9pbm5lcl9sb29wOgoJLy9QUklOVCgiIyIpOwoJYWRkaXUgczAsczAsMTYKCWFk ZGl1IHMxLHMxLC0xCQkvLyBucl9jb3B5X3BhZ2VzID0gbnJfY29weV9wYWdlcyAtIDE7CglibGV6 IHMxLCRlbmRfY29weQoJaiAkY29weV9sb29wCiRlbmRfY29weToKCWx3IHMwLCBzYXZlZF9jb250 ZXh0X3MwOwoJbHcgczEsIHNhdmVkX2NvbnRleHRfczE7CglsdyBzMiwgc2F2ZWRfY29udGV4dF9z MjsKCWx3IHMzLCBzYXZlZF9jb250ZXh0X3MzOwoJbHcgczQsIHNhdmVkX2NvbnRleHRfczQ7Cgls dyBzNSwgc2F2ZWRfY29udGV4dF9zNTsKCWx3IHM2LCBzYXZlZF9jb250ZXh0X3M2OwoJbHcgczcs IHNhdmVkX2NvbnRleHRfczc7CglqYWwgc3dzdXNwX3Jlc3RvcmU7CglsdyByYSwgc2F2ZWRfY29u dGV4dF9yYTsKCWogcmE7CkZVTkNfRU5EKHN3c3VzcF9hcmNoX3Jlc3VtZSkKCgo9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3B1LmMKPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci8qCiAqIFN1c3BlbmQg c3VwcG9ydCBmb3IgTUlQUy4KICoKICogRGlzdHJpYnV0ZSB1bmRlciBHUEx2MgogKgogKiBDb3B5 cmlnaHQgKGMpIDIwMDcgSHlvbiBMaW0gPGFsZXhAYWxleGxhYi5uZXQ+CiAqLwoKI2luY2x1ZGUg PGxpbnV4L2NvbmZpZy5oPgojaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiNpbmNsdWRlIDxsaW51 eC9tb2R1bGUuaD4KI2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KI2luY2x1ZGUgPGxpbnV4L3R5cGVz Lmg+CiNpbmNsdWRlIDxsaW51eC9zcGlubG9jay5oPgojaW5jbHVkZSA8bGludXgvcG9sbC5oPgoj aW5jbHVkZSA8bGludXgvZGVsYXkuaD4KI2luY2x1ZGUgPGxpbnV4L3N5c3JxLmg+CiNpbmNsdWRl IDxsaW51eC9wcm9jX2ZzLmg+CiNpbmNsdWRlIDxsaW51eC9pcnEuaD4KI2luY2x1ZGUgPGxpbnV4 L3BtLmg+CiNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KI2luY2x1ZGUgPGxpbnV4L3N1c3BlbmQu aD4KI2luY2x1ZGUgPGFzbS91YWNjZXNzLmg+CiNpbmNsdWRlIDxhc20vdGxiZmx1c2guaD4KCnN0 YXRpYyBzdHJ1Y3Qgc2F2ZWRfY29udGV4dCBzYXZlZF9jb250ZXh0OwoKLy8gVGhpcyBpcyBjYWxs ZWUtc2F2ZWQgcmVnaXN0ZXJzCi8vdW5zaWduZWQgbG9uZyBzYXZlZF9jb250ZXh0X3MwOwovL3Vu c2lnbmVkIGxvbmcgc2F2ZWRfY29udGV4dF9zMTsKLy91bnNpZ25lZCBsb25nIHNhdmVkX2NvbnRl eHRfczI7Ci8vdW5zaWduZWQgbG9uZyBzYXZlZF9jb250ZXh0X3MzOwovL3Vuc2lnbmVkIGxvbmcg c2F2ZWRfY29udGV4dF9zNDsKLy91bnNpZ25lZCBsb25nIHNhdmVkX2NvbnRleHRfczU7Ci8vdW5z aWduZWQgbG9uZyBzYXZlZF9jb250ZXh0X3M2OwovL3Vuc2lnbmVkIGxvbmcgc2F2ZWRfY29udGV4 dF9zNzsKLy91bnNpZ25lZCBsb25nIHNhdmVkX2NvbnRleHRfcmE7CS8vIHJldHVybiBhZGRyZXNz Cgp2b2lkIF9fc2F2ZV9wcm9jZXNzb3Jfc3RhdGUodm9pZCkKewoJcHJlZW1wdF9kaXNhYmxlKCk7 CgoJLy8ga2VybmVsX2ZwdV9iZWdpbigpOwoJLy8gbWlwcyB1c2VzIFBGX1VTRURGUFUsIGJ1dCB0 aGVyZSBpc24ndCBmdW5jdGlvbiBvZiBrZXJuZWxfZnB1X2JlZ2luLgoJLy8gVGhpbmsgb2Ygc3Rv cmluZyBmcCByZWxhdGVkIHJlZ2lzdGVycy4KCQoJLyogICAgICAgICAgICAgICAgICAgICAgICAg ICAgQ1BVIHJlZ2lzdGVycyAgICAgICAgICAgICAgICAgICAgICAgICovCgkvKgoJICogc2F2ZSB0 aGUgZ2VuZXJhbCByZWdpc3RlcnMuCgkgKiBub3RlIHRoYXQgZ2NjIGhhcyBjb25zdHJ1Y3RzIHRv IHNwZWNpZnkgb3V0cHV0IG9mIGNlcnRhaW4gcmVnaXN0ZXJzLAoJICogYnV0IHRoZXkncmUgbm90 IHVzZWQgaGVyZSwgYmVjYXVzZSBpdCBhc3N1bWVzIHRoYXQgeW91IHdhbnQgdG8gbW9kaWZ5Cgkg KiB0aG9zZSByZWdpc3RlcnMsIHNvIGl0IHRyaWVzIHRvIGJlIHNtYXJ0IGFuZCBzYXZlIHRoZW0g YmVmb3JlaGFuZC4KCSAqIEl0J3MgcmVhbGx5IG5vdCBuZWNlc3NhcnksIGFuZCBraW5kYSBmaXNo eSAoY2hlY2sgdGhlIGFzc2VtYmx5IG91dHB1dCksCgkgKiBzbyBpdCdzIGF2b2lkZWQuCgkgKi8K CgkvKgoJICogY2FuJ3QgdXNlIG91dHB1dCB3aXRoICJtIiBjb25zdHJhaW50LiBiZWNhdXNlIGRp cmVjdCBhZGRyZXNzaW5nIGlzCm5vdCBwZXJtaXR0ZWQKCSAqIG9uIE1JUFMgaW5saW5lIGFzc2Vt Ymx5LiAocmVnaXN0ZXIgcmVsYXRpdmUgYWRkcmVzc2luZyBhcyBJIHNlZSkKCSAqIGNvbXBpbGVy IHVzdWFsbHkgYWxsb2NhdGVzIGZpcnN0ICJyIiBjb25zdHJhaW50IHJlZ2lzdGVyIHdpdGgKJ3Yw Jy4gKGluIG15IG9waW5pb24pCgkgKiBpZiBpdCBkb2Vzbid0LCBJJ2xsIGRlc2NyaWJlIHJlYWxs eSByZWFsbHkgbWFzc2l2ZSBjbG9iYmVyIGxpc3QKZm9yIHN0YWJpbGl0eS4KCSAqCgkgKiAiYXQi IHJlZ2lzdGVyIGlzIG9ubHkgdXNlZCBieSBhc3NlbWJsZXIuCgkgKiAiemVybyIgcmVnaXN0ZXIg YWx3YXlzIGNvbnRhaW5zIHplcm8uCgkgKi8KCWFzbSB2b2xhdGlsZSAoInN1YnUgJDI5LCA0Iik7 Cglhc20gdm9sYXRpbGUgKCJzdyAkMiwgKCQyOSkiKTsKCQoJYXNtIHZvbGF0aWxlICgic3cgJDMs ICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnZbMV0pKTsKCWFzbSB2b2xhdGlsZSAoInN3 ICQ0LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5hWzBdKSk7Cglhc20gdm9sYXRpbGUg KCJzdyAkNSwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuYVsxXSkpOwoJYXNtIHZvbGF0 aWxlICgic3cgJDYsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LmFbMl0pKTsKCWFzbSB2 b2xhdGlsZSAoInN3ICQ3LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5hWzNdKSk7Cglh c20gdm9sYXRpbGUgKCJzdyAkOCwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQudFswXSkp OwoJYXNtIHZvbGF0aWxlICgic3cgJDksICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnRb MV0pKTsKCWFzbSB2b2xhdGlsZSAoInN3ICQxMCwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRl eHQudFsyXSkpOwoJYXNtIHZvbGF0aWxlICgic3cgJDExLCAoJTApIiA6IDogInIiICgmc2F2ZWRf Y29udGV4dC50WzNdKSk7Cglhc20gdm9sYXRpbGUgKCJzdyAkMTIsICglMCkiIDogOiAiciIgKCZz YXZlZF9jb250ZXh0LnRbNF0pKTsKCWFzbSB2b2xhdGlsZSAoInN3ICQxMywgKCUwKSIgOiA6ICJy IiAoJnNhdmVkX2NvbnRleHQudFs1XSkpOwoJYXNtIHZvbGF0aWxlICgic3cgJDE0LCAoJTApIiA6 IDogInIiICgmc2F2ZWRfY29udGV4dC50WzZdKSk7Cglhc20gdm9sYXRpbGUgKCJzdyAkMTUsICgl MCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnRbN10pKTsKCWFzbSB2b2xhdGlsZSAoInN3ICQx NiwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuc1swXSkpOwoJYXNtIHZvbGF0aWxlICgi c3cgJDE3LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5zWzFdKSk7Cglhc20gdm9sYXRp bGUgKCJzdyAkMTgsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnNbMl0pKTsKCWFzbSB2 b2xhdGlsZSAoInN3ICQxOSwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuc1szXSkpOwoJ YXNtIHZvbGF0aWxlICgic3cgJDIwLCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5zWzRd KSk7Cglhc20gdm9sYXRpbGUgKCJzdyAkMjEsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0 LnNbNV0pKTsKCWFzbSB2b2xhdGlsZSAoInN3ICQyMiwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2Nv bnRleHQuc1s2XSkpOwoJYXNtIHZvbGF0aWxlICgic3cgJDIzLCAoJTApIiA6IDogInIiICgmc2F2 ZWRfY29udGV4dC5zWzddKSk7Cglhc20gdm9sYXRpbGUgKCJzdyAkMjQsICglMCkiIDogOiAiciIg KCZzYXZlZF9jb250ZXh0LnRbOF0pKTsKCWFzbSB2b2xhdGlsZSAoInN3ICQyNSwgKCUwKSIgOiA6 ICJyIiAoJnNhdmVkX2NvbnRleHQudFs5XSkpOwoJYXNtIHZvbGF0aWxlICgic3cgJDI2LCAoJTAp IiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5rWzBdKSk7Cglhc20gdm9sYXRpbGUgKCJzdyAkMjcs ICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LmtbMV0pKTsKCWFzbSB2b2xhdGlsZSAoInN3 ICQyOCwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuZ3ApKTsKCWFzbSB2b2xhdGlsZSAo InN3ICQzMCwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuZnApKTsKCWFzbSB2b2xhdGls ZSAoInN3ICQzMSwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQucmEpKTsKCglhc20gdm9s YXRpbGUgKCJsdyAkMiwgKCQyOSkiKTsKCWFzbSB2b2xhdGlsZSAoImFkZHUgJDI5LCA0Iik7CgkK CWFzbSB2b2xhdGlsZSAoInN3ICQyLCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC52WzBd KSA6ICIkMiIpOwoJYXNtIHZvbGF0aWxlICgic3cgJDI5LCAoJTApIiA6IDogInIiICgmc2F2ZWRf Y29udGV4dC5zcCkpOwoJCgkvKgoJICogc3BlY2lhbCByZWdpc3RlcnMKCSAqLwoJYXNtIHZvbGF0 aWxlICgibWZoaSAlMCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmhpKSk7Cglhc20gdm9sYXRpbGUg KCJtZmxvICUwIiA6ICI9ciIgKHNhdmVkX2NvbnRleHQubG8pKTsKCS8vIGxvYWQvbGluayByZWdp c3Rlcj8/CgoJLyoKCSAqIGNvcHJvY2Vzc29yIDAgcmVnaXN0ZXJzIChpbmNsZGUvYXNtLW1pcHMv bWlwc3JlZ3MuaCkKCSAqLwoJYXNtIHZvbGF0aWxlICgibWZjMCAlMCwgJDAiIDogIj1yIiAoc2F2 ZWRfY29udGV4dC5jcDBbMF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxIiA6ICI9ciIg KHNhdmVkX2NvbnRleHQuY3AwWzFdKSk7Cglhc20gdm9sYXRpbGUgKCJtZmMwICUwLCAkMiIgOiAi PXIiIChzYXZlZF9jb250ZXh0LmNwMFsyXSkpOwoJYXNtIHZvbGF0aWxlICgibWZjMCAlMCwgJDMi IDogIj1yIiAoc2F2ZWRfY29udGV4dC5jcDBbM10pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAs ICQ0IiA6ICI9ciIgKHNhdmVkX2NvbnRleHQuY3AwWzRdKSk7Cglhc20gdm9sYXRpbGUgKCJtZmMw ICUwLCAkNSIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFs1XSkpOwoJYXNtIHZvbGF0aWxlICgi bWZjMCAlMCwgJDYiIDogIj1yIiAoc2F2ZWRfY29udGV4dC5jcDBbNl0pKTsKCWFzbSB2b2xhdGls ZSAoIm1mYzAgJTAsICQ3IiA6ICI9ciIgKHNhdmVkX2NvbnRleHQuY3AwWzddKSk7Cglhc20gdm9s YXRpbGUgKCJtZmMwICUwLCAkOCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFs4XSkpOwoJYXNt IHZvbGF0aWxlICgibWZjMCAlMCwgJDkiIDogIj1yIiAoc2F2ZWRfY29udGV4dC5jcDBbOV0pKTsK CWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxMCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsx MF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxMSIgOiAiPXIiIChzYXZlZF9jb250ZXh0 LmNwMFsxMV0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxMiIgOiAiPXIiIChzYXZlZF9j b250ZXh0LmNwMFsxMl0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxMyIgOiAiPXIiIChz YXZlZF9jb250ZXh0LmNwMFsxM10pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxNCIgOiAi PXIiIChzYXZlZF9jb250ZXh0LmNwMFsxNF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQx NSIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsxNV0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAg JTAsICQxNiIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsxNl0pKTsKCWFzbSB2b2xhdGlsZSAo Im1mYzAgJTAsICQxNyIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsxN10pKTsKCWFzbSB2b2xh dGlsZSAoIm1mYzAgJTAsICQxOCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsxOF0pKTsKCWFz bSB2b2xhdGlsZSAoIm1mYzAgJTAsICQxOSIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsxOV0p KTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyMCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNw MFsyMF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyMSIgOiAiPXIiIChzYXZlZF9jb250 ZXh0LmNwMFsyMV0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyMiIgOiAiPXIiIChzYXZl ZF9jb250ZXh0LmNwMFsyMl0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyMyIgOiAiPXIi IChzYXZlZF9jb250ZXh0LmNwMFsyM10pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyNCIg OiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsyNF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAs ICQyNSIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsyNV0pKTsKCWFzbSB2b2xhdGlsZSAoIm1m YzAgJTAsICQyNiIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsyNl0pKTsKCWFzbSB2b2xhdGls ZSAoIm1mYzAgJTAsICQyNyIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsyN10pKTsKCWFzbSB2 b2xhdGlsZSAoIm1mYzAgJTAsICQyOCIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsyOF0pKTsK CWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQyOSIgOiAiPXIiIChzYXZlZF9jb250ZXh0LmNwMFsy OV0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQzMCIgOiAiPXIiIChzYXZlZF9jb250ZXh0 LmNwMFszMF0pKTsKCWFzbSB2b2xhdGlsZSAoIm1mYzAgJTAsICQzMSIgOiAiPXIiIChzYXZlZF9j b250ZXh0LmNwMFszMV0pKTsKfQoKdm9pZCBzYXZlX3Byb2Nlc3Nvcl9zdGF0ZSh2b2lkKQp7CgkJ cHJpbnRrKCJbREVCVUddIGJlZm9yZSBfX3NhdmVfcHJvY2Vzc29yX3N0YXRlKCkgJXMsJWRcbiIs X19GSUxFX18sX19MSU5FX18pOwoJX19zYXZlX3Byb2Nlc3Nvcl9zdGF0ZSgpOwoJCQlwcmludGso IltERUJVR10gYWZ0ZXIgX19zYXZlX3Byb2Nlc3Nvcl9zdGF0ZSgpICVzLCVkXG4iLF9fRklMRV9f LF9fTElORV9fKTsKfQoKdm9pZCBfX3Jlc3RvcmVfcHJvY2Vzc29yX3N0YXRlKHZvaWQpCnsKCS8q CgkgKiBmaXJzdCByZXN0b3JlICVkcywgc28gd2UgY2FuIGFjY2VzcyBvdXIgZGF0YSBwcm9wZXJs eQoJICovCglhc20gdm9sYXRpbGUgKCIuYWxpZ24gNCIpOwovLwlhc20gdm9sYXRpbGUgKCJtb3Z3 ICUwLCAlJWRzIiA6OiAiciIgKCh1MTYpX19LRVJORUxfRFMpKTsKCgoJLyoKCSAqIGNvcHJvY2Vz c29yIDAgcmVnaXN0ZXJzIChpbmNsZGUvYXNtLW1pcHMvbWlwc3JlZ3MuaCkKCSAqLwoJYXNtIHZv bGF0aWxlICgibXRjMCAlMCwgJDAiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzBdKSk7Cglh c20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMSIgOiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBbMV0p KTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQyIiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNw MFsyXSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDMiIDogOiAiciIgKHNhdmVkX2NvbnRl eHQuY3AwWzNdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkNCIgOiA6ICJyIiAoc2F2ZWRf Y29udGV4dC5jcDBbNF0pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQ1IiA6IDogInIiIChz YXZlZF9jb250ZXh0LmNwMFs1XSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDYiIDogOiAi ciIgKHNhdmVkX2NvbnRleHQuY3AwWzZdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkNyIg OiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBbN10pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAs ICQ4IiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNwMFs4XSkpOwoJYXNtIHZvbGF0aWxlICgibXRj MCAlMCwgJDkiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzldKSk7Cglhc20gdm9sYXRpbGUg KCJtdGMwICUwLCAkMTAiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzEwXSkpOwoJYXNtIHZv bGF0aWxlICgibXRjMCAlMCwgJDExIiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNwMFsxMV0pKTsK CWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQxMiIgOiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBb MTJdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMTMiIDogOiAiciIgKHNhdmVkX2NvbnRl eHQuY3AwWzEzXSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDE0IiA6IDogInIiIChzYXZl ZF9jb250ZXh0LmNwMFsxNF0pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQxNSIgOiA6ICJy IiAoc2F2ZWRfY29udGV4dC5jcDBbMTVdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMTYi IDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzE2XSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAl MCwgJDE3IiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNwMFsxN10pKTsKCWFzbSB2b2xhdGlsZSAo Im10YzAgJTAsICQxOCIgOiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBbMThdKSk7Cglhc20gdm9s YXRpbGUgKCJtdGMwICUwLCAkMTkiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzE5XSkpOwoJ YXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDIwIiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNwMFsy MF0pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQyMSIgOiA6ICJyIiAoc2F2ZWRfY29udGV4 dC5jcDBbMjFdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMjIiIDogOiAiciIgKHNhdmVk X2NvbnRleHQuY3AwWzIyXSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDIzIiA6IDogInIi IChzYXZlZF9jb250ZXh0LmNwMFsyM10pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQyNCIg OiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBbMjRdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUw LCAkMjUiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzI1XSkpOwoJYXNtIHZvbGF0aWxlICgi bXRjMCAlMCwgJDI2IiA6IDogInIiIChzYXZlZF9jb250ZXh0LmNwMFsyNl0pKTsKCWFzbSB2b2xh dGlsZSAoIm10YzAgJTAsICQyNyIgOiA6ICJyIiAoc2F2ZWRfY29udGV4dC5jcDBbMjddKSk7Cglh c20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMjgiIDogOiAiciIgKHNhdmVkX2NvbnRleHQuY3AwWzI4 XSkpOwoJYXNtIHZvbGF0aWxlICgibXRjMCAlMCwgJDI5IiA6IDogInIiIChzYXZlZF9jb250ZXh0 LmNwMFsyOV0pKTsKCWFzbSB2b2xhdGlsZSAoIm10YzAgJTAsICQzMCIgOiA6ICJyIiAoc2F2ZWRf Y29udGV4dC5jcDBbMzBdKSk7Cglhc20gdm9sYXRpbGUgKCJtdGMwICUwLCAkMzEiIDogOiAiciIg KHNhdmVkX2NvbnRleHQuY3AwWzMxXSkpOwoKCS8qCgkgKiBzcGVjaWFsIHJlZ2lzdGVycwoJICov Cglhc20gdm9sYXRpbGUgKCJtdGhpICUwIiA6IDogInIiIChzYXZlZF9jb250ZXh0LmhpKSk7Cglh c20gdm9sYXRpbGUgKCJtdGxvICUwIiA6IDogInIiIChzYXZlZF9jb250ZXh0LmxvKSk7CgoJLyoK CSAqIHRoZSBvdGhlciBnZW5lcmFsIHJlZ2lzdGVycwoJICoKCSAqIG5vdGUgdGhhdCBldmVuIHRo b3VnaCBnY2MgaGFzIGNvbnN0cnVjdHMgdG8gc3BlY2lmeSBtZW1vcnkKCSAqIGlucHV0IGludG8g Y2VydGFpbiByZWdpc3RlcnMsIGl0IHdpbGwgdHJ5IHRvIGJlIHRvbyBzbWFydAoJICogYW5kIHNh dmUgdGhlbSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmdW5jdGlvbi4gIFRoaXMgaXMgZXNwLgoJ ICogYmFkIHNpbmNlIHdlIGRvbid0IGhhdmUgYSBzdGFjayBzZXQgdXAgd2hlbiB3ZSBlbnRlciwg YW5kIHdlCgkgKiB3YW50IHRvIHByZXNlcnZlIHRoZSB2YWx1ZXMgb24gZXhpdC4gU28sIHdlIHNl dCB0aGVtIG1hbnVhbGx5LgoJICovCglhc20gdm9sYXRpbGUgKCJsdyAkMywgKCUwKSIgOiA6ICJy IiAoJnNhdmVkX2NvbnRleHQudlsxXSkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDQsICglMCkiIDog OiAiciIgKCZzYXZlZF9jb250ZXh0LmFbMF0pKTsKCWFzbSB2b2xhdGlsZSAoImx3ICQ1LCAoJTAp IiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5hWzFdKSk7Cglhc20gdm9sYXRpbGUgKCJsdyAkNiwg KCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuYVsyXSkpOwoJYXNtIHZvbGF0aWxlICgibHcg JDcsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LmFbM10pKTsKCWFzbSB2b2xhdGlsZSAo Imx3ICQ4LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC50WzBdKSk7Cglhc20gdm9sYXRp bGUgKCJsdyAkOSwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQudFsxXSkpOwoJYXNtIHZv bGF0aWxlICgibHcgJDEwLCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC50WzJdKSk7Cglh c20gdm9sYXRpbGUgKCJsdyAkMTEsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnRbM10p KTsKCWFzbSB2b2xhdGlsZSAoImx3ICQxMiwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQu dFs0XSkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDEzLCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29u dGV4dC50WzVdKSk7Cglhc20gdm9sYXRpbGUgKCJsdyAkMTQsICglMCkiIDogOiAiciIgKCZzYXZl ZF9jb250ZXh0LnRbNl0pKTsKCWFzbSB2b2xhdGlsZSAoImx3ICQxNSwgKCUwKSIgOiA6ICJyIiAo JnNhdmVkX2NvbnRleHQudFs3XSkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDE2LCAoJTApIiA6IDog InIiICgmc2F2ZWRfY29udGV4dC5zWzBdKSk7Cglhc20gdm9sYXRpbGUgKCJsdyAkMTcsICglMCki IDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnNbMV0pKTsKCWFzbSB2b2xhdGlsZSAoImx3ICQxOCwg KCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuc1syXSkpOwoJYXNtIHZvbGF0aWxlICgibHcg JDE5LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5zWzNdKSk7Cglhc20gdm9sYXRpbGUg KCJsdyAkMjAsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnNbNF0pKTsKCWFzbSB2b2xh dGlsZSAoImx3ICQyMSwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRleHQuc1s1XSkpOwoJYXNt IHZvbGF0aWxlICgibHcgJDIyLCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5zWzZdKSk7 Cglhc20gdm9sYXRpbGUgKCJsdyAkMjMsICglMCkiIDogOiAiciIgKCZzYXZlZF9jb250ZXh0LnNb N10pKTsKCWFzbSB2b2xhdGlsZSAoImx3ICQyNCwgKCUwKSIgOiA6ICJyIiAoJnNhdmVkX2NvbnRl eHQudFs4XSkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDI1LCAoJTApIiA6IDogInIiICgmc2F2ZWRf Y29udGV4dC50WzldKSk7Cglhc20gdm9sYXRpbGUgKCJsdyAkMjYsICglMCkiIDogOiAiciIgKCZz YXZlZF9jb250ZXh0LmtbMF0pKTsKCWFzbSB2b2xhdGlsZSAoImx3ICQyNywgKCUwKSIgOiA6ICJy IiAoJnNhdmVkX2NvbnRleHQua1sxXSkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDI4LCAoJTApIiA6 IDogInIiICgmc2F2ZWRfY29udGV4dC5ncCkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDI5LCAoJTAp IiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5zcCkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDMwLCAo JTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5mcCkpOwoJYXNtIHZvbGF0aWxlICgibHcgJDMx LCAoJTApIiA6IDogInIiICgmc2F2ZWRfY29udGV4dC5yYSkpOwoJLy8gR29vZCBqb2IgJ3YwJy4g SXQncyB5b3VyIHR1cm4hCglhc20gdm9sYXRpbGUgKCJsdyAkMiwgKCUwKSIgOiA6ICJyIiAoJnNh dmVkX2NvbnRleHQudlswXSkpOwoKCXByZWVtcHRfZW5hYmxlKCk7Cn0KCnZvaWQgcmVzdG9yZV9w cm9jZXNzb3Jfc3RhdGUodm9pZCkKewoJCQlwcmludGsoIltERUJVR10gYmVmb3JlIF9fcmVzdG9y ZV9wcm9jZXNzb3Jfc3RhdGUoKQolcywlZFxuIixfX0ZJTEVfXyxfX0xJTkVfXyk7CglfX3Jlc3Rv cmVfcHJvY2Vzc29yX3N0YXRlKCk7CgkJCQlwcmludGsoIltERUJVR10gYWZ0ZXIgX19yZXN0b3Jl X3Byb2Nlc3Nvcl9zdGF0ZSgpCiVzLCVkXG4iLF9fRklMRV9fLF9fTElORV9fKTsKfQoKLyogTmVl ZGVkIGJ5IGFwbS5jICovCkVYUE9SVF9TWU1CT0woc2F2ZV9wcm9jZXNzb3Jfc3RhdGUpOwpFWFBP UlRfU1lNQk9MKHJlc3RvcmVfcHJvY2Vzc29yX3N0YXRlKTsKCgo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09Cktlcm5lbCBQYW5pYyBNZXNzYWdlCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0Ka3N3YXBkMCBsZWZ0IHJlZnJp Z2VyYXRvciwga2VybmVsL3Bvd2VyL3Byb2Nlc3MuYyw2Nwppbml0IGxlZnQgcmVmcmlnZXJhdG9y LCBrZXJuZWwvcG93ZXIvcHJvY2Vzcy5jLDY3CkNQVSAwIFVuYWJsZSB0byBoYW5kbGUga2VybmVs IHBhZ2luZyByZXF1ZXN0IGF0IHZpcnR1YWwgYWRkcmVzcwpmZmZmZjY4OSwgZXBjID09ICA4MDFl MjU4YywgcmEgPT0gODAxZTJjNDQKT29wcyBpbiBhcmNoL21pcHMvbW0vZmF1bHQuYzo6ZG9fcGFn ZV9mYXVsdCwgbGluZSAyMDRbIzFdOgpDcHUgMAokIDAgICA6IDAwMDAwMDAwIDEwMDBmODAwIGZm ZmZmNjg5IDgwMzY0NDE4CiQgNCAgIDogODAzNjQwMTggMDAwMDA0MDAgZmZmZmY2ODkgODAzOGZm MzQKJCA4ICAgOiAwMDAwNDY0MiA4MDJmM2UyOCA4MDM3MDAwMCA4MDM3MDAwMAokMTIgICA6IDgw MzcwMDAwIGZmZmZmZmZhIGZmZmZmZmZmIDAwMDAwMDBhCiQxNiAgIDogODAzNjQwMTggODAzNjQ0 MTcgMTAwMGY4MDEgODAzOGZmMzQKJDIwICAgOiAwMDAwMDAwMCA4MDJmMDAwMCA4MDM2NDAxOCAw MDAwMDQwMAokMjQgICA6IDAwMDAwMDAxIDgwMzhmZDIyCiQyOCAgIDogODAzOGUwMDAgODAzOGZl ODAgODAxNGE0MzggODAxZTJjNDQKSGkgICAgOiAwMDAwMDA4MwpMbyAgICA6IGU0MmIyMDAwCmVw YyAgIDogODAxZTI1OGMgdnNucHJpbnRmKzB4NTgvMHg2ZmMgICAgIFRhaW50ZWQ6IFAKcmEgICAg OiA4MDFlMmM0NCB2c2NucHJpbnRmKzB4MTQvMHgzMApTdGF0dXM6IDEwMDBmODAyICAgIEtFUk5F TCBFWEwKQ2F1c2UgOiAwMDgwMDAwOApCYWRWQSA6IGZmZmZmNjg5ClBySWQgIDogMDAwMTg0NDgK TW9kdWxlcyBsaW5rZWQgaW46IHJmcyBhdHl4MjIwIGF0aWZwbGliClByb2Nlc3MgaW5pdCAocGlk OiAxLCB0aHJlYWRpbmZvPTgwMzhlMDAwLCB0YXNrPTgwMzg4YjkwKQpTdGFjayAxOiA4MDMxZTky MCAwMDAwMzA1ZiAwMDAwMzBiMCA4MDJmMDAwMCA4MDJmMDAwMCA4MDJmM2UyOCA4MDM3MDAwMCA4 MDM3MDAwMAogICAgICAgIDAwMDAwNDAwIDgwMmYwMDAwIDEwMDBmODAxIDgwMTRhNDM4IDAwMDAw MDAwIDgwMmYwMDAwIDgwMmUwMDAwIDgwMTRhNDM4CiAgICAgICAgODAxZTJjNDQgMDAwMDMwYjAg ODAxMjZhMjQgODAxMjZiNWMgZmZmZmY2ODkgODAxNGE0MzggODAzNjAwMDAgODAxMjZkMDAKICAg ICAgICA4MDM2NDA2OSA4MDJmMDAwMCAxMDAwZjgwMCA4MDJmM2UyOCAwMDAwMDA1MSA4MDJmMDAw MCAwMDAwMDAwMSA4MDJmMDAwMAogICAgICAgIDgwMTRhNDM4IDgwMTRhNDM4IDAwMDAwMDAwIDgw MTI2ZWRjIDgwMTI2Zjc4IDgwMTRhNDM4IDAwMDAwMDAwIDgwMTI2ZWRjCiAgICAgICAgODAyZTAw MDAgODAxNGE0MzggODAxNGE0NDAgODAxNGE0MzggODAxNGE0MzggODAyZjAwMDAgMDAwMDAwMDEg MDAwMDAwMDAKICAgICAgICA4MDE0YTQzOCA4MDE0YTQzOCA4MDE0YTQzOCA4MDE0YTQzOCA4MDI1 MzA1YyAwMDAwMDAwMCBmZmZmZmZmZiA4MDJkZjEyMAogICAgICAgIDAwMDAwMGZjIDgwMzdhNGM4 IDgwMTRhNDM4IDgwMTRhNDVjIDgwMzhhZTQwIDgwMmYwMDAwIDAwMDAwMDAxIDAwMDAwMDAwCiAg ICAgICAgMDAwMDAwMDMgMGE3Mzc5NzQgN2ZmZjdjNzAgMDAwMDAwMDMgMDA0MTAwMDAgMDAwMDAw MDAgN2ZmZjdmMTQgMDAwMDAwMDEKICAgICAgICAwMDAwMDAwMSAwMDQ0M2YxMCAwMDAwMDAwMCAw MDQ5MmM4MCAwMDAwMDAwMCAwMDAwMDAwMCAxMDAwZTdhMCA3ZmZmN2JhOAogICAgICAgIDAwNDQz ZmQwIDAwNDBiYWY4IDAwMDBmODEzIDAwMDAwMDAwIDAwMDAwMDAwIDEwMDBlNmYwIDEwODAwMDIw IDAwNDcwMzhjCiAgICAgICAgNTU1NTU1NTUgNTU1NTU1NTUgNTU1NTU1NTUgNTU1NTU1NTUgNTU1 NTU1NTUgNTU1NTU1NTUgNTU1NTU1NTUgNTU1NTU1NTUKU3RhY2sgMjogZmZmZmY2ODkgODAzOGZm MzQgMDAwMDQ2NDIgODAyZjNlMjggODAzNzAwMDAgODAzNzAwMDAgODAzNzAwMDAgZmZmZmZmZmEK ICAgICAgICBmZmZmZmZmZiAwMDAwMDAwYSA4MDM2NDAxOCA4MDM2NDQxNyAxMDAwZjgwMSA4MDM4 ZmYzNCAwMDAwMDAwMCA4MDJmMDAwMAogICAgICAgIDgwMzY0MDE4IDAwMDAwNDAwIDAwMDAwMDAx IDgwMzhmZDIyIDgwMTA2M2RjIDgwMTBkNmY0IDgwMzhlMDAwIDgwMzhmZTgwCiAgICAgICAgODAx NGE0MzggODAxZTJjNDQgMTAwMGY4MDIgZTQyYjIwMDAgMDAwMDAwODMgZmZmZmY2ODkgMDA4MDAw MDggODAxZTI1OGMKICAgICAgICAuLi4KQ2FsbCBUcmFjZToKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bf c3VzcGVuZCsweDc4LzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAK IFs8ODAxZTJjNDQ+XSB2c2NucHJpbnRmKzB4MTQvMHgzMAogWzw4MDEyNmEyND5dIHJlbGVhc2Vf Y29uc29sZV9zZW0rMHhlYy8weDM2NAogWzw4MDEyNmI1Yz5dIHJlbGVhc2VfY29uc29sZV9zZW0r MHgyMjQvMHgzNjQKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8ODAx MjZkMDA+XSB2cHJpbnRrKzB4NjQvMHgyYzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsw eDc4LzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8ODAxMjZl ZGM+XSB2cHJpbnRrKzB4MjQwLzB4MmMwCiBbPDgwMTI2Zjc4Pl0gcHJpbnRrKzB4MWMvMHgyOAog Wzw4MDE0YTQzOD5dIHN3c3VzcF9zdXNwZW5kKzB4NzgvMHhjMAogWzw4MDEyNmVkYz5dIHZwcmlu dGsrMHgyNDAvMHgyYzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8 ODAxNGE0NDA+XSBzd3N1c3Bfc3VzcGVuZCsweDgwLzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bf c3VzcGVuZCsweDc4LzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAK IFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1 c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4 YzAKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3VzcGVuZCsweDc4LzB4YzAKIFs8ODAyNTMwNWM+XSBy ZXN0b3JlX3Byb2Nlc3Nvcl9zdGF0ZSsweDI0LzB4NWMKIFs8ODAxNGE0Mzg+XSBzd3N1c3Bfc3Vz cGVuZCsweDc4LzB4YzAKIFs8ODAxNGE0NWM+XSBzd3N1c3Bfc3VzcGVuZCsweDljLzB4YzAKCgoK Q29kZToKICAgICAgICAxODQwMDAwOSAgMjVhZGZmZmYgIDI0MDQwMDIwICAwMjBjMTAyYiAgMDFh MDE4MjEgIDE0NDAwMDAyCjI1YWRmZmZmICBhMTg0MDAwMAogICAgICAgIDFjNjBmZmZhICAyNThj MDAwMSAgMDE4MDE4MjEgIDhmYjcwMDY0ICA4ZmI2MDA2MCAgOGZiNTAwNWMKOGZiNDAwNTggIDhm YjMwMDU0CiAgICAgICAgOGZiMjAwNTAgIDhmYjEwMDRjICA4ZmIwMDA0OCAgMDA2MDEwMjEgIDAz ZTAwMDA4ICAyN2JkMDA2OAowNGUwMDA0MSAgMDAxMTEwODIKICAgICAgICAzMDQyMDAwMSAgMTQ0 MDAwMzMgIDAwMTExMGMyICAzMDQyMDAwMSAgMTA0MGZmOTAgIDAwMTE5MTQyCjI1YWRmZmZmICAw ODA3ODg5MAogICAgICAgIDI0MTUwMDIwICAwODA3ODkyYyAgMDBjNzEwMjUgIDAwMDcxMDAyICAw MDQwMjAyMSAgMTA0MDAwMDQKMjVjZTAwMDEgIDAwNGYwMDFiCiAgICAgICAgMDAwMDIwMTIgIDAw MDAxMDEwICAwMDgwNDAyMSAgMDBjMDM4MjEgIDAwNDAyMDIxICAwMDAwYjAyMQowMDAwYjgyMSAg MTAwMDAwMDYKICAgICAgICAyNDA1MDAyMSAgMDAwNDA4NDAgIDAwMDRiZmMyICAwMDIzMjAyNSAg MDAwNzM4NDAgIDAwMTZiMDQwCjE2ZTAwMDAyICAwMDhmMTgyYgogICAgICAgIDE0NjAwMDAzICAy NGE1ZmZmZiAgMDA4ZjIwMjMgIDI2ZDYwMDAxICAxNGEwZmZmNCAgMDAwNzFmYzIKMDA5NDIwMjEg IDkwODUwMDAwCiAgICAgICAgMDAwODE4MDAgIDAwMDAxMDIxICAwMDAwNTgyMSAgMDA1NjQwMjUg IDAwNmI0ODI1ICAwMTAwMzAyMQowMTIwMzgyMSAgMDEwOTEwMjUKICAgICAgICBhMzI1MDAwMCAg MTQ0MGZmZDkgIDAxZGRjODIxICAwODA3ODg5ZiAgMDMwZTEwMmEgIDI1YWRmZmZmCjA4MDc4ODhm ICAyNDE1MDAyYgogICAgICAgIDAyMGMxMDJiICAxNDQwMDAwMiAgMjQwMjAwMzAgIGExODIwMDAw ICAwODA3ODhiZCAgMjU4YzAwMDEKMDgwNzg4OTggIDI1YWRmZmZlCiAgICAgICAgMDAwNjMwMjMg IDAwMDczODIzICAwMDA2MTAyYiAgMDBlMjM4MjMgIDI1YWRmZmZmICAwODA3ODg4ZgoyNDE1MDAy ZCAgMTA0MDAwMDgKICAgICAgICAyNDAyMDAzMCAgMjU4YzAwMDEgIDAyMGMxMDJiICAxNDQwZmZm MCAgMDAwMDAwMDAgIDkyODIwMDIxCjA4MDc4OTM3ICBhMTgyMDAwMAogICAgICAgIDA4MDc4OTQ0 ICBhMTgyMDAwMCAgMjdiZGZmYjggIGFmYjcwMDNjICBhZmI2MDAzOCAgYWZiMzAwMmMKYWZiZjAw NDAgIGFmYjUwMDM0CiAgICAgICAgYWZiNDAwMzAgIGFmYjIwMDI4ICBhZmIxMDAyNCAgYWZiMDAw MjAgIDAwYTBiODIxICAwMDgwYjAyMQphZmE2MDA1MCAgMDRhMDAwYzcKICAgICAgICAwMGUwOTgy MSAgMDA4NTE4MjEgIDI0NzFmZmZmICAyNDgyZmZmZiAgMDIyMjEwMmIgIDE0NDAwMDIzCjAwODA4 MDIxICAwMGMwMTAyMQogICAgICAgPDkwNDQwMDAwPiAxMDgwMDAxMCAgMDA0MDMwMjEgIDAwMDQx ZTAwICAwMDAzMWUwMyAgMjQwMjAwMjUKMTA2MjAwMWQgIDAyMzAxMDJiCiAgICAgICAgMTQ0MDAw MDQgIDI0YzIwMDAxICBhMjA0MDAwMCAgOGZhNjAwNTAgIDI0YzIwMDAxICAyNjEwMDAwMQphZmEy MDA1MCAgOTA0NDAwMDAKICAgICAgICAxNDgwZmZmMiAgMDA0MDMwMjEgIDAyMzAxMDJiICAxNDQw MDAxZSAgMDIxNjEwMjMgIGEyMDAwMDAwCjhmYmYwMDQwICA4ZmI3MDAzYwogICAgICAgIDhmYjYw MDM4ICA4ZmI1MDAzNCAgOGZiNDAwMzAgIDhmYjMwMDJjICA4ZmIyMDAyOCAgOGZiMTAwMjQKOGZi MDAwMjAgIDAzZTAwMDA4CiAgICAgICAgMjdiZDAwNDggIDI0MTFmZmZmICAwODA3ODk2MiAgMDAw NGI4MjMgIDAwMDA5MDIxICAyNGM2MDAwMQphZmE2MDA1MCAgODBjMjAwMDAKICAgICAgICAyNDQy ZmZlMCAgMmM0MzAwMTEgIDEwNjAwMDBiICAzYzAzODAyZCAgMDAwMjEwODAgIDI0NjM4ZDhjCjAw NDMxMDIxICA4YzQ0MDAwMAogICAgICAgIDAwODAwMDA4ICAwMDAwMDAwMCAgMTJlMGZmZTMgIDAw MDAwMDAwICAwODA3ODk3OSAgYTIyMDAwMDAKOTBjNTAwMDAgIDNjMTQ4MDMyCiAgICAgICAgMjY4 MmQ1NjAgIDMwYTMwMGZmICAwMDYyMTgyMSAgOTA2NDAwMDAgIDAwMDQyMDgyICAzMDg0MDAwMQox NDgwMDA0OSAgMjQxNWZmZmYKICAgICAgICAwMDA1MWUwMCAgMDAwMzFlMDMgIDI0MDIwMDJhICAx MDYyMDA2YyAgMjY2MjAwMDMgIDgwYzMwMDAwCjI0MDIwMDJlICAxMDYyMDA0OAogICAgICAgIDI0 MDhmZmZmICA4MGM0MDAwMCAgMzg4MzAwNjggIDM4ODIwMDZjICAyYzYzMDAwMSAgMmM0MjAwMDEK MDA2MjE4MjUgIDE0NjAwMDI1CiAgICAgICAgMjQwNWZmZmYgIDI0MDIwMDRjICAxMDgyMDAyMiAg MjQwMjAwNWEgIDEwODIwMDIwICAyNDAyMDA3YQoxMDgyMDAxZSAgMDAwMDAwMDAKICAgICAgICA4 MGMzMDAwMCAgMjQ2M2ZmZGIgIDJjNjIwMDU0ICAxNDQwMDAyNSAgMjQwOTAwMGEgIDAyMzAxMDJi CjE0NDAwMDAzICAyNDAyMDAyNQogICAgICAgIGEyMDIwMDAwICA4ZmE2MDA1MCAgOTBjMzAwMDAg IDEwNjAwMDNkICAyNjEwMDAwMSAgMDIzMDEwMmIKMTQ0MGZmYTYgIDI0YzIwMDAxCiAgICAgICAg YTIwMzAwMDAgIDA4MDc4OTZmICA4ZmE2MDA1MCAgMDgwNzg5ODggIDM2NTIwMDAxICAwODA3ODk4 OAozNjUyMDAxMCAgMDgwNzg5ODgKICAgICAgICAzNjUyMDAwNCAgMDgwNzg5ODggIDM2NTIwMDIw ICAwODA3ODk4OCAgMzY1MjAwMDggIDgwYzUwMDAwCjI0MDIwMDZjICAyNGM2MDAwMQogICAgICAg IDE0YTJmZmRmICBhZmE2MDA1MCAgODBjMjAwMDAgIDE0NDVmZmRjICAwMDAwMDAwMCAgMjRjNjAw MDEKMjQwNTAwNGMgIDA4MDc4OWJiCgpLZXJuZWwgcGFuaWMgLSBub3Qgc3luY2luZzogQXR0ZW1w dGVkIHRvIGtpbGwgaW5pdCEKCi0tIApIeW9uIExpbSAowNPH9ikKTW9iaWxlLiAwMTAtODIxMi0x MjQwIChJbnRsJyBDYWxsIDogKzgyLTEwLTgyMTItMTI0MCkKRmF4LiAwMzItMjMyLTA1NzggKElu dGwnIEF2YWlsYWJsZSkKSG9tZXBhZ2UgOiBodHRwOi8vd3d3LmFsZXhsYWIubmV0CkJsb2cgOiBo dHRwOi8vd3d3LmFsZXhsYWIubmV0L2Jsb2cK