From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 478 invoked by alias); 5 Feb 2003 17:16:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 453 invoked by uid 71); 5 Feb 2003 17:16:00 -0000 Resent-Date: 5 Feb 2003 17:16:00 -0000 Resent-Message-ID: <20030205171600.452.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, cleeland@ociweb.com Received: (qmail 24777 invoked by uid 48); 5 Feb 2003 17:07:10 -0000 Message-Id: <20030205170710.24776.qmail@sources.redhat.com> Date: Wed, 05 Feb 2003 17:16:00 -0000 From: cleeland@ociweb.com Reply-To: cleeland@ociweb.com To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: ada/9587: Storage_Error stack overflow (or erroneous memory access) building gnats from RPM X-SW-Source: 2003-02/txt/msg00264.txt.bz2 List-Id: >Number: 9587 >Category: ada >Synopsis: Storage_Error stack overflow (or erroneous memory access) building gnats from RPM >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Wed Feb 05 17:16:00 UTC 2003 >Closed-Date: >Last-Modified: >Originator: Chris Cleeland >Release: gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >Organization: >Environment: Linux bobke.ociweb.com 2.4.18-19.8.0usbhack #20 Tue Jan 28 00:40:21 CST 2003 i686 i686 i386 GNU/Linux Redhat 8.0 with standard updates. [root@bobke redhat]# gcc -v Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.2/specs Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit Thread model: posix gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7) >Description: gcc -c -g -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -W -Wall -gnatpg -gnata -I- -I. -I../../../gcc/ada ../../../gcc/ada/lib.adb +===========================GNAT BUG DETECTED==============================+ | 3.2 20020903 (3.2-7) (i386-redhat-linux-gnu) Storage_Error stack overflow (or erroneous memory access)| | Error detected at ../../../gcc/ada/namet.ads:148:4 | | Please submit a bug report, see http://gcc.gnu.org/bugs.html. | | Include the entire contents of this bug box in the report. | | Include the exact gcc or gnatmake command that you entered. | | Also include sources listed below in gnatchop format | | (concatenated together with no headers between files). | +==========================================================================+ Please include these source files with error report ../../../gcc/ada/lib.adb ../../../gcc/ada/lib.ads ../../../gcc/ada/alloc.ads ../../../gcc/ada/table.ads ../../../gcc/ada/types.ads ../../../gcc/ada/atree.ads ../../../gcc/ada/sinfo.ads ../../../gcc/ada/uintp.ads ../../../gcc/ada/urealp.ads ../../../gcc/ada/einfo.ads ../../../gcc/ada/snames.ads ../../../gcc/ada/fname.ads ../../../gcc/ada/namet.ads ../../../gcc/ada/output.ads ../../../gcc/ada/sinput.ads ../../../gcc/ada/casing.ads ../../../gcc/ada/stand.ads ../../../gcc/ada/stringt.ads ../../../gcc/ada/tree_io.ads >How-To-Repeat: The easiest way to try to repeat is to, on an updated Redhat 8.0 system, download the SRPM for gcc-3.2.1-7 and try to build it. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="gnatbugsource" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gnatbugsource" LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICBHTkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAg ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEwgSSBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCIG8g ZCB5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuMi4xMC4xICQK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS0KLS0gR05BVCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRl IGl0ICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3 YXJlICBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlci0gLS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFO VFk7ICB3aXRob3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSAtLQotLSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hv dWxkIGhhdmUgIHJlY2VpdmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1Ymxp YyBMaWNlbnNlICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYg bm90LCB3cml0ZSAtLQotLSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRl bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNB LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3Ro ZXIgZmlsZXMgIGluc3RhbnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3Ig eW91IGxpbmsgIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1 dGFibGUsIC0tCi0tIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSBy ZXN1bHRpbmcgIGV4ZWN1dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAg R2VuZXJhbCAgUHVibGljICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0g aG93ZXZlciBpbnZhbGlkYXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxl IGZpbGUgIG1pZ2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2Uu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gR05BVCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0g YXQgIE5ldyBZb3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdl cmUgcHJvdmlkZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpwcmFnbWEgU3R5bGVfQ2hlY2tz IChBbGxfQ2hlY2tzKTsKLS0gIFN1YnByb2dyYW0gb3JkZXJpbmcgbm90IGVuZm9yY2VkIGluIHRo aXMgdW5pdAotLSAgKGJlY2F1c2Ugb2Ygc29tZSBsb2dpY2FsIGdyb3VwaW5ncykuCgp3aXRoIEF0 cmVlOyAgIHVzZSBBdHJlZTsKd2l0aCBFaW5mbzsgICB1c2UgRWluZm87CndpdGggRm5hbWU7ICAg dXNlIEZuYW1lOwp3aXRoIE5hbWV0OyAgIHVzZSBOYW1ldDsKd2l0aCBOYW1ldDsgICB1c2UgTmFt ZXQ7CndpdGggT3V0cHV0OyAgdXNlIE91dHB1dDsKd2l0aCBTaW5mbzsgICB1c2UgU2luZm87Cndp dGggU2lucHV0OyAgdXNlIFNpbnB1dDsKd2l0aCBTdGFuZDsgICB1c2UgU3RhbmQ7CndpdGggU3Ry aW5ndDsgdXNlIFN0cmluZ3Q7CndpdGggVHJlZV9JTzsgdXNlIFRyZWVfSU87CndpdGggVW5hbWU7 ICAgdXNlIFVuYW1lOwoKcGFja2FnZSBib2R5IExpYiBpcwoKICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgLS0gTG9jYWwgU3VicHJvZ3JhbXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCiAgIHR5cGUgU0VVX1Jlc3VsdCBpcyAoCiAgICAgIFllc19CZWZvcmUsIC0tIFMxIGlzIGlu IHNhbWUgZXh0ZW5kZWQgdW5pdCBhcyBTMiBhbmQgYXBwZWFycyBiZWZvcmUgaXQKICAgICAgWWVz X1NhbWUsICAgLS0gUzEgaXMgaW4gc2FtZSBleHRlbmRlZCB1bml0IGFzIFMyLCBTbG9jcyBhcmUg dGhlIHNhbWUKICAgICAgWWVzX0FmdGVyLCAgLS0gUzEgaXMgaW4gc2FtZSBleHRlbmRlZCB1bml0 IGFzIFMyLCBhbmQgYXBwZWFycyBhZnRlciBpdAogICAgICBObyk7ICAgICAgICAtLSBTMiBpcyBu b3QgaW4gc2FtZSBleHRlbmRlZCB1bml0IGFzIFMyCgogICBmdW5jdGlvbiBDaGVja19TYW1lX0V4 dGVuZGVkX1VuaXQgKFMxLCBTMiA6IFNvdXJjZV9QdHIpIHJldHVybiBTRVVfUmVzdWx0OwogICAt LSAgVXNlZCBieSBJbl9TYW1lX0V4dGVuZGVkX1VuaXQgYW5kIEVhcmxpZXJfSW5fRXh0ZW5kZWRf VW5pdC4gUmV0dXJucwogICAtLSAgdmFsdWUgYXMgZGVzY3JpYmVkIGFib3ZlLgoKICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQWNjZXNzIEZ1bmN0 aW9ucyBmb3IgVW5pdCBUYWJsZSBGaWVsZHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEN1bml0IChVIDogVW5pdF9OdW1iZXJf VHlwZSkgcmV0dXJuIE5vZGVfSWQgaXMKICAgYmVnaW4KICAgICAgcmV0dXJuIFVuaXRzLlRhYmxl IChVKS5DdW5pdDsKICAgZW5kIEN1bml0OwoKICAgZnVuY3Rpb24gQ3VuaXRfRW50aXR5IChVIDog VW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIEVudGl0eV9JZCBpcwogICBiZWdpbgogICAgICByZXR1 cm4gVW5pdHMuVGFibGUgKFUpLkN1bml0X0VudGl0eTsKICAgZW5kIEN1bml0X0VudGl0eTsKCiAg IGZ1bmN0aW9uIERlcGVuZGVuY3lfTnVtIChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIE5h dCBpcwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMuVGFibGUgKFUpLkRlcGVuZGVuY3lfTnVt OwogICBlbmQgRGVwZW5kZW5jeV9OdW07CgogICBmdW5jdGlvbiBEZXBlbmRlbnRfVW5pdCAoVSA6 IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBCb29sZWFuIGlzCiAgIGJlZ2luCiAgICAgIHJldHVy biBVbml0cy5UYWJsZSAoVSkuRGVwZW5kZW50X1VuaXQ7CiAgIGVuZCBEZXBlbmRlbnRfVW5pdDsK CiAgIGZ1bmN0aW9uIER5bmFtaWNfRWxhYiAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBC b29sZWFuIGlzCiAgIGJlZ2luCiAgICAgIHJldHVybiBVbml0cy5UYWJsZSAoVSkuRHluYW1pY19F bGFiOwogICBlbmQgRHluYW1pY19FbGFiOwoKICAgZnVuY3Rpb24gRXJyb3JfTG9jYXRpb24gKFUg OiBVbml0X051bWJlcl9UeXBlKSByZXR1cm4gU291cmNlX1B0ciBpcwogICBiZWdpbgogICAgICBy ZXR1cm4gVW5pdHMuVGFibGUgKFUpLkVycm9yX0xvY2F0aW9uOwogICBlbmQgRXJyb3JfTG9jYXRp b247CgogICBmdW5jdGlvbiBFeHBlY3RlZF9Vbml0IChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0 dXJuIFVuaXRfTmFtZV9UeXBlIGlzCiAgIGJlZ2luCiAgICAgIHJldHVybiBVbml0cy5UYWJsZSAo VSkuRXhwZWN0ZWRfVW5pdDsKICAgZW5kIEV4cGVjdGVkX1VuaXQ7CgogICBmdW5jdGlvbiBGYXRh bF9FcnJvciAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBCb29sZWFuIGlzCiAgIGJlZ2lu CiAgICAgIHJldHVybiBVbml0cy5UYWJsZSAoVSkuRmF0YWxfRXJyb3I7CiAgIGVuZCBGYXRhbF9F cnJvcjsKCiAgIGZ1bmN0aW9uIEdlbmVyYXRlX0NvZGUgKFUgOiBVbml0X051bWJlcl9UeXBlKSBy ZXR1cm4gQm9vbGVhbiBpcwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMuVGFibGUgKFUpLkdl bmVyYXRlX0NvZGU7CiAgIGVuZCBHZW5lcmF0ZV9Db2RlOwoKICAgZnVuY3Rpb24gSGFzX1JBQ1cg KFUgOiBVbml0X051bWJlcl9UeXBlKSByZXR1cm4gQm9vbGVhbiBpcwogICBiZWdpbgogICAgICBy ZXR1cm4gVW5pdHMuVGFibGUgKFUpLkhhc19SQUNXOwogICBlbmQgSGFzX1JBQ1c7CgogICBmdW5j dGlvbiBJZGVudF9TdHJpbmcgKFUgOiBVbml0X051bWJlcl9UeXBlKSByZXR1cm4gTm9kZV9JZCBp cwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMuVGFibGUgKFUpLklkZW50X1N0cmluZzsKICAg ZW5kIElkZW50X1N0cmluZzsKCiAgIGZ1bmN0aW9uIExvYWRpbmcgKFUgOiBVbml0X051bWJlcl9U eXBlKSByZXR1cm4gQm9vbGVhbiBpcwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMuVGFibGUg KFUpLkxvYWRpbmc7CiAgIGVuZCBMb2FkaW5nOwoKICAgZnVuY3Rpb24gTWFpbl9Qcmlvcml0eSAo VSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBJbnQgaXMKICAgYmVnaW4KICAgICAgcmV0dXJu IFVuaXRzLlRhYmxlIChVKS5NYWluX1ByaW9yaXR5OwogICBlbmQgTWFpbl9Qcmlvcml0eTsKCiAg IGZ1bmN0aW9uIFNvdXJjZV9JbmRleCAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBTb3Vy Y2VfRmlsZV9JbmRleCBpcwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMuVGFibGUgKFUpLlNv dXJjZV9JbmRleDsKICAgZW5kIFNvdXJjZV9JbmRleDsKCiAgIGZ1bmN0aW9uIFVuaXRfRmlsZV9O YW1lIChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIEZpbGVfTmFtZV9UeXBlIGlzCiAgIGJl Z2luCiAgICAgIHJldHVybiBVbml0cy5UYWJsZSAoVSkuVW5pdF9GaWxlX05hbWU7CiAgIGVuZCBV bml0X0ZpbGVfTmFtZTsKCiAgIGZ1bmN0aW9uIFVuaXRfTmFtZSAoVSA6IFVuaXRfTnVtYmVyX1R5 cGUpIHJldHVybiBVbml0X05hbWVfVHlwZSBpcwogICBiZWdpbgogICAgICByZXR1cm4gVW5pdHMu VGFibGUgKFUpLlVuaXRfTmFtZTsKICAgZW5kIFVuaXRfTmFtZTsKCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTdWJwcm9ncmFtcyB0byBTZXQgVW5p dCBUYWJsZSBGaWVsZHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0N1bml0IChVIDogVW5pdF9OdW1iZXJfVHlwZTsgTiA6 IE5vZGVfSWQpIGlzCiAgIGJlZ2luCiAgICAgIFVuaXRzLlRhYmxlIChVKS5DdW5pdCA6PSBOOwog ICBlbmQgU2V0X0N1bml0OwoKICAgcHJvY2VkdXJlIFNldF9DdW5pdF9FbnRpdHkgKFUgOiBVbml0 X051bWJlcl9UeXBlOyBFIDogRW50aXR5X0lkKSBpcwogICBiZWdpbgogICAgICBVbml0cy5UYWJs ZSAoVSkuQ3VuaXRfRW50aXR5IDo9IEU7CiAgICAgIFNldF9Jc19Db21waWxhdGlvbl9Vbml0IChF KTsKICAgZW5kIFNldF9DdW5pdF9FbnRpdHk7CgogICBwcm9jZWR1cmUgU2V0X0R5bmFtaWNfRWxh YiAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IEIgOiBCb29sZWFuIDo9IFRydWUpIGlzCiAgIGJlZ2lu CiAgICAgIFVuaXRzLlRhYmxlIChVKS5EeW5hbWljX0VsYWIgOj0gQjsKICAgZW5kIFNldF9EeW5h bWljX0VsYWI7CgogICBwcm9jZWR1cmUgU2V0X0Vycm9yX0xvY2F0aW9uIChVIDogVW5pdF9OdW1i ZXJfVHlwZTsgVyA6IFNvdXJjZV9QdHIpIGlzCiAgIGJlZ2luCiAgICAgIFVuaXRzLlRhYmxlIChV KS5FcnJvcl9Mb2NhdGlvbiA6PSBXOwogICBlbmQgU2V0X0Vycm9yX0xvY2F0aW9uOwoKICAgcHJv Y2VkdXJlIFNldF9GYXRhbF9FcnJvciAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IEIgOiBCb29sZWFu IDo9IFRydWUpIGlzCiAgIGJlZ2luCiAgICAgIFVuaXRzLlRhYmxlIChVKS5GYXRhbF9FcnJvciA6 PSBUcnVlOwogICBlbmQgU2V0X0ZhdGFsX0Vycm9yOwoKICAgcHJvY2VkdXJlIFNldF9HZW5lcmF0 ZV9Db2RlIChVIDogVW5pdF9OdW1iZXJfVHlwZTsgQiA6IEJvb2xlYW4gOj0gVHJ1ZSkgaXMKICAg YmVnaW4KICAgICAgVW5pdHMuVGFibGUgKFUpLkdlbmVyYXRlX0NvZGUgOj0gQjsKICAgZW5kIFNl dF9HZW5lcmF0ZV9Db2RlOwoKICAgcHJvY2VkdXJlIFNldF9IYXNfUkFDVyAoVSA6IFVuaXRfTnVt YmVyX1R5cGU7IEIgOiBCb29sZWFuIDo9IFRydWUpIGlzCiAgIGJlZ2luCiAgICAgIFVuaXRzLlRh YmxlIChVKS5IYXNfUkFDVyA6PSBCOwogICBlbmQgU2V0X0hhc19SQUNXOwoKICAgcHJvY2VkdXJl IFNldF9JZGVudF9TdHJpbmcgKFUgOiBVbml0X051bWJlcl9UeXBlOyBOIDogTm9kZV9JZCkgaXMK ICAgYmVnaW4KICAgICAgVW5pdHMuVGFibGUgKFUpLklkZW50X1N0cmluZyA6PSBOOwogICBlbmQg U2V0X0lkZW50X1N0cmluZzsKCiAgIHByb2NlZHVyZSBTZXRfTG9hZGluZyAoVSA6IFVuaXRfTnVt YmVyX1R5cGU7IEIgOiBCb29sZWFuIDo9IFRydWUpIGlzCiAgIGJlZ2luCiAgICAgIFVuaXRzLlRh YmxlIChVKS5Mb2FkaW5nIDo9IEI7CiAgIGVuZCBTZXRfTG9hZGluZzsKCiAgIHByb2NlZHVyZSBT ZXRfTWFpbl9Qcmlvcml0eSAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IFAgOiBJbnQpIGlzCiAgIGJl Z2luCiAgICAgIFVuaXRzLlRhYmxlIChVKS5NYWluX1ByaW9yaXR5IDo9IFA7CiAgIGVuZCBTZXRf TWFpbl9Qcmlvcml0eTsKCiAgIHByb2NlZHVyZSBTZXRfVW5pdF9OYW1lIChVIDogVW5pdF9OdW1i ZXJfVHlwZTsgTiA6IFVuaXRfTmFtZV9UeXBlKSBpcwogICBiZWdpbgogICAgICBVbml0cy5UYWJs ZSAoVSkuVW5pdF9OYW1lIDo9IE47CiAgIGVuZCBTZXRfVW5pdF9OYW1lOwoKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIENoZWNrX1NhbWVfRXh0ZW5kZWRfVW5pdCAtLQog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIENoZWNrX1NhbWVf RXh0ZW5kZWRfVW5pdCAoUzEsIFMyIDogU291cmNlX1B0cikgcmV0dXJuIFNFVV9SZXN1bHQgaXMK ICAgICAgU2xvYzEgIDogU291cmNlX1B0cjsKICAgICAgU2xvYzIgIDogU291cmNlX1B0cjsKICAg ICAgU2luZDEgIDogU291cmNlX0ZpbGVfSW5kZXg7CiAgICAgIFNpbmQyICA6IFNvdXJjZV9GaWxl X0luZGV4OwogICAgICBJbnN0MSAgOiBTb3VyY2VfUHRyOwogICAgICBJbnN0MiAgOiBTb3VyY2Vf UHRyOwogICAgICBVbnVtMSAgOiBVbml0X051bWJlcl9UeXBlOwogICAgICBVbnVtMiAgOiBVbml0 X051bWJlcl9UeXBlOwogICAgICBVbml0MSAgOiBOb2RlX0lkOwogICAgICBVbml0MiAgOiBOb2Rl X0lkOwogICAgICBEZXB0aDEgOiBOYXQ7CiAgICAgIERlcHRoMiA6IE5hdDsKCiAgIGJlZ2luCiAg ICAgIGlmIFMxID0gTm9fTG9jYXRpb24gb3IgZWxzZSBTMiA9IE5vX0xvY2F0aW9uIHRoZW4KICAg ICAgICAgcmV0dXJuIE5vOwoKICAgICAgZWxzaWYgUzEgPSBTdGFuZGFyZF9Mb2NhdGlvbiB0aGVu CiAgICAgICAgIGlmIFMyID0gU3RhbmRhcmRfTG9jYXRpb24gdGhlbgogICAgICAgICAgICByZXR1 cm4gWWVzX1NhbWU7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgcmV0dXJuIE5vOwogICAgICAg ICBlbmQgaWY7CgogICAgICBlbHNpZiBTMiA9IFN0YW5kYXJkX0xvY2F0aW9uIHRoZW4KICAgICAg ICAgcmV0dXJuIE5vOwogICAgICBlbmQgaWY7CgogICAgICBTbG9jMSA6PSBTMTsKICAgICAgU2xv YzIgOj0gUzI7CiAgICAgIFVudW0xIDo9IEdldF9Db2RlX1VuaXQgKFNsb2MxKTsKICAgICAgVW51 bTIgOj0gR2V0X0NvZGVfVW5pdCAoU2xvYzIpOwoKICAgICAgbG9vcAogICAgICAgICBTaW5kMSA6 PSBHZXRfU291cmNlX0ZpbGVfSW5kZXggKFNsb2MxKTsKICAgICAgICAgU2luZDIgOj0gR2V0X1Nv dXJjZV9GaWxlX0luZGV4IChTbG9jMik7CgogICAgICAgICBpZiBTaW5kMSA9IFNpbmQyIHRoZW4K ICAgICAgICAgICAgaWYgU2xvYzEgPCBTbG9jMiB0aGVuCiAgICAgICAgICAgICAgIHJldHVybiBZ ZXNfQmVmb3JlOwogICAgICAgICAgICBlbHNpZiBTbG9jMSA+IFNsb2MyIHRoZW4KICAgICAgICAg ICAgICAgcmV0dXJuIFllc19BZnRlcjsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICBy ZXR1cm4gWWVzX1NhbWU7CiAgICAgICAgICAgIGVuZCBpZjsKICAgICAgICAgZW5kIGlmOwoKICAg ICAgICAgLS0gIE9LLCB0aGUgdHdvIG5vZGVzIGFyZSBpbiBzZXBhcmF0ZSBzb3VyY2UgZWxlbWVu dHMsIGJ1dCB0aGlzIGlzIG5vdAogICAgICAgICAtLSAgZGVjaXNpdmUsIGJlY2F1c2Ugb2YgdGhl IGlzc3VlIG9mIHN1YnVuaXRzIGFuZCBpbnN0YW50aWF0aW9ucy4KCiAgICAgICAgIC0tICBGaXJz dCB3ZSBkZWFsIHdpdGggc3VidW5pdHMsIHNpbmNlIGlmIHRoZSBzdWJ1bml0IGlzIGluIGFuCiAg ICAgICAgIC0tICBpbnN0YW50aWF0aW9uLCB3ZSBrbm93IHRoYXQgdGhlIHBhcmVudCBpcyBpbiB0 aGUgY29ycmVzcG9uZGluZwogICAgICAgICAtLSAgaW5zdGFudGlhdGlvbiwgc2luY2UgdGhhdCBp cyB0aGUgb25seSB3YXkgd2UgY2FuIGhhdmUgYSBzdWJ1bml0CiAgICAgICAgIC0tICB0aGF0IGlz IHBhcnQgb2YgYW4gaW5zdGFudGlhdGlvbi4KCiAgICAgICAgIFVuaXQxIDo9IFVuaXQgKEN1bml0 IChVbnVtMSkpOwogICAgICAgICBVbml0MiA6PSBVbml0IChDdW5pdCAoVW51bTIpKTsKCiAgICAg ICAgIGlmIE5raW5kIChVbml0MSkgPSBOX1N1YnVuaXQKICAgICAgICAgICBhbmQgdGhlbiBQcmVz ZW50IChDb3JyZXNwb25kaW5nX1N0dWIgKFVuaXQxKSkKICAgICAgICAgdGhlbgogICAgICAgICAg ICAtLSAgQm90aCBpbiBzdWJ1bml0cy4gVGhleSBjb3VsZCBoYXZlIGEgY29tbW9uIGFuY2VzdG9y LiBJZiB0aGV5CiAgICAgICAgICAgIC0tICBkbywgdGhlbiB0aGUgZGVlcGVyIG9uZSBtdXN0IGhh dmUgYSBsb25nZXIgdW5pdCBuYW1lLiBSZXBsYWNlCiAgICAgICAgICAgIC0tICB0aGUgZGVlcGVy IG9uZSB3aXRoIGl0cyBjb3JyZXNwb25kaW5nIHN0dWIsIGluIG9yZGVyIHRvIGZpbmQKICAgICAg ICAgICAgLS0gIG5lYXJlc3QgY29tbW9uIGFuY2VzdG9yLCBpZiBhbnkuCgogICAgICAgICAgICBp ZiBOa2luZCAoVW5pdDIpID0gTl9TdWJ1bml0CiAgICAgICAgICAgICAgYW5kIHRoZW4gUHJlc2Vu dCAoQ29ycmVzcG9uZGluZ19TdHViIChVbml0MikpCiAgICAgICAgICAgIHRoZW4KICAgICAgICAg ICAgICAgaWYgTGVuZ3RoX09mX05hbWUgKFVuaXRfTmFtZSAoVW51bTEpKSA8CiAgICAgICAgICAg ICAgICAgIExlbmd0aF9PZl9OYW1lIChVbml0X05hbWUgKFVudW0yKSkKICAgICAgICAgICAgICAg dGhlbgogICAgICAgICAgICAgICAgICBTbG9jMiA6PSBTbG9jIChDb3JyZXNwb25kaW5nX1N0dWIg KFVuaXQyKSk7CiAgICAgICAgICAgICAgICAgIFVudW0yIDo9IEdldF9Tb3VyY2VfVW5pdCAoU2xv YzIpOwogICAgICAgICAgICAgICAgICBnb3RvIENvbnRpbnVlOwoKICAgICAgICAgICAgICAgZWxz ZQogICAgICAgICAgICAgICAgICBTbG9jMSA6PSBTbG9jIChDb3JyZXNwb25kaW5nX1N0dWIgKFVu aXQxKSk7CiAgICAgICAgICAgICAgICAgIFVudW0xIDo9IEdldF9Tb3VyY2VfVW5pdCAoU2xvYzEp OwogICAgICAgICAgICAgICAgICBnb3RvIENvbnRpbnVlOwogICAgICAgICAgICAgICBlbmQgaWY7 CgogICAgICAgICAgICAtLSAgTm9kMSBpbiBzdWJ1bml0LCBOb2QyIG5vdAoKICAgICAgICAgICAg ZWxzZQogICAgICAgICAgICAgICBTbG9jMSA6PSBTbG9jIChDb3JyZXNwb25kaW5nX1N0dWIgKFVu aXQxKSk7CiAgICAgICAgICAgICAgIFVudW0xIDo9IEdldF9Tb3VyY2VfVW5pdCAoU2xvYzEpOwog ICAgICAgICAgICAgICBnb3RvIENvbnRpbnVlOwogICAgICAgICAgICBlbmQgaWY7CgogICAgICAg ICAtLSAgTm9kMiBpbiBzdWJ1bml0LCBOb2QxIG5vdAoKICAgICAgICAgZWxzaWYgTmtpbmQgKFVu aXQyKSA9IE5fU3VidW5pdAogICAgICAgICAgIGFuZCB0aGVuIFByZXNlbnQgKENvcnJlc3BvbmRp bmdfU3R1YiAoVW5pdDIpKQogICAgICAgICB0aGVuCiAgICAgICAgICAgIFNsb2MyIDo9IFNsb2Mg KENvcnJlc3BvbmRpbmdfU3R1YiAoVW5pdDIpKTsKICAgICAgICAgICAgVW51bTIgOj0gR2V0X1Nv dXJjZV9Vbml0IChTbG9jMik7CiAgICAgICAgICAgIGdvdG8gQ29udGludWU7CiAgICAgICAgIGVu ZCBpZjsKCiAgICAgICAgIC0tICBBdCB0aGlzIHN0YWdlIHdlIGtub3cgdGhhdCBuZWl0aGVyIGlz IGEgc3VidW5pdCwgc28gd2UgZGVhbAogICAgICAgICAtLSAgd2l0aCBpbnN0YW50aWF0aW9ucywg c2luY2Ugd2UgY3VsZCBoYXZlIGEgY29tbW9uIGFuY2VzdG9yCgogICAgICAgICBJbnN0MSA6PSBJ bnN0YW50aWF0aW9uIChTaW5kMSk7CiAgICAgICAgIEluc3QyIDo9IEluc3RhbnRpYXRpb24gKFNp bmQyKTsKCiAgICAgICAgIGlmIEluc3QxIC89IE5vX0xvY2F0aW9uIHRoZW4KCiAgICAgICAgICAg IC0tICBCb3RoIGFyZSBpbnN0YW50aWF0aW9ucwoKICAgICAgICAgICAgaWYgSW5zdDIgLz0gTm9f TG9jYXRpb24gdGhlbgoKICAgICAgICAgICAgICAgRGVwdGgxIDo9IEluc3RhbnRpYXRpb25fRGVw dGggKFNsb2MxKTsKICAgICAgICAgICAgICAgRGVwdGgyIDo9IEluc3RhbnRpYXRpb25fRGVwdGgg KFNsb2MyKTsKCiAgICAgICAgICAgICAgIGlmIERlcHRoMSA8IERlcHRoMiB0aGVuCiAgICAgICAg ICAgICAgICAgIFNsb2MyIDo9IEluc3QyOwogICAgICAgICAgICAgICAgICBVbnVtMiA6PSBHZXRf U291cmNlX1VuaXQgKFNsb2MyKTsKICAgICAgICAgICAgICAgICAgZ290byBDb250aW51ZTsKCiAg ICAgICAgICAgICAgIGVsc2lmIERlcHRoMSA+IERlcHRoMiB0aGVuCiAgICAgICAgICAgICAgICAg IFNsb2MxIDo9IEluc3QxOwogICAgICAgICAgICAgICAgICBVbnVtMSA6PSBHZXRfU291cmNlX1Vu aXQgKFNsb2MxKTsKICAgICAgICAgICAgICAgICAgZ290byBDb250aW51ZTsKCiAgICAgICAgICAg ICAgIGVsc2UKICAgICAgICAgICAgICAgICAgU2xvYzEgOj0gSW5zdDE7CiAgICAgICAgICAgICAg ICAgIFNsb2MyIDo9IEluc3QyOwogICAgICAgICAgICAgICAgICBVbnVtMSA6PSBHZXRfU291cmNl X1VuaXQgKFNsb2MxKTsKICAgICAgICAgICAgICAgICAgVW51bTIgOj0gR2V0X1NvdXJjZV9Vbml0 IChTbG9jMik7CiAgICAgICAgICAgICAgICAgIGdvdG8gQ29udGludWU7CiAgICAgICAgICAgICAg IGVuZCBpZjsKCiAgICAgICAgICAgIC0tICBPbmx5IGZpcnN0IG5vZGUgaXMgaW4gaW5zdGFudGlh dGlvbgoKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICBTbG9jMSA6PSBJbnN0MTsKICAg ICAgICAgICAgICAgVW51bTEgOj0gR2V0X1NvdXJjZV9Vbml0IChTbG9jMSk7CiAgICAgICAgICAg ICAgIGdvdG8gQ29udGludWU7CiAgICAgICAgICAgIGVuZCBpZjsKCiAgICAgICAgIC0tICBPbmx5 IHNlY29uZCBub2RlIGlzIGluc3RhbnRpYXRpb24KCiAgICAgICAgIGVsc2lmIEluc3QyIC89IE5v X0xvY2F0aW9uIHRoZW4KICAgICAgICAgICAgU2xvYzIgOj0gSW5zdDI7CiAgICAgICAgICAgIFVu dW0yIDo9IEdldF9Tb3VyY2VfVW5pdCAoU2xvYzIpOwogICAgICAgICAgICBnb3RvIENvbnRpbnVl OwogICAgICAgICBlbmQgaWY7CgogICAgICAgICAtLSAgTm8gaW5zdGFudGlhdGlvbnMgaW52b2x2 ZWQsIHNvIHdlIGFyZSBub3QgaW4gdGhlIHNhbWUgdW5pdAogICAgICAgICAtLSAgSG93ZXZlciwg dGhlcmUgaXMgb25lIGNhc2Ugc3RpbGwgdG8gY2hlY2ssIG5hbWVseSB0aGUgY2FzZQogICAgICAg ICAtLSAgd2hlcmUgb25lIGxvY2F0aW9uIGlzIGluIHRoZSBzcGVjLCBhbmQgdGhlIG90aGVyIGlu IHRoZQogICAgICAgICAtLSAgY29ycmVzcG9uZGluZyBib2R5ICh0aGUgc3BlYyBsb2NhdGlvbiBp cyBlYXJsaWVyKS4KCiAgICAgICAgIGlmIE5raW5kIChVbml0MSkgPSBOX1N1YnByb2dyYW1fQm9k eQogICAgICAgICAgICAgIG9yIGVsc2UKICAgICAgICAgICAgTmtpbmQgKFVuaXQxKSA9IE5fUGFj a2FnZV9Cb2R5CiAgICAgICAgIHRoZW4KICAgICAgICAgICAgaWYgTGlicmFyeV9Vbml0IChDdW5p dCAoVW51bTEpKSA9IEN1bml0IChVbnVtMikgdGhlbgogICAgICAgICAgICAgICByZXR1cm4gWWVz X0FmdGVyOwogICAgICAgICAgICBlbmQgaWY7CgogICAgICAgICBlbHNpZiBOa2luZCAoVW5pdDIp ID0gTl9TdWJwcm9ncmFtX0JvZHkKICAgICAgICAgICAgICAgICBvciBlbHNlCiAgICAgICAgICAg ICAgIE5raW5kIChVbml0MikgPSBOX1BhY2thZ2VfQm9keQogICAgICAgICB0aGVuCiAgICAgICAg ICAgIGlmIExpYnJhcnlfVW5pdCAoQ3VuaXQgKFVudW0yKSkgPSBDdW5pdCAoVW51bTEpIHRoZW4K ICAgICAgICAgICAgICAgcmV0dXJuIFllc19CZWZvcmU7CiAgICAgICAgICAgIGVuZCBpZjsKICAg ICAgICAgZW5kIGlmOwoKICAgICAgICAgLS0gIElmIHRoYXQgc3BlY2lhbCBjYXNlIGRvZXMgbm90 IG9jY3VyLCB0aGVuIHdlIGFyZSBjZXJ0YWluIHRoYXQKICAgICAgICAgLS0gIHRoZSB0d28gbG9j YXRpb25zIGFyZSByZWFsbHkgaW4gc2VwYXJhdGUgdW5pdHMuCgogICAgICAgICByZXR1cm4gTm87 CgogICAgICAgICA8PENvbnRpbnVlPj4KICAgICAgICAgICAgbnVsbDsKICAgICAgZW5kIGxvb3A7 CgogICBlbmQgQ2hlY2tfU2FtZV9FeHRlbmRlZF9Vbml0OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgIC0tIEVhcmxpZXJfSW5fRXh0ZW5kZWRfVW5pdCAtLQogICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEVhcmxpZXJfSW5fRXh0ZW5kZWRf VW5pdCAoUzEsIFMyIDogU291cmNlX1B0cikgcmV0dXJuIEJvb2xlYW4gaXMKICAgYmVnaW4KICAg ICAgcmV0dXJuIENoZWNrX1NhbWVfRXh0ZW5kZWRfVW5pdCAoUzEsIFMyKSA9IFllc19CZWZvcmU7 CiAgIGVuZCBFYXJsaWVyX0luX0V4dGVuZGVkX1VuaXQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIEVudGl0eV9Jc19Jbl9NYWluX1VuaXQgLS0KICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gRW50aXR5X0lzX0luX01haW5fVW5pdCAoRSA6 IEVudGl0eV9JZCkgcmV0dXJuIEJvb2xlYW4gaXMKICAgICAgUyA6IEVudGl0eV9JZDsKCiAgIGJl Z2luCiAgICAgIFMgOj0gU2NvcGUgKEUpOwoKICAgICAgd2hpbGUgUyAvPSBTdGFuZGFyZF9TdGFu ZGFyZCBsb29wCiAgICAgICAgIGlmIFMgPSBNYWluX1VuaXRfRW50aXR5IHRoZW4KICAgICAgICAg ICAgcmV0dXJuIFRydWU7CiAgICAgICAgIGVsc2lmIEVraW5kIChTKSA9IEVfUGFja2FnZSBhbmQg dGhlbiBJc19DaGlsZF9Vbml0IChTKSB0aGVuCiAgICAgICAgICAgIHJldHVybiBGYWxzZTsKICAg ICAgICAgZWxzZQogICAgICAgICAgICBTIDo9IFNjb3BlIChTKTsKICAgICAgICAgZW5kIGlmOwog ICAgICBlbmQgbG9vcDsKCiAgICAgIHJldHVybiBGYWxzZTsKICAgZW5kIEVudGl0eV9Jc19Jbl9N YWluX1VuaXQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2Vu ZXJpY19TZXBhcmF0ZWx5X0NvbXBpbGVkIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgZnVuY3Rpb24gR2VuZXJpY19TZXBhcmF0ZWx5X0NvbXBpbGVkIChFIDogRW50 aXR5X0lkKSByZXR1cm4gQm9vbGVhbiBpcwogICBiZWdpbgogICAgICAtLSAgV2UgZG8gbm90IGdl bmVyYXRlIG9iamVjdCBmaWxlcyBmb3IgaW50ZXJuYWwgZ2VuZXJpY3MsIGJlY2F1c2UKICAgICAg LS0gIHRoZSBvbmx5IHRoaW5nIHRoZXkgd291bGQgY29udGFpbiBpcyB0aGUgZWxhYm9yYXRpb24g Ym9vbGVhbiwgYW5kCiAgICAgIC0tICB3ZSBhcmUgY2FyZWZ1bCB0byBlbGFib3JhdGUgYWxsIHBy ZWRlZmluZWQgdW5pdHMgZmlyc3QgYW55d2F5LCBzbwogICAgICAtLSAgdGhpcyBib29sZWFuIGlz IG5vdCBuZWVkZWQuCgogICAgICBpZiBJc19JbnRlcm5hbF9GaWxlX05hbWUKICAgICAgICAgIChG bmFtZSA9PiBVbml0X0ZpbGVfTmFtZSAoR2V0X1NvdXJjZV9Vbml0IChFKSksCiAgICAgICAgICAg UmVuYW1pbmdzX0luY2x1ZGVkID0+IFRydWUpCiAgICAgIHRoZW4KICAgICAgICAgcmV0dXJuIEZh bHNlOwoKICAgICAgLS0gIEFsbCBvdGhlciBnZW5lcmljIHVuaXRzIGRvIGdlbmVyYXRlIG9iamVj dCBmaWxlcwoKICAgICAgZWxzZQogICAgICAgICByZXR1cm4gVHJ1ZTsKICAgICAgZW5kIGlmOwog ICBlbmQgR2VuZXJpY19TZXBhcmF0ZWx5X0NvbXBpbGVkOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0t LQogICAtLSBHZXRfQ29kZV9Vbml0IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0 aW9uIEdldF9Db2RlX1VuaXQgKFMgOiBTb3VyY2VfUHRyKSByZXR1cm4gVW5pdF9OdW1iZXJfVHlw ZSBpcwogICAgICBTb3VyY2VfRmlsZSA6IFNvdXJjZV9GaWxlX0luZGV4IDo9CiAgICAgICAgICAg ICAgICAgICAgICBHZXRfU291cmNlX0ZpbGVfSW5kZXggKFRvcF9MZXZlbF9Mb2NhdGlvbiAoUykp OwoKICAgYmVnaW4KICAgICAgZm9yIFUgaW4gVW5pdHMuRmlyc3QgLi4gVW5pdHMuTGFzdCBsb29w CiAgICAgICAgIGlmIFNvdXJjZV9JbmRleCAoVSkgPSBTb3VyY2VfRmlsZSB0aGVuCiAgICAgICAg ICAgIHJldHVybiBVOwogICAgICAgICBlbmQgaWY7CiAgICAgIGVuZCBsb29wOwoKICAgICAgLS0g IElmIG5vdCBpbiB0aGUgdGFibGUsIG11c3QgYmUgdGhlIG1haW4gc291cmNlIHVuaXQsIGFuZCB3 ZSBqdXN0CiAgICAgIC0tICBoYXZlIG5vdCBnb3QgaXQgcHV0IGludG8gdGhlIHRhYmxlIHlldC4K CiAgICAgIHJldHVybiBNYWluX1VuaXQ7CiAgIGVuZCBHZXRfQ29kZV9Vbml0OwoKICAgZnVuY3Rp b24gR2V0X0NvZGVfVW5pdCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbml0X051bWJlcl9UeXBlIGlz CiAgIGJlZ2luCiAgICAgIHJldHVybiBHZXRfQ29kZV9Vbml0IChTbG9jIChOKSk7CiAgIGVuZCBH ZXRfQ29kZV9Vbml0OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZXRf Q29tcGlsYXRpb25fU3dpdGNoIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAg IGZ1bmN0aW9uIEdldF9Db21waWxhdGlvbl9Td2l0Y2ggKE4gOiBQb3MpIHJldHVybiBTdHJpbmdf UHRyIGlzCiAgIGJlZ2luCiAgICAgIGlmIE4gPj0gQ29tcGlsYXRpb25fU3dpdGNoZXMuTGFzdCB0 aGVuCiAgICAgICAgIHJldHVybiBDb21waWxhdGlvbl9Td2l0Y2hlcy5UYWJsZSAoTik7CgogICAg ICBlbHNlCiAgICAgICAgIHJldHVybiBudWxsOwogICAgICBlbmQgaWY7CiAgIGVuZCBHZXRfQ29t cGlsYXRpb25fU3dpdGNoOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAtLSBHZXRfQ3VuaXRfRW50aXR5X1VuaXRfTnVtYmVyIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEdldF9DdW5pdF9FbnRpdHlfVW5pdF9OdW1i ZXIKICAgICAoRSAgICA6IEVudGl0eV9JZCkKICAgICAgcmV0dXJuIFVuaXRfTnVtYmVyX1R5cGUK ICAgaXMKICAgYmVnaW4KICAgICAgZm9yIFUgaW4gVW5pdHMuRmlyc3QgLi4gVW5pdHMuTGFzdCBs b29wCiAgICAgICAgIGlmIEN1bml0X0VudGl0eSAoVSkgPSBFIHRoZW4KICAgICAgICAgICAgcmV0 dXJuIFU7CiAgICAgICAgIGVuZCBpZjsKICAgICAgZW5kIGxvb3A7CgogICAgICAtLSAgSWYgbm90 IGluIHRoZSB0YWJsZSwgbXVzdCBiZSB0aGUgbWFpbiBzb3VyY2UgdW5pdCwgYW5kIHdlIGp1c3QK ICAgICAgLS0gIGhhdmUgbm90IGdvdCBpdCBwdXQgaW50byB0aGUgdGFibGUgeWV0LgoKICAgICAg cmV0dXJuIE1haW5fVW5pdDsKICAgZW5kIEdldF9DdW5pdF9FbnRpdHlfVW5pdF9OdW1iZXI7Cgog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2V0X0N1bml0X1VuaXRfTnVtYmVy IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gR2V0X0N1bml0 X1VuaXRfTnVtYmVyIChOIDogTm9kZV9JZCkgcmV0dXJuIFVuaXRfTnVtYmVyX1R5cGUgaXMKICAg YmVnaW4KICAgICAgZm9yIFUgaW4gVW5pdHMuRmlyc3QgLi4gVW5pdHMuTGFzdCBsb29wCiAgICAg ICAgIGlmIEN1bml0IChVKSA9IE4gdGhlbgogICAgICAgICAgICByZXR1cm4gVTsKICAgICAgICAg ZW5kIGlmOwogICAgICBlbmQgbG9vcDsKCiAgICAgIC0tICBJZiBub3QgaW4gdGhlIHRhYmxlLCBt dXN0IGJlIHRoZSBtYWluIHNvdXJjZSB1bml0LCBhbmQgd2UganVzdAogICAgICAtLSAgaGF2ZSBu b3QgZ290IGl0IHB1dCBpbnRvIHRoZSB0YWJsZSB5ZXQuCgogICAgICByZXR1cm4gTWFpbl9Vbml0 OwogICBlbmQgR2V0X0N1bml0X1VuaXRfTnVtYmVyOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgIC0tIEdldF9Tb3VyY2VfVW5pdCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1 bmN0aW9uIEdldF9Tb3VyY2VfVW5pdCAoUyA6IFNvdXJjZV9QdHIpIHJldHVybiBVbml0X051bWJl cl9UeXBlIGlzCiAgICAgIFNvdXJjZV9GaWxlIDogU291cmNlX0ZpbGVfSW5kZXggOj0KICAgICAg ICAgICAgICAgICAgICAgIEdldF9Tb3VyY2VfRmlsZV9JbmRleCAoVG9wX0xldmVsX0xvY2F0aW9u IChTKSk7CgogICBiZWdpbgogICAgICBTb3VyY2VfRmlsZSA6PSBHZXRfU291cmNlX0ZpbGVfSW5k ZXggKFMpOwogICAgICB3aGlsZSBUZW1wbGF0ZSAoU291cmNlX0ZpbGUpIC89IE5vX1NvdXJjZV9G aWxlIGxvb3AKICAgICAgICAgU291cmNlX0ZpbGUgOj0gVGVtcGxhdGUgKFNvdXJjZV9GaWxlKTsK ICAgICAgZW5kIGxvb3A7CgogICAgICBmb3IgVSBpbiBVbml0cy5GaXJzdCAuLiBVbml0cy5MYXN0 IGxvb3AKICAgICAgICAgaWYgU291cmNlX0luZGV4IChVKSA9IFNvdXJjZV9GaWxlIHRoZW4KICAg ICAgICAgICAgcmV0dXJuIFU7CiAgICAgICAgIGVuZCBpZjsKICAgICAgZW5kIGxvb3A7CgogICAg ICAtLSAgSWYgbm90IGluIHRoZSB0YWJsZSwgbXVzdCBiZSB0aGUgbWFpbiBzb3VyY2UgdW5pdCwg YW5kIHdlIGp1c3QKICAgICAgLS0gIGhhdmUgbm90IGdvdCBpdCBwdXQgaW50byB0aGUgdGFibGUg eWV0LgoKICAgICAgcmV0dXJuIE1haW5fVW5pdDsKICAgZW5kIEdldF9Tb3VyY2VfVW5pdDsKCiAg IGZ1bmN0aW9uIEdldF9Tb3VyY2VfVW5pdCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbml0X051bWJl cl9UeXBlIGlzCiAgIGJlZ2luCiAgICAgIHJldHVybiBHZXRfU291cmNlX1VuaXQgKFNsb2MgKE4p KTsKICAgZW5kIEdldF9Tb3VyY2VfVW5pdDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgIC0tIEluX0V4dGVuZGVkX01haW5fQ29kZV9Vbml0IC0tCiAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBJbl9FeHRlbmRlZF9NYWluX0NvZGVf VW5pdCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuIGlzCiAgIGJlZ2luCiAgICAgIGlmIFNs b2MgKE4pID0gU3RhbmRhcmRfTG9jYXRpb24gdGhlbgogICAgICAgICByZXR1cm4gVHJ1ZTsKCiAg ICAgIGVsc2lmIFNsb2MgKE4pID0gTm9fTG9jYXRpb24gdGhlbgogICAgICAgICByZXR1cm4gRmFs c2U7CgogICAgICAtLSAgU3BlY2lhbCBjYXNlIEl0eXBlcyB0byB0ZXN0IHRoZSBTbG9jIG9mIHRo ZSBhc3NvY2lhdGVkIG5vZGUuIFRoZQogICAgICAtLSAgcmVhc29uIHdlIGRvIHRoaXMgaXMgZm9y IHBvc3NpYmxlIGNhbGxzIGZyb20gZ2lnaSBhZnRlciAtZ25hdEQKICAgICAgLS0gIHByb2Nlc3Np bmcgaXMgY29tcGxldGUgaW4gc3ByaW50LiBUaGlzIHByb2Nlc3NpbmcgdXBkYXRlcyB0aGUKICAg ICAgLS0gIHNsb2MgZmllbGRzIG9mIGFsbCBub2RlcyBpbiB0aGUgdHJlZSwgYnV0IGl0eXBlcyBh cmUgbm90IGluIHRoZQogICAgICAtLSAgdHJlZSBzbyB0aGVpciBzbG9jcyBkbyBub3QgZ2V0IHVw ZGF0ZWQuCgogICAgICBlbHNpZiBOa2luZCAoTikgPSBOX0RlZmluaW5nX0lkZW50aWZpZXIKICAg ICAgICBhbmQgdGhlbiBJc19JdHlwZSAoTikKICAgICAgdGhlbgogICAgICAgICByZXR1cm4gSW5f RXh0ZW5kZWRfTWFpbl9Db2RlX1VuaXQgKEFzc29jaWF0ZWRfTm9kZV9Gb3JfSXR5cGUgKE4pKTsK CiAgICAgIGVsc2lmIEdldF9Db2RlX1VuaXQgKFNsb2MgKE4pKSA9IEdldF9Db2RlX1VuaXQgKEN1 bml0IChNYWluX1VuaXQpKSB0aGVuCiAgICAgICAgIHJldHVybiBUcnVlOwoKICAgICAgZWxzZSAg ICAgICAgIC0tICBub2RlIG1heSBiZSBpbiBzcGVjIG9mIG1haW4gdW5pdAogICAgICAgICByZXR1 cm4KICAgICAgICAgICBJbl9TYW1lX0V4dGVuZGVkX1VuaXQgKFNsb2MgKE4pLCBTbG9jIChDdW5p dCAoTWFpbl9Vbml0KSkpOwogICAgICBlbmQgaWY7CiAgIGVuZCBJbl9FeHRlbmRlZF9NYWluX0Nv ZGVfVW5pdDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSW5f RXh0ZW5kZWRfTWFpbl9Tb3VyY2VfVW5pdCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICBmdW5jdGlvbiBJbl9FeHRlbmRlZF9NYWluX1NvdXJjZV9Vbml0IChOIDog Tm9kZV9JZCkgcmV0dXJuIEJvb2xlYW4gaXMKICAgYmVnaW4KICAgICAgaWYgU2xvYyAoTikgPSBT dGFuZGFyZF9Mb2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVybiBUcnVlOwoKICAgICAgZWxzaWYg U2xvYyAoTikgPSBOb19Mb2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVybiBGYWxzZTsKCiAgICAg IC0tICBTcGVjaWFsIGNhc2UgSXR5cGVzIHRvIHRlc3QgdGhlIFNsb2Mgb2YgdGhlIGFzc29jaWF0 ZWQgbm9kZS4gVGhlCiAgICAgIC0tICByZWFzb24gd2UgZG8gdGhpcyBpcyBmb3IgcG9zc2libGUg Y2FsbHMgZnJvbSBnaWdpIGFmdGVyIC1nbmF0RAogICAgICAtLSAgcHJvY2Vzc2luZyBpcyBjb21w bGV0ZSBpbiBzcHJpbnQuIFRoaXMgcHJvY2Vzc2luZyB1cGRhdGVzIHRoZQogICAgICAtLSAgc2xv YyBmaWVsZHMgb2YgYWxsIG5vZGVzIGluIHRoZSB0cmVlLCBidXQgaXR5cGVzIGFyZSBub3QgaW4g dGhlCiAgICAgIC0tICB0cmVlIHNvIHRoZWlyIHNsb2NzIGRvIG5vdCBnZXQgdXBkYXRlZC4KCiAg ICAgIGVsc2lmIE5raW5kIChOKSA9IE5fRGVmaW5pbmdfSWRlbnRpZmllcgogICAgICAgIGFuZCB0 aGVuIElzX0l0eXBlIChOKQogICAgICB0aGVuCiAgICAgICAgIHJldHVybiBJbl9FeHRlbmRlZF9N YWluX1NvdXJjZV9Vbml0IChBc3NvY2lhdGVkX05vZGVfRm9yX0l0eXBlIChOKSk7CgogICAgICBl bHNlCiAgICAgICAgIHJldHVybgogICAgICAgICAgIEluX1NhbWVfRXh0ZW5kZWRfVW5pdAogICAg ICAgICAgICAgKE9yaWdpbmFsX0xvY2F0aW9uIChTbG9jIChOKSksCiAgICAgICAgICAgICAgT3Jp Z2luYWxfTG9jYXRpb24gKFNsb2MgKEN1bml0IChNYWluX1VuaXQpKSkpOwogICAgICBlbmQgaWY7 CiAgIGVuZCBJbl9FeHRlbmRlZF9NYWluX1NvdXJjZV9Vbml0OwoKICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgLS0gSW5fU2FtZV9Db2RlX1VuaXQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgIGZ1bmN0aW9uIEluX1NhbWVfQ29kZV9Vbml0IChOMSwgTjIgOiBOb2RlX09yX0Vu dGl0eV9JZCkgcmV0dXJuIEJvb2xlYW4gaXMKICAgICAgUzEgOiBjb25zdGFudCBTb3VyY2VfUHRy IDo9IFNsb2MgKE4xKTsKICAgICAgUzIgOiBjb25zdGFudCBTb3VyY2VfUHRyIDo9IFNsb2MgKE4y KTsKCiAgIGJlZ2luCiAgICAgIGlmIFMxID0gTm9fTG9jYXRpb24gb3IgZWxzZSBTMiA9IE5vX0xv Y2F0aW9uIHRoZW4KICAgICAgICAgcmV0dXJuIEZhbHNlOwoKICAgICAgZWxzaWYgUzEgPSBTdGFu ZGFyZF9Mb2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVybiBTMiA9IFN0YW5kYXJkX0xvY2F0aW9u OwoKICAgICAgZWxzaWYgUzIgPSBTdGFuZGFyZF9Mb2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVy biBGYWxzZTsKICAgICAgZW5kIGlmOwoKICAgICAgcmV0dXJuIEdldF9Db2RlX1VuaXQgKE4xKSA9 IEdldF9Db2RlX1VuaXQgKE4yKTsKICAgZW5kIEluX1NhbWVfQ29kZV9Vbml0OwoKICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEluX1NhbWVfRXh0ZW5kZWRfVW5pdCAtLQogICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEluX1NhbWVfRXh0ZW5kZWRf VW5pdCAoUzEsIFMyIDogU291cmNlX1B0cikgcmV0dXJuIEJvb2xlYW4gaXMKICAgYmVnaW4KICAg ICAgcmV0dXJuIENoZWNrX1NhbWVfRXh0ZW5kZWRfVW5pdCAoUzEsIFMyKSAvPSBObzsKICAgZW5k IEluX1NhbWVfRXh0ZW5kZWRfVW5pdDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gSW5fU2FtZV9Tb3VyY2VfVW5pdCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICBmdW5jdGlvbiBJbl9TYW1lX1NvdXJjZV9Vbml0IChOMSwgTjIgOiBOb2RlX09yX0VudGl0eV9J ZCkgcmV0dXJuIEJvb2xlYW4gaXMKICAgICAgUzEgOiBjb25zdGFudCBTb3VyY2VfUHRyIDo9IFNs b2MgKE4xKTsKICAgICAgUzIgOiBjb25zdGFudCBTb3VyY2VfUHRyIDo9IFNsb2MgKE4yKTsKCiAg IGJlZ2luCiAgICAgIGlmIFMxID0gTm9fTG9jYXRpb24gb3IgZWxzZSBTMiA9IE5vX0xvY2F0aW9u IHRoZW4KICAgICAgICAgcmV0dXJuIEZhbHNlOwoKICAgICAgZWxzaWYgUzEgPSBTdGFuZGFyZF9M b2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVybiBTMiA9IFN0YW5kYXJkX0xvY2F0aW9uOwoKICAg ICAgZWxzaWYgUzIgPSBTdGFuZGFyZF9Mb2NhdGlvbiB0aGVuCiAgICAgICAgIHJldHVybiBGYWxz ZTsKICAgICAgZW5kIGlmOwoKICAgICAgcmV0dXJuIEdldF9Tb3VyY2VfVW5pdCAoTjEpID0gR2V0 X1NvdXJjZV9Vbml0IChOMik7CiAgIGVuZCBJbl9TYW1lX1NvdXJjZV9Vbml0OwoKICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSW5jcmVtZW50X1NlcmlhbF9OdW1iZXIgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIGZ1bmN0aW9uIEluY3JlbWVudF9T ZXJpYWxfTnVtYmVyIHJldHVybiBOYXQgaXMKICAgICAgVFNOIDogSW50IHJlbmFtZXMgVW5pdHMu VGFibGUgKEN1cnJlbnRfU2VtX1VuaXQpLlNlcmlhbF9OdW1iZXI7CgogICBiZWdpbgogICAgICBU U04gOj0gVFNOICsgMTsKICAgICAgcmV0dXJuIFRTTjsKICAgZW5kIEluY3JlbWVudF9TZXJpYWxf TnVtYmVyOwoKICAgLS0tLS0tLS0tLS0tLS0tLQogICAtLSBJbml0aWFsaXplIC0tCiAgIC0tLS0t LS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBJbml0aWFsaXplIGlzCiAgIGJlZ2luCiAgICAgIExp bmtlcl9PcHRpb25fTGluZXMuSW5pdDsKICAgICAgTG9hZF9TdGFjay5Jbml0OwogICAgICBVbml0 cy5Jbml0OwogICAgICBVbml0X0V4Y2VwdGlvbl9UYWJsZV9QcmVzZW50IDo9IEZhbHNlOwogICAg ICBDb21waWxhdGlvbl9Td2l0Y2hlcy5Jbml0OwogICBlbmQgSW5pdGlhbGl6ZTsKCiAgIC0tLS0t LS0tLS0tLS0tLQogICAtLSBJc19Mb2FkZWQgLS0KICAgLS0tLS0tLS0tLS0tLS0tCgogICBmdW5j dGlvbiBJc19Mb2FkZWQgKFVuYW1lIDogVW5pdF9OYW1lX1R5cGUpIHJldHVybiBCb29sZWFuIGlz CiAgIGJlZ2luCiAgICAgIGZvciBVbnVtIGluIFVuaXRzLkZpcnN0IC4uIFVuaXRzLkxhc3QgbG9v cAogICAgICAgICBpZiBVbmFtZSA9IFVuaXRfTmFtZSAoVW51bSkgdGhlbgogICAgICAgICAgICBy ZXR1cm4gVHJ1ZTsKICAgICAgICAgZW5kIGlmOwogICAgICBlbmQgbG9vcDsKCiAgICAgIHJldHVy biBGYWxzZTsKICAgZW5kIElzX0xvYWRlZDsKCiAgIC0tLS0tLS0tLS0tLS0tLQogICAtLSBMYXN0 X1VuaXQgLS0KICAgLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBMYXN0X1VuaXQgcmV0dXJu IFVuaXRfTnVtYmVyX1R5cGUgaXMKICAgYmVnaW4KICAgICAgcmV0dXJuIFVuaXRzLkxhc3Q7CiAg IGVuZCBMYXN0X1VuaXQ7CgogICAtLS0tLS0tLS0tCiAgIC0tIExpc3QgLS0KICAgLS0tLS0tLS0t LQoKICAgcHJvY2VkdXJlIExpc3QgKEZpbGVfTmFtZXNfT25seSA6IEJvb2xlYW4gOj0gRmFsc2Up IGlzIHNlcGFyYXRlOwoKICAgLS0tLS0tLS0tLQogICAtLSBMb2NrIC0tCiAgIC0tLS0tLS0tLS0K CiAgIHByb2NlZHVyZSBMb2NrIGlzCiAgIGJlZ2luCiAgICAgIExpbmtlcl9PcHRpb25fTGluZXMu TG9ja2VkIDo9IFRydWU7CiAgICAgIExvYWRfU3RhY2suTG9ja2VkIDo9IFRydWU7CiAgICAgIFVu aXRzLkxvY2tlZCA6PSBUcnVlOwogICAgICBMaW5rZXJfT3B0aW9uX0xpbmVzLlJlbGVhc2U7CiAg ICAgIExvYWRfU3RhY2suUmVsZWFzZTsKICAgICAgVW5pdHMuUmVsZWFzZTsKICAgZW5kIExvY2s7 CgogICAtLS0tLS0tLS0tLS0tLS0KICAgLS0gTnVtX1VuaXRzIC0tCiAgIC0tLS0tLS0tLS0tLS0t LQoKICAgZnVuY3Rpb24gTnVtX1VuaXRzIHJldHVybiBOYXQgaXMKICAgYmVnaW4KICAgICAgcmV0 dXJuIEludCAoVW5pdHMuTGFzdCkgLSBJbnQgKE1haW5fVW5pdCkgKyAxOwogICBlbmQgTnVtX1Vu aXRzOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBSZXBsYWNl X0xpbmtlcl9PcHRpb25fU3RyaW5nIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgIHByb2NlZHVyZSBSZXBsYWNlX0xpbmtlcl9PcHRpb25fU3RyaW5nCiAgICAgKFMg OiBTdHJpbmdfSWQ7IE1hdGNoX1N0cmluZyA6IFN0cmluZykKICAgaXMKICAgYmVnaW4KICAgICAg aWYgTWF0Y2hfU3RyaW5nJ0xlbmd0aCA+IDAgdGhlbgogICAgICAgICBmb3IgSiBpbiAxIC4uIExp bmtlcl9PcHRpb25fTGluZXMuTGFzdCBsb29wCiAgICAgICAgICAgIFN0cmluZ19Ub19OYW1lX0J1 ZmZlciAoTGlua2VyX09wdGlvbl9MaW5lcy5UYWJsZSAoSikpOwoKICAgICAgICAgICAgaWYgTWF0 Y2hfU3RyaW5nID0gTmFtZV9CdWZmZXIgKDEgLi4gTWF0Y2hfU3RyaW5nJ0xlbmd0aCkgdGhlbgog ICAgICAgICAgICAgICBMaW5rZXJfT3B0aW9uX0xpbmVzLlRhYmxlIChKKSA6PSBTOwogICAgICAg ICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGVuZCBpZjsKICAgICAgICAgZW5kIGxvb3A7CiAg ICAgIGVuZCBpZjsKCiAgICAgIFN0b3JlX0xpbmtlcl9PcHRpb25fU3RyaW5nIChTKTsKICAgZW5k IFJlcGxhY2VfTGlua2VyX09wdGlvbl9TdHJpbmc7CgogICAtLS0tLS0tLS0tCiAgIC0tIFNvcnQg LS0KICAgLS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFNvcnQgKFRibCA6IGluIG91dCBVbml0X1Jl Zl9UYWJsZSkgaXMgc2VwYXJhdGU7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgLS0gU3RvcmVfQ29tcGlsYXRpb25fU3dpdGNoIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFN0b3JlX0NvbXBpbGF0aW9uX1N3aXRjaCAoU3dpdGNo IDogU3RyaW5nKSBpcwogICBiZWdpbgogICAgICBDb21waWxhdGlvbl9Td2l0Y2hlcy5JbmNyZW1l bnRfTGFzdDsKICAgICAgQ29tcGlsYXRpb25fU3dpdGNoZXMuVGFibGUgKENvbXBpbGF0aW9uX1N3 aXRjaGVzLkxhc3QpIDo9CiAgICAgICAgbmV3IFN0cmluZycoU3dpdGNoKTsKICAgZW5kIFN0b3Jl X0NvbXBpbGF0aW9uX1N3aXRjaDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgIC0tIFN0b3JlX0xpbmtlcl9PcHRpb25fU3RyaW5nIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU3RvcmVfTGlua2VyX09wdGlvbl9TdHJpbmcg KFMgOiBTdHJpbmdfSWQpIGlzCiAgIGJlZ2luCiAgICAgIExpbmtlcl9PcHRpb25fTGluZXMuSW5j cmVtZW50X0xhc3Q7CiAgICAgIExpbmtlcl9PcHRpb25fTGluZXMuVGFibGUgKExpbmtlcl9PcHRp b25fTGluZXMuTGFzdCkgOj0gUzsKICAgZW5kIFN0b3JlX0xpbmtlcl9PcHRpb25fU3RyaW5nOwoK ICAgLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFRyZWVfUmVhZCAtLQogICAtLS0tLS0tLS0tLS0tLS0K CiAgIHByb2NlZHVyZSBUcmVlX1JlYWQgaXMKICAgICAgTiA6IE5hdDsKICAgICAgUyA6IFN0cmlu Z19QdHI7CgogICBiZWdpbgogICAgICBVbml0cy5UcmVlX1JlYWQ7CgogICAgICAtLSAgUmVhZCBD b21waWxhdGlvbl9Td2l0Y2hlcyB0YWJsZQoKICAgICAgVHJlZV9SZWFkX0ludCAoTik7CiAgICAg IENvbXBpbGF0aW9uX1N3aXRjaGVzLlNldF9MYXN0IChOKTsKCiAgICAgIGZvciBKIGluIDEgLi4g TiBsb29wCiAgICAgICAgIFRyZWVfUmVhZF9TdHIgKFMpOwogICAgICAgICBDb21waWxhdGlvbl9T d2l0Y2hlcy5UYWJsZSAoSikgOj0gUzsKICAgICAgZW5kIGxvb3A7CiAgIGVuZCBUcmVlX1JlYWQ7 CgogICAtLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFRyZWVfV3JpdGUgLS0KICAgLS0tLS0tLS0tLS0t LS0tLQoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGUgaXMKICAgYmVnaW4KICAgICAgVW5pdHMuVHJl ZV9Xcml0ZTsKCiAgICAgIC0tICBXcml0ZSBDb21waWxhdGlvbl9Td2l0Y2hlcyB0YWJsZQoKICAg ICAgVHJlZV9Xcml0ZV9JbnQgKENvbXBpbGF0aW9uX1N3aXRjaGVzLkxhc3QpOwoKICAgICAgZm9y IEogaW4gMSAuLiBDb21waWxhdGlvbl9Td2l0Y2hlcy5MYXN0IGxvb3AKICAgICAgICAgVHJlZV9X cml0ZV9TdHIgKENvbXBpbGF0aW9uX1N3aXRjaGVzLlRhYmxlIChKKSk7CiAgICAgIGVuZCBsb29w OwogICBlbmQgVHJlZV9Xcml0ZTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFZlcnNpb25f R2V0IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiBWZXJzaW9uX0dldCAoVSA6 IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBXb3JkX0hleF9TdHJpbmcgaXMKICAgYmVnaW4KICAg ICAgcmV0dXJuIEdldF9IZXhfU3RyaW5nIChVbml0cy5UYWJsZSAoVSkuVmVyc2lvbik7CiAgIGVu ZCBWZXJzaW9uX0dldDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBWZXJzaW9u X1JlZmVyZW5jZWQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUg VmVyc2lvbl9SZWZlcmVuY2VkIChTIDogU3RyaW5nX0lkKSBpcwogICBiZWdpbgogICAgICBWZXJz aW9uX1JlZi5BcHBlbmQgKFMpOwogICBlbmQgVmVyc2lvbl9SZWZlcmVuY2VkOwoKZW5kIExpYjsK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICBHTkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAg ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIEwgSSBCICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAg ZSBjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuMS4xNi4xICQK LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAx IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS0KLS0gR05BVCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRl IGl0ICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3 YXJlICBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlci0gLS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFO VFk7ICB3aXRob3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSAtLQotLSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hv dWxkIGhhdmUgIHJlY2VpdmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1Ymxp YyBMaWNlbnNlICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYg bm90LCB3cml0ZSAtLQotLSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRl bXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNB LiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3Ro ZXIgZmlsZXMgIGluc3RhbnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3Ig eW91IGxpbmsgIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1 dGFibGUsIC0tCi0tIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSBy ZXN1bHRpbmcgIGV4ZWN1dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAg R2VuZXJhbCAgUHVibGljICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0g aG93ZXZlciBpbnZhbGlkYXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxl IGZpbGUgIG1pZ2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2Uu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gR05BVCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0g YXQgIE5ldyBZb3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdl cmUgcHJvdmlkZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgVGhpcyBwYWNrYWdlIGNv bnRhaW5zIHJvdXRpbmVzIGZvciBhY2Nlc3NpbmcgYW5kIG91dHB1dHRpbmcgdGhlIGxpYnJhcnkK LS0gIGluZm9ybWF0aW9uLiBJdCBjb250YWlucyB0aGUgcm91dGluZSB0byBsb2FkIHN1YnNpZGlh cnkgdW5pdHMuCgp3aXRoIEFsbG9jOwp3aXRoIFRhYmxlOwp3aXRoIFR5cGVzOyAgdXNlIFR5cGVz OwoKcGFja2FnZSBMaWIgaXMKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIEdlbmVyYWwgQXBwcm9hY2ggdG8gTGlicmFyeSBNYW5hZ2VtZW50IC0t CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAg QXMgZGVzY3JpYmVkIGluIEdOb3RlICMxLCB3aGVuIGEgdW5pdCBpcyBjb21waWxlZCwgYWxsIGl0 cyBzdWJzaWRpYXJ5CiAgIC0tICB1bml0cyBhcmUgcmVjb21waWxlZCwgaW5jbHVkaW5nIHRoZSBm b2xsb3dpbmc6CgogICAtLSAgICAoYSkgQ29ycmVzcG9uZGluZyBzcGVjIGZvciBhIGJvZHkKICAg LS0gICAgKGIpIFBhcmVudCBzcGVjIG9mIGEgY2hpbGQgbGlicmFyeSBzcGVjCiAgIC0tICAgIChk KSBXaXRoJ2VkIHNwZWNzCiAgIC0tICAgIChkKSBQYXJlbnQgYm9keSBvZiBhIHN1YnVuaXQKICAg LS0gICAgKGUpIFN1YnVuaXRzIGNvcnJlc3BvbmRpbmcgdG8gYW55IHNwZWNpZmllZCBzdHVicwog ICAtLSAgICAoZikgQm9kaWVzIG9mIGlubGluZWQgc3VicHJvZ3JhbXMgdGhhdCBhcmUgY2FsbGVk CiAgIC0tICAgIChnKSBCb2RpZXMgb2YgZ2VuZXJpYyBzdWJwcm9ncmFtcyBvciBwYWNrYWdlcyB0 aGF0IGFyZSBpbnN0YW50aWF0ZWQKICAgLS0gICAgKGgpIEJvZGllcyBvZiBwYWNrYWdlcyBjb250 YWluaW5nIGVpdGhlciBvZiB0aGUgYWJvdmUgdHdvIGl0ZW1zCiAgIC0tICAgIChpKSBTcGVjcyBh bmQgYm9kaWVzIG9mIHJ1bnRpbWUgdW5pdHMKICAgLS0gICAgKGopIFBhcmVudCBzcGVjcyBmb3Ig d2l0aCdlZCBjaGlsZCBsaWJyYXJ5IHVuaXRzCgogICAtLSAgSWYgYSB1bml0IGlzIGJlaW5nIGNv bXBpbGVkIG9ubHkgZm9yIHN5bnRheCBjaGVja2luZywgdGhlbiBubyBzdWJzaWRpYXJ5CiAgIC0t ICB1bml0cyBhcmUgbG9hZGVkLCB0aGUgc3ludGF4IGNoZWNrIGFwcGxpZXMgb25seSB0byB0aGUg bWFpbiB1bml0LAogICAtLSAgaS5lLiB0aGUgb25lIGNvbnRhaW5lZCBpbiB0aGUgc291cmNlIHN1 Ym1pdHRlZCB0byB0aGUgbGlicmFyeS4KCiAgIC0tICBJZiBhIHVuaXQgaXMgYmVpbmcgY29tcGls ZWQgZm9yIHN5bnRheCBhbmQgc2VtYW50aWMgY2hlY2tpbmcsIHRoZW4gb25seQogICAtLSAgY2Fz ZXMgKGEpLShkKSBsb2FkcyBhcmUgcGVyZm9ybWVkLCBzaW5jZSB0aGUgZnVsbCBzZW1hbnRpYyBj aGVja2luZyBjYW4KICAgLS0gIGJlIGNhcnJpZWQgb3V0IHdpdGhvdXQgbmVlZGluZyAoZSktKGkp IGxvYWRzLiBJbiB0aGlzIGNhc2Ugbm8gb2JqZWN0CiAgIC0tICBmaWxlLCBvciBsaWJyYXJ5IGlu Zm9ybWF0aW9uIGZpbGUsIGlzIGdlbmVyYXRlZCwgc28gdGhlIG1pc3NpbmcgdW5pdHMKICAgLS0g IGRvIG5vdCBhZmZlY3QgdGhlIHJlc3VsdHMuCgogICAtLSAgU3BlY2lmaWNhdGlvbnMgb2YgbGli cmFyeSBzdWJwcm9ncmFtcywgc3VidW5pdHMsIGFuZCBnZW5lcmljIHNwZWNzCiAgIC0tICBhbmQg Ym9kaWVzLCBjYW4gb25seSBiZSBjb21waWxlZCBpbiBzeW50YXgvc2VtYW50aWMgY2hlY2tpbmcg bW9kZSwKICAgLS0gIHNpbmNlIG5vIGNvZGUgaXMgZXZlciBnZW5lcmF0ZWQgZGlyZWN0bHkgZm9y IHRoZXNlIHVuaXRzLiBJbiB0aGUgY2FzZQogICAtLSAgb2Ygc3VidW5pdHMsIG9ubHkgdGhlIGNv bXBpbGF0aW9uIG9mIHRoZSB1bHRpbWF0ZSBwYXJlbnQgdW5pdCBnZW5lcmF0ZXMKICAgLS0gIGFj dHVhbCBjb2RlLiBJZiBhIHN1YnVuaXQgaXMgc3VibWl0dGVkIHRvIHRoZSBjb21waWxlciBpbiBz eW50YXgvCiAgIC0tICBzZW1hbnRpYyBjaGVja2luZyBtb2RlLCB0aGUgcGFyZW50IChvciBwYXJl bnRzIGluIHRoZSBuZXN0ZWQgY2FzZSkgYXJlCiAgIC0tICBzZW1hbnRpY2FsbHkgY2hlY2tlZCBv bmx5IHVwIHRvIHRoZSBwb2ludCBvZiB0aGUgY29ycmVzcG9uZGluZyBzdHViLgoKICAgLS0gIElm IGNvZGUgaXMgYmVpbmcgZ2VuZXJhdGVkLCB0aGVuIGFsbCB0aGUgYWJvdmUgdW5pdHMgYXJlIHJl cXVpcmVkLAogICAtLSAgYWx0aG91Z2ggdGhlIG5lZWQgZm9yIGJvZGllcyBvZiBpbmxpbmVkIHBy b2NlZHVyZXMgY2FuIGJlIHN1cHByZXNzZWQKICAgLS0gIGJ5IHRoZSB1c2Ugb2YgYSBzd2l0Y2gg dGhhdCBzZXRzIHRoZSBtb2RlIHRvIGlnbm9yZSBwcmFnbWEgSW5saW5lCiAgIC0tICBzdGF0ZW1l bnRzLgoKICAgLS0gIFRoZSB0d28gbWFpbiBzZWN0aW9ucyBvZiB0aGUgZnJvbnQgZW5kLCBQYXIg YW5kIFNlbSwgYXJlIHJlY3Vyc2l2ZS4KICAgLS0gIENvbXBpbGF0aW9uIHByb2NlZWRzIHVuaXQg YnkgdW5pdCBtYWtpbmcgcmVjdXJzaXZlIGNhbGxzIGFzIG5lY2Vzc2FyeS4KICAgLS0gIFRoZSBw cm9jZXNzIGlzIGNvbnRyb2xsZWQgZnJvbSB0aGUgR05BVCBtYWluIHByb2dyYW0sIHdoaWNoIG1h a2VzIGNhbGxzCiAgIC0tICB0byBQYXIgYW5kIFNlbSBzZXF1ZW5jZSBmb3IgdGhlIG1haW4gdW5p dC4KCiAgIC0tICBQYXIgcGFyc2VzIHRoZSBnaXZlbiB1bml0LCBhbmQgdGhlbiwgYWZ0ZXIgdGhl IHBhcnNlIGlzIGNvbXBsZXRlLCB1c2VzCiAgIC0tICB0aGUgUGFyLkxvYWQgc3VicHJvZ3JhbSB0 byBsb2FkIGFsbCBpdHMgc3Vic2lkaWFyeSB1bml0cyBpbiBjYXRlZ29yaWVzCiAgIC0tICAoYSkt KGQpIGFib3ZlLCBpbnN0YWxsaW5nIHBvaW50ZXJzIHRvIHRoZSBsb2FkZWQgdW5pdHMgaW4gdGhl IHBhcnNlCiAgIC0tICB0cmVlLCBhcyBkZXNjcmliZWQgaW4gYSBsYXRlciBzZWN0aW9uIG9mIHRo aXMgc3BlYy4gSWYgYW55IG9mIHRoZXNlCiAgIC0tICByZXF1aXJlZCB1bml0cyBpcyBtaXNzaW5n LCBhIGZhdGFsIGVycm9yIGlzIHNpZ25hbGxlZCwgc28gdGhhdCBubwogICAtLSAgYXR0ZW1wdCBp cyBtYWRlIHRvIHJ1biBTZW0gaW4gc3VjaCBjYXNlcywgc2luY2UgaXQgaXMgYXNzdW1lZCB0aGF0 CiAgIC0tICB0b28gbWFueSBjYXNjYWRlZCBlcnJvcnMgd291bGQgcmVzdWx0LCBhbmQgdGhlIGNv bmZ1c2lvbiB3b3VsZCBub3QKICAgLS0gIGJlIGhlbHBmdWwuCgogICAtLSAgRm9sbG93aW5nIHRo ZSBjYWxsIHRvIFBhciBvbiB0aGUgbWFpbiB1bml0LCB0aGUgZW50aXJlIHRyZWUgb2YgcmVxdWly ZWQKICAgLS0gIHVuaXRzIGlzIHRodXMgbG9hZGVkLCBhbmQgU2VtIGlzIGNhbGxlZCBvbiB0aGUg bWFpbiB1bml0LiBUaGUgcGFyYW1ldGVyCiAgIC0tICBwYXNzZWQgdG8gU2VtIGlzIHRoZSB1bml0 IHRvIGJlIGFuYWx5emVkLiBUaGUgdmlzaWJpbGl0eSB0YWJsZSwgd2hpY2gKICAgLS0gIGlzIGEg c2luZ2xlIGdsb2JhbCBzdHJ1Y3R1cmUsIHN0YXJ0cyBvdXQgY29udGFpbmluZyBvbmx5IHRoZSBl bnRyaWVzCiAgIC0tICBmb3IgdGhlIHZpc2libGUgZW50aXRpZXMgaW4gU3RhbmRhcmQuIEV2ZXJ5 IGNhbGwgdG8gU2VtIGVzdGFibGlzaGVzIGEKICAgLS0gIG5ldyBzY29wZSBzdGFjayB0YWJsZSwg cHVzaGluZyBhbiBlbnRyeSBmb3IgU3RhbmRhcmQgb24gZW50cnkgdG8gcHJvdmlkZQogICAtLSAg dGhlIHByb3BlciBpbml0aWFsIHNjb3BlIGVudmlyb25tZW50LgoKICAgLS0gIFNlbSBmaXJzdCBw cm9jZWVkcyB0byBwZXJmb3JtIHNlbWFudGljIGFuYWx5c2lzIG9uIHRoZSBjdXJyZW50bHkgbG9h ZGVkCiAgIC0tICB1bml0cyBhcyBmb2xsb3dzOgoKICAgLS0gICAgSW4gdGhlIGNhc2Ugb2YgYSBi b2R5IChjYXNlIChhKSBhYm92ZSksIFNlbSBhbmFseXplcyB0aGUgY29ycmVzcG9uZGluZwogICAt LSAgICBzcGVjLCB1c2luZyBhIHJlY3Vyc2l2ZSBjYWxsIHRvIFNlbS4gQXMgaXMgYWx3YXlzIGV4 cGVjdGVkIHRvIGJlIHRoZQogICAtLSAgICBjYXNlIHdpdGggY2FsbHMgdG8gU2VtLCBhbnkgZW50 aXRpZXMgaW5zdGFsbGVkIGluIHRoZSB2aXNpYmlsaXR5IHRhYmxlCiAgIC0tICAgIGFyZSByZW1v dmVkIG9uIGV4aXQgZnJvbSBTZW0sIHNvIHRoYXQgdGhlc2UgZW50aXRpZXMgaGF2ZSB0byBiZQog ICAtLSAgICByZWluc3RhbGxlZCBvbiByZXR1cm4gdG8gY29udGludWUgdGhlIGFuYWx5c2lzIG9m IHRoZSBib2R5IHdoaWNoIG9mCiAgIC0tICAgIGNvdXJzZSBuZWVkcyB2aXNpYmlsaXR5IG9mIHRo ZXNlIGVudGl0aWVzLgogICAtLQogICAtLSAgICBJbiB0aGUgY2FzZSBvZiB0aGUgcGFyZW50IG9m IGEgY2hpbGQgc3BlYyAoY2FzZSAoYikgYWJvdmUpLCBhIHNpbWlsYXIKICAgLS0gICAgY2FsbCBp cyBtYWRlIHRvIFNlbSB0byBhbmFseXplIHRoZSBwYXJlbnQuIEFnYWluLCBvbiByZXR1cm4sIHRo ZQogICAtLSAgICBlbnRpdGllcyBmcm9tIHRoZSBhbmFseXplZCBwYXJlbnQgc3BlYyBoYXZlIHRv IGJlIGluc3RhbGxlZCBpbiB0aGUKICAgLS0gICAgdmlzaWJpbGl0eSB0YWJsZSBvZiB0aGUgY2Fs bGVyICh0aGUgY2hpbGQgdW5pdCksIHdoaWNoIG11c3QgaGF2ZQogICAtLSAgICB2aXNpYmlsaXR5 IHRvIHRoZSBlbnRpdGllcyBpbiBpdHMgcGFyZW50IHNwZWMuCgogICAtLSAgICBGb3Igd2l0aCdl ZCBzcGVjcyAoY2FzZSAoYykgYWJvdmUpLCBhIHJlY3Vyc2l2ZSBjYWxsIHRvIFNlbSBpcyBtYWRl CiAgIC0tICAgIHRvIGFuYWx5emUgZWFjaCBzcGVjIGluIHR1cm4uIEFmdGVyIGFsbCB0aGUgc3Bl YydzIGhhdmUgYmVlbiBhbmFseXplZCwKICAgLS0gICAgYnV0IG5vdCB0aWxsIHRoYXQgcG9pbnQs IHRoZSBlbnRpdGllcyBmcm9tIGFsbCB0aGUgd2l0aCdlZCB1bml0cyBhcmUKICAgLS0gICAgcmVp bnN0YWxsZWQgaW4gdGhlIHZpc2liaWxpdHkgdGFibGUgc28gdGhhdCB0aGUgY2FsbGVyIGNhbiBw cm9jZWVkCiAgIC0tICAgIHdpdGggdGhlIGFuYWx5c2lzIG9mIHRoZSB1bml0IGRvaW5nIHRoZSB3 aXRoJ3Mgd2l0aCB0aGUgbmVjZXNzYXJ5CiAgIC0tICAgIGVudGl0aWVzIG1hZGUgZWl0aGVyIHBv dGVudGlhbGx5IHVzZSB2aXNpYmxlIG9yIHZpc2libGUgYnkgc2VsZWN0aW9uCiAgIC0tICAgIGFz IG5lZWRlZC4KCiAgIC0tICAgIENhc2UgKGQpIGFyaXNlcyB3aGVuIFNlbSBpcyBwYXNzZWQgYSBz dWJ1bml0IHRvIGFuYWx5emUuIFRoaXMgbWVhbnMKICAgLS0gICAgdGhhdCB0aGUgbWFpbiB1bml0 IGlzIGEgc3VidW5pdCwgYW5kIHRoZSB1bml0IHBhc3NlZCB0byBTZW0gaXMgZWl0aGVyCiAgIC0t ICAgIHRoZSBtYWluIHVuaXQsIG9yIG9uZSBvZiBpdHMgYW5jZXN0b3JzIHRoYXQgaXMgc3RpbGwg YSBzdWJ1bml0LiBTaW5jZQogICAtLSAgICBhbmFseXNpcyBtdXN0IHN0YXJ0IGF0IHRoZSB0b3Ag b2YgdGhlIHRyZWUsIFNlbSBlc3NlbnRpYWxseSBjYW5jZWxzCiAgIC0tICAgIHRoZSBjdXJyZW50 IGNhbGwgYnkgaW1tZWRpYXRlbHkgbWFraW5nIGEgY2FsbCB0byBhbmFseXplIHRoZSBwYXJlbnQK ICAgLS0gICAgKHdoZW4gdGhpcyBjYWxsIGlzIGZpbmlzaGVkIGl0IGltbWVkaWF0ZWx5IHJldHVy bnMsIHNvIGxvZ2ljYWxseSB0aGlzCiAgIC0tICAgIGNhbGwgaXMgbGlrZSBhIGdvdG8pLiBUaGUg c3VidW5pdCB3aWxsIHRoZW4gYmUgYW5hbHl6ZWQgYXQgdGhlIHByb3BlcgogICAtLSAgICB0aW1l IGFzIGRlc2NyaWJlZCBmb3IgdGhlIHN0dWIgY2FzZS4gTm90ZSB0aGF0IHdlIGFsc28gdHVybiBv ZmYgdGhlCiAgIC0tICAgIGluZGljYXRpb24gdGhhdCBjb2RlIHNob3VsZCBiZSBnZW5lcmF0ZWQg aW4gdGhpcyBjYXNlLCBzaW5jZSB0aGUgb25seQogICAtLSAgICB0aW1lIHdlIGdlbmVyYXRlIGNv ZGUgZm9yIHN1YnVuaXRzIGlzIHdoZW4gY29tcGlsaW5nIHRoZSBtYWluIHBhcmVudC4KCiAgIC0t ICAgIENhc2UgKGUpLCBzdWJ1bml0cyBjb3JyZXNwb25kaW5nIHRvIHN0dWJzLCBhcmUgaGFuZGxl ZCBhcyB0aGUgc3R1YnMKICAgLS0gICAgYXJlIGVuY291bnRlcmVkLiBUaGVyZSBhcmUgdGhyZWUg c3ViLWNhc2VzOgoKICAgLS0gICAgICBJZiB0aGUgc3VidW5pdCBoYXMgYWxyZWFkeSBiZWVuIGxv YWRlZCwgdGhlbiB0aGlzIG1lYW5zIHRoYXQgdGhlCiAgIC0tICAgICAgbWFpbiB1bml0IHdhcyBh IHN1YnVuaXQsIGFuZCB3ZSBhcmUgYmFjayBvbiBvdXIgd2F5IGRvd24gdG8gaXQKICAgLS0gICAg ICBhZnRlciBmb2xsb3dpbmcgdGhlIGluaXRpYWwgcHJvY2Vzc2luZyBkZXNjcmliZWQgZm9yIGNh c2UgKGQpLgogICAtLSAgICAgIEluIHRoaXMgY2FzZSB3ZSBhbmFseXplIHRoaXMgcGFydGljdWxh ciBzdWJ1bml0LCBhcyBkZXNjcmliZWQKICAgLS0gICAgICBmb3IgdGhlIGNhc2Ugd2hlcmUgd2Ug YXJlIGdlbmVyYXRpbmcgY29kZSwgYnV0IHdoZW4gd2UgZ2V0IGJhY2sKICAgLS0gICAgICB3ZSBh cmUgYWxsIGRvbmUsIHNpbmNlIHRoZSByZXN0IG9mIHRoZSBwYXJlbnQgaXMgaXJyZWxldmFudC4g VG8KICAgLS0gICAgICBnZXQgb3V0IG9mIHRoZSBwYXJlbnQsIHdlIHJhaXNlIHRoZSBleGNlcHRp b24gU3VidW5pdF9Gb3VuZCwgd2hpY2gKICAgLS0gICAgICBpcyBoYW5kbGVkIGF0IHRoZSBvdXRl ciBsZXZlbCBvZiBTZW0uCgogICAtLSAgICAgIFRoZSBjYXNlcyB3aGVyZSB0aGUgc3VidW5pdCBo YXMgbm90IGFscmVhZHkgYmVlbiBsb2FkZWQgY29ycmVzcG9uZAogICAtLSAgICAgIHRvIGNhc2Vz IHdoZXJlIHRoZSBtYWluIHVuaXQgd2FzIGEgcGFyZW50LiBJbiB0aGlzIGNhc2UgdGhlIGFjdGlv bgogICAtLSAgICAgIGRlcGVuZHMgb24gd2hldGhlciBvciBub3Qgd2UgYXJlIGdlbmVyYXRpbmcg Y29kZS4gSWYgd2UgYXJlIG5vdAogICAtLSAgICAgIGdlbmVyYXRpbmcgY29kZSwgdGhlbiB0aGlz IGlzIHRoZSBjYXNlIHdoZXJlIHdlIGNhbiBzaW1wbHkgaWdub3JlCiAgIC0tICAgICAgdGhlIHN1 YnVuaXQsIHNpbmNlIGluIGNoZWNraW5nIG1vZGUgd2UgZG9uJ3QgZXZlbiB3YW50IHRvIGluc2lz dAogICAtLSAgICAgIHRoYXQgdGhlIHN1YnVuaXQgZXhpc3QsIG11Y2ggbGVzcyB3YXN0ZSB0aW1l IGNoZWNraW5nIGl0LgoKICAgLS0gICAgICBJZiB3ZSBhcmUgZ2VuZXJhdGluZyBjb2RlLCB0aGVu IHdlIG5lZWQgdG8gbG9hZCBhbmQgYW5hbHl6ZQogICAtLSAgICAgIGFsbCBzdWJ1bml0cy4gVGhp cyBpcyBhY2hpZXZlZCB3aXRoIGEgY2FsbCB0byBMaWIuTG9hZCB0byBsb2FkCiAgIC0tICAgICAg YW5kIHBhcnNlIHRoZSB1bml0LCBmb2xsb3dlZCBieSBwcm9jZXNzaW5nIHRoYXQgaW5zdGFsbHMg dGhlCiAgIC0tICAgICAgY29udGV4dCBjbGF1c2Ugb2YgdGhlIHN1YnVuaXQsIGFuYWx5emVzIHRo ZSBzdWJ1bml0LCBhbmQgdGhlbgogICAtLSAgICAgIHJlbW92ZXMgdGhlIGNvbnRleHQgY2xhdXNl IChmcm9tIHRoZSB2aXNpYmlsaXR5IGNoYWlucyBvZiB0aGUKICAgLS0gICAgICBwYXJlbnQpLiBO b3RlIHRoYXQgd2UgZG8gKm5vdCogZG8gYSByZWN1cnNpdmUgY2FsbCB0byBTZW0gaW4KICAgLS0g ICAgICB0aGlzIGNhc2UsIHByZWNpc2VseSBiZWNhdXNlIHdlIG5lZWQgdG8gZG8gdGhlIGFuYWx5 c2lzIG9mIHRoZQogICAtLSAgICAgIHN1YnVuaXQgd2l0aCB0aGUgY3VycmVudCB2aXNpYmlsaXR5 IHRhYmxlIGFuZCBzY29wZSBzdGFjay4KCiAgIC0tICAgIENhc2UgKGYpIGFwcGxpZXMgb25seSB0 byBzdWJwcm9ncmFtcyBmb3Igd2hpY2ggYSBwcmFnbWEgSW5saW5lIGlzCiAgIC0tICAgIGdpdmVu LCBwcm92aWRpbmcgdGhhdCB0aGUgY29tcGlsZXIgaXMgb3BlcmF0aW5nIGluIHRoZSBtb2RlIHdo ZXJlCiAgIC0tICAgIHByYWdtYSBJbmxpbmUncyBhcmUgYWN0aXZhdGVkLiBXaGVuIHRoZSBleHBh bmRlciBlbmNvdW50ZXJzIGEgY2FsbAogICAtLSAgICB0byBzdWNoIGEgc3VicHJvZ3JhbSwgaXQg bG9hZHMgdGhlIGJvZHkgb2YgdGhlIHN1YnByb2dyYW0gaWYgaXQgaGFzCiAgIC0tICAgIG5vdCBh bHJlYWR5IGJlZW4gbG9hZGVkLCBhbmQgY2FsbHMgU2VtIHRvIHByb2Nlc3MgaXQuCgogICAtLSAg ICBDYXNlIChnKSBpcyBzaW1pbGFyIHRvIGNhc2UgKGYpLCBleGNlcHQgdGhhdCB0aGUgYm9keSBv ZiBhIGdlbmVyaWMKICAgLS0gICAgaXMgdW5jb25kaXRpb25hbGx5IHJlcXVpcmVkLCByZWdhcmRs ZXNzIG9mIGNvbXBpbGVyIG1vZGUgc2V0dGluZ3MuCiAgIC0tICAgIEFzIGluIHRoZSBzdWJwcm9n cmFtIGNhc2UsIHdoZW4gdGhlIGV4cGFuZGVyIGVuY291bnRlcnMgYSBnZW5lcmljCiAgIC0tICAg IGluc3RhbnRpYXRpb24sIGl0IGxvYWRzIHRoZSBnZW5lcmljIGJvZHkgb2YgdGhlIHN1YnByb2dy YW0gaWYgaXQKICAgLS0gICAgaGFzIG5vdCBhbHJlYWR5IGJlZW4gbG9hZGVkLCBhbmQgY2FsbHMg U2VtIHRvIHByb2Nlc3MgaXQuCgogICAtLSAgICBDYXNlIChoKSBhcmlzZXMgd2hlbiBhIHBhY2th Z2UgY29udGFpbnMgZWl0aGVyIGFuIGlubGluZWQgc3VicHJvZ3JhbQogICAtLSAgICB3aGljaCBp cyBjYWxsZWQsIG9yIGEgZ2VuZXJpYyB3aGljaCBpcyBpbnN0YW50aWF0ZWQuIEluIHRoaXMgY2Fz ZSB0aGUKICAgLS0gICAgYm9keSBvZiB0aGUgcGFja2FnZSBtdXN0IGJlIGxvYWRlZCBhbmQgYW5h bHl6ZWQgd2l0aCBhIGNhbGwgdG8gU2VtLgoKICAgLS0gICAgQ2FzZSAoaSkgaXMgaGFuZGxlZCBi eSBhZGRpbmcgaW1wbGljaXQgd2l0aCBjbGF1c2VzIHRvIHRoZSBjb250ZXh0CiAgIC0tICAgIGNs YXVzZXMgb2YgYWxsIHVuaXRzIHRoYXQgcG90ZW50aWFsbHkgcmVmZXJlbmNlIHRoZSByZWxldmFu dCBydW50aW1lCiAgIC0tICAgIGVudGl0aWVzLiBOb3RlIHRoYXQgc2luY2Ugd2UgaGF2ZSB0aGUg ZnVsbCBzZXQgb2YgdW5pdHMgYXZhaWxhYmxlLAogICAtLSAgICB0aGUgcGFyc2VyIGNhbiBhbHdh eXMgZGV0ZXJtaW5lIHRoZSBzZXQgb2YgcnVudGltZSB1bml0cyB0aGF0IGlzCiAgIC0tICAgIG5l ZWRlZC4gVGhlc2Ugd2l0aCBjbGF1c2VzIGRvIG5vdCBoYXZlIGFzc29jaWF0ZWQgdXNlIGNsYXVz ZXMsIHNvCiAgIC0tICAgIGFsbCByZWZlcmVuY2VzIHRvIHRoZSBlbnRpdGllcyBtdXN0IGJlIGJ5 IHNlbGVjdGlvbi4gT25jZSB0aGUgd2l0aAogICAtLSAgICBjbGF1c2VzIGhhdmUgYmVlbiBhZGRl ZCwgc3Vic2VxdWVudCBwcm9jZXNzaW5nIGlzIGFzIGZvciBub3JtYWwKICAgLS0gICAgd2l0aCBj bGF1c2VzLgoKICAgLS0gICAgQ2FzZSAoaikgaXMgYWxzbyBoYW5kbGVkIGJ5IGFkZGluZyBhcHBy b3ByaWF0ZSBpbXBsaWNpdCB3aXRoIGNsYXVzZXMKICAgLS0gICAgdG8gYW55IHVuaXQgdGhhdCB3 aXRocyBhIGNoaWxkIHVuaXQuIEFnYWluIHRoZXJlIGlzIG5vIHVzZSBjbGF1c2UsCiAgIC0tICAg IGFuZCBzdWJzZXF1ZW50IHByb2Nlc3NpbmcgcHJvY2VlZHMgYXMgZm9yIGFuIGV4cGxpY2l0IHdp dGggY2xhdXNlLgoKICAgLS0gIFNlbSB0aHVzIGNvbXBsZXRlcyB0aGUgbG9hZGluZyBvZiBhbGwg cmVxdWlyZWQgdW5pdHMsIGV4Y2VwdCB0aG9zZQogICAtLSAgcmVxdWlyZWQgZm9yIGlubGluZSBz dWJwcm9ncmFtIGJvZGllcyBvciBpbmxpbmVkIGdlbmVyaWNzLiBJZiBhbnkKICAgLS0gIG9mIHRo ZXNlIGxvYWQgYXR0ZW1wdHMgZmFpbHMsIHRoZW4gdGhlIGV4cGFuZGVyIHdpbGwgbm90IGJlIGNh bGxlZCwKICAgLS0gIGV2ZW4gaWYgY29kZSB3YXMgdG8gYmUgZ2VuZXJhdGVkLiBJZiB0aGUgbG9h ZCBhdHRlbXB0cyBhbGwgc3VjY2VlZAogICAtLSAgdGhlbiB0aGUgZXhwYW5kZXIgaXMgY2FsbGVk LCB0aG91Z2ggdGhlIGF0dGVtcHQgdG8gZ2VuZXJhdGUgY29kZSBtYXkKICAgLS0gIHN0aWxsIGZh aWwgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBhIGxvYWQgYXR0ZW1wdCBmb3IgYW4gaW5saW5l ZAogICAtLSAgYm9keSBvciBhIGdlbmVyaWMgYm9keS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU3BlY2lhbCBIYW5kbGluZyBvZiBTdWJwcm9n cmFtIEJvZGllcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgogICAtLSAgQSBzdWJwcm9ncmFtIGJvZHkgKGluIGFuIGFkYiBmaWxlKSBtYXkgc3RhbmQg Zm9yIGJvdGggYSBzcGVjIGFuZCBhCiAgIC0tICBib2R5LiBBIHNpbXBsZSBtb2RlbCAoYW5kIG9u ZSB0aGF0IHdhcyBhZG9wdGVkIHRocm91Z2ggdmVyc2lvbiAyLjA3KSwKICAgLS0gIGlzIHNpbXBs eSB0byBhc3N1bWUgdGhhdCBzdWNoIGFuIGFkYiBmaWxlIGFjdHMgYXMgaXRzIG93biBzcGVjIGlm IG5vCiAgIC0tICBhZHMgZmlsZSBpcyBwcmVzZW50LgoKICAgLS0gIEhvd2V2ZXIsIHRoaXMgaXMg bm90IGNvcnJlY3QuIFJNIDEwLjEuNCg0KSByZXF1aXJlcyB0aGF0IHN1Y2ggYSBib2R5CiAgIC0t ICBhY3QgYXMgYSBzcGVjIHVubGVzcyBhIHN1YnByb2dyYW0gZGVjbGFyYXRpb24gb2YgdGhlIHNh bWUgbmFtZSBpcwogICAtLSAgYWxyZWFkeSBwcmVzZW50LiBUaGUgY29ycmVjdCBpbnRlcnByZXRh dGlvbiBvZiB0aGlzIGluIEdOQVQgbGlicmFyeQogICAtLSAgdGVybXMgaXMgdG8gaWdub3JlIGFu IGV4aXN0aW5nIGFkcyBmaWxlIG9mIHRoZSBzYW1lIG5hbWUgdW5sZXNzIHRoaXMKICAgLS0gIGFk cyBmaWxlIGNvbnRhaW5zIGEgc3VicHJvZ3JhbSBkZWNsYXJhdGlvbiB3aXRoIHRoZSBzYW1lIG5h bWUuCgogICAtLSAgSWYgdGhlcmUgaXMgYW4gYWRzIGZpbGUgd2l0aCBhIHVuaXQgb3RoZXIgdGhh biBhIHN1YnByb2dyYW0gZGVjbGFyYXRpb24KICAgLS0gIHdpdGggdGhlIHNhbWUgbmFtZSwgdGhl biBhIGZhdGFsIG1lc3NhZ2UgaXMgb3V0cHV0LCBub3RpbmcgdGhhdCB0aGlzCiAgIC0tICBpcnJl bGV2YW50IGZpbGUgbXVzdCBiZSBkZWxldGVkIGJlZm9yZSB0aGUgYm9keSBjYW4gYmUgY29tcGls ZWQuIFNlZQogICAtLSAgQUNWQyB0ZXN0IENBMTAyMEQgdG8gc2VlIGhvdyB0aGlzIHByb2Nlc3Np bmcgaXMgcmVxdWlyZWQuCgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHbG9iYWwgRGF0YSAt LQogICAtLS0tLS0tLS0tLS0tLS0tLQoKICAgQ3VycmVudF9TZW1fVW5pdCA6IFVuaXRfTnVtYmVy X1R5cGUgOj0gTWFpbl9Vbml0OwogICAtLSAgVW5pdCBudW1iZXIgb2YgdW5pdCBjdXJyZW50bHkg YmVpbmcgYW5hbHl6ZWQvZXhwYW5kZWQuIFRoaXMgaXMgc2V0IHdoZW4KICAgLS0gIGV2ZXIgYSBu ZXcgdW5pdCBpcyBlbnRlcmVkLCBzYXZpbmcgYW5kIHJlc3RvcmluZyB0aGUgb2xkIHZhbHVlLCBz byB0aGF0CiAgIC0tICBpdCBhbHdheXMgcmVmbGVjdHMgdGhlIHVuaXQgY3VycmVudGx5IGJlaW5n IGFuYWx5emVkLiBUaGUgaW5pdGlhbCB2YWx1ZQogICAtLSAgb2YgTWFpbl9Vbml0IGVuc3VyZXMg dGhhdCBhIHByb3BlciB2YWx1ZSBpcyBzZXQgaW5pdGlhbGx5LCBhbmQgaW4KICAgLS0gIHBhcnRp Y3VsYXIgZm9yIGFuYWx5c2lzIG9mIGNvbmZpZ3VyYXRpb24gcHJhZ21hcyBpbiBnbmF0LmFkYy4K CiAgIE1haW5fVW5pdF9FbnRpdHkgOiBFbnRpdHlfSWQ7CiAgIC0tICBFbnRpdHkgb2YgbWFpbiB1 bml0LCBzYW1lIGFzIEN1bml0X0VudGl0eSAoTWFpbl9Vbml0KSBleGNlcHQgd2hlcmUKICAgLS0g IE1haW5fVW5pdCBpcyBhIGJvZHkgd2l0aCBhIHNlcGFyYXRlIHNwZWMsIGluIHdoaWNoIGNhc2Ug aXQgaXMgdGhlCiAgIC0tICBlbnRpdHkgZm9yIHRoZSBzcGVjLgoKICAgVW5pdF9FeGNlcHRpb25f VGFibGVfUHJlc2VudCA6IEJvb2xlYW47CiAgIC0tICBTZXQgdHJ1ZSBpZiBhIHVuaXQgZXhjZXB0 aW9uIHRhYmxlIGlzIHByZXNlbnQgZm9yIHRoZSB1bml0IChpLmUuCiAgIC0tICB6ZXJvIGNvc3Qg ZXhjZXB0aW9uIGhhbmRsaW5nIGlzIGFjdGl2ZSBhbmQgdGhlcmUgaXMgYXQgbGVhc3Qgb25lCiAg IC0tICBzdWJwcm9ncmFtIGluIHRoZSBleHRlbmRlZCB1bml0KS4KCiAgIC0tLS0tLS0tLS0tLS0t LS0tCiAgIC0tIFVuaXRzIFRhYmxlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhl IHVuaXRzIHRhYmxlIGhhcyBhbiBlbnRyeSBmb3IgZWFjaCB1bml0IChzb3VyY2UgZmlsZSkgcmVh ZCBpbiBieSB0aGUKICAgLS0gIGN1cnJlbnQgY29tcGlsYXRpb24uIFRoZSB0YWJsZSBpcyBpbmRl eGVkIGJ5IHRoZSB1bml0IG51bWJlciB2YWx1ZSwKICAgLS0gIFRoZSBmaXJzdCBlbnRyeSBpbiB0 aGUgdGFibGUsIHN1YnNjcmlwdCBNYWluX1VuaXQsIGlzIGZvciB0aGUgbWFpbiBmaWxlLgogICAt LSAgRWFjaCBlbnRyeSBpbiB0aGlzIHVuaXRzIHRhYmxlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcg ZGF0YS4KCiAgIC0tICAgIFVuaXRfRmlsZV9OYW1lCiAgIC0tICAgICAgVGhlIG5hbWUgb2YgdGhl IHNvdXJjZSBmaWxlIGNvbnRhaW5pbmcgdGhlIHVuaXQuIFNldCB3aGVuIHRoZSBlbnRyeQogICAt LSAgICAgIGlzIGNyZWF0ZWQgYnkgYSBjYWxsIHRvIExpYi5Mb2FkLCBhbmQgdGhlbiBjYW5ub3Qg YmUgY2hhbmdlZC4KCiAgIC0tICAgIFNvdXJjZV9JbmRleAogICAtLSAgICAgIFRoZSBpbmRleCBp biB0aGUgc291cmNlIGZpbGUgdGFibGUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGZpbGUu CiAgIC0tICAgICAgU2V0IHdoZW4gdGhlIGVudHJ5IGlzIGNyZWF0ZWQgYnkgYSBjYWxsIHRvIExp Yi5Mb2FkIGFuZCB0aGVuIGNhbm5vdAogICAtLSAgICAgIGJlIGNoYW5nZWQuCgogICAtLSAgICBF cnJvcl9Mb2NhdGlvbgogICAtLSAgICAgIFRoaXMgaXMgY29waWVkIGZyb20gdGhlIFNsb2MgZmll bGQgb2YgdGhlIEVub2RlIGFyZ3VtZW50IHBhc3NlZAogICAtLSAgICAgIHRvIExvYWRfVW5pdC4g SXQgcmVmZXJzIHRvIHRoZSBlbmNsb3NpbmcgY29uc3RydWN0IHdoaWNoIGNhdXNlZAogICAtLSAg ICAgIHRoaXMgdW5pdCB0byBiZSBsb2FkZWQsIGUuZy4gbW9zdCB0eXBpY2FsbHkgdGhlIHdpdGgg Y2xhdXNlIHRoYXQKICAgLS0gICAgICByZWZlcmVuY2VkIHRoZSB1bml0LCBhbmQgaXMgdXNlZCBm b3IgZXJyb3IgaGFuZGxpbmcgaW4gUGFyLkxvYWQuCgogICAtLSAgICBFeHBlY3RlZF9Vbml0CiAg IC0tICAgICAgVGhpcyBpcyB0aGUgZXhwZWN0ZWQgdW5pdCBuYW1lIGZvciBhIGZpbGUgb3RoZXIg dGhhbiB0aGUgbWFpbiB1bml0LAogICAtLSAgICAgIHNpbmNlIHRoZXNlIGFyZSBjYXNlcyB3aGVy ZSB3ZSBsb2FkIHRoZSB1bml0IHVzaW5nIExpYi5Mb2FkIGFuZCB3ZQogICAtLSAgICAgIGtub3cg dGhlIHVuaXQgdGhhdCBpcyBleHBlY3RlZC4gSXQgbXVzdCBiZSB0aGUgc2FtZSBhcyBVbml0X05h bWUKICAgLS0gICAgICBpZiBpdCBpcyBzZXQgKHNlZSB0ZXN0IGluIFBhci5Mb2FkKS4gRXhwZWN0 ZWRfVW5pdCBpcyBzZXQgdG8KICAgLS0gICAgICBOb19OYW1lIGZvciB0aGUgbWFpbiB1bml0LgoK ICAgLS0gICAgVW5pdF9OYW1lCiAgIC0tICAgICAgVGhlIG5hbWUgb2YgdGhlIHVuaXQuIEluaXRp YWxpemVkIHRvIE5vX05hbWUgYnkgTGliLkxvYWQsIGFuZCB0aGVuCiAgIC0tICAgICAgc2V0IGJ5 IHRoZSBwYXJzZXIgd2hlbiB0aGUgdW5pdCBpcyBwYXJzZWQgdG8gdGhlIHVuaXQgbmFtZSBhY3R1 YWxseQogICAtLSAgICAgIGZvdW5kIGluIHRoZSBmaWxlICh3aGljaCBzaG91bGQsIGluIHRoZSBh YnNlbmNlIG9mIGVycm9ycykgYmUgdGhlCiAgIC0tICAgICAgc2FtZSBuYW1lIGFzIEV4cGVjdGVk X1VuaXQuCgogICAtLSAgICBDdW5pdAogICAtLSAgICAgIFBvaW50ZXIgdG8gdGhlIE5fQ29tcGls YXRpb25fVW5pdCBub2RlLiBJbml0aWFsbHkgc2V0IHRvIEVtcHR5IGJ5CiAgIC0tICAgICAgTGli LkxvYWQsIGFuZCB0aGVuIHJlc2V0IHRvIHRoZSByZXF1aXJlZCBub2RlIGJ5IHRoZSBwYXJzZXIg d2hlbgogICAtLSAgICAgIHRoZSB1bml0IGlzIHBhcnNlZC4KCiAgIC0tICAgIEN1bml0X0VudGl0 eQogICAtLSAgICAgIFBvaW50ZXIgdG8gdGhlIGVudGl0eSBub2RlIGZvciB0aGUgY29tcGlsYXRp b24gdW5pdC4gSW5pdGlhbGx5IHNldAogICAtLSAgICAgIHRvIEVtcHR5IGJ5IExpYi5Mb2FkLCBh bmQgdGhlbiByZXNldCB0byB0aGUgcmVxdWlyZWQgZW50aXR5IGJ5IHRoZQogICAtLSAgICAgIHBh cnNlciB3aGVuIHRoZSB1bml0IGlzIHBhcnNlZC4KCiAgIC0tICAgIERlcGVuZGVuY3lfTnVtCiAg IC0tICAgICAgVGhpcyBpcyB0aGUgbnVtYmVyIG9mIHRoZSB1bml0IHdpdGhpbiB0aGUgZ2VuZXJh dGVkIGRlcGVuZGVuY3kKICAgLS0gICAgICBsaW5lcyAoRCBsaW5lcyBpbiB0aGUgQUxJIGZpbGUp IHdoaWNoIGFyZSBzb3J0ZWQgaW50byBhbHBoYWJldGljYWwKICAgLS0gICAgICBvcmRlci4gVGhl IG51bWJlciBpcyBvbmVzIG9yaWdpbiwgc28gYSB2YWx1ZSBvZiAyIHJlZmVycyB0byB0aGUKICAg LS0gICAgICBzZWNvbmQgZ2VuZXJhdGVkIEQgbGluZS4gVGhlIERlcGVuZGVuY3lfTnVtYmVyIHZh bHVlcyBhcmUgc2V0CiAgIC0tICAgICAgYXMgdGhlIEQgbGluZXMgYXJlIGdlbmVyYXRlZCwgYW5k IGFyZSB1c2VkIHRvIGdlbmVyYXRlIHByb3BlcgogICAtLSAgICAgIHVuaXQgcmVmZXJlbmNlcyBp biB0aGUgZ2VuZXJhdGVkIHhyZWYgaW5mb3JtYXRpb24uCgogICAtLSAgICBEeW5hbWljX0VsYWIK ICAgLS0gICAgICBBIGZsYWcgaW5kaWNhdGluZyBpZiB0aGlzIHVuaXQgd2FzIGNvbXBpbGVkIHdp dGggZHluYW1pYyBlbGFib3JhdGlvbgogICAtLSAgICAgIGNoZWNrcyBzcGVjaWZpZWQgKGFzIHRo ZSByZXN1bHQgb2YgdXNpbmcgdGhlIC1nbmF0RSBjb21waWxhdGlvbgogICAtLSAgICAgIG9wdGlv biBvciBhIHByYWdtYSBFbGFib3JhdGlvbl9DaGVja3MgKER5bmFtaWMpLgoKICAgLS0gICAgRmF0 YWxfRXJyb3IKICAgLS0gICAgICBBIGZsYWcgdGhhdCBpcyBpbml0aWFsaXplZCB0byBGYWxzZSwg YW5kIGdldHMgc2V0IHRvIFRydWUgaWYgYSBmYXRhbAogICAtLSAgICAgIGVycm9yIG9jY3VycyBk dXJpbmcgdGhlIHByb2Nlc3Npbmcgb2YgYSB1bml0LiBBIGZhdGFsIGVycm9yIGlzIG9uZQogICAt LSAgICAgIGRlZmluZWQgYXMgc2VyaW91cyBlbm91Z2ggdG8gc3RvcCB0aGUgbmV4dCBwaGFzZSBv ZiB0aGUgY29tcGlsZXIKICAgLS0gICAgICBmcm9tIHJ1bm5pbmcgKGkuZS4gZmF0YWwgZXJyb3Ig ZHVyaW5nIHBhcnNpbmcgc3RvcHMgc2VtYW50aWNzLAogICAtLSAgICAgIGZhdGFsIGVycm9yIGR1 cmluZyBzZW1hbnRpY3Mgc3RvcHMgY29kZSBnZW5lcmF0aW9uKS4gTm90ZSB0aGF0CiAgIC0tICAg ICAgY3VycmVudGx5LCBlcnJvcnMgb2YgYW55IGtpbmQgY2F1c2UgRmF0YWxfRXJyb3IgdG8gYmUg c2V0LCBidXQKICAgLS0gICAgICBldmVudHVhbGx5IHBlcmhhcHMgb25seSBlcnJvcnMgbGFiZWxl ZCBhcyBGYXRhbF9FcnJvcnMgc2hvdWxkIGJlCiAgIC0tICAgICAgdGhpcyBzZXZlcmUgaWYgd2Ug ZGVjaWRlIHRvIHRyeSBTZW0gb24gc291cmNlcyB3aXRoIG1pbm9yIGVycm9ycy4KCiAgIC0tICAg IEdlbmVyYXRlX0NvZGUKICAgLS0gICAgICBUaGlzIGZsYWcgaXMgc2V0IFRydWUgZm9yIGFsbCB1 bml0cyBpbiB0aGUgY3VycmVudCBmaWxlIGZvciB3aGljaAogICAtLSAgICAgIGNvZGUgaXMgdG8g YmUgZ2VuZXJhdGVkLiBUaGlzIGluY2x1ZGVzIHRoZSB1bml0IGV4cGxpY2l0bHkgY29tcGlsZWQs CiAgIC0tICAgICAgdG9nZXRoZXIgd2l0aCBpdHMgc3BlY2lmaWNhdGlvbiwgYW5kIGFueSBzdWJ1 bml0cy4KCiAgIC0tICAgIEhhc19SQUNXCiAgIC0tICAgICAgQSBCb29sZWFuIGZsYWcsIGluaXRp YWxseSBzZXQgdG8gRmFsc2Ugd2hlbiBhIHVuaXQgZW50cnkgaXMgY3JlYXRlZCwKICAgLS0gICAg ICBhbmQgc2V0IHRvIFRydWUgaWYgdGhlIHVuaXQgZGVmaW5lcyBhIHJlbW90ZSBhY2Nlc3MgdG8g Y2xhc3Mgd2lkZQogICAtLSAgICAgIChSQUNXKSBvYmplY3QuIFRoaXMgaXMgdXNlZCBmb3IgY29u dHJvbGxpbmcgZ2VuZXJhdGlvbiBvZiB0aGUgUkEKICAgLS0gICAgICBhdHRyaWJ1dGUgaW4gdGhl IGFsaSBmaWxlLgoKICAgLS0gICAgSWRlbnRfU3RyaW5nCiAgIC0tICAgICAgTl9TdHJpbmdfTGl0 ZXJhbCBub2RlIGZyb20gYSB2YWxpZCBwcmFnbWEgSWRlbnQgdGhhdCBhcHBsaWVzIHRvCiAgIC0t ICAgICAgdGhpcyB1bml0LiBJZiBubyBJZGVudCBwcmFnbWEgYXBwbGllcyB0byB0aGUgdW5pdCwg dGhlbiBFbXB0eS4KCiAgIC0tICAgIExvYWRpbmcKICAgLS0gICAgICBBIGZsYWcgdGhhdCBpcyB1 c2VkIHRvIGNhdGNoIGNpcmN1bGFyIFdJVEggZGVwZW5kZW5jaWVzLiBJdCBpcyBzZXQKICAgLS0g ICAgICBUcnVlIHdoZW4gYW4gZW50cnkgaXMgaW5pdGlhbGx5IGNyZWF0ZWQgaW4gdGhlIGZpbGUg dGFibGUsIGFuZCBzZXQKICAgLS0gICAgICBGYWxzZSB3aGVuIHRoZSBsb2FkIGlzIGNvbXBsZXRl ZCwgb3IgZW5kcyB3aXRoIGFuIGVycm9yLgoKICAgLS0gICAgTWFpbl9Qcmlvcml0eQogICAtLSAg ICAgIFRoaXMgZmllbGQgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgcHJpb3JpdHkgb2YgYSBwb3Nz aWJsZSBtYWluCiAgIC0tICAgICAgcHJvZ3JhbSwgYXMgc2V0IGJ5IGEgcHJhZ21hIFByaW9yaXR5 LiBBIHZhbHVlIG9mIC0xIGluZGljYXRlcwogICAtLSAgICAgIHRoYXQgdGhlIGRlZmF1bHQgcHJp b3JpdHkgaXMgdG8gYmUgdXNlZCAoYW5kIGlzIGFsc28gdXNlZCBmb3IKICAgLS0gICAgICBlbnRy aWVzIHRoYXQgZG8gbm90IGNvcnJlc3BvbmQgdG8gcG9zc2libGUgbWFpbiBwcm9ncmFtcykuCgog ICAtLSAgICBTZXJpYWxfTnVtYmVyCiAgIC0tICAgICAgVGhpcyBmaWVsZCBob2xkcyBhIHNlcmlh bCBudW1iZXIgdXNlZCBieSBOZXdfSW50ZXJuYWxfTmFtZSB0bwogICAtLSAgICAgIGdlbmVyYXRl IHVuaXF1ZSB0ZW1wb3JhcnkgbnVtYmVycyBvbiBhIHVuaXQgYnkgdW5pdCBiYXNpcy4gVGhlCiAg IC0tICAgICAgb25seSBhY2Nlc3MgdG8gdGhpcyBmaWVsZCBpcyB2aWEgdGhlIEluY3JlbWVudF9T ZXJpYWxfTnVtYmVyCiAgIC0tICAgICAgcm91dGluZSB3aGljaCBpbmNyZW1lbnRzIHRoZSBjdXJy ZW50IHZhbHVlIGFuZCByZXR1cm5zIGl0LiBUaGlzCiAgIC0tICAgICAgc2VyaWFsIG51bWJlciBp cyBzZXBhcmF0ZSBmb3IgZWFjaCB1bml0LgoKICAgLS0gICAgVmVyc2lvbgogICAtLSAgICAgIFRo aXMgZmllbGQgaG9sZHMgdGhlIHZlcnNpb24gb2YgdGhlIHVuaXQsIHdoaWNoIGlzIGNvbXB1dGVk IGFzCiAgIC0tICAgICAgdGhlIGV4Y2x1c2l2ZSBvciBvZiB0aGUgY2hlY2tzdW1zIG9mIHRoaXMg dW5pdCwgYW5kIGFsbCBpdHMKICAgLS0gICAgICBzZW1hbnRpY2FsbHkgZGVwZW5kZW50IHVuaXRz LiBBY2Nlc3MgdG8gdGhlIHZlcnNpb24gbnVtYmVyIGZpZWxkCiAgIC0tICAgICAgaXMgbm90IGRp cmVjdCwgYnV0IGlzIGRvbmUgdGhyb3VnaCB0aGUgcm91dGluZXMgZGVzY3JpYmVkIGJlbG93Lgog ICAtLSAgICAgIFdoZW4gYSB1bml0IHRhYmxlIGVudHJ5IGlzIGNyZWF0ZWQsIHRoaXMgZmllbGQg aXMgaW5pdGlhbGl6ZWQgdG8KICAgLS0gICAgICB0aGUgY2hlY2tzdW0gb2YgdGhlIGNvcnJlc3Bv bmRpbmcgc291cmNlIGZpbGUuIFZlcnNpb25fVXBkYXRlIGlzCiAgIC0tICAgICAgdGhlbiBjYWxs ZWQgdG8gcmVmbGVjdCB0aGUgY29udHJpYnV0aW9ucyBvZiBhbnkgdW5pdCBvbiB3aGljaCB0aGlz CiAgIC0tICAgICAgdW5pdCBpcyBzZW1hbnRpY2FsbHkgZGVwZW5kZW50LgoKICAgLS0gICAgRGVw ZW5kZW50X1VuaXQKICAgLS0gICAgICBUaGlzIGlzIGEgQm9vbGVhbiBmbGFnLCB3aGljaCBpcyBz ZXQgVHJ1ZSB0byBpbmRpY2F0ZSB0aGF0IHRoaXMKICAgLS0gICAgICBlbnRyeSBpcyBmb3IgYSBz ZW1hbnRpY2FsbHkgZGVwZW5kZW50IHVuaXQuIFRoaXMgZmxhZyBpcyBuZWFybHkKICAgLS0gICAg ICBhbHdheXMgc2V0IFRydWUsIHRoZSBvbmx5IGV4Y2VwdGlvbiBpcyBmb3IgYSB1bml0IHRoYXQg aXMgbG9hZGVkCiAgIC0tICAgICAgYnkgYW4gUnRzZmluZCByZXF1ZXN0IGluIE5vX1J1bl9UaW1l IG1vZGUsIHdoZXJlIHRoZSBlbnRpdHkgdGhhdAogICAtLSAgICAgIGlzIG9idGFpbmVkIGJ5IFJ0 c2ZpbmQuUlRFIGlzIGZvciBhbiBpbmxpbmVkIHN1YnByb2dyYW0gb3Igb3RoZXIKICAgLS0gICAg ICBlbnRpdHkgZm9yIHdoaWNoIGEgZGVwZW5kZW5jeSBuZWVkIG5vdCBiZSBjcmVhdGVkLgoKICAg LS0gIFRoZSB1bml0cyB0YWJsZSBpcyByZXNldCB0byBlbXB0eSBhdCB0aGUgc3RhcnQgb2YgdGhl IGNvbXBpbGF0aW9uIG9mCiAgIC0tICBlYWNoIG1haW4gdW5pdCBieSBMaWIuSW5pdGlhbGl6ZS4g RW50cmllcyBhcmUgdGhlbiBhZGRlZCBieSBjYWxscyB0bwogICAtLSAgdGhlIExpYi5Mb2FkIHBy b2NlZHVyZS4gVGhlIGZvbGxvd2luZyBzdWJwcm9ncmFtcyBhcmUgdXNlZCB0byBhY2Nlc3MKICAg LS0gIGFuZCBtb2RpZnkgZW50cmllcyBpbiB0aGUgVW5pdHMgdGFibGUuIEluZGl2aWR1YWwgZW50 cmllcyBhcmUgYWNjZXNzZWQKICAgLS0gIHVzaW5nIGEgdW5pdCBudW1iZXIgdmFsdWUgd2hpY2gg cmFuZ2VzIGZyb20gTWFpbl9Vbml0ICh0aGUgZmlyc3QgZW50cnksCiAgIC0tICB3aGljaCBpcyBh bHdheXMgZm9yIHRoZSBjdXJyZW50IG1haW4gdW5pdCkgdG8gTGFzdF9Vbml0LgoKICAgRGVmYXVs dF9NYWluX1ByaW9yaXR5IDogY29uc3RhbnQgSW50IDo9IC0xOwogICAtLSAgVmFsdWUgdXNlZCBp biBNYWluX1ByaW9yaXR5IGZpZWxkIHRvIGluZGljYXRlIGRlZmF1bHQgbWFpbiBwcmlvcml0eQoK ICAgZnVuY3Rpb24gQ3VuaXQgICAgICAgICAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVy biBOb2RlX0lkOwogICBmdW5jdGlvbiBDdW5pdF9FbnRpdHkgICAgIChVIDogVW5pdF9OdW1iZXJf VHlwZSkgcmV0dXJuIEVudGl0eV9JZDsKICAgZnVuY3Rpb24gRGVwZW5kZW50X1VuaXQgICAoVSA6 IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiBEZXBlbmRlbmN5 X051bSAgIChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIE5hdDsKICAgZnVuY3Rpb24gRHlu YW1pY19FbGFiICAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBCb29sZWFuOwogICBm dW5jdGlvbiBFcnJvcl9Mb2NhdGlvbiAgIChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIFNv dXJjZV9QdHI7CiAgIGZ1bmN0aW9uIEV4cGVjdGVkX1VuaXQgICAgKFUgOiBVbml0X051bWJlcl9U eXBlKSByZXR1cm4gVW5pdF9OYW1lX1R5cGU7CiAgIGZ1bmN0aW9uIEZhdGFsX0Vycm9yICAgICAg KFUgOiBVbml0X051bWJlcl9UeXBlKSByZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24gR2VuZXJh dGVfQ29kZSAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBCb29sZWFuOwogICBmdW5j dGlvbiBJZGVudF9TdHJpbmcgICAgIChVIDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIE5vZGVf SWQ7CiAgIGZ1bmN0aW9uIEhhc19SQUNXICAgICAgICAgKFUgOiBVbml0X051bWJlcl9UeXBlKSBy ZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24gTG9hZGluZyAgICAgICAgICAoVSA6IFVuaXRfTnVt YmVyX1R5cGUpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiBNYWluX1ByaW9yaXR5ICAgIChV IDogVW5pdF9OdW1iZXJfVHlwZSkgcmV0dXJuIEludDsKICAgZnVuY3Rpb24gU291cmNlX0luZGV4 ICAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBTb3VyY2VfRmlsZV9JbmRleDsKICAg ZnVuY3Rpb24gVW5pdF9GaWxlX05hbWUgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBG aWxlX05hbWVfVHlwZTsKICAgZnVuY3Rpb24gVW5pdF9OYW1lICAgICAgICAoVSA6IFVuaXRfTnVt YmVyX1R5cGUpIHJldHVybiBVbml0X05hbWVfVHlwZTsKICAgLS0gIEdldCB2YWx1ZSBvZiBuYW1l ZCBmaWVsZCBmcm9tIGdpdmVuIHVuaXRzIHRhYmxlIGVudHJ5CgogICBwcm9jZWR1cmUgU2V0X0N1 bml0ICAgICAgICAgIChVIDogVW5pdF9OdW1iZXJfVHlwZTsgTiA6IE5vZGVfSWQpOwogICBwcm9j ZWR1cmUgU2V0X0N1bml0X0VudGl0eSAgIChVIDogVW5pdF9OdW1iZXJfVHlwZTsgRSA6IEVudGl0 eV9JZCk7CiAgIHByb2NlZHVyZSBTZXRfRHluYW1pY19FbGFiICAgKFUgOiBVbml0X051bWJlcl9U eXBlOyBCIDogQm9vbGVhbiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9FcnJvcl9Mb2NhdGlv biAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IFcgOiBTb3VyY2VfUHRyKTsKICAgcHJvY2VkdXJlIFNl dF9GYXRhbF9FcnJvciAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IEIgOiBCb29sZWFuIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0dlbmVyYXRlX0NvZGUgIChVIDogVW5pdF9OdW1iZXJfVHlw ZTsgQiA6IEJvb2xlYW4gOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1JBQ1cgICAgICAg KFUgOiBVbml0X051bWJlcl9UeXBlOyBCIDogQm9vbGVhbiA6PSBUcnVlKTsKICAgcHJvY2VkdXJl IFNldF9JZGVudF9TdHJpbmcgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IE4gOiBOb2RlX0lkKTsK ICAgcHJvY2VkdXJlIFNldF9Mb2FkaW5nICAgICAgICAoVSA6IFVuaXRfTnVtYmVyX1R5cGU7IEIg OiBCb29sZWFuIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X01haW5fUHJpb3JpdHkgIChVIDog VW5pdF9OdW1iZXJfVHlwZTsgUCA6IEludCk7CiAgIHByb2NlZHVyZSBTZXRfVW5pdF9OYW1lICAg ICAgKFUgOiBVbml0X051bWJlcl9UeXBlOyBOIDogVW5pdF9OYW1lX1R5cGUpOwogICAtLSAgU2V0 IHZhbHVlIG9mIG5hbWVkIGZpZWxkIGZvciBnaXZlbiB1bml0cyB0YWJsZSBlbnRyeS4gTm90ZSB0 aGF0IHdlCiAgIC0tICBkbyBub3QgaGF2ZSBhbiBlbnRyeSBmb3IgZWFjaCBwb3NzaWJsZSBmaWVs ZCwgc2luY2Ugc29tZSBvZiB0aGUgZmllbGRzCiAgIC0tICBjYW4gb25seSBiZSBzZXQgYnkgc3Bl Y2lhbGl6ZWQgaW50ZXJmYWNlcyAoZGVmaW5lZCBiZWxvdykuCgogICBmdW5jdGlvbiBWZXJzaW9u X0dldCAoVSA6IFVuaXRfTnVtYmVyX1R5cGUpIHJldHVybiBXb3JkX0hleF9TdHJpbmc7CiAgIC0t ICBSZXR1cm5zIHRoZSB2ZXJzaW9uIGFzIGEgc3RyaW5nIHdpdGggOCBoZXggZGlnaXRzICh1cHBl ciBjYXNlIGxldHRlcnMpCgogICBmdW5jdGlvbiBMYXN0X1VuaXQgcmV0dXJuIFVuaXRfTnVtYmVy X1R5cGU7CiAgIC0tICBVbml0IG51bWJlciBvZiBsYXN0IGFsbG9jYXRlZCB1bml0CgogICBmdW5j dGlvbiBOdW1fVW5pdHMgcmV0dXJuIE5hdDsKICAgLS0gIE51bWJlciBvZiB1bml0cyBjdXJyZW50 bHkgaW4gdW5pdCB0YWJsZQoKICAgZnVuY3Rpb24gRW50aXR5X0lzX0luX01haW5fVW5pdCAoRSA6 IEVudGl0eV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBSZXR1cm5zIFRydWUgaWYgdGhlIGVu dGl0eSBFIGlzIGRlY2xhcmVkIGluIHRoZSBtYWluIHVuaXQsIG9yLCBpbgogICAtLSAgaXRzIGNv cnJlc3BvbmRpbmcgc3BlYywgb3Igb25lIG9mIGl0cyBzdWJ1bml0cy4gRW50aXRpZXMgZGVjbGFy ZWQKICAgLS0gIHdpdGhpbiBnZW5lcmljIGluc3RhbnRpYXRpb25zIHJldHVybiBUcnVlIGlmIHRo ZSBpbnN0YW50aWF0aW9uIGlzCiAgIC0tICBpdHNlbGYgImluIHRoZSBtYWluIHVuaXQiIGJ5IHRo aXMgZGVmaW5pdGlvbi4gT3RoZXJ3aXNlIEZhbHNlLgoKICAgZnVuY3Rpb24gR2V0X1NvdXJjZV9V bml0IChOIDogTm9kZV9JZCkgcmV0dXJuIFVuaXRfTnVtYmVyX1R5cGU7CiAgIHByYWdtYSBJbmxp bmUgKEdldF9Tb3VyY2VfVW5pdCk7CiAgIGZ1bmN0aW9uIEdldF9Tb3VyY2VfVW5pdCAoUyA6IFNv dXJjZV9QdHIpIHJldHVybiBVbml0X051bWJlcl9UeXBlOwogICAtLSAgUmV0dXJuIHVuaXQgbnVt YmVyIG9mIGZpbGUgaWRlbnRpZmllZCBieSBnaXZlbiBzb3VyY2UgcG9pbnRlciB2YWx1ZS4KICAg LS0gIFRoaXMgY2FsbCBtdXN0IGFsd2F5cyBzdWNjZWVkLCBzaW5jZSBhbnkgdmFsaWQgc291cmNl IHBvaW50ZXIgdmFsdWUKICAgLS0gIGJlbG9uZ3MgdG8gc29tZSBwcmV2aW91c2x5IGxvYWRlZCBt b2R1bGUuIElmIHRoZSBnaXZlbiBzb3VyY2UgcG9pbnRlcgogICAtLSAgdmFsdWUgaXMgd2l0aGlu IGFuIGluc3RhbnRpYXRpb24sIHRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdW5pdAogICAtLSAg bnVtYmVyIG9mIHRoZSB0ZW1wbGFjZSwgaS5lLiB0aGUgdW5pdCBjb250YWluaW5nIHRoZSBzb3Vy Y2UgY29kZQogICAtLSAgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gU291cmNlX1B0ciB2YWx1 ZS4gVGhlIHZlcnNpb24gdGFraW5nCiAgIC0tICBhIE5vZGVfSWQgYXJndW1lbnQsIE4sIHNpbXBs eSBhcHBsaWVzIHRoZSBmdW5jdGlvbiB0byBTbG9jIChOKS4KCiAgIGZ1bmN0aW9uIEdldF9Db2Rl X1VuaXQgKE4gOiBOb2RlX0lkKSByZXR1cm4gVW5pdF9OdW1iZXJfVHlwZTsKICAgcHJhZ21hIElu bGluZSAoR2V0X0NvZGVfVW5pdCk7CiAgIGZ1bmN0aW9uIEdldF9Db2RlX1VuaXQgKFMgOiBTb3Vy Y2VfUHRyKSByZXR1cm4gVW5pdF9OdW1iZXJfVHlwZTsKICAgLS0gIFRoaXMgaXMgbGlrZSBHZXRf U291cmNlX1VuaXQsIGV4Y2VwdCB0aGF0IGluIHRoZSBpbnN0YW50aWF0aW9uIGNhc2UsCiAgIC0t ICBpdCB1c2VzIHRoZSBsb2NhdGlvbiBvZiB0aGUgdG9wIGxldmVsIGluc3RhbnRpYXRpb24sIHJh dGhlciB0aGFuIHRoZQogICAtLSAgdGVtcGxhdGUsIHNvIGl0IHJldHVybnMgdGhlIHVuaXQgbnVt YmVyIGNvbnRhaW5pbmcgdGhlIGNvZGUgdGhhdAogICAtLSAgY29ycmVzcG9uZHMgdG8gdGhlIG5v ZGUgTiwgb3IgdGhlIHNvdXJjZSBsb2NhdGlvbiBTLgoKICAgZnVuY3Rpb24gSW5fU2FtZV9Tb3Vy Y2VfVW5pdCAoTjEsIE4yIDogTm9kZV9Pcl9FbnRpdHlfSWQpIHJldHVybiBCb29sZWFuOwogICBw cmFnbWEgSW5saW5lIChJbl9TYW1lX1NvdXJjZV9Vbml0KTsKICAgLS0gIERldGVybWluZXMgaWYg dGhlIHR3byBub2RlcyBvciBlbnRpdGllcyBOMSBhbmQgTjIgYXJlIGluIHRoZSBzYW1lCiAgIC0t ICBzb3VyY2UgdW5pdCwgdGhlIGNyaXRlcmlvbiBiZWluZyB0aGF0IEdldF9Tb3VyY2VfVW5pdCB5 aWVsZHMgdGhlCiAgIC0tICBzYW1lIHZhbHVlIGZvciBlYWNoIGFyZ3VtZW50LgoKICAgZnVuY3Rp b24gSW5fU2FtZV9Db2RlX1VuaXQgKE4xLCBOMiA6IE5vZGVfT3JfRW50aXR5X0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgcHJhZ21hIElubGluZSAoSW5fU2FtZV9Tb3VyY2VfVW5pdCk7CiAgIC0tICBE ZXRlcm1pbmVzIGlmIHRoZSB0d28gbm9kZXMgb3IgZW50aXRpZXMgTjEgYW5kIE4yIGFyZSBpbiB0 aGUgc2FtZQogICAtLSAgY29kZSB1bml0LCB0aGUgY3JpdGVyaW9uIGJlaW5nIHRoYXQgR2V0X0Nv ZGVfVW5pdCB5aWVsZHMgdGhlIHNhbWUKICAgLS0gIHZhbHVlIGZvciBlYWNoIGFyZ3VtZW50LgoK ICAgZnVuY3Rpb24gSW5fU2FtZV9FeHRlbmRlZF9Vbml0IChTMSwgUzIgOiBTb3VyY2VfUHRyKSBy ZXR1cm4gQm9vbGVhbjsKICAgLS0gIERldGVybWluZXMgaWYgdGhlIHR3byBzb3VyY2UgbG9jYXRp b25zIFMxIGFuZCBTMiBhcmUgaW4gdGhlIHNhbWUKICAgLS0gIGV4dGVuZGVkIHVuaXQsIHdoZXJl IGFuIGV4dGVuZGVkIHVuaXQgaXMgZGVmaW5lZCBhcyBhIHVuaXQgYW5kIGFsbAogICAtLSAgaXRz IHN1YnVuaXRzIChjb25zaWRlcmVkIHJlY3Vyc2l2ZWx5LCBpLmUuIHN1YnVuaXRzIG9yIHN1YnVu aXRzIGFyZQogICAtLSAgaW5jbHVkZWQpLiBSZXR1cm5zIHRydWUgaWYgUzEgYW5kIFMyIGFyZSBp biB0aGUgc2FtZSBleHRlbmRlZCB1bml0CiAgIC0tICBhbmQgRmFsc2Ugb3RoZXJ3aXNlLgoKICAg ZnVuY3Rpb24gSW5fRXh0ZW5kZWRfTWFpbl9Db2RlX1VuaXQgKE4gOiBOb2RlX0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVlIGlmIHRoZSBub2RlIGlzIGluIHRoZSBnZW5lcmF0 ZWQgY29kZSBvZiB0aGUgZXh0ZW5kZWQgbWFpbgogICAtLSAgdW5pdCwgZGVmaW5lZCBhcyB0aGUg bWFpbiB1bml0LCBpdHMgc3BlY2lmaWNhdGlvbiAoaWYgYW55KSwgYW5kIGFsbAogICAtLSAgaXRz IHN1YnVuaXRzIChjb25zaWRlcmVkIHJlY3Vyc2l2ZWx5KS4gVW5pdHMgZm9yIHdoaWNoIHRoaXMg ZW5xdWlyeQogICAtLSAgcmV0dXJucyBUcnVlIGFyZSB0aG9zZSBmb3Igd2hpY2ggY29kZSB3aWxs IGJlIGdlbmVyYXRlZC4gTm9kZXMgZnJvbQogICAtLSAgaW5zdGFudGlhdGlvbnMgYXJlIGluY2x1 ZGVkIGluIHRoZSBleHRlbmRlZCBtYWluIHVuaXQgZm9yIHRoaXMgY2FsbC4KICAgLS0gIElmIHRo ZSBtYWluIHVuaXQgaXMgaXRzZWxmIGEgc3VidW5pdCwgdGhlbiB0aGUgZXh0ZW5kZWQgbWFpbiB1 bml0CiAgIC0tICBpbmNsdWRlcyBpdHMgcGFyZW50IHVuaXQsIGFuZCB0aGUgcGFyZW50IHVuaXQg c3BlYyBpZiBpdCBpcyBzZXBhcmF0ZS4KCiAgIGZ1bmN0aW9uIEluX0V4dGVuZGVkX01haW5fU291 cmNlX1VuaXQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFJldHVybiBUcnVl IGlmIHRoZSBub2RlIGlzIGluIHRoZSBzb3VyY2UgdGV4dCBvZiB0aGUgZXh0ZW5kZWQgbWFpbgog ICAtLSAgdW5pdCwgZGVmaW5lZCBhcyB0aGUgbWFpbiB1bml0LCBpdHMgc3BlY2lmaWNhdGlvbiAo aWYgYW55KSwgYW5kIGFsbAogICAtLSAgaXRzIHN1YnVuaXRzIChjb25zaWRlcmVkIHJlY3Vyc2l2 ZWx5KS4gVW5pdHMgZm9yIHdoaWNoIHRoaXMgZW5xdWlyeQogICAtLSAgcmV0dXJucyBUcnVlIGFy ZSB0aG9zZSBmb3Igd2hpY2ggY29kZSB3aWxsIGJlIGdlbmVyYXRlZC4gVGhpcyBkaWZmZXJzCiAg IC0tICBmcm9tIEluX0V4dGVuZGVkX01haW5fQ29kZV9Vbml0IG9ubHkgaW4gdGhhdCBpbnN0YW50 aWF0aW9ucyBhcmUgbm90CiAgIC0tICBpbmNsdWRlZCBmb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMg Y2FsbC4gSWYgdGhlIG1haW4gdW5pdCBpcyBpdHNlbGYKICAgLS0gIGEgc3VidW5pdCwgdGhlbiB0 aGUgZXh0ZW5kZWQgbWFpbiB1bml0IGluY2x1ZGVzIGl0cyBwYXJlbnQgdW5pdCwKICAgLS0gIGFu ZCB0aGUgcGFyZW50IHVuaXQgc3BlYyBpZiBpdCBpcyBzZXBhcmF0ZS4KCiAgIGZ1bmN0aW9uIEVh cmxpZXJfSW5fRXh0ZW5kZWRfVW5pdCAoUzEsIFMyIDogU291cmNlX1B0cikgcmV0dXJuIEJvb2xl YW47CiAgIC0tICBHaXZlbiB0d28gU2xvYyB2YWx1ZXMgIGZvciB3aGljaCBJbl9TYW1lX0V4dGVu ZGVkX1VuaXQgaXMgdHJ1ZSwKICAgLS0gIGRldGVybWluZSBpZiBTMSBhcHBlYXJzIGJlZm9yZSBT Mi4gUmV0dXJucyBUcnVlIGlmIFMxIGFwcGVhcnMgYmVmb3JlCiAgIC0tICBTMiwgYW5kIEZhbHNl IG90aGVyd2lzZS4gVGhlIHJlc3VsdCBpcyB1bmRlZmluZWQgaWYgUzEgYW5kIFMyIGFyZQogICAt LSAgbm90IGluIHRoZSBzYW1lIGV4dGVuZGVkIHVuaXQuCgogICBmdW5jdGlvbiBHZXRfQ29tcGls YXRpb25fU3dpdGNoIChOIDogUG9zKSByZXR1cm4gU3RyaW5nX1B0cjsKICAgLS0gIFJldHVybiB0 aGUgTnRoIHN0b3JlZCBjb21waWxhdGlvbiBzd2l0Y2gsIG9yIG51bGwgaWYgbGVzcyB0aGFuIE4K ICAgLS0gIHN3aXRjaGVzIGhhdmUgYmVlbiBzdG9yZWQuIFVzZWQgYnkgQVNJUy4KCiAgIGZ1bmN0 aW9uIEdldF9DdW5pdF9Vbml0X051bWJlciAoTiA6IE5vZGVfSWQpIHJldHVybiBVbml0X051bWJl cl9UeXBlOwogICAtLSAgUmV0dXJuIHVuaXQgbnVtYmVyIG9mIHRoZSB1bml0IHdob3NlIE5fQ29t cGlsYXRpb25fVW5pdCBub2RlIGlzIHRoZQogICAtLSAgb25lIHBhc3NlZCBhcyBhbiBhcmd1bWVu dC4gVGhpcyBtdXN0IGFsd2F5cyBzdWNjZWVkIHNpbmNlIHRoZSBub2RlCiAgIC0tICBjb3VsZCBu b3QgaGF2ZSBiZWVuIGJ1aWx0IHdpdGhvdXQgbWFraW5nIGEgdW5pdCB0YWJsZSBlbnRyeS4KCiAg IGZ1bmN0aW9uIEdldF9DdW5pdF9FbnRpdHlfVW5pdF9OdW1iZXIKICAgICAoRSAgICA6IEVudGl0 eV9JZCkKICAgICAgcmV0dXJuIFVuaXRfTnVtYmVyX1R5cGU7CiAgIC0tICBSZXR1cm4gdW5pdCBu dW1iZXIgb2YgdGhlIHVuaXQgd2hvc2UgY29tcGlsYXRpb24gdW5pdCBzcGVjIGVudGl0eSBpcwog ICAtLSAgdGhlIG9uZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQuIFRoaXMgbXVzdCBhbHdheXMgc3Vj Y2VlZCBzaW5jZSB0aGUKICAgLS0gIGVudGl0eSBjb3VsZCBub3QgaGF2ZSBiZWVuIGJ1aWx0IHdp dGhvdXQgbWFraW5nIGEgdW5pdCB0YWJsZSBlbnRyeS4KCiAgIGZ1bmN0aW9uIEluY3JlbWVudF9T ZXJpYWxfTnVtYmVyIHJldHVybiBOYXQ7CiAgIC0tICBJbmNyZW1lbnQgU2VyaWFsX051bWJlciBm aWVsZCBmb3IgY3VycmVudCB1bml0LCBhbmQgcmV0dXJuIHRoZQogICAtLSAgaW5jcmVtZW50ZWQg dmFsdWUuCgogICBwcm9jZWR1cmUgUmVwbGFjZV9MaW5rZXJfT3B0aW9uX1N0cmluZwogICAgIChT IDogU3RyaW5nX0lkOyBNYXRjaF9TdHJpbmcgOiBTdHJpbmcpOwogICAtLSAgUmVwbGFjZSBhbiBl eGlzdGluZyBMaW5rZXJfT3B0aW9uIGlmIHRoZSBwcmVmaXggTWF0Y2hfU3RyaW5nCiAgIC0tICBt YXRjaGVzLCBvdGhlcndpc2UgY2FsbCBTdG9yZV9MaW5rZXJfT3B0aW9uX1N0cmluZy4KCiAgIHBy b2NlZHVyZSBTdG9yZV9Db21waWxhdGlvbl9Td2l0Y2ggKFN3aXRjaCA6IFN0cmluZyk7CiAgIC0t ICBDYWxsZWQgdG8gcmVnaXN0ZXIgYSBjb21waWxhdGlvbiBzd2l0Y2gsIGVpdGhlciBmcm9udC1l bmQgb3IKICAgLS0gIGJhY2stZW5kLCB3aGljaCBtYXkgaW5mbHVlbmNlIHRoZSBnZW5lcmF0ZWQg b3V0cHV0IGZpbGUocykuCgogICBwcm9jZWR1cmUgU3RvcmVfTGlua2VyX09wdGlvbl9TdHJpbmcg KFMgOiBTdHJpbmdfSWQpOwogICAtLSAgVGhpcyBwcm9jZWR1cmUgaXMgY2FsbGVkIHRvIHJlZ2lz dGVyIHRoZSBzdHJpbmcgZnJvbSBhIHByYWdtYQogICAtLSAgTGlua2VyX09wdGlvbi4gVGhlIGFy Z3VtZW50IGlzIHRoZSBJZCBvZiB0aGUgc3RyaW5nIHRvIHJlZ2lzdGVyLgoKICAgcHJvY2VkdXJl IEluaXRpYWxpemU7CiAgIC0tICBJbml0aWFsaXplIGludGVybmFsIHRhYmxlcwoKICAgcHJvY2Vk dXJlIExvY2s7CiAgIC0tICBMb2NrIGludGVybmFsIHRhYmxlcyBiZWZvcmUgY2FsbGluZyBiYWNr IGVuZAoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGU7CiAgIC0tICBXcml0ZXMgb3V0IGludGVybmFs IHRhYmxlcyB0byBjdXJyZW50IHRyZWUgZmlsZSB1c2luZyBUcmVlX1dyaXRlCgogICBwcm9jZWR1 cmUgVHJlZV9SZWFkOwogICAtLSAgSW5pdGlhbGl6ZXMgaW50ZXJuYWwgdGFibGVzIGZyb20gY3Vy cmVudCB0cmVlIGZpbGUgdXNpbmcgVHJlZV9SZWFkCgogICBmdW5jdGlvbiBJc19Mb2FkZWQgKFVu YW1lIDogVW5pdF9OYW1lX1R5cGUpIHJldHVybiBCb29sZWFuOwogICAtLSAgRGV0ZXJtaW5lcyBp ZiB1bml0IHdpdGggZ2l2ZW4gbmFtZSBpcyBhbHJlYWR5IGxvYWRlZCwgaS5lLiB0aGVyZSBpcwog ICAtLSAgYWxyZWFkeSBhbiBlbnRyeSBpbiB0aGUgZmlsZSB0YWJsZSB3aXRoIHRoaXMgdW5pdCBu YW1lIGZvciB3aGljaCB0aGUKICAgLS0gIGNvcnJlc3BvbmRpbmcgZmlsZSB3YXMgZm91bmQgYW5k IHBhcnNlZC4gTm90ZSB0aGF0IHRoZSBGYXRhbF9FcnJvciBmbGFnCiAgIC0tICBvZiB0aGlzIGVu dHJ5IG11c3QgYmUgY2hlY2tlZCBiZWZvcmUgcHJvY2VlZGluZyB3aXRoIGZ1cnRoZXIgcHJvY2Vz c2luZy4KCiAgIHByb2NlZHVyZSBWZXJzaW9uX1JlZmVyZW5jZWQgKFMgOiBTdHJpbmdfSWQpOwog ICAtLSAgVGhpcyByb3V0aW5lIGlzIGNhbGxlZCBmcm9tIEV4cF9BdHRyIHRvIHJlZ2lzdGVyIHRo ZSB1c2Ugb2YgYSBWZXJzaW9uCiAgIC0tICBvciBCb2R5X1ZlcnNpb24gYXR0cmlidXRlLiBUaGUg YXJndW1lbnQgaXMgdGhlIGV4dGVybmFsIG5hbWUgdXNlZCB0bwogICAtLSAgYWNjZXNzIHRoZSB2 ZXJzaW9uIHN0cmluZy4KCiAgIHByb2NlZHVyZSBMaXN0IChGaWxlX05hbWVzX09ubHkgOiBCb29s ZWFuIDo9IEZhbHNlKTsKICAgLS0gIExpc3RzIHVuaXRzIGluIGFjdGl2ZSBsaWJyYXJ5IChpLmUu IGdlbmVyYXRlcyBvdXRwdXQgY29uc2lzdGluZyBvZiBhCiAgIC0tICBzb3J0ZWQgbGlzdGluZyBv ZiB0aGUgdW5pdHMgcmVwcmVzZW50ZWQgaW4gRmlsZSB0YWJsZSwgd2l0aCB0aGUKICAgLS0gIGV4 Y2VwdGlvbiBvZiB0aGUgbWFpbiB1bml0KS4gSWYgRmlsZV9OYW1lc19Pbmx5IGlzIHNldCB0byBU cnVlLCB0aGVuCiAgIC0tICB0aGUgbGlzdCBpbmNsdWRlcyBvbmx5IGZpbGUgbmFtZXMsIGFuZCBu byBvdGhlciBpbmZvcm1hdGlvbi4gT3RoZXJ3aXNlCiAgIC0tICB0aGUgdW5pdCBuYW1lIGFuZCB0 aW1lIHN0YW1wIGFyZSBhbHNvIG91dHB1dC4gRmlsZV9OYW1lc19Pbmx5IGFsc28KICAgLS0gIHJl c3RyaWN0cyB0aGUgbGlzdCB0byBleGNsdWRlIGFueSBwcmVkZWZpbmVkIGZpbGVzLgoKICAgZnVu Y3Rpb24gR2VuZXJpY19TZXBhcmF0ZWx5X0NvbXBpbGVkIChFIDogRW50aXR5X0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgLS0gIE1vc3QgZ2VuZXJpYyB1bml0cyBtdXN0IGJlIHNlcGFyYXRlbHkgY29t cGlsZWQuIFNpbmNlIHdlIGFsd2F5cyB1c2UKICAgLS0gIG1hY3JvIHN1YnN0aXR1dGlvbiBmb3Ig Z2VuZXJpY3MsIHRoZSByZXN1bHRpbmcgb2JqZWN0IGZpbGUgaXMgYSBkdW1teQogICAtLSAgb25l IHdpdGggbm8gY29kZSwgYnV0IHRoZSBhbGkgZmlsZSBoYXMgdGhlIG5vcm1hbCBmb3JtLCBhbmQg d2UgbmVlZAogICAtLSAgdGhpcyBhbGkgZmlsZSBzbyB0aGF0IHRoZSBiaW5kZXIgY2FuIHdvcmsg b3V0IGEgY29ycmVjdCBvcmRlciBvZgogICAtLSAgZWxhYm9yYXRpb24uIEhvd2V2ZXIsIHdlIGRv IG5vdCBuZWVkIHRvIHNlcGFyYXRlIGNvbXBpbGUgZ2VuZXJpY3MKICAgLS0gIGlmIHRoZSBnZW5l cmljIGZpbGVzIGFyZSBsYW5ndWFnZSBkZWZpbmVkLCBzaW5jZSBpbiB0aGlzIGNhc2UgdGhlcmUK ICAgLS0gIGFyZSBubyBvcmRlciBvZiBlbGFib3JyYXRpb24gcHJvYmxlbXMsIGFuZCB3ZSBjYW4g c2ltcGx5IGluY29ycG9yYXRlCiAgIC0tICB0aGUgY29udGV4dCBjbGF1c2Ugb2YgdGhlIGdlbmVy aWMgdW5pdCBpbnRvIHRoZSBjbGllbnQuIFRoZXJlIGFyZSB0d28KICAgLS0gIHJlYXNvbnMgZm9y IG1ha2luZyB0aGlzIGV4Y2VwdGlvbiBmb3IgcHJlZGVmaW5lZCB1bml0cy4gRmlyc3QsIGNsZWFy bHkKICAgLS0gIGl0IGlzIG1vcmUgZWZmaWNpZW50IG5vdCB0byBpbnRyb2R1Y2UgZXh0cmEgdW5u ZWNlc3NhcnkgZmlsZXMuIFNlY29uZCwKICAgLS0gIHRoZSBvbGQgdmVyc2lvbiBvZiBHTkFUIGRp ZCBub3QgY29tcGlsZSBhbnkgZ2VuZXJpYyB1bml0cy4gVGhhdCB3YXMKICAgLS0gIGNsZWFybHkg aW5jb3JyZWN0IGluIHNvbWUgY2FzZXMgb2YgY29tcGxleCBvcmRlciBvZiBlbGFib3JhdGlvbiBh bmQKICAgLS0gIHdhcyBmaXhlZCBpbiB2ZXJzaW9uIDMuMTAgb2YgR05BVC4gSG93ZXZlciwgdGhl IHRyYW5zaXRpb24gd291bGQgaGF2ZQogICAtLSAgY2F1c2VkIGJvb3RzdHJhcCBwYXRoIHByb2Js ZW1zIGluIHRoZSBjYXNlIG9mIGdlbmVyaWNzIHVzZWQgaW4gdGhlCiAgIC0tICBjb21waWxlciBp dHNlbGYuIFRoZSBvbmx5IHN1Y2ggZ2VuZXJpY3MgYXJlIHByZWRlZmluZWQgb25lcy4gVGhpcwog ICAtLSAgZnVuY3Rpb24gcmV0dXJucyBUcnVlIGlmIHRoZSBnaXZlbiBnZW5lcmljIHVuaXQgZW50 aXR5IEUgaXMgZm9yIGEKICAgLS0gIGdlbmVyaWMgdW5pdCB0aGF0IHNob3VsZCBiZSBzZXBhcmF0 ZWx5IGNvbXBpbGVkLCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgoKcHJpdmF0ZQogICBwcmFnbWEgSW5s aW5lIChDdW5pdCk7CiAgIHByYWdtYSBJbmxpbmUgKEN1bml0X0VudGl0eSk7CiAgIHByYWdtYSBJ bmxpbmUgKERlcGVuZGVuY3lfTnVtKTsKICAgcHJhZ21hIElubGluZSAoRGVwZW5kZW50X1VuaXQp OwogICBwcmFnbWEgSW5saW5lIChGYXRhbF9FcnJvcik7CiAgIHByYWdtYSBJbmxpbmUgKEdlbmVy YXRlX0NvZGUpOwogICBwcmFnbWEgSW5saW5lIChIYXNfUkFDVyk7CiAgIHByYWdtYSBJbmxpbmUg KEluY3JlbWVudF9TZXJpYWxfTnVtYmVyKTsKICAgcHJhZ21hIElubGluZSAoTG9hZGluZyk7CiAg IHByYWdtYSBJbmxpbmUgKE1haW5fUHJpb3JpdHkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ3Vu aXQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ3VuaXRfRW50aXR5KTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZhdGFsX0Vycm9yKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0dlbmVyYXRlX0NvZGUp OwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX1JBQ1cpOwogICBwcmFnbWEgSW5saW5lIChTZXRf TG9hZGluZyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9NYWluX1ByaW9yaXR5KTsKICAgcHJhZ21h IElubGluZSAoU2V0X1VuaXRfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNvdXJjZV9JbmRleCk7 CiAgIHByYWdtYSBJbmxpbmUgKFVuaXRfRmlsZV9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoVW5p dF9OYW1lKTsKCiAgIHR5cGUgVW5pdF9SZWNvcmQgaXMgcmVjb3JkCiAgICAgIFVuaXRfRmlsZV9O YW1lICAgOiBGaWxlX05hbWVfVHlwZTsKICAgICAgVW5pdF9OYW1lICAgICAgICA6IFVuaXRfTmFt ZV9UeXBlOwogICAgICBFeHBlY3RlZF9Vbml0ICAgIDogVW5pdF9OYW1lX1R5cGU7CiAgICAgIFNv dXJjZV9JbmRleCAgICAgOiBTb3VyY2VfRmlsZV9JbmRleDsKICAgICAgQ3VuaXQgICAgICAgICAg ICA6IE5vZGVfSWQ7CiAgICAgIEN1bml0X0VudGl0eSAgICAgOiBOb2RlX0lkOwogICAgICBEZXBl bmRlbmN5X051bSAgIDogSW50OwogICAgICBEZXBlbmRlbnRfVW5pdCAgIDogQm9vbGVhbjsKICAg ICAgRmF0YWxfRXJyb3IgICAgICA6IEJvb2xlYW47CiAgICAgIEdlbmVyYXRlX0NvZGUgICAgOiBC b29sZWFuOwogICAgICBIYXNfUkFDVyAgICAgICAgIDogQm9vbGVhbjsKICAgICAgSWRlbnRfU3Ry aW5nICAgICA6IE5vZGVfSWQ7CiAgICAgIExvYWRpbmcgICAgICAgICAgOiBCb29sZWFuOwogICAg ICBNYWluX1ByaW9yaXR5ICAgIDogSW50OwogICAgICBTZXJpYWxfTnVtYmVyICAgIDogTmF0Owog ICAgICBWZXJzaW9uICAgICAgICAgIDogV29yZDsKICAgICAgRHluYW1pY19FbGFiICAgICA6IEJv b2xlYW47CiAgICAgIEVycm9yX0xvY2F0aW9uICAgOiBTb3VyY2VfUHRyOwogICBlbmQgcmVjb3Jk OwoKICAgcGFja2FnZSBVbml0cyBpcyBuZXcgVGFibGUuVGFibGUgKAogICAgIFRhYmxlX0NvbXBv bmVudF9UeXBlID0+IFVuaXRfUmVjb3JkLAogICAgIFRhYmxlX0luZGV4X1R5cGUgICAgID0+IFVu aXRfTnVtYmVyX1R5cGUsCiAgICAgVGFibGVfTG93X0JvdW5kICAgICAgPT4gTWFpbl9Vbml0LAog ICAgIFRhYmxlX0luaXRpYWwgICAgICAgID0+IEFsbG9jLlVuaXRzX0luaXRpYWwsCiAgICAgVGFi bGVfSW5jcmVtZW50ICAgICAgPT4gQWxsb2MuVW5pdHNfSW5jcmVtZW50LAogICAgIFRhYmxlX05h bWUgICAgICAgICAgID0+ICJVbml0cyIpOwoKICAgLS0gIFRoZSBmb2xsb3dpbmcgdGFibGUgc3Rv cmVzIHN0cmluZ3MgZnJvbSBwcmFnbWEgTGlua2VyX09wdGlvbiBsaW5lcwoKICAgcGFja2FnZSBM aW5rZXJfT3B0aW9uX0xpbmVzIGlzIG5ldyBUYWJsZS5UYWJsZSAoCiAgICAgVGFibGVfQ29tcG9u ZW50X1R5cGUgPT4gU3RyaW5nX0lkLAogICAgIFRhYmxlX0luZGV4X1R5cGUgICAgID0+IEludGVn ZXIsCiAgICAgVGFibGVfTG93X0JvdW5kICAgICAgPT4gMSwKICAgICBUYWJsZV9Jbml0aWFsICAg ICAgICA9PiBBbGxvYy5MaW5rZXJfT3B0aW9uX0xpbmVzX0luaXRpYWwsCiAgICAgVGFibGVfSW5j cmVtZW50ICAgICAgPT4gQWxsb2MuTGlua2VyX09wdGlvbl9MaW5lc19JbmNyZW1lbnQsCiAgICAg VGFibGVfTmFtZSAgICAgICAgICAgPT4gIkxpbmtlcl9PcHRpb25fTGluZXMiKTsKCiAgIC0tICBU aGUgZm9sbG93aW5nIHRhYmxlIHJlY29yZHMgdGhlIGNvbXBpbGF0aW9uIHN3aXRjaGVzIHVzZWQg dG8gY29tcGlsZQogICAtLSAgdGhlIG1haW4gdW5pdC4gVGhlIHRhYmxlIGluY2x1ZGVzIG9ubHkg c3dpdGNoZXMgYW5kIGV4Y2x1ZGVzIC1xdWlldCwKICAgLS0gIC1kdW1wYmFzZSwgYW5kIC1vIHN3 aXRjaGVzLCBzaW5jZSB0aGUgbGF0dGVyIGFyZSB0eXBpY2FsbHkgYXJ0aWZhY3RzCiAgIC0tICBv ZiB0aGUgZ2NjL2duYXQxIGludGVyZmFjZS4KCiAgIC0tICBUaGlzIHRhYmxlIGlzIHNldCBhcyBw YXJ0IG9mIHRoZSBjb21waWxlciBhcmd1bWVudCBzY2FubmluZyBpbgogICAtLSAgQmFja19FbmQu IEl0IGNhbiBhbHNvIGJlIHJlc2V0IGluIC1nbmF0YyBtb2RlIGZyb20gdGhlIGRhdGEgaW4gYW4K ICAgLS0gIGV4aXN0aW5nIGFsaSBmaWxlLCBhbmQgaXMgcmVhZCBhbmQgd3JpdHRlbiBieSB0aGUg VHJlZV9SZWFkIGFuZAogICAtLSAgVHJlZV9Xcml0ZSByb3V0aW5lcyBmb3IgQVNJUy4KCiAgIHBh Y2thZ2UgQ29tcGlsYXRpb25fU3dpdGNoZXMgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAgICBUYWJs ZV9Db21wb25lbnRfVHlwZSA9PiBTdHJpbmdfUHRyLAogICAgIFRhYmxlX0luZGV4X1R5cGUgICAg ID0+IE5hdCwKICAgICBUYWJsZV9Mb3dfQm91bmQgICAgICA9PiAxLAogICAgIFRhYmxlX0luaXRp YWwgICAgICAgID0+IDMwLAogICAgIFRhYmxlX0luY3JlbWVudCAgICAgID0+IDEwMCwKICAgICBU YWJsZV9OYW1lICAgICAgICAgICA9PiAiQ29tcGlsYXRpb25fU3dpdGNoZXMiKTsKCiAgIExvYWRf TXNnX1Nsb2MgOiBTb3VyY2VfUHRyOwogICAtLSAgTG9jYXRpb24gZm9yIHBsYWNpbmcgZXJyb3Ig bWVzc2FnZXMgKGEgdG9rZW4gaW4gdGhlIG1haW4gc291cmNlIHRleHQpCiAgIC0tICBUaGlzIGlz IHNldCBmcm9tIFNsb2MgKEVub2RlKSBieSBMb2FkIG9ubHkgaW4gdGhlIGNhc2Ugd2hlcmUgdGhp cyBTbG9jCiAgIC0tICBpcyBpbiB0aGUgbWFpbiBzb3VyY2UgZmlsZS4gVGhpcyBlbnN1cmVzIHRo YXQgbm90IGZvdW5kIG1lc3NhZ2VzIGFuZAogICAtLSAgY2lyY3VsYXIgZGVwZW5kZW5jeSBtZXNz YWdlcyByZWZlcmVuY2UgdGhlIG9yaWdpbmFsIHdpdGggaW4gdGhpcyBzb3VyY2UuCgogICB0eXBl IFVuaXRfUmVmX1RhYmxlIGlzIGFycmF5IChQb3MgcmFuZ2UgPD4pIG9mIFVuaXRfTnVtYmVyX1R5 cGU7CiAgIC0tICBUeXBlIHRvIGhvbGQgbGlzdCBvZiBpbmRpcmVjdCByZWZlcmVuY2VzIHRvIHVu aXQgbnVtYmVyIHRhYmxlCgogICAtLSAgVGhlIExvYWRfU3RhY2sgdGFibGUgY29udGFpbnMgYSBs aXN0IG9mIHVuaXQgbnVtYmVycyAoaW5kZXhlcyBpbnRvIHRoZQogICAtLSAgdW5pdCB0YWJsZSkg b2YgdW5pdHMgYmVpbmcgbG9hZGVkIG9uIGEgc2luZ2xlIGRlcGVuZGVuY3kgY2hhaW4uIFRoZQog ICAtLSAgRmlyc3QgZW50cnkgaXMgdGhlIG1haW4gdW5pdC4gVGhlIHNlY29uZCBlbnRyeSwgaWYg cHJlc2VudCBpcyBhIHVuaXQKICAgLS0gIG9uIHdoaWNoIHRoZSBmaXJzdCB1bml0IGRlcGVuZHMs IGV0Yy4gVGhpcyBzdGFjayBpcyB1c2VkIHRvIGdlbmVyYXRlCiAgIC0tICBlcnJvciBtZXNzYWdl cyBzaG93aW5nIHRoZSBkZXBlbmRlbmN5IGNoYWluIGlmIGEgZmlsZSBpcyBub3QgZm91bmQuCiAg IC0tICBUaGUgTG9hZCBmdW5jdGlvbiBtYWtlcyBhbiBlbnRyeSBpbiB0aGlzIHRhYmxlIHdoZW4g aXQgaXMgY2FsbGVkLCBhbmQKICAgLS0gIHJlbW92ZXMgdGhlIGVudHJ5IGp1c3QgYmVmb3JlIGl0 IHJldHVybnMuCgogICBwYWNrYWdlIExvYWRfU3RhY2sgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAg ICBUYWJsZV9Db21wb25lbnRfVHlwZSA9PiBVbml0X051bWJlcl9UeXBlLAogICAgIFRhYmxlX0lu ZGV4X1R5cGUgICAgID0+IE5hdCwKICAgICBUYWJsZV9Mb3dfQm91bmQgICAgICA9PiAwLAogICAg IFRhYmxlX0luaXRpYWwgICAgICAgID0+IEFsbG9jLkxvYWRfU3RhY2tfSW5pdGlhbCwKICAgICBU YWJsZV9JbmNyZW1lbnQgICAgICA9PiBBbGxvYy5Mb2FkX1N0YWNrX0luY3JlbWVudCwKICAgICBU YWJsZV9OYW1lICAgICAgICAgICA9PiAiTG9hZF9TdGFjayIpOwoKICAgcHJvY2VkdXJlIFNvcnQg KFRibCA6IGluIG91dCBVbml0X1JlZl9UYWJsZSk7CiAgIC0tICBUaGlzIHByb2NlZHVyZSBzb3J0 cyB0aGUgZ2l2ZW4gdW5pdCByZWZlcmVuY2UgdGFibGUgaW4gb3JkZXIgb2YKICAgLS0gIGFzY2Vu ZGluZyB1bml0IG5hbWVzLCB3aGVyZSB0aGUgb3JkZXJpbmcgcmVsYXRpb24gaXMgYXMgZGVzY3Jp YmVkCiAgIC0tICBieSB0aGUgY29tcGFyaXNvbiByb3V0aW5lcyBwcm92aWRlZCBieSBwYWNrYWdl IFVuYW1lLgoKICAgLS0gIFRoZSBWZXJzaW9uX1JlZiB0YWJsZSByZWNvcmRzIEJvZHlfVmVyc2lv biBhbmQgVmVyc2lvbiBhdHRyaWJ1dGUKICAgLS0gIHJlZmVyZW5jZXMuIFRoZSBlbnRyaWVzIGFy ZSBzaW1wbHkgdGhlIHN0cmluZ3MgZm9yIHRoZSBleHRlcm5hbAogICAtLSAgbmFtZXMgdGhhdCBj b3JyZXNwb25kIHRvIHRoZSByZWZlcmVuY2VkIHZhbHVlcy4KCiAgIHBhY2thZ2UgVmVyc2lvbl9S ZWYgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAgICBUYWJsZV9Db21wb25lbnRfVHlwZSA9PiBTdHJp bmdfSWQsCiAgICAgVGFibGVfSW5kZXhfVHlwZSAgICAgPT4gTmF0LAogICAgIFRhYmxlX0xvd19C b3VuZCAgICAgID0+IDEsCiAgICAgVGFibGVfSW5pdGlhbCAgICAgICAgPT4gMjAsCiAgICAgVGFi bGVfSW5jcmVtZW50ICAgICAgPT4gMTAwLAogICAgIFRhYmxlX05hbWUgICAgICAgICAgID0+ICJW ZXJzaW9uX1JlZiIpOwoKZW5kIExpYjsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICBHTkFUIENPTVBJTEVSIENPTVBP TkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBIEwgTCBPIEMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUmV2aXNpb246IDEuMS4xNi4xICQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg IENvcHlyaWdodCAoQykgMTk5Mi0xOTk5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiAg ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCBpcyBmcmVlIHNvZnR3YXJl OyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0t IHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkICBi eSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24g MiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlci0gLS0KLS0gc2lvbi4gIEdOQVQg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ VEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgLS0KLS0gZm9y ICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUgIHJlY2VpdmVkICBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNlICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7 ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSAtLQotLSB0byAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgIEJvc3Rvbiwg LS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNw ZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMgIGluc3RhbnRpYXRlICBnZW5lcmljcyBm cm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsgIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZp bGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0tCi0tIHRoaXMgIHVuaXQgIGRvZXMgbm90 ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIGV4ZWN1dGFibGUgIHRvICBiZSAtLQot LSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAgUHVibGljICBMaWNlbnNlLiAgVGhpcyBl eGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBpbnZhbGlkYXRlICBhbnkgb3RoZXIgcmVh c29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkg dGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCB3YXMgb3JpZ2luYWxseSBkZXZl bG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZb3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4 dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlkZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9n aWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgotLSAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGRlZmluaXRpb25zIGZvciBpbml0aWFsIHNp emVzIGFuZCBncm93dGggaW5jcmVtZW50cwotLSAgZm9yIHRoZSB2YXJpb3VzIGR5bmFtaWMgYXJy YXlzIHVzZWQgZm9yIHByaW5jaXBsZSBjb21waWxlciBkYXRhIHN0cmN1dHVyZXMuCi0tICBUaGUg aW5kaWNhdGVkIGluaXRpYWwgc2l6ZSBpcyBhbGxvY2F0ZWQgZm9yIHRoZSBzdGFydCBvZiBlYWNo IGZpbGUsIGFuZAotLSAgdGhlIGluY3JlbWVudCBmYWN0b3IgaXMgYSBwZXJjZW50YWdlIHVzZWQg dG8gaW5jcmVhc2UgdGhlIHRhYmxlIHNpemUgd2hlbgotLSAgaXQgbmVlZHMgZXhwYW5kaW5nIChl LmcuIGEgdmFsdWUgb2YgMTAwID0gMTAwJSBpbmNyZWFzZSA9IGRvdWJsZSkKCi0tICBOb3RlOiB0 aGUgaW5pdGlhbCB2YWx1ZXMgaGVyZSBhcmUgbXVsdGlwbGllZCBieSBUYWJsZV9GYWN0b3IsIGFz IHNldAotLSAgYnkgdGhlIC1nbmF0VG5uIHN3aXRjaC4gVGhpcyB2YXJpYWJsZSBpcyBkZWZpbmVk IGluIE9wdCwgYXMgaXMgdGhlCi0tICBkZWZhdWx0IHZhbHVlIGZvciB0aGUgdGFibGUgZmFjdG9y LgoKcGFja2FnZSBBbGxvYyBpcwoKICAgLS0gIFRoZSBjb21tZW50IHNob3dzIHRoZSB1bml0IGlu IHdoaWNoIHRoZSB0YWJsZSBpcyBkZWZpbmVkCgogICBBbGxfSW50ZXJwX0luaXRpYWwgICAgICAg ICAgICAgICA6IGNvbnN0YW50IDo9IDFfMDAwOyAgIC0tIFNlbV9UeXBlCiAgIEFsbF9JbnRlcnBf SW5jcmVtZW50ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTAwOwoKICAgQnJhbmNoZXNfSW5p dGlhbCAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxXzAwMDsgICAtLSBTZW1fV2Fybgog ICBCcmFuY2hlc19JbmNyZW1lbnQgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwMDsKCiAg IENvbmRpdGlvbmFsc19Jbml0aWFsICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMV8wMDA7ICAg LS0gU2VtX1dhcm4KICAgQ29uZGl0aW9uYWxzX0luY3JlbWVudCAgICAgICAgICAgOiBjb25zdGFu dCA6PSAxMDA7CgogICBDb25kaXRpb25hbF9TdGFja19Jbml0aWFsICAgICAgICA6IGNvbnN0YW50 IDo9IDUwOyAgICAgIC0tIFNlbV9XYXJuCiAgIENvbmRpdGlvbmFsX1N0YWNrX0luY3JlbWVudCAg ICAgIDogY29uc3RhbnQgOj0gMTAwOwoKICAgRWxpc3RzX0luaXRpYWwgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCA6PSAyMDA7ICAgICAtLSBFbGlzdHMKICAgRWxpc3RzX0luY3JlbWVudCAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxMDA7CgogICBFbG10c19Jbml0aWFsICAgICAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDFfMjAwOyAgIC0tIEVsaXN0cwogICBFbG10c19J bmNyZW1lbnQgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwMDsKCiAgIEVudGl0eV9T dXBwcmVzc19Jbml0aWFsICAgICAgICAgIDogY29uc3RhbnQgOj0gMTAwOyAgICAgLS0gU2VtCiAg IEVudGl0eV9TdXBwcmVzc19JbmNyZW1lbnQgICAgICAgIDogY29uc3RhbnQgOj0gMjAwOwoKICAg SW5saW5lZF9Cb2RpZXNfSW5pdGlhbCAgICAgICAgICAgOiBjb25zdGFudCA6PSA1MDsgICAgICAt LSBJbmxpbmUKICAgSW5saW5lZF9Cb2RpZXNfSW5jcmVtZW50ICAgICAgICAgOiBjb25zdGFudCA6 PSAyMDA7CgogICBJbmxpbmVkX0luaXRpYWwgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9 IDEwMDsgICAgIC0tIElubGluZQogICBJbmxpbmVkX0luY3JlbWVudCAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IDo9IDEwMDsKCiAgIEludGVycF9NYXBfSW5pdGlhbCAgICAgICAgICAgICAgIDog Y29uc3RhbnQgOj0gMjAwOyAgICAgLS0gU2VtX1R5cGUKICAgSW50ZXJwX01hcF9JbmNyZW1lbnQg ICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxMDA7CgogICBMaW5lc19Jbml0aWFsICAgICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IDo9IDUwMDsgICAgIC0tIFNpbnB1dAogICBMaW5lc19JbmNy ZW1lbnQgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDE1MDsKCiAgIExpbmtlcl9PcHRp b25fTGluZXNfSW5pdGlhbCAgICAgIDogY29uc3RhbnQgOj0gNTsgICAgICAgLS0gTGliCiAgIExp bmtlcl9PcHRpb25fTGluZXNfSW5jcmVtZW50ICAgIDogY29uc3RhbnQgOj0gMjAwOwoKICAgTGlz dHNfSW5pdGlhbCAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSA0XzAwMDsgICAtLSBO bGlzdHMKICAgTGlzdHNfSW5jcmVtZW50ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAy MDA7CgogICBMb2FkX1N0YWNrX0luaXRpYWwgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEw OyAgICAgIC0tIExpYgogICBMb2FkX1N0YWNrX0luY3JlbWVudCAgICAgICAgICAgICA6IGNvbnN0 YW50IDo9IDEwMDsKCiAgIE5hbWVfQ2hhcnNfSW5pdGlhbCAgICAgICAgICAgICAgIDogY29uc3Rh bnQgOj0gNTBfMDAwOyAgLS0gTmFtZXQKICAgTmFtZV9DaGFyc19JbmNyZW1lbnQgICAgICAgICAg ICAgOiBjb25zdGFudCA6PSAxMDA7CgogICBOYW1lX1F1YWxpZnlfVW5pdHNfSW5pdGlhbCAgICAg ICA6IGNvbnN0YW50IDo9IDIwMDsgICAgIC0tIEV4cF9EYnVnCiAgIE5hbWVfUXVhbGlmeV9Vbml0 c19JbmNyZW1lbnQgICAgIDogY29uc3RhbnQgOj0gMzAwOwoKICAgTmFtZXNfSW5pdGlhbCAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSA2XzAwMDsgICAtLSBOYW1ldAogICBOYW1lc19J bmNyZW1lbnQgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwMDsKCiAgIE5vZGVzX0lu aXRpYWwgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gNTBfMDAwOyAgLS0gQXRyZWUK ICAgTm9kZXNfSW5jcmVtZW50ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxMDA7Cgog ICBPcmlnX05vZGVzX0luaXRpYWwgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDUwXzAwMDsg IC0tIEF0cmVlCiAgIE9yaWdfTm9kZXNfSW5jcmVtZW50ICAgICAgICAgICAgIDogY29uc3RhbnQg Oj0gMTAwOwoKICAgUGVuZGluZ19JbnN0YW50aWF0aW9uc19Jbml0aWFsICAgOiBjb25zdGFudCA6 PSAxMDsgICAgICAtLSBJbmxpbmUKICAgUGVuZGluZ19JbnN0YW50aWF0aW9uc19JbmNyZW1lbnQg OiBjb25zdGFudCA6PSAxMDA7CgogICBSZXBfVGFibGVfSW5pdGlhbCAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IDo9IDEwMDA7ICAgIC0tIFJlcGluZm8KICAgUmVwX1RhYmxlX0luY3JlbWVudCAg ICAgICAgICAgICAgOiBjb25zdGFudCA6PSAyMDA7CgogICBTY29wZV9TdGFja19Jbml0aWFsICAg ICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwOyAgICAgIC0tIFNlbQogICBTY29wZV9TdGFja19J bmNyZW1lbnQgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDIwMDsKCiAgIFNGTl9UYWJsZV9Jbml0 aWFsICAgICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTA7ICAgICAgLS0gRm5hbWUKICAgU0ZO X1RhYmxlX0luY3JlbWVudCAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAyMDA7CgogICBTb3Vy Y2VfRmlsZV9Jbml0aWFsICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwOyAgICAgIC0tIFNp bnB1dAogICBTb3VyY2VfRmlsZV9JbmNyZW1lbnQgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDIw MDsKCiAgIFN0cmluZ19DaGFyc19Jbml0aWFsICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMl81 MDA7ICAgLS0gU3RyaW5ndAogICBTdHJpbmdfQ2hhcnNfSW5jcmVtZW50ICAgICAgICAgICA6IGNv bnN0YW50IDo9IDE1MDsKCiAgIFN0cmluZ3NfSW5pdGlhbCAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgOj0gNV8wMDsgICAgLS0gU3RyaW5ndAogICBTdHJpbmdzX0luY3JlbWVudCAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IDo9IDE1MDsKCiAgIFN1Y2Nlc3NvcnNfSW5pdGlhbCAgICAgICAg ICAgICAgIDogY29uc3RhbnQgOj0gMl8wMDsgICAgLS0gSW5saW5lCiAgIFN1Y2Nlc3NvcnNfSW5j cmVtZW50ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTAwOwoKICAgVWRpZ2l0c19Jbml0aWFs ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxMF8wMDA7ICAtLSBVaW50cAogICBVZGln aXRzX0luY3JlbWVudCAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDEwMDsKCiAgIFVpbnRz X0luaXRpYWwgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gNV8wMDA7ICAgLS0gVWlu dHAKICAgVWludHNfSW5jcmVtZW50ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAxMDA7 CgogICBVbml0c19Jbml0aWFsICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDMwOyAg ICAgIC0tIExpYgogICBVbml0c19JbmNyZW1lbnQgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50 IDo9IDEwMDsKCiAgIFVyZWFsc19Jbml0aWFsICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg Oj0gMjAwOyAgICAgLS0gVXJlYWxwCiAgIFVyZWFsc19JbmNyZW1lbnQgICAgICAgICAgICAgICAg IDogY29uc3RhbnQgOj0gMTAwOwoKICAgVW5yZWZlcmVuY2VkX0VudGl0aWVzX0luaXRpYWwgICAg OiBjb25zdGFudCA6PSAxXzAwMDsgICAtLSBTZW1fV2FybgogICBVbnJlZmVyZW5jZWRfRW50aXRp ZXNfSW5jcmVtZW50ICA6IGNvbnN0YW50IDo9IDEwMDsKCiAgIFdpdGhfTGlzdF9Jbml0aWFsICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgOj0gMTA7ICAgICAgLS0gRmVhdHVyZXMKICAgV2l0aF9M aXN0X0luY3JlbWVudCAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAzMDA7CgogICBYcmVmc19J bml0aWFsICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IDo9IDVfMDAwOyAgIC0tIENyb3Nz LXJlZnMKICAgWHJlZnNfSW5jcmVtZW50ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCA6PSAz MDA7CgplbmQgQWxsb2M7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgR05BVCBDT01QSUxFUiBDT01QT05FTlRTICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgVCBBIEIgTCBFICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUyBwIGUgYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJldmlz aW9uOiAxLjIuMTIuMSAkCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICBDb3B5cmln aHQgKEMpIDE5OTItMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4gICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgaXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBj YW4gIHJlZGlzdHJpYnV0ZSBpdCAgYW5kL29yIG1vZGlmeSBpdCB1bmRlciAtLQotLSB0ZXJtcyBv ZiB0aGUgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCAgYnkgdGhlIEZy ZWUgU29mdC0gLS0KLS0gd2FyZSAgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIsICBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXItIC0tCi0tIHNpb24uICBHTkFUIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRILSAtLQot LSBPVVQgQU5ZIFdBUlJBTlRZOyAgd2l0aG91dCBldmVuIHRoZSAgaW1wbGllZCB3YXJyYW50eSBv ZiBNRVJDSEFOVEFCSUxJVFkgLS0KLS0gb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIC0tCi0tIGZvciAgbW9yZSBk ZXRhaWxzLiAgWW91IHNob3VsZCBoYXZlICByZWNlaXZlZCAgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCAtLQotLSBQdWJsaWMgTGljZW5zZSAgZGlzdHJpYnV0ZWQgd2l0aCBHTkFUOyAgc2VlIGZp bGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgLS0KLS0gdG8gIHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sICA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICBCb3N0b24sIC0tCi0tIE1B IDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4 Y2VwdGlvbiwgIGlmIG90aGVyIGZpbGVzICBpbnN0YW50aWF0ZSAgZ2VuZXJpY3MgZnJvbSB0aGlz IC0tCi0tIHVuaXQsIG9yIHlvdSBsaW5rICB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyAgdG8g cHJvZHVjZSBhbiBleGVjdXRhYmxlLCAtLQotLSB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRz ZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICBleGVjdXRhYmxlICB0byAgYmUgLS0KLS0gY292ZXJl ZCAgYnkgdGhlICBHTlUgIEdlbmVyYWwgIFB1YmxpYyAgTGljZW5zZS4gIFRoaXMgZXhjZXB0aW9u IGRvZXMgbm90IC0tCi0tIGhvd2V2ZXIgaW52YWxpZGF0ZSAgYW55IG90aGVyIHJlYXNvbnMgd2h5 ICB0aGUgZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSAtLQotLSBjb3ZlcmVkIGJ5IHRoZSAgR05V IFB1YmxpYyBMaWNlbnNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkICBi eSB0aGUgR05BVCB0ZWFtIGF0ICBOZXcgWW9yayBVbml2ZXJzaXR5LiAtLQotLSBFeHRlbnNpdmUg Y29udHJpYnV0aW9ucyB3ZXJlIHByb3ZpZGVkIGJ5IEFkYSBDb3JlIFRlY2hub2xvZ2llcyBJbmMu ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0g IFRoaXMgcGFja2FnZSBwcm92aWRlcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBkeW5hbWljYWxseSBy ZXNpemFibGUgb25lCi0tICBkaW1lbnNpb25hbCBhcnJheXMuIFRoZSBpZGVhIGlzIHRvIG1pbWlj IHRoZSBub3JtYWwgQWRhIHNlbWFudGljcyBmb3IKLS0gIGFycmF5cyBhcyBjbG9zZWx5IGFzIHBv c3NpYmxlIHdpdGggdGhlIG9uZSBhZGRpdGlvbmFsIGNhcGFiaWxpdHkgb2YKLS0gIGR5bmFtaWNh bGx5IG1vZGlmeWluZyB0aGUgdmFsdWUgb2YgdGhlIExhc3QgYXR0cmlidXRlLgoKLS0gIE5vdGUg dGhhdCB0aGlzIGludGVyZmFjZSBzaG91bGQgcmVtYWluIHN5bmNocm9uaXplZCB3aXRoIHRob3Nl IGluCi0tICBHTkFULlRhYmxlIGFuZCBHTkFULkR5bmFtaWNfVGFibGVzIHRvIGtlZXAgY29oZXJl bmN5IGJldHdlZW4gdGhlc2UKLS0gIHRocmVlIHJlbGF0ZWQgdW5pdHMuCgp3aXRoIFR5cGVzOyB1 c2UgVHlwZXM7CgpwYWNrYWdlIFRhYmxlIGlzCnByYWdtYSBFbGFib3JhdGVfQm9keSAoVGFibGUp OwoKICAgZ2VuZXJpYwogICAgICB0eXBlIFRhYmxlX0NvbXBvbmVudF9UeXBlIGlzIHByaXZhdGU7 CiAgICAgIHR5cGUgVGFibGVfSW5kZXhfVHlwZSAgICAgaXMgcmFuZ2UgPD47CgogICAgICBUYWJs ZV9Mb3dfQm91bmQgIDogVGFibGVfSW5kZXhfVHlwZTsKICAgICAgVGFibGVfSW5pdGlhbCAgICA6 IFBvczsKICAgICAgVGFibGVfSW5jcmVtZW50ICA6IE5hdDsKICAgICAgVGFibGVfTmFtZSAgICAg ICA6IFN0cmluZzsKCiAgIHBhY2thZ2UgVGFibGUgaXMKCiAgICAgIC0tICBUYWJsZV9Db21wb25l bnRfVHlwZSBhbmQgVGFibGVfSW5kZXhfVHlwZSBzcGVjaWZ5IHRoZSB0eXBlIG9mIHRoZQogICAg ICAtLSAgYXJyYXksIFRhYmxlX0xvd19Cb3VuZCBpcyB0aGUgbG93ZXIgYm91bmQuIEluZGV4X3R5 cGUgbXVzdCBiZSBhbgogICAgICAtLSAgaW50ZWdlciB0eXBlLiBUaGUgZWZmZWN0IGlzIHJvdWdo bHkgdG8gZGVjbGFyZToKCiAgICAgIC0tICAgIFRhYmxlIDogYXJyYXkgKFRhYmxlX0luZGV4X1R5 cGUgcmFuZ2UgVGFibGVfTG93X0JvdW5kIC4uIDw+KQogICAgICAtLSAgICAgICAgICAgICAgICAg ICAgICAgb2YgVGFibGVfQ29tcG9uZW50X1R5cGU7CgogICAgICAtLSAgICBOb3RlOiBzaW5jZSB0 aGUgdXBwZXIgYm91bmQgY2FuIGJlIG9uZSBsZXNzIHRoYW4gdGhlIGxvd2VyCiAgICAgIC0tICAg IGJvdW5kIGZvciBhbiBlbXB0eSBhcnJheSwgdGhlIHRhYmxlIGluZGV4IHR5cGUgbXVzdCBiZSBh YmxlCiAgICAgIC0tICAgIHRvIGNvdmVyIHRoaXMgcmFuZ2UsIGUuZy4gaWYgdGhlIGxvd2VyIGJv dW5kIGlzIDEsIHRoZW4gdGhlCiAgICAgIC0tICAgIFRhYmxlX0luZGV4X1R5cGUgc2hvdWxkIGJl IE5hdHVyYWwgcmF0aGVyIHRoYW4gUG9zaXRpdmUuCgogICAgICAtLSAgVGFibGVfQ29tcG9uZW50 X1R5cGUgbWF5IGJlIGFueSBBZGEgdHlwZSwgZXhjZXB0IHRoYXQgY29udHJvbGxlZAogICAgICAt LSAgdHlwZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIE5vdGUgaG93ZXZlciB0aGF0IGRlZmF1bHQgaW5p dGlhbGl6YXRpb24KICAgICAgLS0gIHdpbGwgTk9UIG9jY3VyIGZvciBhcnJheSBjb21wb25lbnRz LgoKICAgICAgLS0gIFRoZSBUYWJsZV9Jbml0aWFsIHZhbHVlcyBjb250cm9scyB0aGUgYWxsb2Nh dGlvbiBvZiB0aGUgdGFibGUgd2hlbgogICAgICAtLSAgaXQgaXMgZmlyc3QgYWxsb2NhdGVkLCBl aXRoZXIgYnkgZGVmYXVsdCwgb3IgYnkgYW4gZXhwbGljaXQgSW5pdAogICAgICAtLSAgY2FsbC4g VGhlIHZhbHVlIHVzZWQgaXMgT3B0LlRhYmxlX0ZhY3RvciAqIFRhYmxlX0luaXRpYWwuCgogICAg ICAtLSAgVGhlIFRhYmxlX0luY3JlbWVudCB2YWx1ZSBjb250cm9scyB0aGUgYW1vdW50IG9mIGlu Y3JlYXNlLCBpZiB0aGUKICAgICAgLS0gIHRhYmxlIGhhcyB0byBiZSBpbmNyZWFzZWQgaW4gc2l6 ZS4gVGhlIHZhbHVlIGdpdmVuIGlzIGEgcGVyY2VudGFnZQogICAgICAtLSAgdmFsdWUgKGUuZy4g MTAwID0gaW5jcmVhc2UgdGFibGUgc2l6ZSBieSAxMDAlLCBpLmUuIGRvdWJsZSBpdCkuCgogICAg ICAtLSAgVGhlIFRhYmxlX05hbWUgcGFyYW1ldGVyIGlzIHNpbXBseSB1c2UgaW4gZGVidWcgb3V0 cHV0IG1lc3NhZ2VzIGl0CiAgICAgIC0tICBoYXMgbm8gb3RoZXIgdXNhZ2UsIGFuZCBpcyBub3Qg cmVmZXJlbmNlZCBpbiBub24tZGVidWdnaW5nIG1vZGUuCgogICAgICAtLSAgVGhlIExhc3QgYW5k IFNldF9MYXN0IHN1YnByb2dyYW1zIHByb3ZpZGUgY29udHJvbCBvdmVyIHRoZSBjdXJyZW50CiAg ICAgIC0tICBsb2dpY2FsIGFsbG9jYXRpb24uIFRoZXkgYXJlIHF1aXRlIGVmZmljaWVudCwgc28g dGhleSBjYW4gYmUgdXNlZAogICAgICAtLSAgZnJlZWx5IChleHBlbnNpdmUgcmVhbGxvY2F0aW9u IG9jY3VycyBvbmx5IGF0IG1ham9yIGdyYW51bGFyaXR5CiAgICAgIC0tICBjaHVua3MgY29udHJv bGxlZCBieSB0aGUgYWxsb2NhdGlvbiBwYXJhbWV0ZXJzKS4KCiAgICAgIC0tICBOb3RlOiB3ZSBk byBub3QgbWFrZSB0aGUgdGFibGUgY29tcG9uZW50cyBhbGlhc2VkLCBzaW5jZSB0aGlzIHdvdWxk CiAgICAgIC0tICByZXN0aWN0IHRoZSB1c2Ugb2YgdGFibGUgZm9yIGRpc2NyaW1pbmF0ZWQgdHlw ZXMuIElmIGl0IGlzIG5lY2Vzc2FyeQogICAgICAtLSAgdG8gdGFrZSB0aGUgYWNjZXNzIG9mIGEg dGFibGUgZWxlbWVudCwgdXNlIFVucmVzdHJpY3RlZF9BY2Nlc3MuCgogICAgICB0eXBlIFRhYmxl X1R5cGUgaXMKICAgICAgICBhcnJheSAoVGFibGVfSW5kZXhfVHlwZSByYW5nZSA8Pikgb2YgVGFi bGVfQ29tcG9uZW50X1R5cGU7CgogICAgICBzdWJ0eXBlIEJpZ19UYWJsZV9UeXBlIGlzCiAgICAg ICAgVGFibGVfVHlwZSAoVGFibGVfTG93X0JvdW5kIC4uIFRhYmxlX0luZGV4X1R5cGUnTGFzdCk7 CiAgICAgIC0tICBXZSB3b3JrIHdpdGggcG9pbnRlcnMgdG8gYSBib2d1cyBhcnJheSB0eXBlIHRo YXQgaXMgY29uc3RyYWluZWQKICAgICAgLS0gIHdpdGggdGhlIG1heGltdW0gcG9zc2libGUgcmFu Z2UgYm91bmQuIFRoaXMgbWVhbnMgdGhhdCB0aGUgcG9pbnRlcgogICAgICAtLSAgaXMgYSB0aGlu IHBvaW50ZXIsIHdoaWNoIGlzIG1vcmUgZWZmaWNpZW50LiBTaW5jZSBzdWJzY3JpcHQgY2hlY2tz CiAgICAgIC0tICBpbiBhbnkgY2FzZSBtdXN0IGJlIG9uIHRoZSBsb2dpY2FsLCByYXRoZXIgdGhh biBwaHlzaWNhbCBib3VuZHMsCiAgICAgIC0tICBzYWZldHkgaXMgbm90IGNvbXByb21pc2VkIGJ5 IHRoaXMgYXBwcm9hY2guCgogICAgICB0eXBlIFRhYmxlX1B0ciBpcyBhY2Nlc3MgYWxsIEJpZ19U YWJsZV9UeXBlOwogICAgICAtLSAgVGhlIHRhYmxlIGlzIGFjdHVhbGx5IHJlcHJlc2VudGVkIGFz IGEgcG9pbnRlciB0byBhbGxvdyByZWFsbG9jYXRpb24KCiAgICAgIFRhYmxlIDogYWxpYXNlZCBU YWJsZV9QdHIgOj0gbnVsbDsKICAgICAgLS0gIFRoZSB0YWJsZSBpdHNlbGYuIFRoZSBsb3dlciBi b3VuZCBpcyB0aGUgdmFsdWUgb2YgTG93X0JvdW5kLgogICAgICAtLSAgTG9naWNhbGx5IHRoZSB1 cHBlciBib3VuZCBpcyB0aGUgY3VycmVudCB2YWx1ZSBvZiBMYXN0IChhbHRob3VnaAogICAgICAt LSAgdGhlIGFjdHVhbCBzaXplIG9mIHRoZSBhbGxvY2F0ZWQgdGFibGUgbWF5IGJlIGxhcmdlciB0 aGFuIHRoaXMpLgogICAgICAtLSAgVGhlIHByb2dyYW0gbWF5IG9ubHkgYWNjZXNzIGFuZCBtb2Rp ZnkgVGFibGUgZW50cmllcyBpbiB0aGUgcmFuZ2UKICAgICAgLS0gIEZpcnN0IC4uIExhc3QuCgog ICAgICBMb2NrZWQgOiBCb29sZWFuIDo9IEZhbHNlOwogICAgICAtLSAgVGFibGUgZXhwYW5zaW9u IGlzIHBlcm1pdHRlZCBvbmx5IGlmIHRoaXMgc3dpdGNoIGlzIHNldCB0byBGYWxzZS4gQQogICAg ICAtLSAgY2xpZW50IG1heSBzZXQgTG9ja2VkIHRvIFRydWUsIGluIHdoaWNoIGNhc2UgYW55IGF0 dGVtcHQgdG8gZXhwYW5kCiAgICAgIC0tICB0aGUgdGFibGUgd2lsbCBjYXVzZSBhbiBhc3NlcnRp b24gZmFpbHVyZS4gTm90ZSB0aGF0IHdoaWxlIGEgdGFibGUKICAgICAgLS0gIGlzIGxvY2tlZCwg aXRzIGFkZHJlc3MgaW4gbWVtb3J5IHJlbWFpbnMgZml4ZWQgYW5kIHVuY2hhbmdpbmcuIFRoaXMK ICAgICAgLS0gIGZlYXR1cmUgaXMgdXNlZCB0byBjb250cm9sIHRhYmxlIGV4cGFuc2lvbiBkdXJp bmcgR2lnaSBwcm9jZXNzaW5nLgogICAgICAtLSAgR2lnaSBhc3N1bWVzIHRoYXQgdGFibGVzIG90 aGVyIHRoYW4gdGhlIFVpbnQgYW5kIFVyZWFsIHRhYmxlcyBkbwogICAgICAtLSAgbm90IG1vdmUg ZHVyaW5nIHByb2Nlc3NpbmcsIHdoaWNoIG1lYW5zIHRoYXQgdGhleSBjYW5ub3QgYmUgZXhwYW5k ZWQuCiAgICAgIC0tICBUaGUgTG9ja2VkIGZsYWcgaXMgdXNlZCB0byBlbmZvcmNlIHRoaXMgcmVz dHJpY3Rpb24uCgogICAgICBwcm9jZWR1cmUgSW5pdDsKICAgICAgLS0gIFRoaXMgcHJvY2VkdXJl IGFsbG9jYXRlcyBhIG5ldyB0YWJsZSBvZiBzaXplIEluaXRpYWwgKGZyZWVpbmcgYW55CiAgICAg IC0tICBwcmV2aW91c2x5IGFsbG9jYXRlZCBsYXJnZXIgdGFibGUpLiBJdCBpcyBub3QgbmVjZXNz YXJ5IHRvIGNhbGwKICAgICAgLS0gIEluaXQgd2hlbiBhIHRhYmxlIGlzIGZpcnN0IGluc3RhbnRp YXRlZCAoc2luY2UgdGhlIGluc3RhbnRpYXRpb24gZG9lcwogICAgICAtLSAgdGhlIHNhbWUgaW5p dGlhbGl6YXRpb24gc3RlcHMpLiBIb3dldmVyLCBpdCBpcyBoYXJtbGVzcyB0byBkbyBzbywgYW5k CiAgICAgIC0tICBJbml0IGlzIGNvbnZlbmllbnQgaW4gcmVlc3RhYmxpc2hpbmcgYSB0YWJsZSBm b3IgbmV3IHVzZS4KCiAgICAgIGZ1bmN0aW9uIExhc3QgcmV0dXJuIFRhYmxlX0luZGV4X1R5cGU7 CiAgICAgIHByYWdtYSBJbmxpbmUgKExhc3QpOwogICAgICAtLSAgUmV0dXJucyB0aGUgY3VycmVu dCB2YWx1ZSBvZiB0aGUgbGFzdCB1c2VkIGVudHJ5IGluIHRoZSB0YWJsZSwgd2hpY2gKICAgICAg LS0gIGNhbiB0aGVuIGJlIHVzZWQgYXMgYSBzdWJzY3JpcHQgZm9yIFRhYmxlLiBOb3RlIHRoYXQg dGhlIG9ubHkgd2F5IHRvCiAgICAgIC0tICBtb2RpZnkgTGFzdCBpcyB0byBjYWxsIHRoZSBTZXRf TGFzdCBwcm9jZWR1cmUuIExhc3QgbXVzdCBhbHdheXMgYmUKICAgICAgLS0gIHVzZWQgdG8gZGV0 ZXJtaW5lIHRoZSBsb2dpY2FsbHkgbGFzdCBlbnRyeS4KCiAgICAgIHByb2NlZHVyZSBSZWxlYXNl OwogICAgICAtLSAgU3RvcmFnZSBpcyBhbGxvY2F0ZWQgaW4gY2h1bmtzIGFjY29yZGluZyB0byB0 aGUgdmFsdWVzIGdpdmVuIGluIHRoZQogICAgICAtLSAgSW5pdGlhbCBhbmQgSW5jcmVtZW50IHBh cmFtZXRlcnMuIEEgY2FsbCB0byBSZWxlYXNlIHJlbGVhc2VzIGFsbAogICAgICAtLSAgc3RvcmFn ZSB0aGF0IGlzIGFsbG9jYXRlZCwgYnV0IGlzIG5vdCBsb2dpY2FsbHkgcGFydCBvZiB0aGUgY3Vy cmVudAogICAgICAtLSAgYXJyYXkgdmFsdWUuIEN1cnJlbnQgYXJyYXkgdmFsdWVzIGFyZSBub3Qg YWZmZWN0ZWQgYnkgdGhpcyBjYWxsLgoKICAgICAgcHJvY2VkdXJlIEZyZWU7CiAgICAgIC0tICBG cmVlIGFsbCBhbGxvY2F0ZWQgbWVtb3J5IGZvciB0aGUgdGFibGUuIEEgY2FsbCB0byBpbml0IGlz IHJlcXVpcmVkCiAgICAgIC0tICBiZWZvcmUgYW55IHVzZSBvZiB0aGlzIHRhYmxlIGFmdGVyIGNh bGxpbmcgRnJlZS4KCiAgICAgIEZpcnN0IDogY29uc3RhbnQgVGFibGVfSW5kZXhfVHlwZSA6PSBU YWJsZV9Mb3dfQm91bmQ7CiAgICAgIC0tICBFeHBvcnQgRmlyc3QgYXMgc3lub255bSBmb3IgTG93 X0JvdW5kIChwYXJhbGxlbCB3aXRoIHVzZSBvZiBMYXN0KQoKICAgICAgcHJvY2VkdXJlIFNldF9M YXN0IChOZXdfVmFsIDogVGFibGVfSW5kZXhfVHlwZSk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9MYXN0KTsKICAgICAgLS0gIFRoaXMgcHJvY2VkdXJlIHNldHMgTGFzdCB0byB0aGUgaW5kaWNh dGVkIHZhbHVlLiBJZiBuZWNlc3NhcnkgdGhlCiAgICAgIC0tICB0YWJsZSBpcyByZWFsbG9jYXRl ZCB0byBhY2NvbW1vZGF0ZSB0aGUgbmV3IHZhbHVlIChpLmUuIG9uIHJldHVybgogICAgICAtLSAg dGhlIGFsbG9jYXRlZCB0YWJsZSBoYXMgYW4gdXBwZXIgYm91bmQgb2YgYXQgbGVhc3QgTGFzdCku IElmIFNldF9MYXN0CiAgICAgIC0tICByZWR1Y2VzIHRoZSBzaXplIG9mIHRoZSB0YWJsZSwgdGhl biBsb2dpY2FsbHkgZW50cmllcyBhcmUgcmVtb3ZlZAogICAgICAtLSAgZnJvbSB0aGUgdGFibGUu IElmIFNldF9MYXN0IGluY3JlYXNlcyB0aGUgc2l6ZSBvZiB0aGUgdGFibGUsIHRoZW4KICAgICAg LS0gIG5ldyBlbnRyaWVzIGFyZSBsb2dpY2FsbHkgYWRkZWQgdG8gdGhlIHRhYmxlLgoKICAgICAg cHJvY2VkdXJlIEluY3JlbWVudF9MYXN0OwogICAgICBwcmFnbWEgSW5saW5lIChJbmNyZW1lbnRf TGFzdCk7CiAgICAgIC0tICBBZGRzIDEgdG8gTGFzdCAoc2FtZSBhcyBTZXRfTGFzdCAoTGFzdCAr IDEpLgoKICAgICAgcHJvY2VkdXJlIERlY3JlbWVudF9MYXN0OwogICAgICBwcmFnbWEgSW5saW5l IChEZWNyZW1lbnRfTGFzdCk7CiAgICAgIC0tICBTdWJ0cmFjdHMgMSBmcm9tIExhc3QgKHNhbWUg YXMgU2V0X0xhc3QgKExhc3QgLSAxKS4KCiAgICAgIHByb2NlZHVyZSBBcHBlbmQgKE5ld19WYWwg OiBUYWJsZV9Db21wb25lbnRfVHlwZSk7CiAgICAgIHByYWdtYSBJbmxpbmUgKEFwcGVuZCk7CiAg ICAgIC0tICBFcXVpdmFsZW50IHRvOgogICAgICAtLSAgICB4LkluY3JlbWVudF9MYXN0OwogICAg ICAtLSAgICB4LlRhYmxlICh4Lkxhc3QpIDo9IE5ld19WYWw7CiAgICAgIC0tICBpLmUuIHRoZSB0 YWJsZSBzaXplIGlzIGluY3JlYXNlZCBieSBvbmUsIGFuZCB0aGUgZ2l2ZW4gbmV3IGl0ZW0KICAg ICAgLS0gIHN0b3JlZCBpbiB0aGUgbmV3bHkgY3JlYXRlZCB0YWJsZSBlbGVtZW50LgoKICAgICAg cHJvY2VkdXJlIFNldF9JdGVtCiAgICAgICAgKEluZGV4IDogVGFibGVfSW5kZXhfVHlwZTsKICAg ICAgICAgSXRlbSAgOiBUYWJsZV9Db21wb25lbnRfVHlwZSk7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9JdGVtKTsKICAgICAgLS0gIFB1dCBJdGVtIGluIHRoZSB0YWJsZSBhdCBwb3NpdGlvbiBJ bmRleC4gVGhlIHRhYmxlIGlzIGV4cGFuZGVkIGlmCiAgICAgIC0tICBjdXJyZW50IHRhYmxlIGxl bmd0aCBpcyBsZXNzIHRoYW4gSW5kZXggYW5kIGluIHRoYXQgY2FzZSBMYXN0IGlzIHNldAogICAg ICAtLSAgdG8gSW5kZXguIEl0ZW0gd2lsbCByZXBsYWNlIGFueSB2YWx1ZSBhbHJlYWR5IHByZXNl bnQgaW4gdGhlIHRhYmxlCiAgICAgIC0tICBhdCB0aGlzIHBvc2l0aW9uLgoKICAgICAgdHlwZSBT YXZlZF9UYWJsZSBpcyBwcml2YXRlOwogICAgICAtLSAgVHlwZSB1c2VkIGZvciBTYXZlL1Jlc3Rv cmUgc3VicHJvZ3JhbXMKCiAgICAgIGZ1bmN0aW9uIFNhdmUgcmV0dXJuIFNhdmVkX1RhYmxlOwog ICAgICAtLSAgUmVzZXRzIHRhYmxlIHRvIGVtcHR5LCBidXQgc2F2ZXMgb2xkIGNvbnRlbnRzIG9m IHRhYmxlIGluIHJldHVybmVkCiAgICAgIC0tICB2YWx1ZSwgZm9yIHBvc3NpYmxlIGxhdGVyIHJl c3RvcmF0aW9uIGJ5IGEgY2FsbCB0byBSZXN0b3JlLgoKICAgICAgcHJvY2VkdXJlIFJlc3RvcmUg KFQgOiBTYXZlZF9UYWJsZSk7CiAgICAgIC0tICBHaXZlbiBhIFNhdmVkX1RhYmxlIHZhbHVlIHJl dHVybmVkIGJ5IGEgcHJpb3IgY2FsbCB0byBTYXZlLCByZXN0b3JlcwogICAgICAtLSAgdGhlIHRh YmxlIHRvIHRoZSBzdGF0ZSBpdCB3YXMgaW4gYXQgdGhlIHRpbWUgb2YgdGhlIFNhdmUgY2FsbC4K CiAgICAgIHByb2NlZHVyZSBUcmVlX1dyaXRlOwogICAgICAtLSAgV3JpdGVzIG91dCBjb250ZW50 cyBvZiB0YWJsZSB1c2luZyBUcmVlX0lPCgogICAgICBwcm9jZWR1cmUgVHJlZV9SZWFkOwogICAg ICAtLSAgSW5pdGlhbGl6ZXMgdGFibGUgYnkgcmVhZGluZyBjb250ZW50cyBwcmV2aW91c2x5IHdy aXR0ZW4KICAgICAgLS0gIHdpdGggdGhlIFRyZWVfV3JpdGUgY2FsbCAoYWxzbyB1c2luZyBUcmVl X0lPKQoKICAgcHJpdmF0ZQoKICAgICAgTGFzdF9WYWwgOiBJbnQ7CiAgICAgIC0tICBDdXJyZW50 IHZhbHVlIG9mIExhc3QuIE5vdGUgdGhhdCB3ZSBkZWNsYXJlIHRoaXMgaW4gdGhlIHByaXZhdGUg cGFydAogICAgICAtLSAgYmVjYXVzZSB3ZSBkb24ndCB3YW50IHRoZSBjbGllbnQgdG8gbW9kaWZ5 IExhc3QgZXhjZXB0IHRocm91Z2ggb25lIG9mCiAgICAgIC0tICB0aGUgb2ZmaWNpYWwgaW50ZXJm YWNlcyAoc2luY2UgYSBtb2RpZmljYXRpb24gdG8gTGFzdCBtYXkgcmVxdWlyZSBhCiAgICAgIC0t ICByZWFsbG9jYXRpb24gb2YgdGhlIHRhYmxlKS4KCiAgICAgIE1heCA6IEludDsKICAgICAgLS0g IFN1YnNjcmlwdCBvZiB0aGUgbWF4aW11bSBlbnRyeSBpbiB0aGUgY3VycmVudGx5IGFsbG9jYXRl ZCB0YWJsZQoKICAgICAgdHlwZSBTYXZlZF9UYWJsZSBpcyByZWNvcmQKICAgICAgICAgTGFzdF9W YWwgOiBJbnQ7CiAgICAgICAgIE1heCAgICAgIDogSW50OwogICAgICAgICBUYWJsZSAgICA6IFRh YmxlX1B0cjsKICAgICAgZW5kIHJlY29yZDsKCiAgIGVuZCBUYWJsZTsKZW5kIFRhYmxlOwotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgIEdOQVQgQ09NUElMRVIgQ09NUE9ORU5UUyAgICAgICAgICAgICAgICAgICAgICAg ICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFQgWSBQIEUgUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgcCBlIGMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXZpc2lvbjogMS41LjEwLjEgJAotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTkyLTIwMDEgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLQotLSBHTkFUIGlzIGZyZWUgc29mdHdhcmU7ICB5b3UgY2FuICByZWRpc3RyaWJ1dGUgaXQg IGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgLS0KLS0gdGVybXMgb2YgdGhlICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgIGJ5IHRoZSBGcmVlIFNvZnQtIC0tCi0tIHdhcmUg IEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyLCAgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg bGF0ZXIgdmVyLSAtLQotLSBzaW9uLiAgR05BVCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSC0gLS0KLS0gT1VUIEFOWSBXQVJSQU5UWTsg IHdpdGhvdXQgZXZlbiB0aGUgIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIC0t Ci0tIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSAtLQotLSBmb3IgIG1vcmUgZGV0YWlscy4gIFlvdSBzaG91bGQg aGF2ZSAgcmVjZWl2ZWQgIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgLS0KLS0gUHVibGljIExp Y2Vuc2UgIGRpc3RyaWJ1dGVkIHdpdGggR05BVDsgIHNlZSBmaWxlIENPUFlJTkcuICBJZiBub3Qs IHdyaXRlIC0tCi0tIHRvICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCAgNTkgVGVtcGxl IFBsYWNlIC0gU3VpdGUgMzMwLCAgQm9zdG9uLCAtLQotLSBNQSAwMjExMS0xMzA3LCBVU0EuICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sICBpZiBvdGhlciBm aWxlcyAgaW5zdGFudGlhdGUgIGdlbmVyaWNzIGZyb20gdGhpcyAtLQotLSB1bml0LCBvciB5b3Ug bGluayAgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgIHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJs ZSwgLS0KLS0gdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3Vs dGluZyAgZXhlY3V0YWJsZSAgdG8gIGJlIC0tCi0tIGNvdmVyZWQgIGJ5IHRoZSAgR05VICBHZW5l cmFsICBQdWJsaWMgIExpY2Vuc2UuICBUaGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCAtLQotLSBob3dl dmVyIGludmFsaWRhdGUgIGFueSBvdGhlciByZWFzb25zIHdoeSAgdGhlIGV4ZWN1dGFibGUgZmls ZSAgbWlnaHQgYmUgLS0KLS0gY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LQotLSBHTkFUIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCAgYnkgdGhlIEdOQVQgdGVhbSBhdCAg TmV3IFlvcmsgVW5pdmVyc2l0eS4gLS0KLS0gRXh0ZW5zaXZlIGNvbnRyaWJ1dGlvbnMgd2VyZSBw cm92aWRlZCBieSBBZGEgQ29yZSBUZWNobm9sb2dpZXMgSW5jLiAgICAgIC0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggVW5jaGVja2VkX0RlYWxsb2Nh dGlvbjsKCnBhY2thZ2UgVHlwZXMgaXMKcHJhZ21hIFByZWVsYWJvcmF0ZSAoVHlwZXMpOwoKLS0g IFRoaXMgcGFja2FnZSBjb250YWlucyBob3N0IGluZGVwZW5kZW50IHR5cGUgZGVmaW5pdGlvbnMg d2hpY2ggYXJlIHVzZWQKLS0gIGluIG1vcmUgdGhhbiBvbmUgdW5pdCBpbiB0aGUgY29tcGlsZXIu IFRoZXkgYXJlIGdhdGhlcmVkIGhlcmUgZm9yIGVhc3kKLS0gIHJlZmVyZW5jZSwgdGhvdWdoIGlu IHNvbWUgY2FzZXMgdGhlIGZ1bGwgZGVzY3JpcHRpb24gaXMgZm91bmQgaW4gdGhlCi0tICByZWxl dmFudCBtb2R1bGUgd2hpY2ggaW1wbGVtZW50cyB0aGUgZGVmaW5pdGlvbi4gVGhlIG1haW4gcmVh c29uIHRoYXQKLS0gIHRoZXkgYXJlIG5vdCBpbiB0aGVpciAibmF0dXJhbCIgc3BlY3MgaXMgdGhh dCB0aGlzIHdvdWxkIGNhdXNlIGEgbG90IG9mCi0tICBpbnRlci1zcGVjIGRlcGVuZGVuY2llcywg YW5kIGluIHBhcnRpY3VsYXIgc29tZSBhd2t3YXJkIGNpcmN1bGFyCi0tICBkZXBlbmRlbmNpZXMg d291bGQgaGF2ZSB0byBiZSBkZWFsdCB3aXRoLgoKLS0gIFdBUk5JTkc6IFRoZXJlIGlzIGEgQyB2 ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gQW55IGNoYW5nZXMgdG8gdGhpcwotLSAgc291cmNlIGZp bGUgbXVzdCBiZSBwcm9wZXJseSByZWZsZWN0ZWQgaW4gdGhlIEMgaGVhZGVyIGZpbGUgYS10eXBl cy5oCgotLSAgTm90ZTogdGhlIGRlY2xhcmF0aW9ucyBpbiB0aGlzIHBhY2thZ2UgcmVmbGVjdCBh biBleHBlY3RhdGlvbiB0aGF0IHRoZQotLSAgaG9zdCBtYWNoaW5lIGhhcyBhbiBlZmZpY2llbnQg aW50ZWdlciBiYXNlIHR5cGUgd2l0aCBhIHJhbmdlIGF0IGxlYXN0Ci0tICAzMiBiaXRzIDJzLWNv bXBsZW1lbnQuIElmIHRoZXJlIGFyZSBhbnkgbWFjaGluZXMgZm9yIHdoaWNoIHRoaXMgaXMgbm90 Ci0tICBhIGNvcnJlY3QgYXNzdW1wdGlvbiwgYSBzaWduaWZpY2FudCBudW1iZXIgb2YgY2hhbmdl cyB3aWxsIGJlIHJlcXVpcmVkIQoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAtLSBHZW5lcmFsIFVzZSBJbnRlZ2VyIFR5cGVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgIHR5cGUgSW50IGlzIHJhbmdlIC0yICoqIDMxIC4uICsyICoqIDMxIC0g MTsKICAgLS0gIFNpZ25lZCAzMi1iaXQgaW50ZWdlcgoKICAgdHlwZSBEaW50IGlzIHJhbmdlIC0y ICoqIDYzIC4uICsyICoqIDYzIC0gMTsKICAgLS0gIERvdWJsZSBsZW5ndGggKDY0LWJpdCkgaW50 ZWdlcgoKICAgc3VidHlwZSBOYXQgaXMgSW50IHJhbmdlIDAgLi4gSW50J0xhc3Q7CiAgIC0tICBO b24tbmVnYXRpdmUgSW50IHZhbHVlcwoKICAgc3VidHlwZSBQb3MgaXMgSW50IHJhbmdlIDEgLi4g SW50J0xhc3Q7CiAgIC0tICBQb3NpdGl2ZSBJbnQgdmFsdWVzCgogICB0eXBlIFdvcmQgaXMgbW9k IDIgKiogMzI7CiAgIC0tICBVbnNpZ25lZCAzMi1iaXQgaW50ZWdlcgoKICAgdHlwZSBTaG9ydCBp cyByYW5nZSAtMzI3NjggLi4gKzMyNzY3OwogICBmb3IgU2hvcnQnU2l6ZSB1c2UgMTY7CiAgIC0t ICAxNi1iaXQgc2lnbmVkIGludGVnZXIKCiAgIHR5cGUgQnl0ZSBpcyBtb2QgMiAqKiA4OwogICBm b3IgQnl0ZSdTaXplIHVzZSA4OwogICAtLSAgOC1iaXQgdW5zaWduZWQgaW50ZWdlcgoKICAgdHlw ZSBzaXplX3QgaXMgbW9kIDIgKiogU3RhbmRhcmQnQWRkcmVzc19TaXplOwogICAtLSAgTWVtb3J5 IHNpemUgdmFsdWUsIGZvciB1c2UgaW4gY2FsbHMgdG8gQyByb3V0aW5lcwoKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gOC1CaXQgQ2hhcmFjdGVyIGFuZCBT dHJpbmcgVHlwZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgIC0tICBXZSB1c2UgU3RhbmRhcmQuQ2hhcmFjdGVyIGFuZCBTdGFuZGFyZC5TdHJpbmcgZnJl ZWx5LCBzaW5jZSB3ZSBhcmUKICAgLS0gIGNvbXBpbGluZyBvdXJzZWx2ZXMsIGFuZCB3ZSBwcm9w ZXJseSBpbXBsZW1lbnQgdGhlIHJlcXVpcmVkIDgtYml0CiAgIC0tICBjaGFyYWN0ZXIgY29kZSBh cyByZXF1aXJlZCBpbiBBZGEgOTUuIFRoaXMgc2VjdGlvbiBkZWZpbmVzIGEgZmV3CiAgIC0tICBn ZW5lcmFsIHVzZSBjb25zdGFudHMgYW5kIHN1YnR5cGVzLgoKICAgRU9GIDogY29uc3RhbnQgQ2hh cmFjdGVyIDo9IEFTQ0lJLlNVQjsKICAgLS0gIFRoZSBjaGFyYWN0ZXIgU1VCICgxNiMxQSMpIGlz IHVzZWQgaW4gRE9TIGFuZCBvdGhlciBzeXN0ZW1zIGRlcml2ZWQKICAgLS0gIGZyb20gRE9TIChP Uy8yLCBOVCBldGMpIHRvIHNpZ25hbCB0aGUgZW5kIG9mIGEgdGV4dCBmaWxlLiBJbnRlcm5hbGx5 CiAgIC0tICBhbGwgc291cmNlIGZpbGVzIGFyZSBlbmRlZCBieSBhbiBFT0YgY2hhcmFjdGVyLCBl dmVuIG9uIFVuaXggc3lzdGVtcy4KICAgLS0gIEFuIEVPRiBjaGFyYWN0ZXIgYWN0cyBhcyB0aGUg ZW5kIG9mIGZpbGUgb25seSBhcyB0aGUgbGFzdCBjaGFyYWN0ZXIKICAgLS0gIG9mIGEgc291cmNl IGJ1ZmZlciwgaW4gYW55IG90aGVyIHBvc2l0aW9uLCBpdCBpcyB0cmVhdGVkIGFzIGEgYmxhbmsK ICAgLS0gIGlmIGl0IGFwcGVhcnMgYmV0d2VlbiB0b2tlbnMsIGFuZCBhcyBhbiBpbGxlZ2FsIGNo YXJhY3RlciBvdGhlcndpc2UuCiAgIC0tICBUaGlzIG1ha2VzIGxpZmUgZWFzaWVyIGRlYWxpbmcg d2l0aCBmaWxlcyB0aGF0IG9yaWdpbmF0ZWQgZnJvbSBET1MsCiAgIC0tICBpbmNsdWRpbmcgY29u Y2F0ZW5hdGVkIGZpbGVzIHdpdGggaW50ZXJzcGVyc2VkIEVPRiBjaGFyYWN0ZXJzLgoKICAgc3Vi dHlwZSBHcmFwaGljX0NoYXJhY3RlciBpcyBDaGFyYWN0ZXIgcmFuZ2UgJyAnIC4uICd+JzsKICAg LS0gIEdyYXBoaWMgY2hhcmFjdGVycywgYXMgZGVmaW5lZCBpbiBBUk0KCiAgIHN1YnR5cGUgTGlu ZV9UZXJtaW5hdG9yIGlzIENoYXJhY3RlciByYW5nZSBBU0NJSS5MRiAuLiBBU0NJSS5DUjsKICAg LS0gIExpbmUgdGVybWluYXRvciBjaGFyYWN0ZXJzIChMRiwgVlQsIEZGLCBDUikKCiAgIHN1YnR5 cGUgVXBwZXJfSGFsZl9DaGFyYWN0ZXIgaXMKICAgICBDaGFyYWN0ZXIgcmFuZ2UgQ2hhcmFjdGVy J1ZhbCAoMTYjODAjKSAuLiBDaGFyYWN0ZXInVmFsICgxNiNGRiMpOwogICAtLSAgQ2hhcmFjdGVy cyB3aXRoIHRoZSB1cHBlciBiaXQgc2V0CgogICB0eXBlIENoYXJhY3Rlcl9QdHIgaXMgYWNjZXNz IGFsbCBDaGFyYWN0ZXI7CiAgIHR5cGUgU3RyaW5nX1B0ciAgICBpcyBhY2Nlc3MgYWxsIFN0cmlu ZzsKICAgLS0gIFN0YW5kYXJkIGNoYXJhY3RlciBhbmQgc3RyaW5nIHBvaW50ZXJzCgogICBwcm9j ZWR1cmUgRnJlZSBpcyBuZXcgVW5jaGVja2VkX0RlYWxsb2NhdGlvbiAoU3RyaW5nLCBTdHJpbmdf UHRyKTsKICAgLS0gIFByb2NlZHVyZSBmb3IgZnJlZWluZyBkeW5hbWljYWxseSBhbGxvY2F0ZWQg U3RyaW5nIHZhbHVlcwoKICAgc3VidHlwZSBXb3JkX0hleF9TdHJpbmcgaXMgU3RyaW5nICgxIC4u IDgpOwogICAtLSAgVHlwZSB1c2VkIHRvIHJlcHJlc2VudCBXb3JkIHZhbHVlIGFzIDggaGV4IGRp Z2l0cywgd2l0aCBsb3dlciBjYXNlCiAgIC0tICBsZXR0ZXJzIGZvciB0aGUgYWxwaGFiZXRpYyBj YXNlcy4KCiAgIGZ1bmN0aW9uIEdldF9IZXhfU3RyaW5nIChXIDogV29yZCkgcmV0dXJuIFdvcmRf SGV4X1N0cmluZzsKICAgLS0gIENvbnZlcnQgd29yZCB2YWx1ZSB0byA4LWNoYXJhY3RlciBoZXgg c3RyaW5nCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAt LSBUeXBlcyBVc2VkIGZvciBUZXh0IEJ1ZmZlciBIYW5kbGluZyAtLQogICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFdlIGNhbid0IHVzZSB0eXBlIFN0 cmluZyBmb3IgdGV4dCBidWZmZXJzLCBzaW5jZSB3ZSBtdXN0IHVzZSB0aGUKICAgLS0gIHN0YW5k YXJkIDMyLWJpdCBpbnRlZ2VyIGFzIGFuIGluZGV4IHZhbHVlLCBzaW5jZSB3ZSBjb3VudCBvbiBh bGwKICAgLS0gIGluZGV4IHZhbHVlcyBiZWluZyB0aGUgc2FtZSBzaXplLgoKICAgdHlwZSBUZXh0 X1B0ciBpcyBuZXcgSW50OwogICAtLSAgVHlwZSB1c2VkIGZvciBzdWJzY3JpcHRzIGluIHRleHQg YnVmZmVyCgogICB0eXBlIFRleHRfQnVmZmVyIGlzIGFycmF5IChUZXh0X1B0ciByYW5nZSA8Pikg b2YgQ2hhcmFjdGVyOwogICAtLSAgVGV4dCBidWZmZXIgdXNlZCB0byBob2xkIHNvdXJjZSBmaWxl IG9yIGxpYnJhcnkgaW5mb3JtYXRpb24gZmlsZQoKICAgdHlwZSBUZXh0X0J1ZmZlcl9QdHIgaXMg YWNjZXNzIGFsbCBUZXh0X0J1ZmZlcjsKICAgLS0gIFRleHQgYnVmZmVycyBmb3IgaW5wdXQgZmls ZXMgYXJlIGFsbG9jYXRlZCBkeW5hbWljYWxseSBhbmQgdGhpcyB0eXBlCiAgIC0tICBpcyB1c2Vk IHRvIHJlZmVyZW5jZSB0aGVzZSB0ZXh0IGJ1ZmZlcnMuCgogICBwcm9jZWR1cmUgRnJlZSBpcyBu ZXcgVW5jaGVja2VkX0RlYWxsb2NhdGlvbiAoVGV4dF9CdWZmZXIsIFRleHRfQnVmZmVyX1B0cik7 CiAgIC0tICBQcm9jZWR1cmUgZm9yIGZyZWVpbmcgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHRleHQg YnVmZmVycwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg IC0tIFR5cGVzIFVzZWQgZm9yIFNvdXJjZSBJbnB1dCBIYW5kbGluZyAtLQogICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHR5cGUgTG9naWNhbF9MaW5lX051 bWJlciBpcyByYW5nZSAwIC4uIEludCdMYXN0OwogICBmb3IgTG9naWNhbF9MaW5lX051bWJlcidT aXplIHVzZSAzMjsKICAgLS0gIExpbmUgbnVtYmVyIHR5cGUsIHVzZWQgZm9yIHN0b3JpbmcgbG9n aWNhbCBsaW5lIG51bWJlcnMgKGkuZS4gbGluZQogICAtLSAgbnVtYmVycyB0aGF0IGluY2x1ZGUg ZWZmZWN0cyBvZiBhbnkgU291cmNlX1JlZmVyZW5jZSBwcmFnbWFzIGluIHRoZQogICAtLSAgc291 cmNlIGZpbGUpLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgYSBsaW5lIGNvbnRhaW5pbmcgYSBz b3VyY2UKICAgLS0gIHJlZmVyZW5jZSBwcmFnbWEuCgogICBOb19MaW5lX051bWJlciA6IGNvbnN0 YW50IExvZ2ljYWxfTGluZV9OdW1iZXIgOj0gMDsKICAgLS0gIFNwZWNpYWwgdmFsdWUgdXNlZCB0 byBpbmRpY2F0ZSBubyBsaW5lIG51bWJlcgoKICAgdHlwZSBQaHlzaWNhbF9MaW5lX051bWJlciBp cyByYW5nZSAxIC4uIEludCdMYXN0OwogICBmb3IgUGh5c2ljYWxfTGluZV9OdW1iZXInU2l6ZSB1 c2UgMzI7CiAgIC0tICBMaW5lIG51bWJlciB0eXBlLCB1c2VkIGZvciBzdG9yaW5nIHBoeXNpY2Fs IGxpbmUgbnVtYmVycyAoaS5lLgogICAtLSAgbGluZSBudW1iZXJzIGluIHRoZSBwaHlzaWNhbCBm aWxlIGJlaW5nIGNvbXBpbGVkLCB1bmFmZmVjdGVkIGJ5CiAgIC0tICB0aGUgcHJlc2VuY2Ugb2Yg c291cmNlIHJlZmVyZW5jZSBwcmFnbWFzLgoKICAgdHlwZSBDb2x1bW5fTnVtYmVyIGlzIHJhbmdl IDAgLi4gMzI3Njc7CiAgIGZvciBDb2x1bW5fTnVtYmVyJ1NpemUgdXNlIDE2OwogICAtLSAgQ29s dW1uIG51bWJlciAoYXNzdW1lIHRoYXQgMioqMTUgaXMgbGFyZ2UgZW5vdWdoLCBzZWUgZGVjbGFy YXRpb24KICAgLS0gIG9mIEhvc3RwYXJtLk1heF9MaW5lX0xlbmd0aCkKCiAgIE5vX0NvbHVtbl9O dW1iZXIgOiBjb25zdGFudCBDb2x1bW5fTnVtYmVyIDo9IDA7CiAgIC0tICBTcGVjaWFsIHZhbHVl IHVzZWQgdG8gaW5kaWNhdGUgbm8gY29sdW1uIG51bWJlcgoKICAgc3VidHlwZSBTb3VyY2VfQnVm ZmVyIGlzIFRleHRfQnVmZmVyOwogICAtLSAgVHlwZSB1c2VkIHRvIHN0b3JlIHRleHQgb2YgYSBz b3VyY2UgZmlsZSAuIFRoZSBidWZmZXIgZm9yIHRoZSBtYWluCiAgIC0tICBzb3VyY2UgKHRoZSBz b3VyY2Ugc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUpIGhhcyBhIGxvd2VyIGJvdW5kCiAg IC0tICBzdGFydGluZyBhdCB6ZXJvLiBTdWJzZXF1ZW50IHN1YnNpZGlhcnkgc291cmNlcyBoYXZl IGxvd2VyIGJvdW5kcwogICAtLSAgd2hpY2ggYXJlIG9uZSBncmVhdGVyIHRoYW4gdGhlIHByZXZp b3VzIHVwcGVyIGJvdW5kLgoKICAgc3VidHlwZSBCaWdfU291cmNlX0J1ZmZlciBpcyBUZXh0X0J1 ZmZlciAoMCAuLiBUZXh0X1B0cidMYXN0KTsKICAgLS0gIFRoaXMgaXMgYSB2aXJ0dWFsIHR5cGUg dXNlZCBhcyB0aGUgZGVzaWduYXRlZCB0eXBlIG9mIHRoZSBhY2Nlc3MKICAgLS0gIHR5cGUgU291 cmNlX0J1ZmZlcl9QdHIsIHNlZSBPc2ludC5SZWFkX1NvdXJjZV9GaWxlIGZvciBkZXRhaWxzLgoK ICAgdHlwZSBTb3VyY2VfQnVmZmVyX1B0ciBpcyBhY2Nlc3MgYWxsIEJpZ19Tb3VyY2VfQnVmZmVy OwogICAtLSAgUG9pbnRlciB0byBzb3VyY2UgYnVmZmVyLiBXZSB1c2UgdmlydHVhbCBvcmlnaW4g YWRkcmVzc2luZyBmb3IKICAgLS0gIHNvdXJjZSBidWZmZXJzLCB3aXRoIHRoaW4gcG9pbnRlcnMu IFRoZSBwb2ludGVyIHBvaW50cyB0byBhIHZpcnR1YWwKICAgLS0gIGluc3RhbmNlIG9mIHR5cGUg QmlnX1NvdXJjZV9CdWZmZXIsIHdoZXJlIHRoZSBhY3R1YWwgdHlwZSBpcyBpbiBmYWN0CiAgIC0t ICBvZiB0eXBlIFNvdXJjZV9CdWZmZXIuIFRoZSBhZGRyZXNzIGlzIGFkanVzdGVkIHNvIHRoYXQg dGhlIHZpcnR1YWwKICAgLS0gIG9yaWdpbiBhZGRyZXNzaW5nIHdvcmtzIGNvcnJlY3RseS4gU2Vl IE9zaW50LlJlYWRfU291cmNlX0J1ZmZlciBmb3IKICAgLS0gIGZ1cnRoZXIgZGV0YWlscy4KCiAg IHN1YnR5cGUgU291cmNlX1B0ciBpcyBUZXh0X1B0cjsKICAgLS0gIFR5cGUgdXNlZCB0byByZXBy ZXNlbnQgYSBzb3VyY2UgbG9jYXRpb24sIHdoaWNoIGlzIGEgc3Vic2NyaXB0IG9mIGEKICAgLS0g IGNoYXJhY3RlciBpbiB0aGUgc291cmNlIGJ1ZmZlci4gQXMgbm90ZWQgYWJvdmUsIGRpZmZmZXJl bnQgc291cmNlCiAgIC0tICBidWZmZXJzIGhhdmUgZGlmZmVyZW50IHJhbmdlcywgc28gaXQgaXMg cG9zc2libGUgdG8gdGVsbCBmcm9tIGEKICAgLS0gIFNvdXJjZV9QdHIgdmFsdWUgd2hpY2ggc291 cmNlIGl0IHJlZmVycyB0by4gTm90ZSB0aGF0IG5lZ2F0aXZlIG51bWJlcnMKICAgLS0gIGFyZSBh bGxvd2VkIHRvIGFjY29tbW9kYXRlIHRoZSBmb2xsb3dpbmcgc3BlY2lhbCB2YWx1ZXMuCgogICBO b19Mb2NhdGlvbiA6IGNvbnN0YW50IFNvdXJjZV9QdHIgOj0gLTE7CiAgIC0tICBWYWx1ZSB1c2Vk IHRvIGluZGljYXRlIG5vIHNvdXJjZSBwb3NpdGlvbiBzZXQgaW4gYSBub2RlCgogICBTdGFuZGFy ZF9Mb2NhdGlvbiA6IGNvbnN0YW50IFNvdXJjZV9QdHIgOj0gLTI7CiAgIC0tICBVc2VkIGZvciBh bGwgbm9kZXMgaW4gdGhlIHJlcHJlc2VudGF0aW9uIG9mIHBhY2thZ2UgU3RhbmRhcmQgb3RoZXIK ICAgLS0gIHRoYW4gbm9kZXMgcmVwcmVzZW50aW5nIHRoZSBjb250ZW50cyBvZiBTdGFuZGFyZC5B U0NJSS4gTm90ZSB0aGF0CiAgIC0tICB0ZXN0aW5nIGZvciA8PSBTdGFuZGFyZF9Mb2NhdGlvbiB0 ZXN0cyBmb3IgYm90aCBTdGFuZGFyZF9Mb2NhdGlvbgogICAtLSAgYW5kIGZvciBTdGFuZGFyZF9B U0NJSV9Mb2NhdGlvbi4KCiAgIFN0YW5kYXJkX0FTQ0lJX0xvY2F0aW9uIDogY29uc3RhbnQgU291 cmNlX1B0ciA6PSAtMzsKICAgLS0gIFVzZWQgZm9yIGFsbCBub2RlcyBpbiB0aGUgcHJlc2VudGF0 aW9uIG9mIHBhY2thZ2UgU3RhbmRhcmQuQVNDSUkKCiAgIEZpcnN0X1NvdXJjZV9QdHIgOiBjb25z dGFudCBTb3VyY2VfUHRyIDo9IDA7CiAgIC0tICBTdGFydGluZyBzb3VyY2UgcG9pbnRlciBpbmRl eCB2YWx1ZSBmb3IgZmlyc3Qgc291cmNlIHByb2dyYW0KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gUmFuZ2UgRGVmaW5pdGlvbnMgZm9yIFRyZWUgRGF0YSAt LQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIHRy ZWUgaGFzIGZpZWxkcyB0aGF0IGNhbiBob2xkIGFueSBvZiB0aGUgZm9sbG93aW5nIHR5cGVzOgoK ICAgLS0gICAgUG9pbnRlcnMgdG8gb3RoZXIgdHJlZSBub2RlcyAodHlwZSBOb2RlX0lkKQogICAt LSAgICBMaXN0IHBvaW50ZXJzICh0eXBlIExpc3RfSWQpCiAgIC0tICAgIEVsZW1lbnQgbGlzdCBw b2ludGVycyAodHlwZSBFbGlzdF9JZCkKICAgLS0gICAgTmFtZXMgKHR5cGUgTmFtZV9JZCkKICAg LS0gICAgU3RyaW5ncyAodHlwZSBTdHJpbmdfSWQpCiAgIC0tICAgIFVuaXZlcnNhbCBpbnRlZ2Vy cyAodHlwZSBVaW50KQogICAtLSAgICBVbml2ZXJzYWwgcmVhbHMgKHR5cGUgVXJlYWwpCiAgIC0t ICAgIENoYXJhY3RlciBjb2RlcyAodHlwZSBDaGFyX0NvZGUgc3RvcmVkIHdpdGggYSBiaWFzKQoK ICAgLS0gIEluIG1vc3QgY29udGV4dHMsIHRoZSBzdHJvbmdseSB0eXBlZCBpbnRlcmZhY2UgZGV0 ZXJtaW5lcyB3aGljaCBvZgogICAtLSAgdGhlc2UgdHlwZXMgaXMgcHJlc2VudC4gSG93ZXZlciwg dGhlcmUgYXJlIHNvbWUgc2l0dWF0aW9ucyAoaW52b2x2aW5nCiAgIC0tICB1bnR5cGVkIHRyYXZl cnNhbHMgb2YgdGhlIHRyZWUpLCB3aGVyZSBpdCBpcyBjb252ZW5pZW50IHRvIGJlIGVhc2lseQog ICAtLSAgYWJsZSB0byBkaXN0aW5ndWlzaCB0aGVzZSB2YWx1ZXMuIFRoZSB1bmRlcmx5aW5nIHJl cHJlc2VudGF0aW9uIGluIGFsbAogICAtLSAgY2FzZXMgaXMgYW4gaW50ZWdlciB0eXBlIFVuaW9u X0lkLCBhbmQgd2UgZW5zdXJlIHRoYXQgdGhlIHJhbmdlIG9mCiAgIC0tICB0aGUgdmFyaW91cyBw b3NzaWJsZSB2YWx1ZXMgZm9yIGVhY2ggb2YgdGhlIGFib3ZlIHR5cGVzIGlzIGRpc2pvaW50CiAg IC0tICBzbyB0aGF0IHRoaXMgZGlzdGluY3Rpb24gaXMgcG9zc2libGUuCgogICB0eXBlIFVuaW9u X0lkIGlzIG5ldyBJbnQ7CiAgIC0tICBUaGUgdHlwZSBpbiB0aGUgdHJlZSBmb3IgYSB1bmlvbiBv ZiBwb3NzaWJsZSBJRCB2YWx1ZXMKCiAgIC0tICBOb3RlOiBpdCBpcyBhbHNvIGhlbHBmdWwgZm9y IGRlYnVnZ2luZyBwdXJwb3NlcyB0byBtYWtlIHRoZXNlIHJhbmdlcwogICAtLSAgZGlzdGluY3Qu IElmIGEgYnVnIGxlYWRzIHRvIG1pc2lkZW50aWZpY2F0aW9uIG9mIGEgdmFsdWUsIHRoZW4gaXQg d2lsbAogICAtLSAgdHlwaWNhbGx5IHJlc3VsdCBpbiBhbiBvdXQgb2YgcmFuZ2UgdmFsdWUgYW5k IGEgQ29uc3RyYWludF9FcnJvci4KCiAgIExpc3RfTG93X0JvdW5kIDogY29uc3RhbnQgOj0gLTEw MF8wMDBfMDAwOwogICAtLSAgVGhlIExpc3RfSWQgdmFsdWVzIGFyZSBzdWJzY3JpcHRzIGludG8g YW4gYXJyYXkgb2YgbGlzdCBoZWFkZXJzIHdoaWNoCiAgIC0tICBoYXMgTGlzdF9Mb3dfQm91bmQg YXMgaXRzIGxvd2VyIGJvdW5kLiBUaGlzIHZhbHVlIGlzIGNob3NlbiBzbyB0aGF0IGFsbAogICAt LSAgTGlzdF9JZCB2YWx1ZXMgYXJlIG5lZ2F0aXZlLCBhbmQgdGhlIHZhbHVlIHplcm8gaXMgaW4g dGhlIHJhbmdlIG9mIGJvdGgKICAgLS0gIExpc3RfSWQgYW5kIE5vZGVfSWQgdmFsdWVzIChzZWUg ZnVydGhlciBkZXNjcmlwdGlvbiBiZWxvdykuCgogICBMaXN0X0hpZ2hfQm91bmQgOiBjb25zdGFu dCA6PSAwOwogICAtLSAgTWF4aW11bSBMaXN0X0lkIHN1YnNjcmlwdCB2YWx1ZS4gVGhpcyBhbGxv d3MgdXAgdG8gMTAwIG1pbGxpb24gbGlzdAogICAtLSAgSWQgdmFsdWVzLCB3aGljaCBpcyBpbiBw cmFjdGljZSBpbmZpbml0ZSwgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8KICAgLS0gIGNoZWNrIHRo ZSByYW5nZS4gVGhlIHJhbmdlIG92ZXJsYXBzIHRoZSBub2RlIHJhbmdlIGJ5IG9uZSBlbGVtZW50 CiAgIC0tICAod2l0aCB2YWx1ZSB6ZXJvKSwgd2hpY2ggaXMgdXNlZCBib3RoIGZvciB0aGUgRW1w dHkgbm9kZSwgYW5kIGZvcgogICAtLSAgaW5kaWNhdGluZyBubyBsaXN0LiBUaGUgZmFjdCB0aGF0 IHRoZSBzYW1lIHZhbHVlIGlzIHVzZWQgaXMgY29udmVuaWVudAogICAtLSAgYmVjYXVzZSBpdCBt ZWFucyB0aGF0IHRoZSBkZWZhdWx0IHZhbHVlIG9mIEVtcHR5IGFwcGxpZXMgdG8gYm90aCBub2Rl cwogICAtLSAgYW5kIGxpc3RzLCBhbmQgYWxzbyBpcyBtb3JlIGVmZmljaWVudCB0byB0ZXN0IGZv ci4KCiAgIE5vZGVfTG93X0JvdW5kIDogY29uc3RhbnQgOj0gMDsKICAgLS0gIFRoZSB0cmVlIElk IHZhbHVlcyBzdGFydCBhdCB6ZXJvLCBiZWNhdXNlIHdlIHVzZSB6ZXJvIGZvciBFbXB0eSAodG8K ICAgLS0gIGFsbG93IGEgemVybyB0ZXN0IGZvciBFbXB0eSkuIEFjdHVhbCB0cmVlIG5vZGUgc3Vi c2NyaXB0cyBzdGFydCBhdCAwCiAgIC0tICBzaW5jZSBFbXB0eSBpcyBhIGxlZ2l0aW1hdGUgbm9k ZSB2YWx1ZS4KCiAgIE5vZGVfSGlnaF9Cb3VuZCA6IGNvbnN0YW50IDo9IDA5OV85OTlfOTk5Owog ICAtLSAgTWF4aW11bSBudW1iZXIgb2Ygbm9kZXMgdGhhdCBjYW4gYmUgYWxsb2NhdGVkIGlzIDEw MCBtaWxsaW9uLCB3aGljaAogICAtLSAgaXMgaW4gcHJhY3RpY2UgaW5maW5pdGUsIGFuZCB0aGVy ZSBpcyBubyBuZWVkIHRvIGNoZWNrIHRoZSByYW5nZS4KCiAgIEVsaXN0X0xvd19Cb3VuZCA6IGNv bnN0YW50IDo9IDEwMF8wMDBfMDAwOwogICAtLSAgVGhlIEVsaXN0X0lkIHZhbHVlcyBhcmUgc3Vi c2NyaXB0cyBpbnRvIGFuIGFycmF5IG9mIGVsaXN0IGhlYWRlcnMgd2hpY2gKICAgLS0gIGhhcyBF bGlzdF9Mb3dfQm91bmQgYXMgaXRzIGxvd2VyIGJvdW5kLgoKICAgRWxpc3RfSGlnaF9Cb3VuZCA6 IGNvbnN0YW50IDo9IDE5OV85OTlfOTk5OwogICAtLSAgTWF4aW11bSBFbGlzdF9JZCBzdWJzY3Jp cHQgdmFsdWUuIFRoaXMgYWxsb3dzIHVwIHRvIDEwMCBtaWxsaW9uIEVsaXN0cywKICAgLS0gIHdo aWNoIGlzIGluIHByYWN0aWNlIGluZmluaXRlIGFuZCB0aGVyZSBpcyBubyBuZWVkIHRvIGNoZWNr IHRoZSByYW5nZS4KCiAgIEVsbXRfTG93X0JvdW5kIDogY29uc3RhbnQgOj0gMjAwXzAwMF8wMDA7 CiAgIC0tICBMb3cgYm91bmQgb2YgZWxlbWVudCBJZCB2YWx1ZXMuIFRoZSB1c2Ugb2YgdGhlc2Ug dmFsdWVzIGlzIGludGVybmFsIHRvCiAgIC0tICB0aGUgRWxpc3RzIHBhY2thZ2UsIGJ1dCB0aGUg ZGVmaW5pdGlvbiBvZiB0aGUgcmFuZ2UgaXMgaW5jbHVkZWQgaGVyZQogICAtLSAgc2luY2UgaXQg bXVzdCBiZSBkaXNqb2ludCBmcm9tIG90aGVyIElkIHZhbHVlcy4gVGhlIEVsbXRfSWQgdmFsdWVz IGFyZQogICAtLSAgc3Vic2NyaXB0cyBpbnRvIGFuIGFycmF5IG9mIGxpc3QgZWxlbWVudHMgd2hp Y2ggaGFzIHRoaXMgYXMgbG93ZXIgYm91bmQuCgogICBFbG10X0hpZ2hfQm91bmQgOiBjb25zdGFu dCA6PSAyOTlfOTk5Xzk5OTsKICAgLS0gIFVwcGVyIGJvdW5kIG9mIEVsbXRfSWQgdmFsdWVzLiBU aGlzIGFsbG93cyB1cCB0byAxMDAgbWlsbGlvbiBlbGVtZW50CiAgIC0tICBsaXN0IG1lbWJlcnMs IHdoaWNoIGlzIGluIHByYWN0aWNlIGluZmluaXRlIChubyByYW5nZSBjaGVjayBuZWVkZWQpLgoK ICAgTmFtZXNfTG93X0JvdW5kIDogY29uc3RhbnQgOj0gMzAwXzAwMF8wMDA7CiAgIC0tICBMb3cg Ym91bmQgZm9yIG5hbWUgSWQgdmFsdWVzCgogICBOYW1lc19IaWdoX0JvdW5kIDogY29uc3RhbnQg Oj0gMzk5Xzk5OV85OTk7CiAgIC0tICBNYXhpbXVtIG51bWJlciBvZiBuYW1lcyB0aGF0IGNhbiBi ZSBhbGxvY2F0ZWQgaXMgMTAwIG1pbGxpb24sIHdoaWNoIGlzCiAgIC0tICBpbiBwcmFjdGljZSBp bmZpbml0ZSBhbmQgdGhlcmUgaXMgbm8gbmVlZCB0byBjaGVjayB0aGUgcmFuZ2UuCgogICBTdHJp bmdzX0xvd19Cb3VuZCA6IGNvbnN0YW50IDo9IDQwMF8wMDBfMDAwOwogICAtLSAgTG93IGJvdW5k IGZvciBzdHJpbmcgSWQgdmFsdWVzCgogICBTdHJpbmdzX0hpZ2hfQm91bmQgOiBjb25zdGFudCA6 PSA0OTlfOTk5Xzk5OTsKICAgLS0gIE1heGltdW0gbnVtYmVyIG9mIHN0cmluZ3MgdGhhdCBjYW4g YmUgYWxsb2NhdGVkIGlzIDEwMCBtaWxsaW9uLCB3aGljaAogICAtLSAgaXMgaW4gcHJhY3RpY2Ug aW5maW5pdGUgYW5kIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2hlY2sgdGhlIHJhbmdlLgoKICAgVXJl YWxfTG93X0JvdW5kIDogY29uc3RhbnQgOj0gNTAwXzAwMF8wMDA7CiAgIC0tICBMb3cgYm91bmQg Zm9yIFVyZWFsIHZhbHVlcy4KCiAgIFVyZWFsX0hpZ2hfQm91bmQgOiBjb25zdGFudCA6PSA1OTlf OTk5Xzk5OTsKICAgLS0gIE1heGltdW0gbnVtYmVyIG9mIFVyZWFsIHZhbHVlcyBzdG9yZWQgaXMg MTAwXzAwMF8wMDAgd2hpY2ggaXMgaW4KICAgLS0gIHByYWN0aWNlIGluZmluaXRlIHNvIHRoYXQg bm8gY2hlY2sgaXMgcmVxdWlyZWQuCgogICBVaW50X0xvd19Cb3VuZCA6IGNvbnN0YW50IDo9IDYw MF8wMDBfMDAwOwogICAtLSAgTG93IGJvdW5kIGZvciBVaW50IHZhbHVlcy4KCiAgIFVpbnRfVGFi bGVfU3RhcnQgOiBjb25zdGFudCA6PSAyXzAwMF8wMDBfMDAwOwogICAtLSAgTG9jYXRpb24gd2hl cmUgdGFibGUgZW50cmllcyBmb3IgdW5pdmVyc2FsIGludGVnZXJzIHN0YXJ0IChzZWUKICAgLS0g IFVpbnRwIHNwZWMgZm9yIGRldGFpbHMgb2YgdGhlIHJlcHJlc2VudGF0aW9uIG9mIFVpbnQgdmFs dWVzKS4KCiAgIFVpbnRfSGlnaF9Cb3VuZCA6IGNvbnN0YW50IDo9IDJfMDk5Xzk5OV85OTk7CiAg IC0tICBUaGUgcmFuZ2Ugb2YgVWludCB2YWx1ZXMgaXMgdmVyeSBsYXJnZSwgc2luY2UgYSBzdWJz dGFudGlhbCBwYXJ0CiAgIC0tICBvZiB0aGlzIHJhbmdlIGlzIHVzZWQgdG8gc3RvcmUgZGlyZWN0 IHZhbHVlcywgc2VlIFVpbnRwIGZvciBkZXRhaWxzLgoKICAgQ2hhcl9Db2RlX0JpYXMgOiBjb25z dGFudCA6PSAyXzEwMF8wMDBfMDAwOwogICAtLSAgQSBiaWFzIHZhbHVlIGFkZGVkIHRvIGNoYXJh Y3RlciBjb2RlIHZhbHVlcyBzdG9yZWQgaW4gdGhlIHRyZWUgd2hpY2gKICAgLS0gIGVuc3VyZXMg dGhhdCB0aGV5IGhhdmUgZGlmZmVyZW50IHZhbHVlcyBmcm9tIGFueSBvZiB0aGUgYWJvdmUgdHlw ZXMuCgogICAtLSAgVGhlIGZvbGxvd2luZyBzdWJ0eXBlIGRlZmluaXRpb25zIGFyZSB1c2VkIHRv IHByb3ZpZGUgY29udmVuaWVudCBuYW1lcwogICAtLSAgZm9yIG1lbWJlcnNoaXAgdGVzdHMgb24g SW50IHZhbHVlcyB0byBzZWUgd2hhdCBkYXRhIHR5cGUgcmFuZ2UgdGhleQogICAtLSAgbGllIGlu LiBTdWNoIHRlc3RzIGFwcGVhciBvbmx5IGluIHRoZSBsb3dlc3QgbGV2ZWwgcGFja2FnZXMuCgog ICBzdWJ0eXBlIExpc3RfUmFuZ2UgICAgICBpcyBVbmlvbl9JZAogICAgIHJhbmdlIExpc3RfTG93 X0JvdW5kICAgLi4gTGlzdF9IaWdoX0JvdW5kOwoKICAgc3VidHlwZSBOb2RlX1JhbmdlICAgICAg aXMgVW5pb25fSWQKICAgICByYW5nZSBOb2RlX0xvd19Cb3VuZCAgIC4uIE5vZGVfSGlnaF9Cb3Vu ZDsKCiAgIHN1YnR5cGUgRWxpc3RfUmFuZ2UgICAgIGlzIFVuaW9uX0lkCiAgICAgcmFuZ2UgRWxp c3RfTG93X0JvdW5kICAuLiBFbGlzdF9IaWdoX0JvdW5kOwoKICAgc3VidHlwZSBFbG10X1Jhbmdl ICAgICAgaXMgVW5pb25fSWQKICAgICByYW5nZSBFbG10X0xvd19Cb3VuZCAgIC4uIEVsbXRfSGln aF9Cb3VuZDsKCiAgIHN1YnR5cGUgTmFtZXNfUmFuZ2UgICAgIGlzIFVuaW9uX0lkCiAgICAgcmFu Z2UgTmFtZXNfTG93X0JvdW5kICAgLi4gTmFtZXNfSGlnaF9Cb3VuZDsKCiAgIHN1YnR5cGUgU3Ry aW5nc19SYW5nZSAgIGlzIFVuaW9uX0lkCiAgICAgcmFuZ2UgU3RyaW5nc19Mb3dfQm91bmQgLi4g U3RyaW5nc19IaWdoX0JvdW5kOwoKICAgc3VidHlwZSBVaW50X1JhbmdlICAgICAgaXMgVW5pb25f SWQKICAgICByYW5nZSBVaW50X0xvd19Cb3VuZCAgICAuLiBVaW50X0hpZ2hfQm91bmQ7CgogICBz dWJ0eXBlIFVyZWFsX1JhbmdlICAgICBpcyBVbmlvbl9JZAogICAgIHJhbmdlIFVyZWFsX0xvd19C b3VuZCAgICAuLiBVcmVhbF9IaWdoX0JvdW5kOwoKICAgc3VidHlwZSBDaGFyX0NvZGVfUmFuZ2Ug aXMgVW5pb25fSWQKICAgICByYW5nZSBDaGFyX0NvZGVfQmlhcyAgICAuLiBDaGFyX0NvZGVfQmlh cyArIDIqKjE2IC0gMTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFR5 cGVzIGZvciBOYW1ldCBQYWNrYWdlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAtLSAgTmFtZV9JZCB2YWx1ZXMgYXJlIHVzZWQgdG8gaWRlbnRpZnkgZW50cmllcyBpbiB0 aGUgbmFtZXMgdGFibGUuIEV4Y2VwdAogICAtLSAgZm9yIHRoZSBzcGVjaWFsIHZhbHVlcyBOb19O YW1lLCBhbmQgRXJyb3JfTmFtZSwgdGhleSBhcmUgc3Vic2NyaXB0CiAgIC0tICB2YWx1ZXMgZm9y IHRoZSBOYW1lcyB0YWJsZSBkZWZpbmVkIGluIHBhY2thZ2UgTmFtZXQuCgogICAtLSAgTm90ZSB0 aGF0IHdpdGggb25seSBhIGZldyBleGNlcHRpb25zLCB3aGljaCBhcmUgY2xlYXJseSBkb2N1bWVu dGVkLCB0aGUKICAgLS0gIHR5cGUgTmFtZV9JZCBzaG91bGQgYmUgcmVnYXJkZWQgYXMgYSBwcml2 YXRlIHR5cGUuIEluIHBhcnRpY3VsYXIgaXQgaXMKICAgLS0gIG5ldmVyIGFwcHJvcHJpYXRlIHRv IHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25zIHVzaW5nIHRoaXMgdHlwZS4KCiAgIHR5cGUg TmFtZV9JZCBpcyByYW5nZSBOYW1lc19Mb3dfQm91bmQgLi4gTmFtZXNfSGlnaF9Cb3VuZDsKICAg Zm9yIE5hbWVfSWQnU2l6ZSB1c2UgMzI7CiAgIC0tICBUeXBlIHVzZWQgdG8gaWRlbnRpZnkgZW50 cmllcyBpbiB0aGUgbmFtZXMgdGFibGUKCiAgIE5vX05hbWUgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE5hbWVzX0xvd19Cb3VuZDsKICAgLS0gIFRoZSBzcGVjaWFsIE5hbWVfSWQgdmFsdWUgTm9fTmFt ZSBpcyB1c2VkIGluIHRoZSBwYXJzZXIgdG8gaW5kaWNhdGUKICAgLS0gIGEgc2l0dWF0aW9uIHdo ZXJlIG5vIG5hbWUgaXMgcHJlc2VudCAoZS5nLiBvbiBhIGxvb3Agb3IgYmxvY2spLgoKICAgRXJy b3JfTmFtZSA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTmFtZXNfTG93X0JvdW5kICsgIDE7CiAgIC0t ICBUaGUgc3BlY2lhbCBOYW1lX0lkIHZhbHVlIEVycm9yX05hbWUgaXMgdXNlZCBpbiB0aGUgcGFy c2VyIHRvCiAgIC0tICBpbmRpY2F0ZSB0aGF0IHNvbWUga2luZCBvZiBlcnJvciB3YXMgZW5jb3Vu dGVyZWQgaW4gc2Nhbm5pbmcgb3V0CiAgIC0tICB0aGUgcmVsZXZhbnQgbmFtZSwgc28gaXQgZG9l cyBub3QgaGF2ZSBhIHJlcHJlc2VudGFibGUgbGFiZWwuCgogICBGaXJzdF9OYW1lX0lkIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOYW1lc19Mb3dfQm91bmQgKyAyOwogICAtLSAgU3Vic2NyaXB0IG9m IGZpcnN0IGVudHJ5IGluIG5hbWVzIHRhYmxlCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgIC0tIFR5cGVzIGZvciBBdHJlZSBQYWNrYWdlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgIC0tICBOb2RlX0lkIHZhbHVlcyBhcmUgdXNlZCB0byBpZGVudGlmeSBu b2RlcyBpbiB0aGUgdHJlZS4gVGhleSBhcmUKICAgLS0gIHN1YnNjcmlwdHMgaW50byB0aGUgTm9k ZSB0YWJsZSBkZWNsYXJlZCBpbiBwYWNrYWdlIFRyZWUuIE5vdGUgdGhhdAogICAtLSAgdGhlIHNw ZWNpYWwgdmFsdWVzIEVtcHR5IGFuZCBFcnJvciBhcmUgc3Vic2NyaXB0cyBpbnRvIHRoaXMgdGFi bGUsCiAgIC0tICBTZWUgcGFja2FnZSBBdHJlZSBmb3IgZnVydGhlciBkZXRhaWxzLgoKICAgdHlw ZSBOb2RlX0lkIGlzIHJhbmdlIE5vZGVfTG93X0JvdW5kIC4uIE5vZGVfSGlnaF9Cb3VuZDsKICAg LS0gIFR5cGUgdXNlZCB0byBpZGVudGlmeSBub2RlcyBpbiB0aGUgdHJlZQoKICAgc3VidHlwZSBF bnRpdHlfSWQgaXMgTm9kZV9JZDsKICAgLS0gIEEgc3lub255bSBmb3Igbm9kZSB0eXBlcywgdXNl ZCBpbiB0aGUgZW50aXR5IHBhY2thZ2UgdG8gcmVmZXIgdG8KICAgLS0gIG5vZGVzIHRoYXQgYXJl IGVudGl0aWVzIChpLmUuIG5vZGVzIHdpdGggYW4gTmtpbmQgb2YgTl9EZWZpbmluZ194eHgpCiAg IC0tICBBbGwgc3VjaCBub2RlcyBhcmUgZXh0ZW5kZWQgbm9kZXMgYW5kIHRoZXNlIGFyZSB0aGUg b25seSBleHRlbmRlZAogICAtLSAgbm9kZXMsIHNvIHRoYXQgaW4gcHJhY3RpY2UgZW50aXR5IGFu ZCBleHRlbmRlZCBub2RlcyBhcmUgc3lub255bW91cy4KCiAgIHN1YnR5cGUgTm9kZV9Pcl9FbnRp dHlfSWQgaXMgTm9kZV9JZDsKICAgLS0gIEEgc3lub255bSBmb3Igbm9kZSB0eXBlcywgdXNlZCBp biBjYXNlcyB3aGVyZSBhIGdpdmVuIHZhbHVlIG1heSBiZSB1c2VkCiAgIC0tICB0byByZXByZXNl bnQgZWl0aGVyIGEgbm9kZSBvciBhbiBlbnRpdHkuIFdlIGxpa2UgdG8gbWluaW1pemUgc3VjaCB1 c2VzCiAgIC0tICBmb3Igb2J2aW91cyByZWFzb25zIG9mIGxvZ2ljYWwgdHlwZSBjb25zaXN0ZW5j eSwgYnV0IHdoZXJlIHN1Y2ggdXNlcwogICAtLSAgb2NjdXIsIHRoZXkgc2hvdWxkIGJlIGRvY3Vt ZW50ZWQgYnkgdXNlIG9mIHRoaXMgdHlwZS4KCiAgIEVtcHR5IDogY29uc3RhbnQgTm9kZV9JZCA6 PSBOb2RlX0xvd19Cb3VuZDsKICAgLS0gIFVzZWQgdG8gaW5kaWNhdGUgbnVsbCBub2RlLiBBIG5v ZGUgaXMgYWN0dWFsbHkgYWxsb2NhdGVkIHdpdGggdGhpcwogICAtLSAgSWQgdmFsdWUsIHNvIHRo YXQgTmtpbmQgKEVtcHR5KSA9IE5fRW1wdHkuIE5vdGUgdGhhdCBOb2RlX0xvd19Cb3VuZAogICAt LSAgaXMgemVybywgc28gRW1wdHkgPSBOb19MaXN0ID0gemVyby4KCiAgIEVtcHR5X0xpc3RfT3Jf Tm9kZSA6IGNvbnN0YW50IDo9IDA7CiAgIC0tICBUaGlzIGNvbnN0YW50IGlzIHVzZWQgaW4gc2l0 dWF0aW9ucyAoZS5nLiBpbml0aWFsaXppbmcgZW1wdHkgZmllbGRzKQogICAtLSAgd2hlcmUgdGhl IHZhbHVlIHNldCB3aWxsIGJlIHVzZWQgdG8gcmVwcmVzZW50IGVpdGhlciBhbiBlbXB0eSBub2Rl CiAgIC0tICBvciBhIG5vbi1leGlzdGVudCBsaXN0LCBkZXBlbmRpbmcgb24gdGhlIGNvbnRleHQu CgogICBFcnJvciA6IGNvbnN0YW50IE5vZGVfSWQgOj0gTm9kZV9Mb3dfQm91bmQgKyAxOwogICAt LSAgVXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZXJlIHdhcyBhbiBlcnJvciBpbiB0aGUgc291cmNl IHByb2dyYW0uIEEgbm9kZQogICAtLSAgaXMgYWN0dWFsbHkgYWxsb2NhdGVkIGF0IHRoaXMgYWRk cmVzcywgc28gdGhhdCBOa2luZCAoRXJyb3IpID0gTl9FcnJvci4KCiAgIEVtcHR5X09yX0Vycm9y IDogY29uc3RhbnQgTm9kZV9JZCA6PSBFcnJvcjsKICAgLS0gIFNpbmNlIEVtcHR5IGFuZCBFcnJv ciBhcmUgdGhlIGZpcnN0IHR3byBOb2RlX0lkIHZhbHVlcywgdGhlIHRlc3QgZm9yCiAgIC0tICBO IDw9IEVtcHR5X09yX0Vycm9yIHRlc3RzIHRvIHNlZSBpZiBOIGlzIEVtcHR5IG9yIEVycm9yLiBU aGlzIGRlZmluaXRpb24KICAgLS0gIHByb3ZpZGVzIGNvbnZlbmllbnQgc2VsZi1kb2N1bWVudGF0 aW9uIGZvciBzdWNoIHRlc3RzLgoKICAgRmlyc3RfTm9kZV9JZCAgOiBjb25zdGFudCBOb2RlX0lk IDo9IE5vZGVfTG93X0JvdW5kOwogICAtLSAgU3Vic2NyaXB0IG9mIGZpcnN0IGFsbG9jYXRlZCBu b2RlLiBOb3RlIHRoYXQgRW1wdHkgYW5kIEVycm9yIGFyZSBib3RoCiAgIC0tICBhbGxvY2F0ZWQg bm9kZXMsIHdob3NlIE5raW5kIGZpZWxkcyBjYW4gYmUgYWNjZXNzZWQgd2l0aG91dCBlcnJvci4K CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBUeXBlcyBmb3IgTmxpc3Rz IFBhY2thZ2UgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgTGlz dF9JZCB2YWx1ZXMgYXJlIHVzZWQgdG8gaWRlbnRpZnkgbm9kZSBsaXN0cyBpbiB0aGUgdHJlZS4g VGhleSBhcmUKICAgLS0gIHN1YnNjcmlwdHMgaW50byB0aGUgTGlzdHMgdGFibGUgZGVjbGFyZWQg aW4gcGFja2FnZSBUcmVlLiBOb3RlIHRoYXQKICAgLS0gIHRoZSBzcGVjaWFsIHZhbHVlIEVycm9y X0xpc3QgaXMgYSBzdWJzY3JpcHQgaW4gdGhpcyB0YWJsZSwgYnV0IHRoZQogICAtLSAgdmFsdWUg Tm9fTGlzdCBpcyAqbm90KiBhIHZhbGlkIHN1YnNjcmlwdCwgYW5kIGFueSBhdHRlbXB0IHRvIGFw cGx5CiAgIC0tICBsaXN0IG9wZXJhdGlvbnMgdG8gTm9fTGlzdCB3aWxsIGNhdXNlIGEgKGRldGVj dGVkKSBlcnJvci4KCiAgIHR5cGUgTGlzdF9JZCBpcyByYW5nZSBMaXN0X0xvd19Cb3VuZCAuLiBM aXN0X0hpZ2hfQm91bmQ7CiAgIC0tICBUeXBlIHVzZWQgdG8gaWRlbnRpZnkgYSBub2RlIGxpc3QK CiAgIE5vX0xpc3QgOiBjb25zdGFudCBMaXN0X0lkIDo9IExpc3RfSGlnaF9Cb3VuZDsKICAgLS0g IFVzZWQgdG8gaW5kaWNhdGUgYWJzZW5jZSBvZiBhIGxpc3QuIE5vdGUgdGhhdCB0aGUgdmFsdWUg aXMgemVybywgd2hpY2gKICAgLS0gIGlzIHRoZSBzYW1lIGFzIEVtcHR5LCB3aGljaCBpcyBoZWxw ZnVsIGluIGluaXRpYWxpemluZyBub2RlcyB3aGVyZSBhCiAgIC0tICB2YWx1ZSBvZiB6ZXJvIGNh biByZXByZXNlbnQgZWl0aGVyIGFuIGVtcHR5IG5vZGUgb3IgYW4gZW1wdHkgbGlzdC4KCiAgIEVy cm9yX0xpc3QgOiBjb25zdGFudCBMaXN0X0lkIDo9IExpc3RfTG93X0JvdW5kOwogICAtLSAgVXNl ZCB0byBpbmRpY2F0ZSB0aGF0IHRoZXJlIHdhcyBhbiBlcnJvciBpbiB0aGUgc291cmNlIHByb2dy YW0gaW4gYQogICAtLSAgY29udGV4dCB3aGljaCB3b3VsZCBub3JtYWxseSByZXF1aXJlIGEgbGlz dC4gVGhpcyBub2RlIGFwcGVhcnMgdG8gYmUKICAgLS0gIGFuIGVtcHR5IGxpc3QgdG8gdGhlIGxp c3Qgb3BlcmF0aW9ucyAoYSBudWxsIGxpc3QgaXMgYWN0dWFsbHkgYWxsb2NhdGVkCiAgIC0tICB3 aGljaCBoYXMgdGhpcyBJZCB2YWx1ZSkuCgogICBGaXJzdF9MaXN0X0lkIDogY29uc3RhbnQgTGlz dF9JZCA6PSBFcnJvcl9MaXN0OwogICAtLSAgU3Vic2NyaXB0IG9mIGZpcnN0IGFsbG9jYXRlZCBs aXN0IGhlYWRlcgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFR5cGVz IGZvciBFbGlzdHMgUGFja2FnZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgIC0tICBFbGVtZW50IGxpc3QgSWQgdmFsdWVzIGFyZSB1c2VkIHRvIGlkZW50aWZ5IGVsZW1l bnQgbGlzdHMgc3RvcmVkIGluCiAgIC0tICB0aGUgdHJlZSAoc2VlIHBhY2thZ2UgVHJlZSBmb3Ig ZnVydGhlciBkZXRhaWxzKS4gVGhleSBhcmUgZm9ybWVkIGJ5CiAgIC0tICBhZGRpbmcgYSBiaWFz IChFbGVtZW50X0xpc3RfQmlhcykgdG8gc3Vic2NyaXB0IHZhbHVlcyBpbiB0aGUgc2FtZQogICAt LSAgYXJyYXkgdGhhdCBpcyB1c2VkIGZvciBub2RlIGxpc3QgaGVhZGVycy4KCiAgIHR5cGUgRWxp c3RfSWQgaXMgcmFuZ2UgRWxpc3RfTG93X0JvdW5kIC4uIEVsaXN0X0hpZ2hfQm91bmQ7CiAgIC0t ICBUeXBlIHVzZWQgdG8gaWRlbnRpZnkgYW4gZWxlbWVudCBsaXN0IChFbGlzdCBoZWFkZXIgdGFi bGUgc3Vic2NyaXB0KQoKICAgTm9fRWxpc3QgOiBjb25zdGFudCBFbGlzdF9JZCA6PSBFbGlzdF9M b3dfQm91bmQ7CiAgIC0tICBVc2VkIHRvIGluZGljYXRlIGFic2Vuc2Ugb2YgYW4gZWxlbWVudCBs aXN0LiBOb3RlIHRoYXQgdGhpcyBpcyBub3QKICAgLS0gIGFuIGFjdHVhbCBFbGlzdCBoZWFkZXIs IHNvIGVsZW1lbnQgbGlzdCBvcGVyYXRpb25zIG9uIHRoaXMgdmFsdWUKICAgLS0gIGFyZSBub3Qg dmFsaWQuCgogICBGaXJzdF9FbGlzdF9JZCA6IGNvbnN0YW50IEVsaXN0X0lkIDo9IE5vX0VsaXN0 ICsgMTsKICAgLS0gIFN1YnNjcmlwdCBvZiBmaXJzdCBhbGxvY2F0ZWQgRWxpc3QgaGVhZGVyLgoK ICAgLS0gIEVsZW1lbnQgSWQgdmFsdWVzIGFyZSB1c2VkIHRvIGlkZW50aWZ5IGluZGl2aWR1YWwg ZWxlbWVudHMgb2YgYW4KICAgLS0gIGVsZW1lbnQgbGlzdCAoc2VlIHBhY2thZ2UgRWxpc3RzIGZv ciBmdXJ0aGVyIGRldGFpbHMpLgoKICAgdHlwZSBFbG10X0lkIGlzIHJhbmdlIEVsbXRfTG93X0Jv dW5kIC4uIEVsbXRfSGlnaF9Cb3VuZDsKICAgLS0gIFR5cGUgdXNlZCB0byBpZGVudGlmeSBhbiBl bGVtZW50IGxpc3QKCiAgIE5vX0VsbXQgOiBjb25zdGFudCBFbG10X0lkIDo9IEVsbXRfTG93X0Jv dW5kOwogICAtLSAgVXNlZCB0byByZXByZXNlbnQgZW1wdHkgZWxlbWVudAoKICAgRmlyc3RfRWxt dF9JZCA6IGNvbnN0YW50IEVsbXRfSWQgOj0gTm9fRWxtdCArIDE7CiAgIC0tICBTdWJzY3JpcHQg b2YgZmlyc3QgYWxsb2NhdGVkIEVsbXQgdGFibGUgZW50cnkKCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgLS0gVHlwZXMgZm9yIFN0cmluZ3QgUGFja2FnZSAtLQogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgU3RyaW5nX0lkIHZhbHVlcyBhcmUg dXNlZCB0byBpZGVudGlmeSBlbnRyaWVzIGluIHRoZSBzdHJpbmdzIHRhYmxlLgogICAtLSAgVGhl eSBhcmUgc3Vic2NyaXB0cyBpbnRvIHRoZSBzdHJpbmdzIHRhYmxlIGRlZmluZWQgaW4gcGFja2Fn ZSBTdHJpbmdzLgoKICAgLS0gIE5vdGUgdGhhdCB3aXRoIG9ubHkgYSBmZXcgZXhjZXB0aW9ucywg d2hpY2ggYXJlIGNsZWFybHkgZG9jdW1lbnRlZCwgdGhlCiAgIC0tICB0eXBlIFN0cmluZ19JZCBz aG91bGQgYmUgcmVnYXJkZWQgYXMgYSBwcml2YXRlIHR5cGUuIEluIHBhcnRpY3VsYXIgaXQgaXMK ICAgLS0gIG5ldmVyIGFwcHJvcHJpYXRlIHRvIHBlcmZvcm0gYXJpdGhtZXRpYyBvcGVyYXRpb25z IHVzaW5nIHRoaXMgdHlwZS4KCiAgIHR5cGUgU3RyaW5nX0lkIGlzIHJhbmdlIFN0cmluZ3NfTG93 X0JvdW5kIC4uIFN0cmluZ3NfSGlnaF9Cb3VuZDsKICAgLS0gIFR5cGUgdXNlZCB0byBpZGVudGlm eSBlbnRyaWVzIGluIHRoZSBzdHJpbmdzIHRhYmxlCgogICBOb19TdHJpbmcgOiBjb25zdGFudCBT dHJpbmdfSWQgOj0gU3RyaW5nc19Mb3dfQm91bmQ7CiAgIC0tICBVc2VkIHRvIGluZGljYXRlIG1p c3Npbmcgc3RyaW5nIElkLiBOb3RlIHRoYXQgdGhlIHZhbHVlIHplcm8gaXMgdXNlZAogICAtLSAg dG8gaW5kaWNhdGUgYSBtaXNzaW5nIGRhdGEgdmFsdWUgZm9yIGFsbCB0aGUgSW50IHR5cGVzIGlu IHRoaXMgc2VjdGlvbi4KCiAgIEZpcnN0X1N0cmluZ19JZCA6IGNvbnN0YW50IFN0cmluZ19JZCA6 PSBOb19TdHJpbmcgKyAxOwogICAtLSAgRmlyc3Qgc3Vic2NyaXB0IGFsbG9jYXRlZCBpbiBzdHJp bmcgdGFibGUKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ2hhcmFjdGVyIENv ZGUgVHlwZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIHR5cGUg Q2hhciBpcyB1c2VkIGZvciBjaGFyYWN0ZXIgZGF0YSBpbnRlcm5hbGx5IGluIHRoZSBjb21waWxl ciwKICAgLS0gIGJ1dCBjaGFyYWN0ZXIgY29kZXMgaW4gdGhlIHNvdXJjZSBhcmUgcmVwcmVzZW50 ZWQgYnkgdGhlIENoYXJfQ29kZQogICAtLSAgdHlwZS4gRWFjaCBjaGFyYWN0ZXIgbGl0ZXJhbCBp biB0aGUgc291cmNlIGlzIGludGVycHJldGVkIGFzIGJlaW5nIG9uZQogICAtLSAgb2YgdGhlIDIq KjE2IHBvc3NpYmxlIFdpZGVfQ2hhcmFjdGVyIGNvZGVzLCBhbmQgYSB1bmlxdWUgaW50ZWdlciB2 YWx1ZQogICAtLSAgaXMgYXNzaWduZWQsIGNvcnJlc3BvbmRpbmcgdG8gdGhlIFBPUyB2YWx1ZSBp biB0aGUgV2lkZV9DaGFyYWN0ZXIgdHlwZS4KICAgLS0gIFN0cmluZyBsaXRlcmFscyBhcmUgc2lt aWxhcmx5IGludGVycHJldGVkIGFzIGEgc2VxdWVuY2Ugb2Ygc3VjaCBjb2Rlcy4KCiAgIC0tICBO b3RlOiB3aGVuIGNoYXJhY3RlciBjb2RlIHZhbHVlcyBhcmUgc3RvcmVkIGluIHRoZSB0cmVlLCB0 aGV5IGFyZSBzdG9yZWQKICAgLS0gIGJ5IGFkZGluZyBhIGJpYXMgdmFsdWUgKENoYXJfQ29kZV9C aWFzKSB0aGF0IHJlc3VsdHMgaW4gdmFsdWVzIHRoYXQgY2FuCiAgIC0tICBiZSBkaXN0aW5ndWlz aGVkIGZyb20gb3RoZXIgdHlwZXMgb2YgdmFsdWVzIHN0b3JlZCBpbiB0aGUgdHJlZS4KCiAgIHR5 cGUgQ2hhcl9Db2RlIGlzIG1vZCAyICoqIDE2OwogICBmb3IgQ2hhcl9Db2RlJ1NpemUgdXNlIDE2 OwoKICAgZnVuY3Rpb24gR2V0X0NoYXJfQ29kZSAoQyA6IENoYXJhY3RlcikgcmV0dXJuIENoYXJf Q29kZTsKICAgcHJhZ21hIElubGluZSAoR2V0X0NoYXJfQ29kZSk7CiAgIC0tICBGdW5jdGlvbiB0 byBvYnRhaW4gaW50ZXJuYWwgY2hhcmFjdGVyIGNvZGUgZnJvbSBzb3VyY2UgY2hhcmFjdGVyLiBG b3IKICAgLS0gIHRoZSBtb21lbnQsIHRoZSBpbnRlcm5hbCBjaGFyYWN0ZXIgY29kZSBpcyBzaW1w bHkgdGhlIFBvcyB2YWx1ZSBvZiB0aGUKICAgLS0gIGlucHV0IHNvdXJjZSBjaGFyYWN0ZXIsIGJ1 dCB3ZSBwcm92aWRlIHRoaXMgaW50ZXJmYWNlIGZvciBwb3NzaWJsZQogICAtLSAgbGF0ZXIgc3Vw cG9ydCBvZiBhbHRlcm5hdGl2ZSBjaGFyYWN0ZXIgc2V0cy4KCiAgIGZ1bmN0aW9uIEluX0NoYXJh Y3Rlcl9SYW5nZSAoQyA6IENoYXJfQ29kZSkgcmV0dXJuIEJvb2xlYW47CiAgIHByYWdtYSBJbmxp bmUgKEluX0NoYXJhY3Rlcl9SYW5nZSk7CiAgIC0tICBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiBj aGFyYWN0ZXIgY29kZSBpcyBpbiByYW5nZSBvZiB0eXBlIENoYXJhY3RlciwKICAgLS0gIGFuZCBp ZiBzbywgcmV0dXJucyBUcnVlLiBJZiBub3QsIHJldHVybnMgRmFsc2UuCgogICBmdW5jdGlvbiBH ZXRfQ2hhcmFjdGVyIChDIDogQ2hhcl9Db2RlKSByZXR1cm4gQ2hhcmFjdGVyOwogICBwcmFnbWEg SW5saW5lIChHZXRfQ2hhcmFjdGVyKTsKICAgLS0gIEZvciBhIGNoYXJhY3RlciBDIHRoYXQgaXMg aW4gY2hhcmFjdGVyIHJhbmdlIChzZWUgYWJvdmUgZnVuY3Rpb24pLCB0aGlzCiAgIC0tICBmdW5j dGlvbiByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIENoYXJhY3RlciB2YWx1ZS4gSXQgaXMgYW4g ZXJyb3IgdG8KICAgLS0gIGNhbGwgR2V0X0NoYXJhY3RlciBpZiBDIGlzIG5vdCBpbiBjaGFyYWN0 ZXIgcmFuZ2UKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAt LSBUeXBlcyB1c2VkIGZvciBMaWJyYXJ5IE1hbmFnZW1lbnQgLS0KICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIFVuaXRfTnVtYmVyX1R5cGUgaXMgbmV3 IEludDsKICAgLS0gIFVuaXQgbnVtYmVyLiBUaGUgbWFpbiBzb3VyY2UgaXMgdW5pdCAwLCBhbmQg c3Vic2lkaWFyeSBzb3VyY2VzIGhhdmUKICAgLS0gIG5vbi16ZXJvIG51bWJlcnMgc3RhcnRpbmcg d2l0aCAxLiBVbml0IG51bWJlcnMgYXJlIHVzZWQgdG8gaW5kZXggdGhlCiAgIC0tICBmaWxlIHRh YmxlIGluIExpYi4KCiAgIE1haW5fVW5pdCA6IGNvbnN0YW50IFVuaXRfTnVtYmVyX1R5cGUgOj0g MDsKICAgLS0gIFVuaXQgbnVtYmVyIHZhbHVlIGZvciBtYWluIHVuaXQKCiAgIE5vX1VuaXQgOiBj b25zdGFudCBVbml0X051bWJlcl9UeXBlIDo9IC0xOwogICAtLSAgU3BlY2lhbCB2YWx1ZSB1c2Vk IHRvIHNpZ25hbCBubyB1bml0CgogICB0eXBlIFNvdXJjZV9GaWxlX0luZGV4IGlzIG5ldyBOYXQ7 CiAgIC0tICBUeXBlIHVzZWQgdG8gaW5kZXggdGhlIHNvdXJjZSBmaWxlIHRhYmxlIChzZWUgcGFj a2FnZSBTaW5wdXQpCgogICBOb19Tb3VyY2VfRmlsZSA6IGNvbnN0YW50IFNvdXJjZV9GaWxlX0lu ZGV4IDo9IDA7CiAgIC0tICBWYWx1ZSB1c2VkIHRvIGluZGljYXRlIG5vIHNvdXJjZSBmaWxlIHBy ZXNlbnQKCiAgIFN5c3RlbV9Tb3VyY2VfRmlsZV9JbmRleCA6IGNvbnN0YW50IFNvdXJjZV9GaWxl X0luZGV4IDo9IDE7CiAgIC0tICBWYWx1ZSB1c2VkIGZvciBzb3VyY2UgZmlsZSB0YWJsZSBlbnRy eSBmb3Igc3lzdGVtLmFkcywgd2hpY2ggaXMKICAgLS0gIGFsd2F5cyB0aGUgZmlyc3Qgc291cmNl IGZpbGUgcmVhZCAoc2VlIHVuaXQgVGFyZ3Bhcm0gZm9yIGRldGFpbHMpLgoKICAgc3VidHlwZSBG aWxlX05hbWVfVHlwZSBpcyBOYW1lX0lkOwogICAtLSAgRmlsZSBuYW1lcyBhcmUgc3RvcmVkIGlu IHRoZSBuYW1lcyB0YWJsZSBhbmQgdGhpcyBzeW5vbnltIGlzIHVzZWQgdG8KICAgLS0gIGluZGlj YXRlIHRoYXQgYSBOYW1lX0lkIHZhbHVlIGlzIGJlaW5nIHVzZWQgdG8gaG9sZCBhIHNpbXBsZSBm aWxlCiAgIC0tICBuYW1lICh3aGljaCBkb2VzIG5vdCBpbmNsdWRlIGFueSBkaXJlY3RvcnkgaW5m b3JtYXRpb24pLgoKICAgTm9fRmlsZSA6IGNvbnN0YW50IEZpbGVfTmFtZV9UeXBlIDo9IEZpbGVf TmFtZV9UeXBlIChOb19OYW1lKTsKICAgLS0gIENvbnN0YW50IHVzZWQgdG8gaW5kaWNhdGUgbm8g ZmlsZSBmb3VuZAoKICAgc3VidHlwZSBVbml0X05hbWVfVHlwZSBpcyBOYW1lX0lkOwogICAtLSAg VW5pdCBuYW1lcyBhcmUgc3RvcmVkIGluIHRoZSBuYW1lcyB0YWJsZSBhbmQgdGhpcyBzeW5vbnlt IGlzIHVzZWQgdG8KICAgLS0gIGluZGljYXRlIHRoYXQgYSBOYW1lX0lkIHZhbHVlIGlzIGJlaW5n IHVzZWQgdG8gaG9sZCBhIHVuaXQgbmFtZS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIFJlcHJlc2VudGF0aW9uIG9mIFRpbWUgU3RhbXBzIC0tCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgQWxsIGNvbXBpbGVkIHVuaXRz IGFyZSBtYXJrZWQgd2l0aCBhIHRpbWUgc3RhbXAgd2hpY2ggaXMgZGVyaXZlZCBmcm9tCiAgIC0t ICB0aGUgc291cmNlIGZpbGUgKHdlIGFzc3VtZSB0aGF0IHRoZSBob3N0IHN5c3RlbSBoYXMgdGhl IGNvbmNlcHQgb2YgYQogICAtLSAgZmlsZSB0aW1lIHN0YW1wIHdoaWNoIGlzIG1vZGlmaWVkIHdo ZW4gYSBmaWxlIGlzIG1vZGlmaWVkKS4gVGhlc2UKICAgLS0gIHRpbWUgc3RhbXBzIGFyZSB1c2Vk IHRvIGVuc3VyZSBjb25zaXN0ZW5jeSBvZiB0aGUgc2V0IG9mIHVuaXRzIHRoYXQKICAgLS0gIGNv bnN0aXR1dGVzIGEgbGlicmFyeS4gVGltZSBzdGFtcHMgYXJlIDEyIGNoYXJhY3RlciBzdHJpbmdz IHdpdGgKICAgLS0gIHdpdGggdGhlIGZvbGxvd2luZyBmb3JtYXQ6CgogICAtLSAgICAgWVlZWU1N RERISE1NU1MKCiAgIC0tICAgICAgIFlZWVkgICB5ZWFyCiAgIC0tICAgICAgIE1NICAgICBtb250 aCAoMiBkaWdpdHMgMDEtMTIpCiAgIC0tICAgICAgIEREICAgICBkYXkgKDIgZGlnaXRzIDAxLTMx KQogICAtLSAgICAgICBISCAgICAgaG91ciAoMiBkaWdpdHMgMDAtMjMpCiAgIC0tICAgICAgIE1N ICAgICBtaW51dGVzICgyIGRpZ2l0cyAwMC01OSkKICAgLS0gICAgICAgU1MgICAgIHNlY29uZHMg KDIgZGlnaXRzIDAwLTU5KQoKICAgLS0gIEluIHRoZSBjYXNlIG9mIFVuaXggc3lzdGVtcyAoYW5k IG90aGVyIHN5c3RlbXMgd2hpY2gga2VlcCB0aGUgdGltZSBpbgogICAtLSAgR01UKSwgdGhlIHRp bWUgc3RhbXAgaXMgdGhlIEdNVCB0aW1lIG9mIHRoZSBmaWxlLCBub3QgdGhlIGxvY2FsIHRpbWUu CiAgIC0tICBUaGlzIHNvbHZlcyBwcm9ibGVtcyBpbiB1c2luZyBsaWJyYXJpZXMgYWNyb3NzIG5l dHdvcmtzIHdpdGggY2xpZW50cwogICAtLSAgc3ByZWFkIGFjcm9zcyBtdWx0aXBsZSB0aW1lLXpv bmVzLgoKICAgVGltZV9TdGFtcF9MZW5ndGggOiBjb25zdGFudCA6PSAxNDsKICAgLS0gIExlbmd0 aCBvZiB0aW1lIHN0YW1wIHZhbHVlCgogICBzdWJ0eXBlIFRpbWVfU3RhbXBfSW5kZXggaXMgTmF0 dXJhbCByYW5nZSAxIC4uIFRpbWVfU3RhbXBfTGVuZ3RoOwogICB0eXBlIFRpbWVfU3RhbXBfVHlw ZSBpcyBuZXcgU3RyaW5nIChUaW1lX1N0YW1wX0luZGV4KTsKICAgLS0gIFR5cGUgdXNlZCB0byBy ZXByZXNlbnQgdGltZSBzdGFtcAoKICAgRW1wdHlfVGltZV9TdGFtcCA6IGNvbnN0YW50IFRpbWVf U3RhbXBfVHlwZSA6PSAob3RoZXJzID0+ICcgJyk7CiAgIC0tICBUeXBlIHVzZWQgdG8gcmVwcmVz ZW50IGFuIGVtcHR5IG9yIG1pc3NpbmcgdGltZSBzdGFtcC4gTG9va3MgbGVzcwogICAtLSAgdGhh biBhbnkgcmVhbCB0aW1lIHN0YW1wIGlmIHR3byB0aW1lIHN0YW1wcyBhcmUgY29tcGFyZWQuIE5v dGUgdGhhdAogICAtLSAgYWx0aG91Z2ggdGhpcyBpcyBub3QgYSBwcml2YXRlIHR5cGUsIGNsaWVu dHMgc2hvdWxkIG5vdCByZWx5IG9uIHRoZQogICAtLSAgZXhhY3Qgd2F5IGluIHdoaWNoIHRoaXMg c3RyaW5nIGlzIHJlcHJlc2VudGVkLCBhbmQgaW5zdGVhZCBzaG91bGQKICAgLS0gIHVzZSB0aGUg c3VicHJvZ3JhbXMgYmVsb3cuCgogICBEdW1teV9UaW1lX1N0YW1wIDogY29uc3RhbnQgVGltZV9T dGFtcF9UeXBlIDo9IChvdGhlcnMgPT4gJzAnKTsKICAgLS0gIFRoaXMgaXMgdXNlZCBmb3IgZHVt bXkgdGltZSBzdGFtcCB2YWx1ZXMgdXNlZCBpbiB0aGUgRCBsaW5lcyBmb3IKICAgLS0gIG5vbi1l eGlzdGFudCBmaWxlcywgYW5kIGlzIGludGVuZGVkIHRvIGJlIGFuIGltcG9zc2libGUgdmFsdWUu CgogICBmdW5jdGlvbiAiPSIgIChMZWZ0LCBSaWdodCA6IFRpbWVfU3RhbXBfVHlwZSkgcmV0dXJu IEJvb2xlYW47CiAgIGZ1bmN0aW9uICI8PSIgKExlZnQsIFJpZ2h0IDogVGltZV9TdGFtcF9UeXBl KSByZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24gIj49IiAoTGVmdCwgUmlnaHQgOiBUaW1lX1N0 YW1wX1R5cGUpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiAiPCIgIChMZWZ0LCBSaWdodCA6 IFRpbWVfU3RhbXBfVHlwZSkgcmV0dXJuIEJvb2xlYW47CiAgIGZ1bmN0aW9uICI+IiAgKExlZnQs IFJpZ2h0IDogVGltZV9TdGFtcF9UeXBlKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIENvbXBhcmlz b24gZnVuY3Rpb25zIG9uIHRpbWUgc3RhbXBzLiBOb3RlIHRoYXQgdHdvIHRpbWUgc3RhbXBzCiAg IC0tICBhcmUgZGVmaW5lZCBhcyBiZWluZyBlcXVhbCBpZiB0aGV5IGhhdmUgdGhlIHNhbWUgZGF5 L21vbnRoL3llYXIKICAgLS0gIGFuZCB0aGUgaG91ci9taW51dGVzL3NlY29uZHMgdmFsdWVzIGFy ZSB3aXRoaW4gMiBzZWNvbmRzIG9mIG9uZQogICAtLSAgYW5vdGhlci4gVGhpcyBkZWFscyB3aXRo IHJvdW5kaW5nIGVmZmVjdHMgaW4gbGlicmFyeSBmaWxlIHRpbWUKICAgLS0gIHN0YW1wcyBjYXVz ZWQgYnkgY29weWluZyBvcGVyYXRpb25zIGR1cmluZyBpbnN0YWxsYXRpb24uIFdlIGhhdmUKICAg LS0gIHBhcnRpY3VsYXJseSBub3RpY2VkIHRoYXQgV2luTlQgc2VlbXMgc3VzY2VwdGlibGUgdG8g c3VjaCBjaGFuZ2VzLgogICAtLSAgTm90ZTogdGhlIEVtcHR5X1RpbWVfU3RhbXAgdmFsdWUgbG9v a3MgZXF1YWwgdG8gaXRzZWxmLCBhbmQgbGVzcwogICAtLSAgdGhhbiBhbnkgbm9uLWVtcHR5IHRp bWUgc3RhbXAgdmFsdWUuCgogICBwcm9jZWR1cmUgU3BsaXRfVGltZV9TdGFtcAogICAgIChUUyAg ICAgIDogVGltZV9TdGFtcF9UeXBlOwogICAgICBZZWFyICAgIDogb3V0IE5hdDsKICAgICAgTW9u dGggICA6IG91dCBOYXQ7CiAgICAgIERheSAgICAgOiBvdXQgTmF0OwogICAgICBIb3VyICAgIDog b3V0IE5hdDsKICAgICAgTWludXRlcyA6IG91dCBOYXQ7CiAgICAgIFNlY29uZHMgOiBvdXQgTmF0 KTsKICAgLS0gIEdpdmVuIGEgdGltZSBzdGFtcCwgZGVjb21wb3NlIGl0IGludG8gaXRzIGNvbXBv bmVudHMKCiAgIHByb2NlZHVyZSBNYWtlX1RpbWVfU3RhbXAKICAgICAoWWVhciAgICA6IE5hdDsK ICAgICAgTW9udGggICA6IE5hdDsKICAgICAgRGF5ICAgICA6IE5hdDsKICAgICAgSG91ciAgICA6 IE5hdDsKICAgICAgTWludXRlcyA6IE5hdDsKICAgICAgU2Vjb25kcyA6IE5hdDsKICAgICAgVFMg ICAgICA6IG91dCBUaW1lX1N0YW1wX1R5cGUpOwogICAtLSAgR2l2ZW4gdGhlIGNvbXBvbmVudHMg b2YgYSB0aW1lIHN0YW1wLCBpbml0aWFsaXplIHRoZSB2YWx1ZQoKICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gVHlwZXMgdXNlZCBmb3IgUHJh Z21hIFN1cHByZXNzIE1hbmFnZW1lbnQgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGUgZm9sbG93aW5nIHJlY29yZCBjb250YWlu cyBhbiBlbnRyeSBmb3IgZWFjaCByZWNvZ25pemVkIGNoZWNrIG5hbWUKICAgLS0gIGZvciBwcmFn bWEgU3VwcHJlc3MuIEl0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGN1cnJlbnQgc2V0dGluZ3Mgb2Yg c2NvcGUKICAgLS0gIGJhc2VkIHN1cHByZXNzIGFjdGlvbnMgZnJvbSBwcmFnbWEgU3VwcHJlc3Mg b3IgY29tbWFuZCBsaW5lIHNldHRpbmdzLgoKICAgdHlwZSBTdXBwcmVzc19SZWNvcmQgaXMgcmVj b3JkCiAgICAgIEFjY2Vzc19DaGVja3MgICAgICAgIDogQm9vbGVhbjsKICAgICAgQWNjZXNzaWJp bGl0eV9DaGVja3MgOiBCb29sZWFuOwogICAgICBEaXNjcmltaW5hbnRfQ2hlY2tzICA6IEJvb2xl YW47CiAgICAgIERpdmlzaW9uX0NoZWNrcyAgICAgIDogQm9vbGVhbjsKICAgICAgRWxhYm9yYXRp b25fQ2hlY2tzICAgOiBCb29sZWFuOwogICAgICBJbmRleF9DaGVja3MgICAgICAgICA6IEJvb2xl YW47CiAgICAgIExlbmd0aF9DaGVja3MgICAgICAgIDogQm9vbGVhbjsKICAgICAgT3ZlcmZsb3df Q2hlY2tzICAgICAgOiBCb29sZWFuOwogICAgICBSYW5nZV9DaGVja3MgICAgICAgICA6IEJvb2xl YW47CiAgICAgIFN0b3JhZ2VfQ2hlY2tzICAgICAgIDogQm9vbGVhbjsKICAgICAgVGFnX0NoZWNr cyAgICAgICAgICAgOiBCb29sZWFuOwogICBlbmQgcmVjb3JkOwoKICAgLS0gIFRvIGFkZCBhIG5l dyBjaGVjayB0eXBlIHRvIEdOQVQsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIHJlcXVpcmVkOgoK ICAgLS0gICAgMS4gIEFkZCBhbiBhcHByb3ByaWF0ZSBlbnRyeSB0byB0aGUgYWJvdmUgcmVjb3Jk IHR5cGUKICAgLS0gICAgMi4gIEFkZCBhbiBlbnRyeSB0byBTbmFtZXMgc3BlYyBhbmQgYm9keSBm b3IgdGhlIG5ldyBuYW1lCiAgIC0tICAgIDMuICBBZGQgYW4gZW50cnkgdG8gdGhlIGRlZmluaXRp b24gb2YgQ2hlY2tfSWQgaW4gdGhlIFNuYW1lcyBzcGVjCiAgIC0tICAgIDQuICBBZGQgYSBuZXcg ZW50aXR5IGZsYWcgZGVmaW5pdGlvbiBpbiBFaW5mbyBmb3IgdGhlIGNoZWNrCiAgIC0tICAgIDUu ICBBZGQgYSBuZXcgZnVuY3Rpb24gdG8gU2VtLlV0aWwgdG8gaGFuZGxlIHRoZSBuZXcgY2hlY2sg dGVzdAogICAtLSAgICA2LiAgQWRkIGFwcHJvcHJpYXRlIHByb2Nlc3NpbmcgZm9yIHByYWdtYSBT dXBwcmVzcyBpbiBTZW0uUHJhZwogICAtLSAgICA3LiAgQWRkIGEgYnJhbmNoIHRvIHRoZSBjYXNl IHN0YXRlbWVudCBpbiBTZW0uQ2g4LlBvcF9TY29wZQogICAtLSAgICA4LiAgQWRkIGEgbmV3IERv X3h4eF9DaGVjayBmbGFnIHRvIFNpbmZvIChpZiByZXF1aXJlZCkKICAgLS0gICAgOS4gIEFkZCBh cHByb3ByaWF0ZSBjaGVja3MgZm9yIHRoZSBuZXcgdGVzdAoKICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2xvYmFsIEV4Y2VwdGlvbiBEZWNsYXJhdGlvbnMgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGlzIHNlY3Rp b24gY29udGFpbnMgZGVjbGFyYXRpb25zIG9mIGV4Y2VwdGlvbnMgdGhhdCBhcmUgdXNlZAogICAt LSAgdGhyb3VnaG91dCB0aGUgY29tcGlsZXIuCgogICBVbnJlY292ZXJhYmxlX0Vycm9yIDogZXhj ZXB0aW9uOwogICAtLSAgVGhpcyBleGNlcHRpb24gaXMgcmFpc2VkIHRvIGltbWVkaWF0ZWx5IHRl cm1pbmF0ZSB0aGUgY29tcGlsYXRpb24KICAgLS0gIG9mIHRoZSBjdXJyZW50IHNvdXJjZSBwcm9n cmFtLiBVc2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhpbmdzIGFyZQogICAtLSAgYmFkIGVub3Vn aCB0aGF0IGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aCBjb250aW51aW5nIChlLmcuIG1heCBlcnJvcnMK ICAgLS0gIHJlYWNoZWQsIG9yIGEgcmVxdWlyZWQgZmlsZSBpcyBub3QgZm91bmQpLiBBbHNvIHJh aXNlZCB3aGVuIHRoZQogICAtLSAgY29tcGlsZXIgZmluZHMgaXRzZWxmIGluIHRyb3VibGUgYWZ0 ZXIgYW4gZXJyb3IgKHNlZSBDb21wZXJyKS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAtLSBQYXJhbWV0ZXIgTWVjaGFuaXNtIENvbnRyb2wgLS0KICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgRnVuY3Rpb24gYW5kIHBhcmFtZXRlciBl bnRpdGllcyBoYXZlIGEgZmllbGQgdGhhdCByZWNvcmRzIHRoZQogICAtLSAgcGFzc2luZyBtZWNo YW5pc20uIFNlZSBzcGVjaWZpY2F0aW9uIG9mIFNlbV9NZWNoIGZvciBmdWxsIGRldGFpbHMuCiAg IC0tICBUaGUgZm9sbG93aW5nIHN1YnR5cGUgaXMgdXNlZCB0byByZXByZXNlbnQgdmFsdWVzIG9m IHRoaXMgdHlwZToKCiAgIHN1YnR5cGUgTWVjaGFuaXNtX1R5cGUgaXMgSW50IHJhbmdlIC0xMCAu LiBJbnQnTGFzdDsKICAgLS0gIFR5cGUgdXNlZCB0byByZXByZXNlbnQgYSBtZWNoYW5pc20gdmFs dWUuIFRoaXMgaXMgYSBzdWJ0eXBlIHJhdGhlcgogICAtLSAgdGhhbiBhIHR5cGUgdG8gYXZvaWQg c29tZSBhbm5veWluZyBwcm9jZXNzaW5nIHByb2JsZW1zIHdpdGggY2VydGFpbgogICAtLSAgcm91 dGluZXMgaW4gRWluZm8gKHByb2Nlc3NpbmcgdGhlbSB0byBjcmVhdGUgdGhlIGNvcnJlc3BvbmRp bmcgQykuCgplbmQgVHlwZXM7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgR05BVCBDT01QSUxFUiBDT01QT05FTlRT ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQSBUIFIgRSBFICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUyBwIGUgYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJl dmlzaW9uOiAxLjEuMTYuMSAkCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICBDb3B5 cmlnaHQgKEMpIDE5OTItMjAwMSwgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAg ICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgaXMgZnJlZSBzb2Z0d2FyZTsgIHlv dSBjYW4gIHJlZGlzdHJpYnV0ZSBpdCAgYW5kL29yIG1vZGlmeSBpdCB1bmRlciAtLQotLSB0ZXJt cyBvZiB0aGUgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCAgYnkgdGhl IEZyZWUgU29mdC0gLS0KLS0gd2FyZSAgRm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIsICBv ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXItIC0tCi0tIHNpb24uICBHTkFUIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRILSAt LQotLSBPVVQgQU5ZIFdBUlJBTlRZOyAgd2l0aG91dCBldmVuIHRoZSAgaW1wbGllZCB3YXJyYW50 eSBvZiBNRVJDSEFOVEFCSUxJVFkgLS0KLS0gb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIC0tCi0tIGZvciAgbW9y ZSBkZXRhaWxzLiAgWW91IHNob3VsZCBoYXZlICByZWNlaXZlZCAgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCAtLQotLSBQdWJsaWMgTGljZW5zZSAgZGlzdHJpYnV0ZWQgd2l0aCBHTkFUOyAgc2Vl IGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgLS0KLS0gdG8gIHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sICA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsICBCb3N0b24sIC0tCi0t IE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFs IGV4Y2VwdGlvbiwgIGlmIG90aGVyIGZpbGVzICBpbnN0YW50aWF0ZSAgZ2VuZXJpY3MgZnJvbSB0 aGlzIC0tCi0tIHVuaXQsIG9yIHlvdSBsaW5rICB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyAg dG8gcHJvZHVjZSBhbiBleGVjdXRhYmxlLCAtLQotLSB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkg aXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICBleGVjdXRhYmxlICB0byAgYmUgLS0KLS0gY292 ZXJlZCAgYnkgdGhlICBHTlUgIEdlbmVyYWwgIFB1YmxpYyAgTGljZW5zZS4gIFRoaXMgZXhjZXB0 aW9uIGRvZXMgbm90IC0tCi0tIGhvd2V2ZXIgaW52YWxpZGF0ZSAgYW55IG90aGVyIHJlYXNvbnMg d2h5ICB0aGUgZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSAtLQotLSBjb3ZlcmVkIGJ5IHRoZSAg R05VIFB1YmxpYyBMaWNlbnNlLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVk ICBieSB0aGUgR05BVCB0ZWFtIGF0ICBOZXcgWW9yayBVbml2ZXJzaXR5LiAtLQotLSBFeHRlbnNp dmUgY29udHJpYnV0aW9ucyB3ZXJlIHByb3ZpZGVkIGJ5IEFkYSBDb3JlIFRlY2hub2xvZ2llcyBJ bmMuICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK d2l0aCBBbGxvYzsKd2l0aCBTaW5mbzsgIHVzZSBTaW5mbzsKd2l0aCBFaW5mbzsgIHVzZSBFaW5m bzsKd2l0aCBUeXBlczsgIHVzZSBUeXBlczsKd2l0aCBTbmFtZXM7IHVzZSBTbmFtZXM7CndpdGgg U3lzdGVtOyB1c2UgU3lzdGVtOwp3aXRoIFRhYmxlOwp3aXRoIFVpbnRwOyAgdXNlIFVpbnRwOwp3 aXRoIFVyZWFscDsgdXNlIFVyZWFscDsKd2l0aCBVbmNoZWNrZWRfQ29udmVyc2lvbjsKCnBhY2th Z2UgQXRyZWUgaXMKCi0tICBUaGlzIHBhY2thZ2UgZGVmaW5lcyB0aGUgZm9ybWF0IG9mIHRoZSB0 cmVlIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBBZGEKLS0gIHByb2dyYW0gaW50ZXJuYWxseS4gU3lu dGFjdGljIGFuZCBzZW1hbnRpYyBpbmZvcm1hdGlvbiBpcyBjb21iaW5lZCBpbgotLSAgdGhpcyB0 cmVlLiBUaGVyZSBpcyBubyBzZXBhcmF0ZSBzeW1ib2wgdGFibGUgc3RydWN0dXJlLgoKLS0gIFdB Uk5JTkc6IFRoZXJlIGlzIGEgQyB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gQW55IGNoYW5nZXMg dG8gdGhpcwotLSAgc291cmNlIGZpbGUgbXVzdCBiZSBwcm9wZXJseSByZWZsZWN0ZWQgaW4gdGhl IEMgaGVhZGVyIGZpbGUgdHJlZS5oCgotLSAgUGFja2FnZSBBdHJlZSBkZWZpbmVzIHRoZSBiYXNp YyBzdHJ1Y3R1cmUgb2YgdGhlIHRyZWUgYW5kIGl0cyBub2RlcyBhbmQKLS0gIHByb3ZpZGVzIHRo ZSBiYXNpYyBhYnN0cmFjdCBpbnRlcmZhY2UgZm9yIG1hbmlwdWxhdGluZyB0aGUgdHJlZS4gVHdv Ci0tICBvdGhlciBwYWNrYWdlcyB1c2UgdGhpcyBpbnRlcmZhY2UgdG8gZGVmaW5lIHRoZSByZXBy ZXNlbnRhdGlvbiBvZiBBZGEKLS0gIHByb2dyYW1zIHVzaW5nIHRoaXMgdHJlZSBmb3JtYXQuIFRo ZSBwYWNrYWdlIFNpbmZvIGRlZmluZXMgdGhlIGJhc2ljCi0tICByZXByZXNlbnRhdGlvbiBvZiB0 aGUgc3ludGFjdGljIHN0cnVjdHVyZSBvZiB0aGUgcHJvZ3JhbSwgYXMgb3V0cHV0Ci0tICBieSB0 aGUgcGFyc2VyLiBUaGUgcGFja2FnZSBFbnRpdHlfSW5mbyBkZWZpbmVzIHRoZSBzZW1hbnRpYyBp bmZvcm1hdGlvbgotLSAgd2hpY2ggaXMgYWRkZWQgdG8gdGhlIHRyZWUgbm9kZXMgdGhhdCByZXBy ZXNlbnQgZGVjbGFyZWQgZW50aXRpZXMgKGkuZS4KLS0gIHRoZSBpbmZvcm1hdGlvbiB3aGljaCBt aWdodCB0eXBpY2FsbHkgYmUgZGVzY3JpYmVkIGluIGEgc2VwYXJhdGUgc3ltYm9sCi0tICB0YWJs ZSBzdHJ1Y3R1cmUuCgotLSAgVGhlIGZyb250IGVuZCBvZiB0aGUgY29tcGlsZXIgZmlyc3QgcGFy c2VzIHRoZSBwcm9ncmFtIGFuZCBnZW5lcmF0ZXMgYQotLSAgdHJlZSB0aGF0IGlzIHNpbXBseSBh IHN5bnRhY3RpYyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcHJvZ3JhbSBpbiBhYnN0cmFjdAotLSAg c3ludGF4IHRyZWUgZm9ybWF0LiBTdWJzZXF1ZW50IHByb2Nlc3NpbmcgaW4gdGhlIGZyb250IGVu ZCB0cmF2ZXJzZXMgdGhlCi0tICB0cmVlLCB0cmFuc2Zvcm1pbmcgaXQgaW4gdmFyaW91cyB3YXlz IGFuZCBhZGRpbmcgc2VtYW50aWMgaW5mb3JtYXRpb24uCgogICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIERlZmluaXRpb25zIG9mIEZpZWxkcyBpbiBUcmVl IE5vZGUgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg LS0gIFRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgdHJlZSBpcyBjb21wbGV0ZWx5IGhpZGRlbiwg dXNpbmcgYSBmdW5jdGlvbmFsCiAgIC0tICBpbnRlcmZhY2UgZm9yIGFjY2Vzc2luZyBhbmQgbW9k aWZ5aW5nIHRoZSBjb250ZW50cyBvZiBub2Rlcy4gTG9naWNhbGx5CiAgIC0tICBhIG5vZGUgY29u dGFpbnMgYSBudW1iZXIgb2YgZmllbGRzLCBtdWNoIGFzIHRob3VnaCB0aGUgbm9kZXMgd2VyZQog ICAtLSAgZGVmaW5lZCBhcyBhIHJlY29yZCB0eXBlLiBUaGUgZmllbGRzIGluIGEgbm9kZSBhcmUg YXMgZm9sbG93czoKCiAgIC0tICAgTmtpbmQgICAgICAgICAgICBJbmRpY2F0ZXMgdGhlIGtpbmQg b2YgdGhlIG5vZGUuIFRoaXMgZmllbGQgaXMgcHJlc2VudAogICAtLSAgICAgICAgICAgICAgICAg ICAgaW4gYWxsIG5vZGVzLiBUaGUgdHlwZSBpcyBOb2RlX0tpbmQsIHdoaWNoIGlzIGRlY2xhcmVk CiAgIC0tICAgICAgICAgICAgICAgICAgICBpbiB0aGUgcGFja2FnZSBTaW5mby4KCiAgIC0tICAg U2xvYyAgICAgICAgICAgICBMb2NhdGlvbiAoU291cmNlX1B0cikgb2YgdGhlIGNvcnJlc3BvbmRp bmcgdG9rZW4KICAgLS0gICAgICAgICAgICAgICAgICAgIGluIHRoZSBTb3VyY2UgYnVmZmVyLiBU aGUgaW5kaXZpZHVhbCBub2RlIGRlZmluaXRpb25zCiAgIC0tICAgICAgICAgICAgICAgICAgICBz aG93IHdoaWNoIHRva2VuIGlzIHJlZmVyZW5jZWQgYnkgdGhpcyBwb2ludGVyLgoKICAgLS0gICBJ bl9MaXN0ICAgICAgICAgIEEgZmxhZyB1c2VkIHRvIGluZGljYXRlIGlmIHRoZSBub2RlIGlzIGEg bWVtYmVyCiAgIC0tICAgICAgICAgICAgICAgICAgICBvZiBhIG5vZGUgbGlzdC4KCiAgIC0tICAg UmV3cml0ZV9TdWIgICAgICBBIGZsYWcgc2V0IGlmIHRoZSBub2RlIGhhcyBiZWVuIHJld3JpdHRl biB1c2luZwogICAtLSAgICAgICAgICAgICAgICAgICAgdGhlIFJld3JpdGUgcHJvY2VkdXJlLiBU aGUgb3JpZ2luYWwgdmFsdWUgb2YgdGhlCiAgIC0tICAgICAgICAgICAgICAgICAgICBub2RlIGlz IHJldHJpZXZhYmxlIHdpdGggT3JpZ2luYWxfTm9kZS4KCiAgIC0tICAgUmV3cml0ZV9JbnMgICAg ICBBIGZsYWcgc2V0IGlmIGEgbm9kZSBpcyBtYXJrZWQgYXMgYSByZXdyaXRlIGluc2VydGVkCiAg IC0tICAgICAgICAgICAgICAgICAgICBub2RlIGFzIGEgcmVzdWx0IG9mIGEgY2FsbCB0byBNYXJr X1Jld3JpdGVfSW5zZXJ0aW9uLgoKICAgLS0gICBQYXJlbl9Db3VudCAgICAgIEEgMi1iaXQgY291 bnQgdXNlZCBvbiBleHByZXNzaW9uIG5vZGVzIHRvIGluZGljYXRlCiAgIC0tICAgICAgICAgICAg ICAgICAgICB0aGUgbGV2ZWwgb2YgcGFyZW50aGVzZXMuIFVwIHRvIDMgbGV2ZWxzIGNhbiBiZQog ICAtLSAgICAgICAgICAgICAgICAgICAgYWNjb21vZGF0ZWQuIEFueXRoaW5nIG1vcmUgdGhhbiAz IGxldmVscyBpcyB0cmVhdGVkCiAgIC0tICAgICAgICAgICAgICAgICAgICBhcyAzIGxldmVscyAo Y29uZm9ybWFuY2UgdGVzdHMgdGhhdCBjb21wbGFpbiBhYm91dAogICAtLSAgICAgICAgICAgICAg ICAgICAgdGhpcyBhcmUgaGVyZWJ5IGRlZW1lZCBwYXRob2xvZ2ljYWwhKSBTZXQgdG8gemVybwog ICAtLSAgICAgICAgICAgICAgICAgICAgZm9yIG5vbi1zdWJleHByZXNzaW9uIG5vZGVzLgoKICAg LS0gICBDb21lc19Gcm9tX1NvdXJjZQogICAtLSAgICAgICAgICAgICAgICAgICAgVGhpcyBmbGFn IGlzIHByZXNlbnQgaW4gYWxsIG5vZGVzLiBJdCBpcyBzZXQgaWYgdGhlCiAgIC0tICAgICAgICAg ICAgICAgICAgICBub2RlIGlzIGJ1aWx0IGJ5IHRoZSBzY2FubmVyIG9yIHBhcnNlciwgYW5kIGNs ZWFyIGlmCiAgIC0tICAgICAgICAgICAgICAgICAgICB0aGUgbm9kZSBpcyBidWlsdCBieSB0aGUg YW5hbHl6ZXIgb3IgZXhwYW5kZXIuIEl0CiAgIC0tICAgICAgICAgICAgICAgICAgICBpbmRpY2F0 ZXMgdGhhdCB0aGUgbm9kZSBjb3JyZXNwb25kcyB0byBhIGNvbnN0cnVjdAogICAtLSAgICAgICAg ICAgICAgICAgICAgdGhhdCBhcHBlYXJzIGluIHRoZSBvcmlnaW5hbCBzb3VyY2UgcHJvZ3JhbS4K CiAgIC0tICAgQW5hbHl6ZWQgICAgICAgICBUaGlzIGZsYWcgaXMgcHJlc2VudCBpbiBhbGwgbm9k ZXMuIEl0IGlzIHNldCB3aGVuCiAgIC0tICAgICAgICAgICAgICAgICAgICBhIG5vZGUgaXMgYW5h bHl6ZWQsIGFuZCBpcyB1c2VkIHRvIGF2b2lkIGFuYWx5emluZwogICAtLSAgICAgICAgICAgICAg ICAgICAgdGhlIHNhbWUgbm9kZSB0d2ljZS4gQW5hbHlzaXMgaW5jbHVkZXMgZXhwYW5zaW9uIGlm CiAgIC0tICAgICAgICAgICAgICAgICAgICBleHBhbnNpb24gaXMgYWN0aXZlLCBzbyBpbiB0aGlz IGNhc2UgaWYgdGhlIGZsYWcgaXMKICAgLS0gICAgICAgICAgICAgICAgICAgIHNldCBpdCBtZWFu cyB0aGUgbm9kZSBoYXMgYmVlbiBhbmFseXplZCBhbmQgZXhwYW5kZWQuCgogICAtLSAgIEVycm9y X1Bvc3RlZCAgICAgVGhpcyBmbGFnIGlzIHByZXNlbnQgaW4gYWxsIG5vZGVzLiBJdCBpcyBzZXQg d2hlbgogICAtLSAgICAgICAgICAgICAgICAgICAgYW4gZXJyb3IgbWVzc2FnZSBpcyBwb3N0ZWQg d2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoCiAgIC0tICAgICAgICAgICAgICAgICAgICB0aGUgZmxh Z2dlZCBub2RlLiBUaGlzIGlzIHVzZWQgdG8gYXZvaWQgcG9zdGluZyBtb3JlCiAgIC0tICAgICAg ICAgICAgICAgICAgICB0aGFuIG9uZSBtZXNzYWdlIG9uIHRoZSBzYW1lIG5vZGUuCgogICAtLSAg IEZpZWxkMQogICAtLSAgIEZpZWxkMgogICAtLSAgIEZpZWxkMwogICAtLSAgIEZpZWxkNAogICAt LSAgIEZpZWxkNSAgICAgICAgICAgRml2ZSBmaWVsZHMgaG9sZGluZyBVbmlvbl9JZCB2YWx1ZXMK CiAgIC0tICAgQ2hhcl9Db2RlTiAgICAgICBTeW5vbnltIGZvciBGaWVsZE4gdHlwZWQgYXMgQ2hh cl9Db2RlCiAgIC0tICAgRWxpc3ROICAgICAgICAgICBTeW5vbnltIGZvciBGaWVsZE4gdHlwZWQg YXMgRWxpc3RfSWQKICAgLS0gICBMaXN0TiAgICAgICAgICAgIFN5bm9ueW0gZm9yIEZpZWxkTiB0 eXBlZCBhcyBMaXN0X0lkCiAgIC0tICAgTmFtZU4gICAgICAgICAgICBTeW5vbnltIGZvciBGaWVs ZE4gdHlwZWQgYXMgTmFtZV9JZAogICAtLSAgIE5vZGVOICAgICAgICAgICAgU3lub255bSBmb3Ig RmllbGROIHR5cGVkIGFzIE5vZGVfSWQKICAgLS0gICBTdHJOICAgICAgICAgICAgIFN5bm9ueW0g Zm9yIEZpZWxkTiB0eXBlZCBhcyBTdHJpbmdfSWQKICAgLS0gICBVaW50TiAgICAgICAgICAgIFN5 bm9ueW0gZm9yIEZpZWxkTiB0eXBlZCBhcyBVaW50IChFbXB0eSA9IFVpbnRfMCkKICAgLS0gICBV cmVhbE4gICAgICAgICAgIFN5bm9ueW0gZm9yIEZpZWxkTiB0eXBlZCBhcyBVcmVhbAoKICAgLS0g ICBOb3RlOiB0aGUgYWN0dWFsIHVzYWdlIG9mIEZpZWxkTiAoaS5lLiB3aGV0aGVyIGl0IGNvbnRh aW5zIGEgQ2hhcl9Db2RlLAogICAtLSAgIEVsaXN0X0lkLCBMaXN0X0lkLCBOYW1lX0lkLCBOb2Rl X0lkLCBTdHJpbmdfSWQsIFVpbnQgb3IgVXJlYWwpLCBkZXBlbmRzCiAgIC0tICAgb24gdGhlIHZh bHVlIGluIE5raW5kLiBHZW5lcmFsbHkgdGhlIGFjY2VzcyB0byB0aGlzIGZpZWxkIGlzIGFsd2F5 cyB2aWEKICAgLS0gICB0aGUgZnVuY3Rpb25hbCBpbnRlcmZhY2UsIHNvIHRoZSBmaWVsZCBuYW1l cyBDaGFyX0NvZGVOLCBFbGlzdE4sIExpc3ROLAogICAtLSAgIE5hbWVOLCBOb2RlTiwgU3RyTiwg VWludE4gYW5kIFVyZWFsTiBhcmUgdXNlZCBvbmx5IGluIHRoZSBib2RpZXMgb2YgdGhlCiAgIC0t ICAgYWNjZXNzIGZ1bmN0aW9ucyAoaS5lLiBpbiB0aGUgYm9kaWVzIG9mIFNpbmZvIGFuZCBFaW5m bykuIFRoZXNlIGFjY2VzcwogICAtLSAgIGZ1bmN0aW9ucyBjb250YWluIGRlYnVnZ2luZyBjb2Rl IHRoYXQgY2hlY2tzIHRoYXQgdGhlIHVzZSBpcyBjb25zaXN0ZW50CiAgIC0tICAgd2l0aCBOa2lu ZCBhbmQgRWtpbmQgdmFsdWVzLgoKICAgLS0gICBIb3dldmVyLCBpbiBzcGVjaWFsaXplZCBjaXJj dW1zdGFuY2VzIChleGFtcGxlcyBhcmUgdGhlIGNpcmN1aXQgaW4KICAgLS0gICBnZW5lcmljIGlu c3RhbnRpYXRpb24gdG8gY29weSB0cmVlcywgYW5kIGluIHRoZSB0cmVlIGR1bXAgcm91dGluZSks CiAgIC0tICAgaXQgaXMgdXNlZnVsIHRvIGJlIGFibGUgdG8gZG8gdW50eXBlZCB0cmF2ZXJzYWxz LCBhbmQgYW4gaW50ZXJuYWwKICAgLS0gICBwYWNrYWdlIGluIEF0cmVlIGFsbG93cyBmb3IgZGly ZWN0IHVudHlwZWQgYWNjZXNzZXMgaW4gc3VjaCBjYXNlcy4KCiAgIC0tICAgRmxhZzQgICAgICAg ICAgICBGaWZ0ZWVuIEJvb2xlYW4gZmxhZ3MgKHVzZSBkZXBlbmRzIG9uIE5raW5kIGFuZAogICAt LSAgIEZsYWc1ICAgICAgICAgICAgRWtpbmQsIGFzIGRlc2NyaWJlZCBmb3IgRmllbGRuKS4gQWdh aW4gdGhlIGFjY2VzcwogICAtLSAgIEZsYWc2ICAgICAgICAgICAgaXMgdXN1YWxseSB2aWEgc3Vi cHJvZ3JhbXMgaW4gU2luZm8gYW5kIEVpbmZvIHdoaWNoCiAgIC0tICAgRmxhZzcgICAgICAgICAg ICBwcm92aWRlIGhpZ2gtbGV2ZWwgc3lub255bXMgZm9yIHRoZXNlIGZsYWdzLCBhbmQKICAgLS0g ICBGbGFnOCAgICAgICAgICAgIGNvbnRhaW4gZGVidWdnaW5nIGNvZGUgdGhhdCBjaGVja3MgdGhh dCB0aGUgdmFsdWVzCiAgIC0tICAgRmxhZzkgICAgICAgICAgICBpbiBOa2luZCBhbmQgRWtpbmQg YXJlIGFwcHJvcHJpYXRlIGZvciB0aGUgYWNjZXNzLgogICAtLSAgIEZsYWcxMAogICAtLSAgIEZs YWcxMSAgICAgICAgICAgTm90ZSB0aGF0IEZsYWcxLTMgYXJlIG1pc3NpbmcgZnJvbSB0aGlzIGxp c3QuIFRoZQogICAtLSAgIEZsYWcxMiAgICAgICAgICAgZmlyc3QgdGhyZWUgZmxhZyBwb3NpdGlv bnMgYXJlIHJlc2VydmVkIGZvciB0aGUKICAgLS0gICBGbGFnMTMgICAgICAgICAgIHN0YW5kYXJk IGZsYWdzIChDb21lc19Gcm9tX1NvdXJjZSwgRXJyb3JfUG9zdGVkLAogICAtLSAgIEZsYWcxNCAg ICAgICAgICAgYW5kIEFuYWx5emVkKQogICAtLSAgIEZsYWcxNQogICAtLSAgIEZsYWcxNgogICAt LSAgIEZsYWcxNwogICAtLSAgIEZsYWcxOAoKICAgLS0gICBMaW5rICAgICAgICAgICAgIEZvciBh IG5vZGUsIHBvaW50cyB0byB0aGUgUGFyZW50LiBGb3IgYSBsaXN0LCBwb2ludHMKICAgLS0gICAg ICAgICAgICAgICAgICAgIHRvIHRoZSBsaXN0IGhlYWRlci4gTm90ZSB0aGF0IGluIHRoZSBsYXR0 ZXIgY2FzZSwgYQogICAtLSAgICAgICAgICAgICAgICAgICAgY2xpZW50IGNhbm5vdCBtb2RpZnkg dGhlIGxpbmsgZmllbGQuIFRoaXMgZmllbGQgaXMKICAgLS0gICAgICAgICAgICAgICAgICAgIHBy aXZhdGUgdG8gdGhlIEF0cmVlIHBhY2thZ2UgKGJ1dCBpcyBhbHNvIG1vZGlmaWVkCiAgIC0tICAg ICAgICAgICAgICAgICAgICBieSB0aGUgTmxpc3RzIHBhY2thZ2UpLgoKICAgLS0gIFRoZSBmb2xs b3dpbmcgYWRkaXRpb25hbCBmaWVsZHMgYXJlIHByZXNlbnQgaW4gZXh0ZW5kZWQgbm9kZXMgdXNl ZAogICAtLSAgZm9yIGVudGl0aWVzIChOa2luZCBpbiBOX0VudGl0eSkuCgogICAtLSAgIEVraW5k ICAgICAgICAgICAgRW50aXR5IHR5cGUuIFRoaXMgZmllbGQgaW5kaWNhdGVzIHRoZSB0eXBlIG9m IHRoZQogICAtLSAgICAgICAgICAgICAgICAgICAgZW50aXR5LCBpdCBpcyBvZiB0eXBlIEVudGl0 eV9LaW5kIHdoaWNoIGlzIGRlZmluZWQKICAgLS0gICAgICAgICAgICAgICAgICAgIGluIHBhY2th Z2UgRWluZm8uCgogICAtLSAgIEZsYWcxOSAgICAgICAgICAgMTMzIGFkZGl0aW9uYWwgZmxhZ3MK ICAgLS0gICAuLi4KICAgLS0gICBGbGFnMTUxCgogICAtLSAgIENvbnZlbnRpb24gICAgICAgRW50 aXR5IGNvbnZlbnRpb24gKENvbnZlbnRpb25fSWQgdmFsdWUpCgogICAtLSAgIEZpZWxkNiAgICAg ICAgICAgQWRkaXRpb25hbCBVbmlvbl9JZCB2YWx1ZSBzdG9yZWQgaW4gdHJlZQoKICAgLS0gICBO b2RlNiAgICAgICAgICAgIFN5bm9ueW0gZm9yIEZpZWxkNiB0eXBlZCBhcyBOb2RlX0lkCiAgIC0t ICAgRWxpc3Q2ICAgICAgICAgICBTeW5vbnltIGZvciBGaWVsZDYgdHlwZWQgYXMgRWxpc3RfSWQK ICAgLS0gICBVaW50NiAgICAgICAgICAgIFN5bm9ueW0gZm9yIEZpZWxkNiB0eXBlZCBhcyBVaW50 IChFbXB0eSA9IFVpbnRfMCkKCiAgIC0tICAgU2ltaWxhciBkZWZpbml0aW9ucyBmb3IgRmllbGQ3 IHRvIEZpZWxkMjMgKGFuZCBOb2RlNy1Ob2RlMjMsCiAgIC0tICAgRWxpc3Q3LUVsaXN0MjMsIFVp bnQ3LVVpbnQyMywgVXJlYWw3LVVyZWFsMjMpLiBOb3RlIHRoYXQgbm90IGFsbAogICAtLSAgIHRo ZXNlIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCwgb25seSB0aGUgb25lcyB0aGF0IGFyZSBhY3R1YWxs eSB1c2VkLgoKICAgdHlwZSBQYXJlbl9Db3VudF9UeXBlIGlzIG1vZCA0OwogICBmb3IgUGFyZW5f Q291bnRfVHlwZSdTaXplIHVzZSAyOwogICAtLSAgVHlwZSB1c2VkIGZvciBQYXJlbl9Db3VudCBm aWVsZAoKICAgZnVuY3Rpb24gTGFzdF9Ob2RlX0lkIHJldHVybiBOb2RlX0lkOwogICBwcmFnbWEg SW5saW5lIChMYXN0X05vZGVfSWQpOwogICAtLSAgUmV0dXJucyBJZCBvZiBsYXN0IGFsbG9jYXRl ZCBub2RlIElkCgogICBmdW5jdGlvbiBOb2Rlc19BZGRyZXNzIHJldHVybiBTeXN0ZW0uQWRkcmVz czsKICAgLS0gIFJldHVybiBhZGRyZXNzIG9mIE5vZGVzIHRhYmxlICh1c2VkIGluIEJhY2tfRW5k IGZvciBHaWdpIGNhbGwpCgogICBmdW5jdGlvbiBOdW1fTm9kZXMgcmV0dXJuIE5hdDsKICAgLS0g IFRvdGFsIG51bWJlciBvZiBub2RlcyBhbGxvY2F0ZWQsIHdoZXJlIGFuIGVudGl0eSBjb3VudHMg YXMgYSBzaW5nbGUKICAgLS0gIG5vZGUuIFRoaXMgY291bnQgaXMgaW5jcmVtZW50ZWQgZXZlcnkg dGltZSBhIG5vZGUgb3IgZW50aXR5IGlzCiAgIC0tICBhbGxvY2F0ZWQsIGFuZCBkZWNyZW1lbnRl ZCBldmVyeSB0aW1lIGEgbm9kZSBvciBlbnRpdHkgaXMgZGVsZXRlZC4KICAgLS0gIFRoaXMgdmFs dWUgaXMgdXNlZCBieSBYcmVmIGFuZCBieSBUcmVlcHIgdG8gYWxsb2NhdGUgaGFzaCB0YWJsZXMg b2YKICAgLS0gIHN1aXRhYmxlIHNpemUgZm9yIGhhc2hpbmcgTm9kZV9JZCB2YWx1ZXMuCgogICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBVc2Ugb2YgRW1wdHkgTm9kZSAtLQogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBzcGVjaWFsIE5vZGVfSWQgRW1wdHkgaXMg dXNlZCB0byBtYXJrIG1pc3NpbmcgZmllbGRzLiBXaGVuZXZlciB0aGUKICAgLS0gIHN5bnRheCBo YXMgYW4gb3B0aW9uYWwgY29tcG9uZW50LCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIGZpZWxkIHdp bGwgYmUKICAgLS0gIHNldCB0byBFbXB0eSBpZiB0aGUgY29tcG9uZW50IGlzIG1pc3NpbmcuCgog ICAtLSAgTm90ZTogRW1wdHkgaXMgbm90IHVzZWQgdG8gZGVzY3JpYmUgYW4gZW1wdHkgbGlzdC4g SW5zdGVhZCBpbiB0aGlzCiAgIC0tICBjYXNlIHRoZSBub2RlIGZpZWxkIGNvbnRhaW5zIGEgbGlz dCB3aGljaCBpcyBlbXB0eSwgYW5kIHRoZXNlIGNhc2VzCiAgIC0tICBzaG91bGQgYmUgZGlzdGlu Z3Vpc2hlZCAoZXNzZW50aWFsbHkgZnJvbSBhIHR5cGUgcG9pbnQgb2YgdmlldywgRW1wdHkKICAg LS0gIGlzIGEgTm9kZSwgYW5kIGlzIHRodXMgbm90IGEgbGlzdCkuCgogICAtLSAgTm90ZTogRW1w dHkgZG9lcyBpbiBmYWN0IGNvcnJlc3BvbmQgdG8gYW4gYWxsb2NhdGVkIG5vZGUuIE9ubHkgdGhl CiAgIC0tICBOa2luZCBmaWVsZCBvZiB0aGlzIG5vZGUgbWF5IGJlIHJlZmVyZW5jZWQuIEl0IGNv bnRhaW5zIE5fRW1wdHksIHdoaWNoCiAgIC0tICB1bmlxdWVseSBpZGVudGlmaWVzIHRoZSBlbXB0 eSBjYXNlLiBUaGlzIGFsbG93cyB0aGUgTmtpbmQgZmllbGQgdG8gYmUKICAgLS0gIGRlcmVmZXJl bmNlZCBiZWZvcmUgdGhlIGNoZWNrIGZvciBFbXB0eSB3aGljaCBpcyBzb21ldGltZXMgdXNlZnVs LgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gVXNlIG9mIEVycm9yIE5vZGUgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGUgRXJyb3Igbm9kZSBpcyB1c2Vk IGR1cmluZyBzeW50YWN0aWMgYW5kIHNlbWFudGljIGFuYWx5c2lzIHRvCiAgIC0tICBpbmRpY2F0 ZSB0aGF0IHRoZSBjb3JyZXNwb25kaW5nIHBpZWNlIG9mIHN5bnRhY3RpYyBzdHJ1Y3R1cmUgb3IK ICAgLS0gIHNlbWFudGljIG1lYW5pbmcgY2Fubm90IHByb3Blcmx5IGJlIHJlcHJlc2VudGVkIGlu IHRoZSB0cmVlIGJlY2F1c2UKICAgLS0gIG9mIGFuIGlsbGVnYWxpdHkgaW4gdGhlIHByb2dyYW0u CgogICAtLSAgSWYgYW4gRXJyb3Igbm9kZSBpcyBlbmNvdW50ZXJlZCwgdGhlbiB5b3Uga25vdyB0 aGF0IGEgcHJldmlvdXMKICAgLS0gIGlsbGVnYWxpdHkgaGFzIGJlZW4gZGV0ZWN0ZWQuIFRoZSBw cm9wZXIgcmVhY3Rpb24gc2hvdWxkIGJlIHRvCiAgIC0tICBhdm9pZCBwb3N0aW5nIHJlbGF0ZWQg Y2FzY2FkZWQgZXJyb3IgbWVzc2FnZXMsIGFuZCB0byBwcm9wYWdhdGUKICAgLS0gIHRoZSBlcnJv ciBub2RlIGlmIG5lY2Vzc2FyeS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEN1 cnJlbnRfRXJyb3JfTm9kZSAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRo ZSBjdXJyZW50IGVycm9yIG5vZGUgaXMgYSBnbG9iYWwgbG9jYXRpb24gaW5kaWNhdGluZyB0aGUg Y3VycmVudAogICAtLSAgbm9kZSB0aGF0IGlzIGJlaW5nIHByb2Nlc3NlZCBmb3IgdGhlIHB1cnBv c2VzIG9mIHBsYWNpbmcgYSBjb21waWxlcgogICAtLSAgYWJvcnQgbWVzc2FnZS4gVGhpcyBpcyBu b3QgbmVjZXNzYXJpbHkgcGVyZmVjdGx5IGFjY3VyYXRlLCBpdCBpcwogICAtLSAganVzdCBhIHJl YXNvbmFibHkgYWNjdXJhdGUgYmVzdCBndWVzcy4gSXQgaXMgdXNlZCB0byBvdXRwdXQgdGhlCiAg IC0tICBzb3VyY2UgbG9jYXRpb24gaW4gdGhlIGFib3J0IG1lc3NhZ2UgYnkgQ29tcGVyciwgYW5k IGFsc28gdG8KICAgLS0gIGltcGxlbWVudCB0aGUgZDMgZGVidWdnaW5nIGZsYWcuIFRoaXMgaXMg YWxzbyB1c2VkIGJ5IFJ0c2ZpbmQKICAgLS0gIHRvIGdlbmVyYXRlIGVycm9yIG1lc3NhZ2VzIGZv ciBOb19SdW5fVGltZSBtb2RlLgoKICAgQ3VycmVudF9FcnJvcl9Ob2RlIDogTm9kZV9JZDsKICAg LS0gIE5vZGUgdG8gcGxhY2UgZXJyb3IgbWVzc2FnZXMKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgLS0gRGVmYXVsdCBTZXR0aW5nIG9mIEZpZWxkcyAtLQogICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgTmtpbmQgaXMgc2V0IHRvIE5fVW51c2Vk X0F0X1N0YXJ0CgogICAtLSAgRWtpbmQgaXMgc2V0IHRvIEVfVm9pZAoKICAgLS0gIFNsb2MgaXMg YWx3YXlzIHNldCwgdGhlcmUgaXMgbm8gZGVmYXVsdCB2YWx1ZQoKICAgLS0gIEZpZWxkMS01IGZp ZWxkcyBhcmUgc2V0IHRvIEVtcHR5CgogICAtLSAgRmllbGQ2LTIyIGZpZWxkcyBpbiBleHRlbmRl ZCBub2RlcyBhcmUgc2V0IHRvIEVtcHR5CgogICAtLSAgUGFyZW50IGlzIHNldCB0byBFbXB0eQoK ICAgLS0gIEFsbCBCb29sZWFuIGZsYWcgZmllbGRzIGFyZSBzZXQgdG8gRmFsc2UKCiAgIC0tICBO b3RlOiB0aGUgdmFsdWUgRW1wdHkgaXMgdXNlZCBpbiBGaWVsZDEtRmllbGQxNyB0byBpbmRpY2F0 ZSBhIG51bGwgbm9kZS4KICAgLS0gIFRoZSB1c2FnZSB2YXJpZXMuIFRoZSBjb21tb24gdXNlcyBh cmUgdG8gaW5kaWNhdGUgYWJzZW5jZSBvZiBhbgogICAtLSAgb3B0aW9uYWwgY2xhdXNlIG9yIGEg Y29tcGxldGVseSB1bnVzZWQgRmllbGQxLTE3IGZpZWxkLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBVc2Ugb2YgU3lub255bXMgZm9yIE5vZGUgRmllbGRz IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBBIHN1 YnBhY2thZ2UgQXRyZWUuVW5jaGVja2VkX0FjY2VzcyBwcm92aWRlcyByb3V0aW5lcyBmb3IgcmVh ZGluZyBhbmQKICAgLS0gIHdyaXRpbmcgdGhlIGZpZWxkcyBkZWZpbmVkIGFib3ZlIChGaWVsZDEt MTcsIE5vZGUxLTE3LCBGbGFnMS04OCBldGMpLgogICAtLSAgVGhlc2UgdW5jaGVja2VkIGFjY2Vz cyByb3V0aW5lcyBjYW4gYmUgdXNlZCBmb3IgdW50eXBlZCB0cmF2ZXJzYWxzLiBJbgogICAtLSAg SW4gYWRkaXRpb24gdGhleSBhcmUgdXNlZCBpbiB0aGUgaW1wbGVtZW50YXRpb25zIG9mIHRoZSBT aW5mbyBhbmQKICAgLS0gIEVpbmZvIHBhY2thZ2VzLiBUaGVzZSBwYWNrYWdlcyBib3RoIHByb3Zp ZGUgbG9naWNhbCBzeW5vbnltcyBmb3IKICAgLS0gIHRoZSBnZW5lcmljIGZpZWxkcywgdG9nZXRo ZXIgd2l0aCBhbiBhcHByb3ByaWF0ZSBzZXQgb2YgYWNjZXNzIHJvdXRpbmVzLgogICAtLSAgTm9y bWFsbHkgYWNjZXNzIHRvIGluZm9ybWF0aW9uIHdpdGhpbiB0cmVlIG5vZGVzIHVzZXMgdGhlc2Ug c3lub255bXMsCiAgIC0tICBwcm92aWRpbmcgYSBoaWdoIGxldmVsIHR5cGVkIGludGVyZmFjZSB0 byB0aGUgdHJlZSBpbmZvcm1hdGlvbi4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE5vZGUgQWxsb2NhdGlvbiBhbmQgTW9kaWZpY2F0 aW9uIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAtLSAgR2VuZXJhbGx5IHRoZSBwYXJzZXIgYnVpbGRzIHRoZSB0 cmVlIGFuZCB0aGVuIGl0IGlzIGZ1cnRoZXIgZGVjb3JhdGVkCiAgIC0tICAoZS5nLiBieSBzZXR0 aW5nIHRoZSBlbnRpdHkgZmllbGRzKSwgYnV0IG5vdCBmdW5kYW1lbnRhbGx5IG1vZGlmaWVkLgog ICAtLSAgSG93ZXZlciwgdGhlcmUgYXJlIGNhc2VzIGluIHdoaWNoIHRoZSB0cmVlIG11c3QgYmUg cmVzdHJ1Y3R1cmVkIGJ5CiAgIC0tICBhZGRpbmcgYW5kIHJlYXJyYW5naW5nIG5vZGVzLCBhcyBh IHJlc3VsdCBvZiBkaXNhbWJpZ3VhdGluZyBjYXNlcwogICAtLSAgd2hpY2ggdGhlIHBhcnNlciBj b3VsZCBub3QgcGFyc2UgY29ycmVjdGx5LCBhbmQgYWRkaW5nIGFkZGl0aW9uYWwKICAgLS0gIHNl bWFudGljIGluZm9ybWF0aW9uIChlLmcuIG1ha2luZyBjb25zdHJhaW50IGNoZWNrcyBleHBsaWNp dCkuIFRoZQogICAtLSAgZm9sbG93aW5nIHN1YnByb2dyYW1zIGFyZSB1c2VkIGZvciBjb25zdHJ1 Y3RpbmcgdGhlIHRyZWUgaW4gdGhlIGZpcnN0CiAgIC0tICBwbGFjZSwgYW5kIHRoZW4gZm9yIHN1 YnNlcXVlbnQgbW9kaWZpY2F0aW9ucyBhcyByZXF1aXJlZAoKICAgcHJvY2VkdXJlIEluaXRpYWxp emU7CiAgIC0tICBDYWxsZWQgYXQgdGhlIHN0YXJ0IG9mIGNvbXBpbGF0aW9uIHRvIGluaXRpYWxp emUgdGhlIGFsbG9jYXRpb24gb2YKICAgLS0gIHRoZSBub2RlIGFuZCBsaXN0IHRhYmxlcyBhbmQg bWFrZSB0aGUgc3RhbmRhcmQgZW50cmllcyBmb3IgRW1wdHksCiAgIC0tICBFcnJvciBhbmQgRXJy b3JfTGlzdC4gTm90ZSB0aGF0IEluaXRpYWxpemUgbXVzdCBub3QgYmUgY2FsbGVkIGlmCiAgIC0t ICBUcmVlX1JlYWQgaXMgdXNlZC4KCiAgIHByb2NlZHVyZSBMb2NrOwogICAtLSAgQ2FsbGVkIGJl Zm9yZSB0aGUgYmFja2VuZCBpcyBpbnZva2VkIHRvIGxvY2sgdGhlIG5vZGVzIHRhYmxlCgogICBw cm9jZWR1cmUgVHJlZV9SZWFkOwogICAtLSAgSW5pdGlhbGl6ZXMgaW50ZXJuYWwgdGFibGVzIGZy b20gY3VycmVudCB0cmVlIGZpbGUgdXNpbmcgVHJlZV9SZWFkLgogICAtLSAgTm90ZSB0aGF0IElu aXRpYWxpemUgc2hvdWxkIG5vdCBiZSBjYWxsZWQgaWYgVHJlZV9SZWFkIGlzIHVzZWQuCiAgIC0t ICBUcmVlX1JlYWQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBpbml0aWFsaXphdGlvbi4KCiAgIHBy b2NlZHVyZSBUcmVlX1dyaXRlOwogICAtLSAgV3JpdGVzIG91dCBpbnRlcm5hbCB0YWJsZXMgdG8g Y3VycmVudCB0cmVlIGZpbGUgdXNpbmcgVHJlZV9Xcml0ZQoKICAgZnVuY3Rpb24gTmV3X05vZGUK ICAgICAoTmV3X05vZGVfS2luZCA6IE5vZGVfS2luZDsKICAgICAgTmV3X1Nsb2MgICAgICA6IFNv dXJjZV9QdHIpCiAgICAgIHJldHVybiAgICAgICAgICBOb2RlX0lkOwogICAtLSAgQWxsb2NhdGVz IGEgY29tcGxldGVseSBuZXcgbm9kZSB3aXRoIHRoZSBnaXZlbiBub2RlIHR5cGUgYW5kIHNvdXJj ZQogICAtLSAgbG9jYXRpb24gdmFsdWVzLiBBbGwgb3RoZXIgZmllbGRzIGFyZSBzZXQgdG8gdGhl aXIgc3RhbmRhcmQgZGVmYXVsdHM6CiAgIC0tCiAgIC0tICAgIEVtcHR5IGZvciBhbGwgRmllbGRu IGZpZWxkcwogICAtLSAgICBGYWxzZSBmb3IgYWxsIEZsYWduIGZpZWxkcwogICAtLQogICAtLSAg VGhlIHVzdWFsIGFwcHJvYWNoIGlzIHRvIGJ1aWxkIGEgbmV3IG5vZGUgdXNpbmcgdGhpcyBmdW5j dGlvbiBhbmQKICAgLS0gIHRoZW4sIHVzaW5nIHRoZSB2YWx1ZSByZXR1cm5lZCwgdXNlIHRoZSBT ZXRfeHh4IGZ1bmN0aW9ucyB0byBzZXQKICAgLS0gIGZpZWxkcyBvZiB0aGUgbm9kZSBhcyByZXF1 aXJlZC4gTmV3X05vZGUgY2FuIG9ubHkgYmUgdXNlZCBmb3IKICAgLS0gIG5vbi1lbnRpdHkgbm9k ZXMsIGkuZS4gaXQgbmV2ZXIgZ2VuZXJhdGVzIGFuIGV4dGVuZGVkIG5vZGUuCgogICBmdW5jdGlv biBOZXdfRW50aXR5CiAgICAgKE5ld19Ob2RlX0tpbmQgOiBOb2RlX0tpbmQ7CiAgICAgIE5ld19T bG9jICAgICAgOiBTb3VyY2VfUHRyKQogICAgICByZXR1cm4gICAgICAgICAgRW50aXR5X0lkOwog ICAtLSAgU2ltaWxhciB0byBOZXdfTm9kZSwgZXhjZXB0IHRoYXQgaXQgaXMgdXNlZCBvbmx5IGZv ciBlbnRpdHkgbm9kZXMKICAgLS0gIGFuZCByZXR1cm5zIGFuIGV4dGVuZGVkIG5vZGUuCgogICBw cm9jZWR1cmUgU2V0X0NvbWVzX0Zyb21fU291cmNlX0RlZmF1bHQgKERlZmF1bHQgOiBCb29sZWFu KTsKICAgLS0gIFNldHMgdmFsdWUgb2YgQ29tZXNfRnJvbV9Tb3VyY2UgZmxhZyB0byBiZSB1c2Vk IGluIGFsbCBzdWJzZXF1ZW50CiAgIC0tICBOZXdfTm9kZSBhbmQgTmV3X0VudGl0eSBjYWxscyB1 bnRpbCBhbm90aGVyIGNhbGwgdG8gdGhpcyBwcm9jZWR1cmUKICAgLS0gIGNoYW5nZXMgdGhlIGRl ZmF1bHQuCgogICBmdW5jdGlvbiBHZXRfQ29tZXNfRnJvbV9Tb3VyY2VfRGVmYXVsdCByZXR1cm4g Qm9vbGVhbjsKICAgcHJhZ21hIElubGluZSAoR2V0X0NvbWVzX0Zyb21fU291cmNlX0RlZmF1bHQp OwogICAtLSAgR2V0cyB0aGUgY3VycmVudCB2YWx1ZSBvZiB0aGUgQ29tZXNfRnJvbV9Tb3VyY2Ug ZmxhZwoKICAgcHJvY2VkdXJlIFByZXNlcnZlX0NvbWVzX0Zyb21fU291cmNlIChOZXdOLCBPbGRO IDogTm9kZV9JZCk7CiAgIHByYWdtYSBJbmxpbmUgKFByZXNlcnZlX0NvbWVzX0Zyb21fU291cmNl KTsKICAgLS0gIFdoZW4gYSBub2RlIGlzIHJld3JpdHRlbiwgaXQgaXMgc29tZXRpbWVzIGFwcHJv cHJpYXRlIHRvIHByZXNlcnZlIHRoZQogICAtLSAgb3JpZ2luYWwgY29tZXMgZnJvbSBzb3VyY2Ug aW5kaWNhdGlvbi4gVGhpcyBpcyB0cnVlIHdoZW4gdGhlIHJld3JpdGUKICAgLS0gIGVzc2VudGlh bGx5IGNvcnJlc3BvbmRzIHRvIGEgdHJhbnNmb3JtYXRpb24gY29ycmVzcG9uZGluZyBleGFjdGx5 IHRvCiAgIC0tICBzZW1hbnRpY3MgaW4gdGhlIHJlZmVyZW5jZSBtYW51YWwuIFRoaXMgcHJvY2Vk dXJlIGNvcGllcyB0aGUgc2V0dGluZwogICAtLSAgb2YgQ29tZXNfRnJvbV9Tb3VyY2UgZnJvbSBP bGROIHRvIE5ld04uCgogICBmdW5jdGlvbiBIYXNfRXh0ZW5zaW9uIChOIDogTm9kZV9JZCkgcmV0 dXJuIEJvb2xlYW47CiAgIHByYWdtYSBJbmxpbmUgKEhhc19FeHRlbnNpb24pOwogICAtLSAgUmV0 dXJucyBUcnVlIGlmIHRoZSBnaXZlbiBub2RlIGhhcyBhbiBleHRlbnNpb24gKGkuZS4gd2FzIGNy ZWF0ZWQgYnkKICAgLS0gIGEgY2FsbCB0byBOZXdfRW50aXR5IHJhdGhlciB0aGFuIE5ld19Ob2Rl LCBhbmQgTmtpbmQgaXMgaW4gTl9FbnRpdHkpCgogICBwcm9jZWR1cmUgQ2hhbmdlX05vZGUgKE4g OiBOb2RlX0lkOyBOZXdfTm9kZV9LaW5kIDogTm9kZV9LaW5kKTsKICAgLS0gIFRoaXMgcHJvY2Vk dXJlIHJlcGxhY2VzIHRoZSBnaXZlbiBub2RlIGJ5IHNldHRpbmcgaXRzIE5raW5kIGZpZWxkIHRv CiAgIC0tICB0aGUgaW5kaWNhdGVkIHZhbHVlIGFuZCByZXNldHRpbmcgYWxsIG90aGVyIGZpZWxk cyB0byB0aGVpciBkZWZhdWx0CiAgIC0tICB2YWx1ZXMgZXhjZXB0IGZvciBTbG9jLCB3aGljaCBp cyB1bmNoYW5nZWQsIGFuZCB0aGUgUGFyZW50IHBvaW50ZXIKICAgLS0gIGFuZCBsaXN0IGxpbmtz LCB3aGljaCBhcmUgYWxzbyB1bmNoYW5nZWQuIEFsbCBvdGhlciBpbmZvcm1hdGlvbiBpbgogICAt LSAgdGhlIG9yaWdpbmFsIG5vZGUgaXMgbG9zdC4gVGhlIG5ldyBub2RlIGhhcyBhbiBleHRlbnNp b24gaWYgdGhlCiAgIC0tICBvcmlnaW5hbCBub2RlIGhhZCBhbiBleHRlbnNpb24uCgogICBwcm9j ZWR1cmUgQ29weV9Ob2RlIChTb3VyY2UgOiBOb2RlX0lkOyBEZXN0aW5hdGlvbiA6IE5vZGVfSWQp OwogICAtLSAgQ29weSB0aGUgZW50aXJlIGNvbnRlbnRzIG9mIHRoZSBzb3VyY2Ugbm9kZSB0byB0 aGUgZGVzdGluYXRpb24gbm9kZS4KICAgLS0gIFRoZSBjb250ZW50cyBvZiB0aGUgc291cmNlIG5v ZGUgaXMgbm90IGFmZmVjdGVkLiBJZiB0aGUgc291cmNlIG5vZGUKICAgLS0gIGhhcyBhbiBleHRl bnNpb24sIHRoZW4gdGhlIGRlc3RpbmF0aW9uIG11c3QgaGF2ZSBhbiBleHRlbnNpb24gYWxzby4K ICAgLS0gIFRoZSBwYXJlbnQgcG9pbnRlciBvZiB0aGUgZGVzdGluYXRpb24gYW5kIGl0cyBsaXN0 IGxpbmssIGlmIGFueSwgYXJlCiAgIC0tICBub3QgYWZmZWN0ZWQgYnkgdGhlIGNvcHkuIE5vdGUg dGhhdCBwYXJlbnQgcG9pbnRlcnMgb2YgZGVzY2VuZGVudHMKICAgLS0gIGFyZSBub3QgYWRqdXN0 ZWQsIHNvIHRoZSBkZXNjZW5kZW50cyBvZiB0aGUgZGVzdGluYXRpb24gbm9kZSBhZnRlcgogICAt LSAgdGhlIENvcHlfTm9kZSBpcyBjb21wbGV0ZWQgaGF2ZSBkdWJpb3VzIHBhcmVudCBwb2ludGVy cy4KCiAgIGZ1bmN0aW9uIE5ld19Db3B5IChTb3VyY2UgOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9J ZDsKICAgLS0gIFRoaXMgZnVuY3Rpb24gYWxsb2NhdGVzIGEgY29tcGxldGVseSBuZXcgbm9kZSwg YW5kIHRoZW4gaW5pdGlhbGl6ZXMKICAgLS0gIGl0IGJ5IGNvcHlpbmcgdGhlIGNvbnRlbnRzIG9m IHRoZSBzb3VyY2Ugbm9kZSBpbnRvIGl0LiBUaGUgY29udGVudHMKICAgLS0gIG9mIHRoZSBzb3Vy Y2Ugbm9kZSBpcyBub3QgYWZmZWN0ZWQuIFRoZSB0YXJnZXQgbm9kZSBpcyBhbHdheXMgbWFya2Vk CiAgIC0tICBhcyBub3QgYmVpbmcgaW4gYSBsaXN0IChldmVuIGlmIHRoZSBzb3VyY2UgaXMgYSBs aXN0IG1lbWJlcikuIFRoZQogICAtLSAgbmV3IG5vZGUgd2lsbCBoYXZlIGFuIGV4dGVuc2lvbiBp ZiB0aGUgc291cmNlIGhhcyBhbiBleHRlbnNpb24uCiAgIC0tICBOZXdfQ29weSAoRW1wdHkpIHJl dHVybnMgRW1wdHkgYW5kIE5ld19Db3B5IChFcnJvcikgcmV0dXJucyBFcnJvci4KICAgLS0gIE5v dGUgdGhhdCwgdW5saWtlIE5ld19Db3B5X1RyZWUsIE5ld19Db3B5IGRvZXMgbm90IHJlY3Vyc2l2 ZWx5IGNvcHkgYW55CiAgIC0tICBkZXNjZW5kZW50cywgc28gaW4gZ2VuZXJhbCBwYXJlbnQgcG9p bnRlcnMgYXJlIG5vdCBzZXQgY29ycmVjdGx5IGZvcgogICAtLSAgdGhlIGRlc2NlbmRlbnRzIG9m IHRoZSBjb3BpZWQgbm9kZS4gQm90aCBub3JtYWwgYW5kIGV4dGVuZGVkIG5vZGVzCiAgIC0tICAo ZW50aXRpZXMpIG1heSBiZSBjb3BpZWQgdXNpbmcgTmV3X0NvcHkuCgogICBmdW5jdGlvbiBSZWxv Y2F0ZV9Ob2RlIChTb3VyY2UgOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgLS0gIFNvdXJj ZSBpcyBhIG5vbi1lbnRpdHkgbm9kZSB0aGF0IGlzIHRvIGJlIHJlbG9jYXRlZC4gQSBuZXcgbm9k ZSBpcwogICAtLSAgYWxsb2NhdGVkIGFuZCB0aGUgY29udGVudHMgb2YgU291cmNlIGFyZSBjb3Bp ZWQgdG8gdGhpcyBub2RlIHVzaW5nCiAgIC0tICBDb3B5X05vZGUuIFRoZSBwYXJlbnQgcG9pbnRl cnMgb2YgZGVzY2VuZGVudHMgb2YgdGhlIG5vZGUgYXJlIHRoZW4KICAgLS0gIGFkanVzdGVkIHRv IHBvaW50IHRvIHRoZSByZWxvY2F0ZWQgY29weS4gVGhlIG9yaWdpbmFsIG5vZGUgaXMgbm90CiAg IC0tICBtb2RpZmllZCwgYnV0IHRoZSBwYXJlbnQgcG9pbnRlcnMgb2YgaXRzIGRlc2NlbmRlbnRz IGFyZSBubyBsb25nZXIKICAgLS0gIHZhbGlkLiBUaGlzIHJvdXRpbmUgaXMgdXNlZCBpbiBjb25q dW5jdGlvbiB3aXRoIHRoZSB0cmVlIHJld3JpdGUKICAgLS0gIHJvdXRpbmVzIChzZWUgZGVzY3Jp cHRpb25zIG9mIFJlcGxhY2UvUmV3cml0ZSkuCiAgIC0tCiAgIC0tICBOb3RlIHRoYXQgdGhlIHJl c3VsdGluZyBub2RlIGhhcyB0aGUgc2FtZSBwYXJlbnQgYXMgdGhlIHNvdXJjZQogICAtLSAgbm9k ZSwgYW5kIGlzIHRodXMgc3RpbGwgYXR0YWNoZWQgdG8gdGhlIHRyZWUuIEl0IGlzIHZhbGlkIGZv cgogICAtLSAgU291cmNlIHRvIGJlIEVtcHR5LCBpbiB3aGljaCBjYXNlIFJlbG9jYXRlX05vZGUg c2ltcGx5IHJldHVybnMKICAgLS0gIEVtcHR5IGFzIHRoZSByZXN1bHQuCgogICBmdW5jdGlvbiBO ZXdfQ29weV9UcmVlCiAgICAgKFNvdXJjZSAgICA6IE5vZGVfSWQ7CiAgICAgIE1hcCAgICAgICA6 IEVsaXN0X0lkIDo9IE5vX0VsaXN0OwogICAgICBOZXdfU2xvYyAgOiBTb3VyY2VfUHRyIDo9IE5v X0xvY2F0aW9uOwogICAgICBOZXdfU2NvcGUgOiBFbnRpdHlfSWQgOj0gRW1wdHkpCiAgICAgIHJl dHVybiAgICAgIE5vZGVfSWQ7CiAgIC0tICBHaXZlbiBhIG5vZGUgdGhhdCBpcyB0aGUgcm9vdCBv ZiBhIHN1YnRyZWUsIENvcHlfVHJlZSBjb3BpZXMgdGhlIGVudGlyZQogICAtLSAgc3ludGFjdGlj IHN1YnRyZWUsIGluY2x1ZGluZyByZWN1cnNpdmVseSBhbnkgZGVzY2VuZGVudHMgd2hvc2UgcGFy ZW50CiAgIC0tICBmaWVsZCByZWZlcmVuY2VzIGEgY29waWVkIG5vZGUgKGRlc2NlbmRlbnRzIG5v dCBsaW5rZWQgdG8gYSBjb3BpZWQgbm9kZQogICAtLSAgYnkgdGhlIHBhcmVudCBmaWVsZCBhcmUg bm90IGNvcGllZCwgaW5zdGVhZCB0aGUgY29waWVkIHRyZWUgcmVmZXJlbmNlcwogICAtLSAgdGhl IHNhbWUgZGVzY2VuZGVudCBhcyB0aGUgb3JpZ2luYWwgaW4gdGhpcyBjYXNlLCB3aGljaCBpcyBh cHByb3ByaWF0ZQogICAtLSAgZm9yIG5vbi1zeW50YWN0aWMgZmllbGRzIHN1Y2ggYXMgRXR5cGUp LiBUaGUgcGFyZW50IHBvaW50ZXJzIGluIHRoZQogICAtLSAgY29weSBhcmUgcHJvcGVybHkgc2V0 LiBDb3B5X1RyZWUgKEVtcHR5L0Vycm9yKSByZXR1cm5zIEVtcHR5L0Vycm9yLgogICAtLSAgVGhl IG9uZSBleGNlcHRpb24gdG8gdGhlIHJ1bGUgb2Ygbm90IGNvcHlpbmcgc2VtYW50aWMgZmllbGRz IGlzIHRoYXQKICAgLS0gIGFueSBpbXBsaWNpdCB0eXBlcyBhdHRhY2hlZCB0byB0aGUgc3VidHJl ZSBhcmUgZHVwbGljYXRlZCwgc28gdGhhdAogICAtLSAgdGhlIGNvcHkgY29udGFpbnMgYSBkaXN0 aW5jdCBzZXQgb2YgaW1wbGljaXQgdHlwZSBlbnRpdGllcy4gVGhlIE1hcAogICAtLSAgYXJndW1l bnQsIGlmIHNldCB0byBhIG5vbi1lbXB0eSBFbGlzdCwgc3BlY2lmaWVzIGEgc2V0IG9mIG1hcHBp bmdzCiAgIC0tICB0byBiZSBhcHBsaWVkIHRvIGVudGl0aWVzIGluIHRoZSB0cmVlLiBUaGUgbWFw IGhhcyB0aGUgZm9ybToKICAgLS0KICAgLS0gICAgIG9sZCBlbnRpdHkgMQogICAtLSAgICAgbmV3 IGVudGl0eSB0byByZXBsYWNlIHJlZmVyZW5jZXMgdG8gZW50aXR5IDEKICAgLS0gICAgIG9sZCBl bnRpdHkgMgogICAtLSAgICAgbmV3IGVudGl0eSB0byByZXBsYWNlIHJlZmVyZW5jZXMgdG8gZW50 aXR5IDIKICAgLS0gICAgIC4uLgogICAtLQogICAtLSAgVGhlIGNhbGwgZGVzdHJveXMgdGhlIGNv bnRlbnRzIG9mIE1hcCBpbiB0aGlzIGNhc2UKICAgLS0KICAgLS0gIFRoZSBwYXJhbWV0ZXIgTmV3 X1Nsb2MsIGlmIHNldCB0byBhIHZhbHVlIG90aGVyIHRoYW4gTm9fTG9jYXRpb24sIGlzCiAgIC0t ICB1c2VkIGFzIHRoZSBTbG9jIHZhbHVlIGZvciBhbGwgbm9kZXMgaW4gdGhlIG5ldyBjb3B5LiBJ ZiBOZXdfU2xvYyBpcwogICAtLSAgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIE5vX0xvY2F0aW9u LCB0aGVuIHRoZSBTbG9jIHZhbHVlcyBvZiB0aGUKICAgLS0gIG5vZGVzIGluIHRoZSBjb3B5IGFy ZSBzaW1wbHkgY29waWVkIGZyb20gdGhlIGNvcnJlc3BvbmRpbmcgb3JpZ2luYWwuCiAgIC0tCiAg IC0tICBUaGUgQ29tZXNfRnJvbV9Tb3VyY2UgaW5kaWNhdGlvbiBpcyB1bmNoYW5nZWQgaWYgTmV3 X1Nsb2MgaXMgc2V0IHRvCiAgIC0tICB0aGUgZGVmYXVsdCBOb19Mb2NhdGlvbiB2YWx1ZSwgYnV0 IGlzIHJlc2V0IGlmIE5ld19TbG9jIGlzIGdpdmVuLCBzaW5jZQogICAtLSAgaW4gdGhpcyBjYXNl IHRoZSByZXN1bHQgY2xlYXJseSBpcyBuZWl0aGVyIGEgc291cmNlIG5vZGUgb3IgYW4gZXhhY3QK ICAgLS0gIGNvcHkgb2YgYSBzb3VyY2Ugbm9kZS4KICAgLS0KICAgLS0gIFRoZSBwYXJhbWV0ZXIg TmV3X1Njb3BlLCBpZiBzZXQgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIEVtcHR5LCBpcyB0aGUKICAg LS0gIHZhbHVlIHRvIHVzZSBhcyB0aGUgU2NvcGUgZm9yIGFueSBJdHlwZXMgdGhhdCBhcmUgY29w aWVkLiBUaGUgbW9zdAogICAtLSAgdHlwaWNhbCB2YWx1ZSBmb3IgdGhpcyBwYXJhbWV0ZXIsIGlm IGdpdmVuLCBpcyBDdXJyZW50X1Njb3BlLgoKICAgZnVuY3Rpb24gQ29weV9TZXBhcmF0ZV9UcmVl IChTb3VyY2UgOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgLS0gIEdpdmVuIGEgbm9kZSB0 aGF0IGlzIHRoZSByb290IG9mIGEgc3VidHJlZSwgQ29weV9TZXBhcmF0ZV9UcmVlIGNvcGllcwog ICAtLSAgdGhlIGVudGlyZSBzeW50YWN0aWMgc3VidHJlZSwgaW5jbHVkaW5nIHJlY3Vyc2l2ZWx5 IGFueSBkZXNjZW5kYW50cwogICAtLSAgd2hvc2UgcGFyZW50IGZpZWxkIHJlZmVyZW5jZXMgYSBj b3BpZWQgbm9kZSAoZGVzY2VuZGFudHMgbm90IGxpbmtlZCB0bwogICAtLSAgYSBjb3BpZWQgbm9k ZSBieSB0aGUgcGFyZW50IGZpZWxkIGFyZSBhbHNvIGNvcGllZC4pIFRoZSBwYXJlbnQgcG9pbnRl cnMKICAgLS0gIGluIHRoZSBjb3B5IGFyZSBwcm9wZXJseSBzZXQuIENvcHlfU2VwYXJhdGVfVHJl ZSAoRW1wdHkvRXJyb3IpIHJldHVybnMKICAgLS0gIEVtcHR5L0Vycm9yLiBUaGUgc2VtYW50aWMg ZmllbGRzIGFyZSBub3QgY29waWVkIGFuZCB0aGUgbmV3IHN1YnRyZWUKICAgLS0gIGRvZXMgbm90 IHNoYXJlIGFueSBlbnRpdHkgd2l0aCBzb3VyY2Ugc3VidHJlZS4KICAgLS0gIEJ1dCB0aGUgY29k ZSAqZG9lcyogY29weSBzZW1hbnRpYyBmaWVsZHMsIGFuZCB0aGUgZGVzY3JpcHRpb24gYWJvdmUK ICAgLS0gIGlzIGluIGFueSBjYXNlIHVuY2xlYXIgb24gdGhpcyBwb2ludCA/Pz8gKFJCS0QpCgog ICBwcm9jZWR1cmUgRXhjaGFuZ2VfRW50aXRpZXMgKEUxIDogRW50aXR5X0lkOyBFMiA6IEVudGl0 eV9JZCk7CiAgIC0tICBFeGNoYW5nZSB0aGUgY29udGVudHMgb2YgdHdvIGVudGl0aWVzLiBUaGUg cGFyZW50IHBvaW50ZXJzIGFyZSBzd2l0Y2hlZAogICAtLSAgYXMgd2VsbCBhcyB0aGUgRGVmaW5p bmdfSWRlbnRpZmllciBmaWVsZHMgaW4gdGhlIHBhcmVudHMsIHNvIHRoYXQgdGhlCiAgIC0tICBl bnRpdGllcyBwb2ludCBjb3JyZWN0bHkgdG8gdGhlaXIgb3JpZ2luYWwgcGFyZW50cy4gVGhlIGVm ZmVjdCBpcyB0aHVzCiAgIC0tICB0byBsZWF2ZSB0aGUgdHJlZSBjb21wbGV0ZWx5IHVuY2hhbmdl ZCBpbiBzdHJ1Y3R1cmUsIGV4Y2VwdCB0aGF0IHRoZQogICAtLSAgZW50aXR5IElEIHZhbHVlcyBv ZiB0aGUgdHdvIGVudGl0aWVzIGFyZSBpbnRlcmNoYW5nZWQuIE5laXRoZXIgb2YgdGhlCiAgIC0t ICB0d28gZW50aXRpZXMgbWF5IGJlIGxpc3QgbWVtYmVycy4KCiAgIHByb2NlZHVyZSBEZWxldGVf Tm9kZSAoTm9kZSA6IE5vZGVfSWQpOwogICAtLSAgVGhlIG5vZGUsIHdoaWNoIG11c3Qgbm90IGJl IGEgbGlzdCBtZW1iZXIsIGlzIGRlbGV0ZWQgZnJvbSB0aGUgdHJlZSBhbmQKICAgLS0gIGl0cyB0 eXBlIGlzIHNldCB0byBOX1VudXNlZF9BdF9FbmQuIEl0IGlzIGFuIGVycm9yIChub3QgbmVjZXNz YXJpbHkKICAgLS0gIGRldGVjdGVkKSB0byByZWZlcmVuY2UgdGhpcyBub2RlIGFmdGVyIGl0IGhh cyBiZWVuIGRlbGV0ZWQuIFRoZQogICAtLSAgaW1wbGVtZW50YXRpb24gb2YgdGhlIGJvZHkgb2Yg QXRyZWUgaXMgZnJlZSB0byByZXVzZSB0aGUgbm9kZSB0bwogICAtLSAgc2F0aXNmeSBmdXR1cmUg bm9kZSBhbGxvY2F0aW9uIHJlcXVlc3RzLCBidXQgaXMgbm90IHJlcXVpcmVkIHRvIGRvIHNvLgoK ICAgcHJvY2VkdXJlIERlbGV0ZV9UcmVlIChOb2RlIDogTm9kZV9JZCk7CiAgIC0tICBUaGUgZW50 aXJlIHN5bnRhY3RpYyBzdWJ0cmVlIHJlZmVyZW5jZWQgYnkgTm9kZSAoaS5lLiB0aGUgZ2l2ZW4g bm9kZQogICAtLSAgYW5kIGFsbCBpdHMgc3ludGFjdGljIGRlc2NlbmRlbnRzKSBhcmUgZGVsZXRl ZCBhcyBkZXNjcmliZWQgYWJvdmUgZm9yCiAgIC0tICBEZWxldGVfTm9kZS4KCiAgIGZ1bmN0aW9u IEV4dGVuZF9Ob2RlIChOb2RlIDogTm9kZV9JZCkgcmV0dXJuIEVudGl0eV9JZDsKICAgLS0gIFRo aXMgZnVuY3Rpb24gcmV0dXJucyBhIGNvcHkgb2YgaXRzIGlucHV0IG5vZGUgd2l0aCBhbiBleHRl bnNpb24KICAgLS0gIGFkZGVkLiBUaGUgZmllbGRzIG9mIHRoZSBleHRlbnNpb24gYXJlIHNldCB0 byBFbXB0eS4gRHVlIHRvIHRoZSB3YXkKICAgLS0gIGV4dGVuc2lvbnMgYXJlIGhhbmRsZWQgKGFz IHR3byBjb25zZWN1dGl2ZSBhcnJheSBlbGVtZW50cyksIGl0IG1heQogICAtLSAgYmUgbmVjZXNz YXJ5IHRvIHJlYWxsb2NhdGUgdGhlIG5vZGUsIHNvIHRoYXQgdGhlIHJldHVybmVkIHZhbHVlIGlz CiAgIC0tICBub3QgdGhlIHNhbWUgYXMgdGhlIGlucHV0IHZhbHVlLCBidXQgd2hlcmUgcG9zc2li bGUgdGhlIHJldHVybmVkCiAgIC0tICB2YWx1ZSB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBpbnB1 dCB2YWx1ZSAoaS5lLiB0aGUgZXh0ZW5zaW9uIHdpbGwKICAgLS0gIG9jY3VyIGluIHBsYWNlKS4g SXQgaXMgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSB0aGF0CiAgIC0tICBh bnkgcG9pbnRlcnMgdG8gdGhlIG9yaWdpbmFsIG5vZGUgYXJlIGFwcHJvcHJpYXRlbHkgdXBkYXRl ZC4gVGhpcwogICAtLSAgZnVuY3Rpb24gaXMgdXNlZCBvbmx5IGJ5IFNpbmZvLkNOIHRvIGNoYW5n ZSBub2RlcyBpbnRvIHRoZWlyCiAgIC0tICBjb3JyZXNwb25kaW5nIGVudGl0aWVzLgoKICAgdHlw ZSBUcmF2ZXJzZV9SZXN1bHQgaXMgKE9LLCBTa2lwLCBBYmFuZG9uKTsKICAgLS0gIFRoaXMgaXMg dGhlIHR5cGUgb2YgdGhlIHJlc3VsdCByZXR1cm5lZCBieSB0aGUgUHJvY2VzcyBmdW5jdGlvbiBw YXNzZWQKICAgLS0gIHRvIFRyYXZlcnNlX0Z1bmMgYW5kIFRyYXZlcnNlX1Byb2MgYW5kIGFsc28g dGhlIHR5cGUgb2YgdGhlIHJlc3VsdCBvZgogICAtLSAgVHJhdmVyc2VfRnVuYyBpdHNlbGYuIFNl ZSBkZXNjcmlwdGlvbnMgYmVsb3cgZm9yIGRldGFpbHMuCgogICBnZW5lcmljCiAgICAgd2l0aCBm dW5jdGlvbiBQcm9jZXNzIChOIDogTm9kZV9JZCkgcmV0dXJuIFRyYXZlcnNlX1Jlc3VsdCBpcyA8 PjsKICAgZnVuY3Rpb24gVHJhdmVyc2VfRnVuYyAoTm9kZSA6IE5vZGVfSWQpIHJldHVybiBUcmF2 ZXJzZV9SZXN1bHQ7CiAgIC0tICBUaGlzIGlzIGEgZ2VuZXJpYyBmdW5jdGlvbiB0aGF0LCBnaXZl biB0aGUgcGFyZW50IG5vZGUgZm9yIGEgc3VidHJlZSwKICAgLS0gIHRyYXZlcnNlcyBhbGwgc3lu dGFjdGljIG5vZGVzIG9mIHRoaXMgdHJlZSwgY2FsbGluZyB0aGUgZ2l2ZW4gZnVuY3Rpb24KICAg LS0gIFByb2Nlc3Mgb24gZWFjaCBvbmUuIFRoZSB0cmF2ZXJzYWwgaXMgY29udHJvbGxlZCBhcyBm b2xsb3dzIGJ5IHRoZQogICAtLSAgcmVzdWx0IHJldHVybmVkIGJ5IFByb2Nlc3M6CgogICAtLSAg ICBPSyAgICAgICBUaGUgdHJhdmVyc2FsIGNvbnRpbnVlcyBub3JtYWxseSB3aXRoIHRoZSBjaGls ZHJlbiBvZgogICAtLSAgICAgICAgICAgICB0aGUgbm9kZSBqdXN0IHByb2Nlc3NlZC4KCiAgIC0t ICAgIFNraXAgICAgIFRoZSBjaGlsZHJlbiBvZiB0aGUgbm9kZSBqdXN0IHByb2Nlc3NlZCBhcmUg c2tpcHBlZCBhbmQKICAgLS0gICAgICAgICAgICAgZXhjbHVkZWQgZnJvbSB0aGUgdHJhdmVyc2Fs LCBidXQgb3RoZXJ3aXNlIHByb2Nlc3NpbmcKICAgLS0gICAgICAgICAgICAgY29udGludWVzIGVs c2V3aGVyZSBpbiB0aGUgdHJlZS4KCiAgIC0tICAgIEFiYW5kb24gIFRoZSBlbnRpcmUgdHJhdmVy c2FsIGlzIGltbWVkaWF0ZWx5IGFiYW5kb25lZCwgYW5kIHRoZQogICAtLSAgICAgICAgICAgICBv cmlnaW5hbCBjYWxsIHRvIFRyYXZlcnNlIHJldHVybnMgQWJhbmRvbi4KCiAgIC0tICBUaGUgcmVz dWx0IHJldHVybmVkIGJ5IFRyYXZlcnNlIGlzIEFiYW5kb24gaWYgcHJvY2Vzc2luZyB3YXMgdGVy bWluYXRlZAogICAtLSAgYnkgYSBjYWxsIHRvIFByb2Nlc3MgcmV0dXJuaW5nIEFiYW5kb24sIG90 aGVyd2lzZSBpdCBpcyBPSyAobWVhbmluZyB0aGF0CiAgIC0tICBhbGwgY2FsbHMgdG8gcHJvY2Vz cyByZXR1cm5lZCBlaXRoZXIgT0sgb3IgU2tpcCkuCgogICBnZW5lcmljCiAgICAgd2l0aCBmdW5j dGlvbiBQcm9jZXNzIChOIDogTm9kZV9JZCkgcmV0dXJuIFRyYXZlcnNlX1Jlc3VsdCBpcyA8PjsK ICAgcHJvY2VkdXJlIFRyYXZlcnNlX1Byb2MgKE5vZGUgOiBOb2RlX0lkKTsKICAgcHJhZ21hIElu bGluZSAoVHJhdmVyc2VfUHJvYyk7CiAgIC0tICBUaGlzIGlzIHNpbWlsYXIgdG8gVHJhdmVyc2Vf RnVuYyBleGNlcHQgdGhhdCBubyByZXN1bHQgaXMgcmV0dXJuZWQsCiAgIC0tICBpLmUuIFRyYXZl cnNlX0Z1bmMgaXMgY2FsbGVkIGFuZCB0aGUgcmVzdWx0IGlzIHNpbXBseSBkaXNjYXJkZWQuCgog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTm9kZSBBY2Nlc3MgRnVuY3Rpb25z IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmb2xsb3dpbmcg ZnVuY3Rpb25zIHJldHVybiB0aGUgY29udGVudHMgb2YgdGhlIGluZGljYXRlZCBmaWVsZCBvZgog ICAtLSAgdGhlIG5vZGUgcmVmZXJlbmNlZCBieSB0aGUgYXJndW1lbnQsIHdoaWNoIGlzIGEgTm9k ZV9JZC4KCiAgIGZ1bmN0aW9uIE5raW5kICAgICAgICAgICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IE5vZGVfS2luZDsKICAgcHJhZ21hIElubGluZSAoTmtpbmQpOwoKICAgZnVuY3Rpb24gQW5hbHl6 ZWQgICAgICAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgcHJhZ21hIElubGlu ZSAoQW5hbHl6ZWQpOwoKICAgZnVuY3Rpb24gQ29tZXNfRnJvbV9Tb3VyY2UgKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgcHJhZ21hIElubGluZSAoQ29tZXNfRnJvbV9Tb3VyY2UpOwoK ICAgZnVuY3Rpb24gRXJyb3JfUG9zdGVkICAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsKICAgcHJhZ21hIElubGluZSAoRXJyb3JfUG9zdGVkKTsKCiAgIGZ1bmN0aW9uIFNsb2MgICAg ICAgICAgICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIFNvdXJjZV9QdHI7CiAgIHByYWdtYSBJbmxp bmUgKFNsb2MpOwoKICAgZnVuY3Rpb24gUGFyZW5fQ291bnQgICAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gUGFyZW5fQ291bnRfVHlwZTsKICAgcHJhZ21hIElubGluZSAoUGFyZW5fQ291bnQpOwoK ICAgZnVuY3Rpb24gUGFyZW50ICAgICAgICAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9J ZDsKICAgcHJhZ21hIElubGluZSAoUGFyZW50KTsKICAgLS0gIFJldHVybnMgdGhlIHBhcmVudCBv ZiBhIG5vZGUgaWYgdGhlIG5vZGUgaXMgbm90IGEgbGlzdCBtZW1iZXIsIG9yCiAgIC0tICBlbHNl IHRoZSBwYXJlbnQgb2YgdGhlIGxpc3QgY29udGFpbmluZyB0aGUgbm9kZSBpZiB0aGUgbm9kZSBp cyBhCiAgIC0tICBsaXN0IG1lbWJlci4KCiAgIGZ1bmN0aW9uIE5vICAgICAgICAgICAgICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgIHByYWdtYSBJbmxpbmUgKE5vKTsKICAgLS0g IFRlc3RzIGdpdmVuIElkIGZvciBlcXVhbGl0eSB3aXRoIHRoZSBFbXB0eSBub2RlLiBUaGlzIGFs bG93cyBub3RhdGlvbnMKICAgLS0gIGxpa2UgImlmIE5vIChWYXJpYW50X1BhcnQpIiBhcyBvcHBv c2VkIHRvICJpZiBWYXJpYW50X1BhcnQgPSBFbXB0eSIuCgogICBmdW5jdGlvbiBQcmVzZW50ICAg ICAgICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICBwcmFnbWEgSW5saW5lIChQ cmVzZW50KTsKICAgLS0gIFRlc3RzIGdpdmVuIElkIGZvciBpbmVxdWFsaXR5IHdpdGggdGhlIEVt cHR5IG5vZGUuIFRoaXMgYWxsb3dzIG5vdGF0aW9ucwogICAtLSAgbGlrZSAiaWYgUHJlc2VudCAo U3RhdGVtZW50KSIgYXMgb3Bwb3NlZCB0byAiaWYgU3RhdGVtZW50IC89IEVtcHR5Ii4KCiAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEVudGl0eSBBY2Nlc3MgRnVuY3Rpb25z IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGZvbGxvd2lu ZyBmdW5jdGlvbnMgYXBwbHkgb25seSB0byBFbnRpdHlfSWQgdmFsdWVzLCBpLmUuCiAgIC0tICB0 byBleHRlbmRlZCBub2Rlcy4KCiAgIGZ1bmN0aW9uIEVraW5kIChFIDogRW50aXR5X0lkKSByZXR1 cm4gRW50aXR5X0tpbmQ7CiAgIHByYWdtYSBJbmxpbmUgKEVraW5kKTsKCiAgIGZ1bmN0aW9uIENv bnZlbnRpb24gKEUgOiBFbnRpdHlfSWQpIHJldHVybiBDb252ZW50aW9uX0lkOwogICBwcmFnbWEg SW5saW5lIChDb252ZW50aW9uKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gTm9kZSBVcGRhdGUgUHJvY2VkdXJlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgogICAtLSAgVGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgc2V0IGEgc3BlY2lmaWVkIGZpZWxk IGluIHRoZSBub2RlIHdob3NlIElkIGlzCiAgIC0tICBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3Vt ZW50LiBUaGUgc2Vjb25kIHBhcmFtZXRlciBpcyB0aGUgbmV3IHZhbHVlCiAgIC0tICB0byBiZSBz ZXQgaW4gdGhlIHNwZWNpZmllZCBmaWVsZC4gTm90ZSB0aGF0IFNldF9Oa2luZCBpcyBpbiB0aGUg bmV4dAogICAtLSAgc2VjdGlvbiwgc2luY2UgaXRzIHVzZSBpcyByZXN0cmljdGVkLgoKICAgcHJv Y2VkdXJlIFNldF9TbG9jICAgICAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBTb3VyY2VfUHRyKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X1Nsb2MpOwoKICAgcHJvY2VkdXJlIFNldF9QYXJlbl9Db3Vu dCAgKE4gOiBOb2RlX0lkOyBWYWwgOiBQYXJlbl9Db3VudF9UeXBlKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X1BhcmVuX0NvdW50KTsKCiAgIHByb2NlZHVyZSBTZXRfUGFyZW50ICAgICAgIChOIDog Tm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9QYXJlbnQpOwoK ICAgcHJvY2VkdXJlIFNldF9BbmFseXplZCAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFu IDo9IFRydWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQW5hbHl6ZWQpOwoKICAgcHJvY2VkdXJl IFNldF9FcnJvcl9Qb3N0ZWQgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfRXJyb3JfUG9zdGVkKTsKCiAgIHByb2NlZHVyZSBTZXRfQ29t ZXNfRnJvbV9Tb3VyY2UgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0NvbWVzX0Zyb21fU291cmNlKTsKICAgLS0gIE5vdGUgdGhhdCB0aGlzIHJvdXRp bmUgaXMgdmVyeSByYXJlbHkgdXNlZCwgc2luY2UgdXN1YWxseSB0aGUKICAgLS0gIGRlZmF1bHQg bWVjaGFuaXNtIHByb3ZpZGVkIHNldHMgdGhlIHJpZ2h0IHZhbHVlLCBidXQgaW4gc29tZQogICAt LSAgdW51c3VhbCBjYXNlcywgdGhlIHZhbHVlIG5lZWRzIHRvIGJlIHJlc2V0IChlLmcuIHdoZW4g YSBzb3VyY2UKICAgLS0gIG5vZGUgaXMgY29waWVkLCBhbmQgdGhlIGNvcHkgbXVzdCBub3QgaGF2 ZSBDb21lc19Gcm9tX1NvdXJjZSBzZXQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgLS0gRW50aXR5IFVwZGF0ZSBQcm9jZWR1cmVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmb2xsb3dpbmcgcHJvY2VkdXJlcyBhcHBseSBvbmx5 IHRvIEVudGl0eV9JZCB2YWx1ZXMsIGkuZS4KICAgLS0gIHRvIGV4dGVuZGVkIG5vZGVzLgoKICAg cHJvY2VkdXJlIFNldF9Fa2luZCAoRSA6IEVudGl0eV9JZDsgVmFsIDogRW50aXR5X0tpbmQpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfRWtpbmQpOwoKICAgcHJvY2VkdXJlIFNldF9Db252ZW50aW9u IChFIDogRW50aXR5X0lkOyBWYWwgOiBDb252ZW50aW9uX0lkKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0NvbnZlbnRpb24pOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFRy ZWUgUmV3cml0ZSBSb3V0aW5lcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAg IC0tICBEdXJpbmcgdGhlIGNvbXBpbGF0aW9uIHByb2Nlc3MgaXQgaXMgbmVjZXNzYXJ5IGluIGEg bnVtYmVyIG9mIHNpdHVhdGlvbnMKICAgLS0gIHRvIHJld3JpdGUgdGhlIHRyZWUuIEluIHNvbWUg Y2FzZXMsIHN1Y2ggcmV3cml0ZXMgZG8gbm90IGFmZmVjdCB0aGUKICAgLS0gIHN0cnVjdHVyZSBv ZiB0aGUgdHJlZSwgZm9yIGV4YW1wbGUsIHdoZW4gYW4gaW5kZXhlZCBjb21wb25lbnQgbm9kZSBp cwogICAtLSAgcmVwbGFjZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcgY2FsbCBub2RlICh0aGUgcGFy c2VyIGNhbm5vdCBkaXN0aW5ndWlzaAogICAtLSAgYmV0d2VlbiB0aGVzZSB0d28gY2FzZXMpLgoK ICAgLS0gIEluIG90aGVyIHNpdHVhdGlvbnMsIHRoZSByZXdyaXRlIGRvZXMgYWZmZWN0IHRoZSBz dHJ1Y3R1cmUgb2YgdGhlCiAgIC0tICB0cmVlLiBFeGFtcGxlcyBhcmUgdGhlIHJlcGxhY2VtZW50 IG9mIGEgZ2VuZXJpYyBpbnN0YW50aWF0aW9uIGJ5IHRoZQogICAtLSAgaW5zdGFudGlhdGVkIHNw ZWMgYW5kIGJvZHksIGFuZCB0aGUgc3RhdGljIGV2YWx1YXRpb24gb2YgZXhwcmVzc2lvbnMuCgog ICAtLSAgSWYgc3VjaCBzdHJ1Y3R1cmFsIG1vZGlmaWNhdGlvbnMgYXJlIGRvbmUgYnkgdGhlIGV4 cGFuZGVyLCB0aGVyZSBhcmUKICAgLS0gIG5vIGRpZmZpY3VsdGllcywgc2luY2UgdGhlIGZvcm0g b2YgdGhlIHRyZWUgYWZ0ZXIgdGhlIGV4cGFuZGVyIGhhcyBubwogICAtLSAgc3BlY2lhbCBzaWdu aWZpY2FuY2UsIGV4Y2VwdCBhcyBpbnB1dCB0byB0aGUgYmFja2VuZCBvZiB0aGUgY29tcGlsZXIu CiAgIC0tICBIb3dldmVyLCBpZiB0aGVzZSBtb2RpZmljYXRpb25zIGFyZSBkb25lIGJ5IHRoZSBz ZW1hbnRpYyBwaGFzZSwgdGhlbgogICAtLSAgaXQgaXMgaW1wb3J0YW50IHRoYXQgdGhleSBiZSBk b25lIGluIGEgbWFubmVyIHdoaWNoIGFsbG93cyB0aGUgb3JpZ2luYWwKICAgLS0gIHRyZWUgdG8g YmUgcHJlc2VydmVkLiBUaGlzIGlzIGJlY2F1c2UgdG9vbHMgbGlrZSBwcmV0dHkgcHJpbnRlcnMg bmVlZAogICAtLSAgdG8gaGF2ZSB0aGlzIG9yaWdpbmFsIHRyZWUgc3RydWN0dXJlIGF2YWlsYWJs ZS4KCiAgIC0tICBUaGUgc3VicHJvZ3JhbXMgaW4gdGhpcyBzZWN0aW9uIGFsbG93IHJld3JpdGlu ZyBvZiB0aGUgdHJlZSBieSBlaXRoZXIKICAgLS0gIGluc2VydGlvbiBvZiBuZXcgbm9kZXMgaW4g YW4gZXhpc3RpbmcgbGlzdCwgb3IgY29tcGxldGUgcmVwbGFjZW1lbnQgb2YKICAgLS0gIGEgc3Vi dHJlZS4gVGhlIHJlc3VsdGluZyB0cmVlIGZvciBtb3N0IHB1cnBvc2VzIGxvb2tzIGFzIHRob3Vn aCBpdCBoYXMKICAgLS0gIGJlZW4gcmVhbGx5IGNoYW5nZWQsIGFuZCB0aGVyZSBpcyBubyB0cmFj ZSBvZiB0aGUgb3JpZ2luYWwuIEhvd2V2ZXIsCiAgIC0tICBzcGVjaWFsIHN1YnByb2dyYW1zLCBh bHNvIGRlZmluZWQgaW4gdGhpcyBzZWN0aW9uLCBhbGxvdyB0aGUgb3JpZ2luYWwKICAgLS0gIHRy ZWUgdG8gYmUgcmVjb25zdHJ1Y3RlZCBpZiBuZWNlc3NhcnkuCgogICAtLSAgRm9yIHRyZWUgbW9k aWZpY2F0aW9ucyBkb25lIGluIHRoZSBleHBhbmRlciwgaXQgaXMgcGVybWlzc2libGUgdG8KICAg LS0gIGRlc3Ryb3kgdGhlIG9yaWdpbmFsIHRyZWUsIGFsdGhvdWdoIGl0IGlzIGFsc28gYWxsb3dh YmxlIHRvIHVzZSB0aGUKICAgLS0gIHRyZWUgcmV3cml0ZSByb3V0aW5lcyB3aGVyZSBpdCBpcyBj b252ZW5pZW50IHRvIGRvIHNvLgoKICAgcHJvY2VkdXJlIE1hcmtfUmV3cml0ZV9JbnNlcnRpb24g KE5ld19Ob2RlIDogTm9kZV9JZCk7CiAgIHByYWdtYSBJbmxpbmUgKE1hcmtfUmV3cml0ZV9JbnNl cnRpb24pOwogICAtLSAgVGhpcyBwcm9jZWR1cmUgbWFya3MgdGhlIGdpdmVuIG5vZGUgYXMgYW4g aW5zZXJ0aW9uIG1hZGUgZHVyaW5nIGEgdHJlZQogICAtLSAgcmV3cml0aW5nIG9wZXJhdGlvbi4g T25seSB0aGUgcm9vdCBuZWVkcyB0byBiZSBtYXJrZWQuIFRoZSBjYWxsIGRvZXMKICAgLS0gIG5v dCBkbyB0aGUgYWN0dWFsIGluc2VydGlvbiwgd2hpY2ggbXVzdCBiZSBkb25lIHVzaW5nIG9uZSBv ZiB0aGUgbm9ybWFsCiAgIC0tICBsaXN0IGluc2VydGlvbiByb3V0aW5lcy4gVGhlIG5vZGUgaXMg dHJlYXRlZCBub3JtYWxseSBpbiBhbGwgcmVzcGVjdHMKICAgLS0gIGV4Y2VwdCBmb3IgaXRzIHJl c3BvbnNlIHRvIElzX1Jld3JpdGVfSW5zZXJ0aW9uLiBUaGUgZnVuY3Rpb24gb2YgdGhlc2UKICAg LS0gIGNhbGxzIGlzIHRvIGJlIGFibGUgdG8gZ2V0IGFuIGFjY3VyYXRlIG9yaWdpbmFsIHRyZWUu IFRoaXMgaGVscHMgdGhlCiAgIC0tICBhY2N1cmFjeSBvZiBTcHJpbnQuU3ByaW50X05vZGUsIGFu ZCBpbiBwYXJ0aWN1bGFyLCB3aGVuIHN0dWJzIGFyZSBiZWluZwogICAtLSAgZ2VuZXJhdGVkLCBp dCBpcyBlc3NlbnRpYWwgdGhhdCB0aGUgb3JpZ2luYWwgdHJlZSBiZSBhY2N1cmF0ZS4KCiAgIGZ1 bmN0aW9uIElzX1Jld3JpdGVfSW5zZXJ0aW9uIChOb2RlIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xl YW47CiAgIHByYWdtYSBJbmxpbmUgKElzX1Jld3JpdGVfSW5zZXJ0aW9uKTsKICAgLS0gIFRlc3Rz IHdoZXRoZXIgdGhlIGdpdmVuIG5vZGUgd2FzIG1hcmtlZCB1c2luZyBTZXRfUmV3cml0ZV9JbnNl cnQuIFRoaXMKICAgLS0gIGlzIHVzZWQgaW4gcmVjb25zdHJ1Y3RpbmcgdGhlIG9yaWdpbmFsIHRy ZWUgKHdoZXJlIHN1Y2ggbm9kZXMgYXJlIHRvCiAgIC0tICBiZSBlbGltaW5hdGVkIGZyb20gdGhl IHJlY29uc3RydWN0ZWQgdHJlZSkuCgogICBwcm9jZWR1cmUgUmV3cml0ZSAoT2xkX05vZGUsIE5l d19Ob2RlIDogTm9kZV9JZCk7CiAgIC0tICBUaGlzIGlzIHVzZWQgd2hlbiBhIGNvbXBsZXRlIHN1 YnRyZWUgaXMgdG8gYmUgcmVwbGFjZWQuIE9sZF9Ob2RlIGlzIHRoZQogICAtLSAgcm9vdCBvZiB0 aGUgb2xkIHN1YnRyZWUgdG8gYmUgcmVwbGFjZWQsIGFuZCBOZXdfTm9kZSBpcyB0aGUgcm9vdCBv ZiB0aGUKICAgLS0gIG5ld2x5IGNvbnN0cnVjdGVkIHJlcGxhY2VtZW50IHN1YnRyZWUuIFRoZSBh Y3R1YWwgbWVjaGFuaXNtIGlzIHRvIHN3YXAKICAgLS0gIHRoZSBjb250ZW50cyBvZiB0aGVzZSB0 d28gbm9kZXMgZml4aW5nIHVwIHRoZSBwYXJlbnQgcG9pbnRlcnMgb2YgdGhlCiAgIC0tICByZXBs YWNlZCBub2RlICh3ZSBkbyBub3QgYXR0ZW1wdCB0byBwcmVzZXJ2ZSBwYXJlbnQgcG9pbnRlcnMg Zm9yIHRoZQogICAtLSAgb3JpZ2luYWwgbm9kZSkuIE5laXRoZXIgT2xkX05vZGUgbm9yIE5ld19O b2RlIGNhbiBiZSBleHRlbmRlZCBub2Rlcy4KICAgLS0KICAgLS0gIE5vdGU6IE5ld19Ob2RlIG1h eSBub3QgY29udGFpbiByZWZlcmVuY2VzIHRvIE9sZF9Ob2RlLCBmb3IgZXhhbXBsZSBhcwogICAt LSAgZGVzY2VuZGVudHMsIHNpbmNlIHRoZSByZXdyaXRlIHdvdWxkIG1ha2Ugc3VjaCByZWZlcmVu Y2VzIGludmFsaWQuIElmCiAgIC0tICBOZXdfTm9kZSBkb2VzIG5lZWQgdG8gcmVmZXJlbmNlIE9s ZF9Ob2RlLCB0aGVuIHRoZXNlIHJlZmVyZW5jZXMgc2hvdWxkCiAgIC0tICBiZSB0byBhIHJlbG9j YXRlZCBjb3B5IG9mIE9sZF9Ob2RlIChzZWUgUmVsb2NhdGVfTm9kZSBwcm9jZWR1cmUpLgogICAt LQogICAtLSAgTm90ZTogVGhlIE9yaWdpbmFsX05vZGUgZnVuY3Rpb24gYXBwbGllZCB0byBPbGRf Tm9kZSAod2hpY2ggaGFzIG5vdwogICAtLSAgYmVlbiByZXBsYWNlZCBieSB0aGUgY29udGVudHMg b2YgTmV3X05vZGUpLCBjYW4gYmUgdXNlZCB0byBvYnRhaW4gdGhlCiAgIC0tICBvcmlnaW5hbCBu b2RlLCBpLmUuIHRoZSBvbGQgY29udGVudHMgb2YgT2xkX05vZGUuCgogICBwcm9jZWR1cmUgUmVw bGFjZSAoT2xkX05vZGUsIE5ld19Ob2RlIDogTm9kZV9JZCk7CiAgIC0tICBUaGlzIGlzIHNpbWls YXIgdG8gUmV3cml0ZSwgZXhjZXB0IHRoYXQgdGhlIG9sZCB2YWx1ZSBvZiBPbGRfTm9kZSBpcwog ICAtLSAgbm90IHNhdmVkLCBhbmQgdGhlIE5ld19Ob2RlIGlzIGRlbGV0ZWQgYWZ0ZXIgdGhlIHJl cGxhY2UsIHNpbmNlIGl0CiAgIC0tICBpcyBhc3N1bWVkIHRoYXQgaXQgY2FuIG5vIGxvbmdlciBi ZSBsZWdpdGltYXRlbHkgbmVlZGVkLiBUaGUgZmxhZwogICAtLSAgSXNfUmV3cml0ZV9TdXNidGl0 dXRlIHdpbGwgYmUgRmFsc2UgZm9yIHRoZSByZXN1bHRpbmcgbm9kZSwgdW5sZXNzCiAgIC0tICBp dCB3YXMgYWxyZWFkeSB0cnVlIG9uIGVudHJ5LCBhbmQgT3JpZ2luYWxfTm9kZSB3aWxsIG5vdCBy ZXR1cm4gdGhlCiAgIC0tICBvcmlnaW5hbCBjb250ZW50cyBvZiB0aGUgT2xkX05vZGUsIGJ1dCBy YXRoZXIgdGhlIE5ld19Ob2RlIHZhbHVlICh1bmxlc3MKICAgLS0gIE9sZF9Ob2RlIGhhZCBhbHJl YWR5IGJlZW4gcmV3cml0dGVuIHVzaW5nIFJld3JpdGUpLiBSZXBsYWNlIGFsc28KICAgLS0gIHBy ZXNlcnZlcyB0aGUgc2V0dGluZyBvZiBDb21lc19Gcm9tX1NvdXJjZS4KICAgLS0KICAgLS0gIE5v dGUsIE5ld19Ob2RlIG1heSBub3QgY29udGFpbiByZWZlcmVuY2VzIHRvIE9sZF9Ob2RlLCBmb3Ig ZXhhbXBsZSBhcwogICAtLSAgZGVzY2VuZGVudHMsIHNpbmNlIHRoZSByZXdyaXRlIHdvdWxkIG1h a2Ugc3VjaCByZWZlcmVuY2VzIGludmFsaWQuIElmCiAgIC0tICBOZXdfTm9kZSBkb2VzIG5lZWQg dG8gcmVmZXJlbmNlIE9sZF9Ob2RlLCB0aGVuIHRoZXNlIHJlZmVyZW5jZXMgc2hvdWxkCiAgIC0t ICBiZSB0byBhIHJlbG9jYXRlZCBjb3B5IG9mIE9sZF9Ob2RlIChzZWUgUmVsb2NhdGVfTm9kZSBw cm9jZWR1cmUpLgogICAtLQogICAtLSAgUmVwbGFjZSBpcyB1c2VkIGluIGNlcnRhaW4gY2lyY3Vt c3RhbmNlcyB3aGVyZSBpdCBpcyBkZXNpcmFibGUgdG8KICAgLS0gIHN1cHByZXNzIGFueSBoaXN0 b3J5IG9mIHRoZSByZXdyaXRpbmcgb3BlcmF0aW9uLiBOb3RhYmx5LCBpdCBpcyB1c2VkCiAgIC0t ICB3aGVuIHRoZSBwYXJzZXIgaGFzIG1pcy1jbGFzc2lmaWVkIGEgbm9kZSAoZS5nLiBhIHRhc2sg ZW50cnkgY2FsbAogICAtLSAgdGhhdCB0aGUgcGFyc2VyIGhhcyBwYXJzZWQgYXMgYSBwcm9jZWR1 cmUgY2FsbCkuCgogICBmdW5jdGlvbiBJc19SZXdyaXRlX1N1YnN0aXR1dGlvbiAoTm9kZSA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOwogICBwcmFnbWEgSW5saW5lIChJc19SZXdyaXRlX1N1YnN0 aXR1dGlvbik7CiAgIC0tICBSZXR1cm4gVHJ1ZSBpZmYgTm9kZSBoYXMgYmVlbiByZXdyaXR0ZW4g KGkuZS4gaWYgTm9kZSBpcyB0aGUgcm9vdAogICAtLSAgb2YgYSBzdWJ0cmVlIHdoaWNoIHdhcyBp bnN0YWxsZWQgdXNpbmcgUmV3cml0ZSkuCgogICBmdW5jdGlvbiBPcmlnaW5hbF9Ob2RlIChOb2Rl IDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7CiAgIHByYWdtYSBJbmxpbmUgKE9yaWdpbmFsX05v ZGUpOwogICAtLSAgSWYgTm9kZSBoYXMgbm90IGJlZW4gcmV3cml0dGVuLCB0aGVuIHJldHVybnMg aXRzIGlucHV0IGFyZ3VtZW50CiAgIC0tICB1bmNoYW5nZWQsIGVsc2UgcmV0dXJucyB0aGUgTm9k ZSBmb3IgdGhlIG9yaWdpbmFsIHN1YnRyZWUuCiAgIC0tCiAgIC0tICBOb3RlOiBQYXJlbnRzIGFy ZSBub3QgcHJlc2VydmVkIGluIG9yaWdpbmFsIHRyZWUgbm9kZXMgdGhhdCBhcmUKICAgLS0gIHJl dHJpZXZlZCBpbiB0aGlzIHdheSAoaS5lLiB0aGVpciBjaGlsZHJlbiBtYXkgaGF2ZSBjaGlsZHJl biB3aG9zZQogICAtLSAgcG9pbnRlcnMgd2hpY2ggcmVmZXJlbmNlIHNvbWUgb3RoZXIgbm9kZSku CgogICAtLSAgTm90ZTogdGhlcmUgaXMgbm8gZGlyZWN0IG1lY2hhbmlzbSBmb3IgZGVsZXRpbmcg YW4gb3JpZ2luYWwgbm9kZSAoaW4KICAgLS0gIGEgbWFubmVyIHRoYXQgY2FuIGJlIHJldmVyc2Vk IGxhdGVyKS4gT25lIHBvc3NpYmxlIGFwcHJvYWNoIGlzIHRvIHVzZQogICAtLSAgUmV3cml0ZSB0 byBzdWJzdGl0dXRlIGEgbnVsbCBzdGF0ZW1lbnQgZm9yIHRoZSBub2RlIHRvIGJlIGRlbGV0ZWQu CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBHZW5lcmljIEZp ZWxkIEFjY2VzcyBSb3V0aW5lcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgLS0gIFRoaXMgc3VicGFja2FnZSBwcm92aWRlcyB0aGUgZnVuY3Rpb25zIGZvciBh Y2Nlc3NpbmcgYW5kIHByb2NlZHVyZXMKICAgLS0gIGZvciBzZXR0aW5nIGZpZWxkcyB0aGF0IGFy ZSBub3JtYWxseSByZWZlcmVuY2VkIGJ5IHRoZWlyIGxvZ2ljYWwKICAgLS0gIHN5bm9ueW1zIGRl ZmluZWQgaW4gcGFja2FnZXMgU2luZm8gYW5kIEVpbmZvLiBBcyBwcmV2aW91c2x5CiAgIC0tICBk ZXNjcmliZWQgdGhlIGltcGxlbWVudGF0aW9ucyBvZiB0aGVzZSBwYWNrYWdlcyB1c2UgdGhlIHBh Y2thZ2UKICAgLS0gIEF0cmVlLlVuY2hlY2tlZF9BY2Nlc3MuCgogICBwYWNrYWdlIFVuY2hlY2tl ZF9BY2Nlc3MgaXMKCiAgICAgIC0tICBGdW5jdGlvbnMgdG8gYWxsb3cgaW50ZXJwcmV0YXRpb24g b2YgVW5pb25fSWQgdmFsdWVzIGFzIFVpbnQKICAgICAgLS0gIGFuZCBVcmVhbCB2YWx1ZXMKCiAg ICAgIGZ1bmN0aW9uIFRvX1VuaW9uIGlzIG5ldyBVbmNoZWNrZWRfQ29udmVyc2lvbiAoVWludCwg IFVuaW9uX0lkKTsKICAgICAgZnVuY3Rpb24gVG9fVW5pb24gaXMgbmV3IFVuY2hlY2tlZF9Db252 ZXJzaW9uIChVcmVhbCwgVW5pb25fSWQpOwoKICAgICAgZnVuY3Rpb24gRnJvbV9VbmlvbiBpcyBu ZXcgVW5jaGVja2VkX0NvbnZlcnNpb24gKFVuaW9uX0lkLCBVaW50KTsKICAgICAgZnVuY3Rpb24g RnJvbV9VbmlvbiBpcyBuZXcgVW5jaGVja2VkX0NvbnZlcnNpb24gKFVuaW9uX0lkLCBVcmVhbCk7 CgogICAgICAtLSAgRnVuY3Rpb25zIHRvIGZldGNoIGNvbnRlbnRzIG9mIGluZGljYXRlZCBmaWVs ZC4gSXQgaXMgYW4gZXJyb3IKICAgICAgLS0gIHRvIGF0dGVtcHQgdG8gcmVhZCB0aGUgdmFsdWUg b2YgYSBmaWVsZCB3aGljaCBpcyBub3QgcHJlc2VudC4KCiAgICAgIGZ1bmN0aW9uIEZpZWxkMSAo TiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQx KTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkMiAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsK ICAgICAgcHJhZ21hIElubGluZSAoRmllbGQyKTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkMyAoTiA6 IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQzKTsK CiAgICAgIGZ1bmN0aW9uIEZpZWxkNCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAg ICAgcHJhZ21hIElubGluZSAoRmllbGQ0KTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkNSAoTiA6IE5v ZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQ1KTsKCiAg ICAgIGZ1bmN0aW9uIEZpZWxkNiAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAg cHJhZ21hIElubGluZSAoRmllbGQ2KTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkNyAoTiA6IE5vZGVf SWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQ3KTsKCiAgICAg IGZ1bmN0aW9uIEZpZWxkOCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJh Z21hIElubGluZSAoRmllbGQ4KTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkOSAoTiA6IE5vZGVfSWQp IHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQ5KTsKCiAgICAgIGZ1 bmN0aW9uIEZpZWxkMTAgKE4gOiBOb2RlX0lkKSByZXR1cm4gVW5pb25fSWQ7CiAgICAgIHByYWdt YSBJbmxpbmUgKEZpZWxkMTApOwoKICAgICAgZnVuY3Rpb24gRmllbGQxMSAoTiA6IE5vZGVfSWQp IHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQxMSk7CgogICAgICBm dW5jdGlvbiBGaWVsZDEyIChOIDogTm9kZV9JZCkgcmV0dXJuIFVuaW9uX0lkOwogICAgICBwcmFn bWEgSW5saW5lIChGaWVsZDEyKTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkMTMgKE4gOiBOb2RlX0lk KSByZXR1cm4gVW5pb25fSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKEZpZWxkMTMpOwoKICAgICAg ZnVuY3Rpb24gRmllbGQxNCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJh Z21hIElubGluZSAoRmllbGQxNCk7CgogICAgICBmdW5jdGlvbiBGaWVsZDE1IChOIDogTm9kZV9J ZCkgcmV0dXJuIFVuaW9uX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChGaWVsZDE1KTsKCiAgICAg IGZ1bmN0aW9uIEZpZWxkMTYgKE4gOiBOb2RlX0lkKSByZXR1cm4gVW5pb25fSWQ7CiAgICAgIHBy YWdtYSBJbmxpbmUgKEZpZWxkMTYpOwoKICAgICAgZnVuY3Rpb24gRmllbGQxNyAoTiA6IE5vZGVf SWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQxNyk7CgogICAg ICBmdW5jdGlvbiBGaWVsZDE4IChOIDogTm9kZV9JZCkgcmV0dXJuIFVuaW9uX0lkOwogICAgICBw cmFnbWEgSW5saW5lIChGaWVsZDE4KTsKCiAgICAgIGZ1bmN0aW9uIEZpZWxkMTkgKE4gOiBOb2Rl X0lkKSByZXR1cm4gVW5pb25fSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKEZpZWxkMTkpOwoKICAg ICAgZnVuY3Rpb24gRmllbGQyMCAoTiA6IE5vZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAg cHJhZ21hIElubGluZSAoRmllbGQyMCk7CgogICAgICBmdW5jdGlvbiBGaWVsZDIxIChOIDogTm9k ZV9JZCkgcmV0dXJuIFVuaW9uX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChGaWVsZDIxKTsKCiAg ICAgIGZ1bmN0aW9uIEZpZWxkMjIgKE4gOiBOb2RlX0lkKSByZXR1cm4gVW5pb25fSWQ7CiAgICAg IHByYWdtYSBJbmxpbmUgKEZpZWxkMjIpOwoKICAgICAgZnVuY3Rpb24gRmllbGQyMyAoTiA6IE5v ZGVfSWQpIHJldHVybiBVbmlvbl9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRmllbGQyMyk7Cgog ICAgICBmdW5jdGlvbiBOb2RlMSAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBw cmFnbWEgSW5saW5lIChOb2RlMSk7CgogICAgICBmdW5jdGlvbiBOb2RlMiAoTiA6IE5vZGVfSWQp IHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlMik7CgogICAgICBmdW5j dGlvbiBOb2RlMyAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5s aW5lIChOb2RlMyk7CgogICAgICBmdW5jdGlvbiBOb2RlNCAoTiA6IE5vZGVfSWQpIHJldHVybiBO b2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlNCk7CgogICAgICBmdW5jdGlvbiBOb2Rl NSAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2Rl NSk7CgogICAgICBmdW5jdGlvbiBOb2RlNiAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwog ICAgICBwcmFnbWEgSW5saW5lIChOb2RlNik7CgogICAgICBmdW5jdGlvbiBOb2RlNyAoTiA6IE5v ZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlNyk7CgogICAg ICBmdW5jdGlvbiBOb2RlOCAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFn bWEgSW5saW5lIChOb2RlOCk7CgogICAgICBmdW5jdGlvbiBOb2RlOSAoTiA6IE5vZGVfSWQpIHJl dHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlOSk7CgogICAgICBmdW5jdGlv biBOb2RlMTAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgICAgcHJhZ21hIElubGlu ZSAoTm9kZTEwKTsKCiAgICAgIGZ1bmN0aW9uIE5vZGUxMSAoTiA6IE5vZGVfSWQpIHJldHVybiBO b2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlMTEpOwoKICAgICAgZnVuY3Rpb24gTm9k ZTEyIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKE5v ZGUxMik7CgogICAgICBmdW5jdGlvbiBOb2RlMTMgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9J ZDsKICAgICAgcHJhZ21hIElubGluZSAoTm9kZTEzKTsKCiAgICAgIGZ1bmN0aW9uIE5vZGUxNCAo TiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlMTQp OwoKICAgICAgZnVuY3Rpb24gTm9kZTE1IChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7CiAg ICAgIHByYWdtYSBJbmxpbmUgKE5vZGUxNSk7CgogICAgICBmdW5jdGlvbiBOb2RlMTYgKE4gOiBO b2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgICAgcHJhZ21hIElubGluZSAoTm9kZTE2KTsKCiAg ICAgIGZ1bmN0aW9uIE5vZGUxNyAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBw cmFnbWEgSW5saW5lIChOb2RlMTcpOwoKICAgICAgZnVuY3Rpb24gTm9kZTE4IChOIDogTm9kZV9J ZCkgcmV0dXJuIE5vZGVfSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKE5vZGUxOCk7CgogICAgICBm dW5jdGlvbiBOb2RlMTkgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgICAgcHJhZ21h IElubGluZSAoTm9kZTE5KTsKCiAgICAgIGZ1bmN0aW9uIE5vZGUyMCAoTiA6IE5vZGVfSWQpIHJl dHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChOb2RlMjApOwoKICAgICAgZnVuY3Rp b24gTm9kZTIxIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7CiAgICAgIHByYWdtYSBJbmxp bmUgKE5vZGUyMSk7CgogICAgICBmdW5jdGlvbiBOb2RlMjIgKE4gOiBOb2RlX0lkKSByZXR1cm4g Tm9kZV9JZDsKICAgICAgcHJhZ21hIElubGluZSAoTm9kZTIyKTsKCiAgICAgIGZ1bmN0aW9uIE5v ZGUyMyAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChO b2RlMjMpOwoKICAgICAgZnVuY3Rpb24gTGlzdDEgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9J ZDsKICAgICAgcHJhZ21hIElubGluZSAoTGlzdDEpOwoKICAgICAgZnVuY3Rpb24gTGlzdDIgKE4g OiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoTGlzdDIpOwoK ICAgICAgZnVuY3Rpb24gTGlzdDMgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsKICAgICAg cHJhZ21hIElubGluZSAoTGlzdDMpOwoKICAgICAgZnVuY3Rpb24gTGlzdDQgKE4gOiBOb2RlX0lk KSByZXR1cm4gTGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoTGlzdDQpOwoKICAgICAgZnVu Y3Rpb24gTGlzdDUgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsKICAgICAgcHJhZ21hIElu bGluZSAoTGlzdDUpOwoKICAgICAgZnVuY3Rpb24gTGlzdDEwIChOIDogTm9kZV9JZCkgcmV0dXJu IExpc3RfSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKExpc3QxMCk7CgogICAgICBmdW5jdGlvbiBM aXN0MTQgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAo TGlzdDE0KTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0MiAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlz dF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxpc3QyKTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0 MyAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxp c3QzKTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0NCAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9J ZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxpc3Q0KTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0OCAo TiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxpc3Q4 KTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0MTMgKE4gOiBOb2RlX0lkKSByZXR1cm4gRWxpc3RfSWQ7 CiAgICAgIHByYWdtYSBJbmxpbmUgKEVsaXN0MTMpOwoKICAgICAgZnVuY3Rpb24gRWxpc3QxNSAo TiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9JZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxpc3Qx NSk7CgogICAgICBmdW5jdGlvbiBFbGlzdDE2IChOIDogTm9kZV9JZCkgcmV0dXJuIEVsaXN0X0lk OwogICAgICBwcmFnbWEgSW5saW5lIChFbGlzdDE2KTsKCiAgICAgIGZ1bmN0aW9uIEVsaXN0MTgg KE4gOiBOb2RlX0lkKSByZXR1cm4gRWxpc3RfSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKEVsaXN0 MTgpOwoKICAgICAgZnVuY3Rpb24gRWxpc3QyMSAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9J ZDsKICAgICAgcHJhZ21hIElubGluZSAoRWxpc3QyMSk7CgogICAgICBmdW5jdGlvbiBFbGlzdDIz IChOIDogTm9kZV9JZCkgcmV0dXJuIEVsaXN0X0lkOwogICAgICBwcmFnbWEgSW5saW5lIChFbGlz dDIzKTsKCiAgICAgIGZ1bmN0aW9uIE5hbWUxIChOIDogTm9kZV9JZCkgcmV0dXJuIE5hbWVfSWQ7 CiAgICAgIHByYWdtYSBJbmxpbmUgKE5hbWUxKTsKCiAgICAgIGZ1bmN0aW9uIE5hbWUyIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5hbWVfSWQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKE5hbWUyKTsKCiAg ICAgIGZ1bmN0aW9uIENoYXJfQ29kZTIgKE4gOiBOb2RlX0lkKSByZXR1cm4gQ2hhcl9Db2RlOwog ICAgICBwcmFnbWEgSW5saW5lIChDaGFyX0NvZGUyKTsKCiAgICAgIGZ1bmN0aW9uIFN0cjMgKE4g OiBOb2RlX0lkKSByZXR1cm4gU3RyaW5nX0lkOwogICAgICBwcmFnbWEgSW5saW5lIChTdHIzKTsK CiAgICAgIC0tICBOb3RlOiB0aGUgZm9sbG93aW5nIFVpbnRubiBmdW5jdGlvbnMgaGF2ZSBhIHNw ZWNpYWwgdGVzdCBmb3IKICAgICAgLS0gIHRoZSBGaWVsZCB2YWx1ZSBiZWluZyBFbXB0eS4gSWYg YW4gRW1wdHkgdmFsdWUgaXMgZm91bmQgdGhlbgogICAgICAtLSAgVWludF8wIGlzIHJldHVybmVk LiBUaGlzIGF2b2lkcyB0aGUgcmF0aGVyIHRyaWNreSByZXF1aXJlbWVudAogICAgICAtLSAgb2Yg aW5pdGlhbGl6aW5nIGFsbCBVaW50IGZpZWxkcyBpbiBub2RlcyBhbmQgZW50aXRpZXMuCgogICAg ICBmdW5jdGlvbiBVaW50MyAoTiA6IE5vZGVfSWQpIHJldHVybiBVaW50OwogICAgICBwcmFnbWEg SW5saW5lIChVaW50Myk7CgogICAgICBmdW5jdGlvbiBVaW50NCAoTiA6IE5vZGVfSWQpIHJldHVy biBVaW50OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50NCk7CgogICAgICBmdW5jdGlvbiBVaW50 NSAoTiA6IE5vZGVfSWQpIHJldHVybiBVaW50OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50NSk7 CgogICAgICBmdW5jdGlvbiBVaW50OCAoTiA6IE5vZGVfSWQpIHJldHVybiBVaW50OwogICAgICBw cmFnbWEgSW5saW5lIChVaW50OCk7CgogICAgICBmdW5jdGlvbiBVaW50OSAoTiA6IE5vZGVfSWQp IHJldHVybiBVaW50OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50OSk7CgogICAgICBmdW5jdGlv biBVaW50MTAgKE4gOiBOb2RlX0lkKSByZXR1cm4gVWludDsKICAgICAgcHJhZ21hIElubGluZSAo VWludDEwKTsKCiAgICAgIGZ1bmN0aW9uIFVpbnQxMSAoTiA6IE5vZGVfSWQpIHJldHVybiBVaW50 OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50MTEpOwoKICAgICAgZnVuY3Rpb24gVWludDEyIChO IDogTm9kZV9JZCkgcmV0dXJuIFVpbnQ7CiAgICAgIHByYWdtYSBJbmxpbmUgKFVpbnQxMik7Cgog ICAgICBmdW5jdGlvbiBVaW50MTMgKE4gOiBOb2RlX0lkKSByZXR1cm4gVWludDsKICAgICAgcHJh Z21hIElubGluZSAoVWludDEzKTsKCiAgICAgIGZ1bmN0aW9uIFVpbnQxNCAoTiA6IE5vZGVfSWQp IHJldHVybiBVaW50OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50MTQpOwoKICAgICAgZnVuY3Rp b24gVWludDE1IChOIDogTm9kZV9JZCkgcmV0dXJuIFVpbnQ7CiAgICAgIHByYWdtYSBJbmxpbmUg KFVpbnQxNSk7CgogICAgICBmdW5jdGlvbiBVaW50MTYgKE4gOiBOb2RlX0lkKSByZXR1cm4gVWlu dDsKICAgICAgcHJhZ21hIElubGluZSAoVWludDE2KTsKCiAgICAgIGZ1bmN0aW9uIFVpbnQxNyAo TiA6IE5vZGVfSWQpIHJldHVybiBVaW50OwogICAgICBwcmFnbWEgSW5saW5lIChVaW50MTcpOwoK ICAgICAgZnVuY3Rpb24gVWludDIyIChOIDogTm9kZV9JZCkgcmV0dXJuIFVpbnQ7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFVpbnQyMik7CgogICAgICBmdW5jdGlvbiBVcmVhbDMgKE4gOiBOb2RlX0lk KSByZXR1cm4gVXJlYWw7CiAgICAgIHByYWdtYSBJbmxpbmUgKFVyZWFsMyk7CgogICAgICBmdW5j dGlvbiBVcmVhbDE4IChOIDogTm9kZV9JZCkgcmV0dXJuIFVyZWFsOwogICAgICBwcmFnbWEgSW5s aW5lIChVcmVhbDE4KTsKCiAgICAgIGZ1bmN0aW9uIFVyZWFsMjEgKE4gOiBOb2RlX0lkKSByZXR1 cm4gVXJlYWw7CiAgICAgIHByYWdtYSBJbmxpbmUgKFVyZWFsMjEpOwoKICAgICAgZnVuY3Rpb24g RmxhZzQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAo RmxhZzQpOwoKICAgICAgZnVuY3Rpb24gRmxhZzUgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzUpOwoKICAgICAgZnVuY3Rpb24gRmxhZzYgKE4g OiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzYpOwoK ICAgICAgZnVuY3Rpb24gRmxhZzcgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAg cHJhZ21hIElubGluZSAoRmxhZzcpOwoKICAgICAgZnVuY3Rpb24gRmxhZzggKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzgpOwoKICAgICAgZnVu Y3Rpb24gRmxhZzkgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElu bGluZSAoRmxhZzkpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEwIChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMCk7CgogICAgICBmdW5jdGlvbiBG bGFnMTEgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAo RmxhZzExKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29s ZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTIpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEz IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcx Myk7CgogICAgICBmdW5jdGlvbiBGbGFnMTQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsK ICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE0KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNSAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTUpOwoK ICAgICAgZnVuY3Rpb24gRmxhZzE2IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAg IHByYWdtYSBJbmxpbmUgKEZsYWcxNik7CgogICAgICBmdW5jdGlvbiBGbGFnMTcgKE4gOiBOb2Rl X0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE3KTsKCiAgICAg IGZ1bmN0aW9uIEZsYWcxOCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFn bWEgSW5saW5lIChGbGFnMTgpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE5IChOIDogTm9kZV9JZCkg cmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxOSk7CgogICAgICBmdW5j dGlvbiBGbGFnMjAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElu bGluZSAoRmxhZzIwKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcyMSAoTiA6IE5vZGVfSWQpIHJldHVy biBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMjEpOwoKICAgICAgZnVuY3Rpb24g RmxhZzIyIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUg KEZsYWcyMik7CgogICAgICBmdW5jdGlvbiBGbGFnMjMgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9v bGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzIzKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcy NCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFn MjQpOwoKICAgICAgZnVuY3Rpb24gRmxhZzI1IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcyNSk7CgogICAgICBmdW5jdGlvbiBGbGFnMjYgKE4g OiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzI2KTsK CiAgICAgIGZ1bmN0aW9uIEZsYWcyNyAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAg ICBwcmFnbWEgSW5saW5lIChGbGFnMjcpOwoKICAgICAgZnVuY3Rpb24gRmxhZzI4IChOIDogTm9k ZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcyOCk7CgogICAg ICBmdW5jdGlvbiBGbGFnMjkgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJh Z21hIElubGluZSAoRmxhZzI5KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWczMCAoTiA6IE5vZGVfSWQp IHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMzApOwoKICAgICAgZnVu Y3Rpb24gRmxhZzMxIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJ bmxpbmUgKEZsYWczMSk7CgogICAgICBmdW5jdGlvbiBGbGFnMzIgKE4gOiBOb2RlX0lkKSByZXR1 cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzMyKTsKCiAgICAgIGZ1bmN0aW9u IEZsYWczMyAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5l IChGbGFnMzMpOwoKICAgICAgZnVuY3Rpb24gRmxhZzM0IChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWczNCk7CgogICAgICBmdW5jdGlvbiBGbGFn MzUgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxh ZzM1KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWczNiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFu OwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMzYpOwoKICAgICAgZnVuY3Rpb24gRmxhZzM3IChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWczNyk7 CgogICAgICBmdW5jdGlvbiBGbGFnMzggKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAg ICAgcHJhZ21hIElubGluZSAoRmxhZzM4KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWczOSAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMzkpOwoKICAg ICAgZnVuY3Rpb24gRmxhZzQwIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHBy YWdtYSBJbmxpbmUgKEZsYWc0MCk7CgogICAgICBmdW5jdGlvbiBGbGFnNDEgKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzQxKTsKCiAgICAgIGZ1 bmN0aW9uIEZsYWc0MiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEg SW5saW5lIChGbGFnNDIpOwoKICAgICAgZnVuY3Rpb24gRmxhZzQzIChOIDogTm9kZV9JZCkgcmV0 dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc0Myk7CgogICAgICBmdW5jdGlv biBGbGFnNDQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGlu ZSAoRmxhZzQ0KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc0NSAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNDUpOwoKICAgICAgZnVuY3Rpb24gRmxh ZzQ2IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZs YWc0Nik7CgogICAgICBmdW5jdGlvbiBGbGFnNDcgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzQ3KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc0OCAo TiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNDgp OwoKICAgICAgZnVuY3Rpb24gRmxhZzQ5IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAg ICAgIHByYWdtYSBJbmxpbmUgKEZsYWc0OSk7CgogICAgICBmdW5jdGlvbiBGbGFnNTAgKE4gOiBO b2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzUwKTsKCiAg ICAgIGZ1bmN0aW9uIEZsYWc1MSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBw cmFnbWEgSW5saW5lIChGbGFnNTEpOwoKICAgICAgZnVuY3Rpb24gRmxhZzUyIChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc1Mik7CgogICAgICBm dW5jdGlvbiBGbGFnNTMgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21h IElubGluZSAoRmxhZzUzKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc1NCAoTiA6IE5vZGVfSWQpIHJl dHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNTQpOwoKICAgICAgZnVuY3Rp b24gRmxhZzU1IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxp bmUgKEZsYWc1NSk7CgogICAgICBmdW5jdGlvbiBGbGFnNTYgKE4gOiBOb2RlX0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzU2KTsKCiAgICAgIGZ1bmN0aW9uIEZs YWc1NyAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChG bGFnNTcpOwoKICAgICAgZnVuY3Rpb24gRmxhZzU4IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xl YW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc1OCk7CgogICAgICBmdW5jdGlvbiBGbGFnNTkg KE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzU5 KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc2MCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwog ICAgICBwcmFnbWEgSW5saW5lIChGbGFnNjApOwoKICAgICAgZnVuY3Rpb24gRmxhZzYxIChOIDog Tm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc2MSk7Cgog ICAgICBmdW5jdGlvbiBGbGFnNjIgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAg cHJhZ21hIElubGluZSAoRmxhZzYyKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc2MyAoTiA6IE5vZGVf SWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNjMpOwoKICAgICAg ZnVuY3Rpb24gRmxhZzY0IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdt YSBJbmxpbmUgKEZsYWc2NCk7CgogICAgICBmdW5jdGlvbiBGbGFnNjUgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzY1KTsKCiAgICAgIGZ1bmN0 aW9uIEZsYWc2NiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5s aW5lIChGbGFnNjYpOwoKICAgICAgZnVuY3Rpb24gRmxhZzY3IChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc2Nyk7CgogICAgICBmdW5jdGlvbiBG bGFnNjggKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAo RmxhZzY4KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc2OSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29s ZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNjkpOwoKICAgICAgZnVuY3Rpb24gRmxhZzcw IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc3 MCk7CgogICAgICBmdW5jdGlvbiBGbGFnNzEgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsK ICAgICAgcHJhZ21hIElubGluZSAoRmxhZzcxKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc3MiAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNzIpOwoK ICAgICAgZnVuY3Rpb24gRmxhZzczIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAg IHByYWdtYSBJbmxpbmUgKEZsYWc3Myk7CgogICAgICBmdW5jdGlvbiBGbGFnNzQgKE4gOiBOb2Rl X0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzc0KTsKCiAgICAg IGZ1bmN0aW9uIEZsYWc3NSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFn bWEgSW5saW5lIChGbGFnNzUpOwoKICAgICAgZnVuY3Rpb24gRmxhZzc2IChOIDogTm9kZV9JZCkg cmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc3Nik7CgogICAgICBmdW5j dGlvbiBGbGFnNzcgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElu bGluZSAoRmxhZzc3KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc3OCAoTiA6IE5vZGVfSWQpIHJldHVy biBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnNzgpOwoKICAgICAgZnVuY3Rpb24g RmxhZzc5IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUg KEZsYWc3OSk7CgogICAgICBmdW5jdGlvbiBGbGFnODAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9v bGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzgwKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc4 MSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFn ODEpOwoKICAgICAgZnVuY3Rpb24gRmxhZzgyIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc4Mik7CgogICAgICBmdW5jdGlvbiBGbGFnODMgKE4g OiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzgzKTsK CiAgICAgIGZ1bmN0aW9uIEZsYWc4NCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAg ICBwcmFnbWEgSW5saW5lIChGbGFnODQpOwoKICAgICAgZnVuY3Rpb24gRmxhZzg1IChOIDogTm9k ZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc4NSk7CgogICAg ICBmdW5jdGlvbiBGbGFnODYgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJh Z21hIElubGluZSAoRmxhZzg2KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc4NyAoTiA6IE5vZGVfSWQp IHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnODcpOwoKICAgICAgZnVu Y3Rpb24gRmxhZzg4IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJ bmxpbmUgKEZsYWc4OCk7CgogICAgICBmdW5jdGlvbiBGbGFnODkgKE4gOiBOb2RlX0lkKSByZXR1 cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzg5KTsKCiAgICAgIGZ1bmN0aW9u IEZsYWc5MCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5l IChGbGFnOTApOwoKICAgICAgZnVuY3Rpb24gRmxhZzkxIChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc5MSk7CgogICAgICBmdW5jdGlvbiBGbGFn OTIgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxh ZzkyKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc5MyAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFu OwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnOTMpOwoKICAgICAgZnVuY3Rpb24gRmxhZzk0IChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWc5NCk7 CgogICAgICBmdW5jdGlvbiBGbGFnOTUgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAg ICAgcHJhZ21hIElubGluZSAoRmxhZzk1KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWc5NiAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnOTYpOwoKICAg ICAgZnVuY3Rpb24gRmxhZzk3IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHBy YWdtYSBJbmxpbmUgKEZsYWc5Nyk7CgogICAgICBmdW5jdGlvbiBGbGFnOTggKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzk4KTsKCiAgICAgIGZ1 bmN0aW9uIEZsYWc5OSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEg SW5saW5lIChGbGFnOTkpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEwMCAoTiA6IE5vZGVfSWQpIHJl dHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTAwKTsKCiAgICAgIGZ1bmN0 aW9uIEZsYWcxMDEgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElu bGluZSAoRmxhZzEwMSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTAyIChOIDogTm9kZV9JZCkgcmV0 dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMDIpOwoKICAgICAgZnVuY3Rp b24gRmxhZzEwMyAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5s aW5lIChGbGFnMTAzKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMDQgKE4gOiBOb2RlX0lkKSByZXR1 cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEwNCk7CgogICAgICBmdW5jdGlv biBGbGFnMTA1IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxp bmUgKEZsYWcxMDUpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEwNiAoTiA6IE5vZGVfSWQpIHJldHVy biBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTA2KTsKCiAgICAgIGZ1bmN0aW9u IEZsYWcxMDcgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGlu ZSAoRmxhZzEwNyk7CgogICAgICBmdW5jdGlvbiBGbGFnMTA4IChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMDgpOwoKICAgICAgZnVuY3Rpb24g RmxhZzEwOSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5l IChGbGFnMTA5KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMTAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzExMCk7CgogICAgICBmdW5jdGlvbiBG bGFnMTExIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUg KEZsYWcxMTEpOwoKICAgICAgZnVuY3Rpb24gRmxhZzExMiAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTEyKTsKCiAgICAgIGZ1bmN0aW9uIEZs YWcxMTMgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAo RmxhZzExMyk7CgogICAgICBmdW5jdGlvbiBGbGFnMTE0IChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMTQpOwoKICAgICAgZnVuY3Rpb24gRmxh ZzExNSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChG bGFnMTE1KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMTYgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9v bGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzExNik7CgogICAgICBmdW5jdGlvbiBGbGFn MTE3IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZs YWcxMTcpOwoKICAgICAgZnVuY3Rpb24gRmxhZzExOCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29s ZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTE4KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcx MTkgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxh ZzExOSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTIwIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xl YW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMjApOwoKICAgICAgZnVuY3Rpb24gRmxhZzEy MSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFn MTIxKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMjIgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEyMik7CgogICAgICBmdW5jdGlvbiBGbGFnMTIz IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcx MjMpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEyNCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFu OwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTI0KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMjUg KE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEy NSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTI2IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMjYpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEyNyAo TiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTI3 KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMjggKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsK ICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEyOCk7CgogICAgICBmdW5jdGlvbiBGbGFnMTI5IChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMjkp OwoKICAgICAgZnVuY3Rpb24gRmxhZzEzMCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwog ICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTMwKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMzEgKE4g OiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEzMSk7 CgogICAgICBmdW5jdGlvbiBGbGFnMTMyIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAg ICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMzIpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEzMyAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTMzKTsK CiAgICAgIGZ1bmN0aW9uIEZsYWcxMzQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAg ICAgcHJhZ21hIElubGluZSAoRmxhZzEzNCk7CgogICAgICBmdW5jdGlvbiBGbGFnMTM1IChOIDog Tm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxMzUpOwoK ICAgICAgZnVuY3Rpb24gRmxhZzEzNiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAg ICBwcmFnbWEgSW5saW5lIChGbGFnMTM2KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxMzcgKE4gOiBO b2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzEzNyk7Cgog ICAgICBmdW5jdGlvbiBGbGFnMTM4IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAg IHByYWdtYSBJbmxpbmUgKEZsYWcxMzgpOwoKICAgICAgZnVuY3Rpb24gRmxhZzEzOSAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTM5KTsKCiAg ICAgIGZ1bmN0aW9uIEZsYWcxNDAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAg cHJhZ21hIElubGluZSAoRmxhZzE0MCk7CgogICAgICBmdW5jdGlvbiBGbGFnMTQxIChOIDogTm9k ZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNDEpOwoKICAg ICAgZnVuY3Rpb24gRmxhZzE0MiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBw cmFnbWEgSW5saW5lIChGbGFnMTQyKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNDMgKE4gOiBOb2Rl X0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE0Myk7CgogICAg ICBmdW5jdGlvbiBGbGFnMTQ0IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHBy YWdtYSBJbmxpbmUgKEZsYWcxNDQpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE0NSAoTiA6IE5vZGVf SWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTQ1KTsKCiAgICAg IGZ1bmN0aW9uIEZsYWcxNDYgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJh Z21hIElubGluZSAoRmxhZzE0Nik7CgogICAgICBmdW5jdGlvbiBGbGFnMTQ3IChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNDcpOwoKICAgICAg ZnVuY3Rpb24gRmxhZzE0OCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFn bWEgSW5saW5lIChGbGFnMTQ4KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNDkgKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE0OSk7CgogICAgICBm dW5jdGlvbiBGbGFnMTUwIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdt YSBJbmxpbmUgKEZsYWcxNTApOwoKICAgICAgZnVuY3Rpb24gRmxhZzE1MSAoTiA6IE5vZGVfSWQp IHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTUxKTsKCiAgICAgIGZ1 bmN0aW9uIEZsYWcxNTIgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21h IElubGluZSAoRmxhZzE1MSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTUzIChOIDogTm9kZV9JZCkg cmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNTEpOwoKICAgICAgZnVu Y3Rpb24gRmxhZzE1NCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEg SW5saW5lIChGbGFnMTUxKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNTUgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE1MSk7CgogICAgICBmdW5j dGlvbiBGbGFnMTU2IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJ bmxpbmUgKEZsYWcxNTEpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE1NyAoTiA6IE5vZGVfSWQpIHJl dHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTUxKTsKCiAgICAgIGZ1bmN0 aW9uIEZsYWcxNTggKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElu bGluZSAoRmxhZzE1MSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTU5IChOIDogTm9kZV9JZCkgcmV0 dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNTkpOwoKICAgICAgZnVuY3Rp b24gRmxhZzE2MCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5s aW5lIChGbGFnMTYwKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNjEgKE4gOiBOb2RlX0lkKSByZXR1 cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE2MSk7CgogICAgICBmdW5jdGlv biBGbGFnMTYyIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxp bmUgKEZsYWcxNjIpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE2MyAoTiA6IE5vZGVfSWQpIHJldHVy biBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTYzKTsKCiAgICAgIGZ1bmN0aW9u IEZsYWcxNjQgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGlu ZSAoRmxhZzE2NCk7CgogICAgICBmdW5jdGlvbiBGbGFnMTY1IChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNjUpOwoKICAgICAgZnVuY3Rpb24g RmxhZzE2NiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5l IChGbGFnMTY2KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNjcgKE4gOiBOb2RlX0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE2Nyk7CgogICAgICBmdW5jdGlvbiBG bGFnMTY4IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUg KEZsYWcxNjgpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE2OSAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTY5KTsKCiAgICAgIGZ1bmN0aW9uIEZs YWcxNzAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAo RmxhZzE3MCk7CgogICAgICBmdW5jdGlvbiBGbGFnMTcxIChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNzEpOwoKICAgICAgZnVuY3Rpb24gRmxh ZzE3MiAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChG bGFnMTcyKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNzMgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9v bGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE3Myk7CgogICAgICBmdW5jdGlvbiBGbGFn MTc0IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZs YWcxNzQpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE3NSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29s ZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTc1KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcx NzYgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxh ZzE3Nik7CgogICAgICBmdW5jdGlvbiBGbGFnMTc3IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xl YW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxNzcpOwoKICAgICAgZnVuY3Rpb24gRmxhZzE3 OCAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOwogICAgICBwcmFnbWEgSW5saW5lIChGbGFn MTc4KTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxNzkgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE3OSk7CgogICAgICBmdW5jdGlvbiBGbGFnMTgw IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcx ODApOwoKICAgICAgZnVuY3Rpb24gRmxhZzE4MSAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFu OwogICAgICBwcmFnbWEgSW5saW5lIChGbGFnMTgxKTsKCiAgICAgIGZ1bmN0aW9uIEZsYWcxODIg KE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsKICAgICAgcHJhZ21hIElubGluZSAoRmxhZzE4 Mik7CgogICAgICBmdW5jdGlvbiBGbGFnMTgzIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 CiAgICAgIHByYWdtYSBJbmxpbmUgKEZsYWcxODMpOwoKICAgICAgLS0gIFByb2NlZHVyZXMgdG8g c2V0IHZhbHVlIG9mIGluZGljYXRlZCBmaWVsZAoKICAgICAgcHJvY2VkdXJlIFNldF9Oa2luZCAo TiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfS2luZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9O a2luZCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxkMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVu aW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkMSk7CgogICAgICBwcm9jZWR1 cmUgU2V0X0ZpZWxkMiAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21h IElubGluZSAoU2V0X0ZpZWxkMik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxkMyAoTiA6IE5v ZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkMyk7 CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxkNCAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lk KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkNCk7CgogICAgICBwcm9jZWR1cmUgU2V0 X0ZpZWxkNSAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZpZWxkNSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxkNiAoTiA6IE5vZGVfSWQ7 IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkNik7CgogICAg ICBwcm9jZWR1cmUgU2V0X0ZpZWxkNyAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAg ICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkNyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxk OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0 X0ZpZWxkOCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZpZWxkOSAoTiA6IE5vZGVfSWQ7IFZhbCA6 IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZpZWxkOSk7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZpZWxkMTAgKE4gOiBOb2RlX0lkOyBWYWwgOiBVbmlvbl9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GaWVsZDEwKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmllbGQxMSAo TiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zp ZWxkMTEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GaWVsZDEyIChOIDogTm9kZV9JZDsgVmFsIDog VW5pb25fSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmllbGQxMik7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZpZWxkMTMgKE4gOiBOb2RlX0lkOyBWYWwgOiBVbmlvbl9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GaWVsZDEzKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmllbGQxNCAo TiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zp ZWxkMTQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GaWVsZDE1IChOIDogTm9kZV9JZDsgVmFsIDog VW5pb25fSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmllbGQxNSk7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZpZWxkMTYgKE4gOiBOb2RlX0lkOyBWYWwgOiBVbmlvbl9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GaWVsZDE2KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmllbGQxNyAo TiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zp ZWxkMTcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GaWVsZDE4IChOIDogTm9kZV9JZDsgVmFsIDog VW5pb25fSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmllbGQxOCk7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZpZWxkMTkgKE4gOiBOb2RlX0lkOyBWYWwgOiBVbmlvbl9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GaWVsZDE5KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmllbGQyMCAo TiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zp ZWxkMjApOwoKICAgICAgcHJvY2VkdXJlIFNldF9GaWVsZDIxIChOIDogTm9kZV9JZDsgVmFsIDog VW5pb25fSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmllbGQyMSk7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZpZWxkMjIgKE4gOiBOb2RlX0lkOyBWYWwgOiBVbmlvbl9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GaWVsZDIyKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmllbGQyMyAo TiA6IE5vZGVfSWQ7IFZhbCA6IFVuaW9uX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zp ZWxkMjMpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5v ZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTEpOwoKICAgICAgcHJvY2VkdXJl IFNldF9Ob2RlMiAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfTm9kZTIpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlMyAoTiA6IE5vZGVfSWQ7 IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTMpOwoKICAgICAg cHJvY2VkdXJlIFNldF9Ob2RlNCAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBw cmFnbWEgSW5saW5lIChTZXRfTm9kZTQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlNSAoTiA6 IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTUp OwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlNiAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQp OwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTYpOwoKICAgICAgcHJvY2VkdXJlIFNldF9O b2RlNyAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfTm9kZTcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlOCAoTiA6IE5vZGVfSWQ7IFZhbCA6 IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTgpOwoKICAgICAgcHJvY2Vk dXJlIFNldF9Ob2RlOSAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfTm9kZTkpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlMTAgKE4gOiBOb2Rl X0lkOyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUxMCk7Cgog ICAgICBwcm9jZWR1cmUgU2V0X05vZGUxMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTExKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9k ZTEyIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9Ob2RlMTIpOwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlMTMgKE4gOiBOb2RlX0lkOyBWYWwg OiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUxMyk7CgogICAgICBwcm9j ZWR1cmUgU2V0X05vZGUxNCAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFn bWEgSW5saW5lIChTZXRfTm9kZTE0KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTE1IChOIDog Tm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9Ob2RlMTUp OwoKICAgICAgcHJvY2VkdXJlIFNldF9Ob2RlMTYgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lk KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUxNik7CgogICAgICBwcm9jZWR1cmUgU2V0 X05vZGUxNyAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5l IChTZXRfTm9kZTE3KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTE4IChOIDogTm9kZV9JZDsg VmFsIDogTm9kZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9Ob2RlMTgpOwoKICAgICAg cHJvY2VkdXJlIFNldF9Ob2RlMTkgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsKICAgICAg cHJhZ21hIElubGluZSAoU2V0X05vZGUxOSk7CgogICAgICBwcm9jZWR1cmUgU2V0X05vZGUyMCAo TiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9k ZTIwKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTIxIChOIDogTm9kZV9JZDsgVmFsIDogTm9k ZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9Ob2RlMjEpOwoKICAgICAgcHJvY2VkdXJl IFNldF9Ob2RlMjIgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElu bGluZSAoU2V0X05vZGUyMik7CgogICAgICBwcm9jZWR1cmUgU2V0X05vZGUyMyAoTiA6IE5vZGVf SWQ7IFZhbCA6IE5vZGVfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTm9kZTIzKTsKCiAg ICAgIHByb2NlZHVyZSBTZXRfTGlzdDEgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsKICAg ICAgcHJhZ21hIElubGluZSAoU2V0X0xpc3QxKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTGlzdDIg KE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0xp c3QyKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTGlzdDMgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0 X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0xpc3QzKTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfTGlzdDQgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0xpc3Q0KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTGlzdDUgKE4gOiBOb2RlX0lkOyBW YWwgOiBMaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0xpc3Q1KTsKCiAgICAgIHBy b2NlZHVyZSBTZXRfTGlzdDEwIChOIDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9MaXN0MTApOwoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0MTQgKE4g OiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0xpc3Qx NCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0VsaXN0MiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEVsaXN0 X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0VsaXN0Mik7CgogICAgICBwcm9jZWR1cmUg U2V0X0VsaXN0MyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEVsaXN0X0lkKTsKICAgICAgcHJhZ21hIElu bGluZSAoU2V0X0VsaXN0Myk7CgogICAgICBwcm9jZWR1cmUgU2V0X0VsaXN0NCAoTiA6IE5vZGVf SWQ7IFZhbCA6IEVsaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0VsaXN0NCk7Cgog ICAgICBwcm9jZWR1cmUgU2V0X0VsaXN0OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEVsaXN0X0lkKTsK ICAgICAgcHJhZ21hIElubGluZSAoU2V0X0VsaXN0OCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0Vs aXN0MTMgKE4gOiBOb2RlX0lkOyBWYWwgOiBFbGlzdF9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9FbGlzdDEzKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRWxpc3QxNSAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEVsaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0VsaXN0MTUpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9FbGlzdDE2IChOIDogTm9kZV9JZDsgVmFsIDogRWxpc3RfSWQpOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfRWxpc3QxNik7CgogICAgICBwcm9jZWR1cmUgU2V0X0Vs aXN0MTggKE4gOiBOb2RlX0lkOyBWYWwgOiBFbGlzdF9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9FbGlzdDE4KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRWxpc3QyMSAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEVsaXN0X0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0VsaXN0MjEpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9FbGlzdDIzIChOIDogTm9kZV9JZDsgVmFsIDogRWxpc3RfSWQpOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfRWxpc3QyMyk7CgogICAgICBwcm9jZWR1cmUgU2V0X05h bWUxIChOIDogTm9kZV9JZDsgVmFsIDogTmFtZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9OYW1lMSk7CgogICAgICBwcm9jZWR1cmUgU2V0X05hbWUyIChOIDogTm9kZV9JZDsgVmFsIDog TmFtZV9JZCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9OYW1lMik7CgogICAgICBwcm9jZWR1 cmUgU2V0X0NoYXJfQ29kZTIgKE4gOiBOb2RlX0lkOyBWYWwgOiBDaGFyX0NvZGUpOwogICAgICBw cmFnbWEgSW5saW5lIChTZXRfQ2hhcl9Db2RlMik7CgogICAgICBwcm9jZWR1cmUgU2V0X1N0cjMg KE4gOiBOb2RlX0lkOyBWYWwgOiBTdHJpbmdfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRf U3RyMyk7CgogICAgICBwcm9jZWR1cmUgU2V0X1VpbnQzIChOIDogTm9kZV9JZDsgVmFsIDogVWlu dCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9VaW50Myk7CgogICAgICBwcm9jZWR1cmUgU2V0 X1VpbnQ0IChOIDogTm9kZV9JZDsgVmFsIDogVWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9VaW50NCk7CgogICAgICBwcm9jZWR1cmUgU2V0X1VpbnQ1IChOIDogTm9kZV9JZDsgVmFsIDog VWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9VaW50NSk7CgogICAgICBwcm9jZWR1cmUg U2V0X1VpbnQ4IChOIDogTm9kZV9JZDsgVmFsIDogVWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9VaW50OCk7CgogICAgICBwcm9jZWR1cmUgU2V0X1VpbnQ5IChOIDogTm9kZV9JZDsgVmFs IDogVWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9VaW50OSk7CgogICAgICBwcm9jZWR1 cmUgU2V0X1VpbnQxMCAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVpbnQpOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfVWludDEwKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfVWludDExIChOIDogTm9kZV9J ZDsgVmFsIDogVWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9VaW50MTEpOwoKICAgICAg cHJvY2VkdXJlIFNldF9VaW50MTIgKE4gOiBOb2RlX0lkOyBWYWwgOiBVaW50KTsKICAgICAgcHJh Z21hIElubGluZSAoU2V0X1VpbnQxMik7CgogICAgICBwcm9jZWR1cmUgU2V0X1VpbnQxMyAoTiA6 IE5vZGVfSWQ7IFZhbCA6IFVpbnQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfVWludDEzKTsK CiAgICAgIHByb2NlZHVyZSBTZXRfVWludDE0IChOIDogTm9kZV9JZDsgVmFsIDogVWludCk7CiAg ICAgIHByYWdtYSBJbmxpbmUgKFNldF9VaW50MTQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9VaW50 MTUgKE4gOiBOb2RlX0lkOyBWYWwgOiBVaW50KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X1Vp bnQxNSk7CgogICAgICBwcm9jZWR1cmUgU2V0X1VpbnQxNiAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVp bnQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfVWludDE2KTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfVWludDE3IChOIDogTm9kZV9JZDsgVmFsIDogVWludCk7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9VaW50MTcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9VaW50MjIgKE4gOiBOb2RlX0lkOyBW YWwgOiBVaW50KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X1VpbnQyMik7CgogICAgICBwcm9j ZWR1cmUgU2V0X1VyZWFsMyAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVyZWFsKTsKICAgICAgcHJhZ21h IElubGluZSAoU2V0X1VyZWFsMyk7CgogICAgICBwcm9jZWR1cmUgU2V0X1VyZWFsMTggKE4gOiBO b2RlX0lkOyBWYWwgOiBVcmVhbCk7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9VcmVhbDE4KTsK CiAgICAgIHByb2NlZHVyZSBTZXRfVXJlYWwyMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVyZWFsKTsK ICAgICAgcHJhZ21hIElubGluZSAoU2V0X1VyZWFsMjEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9G bGFnNCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfRmxhZzQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNSAoTiA6IE5vZGVfSWQ7IFZhbCA6 IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzUpOwoKICAgICAgcHJvY2Vk dXJlIFNldF9GbGFnNiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfRmxhZzYpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNyAoTiA6IE5vZGVf SWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzcpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9GbGFnOCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAg ICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzgpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnOSAo TiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxh ZzkpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29s ZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMCk7CgogICAgICBwcm9jZWR1cmUg U2V0X0ZsYWcxMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfRmxhZzExKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEyIChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTIpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9GbGFnMTMgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAg ICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcx NCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRf RmxhZzE0KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE1IChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTUpOwoKICAgICAgcHJvY2Vk dXJlIFNldF9GbGFnMTYgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21h IElubGluZSAoU2V0X0ZsYWcxNik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNyAoTiA6IE5v ZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE3KTsK CiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE4IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7 CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTgpOwoKICAgICAgcHJvY2VkdXJlIFNldF9G bGFnMTkgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAo U2V0X0ZsYWcxOSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcyMCAoTiA6IE5vZGVfSWQ7IFZh bCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzIwKTsKCiAgICAgIHBy b2NlZHVyZSBTZXRfRmxhZzIxIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GbGFnMjEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMjIgKE4g OiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcy Mik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcyMyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xl YW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzIzKTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfRmxhZzI0IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxp bmUgKFNldF9GbGFnMjQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMjUgKE4gOiBOb2RlX0lk OyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcyNSk7CgogICAg ICBwcm9jZWR1cmUgU2V0X0ZsYWcyNiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAg ICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzI2KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzI3 IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9G bGFnMjcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMjggKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcyOCk7CgogICAgICBwcm9jZWR1 cmUgU2V0X0ZsYWcyOSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfRmxhZzI5KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzMwIChOIDogTm9k ZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMzApOwoK ICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMzEgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsK ICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWczMSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0Zs YWczMiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfRmxhZzMyKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzMzIChOIDogTm9kZV9JZDsgVmFs IDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMzMpOwoKICAgICAgcHJv Y2VkdXJlIFNldF9GbGFnMzQgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJh Z21hIElubGluZSAoU2V0X0ZsYWczNCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWczNSAoTiA6 IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzM1 KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzM2IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh bik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMzYpOwoKICAgICAgcHJvY2VkdXJlIFNl dF9GbGFnMzcgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZsYWczNyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWczOCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzM4KTsKCiAgICAg IHByb2NlZHVyZSBTZXRfRmxhZzM5IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAg IHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMzkpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNDAg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zs YWc0MCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc0MSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJv b2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzQxKTsKCiAgICAgIHByb2NlZHVy ZSBTZXRfRmxhZzQyIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJ bmxpbmUgKFNldF9GbGFnNDIpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNDMgKE4gOiBOb2Rl X0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc0Myk7Cgog ICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc0NCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzQ0KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxh ZzQ1IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9GbGFnNDUpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNDYgKE4gOiBOb2RlX0lkOyBWYWwg OiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc0Nik7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZsYWc0NyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFn bWEgSW5saW5lIChTZXRfRmxhZzQ3KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzQ4IChOIDog Tm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNDgp OwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNDkgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFu KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc0OSk7CgogICAgICBwcm9jZWR1cmUgU2V0 X0ZsYWc1MCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5l IChTZXRfRmxhZzUwKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzUxIChOIDogTm9kZV9JZDsg VmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNTEpOwoKICAgICAg cHJvY2VkdXJlIFNldF9GbGFnNTIgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAg cHJhZ21hIElubGluZSAoU2V0X0ZsYWc1Mik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc1MyAo TiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxh ZzUzKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzU0IChOIDogTm9kZV9JZDsgVmFsIDogQm9v bGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNTQpOwoKICAgICAgcHJvY2VkdXJl IFNldF9GbGFnNTUgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElu bGluZSAoU2V0X0ZsYWc1NSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc1NiAoTiA6IE5vZGVf SWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzU2KTsKCiAg ICAgIHByb2NlZHVyZSBTZXRfRmxhZzU3IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAg ICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNTcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFn NTggKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0 X0ZsYWc1OCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc1OSAoTiA6IE5vZGVfSWQ7IFZhbCA6 IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzU5KTsKCiAgICAgIHByb2Nl ZHVyZSBTZXRfRmxhZzYwIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdt YSBJbmxpbmUgKFNldF9GbGFnNjApOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNjEgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc2MSk7 CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc2MiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4p OwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzYyKTsKCiAgICAgIHByb2NlZHVyZSBTZXRf RmxhZzYzIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9GbGFnNjMpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNjQgKE4gOiBOb2RlX0lkOyBW YWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc2NCk7CgogICAgICBw cm9jZWR1cmUgU2V0X0ZsYWc2NSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBw cmFnbWEgSW5saW5lIChTZXRfRmxhZzY1KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzY2IChO IDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFn NjYpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNjcgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29s ZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc2Nyk7CgogICAgICBwcm9jZWR1cmUg U2V0X0ZsYWc2OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfRmxhZzY4KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzY5IChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNjkpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9GbGFnNzAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAg ICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc3MCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc3 MSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRf RmxhZzcxKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzcyIChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNzIpOwoKICAgICAgcHJvY2Vk dXJlIFNldF9GbGFnNzMgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21h IElubGluZSAoU2V0X0ZsYWc3Myk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc3NCAoTiA6IE5v ZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzc0KTsK CiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzc1IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7 CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnNzUpOwoKICAgICAgcHJvY2VkdXJlIFNldF9G bGFnNzYgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAo U2V0X0ZsYWc3Nik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc3NyAoTiA6IE5vZGVfSWQ7IFZh bCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzc3KTsKCiAgICAgIHBy b2NlZHVyZSBTZXRfRmxhZzc4IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GbGFnNzgpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnNzkgKE4g OiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc3 OSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc4MCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xl YW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzgwKTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfRmxhZzgxIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxp bmUgKFNldF9GbGFnODEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnODIgKE4gOiBOb2RlX0lk OyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc4Mik7CgogICAg ICBwcm9jZWR1cmUgU2V0X0ZsYWc4MyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAg ICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzgzKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzg0 IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9G bGFnODQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnODUgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc4NSk7CgogICAgICBwcm9jZWR1 cmUgU2V0X0ZsYWc4NiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfRmxhZzg2KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzg3IChOIDogTm9k ZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnODcpOwoK ICAgICAgcHJvY2VkdXJlIFNldF9GbGFnODggKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsK ICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWc4OCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0Zs YWc4OSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfRmxhZzg5KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzkwIChOIDogTm9kZV9JZDsgVmFs IDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnOTApOwoKICAgICAgcHJv Y2VkdXJlIFNldF9GbGFnOTEgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJh Z21hIElubGluZSAoU2V0X0ZsYWc5MSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc5MiAoTiA6 IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzky KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzkzIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh bik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnOTMpOwoKICAgICAgcHJvY2VkdXJlIFNl dF9GbGFnOTQgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZsYWc5NCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc5NSAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzk1KTsKCiAgICAg IHByb2NlZHVyZSBTZXRfRmxhZzk2IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAg IHByYWdtYSBJbmxpbmUgKFNldF9GbGFnOTYpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnOTcg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zs YWc5Nyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWc5OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJv b2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzk4KTsKCiAgICAgIHByb2NlZHVy ZSBTZXRfRmxhZzk5IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJ bmxpbmUgKFNldF9GbGFnOTkpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTAwIChOIDogTm9k ZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTAwKTsK CiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEwMSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4p OwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzEwMSk7CgogICAgICBwcm9jZWR1cmUgU2V0 X0ZsYWcxMDIgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZsYWcxMDIpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTAzIChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTAzKTsKCiAg ICAgIHByb2NlZHVyZSBTZXRfRmxhZzEwNCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzEwNCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0Zs YWcxMDUgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAo U2V0X0ZsYWcxMDUpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTA2IChOIDogTm9kZV9JZDsg VmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTA2KTsKCiAgICAg IHByb2NlZHVyZSBTZXRfRmxhZzEwNyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAg ICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzEwNyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcx MDggKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0 X0ZsYWcxMDgpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTA5IChOIDogTm9kZV9JZDsgVmFs IDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTA5KTsKCiAgICAgIHBy b2NlZHVyZSBTZXRfRmxhZzExMCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBw cmFnbWEgSW5saW5lIChTZXRfRmxhZzExMCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMTEg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zs YWcxMTEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTEyIChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTEyKTsKCiAgICAgIHByb2Nl ZHVyZSBTZXRfRmxhZzExMyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFn bWEgSW5saW5lIChTZXRfRmxhZzExMyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMTQgKE4g OiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcx MTQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTE1IChOIDogTm9kZV9JZDsgVmFsIDogQm9v bGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTE1KTsKCiAgICAgIHByb2NlZHVy ZSBTZXRfRmxhZzExNiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfRmxhZzExNik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMTcgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMTcp OwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTE4IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh bik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTE4KTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfRmxhZzExOSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfRmxhZzExOSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMjAgKE4gOiBOb2Rl X0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMjApOwoK ICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTIxIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7 CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTIxKTsKCiAgICAgIHByb2NlZHVyZSBTZXRf RmxhZzEyMiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5l IChTZXRfRmxhZzEyMik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMjMgKE4gOiBOb2RlX0lk OyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMjMpOwoKICAg ICAgcHJvY2VkdXJlIFNldF9GbGFnMTI0IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAg ICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTI0KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxh ZzEyNSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfRmxhZzEyNSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMjYgKE4gOiBOb2RlX0lkOyBW YWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMjYpOwoKICAgICAg cHJvY2VkdXJlIFNldF9GbGFnMTI3IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAg IHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTI3KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEy OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRf RmxhZzEyOCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMjkgKE4gOiBOb2RlX0lkOyBWYWwg OiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMjkpOwoKICAgICAgcHJv Y2VkdXJlIFNldF9GbGFnMTMwIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHBy YWdtYSBJbmxpbmUgKFNldF9GbGFnMTMwKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEzMSAo TiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxh ZzEzMSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMzIgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMzIpOwoKICAgICAgcHJvY2Vk dXJlIFNldF9GbGFnMTMzIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdt YSBJbmxpbmUgKFNldF9GbGFnMTMzKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEzNCAoTiA6 IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzEz NCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMzUgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29s ZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMzUpOwoKICAgICAgcHJvY2VkdXJl IFNldF9GbGFnMTM2IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJ bmxpbmUgKFNldF9GbGFnMTM2KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzEzNyAoTiA6IE5v ZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzEzNyk7 CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxMzggKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFu KTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxMzgpOwoKICAgICAgcHJvY2VkdXJlIFNl dF9GbGFnMTM5IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxp bmUgKFNldF9GbGFnMTM5KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE0MCAoTiA6IE5vZGVf SWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE0MCk7Cgog ICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNDEgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsK ICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxNDEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9G bGFnMTQyIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUg KFNldF9GbGFnMTQyKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE0MyAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE0Myk7CgogICAg ICBwcm9jZWR1cmUgU2V0X0ZsYWcxNDQgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAg ICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxNDQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFn MTQ1IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNl dF9GbGFnMTQ1KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE0NiAoTiA6IE5vZGVfSWQ7IFZh bCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE0Nik7CgogICAgICBw cm9jZWR1cmUgU2V0X0ZsYWcxNDcgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAg cHJhZ21hIElubGluZSAoU2V0X0ZsYWcxNDcpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTQ4 IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9G bGFnMTQ4KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE0OSAoTiA6IE5vZGVfSWQ7IFZhbCA6 IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE0OSk7CgogICAgICBwcm9j ZWR1cmUgU2V0X0ZsYWcxNTAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJh Z21hIElubGluZSAoU2V0X0ZsYWcxNTApOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTUxIChO IDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFn MTUxKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE1MiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJv b2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE1Mik7CgogICAgICBwcm9jZWR1 cmUgU2V0X0ZsYWcxNTMgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21h IElubGluZSAoU2V0X0ZsYWcxNTMpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTU0IChOIDog Tm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTU0 KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE1NSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xl YW4pOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE1NSk7CgogICAgICBwcm9jZWR1cmUg U2V0X0ZsYWcxNTYgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElu bGluZSAoU2V0X0ZsYWcxNTYpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTU3IChOIDogTm9k ZV9JZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTU3KTsK CiAgICAgIHByb2NlZHVyZSBTZXRfRmxhZzE1OCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4p OwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE1OCk7CgogICAgICBwcm9jZWR1cmUgU2V0 X0ZsYWcxNTkgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGlu ZSAoU2V0X0ZsYWcxNTkpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTYwIChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTYwKTsKCiAg ICAgIHByb2NlZHVyZSBTZXRfRmxhZzE2MSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwog ICAgICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE2MSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0Zs YWcxNjIgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAo U2V0X0ZsYWcxNjIpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTYzIChOIDogTm9kZV9JZDsg VmFsIDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTYzKTsKCiAgICAg IHByb2NlZHVyZSBTZXRfRmxhZzE2NCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAg ICBwcmFnbWEgSW5saW5lIChTZXRfRmxhZzE2NCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcx NjUgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0 X0ZsYWcxNjUpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTY2IChOIDogTm9kZV9JZDsgVmFs IDogQm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTY2KTsKCiAgICAgIHBy b2NlZHVyZSBTZXRfRmxhZzE2NyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBw cmFnbWEgSW5saW5lIChTZXRfRmxhZzE2Nyk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNjgg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0Zs YWcxNjgpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTY5IChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTY5KTsKCiAgICAgIHByb2Nl ZHVyZSBTZXRfRmxhZzE3MCAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFn bWEgSW5saW5lIChTZXRfRmxhZzE3MCk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNzEgKE4g OiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcx NzEpOwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTcyIChOIDogTm9kZV9JZDsgVmFsIDogQm9v bGVhbik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTcyKTsKCiAgICAgIHByb2NlZHVy ZSBTZXRfRmxhZzE3MyAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEg SW5saW5lIChTZXRfRmxhZzE3Myk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNzQgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxNzQp OwoKICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTc1IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh bik7CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTc1KTsKCiAgICAgIHByb2NlZHVyZSBT ZXRfRmxhZzE3NiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5s aW5lIChTZXRfRmxhZzE3Nik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxNzcgKE4gOiBOb2Rl X0lkOyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxNzcpOwoK ICAgICAgcHJvY2VkdXJlIFNldF9GbGFnMTc4IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7 CiAgICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTc4KTsKCiAgICAgIHByb2NlZHVyZSBTZXRf RmxhZzE3OSAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5l IChTZXRfRmxhZzE3OSk7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxODAgKE4gOiBOb2RlX0lk OyBWYWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxODApOwoKICAg ICAgcHJvY2VkdXJlIFNldF9GbGFnMTgxIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbik7CiAg ICAgIHByYWdtYSBJbmxpbmUgKFNldF9GbGFnMTgxKTsKCiAgICAgIHByb2NlZHVyZSBTZXRfRmxh ZzE4MiAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOwogICAgICBwcmFnbWEgSW5saW5lIChT ZXRfRmxhZzE4Mik7CgogICAgICBwcm9jZWR1cmUgU2V0X0ZsYWcxODMgKE4gOiBOb2RlX0lkOyBW YWwgOiBCb29sZWFuKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X0ZsYWcxODMpOwoKICAgICAg LS0gIFRoZSBmb2xsb3dpbmcgdmVyc2lvbnMgb2YgU2V0X05vZGVuIGFsc28gc2V0IHRoZSBwYXJl bnQKICAgICAgLS0gIHBvaW50ZXIgb2YgdGhlIHJlZmVyZW5jZWQgbm9kZSBpZiBpdCBpcyBub25f RW1wdHkKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTFfV2l0aF9QYXJlbnQgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUxX1dpdGhfUGFy ZW50KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTJfV2l0aF9QYXJlbnQgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUyX1dpdGhfUGFy ZW50KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTNfV2l0aF9QYXJlbnQgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGUzX1dpdGhfUGFy ZW50KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTRfV2l0aF9QYXJlbnQgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGU0X1dpdGhfUGFy ZW50KTsKCiAgICAgIHByb2NlZHVyZSBTZXRfTm9kZTVfV2l0aF9QYXJlbnQgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsKICAgICAgcHJhZ21hIElubGluZSAoU2V0X05vZGU1X1dpdGhfUGFy ZW50KTsKCiAgICAgIC0tICBUaGUgZm9sbG93aW5nIHZlcnNpb25zIG9mIFNldF9MaXN0biBhbHNv IHNldCB0aGUgcGFyZW50IHBvaW50ZXIgb2YKICAgICAgLS0gIHRoZSByZWZlcmVuY2VkIG5vZGUg aWYgaXQgaXMgbm9uX0VtcHR5LiBUaGUgcHJvY2VkdXJlcyBmb3IgTGlzdDYKICAgICAgLS0gIHRv IExpc3QxMiBjYW4gb25seSBiZSBhcHBsaWVkIHRvIG5vZGVzIHdoaWNoIGhhdmUgYW4gZXh0ZW5z aW9uLgoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0MV9XaXRoX1BhcmVudCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IExpc3RfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTGlzdDFfV2l0aF9QYXJl bnQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0Ml9XaXRoX1BhcmVudCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IExpc3RfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTGlzdDJfV2l0aF9QYXJl bnQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0M19XaXRoX1BhcmVudCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IExpc3RfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTGlzdDNfV2l0aF9QYXJl bnQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0NF9XaXRoX1BhcmVudCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IExpc3RfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTGlzdDRfV2l0aF9QYXJl bnQpOwoKICAgICAgcHJvY2VkdXJlIFNldF9MaXN0NV9XaXRoX1BhcmVudCAoTiA6IE5vZGVfSWQ7 IFZhbCA6IExpc3RfSWQpOwogICAgICBwcmFnbWEgSW5saW5lIChTZXRfTGlzdDVfV2l0aF9QYXJl bnQpOwoKICAgZW5kIFVuY2hlY2tlZF9BY2Nlc3M7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAtLSBQcml2YXRlIFBhcnQgU3VicGFja2FnZSAtLQogICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmb2xsb3dpbmcgcGFja2FnZSBjb250YWlucyB0 aGUgZGVmaW5pdGlvbiBvZiB0aGUgZGF0YSBzdHJ1Y3R1cmUKICAgLS0gIHVzZWQgYnkgdGhlIGlt cGxlbWVudGF0aW9uIG9mIHRoZSBBdHJlZSBwYWNrYWdlLiBMb2dpY2FsbHkgaXQgcmVhbGx5CiAg IC0tICBjb3JyZXNwb25kcyB0byB0aGUgcHJpdmF0ZSBwYXJ0LCBoZW5jZSB0aGUgbmFtZS4gVGhl IHJlYXNvbiB0aGF0IGl0CiAgIC0tICBpcyBkZWZpbmVkIGFzIGEgc3ViLXBhY2thZ2UgaXMgdG8g YWxsb3cgc3BlY2lhbCBhY2Nlc3MgZnJvbSBjbGllbnRzCiAgIC0tICB0aGF0IG5lZWQgdG8gc2Vl IHRoZSBpbnRlcm5hbHMgb2YgdGhlIGRhdGEgc3RydWN0dXJlcy4KCiAgIHBhY2thZ2UgQXRyZWVf UHJpdmF0ZV9QYXJ0IGlzCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t IFRyZWUgUmVwcmVzZW50YXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIFRoZSBub2RlcyBvZiB0aGUgdHJlZSBhcmUgc3RvcmVkIGluIGEgdGFibGUgKGku ZS4gYW4gYXJyYXkpLiBJbiB0aGUKICAgICAgLS0gIGNhc2Ugb2YgZXh0ZW5kZWQgbm9kZXMgZm91 ciBjb25zZWN1dGl2ZSBjb21wb25lbnRzIGluIHRoZSBhcnJheSBhcmUKICAgICAgLS0gIHVzZWQu IFRoZXJlIGFyZSB0aHVzIHR3byBmb3JtYXRzIGZvciBhcnJheSBjb21wb25lbnRzLiBPbmUgaXMg dXNlZAogICAgICAtLSAgZm9yIG5vbi1leHRlbmRlZCBub2RlcywgYW5kIGZvciB0aGUgZmlyc3Qg Y29tcG9uZW50IG9mIGV4dGVuZGVkCiAgICAgIC0tICBub2Rlcy4gVGhlIG90aGVyIGlzIHVzZWQg Zm9yIHRoZSBleHRlbnNpb24gcGFydHMgKHNlY29uZCwgdGhpcmQgYW5kCiAgICAgIC0tICBmb3Vy dGggY29tcG9uZW50cykgb2YgYW4gZXh0ZW5kZWQgbm9kZS4gQSB2YXJpYW50IHJlY29yZCBzdHJ1 Y3R1cmUKICAgICAgLS0gIGlzIHVzZWQgdG8gZGlzdGluZ3Vpc2ggdGhlIHR3byBmb3JtYXRzLgoK ICAgICAgdHlwZSBOb2RlX1JlY29yZCAoSXNfRXh0ZW5zaW9uIDogQm9vbGVhbiA6PSBGYWxzZSkg aXMgcmVjb3JkCgogICAgICAgICAtLSAgTG9naWNhbGx5LCB0aGUgb25seSBmaWVsZCBpbiB0aGUg Y29tbW9uIHBhcnQgaXMgdGhlIGFib3ZlCiAgICAgICAgIC0tICBJc19FeHRlbnNpb24gZGlzY3Jp bWluYW50IChhIHNpbmdsZSBiaXQpLiBIb3dldmVyLCBHaWdpIGNhbm5vdAogICAgICAgICAtLSAg eWV0IGhhbmRsZSBzdWNoIGEgc3RydWN0dXJlLCBzbyB3ZSBmaWxsIG91dCB0aGUgY29tbW9uIHBh cnQgb2YKICAgICAgICAgLS0gIHRoZSByZWNvcmQgd2l0aCBmaWVsZHMgdGhhdCBhcmUgdXNlZCBp biBkaWZmZXJlbnQgd2F5cyBmb3IKICAgICAgICAgLS0gIG5vcm1hbCBub2RlcyBhbmQgbm9kZSBl eHRlbnNpb25zLgoKICAgICAgICAgUGZsYWcxLCBQZmxhZzIgOiBCb29sZWFuOwogICAgICAgICAt LSAgVGhlIFBhcmVuX0NvdW50IGZpZWxkIGlzIHJlcHJlc2VudGVkIHVzaW5nIHR3byBib29sZWFu IGZsYWdzLAogICAgICAgICAtLSAgd2hlcmUgUGZsYWcxIGlzIHdvcnRoIDEsIGFuZCBQZmxhZzIg aXMgd29ydGggMi4gVGhpcyBpcyBkb25lCiAgICAgICAgIC0tICBiZWNhdXNlIHdlIG5lZWQgdG8g YmUgZWFzaWx5IGFibGUgdG8gcmV1c2UgdGhpcyBmaWVsZCBmb3IKICAgICAgICAgLS0gIGV4dHJh IGZsYWdzIGluIHRoZSBleHRlbmRlZCBub2RlIGNhc2UuCgogICAgICAgICBJbl9MaXN0IDogQm9v bGVhbjsKICAgICAgICAgLS0gIEZsYWcgdXNlZCB0byBpbmRpY2F0ZSBpZiBub2RlIGlzIGEgbWVt YmVyIG9mIGEgbGlzdC4KICAgICAgICAgLS0gIFRoaXMgZmllbGQgaXMgY29uc2lkZXJlZCBwcml2 YXRlIHRvIHRoZSBBdHJlZSBwYWNrYWdlLgoKICAgICAgICAgVW51c2VkXzEgOiBCb29sZWFuOwog ICAgICAgICAtLSAgQ3VycmVudGx5IHVudXNlZCBmbGFnCgogICAgICAgICBSZXdyaXRlX0lucyA6 IEJvb2xlYW47CiAgICAgICAgIC0tICBGbGFnIHNldCBieSBNYXJrX1Jld3JpdGVfSW5zZXJ0aW9u IHByb2NlZHVyZS4KICAgICAgICAgLS0gIFRoaXMgZmllbGQgaXMgY29uc2lkZXJlZCBwcml2YXRl IHRvIHRoZSBBdHJlZSBwYWNrYWdlLgoKICAgICAgICAgQW5hbHl6ZWQgOiBCb29sZWFuOwogICAg ICAgICAtLSAgRmxhZyB0byBpbmRpY2F0ZSB0aGUgbm9kZSBoYXMgYmVlbiBhbmFseXplZCAoYW5k IGV4cGFuZGVkKQoKICAgICAgICAgQ29tZXNfRnJvbV9Tb3VyY2UgOiBCb29sZWFuOwogICAgICAg ICAtLSAgRmxhZyB0byBpbmRpY2F0ZSB0aGF0IG5vZGUgY29tZXMgZnJvbSB0aGUgc291cmNlIHBy b2dyYW0gKGkuZS4KICAgICAgICAgLS0gIHdhcyBidWlsdCBieSB0aGUgcGFyc2VyIG9yIHNjYW5u ZXIsIG5vdCB0aGUgYW5hbHl6ZXIgb3IgZXhwYW5kZXIpLgoKICAgICAgICAgRXJyb3JfUG9zdGVk IDogQm9vbGVhbjsKICAgICAgICAgLS0gIEZsYWcgdG8gaW5kaWNhdGUgdGhhdCBhbiBlcnJvciBt ZXNzYWdlIGhhcyBiZWVuIHBvc3RlZCBvbiB0aGUKICAgICAgICAgLS0gIG5vZGUgKHRvIGF2b2lk IGR1cGxpY2F0ZSBmbGFncyBvbiB0aGUgc2FtZSBub2RlKQoKICAgICAgICAgRmxhZzQgIDogQm9v bGVhbjsKICAgICAgICAgRmxhZzUgIDogQm9vbGVhbjsKICAgICAgICAgRmxhZzYgIDogQm9vbGVh bjsKICAgICAgICAgRmxhZzcgIDogQm9vbGVhbjsKICAgICAgICAgRmxhZzggIDogQm9vbGVhbjsK ICAgICAgICAgRmxhZzkgIDogQm9vbGVhbjsKICAgICAgICAgRmxhZzEwIDogQm9vbGVhbjsKICAg ICAgICAgRmxhZzExIDogQm9vbGVhbjsKICAgICAgICAgRmxhZzEyIDogQm9vbGVhbjsKICAgICAg ICAgRmxhZzEzIDogQm9vbGVhbjsKICAgICAgICAgRmxhZzE0IDogQm9vbGVhbjsKICAgICAgICAg RmxhZzE1IDogQm9vbGVhbjsKICAgICAgICAgRmxhZzE2IDogQm9vbGVhbjsKICAgICAgICAgRmxh ZzE3IDogQm9vbGVhbjsKICAgICAgICAgRmxhZzE4IDogQm9vbGVhbjsKICAgICAgICAgLS0gIFRo ZSBlaWdodGVlbiBmbGFncyBmb3IgYSBub3JtYWwgbm9kZQoKICAgICAgICAgLS0gIFRoZSBhYm92 ZSBmaWVsZHMgYXJlIHVzZWQgYXMgZm9sbG93cyBpbiBjb21wb25lbnRzIDItNCBvZgogICAgICAg ICAtLSAgYW4gZXh0ZW5kZWQgbm9kZSBlbnRyeS4KCiAgICAgICAgIC0tICAgIEluX0xpc3QgICAg ICAgICAgICB1c2VkIGFzICBGbGFnMTksIEZsYWc0MCwgRmxhZzEyOQogICAgICAgICAtLSAgICBV bnVzZWRfMSAgICAgICAgICAgdXNlZCBhcyAgRmxhZzIwLCBGbGFnNDEsIEZsYWcxMzAKICAgICAg ICAgLS0gICAgUmV3cml0ZV9JbnMgICAgICAgIHVzZWQgYXMgIEZsYWcyMSwgRmxhZzQyLCBGbGFn MTMxCiAgICAgICAgIC0tICAgIEFuYWx5emVkICAgICAgICAgICB1c2VkIGFzICBGbGFnMjIsIEZs YWc0MywgRmxhZzEzMgogICAgICAgICAtLSAgICBDb21lc19Gcm9tX1NvdXJjZSAgdXNlZCBhcyAg RmxhZzIzLCBGbGFnNDQsIEZsYWcxMzMKICAgICAgICAgLS0gICAgRXJyb3JfUG9zdGVkICAgICAg IHVzZWQgYXMgIEZsYWcyNCwgRmxhZzQ1LCBGbGFnMTM0CiAgICAgICAgIC0tICAgIEZsYWc0ICAg ICAgICAgICAgICB1c2VkIGFzICBGbGFnMjUsIEZsYWc0NiwgRmxhZzEzNQogICAgICAgICAtLSAg ICBGbGFnNSAgICAgICAgICAgICAgdXNlZCBhcyAgRmxhZzI2LCBGbGFnNDcsIEZsYWcxMzYKICAg ICAgICAgLS0gICAgRmxhZzYgICAgICAgICAgICAgIHVzZWQgYXMgIEZsYWcyNywgRmxhZzQ4LCBG bGFnMTM3CiAgICAgICAgIC0tICAgIEZsYWc3ICAgICAgICAgICAgICB1c2VkIGFzICBGbGFnMjgs IEZsYWc0OSwgRmxhZzEzOAogICAgICAgICAtLSAgICBGbGFnOCAgICAgICAgICAgICAgdXNlZCBh cyAgRmxhZzI5LCBGbGFnNTAsIEZsYWcxMzkKICAgICAgICAgLS0gICAgRmxhZzkgICAgICAgICAg ICAgIHVzZWQgYXMgIEZsYWczMCwgRmxhZzUxLCBGbGFnMTQwCiAgICAgICAgIC0tICAgIEZsYWcx MCAgICAgICAgICAgICB1c2VkIGFzICBGbGFnMzEsIEZsYWc1MiwgRmxhZzE0MQogICAgICAgICAt LSAgICBGbGFnMTEgICAgICAgICAgICAgdXNlZCBhcyAgRmxhZzMyLCBGbGFnNTMsIEZsYWcxNDIK ICAgICAgICAgLS0gICAgRmxhZzEyICAgICAgICAgICAgIHVzZWQgYXMgIEZsYWczMywgRmxhZzU0 LCBGbGFnMTQzCiAgICAgICAgIC0tICAgIEZsYWcxMyAgICAgICAgICAgICB1c2VkIGFzICBGbGFn MzQsIEZsYWc1NSwgRmxhZzE0NAogICAgICAgICAtLSAgICBGbGFnMTQgICAgICAgICAgICAgdXNl ZCBhcyAgRmxhZzM1LCBGbGFnNTYsIEZsYWcxNDUKICAgICAgICAgLS0gICAgRmxhZzE1ICAgICAg ICAgICAgIHVzZWQgYXMgIEZsYWczNiwgRmxhZzU3LCBGbGFnMTQ2CiAgICAgICAgIC0tICAgIEZs YWcxNiAgICAgICAgICAgICB1c2VkIGFzICBGbGFnMzcsIEZsYWc1OCwgRmxhZzE0NwogICAgICAg ICAtLSAgICBGbGFnMTcgICAgICAgICAgICAgdXNlZCBhcyAgRmxhZzM4LCBGbGFnNTksIEZsYWcx NDgKICAgICAgICAgLS0gICAgRmxhZzE4ICAgICAgICAgICAgIHVzZWQgYXMgIEZsYWczOSwgRmxh ZzYwLCBGbGFnMTQ5CiAgICAgICAgIC0tICAgIFBmbGFnMSAgICAgICAgICAgICB1c2VkIGFzICBG bGFnNjEsIEZsYWc2MiwgRmxhZzE1MAogICAgICAgICAtLSAgICBQZmxhZzIgICAgICAgICAgICAg dXNlZCBhcyAgRmxhZzYzLCBGbGFnNjQsIEZsYWcxNTEKCiAgICAgICAgIE5raW5kIDogTm9kZV9L aW5kOwogICAgICAgICAtLSAgRm9yIGEgbm9uLWV4dGVuZGVkIG5vZGUsIG9yIHRoZSBpbml0aWFs IHNlY3Rpb24gb2YgYW4gZXh0ZW5kZWQKICAgICAgICAgLS0gIG5vZGUsIHRoaXMgZmllbGQgaG9s ZHMgdGhlIE5vZGVfS2luZCB2YWx1ZS4gRm9yIGFuIGV4dGVuZGVkIG5vZGUsCiAgICAgICAgIC0t ICBUaGUgTmtpbmQgZmllbGQgaXMgdXNlZCBhcyBmb2xsb3dzOgogICAgICAgICAtLQogICAgICAg ICAtLSAgICAgU2Vjb25kIGVudHJ5OiBob2xkcyB0aGUgRWtpbmQgZmllbGQgb2YgdGhlIGVudGl0 eQogICAgICAgICAtLSAgICAgVGhpcmQgZW50cnk6ICBob2xkcyA4IGFkZGl0aW9uYWwgZmxhZ3Mg KEZsYWc2NS1GbGFnNzIpCiAgICAgICAgIC0tICAgICBGb3VydGggZW50cnk6IG5vdCBjdXJyZW50 bHkgdXNlZAoKICAgICAgICAgLS0gIE5vdyBmaW5hbGx5IChvbiBhbiAzMi1iaXQgYm91bmRhcnkh KSBjb21lcyB0aGUgdmFyaWFudCBwYXJ0CgogICAgICAgICBjYXNlIElzX0V4dGVuc2lvbiBpcwoK ICAgICAgICAgICAgLS0gIE5vbi1leHRlbmRlZCBub2RlLCBvciBmaXJzdCBjb21wb25lbnQgb2Yg ZXh0ZW5kZWQgbm9kZQoKICAgICAgICAgICAgd2hlbiBGYWxzZSA9PgoKICAgICAgICAgICAgICAg U2xvYyA6IFNvdXJjZV9QdHI7CiAgICAgICAgICAgICAgIC0tICBTb3VyY2UgbG9jYXRpb24gZm9y IHRoaXMgbm9kZQoKICAgICAgICAgICAgICAgTGluayA6IFVuaW9uX0lkOwogICAgICAgICAgICAg ICAtLSAgVGhpcyBmaWVsZCBpcyB1c2VkIGVpdGhlciBhcyB0aGUgUGFyZW50IHBvaW50ZXIgKGlm IEluX0xpc3QKICAgICAgICAgICAgICAgLS0gIGlzIEZhbHNlKSwgb3IgdG8gcG9pbnQgdG8gdGhl IGxpc3QgaGVhZGVyIChpZiBJbl9MaXN0IGlzCiAgICAgICAgICAgICAgIC0tICBUcnVlKS4gVGhp cyBmaWVsZCBpcyBjb25zaWRlcmVkIHByaXZhdGUgYW5kIGNhbiBiZSBtb2RpZmllZAogICAgICAg ICAgICAgICAtLSAgb25seSBieSBBdHJlZSBvciBieSBObGlzdHMuCgogICAgICAgICAgICAgICBG aWVsZDEgOiBVbmlvbl9JZDsKICAgICAgICAgICAgICAgRmllbGQyIDogVW5pb25fSWQ7CiAgICAg ICAgICAgICAgIEZpZWxkMyA6IFVuaW9uX0lkOwogICAgICAgICAgICAgICBGaWVsZDQgOiBVbmlv bl9JZDsKICAgICAgICAgICAgICAgRmllbGQ1IDogVW5pb25fSWQ7CiAgICAgICAgICAgICAgIC0t ICBGaXZlIGdlbmVyYWwgdXNlIGZpZWxkcywgd2hpY2ggY2FuIGNvbnRhaW4gTm9kZV9JZCwgTGlz dF9JZCwKICAgICAgICAgICAgICAgLS0gIEVsaXN0X0lkLCBTdHJpbmdfSWQsIE5hbWVfSWQsIG9y IENoYXJfQ29kZSB2YWx1ZXMgZGVwZW5kaW5nCiAgICAgICAgICAgICAgIC0tICBvbiB0aGUgdmFs dWVzIGluIE5raW5kIGFuZCAoZm9yIGV4dGVuZGVkIG5vZGVzKSwgaW4gRWtpbmQuCiAgICAgICAg ICAgICAgIC0tICBTZWUgcGFja2FnZXMgU2luZm8gYW5kIEVpbmZvIGZvciBkZXRhaWxzIG9mIHRo ZWlyIHVzZS4KCiAgICAgICAgICAgIC0tICBFeHRlbnNpb24gKHNlY29uZCBjb21wb25lbnQpIG9m IGV4dGVuZGVkIG5vZGUKCiAgICAgICAgICAgIHdoZW4gVHJ1ZSA9PgogICAgICAgICAgICAgICBG aWVsZDYgIDogVW5pb25fSWQ7CiAgICAgICAgICAgICAgIEZpZWxkNyAgOiBVbmlvbl9JZDsKICAg ICAgICAgICAgICAgRmllbGQ4ICA6IFVuaW9uX0lkOwogICAgICAgICAgICAgICBGaWVsZDkgIDog VW5pb25fSWQ7CiAgICAgICAgICAgICAgIEZpZWxkMTAgOiBVbmlvbl9JZDsKICAgICAgICAgICAg ICAgRmllbGQxMSA6IFVuaW9uX0lkOwogICAgICAgICAgICAgICBGaWVsZDEyIDogVW5pb25fSWQ7 CiAgICAgICAgICAgICAgIC0tICBTZXZlbiBhZGRpdGlvbmFsIGdlbmVyYWwgZmllbGRzIGF2YWls YWJsZSBvbmx5IGZvciBlbnRpdGllcwogICAgICAgICAgICAgICAtLSAgU2VlIHBhY2thZ2UgRWlu Zm8gZm9yIGRldGFpbHMgb2YgdGhlaXIgdXNlICh3aGljaCBkZXBlbmRzCiAgICAgICAgICAgICAg IC0tICBvbiB0aGUgdmFsdWUgaW4gdGhlIEVraW5kIGZpZWxkKS4KCiAgICAgICAgICAgIC0tICBJ biB0aGUgdGhpcmQgY29tcG9uZW50LCB0aGUgZXh0ZW5zaW9uIGZvcm1hdCBhcyBkZXNjcmliZWQK ICAgICAgICAgICAgLS0gIGFib3ZlIGlzIHVzZWQgdG8gaG9sZCBhZGRpdGlvbmFsIGdlbmVyYWwg ZmllbGRzIGFuZCBmbGFncwogICAgICAgICAgICAtLSAgYXMgZm9sbG93czoKCiAgICAgICAgICAg IC0tICAgIEZpZWxkNi0xMSAgICAgIEhvbGRzIEZpZWxkMTMtRmllbGQxOAogICAgICAgICAgICAt LSAgICBGaWVsZDEyICAgICAgICBIb2xkcyBGbGFnNzMtRmxhZzk2IGFuZCBDb252ZW50aW9uCgog ICAgICAgICAgICAtLSAgSW4gdGhlIGZvdXJ0aCBjb21wb25lbnQsIHRoZSBleHRlbnNpb24gZm9y bWF0IGFzIGRlc2NyaWJlZAogICAgICAgICAgICAtLSAgYWJvdmUgaXMgdXNlZCB0byBob2xkIGFk ZGl0aW9uYWwgZ2VuZXJhbCBmaWVsZHMgYW5kIGZsYWdzCiAgICAgICAgICAgIC0tICBhcyBmb2xs b3dzOgoKICAgICAgICAgICAgLS0gICAgRmllbGQ2LTEwICAgICAgSG9sZHMgRmllbGQxOS1GaWVs ZDIzCiAgICAgICAgICAgIC0tICAgIEZpZWxkMTEgICAgICAgIEhvbGRzIEZsYWcxNTItRmxhZzE2 NyAoMTYgYml0cyB1bnVzZWQpCiAgICAgICAgICAgIC0tICAgIEZpZWxkMTIgICAgICAgIEhvbGRz IEZsYWc5Ny1GbGFnMTI4CgogICAgICAgICBlbmQgY2FzZTsKICAgICAgZW5kIHJlY29yZDsKCiAg ICAgIHByYWdtYSBQYWNrIChOb2RlX1JlY29yZCk7CiAgICAgIGZvciBOb2RlX1JlY29yZCdTaXpl IHVzZSA4KjMyOwogICAgICBmb3IgTm9kZV9SZWNvcmQnQWxpZ25tZW50IHVzZSA0OwoKICAgICAg LS0gIFRoZSBmb2xsb3dpbmcgZGVmaW5lcyB0aGUgZXh0ZW5kaWJsZSBhcnJheSB1c2VkIGZvciB0 aGUgbm9kZXMgdGFibGUKICAgICAgLS0gIE5vZGVzIHdpdGggZXh0ZW5zaW9ucyB1c2UgdHdvIGNv bnNlY3V0aXZlIGVudHJpZXMgaW4gdGhlIGFycmF5CgogICAgICBwYWNrYWdlIE5vZGVzIGlzIG5l dyBUYWJsZS5UYWJsZSAoCiAgICAgICAgVGFibGVfQ29tcG9uZW50X1R5cGUgPT4gTm9kZV9SZWNv cmQsCiAgICAgICAgVGFibGVfSW5kZXhfVHlwZSAgICAgPT4gTm9kZV9JZCwKICAgICAgICBUYWJs ZV9Mb3dfQm91bmQgICAgICA9PiBGaXJzdF9Ob2RlX0lkLAogICAgICAgIFRhYmxlX0luaXRpYWwg ICAgICAgID0+IEFsbG9jLk5vZGVzX0luaXRpYWwsCiAgICAgICAgVGFibGVfSW5jcmVtZW50ICAg ICAgPT4gQWxsb2MuTm9kZXNfSW5jcmVtZW50LAogICAgICAgIFRhYmxlX05hbWUgICAgICAgICAg ID0+ICJOb2RlcyIpOwoKICAgZW5kIEF0cmVlX1ByaXZhdGVfUGFydDsKCmVuZCBBdHJlZTsKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICBHTkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBTIEkgTiBGIE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAgZSBj ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuNi4xMC4xICQKLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAxLCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4gICAgICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gR05BVCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0 ICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJl ICBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlci0gLS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7 ICB3aXRob3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAt LQotLSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxk IGhhdmUgIHJlY2VpdmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBM aWNlbnNlICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90 LCB3cml0ZSAtLQotLSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBs ZSBQbGFjZSAtIFN1aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIg ZmlsZXMgIGluc3RhbnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91 IGxpbmsgIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFi bGUsIC0tCi0tIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1 bHRpbmcgIGV4ZWN1dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2Vu ZXJhbCAgUHVibGljICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93 ZXZlciBpbnZhbGlkYXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZp bGUgIG1pZ2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gR05BVCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQg IE5ldyBZb3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUg cHJvdmlkZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgVGhpcyBwYWNrYWdlIGRlZmlu ZXMgdGhlIHN0cnVjdHVyZSBvZiB0aGUgYWJzdHJhY3Qgc3ludGF4IHRyZWUuIFRoZSBUcmVlCi0t ICBwYWNrYWdlIHByb3ZpZGVzIGEgYmFzaWMgdHJlZSBzdHJ1Y3R1cmUuIFNpbmZvIGRlc2NyaWJl cyBob3cgdGhpcwotLSAgc3RydWN0dXJlIGlzIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBzeW50YXgg b2YgYW4gQWRhIHByb2dyYW0uCgotLSAgTm90ZTogdGhlIGdyYW1tYXIgdXNlZCBoZXJlIGlzIHRh a2VuIGZyb20gVmVyc2lvbiA1Ljk1IG9mIHRoZSBSTSwgZGF0ZWQKLS0gIE5vdmVtYmVyIDE5OTQu IFRoZSBncmFtbWFyIGluIHRoZSBSTSBpcyBmb2xsb3dlZCB2ZXJ5IGNsb3NlbHkgaW4gdGhlIHRy ZWUKLS0gIGRlc2lnbiwgYW5kIGlzIHJlcGVhdGVkIGFzIHBhcnQgb2YgdGhpcyBzb3VyY2UgZmls ZS4KCi0tICBUaGUgdHJlZSBjb250YWlucyBub3Qgb25seSB0aGUgZnVsbCBzeW50YWN0aWMgcmVw cmVzZW50YXRpb24gb2YgdGhlCi0tICBwcm9ncmFtLCBidXQgYWxzbyB0aGUgcmVzdWx0cyBvZiBz ZW1hbnRpYyBhbmFseXNpcy4gSW4gcGFydGljdWxhciwgdGhlCi0tICBub2RlcyBmb3IgZGVmaW5p bmcgaWRlbnRpZmllcnMsIGRlZmluaW5nIGNoYXJhY3RlciBsaXRlcmFscyBhbmQgZGVmaW5pbmcK LS0gIG9wZXJhdG9yIHN5bWJvbHMsIGNvbGxlY3RpdmVseSByZWZlcnJlZCB0byBhcyBlbnRpdGll cywgcmVwcmVzZW50IHdoYXQKLS0gIHdvdWxkIG5vcm1hbGx5IGJlIHJlZ2FyZGVkIGFzIHRoZSBz eW1ib2wgdGFibGUgaW5mb3JtYXRpb24uIEluIGFkZGl0aW9uCi0tICBhIG51bWJlciBvZiB0aGUg dHJlZSBub2RlcyBjb250YWluIHNlbWFudGljIGluZm9ybWF0aW9uLgoKLS0gIFdBUk5JTkc6IFRo ZXJlIGlzIGEgQyB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZS4gQW55IGNoYW5nZXMgdG8gdGhpcwot LSAgc291cmNlIGZpbGUgbXVzdCBiZSBwcm9wZXJseSByZWZsZWN0ZWQgaW4gdGhpcyBDIGhlYWRl ciBmaWxlIHNpbmZvLmgKLS0gIHdoaWNoIGlzIGNyZWF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHNp bmZvLmFkcyB1c2luZyB4c2luZm8uc3B0LgoKd2l0aCBUeXBlczsgIHVzZSBUeXBlczsKd2l0aCBV aW50cDsgIHVzZSBVaW50cDsKd2l0aCBVcmVhbHA7IHVzZSBVcmVhbHA7CgpwYWNrYWdlIFNpbmZv IGlzCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTWFraW5nIENo YW5nZXMgdG8gVGhpcyBGaWxlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgLS0gIElmIGNoYW5nZXMgYXJlIG1hZGUgdG8gdGhpcyBmaWxlLCBhIG51bWJlciBvZiBy ZWxhdGVkIHN0ZXBzIG11c3QgYmUKICAgLS0gIGNhcnJpZWQgb3V0IHRvIGVuc3VyZSBjb25zaXN0 ZW5jeS4gRmlyc3QsIGlmIGEgZmllbGQgYWNjZXNzIGZ1bmN0aW9uCiAgIC0tICBpcyBhZGRlZCwg aXQgYXBwZWFycyBpbiBzZXZlbiBwbGFjZXM6CgogICAtLSAgICBUaGUgZG9jdW1lbnRhdGlvbiBh c3NvY2lhdGVkIHdpdGggdGhlIG5vZGUKICAgLS0gICAgVGhlIHNwZWMgb2YgdGhlIGFjY2VzcyBm dW5jdGlvbiBpbiBzaW5mby5hZHMKICAgLS0gICAgVGhlIGJvZHkgb2YgdGhlIGFjY2VzcyBmdW5j dGlvbiBpbiBzaW5mby5hZGIKICAgLS0gICAgVGhlIHByYWdtYSBJbmxpbmUgYXQgdGhlIGVuZCBv ZiBzaW5mby5hZHMgZm9yIHRoZSBhY2Nlc3MgZnVuY3Rpb24KICAgLS0gICAgVGhlIHNwZWMgb2Yg dGhlIHNldCBwcm9jZWR1cmUgaW4gc2luZm8uYWRzCiAgIC0tICAgIFRoZSBib2R5IG9mIHRoZSBz ZXQgcHJvY2VkdXJlIGluIHNpbmZvLmFkYgogICAtLSAgICBUaGUgcHJhZ21hIElubGluZSBhdCB0 aGUgZW5kIG9mIHNpbmZvLmFkcyBmb3IgdGhlIHNldCBwcm9jZWR1cmUKCiAgIC0tICBUaGUgZmll bGQgY2hvc2VuIG11c3QgYmUgY29uc2lzdGVudCBpbiBhbGwgcGxhY2VzLCBhbmQsIGZvciBhIG5v ZGUKICAgLS0gIHRoYXQgaXMgYSBzdWJleHByZXNzaW9uLCBtdXN0IG5vdCBvdmVybGFwIGFueSBv ZiB0aGUgc3RhbmRhcmQKICAgLS0gIGV4cHJlc3Npb24gZmllbGRzLiBJbiB0aGUgYm9keSwgdGhl IGNhbGxzIHRvIHRoZSBEY2hlY2tfTm9kZSBkZWJ1ZwogICAtLSAgcHJvY2VkdXJlIHdpbGwgbmVl ZCBjcm9zcy1yZWZlcmVuY2VzIGFkZGluZyBpbiBhbHBoYWJldGljYWwgb3JkZXIuCgogICAtLSAg SW4gYWRkaXRpb24sIGlmIGFueSBvZiB0aGUgc3RhbmRhcmQgZXhwcmVzc2lvbiBmaWVsZHMgaXMg Y2hhbmdlZCwgdGhlbgogICAtLSAgdGhlIHV0aWxpeSBwcm9ncmFtIHdoaWNoIGNyZWF0ZXMgdGhl IFRyZWVwcnMgc3BlYyAoaW4gZmlsZSB0cmVlcHJzLmFkcykKICAgLS0gIG11c3QgYmUgdXBkYXRl ZCBhcHByb3ByaWF0ZWx5LCBzaW5jZSBpdCBzcGVjaWFsIGNhc2VzIGV4cHJlc3Npb24gZmllbGRz LgoKICAgLS0gIElmIGEgbmV3IHRyZWUgbm9kZSBpcyBhZGRlZCwgdGhlbiB0aGUgZm9sbG93aW5n IGNoYW5nZXMgYXJlIG1hZGUKCiAgIC0tICAgIEFkZCBpdCB0byB0aGUgZG9jdW1lbnRhdGlvbiBp biB0aGUgYXBwcm9wcmlhdGUgcGxhY2UKICAgLS0gICAgQWRkIGl0cyBmaWVsZHMgdG8gdGhpcyBk b2N1bWVudGF0aW9uIHNlY3Rpb24KICAgLS0gICAgRGVmaW5lIGl0IGluIHRoZSBhcHByb3ByaWF0 ZSBjbGFzc2lmaWNhdGlvbiBpbiBOb2RlX0tpbmQKICAgLS0gICAgSW4gdGhlIGJvZHkgKHNpbmZv KSwgYWRkIGVudHJpZXMgdG8gdGhlIERjaGVjayBjYWxscyBmb3IgYWxsCiAgIC0tICAgICBpdHMg ZmllbGRzIChleGNlcHQgc3RhbmRhcmQgZXhwcmVzc2lvbiBmaWVsZHMpIHRvIGluY2x1ZGUKICAg LS0gICAgIHRoZSBuZXcgbm9kZSBpbiB0aGUgZGVidWcgY3Jvc3MtcmVmZXJlbmNlIGxpc3QKICAg LS0gICAgQWRkIGFuIGFwcHJvcHJpYXRlIHNlY3Rpb24gdG8gdGhlIGNhc2Ugc3RhdGVtZW50IGlu IHNwcmludC5hZGIKICAgLS0gICAgQWRkIGFuIGFwcHJvcHJpYXRlIHNlY3Rpb24gdG8gdGhlIGNh c2Ugc3RhdGVtZW50IGluIHNlbS5hZGIKICAgLS0gICAgQWRkIGFuIGFwcHJvcHJhaXRlIHNlY3Rp b24gdG8gdGhlIGNhc2Ugc3RhdGVtZW50IGluIGV4cF91dGlsLmFkYgogICAtLSAgICAgKEluc2Vy dF9BY3Rpb25zIHByb2NlZHVyZSkKICAgLS0gICAgRm9yIGEgc3ViZXhwcmVzc2lvbiwgYWRkIGFu IGFwcHJvcHJpYXRlIHNlY3Rpb25zIHRvIHRoZSBjYXNlCiAgIC0tICAgICBzdGF0ZW1lbnQgaW4g c2VtX2V2YWwuYWRiCiAgIC0tICAgIEZvciBhIHN1YmV4cHJlc3Npb24sIGFkZCBhbiBhcHByb3By aWF0ZSBzZWN0aW9ucyB0byB0aGUgY2FzZQogICAtLSAgICAgc3RhdGVtZW50IGluIHNlbV9yZXMu YWRiCgogICAtLSAgRmluYWxseSwgZm91ciB1dGlsaXR5IHByb2dyYW1zIG11c3QgYmUgcnVuOgoK ICAgLS0gICAgUnVuIENTaW5mbyB0byBjaGVjayB0aGF0IHlvdSBoYXZlIG1hZGUgdGhlIGNoYW5n ZXMgY29uc2lzdGVudGx5LgogICAtLSAgICAgSXQgY2hlY2tzIG1vc3Qgb2YgdGhlIHJ1bGVzIGdp dmVuIGFib3ZlLCB3aXRoIGNsZWFyIGVycm9yIG1lc3NhZ2VzLgogICAtLSAgICAgVGhpcyB1dGls aXR5IHJlYWRzIHNpbmZvLmFkcyBhbmQgc2luZm8uYWRiIGFuZCBnZW5lcmF0ZXMgYSByZXBvcnQK ICAgLS0gICAgIHRvIHN0YW5kYXJkIG91dHB1dC4KCiAgIC0tICAgIFJ1biBYU2luZm8gdG8gY3Jl YXRlIGEtc2luZm8uaCwgdGhlIGNvcnJlc3BvbmRpbmcgQyBoZWFkZXIuIFRoaXMKICAgLS0gICAg IHV0aWxpdHkgcmVhZHMgc2luZm8uYWRzIGFuZCBnZW5lcmF0ZXMgYS1zaW5mby5oLiBOb3RlIHRo YXQgaXQKICAgLS0gICAgIGRvZXMgbm90IG5lZWQgdG8gcmVhZCBzaW5mby5hZGIsIHNpbmNlIHRo ZSBjb250ZW50cyBvZiB0aGUgYm9keQogICAtLSAgICAgYXJlIGFsZ29yaXRobWljYWxseSBkZXRl cm1pbmFibGUgZnJvbSB0aGUgc3BlYy4KCiAgIC0tICAgIFJ1biBYVHJlZXBycyB0byBjcmVhdGUg dHJlZXBycy5hZHMsIGFuIHVwZGF0ZWQgdmVyc2lvbiBvZgogICAtLSAgICAgdGhlIG1vZHVsZSB0 aGF0IGlzIHVzZWQgdG8gZHJpdmUgdGhlIHRyZWUgcHJpbnQgcm91dGluZS4gVGhpcwogICAtLSAg ICAgdXRpbGl0eSByZWFkcyAoYnV0IGRvZXMgbm90IG1vZGlmeSkgdHJlZXBycy5hZHQsIHRoZSB0 ZW1wbGF0ZQogICAtLSAgICAgdGhhdCBwcm92aWRlcyB0aGUgYmFzaWMgc3RydWN0dXJlIG9mIHRo ZSBmaWxlLCBhbmQgdGhlbiBmaWxscwogICAtLSAgICAgaW4gdGhlIGRhdGEgZnJvbSB0aGUgY29t bWVudHMgaW4gc2luZm8uYWRzLgoKICAgLS0gICAgUnVuIFhObWFrZSB0byBjcmVhdGUgbm1ha2Uu YWRzIGFuZCBubWFrZS5hZGIsIHRoZSBwYWNrYWdlIGJvZHkKICAgLS0gICAgIGFuZCBzcGVjIG9m IHRoZSBObWFrZSBwYWNrYWdlIHdoaWNoIGNvbnRhaW5zIGZ1bmN0aW9ucyBmb3IKICAgLS0gICAg IGNvbnN0cnVjdGluZyBub2Rlcy4KCiAgIC0tICBOb3RlOiBzb21ldGltZSB3ZSBjb3VsZCB3cml0 ZSBhIHV0aWxpdHkgdGhhdCBhY3R1YWxseSBnZW5lcmF0ZWQgdGhlCiAgIC0tICBib2R5IG9mIHNp bmZvIGZyb20gdGhlIHNwZWMgaW5zdGVhZCBvZiBzaW1wbHkgY2hlY2tpbmcgaXQsIHNpbmNlLCBh cwogICAtLSAgbm90ZWQgYWJvdmUsIHRoZSBjb250ZW50cyBvZiB0aGUgYm9keSBjYW4gYmUgZGV0 ZXJtaW5lZCBmcm9tIHRoZSBzcGVjLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgLS0gSW1wbGljaXQgTm9kZXMgaW4gdGhlIFRyZWUgLS0KICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBHZW5lcmFsbHkgdGhlIHN0cnVjdHVyZSBvZiB0aGUg dHJlZSB2ZXJ5IGNsb3NlbHkgZm9sbG93cyB0aGUgZ3JhbW1hcgogICAtLSAgYXMgZGVmaW5lZCBp biB0aGUgUk0uIEhvd2V2ZXIsIGNlcnRhaW4gbm9kZXMgYXJlIG9taXR0ZWQgdG8gc2F2ZQogICAt LSAgc3BhY2UgYW5kIHNpbXBsaWZ5IHNlbWFudGljIHByb2Nlc3NpbmcuIFR3byBnZW5lcmFsIGNs YXNzZXMgb2Ygc3VjaAogICAtLSAgb21pdHRlZCBub2RlcyBhcmUgYXMgZm9sbG93czoKCiAgIC0t ICAgSWYgdGhlIG9ubHkgcG9zc2liaWxpdGllcyBmb3IgYSBub24tdGVybWluYWwgYXJlIG9uZSBv ciBtb3JlIG90aGVyCiAgIC0tICAgbm9uIHRlcm1pbmFscyAoaS5lLiB0aGUgcnVsZSBpcyBhICJz a2lubnkiIHJ1bGUpLCB0aGVuIHVzdWFsbHkgdGhlCiAgIC0tICAgY29ycmVzcG9uZGluZyBub2Rl IGlzIG9taXR0ZWQgZnJvbSB0aGUgdHJlZSwgYW5kIHRoZSB0YXJnZXQgY29uc3RydWN0CiAgIC0t ICAgYXBwZWFycyBkaXJlY3RseS4gRm9yIGV4YW1wbGUsIGEgcmVhbCB0eXBlIGRlZmluaXRpb24g aXMgZWl0aGVyIGEKICAgLS0gICBmbG9hdGluZyBwb2ludCBkZWZpbml0aW9uIG9yIGEgZml4ZWQg cG9pbnQgZGVmaW5pdGlvbi4gTm8gZXhwbGljaXQKICAgLS0gICBub2RlIGFwcGVhcnMgZm9yIHJl YWwgdHlwZSBkZWZpbml0aW9uLiBJbnN0ZWFkIGVpdGhlciB0aGUgZmxvYXRpbmcKICAgLS0gICBw b2ludCBkZWZpbml0aW9uIG9yIGZpeGVkIHBvaW50IGRlZmluaXRpb24gYXBwZWFycyBkaXJlY3Rs eS4KCiAgIC0tICAgSWYgYSBub24tdGVybWluYWwgY29ycmVzcG9uZHMgdG8gYSBsaXN0IG9mIHNv bWUgb3RoZXIgbm9uLXRlcm1pbmFsCiAgIC0tICAgKHBvc3NpYmx5IHdpdGggc2VwYXJhdGluZyBw dW5jdHVhdGlvbiksIHRoZW4gdXN1YWxseSBpdCBpcyBvbWl0dGVkCiAgIC0tICAgZnJvbSB0aGUg dHJlZSwgYW5kIGEgbGlzdCBvZiBjb21wb25lbnRzIGFwcGVhcnMgaW5zdGVhZC4gRm9yCiAgIC0t ICAgZXhhbXBsZSwgc2VxdWVuY2Ugb2Ygc3RhdGVtZW50cyBkb2VzIG5vdCBhcHBlYXIgZXhwbGlj aXRseSBpbiB0aGUKICAgLS0gICB0cmVlLiBJbnN0ZWFkIGEgbGlzdCBvZiBzdGF0ZW1lbnRzIGFw cGVhcnMgZGlyZWN0bHkuCgogICAtLSAgU29tZSBhZGRpdGlvbmFsIGNhc2VzIG9mIG9taXR0ZWQg bm9kZXMgb2NjdXIgYW5kIGFyZSBkb2N1bWVudGVkCiAgIC0tICBpbmRpdmlkdWFsbHkuIEluIHBh cnRpY3VsYXIsIG1hbnkgbm9kZXMgYXJlIG9taXR0ZWQgaW4gdGhlIHRyZWUKICAgLS0gIGdlbmVy YXRlZCBmb3IgYW4gZXhwcmVzc2lvbi4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgLS0gSGFuZGxpbmcgb2YgRGVmaW5pbmcgSWRlbnRpZmllciBMaXN0 cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAt LSAgSW4gc2V2ZXJhbCBkZWNsYXJhdGl2ZSBmb3JtcyBpbiB0aGUgc3ludGF4LCBsaXN0cyBvZiBk ZWZpbmluZwogICAtLSAgaWRlbnRpZmllcnMgYXBwZWFyIChvYmplY3QgZGVjbGFyYXRpb25zLCBj b21wb25lbnQgZGVjbGFyYXRpb25zLAogICAtLSAgbnVtYmVyIGRlY2xhcmF0aW9ucyBldGMuKQoK ICAgLS0gIFRoZSBzZW1hbnRpY3Mgb2Ygc3VjaCBzdGF0ZW1lbnRzIGFyZSBlcXVpdmFsZW50IHRv IGEgc2VyaWVzIG9mCiAgIC0tICBpZGVudGljYWwgZGVjbGFyYXRpb25zIG9mIHNpbmdsZSBkZWZp bmluZyBpZGVudGlmaWVycyAoZXhjZXB0IHRoYXQKICAgLS0gIGNvbmZvcm1hbmNlIGNoZWNrcyBy ZXF1aXJlIHRoZSBzYW1lIGdyb3VwaW5nIG9mIGlkZW50aWZpZXJzIGluIHRoZQogICAtLSAgcGFy YW1ldGVyIGNhc2UpLgoKICAgLS0gIFRvIHNpbXBsaWZ5IHNlbWFudGljIHByb2Nlc3NpbmcsIHRo ZSBwYXJzZXIgYnJlYWtzIGRvd24gc3VjaCBtdWx0aXBsZQogICAtLSAgZGVjbGFyYXRpb24gY2Fz ZXMgaW50byBzZXF1ZW5jZXMgb2Ygc2luZ2xlIGRlY2xhcmF0aW9ucywgZHVwbGljYXRpbmcKICAg LS0gIHR5cGUgYW5kIGluaXRpYWxpemF0aW9uIGluZm9ybWF0aW9uIGFzIHJlcXVpcmVkLiBUaGUg ZmxhZ3MgTW9yZV9JZHMKICAgLS0gIGFuZCBQcmV2X0lkcyBhcmUgdXNlZCB0byByZWNvcmQgdGhl IG9yaWdpbmFsIGZvcm0gb2YgdGhlIHNvdXJjZSBpbgogICAtLSAgdGhlIGNhc2Ugd2hlcmUgdGhl IG9yaWdpbmFsIHNvdXJjZSB1c2VkIGEgbGlzdCBvZiBuYW1lcywgTW9yZV9JZHMKICAgLS0gIGJl aW5nIHNldCBvbiBhbGwgYnV0IHRoZSBsYXN0IG5hbWUgYW5kIFByZXZfSWRzIGJlaW5nIHNldCBv biBhbGwKICAgLS0gIGJ1dCB0aGUgZmlyc3QgbmFtZS4gVGhlc2UgZmxhZ3MgYXJlIHVzZWQgdG8g cmVjb25zdHJ1Y3QgdGhlIG9yaWdpbmFsCiAgIC0tICBzb3VyY2UgKGUuZy4gaW4gdGhlIFNwcmlu dCBwYWNrYWdlKSwgYW5kIGFsc28gYXJlIGluY2x1ZGVkIGluIHRoZQogICAtLSAgY29uZm9ybWFu Y2UgY2hlY2tzLCBidXQgb3RoZXJ3aXNlIGhhdmUgbm8gc2VtYW50aWMgc2lnbmlmaWNhbmNlLgoK ICAgLS0gIE5vdGU6IHRoZSByZWFzb24gdGhhdCB3ZSB1c2UgTW9yZV9JZHMgYW5kIFByZXZfSWRz IHJhdGhlciB0aGFuCiAgIC0tICBGaXJzdF9OYW1lIGFuZCBMYXN0X05hbWUgZmxhZ3MgaXMgc28g dGhhdCB0aGUgZmxhZ3MgYXJlIG9mZiBpbiB0aGUKICAgLS0gIG5vcm1hbCBvbmUgaWRlbnRpZmll ciBjYXNlLCB3aGljaCBtaW5pbWl6ZXMgdHJlZSBwcmludCBvdXRwdXQuCgogICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAtLSBVc2Ugb2YgTm9kZSBMaXN0cyAtLQogICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgLS0gIFdpdGggYSBmZXcgZXhjZXB0aW9ucywgaWYgYSBjb25zdHJ1Y3Rp b24gb2YgdGhlIGZvcm0ge25vbi10ZXJtaW5hbH0KICAgLS0gIGFwcGVhcnMgaW4gdGhlIHRyZWUs IGxpc3RzIGFyZSB1c2VkIGluIHRoZSBjb3JyZXNwb25kaW5nIHRyZWUgbm9kZQogICAtLSAgKHNl ZSBwYWNrYWdlIE5saXN0cyBmb3IgaGFuZGxpbmcgb2Ygbm9kZSBsaXN0cykuIEluIHRoaXMgY2Fz ZSBhIGZpZWxkCiAgIC0tICBvZiB0aGUgcGFyZW50IG5vZGUgcG9pbnRzIHRvIGEgbGlzdCBvZiBu b2RlcyBmb3IgdGhlIG5vbi10ZXJtaW5hbC4gVGhlCiAgIC0tICBmaWVsZCBuYW1lIGZvciBzdWNo IGZpZWxkcyBoYXMgYSBwbHVyYWwgbmFtZSB3aGljaCBhbHdheXMgZW5kcyBpbiAicyIuCiAgIC0t ICBGb3IgZXhhbXBsZSwgYSBjYXNlIHN0YXRlbWVudCBoYXMgYSBmaWVsZCBBbHRlcm5hdGl2ZXMg cG9pbnRpbmcgdG8gYQogICAtLSAgbGlzdCBvZiBjYXNlIHN0YXRlbWVudCBhbHRlcm5hdGl2ZSBu b2Rlcy4KCiAgIC0tICBPbmx5IGZpZWxkcyBwb2ludGluZyB0byBsaXN0cyBoYXZlIG5hbWVzIGVu ZGluZyBpbiAicyIsIHNvIGdlbmVyYWxseQogICAtLSAgdGhlIHN0cnVjdHVyZSBpcyBzdHJvbmds eSB0eXBlZCwgZmllbGRzIG5vdCBlbmRpbmcgaW4gcyBwb2ludCB0bwogICAtLSAgc2luZ2xlIG5v ZGVzLCBhbmQgZmllbGRzIGVuZGluZyBpbiBzIHBvaW50IHRvIGxpc3RzLgoKICAgLS0gIFRoZSBm b2xsb3dpbmcgZXhhbXBsZSBzaG93cyBob3cgYSB0cmF2ZXJzYWwgb2YgYSBsaXN0IGlzIHdyaXR0 ZW4uIFdlCiAgIC0tICBzdXBwb3NlIGhlcmUgdGhhdCBTdG10IHBvaW50cyB0byBhIE5fQ2FzZV9T dGF0ZW1lbnQgbm9kZSB3aGljaCBoYXMKICAgLS0gIGEgbGlzdCBmaWVsZCBjYWxsZWQgQWx0ZXJu YXRpdmVzOgoKICAgLS0gICBBbHQgOj0gRmlyc3QgKEFsdGVybmF0aXZlcyAoU3RtdCkpOwogICAt LSAgIHdoaWxlIFByZXNlbnQgKEFsdCkgbG9vcAogICAtLSAgICAgIC4uCiAgIC0tICAgICAgLS0g cHJvY2Vzc2luZyBmb3IgY2FzZSBzdGF0ZW1lbnQgYWx0ZXJuYXRpdmUgQWx0CiAgIC0tICAgICAg Li4KICAgLS0gICAgICBBbHQgOj0gTmV4dCAoQWx0KTsKICAgLS0gICBlbmQgbG9vcDsKCiAgIC0t ICBUaGUgUHJlc2VudCBmdW5jdGlvbiB0ZXN0cyBmb3IgRW1wdHksIHdoaWNoIGluIHRoaXMgY2Fz ZSBzaWduYWxzIHRoZQogICAtLSAgZW5kIG9mIHRoZSBsaXN0LiBGaXJzdCByZXR1cm5zIEVtcHR5 IGltbWVkaWF0ZWx5IGlmIHRoZSBsaXN0IGlzIGVtcHR5LgogICAtLSAgUHJlc2VudCBpcyBkZWZp bmVkIGluIEF0cmVlLCBGaXJzdCBhbmQgTmV4dCBhcmUgZGVmaW5lZCBpbiBObGlzdHMuCgogICAt LSAgVGhlIGV4Y2VwdGlvbnMgdG8gdGhpcyBydWxlIG9jY3VyIHdpdGgge0RFRklOSU5HX0lERU5U SUZJRVJTfSBpbiBhbGwKICAgLS0gIGNvbnRleHRzLCB3aGljaCBpcyBoYW5kbGVkIGFzIGRlc2Ny aWJlZCBpbiB0aGUgcHJldmlvdXMgc2VjdGlvbiwgYW5kCiAgIC0tICB3aXRoIHssbGlicmFyeV91 bml0X05BTUV9IGluIHRoZSBOX1dpdGhfQ2xhdXNlIG1vZGUsIHdoaWNoIGlzIGhhbmRsZWQKICAg LS0gIHVzaW5nIHRoZSBGaXJzdF9OYW1lIGFuZCBMYXN0X05hbWUgZmxhZ3MsIGFzIGZ1cnRoZXIg ZGV0YWlsZWQgaW4gdGhlCiAgIC0tICBkZXNjcmlwdGlvbiBvZiB0aGUgTl9XaXRoX0NsYXVzZSBu b2RlLgoKICAgLS0tLS0tLS0tLS0tLQogICAtLSBQcmFnbWFzIC0tCiAgIC0tLS0tLS0tLS0tLS0K CiAgIC0tICBQcmFnbWFzIGNhbiBhcHBlYXIgaW4gbWFueSBkaWZmZXJlbnQgY29udGV4dCwgYnV0 IGFyZSBub3QgaW5jbHVkZWQKICAgLS0gIGluIHRoZSBncmFtbWFyLiBTdGlsbCB0aGV5IG11c3Qg YXBwZWFyIGluIHRoZSB0cmVlLCBzbyB0aGV5IGNhbiBiZQogICAtLSAgcHJvcGVybHkgcHJvY2Vz c2VkLgoKICAgLS0gIFR3byBhcHByb2FjaGVzIGFyZSB1c2VkLiBJbiBzb21lIGNhc2VzLCBhbiBl eHRyYSBmaWVsZCBpcyBkZWZpbmVkCiAgIC0tICBpbiBhbiBhcHByb3ByaWF0ZSBub2RlIHRoYXQg Y29udGFpbnMgYSBsaXN0IG9mIHByYWdtYXMgYXBwZWFyaW5nCiAgIC0tICBpbiB0aGUgZXhwZWN0 ZWQgY29udGV4dC4gRm9yIGV4YW1wbGUgcHJhZ21hcyBjYW4gYXBwZWFyIGJlZm9yZSBhbgogICAt LSAgQWNjZXB0X0FsdGVybmF0aXZlIGluIGEgU2VsZWN0aXZlX0FjY2VwdF9TdGF0ZW1lbnQsIGFu ZCB0aGVzZSBwcmFnbWFzCiAgIC0tICBhcHBlYXIgaW4gdGhlIFByYWdtYXNfQmVmb3JlIGZpZWxk IG9mIHRoZSBOX0FjY2VwdF9BbHRlcm5hdGl2ZSBub2RlLgoKICAgLS0gIFRoZSBvdGhlciBhcHBy b2FjaCBpcyB0byBzaW1wbHkgYWxsb3cgcHJhZ21hcyB0byBhcHBlYXIgaW4gc3ludGFjdGljCiAg IC0tICBsaXN0cyB3aGVyZSB0aGUgZ3JhbW1hciAob2YgY291cnNlKSBkb2VzIG5vdCBpbmNsdWRl IHRoZSBwb3NzaWJpbGl0eS4KICAgLS0gIEZvciBleGFtcGxlLCB0aGUgVmFyaWFudHMgZmllbGQg b2YgYW4gTl9WYXJpYW50X1BhcnQgbm9kZSBwb2ludHMgdG8KICAgLS0gIGEgbGlzdCB0aGF0IGNh biBjb250YWluIGJvdGggTl9QcmFnbWEgYW5kIE5fVmFyaWFudCBub2Rlcy4KCiAgIC0tICBUbyBt YWtlIHByb2Nlc3NpbmcgZWFzaWVyIGluIHRoZSBsYXR0ZXIgY2FzZSwgdGhlIE5saXN0cyBwYWNr YWdlCiAgIC0tICBwcm92aWRlcyBhIHNldCBvZiByb3V0aW5lcyAoRmlyc3RfTm9uX1ByYWdtYSwg TGFzdF9Ob25fUHJhZ21hLAogICAtLSAgTmV4dF9Ob25fUHJhZ21hLCBQcmV2X05vbl9QcmFnbWEp IHRoYXQgYWxsb3cgc3VjaCBsaXN0cyB0byBiZQogICAtLSAgaGFuZGxlZCBpZ25vcmluZyBhbGwg cHJhZ21hcy4KCiAgIC0tICBJbiB0aGUgY2FzZSBvZiB0aGUgdmFyaWFudHMgbGlzdCwgd2UgY2Fu IGVpdGhlciB3cml0ZToKCiAgIC0tICAgICAgVmFyaWFudCA6PSBGaXJzdCAoVmFyaWFudHMgKE4p KTsKICAgLS0gICAgICB3aGlsZSBQcmVzZW50IChWYXJpYW50KSBsb29wCiAgIC0tICAgICAgICAg Li4uCiAgIC0tICAgICAgICAgQWx0IDo9IE5leHQgKEFsdCk7CiAgIC0tICAgICAgZW5kIGxvb3A7 CgogICAtLSAgb3IKCiAgIC0tICAgICAgVmFyaWFudCA6PSBGaXJzdF9Ob25fUHJhZ21hIChWYXJp YW50cyAoTikpOwogICAtLSAgICAgIHdoaWxlIFByZXNlbnQgKFZhcmlhbnQpIGxvb3AKICAgLS0g ICAgICAgICAuLi4KICAgLS0gICAgICAgICBBbHQgOj0gTmV4dF9Ob25fUHJhZ21hIChBbHQpOwog ICAtLSAgICAgIGVuZCBsb29wOwoKICAgLS0gIEluIHRoZSBmaXJzdCBmb3JtIG9mIHRoZSBsb29w LCBWYXJpYW50IGNhbiBlaXRoZXIgYmUgYW4gTl9QcmFnbWEgb3IKICAgLS0gIGFuIE5fVmFyaWFu dCBub2RlLiBJbiB0aGUgc2Vjb25kIGZvcm0sIFZhcmlhbnQgY2FuIG9ubHkgYmUgTl9WYXJpYW50 CiAgIC0tICBzaW5jZSBhbGwgcHJhZ21hcyBhcmUgc2tpcHBlZC4KCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAtLSBPcHRpb25hbCBGaWVsZHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAtLSAgRmllbGRzIHdoaWNoIGNvcnJlc3BvbmQgdG8gYSBzZWN0aW9uIG9mIHRoZSBzeW50 YXggZW5jbG9zZWQgaW4gc3F1YXJlCiAgIC0tICBicmFja2V0cyBhcmUgZ2VuZXJhbGx5IG9taXR0 ZWQgKGFuZCB0aGUgY29ycmVzcG9uZGluZyBmaWVsZCBzZXQgdG8KICAgLS0gIEVtcHR5IGZvciBh IG5vZGUsIG9yIE5vX0xpc3QgZm9yIGEgbGlzdCkuIFRoZSBkb2N1bWVudGF0aW9uIG9mIHN1Y2gK ICAgLS0gIGZpZWxkcyBub3RlcyB0aGVzZSBjYXNlcy4gT25lIGV4Y2VwdGlvbiB0byB0aGlzIHJ1 bGUgb2NjdXJzIGluIHRoZQogICAtLSAgY2FzZSBvZiBwb3NzaWJseSBlbXB0eSBzdGF0ZW1lbnQg c2VxdWVuY2VzIChzdWNoIGFzIHRoZSBzZXF1ZW5jZSBvZgogICAtLSAgc3RhdGVtZW50cyBpbiBh biBlbnRyeSBjYWxsIGFsdGVybmF0aXZlKS4gU3VjaCBjYXNlcyBhcHBlYXIgaW4gdGhlCiAgIC0t ICBzeW50YXggcnVsZXMgYXMgW1NFUVVFTkNFX09GX1NUQVRFTUVOVFNdIGFuZCB0aGUgZmllbGRz IGNvcnJlc3BvbmRpbmcKICAgLS0gIHRvIHN1Y2ggb3B0aW9uYWwgc3RhdGVtZW50IHNlcXVlbmNl cyBhbHdheXMgY29udGFpbiBhbiBlbXB0eSBsaXN0IChub3QKICAgLS0gIE5vX0xpc3QpIGlmIG5v IHN0YXRlbWVudHMgYXJlIHByZXNlbnQuCgogICAtLSAgTm90ZTogdGhlIHV0aWxpdHkgcHJvZ3Jh bSB0aGF0IGNvbnN0cnVjdHMgdGhlIGJvZHkgYW5kIHNwZWMgb2YgdGhlCiAgIC0tICBObWFrZSBw YWNrYWdlIHJlbGllcyBvbiB0aGUgZm9ybWF0IG9mIHRoZSBjb21tZW50cyB0byBkZXRlcm1pbmUg aWYKICAgLS0gIGEgZmllbGQgc2hvdWxkIGhhdmUgYSBkZWZhdWx0IHZhbHVlIGluIHRoZSBjb3Jy ZXNwb25kaW5nIG1ha2Ugcm91dGluZS4KICAgLS0gIFRoZSBydWxlIGlzIHRoYXQgaWYgdGhlIGZp cnN0IGxpbmUgb2YgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBmaWVsZAogICAtLSAgY29udGFpbnMg dGhlIHN0cmluZyAiKHNldCB0byB4eHggaWYiLCB0aGVuIGEgZGVmYXVsdCB2YWx1ZSBvZiB4eHgg aXMKICAgLS0gIHByb3ZpZGVkIGZvciB0aGlzIGZpZWxkIGluIHRoZSBjb3JyZXNwb25kaW5nIE1h a2VfeXl5IHJvdXRpbmUuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAtLSBOb3RlIG9uIEJvZHkvU3BlYyBUZXJtaW5vbG9neSAtLQogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIEluIGluZm9ybWFsIGRpc2N1c3Npb25zIGFib3V0 IEFkYSwgaXQgaXMgY3VzdG9tYXJ5IHRvIHJlZmVyIHRvIHBhY2thZ2UKICAgLS0gIGFuZCBzdWJw cm9ncmFtIHNwZWNzIGFuZCBib2RpZXMuIEhvd2V2ZXIsIHRoaXMgaXMgbm90IHRlY2huaWNhbGx5 CiAgIC0tICBjb3JyZWN0LCB3aGF0IGlzIG5vcm1hbGx5IHJlZmVycmVkIHRvIGFzIGEgc3BlYyBv ciBzcGVjaWZpY2F0aW9uIGlzIGluCiAgIC0tICBmYWN0IGEgcGFja2FnZSBkZWNsYXJhdGlvbiBv ciBzdWJwcm9ncmFtIGRlY2xhcmF0aW9uLiBXZSBhcmUgY2FyZWZ1bAogICAtLSAgaW4gR05BVCB0 byB1c2UgdGhlIGNvcnJlY3QgdGVybWlub2xvZ3kgYW5kIGluIHBhcnRpY3VsYXIsIHRoZSBmdWxs CiAgIC0tICB3b3JkIHNwZWNpZmljYXRpb24gaXMgbmV2ZXIgdXNlZCBhcyBhbiBpbmNvcnJlY3Qg c3Vic3RpdHV0ZSBmb3IKICAgLS0gIGRlY2xhcmF0aW9uLiBUaGUgc3RydWN0dXJlIGFuZCB0ZXJt aW5vbG9neSB1c2VkIGluIHRoZSB0cmVlIGFsc28KICAgLS0gIHJlZmxlY3RzIHRoZSBncmFtbWFy IGFuZCB0aHVzIHVzZXMgZGVjbGFyYXRpb24gYW5kIHNwZWNpZmljYXRpb24gaW4KICAgLS0gIHRo ZSB0ZWNobmljYWxseSBjb3JyZWN0IG1hbm5lci4KCiAgIC0tICBIb3dldmVyLCB0aGVyZSBhcmUg Y29udGV4dHMgaW4gd2hpY2ggdGhlIGluZm9ybWFsIHRlcm1pbm9sb2d5IGlzCiAgIC0tICB1c2Vm dWwuIFdlIGhhdmUgdGhlIHdvcmQgImJvZHkiIHRvIHJlZmVyIHRvIHRoZSBJbnRlcnBfRXR5cGUg ZGVjbGFyZWQgYnkKICAgLS0gIHRoZSBkZWNsYXJhdGlvbiBvZiBhIHVuaXQgYm9keSwgYW5kIGlu IHNvbWUgY29udGV4dHMgd2UgbmVlZCBhCiAgIC0tICBzaW1pbGFyIHRlcm0gdG8gcmVmZXIgdG8g dGhlIGVudGl0eSBkZWNsYXJlZCBieSB0aGUgcGFja2FnZSBvcgogICAtLSAgc3VicHJvZ3JhbSBk ZWNsYXJhdGlvbiwgYW5kIHNpbXBseSB1c2luZyBkZWNsYXJhdGlvbiBjYW4gYmUgY29uZnVzaW5n CiAgIC0tICBzaW5jZSB0aGUgYm9keSBhbHNvIGhhcyBhIGRlY2xhcmF0aW9uLgoKICAgLS0gIEFu IGV4YW1wbGUgb2Ygc3VjaCBhIGNvbnRleHQgaXMgdGhlIGxpbmsgYmV0d2VlbiB0aGUgcGFja2Fn ZSBib2R5CiAgIC0tICBhbmQgaXRzIGRlY2xhcmF0aW9uLiBXaXRoX0RlY2xhcmF0aW9uIGlzIGNv bmZ1c2luZywgc2luY2UKICAgLS0gIHRoZSBwYWNrYWdlIGJvZHkgaXRzZWxmIGlzIGEgZGVjbGFy YXRpb24uCgogICAtLSAgVG8gZGVhbCB3aXRoIHRoaXMgcHJvYmxlbSwgd2UgcmVzZXJ2ZSB0aGUg aW5mb3JtYWwgdGVybSBTcGVjLCBpLmUuCiAgIC0tICB0aGUgcG9wdWxhciBhYmJyZXZpYXRpb24g dXNlZCBpbiB0aGlzIGNvbnRleHQsIHRvIHJlZmVyIHRvIHRoZSBlbnRpdHkKICAgLS0gIGRlY2xh cmVkIGJ5IHRoZSBwYWNrYWdlIG9yIHN1YnByb2dyYW0gZGVjbGFyYXRpb24uIFNvIGluIHRoZSBh Ym92ZQogICAtLSAgZXhhbXBsZSBjYXNlLCB0aGUgZmllbGQgaW4gdGhlIGJvZHkgaXMgY2FsbGVk IFdpdGhfU3BlYy4KCiAgIC0tICBBbm90aGVyIGltcG9ydGFudCBjb250ZXh0IGZvciB0aGUgdXNl IG9mIHRoZSB3b3JkIFNwZWMgaXMgaW4gZXJyb3IKICAgLS0gIG1lc3NhZ2VzLCB3aGVyZSBhIGh5 cGVyLWNvcnJlY3QgdXNlIG9mIGRlY2xhcmF0aW9uIHdvdWxkIGJlIGNvbmZ1c2luZwogICAtLSAg dG8gYSB0eXBpY2FsIEFkYSBwcm9ncmFtbWVyLCBhbmQgZXZlbiBmb3IgYW4gZXhwZXJ0IHByb2dy YW1tZXIgY2FuCiAgIC0tICBjYXVzZSBjb25mdXNpb24gc2luY2UgdGhlIGJvZHkgaGFzIGEgZGVj bGFyYXRpb24gYXMgd2VsbC4KCiAgIC0tICBTbywgdG8gc3VtbWFyaXplOgoKICAgLS0gICAgIERl Y2xhcmF0aW9uICAgIGFsd2F5cyByZWZlcnMgdG8gdGhlIHN5bnRhY3RpYyBlbnRpdHkgdGhhdCBp cyBjYWxsZWQKICAgLS0gICAgICAgICAgICAgICAgICAgIGEgZGVjbGFyYXRpb24uIEluIHBhcnRp Y3VsYXIsIHN1YnByb2dyYW0gZGVjbGFyYXRpb24KICAgLS0gICAgICAgICAgICAgICAgICAgIGFu ZCBwYWNrYWdlIGRlY2xhcmF0aW9uIGFyZSB1c2VkIHRvIGRlc2NyaWJlIHRoZQogICAtLSAgICAg ICAgICAgICAgICAgICAgc3ludGFjdGljIGVudGl0eSB0aGF0IGluY2x1ZGVzIHRoZSBzZW1pY29s b24uCgogICAtLSAgICAgU3BlY2lmaWNhdGlvbiAgYWx3YXlzIHJlZmVycyB0byB0aGUgc3ludGFj dGljIGVudGl0eSB0aGF0IGlzIGNhbGxlZAogICAtLSAgICAgICAgICAgICAgICAgICAgYSBzcGVj aWZpY2F0aW9uLiBJbiBwYXJ0aWN1bGFyLCB0aGUgdGVybXMgcHJvY2VkdXJlCiAgIC0tICAgICAg ICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uLCBmdW5jdGlvbiBzcGVjaWZpY2F0aW9uLCBwYWNr YWdlCiAgIC0tICAgICAgICAgICAgICAgICAgICBzcGVjaWZpY2F0aW9uLCBzdWJwcm9ncmFtIHNw ZWNpZmljYXRpb24gYWx3YXlzIHJlZmVyCiAgIC0tICAgICAgICAgICAgICAgICAgICB0byB0aGUg c3ludGFjdGljIGVudGl0eSB0aGF0IGhhcyBubyBzZW1pY29sb24uCgogICAtLSAgICAgU3BlYyAg ICAgICAgICAgaXMgYW4gaW5mb3JtYWwgdGVybSwgdXNlZCB0byByZWZlciB0byB0aGUgZW50aXR5 CiAgIC0tICAgICAgICAgICAgICAgICAgICB0aGF0IGlzIGRlY2xhcmVkIGJ5IGEgdGFzayBkZWNs YXJhdGlvbiwgcHJvdGVjdGVkCiAgIC0tICAgICAgICAgICAgICAgICAgICBkZWNsYXJhdGlvbiwg Z2VuZXJpYyBkZWNsYXJhdGlvbiwgc3VicHJvZ3JhbQogICAtLSAgICAgICAgICAgICAgICAgICAg ZGVjbGFyYXRpb24gb3IgcGFja2FnZSBkZWNsYXJhdGlvbi4KCiAgIC0tICBUaGlzIGNvbnZlbnRp b24gaXMgZm9sbG93ZWQgdGhyb3VnaG91dCB0aGUgR05BVCBkb2N1bWVudGF0aW9uCiAgIC0tICBi b3RoIGludGVybmFsIGFuZCBleHRlcm5hbCwgYW5kIGluIGFsbCBlcnJvciBtZXNzYWdlIHRleHQu CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSW50ZXJuYWwgVXNlIE5vZGVzIC0t CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZXNlIGFyZSBOb2RlX0tpbmQg c2V0dGluZ3MgdXNlZCBpbiB0aGUgaW50ZXJuYWwgaW1wbGVtZW50YXRpb24KICAgLS0gIHdoaWNo IGFyZSBub3QgbG9naWNhbGx5IHBhcnQgb2YgdGhlIHNwZWNpZmljYXRpb24uCgogICAtLSAgTl9V bnVzZWRfQXRfU3RhcnQKICAgLS0gIENvbXBsZXRlbHkgdW51c2VkIGVudHJ5IGF0IHRoZSBzdGFy dCBvZiB0aGUgZW51bWVyYXRpb24gdHlwZS4gVGhpcwogICAtLSAgaXMgaW5zZXJ0ZWQgc28gdGhh dCBubyBsZWdpdGltYXRlIHZhbHVlIGlzIHplcm8sIHdoaWNoIGhlbHBzIHRvIGdldAogICAtLSAg YmV0dGVyIGRlYnVnZ2luZyBiZWhhdmlvciwgc2luY2UgemVybyBpcyBhIGxpa2VseSB1bmluaXRp YWxpemVkIHZhbHVlKS4KCiAgIC0tICBOX1VudXNlZF9BdF9FbmQKICAgLS0gIENvbXBsZXRlbHkg dW51c2VkIGVudHJ5IGF0IHRoZSBlbmQgb2YgdGhlIGVudW1lcmF0aW9uIHR5cGUuIFRoaXMgaXMK ICAgLS0gIGhhbmR5IHNvIHRoYXQgYXJyYXlzIHdpdGggTm9kZV9LaW5kIGFzIHRoZSBpbmRleCB0 eXBlIGhhdmUgYW4gZXh0cmEKICAgLS0gIGVudHJ5IGF0IHRoZSBlbmQgKHNlZSBmb3IgZXhhbXBs ZSB0aGUgdXNlIG9mIHRoZSBQY2hhcl9Qb3NfQXJyYXkgaW4KICAgLS0gIFRyZWVwciwgd2hlcmUg dGhlIGV4dHJhIGVudHJ5IHByb3ZpZGVzIHRoZSBsaW1pdCB2YWx1ZSB3aGVuIGRlYWxpbmcKICAg LS0gIHdpdGggdGhlIGxhc3QgdXNlZCBlbnRyeSBpbiB0aGUgYXJyYXkpLgoKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTm90ZSBvbiB0aGUgc2V0dGlu Z3Mgb2YgU2xvYyBmaWVsZHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgIC0tICBUaGUgU2xvYyBmaWVsZCBvZiBub2RlcyB0aGF0IGNvbWUgZnJvbSB0 aGUgc291cmNlIGlzIHNldCBieSB0aGUKICAgLS0gIHBhcnNlci4gRm9yIGludGVybmFsIG5vZGVz LCBhbmQgbm9kZXMgZ2VuZXJhdGVkIGR1cmluZyBleHBhbnNpb24KICAgLS0gIHRoZSBTbG9jIGlz IHVzdWFsbHkgc2V0IGluIHRoZSBjYWxsIHRvIHRoZSBjb25zdHJ1Y3RvciBmb3IgdGhlIG5vZGUu CiAgIC0tICBJbiBnZW5lcmFsIHRoZSBTbG9jIHZhbHVlIGNob3NlbiBmb3IgYW4gaW50ZXJuYWwg bm9kZSBpcyB0aGUgU2xvYyBvZgogICAtLSAgdGhlIHNvdXJjZSBub2RlIHdob3NlIHByb2Nlc3Np bmcgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBleHBhbnNpb24uIEZvcgogICAtLSAgZXhhbXBsZSwg dGhlIFNsb2Mgb2YgYW4gaW5oZXJpdGVkIHByaW1pdGl2ZSBvcGVyYXRpb24gaXMgdGhlIFNsb2Mg b2YKICAgLS0gIHRoZSBjb3JyZXNwb25kaW5nIGRlcml2ZWQgdHlwZSBkZWNsYXJhdGlvbi4KCiAg IC0tICBGb3IgdGhlIG5vZGVzIG9mIGEgZ2VuZXJpYyBpbnN0YW50aWF0aW9uLCB0aGUgU2xvYyB2 YWx1ZSBpcyBlbmNvZGVkCiAgIC0tICB0byByZXByZXNlbnQgYm90aCB0aGUgb3JpZ2luYWwgU2xv YyBpbiB0aGUgZ2VuZXJpYyB1bml0LCBhbmQgdGhlIFNsb2MKICAgLS0gIG9mIHRoZSBpbnN0YW50 aWF0aW9uIGl0c2VsZi4gU2VlIFNpbnB1dC5hZHMgZm9yIGRldGFpbHMuCgogICAtLSAgU3VicHJv Z3JhbSBpbnN0YW5jZXMgY3JlYXRlIHR3byBjYWxsYWJsZSBlbnRpdGllczogb25lIGlzIHRoZSB2 aXNpYmxlCiAgIC0tICBzdWJwcm9ncmFtIGluc3RhbmNlLCBhbmQgdGhlIG90aGVyIGlzIGFuIGFu b255bW91cyBzdWJwcm9ncmFtIG5lc3RlZAogICAtLSAgd2l0aGluIGEgd3JhcHBlciBwYWNrYWdl IHRoYXQgY29udGFpbnMgdGhlIHJlbmFtaW5ncyBmb3IgdGhlIGFjdHVhbHMuCiAgIC0tICBCb3Ro IG9mIHRoZXNlIGVudGl0aWVzIGhhdmUgdGhlIFNsb2Mgb2YgdGhlIGRlZmluaW5nIGVudGl0eSBp biB0aGUKICAgLS0gIGluc3RhbnRpYXRpb24gbm9kZS4gVGhpcyBzaW1wbGlmaWVzIHNvbWUgQVNJ UyBxdWVyaWVzLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRmllbGQgRGVmaW5p dGlvbnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBJbiB0aGUgZm9sbG93 aW5nIG5vZGUgZGVmaW5pdGlvbnMsIGFsbCBmaWVsZHMsIGJvdGggc3ludGFjdGljIGFuZAogICAt LSAgc2VtYW50aWMsIGFyZSBkb2N1bWVudGVkLiBUaGUgb25lIGV4Y2VwdGlvbiBpcyBpbiB0aGUg Y2FzZSBvZiBlbnRpdGllcwogICAtLSAgKGRlZmluaW5nIGlkZW50aWZpZXJzLCBjaGFyYWN0ZXIg bGl0ZXJhbHMgYW5kIG9wZXJhdG9yIHN5bWJvbHMpLAogICAtLSAgd2hlcmUgdGhlIHVzYWdlIG9m IHRoZSBmaWVsZHMgZGVwZW5kcyBvbiB0aGUgZW50aXR5IGtpbmQuIEVudGl0eQogICAtLSAgZmll bGRzIGFyZSBmdWxseSBkb2N1bWVudGVkIGluIHRoZSBzZXBhcmF0ZSBwYWNrYWdlIEVpbmZvLgoK ICAgLS0gIEluIHRoZSBub2RlIGRlZmluaXRpb25zLCB0aHJlZSBjb21tb24gc2V0cyBvZiBmaWVs ZHMgYXJlIGFiYnJldmlhdGVkCiAgIC0tICB0byBzYXZlIGJvdGggc3BhY2UgaW4gdGhlIGRvY3Vt ZW50YXRpb24sIGFuZCBhbHNvIHNwYWNlIGluIHRoZSBzdHJpbmcKICAgLS0gIChkZWZpbmVkIGlu IFRyZWVfUHJpbnRfU3RyaW5ncykgdXNlZCB0byBwcmludCB0cmVlcy4gVGhlIGZvbGxvd2luZwog ICAtLSAgYWJicmV2aWF0aW9ucyBhcmUgdXNlZDoKCiAgIC0tICBOb3RlOiB0aGUgdXRpbGl0eSBw cm9ncmFtIHRoYXQgY3JlYXRlcyB0aGUgVHJlZXBycyBzcGVjIChpbiB0aGUgZmlsZQogICAtLSAg dHJlZXBycy5hZHMpIGtub3dzIGFib3V0IHRoZSBzcGVjaWFsIGZpZWxkcyBoZXJlLCBzbyBpdCBt dXN0IGJlCiAgIC0tICBtb2RpZmllZCBpZiBhbnkgY2hhbmdlIGlzIG1hZGUgdG8gdGhlc2UgZmll bGRzLgoKICAgLS0gICAgInBsdXMgZmllbGRzIGZvciBiaW5hcnkgb3BlcmF0b3IiCiAgIC0tICAg ICAgIENoYXJzICAgICAgICAgICAgICAgICAgICAoTmFtZTEpICAgICAgTmFtZV9JZCBmb3IgdGhl IG9wZXJhdG9yCiAgIC0tICAgICAgIExlZnRfT3BuZCAgICAgICAgICAgICAgICAoTm9kZTIpICAg ICAgbGVmdCBvcGVyYW5kIGV4cHJlc3Npb24KICAgLS0gICAgICAgUmlnaHRfT3BuZCAgICAgICAg ICAgICAgIChOb2RlMykgICAgICByaWdodCBvcGVyYW5kIGV4cHJlc3Npb24KICAgLS0gICAgICAg RW50aXR5ICAgICAgICAgICAgICAgICAgIChOb2RlNC1TZW0pICBkZWZpbmluZyBlbnRpdHkgZm9y IG9wZXJhdG9yCiAgIC0tICAgICAgIEFzc29jaWF0ZWRfTm9kZSAgICAgICAgICAoTm9kZTQtU2Vt KSAgZm9yIGdlbmVyaWMgcHJvY2Vzc2luZwogICAtLSAgICAgICBEb19PdmVyZmxvd19DaGVjayAg ICAgICAgKEZsYWcxNy1TZW0pIHNldCBpZiBvdmVyZmxvdyBjaGVjayBuZWVkZWQKICAgLS0gICAg ICAgSGFzX1ByaXZhdGVfVmlldyAgICAgICAgIChGbGFnMTEtU2VtKSBzZXQgaW4gZ2VuZXJpYyB1 bml0cy4KCiAgIC0tICAgICJwbHVzIGZpZWxkcyBmb3IgdW5hcnkgb3BlcmF0b3IiCiAgIC0tICAg ICAgIENoYXJzICAgICAgICAgICAgICAgICAgICAoTmFtZTEpICAgICAgTmFtZV9JZCBmb3IgdGhl IG9wZXJhdG9yCiAgIC0tICAgICAgIFJpZ2h0X09wbmQgICAgICAgICAgICAgICAoTm9kZTMpICAg ICAgcmlnaHQgb3BlcmFuZCBleHByZXNzaW9uCiAgIC0tICAgICAgIEVudGl0eSAgICAgICAgICAg ICAgICAgICAoTm9kZTQtU2VtKSAgZGVmaW5pbmcgZW50aXR5IGZvciBvcGVyYXRvcgogICAtLSAg ICAgICBBc3NvY2lhdGVkX05vZGUgICAgICAgICAgKE5vZGU0LVNlbSkgIGZvciBnZW5lcmljIHBy b2Nlc3NpbmcKICAgLS0gICAgICAgRG9fT3ZlcmZsb3dfQ2hlY2sgICAgICAgIChGbGFnMTctU2Vt KSBzZXQgaWYgb3ZlcmZsb3cgY2hlY2sgbmVlZGVkCiAgIC0tICAgICAgIEhhc19Qcml2YXRlX1Zp ZXcgICAgICAgICAoRmxhZzExLVNlbSkgc2V0IGluIGdlbmVyaWMgdW5pdHMuCgogICAtLSAgICAi cGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24iCiAgIC0tICAgICAgIFBhcmVuX0NvdW50ICAgICAg ICAgICAgICAgICAgICAgICAgICAgbnVtYmVyIG9mIHBhcmVudGhlc2VzIGxldmVscwogICAtLSAg ICAgICBFdHlwZSAgICAgICAgICAgICAgICAgICAgKE5vZGU1LVNlbSkgIHR5cGUgb2YgdGhlIGV4 cHJlc3Npb24KICAgLS0gICAgICAgSXNfT3ZlcmxvYWRlZCAgICAgICAgICAgIChGbGFnNS1TZW0p ICA+MSB0eXBlIGludGVycHJldGF0aW9uIGV4aXN0cwogICAtLSAgICAgICBJc19TdGF0aWNfRXhw cmVzc2lvbiAgICAgKEZsYWc2LVNlbSkgIHNldCBmb3Igc3RhdGljIGV4cHJlc3Npb24KICAgLS0g ICAgICAgUmFpc2VzX0NvbnN0cmFpbnRfRXJyb3IgIChGbGFnNy1TZW0pICBldmFsdWF0aW9uIHJh aXNlcyBDRQogICAtLSAgICAgICBNdXN0X05vdF9GcmVlemUgICAgICAgICAgKEZsYWc4LVNlbSkg IHNldCBpZiBtdXN0IG5vdCBmcmVlemUKICAgLS0gICAgICAgRG9fUmFuZ2VfQ2hlY2sgICAgICAg ICAgIChGbGFnOS1TZW0pICBzZXQgaWYgYSByYW5nZSBjaGVjayBuZWVkZWQKICAgLS0gICAgICAg QXNzaWdubWVudF9PSyAgICAgICAgICAgIChGbGFnMTUtU2VtKSBzZXQgaWYgbW9kaWZpY2F0aW9u IGlzIE9LCiAgIC0tICAgICAgIElzX0NvbnRyb2xsaW5nX0FjdHVhbCAgICAoRmxhZzE2LVNlbSkg c2V0IGZvciBjb250cm9sbGluZyBhcmd1bWVudAoKICAgLS0gIE5vdGU6IHNlZSB1bmRlciAoRVhQ UkVTU0lPTikgZm9yIGZ1cnRoZXIgZGV0YWlscyBvbiB0aGUgdXNlIG9mCiAgIC0tICB0aGUgUGFy ZW5fQ291bnQgZmllbGQgdG8gcmVjb3JkIHRoZSBudW1iZXIgb2YgcGFyZW50aGVzZXMgbGV2ZWxz LgoKICAgLS0gIE5vZGVfS2luZCBpcyB0aGUgdHlwZSB1c2VkIGluIHRoZSBOa2luZCBmaWVsZCB0 byBpbmRpY2F0ZSB0aGUgbm9kZQogICAtLSAga2luZC4gVGhlIGFjdHVhbCBkZWZpbml0aW9uIG9m IHRoaXMgdHlwZSBpcyBnaXZlbiBsYXRlciAodGhlIHJlYXNvbgogICAtLSAgZm9yIHRoaXMgaXMg dGhhdCB3ZSB3YW50IHRoZSBkZXNjcmlwdGlvbnMgb3JkZXJlZCBieSBsb2dpY2FsIGNoYXB0ZXIK ICAgLS0gIGluIHRoZSBSTSwgYnV0IHRoZSB0eXBlIGRlZmluaXRpb24gaXMgcmVvcmRlcmVkIHRv IGZhY2lsaXRhdGUgdGhlCiAgIC0tICBkZWZpbml0aW9uIG9mIHNvbWUgc3VidHlwZSByYW5nZXMu IFRoZSBpbmRpdmlkdWFsIGRlc2NyaXB0aW9ucyBvZgogICAtLSAgdGhlIG5vZGVzIHNob3cgaG93 IHRoZSB2YXJpb3VzIGZpZWxkcyBhcmUgdXNlZCBpbiBlYWNoIG5vZGUga2luZCwKICAgLS0gIGFz IHdlbGwgYXMgcHJvdmlkaW5nIGxvZ2ljYWwgbmFtZXMgZm9yIHRoZSBmaWVsZHMuIEZ1bmN0aW9u cyBhbmQKICAgLS0gIHByb2NlZHVyZXMgYXJlIHByb3ZpZGVkIGZvciBhY2Nlc3NpbmcgYW5kIHNl dHRpbmcgdGhlc2UgZmllbGRzCiAgIC0tICB1c2luZyB0aGVzZSBsb2dpY2FsIG5hbWVzLgoKICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gR2lnaSBSZXN0cmljdGlvbnMgLS0KICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGUgdHJlZSBwYXNzZWQgdG8gR2lnaSBpcyBt b3JlIHJlc3RyaWN0ZWQgdGhhbiB0aGUgZ2VuZXJhbCB0cmVlIGZvcm0uCiAgIC0tICBGb3IgZXhh bXBsZSwgYXMgYSByZXN1bHQgb2YgZXhwYW5zaW9uLCBtb3N0IG9mIHRoZSB0YXNraW5nIG5vZGVz IGNhbgogICAtLSAgbmV2ZXIgYXBwZWFyLiBGb3IgZWFjaCBub2RlIHRvIHdoaWNoIGVpdGhlciBh IGNvbXBsZXRlIG9yIHBhcnRpYWwKICAgLS0gIHJlc3RyaWN0aW9uIGFwcGxpZXMsIGEgbm90ZSBl bnRpdGxlZCAiR2lnaSByZXN0cmljdGlvbiIgYXBwZWFycyB3aGljaAogICAtLSAgZG9jdW1lbnRz IHRoZSByZXN0cmljdGlvbi4KCiAgIC0tICBOb3RlIHRoYXQgbW9zdCBvZiB0aGVzZSByZXN0cmlj dGlvbnMgYXBwbHkgb25seSB0byB0cmVlcyBnZW5lcmF0ZWQgd2hlbgogICAtLSAgY29kZSBpcyBi ZWluZyBnZW5lcmF0ZWQsIHNpbmNlIHRoZXkgaW52b2x2ZWQgZXhwYW5kZXIgYWN0aW9ucyB0aGF0 CiAgIC0tICBkZXN0cm95IHRoZSB0cmVlLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg IC0tIENvbW1vbiBGbGFnIEZpZWxkcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAg IC0tICBUaGUgZm9sbG93aW5nIGZsYWcgZmllbGRzIGFwcGVhciBpbiBhbGwgbm9kZXMKCiAgIC0t ICBBbmFseXplZAogICAtLSAgICBUaGlzIGZsYWcgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGEg bm9kZSAoYW5kIGFsbCBpdHMgY2hpbGRyZW4KICAgLS0gICAgaGF2ZSBiZWVuIGFuYWx5emVkLiBJ dCBpcyB1c2VkIHRvIGF2b2lkIHJlYW5hbHlzaXMgb2YgYSBub2RlIHRoYXQKICAgLS0gICAgaGFz IGFscmVhZHkgYmVlbiBhbmFseXplZCwgYm90aCBmb3IgZWZmaWNpZW5jeSBhbmQgZnVuY3Rpb25h bAogICAtLSAgICBjb3JyZWN0bmVzcyByZWFzb25zLgoKICAgLS0gIEVycm9yX1Bvc3RlZAogICAt LSAgICBUaGlzIGZsYWcgaXMgdXNlZCB0byBhdm9pZCBtdWx0aXBsZSBlcnJvciBtZXNzYWdlcyBi ZWluZyBwb3N0ZWQKICAgLS0gICAgb24gb3IgcmVmZXJyaW5nIHRvIHRoZSBzYW1lIG5vZGUuIFRo aXMgZmxhZyBpcyBzZXQgaWYgYW4gZXJyb3IKICAgLS0gICAgbWVzc2FnZSByZWZlcnMgdG8gYSBu b2RlIG9yIGlzIHBvc3RlZCBvbiBpdHMgc291cmNlIGxvY2F0aW9uLAogICAtLSAgICBhbmQgaGFz IHRoZSBlZmZlY3Qgb2YgaW5oaWJpdGluZyBmdXJ0aGVyIG1lc3NhZ2VzIGludm9sdmluZwogICAt LSAgICB0aGlzIHNhbWUgbm9kZS4KCiAgIC0tICBDb21lc19Gcm9tX1NvdXJjZQogICAtLSAgICBU aGlzIGZsYWcgaXMgb24gZm9yIGFueSBub2RlcyBidWlsdCBieSB0aGUgc2Nhbm5lciBvciBwYXJz ZXIgZnJvbQogICAtLSAgICB0aGUgc291cmNlIHByb2dyYW0sIGFuZCBvZmYgZm9yIGFueSBub2Rl cyBidWlsdCBieSB0aGUgYW5hbHl6ZXIgb3IKICAgLS0gICAgZXhwYW5kZXIuIEl0IGluZGljYXRl cyB0aGF0IGEgbm9kZSBjb21lcyBmcm9tIHRoZSBvcmlnaW5hbCBzb3VyY2UuCiAgIC0tICAgIFRo aXMgZmxhZyBpcyBkZWZpbmVkIGluIEF0cmVlLgoKICAgLS0gIEhhc19EeW5hbWljX0xlbmd0aF9D aGVjayBhbmQgSGFzX0R5bmFtaWNfUmFuZ2VfQ2hlY2sgYWxzbyBhcHBlYXIgb24KICAgLS0gIGFs bCBub2Rlcy4gVGhleSBhcmUgZnVsbHkgZGVzY3JpYmVkIGluIHRoZSBuZXh0IHNlY3Rpb24uCgog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRGVzY3JpcHRpb24g b2YgU2VtYW50aWMgRmllbGRzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgLS0gIFRoZSBtZWFuaW5nIG9mIHRoZSBzeW50YWN0aWMgZmllbGRzIGlzIGdlbmVy YWxseSBjbGVhciBmcm9tIHRoZWlyCiAgIC0tICBuYW1lcyB3aXRob3V0IGFueSBmdXJ0aGVyIGRl c2NyaXB0aW9uLCBzaW5jZSB0aGUgbmFtZXMgYXJlIGNob3NlbgogICAtLSAgdG8gY29ycmVzcG9u ZCB2ZXJ5IGNsb3NlbHkgdG8gdGhlIHN5bnRheCBpbiB0aGUgcmVmZXJlbmNlIG1hbnVhbC4KICAg LS0gIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIHVzYWdlIG9mIHRoZSBzZW1hbnRpYyBmaWVs ZHMsIHdoaWNoIGFyZQogICAtLSAgdXNlZCB0byBjb250YWluIGFkZGl0aW9uYWwgaW5mb3JtYXRp b24gZGV0ZXJtaW5lZCBkdXJpbmcgc2VtYW50aWMKICAgLS0gIGFuYWx5c2lzLgoKICAgLS0gIEFC RV9Jc19DZXJ0YWluIChGbGFnMTgtU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IGluIGFu IGluc3RhbnRpYXRpb24gbm9kZSBvciBhIGNhbGwgbm9kZSBpcwogICAtLSAgICBkZXRlcm1pbmVk IHRvIGJlIHN1cmUgdG8gcmFpc2UgYW4gQUJFLiBUaGlzIGlzIHVzZWQgdG8gdHJpZ2dlcgogICAt LSAgICBzcGVjaWFsIGhhbmRsaW5nIG9mIHN1Y2ggY2FzZXMsIHBhcnRpY3VsYXJseSBpbiB0aGUg aW5zdGFudGlhdGlvbgogICAtLSAgICBjYXNlIHdoZXJlIHdlIGF2b2lkIGluc3RhbnRpYXRpbmcg dGhlIGJvZHkgaWYgdGhpcyBmbGFnIGlzIHNldC4KICAgLS0gICAgVGhpcyBmbGFnIGlzIGFsc28g cHJlc2VudCBpbiBhbiBOX0Zvcm1hbF9QYWNrYWdlX0RlY2xhcmF0aW9uX05vZGUKICAgLS0gICAg c2luY2UgZm9ybWFsIHBhY2thZ2UgZGVjbGFyYXRpb25zIGFyZSB0cmVhdGVkIGxpa2UgaW5zdGFu dGlhdGlvbnMsCiAgIC0tICAgIGJ1dCBpdCBpcyBhbHdheXMgc2V0IHRvIEZhbHNlIGluIHRoaXMg Y29udGV4dC4KCiAgIC0tICBBY2NlcHRfSGFuZGxlcl9SZWNvcmRzIChMaXN0NS1TZW0pCiAgIC0t ICAgIFRoaXMgZmllbGQgaXMgcHJlc2VudCBvbmx5IGluIGFuIE5fQWNjZXB0X0FsdGVybmF0aXZl IG5vZGUuIEl0IGlzCiAgIC0tICAgIHVzZWQgdG8gdGVtcG9yYXJpbHkgaG9sZCB0aGUgZXhjZXB0 aW9uIGhhbmRsZXIgcmVjb3JkcyBmcm9tIGFuCiAgIC0tICAgIGFjY2VwdCBzdGF0ZW1lbnQgaW4g YSBzZWxlY3RpdmUgYWNjZXB0LiBUaGVzZSBleGNlcHRpb24gaGFuZGxlcnMKICAgLS0gICAgd2ls bCBldmVudHVhbGx5IGJlIHBsYWNlZCBpbiB0aGUgSGFuZGxlcl9SZWNvcmRzIGxpc3Qgb2YgdGhl CiAgIC0tICAgIHByb2NlZHVyZSBidWlsdCBmb3IgdGhpcyBhY2NlcHQgKHNlZSBFeHBhbmRfTl9T ZWxlY3RpdmVfQWNjZXB0CiAgIC0tICAgIHByb2NlZHVyZSBpbiBFeHBfQ2g5IGZvciBmdXJ0aGVy IGRldGFpbHMpLgoKICAgLS0gIEFjY2Vzc19UeXBlc19Ub19Qcm9jZXNzIChFbGlzdDItU2VtKQog ICAtLSAgICBQcmVzZW50IGluIE5fRnJlZXplX0VudGl0eSBub2RlcyBmb3IgSW5jb21wbGV0ZSBv ciBwcml2YXRlIHR5cGVzLgogICAtLSAgICBDb250YWlucyB0aGUgbGlzdCBvZiBhY2Nlc3MgdHlw ZXMgd2hpY2ggbWF5IHJlcXVpcmUgc3BlY2lmaWMKICAgLS0gICAgdHJlYXRtZW50IHdoZW4gdGhl IG5hdHVyZSBvZiB0aGUgdHlwZSBjb21wbGV0aW9uIGlzIGNvbXBsZXRlbHkKICAgLS0gICAga25v d24uIEFuIGV4YW1wbGUgb2Ygc3VjaCB0cmVhdGVtZW50IGlzIHRoZSBnZW5lcmF0aW9uIG9mIHRo ZQogICAtLSAgICBhc3NvY2lhdGVkX2ZpbmFsX2NoYWluLgoKICAgLS0gIEFjdGlvbnMgKExpc3Qx LVNlbSkKICAgLS0gICAgVGhpcyBmaWVsZCBjb250YWlucyBhIHNlcXVlbmNlIG9mIGFjdGlvbnMg dGhhdCBhcmUgYXNzb2NpYXRlZAogICAtLSAgICB3aXRoIHRoZSBub2RlIGhvbGRpbmcgdGhlIGZp ZWxkLiBTZWUgdGhlIGluZGl2aWR1YWwgbm9kZSB0eXBlcwogICAtLSAgICBmb3IgZGV0YWlscyBv ZiBob3cgdGhpcyBmaWVsZCBpcyB1c2VkLCBhcyB3ZWxsIGFzIHRoZSBkZXNjcmlwdGlvbgogICAt LSAgICBvZiB0aGUgc3BlY2lmaWMgdXNlIGZvciBhIHBhcnRpY3VsYXIgbm9kZSB0eXBlLgoKICAg LS0gIEFjdGl2YXRpb25fQ2hhaW5fRW50aXR5IChOb2RlMy1TZW0pCiAgIC0tICAgIFRoaXMgaXMg dXNlZCBpbiB0cmVlIG5vZGVzIHJlcHJlc2VudGluZyB0YXNrIGFjdGl2YXRvcnMgKGJsb2NrcywK ICAgLS0gICAgc3VicHJvZ3JhbSBib2RpZXMsIHBhY2thZ2UgZGVjbGFyYXRpb25zLCBhbmQgdGFz ayBib2RpZXMpLiBJdCBpcwogICAtLSAgICBpbml0aWFsbHkgRW1wdHksIGFuZCB0aGVuIGdldHMg c2V0IHRvIHBvaW50IHRvIHRoZSBlbnRpdHkgZm9yIHRoZQogICAtLSAgICBkZWNsYXJlZCBBY3Rp dmF0aW9uX0NoYWluIHZhcmlhYmxlIHdoZW4gdGhlIGZpcnN0IHRhc2sgaXMgZGVjbGFyZWQuCiAg IC0tICAgIFdoZW4gdGFza3MgYXJlIGRlY2xhcmVkIGluIHRoZSBjb3JyZXNwb25kaW5nIGRlY2xh cmF0aXZlIHJlZ2lvbgogICAtLSAgICB0aGlzIGVudGl0eSBpcyBsb2NhdGVkIGJ5IG5hbWUgKGl0 cyBuYW1lIGlzIGFsd2F5cyBfQ2hhaW4pIGFuZAogICAtLSAgICB0aGUgZGVjbGFyZWQgdGFza3Mg YXJlIGFkZGVkIHRvIHRoZSBjaGFpbi4KCiAgIC0tICBBY3RzX0FzX1NwZWMgKEZsYWc0LVNlbSkK ICAgLS0gICAgQSBmbGFnIHNldCBpbiB0aGUgTl9TdWJwcm9ncmFtX0JvZHkgbm9kZSBmb3IgYSBz dWJwcm9ncmFtIGJvZHkKICAgLS0gICAgd2hpY2ggaXMgYWN0aW5nIGFzIGl0cyBvd24gc3BlYy4g VGhpcyBmbGFnIGFsc28gYXBwZWFycyBpbiB0aGUKICAgLS0gICAgY29tcGlsYXRpb24gdW5pdCBu b2RlIGF0IHRoZSBsaWJyYXJ5IGxldmVsIGZvciBzdWNoIGEgc3VicHJvZ3JhbQogICAtLSAgICAo c2VlIGZ1cnRoZXIgZGVzY3JpcHRpb24gaW4gc3BlYyBvZiBMaWIgcGFja2FnZSkuCgogICAtLSAg QWdncmVnYXRlX0JvdW5kcyAoTm9kZTMtU2VtKQogICAtLSAgICBQcmVzZW50IGluIGFycmF5IE5f QWdncmVnYXRlIG5vZGVzLiBJZiB0aGUgYWdncmVnYXRlIGNvbnRhaW5zCiAgIC0tICAgIGNvbXBv bmVudCBhc3NvY2lhdGlvbnMgdGhpcyBmaWVsZCBwb2ludHMgdG8gYW4gTl9SYW5nZSBub2RlIHdo b3NlCiAgIC0tICAgIGJvdW5kcyBnaXZlIHRoZSBsb3dlc3QgYW5kIGhpZ2hlc3QgZGlzY3JldGUg Y2hvaWNlIHZhbHVlcy4gSWYgdGhlCiAgIC0tICAgIG5hbWVkIGFnZ3JlZ2F0ZSBjb250YWlucyBh IGR5bmFtaWMgb3IgbnVsbCBjaG9pY2UgdGhpcyBmaWVsZCBpcwogICAtLSAgICBlbXB0eS4gSWYg dGhlIGFnZ3JlZ2F0ZSBjb250YWlucyBwb3NpdGlvbmFsIGVsZW1lbnRzIHRoaXMgZmllbGQKICAg LS0gICAgcG9pbnRzIHRvIGFuIE5fSW50ZWdlcl9MaXRlcmFsIG5vZGUgZ2l2aW5nIHRoZSBudW1i ZXIgb2YgcG9zaXRpb25hbAogICAtLSAgICBlbGVtZW50cy4gTm90ZSB0aGF0IGlmIHRoZSBhZ2dy ZWdhdGUgY29udGFpbnMgcG9zaXRpb25hbCBlbGVtZW50cwogICAtLSAgICBhbmQgYW4gb3RoZXIg Y2hvaWNlIHRoZSBOX0ludGVnZXJfTGl0ZXJhbCBvbmx5IGFjY291bnRzIGZvciB0aGUKICAgLS0g ICAgbnVtYmVyIG9mIHBvc2l0aW9uYWwgZWxlbWVudHMuCgogICAtLSAgQWxsX090aGVycyAoRmxh ZzExLVNlbSkKICAgLS0gICAgUHJlc2VudCBpbiBhbiBOX090aGVyc19DaG9pY2Ugbm9kZS4gVGhp cyBmbGFnIGlzIHNldCBpbiB0aGUgY2FzZQogICAtLSAgICBvZiBhbiBvdGhlcnMgZXhjZXB0aW9u IHdoZXJlIGFsbCBleGNlcHRpb25zLCBldmVuIHRob3NlIHRoYXQgYXJlCiAgIC0tICAgIG5vdCBu b3JtYWxseSBoYW5kbGVkIChpbiBwYXJ0aWN1bGFyIHRoZSB0YXNraW5nIGFib3J0IHNpZ25hbCkg YnkKICAgLS0gICAgb3RoZXJzLiBUaGlzIGlzIHVzZWQgZm9yIHRyYW5zbGF0aW9uIG9mIHRoZSBh dCBlbmQgaGFuZGxlciBpbnRvCiAgIC0tICAgIGEgbm9ybWFsIGV4Y2VwdGlvbiBoYW5kbGVyLgoK ICAgLS0gIEFzc2lnbm1lbnRfT0sgKEZsYWcxNS1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBz ZXQgaW4gYSBzdWJleHByZXNzaW9uIG5vZGUgZm9yIGFuIG9iamVjdCwgaW5kaWNhdGluZwogICAt LSAgICB0aGF0IHRoZSBhc3NvY2lhdGVkIG9iamVjdCBjYW4gYmUgbW9kaWZpZWQsIGV2ZW4gaWYg dGhpcyB3b3VsZCBub3QKICAgLS0gICAgbm9ybWFsbHkgYmUgcGVybWlzc2libGUgKGVpdGhlciBi eSBkaXJlY3QgYXNzaWdubWVudCwgb3IgYnkgYmVpbmcKICAgLS0gICAgcGFzc2VkIGFzIGFuIG91 dCBvciBpbi1vdXQgcGFyYW1ldGVyKS4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBleHBhbmRlcgogICAt LSAgICBmb3IgYSBudW1iZXIgb2YgcHVycG9zZXMsIGluY2x1ZGluZyBpbml0aWFsemF0aW9uIG9m IGNvbnN0YW50cyBhbmQKICAgLS0gICAgbGltaXRlZCB0eXBlIG9iamVjdHMgKHN1Y2ggYXMgdGFz a3MpLCBzZXR0aW5nIGRpc2NyaW1pbmFudCBmaWVsZHMsCiAgIC0tICAgIHNldHRpbmcgdGFnIHZh bHVlcywgZXRjLiBOX09iamVjdF9EZWNsYXJhdGlvbiBub2RlcyBhbHNvIGhhdmUgdGhpcwogICAt LSAgICBmbGFnIGRlZmluZWQuIEhlcmUgaXQgaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IGFuIGlu aXRpYWxpemF0aW9uCiAgIC0tICAgIGV4cHJlc3Npb24gaXMgdmFsaWQsIGV2ZW4gd2hlcmUgaXQg d291bGQgbm9ybWFsbHkgbm90IGJlIGFsbG93ZWQKICAgLS0gICAgKGUuZy4gd2hlcmUgdGhlIHR5 cGUgaW52b2x2ZWQgaXMgbGltaXRlZCkuCgogICAtLSAgQXNzb2NpYXRlZF9Ob2RlIChOb2RlNC1T ZW0pCiAgIC0tICAgIFByZXNlbnQgaW4gbm9kZXMgdGhhdCBjYW4gZGVub3RlIGFuIGVudGl0eTog aWRlbnRpZmllcnMsIGNoYXJhY3RlcgogICAtLSAgICBsaXRlcmFscywgb3BlcmF0b3Igc3ltYm9s cywgZXhwYW5kZWQgbmFtZXMsIG9wZXJhdG9yIG5vZGVzIGFuZAogICAtLSAgICBhdHRyaWJ1dGUg cmVmZXJlbmNlIG5vZGVzIChhbGwgdGhlc2Ugbm9kZXMgaGF2ZSBhbiBFbnRpdHkgZmllbGQpLgog ICAtLSAgICBUaGlzIGZpZWxkIGlzIGFsc28gcHJlc2VudCBpbiBOX0FnZ3JlZ2F0ZSwgTl9TZWxl Y3RlZF9Db21wb25lbnQsCiAgIC0tICAgIGFuZCBOX0V4dGVuc2lvbl9BZ2dyZWdhdGUgbm9kZXMu IFRoaXMgZmllbGQgaXMgdXNlZCBkdXJpbmcgZ2VuZXJpYwogICAtLSAgICBwcm9jZXNzaW5nIHRv IHJlbGF0ZSBub2RlcyBpbiB0aGUgb3JpZ2luYWwgdGVtcGxhdGUgdG8gbm9kZXMgaW4gdGhlCiAg IC0tICAgIGdlbmVyaWMgY29weS4gSXQgb3ZlcmxhcHMgdGhlIEVudGl0eSBmaWVsZCwgYW5kIGlz IHVzZWQgdG8gY2FwdHVyZQogICAtLSAgICBnbG9iYWwgcmVmZXJlbmNlcyBpbiB0aGUgYW5hbHl6 ZWQgY29weSBhbmQgcGxhY2UgdGhlbSBpbiB0aGUgdGVtcGxhdGUuCiAgIC0tICAgIFNlZSBkZXNj cmlwdGlvbiBpbiBTZW1fQ2gxMiBmb3IgZnVydGhlciBkZXRhaWxzIG9uIHRoaXMgdXNhZ2UuCgog ICAtLSAgQXRfRW5kX1Byb2MgKE5vZGUxKQogICAtLSAgICBUaGlzIGZpZWxkIGlzIHByZXNlbnQg aW4gYW4gTl9IYW5kbGVkX1NlcXVlbmNlX09mX1N0YXRlbWVudHMgbm9kZS4KICAgLS0gICAgSXQg Y29udGFpbnMgYW4gaWRlbnRpZmllciByZWZlcmVuY2UgZm9yIHRoZSBjbGVhbnVwIHByb2NlZHVy ZSB0bwogICAtLSAgICBiZSBjYWxsZWQuIFNlZSBkZXNjcmlwdGlvbiBvZiB0aGlzIG5vZGUgZm9y IGZ1cnRoZXIgZGV0YWlscy4KCiAgIC0tICBCYWNrd2FyZHNfT0sgKEZsYWc2LVNlbSkKICAgLS0g ICAgQSBmbGFnIHByZXNlbnQgaW4gdGhlIE5fQXNzaWdubWVudF9TdGF0ZW1lbnQgbm9kZS4gSXQg aXMgdXNlZCBvbmx5CiAgIC0tICAgIGlmIHRoZSB0eXBlIGJlaW5nIGFzc2lnbmVkIGlzIGFuIGFy cmF5IHR5cGUsIGFuZCBpcyBzZXQgaWYgYW5hbHlzaXMKICAgLS0gICAgZGV0ZXJtaW5lcyB0aGF0 IGl0IGlzIGRlZmluaXRlbHkgc2FmZSB0byBkbyB0aGUgY29weSBiYWNrd2FyZHMsIGkuZS4KICAg LS0gICAgc3RhcnRpbmcgYXQgdGhlIGhpZ2hlc3QgYWRkcmVzc2VkIGVsZW1lbnQuIE5vdGUgdGhh dCBpZiBuZWl0aGVyIG9mCiAgIC0tICAgIHRoZSBmbGFncyBGb3J3YXJkc19PSyBvciBCYWNrd2Fy ZHNfT0sgaXMgc2V0LCBpdCBtZWFucyB0aGF0IHRoZQogICAtLSAgICBmcm9udCBlbmQgY291bGQg bm90IGRldGVybWluZSB0aGF0IGVpdGhlciBkaXJlY3Rpb24gaXMgZGVmaW5pdGVseQogICAtLSAg ICBzYWZlLCBhbmQgYSBydW50aW1lIGNoZWNrIGlzIHJlcXVpcmVkLgoKICAgLS0gIEJvZHlfVG9f SW5saW5lIChOb2RlMy1TZW0pCiAgIC0tICAgIHByZXNlbnQgaW4gc3VicHJvZ3JhbSBkZWNsYXJh dGlvbnMuIERlbm90ZXMgYW5hbHl6ZWQgYnV0IHVuZXhwYW5kZWQKICAgLS0gICAgYm9keSBvZiBz dWJwcm9ncmFtLCB0byBiZSB1c2VkIHdoZW4gaW5saW5pbmcgY2FsbHMuIFByZXNlbnQgd2hlbiB0 aGUKICAgLS0gICAgc3VicHJvZ3JhbSBoYXMgYW4gSW5saW5lIHByYWdtYSBhbmQgaW5saW5pbmcg aXMgZW5hYmxlZC4gSWYgdGhlCiAgIC0tICAgIGRlY2xhcmF0aW9uIGlzIGNvbXBsZXRlZCBieSBh IHJlbmFtaW5nX2FzX2JvZHksIGFuZCB0aGUgcmVuYW1lZCBlbi0KICAgLS0gICAgdGl0eSBpcyBh IHN1YnByb2dyYW0sIHRoZSBCb2R5X1RvX0lubGluZSBpcyB0aGUgbmFtZSBvZiB0aGF0IGVudGl0 eSwKICAgLS0gICAgd2hpY2ggaXMgdXNlZCBkaXJlY3RseSBpbiBsYXRlciBjYWxscyB0byB0aGUg b3JpZ2luYWwgc3VicHJvZ3JhbS4KCiAgIC0tICBCb2R5X1JlcXVpcmVkIChGbGFnMTMtU2VtKQog ICAtLSAgICBBIGZsYWcgdGhhdCBhcHBlYXJzIGluIHRoZSBOX0NvbXBpbGF0aW9uX1VuaXQgbm9k ZSBpbmRpY2F0aW5nIHRoYXQKICAgLS0gICAgdGhlIGNvcnJlc3BvbmRpbmcgdW5pdCByZXF1aXJl cyBhIGJvZHkuIEZvciB0aGUgcGFja2FnZSBjYXNlLCB0aGlzCiAgIC0tICAgIGluZGljYXRlcyB0 aGF0IGEgY29tcGxldGlvbiBpcyByZXF1aXJlZC4gSW4gQWRhIDk1LCBpZiB0aGUgZmxhZwogICAt LSAgICBpcyBub3Qgc2V0IGZvciB0aGUgcGFja2FnZSBjYXNlLCB0aGVuIGEgYm9keSBtYXkgbm90 IGJlIHByZXNlbnQuCiAgIC0tICAgIEluIEFkYSA4MywgaWYgdGhlIGZsYWcgaXMgbm90IHNldCBm b3IgdGhlIHBhY2thZ2UgY2FzZSwgdGhlbiBhCiAgIC0tICAgIGJvZHkgaXMgb3B0aW9uYWwuIEZv ciBhIHN1YnByb2dyYW0gZGVjbGFyYXRpb24sIHRoZSBmbGFnIGlzIHNldAogICAtLSAgICBleGNl cHQgaW4gdGhlIGNhc2Ugd2hlcmUgYSBwcmFnbWEgSW1wb3J0IG9yIEludGVyZmFjZSBhcHBsaWVz LAogICAtLSAgICBpbiB3aGljaCBjYXNlIG5vIGJvZHkgaXMgcGVybWl0dGVkIChpbiBBZGEgODMg b3IgQWRhIDk1KS4KCiAgIC0tICBCeV9SZWYgKEZsYWc1LVNlbSkKICAgLS0gICAgQSBmbGFnIHBy ZXNlbnQgaW4gdGhlIE5fUmV0dXJuX1N0YXRlbWVudF9Ob2RlLiBJdCBpcyBzZXQgd2hlbiB0aGUK ICAgLS0gICAgcmV0dXJuZWQgZXhwcmVzc2lvbiBpcyBhbHJlYWR5IGFsbG9jYXRlZCBvbiB0aGUg c2Vjb25kYXJ5IHN0YWNrCiAgIC0tICAgIGFuZCB0aHVzIHRoZSByZXN1bHQgaXMgcGFzc2VkIGJ5 IHJlZmVyZW5jZSByYXRoZXIgdGhhbiBjb3BpZWQKICAgLS0gICAgYW5vdGhlciB0aW1lLgoKICAg LS0gIENvbXBpbGVfVGltZV9Lbm93bl9BZ2dyZWdhdGUgKEZsYWcxOC1TZW0pCiAgIC0tICAgIFBy ZXNlbnQgaW4gTl9BZ2dyZWdhdGUgbm9kZXMuIFNldCBmb3IgYWdncmVnYXRlcyB3aGljaCBjYW4g YmUKICAgLS0gICAgZnVsbHkgZXZhbHVhdGVkIGF0IGNvbXBpbGUgdGltZSB3aXRob3V0IHJhaXNp bmcgY29uc3RyYWludCBlcnJvci4KICAgLS0gICAgU3VjaCBhZ2dyZWdhdGVzIGNhbiBiZSBwYXNz ZWQgYXMgaXMgdG8gR2lnaSB3aXRob3V0IGFueSBleHBhbnNpb24uCiAgIC0tICAgIFNlZSBTZW1f QWdnciBmb3IgdGhlIHNwZWNpZmljIGNvbmRpdGlvbnMgdW5kZXIgd2hpY2ggYW4gYWdncmVnYXRl CiAgIC0tICAgIGhhcyB0aGlzIGZsYWcgc2V0LiBTZWUgYWxzbyB0aGUgZmxhZyBTdGF0aWNfUHJv Y2Vzc2luZ19PSy4KCiAgIC0tICBDb25kaXRpb25fQWN0aW9ucyAoTGlzdDMtU2VtKQogICAtLSAg ICBUaGlzIGZpZWxkIGFwcGVhcnMgaW4gZWxzZS1pZiBub2RlcyBhbmQgaW4gdGhlIGl0ZXJhdGlv biBzY2hlbWUKICAgLS0gICAgbm9kZSBmb3Igd2hpbGUgbG9vcHMuIFRoaXMgZmllbGQgaXMgb25s eSB1c2VkIGR1cmluZyBzZW1hbnRpYwogICAtLSAgICBwcm9jZXNzaW5nIHRvIHRlbXBvcmFyaWx5 IGhvbGQgYWN0aW9ucyBpbnNlcnRlZCBpbnRvIHRoZSB0cmVlLgogICAtLSAgICBJbiB0aGUgdHJl ZSBwYXNzZWQgdG8gZ2lnaSwgdGhlIGNvbmRpdGlvbiBhY3Rpb25zIGZpZWxkIGlzIGFsd2F5cwog ICAtLSAgICBzZXQgdG8gTm9fTGlzdC4gRm9yIGRldGFpbHMgb24gaG93IHRoaXMgZmllbGQgaXMg dXNlZCwgc2VlIHRoZQogICAtLSAgICByb3V0aW5lIEluc2VydF9BY3Rpb25zIGluIHBhY2thZ2Ug RXhwX1V0aWwsIGFuZCBhbHNvIHRoZSBleHBhbnNpb24KICAgLS0gICAgcm91dGluZXMgZm9yIHRo ZSByZWxldmFudCBub2Rlcy4KCiAgIC0tICBDb250cm9sbGluZ19Bcmd1bWVudCAoTm9kZTEtU2Vt KQogICAtLSAgICBUaGlzIGZpZWxkIGlzIHNldCBpbiBwcm9jZWR1cmUgYW5kIGZ1bmN0aW9uIGNh bGwgbm9kZXMgaWYgdGhlIGNhbGwKICAgLS0gICAgaXMgYSBkaXNwYXRjaGluZyBjYWxsIChpdCBp cyBFbXB0eSBmb3IgYSBub24tZGlzcGF0Y2hpbmcgY2FsbCkuCiAgIC0tICAgIEl0IGluZGljYXRl cyB0aGUgc291cmNlIG9mIHRoZSBjb250cm9sbGluZyB0YWcgZm9yIHRoZSBjYWxsLiBGb3IKICAg LS0gICAgUHJvY2VkdXJlIGNhbGxzLCB0aGUgQ29udHJvbGxpbmdfQXJndW1lbnQgaXMgb25lIG9m IHRoZSBhY3R1YWxzLgogICAtLSAgICBGb3IgYSBmdW5jdGlvbiB0aGF0IGhhcyBhIGRpc3BhdGNo aW5nIHJlc3VsdCwgaXQgaXMgYW4gZW50aXR5IGluCiAgIC0tICAgIHRoZSBjb250ZXh0IG9mIHRo ZSBjYWxsIHRoYXQgY2FuIHByb3ZpZGUgYSB0YWcsIG9yIGVsc2UgaXQgaXMgdGhlCiAgIC0tICAg IHRhZyBvZiB0aGUgcm9vdCB0eXBlIG9mIHRoZSBjbGFzcy4KCiAgIC0tICBDb252ZXJzaW9uX09L IChGbGFnMTQtU2VtKQogICAtLSAgICBBIGZsYWcgc2V0IG9uIHR5cGUgY29udmVyc2lvbiBub2Rl cyB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjb252ZXJzaW9uCiAgIC0tICAgIGlzIHRvIGJlIGNvbnNp ZGVyZWQgYXMgYmVpbmcgdmFsaWQsIGV2ZW4gdGhvdWdoIGl0IGlzIHRoZSBjYXNlIHRoYXQKICAg LS0gICAgdGhlIGNvbnZlcnNpb24gaXMgbm90IHZhbGlkIEFkYS4gVGhpcyBpcyB1c2VkIGZvciB0 aGUgRW51bV9SZXAsCiAgIC0tICAgIEZpeGVkX1ZhbHVlIGFuZCBJbnRlZ2VyX1ZhbHVlIGF0dHJp YnV0ZXMsIGZvciBpbnRlcm5hbCBjb252ZXJzaW9ucwogICAtLSAgICBkb25lIGZvciBmaXhlZC1w b2ludCBvcGVyYXRpb25zLCBhbmQgZm9yIGNlcnRhaW4gY29udmVyc2lvbnMgZm9yCiAgIC0tICAg IGNhbGxzIHRvIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZXMuIElmIENvbnZlcnNpb25fT0sgaXMg c2V0LCB0aGVuCiAgIC0tICAgIEV0eXBlIG11c3QgYmUgc2V0ICh0aGUgYW5hbHl6ZXIgYXNzdW1l cyB0aGF0IEV0eXBlIGhhcyBiZWVuIHNldCkuCiAgIC0tICAgIEZvciB0aGUgY2FzZSBvZiBmaXhl ZC1wb2ludCBvcGVyYW5kcywgaXQgYWxzbyBpbmRpY2F0ZXMgdGhhdCB0aGUKICAgLS0gICAgY29u dmVyc2lvbiBpcyB0byBiZSBhIGRpcmVjdCBjb252ZXJzaW9uIG9mIHRoZSB1bmRlcmx5aW5nIGlu dGVnZXIKICAgLS0gICAgcmVzdWx0LCB3aXRoIG5vIHJlZ2FyZCB0byB0aGUgc21hbGwgb3BlcmFu ZC4KCiAgIC0tICBDb3JyZXNwb25kaW5nX0JvZHkgKE5vZGU1LVNlbSkKICAgLS0gICAgVGhpcyBm aWVsZCBpcyBzZXQgaW4gc3VicHJvZ3JhbSBkZWNsYXJhdGlvbnMsIHdoZXJlIGl0IGlzIG5lZWRl ZAogICAtLSAgICBpZiBhIHByYWdtYSBJbmxpbmUgaXMgcHJlc2VudCBhbmQgdGhlIHN1YnByb2dy YW0gaXMgY2FsbGVkLCBpbgogICAtLSAgICBnZW5lcmljIGRlY2xhcmF0aW9ucyBpZiB0aGUgZ2Vu ZXJpYyBpcyBpbnN0YW50aWF0ZWQsIGFuZCBhbHNvIGluCiAgIC0tICAgIHBhY2thZ2UgZGVjbGFy YXRpb25zIHRoYXQgY29udGFpbiBpbmxpbmVkIHN1YnByb2dyYW1zIHRoYXQgYXJlCiAgIC0tICAg IGNhbGxlZCwgb3IgZ2VuZXJpYyBkZWNsYXJhdGlvbnMgdGhhdCBhcmUgaW5zdGFudGlhdGVkLiBJ dCBwb2ludHMKICAgLS0gICAgdG8gdGhlIGRlZmluaW5nIGVudGl0eSBmb3IgdGhlIGNvcnJlc3Bv bmRpbmcgYm9keS4KCiAgIC0tICBDb3JyZXNwb25kaW5nX0dlbmVyaWNfQXNzb2NpYXRpb24gKE5v ZGU1LVNlbSkKICAgLS0gICAgVGhpcyBmaWVsZCBpcyBkZWZpbmVkIGZvciBvYmplY3QgZGVjbGFy YXRpb25zIGFuZCBvYmplY3QgcmVuYW1pbmcKICAgLS0gICAgZGVjbGFyYXRpb25zLiBJdCBpcyBz ZXQgZm9yIHRoZSBkZWNsYXJhdGlvbnMgd2l0aGluIGFuIGluc3RhbmNlIHRoYXQKICAgLS0gICAg bWFwIGdlbmVyaWMgZm9ybWFscyB0byB0aGVpciBhY3R1YWxzLiAgSWYgc2V0LCB0aGUgZmllbGQg cG9pbnRzIHRvCiAgIC0tICAgIGEgZ2VuZXJpY19hc3NvY2lhdGlvbiB3aGljaCBpcyB0aGUgb3Jp Z2luYWwgcGFyZW50IG9mIHRoZSBleHByZXNzaW9uCiAgIC0tICAgIG9yIG5hbWUgYXBwZWFyaW5n IGluIHRoZSBkZWNsYXJhdGlvbi4gVGhpcyBzaW1wbGlmaWVzIEFTSVMgcXVlcmllcy4KCiAgIC0t ICBDb3JyZXNwb25kaW5nX0ludGVnZXJfVmFsdWUgKFVpbnQ0LVNlbSkKICAgLS0gICAgVGhpcyBm aWVsZCBpcyBzZXQgaW4gcmVhbCBsaXRlcmFscyBvZiBmaXhlZC1wb2ludCB0eXBlcyAoaXQgaXMg bm90CiAgIC0tICAgIHVzZWQgZm9yIGZsb2F0aW5nLXBvaW50IHR5cGVzKS4gSXQgY29udGFpbnMg dGhlIGludGVnZXIgdmFsdWUgdXNlZAogICAtLSAgICB0byByZXByZXNlbnQgdGhlIGZpeGVkLXBv aW50IHZhbHVlLiBJdCBpcyBhbHNvIHNldCBvbiB0aGUgdW5pdmVyc2FsCiAgIC0tICAgIHJlYWwg bGl0ZXJhbHMgdXNlZCB0byByZXByZXNlbnQgYm91bmRzIG9mIGZpeGVkLXBvaW50IGJhc2UgdHlw ZXMKICAgLS0gICAgYW5kIHRoZWlyIGZpcnN0IG5hbWVkIHN1YnR5cGVzLgoKICAgLS0gIENvcnJl c3BvbmRpbmdfU3BlYyAoTm9kZTUtU2VtKQogICAtLSAgICBUaGlzIGZpZWxkIGlzIHNldCBpbiBz dWJwcm9ncmFtLCBwYWNrYWdlLCB0YXNrLCBhbmQgcHJvdGVjdGVkIGJvZHkKICAgLS0gICAgbm9k ZXMsIHdoZXJlIGl0IHBvaW50cyB0byB0aGUgZGVmaW5pbmcgZW50aXR5IGluIHRoZSBjb3JyZXNw b25kaW5nCiAgIC0tICAgIHNwZWMuIFRoZSBhdHRyaWJ1dGUgaXMgYWxzbyBzZXQgaW4gTl9XaXRo X0NsYXVzZSBub2Rlcywgd2hlcmUKICAgLS0gICAgaXQgcG9pbnRzIHRvIHRoZSBkZWZpbmluZyBl bnRpdHkgZm9yIHRoZSB3aXRoJ2VkIHNwZWMsIGFuZCBpbgogICAtLSAgICBhIHN1YnByb2dyYW0g cmVuYW1pbmcgZGVjbGFyYXRpb24gd2hlbiBpdCBpcyBhIFJlbmFtaW5nX0FzX0JvZHkuCiAgIC0t ICAgIFRoZSBmaWVsZCBpcyBFbXB0eSBpZiB0aGVyZSBpcyBubyBjb3JyZXNwb25kaW5nIHNwZWMs IGFzIGluIHRoZQogICAtLSAgICBjYXNlIG9mIGEgc3VicHJvZ3JhbSBib2R5IHRoYXQgc2VydmVz IGFzIGl0cyBvd24gc3BlYy4KCiAgIC0tICBDb3JyZXNwb25kaW5nX1N0dWIgKE5vZGUzLVNlbSkK ICAgLS0gICAgVGhpcyBmaWVsZCBpcyBwcmVzZW50IGluIGFuIE5fU3VidW5pdCBub2RlLiBJdCBo b2xkcyB0aGUgbm9kZSBpbgogICAtLSAgICB0aGUgcGFyZW50IHVuaXQgdGhhdCBpcyB0aGUgc3R1 YiBkZWNsYXJhdGlvbiBmb3IgdGhlIHN1YnVuaXQuIGl0IGlzCiAgIC0tICAgIHNldCB3aGVuIGFu YWx5c2lzIG9mIHRoZSBzdHViIGZvcmNlcyBsb2FkaW5nIG9mIHRoZSBwcm9wZXIgYm9keS4gSWYK ICAgLS0gICAgZXhwYW5zaW9uIG9mIHRoZSBwcm9wZXIgYm9keSBjcmVhdGVzIG5ldyBkZWNsYXJh dGl2ZSBub2RlcywgdGhleSBhcmUKICAgLS0gICAgaW5zZXJ0ZWQgYXQgdGhlIHBvaW50IG9mIHRo ZSBjb3JyZXNwb25kaW5nX3N0dWIuCgogICAtLSAgRGNoZWNrX0Z1bmN0aW9uIChOb2RlNS1TZW0p CiAgIC0tICAgIFRoaXMgZmllbGQgaXMgcHJlc2VudCBpbiBhbiBOX1ZhcmlhbnQgbm9kZSwgSXQg cmVmZXJlbmNlcyB0aGUgZW50aXR5CiAgIC0tICAgIGZvciB0aGUgZGlzY3JpbWluYW50IGNoZWNr aW5nIGZ1bmN0aW9uIGZvciB0aGUgdmFyaWFudC4KCiAgIC0tICBEZWJ1Z19TdGF0ZW1lbnQgKE5v ZGUzKQogICAtLSAgICBUaGlzIGZpZWxkIGlzIHByZXNlbnQgaW4gYW4gTl9QcmFnbWEgbm9kZS4g SXQgaXMgdXNlZCBvbmx5IGZvcgogICAtLSAgICBhIERlYnVnIHByYWdtYSBvciBwcmFnbWEgQXNz ZXJ0IHdpdGggYSBzZWNvbmQgcGFyYW1ldGVyLiBUaGUKICAgLS0gICAgcGFyYW1ldGVyIGlzIG9m IHRoZSBmb3JtIG9mIGFuIGV4cHJlc3Npb24sIGFzIHJlcXVpcmVkIGJ5IHRoZQogICAtLSAgICBw cmFnbWEgc3ludGF4LCBidXQgaXMgYWN0dWFsbHkgYSBwcm9jZWR1cmUgY2FsbC4gVG8gc2ltcGxp ZnkKICAgLS0gICAgc2VtYW50aWMgcHJvY2Vzc2luZywgdGhlIHBhcnNlciBjcmVhdGVzIGEgY29w eSBvZiB0aGUgYXJndW1lbnQKICAgLS0gICAgcmVhcnJhbmdlZCBpbnRvIGEgcHJvY2VkdXJlIGNh bGwgc3RhdGVtZW50IGFuZCBwbGFjZXMgaXQgaW4gdGhlCiAgIC0tICAgIERlYnVnX1N0YXRlbWVu dCBmaWVsZC4gTm90ZSB0aGF0IHRoaXMgZmllbGQgaXMgY29uc2lkZXJlZCBhCiAgIC0tICAgIHN5 bnRhY3RpYyBmaWVsZCwgc2luY2UgaXQgaXMgY3JlYXRlZCBieSB0aGUgcGFyc2VyLgoKICAgLS0g IERlZmF1bHRfRXhwcmVzc2lvbiAoTm9kZTUtU2VtKQogICAtLSAgICBUaGlzIGZpZWxkIGlzIEVt cHR5IGlmIHRoZXJlIGlzIG5vIGRlZmF1bHQgZXhwcmVzc2lvbi4gSWYgdGhlcmUKICAgLS0gICAg aXMgYSBzaW1wbGUgZGVmYXVsdCBleHByZXNzaW9uIChvbmUgd2l0aCBubyBzaWRlIGVmZmVjdHMp LCB0aGVuCiAgIC0tICAgIHRoaXMgZmllbGQgc2ltcGx5IGNvbnRhaW5zIGEgY29weSBvZiB0aGUg RXhwcmVzc2lvbiBmaWVsZCAoYm90aAogICAtLSAgICBwb2ludCB0byB0aGUgdHJlZSBmb3IgdGhl IGRlZmF1bHQgZXhwcmVzc2lvbikuIERlZmF1bHRfRXhwcmVzc2lvbgogICAtLSAgICBpcyB1c2Vk IGZvciBjb25mb3JtYW5jZSBjaGVja2luZy4KCiAgIC0tICBEZWxheV9GaW5hbGl6ZV9BdHRhY2gg KEZsYWcxNC1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBwcmVzZW50IGluIGFuIE5fT2JqZWN0 X0RlY2xhcmF0aW9uIG5vZGUuIElmIGl0IGlzIHNldCwKICAgLS0gICAgdGhlbiBpbiB0aGUgY2Fz ZSBvZiBhIGNvbnRyb2xsZWQgdHlwZSBiZWluZyBkZWNsYXJlZCBhbmQgaW5pdGlhbGl6ZWQsCiAg IC0tICAgIHRoZSBub3JtYWwgY29kZSBmb3IgYXR0YWNoaW5nIHRoZSByZXN1bHQgdG8gdGhlIGFw cHJvcHJpYXRlIGxvY2FsCiAgIC0tICAgIGZpbmFsaXphdGlvbiBsaXN0IGlzIHN1cHByZXNzZWQu IFRoaXMgaXMgdXNlZCBmb3IgZnVuY3Rpb25zIHRoYXQKICAgLS0gICAgcmV0dXJuIGNvbnRyb2xs ZWQgdHlwZXMgd2l0aG91dCB1c2luZyB0aGUgc2Vjb25kYXJ5IHN0YWNrLCB3aGVyZQogICAtLSAg ICBpdCBpcyB0aGUgY2FsbGVyIHdobyBtdXN0IGRvIHRoZSBhdHRhY2htZW50LgoKICAgLS0gIERp c2NyX0NoZWNrX0Z1bmNzX0J1aWx0IChGbGFnMTEtU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMg cHJlc2VudCBpbiBOX0Z1bGxfVHlwZV9EZWNsYXJhdGlvbiBub2Rlcy4gSXQgaXMgc2V0IHdoZW4K ICAgLS0gICAgZGlzY3JpbWluYW50IGNoZWNraW5nIGZ1bmN0aW9ucyBhcmUgY29uc3RydWN0ZWQu IFRoZSBwdXJwb3NlIGlzIHRvCiAgIC0tICAgIGF2b2lkIGF0dGVtcHRpbmcgdG8gc2V0IHRoZXNl IGZ1bmN0aW9ucyBtb3JlIHRoYW4gb25jZS4KCiAgIC0tICBEb19BY2Nlc3NfQ2hlY2sgKEZsYWcx MS1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBzZXQgb24gbm9kZXMgd2l0aCBhIFByZWZpeCBm aWVsZCB0aGF0IGNhbiBiZSBhbiBvYmplY3QKICAgLS0gICAgb2YgYW4gYWNjZXNzIHR5cGUuIElm IHRoZSBmbGFnIGlzIHNldCwgaXQgaW5kaWNhdGVzIHRoYXQgYSBjaGVjayBpcwogICAtLSAgICBy ZXF1aXJlZCB0byBlbnN1cmUgdGhhdCB0aGUgdmFsdWUgb2YgdGhlIHJlZmVyZW5jZWQgb2JqZWN0 IGlzIG5vdAogICAtLSAgICBudWxsLiBUaGUgYWN0dWFsIGNoZWNrICh3aGljaCBtYXkgYmUgZXhw bGljaXQgb3IgaW1wbGljaXQgYnkgbWVhbnMKICAgLS0gICAgb2Ygc29tZSB0cmFwKSwgaXMgZ2Vu ZXJhdGVkIGJ5IEdpZ2kgKGFsbCB0aGUgZnJvbnQgZW5kIGRvZXMgaXMgdG8KICAgLS0gICAgc2V0 IHRoaXMgZmxhZyB0byByZXF1ZXN0IHRoZSB0cmFwKS4KCiAgIC0tICBEb19BY2Nlc3NpYmlsaXR5 X0NoZWNrIChGbGFnMTMtU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IG9uIE5fUGFyYW1l dGVyX1NwZWNpZmljYXRpb24gbm9kZXMgdG8gaW5kaWNhdGUKICAgLS0gICAgdGhhdCBhbiBhY2Nl c3NpYmlsaXR5IGNoZWNrIGlzIHJlcXVpcmVkIGZvciB0aGUgcGFyYW1ldGVyLiBJdCBpcwogICAt LSAgICBub3QgeWV0IGRlY2lkZWQgd2hvIHRha2VzIGNhcmUgb2YgdGhpcyBjaGVjayAoVEJEID8/ PykuCgogICAtLSAgRG9fRGlzY3JpbWluYW50X0NoZWNrIChGbGFnMTMtU2VtKQogICAtLSAgICBU aGlzIGZsYWcgaXMgc2V0IG9uIE5fU2VsZWN0ZWRfQ29tcG9uZW50IG5vZGVzIHRvIGluZGljYXRl IHRoYXQgYQogICAtLSAgICBkaXNjcmltaW5hbnQgY2hlY2sgaXMgcmVxdWlyZWQgdXNpbmcgdGhl IGRpc2NyaW1pbmFudCBjaGVjayByb3V0aW5lCiAgIC0tICAgIGFzc29jaWF0ZWQgd2l0aCB0aGUg c2VsZWN0b3IuIFRoZSBhY3R1YWwgY2hlY2sgaXMgZGVhbHQgd2l0aCBieQogICAtLSAgICBHaWdp IChhbGwgdGhlIGZyb250IGVuZCBkb2VzIGlzIHRvIHNldCB0aGUgZmxhZykuCgogICAtLSAgRG9f RGl2aXNpb25fQ2hlY2sgKEZsYWcxMy1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBzZXQgb24g YSBkaXZpc2lvbiBvcGVyYXRvciAoLyBtb2QgcmVtKSB0byBpbmRpY2F0ZQogICAtLSAgICB0aGF0 IGEgemVybyBkaXZpZGUgY2hlY2sgaXMgcmVxdWlyZWQuIFRoZSBhY3R1YWwgY2hlY2sgaXMgZGVh bHQKICAgLS0gICAgd2l0aCBieSB0aGUgYmFja2VuZCAoYWxsIHRoZSBmcm9udCBlbmQgZG9lcyBp cyB0byBzZXQgdGhlIGZsYWcpLgoKICAgLS0gIERvX0xlbmd0aF9DaGVjayAoRmxhZzQtU2VtKQog ICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IGluIGFuIE5fQXNzaWdubWVudF9TdGF0ZW1lbnQsIE5f T3BfQW5kLCBOX09wX09yLAogICAtLSAgICBOX09wX1hvciwgb3IgTl9UeXBlX0NvbnZlcnNpb24g bm9kZSB0byBpbmRpY2F0ZSB0aGF0IGEgbGVuZ3RoIGNoZWNrCiAgIC0tICAgIGlzIHJlcXVpcmVk LiBJdCBpcyBub3QgZGV0ZXJtaW5lZCB3aG8gZGVhbHMgd2l0aCB0aGlzIGZsYWcgKD8/PykuCgog ICAtLSAgRG9fT3ZlcmZsb3dfQ2hlY2sgKEZsYWcxNy1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBp cyBzZXQgb24gYW4gb3BlcmF0b3Igd2hlcmUgYW4gb3ZlcmZsb3cgY2hlY2sgaXMgcmVxdWlyZWQK ICAgLS0gICAgb24gdGhlIG9wZXJhdGlvbi4gVGhlIGFjdHVhbCBjaGVjayBpcyBkZWFsdCB3aXRo IGJ5IHRoZSBiYWNrZW5kCiAgIC0tICAgIChhbGwgdGhlIGZyb250IGVuZCBkb2VzIGlzIHRvIHNl dCB0aGUgZmxhZykuIFRoZSBvdGhlciBjYXNlcyB3aGVyZQogICAtLSAgICB0aGlzIGZsYWcgaXMg dXNlZCBpcyBvbiBhIFR5cGVfQ29udmVyc2lvbiBub2RlIGFuZCBmb3IgYXR0cmlidXRlCiAgIC0t ICAgIHJlZmVyZW5jZSBub2Rlcy4gRm9yIGEgdHlwZSBjb252ZXJzaW9uLCBpdCBtZWFucyB0aGF0 IHRoZSBjb252ZXJzaW9uCiAgIC0tICAgIGlzIGZyb20gb25lIGJhc2UgdHlwZSB0byBhbm90aGVy LCBhbmQgdGhlIHZhbHVlIG1heSBub3QgZml0IGluIHRoZQogICAtLSAgICB0YXJnZXQgYmFzZSB0 eXBlLiBTZWUgYWxzbyB0aGUgZGVzY3JpcHRpb24gb2YgRG9fUmFuZ2VfQ2hlY2sgZm9yCiAgIC0t ICAgIHRoaXMgY2FzZS4gVGhlIG9ubHkgYXR0cmlidXRlIHJlZmVyZW5jZXMgd2hpY2ggdXNlIHRo aXMgZmxhZyBhcmUKICAgLS0gICAgUHJlZCBhbmQgU3VjYywgd2hlcmUgaXQgbWVhbnMgdGhhdCB0 aGUgcmVzdWx0IHNob3VsZCBiZSBjaGVja2VkCiAgIC0tICAgIGZvciBnb2luZyBvdXRzaWRlIHRo ZSBiYXNlIHJhbmdlLgoKICAgLS0gIERvX1JhbmdlX0NoZWNrIChGbGFnOS1TZW0pCiAgIC0tICAg IFRoaXMgZmxhZyBpcyBzZXQgb24gYW4gZXhwcmVzc2lvbiB3aGljaCBhcHBlYXJzIGluIGEgY29u dGV4dCB3aGVyZQogICAtLSAgICBhIHJhbmdlIGNoZWNrIGlzIHJlcXVpcmVkLiBUaGUgdGFyZ2V0 IHR5cGUgaXMgY2xlYXIgZnJvbSB0aGUKICAgLS0gICAgY29udGV4dC4gVGhlIGNvbnRleHRzIGlu IHdoaWNoIHRoaXMgZmxhZyBjYW4gYXBwZWFyIGFyZSBsaW1pdGVkIHRvCiAgIC0tICAgIHRoZSBm b2xsb3dpbmcuCgogICAtLSAgICAgIFJpZ2h0IHNpZGUgb2YgYW4gYXNzaWdubWVudC4gSW4gdGhp cyBjYXNlIHRoZSB0YXJnZXQgdHlwZSBpcwogICAtLSAgICAgIHRha2VuIGZyb20gdGhlIGxlZnQg c2lkZSBvZiB0aGUgYXNzaWdubWVudCwgd2hpY2ggaXMgcmVmZXJlbmNlZAogICAtLSAgICAgIGJ5 IHRoZSBOYW1lIG9mIHRoZSBOX0Fzc2lnbm1lbnRfU3RhdGVtZW50IG5vZGUuCgogICAtLSAgICAg IFN1YnNjcmlwdCBleHByZXNzaW9ucyBpbiBhbiBpbmRleGVkIGNvbXBvbmVudC4gSW4gdGhpcyBj YXNlIHRoZQogICAtLSAgICAgIHRhcmdldCB0eXBlIGlzIGRldGVybWluZWQgZnJvbSB0aGUgdHlw ZSBvZiB0aGUgYXJyYXksIHdoaWNoIGlzCiAgIC0tICAgICAgcmVmZXJlbmNlZCBieSB0aGUgUHJl Zml4IG9mIHRoZSBOX0luZGV4ZWRfQ29tcG9uZW50IG5vZGUuCgogICAtLSAgICAgIEFyZ3VtZW50 IGV4cHJlc3Npb24gZm9yIGEgcGFyYW1ldGVyLCBhcHBlYXJpbmcgZWl0aGVyIGRpcmVjdGx5CiAg IC0tICAgICAgaW4gdGhlIFBhcmFtZXRlcl9Bc3NvY2lhdGlvbnMgbGlzdCBvZiBhIGNhbGwgb3Ig YXMgdGhlIEV4cHJlc3Npb24KICAgLS0gICAgICBvZiBhbiBOX1BhcmFtZXRlcl9Bc3NvY2lhdGlv biBub2RlIHRoYXQgYXBwZWFycyBpbiB0aGlzIGxpc3QuIEluCiAgIC0tICAgICAgZWl0aGVyIGNh c2UsIHRoZSBjaGVjayBpcyBhZ2FpbnN0IHRoZSB0eXBlIG9mIHRoZSBmb3JtYWwuIE5vdGUKICAg LS0gICAgICB0aGF0IHRoZSBmbGFnIGlzIHJlbGV2YW50IG9ubHkgaW4gSU4gYW5kIElOIE9VVCBw YXJhbWV0ZXJzLCBhbmQKICAgLS0gICAgICB3aWxsIGJlIGlnbm9yZWQgZm9yIE9VVCBwYXJhbWV0 ZXJzLCB3aGVyZSBubyBjaGVjayBpcyByZXF1aXJlZAogICAtLSAgICAgIGluIHRoZSBjYWxsLCBh bmQgaWYgYSBjaGVjayBpcyByZXF1aXJlZCBvbiB0aGUgcmV0dXJuLCBpdCBpcwogICAtLSAgICAg IGdlbmVyYXRlZCBleHBsaWNpdGx5IHdpdGggYSB0eXBlIGNvbnZlcnNpb24uCgogICAtLSAgICAg IEluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gZm9yIHRoZSBpbml0aWFsIHZhbHVlIGluIGFuIG9i amVjdAogICAtLSAgICAgIGRlY2xhcmF0aW9uLiBJbiB0aGlzIGNhc2UgdGhlIERvX1JhbmdlX0No ZWNrIGZsYWcgaXMgc2V0IG9uCiAgIC0tICAgICAgdGhlIGluaXRpYWxpemF0aW9uIGV4cHJlc3Np b24sIGFuZCB0aGUgY2hlY2sgaXMgYWdhaW5zdCB0aGUKICAgLS0gICAgICByYW5nZSBvZiB0aGUg dHlwZSBvZiB0aGUgb2JqZWN0IGJlaW5nIGRlY2xhcmVkLgoKICAgLS0gICAgICBUaGUgZXhwcmVz c2lvbiBvZiBhIHR5cGUgY29udmVyc2lvbi4gSW4gdGhpcyBjYXNlIHRoZSByYW5nZSBjaGVjawog ICAtLSAgICAgIGlzIGFnYWluc3QgdGhlIHRhcmdldCB0eXBlIG9mIHRoZSBjb252ZXJzaW9uLiBT ZWUgYWxzbyB0aGUgdXNlIG9mCiAgIC0tICAgICAgRG9fT3ZlcmZsb3dfQ2hlY2sgb24gYSB0eXBl IGNvbnZlcnNpb24uIFRoZSBkaXN0aW5jdGlvbiBpcyB0aGF0CiAgIC0tICAgICAgdGhlIG92cmZs b3cgY2hlY2sgcHJvdGVjdHMgYWdhaW5zdCBhIHZhbHVlIHRoYXQgaXMgb3V0c2lkZSB0aGUKICAg LS0gICAgICByYW5nZSBvZiB0aGUgdGFyZ2V0IGJhc2UgdHlwZSwgd2hlcmVhcyBhIHJhbmdlIGNo ZWNrIGNoZWNrcyB0aGF0CiAgIC0tICAgICAgdGhlIHJlc3VsdGluZyB2YWx1ZSAod2hpY2ggaXMg YSB2YWx1ZSBvZiB0aGUgYmFzZSB0eXBlIG9mIHRoZQogICAtLSAgICAgIHRhcmdldCB0eXBlKSwg c2F0aXNmaWVzIHRoZSByYW5nZSBjb25zdHJhaW50IG9mIHRoZSB0YXJnZXQgdHlwZS4KCiAgIC0t ICAgIE5vdGU6IHdoZW4gYSByYW5nZSBjaGVjayBpcyByZXF1aXJlZCBpbiBjb250ZXh0cyBvdGhl ciB0aGFuIHRob3NlCiAgIC0tICAgIGxpc3RlZCBhYm92ZSAoZS5nLiBpbiBhIHJldHVybiBzdGF0 ZW1lbnQpLCBhbiBhZGRpdGlvbmFsIHR5cGUKICAgLS0gICAgY29udmVyc2lvbiBub2RlIGlzIGlu dHJvZHVjZWQgdG8gcmVwcmVzZW50IHRoZSByZXF1aXJlZCBjaGVjay4KCiAgIC0tICBEb19TdG9y YWdlX0NoZWNrIChGbGFnMTctU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IGluIGFuIE5f QWxsb2NhdG9yIG5vZGUgdG8gaW5kaWNhdGUgdGhhdCBhIHN0b3JhZ2UKICAgLS0gICAgY2hlY2sg aXMgcmVxdWlyZWQgZm9yIHRoZSBhbGxvY2F0aW9uLCBvciBpbiBhbiBOX1N1YnByb2dyYW1fQm9k eQogICAtLSAgICBub2RlIHRvIGluZGljYXRlIHRoYXQgYSBzdGFjayBjaGVjayBpcyByZXF1aXJl ZCBpbiB0aGUgc3VicHJvZ3JhbQogICAtLSAgICBwcm9sb2cuIFRoZSBOX0FsbG9jYXRvciBjYXNl IGlzIGhhbmRsZWQgYnkgdGhlIHJvdXRpbmUgdGhhdCBleHBhbmRzCiAgIC0tICAgIHRoZSBjYWxs IHRvIHRoZSBydW50aW1lIHJvdXRpbmUuIFRoZSBOX1N1YnByb2dyYW1fQm9keSBjYXNlIGlzCiAg IC0tICAgIGhhbmRsZWQgYnkgdGhlIGJhY2tlbmQsIGFuZCBhbGwgdGhlIHNlbWFudGljcyBkb2Vz IGlzIHNldCB0aGUgZmxhZy4KCiAgIC0tICBEb19UYWdfQ2hlY2sgKEZsYWcxMy1TZW0pCiAgIC0t ICAgIFRoaXMgZmxhZyBpcyBzZXQgb24gYW4gTl9Bc3NpZ25tZW50X1N0YXRlbWVudCwgTl9GdW5j dGlvbl9DYWxsLAogICAtLSAgICBOX1Byb2NlZHVyZV9DYWxsX1N0YXRlbWVudCwgTl9UeXBlX0Nv bnZlcnNpb24gb3IgTl9SZXR1cm5fU3RhdGVtZW10CiAgIC0tICAgIG5vZGUgdG8gaW5kaWNhdGUg dGhhdCB0aGUgdGFnIGNoZWNrIGNhbiBiZSBzdXBwcmVzc2VkLiBJdCBpcyBub3QKICAgLS0gICAg eWV0IGRlY2lkZWQgaG93IHRoaXMgZmxhZyBpcyB1c2VkIChUQkQgPz8/KS4KCiAgIC0tICBFbGFi b3JhdGVfUHJlc2VudCAoRmxhZzQtU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IGluIHRo ZSBOX1dpdGhfQ2xhdXNlIG5vZGUgdG8gaW5kaWNhdGUgdGhhdCBhCiAgIC0tICAgIHByYWdtYSBF bGFib3JhdGUgcHJhZ21hIGFwcGVhcnMgZm9yIHRoZSB3aXRoJ2VkIHVuaXRzLgoKICAgLS0gIEVs YWJvcmF0ZV9BbGxfUHJlc2VudCAoRmxhZzE1LVNlbSkKICAgLS0gICAgVGhpcyBmbGFnIGlzIHNl dCBpbiB0aGUgTl9XaXRoX0NsYXVzZSBub2RlIHRvIGluZGljYXRlIHRoYXQgYQogICAtLSAgICBw cmFnbWEgRWxhYm9yYXRlX0FsbCBwcmFnbWEgYXBwZWFycyBmb3IgdGhlIHdpdGgnZWQgdW5pdHMu CgogICAtLSAgRWxhYm9yYXRpb25fQm9vbGVhbiAoTm9kZTItU2VtKQogICAtLSAgICBUaGlzIGZp ZWxkIGlzIHByZXNlbnQgaW4gZnVuY3Rpb24gYW5kIHByb2NlZHVyZSBzcGVjaWZpY2F0aW9uCiAg IC0tICAgIG5vZGVzLiBJZiBzZXQsIGl0IHBvaW50cyB0byB0aGUgZW50aXR5IGZvciBhIEJvb2xl YW4gZmxhZyB0aGF0CiAgIC0tICAgIG11c3QgYmUgdGVzdGVkIGZvciBjZXJ0YWluIGNhbGxzIHRv IGNoZWNrIGZvciBhY2Nlc3MgYmVmb3JlCiAgIC0tICAgIGVsYWJvcmF0aW9uLiBTZWUgYm9keSBv ZiBTZW1fRWxhYiBmb3IgZnVydGhlciBkZXRhaWxzLiBUaGlzCiAgIC0tICAgIGZpZWxkIGlzIEVt cHR5IGlmIG5vIGVsYWJvcmF0aW9uIGJvb2xlYW4gaXMgcmVxdWlyZWQuCgogICAtLSAgRWxzZV9B Y3Rpb25zIChMaXN0My1TZW0pCiAgIC0tICAgIFRoaXMgZmllbGQgaXMgcHJlc2VudCBpbiBjb25k aXRpb25hbCBleHByZXNzaW9uIG5vZGVzLiBEdXJpbmcgY29kZQogICAtLSAgICBleHBhbnNpb24g d2UgdXNlIHRoZSBJbnNlcnRfQWN0aW9ucyBwcm9jZWR1cmUgKGluIEV4cF9VdGlsKSB0byBpbnNl cnQKICAgLS0gICAgYWN0aW9ucyBhdCBhbiBhcHByb3ByaWF0ZSBwbGFjZSBpbiB0aGUgdHJlZSB0 byBnZXQgZWxhYm9yYXRlZCBhdCB0aGUKICAgLS0gICAgcmlnaHQgdGltZS4gRm9yIGNvbmRpdGlv bmFsIGV4cHJlc3Npb25zLCB3ZSBoYXZlIHRvIGJlIHN1cmUgdGhhdCB0aGUKICAgLS0gICAgYWN0 aW9ucyBmb3IgdGhlIEVsc2UgYnJhbmNoIGFyZSBvbmx5IGVsYWJvcmF0ZWQgaWYgdGhlIGNvbmRp dGlvbiBpcwogICAtLSAgICBGYWxzZS4gVGhlIEVsc2VfQWN0aW9ucyBmaWVsZCBpcyB1c2VkIGFz IGEgdGVtcG9yYXJ5IHBhcmtpbmcgcGxhY2UKICAgLS0gICAgZm9yIHRoZXNlIGFjdGlvbnMuIFRo ZSBmaW5hbCB0cmVlIGlzIGFsd2F5cyByZXdyaXR0ZW4gdG8gZWxpbWluYXRlCiAgIC0tICAgIHRo ZSBuZWVkIGZvciB0aGlzIGZpZWxkLCBzbyBpbiB0aGUgdHJlZSBwYXNzZWQgdG8gR2lnaSwgdGhp cyBmaWVsZAogICAtLSAgICBpcyBhbHdheXMgc2V0IHRvIE5vX0xpc3QuCgogICAtLSAgRW5jbG9z aW5nX1ZhcmlhbnQgKE5vZGUyLVNlbSkKICAgLS0gICAgVGhpcyBmaWVsZCBpcyBwcmVzZW50IGlu IHRoZSBOX1ZhcmlhbnQgbm9kZSBhbmQgaWRlbnRpZmllcyB0aGUKICAgLS0gICAgTm9kZV9JZCBj b3JyZXNwb25kaW5nIHRvIHRoZSBpbW1lZGlhdGVseSBlbmNsb3NpbmcgdmFyaWFudCB3aGVuCiAg IC0tICAgIHRoZSB2YXJpYW50IGlzIG5lc3RlZCwgYW5kIE5fRW1wdHkgb3RoZXJ3aXNlLiBTZXQg ZHVyaW5nIHNlbWFudGljCiAgIC0tICAgIHByb2Nlc3Npbmcgb2YgdGhlIHZhcmlhbnQgcGFydCBv ZiBhIHJlY29yZCB0eXBlLgoKICAgLS0gIEVudGl0eSAoTm9kZTQtU2VtKQogICAtLSAgICBBcHBl YXJzIGluIGFsbCBkaXJlY3QgbmFtZXMgKGlkZW50aWZpZXIsIGNoYXJhY3RlciBsaXRlcmFsLAog ICAtLSAgICBvcGVyYXRvciBzeW1ib2wpLCBhcyB3ZWxsIGFzIGV4cGFuZGVkIG5hbWVzLCBhbmQg YXR0cmlidXRlcyB0aGF0CiAgIC0tICAgIGRlbm90ZSBlbnRpdGllcywgc3VjaCBhcyAnQ2xhc3Mu IFBvaW50cyB0byB0aGUgZW50aXR5IGZvciB0aGUKICAgLS0gICAgY29ycmVzcG9uZGluZyBkZWZp bmluZyBvY2N1cnJlbmNlLiBTZXQgYWZ0ZXIgbmFtZSByZXNvbHV0aW9uLgogICAtLSAgICBJbiB0 aGUgY2FzZSBvZiBpZGVudGlmaWVycyBpbiBhIFdJVEggbGlzdCwgdGhlIGNvcnJlc3BvbmRpbmcK ICAgLS0gICAgZGVmaW5pbmcgb2NjdXJyZW5jZSBpcyBpbiBhIHNlcGFyYXRlbHkgY29tcGlsZWQg ZmlsZSwgYW5kIHRoaXMKICAgLS0gICAgcG9pbnRlciBtdXN0IGJlIHNldCB1c2luZyB0aGUgbGli cmFyeSBMb2FkIHByb2NlZHVyZS4gTm90ZSB0aGF0CiAgIC0tICAgIGR1cmluZyBuYW1lIHJlc29s dXRpb24sIHRoZSB2YWx1ZSBpbiBFbnRpdHkgbWF5IGJlIHRlbXBvcmFyaWx5CiAgIC0tICAgIGlu Y29ycmVjdCAoZS5nLiBkdXJpbmcgb3ZlcmxvYWQgcmVzb2x1dGlvbiwgRW50aXR5IGlzIGluaXRp YWxseQogICAtLSAgICBzZXQgdG8gdGhlIGZpcnN0IHBvc3NpYmxlIGNvcnJlY3QgaW50ZXJwcmV0 YXRpb24sIGFuZCB0aGVuIGxhdGVyCiAgIC0tICAgIG1vZGlmaWVkIGlmIG5lY2Vzc2FyeSB0byBj b250YWluIHRoZSBjb3JyZWN0IHZhbHVlIGFmdGVyIHJlc29sdXRpb24pLgogICAtLSAgICBOb3Rl IHRoYXQgQXNzb2NpYXRlZF9Ob2RlIG92ZXJsYXlzIHRoaXMgZmllbGQgZHVyaW5nIHRoZSBwcm9j ZXNzaW5nCiAgIC0tICAgIG9mIGdlbmVyaWNzLiBTZWUgU2VtX0NoMTIgZm9yIGZ1cnRoZXIgZGV0 YWlscy4KCiAgIC0tICBFdHlwZSAoTm9kZTUtU2VtKQogICAtLSAgICBBcHBlYXJzIGluIGFsbCBl eHByZXNzaW9uIG5vZGVzLCBhbGwgZGlyZWN0IG5hbWVzLCBhbmQgYWxsCiAgIC0tICAgIGVudGl0 aWVzLiBQb2ludHMgdG8gdGhlIGVudGl0eSBmb3IgdGhlIHJlbGF0ZWQgdHlwZS4gU2V0IGFmdGVy CiAgIC0tICAgIHR5cGUgcmVzb2x1dGlvbi4gTm9ybWFsbHkgdGhpcyBpcyB0aGUgYWN0dWFsIHN1 YnR5cGUgb2YgdGhlCiAgIC0tICAgIGV4cHJlc3Npb24uIEhvd2V2ZXIsIGluIGNlcnRhaW4gY29u dGV4dHMgc3VjaCBhcyB0aGUgcmlnaHQgc2lkZQogICAtLSAgICBvZiBhbiBhc3NpZ25tZW50LCBz dWJzY3JpcHRzLCBhcmd1bWVudHMgdG8gY2FsbHMsIHJldHVybmVkIHZhbHVlCiAgIC0tICAgIGlu IGEgZnVuY3Rpb24sIGluaXRpYWwgdmFsdWUgZXRjLiBpdCBpcyB0aGUgZGVzaXJlZCB0YXJnZXQg dHlwZS4KICAgLS0gICAgSW4gdGhlIGV2ZW50IHRoYXQgdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB0 aGUgYWN0dWFsIHR5cGUsIHRoZQogICAtLSAgICBEb19SYW5nZV9DaGVjayBmbGFnIHdpbGwgYmUg c2V0IGlmIGEgcmFuZ2UgY2hlY2sgaXMgcmVxdWlyZWQuCiAgIC0tICAgIE5vdGU6IGlmIHRoZSBJ c19PdmVybG9hZGVkIGZsYWcgaXMgc2V0LCB0aGVuIEV0eXBlIHBvaW50cyB0bwogICAtLSAgICBh biBlc3NlbnRpYWxseSBhcmJpdHJhcnkgY2hvaWNlIGZyb20gdGhlIHBvc3NpYmxlIHNldCBvZiB0 eXBlcy4KCiAgIC0tICBFeGNlcHRpb25fSnVuayAoRmxhZzExLVNlbSkKICAgLS0gICAgVGhpcyBm bGFnIGlzIHNldCBpbiBhIHZhcmlvdXMgbm9kZXMgYXBwZWFyaW5nIGluIGEgc3RhdGVtZW50CiAg IC0tICAgIHNlcXVlbmNlIHRvIGluZGljYXRlIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZSBp cyBhbiBhcnRpZmFjdAogICAtLSAgICBvZiB0aGUgZ2VuZXJhdGVkIGNvZGUgZm9yIGV4Y2VwdGlv biBoYW5kbGluZywgYW5kIHNob3VsZCBiZQogICAtLSAgICBpZ25vcmVkIHdoZW4gYW5hbHl6aW5n IHRoZSBjb250cm9sIGZsb3cgb2YgdGhlIHJlbGV2YW50IHNlcXVlbmNlCiAgIC0tICAgIG9mIHN0 YXRlbWVudHMgKGUuZy4gdG8gY2hlY2sgdGhhdCBpdCBkb2VzIG5vdCBlbmQgd2l0aCBhIGJhZAog ICAtLSAgICByZXR1cm4gc3RhdGVtZW50KS4KCiAgIC0tICBFeHBhbnNpb25fRGVsYXllZCAoRmxh ZzExLVNlbSkKICAgLS0gICAgU2V0IG9uIGFnZ3JlZ2F0ZXMgYW5kIGV4dGVuc2lvbiBhZ2dyZWdh dGVzIHRoYXQgbmVlZCBhIHRvcC1kb3duCiAgIC0tICAgIHJhdGhlciB0aGFuIGJvdHRvbSB1cCBl eHBhbnNpb24uIFR5cGljYWxseSBhZ2dyZWdhdGUgZXhwYW5zaW9uCiAgIC0tICAgIGhhcHBlbnMg Ym90dG9tIHVwLiBGb3IgbmVzdGVkIGFnZ3JlZ2F0ZXMgdGhlIGV4cGFuc2lvbiBpcyBkZWxheWVk CiAgIC0tICAgIHVudGlsIHRoZSBlbmNsb3NpbmcgYWdncmVnYXRlIGl0c2VsZiBpcyBleHBhbmRl ZCwgZS5nLiBpbiB0aGUgY29udGV4dAogICAtLSAgICBvZiBhIGRlY2xhcmF0aW9uLiBUbyBkZWxh eSBpdCB3ZSBzZXQgdGhpcyBmbGFnLiBUaGlzIGlzIGRvbmUgdG8KICAgLS0gICAgYXZvaWQgY3Jl YXRpbmcgYSB0ZW1wb3JhcnkgZm9yIGVhY2ggbGV2ZWwgb2YgYSBuZXN0ZWQgYWdncmVnYXRlcywK ICAgLS0gICAgYW5kIGFsc28gdG8gcHJldmVudCB0aGUgcHJlbWF0dXJlIGdlbmVyYXRpb24gb2Yg Y29uc3RyYWludCBjaGVja3MuCiAgIC0tICAgIFRoaXMgaXMgYWxzbyBhIHJlcXVpcmVtZW50IGlm IHdlIHdhbnQgdG8gZ2VuZXJhdGUgdGhlIHByb3BlcgogICAtLSAgICBhdHRhY2htZW50IHRvIHRo ZSBpbnRlcm5hbCBmaW5hbGl6YXRpb24gbGlzdHMgKGZvciByZWNvcmQgd2l0aAogICAtLSAgICBj b250cm9sbGVkIGNvbXBvbmVudHMpLiBUb3AgZG93biBleHBhbnNpb24gb2YgYWdncmVnYXRlcyBp cyBhbHNvCiAgIC0tICAgIHVzZWQgZm9yIGluLXBsYWNlIGFycmF5IGFnZ3JlZ2F0ZSBhc3NpZ25t ZW50IG9yIGluaXRpYWxpemF0aW9uLgogICAtLSAgICBXaGVuIHRoZSBmdWxsIGNvbnRleHQgaXMg a25vd24sIHRoZSB0YXJnZXQgb2YgdGhlIGFzc2lnbm1lbnQgb3IKICAgLS0gICAgaW5pdGlhbGl6 YXRpb24gaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgaW5kaXZpZHVh bAogICAtLSAgICBhc3NpZ25tZW50IHRvIGVhY2ggc3ViLWNvbXBvbmVudC4KCiAgIC0tICBGaXJz dF9JbmxpbmVkX1N1YnByb2dyYW0gKE5vZGUzLVNlbSkKICAgLS0gICAgUHJlc2VudCBpbiB0aGUg Tl9Db21waWxhdGlvbl9Vbml0IG5vZGUgZm9yIHRoZSBtYWluIHByb2dyYW0uIFBvaW50cwogICAt LSAgICB0byBhIGNoYWluIG9mIGVudGl0aWVzIGZvciBzdWJwcm9ncmFtcyB0aGF0IGFyZSB0byBi ZSBpbmxpbmVkLiBUaGUKICAgLS0gICAgTmV4dF9JbmxpbmVkX1N1YnByb2dyYW0gZmllbGQgb2Yg dGhlc2UgZW50aXRpZXMgaXMgdXNlZCBhcyBhIGxpbmsKICAgLS0gICAgcG9pbnRlciB3aXRoIEVt cHR5IG1hcmtpbmcgdGhlIGVuZCBvZiB0aGUgbGlzdC4gVGhpcyBmaWVsZCBpcyBFbXB0eQogICAt LSAgICBpZiB0aGVyZSBhcmUgbm8gaW5saW5lZCBzdWJwcm9ncmFtcyBvciBpbmxpbmluZyBpcyBu b3QgYWN0aXZlLgoKICAgLS0gIEZpcnN0X05hbWVkX0FjdHVhbCAoTm9kZTQtU2VtKQogICAtLSAg ICBQcmVzZW50IGluIHByb2NlZHVyZSBjYWxsIHN0YXRlbWVudCBhbmQgZnVuY3Rpb24gY2FsbCBu b2RlcywgYW5kCiAgIC0tICAgIGFsc28gaW4gSW50cmluc2ljIG5vZGVzLiBTZXQgZHVyaW5nIHNl bWFudGljIGFuYWx5c2lzIHRvIHBvaW50IHRvCiAgIC0tICAgIHRoZSBmaXJzdCBuYW1lZCBwYXJh bWV0ZXIgd2hlcmUgcGFyYW1ldGVycyBhcmUgb3JkZXJlZCBieSBkZWNsYXJhdGlvbgogICAtLSAg ICBvcmRlciAoYXMgb3Bwb3NlZCB0byB0aGUgYWN0dWFsIG9yZGVyIGluIHRoZSBjYWxsIHdoaWNo IG1heSBiZQogICAtLSAgICBkaWZmZXJlbnQgZHVlIHRvIG5hbWVkIGFzc29jaWF0aW9ucykuIE5v dGU6IHRoaXMgZmllbGQgcG9pbnRzIHRvIHRoZQogICAtLSAgICBleHBsaWNpdCBhY3R1YWwgcGFy YW1ldGVyIGl0c2VsZiwgbm90IHRoZSBOX1BhcmFtZXRlcl9Bc3NvY2lhdGlvbgogICAtLSAgICBu b2RlIChpdHMgcGFyZW50KS4KCiAgIC0tICBGaXJzdF9SZWFsX1N0YXRlbWVudCAoTm9kZTItU2Vt KQogICAtLSAgICBQcmVzZW50IGluIE5fSGFuZGxlZF9TZXF1ZW5jZV9PZl9TdGF0ZW1lbnRzIG5v ZGUuIE5vcm1hbGx5IHNldCB0bwogICAtLSAgICBFbXB0eS4gVXNlZCBvbmx5IHdoZW4gZGVjbGFy YXRpb25zIGFyZSBtb3ZlZCBpbnRvIHRoZSBzdGF0ZW1lbnQKICAgLS0gICAgcGFydCBvZiBhIGNv bnN0cnVjdCBhcyBhIHJlc3VsdCBvZiB3cmFwcGluZyBhbiBBVCBFTkQgaGFuZGxlciB0aGF0CiAg IC0tICAgIGlzIHJlcXVpcmVkIHRvIGNvdmVyIHRoZSBkZWNsYXJhdGlvbnMuIEluIHRoaXMgY2Fz ZSwgdGhpcyBmaWVsZCBpcwogICAtLSAgICB1c2VkIHRvIHJlbWVtYmVyIHRoZSBsb2NhdGlvbiBp biB0aGUgc3RhdGVtZW50cyBsaXN0IG9mIHRoZSBmaXJzdAogICAtLSAgICByZWFsIHN0YXRlbWVu dCwgaS5lLiB0aGUgc3RhdGVtZW50IHRoYXQgdXNlZCB0byBiZSBmaXJzdCBpbiB0aGUKICAgLS0g ICAgc3RhdGVtZW50IGxpc3QgYmVmb3JlIHRoZSBkZWNsYXJhdGlvbnMgd2VyZSBwcmVwZW5kZWQu CgogICAtLSAgRmlyc3RfU3VidHlwZV9MaW5rIChOb2RlNS1TZW0pCiAgIC0tICAgIFByZXNlbnQg aW4gTl9GcmVlemVfRW50aXR5IG5vZGUgZm9yIGFuIGFub255bW91cyBiYXNlIHR5cGUgdGhhdAog ICAtLSAgICBpcyBpbXBsaWNpdGx5IGNyZWF0ZWQgYnkgdGhlIGRlY2xhcmF0aW9uIG9mIGEgZmly c3Qgc3VidHlwZS4gSXQKICAgLS0gICAgcG9pbnRzIHRvIHRoZSBlbnRpdHkgZm9yIHRoZSBmaXJz dCBzdWJ0eXBlLgoKICAgLS0gIEZsb2F0X1RydW5jYXRlIChGbGFnMTEtU2VtKQogICAtLSAgICBB IGZsYWcgcHJlc2VudCBpbiB0eXBlIGNvbnZlcnNpb24gbm9kZXMuIFRoaXMgaXMgdXNlZCBmb3Ig ZmxvYXQKICAgLS0gICAgdG8gaW50ZWdlciBjb252ZXJzaW9ucyB3aGVyZSB0cnVuY2F0aW9uIGlz IHJlcXVpcmVkIHJhdGhlciB0aGFuCiAgIC0tICAgIHJvdW5kaW5nLiBOb3RlIHRoYXQgR2lnaSBk b2VzIG5vdCBoYW5kbGUgdHlwZSBjb252ZXJzaW9ucyBmcm9tIHJlYWwKICAgLS0gICAgdG8gaW50 ZWdlciB3aXRoIHJvdW5kaW5nIChzZWUgRXhwYW5kX05fVHlwZV9Db252ZXJzaW9uKS4KCiAgIC0t ICBGb3J3YXJkc19PSyAoRmxhZzUtU2VtKQogICAtLSAgICBBIGZsYWcgcHJlc2VudCBpbiB0aGUg Tl9Bc3NpZ25tZW50X1N0YXRlbWVudCBub2RlLiBJdCBpcyB1c2VkIG9ubHkKICAgLS0gICAgaWYg dGhlIHR5cGUgYmVpbmcgYXNzaWduZWQgaXMgYW4gYXJyYXkgdHlwZSwgYW5kIGlzIHNldCBpZiBh bmFseXNpcwogICAtLSAgICBkZXRlcm1pbmVzIHRoYXQgaXQgaXMgZGVmaW5pdGVseSBzYWZlIHRv IGRvIHRoZSBjb3B5IGZvcndhcmRzLCBpLmUuCiAgIC0tICAgIHN0YXJ0aW5nIGF0IHRoZSBsb3dl c3QgYWRkcmVzc2VkIGVsZW1lbnQuIE5vdGUgdGhhdCBpZiBuZWl0aGVyIG9mCiAgIC0tICAgIHRo ZSBmbGFncyBGb3J3YXJkc19PSyBvciBCYWNrd2FyZHNfT0sgaXMgc2V0LCBpdCBtZWFucyB0aGF0 IHRoZQogICAtLSAgICBmcm9udCBlbmQgY291bGQgbm90IGRldGVybWluZSB0aGF0IGVpdGhlciBk aXJlY3Rpb24gaXMgZGVmaW5pdGVseQogICAtLSAgICBzYWZlLCBhbmQgYSBydW50aW1lIGNoZWNr IGlzIHJlcXVpcmVkLgoKICAgLS0gIEZyb21fQXRfTW9kIChGbGFnNC1TZW0pCiAgIC0tICAgIFRo aXMgZmxhZyBpcyBzZXQgb24gdGhlIGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNsYXVzZSBub2RlIHRo YXQgaXMKICAgLS0gICAgZ2VuZXJhdGVkIGJ5IGEgdHJhbnNmb3JtYXRpb24gb2YgYW4gYXQgbW9k IHBocmFzZSBpbiBhIHJlY29yZAogICAtLSAgICByZXByZXNlbnRhdGlvbiBjbGF1c2UuIFRoaXMg aXMgdXNlZCB0byBnaXZlIHNsaWdodGx5IGRpZmZlcmVudAogICAtLSAgICAoQWRhIDgzIGNvbXBh dGlibGUpIHNlbWFudGljcyB0byBzdWNoIGEgY2xhdXNlLCBuYW1lbHkgaXQgaXMKICAgLS0gICAg dXNlZCB0byBzcGVjaWZ5IGEgbWluaW11bSBhY2NlcHRhYmxlIGFsaWdubWVudCBmb3IgdGhlIGJh c2UgdHlwZQogICAtLSAgICBhbmQgYWxsIHN1YnR5cGVzLiBJbiBBZGEgOTUgdGVybXMsIHRoZSBh Y3R1YWwgYWxpZ25tZW50IG9mIHRoZQogICAtLSAgICBiYXNlIHR5cGUgYW5kIGFsbCBzdWJ0eXBl cyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhlIGdpdmVuIHZhbHVlLAogICAtLSAgICBhbmQgdGhl IHJlcHJlc2VudGF0aW9uIGNsYXVzZSBpcyBjb25zaWRlcmVkIHRvIGJlIHR5cGUgc3BlY2lmaWMK ICAgLS0gICAgaW5zdGVhZCBvZiBzdWJ0eXBlIHNwZWNpZmljLgoKICAgLS0gIEdlbmVyaWNfUGFy ZW50IChOb2RlNS1TZW0pCiAgIC0tICAgIEdlbmVyaWNfcGFyZW50IGlzIGRlZmluZWQgb24gZGVj bGFyYXRpb24gbm9kZXMgdGhhdCBhcmUgaW5zdGFuY2VzLgogICAtLSAgICBUaGUgdmFsdWUgb2Yg R2VuZXJpY19QYXJlbnQgaXMgdGhlIGdlbmVyaWMgZW50aXR5IGZyb20gd2hpY2ggdGhlCiAgIC0t ICAgIGluc3RhbmNlIGlzIG9idGFpbmVkLiBHZW5lcmljX1BhcmVudCBpcyBhbHNvIGRlZmluZWQg Zm9yIHRoZSByZW5hbWluZwogICAtLSAgICBkZWNsYXJhdGlvbnMgYW5kIG9iamVjdCBkZWNsYXJh dGlvbnMgY3JlYXRlZCBmb3IgdGhlIGFjdHVhbHMgaW4gYW4KICAgLS0gICAgaW5zdGFudGlhdGlv bi4gVGhlIGdlbmVyaWMgcGFyZW50IG9mIHN1Y2ggYSBkZWNsYXJhdGlvbiBpcyB0aGUKICAgLS0g ICAgY29ycmVzcG9uZGluZyBnZW5lcmljIGFzc29jaWF0aW9uIGluIHRoZSBJbnN0YW50aWF0aW9u IG5vZGUuCgogICAtLSAgR2VuZXJpY19QYXJlbnRfVHlwZSAoTm9kZTQtU2VtKQogICAtLSAgICBH ZW5lcmljX1BhcmVudF9UeXBlIGlzIGRlZmluZWQgb24gU3VidHlwZV9EZWNsYXJhdGlvbiBub2Rl cyBmb3IKICAgLS0gICAgdGhlIGFjdHVhbHMgb2YgZm9ybWFsIHByaXZhdGUgYW5kIGRlcml2ZWQg dHlwZXMuIFdpdGhpbiB0aGUgaW5zdGFuY2UsCiAgIC0tICAgIHRoZSBvcGVyYXRpb25zIG9uIHRo ZSBhY3R1YWwgYXJlIHRob3NlIGluaGVyaXRlZCBmcm9tIHRoZSBwYXJlbnQuCiAgIC0tICAgIEZv ciBhIGZvcm1hbCBwcml2YXRlIHR5cGUsIHRoZSBwYXJlbnQgdHlwZSBpcyB0aGUgZ2VuZXJpYyB0 eXBlCiAgIC0tICAgIGl0c2VsZi4gVGhlIEdlbmVyaWNfUGFyZW50X1R5cGUgaXMgYWxzbyB1c2Vk IGluIGFuIGluc3RhbmNlIHRvCiAgIC0tICAgIGRldGVybWluZSB3aGV0aGVyIGEgcHJpdmF0ZSBv cGVyYXRpb24gb3ZlcnJpZGVzIGFuIGluaGVyaXRlZCBvbmUuCgogICAtLSAgSGFuZGxlcl9MaXN0 X0VudHJ5IChOb2RlMi1TZW0pCiAgIC0tICAgIFRoaXMgZmllbGQgaXMgcHJlc2VudCBpbiBOX09i amVjdF9EZWNsYXJhdGlvbiBub2Rlcy4gSXQgaXMgc2V0IG9ubHkKICAgLS0gICAgZm9yIHRoZSBI YW5kbGVyX1JlY29yZCBlbnRyeSBnZW5lcmF0ZWQgZm9yIGFuIGV4Y2VwdGlvbiBpbiB6ZXJvIGNv c3QKICAgLS0gICAgZXhjZXB0aW9uIGhhbmRsaW5nIG1vZGUuIEl0IHJlZmVyZW5jZXMgdGhlIGNv cnJlc3BvbmRpbmcgaXRlbSBpbiB0aGUKICAgLS0gICAgaGFuZGxlciBsaXN0LCBhbmQgaXMgdXNl ZCB0byBkZWxldGUgdGhpcyBlbnRyeSBpZiB0aGUgY29ycmVzcG9uZGluZwogICAtLSAgICBoYW5k bGVyIGlzIGRlbGV0ZWQgZHVyaW5nIG9wdGltaXphdGlvbi4gRm9yIGZ1cnRoZXIgZGV0YWlscyBv biB3aHkKICAgLS0gICAgdGhpcyBpcyByZXF1aXJlZCwgc2VlIEV4cF9DaDExLlJlbW92ZV9IYW5k bGVyX0VudHJpZXMuCgogICAtLSAgSGFzX0R5bmFtaWNfTGVuZ3RoX0NoZWNrIChGbGFnMTAtU2Vt KQogICAtLSAgICBUaGlzIGZsYWcgaXMgcHJlc2VudCBvbiBhbGwgbm9kZXMuIEl0IGlzIHNldCB0 byBpbmRpY2F0ZSB0aGF0IG9uZQogICAtLSAgICBvZiB0aGUgcm91dGluZXMgaW4gdW5pdCBDaGVj a3MgaGFzIGdlbmVyYXRlZCBhIGxlbmd0aCBjaGVjayBhY3Rpb24KICAgLS0gICAgd2hpY2ggaGFz IGJlZW4gaW5zZXJ0ZWQgYXQgdGhlIGZsYWdnZWQgbm9kZS4gVGhpcyBpcyB1c2VkIHRvIGF2b2lk CiAgIC0tICAgIHRoZSBnZW5lcmF0aW9uIG9mIGR1cGxpY2F0ZSBjaGVja3MuCgogICAtLSAgSGFz X0R5bmFtaWNfUmFuZ2VfQ2hlY2sgKEZsYWcxMi1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBw cmVzZW50IG9uIGFsbCBub2Rlcy4gSXQgaXMgc2V0IHRvIGluZGljYXRlIHRoYXQgb25lCiAgIC0t ICAgIG9mIHRoZSByb3V0aW5lcyBpbiB1bml0IENoZWNrcyBoYXMgZ2VuZXJhdGVkIGEgcmFuZ2Ug Y2hlY2sgYWN0aW9uCiAgIC0tICAgIHdoaWNoIGhhcyBiZWVuIGluc2VydGVkIGF0IHRoZSBmbGFn Z2VkIG5vZGUuIFRoaXMgaXMgdXNlZCB0byBhdm9pZAogICAtLSAgICB0aGUgZ2VuZXJhdGlvbiBv ZiBkdXBsaWNhdGUgY2hlY2tzLgoKICAgLS0gIEhhc19Ob19FbGFib3JhdGlvbl9Db2RlIChGbGFn MTctU2VtKQogICAtLSAgICBBIGZsYWcgdGhhdCBhcHBlYXJzIGluIHRoZSBOX0NvbXBpbGF0aW9u X1VuaXQgbm9kZSB0byBpbmRpY2F0ZQogICAtLSAgICB3aGV0aGVyIG9yIG5vdCBlbGFib3JhdGlv biBjb2RlIGlzIHByZXNlbnQgZm9yIHRoaXMgdW5pdC4gSXQgaXMKICAgLS0gICAgaW5pdGlhbGx5 IHNldCB0cnVlIGZvciBzdWJwcm9ncmFtIHNwZWNzIGFuZCBib2RpZXMgYW5kIGZvciBhbGwKICAg LS0gICAgZ2VuZXJpYyB1bml0cyBhbmQgZmFsc2UgZm9yIG5vbi1nZW5lcmljIHBhY2thZ2Ugc3Bl Y3MgYW5kIGJvZGllcy4KICAgLS0gICAgR2lnaSBtYXkgc2V0IHRoZSBmbGFnIGluIHRoZSBub24t Z2VuZXJpYyBwYWNrYWdlIGNhc2UgaWYgaXQKICAgLS0gICAgZGV0ZXJtaW5lcyB0aGF0IG5vIGVs YWJvcmF0aW9uIGNvZGUgaXMgZ2VuZXJhdGVkLiBOb3RlIHRoYXQgdGhpcwogICAtLSAgICBmbGFn IGlzIG5vdCByZWxhdGVkIHRvIHRoZSBJc19QcmVlbGFib3JhdGVkIHN0YXR1cywgdGhlcmUgY2Fu IGJlCiAgIC0tICAgIHByZWVsYWJvcmF0ZWQgcGFja2FnZXMgdGhhdCBnZW5lcmF0ZSBlbGFib3Jh dGlvbiBjb2RlLCBhbmQgbm9uLQogICAtLSAgICBwcmVlbGFib3JhdGVkIHBhY2thZ2VzIHdoaWNo IGRvIG5vdCBnZW5lcmF0ZSBlbGFib3JhdGlvbiBjb2RlLgoKICAgLS0gIEhhc19Qcmlvcml0eV9Q cmFnbWEgKEZsYWc2LVNlbSkKICAgLS0gICAgQSBmbGFnIHByZXNlbnQgaW4gTl9TdWJwcm9ncmFt X0JvZHksIE5fVGFza19EZWZpbml0aW9uIGFuZAogICAtLSAgICBOX1Byb3RlY3RlZF9EZWZpbml0 aW9uIG5vZGVzIHRvIGZsYWcgdGhlIHByZXNlbmNlIG9mIGVpdGhlcgogICAtLSAgICBhIFByaW9y aXR5IG9yIEludGVycnVwdF9Qcmlvcml0eSBwcmFnbWEgaW4gdGhlIGRlY2xhcmF0aW9uCiAgIC0t ICAgIHNlcXVlbmNlIChwdWJsaWMgb3IgcHJpdmF0ZSBpbiB0aGUgdGFzayBhbmQgcHJvdGVjdGVk IGNhc2VzKQoKICAgLS0gIEhhc19Qcml2YXRlX1ZpZXcgKEZsYWcxMS1TZW0pCiAgIC0tICAgIEEg ZmxhZyBwcmVzZW50IGluIGdlbmVyaWMgbm9kZXMgdGhhdCBoYXZlIGFuIGVudGl0eSwgdG8gaW5k aWNhdGUKICAgLS0gICAgdGhhdCB0aGUgbm9kZSBoYXMgYSBwcml2YXRlIHR5cGUuIFVzZWQgdG8g ZXhjaGFuZ2UgcHJpdmF0ZQogICAtLSAgICBhbmQgZnVsbCBkZWNsYXJhdGlvbnMgaWYgdGhlIHZp c2liaWxpdHkgYXQgaW5zdGFudGlhdGlvbiBpcwogICAtLSAgICBkaWZmZXJlbnQgZnJvbSB0aGUg dmlzaWJpbGl0eSBhdCBnZW5lcmljIGRlZmluaXRpb24uCgogICAtLSAgSGFzX1N0b3JhZ2VfU2l6 ZV9QcmFnbWEgKEZsYWc1LVNlbSkKICAgLS0gICAgQSBmbGFnIHByZXNlbnQgaW4gYW4gTl9UYXNr X0RlZmluaXRpb24gbm9kZSB0byBmbGFnIHRoZSBwcmVzZW5jZQogICAtLSAgICBvZiBhIFN0b3Jh Z2VfU2l6ZSBwcmFnbWEKCiAgIC0tICBIYXNfVGFza19JbmZvX1ByYWdtYSAoRmxhZzctU2VtKQog ICAtLSAgICBBIGZsYWcgcHJlc2VudCBpbiBhbiBOX1Rhc2tfRGVmaW5pdGlvbiBub2RlIHRvIGZs YWcgdGhlIHByZXNlbmNlCiAgIC0tICAgIG9mIGEgVGFza19JbmZvIHByYWdtYS4gVXNlZCB0byBk ZXRlY3QgZHVwbGljYXRlIHByYWdtYXMuCgogICAtLSAgSGFzX1Rhc2tfTmFtZV9QcmFnbWEgKEZs YWc4LVNlbSkKICAgLS0gICAgQSBmbGFnIHByZXNlbnQgaW4gTl9UYXNrX0RlZmluaXRpb24gbm9k ZXMgdG8gZmxhZyB0aGUgcHJlc2VuY2UKICAgLS0gICAgb2YgYSBUYXNrX05hbWUgcHJhZ21hIGlu IHRoZSBkZWNsYXJhdGlvbiBzZXF1ZW5jZSBmb3IgdGhlIHRhc2suCgogICAtLSAgSGFzX1dpZGVf Q2hhcmFjdGVyIChGbGFnMTEtU2VtKQogICAtLSAgICBQcmVzZW50IGluIHN0cmluZyBsaXRlcmFs cywgc2V0IGlmIGFueSB3aWRlIGNoYXJhY3RlciAoaS5lLiBhCiAgIC0tICAgIGNoYXJhY3RlciBj b2RlIG91dHNpZGUgdGhlIENoYXJhY3RlciByYW5nZSkgYXBwZWFycyBpbiB0aGUgc3RyaW5nLgoK ICAgLS0gIEhpZGRlbl9CeV9Vc2VfQ2xhdXNlIChFbGlzdDQtU2VtKQogICAtLSAgICAgQW4gZW50 aXR5IGxpc3QgcHJlc2VudCBpbiB1c2UgY2xhdXNlcyB0aGF0IGFwcGVhciB3aXRoaW4KICAgLS0g ICAgIGluc3RhbnRpYXRpb25zLiBGb3IgdGhlIHJlc29sdXRpb24gb2YgbG9jYWwgZW50aXRpZXMs IGVudGl0aWVzCiAgIC0tICAgICBpbnRyb2R1Y2VkIGJ5IHRoZXNlIHVzZSBjbGF1c2VzIGhhdmUg cHJpb3JpdHkgb3ZlciBnbG9iYWwgb25lcywKICAgLS0gICAgIGFuZCBvdXRlciBlbnRpdGllcyBt dXN0IGJlIGV4cGxpY2l0bHkgaGlkZGVuL3Jlc3RvcmVkIG9uIGV4aXQuCgogICAtLSAgSW1wbGlj aXRfV2l0aCAoRmxhZzE3LVNlbSkKICAgLS0gICAgVGhpcyBmbGFnIGlzIHNldCBpbiB0aGUgTl9X aXRoX0NsYXVzZSBub2RlIHRoYXQgaXMgaW1wbGljaXRseQogICAtLSAgICBnZW5lcmF0ZWQgZm9y IHJ1bnRpbWUgdW5pdHMgdGhhdCBhcmUgbG9hZGVkIGJ5IHRoZSBleHBhbmRlciwgYW5kCiAgIC0t ICAgIGFsc28gZm9yIHBhY2thZ2UgU3lzdGVtLCBpZiBpdCBpcyBsb2FkZWQgaW1wbGljaXRseSBi eSBhIHVzZSBvZgogICAtLSAgICB0aGUgJ0FkZHJlc3Mgb3IgJ1RhZyBhdHRyaWJ1dGUKCiAgIC0t ICBJbmNsdWRlc19JbmZpbml0aWVzIChGbGFnMTEtU2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMg cHJlc2VudCBpbiBOX1JhbmdlIG5vZGVzLiBJdCBpcyBzZXQgZm9yIHRoZSByYW5nZQogICAtLSAg ICBvZiB1bmNvbnN0cmFpbmVkIGZsb2F0IHR5cGVzIGRlZmluZWQgaW4gU3RhbmRhcmQsIHdoaWNo IGluY2x1ZGUKICAgLS0gICAgbm90IG9ubHkgdGhlIGdpdmVuIHJhbmdlIG9mIHZhbHVlcywgYnV0 IGFsc28gbGVndGl0aW1hdGVseSBjYW4KICAgLS0gICAgaW5jbHVkZSBpbmZpbml0ZSB2YWx1ZXMu IFRoaXMgZmxhZyBpcyBmYWxzZSBmb3IgYW55IGZsb2F0IHR5cGUKICAgLS0gICAgZm9yIHdoaWNo IGFuIGV4cGxpY2l0IHJhbmdlIGlzIGdpdmVuIGJ5IHRoZSBwcm9ncmFtbWVyLCBldmVuIGlmCiAg IC0tICAgIHRoYXQgcmFuZ2UgaXMgaWRlbnRpY2FsIHRvIHRoZSByYW5nZSBmb3IgZmxvYXQuCgog ICAtLSAgSW5zdGFuY2VfU3BlYyAoTm9kZTUtU2VtKQogICAtLSAgICBUaGlzIGZpZWxkIGlzIHBy ZXNlbnQgaW4gZ2VuZXJpYyBpbnN0YW50aWF0aW9uIG5vZGVzLCBhbmQgYWxzbyBpbgogICAtLSAg ICBmb3JtYWwgcGFja2FnZSBkZWNsYXJhdGlvbiBub2RlcyAoZm9ybWFsIHBhY2thZ2UgZGVjbGFy YXRpb25zIGFyZQogICAtLSAgICB0cmVhdGVkIGluIGEgbWFubmVyIHZlcnkgc2ltaWxhciB0byBw YWNrYWdlIGluc3RhbnRpYXRpb25zKS4gSXQKICAgLS0gICAgcG9pbnRzIHRvIHRoZSBub2RlIGZv ciB0aGUgc3BlYyBvZiB0aGUgaW5zdGFuY2UsIGluc2VydGVkIGFzIHBhcnQKICAgLS0gICAgb2Yg dGhlIHNlbWFudGljIHByb2Nlc3NpbmcgZm9yIGluc3RhbnRpYXRpb25zIGluIFNlbV9DaDEyLgoK ICAgLS0gIElzX0FzeW5jaHJvbm91c19DYWxsX0Jsb2NrIChGbGFnNy1TZW0pCiAgIC0tICAgIEEg ZmxhZyBzZXQgaW4gYSBCbG9ja19TdGF0ZW1lbnQgbm9kZSB0byBpbmRpY2F0ZSB0aGF0IGl0IGlz IHRoZQogICAtLSAgICBleHBhbnNpb24gb2YgYW4gYXN5bmNocm9ub3VzIGVudHJ5IGNhbGwuIFN1 Y2ggYSBibG9jayBuZWVkcyBhCiAgIC0tICAgIGNsZWFudXAgaGFuZGxlciB0byBhc3N1cmUgdGhh dCB0aGUgY2FsbCBpcyBjYW5jZWxsZWQuCgogICAtLSAgSXNfQ29tcG9uZW50X0xlZnRfT3BuZCAg KEZsYWcxMy1TZW0pCiAgIC0tICBJc19Db21wb25lbnRfUmlnaHRfT3BuZCAoRmxhZzE0LVNlbSkK ICAgLS0gICAgUHJlc2VudCBpbiBjb25jYXRlbmF0aW9uIG5vZGVzLCB0byBpbmRpY2F0ZSB0aGF0 IHRoZSBjb3JyZXNwb25kaW5nCiAgIC0tICAgIG9wZXJhbmQgaXMgb2YgdGhlIGNvbXBvbmVudCB0 eXBlIG9mIHRoZSByZXN1bHQuIFVzZWQgaW4gcmVzb2x2aW5nCiAgIC0tICAgIGNvbmNhdGVuYXRp b24gbm9kZXMgaW4gaW5zdGFuY2VzLgoKICAgLS0gIElzX0NvbnRyb2xsaW5nX0FjdHVhbCAoRmxh ZzE2LVNlbSkKICAgLS0gICAgVGhpcyBmbGFnIGlzIHNldCBvbiBpbiBhbiBleHByZXNzaW9uIHRo YXQgaXMgYSBjb250cm9sbGluZyBhcmd1bWVudAogICAtLSAgICBpbiBhIGRpc3BhdGNoaW5nIGNh bGwuIEl0IGlzIG9mZiBpbiBhbGwgb3RoZXIgY2FzZXMuIFNlZSBTZW1fRGlzcAogICAtLSAgICBm b3IgZGV0YWlscyBvZiBpdHMgdXNlLgoKICAgLS0gIElzX01hY2hpbmVfTnVtYmVyIChGbGFnMTEt U2VtKQogICAtLSAgICBUaGlzIGZsYWcgaXMgc2V0IGluIGFuIE5fUmVhbF9MaXRlcmFsIG5vZGUg dG8gaW5kaWNhdGUgdGhhdCB0aGUKICAgLS0gICAgdmFsdWUgaXMgYSBtYWNoaW5lIG51bWJlci4g VGhpcyBhdm9pZHMgc29tZSB1bm5lY2Vzc2FyeSBjYXNlcwogICAtLSAgICBvZiBjb252ZXJ0aW5n IHJlYWwgbGl0ZXJhbHMgdG8gbWFjaGluZSBudW1iZXJzLgoKICAgLS0gIElzX1Bvd2VyX09mXzJf Rm9yX1NoaWZ0IChGbGFnMTMtU2VtKQogICAtLSAgICBBIGZsYWcgcHJlc2VudCBvbmx5IGluIE5f T3BfRXhwb24gbm9kZXMuIEl0IGlzIHNldCB3aGVuIHRoZQogICAtLSAgICBleHBvbmVudGlhdGlv biBpcyBvZiB0aGUgZm9ybWEgMiAqKiBOLCB3aGVyZSB0aGUgdHlwZSBvZiBOIGlzCiAgIC0tICAg IGFuIHVuc2lnbmVkIGludGVncmFsIHN1YnR5cGUgd2hvc2Ugc2l6ZSBkb2VzIG5vdCBleGNlZWQg dGhlIHNpemUKICAgLS0gICAgb2YgU3RhbmRhcmRfSW50ZWdlciAoaS5lLiBhIHR5cGUgdGhhdCBj YW4gYmUgc2FmZWx5IGNvbnZlcnRlZCB0bwogICAtLSAgICBOYXR1cmFsKSwgYW5kIHRoZSBleHBv bmVudGlhdGlvbiBhcHBlYXJzIGFzIHRoZSByaWdodCBvcGVyYW5kIG9mCiAgIC0tICAgIGFuIGlu dGVnZXIgbXVsdGlwbGljYXRpb24gb3IgYW4gaW50ZWdlciBkaXZpc2lvbiB3aGVyZSB0aGUgZGl2 aWRlbmQKICAgLS0gICAgaXMgdW5zaWduZWQuIEl0IGlzIGFsc28gcmVxdWlyZWQgdGhhdCBvdmVy ZmxvdyBjaGVja2luZyBpcyBvZmYgZm9yCiAgIC0tICAgIGJvdGggdGhlIGV4cG9uZW50aWF0aW9u IGFuZCB0aGUgbXVsdGlwbHkvZGl2aWRlIG5vZGUuIElmIHRoaXMgc2V0CiAgIC0tICAgIG9mIGNv bmRpdGlvbnMgaG9sZHMsIGFuZCB0aGUgZmxhZyBpcyBzZXQsIHRoZW4gdGhlIGRpdmlzaW9uIG9y CiAgIC0tICAgIG11bHRpcGxpY2F0aW9uIGNhbiBiZSAoYW5kIGlzKSBjb252ZXJ0ZWQgdG8gYSBz aGlmdC4KCiAgIC0tICBJc19PdmVybG9hZGVkIChGbGFnNS1TZW0pCiAgIC0tICAgIEEgZmxhZyBw cmVzZW50IGluIGFsbCBleHByZXNzaW9uIG5vZGVzLiBVc2VkIHRlbXBvcmFyaWx5IGR1cmluZwog ICAtLSAgICBvdmVybG9hZGluZyBkZXRlcm1pbmF0aW9uLiBUaGUgc2V0dGluZyBvZiB0aGlzIGZs YWcgaXMgbm90CiAgIC0tICAgIHJlbGV2YW50IG9uY2Ugb3ZlcmxvYWRpbmcgYW5hbHlzaXMgaXMg Y29tcGxldGUuCgogICAtLSAgSXNfUHJvdGVjdGVkX1N1YnByb2dyYW1fQm9keSAoRmxhZzctU2Vt KQogICAtLSAgICBBIGZsYWcgc2V0IGluIGEgU3VicHJvZ3JhbV9Cb2R5IGJsb2NrIHRvIGluZGlj YXRlIHRoYXQgaXQgaXMgdGhlCiAgIC0tICAgIGltcGxlbWVuYXRpb24gb2YgYSBwcm90ZWN0ZWQg c3VicHJvZ3JhbS4gU3VjaCBhIGJvZHkgbmVlZHMgYQogICAtLSAgICBjbGVhbnVwIGhhbmRsZXIg dG8gbWFrZSBzdXJlIHRoYXQgdGhlIGFzc29jaWF0ZWQgcHJvdGVjdGVkIG9iamVjdAogICAtLSAg ICBpcyB1bmxvY2tlZCB3aGVuIHRoZSBzdWJwcm9ncmFtIGNvbXBsZXRlcy4KCiAgIC0tICBJc19T dGF0aWNfRXhwcmVzc2lvbiAoRmxhZzYtU2VtKQogICAtLSAgICBJbmRpY2F0ZXMgdGhhdCBhbiBl eHByZXNzaW9uIGlzIGEgc3RhdGljIGV4cHJlc3Npb24gKFJNIDQuOSkuIFNlZQogICAtLSAgICBz cGVjIG9mIHBhY2thZ2UgU2VtX0V2YWwgZm9yIGZ1bGwgZGV0YWlscyBvbiB0aGUgdXNlIG9mIHRo aXMgZmxhZy4KCiAgIC0tICBJc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IgKEZsYWcxNi1TZW0pCiAg IC0tICAgIFByZXNlbnQgaW4gTl9PYmplY3RfRGVjbGFyYXRpb24sIGFuZCBzZXQgb25seSBmb3Ig dGhlIG9iamVjdAogICAtLSAgICBkZWNsYXJhdGlvbiBnZW5lcmF0ZWQgZm9yIGEgc3VicHJvZ3Jh bSBkZXNjcmlwdG9yIGluIGZhc3QgZXhjZXB0aW9uCiAgIC0tICAgIG1vZGUuIFNlZSBFeHBfQ2gx MSBmb3IgZGV0YWlscyBvZiB1c2UuCgogICAtLSAgSXNfVGFza19BbGxvY2F0aW9uX0Jsb2NrIChG bGFnNi1TZW0pCiAgIC0tICAgIEEgZmxhZyBzZXQgaW4gYSBCbG9ja19TdGF0ZW1lbnQgbm9kZSB0 byBpbmRpY2F0ZSB0aGF0IGl0IGlzIHRoZQogICAtLSAgICBleHBhbnNpb24gb2YgYSB0YXNrIGFs bG9jYXRvciwgb3IgdGhlIGFsbG9jYXRvciBvZiBhbiBvYmplY3QKICAgLS0gICAgY29udGFpbmlu ZyB0YXNrcy4gU3VjaCBhIGJsb2NrIHJlcXVpcmVzIGEgY2xlYW51cCBoYW5kbGVyIHRvIGNhbGwK ICAgLS0gICAgRXhwdW5nZV9VbmFjdGl2dGVkX1Rhc2tzIHRvIGNvbXBsZXRlIGFueSB0YXNrcyB0 aGF0IGhhdmUgYmVlbgogICAtLSAgICBhbGxvY2F0ZWQgYnV0IG5vdCBhY3RpdmF0ZWQgd2hlbiB0 aGUgYWxsb2NhdG9yIGNvbXBsZXRlcyBhYm5vcm1hbGx5LgoKICAgLS0gIElzX1Rhc2tfTWFzdGVy IChGbGFnNS1TZW0pCiAgIC0tICAgIEEgZmxhZyBzZXQgaW4gYSBTdWJwcm9ncmFtX0JvZHksIEJs b2NrX1N0YXRlbWVudCBvciBUYXNrX0JvZHkgbm9kZQogICAtLSAgICB0byBpbmRpY2F0ZSB0aGF0 IHRoZSBjb25zdHJ1Y3QgaXMgYSB0YXNrIG1hc3RlciAoaS5lLiBoYXMgZGVjbGFyZWQKICAgLS0g ICAgdGFza3Mgb3IgZGVjbGFyZXMgYW4gYWNjZXNzIHRvIGEgdGFzayB0eXBlKS4KCiAgIC0tICBJ dHlwZSAoTm9kZTEtU2VtKQogICAtLSAgICBVc2VkIGluIE5fSXR5cGVfUmVmZXJlbmNlIG5vZGUg dG8gcmVmZXJlbmNlIGFuIGl0eXBlIGZvciB3aGljaCBpdAogICAtLSAgICBpcyBpbXBvcnRhbnQg dG8gZW5zdXJlIHRoYXQgaXQgaXMgZGVmaW5lZC4gU2VlIGRlc2NyaXB0aW9uIG9mIHRoaXMKICAg LS0gICAgbm9kZSBmb3IgZnVydGhlciBkZXRhaWxzLgoKICAgLS0gIEtpbGxfUmFuZ2VfQ2hlY2sg KEZsYWcxMS1TZW0pCiAgIC0tICAgIFVzZWQgaW4gYW4gTl9VbmNoZWNrZWRfVHlwZV9Db252ZXJz aW9uIG5vZGUgdG8gaW5kaWNhdGUgdGhhdCB0aGUKICAgLS0gICAgcmVzdWx0IHNob3VsZCBub3Qg YmUgc3ViamVjdGVkIHRvIHJhbmdlIGNoZWNrcy4gVGhpcyBpcyB1c2VkIGZvcgogICAtLSAgICB0 aGUgaW1wbGVtZW50YXRpb24gb2YgTm9ybWFsaXplX1NjYWxhcnMuCgogICAtLSAgTGFiZWxfQ29u c3RydWN0IChOb2RlMi1TZW0pCiAgIC0tICAgIFVzZWQgaW4gYW4gTl9JbXBsaWNpdF9MYWJlbF9E ZWNsYXJhdGlvbiBub2RlLiBSZWZlcnMgdG8gYW4gTl9MYWJlbCwKICAgLS0gICAgTl9CbG9ja19T dGF0ZW1lbnQgb3IgTl9Mb29wX1N0YXRlbWVudCBub2RlIHRvIHdoaWNoIHRoZSBsYWJlbAogICAt LSAgICBkZWNsYXJhdGlvbiBhcHBsaWVzLiBUaGlzIGlzIG5vdCBjdXJyZW50bHkgdXNlZCBpbiB0 aGUgY29tcGlsZXIKICAgLS0gICAgaXRzZWxmLCBidXQgaXQgaXMgdXNlZnVsIGluIHRoZSBpbXBs ZW1lbnRhdGlvbiBvZiBBU0lTIHF1ZXJpZXMuCgogICAtLSAgTGlicmFyeV9Vbml0IChOb2RlNC1T ZW0pCiAgIC0tICAgIEluIGEgc3R1YiBub2RlLCB0aGUgTGlicmFyeV9Vbml0IGZpZWxkIHBvaW50 cyB0byB0aGUgY29tcGlsYXRpb24gdW5pdAogICAtLSAgICBub2RlIG9mIHRoZSBjb3JyZXNwb25k aW5nIHN1YnVuaXQuCiAgIC0tCiAgIC0tICAgIEluIGEgd2l0aCBjbGF1c2Ugbm9kZSwgdGhlIExp YnJhcnlfVW5pdCBmaWVsZCBwb2ludHMgdG8gdGhlIHNwZWMKICAgLS0gICAgb2YgdGhlIHdpdGgn ZWQgdW5pdC4KICAgLS0KICAgLS0gICAgSW4gYSBjb21waWxhdGlvbiB1bml0IG5vZGUsIHRoZSB1 c2Ugb2YgdGhpcyBmaWVsZCBkZXBlbmRzIG9uCiAgIC0tICAgIHRoZSB1bml0IHR5cGU6CiAgIC0t CiAgIC0tICAgICBGb3IgYSBzdWJwcm9ncmFtIGJvZHksIHRoZSBMaWJyYXJ5X1VuaXQgZmllbGQg cG9pbnRzIHRvIHRoZQogICAtLSAgICAgY29tcGlsYXRpb24gdW5pdCBub2RlIG9mIHRoZSBjb3Jy ZXNwb25kaW5nIHNwZWMsIHVubGVzcwogICAtLSAgICAgQWN0c19Bc19TcGVjIGlzIHNldCwgaW4g d2hpY2ggY2FzZSBpdCBwb2ludHMgdG8gaXRzZWxmLgogICAtLQogICAtLSAgICAgRm9yIGEgcGFj a2FnZSBib2R5LCB0aGUgTGlicmFyeV9Vbml0IGZpZWxkIHBvaW50cyB0byB0aGUKICAgLS0gICAg IGNvbXBpbGF0aW9uIHVuaXQgbm9kZSBvZiB0aGUgY29ycmVzcG9uZGluZyBzcGVjLgogICAtLQog ICAtLSAgICAgRm9yIGEgc3VicHJvZ3JhbSBzcGVjIHRvIHdoaWNoIHByYWdtYSBJbmxpbmUgYXBw bGllcywgdGhlCiAgIC0tICAgICBMaWJyYXJ5X1VuaXQgZmllbGQgcG9pbnRzIHRvIHRoZSBjb21w aWxhdGlvbiB1bml0IG5vZGUgb2YKICAgLS0gICAgIHRoZSBjb3JyZXNwb25kaW5nIGJvZHksIGlm IGlubGluaW5nIGlzIGFjdGl2ZS4KICAgLS0KICAgLS0gICAgIEZvciBhIGdlbmVyaWMgZGVjbGFy YXRpb24sIHRoZSBMaWJyYXJ5X1VuaXQgZmllbGQgcG9pbnRzCiAgIC0tICAgICB0byB0aGUgY29t cGlsYXRpb24gdW5pdCBub2RlIG9mIHRoZSBjb3JyZXNwb25kaW5nIGdlbmVyaWMgYm9keS4KICAg LS0KICAgLS0gICAgIEZvciBhIHN1YnVuaXQsIHRoZSBMaWJyYXJ5X1VuaXQgZmllbGQgcG9pbnRz IHRvIHRoZSBjb21waWxhdGlvbgogICAtLSAgICAgdW5pdCBub2RlIG9mIHRoZSBwYXJlbnQgYm9k eS4KICAgLS0KICAgLS0gICAgTm90ZSB0aGF0IHRoaXMgZmllbGQgaXMgbm90IHVzZWQgdG8gaG9s ZCB0aGUgcGFyZW50IHBvaW50ZXIgZm9yIGEKICAgLS0gICAgY2hpbGQgdW5pdCAod2hpY2ggbWln aHQgaW4gYW55IGNhc2UgbmVlZCB0byB1c2UgaXQgZm9yIHNvbWUgb3RoZXIKICAgLS0gICAgcHVy cG9zZSBhcyBkZXNjcmliZWQgYWJvdmUpLiBJbnN0ZWFkIGZvciBhIGNoaWxkIHVuaXQsIGltcGxp Y2l0CiAgIC0tICAgIHdpdGgncyBhcmUgZ2VuZXJhdGVkIGZvciBhbGwgcGFyZW50cy4KCiAgIC0t ICBMb29wX0FjdGlvbnMgKExpc3QyLVNlbSkKICAgLS0gICAgQSBsaXN0IHByZXNlbnQgaW4gQ29t cG9uZW50X0Fzc29jaWF0aW9uIG5vZGVzIGluIGFycmF5IGFnZ3JlZ2F0ZXMuCiAgIC0tICAgIFVz ZWQgdG8gY29sbGVjdCBhY3Rpb25zIHRoYXQgbXVzdCBiZSBleGVjdXRlZCB3aXRoaW4gdGhlIGxv b3AgYmVjYXVzZQogICAtLSAgICB0aGV5IG1heSBuZWVkIHRvIGJlIGV2YWx1YXRlZCBhbmV3IGVh Y2ggdGltZSB0aHJvdWdoLgoKICAgLS0gIE11c3RfTm90X0ZyZWV6ZSAoRmxhZzgtU2VtKQogICAt LSAgICBBIGZsYWcgcHJlc2VudCBpbiBhbGwgZXhwcmVzc2lvbiBub2Rlcy4gTm9ybWFsbHkgZXhw cmVzc2lvbnMgY2F1c2UKICAgLS0gICAgZnJlZXppbmcgYXMgZGVzY3JpYmVkIGluIHRoZSBSTS4g SWYgdGhpcyBmbGFnIGlzIHNldCwgdGhlbiB0aGlzCiAgIC0tICAgIGlzIGluaGliaXRlZC4gVGhp cyBpcyB1c2VkIGJ5IHRoZSBhbmFseXplciBhbmQgZXhwYW5kZXIgdG8gbGFiZWwKICAgLS0gICAg bm9kZXMgdGhhdCBhcmUgY3JlYXRlZCBieSBzZW1hbnRpYyBhbmFseXNpcyBvciBleHBhbnNpb24g YW5kIHdoaWNoCiAgIC0tICAgIG11c3Qgbm90IGNhdXNlIGZyZWV6aW5nIGV2ZW4gdGhvdWdoIHRo ZXkgbm9ybWFsbHkgd291bGQuIFRoaXMgZmxhZwogICAtLSAgICBpcyBhbHNvIHByZXNlbnQgaW4g YW4gTl9TdWJ0eXBlX0luZGljYXRpb24gbm9kZSwgc2luY2Ugd2UgYWxzbyB1c2UKICAgLS0gICAg dGhlc2UgaW4gY2FsbHMgdG8gRnJlZXplX0V4cHJlc3Npb24uCgogICAtLSAgTmV4dF9FbnRpdHkg KE5vZGUyLVNlbSkKICAgLS0gICAgUHJlc2VudCBpbiBkZWZpbmluZyBpZGVudGlmaWVycywgZGVm aW5pbmcgY2hhcmFjdGVyIGxpdGVyYWxzIGFuZAogICAtLSAgICBkZWZpbmluZyBvcGVyYXRvciBz eW1ib2xzIChpLmUuIGluIGFsbCBlbnRpdGllcykuIFRoZSBlbnRpdGllcyBvZgogICAtLSAgICBh IHNjb3BlIGFyZSBjaGFpbmVkLCBhbmQgdGhpcyBmaWVsZCBpcyB1c2VkIGFzIHRoZSBmb3J3YXJk IHBvaW50ZXIKICAgLS0gICAgZm9yIHRoaXMgbGlzdC4gU2VlIEVpbmZvIGZvciBmdXJ0aGVyIGRl dGFpbHMuCgogICAtLSAgTmV4dF9OYW1lZF9BY3R1YWwgKE5vZGU0LVNlbSkKICAgLS0gICAgUHJl c2VudCBpbiBwYXJhbWV0ZXIgYXNzb2NpYXRpb24gbm9kZS4gU2V0IGR1cmluZyBzZW1hbnRpYwog ICAtLSAgICBhbmFseXNpcyB0byBwb2ludCB0byB0aGUgbmV4dCBuYW1lZCBwYXJhbWV0ZXIsIHdo ZXJlIHBhcmFtZXRlcnMKICAgLS0gICAgYXJlIG9yZGVyZWQgYnkgZGVjbGFyYXRpb24gb3JkZXIg KGFzIG9wcG9zZWQgdG8gdGhlIGFjdHVhbCBvcmRlcgogICAtLSAgICBpbiB0aGUgY2FsbCwgd2hp Y2ggbWF5IGJlIGRpZmZlcmVudCBkdWUgdG8gbmFtZWQgYXNzb2NpYXRpb25zKS4KICAgLS0gICAg Tm90IHRoYXQgdGhpcyBmaWVsZCBwb2ludHMgdG8gdGhlIGV4cGxpY2l0IGFjdHVhbCBwYXJhbWV0 ZXIgaXRzZWxmLAogICAtLSAgICBub3QgdG8gdGhlIE5fUGFyYW1ldGVyX0Fzc29jaWF0aW9uIG5v ZGUgKGl0cyBwYXJlbnQpLgoKICAgLS0gIE5leHRfUmVwX0l0ZW0gKE5vZGU0LVNlbSkKICAgLS0g ICAgUHJlc2VudCBpbiBwcmFnbWEgbm9kZXMgYW5kIGF0dHJpYnV0ZSBkZWZpbml0aW9uIG5vZGVz LiBVc2VkIHRvCiAgIC0tICAgIGxpbmsgcmVwcmVzZW50YXRpb24gaXRlbXMgdGhhdCBhcHBseSB0 byBhbiBlbnRpdHkuIFNlZSBkZXNjcmlwdGlvbgogICAtLSAgICBvZiBGaXJzdF9SZXBfSXRlbSBm aWVsZCBpbiBFaW5mbyBmb3IgZnVsbCBkZXRhaWxzLgoKICAgLS0gIE5leHRfVXNlX0NsYXVzZSAo Tm9kZTMtU2VtKQogICAtLSAgICBXaGlsZSB1c2UgY2xhdXNlcyBhcmUgYWN0aXZlIGR1cmluZyBz ZW1hbnRpYyBwcm9jZXNzaW5nLCB0aGV5CiAgIC0tICAgIGFyZSBjaGFpbmVkIGZyb20gdGhlIHNj b3BlIHN0YWNrIGVudHJ5LCB1c2luZyBOZXh0X1VzZV9DbGF1c2UKICAgLS0gICAgYXMgYSBsaW5r IHBvaW50ZXIsIHdpdGggRW1wdHkgbWFya2luZyB0aGUgZW5kIG9mIHRoZSBsaXN0LiBUaGUKICAg LS0gICAgaGVhZCBwb2ludGVyIGlzIGluIHRoZSBzY29wZSBzdGFjayBlbnRyeSAoRmlyc3RfVXNl X0NsYXVzZSkuIEF0CiAgIC0tICAgIHRoZSBlbmQgb2Ygc2VtYW50aWMgcHJvY2Vzc2luZyAoaS5l LiB3aGVuIEdpZ2kgc2VlcyB0aGUgdHJlZSwKICAgLS0gICAgdGhlIGNvbnRlbnRzIG9mIHRoaXMg ZmllbGQgaXMgdW5kZWZpbmVkIGFuZCBzaG91bGQgbm90IGJlIHJlYWQpLgoKICAgLS0gIE5vX0N0 cmxfQWN0aW9ucyAoRmxhZzctU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5fQXNzaWdubWVudF9T dGF0ZW1lbnQgdG8gaW5kaWNhdGUgdGhhdCBubyBmaW5hbGl6ZSBub3IKICAgLS0gICAgbm9yIGFk anVzdCBzaG91bGQgdGFrZSBwbGFjZSBvbiB0aGlzIGFzc2lnbm1lbnQgZXZlbnRob3VnaCB0aGUg cmhzCiAgIC0tICAgIGlzIGNvbnRyb2xsZWQuIFRoaXMgaXMgdXNlZCBpbiBpbml0X3Byb2NzIGFu ZCBhZ2dyZWdhdGUgZXhwYW5zaW9ucwogICAtLSAgICB3aGVyZSB0aGUgZ2VuZXJhdGVkIGFzc2ln bm1lbnRzIGFyZSBtb3JlIGluaXRpYWxpc2F0aW9ucyB0aGFuIHJlYWwKICAgLS0gICAgYXNzaWdu bWVudHMuCgogICAtLSAgTm9fRW50aXRpZXNfUmVmX0luX1NwZWMgKEZsYWc4LVNlbSkKICAgLS0g ICAgUHJlc2VudCBpbiBOX1dpdGhfQ2xhdXNlIG5vZGVzLiBTZXQgaWYgdGhlIHdpdGggY2xhdXNl IGlzIG9uIHRoZQogICAtLSAgICBwYWNrYWdlIG9yIHN1YnByb2dyYW0gc3BlYyB3aGVyZSB0aGUg bWFpbiB1bml0IGlzIHRoZSBjb3JyZXNwb25kaW5nCiAgIC0tICAgIGJvZHksIGFuZCBubyBlbnRp dGllcyBvZiB0aGUgd2l0aCdlZCB1bml0IGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBzcGVjCiAgIC0t ICAgIChhbiBlbnRpdHkgbWF5IHN0aWxsIGJlIHJlZmVyZW5jZWQgaW4gdGhlIGJvZHksIHNvIHRo aXMgZmxhZyBpcyB1c2VkCiAgIC0tICAgIHRvIGdlbmVyYXRlIHRoZSBwcm9wZXIgbWVzc2FnZSAo c2VlIFNlbV9VdGlsLkNoZWNrX1VudXNlZF9XaXRocyBmb3IKICAgLS0gICAgZnVsbCBkZXRhaWxz KQoKICAgLS0gIE5vX0luaXRpYWxpemF0aW9uIChGbGFnMTMtU2VtKQogICAtLSAgICBQcmVzZW50 IGluIE5fT2JqZWN0X0RlY2xhcmF0aW9uICYgTl9BbGxvY2F0b3IgdG8gaW5kaWNhdGUKICAgLS0g ICAgdGhhdCB0aGUgb2JqZWN0IG11c3Qgbm90IGJlIGluaXRpYWxpemVkIChieSBJbml0aWFsaXpl IG9yIGEKICAgLS0gICAgY2FsbCB0byBfaW5pdF9wcm9jKS4gVGhpcyBpcyBuZWVkZWQgZm9yIGNv bnRyb2xsZWQgYWdncmVnYXRlcy4KICAgLS0gICAgV2hlbiB0aGUgT2JqZWN0IGRlY2xhcmF0aW9u IGhhcyBhbiBleHByZXNzaW9uLCB0aGlzIGZsYWcgbWVhbnMKICAgLS0gICAgdGhhdCB0aGlzIGV4 cHJlc3Npb24gc2hvdWxkIG5vdCBiZSB0YWtlbiBpbnRvIGFjY291bnQgKG5lZWRlZAogICAtLSAg ICBmb3IgaW4gcGxhY2UgaW5pdGlhbGl6YXRpb24gd2l0aCBhZ2dyZWdhdGVzKQoKICAgLS0gIE9L X0Zvcl9TdHJlYW0gKEZsYWc0LVNlbSkKICAgLS0gICAgUHJlc2VudCBpbiBOX0F0dHJpYnV0ZV9E ZWZpbml0aW9uIGNsYXVzZXMgZm9yIHN0cmVhbSBhdHRyaWJ1dGVzLiBJZgogICAtLSAgICBzZXQs IGluZGljYXRlcyB0aGF0IHRoZSBhdHRyaWJ1dGUgaXMgcGVybWl0dGVkIGV2ZW4gdGhvdWdoIHRo ZSB0eXBlCiAgIC0tICAgIGludm9sdmVkIGlzIGEgbGltaXRlZCB0eXBlLiBJbiB0aGUgY2FzZSBv ZiBhIHByb3RlY3RlZCB0eXBlLCB0aGUKICAgLS0gICAgcmVzdWx0IGlzIHRvIHN0cmVhbSBhbGwg Y29tcG9uZW50cyAoaW5jbHVkaW5nIGRpc2NyaW1pbmFudHMpIGluCiAgIC0tICAgIGxleGljYWwg b3JkZXIuIEZvciBvdGhlciBsaW1pdGVkIHR5cGVzLCB0aGUgZWZmZWN0IGlzIHNpbXBseSB0bwog ICAtLSAgICB1c2UgdGhlIGNvcnJlc3BvbmRpbmcgc3RyZWFtIHJvdXRpbmUgZm9yIHRoZSBmdWxs IHR5cGUuIFRoaXMgZmxhZwogICAtLSAgICBpcyB1c2VkIGZvciBpbnRlcm5hbGx5IGdlbmVyYXRl ZCBjb2RlLCB3aGVyZSB0aGUgc3RyZWFtaW5nIG9mIHRoZXNlCiAgIC0tICAgIHR5cGVzIGlzIHJl cXVpcmVkLCBldmVuIHRob3VnaCBub3Qgbm9ybWFsbHkgYWxsb3dlZCBieSB0aGUgbGFuZ3VhZ2Uu CgogICAtLSAgT3JpZ2luYWxfRGlzY3JpbWluYW50IChOb2RlMi1TZW0pCiAgIC0tICAgIFByZXNl bnQgaW4gaWRlbnRpZmllcnMuIFVzZWQgaW4gcmVmZXJlbmNlcyB0byBkaXNjcmltaW5hbnRzIHRo YXQKICAgLS0gICAgYXBwZWFyIGluIGdlbmVyaWMgdW5pdHMuIEJlY2F1c2UgdGhlIG5hbWVzIG9m IHRoZSBkaXNjcmltaW5hbnRzCiAgIC0tICAgIG1heSBiZSBkaWZmZXJlbnQgaW4gIGFuIGluc3Rh bmNlLCB3ZSB1c2UgdGhpcyBmaWVsZCB0byByZWNvdmVyIHRoZQogICAtLSAgICBwb3NpdGlvbiBv ZiB0aGUgZGlzY3JpbWluYW50IGluIHRoZSBvcmlnaW5hbCB0eXBlLCBhbmQgcmVwbGFjZSBpdAog ICAtLSAgICB3aXRoIHRoZSBkaXNjcmltaW5hbnQgYXQgdGhlIHNhbWUgcG9zaXRpb24gaW4gdGhl IGluc3RhbnRpYXRlZCB0eXBlLgoKICAgLS0gIE90aGVyc19EaXNjcmV0ZV9DaG9pY2VzIChMaXN0 MS1TZW0pCiAgIC0tICAgIFdoZW4gYSBjYXNlIHN0YXRlbWVudCBvciB2YXJpYW50IGlzIGFuYWx5 emVkLCB0aGUgc2VtYW50aWMgY2hlY2tzCiAgIC0tICAgIGRldGVybWluZSB0aGUgYWN0dWFsIGxp c3Qgb2YgY2hvaWNlcyB0aGF0IGNvcnJlc3BvbmQgdG8gYW4gb3RoZXJzCiAgIC0tICAgIGNob2lj ZS4gVGhpcyBsaXN0IGlzIG1hdGVyaWFsaXplZCBmb3IgbGF0ZXIgdXNlIGJ5IHRoZSBleHBhbmRl cgogICAtLSAgICBhbmQgdGhlIE90aGVyc19EaXNjcmV0ZV9DaG9pY2VzIGZpZWxkIG9mIGFuIE5f T3RoZXJzX0Nob2ljZSBub2RlCiAgIC0tICAgIHBvaW50cyB0byB0aGlzIG1hdGVyaWFsaXplZCBs aXN0IG9mIGNob2ljZXMsIHdoaWNoIGlzIGluIHN0YW5kYXJkCiAgIC0tICAgIGZvcm1hdCBmb3Ig YSBsaXN0IG9mIGRpc2NyZXRlIGNob2ljZXMsIGV4Y2VwdCB0aGF0IG9mIGNvdXJzZSBpdAogICAt LSAgICBjYW5ub3QgY29udGFpbiBhbiBOX090aGVyc19DaG9pY2UgZW50cnkuCgogICAtLSAgUGFy YW1ldGVyX0xpc3RfVHJ1bmNhdGVkIChGbGFnMTctU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5f RnVuY3Rpb25fQ2FsbCBhbmQgTl9Qcm9jZWR1cmVfQ2FsbF9TdGF0ZW1lbnQgbm9kZXMuCiAgIC0t ICAgIFNldCAoZm9yIE9wZW5WTVMgcG9ydHMgb2YgR05BVCBvbmx5KSBpZiB0aGUgcGFyYW1ldGVy IGxpc3QgaXMKICAgLS0gICAgdHJ1bmNhdGVkIGFzIGEgcmVzdWx0IG9mIGEgRmlyc3RfT3B0aW9u YWxfUGFyYW1ldGVyIHNwZWNpZmljYXRpb24KICAgLS0gICAgaW4gYW4gSW1wb3J0X0Z1bmN0aW9u LCBJbXBvcnRfUHJvY2VkdXJlLCBvciBJbXBvcnRfVmFsdWVkX1Byb2NlZHVyZQogICAtLSAgICBw cmFnbWEuIFRoZSB0cnVuY2F0aW9uIGlzIGRvbmUgYnkgdGhlIGV4cGFuZGVyIGJ5IHJlbW92aW5n IHRyYWlsaW5nCiAgIC0tICAgIHBhcmFtZXRlcnMgZnJvbSB0aGUgYXJndW1lbnQgbGlzdCwgaW4g YWNjb3JkYW5jZSB3aXRoIHRoZSBzZXQgb2YKICAgLS0gICAgcnVsZXMgYWxsb3dpbmcgc3VjaCBw YXJhbWV0ZXIgcmVtb3ZhbC4gSW4gcGFydGljdWxhciwgcGFyYW1ldGVycwogICAtLSAgICBjYW4g YmUgcmVtb3ZlZCB3b3JraW5nIGZyb20gdGhlIGVuZCBvZiB0aGUgcGFyYW1ldGVyIGxpc3QgYmFj a3dhcmRzCiAgIC0tICAgIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIGVudHJ5IGRlc2lnbmF0ZWQg YnkgRmlyc3RfT3B0aW9uYWxfUGFyYW1ldGVyCiAgIC0tICAgIGluIHRoZSBJbXBvcnQgcHJhZ21h LiBQYXJhbWV0ZXJzIGNhbiBiZSByZW1vdmVkIGlmIHRoZXkgYXJlIGltcGxpY2l0CiAgIC0tICAg IGFuZCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyBhIGtub3duLWF0LWNvbXBpbGUtdGltZSB2YWx1ZSwg aW5jbHVkaW5nCiAgIC0tICAgIHRoZSB1c2Ugb2YgdGhlIE51bGxfUGFyYW1ldGVyIGF0dHJpYnV0 ZSwgb3IgaWYgZXhwbGljaXQgcGFyYW1ldGVyCiAgIC0tICAgIHZhbHVlcyBhcmUgcHJlc2VudCB0 aGF0IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGRlZmF1bHRzLgoKICAgLS0gIFBhcmVudF9TcGVj IChOb2RlNC1TZW0pCiAgIC0tICAgIEZvciBhIGxpYnJhcnkgdW5pdCB0aGF0IGlzIGEgY2hpbGQg dW5pdCBzcGVjIChwYWNrYWdlIG9yIHN1YnByb2dyYW0KICAgLS0gICAgZGVjbGFyYXRpb24sIGdl bmVyaWMgZGVjbGFyYXRpb24gb3IgaW5zdGFudGlhdGlvbiwgb3IgbGlicmFyeSBsZXZlbAogICAt LSAgICByZW5hbWUsIHRoaXMgZmllbGQgcG9pbnRzIHRvIHRoZSBjb21waWxhdGlvbiB1bml0IG5v ZGUgZm9yIHRoZSBwYXJlbnQKICAgLS0gICAgcGFja2FnZSBzcGVjaWZpY2F0aW9uLiBUaGlzIGZp ZWxkIGlzIEVtcHR5IGZvciBsaWJyYXJ5IGJvZGllcyAodGhlCiAgIC0tICAgIHBhcmVudCBzcGVj IGluIHRoaXMgY2FzZSBjYW4gYmUgZm91bmQgZnJvbSB0aGUgY29ycmVzcG9uZGluZyBzcGVjKS4K CiAgIC0tICBQcmVzZW50X0V4cHIgKFVpbnQzLVNlbSkKICAgLS0gICAgUHJlc2VudCBpbiBhbiBO X1ZhcmlhbnQgbm9kZS4gVGhpcyBoYXMgYSBtZWFuaW5nZnVsIHZhbHVlIG9ubHkgYWZ0ZXIKICAg LS0gICAgR2lnaSBoYXMgYmFjayBhbm5vdGF0ZWQgdGhlIHRyZWUgd2l0aCByZXByZXNlbnRhdGlv biBpbmZvcm1hdGlvbi4KICAgLS0gICAgQXQgdGhpcyBwb2ludCwgaXQgY29udGFpbnMgYSByZWZl cmVuY2UgdG8gYSBnY2MgZXhwcmVzc2lvbiB0aGF0CiAgIC0tICAgIGRlcGVuZHMgb24gdGhlIHZh bHVlcyBvZiBvbmUgb3IgbW9yZSBkaXNjcmltaW5hbnRzLiBHaXZlIGEgc2V0IG9mCiAgIC0tICAg IGRpc2NyaW1pbmFudCB2YWx1ZXMsIHRoaXMgZXhwcmVzc2lvbiBldmFsdWF0ZXMgdG8gRmFsc2Ug KHplcm8pIGlmCiAgIC0tICAgIHZhcmlhbnQgaXMgbm90IHByZXNlbnQsIGFuZCBUcnVlIChub24t emVybykgaWYgaXQgaXMgcHJlc2VudC4gU2VlCiAgIC0tICAgIHVuaXQgUmVwaW5mbyBmb3IgZnVy dGhlciBkZXRhaWxzIG9uIGdpZ2kgYmFjayBhbm5vdGF0aW9uLiBUaGlzCiAgIC0tICAgIGZpZWxk IGlzIHVzZWQgZHVyaW5nIEFTSVMgcHJvY2Vzc2luZyAoZGF0YSBkZWNvbXBvc2l0aW9uIGFubmV4 KQogICAtLSAgICB0byBkZXRlcm1pbmUgaWYgYSBmaWVsZCBpcyBwcmVzZW50IG9yIG5vdC4KCiAg IC0tICBQcmludF9Jbl9IZXggKEZsYWcxMy1TZW0pCiAgIC0tICAgIFNldCBvbiBhbiBOX0ludGVn ZXJfTGl0ZXJhbCBub2RlIHRvIGluZGljYXRlIHRoYXQgdGhlIHZhbHVlIHNob3VsZAogICAtLSAg ICBiZSBwcmludGVkIGluIGhleGFkZWNpbWFsIGluIHRoZSBzcHJpbnQgbGlzdGluZy4gSGFzIG5v IGVmZmVjdCBvbgogICAtLSAgICBsZWdhbGl0eSBvciBzZW1hbnRpY3Mgb2YgcHJvZ3JhbSwgb25s eSBvbiB0aGUgZGlzcGxheWVkIG91dHB1dC4KICAgLS0gICAgVGhpcyBpcyB1c2VkIHRvIGNsYXJp Znkgb3V0cHV0IGZyb20gdGhlIHBhY2tlZCBhcnJheSBjYXNlcy4KCiAgIC0tICBQcm9jZWR1cmVf VG9fQ2FsbCAoTm9kZTQtU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5fQWxsb2NhdG9yLiBOX0Zy ZWVfU3RhdGVtZW50LCBhbmQgTl9SZXR1cm5fU3RhdGVtZW50CiAgIC0tICAgIG5vZGVzLiBSZWZl cmVuY2VzIHRoZSBlbnRpdHkgZm9yIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgcHJvY2VkdXJlCiAg IC0tICAgIHRvIGJlIGNhbGxlZCB0byBhY2NvbXBsaXNoIHRoZSByZXF1aXJlZCBvcGVyYXRpb24g KGkuZS4gZm9yIHRoZQogICAtLSAgICBBbGxvY2F0ZSBwcm9jZWR1cmUgaW4gdGhlIGNhc2Ugb2Yg Tl9BbGxvY2F0b3IgYW5kIE5fUmV0dXJuX1N0YXRlbWVudAogICAtLSAgICAoZm9yIGFsbG9jYXRp bmcgdGhlIHJldHVybiB2YWx1ZSksIGFuZCBmb3IgdGhlIERlYWxsb2NhdGUgcHJvY2VkdXJlCiAg IC0tICAgIGluIHRoZSBjYXNlIG9mIE5fRnJlZV9TdGF0ZW1lbnQuCgogICAtLSAgUmFpc2VzX0Nv bnN0cmFpbnRfRXJyb3IgKEZsYWc3LVNlbSkKICAgLS0gICAgU2V0IG9uIGFuIGV4cHJlc3Npb24g d2hvc2UgZXZhbHVhdGlvbiB3aWxsIGRlZmluaXRlbHkgZmFpbCBhCiAgIC0tICAgIGNvbnN0cmFp bnQgZXJyb3IgY2hlY2suIEluIHRoZSBjYXNlIG9mIHN0YXRpYyBleHByZXNzaW9ucywgdGhpcwog ICAtLSAgICBmbGFnIG11c3QgYmUgc2V0IGFjY3VyYXRlbHkgKGFuZCBpZiBpdCBpcyBzZXQsIHRo ZSBleHByZXNzaW9uIGlzCiAgIC0tICAgIHR5cGljYWxseSBpbGxlZ2FsIHVubGVzcyBpdCBhcHBl YXJzIGFzIGEgbm9uLWVsYWJvcmF0ZWQgYnJhbmNoIG9mCiAgIC0tICAgIGEgc2hvcnQtY2lyY3Vp dCBmb3JtKS4gRm9yIGEgbm9uLXN0YXRpYyBleHByZXNzaW9uLCB0aGlzIGZsYWcgbWF5CiAgIC0t ICAgIGJlIHNldCB3aGVuZXZlciBhbiBleHByZXNzaW9uIChlLmcuIGFuIGFnZ3JlZ2F0ZSkgaXMg a25vd24gdG8gcmFpc2UKICAgLS0gICAgY29uc3RyYWludCBlcnJvci4gSWYgc2V0LCB0aGUgZXhw cmVzc2lvbiBkZWZpbml0ZWx5IHdpbGwgcmFpc2UgQ0UKICAgLS0gICAgaWYgZWxhYm9yYXRlZCBh dCBydW50aW1lLiBJZiBub3Qgc2V0LCB0aGUgZXhwcmVzc2lvbiBtYXkgb3IgbWF5CiAgIC0tICAg IG5vdCByYWlzZSBDRS4gSW4gb3RoZXIgd29yZHMsIG9uIHN0YXRpYyBleHByZXNzaW9ucywgdGhl IGZsYWcgaXMKICAgLS0gICAgc2V0IGFjY3VyYXRlbHksIG9uIG5vbi1zdGF0aWMgZXhwcmVzc2lv bnMgaXQgaXMgc2V0IGNvbnNlcnZhdGl2ZWx5LgoKICAgLS0gIFJlZHVuZGFudF9Vc2UgKEZsYWcx My1TZW0pCiAgIC0tICAgIEEgZmxhZyBwcmVzZW50IGluIG5vZGVzIHRoYXQgY2FuIGFwcGVhciBh cyBhbiBvcGVyYW5kIGluIGEgdXNlCiAgIC0tICAgIGNsYXVzZSBvciB1c2UgdHlwZSBjbGF1c2Ug KGlkZW50aWZpZXJzLCBleHBhbmRlZCBuYW1lcywgYXR0cmlidXRlCiAgIC0tICAgIHJlZmVyZW5j ZXMpLiBTZXQgdG8gaW5kaWNhdGUgdGhhdCBhIHVzZSBpcyByZWR1bmRhbnQgKGFuZCB0aGVyZWZv cmUKICAgLS0gICAgbmVlZCBub3QgYmUgdW5kb25lIG9uIHNjb3BlIGV4aXQpLgoKICAgLS0gIFJl dHVybl9UeXBlIChOb2RlMi1TZW0pCiAgIC0tICAgIFByZXNlbnQgaW4gTl9SZXR1cm5fU3RhdGVt ZW50IG5vZGUuIEZvciBhIHByb2NlZHVyZSwgdGhpcyBpcyBzZXQKICAgLS0gICAgdG8gU3RhbmRh cmRfVm9pZF9UeXBlLiBGb3IgYSBmdW5jdGlvbiBpdCByZWZlcmVuY2VzIHRoZSBlbnRpdHkKICAg LS0gICAgZm9yIHRoZSByZXR1cm5lZCB0eXBlLgoKICAgLS0gIFJvdW5kZWRfUmVzdWx0IChGbGFn MTgtU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5fVHlwZV9Db252ZXJzaW9uLCBOX09wX0Rpdmlk ZSBhbmQgTl9PcF9NdWx0aXBseSBub2Rlcy4KICAgLS0gICAgVXNlZCBpbiB0aGUgZml4ZWQtcG9p bnQgY2FzZXMgdG8gaW5kaWNhdGUgdGhhdCB0aGUgcmVzdWx0IG11c3QgYmUKICAgLS0gICAgcm91 bmRlZCBhcyBhIHJlc3VsdCBvZiB0aGUgdXNlIG9mIHRoZSAnUm91bmQgYXR0cmlidXRlLiBBbHNv IHVzZWQKICAgLS0gICAgZm9yIGludGVnZXIgTl9PcF9EaXZpZGUgbm9kZXMgdG8gaW5kaWNhdGUg dGhhdCB0aGUgcmVzdWx0IHNob3VsZAogICAtLSAgICBiZSByb3VuZGVkIHRvIHRoZSBuZWFyZXN0 IGludGVnZXIgKGJyZWFraW5nIHRpZXMgYXdheSBmcm9tIHplcm8pLAogICAtLSAgICByYXRoZXIg dGhhbiB0cnVuY2F0ZWQgdG93YXJkcyB6ZXJvIGFzIHVzdWFsLiBUaGVzZSByb3VuZGVkIGludGVn ZXIKICAgLS0gICAgb3BlcmF0aW9ucyBhcmUgdGhlIHJlc3VsdCBvZiBleHBhbnNpb24gb2Ygcm91 bmRlZCBmaXhlZC1wb2ludAogICAtLSAgICBkaXZpZGUsIGNvbmVyc2lvbiBhbmQgbXVsdGlwbGlj YXRpb24gb3BlcmF0aW9ucy4KCiAgIC0tICBTY29wZSAoTm9kZTMtU2VtKQogICAtLSAgICBQcmVz ZW50IGluIGRlZmluaW5nIGlkZW50aWZpZXJzLCBkZWZpbmluZyBjaGFyYWN0ZXIgbGl0ZXJhbHMg YW5kCiAgIC0tICAgIGRlZmluaW5nIG9wZXJhdG9yIHN5bWJvbHMgKGkuZS4gaW4gYWxsIGVudGl0 aWVzKS4gVGhlIGVudGl0aWVzIG9mCiAgIC0tICAgIGEgc2NvcGUgYWxsIHVzZSB0aGlzIGZpZWxk IHRvIHJlZmVyZW5jZSB0aGUgY29ycmVzcG9uZGluZyBzY29wZQogICAtLSAgICBlbnRpdHkuIFNl ZSBFaW5mbyBmb3IgZnVydGhlciBkZXRhaWxzLgoKICAgLS0gIFNoaWZ0X0NvdW50X09LIChGbGFn NC1TZW0pCiAgIC0tICAgIEEgZmxhZyBwcmVzZW50IGluIHNoaWZ0IG5vZGVzIHRvIGluZGljYXRl IHRoYXQgdGhlIHNoaWZ0IGNvdW50IGlzCiAgIC0tICAgIGtub3duIHRvIGJlIGluIHJhbmdlLCBp LmUuIGlzIGluIHRoZSByYW5nZSBmcm9tIHplcm8gdG8gd29yZCBsZW5ndGgKICAgLS0gICAgbWlu dXMgb25lLiBJZiB0aGlzIGZsYWcgaXMgbm90IHNldCwgdGhlbiB0aGUgc2hpZnQgY291bnQgbWF5 IGJlCiAgIC0tICAgIG91dHNpZGUgdGhpcyByYW5nZSwgaS5lLiBsYXJnZXIgdGhhbiB0aGUgd29y ZCBsZW5ndGgsIGFuZCB0aGUgY29kZQogICAtLSAgICBtdXN0IGVuc3VyZSB0aGF0IHN1Y2ggc2hp ZnQgY291bnRzIGdpdmUgdGhlIGFwcHJvcHJpYXRlIHJlc3VsdC4KCiAgIC0tICBTb3VyY2VfVHlw ZSAoTm9kZTEtU2VtKQogICAtLSAgICBVc2VkIGluIGFuIE5fVmFsaWRhdGVfVW5jaGVja2VkX0Nv bnZlcnNpb24gbm9kZSB0byBwb2ludCB0byB0aGUKICAgLS0gICAgc291cmNlIHR5cGUgZW50aXR5 IGZvciB0aGUgdW5jaGVja2VkIGNvbnZlcnNpb24gaW5zdGFudGlhdGlvbgogICAtLSAgICB3aGlj aCBnaWdpIG11c3QgZG8gc2l6ZSB2YWxpZGF0aW9uIGZvci4KCiAgIC0tICBTdGF0aWNfUHJvY2Vz c2luZ19PSyAoRmxhZzQtU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5fQWdncmVnYXRlIG5vZGVz LiBXaGVuIHRoZSBDb21waWxlX1RpbWVfS25vd25fQWdncmVnYXRlCiAgIC0tICAgIGZsYWcgaXMg c2V0LCB0aGUgZnVsbCB2YWx1ZSBvZiB0aGUgYWdncmVnYXRlIGNhbiBiZSBkZXRlcm1pbmVkIGF0 CiAgIC0tICAgIGNvbXBpbGUgdGltZSBhbmQgdGhlIGFnZ3JlZ2F0ZSBjYW4gYmUgcGFzc2VkIGFz IGlzIHRvIHRoZSBiYWNrLWVuZC4KICAgLS0gICAgSW4gdGhpcyBldmVudCBpdCBpcyBpcnJlbGV2 YW50IHdoZXRoZXIgdGhpcyBmbGFnIGlzIHNldCBvciBub3QuCiAgIC0tICAgIEhvd2V2ZXIsIGlm IHRoZSBDb21waWxlX1RpbWVfS25vd25fQWdncmVnYXRlIGZsYWcgaXMgbm90IHNldCBidXQKICAg LS0gICAgU3RhdGljX1Byb2Nlc3NpbmdfT0sgaXMgc2V0LCB0aGUgYWdncmVnYXRlIGNhbiAoYnV0 IG5lZWQgbm90KSBiZQogICAtLSAgICBjb252ZXJ0ZWQgaW50byBhIGNvbXBpbGUgdGltZSBrbm93 biBhZ2dyZWdhdGUgYnkgdGhlIGV4cGFuZGVyLgogICAtLSAgICBTZWUgU2VtX0FnZ3IgZm9yIHRo ZSBzcGVjaWZpYyBjb25kaXRpb25zIHVuZGVyIHdoaWNoIGFuIGFnZ3JlZ2F0ZQogICAtLSAgICBo YXMgaXRzIFN0YXRpY19Qcm9jZXNzaW5nX09LIGZsYWcgc2V0LgoKICAgLS0gIFN0b3JhZ2VfUG9v bCAoTm9kZTEtU2VtKQogICAtLSAgICBQcmVzZW50IGluIE5fQWxsb2NhdG9yLCBOX0ZyZWVfU3Rh dGVtZW50IGFuZCBOX1JldHVybl9TdGF0ZW1lbnQKICAgLS0gICAgbm9kZXMuIFJlZmVyZW5jZXMg dGhlIGVudGl0eSBmb3IgdGhlIHN0b3JhZ2UgcG9vbCB0byBiZSB1c2VkIGZvcgogICAtLSAgICB0 aGUgYWxsb2NhdGUgb3IgZnJlZSBjYWxsIG9yIGZvciB0aGUgYWxsb2NhdGlvbiBvZiB0aGUgcmV0 dXJuZWQKICAgLS0gICAgdmFsdWUgZnJvbSBhIGZ1bmN0aW9uLiBFbXB0eSBpbmRpY2F0ZXMgdGhh dCB0aGUgZ2xvYmFsIGRlZmF1bHQKICAgLS0gICAgZGVmYXVsdCBwb29sIGlzIHRvIGJlIHVzZWQu IE5vdGUgdGhhdCBpbiB0aGUgY2FzZSBvZiBhIHJldHVybgogICAtLSAgICBzdGF0ZW1lbnQsIHRo aXMgZmllbGQgaXMgc2V0IG9ubHkgaWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYQogICAtLSAgICB2 YWx1ZSBvZiBhIHR5cGUgd2hvc2Ugc2l6ZSBpcyBub3Qga25vd24gYXQgY29tcGlsZSB0aW1lIG9u IHRoZQogICAtLSAgICBzZWNvbmRhcnkgc3RhY2suIEl0IGlzIG5ldmVyIHNldCBvbiB0YXJnZXRz IGZvciB3aGljaCB0aGUgdGFyZ2V0CiAgIC0tICAgIHBhcmFtZXRlciBUYXJncGFybS5GdW5jdGlv bnNfUmV0dXJuX0J5X0RTUF9Pbl9UYXJnZXQgaXMgVHJ1ZS4KCiAgIC0tICBUYXJnZXRfVHlwZSAo Tm9kZTItU2VtKQogICAtLSAgICBVc2VkIGluIGFuIE5fVmFsaWRhdGVfVW5jaGVja2VkX0NvbnZl cnNpb24gbm9kZSB0byBwb2ludCB0byB0aGUKICAgLS0gICAgdGFyZ2V0IHR5cGUgZW50aXR5IGZv ciB0aGUgdW5jaGVja2VkIGNvbnZlcnNpb24gaW5zdGFudGlhdGlvbgogICAtLSAgICB3aGljaCBn aWdpIG11c3QgZG8gc2l6ZSB2YWxpZGF0aW9uIGZvci4KCiAgIC0tICBUYXNrX0JvZHlfUHJvY2Vk dXJlIChOb2RlMi1TZW0pCiAgIC0tICAgIFByZXNlbnQgaW4gdGFzayB0eXBlIGRlY2xhcmF0aW9u IG5vZGVzLiBQb2ludHMgdG8gdGhlIGVudGl0eSBmb3IKICAgLS0gICAgdGhlIHRhc2sgYm9keSBw cm9jZWR1cmUgKGFzIGZ1cnRoZXIgZGVzY3JpYmVkIGluIEV4cF9DaDksIHRhc2sKICAgLS0gICAg Ym9kaWVzIGFyZSBleHBhbmRlZCBpbnRvIHByb2NlZHVyZXMpLiBBIGNvbnZlbmllbnQgZnVuY3Rp b24gdG8KICAgLS0gICAgcmV0cmlldmUgdGhpcyBmaWVsZCBpcyBTZW1fVXRpbC5HZXRfVGFza19C b2R5X1Byb2NlZHVyZS4KCiAgIC0tICBUaGVuX0FjdGlvbnMgKExpc3QzLVNlbSkKICAgLS0gICAg VGhpcyBmaWVsZCBpcyBwcmVzZW50IGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gbm9kZXMuIER1 cmluZyBjb2RlCiAgIC0tICAgIGV4cGFuc2lvbiB3ZSB1c2UgdGhlIEluc2VydF9BY3Rpb25zIHBy b2NlZHVyZSAoaW4gRXhwX1V0aWwpIHRvIGluc2VydAogICAtLSAgICBhY3Rpb25zIGF0IGFuIGFw cHJvcHJpYXRlIHBsYWNlIGluIHRoZSB0cmVlIHRvIGdldCBlbGFib3JhdGVkIGF0IHRoZQogICAt LSAgICByaWdodCB0aW1lLiBGb3IgY29uZGl0aW9uYWwgZXhwcmVzc2lvbnMsIHdlIGhhdmUgdG8g YmUgc3VyZSB0aGF0IHRoZQogICAtLSAgICBhY3Rpb25zIGZvciB0aGUgVGhlbiBicmFuY2ggYXJl IG9ubHkgZWxhYm9yYXRlZCBpZiB0aGUgY29uZGl0aW9uIGlzCiAgIC0tICAgIFRydWUuIFRoZSBU aGVuX0FjdGlvbnMgZmllbGQgaXMgdXNlZCBhcyBhIHRlbXBvcmFyeSBwYXJraW5nIHBsYWNlCiAg IC0tICAgIGZvciB0aGVzZSBhY3Rpb25zLiBUaGUgZmluYWwgdHJlZSBpcyBhbHdheXMgcmV3cml0 dGVuIHRvIGVsaW1pbmF0ZQogICAtLSAgICB0aGUgbmVlZCBmb3IgdGhpcyBmaWVsZCwgc28gaW4g dGhlIHRyZWUgcGFzc2VkIHRvIEdpZ2ksIHRoaXMgZmllbGQKICAgLS0gICAgaXMgYWx3YXlzIHNl dCB0byBOb19MaXN0LgoKICAgLS0gIFRyZWF0X0ZpeGVkX0FzX0ludGVnZXIgKEZsYWcxNC1TZW0p CiAgIC0tICAgIFRoaXMgZmxhZyBhcHBlYXJzIGluIG9wZXJhdG9yIG5vZGVzIGZvciBkaXZpZGUs IG11bHRpcGx5LCBtb2QgYW5kCiAgIC0tICAgIHJlbSBvbiBmaXhlZC1wb2ludCBvcGVyYW5kcy4g SXQgaW5kaWNhdGVzIHRoYXQgdGhlIG9wZXJhbmRzIGFyZQogICAtLSAgICB0byBiZSB0cmVhdGVk IGFzIGludGVnZXIgdmFsdWVzLCBpZ25vcmluZyBzbWFsbCB2YWx1ZXMuIFRoaXMgZmxhZwogICAt LSAgICBpcyBvbmx5IHNldCBhcyBhIHJlc3VsdCBvZiBleHBhbnNpb24gb2YgZml4ZWQtcG9pbnQg b3BlcmF0aW9ucy4KICAgLS0gICAgVHlwaWNhbGx5IGEgZml4ZWQtcG9pbnQgbXVsdHBsaWNhdGlv biBpbiB0aGUgc291cmNlIGdlbmVyYXRlcwogICAtLSAgICBzdWJzaWRpYXJ5IG11bHRpcGxpY2F0 aW9uIGFuZCBkaXZpc2lvbiBvcGVyYXRpb25zIHRoYXQgd29yayB3aXRoCiAgIC0tICAgIHRoZSB1 bmRlcmx5aW5nIGludGVnZXIgdmFsdWVzIGFuZCBoYXZlIHRoaXMgZmxhZyBzZXQuIE5vdGUgdGhh dAogICAtLSAgICB0aGlzIGZsYWcgaXMgbm90IG5lZWRlZCBvbiBvdGhlciBhcml0aG1ldGljIG9w ZXJhdGlvbnMgKGFkZCwgbmVnLAogICAtLSAgICBzdWJ0cmFjdCBldGMpIHNpbmNlIGluIHRoZXNl IGNhc2VzIGl0IGlzIGFsd2F5cyB0aGUgY2FzZSB0aGF0IGZpeGVkCiAgIC0tICAgIGlzIHRyZWF0 ZWQgYXMgaW50ZWdlci4gVGhlIEV0eXBlIGZpZWxkIE1VU1QgYmUgc2V0IGlmIHRoaXMgZmxhZwog ICAtLSAgICBpcyBzZXQuIFRoZSBhbmFseXplciBrbm93cyB0byBsZWF2ZSBzdWNoIG5vZGVzIGFs b25lLCBhbmQgd2hvZXZlcgogICAtLSAgICBtYWtlcyB0aGVtIG11c3Qgc2V0IHRoZSBjb3JyZWN0 IEV0eXBlIHZhbHVlLgoKICAgLS0gIFRTU19FbGlzdCAoRWxpc3QzLVNlbSkKICAgLS0gICAgUHJl c2VudCBpbiBOX0ZyZWV6ZV9FbnRpdHkgbm9kZXMuIEhvbGRzIGFuIGVsZW1lbnQgbGlzdCBjb250 YWluaW5nCiAgIC0tICAgIGVudHJpZXMgZm9yIGVhY2ggVFNTICh0eXBlIHN1cHBvcnQgc3VicHJv Z3JhbSkgYXNzb2NpYXRlZCB3aXRoIHRoZQogICAtLSAgICBmcm96ZW4gdHlwZS4gVGhlIGVsZW1l bnRzIG9mIHRoZSBsaXN0IGFyZSB0aGUgZW50aXRpZXMgZm9yIHRoZQogICAtLSAgICBzdWJwcm9n cmFtcyAoc2VlIHBhY2thZ2UgRXhwX1RTUyBmb3IgZnVydGhlciBkZXRhaWxzKS4gU2V0IHRvCiAg IC0tICAgIE5vX0VsaXN0IGlmIHRoZXJlIGFyZSBubyB0eXBlIHN1cHBvcnQgc3VicHJvZ3JhbXMg Zm9yIHRoZSB0eXBlCiAgIC0tICAgIG9yIGlmIHRoZSBmcmVlemUgbm9kZSBpcyBub3QgZm9yIGEg dHlwZS4KCiAgIC0tICBVbnJlZmVyZW5jZWRfSW5fU3BlYyAoRmxhZzctU2VtKQogICAtLSAgICBQ cmVzZW50IGluIE5fV2l0aF9DbGF1c2Ugbm9kZXMuIFNldCBpZiB0aGUgd2l0aCBjbGF1c2UgaXMg b24gdGhlCiAgIC0tICAgIHBhY2thZ2Ugb3Igc3VicHJvZ3JhbSBzcGVjIHdoZXJlIHRoZSBtYWlu IHVuaXQgaXMgdGhlIGNvcnJlc3BvbmRpbmcKICAgLS0gICAgYm9keSwgYW5kIGlzIG5vdCByZWZl cmVuY2VkIGJ5IHRoZSBzcGVjIChpdCBtYXkgc3RpbGwgYmUgcmVmZXJlbmNlZAogICAtLSAgICBi eSB0aGUgYm9keSwgc28gdGhpcyBmbGFnIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHByb3BlciBt ZXNzYWdlCiAgIC0tICAgIChzZWUgU2VtX1V0aWwuQ2hlY2tfVW51c2VkX1dpdGhzIGZvciBkZXRh aWxzKQoKICAgLS0gIFdhc19PcmlnaW5hbGx5X1N0dWIgKEZsYWcxMy1TZW0pCiAgIC0tICAgIFRo aXMgZmxhZyBpcyBzZXQgaW4gdGhlIG5vZGUgZm9yIGEgcHJvcGVyIGJvZHkgdGhhdCByZXBsYWNl cyBhCiAgIC0tICAgIHN0dWIuIER1cmluZyB0aGUgYW5hbHlzaXMgcHJvY2VkdXJlLCBzdHVicyBp biBzb21lIHNpdHVhdGlvbnMKICAgLS0gICAgZ2V0IHJld3JpdHRlbiBieSB0aGUgY29ycmVzcG9u ZGluZyBib2RpZXMsIGFuZCB3ZSBzZXQgdGhpcyBmbGFnCiAgIC0tICAgIHRvIHJlbWVtYmVyIHRo YXQgdGhpcyBoYXBwZW5lZC4gTm90ZSB0aGF0IGl0IGlzIG5vdCBnb29kIGVub3VnaAogICAtLSAg ICB0byByZWx5IG9uIHRoZSB1c2Ugb2YgT3JpZ2luYWxfVHJlZSBoZXJlIGJlY2F1c2Ugb2YgdGhl IGNhc2Ugb2YKICAgLS0gICAgbmVzdGVkIGluc3RhbnRpYXRpb25zIHdoZXJlIHRoZSBzdWJzdGl0 dXRlZCBub2RlIGNhbiBiZSBjb3BpZWQuCgogICAtLSAgWmVyb19Db3N0X0hhbmRsaW5nIChGbGFn NS1TZW0pCiAgIC0tICAgIFRoaXMgZmxhZyBpcyBzZXQgaW4gYWxsIGhhbmRsZWQgc2VxdWVuY2Ug b2Ygc3RhdGVtZW50IGFuZCBleGNlcHRpb24KICAgLS0gICAgaGFuZGxlciBub2RlcyBpZiBlY2Vw dGlvbnMgYXJlIHRvIGJlIGhhbmRsZWQgdXNpbmcgdGhlIHplcm8tY29zdAogICAtLSAgICBtZWNo YW5pc20gKHNlZSBBZGEuRXhjZXB0aW9ucyBhbmQgU3lzdGVtLkV4Y2VwdGlvbnMgaW4gZmlsZXMK ICAgLS0gICAgYS1leGNlcHQuYWRzL2FkYiBhbmQgcy1leGNlcHQuYWRzIGZvciBmdWxsIGRldGFp bHMpLiBXaGF0IGdpZ2kKICAgLS0gICAgbmVlZHMgdG8gZG8gZm9yIHN1Y2ggYSBoYW5kbGVyIGlz IHNpbXBseSB0byBwdXQgdGhlIGNvZGUgaW4gdGhlCiAgIC0tICAgIGhhbmRsZXIgc29tZXdoZXJl LiBUaGUgZnJvbnQgZW5kIGhhcyBnZW5lcmF0ZWQgYWxsIG5lY2Vzc2FyeSBsYWJlbHMuCgogICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBO b3RlIG9uIFVzZSBvZiBFbmRfTGFiZWwgYW5kIEVuZF9TcGFuIEZpZWxkcyAtLQogICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFNldmVy YWwgY29uc3RydWN0cyBoYXZlIGVuZCBsaW5lczoKCiAgIC0tICAgIExvb3AgU3RhdGVtZW50ICAg ICAgICAgICAgIGVuZCBsb29wIFtsb29wX0lERU5USUZJRVJdOwogICAtLSAgICBQYWNrYWdlIFNw ZWNpZmljYXRpb24gICAgICBlbmQgW1tQQVJFTlRfVU5JVF9OQU1FIC5dIElERU5USUZJRVJdCiAg IC0tICAgIFRhc2sgRGVmaW5pdGlvbiAgICAgICAgICAgIGVuZCBbdGFza19JREVOVElGSUVSXQog ICAtLSAgICBQcm90ZWN0ZWQgRGVmaW5pdGlvbiAgICAgICBlbmQgW3Byb3RlY3RlZF9JREVOVElG SUVSXQogICAtLSAgICBQcm90ZWN0ZWQgQm9keSAgICAgICAgICAgICBlbmQgW3Byb3RlY3RlZF9J REVOVElGSUVSXQoKICAgLS0gICAgQmxvY2sgU3RhdGVtZW50ICAgICAgICAgICAgZW5kIFtibG9j a19JREVOVElGSUVSXTsKICAgLS0gICAgU3VicHJvZ3JhbSBCb2R5ICAgICAgICAgICAgZW5kIFtE RVNJR05BVE9SXTsKICAgLS0gICAgUGFja2FnZSBCb2R5ICAgICAgICAgICAgICAgZW5kIFtbUEFS RU5UX1VOSVRfTkFNRSAuXSBJREVOVElGSUVSXTsKICAgLS0gICAgVGFzayBCb2R5ICAgICAgICAg ICAgICAgICAgZW5kIFt0YXNrX0lERU5USUZJRVJdOwogICAtLSAgICBBY2NlcHQgU3RhdGVtZW50 ICAgICAgICAgICBlbmQgW2VudHJ5X0lERU5USUZJRVJdXTsKICAgLS0gICAgRW50cnkgQm9keSAg ICAgICAgICAgICAgICAgZW5kIFtlbnRyeV9JREVOVElGSUVSXTsKCiAgIC0tICAgIElmIFN0YXRl bWVudCAgICAgICAgICAgICAgIGVuZCBpZjsKICAgLS0gICAgQ2FzZSBTdGF0ZW1lbnQgICAgICAg ICAgICAgZW5kIGNhc2U7CgogICAtLSAgICBSZWNvcmQgRGVmaW5pdGlvbiAgICAgICAgICBlbmQg cmVjb3JkOwoKICAgLS0gIFRoZSBFbmRfTGFiZWwgYW5kIEVuZF9TcGFuIGZpZWxkcyBhcmUgdXNl ZCB0byBtYXJrIHRoZSBsb2NhdGlvbnMKICAgLS0gIG9mIHRoZXNlIGxpbmVzLCBhbmQgYWxzbyBr ZWVwIHRyYWNrIG9mIHRoZSBsYWJlbCBpbiB0aGUgY2FzZSB3aGVyZQogICAtLSAgYSBsYWJlbCBp cyBwcmVzZW50LgoKICAgLS0gIEZvciB0aGUgZmlyc3QgZ3JvdXAgYWJvdmUsIHRoZSBFbmRfTGFi ZWwgZmllbGQgb2YgdGhlIGNvcnJlc3BvbmRpbmcKICAgLS0gIG5vZGUgaXMgdXNlZCB0byBwb2lu dCB0byB0aGUgbGFiZWwgaWRlbnRpZmllci4gSW4gdGhlIGNhc2Ugd2hlcmUKICAgLS0gIHRoZXJl IGlzIG5vIGxhYmVsIGluIHRoZSBzb3VyY2UsIHRoZSBwYXJzZXIgc3VwcGxpZXMgYSBkdW1teQog ICAtLSAgaWRlbnRpZmllciAod2l0aCBDb21lc19Gcm9tX1NvdXJjZSBzZXQgdG8gRmFsc2UpLCBh bmQgdGhlIFNsb2MKICAgLS0gIG9mIHRoaXMgZHVtbXkgaWRlbnRpZmllciBtYXJrcyB0aGUgbG9j YXRpb24gb2YgdGhlIHRva2VuIGZvbGxvd2luZwogICAtLSAgdGhlIEVORCB0b2tlbi4KCiAgIC0t ICBGb3IgdGhlIHNlY29uZCBncm91cCwgdGhlIHVzZSBvZiBFbmRfTGFiZWwgaXMgc2ltaWxhciwg YnV0IHRoZQogICAtLSAgRW5kX0xhYmVsIGlzIGZvdW5kIGluIHRoZSBOX0hhbmRsZWRfU2VxdWVu Y2VfT2ZfU3RhdGVtZW50cyBub2RlLgogICAtLSAgVGhpcyBpcyBkb25lIHNpbXBseSBiZWNhdXNl IGluIHNvbWUgY2FzZXMgdGhlcmUgaXMgbm8gcm9vbSBpbgogICAtLSAgdGhlIHBhcmVudCBub2Rl LgoKICAgLS0gIEZvciB0aGUgdGhpcmQgZ3JvdXAsIHRoZXJlIGlzIG5ldmVyIGFueSBsYWJlbCwg YW5kIGluc3RlYWQgb2YKICAgLS0gIHVzaW5nIEVuZF9MYWJlbCwgd2UgdXNlIHRoZSBFbmRfU3Bh biBmaWVsZCB3aGljaCBnaXZlcyB0aGUKICAgLS0gIGxvY2F0aW9uIG9mIHRoZSB0b2tlbiBmb2xs b3dpbmcgRU5ELCByZWxhdGl2ZSB0byB0aGUgc3RhcnRpbmcKICAgLS0gIFNsb2Mgb2YgdGhlIGNv bnN0cnVjdCwgaS5lLiBhZGQgU2xvYyAoTm9kZSkgKyBFbmRfU3BhbiAoTm9kZSkKICAgLS0gIHRv IGdldCB0aGUgU2xvYyBvZiB0aGUgSUYgb3IgQ0FTRSBmb2xsb3dpbmcgdGhlIEVuZF9MYWJlbC4K CiAgIC0tICBUaGUgcmVjb3JkIGRlZmluaXRpb24gY2FzZSBpcyBoYW5kbGVkIHNwZWNpYWxseSwg d2UgdHJlYXQgaXQKICAgLS0gIGFzIHRob3VnaCBpdCByZXF1aXJlZCBhbiBvcHRpb25hbCBsYWJl bCB3aGljaCBpcyBuZXZlciBwcmVzZW50LAogICAtLSAgYW5kIHNvIHRoZSBwYXJzZXIgYWx3YXlz IGJ1aWxkcyBhIGR1bW15IGlkZW50aWZpZXIgd2l0aCBDb21lcwogICAtLSAgRnJvbSBTb3VyY2Ug c2V0IEZhbHNlLiBUaGUgcmVhc29uIHdlIGRvIHRoaXMsIHJhdGhlciB0aGFuIHVzaW5nCiAgIC0t ICBFbmRfU3BhbiBpbiB0aGlzIGNhc2UsIGlzIHRoYXQgd2Ugd2FudCB0byBnZW5lcmF0ZSBhIGNy b3NzLXJlZgogICAtLSAgZW50cnkgZm9yIHRoZSBlbmQgb2YgYSByZWNvcmQsIHNpbmNlIGl0IHJl cHJlc2VudHMgYSBzY29wZSBmb3IKICAgLS0gIG5hbWUgZGVjbGFyYXRpb24gcHVycG9zZXMuCgog ICAtLSAgTm90ZTogdGhlIHJlYXNvbiB3ZSBzdG9yZSB0aGUgZGlmZmVyZW5jZSBhcyBhIFVpbnQs IGluc3RlYWQgb2YKICAgLS0gIHN0b3JpbmcgdGhlIFNvdXJjZV9QdHIgdmFsdWUgZGlyZWN0bHks IGlzIHRoYXQgU291cmNlX1B0ciB2YWx1ZXMKICAgLS0gIGNhbm5vdCBiZSBkaXN0aW5ndWlzaGVk IGZyb20gb3RoZXIgdHlwZXMgb2YgdmFsdWVzLCBhbmQgd2UgY291bnQKICAgLS0gIG9uIGFsbCBn ZW5lcmFsIHVzZSBmaWVsZHMgYmVpbmcgc2VsZiBkZXNjcmliaW5nLiBUbyBtYWtlIHRoaW5ncwog ICAtLSAgZWFzaWVyIGZvciBjbGllbnRzLCBub3RlIHRoYXQgd2UgcHJvdmlkZSBmdW5jdGlvbiBF bmRfTG9jYXRpb24sCiAgIC0tICBhbmQgcHJvY2VkdXJlIFNldF9FbmRfTG9jYXRpb24gdG8gYWxs b3cgYWNjZXNzIHRvIHRoZSBsb2dpY2FsCiAgIC0tICB2YWx1ZSAod2hpY2ggaXMgdGhlIFNvdXJj ZV9QdHIgdmFsdWUgZm9yIHRoZSBlbmQgdG9rZW4pLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgIC0tIFN5bnRhY3RpYyBOb2RlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAyLjMgIElkZW50aWZpZXIgLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgSURFTlRJRklFUiA6Oj0gSURFTlRJRklF Ul9MRVRURVIge1tVTkRFUkxJTkVdIExFVFRFUl9PUl9ESUdJVH0KICAgICAgLS0gIExFVFRFUl9P Ul9ESUdJVCA6Oj0gSURFTlRJRklFUl9MRVRURVIgfCBESUdJVAoKICAgICAgLS0gIEFuIElERU5U SUZJRVIgc2hhbGwgbm90IGJlIGEgcmVzZXJ2ZWQgd29yZAoKICAgICAgLS0gIEluIHRoZSBBZGEg Z3JhbW1hciBpZGVudGlmaWVycyBhcmUgdGhlIGJvdHRvbSBsZXZlbCB0b2tlbnMgd2hpY2gKICAg ICAgLS0gIGhhdmUgdmVyeSBmZXcgc2VtYW50aWNzLiBBY3R1YWwgcHJvZ3JhbSBpZGVudGlmaWVy cyBhcmUgZGlyZWN0CiAgICAgIC0tICBuYW1lcy4gSWYgd2Ugd2VyZSBiZWluZyAxMDAlIGhvbmVz dCB3aXRoIHRoZSBncmFtbWFyLCB0aGVuIHdlIHdvdWxkCiAgICAgIC0tICBoYXZlIGEgbm9kZSBj YWxsZWQgTl9EaXJlY3RfTmFtZSB3aGljaCB3b3VsZCBwb2ludCB0byBhbiBpZGVudGlmaWVyLgog ICAgICAtLSAgSG93ZXZlciwgdGhhdCdzIHRvbyBtYW55IGV4dHJhIG5vZGVzLCBzbyB3ZSBqdXN0 IHVzZSB0aGUgTl9JZGVudGlmaWVyCiAgICAgIC0tICBub2RlIGRpcmVjdGx5IGFzIGEgZGlyZWN0 IG5hbWUsIGFuZCBpdCBjb250YWlucyB0aGUgZXhwcmVzc2lvbiBmaWVsZHMKICAgICAgLS0gIGFu ZCBFbnRpdHkgZmllbGQgdGhhdCBjb3JyZXNwb25kIHRvIGl0cyB1c2UgYXMgYSBkaXJlY3QgbmFt ZS4gSW4KICAgICAgLS0gIHRob3NlIGZldyBjYXNlcyB3aGVyZSBpZGVudGlmaWVycyBhcHBlYXIg aW4gY29udGV4dHMgd2hlcmUgdGhleSBhcmUKICAgICAgLS0gIG5vdCBkaXJlY3QgbmFtZXMgKHBy YWdtYXMsIHByYWdtYSBhcmd1bWVudCBhc3NvY2lhdGlvbnMsIGF0dHJpYnV0ZQogICAgICAtLSAg cmVmZXJlbmNlcyBhbmQgYXR0cmlidXRlIGRlZmluaXRpb24gY2xhdXNlcyksIHRoZSBDaGFycyBm aWVsZCBvZiB0aGUKICAgICAgLS0gIG5vZGUgY29udGFpbnMgdGhlIE5hbWVfSWQgZm9yIHRoZSBp ZGVudGlmaWVyIG5hbWUuCgogICAgICAtLSAgTm90ZTogaW4gR05BVCwgYSByZXNlcnZlZCB3b3Jk IGNhbiBiZSB0cmVhdGVkIGFzIGFuIGlkZW50aWZpZXIKICAgICAgLS0gIGluIHR3byBjYXNlcy4g Rmlyc3QsIGFuIGluY29ycmVjdCB1c2Ugb2YgYSByZXNlcnZlZCB3b3JkIGFzIGFuCiAgICAgIC0t ICBpZGVudGlmaWVyIGlzIGRpYWdub3NlZCBhbmQgdGhlbiB0cmVhdGVkIGFzIGEgbm9ybWFsIGlk ZW50aWZpZXIuCiAgICAgIC0tICBTZWNvbmQsIGFuIGF0dHJpYnV0ZSBkZXNpZ25hdG9yIG9mIHRo ZSBmb3JtIG9mIGEgcmVzZXJ2ZWQgd29yZAogICAgICAtLSAgKGFjY2VzcywgZGVsdGEsIGRpZ2l0 cywgcmFuZ2UpIGlzIHRyZWF0ZWQgYXMgYW4gaWRlbnRpZmllci4KCiAgICAgIC0tICBOb3RlOiBU aGUgc2V0IG9mIGxldHRlcnMgdGhhdCBpcyBwZXJtaXR0ZWQgaW4gYW4gaWRlbnRpZmllciBkZXBl bmRzCiAgICAgIC0tICBvbiB0aGUgY2hhcmFjdGVyIHNldCBpbiB1c2UuIFNlZSBwYWNrYWdlIENz ZXRzIGZvciBmdWxsIGRldGFpbHMuCgogICAgICAtLSAgTl9JZGVudGlmaWVyCiAgICAgIC0tICBT bG9jIHBvaW50cyB0byBpZGVudGlmaWVyCiAgICAgIC0tICBDaGFycyAoTmFtZTEpIGNvbnRhaW5z IHRoZSBOYW1lX0lkIGZvciB0aGUgaWRlbnRpZmllcgogICAgICAtLSAgRW50aXR5IChOb2RlNC1T ZW0pCiAgICAgIC0tICBBc3NvY2lhdGVkX05vZGUgKE5vZGU0LVNlbSkKICAgICAgLS0gIE9yaWdp bmFsX0Rpc2NyaW1pbmFudCAoTm9kZTItU2VtKQogICAgICAtLSAgUmVkdW5kYW50X1VzZSAoRmxh ZzEzLVNlbSkKICAgICAgLS0gIEhhc19Qcml2YXRlX1ZpZXcgKEZsYWcxMS1TZW0pIChzZXQgaW4g Z2VuZXJpYyB1bml0cykKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAyLjQgIE51bWVyaWMgTGl0ZXJh bCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIE5VTUVSSUNf TElURVJBTCA6Oj0gREVDSU1BTF9MSVRFUkFMIHwgQkFTRURfTElURVJBTAoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAyLjQuMSAgRGVjaW1hbCBMaXRlcmFsIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBERUNJTUFMX0xJ VEVSQUwgOjo9IE5VTUVSQUwgWy5OVU1FUkFMXSBbRVhQT05FTlRdCgogICAgICAtLSAgTlVNRVJB TCA6Oj0gRElHSVQge1tVTkRFUkxJTkVdIERJR0lUfQoKICAgICAgLS0gIEVYUE9ORU5UIDo6PSBF IFsrXSBOVU1FUkFMIHwgRSAtIE5VTUVSQUwKCiAgICAgIC0tICBEZWNpbWFsIGxpdGVyYWxzIGFw cGVhciBpbiB0aGUgdHJlZSBhcyBlaXRoZXIgaW50ZWdlciBsaXRlcmFsIG5vZGVzCiAgICAgIC0t ICBvciByZWFsIGxpdGVyYWwgbm9kZXMsIGRlcGVuZGluZyBvbiB3aGV0aGVyIGEgcGVyaW9kIGlz IHByZXNlbnQuCgogICAgICAtLSAgTm90ZTogbGl0ZXJhbCBub2RlcyBhcHBlYXIgYXMgYSByZXN1 bHQgb2YgZGlyZWN0IHVzZSBvZiBsaXRlcmFscwogICAgICAtLSAgaW4gdGhlIHNvdXJjZSBwcm9n cmFtLCBhbmQgYWxzbyBhcyB0aGUgcmVzdWx0IG9mIGV2YWx1YXRpbmcKICAgICAgLS0gIGV4cHJl c3Npb25zIGF0IGNvbXBpbGUgdGltZS4gSW4gdGhlIGxhdHRlciBjYXNlLCBpdCBpcyBwb3NzaWJs ZQogICAgICAtLSAgdG8gY29uc3RydWN0IHJlYWwgbGl0ZXJhbHMgdGhhdCBoYXZlIG5vIHN5bnRh Y3RpYyByZXByZXNlbnRhdGlvbgogICAgICAtLSAgdXNpbmcgdGhlIHN0YW5kYXJkIGxpdGVyYWwg Zm9ybWF0LiBTdWNoIGxpdGVyYWxzIGFyZSBsaXN0ZWQgYnkKICAgICAgLS0gIFNwcmludCB1c2lu ZyB0aGUgbm90YXRpb24gW251bWVyYXRvciAvIGRlbm9taW5hdG9yXS4KCiAgICAgIC0tICBOX0lu dGVnZXJfTGl0ZXJhbAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gbGl0ZXJhbAogICAgICAtLSAg SW50dmFsIChVaW50MykgY29udGFpbnMgaW50ZWdlciB2YWx1ZSBvZiBsaXRlcmFsCiAgICAgIC0t ICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgogICAgICAtLSAgUHJpbnRfSW5fSGV4IChGbGFn MTMtU2VtKQoKICAgICAgLS0gIE5fUmVhbF9MaXRlcmFsCiAgICAgIC0tICBTbG9jIHBvaW50cyB0 byBsaXRlcmFsCiAgICAgIC0tICBSZWFsdmFsIChVcmVhbDMpIGNvbnRhaW5zIHJlYWwgdmFsdWUg b2YgbGl0ZXJhbAogICAgICAtLSAgQ29ycmVzcG9uZGluZ19JbnRlZ2VyX1ZhbHVlIChVaW50NC1T ZW0pCiAgICAgIC0tICBJc19NYWNoaW5lX051bWJlciAoRmxhZzExLVNlbSkKICAgICAgLS0gIHBs dXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSAyLjQuMiAgQmFzZWQgTGl0ZXJhbCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIEJBU0VEX0xJVEVSQUwgOjo9CiAgICAgIC0tICAgQkFTRSAj IEJBU0VEX05VTUVSQUwgWy5CQVNFRF9OVU1FUkFMXSAjIFtFWFBPTkVOVF0KCiAgICAgIC0tICBC QVNFIDo6PSBOVU1FUkFMCgogICAgICAtLSAgQkFTRURfTlVNRVJBTCA6Oj0KICAgICAgLS0gICAg RVhURU5ERURfRElHSVQge1tVTkRFUkxJTkVdIEVYVEVOREVEX0RJR0lUfQoKICAgICAgLS0gIEVY VEVOREVEX0RJR0lUIDo6PSBESUdJVCB8IEEgfCBCIHwgQyB8IEQgfCBFIHwgRgoKICAgICAgLS0g IEJhc2VkIGxpdGVyYWxzIGFwcGVhciBpbiB0aGUgdHJlZSBhcyBlaXRoZXIgaW50ZWdlciBsaXRl cmFsIG5vZGVzCiAgICAgIC0tICBvciByZWFsIGxpdGVyYWwgbm9kZXMsIGRlcGVuZGluZyBvbiB3 aGV0aGVyIGEgcGVyaW9kIGlzIHByZXNlbnQuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICAgIC0tIDIuNSAgQ2hhcmFjdGVyIExpdGVyYWwgLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIENIQVJBQ1RFUl9MSVRFUkFMIDo6PSAnIEdS QVBISUNfQ0hBUkFDVEVSICcKCiAgICAgIC0tICBOX0NoYXJhY3Rlcl9MaXRlcmFsCiAgICAgIC0t ICBTbG9jIHBvaW50cyB0byBsaXRlcmFsCiAgICAgIC0tICBDaGFycyAoTmFtZTEpIGNvbnRhaW5z IHRoZSBOYW1lX0lkIGZvciB0aGUgaWRlbnRpZmllcgogICAgICAtLSAgQ2hhcl9MaXRlcmFsX1Zh bHVlIChDaGFyX0NvZGUyKSBjb250YWlucyB0aGUgbGl0ZXJhbCB2YWx1ZQogICAgICAtLSAgRW50 aXR5IChOb2RlNC1TZW0pCiAgICAgIC0tICBBc3NvY2lhdGVkX05vZGUgKE5vZGU0LVNlbSkKICAg ICAgLS0gIEhhc19Qcml2YXRlX1ZpZXcgKEZsYWcxMS1TZW0pIHNldCBpbiBnZW5lcmljIHVuaXRz LgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBOb3RlOiB0 aGUgRW50aXR5IGZpZWxkIHdpbGwgYmUgbWlzc2luZyAoYW5kIHNldCB0byBFbXB0eSkgZm9yCiAg ICAgIC0tICBjaGFyYWN0ZXIgbGl0ZXJhbHMgd2hvc2UgdHlwZSBpcyBTdGFuZGFyZC5XaWRlX0No YXJhY3RlciBvcgogICAgICAtLSAgU3RhbmRhcmQuQ2hhcmFjdGVyIG9yIGEgdHlwZSBkZXJpdmVk IGZyb20gb25lIG9mIHRoZXNlIHR3by4KICAgICAgLS0gIEluIHRoaXMgY2FzZSB0aGUgY2hhcmFj dGVyIGxpdGVyYWwgc3RhbmRzIGZvciBpdHMgb3duIGNvZGluZy4KICAgICAgLS0gIFRoZSByZWFz b24gd2UgdGFrZSB0aGlzIGlycmVndWxhciBzaG9ydCBjdXQgaXMgdG8gYXZvaWQgdGhlCiAgICAg IC0tICBuZWVkIHRvIGJ1aWxkIGxvdHMgb2YganVuayBkZWZpbmluZyBjaGFyYWN0ZXIgbGl0ZXJh bCBub2Rlcy4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMi42ICBT dHJpbmcgTGl0ZXJhbCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgU1RSSU5HIExJVEVSQUwgOjo9ICJ7U1RSSU5HX0VMRU1FTlR9IgoKICAgICAgLS0gIEEgU1RS SU5HX0VMRU1FTlQgaXMgZWl0aGVyIGEgcGFpciBvZiBxdW90YXRpb24gbWFya3MgKCIpLCBvciBh CiAgICAgIC0tICBzaW5nbGUgR1JBUEhJQ19DSEFSQUNURVIgb3RoZXIgdGhhbiBhIHF1b3RhdGlv biBtYXJrLgoKICAgICAgLS0gIE5fU3RyaW5nX0xpdGVyYWwKICAgICAgLS0gIFNsb2MgcG9pbnRz IHRvIGxpdGVyYWwKICAgICAgLS0gIFN0cnZhbCAoU3RyMykgY29udGFpbnMgSWQgb2Ygc3RyaW5n IHZhbHVlCiAgICAgIC0tICBIYXNfV2lkZV9DaGFyYWN0ZXIgKEZsYWcxMS1TZW0pCiAgICAgIC0t ICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICAgIC0tIDIuNyAgQ29tbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0t ICBBIENPTU1FTlQgc3RhcnRzIHdpdGggdHdvIGFkamFjZW50IGh5cGhlbnMgYW5kIGV4dGVuZHMg dXAgdG8gdGhlCiAgICAgIC0tICBlbmQgb2YgdGhlIGxpbmUuIEEgQ09NTUVOVCBtYXkgYXBwZWFy IG9uIGFueSBsaW5lIG9mIGEgcHJvZ3JhbS4KCiAgICAgIC0tICBDb21tZW50cyBhcmUgc2tpcHBl ZCBieSB0aGUgc2Nhbm5lciBhbmQgZG8gbm90IGFwcGVhciBpbiB0aGUgdHJlZS4KICAgICAgLS0g IEl0IGlzIHBvc3NpYmxlIHRvIHJlY29uc3RydWN0IHRoZSBwb3NpdGlvbiBvZiBjb21tZW50cyB3 aXRoIHJlc3BlY3QKICAgICAgLS0gIHRvIHRoZSBlbGVtZW50cyBvZiB0aGUgdHJlZSBieSB1c2lu ZyB0aGUgc291cmNlIHBvc2l0aW9uIChTbG9jKQogICAgICAtLSAgcG9pbnRlcnMgdGhhdCBhcHBl YXIgaW4gZXZlcnkgdHJlZSBub2RlLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0g Mi44ICBQcmFnbWEgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUkFHTUEg Ojo9IHByYWdtYSBJREVOVElGSUVSCiAgICAgIC0tICAgIFsoUFJBR01BX0FSR1VNRU5UX0FTU09D SUFUSU9OIHssIFBSQUdNQV9BUkdVTUVOVF9BU1NPQ0lBVElPTn0pXTsKCiAgICAgIC0tICBOb3Rl IHRoYXQgYSBwcmFnbWEgbWF5IGFwcGVhciBpbiB0aGUgdHJlZSBhbnl3aGVyZSBhIGRlY2xhcmF0 aW9uCiAgICAgIC0tICBvciBhIHN0YXRlbWVudCBtYXkgYXBwZWFyLCBhcyB3ZWxsIGFzIGluIHNv bWUgb3RoZXIgc2l0dWF0aW9ucwogICAgICAtLSAgd2hpY2ggYXJlIGV4cGxpY2l0bHkgZG9jdW1l bnRlZC4KCiAgICAgIC0tICBOX1ByYWdtYQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUFJBR01B CiAgICAgIC0tICBDaGFycyAoTmFtZTEpIGlkZW50aWZpZXIgbmFtZSBmcm9tIHByYWdtYSBpZGVu dGlmaWVyCiAgICAgIC0tICBQcmFnbWFfQXJndW1lbnRfQXNzb2NpYXRpb25zIChMaXN0MikgKHNl dCB0byBOb19MaXN0IGlmIG5vbmUpCiAgICAgIC0tICBEZWJ1Z19TdGF0ZW1lbnQgKE5vZGUzKSAo c2V0IHRvIEVtcHR5IGlmIG5vdCBEZWJ1ZywgQXNzZXJ0KQogICAgICAtLSAgTmV4dF9SZXBfSXRl bSAoTm9kZTQtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gMi44ICBQcmFnbWEgQXJndW1lbnQgQXNzb2NpYXRpb24gLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUkFHTUFfQVJH VU1FTlRfQVNTT0NJQVRJT04gOjo9CiAgICAgIC0tICAgIFtwcmFnbWFfYXJndW1lbnRfSURFTlRJ RklFUiA9Pl0gTkFNRQogICAgICAtLSAgfCBbcHJhZ21hX2FyZ3VtZW50X0lERU5USUZJRVIgPT5d IEVYUFJFU1NJT04KCiAgICAgIC0tICBOX1ByYWdtYV9Bcmd1bWVudF9Bc3NvY2lhdGlvbgogICAg ICAtLSAgU2xvYyBwb2ludHMgdG8gZmlyc3QgdG9rZW4gaW4gYXNzb2NpYXRpb24KICAgICAgLS0g IENoYXJzIChOYW1lMSkgKHNldCB0byBOb19OYW1lIGlmIG5vIHByYWdtYSBhcmd1bWVudCBpZGVu dGlmaWVyKQogICAgICAtLSAgRXhwcmVzc2lvbiAoTm9kZTMpCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gMi45ICBSZXNlcnZlZCBXb3JkIC0tCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFJlc2VydmVkIHdvcmRzIGFyZSBwYXJzZWQgYnkg dGhlIHNjYW5uZXIsIGFuZCByZXR1cm5lZCBhcyB0aGUKICAgICAgLS0gIGNvcnJlc3BvbmRpbmcg dG9rZW4gdHlwZXMgKGUuZy4gUEFDS0FHRSBpcyByZXR1cm5lZCBhcyBUb2tfUGFja2FnZSkKCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy4xICBCYXNpYyBEZWNs YXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAg QkFTSUNfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIFRZUEVfREVDTEFSQVRJT04gICAgICAg ICAgfCBTVUJUWVBFX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IE9CSkVDVF9ERUNMQVJBVElPTiAg ICAgICAgfCBOVU1CRVJfREVDTEFSQVRJT04KICAgICAgLS0gIHwgU1VCUFJPR1JBTV9ERUNMQVJB VElPTiAgICB8IEFCU1RSQUNUX1NVQlBST0dSQU1fREVDTEFSQVRJT04KICAgICAgLS0gIHwgUEFD S0FHRV9ERUNMQVJBVElPTiAgICAgICB8IFJFTkFNSU5HX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8 IEVYQ0VQVElPTl9ERUNMQVJBVElPTiAgICAgfCBHRU5FUklDX0RFQ0xBUkFUSU9OCiAgICAgIC0t ICB8IEdFTkVSSUNfSU5TVEFOVElBVElPTgoKICAgICAgLS0gIEJhc2ljIGRlY2xhcmF0aW9uIGFs c28gaW5jbHVkZXMgSU1QTElDSVRfTEFCRUxfREVDTEFSQVRJT04KICAgICAgLS0gIHNlZSBmdXJ0 aGVyIGRlc2NyaXB0aW9uIGluIHNlY3Rpb24gb24gc2VtYW50aWMgbm9kZXMuCgogICAgICAtLSAg QWxzbywgaW4gdGhlIHRyZWUgdGhhdCBpcyBjb25zdHJ1Y3RlZCwgYSBwcmFnbWEgbWF5IGFwcGVh cgogICAgICAtLSAgYW55d2hlcmUgdGhhdCBhIGRlY2xhcmF0aW9uIG1heSBhcHBlYXIuCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy4xICBEZWZpbmluZyBJ ZGVudGlmaWVyIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAg LS0gIERFRklOSU5HX0lERU5USUZJRVIgOjo9IElERU5USUZJRVIKCiAgICAgIC0tICBBIGRlZmlu aW5nIGlkZW50aWZpZXIgaXMgYW4gZW50aXR5LCB3aGljaCBoYXMgYWRkaXRpb25hbCBmaWVsZHMK ICAgICAgLS0gIGRlcGVuZGluZyBvbiB0aGUgc2V0dGluZyBvZiB0aGUgRWtpbmQgZmllbGQuIFRo ZXNlIGFkZGl0aW9uYWwKICAgICAgLS0gIGZpZWxkcyBhcmUgZGVmaW5lZCAoYW5kIGFjY2VzcyBz dWJwcm9ncmFtcyBkZWNsYXJlZCkgaW4gcGFja2FnZQogICAgICAtLSAgRWluZm8uCgogICAgICAt LSAgTm90ZTogTl9EZWZpbmluZ19JZGVudGlmaWVyIGlzIGFuIGV4dGVuZGVkIG5vZGUgd2hvc2Ug ZmllbGRzIGFyZQogICAgICAtLSAgZGVsaWJlcmF0ZSBsYXllZCBvdXQgdG8gbWF0Y2ggdGhlIGxh eW91dCBvZiBmaWVsZHMgaW4gYW4gb3JkaW5hcnkKICAgICAgLS0gIE5fSWRlbnRpZmllciBub2Rl IGFsbG93aW5nIGZvciBlYXN5IGFsdGVyYXRpb24gb2YgYW4gaWRlbnRpZmllcgogICAgICAtLSAg bm9kZSBpbnRvIGEgZGVmaW5pbmcgaWRlbnRpZmllciBub2RlLiBGb3IgZGV0YWlscywgc2VlIHBy b2NlZHVyZQogICAgICAtLSAgU2luZm8uQ04uQ2hhbmdlX0lkZW50aWZpZXJfVG9fRGVmaW5pbmdf SWRlbnRpZmllci4KCiAgICAgIC0tICBOX0RlZmluaW5nX0lkZW50aWZpZXIKICAgICAgLS0gIFNs b2MgcG9pbnRzIHRvIGlkZW50aWZpZXIKICAgICAgLS0gIENoYXJzIChOYW1lMSkgY29udGFpbnMg dGhlIE5hbWVfSWQgZm9yIHRoZSBpZGVudGlmaWVyCiAgICAgIC0tICBOZXh0X0VudGl0eSAoTm9k ZTItU2VtKQogICAgICAtLSAgU2NvcGUgKE5vZGUzLVNlbSkKICAgICAgLS0gIEV0eXBlIChOb2Rl NS1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjIu MSAgVHlwZSBEZWNsYXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIFRZUEVfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIEZVTExfVFlQRV9E RUNMQVJBVElPTgogICAgICAtLSAgfCBJTkNPTVBMRVRFX1RZUEVfREVDTEFSQVRJT04KICAgICAg LS0gIHwgUFJJVkFURV9UWVBFX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IFBSSVZBVEVfRVhURU5T SU9OX0RFQ0xBUkFUSU9OCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDMuMi4xICBGdWxsIFR5cGUgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZVTExfVFlQRV9ERUNMQVJBVElP TiA6Oj0KICAgICAgLS0gICAgdHlwZSBERUZJTklOR19JREVOVElGSUVSIFtLTk9XTl9ESVNDUklN SU5BTlRfUEFSVF0KICAgICAgLS0gICAgICBpcyBUWVBFX0RFRklOSVRJT047CiAgICAgIC0tICB8 IFRBU0tfVFlQRV9ERUNMQVJBVElPTgogICAgICAtLSAgfCBQUk9URUNURURfVFlQRV9ERUNMQVJB VElPTgoKICAgICAgLS0gIFRoZSBmdWxsIHR5cGUgZGVjbGFyYXRpb24gbm9kZSBpcyB1c2VkIG9u bHkgZm9yIHRoZSBmaXJzdCBjYXNlLiBUaGUKICAgICAgLS0gIHNlY29uZCBjYXNlIChjb25jdXJy ZW50IHR5cGUgZGVjbGFyYXRpb24pLCBpcyByZXByZXNlbnRlZCBkaXJlY3RseQogICAgICAtLSAg YnkgYSB0YXNrIHR5cGUgZGVjbGFyYXRpb24gb3IgYSBwcm90ZWN0ZWQgdHlwZSBkZWNsYXJhdGlv bi4KCiAgICAgIC0tICBOX0Z1bGxfVHlwZV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gVFlQRQogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0t ICBEaXNjcmltaW5hbnRfU3BlY2lmaWNhdGlvbnMgKExpc3Q0KSAoc2V0IHRvIE5vX0xpc3QgaWYg bm9uZSkKICAgICAgLS0gIFR5cGVfRGVmaW5pdGlvbiAoTm9kZTMpCiAgICAgIC0tICBEaXNjcl9D aGVja19GdW5jc19CdWlsdCAoRmxhZzExLVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gMy4yLjEgIFR5cGUgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVFlQRV9ERUZJTklUSU9OIDo6PQogICAg ICAtLSAgICBFTlVNRVJBVElPTl9UWVBFX0RFRklOSVRJT04gIHwgSU5URUdFUl9UWVBFX0RFRklO SVRJT04KICAgICAgLS0gIHwgUkVBTF9UWVBFX0RFRklOSVRJT04gICAgICAgICB8IEFSUkFZX1RZ UEVfREVGSU5JVElPTgogICAgICAtLSAgfCBSRUNPUkRfVFlQRV9ERUZJTklUSU9OICAgICAgIHwg QUNDRVNTX1RZUEVfREVGSU5JVElPTgogICAgICAtLSAgfCBERVJJVkVEX1RZUEVfREVGSU5JVElP TgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy4yLjIg IFN1YnR5cGUgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgICAgIC0tICBTVUJUWVBFX0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICBzdWJ0 eXBlIERFRklOSU5HX0lERU5USUZJRVIgaXMgU1VCVFlQRV9JTkRJQ0FUSU9OOwoKICAgICAgLS0g IFRoZSBzdWJ0eXBlIGluZGljYXRpb24gZmllbGQgaXMgc2V0IHRvIEVtcHR5IGZvciBzdWJ0eXBl cwogICAgICAtLSAgZGVjbGFyZWQgaW4gcGFja2FnZSBTdGFuZGFyZCAoUG9zaXRpdmUsIE5hdHVy YWwpLgoKICAgICAgLS0gIE5fU3VidHlwZV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gU1VCVFlQRQogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAg IC0tICBTdWJ0eXBlX0luZGljYXRpb24gKE5vZGU1KQogICAgICAtLSAgR2VuZXJpY19QYXJlbnRf VHlwZSAoTm9kZTQtU2VtKSAoc2V0IGZvciBhbiBhY3R1YWwgZGVyaXZlZCB0eXBlKS4KICAgICAg LS0gIEV4Y2VwdGlvbl9KdW5rIChGbGFnMTEtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjIuMiAgU3VidHlwZSBJbmRpY2F0aW9uIC0tCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBTVUJUWVBFX0lORElD QVRJT04gOjo9IFNVQlRZUEVfTUFSSyBbQ09OU1RSQUlOVF0KCiAgICAgIC0tICBOb3RlOiBpZiBu byBjb25zdHJhaW50IGlzIHByZXNlbnQsIHRoZSBzdWJ0eXBlIGluZGljYXRpb24gYXBwZWFycwog ICAgICAtLSAgZGlyZWN0bHkgaW4gdGhlIHRyZWUgYXMgYSBzdWJ0eXBlIG1hcmsuIFRoZSBOX1N1 YnR5cGVfSW5kaWNhdGlvbgogICAgICAtLSAgbm9kZSBpcyB1c2VkIG9ubHkgaWYgYSBjb25zdHJh aW50IGlzIHByZXNlbnQuCgogICAgICAtLSAgTm90ZTogdGhlIHJlYXNvbiB0aGF0IHRoaXMgbm9k ZSBoYXMgZXhwcmVzc2lvbiBmaWVsZHMgaXMgdGhhdCBhCiAgICAgIC0tICBzdWJ0eXBlIGluZGlj YXRpb24gY2FuIGFwcGVhciBhcyBhbiBvcGVyYW5kIG9mIGEgbWVtYmVyc2hpcCB0ZXN0LgoKICAg ICAgLS0gIE5fU3VidHlwZV9JbmRpY2F0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJz dCB0b2tlbiBvZiBzdWJ0eXBlIG1hcmsKICAgICAgLS0gIFN1YnR5cGVfTWFyayAoTm9kZTQpCiAg ICAgIC0tICBDb25zdHJhaW50IChOb2RlMykKICAgICAgLS0gIEV0eXBlIChOb2RlNS1TZW0pCiAg ICAgIC0tICBNdXN0X05vdF9GcmVlemUgKEZsYWc4LVNlbSkKCiAgICAgIC0tICBOb3RlOiBFdHlw ZSBpcyBhIGNvcHkgb2YgdGhlIEV0eXBlIGZpZWxkIG9mIHRoZSBTdWJ0eXBlX01hcmsuIFRoZQog ICAgICAtLSAgcmVhc29uIGZvciB0aGlzIHJlZHVuZGFuY3kgaXMgc28gdGhhdCBpbiBhIGxpc3Qg b2YgYXJyYXkgaW5kZXggdHlwZXMsCiAgICAgIC0tICB0aGUgRXR5cGUgY2FuIGJlIHVuaWZvcm1s eSBhY2Nlc3NlZCB0byBkZXRlcm1pbmUgdGhlIHN1YnNjcmlwdCB0eXBlLgogICAgICAtLSAgVGhp cyBtZWFucyB0aGF0IG5vIEl0eXBlIGlzIGNvbnN0cnVjdGVkIGZvciB0aGUgYWN0dWFsIHN1YnR5 cGUgdGhhdAogICAgICAtLSAgaXMgY3JlYXRlZCBieSB0aGUgc3VidHlwZSBpbmRpY2F0aW9uLiBJ ZiBzdWNoIGFuIEl0eXBlIGlzIHJlcXVpcmVkLAogICAgICAtLSAgaXQgaXMgY29uc3RydWN0ZWQg aW4gdGhlIGNvbnRleHQgaW4gd2hpY2ggdGhlIGluZGljYXRpb24gYXBwZWFycy4KCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy4yLjIgIFN1YnR5cGUgTWFyayAtLQog ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU1VCVFlQRV9NQVJLIDo6 PSBzdWJ0eXBlX05BTUUKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMu Mi4yICBDb25zdHJhaW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgQ09OU1RSQUlOVCA6Oj0gU0NBTEFSX0NPTlNUUkFJTlQgfCBDT01QT1NJVEVfQ09OU1RSQUlO VAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuMi4yICBT Y2FsYXIgQ29uc3RyYWludCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBTQ0FMQVJfQ09OU1RSQUlOVCA6Oj0KICAgICAgLS0gICAgUkFOR0VfQ09OU1RS QUlOVCB8IERJR0lUU19DT05TVFJBSU5UIHwgREVMVEFfQ09OU1RSQUlOVAoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuMi4yICBDb21wb3NpdGUgQ29u c3RyYWludCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAg IC0tICBDT01QT1NJVEVfQ09OU1RSQUlOVCA6Oj0KICAgICAgLS0gICAgSU5ERVhfQ09OU1RSQUlO VCB8IERJU0NSSU1JTkFOVF9DT05TVFJBSU5UCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDMuMy4xICBPYmplY3QgRGVjbGFyYXRpb24gLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIE9CSkVDVF9ERUNMQVJBVElP TiA6Oj0KICAgICAgLS0gICAgREVGSU5JTkdfSURFTlRJRklFUl9MSVNUIDogW2FsaWFzZWRdIFtj b25zdGFudF0KICAgICAgLS0gICAgICBTVUJUWVBFX0lORElDQVRJT04gWzo9IEVYUFJFU1NJT05d OwogICAgICAtLSAgfCBERUZJTklOR19JREVOVElGSUVSX0xJU1QgOiBbYWxpYXNlZF0gW2NvbnN0 YW50XQogICAgICAtLSAgICAgIEFSUkFZX1RZUEVfREVGSU5JVElPTiBbOj0gRVhQUkVTU0lPTl07 CiAgICAgIC0tICB8IFNJTkdMRV9UQVNLX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IFNJTkdMRV9Q Uk9URUNURURfREVDTEFSQVRJT04KCiAgICAgIC0tICBOb3RlOiBhbGlhc2VkIGlzIG5vdCBwZXJt aXR0ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBUaGUgTl9PYmplY3RfRGVjbGFyYXRpb24g bm9kZSBpcyBvbmx5IGZvciB0aGUgZmlyc3QgdHdvIGNhc2VzLgogICAgICAtLSAgU2luZ2xlIHRh c2sgZGVjbGFyYXRpb24gaXMgaGFuZGxlZCBieSBQX1Rhc2sgKDkuMSkKICAgICAgLS0gIFNpbmds ZSBwcm90ZWN0ZWQgZGVjbGFyYXRpb24gaXMgaGFuZGxlZCBieSBQX3Byb3RlY3RlZCAoOS41KQoK ICAgICAgLS0gIEFsdGhvdWdoIHRoZSBzeW50YXggYWxsb3dzIG11bHRpcGxlIGlkZW50aWZpZXJz IGluIHRoZSBsaXN0LCB0aGUKICAgICAgLS0gIHNlbWFudGljcyBpcyBhcyB0aG91Z2ggc3VjY2Vz c2l2ZSBkZWNsYXJhdGlvbnMgd2VyZSBnaXZlbiB3aXRoCiAgICAgIC0tICBpZGVudGljYWwgdHlw ZSBkZWZpbml0aW9uIGFuZCBleHByZXNzaW9uIGNvbXBvbmVudHMuIFRvIHNpbXBsaWZ5CiAgICAg IC0tICBzZW1hbnRpYyBwcm9jZXNzaW5nLCB0aGUgcGFyc2VyIHJlcHJlc2VudHMgYSBtdWx0aXBs ZSBkZWNsYXJhdGlvbgogICAgICAtLSAgY2FzZSBhcyBhIHNlcXVlbmNlIG9mIHNpbmdsZSBkZWNs YXJhdGlvbnMsIHVzaW5nIHRoZSBNb3JlX0lkcyBhbmQKICAgICAgLS0gIFByZXZfSWRzIGZsYWdz IHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBzb3VyY2UgZm9ybSBhcyBkZXNjcmliZWQKICAgICAg LS0gIGluIHRoZSBzZWN0aW9uIG9uICJIYW5kbGluZyBvZiBEZWZpbmluZyBJZGVudGlmaWVyIExp c3RzIi4KCiAgICAgIC0tICBOb3RlOiBpZiBhIHJhbmdlIGNoZWNrIGlzIHJlcXVpcmVkIGZvciB0 aGUgaW5pdGlhbGl6YXRpb24KICAgICAgLS0gIGV4cHJlc3Npb24gdGhlbiB0aGUgRG9fUmFuZ2Vf Q2hlY2sgZmxhZyBpcyBzZXQgaW4gdGhlIEV4cHJlc3Npb24sCiAgICAgIC0tICB3aXRoIHRoZSBj aGVjayBiZWluZyBkb25lIGFnYWluc3QgdGhlIHR5cGUgZ2l2ZW4gYnkgdGhlIG9iamVjdAogICAg ICAtLSAgZGVmaW5pdGlvbiwgd2hpY2ggaXMgYWxzbyB0aGUgRXR5cGUgb2YgdGhlIGRlZmluaW5n IGlkZW50aWZpZXIuCgogICAgICAtLSAgTm90ZTogdGhlIGNvbnRlbnRzIG9mIHRoZSBFeHByZXNz aW9uIGZpZWxkIG11c3QgYmUgaWdub3JlZCAoaS5lLgogICAgICAtLSAgdHJlYXRlZCBhcyB0aG91 Z2ggaXQgd2VyZSBFbXB0eSkgaWYgTm9fSW5pdGlhbGl6YXRpb24gaXMgc2V0IFRydWUuCgogICAg ICAtLSAgTl9PYmplY3RfRGVjbGFyYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0 IGlkZW50aWZpZXIKICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAt LSAgQWxpYXNlZF9QcmVzZW50IChGbGFnNCkgc2V0IGlmIEFMSUFTRUQgYXBwZWFycwogICAgICAt LSAgQ29uc3RhbnRfUHJlc2VudCAoRmxhZzE3KSBzZXQgaWYgQ09OU1RBTlQgYXBwZWFycwogICAg ICAtLSAgT2JqZWN0X0RlZmluaXRpb24gKE5vZGU0KSBzdWJ0eXBlIGluZGljYXRpb24vYXJyYXkg dHlwZSBkZWZpbml0aW9uCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykgKHNldCB0byBFbXB0 eSBpZiBub3QgcHJlc2VudCkKICAgICAgLS0gIEhhbmRsZXJfTGlzdF9FbnRyeSAoTm9kZTItU2Vt KQogICAgICAtLSAgQ29ycmVzcG9uZGluZ19HZW5lcmljX0Fzc29jaWF0aW9uIChOb2RlNS1TZW0p CiAgICAgIC0tICBNb3JlX0lkcyAoRmxhZzUpIChzZXQgdG8gRmFsc2UgaWYgbm8gbW9yZSBpZGVu dGlmaWVycyBpbiBsaXN0KQogICAgICAtLSAgUHJldl9JZHMgKEZsYWc2KSAoc2V0IHRvIEZhbHNl IGlmIG5vIHByZXZpb3VzIGlkZW50aWZpZXJzIGluIGxpc3QpCiAgICAgIC0tICBOb19Jbml0aWFs aXphdGlvbiAoRmxhZzEzLVNlbSkKICAgICAgLS0gIEFzc2lnbm1lbnRfT0sgKEZsYWcxNS1TZW0p CiAgICAgIC0tICBFeGNlcHRpb25fSnVuayAoRmxhZzExLVNlbSkKICAgICAgLS0gIERlbGF5X0Zp bmFsaXplX0F0dGFjaCAoRmxhZzE0LVNlbSkKICAgICAgLS0gIElzX1N1YnByb2dyYW1fRGVzY3Jp cHRvciAoRmxhZzE2LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgICAgLS0gMy4zLjEgIERlZmluaW5nIElkZW50aWZpZXIgTGlzdCAtLQogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgREVGSU5JTkdf SURFTlRJRklFUl9MSVNUIDo6PQogICAgICAtLSAgICBERUZJTklOR19JREVOVElGSUVSIHssIERF RklOSU5HX0lERU5USUZJRVJ9CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDMuMy4yICBOdW1iZXIgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIE5VTUJFUl9ERUNMQVJBVElPTiA6Oj0KICAg ICAgLS0gICAgREVGSU5JTkdfSURFTlRJRklFUl9MSVNUIDogY29uc3RhbnQgOj0gc3RhdGljX0VY UFJFU1NJT047CgogICAgICAtLSAgQWx0aG91Z2ggdGhlIHN5bnRheCBhbGxvd3MgbXVsdGlwbGUg aWRlbnRpZmllcnMgaW4gdGhlIGxpc3QsIHRoZQogICAgICAtLSAgc2VtYW50aWNzIGlzIGFzIHRo b3VnaCBzdWNjZXNzaXZlIGRlY2xhcmF0aW9ucyB3ZXJlIGdpdmVuIHdpdGgKICAgICAgLS0gIGlk ZW50aWNhbCBleHByZXNzaW9ucy4gVG8gc2ltcGxpZnkgc2VtYW50aWMgcHJvY2Vzc2luZywgdGhl IHBhcnNlcgogICAgICAtLSAgcmVwcmVzZW50cyBhIG11bHRpcGxlIGRlY2xhcmF0aW9uIGNhc2Ug YXMgYSBzZXF1ZW5jZSBvZiBzaW5nbGUKICAgICAgLS0gIGRlY2xhcmF0aW9ucywgdXNpbmcgdGhl IE1vcmVfSWRzIGFuZCBQcmV2X0lkcyBmbGFncyB0byBwcmVzZXJ2ZQogICAgICAtLSAgdGhlIG9y aWdpbmFsIHNvdXJjZSBmb3JtIGFzIGRlc2NyaWJlZCBpbiB0aGUgc2VjdGlvbiBvbiAiSGFuZGxp bmcKICAgICAgLS0gIG9mIERlZmluaW5nIElkZW50aWZpZXIgTGlzdHMiLgoKICAgICAgLS0gIE5f TnVtYmVyX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCBpZGVudGlm aWVyCiAgICAgIC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChOb2RlMSkKICAgICAgLS0gIEV4cHJl c3Npb24gKE5vZGUzKQogICAgICAtLSAgTW9yZV9JZHMgKEZsYWc1KSAoc2V0IHRvIEZhbHNlIGlm IG5vIG1vcmUgaWRlbnRpZmllcnMgaW4gbGlzdCkKICAgICAgLS0gIFByZXZfSWRzIChGbGFnNikg KHNldCB0byBGYWxzZSBpZiBubyBwcmV2aW91cyBpZGVudGlmaWVycyBpbiBsaXN0KQoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjQgIERlcml2ZWQg VHlwZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCiAgICAgIC0tICBERVJJVkVEX1RZUEVfREVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgW2Fi c3RyYWN0XSBuZXcgcGFyZW50X1NVQlRZUEVfSU5ESUNBVElPTiBbUkVDT1JEX0VYVEVOU0lPTl9Q QVJUXQoKICAgICAgLS0gIE5vdGU6IEFCU1RSQUNULCByZWNvcmQgZXh0ZW5zaW9uIHBhcnQgbm90 IHBlcm1pdHRlZCBpbiBBZGEgODMgbW9kZQoKICAgICAgLS0gIE5vdGU6IGEgcmVjb3JkIGV4dGVu c2lvbiBwYXJ0IGlzIHJlcXVpcmVkIGlmIEFCU1RSQUNUIGlzIHByZXNlbnQKCiAgICAgIC0tICBO X0Rlcml2ZWRfVHlwZV9EZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBORVcKICAg ICAgLS0gIEFic3RyYWN0X1ByZXNlbnQgKEZsYWc0KQogICAgICAtLSAgU3VidHlwZV9JbmRpY2F0 aW9uIChOb2RlNSkKICAgICAgLS0gIFJlY29yZF9FeHRlbnNpb25fUGFydCAoTm9kZTMpIChzZXQg dG8gRW1wdHkgaWYgbm90IHByZXNlbnQpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gMy41ICBSYW5nZSBDb25zdHJhaW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFJBTkdFX0NPTlNUUkFJTlQgOjo9IHJhbmdlIFJBTkdF CgogICAgICAtLSAgTl9SYW5nZV9Db25zdHJhaW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBS QU5HRQogICAgICAtLSAgUmFuZ2VfRXhwcmVzc2lvbiAoTm9kZTQpCgogICAgICAtLS0tLS0tLS0t LS0tLS0tCiAgICAgIC0tIDMuNSAgUmFuZ2UgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAg ICAgLS0gIFJBTkdFIDo6PQogICAgICAtLSAgICBSQU5HRV9BVFRSSUJVVEVfUkVGRVJFTkNFCiAg ICAgIC0tICB8IFNJTVBMRV9FWFBSRVNTSU9OIC4uIFNJTVBMRV9FWFBSRVNTSU9OCgogICAgICAt LSAgTm90ZTogdGhlIGNhc2Ugb2YgYSByYW5nZSBnaXZlbiBhcyBhIHJhbmdlIGF0dHJpYnV0ZSBy ZWZlcmVuY2UKICAgICAgLS0gIGFwcGVhcnMgZGlyZWN0bHkgaW4gdGhlIHRyZWUgYXMgYW4gYXR0 cmlidXRlIHJlZmVyZW5jZS4KCiAgICAgIC0tICBOb3RlOiB0aGUgZmllbGQgbmFtZSBmb3IgYSBy ZWZlcmVuY2UgdG8gYSByYW5nZSBpcyBSYW5nZV9FeHByZXNzaW9uCiAgICAgIC0tICByYXRoZXIg dGhhbiBSYW5nZSwgYmVjYXVzZSByYW5nZSBpcyBhIHJlc2VydmVkIGtleXdvcmQgaW4gQWRhIQoK ICAgICAgLS0gIE5vdGU6IHRoZSByZWFzb24gdGhhdCB0aGlzIG5vZGUgaGFzIGV4cHJlc3Npb24g ZmllbGRzIGlzIHRoYXQgYQogICAgICAtLSAgcmFuZ2UgY2FuIGFwcGVhciBhcyBhbiBvcGVyYW5k IG9mIGEgbWVtYmVyc2hpcCB0ZXN0LiBUaGUgRXR5cGUKICAgICAgLS0gIGZpZWxkIGlzIHRoZSB0 eXBlIG9mIHRoZSByYW5nZSAod2UgZG8gTk9UIGNvbnN0cnVjdCBhbiBpbXBsaWNpdAogICAgICAt LSAgc3VidHlwZSB0byByZXByZXNlbnQgdGhlIHJhbmdlIGV4YWN0bHkpLgoKICAgICAgLS0gIE5f UmFuZ2UKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIC4uCiAgICAgIC0tICBMb3dfQm91bmQgKE5v ZGUxKQogICAgICAtLSAgSGlnaF9Cb3VuZCAoTm9kZTIpCiAgICAgIC0tICBJbmNsdWRlc19JbmZp bml0aWVzIChGbGFnMTEpCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAg ICAgLS0gIE5vdGU6IGlmIHRoZSByYW5nZSBhcHBlYXJzIGluIGEgY29udGV4dCwgc3VjaCBhcyBh IHN1YnR5cGUKICAgICAgLS0gIGRlY2xhcmF0aW9uLCB3aGVyZSByYW5nZSBjaGVja3MgYXJlIHJl cXVpcmVkIG9uIG9uZSBvciBib3RoIG9mCiAgICAgIC0tICB0aGUgZXhwcmVzc2lvbiBmaWVsZHMs IHRoZW4gdHlwZSBjb252ZXJzaW9uIG5vZGVzIGFyZSBpbnNlcnRlZAogICAgICAtLSAgdG8gcmVw cmVzZW50IHRoZSByZXF1aXJlZCBjaGVja3MuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNS4xICBFbnVtZXJhdGlvbiBUeXBlIERlZmlu aXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIEVOVU1FUkFUSU9OX1RZUEVfREVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgKEVO VU1FUkFUSU9OX0xJVEVSQUxfU1BFQ0lGSUNBVElPTgogICAgICAtLSAgICAgIHssIEVOVU1FUkFU SU9OX0xJVEVSQUxfU1BFQ0lGSUNBVElPTn0pCgogICAgICAtLSAgTm90ZTogdGhlIExpdGVyYWxz IGZpZWxkIGluIHRoZSBub2RlIGRlc2NyaWJlZCBiZWxvdyBpcyBudWxsIGZvcgogICAgICAtLSAg dGhlIGNhc2Ugb2YgdGhlIHN0YW5kYXJkIHR5cGVzIENIQVJBQ1RFUiBhbmQgV0lERV9DSEFSQUNU RVIsIGZvcgogICAgICAtLSAgd2hpY2ggc3BlY2lhbCBwcm9jZXNzaW5nIGhhbmRsZXMgdGhlc2Ug dHlwZXMgYXMgc3BlY2lhbCBjYXNlcy4KCiAgICAgIC0tICBOX0VudW1lcmF0aW9uX1R5cGVfRGVm aW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gbGVmdCBwYXJlbnRoZXNpcwogICAgICAt LSAgTGl0ZXJhbHMgKExpc3QxKSAoRW1wdHkgZm9yIENIQVJBQ1RFUiBvciBXSURFX0NIQVJBQ1RF UikKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgLS0gMy41LjEgIEVudW1lcmF0aW9uIExpdGVyYWwgU3BlY2lmaWNhdGlvbiAtLQogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgRU5VTUVSQVRJT05fTElURVJBTF9TUEVDSUZJQ0FUSU9OIDo6PQogICAgICAtLSAgICBERUZJ TklOR19JREVOVElGSUVSIHwgREVGSU5JTkdfQ0hBUkFDVEVSX0xJVEVSQUwKCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjUuMSAgRGVmaW5p bmcgQ2hhcmFjdGVyIExpdGVyYWwgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgogICAgICAtLSAgREVGSU5JTkdfQ0hBUkFDVEVSX0xJVEVSQUwgOjo9IENI QVJBQ1RFUl9MSVRFUkFMCgogICAgICAtLSAgQSBkZWZpbmluZyBjaGFyYWN0ZXIgbGl0ZXJhbCBp cyBhbiBlbnRpdHksIHdoaWNoIGhhcyBhZGRpdGlvbmFsCiAgICAgIC0tICBmaWVsZHMgZGVwZW5k aW5nIG9uIHRoZSBzZXR0aW5nIG9mIHRoZSBFa2luZCBmaWVsZC4gVGhlc2UKICAgICAgLS0gIGFk ZGl0aW9uYWwgZmllbGRzIGFyZSBkZWZpbmVkIChhbmQgYWNjZXNzIHN1YnByb2dyYW1zIGRlY2xh cmVkKQogICAgICAtLSAgaW4gcGFja2FnZSBFaW5mby4KCiAgICAgIC0tICBOb3RlOiBOX0RlZmlu aW5nX0NoYXJhY3Rlcl9MaXRlcmFsIGlzIGFuIGV4dGVuZGVkIG5vZGUgd2hvc2UgZmllbGRzCiAg ICAgIC0tICBhcmUgZGVsaWJlcmF0ZSBsYXllZCBvdXQgdG8gbWF0Y2ggdGhlIGxheW91dCBvZiBm aWVsZHMgaW4gYW4gb3JkaW5hcnkKICAgICAgLS0gIE5fQ2hhcmFjdGVyX0xpdGVyYWwgbm9kZSBh bGxvd2luZyBmb3IgZWFzeSBhbHRlcmF0aW9uIG9mIGEgY2hhcmFjdGVyCiAgICAgIC0tICBsaXRl cmFsIG5vZGUgaW50byBhIGRlZmluaW5nIGNoYXJhY3RlciBsaXRlcmFsIG5vZGUuIEZvciBkZXRh aWxzLCBzZWUKICAgICAgLS0gIFNpbmZvLkNOLkNoYW5nZV9DaGFyYWN0ZXJfTGl0ZXJhbF9Ub19E ZWZpbmluZ19DaGFyYWN0ZXJfTGl0ZXJhbC4KCiAgICAgIC0tICBOX0RlZmluaW5nX0NoYXJhY3Rl cl9MaXRlcmFsCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBsaXRlcmFsCiAgICAgIC0tICBDaGFy cyAoTmFtZTEpIGNvbnRhaW5zIHRoZSBOYW1lX0lkIGZvciB0aGUgaWRlbnRpZmllcgogICAgICAt LSAgTmV4dF9FbnRpdHkgKE5vZGUyLVNlbSkKICAgICAgLS0gIFNjb3BlIChOb2RlMy1TZW0pCiAg ICAgIC0tICBFdHlwZSAoTm9kZTUtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNS40ICBJbnRlZ2VyIFR5cGUgRGVmaW5pdGlvbiAtLQog ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBOb3Rl OiB0aGVyZSBpcyBhbiBlcnJvciBpbiB0aGlzIHJ1bGUgaW4gdGhlIGxhdGVzdCB2ZXJzaW9uIG9m IHRoZQogICAgICAtLSAgZ3JhbW1hciwgc28gd2UgaGF2ZSByZXRhaW5lZCB0aGUgb2xkIHJ1bGUg cGVuZGluZyBjbGFyaWZpY2F0aW9uLgoKICAgICAgLS0gIElOVEVHRVJfVFlQRV9ERUZJTklUSU9O IDo6PQogICAgICAtLSAgICBTSUdORURfSU5URUdFUl9UWVBFX0RFRklOSVRJT04KICAgICAgLS0g ICAgTU9EVUxBUl9UWVBFX0RFRklOSVRJT04KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy41LjQgIFNpZ25lZCBJbnRlZ2VyIFR5cGUg RGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgogICAgICAtLSAgU0lHTkVEX0lOVEVHRVJfVFlQRV9ERUZJTklUSU9OIDo6PQogICAg ICAtLSAgICByYW5nZSBzdGF0aWNfU0lNUExFX0VYUFJFU1NJT04gLi4gc3RhdGljX1NJTVBMRV9F WFBSRVNTSU9OCgogICAgICAtLSAgTm90ZTogdGhlIExvd19Cb3VuZCBhbmQgSGlnaF9Cb3VuZCBm aWVsZHMgYXJlIHNldCB0byBFbXB0eSBmb3IKICAgICAgLS0gIGludGVnZXIgdHlwZXMgZGVmaW5l ZCBpbiBwYWNrYWdlIFN0YW5kYXJkLgoKICAgICAgLS0gIE5fU2lnbmVkX0ludGVnZXJfVHlwZV9E ZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBSQU5HRQogICAgICAtLSAgTG93X0Jv dW5kIChOb2RlMSkKICAgICAgLS0gIEhpZ2hfQm91bmQgKE5vZGUyKQoKICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy41LjQgIFVuc2lnbmVk IFJhbmdlIFNwZWNpZmljYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBNT0RVTEFSX1RZUEVfREVGSU5JVElPTiA6Oj0gbW9k IHN0YXRpY19FWFBSRVNTSU9OCgogICAgICAtLSAgTl9Nb2R1bGFyX1R5cGVfRGVmaW5pdGlvbgog ICAgICAtLSAgU2xvYyBwb2ludHMgdG8gTU9ECiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykK CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjUuNiAg UmVhbCBUeXBlIERlZmluaXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgogICAgICAtLSAgUkVBTF9UWVBFX0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIEZM T0FUSU5HX1BPSU5UX0RFRklOSVRJT04gfCBGSVhFRF9QT0lOVF9ERUZJTklUSU9OCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjUuNyAgRmxv YXRpbmcgUG9pbnQgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZMT0FUSU5HX1BPSU5UX0RFRklOSVRJT04gOjo9CiAg ICAgIC0tICAgIGRpZ2l0cyBzdGF0aWNfU0lNUExFX0VYUFJFU1NJT04gW1JFQUxfUkFOR0VfU1BF Q0lGSUNBVElPTl0KCiAgICAgIC0tICBOb3RlOiBUaGUgRGlnaXRzX0V4cHJlc3Npb24gYW5kIFJl YWxfUmFuZ2VfU3BlY2lmaWNhdGlvbnMgZmllbGRzCiAgICAgIC0tICBhcmUgc2V0IHRvIEVtcHR5 IGZvciBmbG9hdGluZy1wb2ludCB0eXBlcyBkZWNsYXJlZCBpbiBTdGFuZGFyZC4KCiAgICAgIC0t ICBOX0Zsb2F0aW5nX1BvaW50X0RlZmluaXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIERJ R0lUUwogICAgICAtLSAgRGlnaXRzX0V4cHJlc3Npb24gKE5vZGUyKQogICAgICAtLSAgUmVhbF9S YW5nZV9TcGVjaWZpY2F0aW9uIChOb2RlNCkgKHNldCB0byBFbXB0eSBpZiBub3QgcHJlc2VudCkK CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy41 LjcgIFJlYWwgUmFuZ2UgU3BlY2lmaWNhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkVBTF9SQU5HRV9TUEVDSUZJQ0FUSU9OIDo6 PQogICAgICAtLSAgICByYW5nZSBzdGF0aWNfU0lNUExFX0VYUFJFU1NJT04gLi4gc3RhdGljX1NJ TVBMRV9FWFBSRVNTSU9OCgogICAgICAtLSAgTl9SZWFsX1JhbmdlX1NwZWNpZmljYXRpb24KICAg ICAgLS0gIFNsb2MgcG9pbnRzIHRvIFJBTkdFCiAgICAgIC0tICBMb3dfQm91bmQgKE5vZGUxKQog ICAgICAtLSAgSGlnaF9Cb3VuZCAoTm9kZTIpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjUuOSAgRml4ZWQgUG9pbnQgRGVmaW5pdGlvbiAtLQog ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZJWEVE X1BPSU5UX0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIE9SRElOQVJZX0ZJWEVEX1BPSU5UX0RF RklOSVRJT04gfCBERUNJTUFMX0ZJWEVEX1BPSU5UX0RFRklOSVRJT04KCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNS45ICBPcmRp bmFyeSBGaXhlZCBQb2ludCBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgT1JESU5BUllfRklYRURfUE9JTlRf REVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgZGVsdGEgc3RhdGljX0VYUFJFU1NJT04gUkVBTF9S QU5HRV9TUEVDSUZJQ0FUSU9OCgogICAgICAtLSAgTm90ZTogSW4gQWRhIDgzLCB0aGUgRVhQUkVT U0lPTiBtdXN0IGJlIGEgU0lNUExFX0VYUFJFU1NJT04KCiAgICAgIC0tICBOb3RlOiB0aGUgRGVs dGFfRXhwcmVzc2lvbiBhbmQgUmVhbF9SYW5nZV9TcGVjaWZpY2F0aW9uIGZpZWxkcwogICAgICAt LSAgYXJlIHNldCB0byBFbXB0eSBmb3IgZml4ZWQgcG9pbnQgdHlwZXMgZGVjbGFyZWQgaW4gU3Rh bmRhcmQuCgogICAgICAtLSAgTl9PcmRpbmFyeV9GaXhlZF9Qb2ludF9EZWZpbml0aW9uCiAgICAg IC0tICBTbG9jIHBvaW50cyB0byBERUxUQQogICAgICAtLSAgRGVsdGFfRXhwcmVzc2lvbiAoTm9k ZTMpCiAgICAgIC0tICBSZWFsX1JhbmdlX1NwZWNpZmljYXRpb24gKE5vZGU0KQoKICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjUuOSAg RGVjaW1hbCBGaXhlZCBQb2ludCBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBERUNJTUFMX0ZJWEVEX1BPSU5U X0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIGRlbHRhIHN0YXRpY19FWFBSRVNTSU9OCiAgICAg IC0tICAgICAgZGlnaXRzIHN0YXRpY19FWFBSRVNTSU9OIFtSRUFMX1JBTkdFX1NQRUNJRklDQVRJ T05dCgogICAgICAtLSAgTm90ZTogZGVjaW1hbCB0eXBlcyBhcmUgbm90IHBlcm1pdHRlZCBpbiBB ZGEgODMgbW9kZQoKICAgICAgLS0gIE5fRGVjaW1hbF9GaXhlZF9Qb2ludF9EZWZpbml0aW9uCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBERUxUQQogICAgICAtLSAgRGVsdGFfRXhwcmVzc2lvbiAo Tm9kZTMpCiAgICAgIC0tICBEaWdpdHNfRXhwcmVzc2lvbiAoTm9kZTIpCiAgICAgIC0tICBSZWFs X1JhbmdlX1NwZWNpZmljYXRpb24gKE5vZGU0KSAoc2V0IHRvIEVtcHR5IGlmIG5vdCBwcmVzZW50 KQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNS45ICBE aWdpdHMgQ29uc3RyYWludCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBESUdJVFNfQ09OU1RSQUlOVCA6Oj0KICAgICAgLS0gICAgZGlnaXRzIHN0YXRp Y19FWFBSRVNTSU9OIFtSQU5HRV9DT05TVFJBSU5UXQoKICAgICAgLS0gIE5vdGU6IGluIEFkYSA4 MywgdGhlIEVYUFJFU1NJT04gbXVzdCBiZSBhIFNJTVBMRV9FWFBSRVNTSU9OCiAgICAgIC0tICBO b3RlOiBpbiBBZGEgOTUsIHJlZHVjZWQgYWNjdXJhY3kgc3VidHlwZXMgYXJlIG9ic29sZXNjZW50 CgogICAgICAtLSAgTl9EaWdpdHNfQ29uc3RyYWludAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8g RElHSVRTCiAgICAgIC0tICBEaWdpdHNfRXhwcmVzc2lvbiAoTm9kZTIpCiAgICAgIC0tICBSYW5n ZV9Db25zdHJhaW50IChOb2RlNCkgKHNldCB0byBFbXB0eSBpZiBub3QgcHJlc2VudCkKCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNiAgQXJyYXkgVHlw ZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgQVJSQVlfVFlQRV9ERUZJTklUSU9OIDo6PQogICAgICAtLSAgICBVTkNPTlNUUkFJ TkVEX0FSUkFZX0RFRklOSVRJT04gfCBDT05TVFJBSU5FRF9BUlJBWV9ERUZJTklUSU9OCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjYg IFVuY29uc3RyYWluZWQgQXJyYXkgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFVOQ09OU1RSQUlORURfQVJSQVlf REVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgYXJyYXkgKElOREVYX1NVQlRZUEVfREVGSU5JVElP TiB7LCBJTkRFWF9TVUJUWVBFX0RFRklOSVRJT059KSBvZgogICAgICAtLSAgICAgIENPTVBPTkVO VF9ERUZJTklUSU9OCgogICAgICAtLSAgTm90ZTogZGltZW5zaW9uYWxpdHkgb2YgYXJyYXkgaXMg aW5kaWNhdGVkIGJ5IG51bWJlciBvZiBlbnRyaWVzIGluCiAgICAgIC0tICB0aGUgU3VidHlwZV9N YXJrcyBsaXN0LCB3aGljaCBoYXMgb25lIGVudHJ5IGZvciBlYWNoIGRpbWVuc2lvbi4KCiAgICAg IC0tICBOX1VuY29uc3RyYWluZWRfQXJyYXlfRGVmaW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gQVJSQVkKICAgICAgLS0gIFN1YnR5cGVfTWFya3MgKExpc3QyKQogICAgICAtLSAgQWxp YXNlZF9QcmVzZW50IChGbGFnNCkgZnJvbSBjb21wb25lbnQgZGVmaW5pdGlvbgogICAgICAtLSAg U3VidHlwZV9JbmRpY2F0aW9uIChOb2RlNSkgZnJvbSBjb21wb25lbnQgZGVmaW5pdGlvbgoKICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy42ICBJbmRl eCBTdWJ0eXBlIERlZmluaXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgICAgIC0tICBJTkRFWF9TVUJUWVBFX0RFRklOSVRJT04gOjo9IFNVQlRZUEVf TUFSSyByYW5nZSA8PgoKICAgICAgLS0gIFRoZXJlIGlzIG5vIGV4cGxpY2l0IG5vZGUgaW4gdGhl IHRyZWUgZm9yIGFuIGluZGV4IHN1YnR5cGUKICAgICAgLS0gIGRlZmluaXRpb24gc2luY2UgdGhl IE5fVW5jb25zdHJhaW5lZF9BcnJheV9EZWZpbml0aW9uIG5vZGUKICAgICAgLS0gIGluY29ycG9y YXRlcyB0aGUgdHlwZSBtYXJrcyB3aGljaCBhcHBlYXIgaW4gdGhpcyBjb250ZXh0LgoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNiAgQ29u c3RyYWluZWQgQXJyYXkgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBDT05TVFJBSU5FRF9BUlJBWV9ERUZJTklUSU9O IDo6PQogICAgICAtLSAgICBhcnJheSAoRElTQ1JFVEVfU1VCVFlQRV9ERUZJTklUSU9OCiAgICAg IC0tICAgICAgeywgRElTQ1JFVEVfU1VCVFlQRV9ERUZJTklUSU9OfSkKICAgICAgLS0gICAgICAg IG9mIENPTVBPTkVOVF9ERUZJTklUSU9OCgogICAgICAtLSAgTm90ZTogZGltZW5zaW9uYWxpdHkg b2YgYXJyYXkgaXMgaW5kaWNhdGVkIGJ5IG51bWJlciBvZiBlbnRyaWVzCiAgICAgIC0tICBpbiB0 aGUgRGlzY3JldGVfU3VidHlwZV9EZWZpbml0aW9ucyBsaXN0LCB3aGljaCBoYXMgb25lIGVudHJ5 CiAgICAgIC0tICBmb3IgZWFjaCBkaW1lbnNpb24uCgogICAgICAtLSAgTl9Db25zdHJhaW5lZF9B cnJheV9EZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBBUlJBWQogICAgICAtLSAg RGlzY3JldGVfU3VidHlwZV9EZWZpbml0aW9ucyAoTGlzdDIpCiAgICAgIC0tICBBbGlhc2VkX1By ZXNlbnQgKEZsYWc0KSBmcm9tIGNvbXBvbmVudCBkZWZpbml0aW9uCiAgICAgIC0tICBTdWJ0eXBl X0luZGljYXRpb24gKE5vZGU1KSBmcm9tIGNvbXBvbmVudCBkZWZpbml0aW9uCgogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjYgIERpc2NyZXRl IFN1YnR5cGUgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIERJU0NSRVRFX1NVQlRZUEVfREVGSU5JVElPTiA6Oj0KICAg ICAgLS0gICAgZGlzY3JldGVfU1VCVFlQRV9JTkRJQ0FUSU9OIHwgUkFOR0UKCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy42ICBDb21wb25lbnQgRGVmaW5p dGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAg Q09NUE9ORU5UX0RFRklOSVRJT04gOjo9IFthbGlhc2VkXSBTVUJUWVBFX0lORElDQVRJT04KCiAg ICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNpdCBub2RlIGluIHRoZSB0cmVlIGZvciBhIGNvbXBv bmVudCBkZWZpbml0aW9uLgogICAgICAtLSAgSW5zdGVhZCB0aGUgc3VidHlwZSBpbmRpY2F0aW9u IGFwcGVhcnMgZGlyZWN0bHksIGFuZCB0aGUgQUxJQVNFRAogICAgICAtLSAgaW5kaWNhdGlvbiAo QWxpYXNlZF9QcmVzZW50IGZsYWcpIGlzIGluIHRoZSBwYXJlbnQgbm9kZS4KCiAgICAgIC0tICBO b3RlOiBhbHRob3VnaCB0aGUgc3ludGF4IGRvZXMgbm90IHBlcm1pdCBhIGNvbXBvbmVudCBkZWZp bml0aW9uIHRvCiAgICAgIC0tICBiZSBhbiBhbm9ueW1vdXMgYXJyYXkgKGFuZCB0aGUgcGFyc2Vy IHdpbGwgZGlhZ25vc2Ugc3VjaCBhbiBhdHRlbXB0CiAgICAgIC0tICB3aXRoIGFuIGFwcHJvcHJp YXRlIG1lc3NhZ2UpLCBpdCBpcyBwb3NzaWJsZSBmb3IgYW5vbnltb3VzIGFycmF5cwogICAgICAt LSAgdG8gYXBwZWFyIGFzIGNvbXBvbmVudCBkZWZpbml0aW9ucy4gVGhlIHNlbWFudGljcyBhbmQg YmFjayBlbmQgaGFuZGxlCiAgICAgIC0tICB0aGlzIGNhc2UgcHJvcGVybHksIGFuZCB0aGUgZXhw YW5kZXIgaW4gZmFjdCBnZW5lcmF0ZXMgc3VjaCBjYXNlcy4KCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNi4xICBJbmRleCBDb25zdHJhaW50IC0tCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgSU5ERVhfQ09OU1RSQUlO VCA6Oj0gKERJU0NSRVRFX1JBTkdFIHssIERJU0NSRVRFX1JBTkdFfSkKCiAgICAgIC0tICBJdCBp cyBub3QgaW4gZ2VuZXJhbCBwb3NzaWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpc2NyaW1p bmFudAogICAgICAtLSAgY29uc3RyYWludHMgYW5kIGluZGV4IGNvbnN0cmFpbnRzIGF0IHBhcnNl IHRpbWUsIHNpbmNlIGEgc2ltcGxlCiAgICAgIC0tICBuYW1lIGNvdWxkIGJlIGVpdGhlciB0aGUg c3VidHlwZSBtYXJrIG9mIGEgZGlzY3JldGUgcmFuZ2UsIG9yIGFuCiAgICAgIC0tICBleHByZXNz aW9uIGluIGEgZGlzY3JpbWluYW50IGFzc29jaWF0aW9uIHdpdGggbm8gbmFtZS4gRWl0aGVyCiAg ICAgIC0tICBlbnRyeSBhcHBlYXJzIHNpbXBseSBhcyB0aGUgbmFtZSwgYW5kIHRoZSBzZW1hbnRp YyBwYXJzZSBtdXN0CiAgICAgIC0tICBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gY2FzZXMu IFRodXMgd2UgdXNlIGEgY29tbW9uIHRyZWUKICAgICAgLS0gIG5vZGUgZm9ybWF0IGZvciBib3Ro IG9mIHRoZXNlIGNvbnN0cmFpbnQgdHlwZXMuCgogICAgICAtLSAgU2VlIERpc2NyaW1pbmFudF9D b25zdHJhaW50IGZvciBmb3JtYXQgb2Ygbm9kZQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICAgIC0tIDMuNi4xICBEaXNjcmV0ZSBSYW5nZSAtLQogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBESVNDUkVURV9SQU5HRSA6Oj0gZGlzY3JldGVf U1VCVFlQRV9JTkRJQ0FUSU9OIHwgUkFOR0UKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgICAgLS0gMy43ICBEaXNjcmltaW5hbnQgUGFydCAtLQogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRElTQ1JJTUlOQU5UX1BBUlQgOjo9CiAgICAg IC0tICAgIFVOS05PV05fRElTQ1JJTUlOQU5UX1BBUlQgfCBLTk9XTl9ESVNDUklNSU5BTlRfUEFS VAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMu NyAgVW5rbm93biBEaXNjcmltaW5hbnQgUGFydCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBVTktOT1dOX0RJU0NSSU1JTkFOVF9QQVJUIDo6 PSAoPD4pCgogICAgICAtLSAgTm90ZTogdW5rbm93biBkaXNjcmltaW5hbnQgcGFydHMgYXJlIG5v dCBwZXJtaXR0ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNp dCBub2RlIGluIHRoZSB0cmVlIGZvciBhbiB1bmtub3duIGRpc2NyaW1pbmFudAogICAgICAtLSAg cGFydC4gSW5zdGVhZCB0aGUgVW5rbm93bl9EaXNjcmltaW5hbnRzX1ByZXNlbnQgZmxhZyBpcyBz ZXQgaW4gdGhlCiAgICAgIC0tICBwYXJlbnQgbm9kZS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy43ICBLbm93biBEaXNjcmltaW5hbnQgUGFydCAt LQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgS05P V05fRElTQ1JJTUlOQU5UX1BBUlQgOjo9CiAgICAgIC0tICAgIChESVNDUklNSU5BTlRfU1BFQ0lG SUNBVElPTiB7OyBESVNDUklNSU5BTlRfU1BFQ0lGSUNBVElPTn0pCgogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuNyAgRGlzY3JpbWluYW50IFNw ZWNpZmljYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIERJU0NSSU1JTkFOVF9TUEVDSUZJQ0FUSU9OIDo6PQogICAgICAtLSAgICBE RUZJTklOR19JREVOVElGSUVSX0xJU1QgOiBTVUJUWVBFX01BUksKICAgICAgLS0gICAgICBbOj0g REVGQVVMVF9FWFBSRVNTSU9OXQogICAgICAtLSAgfCBERUZJTklOR19JREVOVElGSUVSX0xJU1Qg OiBBQ0NFU1NfREVGSU5JVElPTgogICAgICAtLSAgICAgIFs6PSBERUZBVUxUX0VYUFJFU1NJT05d CgogICAgICAtLSAgQWx0aG91Z2ggdGhlIHN5bnRheCBhbGxvd3MgbXVsdGlwbGUgaWRlbnRpZmll cnMgaW4gdGhlIGxpc3QsIHRoZQogICAgICAtLSAgc2VtYW50aWNzIGlzIGFzIHRob3VnaCBzdWNj ZXNzaXZlIHNwZWNpZmljYXRpb25zIHdlcmUgZ2l2ZW4gd2l0aAogICAgICAtLSAgaWRlbnRpY2Fs IHR5cGUgZGVmaW5pdGlvbiBhbmQgZXhwcmVzc2lvbiBjb21wb25lbnRzLiBUbyBzaW1wbGlmeQog ICAgICAtLSAgc2VtYW50aWMgcHJvY2Vzc2luZywgdGhlIHBhcnNlciByZXByZXNlbnRzIGEgbXVs dGlwbGUgZGVjbGFyYXRpb24KICAgICAgLS0gIGNhc2UgYXMgYSBzZXF1ZW5jZSBvZiBzaW5nbGUg c3BlY2lmaWNhdGlvbnMsIHVzaW5nIHRoZSBNb3JlX0lkcyBhbmQKICAgICAgLS0gIFByZXZfSWRz IGZsYWdzIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5hbCBzb3VyY2UgZm9ybSBhcyBkZXNjcmliZWQK ICAgICAgLS0gIGluIHRoZSBzZWN0aW9uIG9uICJIYW5kbGluZyBvZiBEZWZpbmluZyBJZGVudGlm aWVyIExpc3RzIi4KCiAgICAgIC0tICBOX0Rpc2NyaW1pbmFudF9TcGVjaWZpY2F0aW9uCiAgICAg IC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCBpZGVudGlmaWVyCiAgICAgIC0tICBEZWZpbmluZ19J ZGVudGlmaWVyIChOb2RlMSkKICAgICAgLS0gIERpc2NyaW1pbmFudF9UeXBlIChOb2RlNSkgc3Vi dHlwZSBtYXJrIG9yCiAgICAgIC0tICAgIGFjY2VzcyBwYXJhbWV0ZXIgZGVmaW5pdGlvbgogICAg ICAtLSAgRXhwcmVzc2lvbiAoTm9kZTMpIChzZXQgdG8gRW1wdHkgaWYgbm8gZGVmYXVsdCBleHBy ZXNzaW9uKQogICAgICAtLSAgTW9yZV9JZHMgKEZsYWc1KSAoc2V0IHRvIEZhbHNlIGlmIG5vIG1v cmUgaWRlbnRpZmllcnMgaW4gbGlzdCkKICAgICAgLS0gIFByZXZfSWRzIChGbGFnNikgKHNldCB0 byBGYWxzZSBpZiBubyBwcmV2aW91cyBpZGVudGlmaWVycyBpbiBsaXN0KQoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy43ICBEZWZhdWx0IEV4cHJlc3Npb24g LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBERUZBVUxU X0VYUFJFU1NJT04gOjo9IEVYUFJFU1NJT04KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjcuMSAgRGlzY3JpbWluYW50IENvbnN0cmFpbnQgLS0K ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRElT Q1JJTUlOQU5UX0NPTlNUUkFJTlQgOjo9CiAgICAgIC0tICAgIChESVNDUklNSU5BTlRfQVNTT0NJ QVRJT04geywgRElTQ1JJTUlOQU5UX0FTU09DSUFUSU9OfSkKCiAgICAgIC0tICBJdCBpcyBub3Qg aW4gZ2VuZXJhbCBwb3NzaWJsZSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIGRpc2NyaW1pbmFudAog ICAgICAtLSAgY29uc3RyYWludHMgYW5kIGluZGV4IGNvbnN0cmFpbnRzIGF0IHBhcnNlIHRpbWUs IHNpbmNlIGEgc2ltcGxlCiAgICAgIC0tICBuYW1lIGNvdWxkIGJlIGVpdGhlciB0aGUgc3VidHlw ZSBtYXJrIG9mIGEgZGlzY3JldGUgcmFuZ2UsIG9yIGFuCiAgICAgIC0tICBleHByZXNzaW9uIGlu IGEgZGlzY3JpbWluYW50IGFzc29jaWF0aW9uIHdpdGggbm8gbmFtZS4gRWl0aGVyCiAgICAgIC0t ICBlbnRyeSBhcHBlYXJzIHNpbXBseSBhcyB0aGUgbmFtZSwgYW5kIHRoZSBzZW1hbnRpYyBwYXJz ZSBtdXN0CiAgICAgIC0tICBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB0d28gY2FzZXMuIFRodXMg d2UgdXNlIGEgY29tbW9uIHRyZWUKICAgICAgLS0gIG5vZGUgZm9ybWF0IGZvciBib3RoIG9mIHRo ZXNlIGNvbnN0cmFpbnQgdHlwZXMuCgogICAgICAtLSAgTl9JbmRleF9Pcl9EaXNjcmltaW5hbnRf Q29uc3RyYWludAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gbGVmdCBwYXJlbgogICAgICAtLSAg Q29uc3RyYWludHMgKExpc3QxKSBwb2ludHMgdG8gbGlzdCBvZiBkaXNjcmV0ZSByYW5nZXMgb3IK ICAgICAgLS0gICAgZGlzY3JpbWluYW50IGFzc29jaWF0aW9ucwoKICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjcuMSAgRGlzY3JpbWluYW50IEFz c29jaWF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBESVNDUklNSU5BTlRfQVNTT0NJQVRJT04gOjo9CiAgICAgIC0tICAgIFtkaXNj cmltaW5hbnRfU0VMRUNUT1JfTkFNRQogICAgICAtLSAgICAgIHt8IGRpc2NyaW1pbmFudF9TRUxF Q1RPUl9OQU1FfSA9Pl0gRVhQUkVTU0lPTgoKICAgICAgLS0gIE5vdGU6IGEgZGlzY3JpbWluYW50 IGFzc29jaWF0aW9uIHRoYXQgaGFzIG5vIHNlbGVjdG9yIG5hbWUgbGlzdAogICAgICAtLSAgYXBw ZWFycyBkaXJlY3RseSBhcyBhbiBleHByZXNzaW9uIGluIHRoZSB0cmVlLgoKICAgICAgLS0gIE5f RGlzY3JpbWluYW50X0Fzc29jaWF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0 b2tlbiBvZiBkaXNjcmltaW5hbnQgYXNzb2NpYXRpb24KICAgICAgLS0gIFNlbGVjdG9yX05hbWVz IChMaXN0MSkgKGFsd2F5cyBub24tZW1wdHksIHNpbmNlIGlmIG5vIHNlbGVjdG9yCiAgICAgIC0t ICAgbmFtZXMgYXJlIHByZXNlbnQsIHRoaXMgbm9kZSBpcyBub3QgdXNlZCwgc2VlIGNvbW1lbnQg YWJvdmUpCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykKCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjggIFJlY29yZCBUeXBlIERlZmluaXRpb24g LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkVD T1JEX1RZUEVfREVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgW1thYnN0cmFjdF0gdGFnZ2VkXSBb bGltaXRlZF0gUkVDT1JEX0RFRklOSVRJT04KCiAgICAgIC0tICBOb3RlOiBBQlNUUkFDVCwgVEFH R0VELCBMSU1JVEVEIGFyZSBub3QgcGVybWl0dGVkIGluIEFkYSA4MyBtb2RlCgogICAgICAtLSAg VGhlcmUgaXMgbm8gZXhwbGljaXQgbm9kZSBpbiB0aGUgdHJlZSBmb3IgYSByZWNvcmQgdHlwZSBk ZWZpbml0aW9uLgogICAgICAtLSAgSW5zdGVhZCB0aGUgZmxhZ3MgZm9yIFRhZ2dlZF9QcmVzZW50 IGFuZCBMaW1pdGVkX1ByZXNlbnQgYXBwZWFyIGluCiAgICAgIC0tICB0aGUgTl9SZWNvcmRfRGVm aW5pdGlvbiBub2RlIGZvciBhIHJlY29yZCBkZWZpbml0aW9uIGFwcGVhcmluZyBpbgogICAgICAt LSAgdGhlIGNvbnRleHQgb2YgYSByZWNvcmQgdHlwZSBkZWZpbml0aW9uLgoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjggIFJlY29yZCBEZWZpbml0aW9uIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBSRUNPUkRfREVG SU5JVElPTiA6Oj0KICAgICAgLS0gICAgcmVjb3JkCiAgICAgIC0tICAgICAgQ09NUE9ORU5UX0xJ U1QKICAgICAgLS0gICAgZW5kIHJlY29yZAogICAgICAtLSAgfCBudWxsIHJlY29yZAoKICAgICAg LS0gIE5vdGU6IHRoZSBBYnN0cmFjdF9QcmVzZW50LCBUYWdnZWRfUHJlc2VudCBhbmQgTGltaXRl ZF9QcmVzZW50CiAgICAgIC0tICBmbGFncyBhcHBlYXIgb25seSBmb3IgYSByZWNvcmQgZGVmaW5p dGlvbiBhcHBlYXJpbmcgaW4gYSByZWNvcmQKICAgICAgLS0gIHR5cGUgZGVmaW5pdGlvbi4KCiAg ICAgIC0tICBOb3RlOiB0aGUgTlVMTCBSRUNPUkQgY2FzZSBpcyBub3QgcGVybWl0dGVkIGluIEFk YSA4MwoKICAgICAgLS0gIE5fUmVjb3JkX0RlZmluaXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRz IHRvIFJFQ09SRCBvciBOVUxMCiAgICAgIC0tICBFbmRfTGFiZWwgKE5vZGU0KSAoc2V0IHRvIEVt cHR5IGlmIGludGVybmFsbHkgZ2VuZXJhdGVkIHJlY29yZCkKICAgICAgLS0gIEFic3RyYWN0X1By ZXNlbnQgKEZsYWc0KQogICAgICAtLSAgVGFnZ2VkX1ByZXNlbnQgKEZsYWcxNSkKICAgICAgLS0g IExpbWl0ZWRfUHJlc2VudCAoRmxhZzE3KQogICAgICAtLSAgQ29tcG9uZW50X0xpc3QgKE5vZGUx KSBlbXB0eSBpbiBudWxsIHJlY29yZCBjYXNlCiAgICAgIC0tICBOdWxsX1ByZXNlbnQgKEZsYWcx Mykgc2V0IGluIG51bGwgcmVjb3JkIGNhc2UKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gMy44ICBDb21wb25lbnQgTGlzdCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICAgICAtLSAgQ09NUE9ORU5UX0xJU1QgOjo9CiAgICAgIC0tICAgIENPTVBP TkVOVF9JVEVNIHtDT01QT05FTlRfSVRFTX0KICAgICAgLS0gIHwge0NPTVBPTkVOVF9JVEVNfSBW QVJJQU5UX1BBUlQKICAgICAgLS0gIHwgbnVsbDsKCiAgICAgIC0tICBOX0NvbXBvbmVudF9MaXN0 CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBvZiBjb21wb25lbnQgbGlzdAog ICAgICAtLSAgQ29tcG9uZW50X0l0ZW1zIChMaXN0MykKICAgICAgLS0gIFZhcmlhbnRfUGFydCAo Tm9kZTQpIChzZXQgdG8gRW1wdHkgaWYgbm8gdmFyaWFudCBwYXJ0KQogICAgICAtLSAgTnVsbF9Q cmVzZW50IChGbGFnMTMpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t IDMuOCAgQ29tcG9uZW50IEl0ZW0gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIENPTVBPTkVOVF9JVEVNIDo6PSBDT01QT05FTlRfREVDTEFSQVRJT04gfCBSRVBS RVNFTlRBVElPTl9DTEFVU0UKCiAgICAgIC0tICBOb3RlOiBBIGNvbXBvbmVudCBpdGVtIGNhbiBh bHNvIGJlIGEgcHJhZ21hLCBhbmQgaW4gdGhlIHRyZWUKICAgICAgLS0gIHRoYXQgaXMgb2J0YWlu ZWQgYWZ0ZXIgc2VtYW50aWMgcHJvY2Vzc2luZywgYSBjb21wb25lbnQgaXRlbQogICAgICAtLSAg Y2FuIGJlIGFuIE5fTnVsbCBub2RlIHJlc3VsdGluZyBmcm9tIGEgbm9uLXJlY29nbml6ZWQgcHJh Z21hLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy44 ICBDb21wb25lbnQgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgICAgIC0tICBDT01QT05FTlRfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAg IERFRklOSU5HX0lERU5USUZJRVJfTElTVCA6IENPTVBPTkVOVF9ERUZJTklUSU9OCiAgICAgIC0t ICAgICAgWzo9IERFRkFVTFRfRVhQUkVTU0lPTl0KCiAgICAgIC0tICBOb3RlOiBhbHRob3VnaCB0 aGUgc3ludGF4IGRvZXMgbm90IHBlcm1pdCBhIGNvbXBvbmVudCBkZWZpbml0aW9uIHRvCiAgICAg IC0tICBiZSBhbiBhbm9ueW1vdXMgYXJyYXkgKGFuZCB0aGUgcGFyc2VyIHdpbGwgZGlhZ25vc2Ug c3VjaCBhbiBhdHRlbXB0CiAgICAgIC0tICB3aXRoIGFuIGFwcHJvcHJpYXRlIG1lc3NhZ2UpLCBp dCBpcyBwb3NzaWJsZSBmb3IgYW5vbnltb3VzIGFycmF5cwogICAgICAtLSAgdG8gYXBwZWFyIGFz IGNvbXBvbmVudCBkZWZpbml0aW9ucy4gVGhlIHNlbWFudGljcyBhbmQgYmFjayBlbmQgaGFuZGxl CiAgICAgIC0tICB0aGlzIGNhc2UgcHJvcGVybHksIGFuZCB0aGUgZXhwYW5kZXIgaW4gZmFjdCBn ZW5lcmF0ZXMgc3VjaCBjYXNlcy4KCiAgICAgIC0tICBBbHRob3VnaCB0aGUgc3ludGF4IGFsbG93 cyBtdWx0aXBsZSBpZGVudGlmaWVycyBpbiB0aGUgbGlzdCwgdGhlCiAgICAgIC0tICBzZW1hbnRp Y3MgaXMgYXMgdGhvdWdoIHN1Y2Nlc3NpdmUgZGVjbGFyYXRpb25zIHdlcmUgZ2l2ZW4gd2l0aCB0 aGUKICAgICAgLS0gIHNhbWUgY29tcG9uZW50IGRlZmluaXRpb24gYW5kIGV4cHJlc3Npb24gY29t cG9uZW50cy4gVG8gc2ltcGxpZnkKICAgICAgLS0gIHNlbWFudGljIHByb2Nlc3NpbmcsIHRoZSBw YXJzZXIgcmVwcmVzZW50cyBhIG11bHRpcGxlIGRlY2xhcmF0aW9uCiAgICAgIC0tICBjYXNlIGFz IGEgc2VxdWVuY2Ugb2Ygc2luZ2xlIGRlY2xhcmF0aW9ucywgdXNpbmcgdGhlIE1vcmVfSWRzIGFu ZAogICAgICAtLSAgUHJldl9JZHMgZmxhZ3MgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIHNvdXJj ZSBmb3JtIGFzIGRlc2NyaWJlZAogICAgICAtLSAgaW4gdGhlIHNlY3Rpb24gb24gIkhhbmRsaW5n IG9mIERlZmluaW5nIElkZW50aWZpZXIgTGlzdHMiLgoKICAgICAgLS0gIE5fQ29tcG9uZW50X0Rl Y2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCBpZGVudGlmaWVyCiAgICAg IC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChOb2RlMSkKICAgICAgLS0gIEFsaWFzZWRfUHJlc2Vu dCAoRmxhZzQpIGZyb20gY29tcG9uZW50IGRlZmluaXRpb24KICAgICAgLS0gIFN1YnR5cGVfSW5k aWNhdGlvbiAoTm9kZTUpIGZyb20gY29tcG9uZW50IGRlZmluaXRpb24KICAgICAgLS0gIEV4cHJl c3Npb24gKE5vZGUzKSAoc2V0IHRvIEVtcHR5IGlmIG5vIGRlZmF1bHQgZXhwcmVzc2lvbikKICAg ICAgLS0gIE1vcmVfSWRzIChGbGFnNSkgKHNldCB0byBGYWxzZSBpZiBubyBtb3JlIGlkZW50aWZp ZXJzIGluIGxpc3QpCiAgICAgIC0tICBQcmV2X0lkcyAoRmxhZzYpIChzZXQgdG8gRmFsc2UgaWYg bm8gcHJldmlvdXMgaWRlbnRpZmllcnMgaW4gbGlzdCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gMy44LjEgIFZhcmlhbnQgUGFydCAtLQogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVkFSSUFOVF9QQVJUIDo6PQogICAgICAtLSAgICBj YXNlIGRpc2NyaW1pbmFudF9ESVJFQ1RfTkFNRSBpcwogICAgICAtLSAgICAgIFZBUklBTlQKICAg ICAgLS0gICAgICB7VkFSSUFOVH0KICAgICAgLS0gICAgZW5kIGNhc2U7CgogICAgICAtLSAgTm90 ZTogdGhlIHZhcmlhbnRzIGxpc3QgY2FuIGNvbnRhaW4gcHJhZ21hcyBhcyB3ZWxsIGFzIHZhcmlh bnRzLgogICAgICAtLSAgSW4gYSBwcm9wZXJseSBmb3JtZWQgcHJvZ3JhbSB0aGVyZSBpcyBhdCBs ZWFzdCBvbmUgdmFyaWFudC4KCiAgICAgIC0tICBOX1ZhcmlhbnRfUGFydAogICAgICAtLSAgU2xv YyBwb2ludHMgdG8gQ0FTRQogICAgICAtLSAgTmFtZSAoTm9kZTIpCiAgICAgIC0tICBWYXJpYW50 cyAoTGlzdDEpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjguMSAgVmFy aWFudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFZBUklBTlQgOjo9 CiAgICAgIC0tICAgIHdoZW4gRElTQ1JFVEVfQ0hPSUNFX0xJU1QgPT4KICAgICAgLS0gICAgICBD T01QT05FTlRfTElTVAoKICAgICAgLS0gIE5fVmFyaWFudAogICAgICAtLSAgU2xvYyBwb2ludHMg dG8gV0hFTgogICAgICAtLSAgRGlzY3JldGVfQ2hvaWNlcyAoTGlzdDQpCiAgICAgIC0tICBDb21w b25lbnRfTGlzdCAoTm9kZTEpCiAgICAgIC0tICBFbmNsb3NpbmdfVmFyaWFudCAoTm9kZTItU2Vt KQogICAgICAtLSAgUHJlc2VudF9FeHByIChVaW50My1TZW0pCiAgICAgIC0tICBEY2hlY2tfRnVu Y3Rpb24gKE5vZGU1LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSAzLjguMSAgRGlzY3JldGUgQ2hvaWNlIExpc3QgLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRElTQ1JFVEVfQ0hPSUNFX0xJU1Qg Ojo9IERJU0NSRVRFX0NIT0lDRSB7fCBESVNDUkVURV9DSE9JQ0V9CgogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuOC4xICBEaXNjcmV0ZSBDaG9pY2UgLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIERJU0NSRVRFX0NIT0lD RSA6Oj0gRVhQUkVTU0lPTiB8IERJU0NSRVRFX1JBTkdFIHwgb3RoZXJzCgogICAgICAtLSAgTm90 ZTogaW4gQWRhIDgzIG1vZGUsIHRoZSBleHByZXNzaW9uIG11c3QgYmUgYSBzaW1wbGUgZXhwcmVz c2lvbgoKICAgICAgLS0gIFRoZSBvbmx5IGNob2ljZSB0aGF0IGFwcGVhcnMgZXhwbGljaXRseSBp cyB0aGUgT1RIRVJTIGNob2ljZSwgYXMKICAgICAgLS0gIGRlZmluZWQgaGVyZS4gT3RoZXIgY2Fz ZXMgb2YgZGlzY3JldGUgY2hvaWNlIChleHByZXNzaW9uIGFuZAogICAgICAtLSAgZGlzY3JldGUg cmFuZ2UpIGFwcGVhciBkaXJlY3RseS4gVGhpcyBwcm9kdWN0aW9uIGlzIGFsc28gdXNlZAogICAg ICAtLSAgZm9yIHRoZSBPVEhFUlMgcG9zc2liaWxpdHkgb2YgYW4gZXhjZXB0aW9uIGNob2ljZS4K CiAgICAgIC0tICBOb3RlOiBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIHN5bnRheCwgdGhlIHBhcnNl ciBkb2VzIG5vdCBjaGVjayB0aGF0CiAgICAgIC0tICBPVEhFUlMgYXBwZWFycyBhdCB0aGUgZW5k IG9uIGl0cyBvd24gaW4gYSBjaG9pY2UgbGlzdCBjb250ZXh0LiBUaGlzCiAgICAgIC0tICBpcyBh IHNlbWFudGljIGNoZWNrLgoKICAgICAgLS0gIE5fT3RoZXJzX0Nob2ljZQogICAgICAtLSAgU2xv YyBwb2ludHMgdG8gT1RIRVJTCiAgICAgIC0tICBPdGhlcnNfRGlzY3JldGVfQ2hvaWNlcyAoTGlz dDEtU2VtKQogICAgICAtLSAgQWxsX090aGVycyAoRmxhZzExLVNlbSkKCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy45LjEgIFJlY29yZCBFeHRlbnNp b24gUGFydCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAg ICAtLSAgUkVDT1JEX0VYVEVOU0lPTl9QQVJUIDo6PSB3aXRoIFJFQ09SRF9ERUZJTklUSU9OCgog ICAgICAtLSAgTm90ZTogcmVjb3JkIGV4dGVuc2lvbiBwYXJ0cyBhcmUgbm90IHBlcm1pdHRlZCBp biBBZGEgODMgbW9kZQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSAzLjEwICBBY2Nlc3MgVHlwZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBQ0NFU1NfVFlQRV9ERUZJTklUSU9O IDo6PQogICAgICAtLSAgICBBQ0NFU1NfVE9fT0JKRUNUX0RFRklOSVRJT04KICAgICAgLS0gIHwg QUNDRVNTX1RPX1NVQlBST0dSQU1fREVGSU5JVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuMTAgIEFjY2VzcyBUbyBPYmplY3QgRGVm aW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBBQ0NFU1NfVE9fT0JKRUNUX0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIGFj Y2VzcyBbR0VORVJBTF9BQ0NFU1NfTU9ESUZJRVJdIFNVQlRZUEVfSU5ESUNBVElPTgoKICAgICAg LS0gIE5fQWNjZXNzX1RvX09iamVjdF9EZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0 byBBQ0NFU1MKICAgICAgLS0gIEFsbF9QcmVzZW50IChGbGFnMTUpCiAgICAgIC0tICBTdWJ0eXBl X0luZGljYXRpb24gKE5vZGU1KQogICAgICAtLSAgQ29uc3RhbnRfUHJlc2VudCAoRmxhZzE3KQoK ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMy4xMCAg R2VuZXJhbCBBY2Nlc3MgTW9kaWZpZXIgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBHRU5FUkFMX0FDQ0VTU19NT0RJRklFUiA6Oj0gYWxsIHwg Y29uc3RhbnQKCiAgICAgIC0tICBOb3RlOiBnZW5lcmFsIGFjY2VzcyBtb2RpZmllcnMgYXJlIG5v dCBwZXJtaXR0ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNp dCBub2RlIGluIHRoZSB0cmVlIGZvciBnZW5lcmFsIGFjY2VzcyBtb2RpZmllci4KICAgICAgLS0g IEluc3RlYWQgdGhlIEFsbF9QcmVzZW50IG9yIENvbnN0YW50X1ByZXNlbnQgZmxhZ3MgYXJlIHNl dCBpbiB0aGUKICAgICAgLS0gIHBhcmVudCBub2RlLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjEwICBBY2Nlc3MgVG8gU3VicHJv Z3JhbSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBBQ0NFU1NfVE9fU1VCUFJPR1JBTV9ERUZJTklUSU9OCiAg ICAgIC0tICAgIGFjY2VzcyBbcHJvdGVjdGVkXSBwcm9jZWR1cmUgUEFSQU1FVEVSX1BST0ZJTEUK ICAgICAgLS0gIHwgYWNjZXNzIFtwcm90ZWN0ZWRdIGZ1bmN0aW9uIFBBUkFNRVRFUl9BTkRfUkVT VUxUX1BST0ZJTEUKCiAgICAgIC0tICBOb3RlOiBhY2Nlc3MgdG8gc3VicHJvZ3JhbXMgYXJlIG5v dCBwZXJtaXR0ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBOX0FjY2Vzc19GdW5jdGlvbl9E ZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBBQ0NFU1MKICAgICAgLS0gIFByb3Rl Y3RlZF9QcmVzZW50IChGbGFnMTUpCiAgICAgIC0tICBQYXJhbWV0ZXJfU3BlY2lmaWNhdGlvbnMg KExpc3QzKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8gZm9ybWFsIHBhcnQpCiAgICAgIC0tICBTdWJ0 eXBlX01hcmsgKE5vZGU0KSByZXN1bHQgc3VidHlwZQoKICAgICAgLS0gIE5fQWNjZXNzX1Byb2Nl ZHVyZV9EZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBBQ0NFU1MKICAgICAgLS0g IFByb3RlY3RlZF9QcmVzZW50IChGbGFnMTUpCiAgICAgIC0tICBQYXJhbWV0ZXJfU3BlY2lmaWNh dGlvbnMgKExpc3QzKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8gZm9ybWFsIHBhcnQpCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAzLjEwICBBY2Nlc3MgRGVmaW5p dGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFD Q0VTU19ERUZJTklUSU9OIDo6PSBhY2Nlc3MgU1VCVFlQRV9NQVJLCgogICAgICAtLSAgTl9BY2Nl c3NfRGVmaW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gQUNDRVNTCiAgICAgIC0tICBT dWJ0eXBlX01hcmsgKE5vZGU0KQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gMy4xMC4xICBJbmNvbXBsZXRlIFR5cGUgRGVjbGFyYXRpb24g LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAg IC0tICBJTkNPTVBMRVRFX1RZUEVfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIHR5cGUgREVG SU5JTkdfSURFTlRJRklFUiBbRElTQ1JJTUlOQU5UX1BBUlRdOwoKICAgICAgLS0gIE5fSW5jb21w bGV0ZV9UeXBlX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBUWVBFCiAgICAg IC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChOb2RlMSkKICAgICAgLS0gIERpc2NyaW1pbmFudF9T cGVjaWZpY2F0aW9ucyAoTGlzdDQpIChzZXQgdG8gTm9fTGlzdCBpZiBubwogICAgICAtLSAgIGRp c2NyaW1pbmFudCBwYXJ0LCBvciBpZiB0aGUgZGlzY3JpbWluYW50IHBhcnQgaXMgYW4KICAgICAg LS0gICB1bmtub3duIGRpc2NyaW1pbmFudCBwYXJ0KQogICAgICAtLSAgVW5rbm93bl9EaXNjcmlt aW5hbnRzX1ByZXNlbnQgKEZsYWcxMykgc2V0IGlmICg8PikgZGlzY3JpbWluYW50CgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDMuMTEgIERlY2xhcmF0aXZlIFBh cnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIERFQ0xB UkFUSVZFX1BBUlQgOjo9IHtERUNMQVJBVElWRV9JVEVNfQoKICAgICAgLS0gIE5vdGU6IGFsdGhv dWdoIHRoZSBwYXJzZXIgZW5mb3JjZXMgdGhlIHN5bnRhY3RpYyByZXF1aXJlbWVudCB0aGF0CiAg ICAgIC0tICBhIGRlY2xhcmF0aXZlIHBhcnQgY2FuIGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMs IHRoZSBzZW1hbnRpYwogICAgICAtLSAgcHJvY2Vzc2luZyBtYXkgYWRkIHN0YXRlbWVudHMgdG8g dGhlIGxpc3Qgb2YgYWN0aW9ucyBpbiBhCiAgICAgIC0tICBkZWNsYXJhdGl2ZSBwYXJ0LCBzbyB0 aGUgY29kZSBnZW5lcmF0b3Igc2hvdWxkIGJlIHByZXBhcmVkCiAgICAgIC0tICB0byBhY2NlcHQg YSBzdGF0ZW1lbnQgaW4gdGhpcyBwb3NpdGlvbi4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gMy4xMSAgRGVjbGFyYXRpdmUgSXRlbSAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgREVDTEFSQVRJVkVfSVRFTSA6Oj0gQkFT SUNfREVDTEFSQVRJVkVfSVRFTSB8IEJPRFkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gMy4xMSAgQmFzaWMgRGVjbGFyYXRpdmUgSXRlbSAtLQogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQkFTSUNfREVD TEFSQVRJVkVfSVRFTSA6Oj0KICAgICAgLS0gICAgQkFTSUNfREVDTEFSQVRJT04gfCBSRVBSRVNF TlRBVElPTl9DTEFVU0UgfCBVU0VfQ0xBVVNFCgogICAgICAtLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIDMuMTEgIEJvZHkgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEJPRFkg Ojo9IFBST1BFUl9CT0RZIHwgQk9EWV9TVFVCCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSAzLjExICBQcm9wZXIgQm9keSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgICAgLS0gIFBST1BFUl9CT0RZIDo6PQogICAgICAtLSAgICBTVUJQUk9HUkFNX0JP RFkgfCBQQUNLQUdFX0JPRFkgfCBUQVNLX0JPRFkgfCBQUk9URUNURURfQk9EWQoKICAgICAgLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDQuMSAgTmFtZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBOQU1FIDo6PQogICAgICAtLSAgICBESVJFQ1RfTkFNRSAgICAgICAgfCBFWFBM SUNJVF9ERVJFRkVSRU5DRQogICAgICAtLSAgfCBJTkRFWEVEX0NPTVBPTkVOVCAgfCBTTElDRQog ICAgICAtLSAgfCBTRUxFQ1RFRF9DT01QT05FTlQgfCBBVFRSSUJVVEVfUkVGRVJFTkNFCiAgICAg IC0tICB8IFRZUEVfQ09OVkVSU0lPTiAgICB8IEZVTkNUSU9OX0NBTEwKICAgICAgLS0gIHwgQ0hB UkFDVEVSX0xJVEVSQUwKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4x ICBEaXJlY3QgTmFtZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAg RElSRUNUX05BTUUgOjo9IElERU5USUZJRVIgfCBPUEVSQVRPUl9TWU1CT0wKCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDQuMSAgUHJlZml4IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tCgogICAgICAtLSAgUFJFRklYIDo6PSBOQU1FIHwgSU1QTElDSVRfREVSRUZFUkVOQ0UKCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4xICBFeHBsaWNp dCBEZXJlZmVyZW5jZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgRVhQTElDSVRfREVSRUZFUkVOQ0UgOjo9IE5BTUUgLiBhbGwKCiAgICAgIC0tICBO X0V4cGxpY2l0X0RlcmVmZXJlbmNlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBBTEwKICAgICAg LS0gIFByZWZpeCAoTm9kZTMpCiAgICAgIC0tICBEb19BY2Nlc3NfQ2hlY2sgKEZsYWcxMS1TZW0p CiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0LjEgIEltcGxpY2l0IERlcmVmZXJlbmNlIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBJTVBMSUNJ VF9ERVJFRkVSRU5DRSA6Oj0gTkFNRQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICAgIC0tIDQuMS4xICBJbmRleGVkIENvbXBvbmVudCAtLQogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBJTkRFWEVEX0NPTVBPTkVOVCA6Oj0gUFJF RklYIChFWFBSRVNTSU9OIHssIEVYUFJFU1NJT059KQoKICAgICAgLS0gIE5vdGU6IHRoZSBwYXJz ZXIgbWF5IGdlbmVyYXRlIHRoaXMgbm9kZSBpbiBzb21lIHNpdHVhdGlvbnMgd2hlcmUgaXQKICAg ICAgLS0gIHNob3VsZCBiZSBhIGZ1bmN0aW9uIGNhbGwuIFRoZSBzZW1hbnRpYyAgcGFzcyBtdXN0 IGNvcnJlY3QgdGhpcwogICAgICAtLSAgbWlzaWRlbnRpZmljYXRpb24gKHdoaWNoIGlzIGluZXZp dGFibGUgYXQgdGhlIHBhcnNlciBsZXZlbCkuCgogICAgICAtLSAgTl9JbmRleGVkX0NvbXBvbmVu dAogICAgICAtLSAgU2xvYyBjb250YWlucyBhIGNvcHkgb2YgdGhlIFNsb2MgdmFsdWUgb2YgdGhl IFByZWZpeAogICAgICAtLSAgUHJlZml4IChOb2RlMykKICAgICAgLS0gIEV4cHJlc3Npb25zIChM aXN0MSkKICAgICAgLS0gIERvX0FjY2Vzc19DaGVjayAoRmxhZzExLVNlbSkKICAgICAgLS0gIHBs dXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAgTm90ZTogaWYgYW55IG9mIHRoZSBz dWJzY3JpcHRzIHJlcXVpcmVzIGEgcmFuZ2UgY2hlY2ssIHRoZW4gdGhlCiAgICAgIC0tICBEb19S YW5nZV9DaGVjayBmbGFnIGlzIHNldCBvbiB0aGUgY29ycmVzcG9uZGluZyBleHByZXNzaW9uLCB3 aXRoCiAgICAgIC0tICB0aGUgaW5kZXggdHlwZSBiZWluZyBkZXRlcm1pbmVkIGZyb20gdGhlIHR5 cGUgb2YgdGhlIFByZWZpeCwgd2hpY2gKICAgICAgLS0gIHJlZmVyZW5jZXMgdGhlIGFycmF5IGJl aW5nIGluZGV4ZWQuCgogICAgICAtLSAgTm90ZTogaW4gYSBmdWxseSBhbmFseXplZCBhbmQgZXhw YW5kZWQgaW5kZXhlZCBjb21wb25lbnQgbm9kZSwgYW5kCiAgICAgIC0tICBoZW5jZSBpbiBhbnkg c3VjaCBub2RlIHRoYXQgZ2lnaSBzZWVzLCBpZiB0aGUgcHJlZml4IGlzIGFuIGFjY2VzcwogICAg ICAtLSAgdHlwZSwgdGhlbiBhbiBleHBsaWNpdCBkZXJlZmVyZW5jZSBvcGVyYXRpb24gaGFzIGJl ZW4gaW5zZXJ0ZWQuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4xLjIgIFNs aWNlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFNMSUNFIDo6PSBQUkVG SVggKERJU0NSRVRFX1JBTkdFKQoKICAgICAgLS0gIE5vdGU6IGFuIGltcGxpY2l0IHN1YnR5cGUg aXMgY3JlYXRlZCB0byBkZXNjcmliZSB0aGUgcmVzdWx0aW5nCiAgICAgIC0tICB0eXBlLCBzbyB0 aGF0IHRoZSBib3VuZHMgb2YgdGhpcyB0eXBlIGFyZSB0aGUgYm91bmRzIG9mIHRoZSBzbGljZS4K CiAgICAgIC0tICBOX1NsaWNlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBv ZiBwcmVmaXgKICAgICAgLS0gIFByZWZpeCAoTm9kZTMpCiAgICAgIC0tICBEaXNjcmV0ZV9SYW5n ZSAoTm9kZTQpCiAgICAgIC0tICBEb19BY2Nlc3NfQ2hlY2sgKEZsYWcxMS1TZW0pCiAgICAgIC0t ICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSA0LjEuMyAgU2VsZWN0ZWQgQ29tcG9uZW50IC0tCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBTRUxFQ1RFRF9DT01QT05F TlQgOjo9IFBSRUZJWCAuIFNFTEVDVE9SX05BTUUKCiAgICAgIC0tICBOb3RlOiBzZWxlY3RlZCBj b21wb25lbnRzIHRoYXQgYXJlIHNlbWFudGljYWxseSBleHBhbmRlZCBuYW1lcyBnZXQKICAgICAg LS0gIGNoYW5nZWQgZHVyaW5nIHNlbWFudGljIHByb2Nlc3NpbmcgaW50byB0aGUgc2VwYXJhdGUg Tl9FeHBhbmRlZF9OYW1lCiAgICAgIC0tICBub2RlLiBTZWUgZGVzY3JpcHRpb24gb2YgdGhpcyBu b2RlIGluIHRoZSBzZWN0aW9uIG9uIHNlbWFudGljIG5vZGVzLgoKICAgICAgLS0gIE5fU2VsZWN0 ZWRfQ29tcG9uZW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBwZXJpb2QKICAgICAgLS0gIFBy ZWZpeCAoTm9kZTMpCiAgICAgIC0tICBTZWxlY3Rvcl9OYW1lIChOb2RlMikKICAgICAgLS0gIEFz c29jaWF0ZWRfTm9kZSAoTm9kZTQtU2VtKQogICAgICAtLSAgRG9fQWNjZXNzX0NoZWNrIChGbGFn MTEtU2VtKQogICAgICAtLSAgRG9fRGlzY3JpbWluYW50X0NoZWNrIChGbGFnMTMtU2VtKQogICAg ICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDQuMS4zICBTZWxlY3RvciBOYW1lIC0tCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU0VMRUNUT1JfTkFNRSA6Oj0gSURFTlRJRklF UiB8IENIQVJBQ1RFUl9MSVRFUkFMIHwgT1BFUkFUT1JfU1lNQk9MCgogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0LjEuNCAgQXR0cmlidXRlIFJlZmVyZW5j ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFU VFJJQlVURV9SRUZFUkVOQ0UgOjo9IFBSRUZJWCAnIEFUVFJJQlVURV9ERVNJR05BVE9SCgogICAg ICAtLSAgTm90ZTogdGhlIHN5bnRheCBpcyBxdWl0ZSBhbWJpZ3VvdXMgYXQgdGhpcyBwb2ludC4g Q29uc2lkZXI6CgogICAgICAtLSAgICBBJ0xlbmd0aCAoWCkgIFggaXMgcGFydCBvZiB0aGUgYXR0 cmlidXRlIGRlc2lnbmF0b3IKICAgICAgLS0gICAgQSdQb3MgKFgpICAgICBYIGlzIGFuIGV4cGxp Y2l0IGFjdHVhbCBwYXJhbWV0ZXIgb2YgZnVuY3Rpb24gQSdQb3MKICAgICAgLS0gICAgQSdDbGFz cyAoWCkgICBYIGlzIHRoZSBleHByZXNzaW9uIG9mIGEgdHlwZSBjb252ZXJzaW9uCgogICAgICAt LSAgSXQgd291bGQgYmUgcG9zc2libGUgZm9yIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggdGhl c2UgY2FzZXMKICAgICAgLS0gIGJ5IGxvb2tpbmcgYXQgdGhlIGF0dHJpYnV0ZSBpZGVudGlmaWVy LiBIb3dldmVyLCB0aGF0IHdvdWxkIG1lYW4KICAgICAgLS0gIG1vcmUgd29yayBpbiBpbnRyb2R1 Y2luZyBuZXcgaW1wbGVtZW50YXRpb24gZGVmaW5lZCBhdHRyaWJ1dGVzLAogICAgICAtLSAgYW5k IGFsc28gaXQgd291bGQgbWVhbiB0aGF0IHNwZWNpYWwgcHJvY2Vzc2luZyBmb3IgYXR0cmlidXRl cwogICAgICAtLSAgd291bGQgYmUgc2NhdHRlcmVkIGFyb3VuZCwgaW5zdGVhZCBvZiBiZWluZyBj ZW50cmFsaXplZCBpbiB0aGUKICAgICAgLS0gIHNlbWFudGljIHJvdXRpbmUgdGhhdCBoYW5kbGVz IGFuIE5fQXR0cmlidXRlX1JlZmVyZW5jZSBub2RlLgogICAgICAtLSAgQ29uc2VxdWVudGx5LCB0 aGUgcGFyc2VyIGluIGFsbCB0aGUgYWJvdmUgY2FzZXMgc3RvcmVzIHRoZQogICAgICAtLSAgZXhw cmVzc2lvbiAoWCBpbiB0aGVzZSBleGFtcGxlcykgYXMgYSBzaW5nbGUgZWxlbWVudCBsaXN0IGlu CiAgICAgIC0tICBpbiB0aGUgRXhwcmVzc2lvbnMgZmllbGQgb2YgdGhlIE5fQXR0cmlidXRlX1Jl ZmVyZW5jZSBub2RlLgoKICAgICAgLS0gIFNpbWlsYXJseSwgZm9yIGF0dHJpYnV0ZXMgbGlrZSBN YXggd2hpY2ggdGFrZSB0d28gYXJndW1lbnRzLAogICAgICAtLSAgd2Ugc3RvcmUgdGhlIHR3byBh cmd1bWVudHMgYXMgYSB0d28gZWxlbWVudCBsaXN0IGluIHRoZQogICAgICAtLSAgRXhwcmVzc2lv bnMgZmllbGQuIE9mIGNvdXJzZSBpdCBpcyBjbGVhciBhdCBwYXJzZSB0aW1lIHRoYXQKICAgICAg LS0gIHRoaXMgY2FzZSBpcyByZWFsbHkgYSBmdW5jdGlvbiBjYWxsIHdpdGggYW4gYXR0cmlidXRl IGFzIHRoZQogICAgICAtLSAgcHJlZml4LCBidXQgaXQgdHVybnMgb3V0IHRvIGJlIGNvbnZlbmll bnQgdG8gaGFuZGxlIHRoZSB0d28KICAgICAgLS0gIGFyZ3VtZW50IGNhc2UgaW4gYSBzaW1pbGFy IG1hbm5lciB0byB0aGUgb25lIGFyZ3VtZW50IGNhc2UsCiAgICAgIC0tICBhbmQgaW5kZWVkIGlu IGdlbmVyYWwgdGhlIHBhcnNlciB3aWxsIGFjY2VwdCBhbnkgbnVtYmVyIG9mCiAgICAgIC0tICBl eHByZXNzaW9ucyBpbiB0aGlzIHBvc2l0aW9uIGFuZCBzdG9yZSB0aGVtIGFzIGEgbGlzdCBpbiB0 aGUKICAgICAgLS0gIGF0dHJpYnV0ZSByZWZlcmVuY2Ugbm9kZS4gVGhpcyBhbGxvd3MgZm9yIGZ1 dHVyZSBhZGRpdGlvbiBvZgogICAgICAtLSAgYXR0cmlidXRlcyB0aGF0IHRha2UgbW9yZSB0aGFu IHR3byBhcmd1bWVudHMuCgogICAgICAtLSAgTm90ZTogbmFtZWQgYXNzb2NpYXRlcyBhcmUgbm90 IHBlcm1pdHRlZCBpbiBmdW5jdGlvbiBjYWxscyB3aGVyZQogICAgICAtLSAgdGhlIGZ1bmN0aW9u IGlzIGFuIGF0dHJpYnV0ZSAoc2VlIFJNIDYuNCgzKSkgc28gaXQgaXMgbGVnaXRpbWF0ZQogICAg ICAtLSAgdG8gc2tpcCB0aGUgbm9ybWFsIHN1YnByb2dyYW0gYXJndW1lbnQgcHJvY2Vzc2luZy4K CiAgICAgIC0tICBOb3RlOiBmb3IgdGhlIGF0dHJpYnV0ZXMgd2hvc2UgZGVzaWduYXRvcnMgYXJl IHRlY2huaWNhbGx5IGtleXdvcmRzLAogICAgICAtLSAgaS5lLiBkaWdpdHMsIGFjY2VzcywgZGVs dGEsIHJhbmdlLCB0aGUgQXR0cmlidXRlX05hbWUgZmllbGQgY29udGFpbnMKICAgICAgLS0gIHRo ZSBjb3JyZXNwb25kaW5nIG5hbWUsIGV2ZW4gdGhvdWdoIG5vIGlkZW50aWZpZXIgaXMgaW52b2x2 ZWQuCgogICAgICAtLSAgVGhlIGZsYWcgT0tfRm9yX1N0cmVhbSBpcyB1c2VkIGluIGdlbmVyYXRl ZCBjb2RlIHRvIGluZGljYXRlIHRoYXQKICAgICAgLS0gIGEgc3RyZWFtIGF0dHJpYnV0ZSBpcyBw ZXJtaXNzaWJsZSBmb3IgYSBsaW1pdGVkIHR5cGUsIGFuZCByZXN1bHRzCiAgICAgIC0tICBpbiB0 aGUgdXNlIG9mIHRoZSBzdHJlYW0gYXR0cmlidXRlIGZvciB0aGUgdW5kZXJseWluZyBmdWxsIHR5 cGUsCiAgICAgIC0tICBvciBpbiB0aGUgY2FzZSBvZiBhIHByb3RlY3RlZCB0eXBlLCB0aGUgY29t cG9uZW50cyAoaW5jbHVkaW5nIGFueQogICAgICAtLSAgZGlzcmltaW5hbnRzKSBhcmUgbWVyZWx5 IHN0cmVhbWVkIGluIG9yZGVyLgoKICAgICAgLS0gIFNlZSBFeHBfQXR0ciBmb3IgYSBjb21wbGV0 ZSBkZXNjcmlwdGlvbiBvZiB3aGljaCBhdHRyaWJ1dGVzIGFyZQogICAgICAtLSAgcGFzc2VkIG9u dG8gR2lnaSwgYW5kIHdoaWNoIGFyZSBoYW5kbGVkIGVudGlyZWx5IGJ5IHRoZSBmcm9udCBlbmQu CgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogRm9yIHRoZSBQb3MgYXR0cmlidXRlLCB0aGUg cHJlZml4IGNhbm5vdCBiZQogICAgICAtLSAgYSBub24tc3RhbmRhcmQgZW51bWVyYXRpb24gdHlw ZSBvciBhIG5vbnplcm8vemVybyBzZW1hbnRpY3MKICAgICAgLS0gIGJvb2xlYW4gdHlwZSwgc28g dGhlIHZhbHVlIGlzIHNpbXBseSB0aGUgc3RvcmVkIHJlcHJlc2VudGF0aW9uLgoKICAgICAgLS0g IE5fQXR0cmlidXRlX1JlZmVyZW5jZQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gYXBvc3Ryb3Bo ZQogICAgICAtLSAgUHJlZml4IChOb2RlMykKICAgICAgLS0gIEF0dHJpYnV0ZV9OYW1lIChOYW1l MikgaWRlbnRpZmllciBuYW1lIGZyb20gYXR0cmlidXRlIGRlc2lnbmF0b3IKICAgICAgLS0gIEV4 cHJlc3Npb25zIChMaXN0MSkgKHNldCB0byBOb19MaXN0IGlmIG5vIGFzc29jaWF0ZWQgZXhwcmVz c2lvbnMpCiAgICAgIC0tICBFbnRpdHkgKE5vZGU0LVNlbSkgdXNlZCBpZiB0aGUgYXR0cmlidXRl IHlpZWxkcyBhIHR5cGUKICAgICAgLS0gIEFzc29jaWF0ZWRfTm9kZSAoTm9kZTQtU2VtKQogICAg ICAtLSAgRG9fQWNjZXNzX0NoZWNrIChGbGFnMTEtU2VtKQogICAgICAtLSAgRG9fT3ZlcmZsb3df Q2hlY2sgKEZsYWcxNy1TZW0pCiAgICAgIC0tICBSZWR1bmRhbnRfVXNlIChGbGFnMTMtU2VtKQog ICAgICAtLSAgT0tfRm9yX1N0cmVhbSAoRmxhZzQtU2VtKQogICAgICAtLSAgcGx1cyBmaWVsZHMg Zm9yIGV4cHJlc3Npb24KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSA0LjEuNCAgQXR0cmlidXRlIERlc2lnbmF0b3IgLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQVRUUklCVVRFX0RFU0lHTkFUT1IgOjo9 CiAgICAgIC0tICAgIElERU5USUZJRVIgWyhzdGF0aWNfRVhQUkVTU0lPTildCiAgICAgIC0tICB8 IGFjY2VzcyB8IGRlbHRhIHwgZGlnaXRzCgogICAgICAtLSAgVGhlcmUgaXMgbm8gZXhwbGljaXQg bm9kZSBpbiB0aGUgdHJlZSBmb3IgYW4gYXR0cmlidXRlIGRlc2lnbmF0b3IuCiAgICAgIC0tICBJ bnN0ZWFkIHRoZSBBdHRyaWJ1dGVfTmFtZSBhbmQgRXhwcmVzc2lvbnMgZmllbGRzIG9mIHRoZSBw YXJlbnQKICAgICAgLS0gIG5vZGUgKE5fQXR0cmlidXRlX1JlZmVyZW5jZSBub2RlKSBob2xkIHRo ZSBpbmZvcm1hdGlvbi4KCiAgICAgIC0tICBOb3RlOiBpZiBBQ0NFU1MsIERFTFRBIG9yIERJR0lU UyBhcHBlYXJzIGluIGFuIGF0dHJpYnV0ZQogICAgICAtLSAgZGVzaWduYXRvciwgdGhlbiB0aGV5 IGFyZSB0cmVhdGVkIGFzIGlkZW50aWZpZXJzIGludGVybmFsbHkKICAgICAgLS0gIHJhdGhlciB0 aGFuIHRoZSBrZXl3b3JkcyBvZiB0aGUgc2FtZSBuYW1lLgoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4xLjQgIFJhbmdlIEF0dHJpYnV0ZSBS ZWZlcmVuY2UgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBSQU5HRV9BVFRSSUJVVEVfUkVGRVJFTkNFIDo6PSBQUkVGSVggJyBSQU5HRV9B VFRSSUJVVEVfREVTSUdOQVRPUgoKICAgICAgLS0gIEEgcmFuZ2UgYXR0cmlidXRlIHJlZmVyZW5j ZSBpcyByZXByZXNlbnRlZCBpbiB0aGUgdHJlZSB1c2luZyB0aGUKICAgICAgLS0gIG5vcm1hbCBO X0F0dHJpYnV0ZV9SZWZlcmVuY2Ugbm9kZS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0LjEuNCAgUmFuZ2UgQXR0cmlidXRlIERlc2lnbmF0 b3IgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAg ICAtLSAgUkFOR0VfQVRUUklCVVRFX0RFU0lHTkFUT1IgOjo9IFJhbmdlIFsoc3RhdGljX0VYUFJF U1NJT04pXQoKICAgICAgLS0gIEEgcmFuZ2UgYXR0cmlidXRlIGRlc2lnbmF0b3IgaXMgcmVwcmVz ZW50ZWQgaW4gdGhlIHRyZWUgdXNpbmcgdGhlCiAgICAgIC0tICBub3JtYWwgTl9BdHRyaWJ1dGVf UmVmZXJlbmNlIG5vZGUuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0LjMg IEFnZ3JlZ2F0ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFHR1JF R0FURSA6Oj0KICAgICAgLS0gICAgUkVDT1JEX0FHR1JFR0FURSB8IEVYVEVOU0lPTl9BR0dSRUdB VEUgfCBBUlJBWV9BR0dSRUdBVEUKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDQuMy4xICBSZWNvcmQgQWdncmVnYXRlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkVDT1JEX0FHR1JFR0FURSA6Oj0gKFJFQ09SRF9D T01QT05FTlRfQVNTT0NJQVRJT05fTElTVCkKCiAgICAgIC0tICBOX0FnZ3JlZ2F0ZQogICAgICAt LSAgU2xvYyBwb2ludHMgdG8gbGVmdCBwYXJlbnRoZXNpcwogICAgICAtLSAgRXhwcmVzc2lvbnMg KExpc3QxKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm9uZSBvciBudWxsIHJlY29yZCBjYXNlKQogICAg ICAtLSAgQ29tcG9uZW50X0Fzc29jaWF0aW9ucyAoTGlzdDIpIChzZXQgdG8gTm9fTGlzdCBpZiBu b25lKQogICAgICAtLSAgTnVsbF9SZWNvcmRfUHJlc2VudCAoRmxhZzE3KQogICAgICAtLSAgQWdn cmVnYXRlX0JvdW5kcyAoTm9kZTMtU2VtKQogICAgICAtLSAgQXNzb2NpYXRlZF9Ob2RlIChOb2Rl NC1TZW0pCiAgICAgIC0tICBTdGF0aWNfUHJvY2Vzc2luZ19PSyAoRmxhZzQtU2VtKQogICAgICAt LSAgQ29tcGlsZV9UaW1lX0tub3duX0FnZ3JlZ2F0ZSAoRmxhZzE4LVNlbSkKICAgICAgLS0gIEV4 cGFuc2lvbl9EZWxheWVkIChGbGFnMTEtU2VtKQogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4 cHJlc3Npb24KCiAgICAgIC0tICBOb3RlOiB0aGlzIHN0cnVjdHVyZSBpcyB1c2VkIGZvciBib3Ro IHJlY29yZCBhbmQgYXJyYXkgYWdncmVnYXRlcwogICAgICAtLSAgc2luY2UgdGhlIHR3byBjYXNl cyBhcmUgbm90IHNlcGFyYWJsZSBieSB0aGUgcGFyc2VyLiBUaGUgcGFyc2VyCiAgICAgIC0tICBt YWtlcyBubyBhdHRlbXB0IHRvIGVuZm9yY2UgY29uc2lzdGVuY3kgaGVyZSwgc28gaXQgaXMgdXAg dG8gdGhlCiAgICAgIC0tICBzZW1hbnRpYyBwaGFzZSB0byBtYWtlIHN1cmUgdGhhdCB0aGUgYWdn cmVnYXRlIGlzIGNvbnNpc3RlbnQgKGkuZS4KICAgICAgLS0gIHRoYXQgaXQgaXMgbm90IGEgImhh bGYtYW5kLWhhbGYiIGNhc2UgdGhhdCBtaXhlcyByZWNvcmQgYW5kIGFycmF5CiAgICAgIC0tICBz eW50YXguIEluIHBhcnRpY3VsYXIsIGZvciBhIHJlY29yZCBhZ2dyZWdhdGUsIHRoZSBleHByZXNz aW9ucwogICAgICAtLSAgZmllbGQgd2lsbCBiZSBzZXQgaWYgdGhlcmUgYXJlIHBvc2l0aW9uYWwg YXNzb2NpYXRpb25zLgoKICAgICAgLS0gIE5vdGU6IGdpZ2kvZ2NjIGNhbiBoYW5kbGUgYXJyYXkg YWdncmVnYXRlcyBjb3JyZWN0bHkgcHJvdmlkaW5nIHRoYXQKICAgICAgLS0gIHRoZXkgYXJlIGVu dGlyZWx5IHBvc2l0aW9uYWwsIGFuZCB0aGUgYXJyYXkgc3VidHlwZSBpbnZvbHZlZCBoYXMgYQog ICAgICAtLSAga25vd24gYXQgY29tcGlsZSB0aW1lIGxlbmd0aCBhbmQgaXMgbm90IGJpdCBwYWNr ZWQsIG9yIGEgY29udmVudGlvbgogICAgICAtLSAgRm9ydHJhbiBhcnJheSB3aXRoIG1vcmUgdGhh biBvbmUgZGltZW5zaW9uLiBJZiB0aGVzZSBjb25kaXRpb25zCiAgICAgIC0tICBhcmUgbm90IG1l dCwgdGhlbiB0aGUgZnJvbnQgZW5kIG11c3QgdHJhbnNsYXRlIHRoZSBhZ2dyZWdhdGUgaW50bwog ICAgICAtLSAgYW4gYXBwcm9wcmlhdGUgc2V0ICBvZiBhc3NpZ25tZW50cyBpbnRvIGEgdGVtcG9y YXJ5LgoKICAgICAgLS0gIE5vdGU6IGZvciB0aGUgcmVjb3JkIGFnZ3JlZ2F0ZSBjYXNlLCBnaWdp L2djYyBjYW4gaGFuZGxlIGFsbCBjYXNlcwogICAgICAtLSAgb2YgcmVjb3JkIGFnZ3JlZ2F0ZXMs IGluY2x1ZGluZyB0aG9zZSBmb3IgcGFja2VkLCBhbmQgcmVwLWNsYXVzZWQKICAgICAgLS0gIHJl Y29yZHMsIGFuZCBhbHNvIHZhcmlhbnQgcmVjb3JkcywgcHJvdmlkaW5nIHRoYXQgdGhlcmUgYXJl IG5vCiAgICAgIC0tICB2YXJpYWJsZSBsZW5ndGggZmllbGRzIHdob3NlIHNpemUgaXMgbm90IGtu b3duIGF0IHJ1bnRpbWUsIGFuZAogICAgICAtLSAgcHJvdmlkaW5nIHRoYXQgdGhlIGFnZ3JlZ2F0 ZSBpcyBwcmVzZW50ZWQgaW4gZnVsbHkgbmFtZWQgZm9ybS4KCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4zLjEgIFJlY29yZCBD b21wb25lbnQgQXNzb2NpYXRpb24gTGlzdCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkVDT1JEX0NPTVBPTkVOVF9BU1NP Q0lBVElPTl9MSVNUIDo6PQogICAgICAtLSAgICAgUkVDT1JEX0NPTVBPTkVOVF9BU1NPQ0lBVElP TiB7LCBSRUNPUkRfQ09NUE9ORU5UX0FTU09DSUFUSU9OfQogICAgICAtLSAgIHwgbnVsbCByZWNv cmQKCiAgICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNpdCBub2RlIGluIHRoZSB0cmVlIGZvciBh IHJlY29yZCBjb21wb25lbnQKICAgICAgLS0gIGFzc29jaWF0aW9uIGxpc3QuIEluc3RlYWQgdGhl IE51bGxfUmVjb3JkX1ByZXNlbnQgZmxhZyBpcyBzZXQgaW4KICAgICAgLS0gIHRoZSBwYXJlbnQg bm9kZSBmb3IgdGhlIE5VTEwgUkVDT1JEIGNhc2UuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4zLjEgIFJlY29y ZCBDb21wb25lbnQgQXNzb2NpYXRpb24gKGFsc28gNC4zLjMpIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFJF Q09SRF9DT01QT05FTlRfQVNTT0NJQVRJT04gOjo9CiAgICAgIC0tICAgIFtDT01QT05FTlRfQ0hP SUNFX0xJU1QgPT5dIEVYUFJFU1NJT04KCiAgICAgIC0tICBOX0NvbXBvbmVudF9Bc3NvY2lhdGlv bgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gZmlyc3Qgc2VsZWN0b3IgbmFtZQogICAgICAtLSAg Q2hvaWNlcyAoTGlzdDEpCiAgICAgIC0tICBMb29wX0FjdGlvbnMgKExpc3QyLVNlbSkKICAgICAg LS0gIEV4cHJlc3Npb24gKE5vZGUzKQoKICAgICAgLS0gIE5vdGU6IHRoaXMgc3RydWN0dXJlIGlz IHVzZWQgZm9yIGJvdGggcmVjb3JkIGNvbXBvbmVudCBhc3NvY2lhdGlvbnMKICAgICAgLS0gIGFu ZCBhcnJheSBjb21wb25lbnQgYXNzb2NpYXRpb25zLCBzaW5jZSB0aGUgdHdvIGNhc2VzIGFyZW4n dCBhbHdheXMKICAgICAgLS0gIHNlcGFyYWJsZSBieSB0aGUgcGFyc2VyLiBUaGUgY2hvaWNlcyBs aXN0IG1heSByZXByZXNlbnQgZWl0aGVyIGEKICAgICAgLS0gIGxpc3Qgb2Ygc2VsZWN0b3IgbmFt ZXMgaW4gdGhlIHJlY29yZCBhZ2dyZWdhdGUgY2FzZSwgb3IgYSBsaXN0IG9mCiAgICAgIC0tICBk aXNjcmV0ZSBjaG9pY2VzIGluIHRoZSBhcnJheSBhZ2dyZWdhdGUgY2FzZSBvciBhbiBOX090aGVy c19DaG9pY2UKICAgICAgLS0gIG5vZGUgKHdoaWNoIGFwcGVhcnMgYXMgYSBzaW5nbGV0b24gbGlz dCkuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0g IDQuMy4xICBDb21tcG9uZW50IENob2ljZSBMaXN0IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIENPTVBPTkVOVF9DSE9JQ0VfTElTVCA6Oj0K ICAgICAgLS0gICAgY29tcG9uZW50X1NFTEVDVE9SX05BTUUge3wgY29tcG9uZW50X1NFTEVDVE9S X05BTUV9CiAgICAgIC0tICB8IG90aGVycwoKICAgICAgLS0gIFRoZSBlbnRyaWVzIG9mIGEgY29t cG9uZW50IGNob2ljZSBsaXN0IGFwcGVhciBpbiB0aGUgQ2hvaWNlcyBsaXN0CiAgICAgIC0tICBv ZiB0aGUgYXNzb2NpYXRlZCBOX0NvbXBvbmVudF9Bc3NvY2lhdGlvbiwgYXMgZWl0aGVyIHNlbGVj dG9yCiAgICAgIC0tICBuYW1lcywgb3IgYXMgYW4gTl9PdGhlcnNfQ2hvaWNlIG5vZGUuCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0LjMuMiAgRXh0ZW5z aW9uIEFnZ3JlZ2F0ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIEVYVEVOU0lPTl9BR0dSRUdBVEUgOjo9CiAgICAgIC0tICAgIChBTkNFU1RPUl9Q QVJUIHdpdGggUkVDT1JEX0NPTVBPTkVOVF9BU1NPQ0lBVElPTl9MSVNUKQoKICAgICAgLS0gIE5v dGU6IGV4dGVuc2lvbiBhZ2dyZWdhdGVzIGFyZSBub3QgcGVybWl0dGVkIGluIEFkYSA4MyBtb2Rl CgogICAgICAtLSAgTl9FeHRlbnNpb25fQWdncmVnYXRlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0 byBsZWZ0IHBhcmVudGhlc2lzCiAgICAgIC0tICBBbmNlc3Rvcl9QYXJ0IChOb2RlMykKICAgICAg LS0gIEFzc29jaWF0ZWRfTm9kZSAoTm9kZTQtU2VtKQogICAgICAtLSAgRXhwcmVzc2lvbnMgKExp c3QxKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm9uZSBvciBudWxsIHJlY29yZCBjYXNlKQogICAgICAt LSAgQ29tcG9uZW50X0Fzc29jaWF0aW9ucyAoTGlzdDIpIChzZXQgdG8gTm9fTGlzdCBpZiBub25l KQogICAgICAtLSAgTnVsbF9SZWNvcmRfUHJlc2VudCAoRmxhZzE3KQogICAgICAtLSAgRXhwYW5z aW9uX0RlbGF5ZWQgKEZsYWcxMS1TZW0pCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVz c2lvbgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4zLjIgIEFu Y2VzdG9yIFBhcnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0t ICBBTkNFU1RPUl9QQVJUIDo6PSBFWFBSRVNTSU9OIHwgU1VCVFlQRV9NQVJLCgogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDQuMy4zICBBcnJheSBBZ2dyZWdhdGUg LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFSUkFZX0FH R1JFR0FURSA6Oj0KICAgICAgLS0gICAgUE9TSVRJT05BTF9BUlJBWV9BR0dSRUdBVEUgfCBOQU1F RF9BUlJBWV9BR0dSRUdBVEUKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgICAtLSA0LjMuMyAgUG9zaXRpb25hbCBBcnJheSBBZ2dyZWdhdGUgLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUE9T SVRJT05BTF9BUlJBWV9BR0dSRUdBVEUgOjo9CiAgICAgIC0tICAgIChFWFBSRVNTSU9OLCBFWFBS RVNTSU9OIHssIEVYUFJFU1NJT059KQogICAgICAtLSAgfCAoRVhQUkVTU0lPTiB7LCBFWFBSRVNT SU9OfSwgb3RoZXJzID0+IEVYUFJFU1NJT04pCgogICAgICAtLSAgU2VlIFJlY29yZF9BZ2dyZWdh dGUgKDQuMy4xKSBmb3Igbm9kZSBzdHJ1Y3R1cmUKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4zLjMgIE5hbWVkIEFycmF5IEFnZ3JlZ2F0ZSAtLQog ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgTkFNRURf QVJSQVlfQUdHUkVHQVRFIDo6PQogICAgICAtLSAgfCAoQVJSQVlfQ09NUE9ORU5UX0FTU09DSUFU SU9OIHssIEFSUkFZX0NPTVBPTkVOVF9BU1NPQ0lBVElPTn0pCgogICAgICAtLSAgU2VlIFJlY29y ZF9BZ2dyZWdhdGUgKDQuMy4xKSBmb3Igbm9kZSBzdHJ1Y3R1cmUKCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNC4zLjMgIEFycmF5IENvbXBv bmVudCBBc3NvY2lhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICAgICAtLSAgQVJSQVlfQ09NUE9ORU5UX0FTU09DSUFUSU9OIDo6PQogICAg ICAtLSAgICBESVNDUkVURV9DSE9JQ0VfTElTVCA9PiBFWFBSRVNTSU9OCgogICAgICAtLSAgU2Vl IFJlY29yZF9Db21wb25lbnRfQXNzb2NpYXRpb24gKDQuMy4xKSBmb3Igbm9kZSBzdHJ1Y3R1cmUK CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDQuNCAgRXhwcmVzc2lvbi9SZWxhdGlvbi9UZXJtL0ZhY3Rvci9QcmltYXJ5IC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAgICAtLSAgRVhQUkVTU0lPTiA6Oj0KICAgICAgLS0gICAgUkVMQVRJT04ge2FuZCBSRUxB VElPTn0gfCBSRUxBVElPTiB7YW5kIHRoZW4gUkVMQVRJT059CiAgICAgIC0tICB8IFJFTEFUSU9O IHtvciBSRUxBVElPTn0gIHwgUkVMQVRJT04ge29yIGVsc2UgUkVMQVRJT059CiAgICAgIC0tICB8 IFJFTEFUSU9OIHt4b3IgUkVMQVRJT059CgogICAgICAtLSAgUkVMQVRJT04gOjo9CiAgICAgIC0t ICAgIFNJTVBMRV9FWFBSRVNTSU9OIFtSRUxBVElPTkFMX09QRVJBVE9SIFNJTVBMRV9FWFBSRVNT SU9OXQogICAgICAtLSAgfCBTSU1QTEVfRVhQUkVTU0lPTiBbbm90XSBpbiBSQU5HRQogICAgICAt LSAgfCBTSU1QTEVfRVhQUkVTU0lPTiBbbm90XSBpbiBTVUJUWVBFX01BUksKCiAgICAgIC0tICBT SU1QTEVfRVhQUkVTU0lPTiA6Oj0KICAgICAgLS0gICAgW1VOQVJZX0FERElOR19PUEVSQVRPUl0g VEVSTSB7QklOQVJZX0FERElOR19PUEVSQVRPUiBURVJNfQoKICAgICAgLS0gIFRFUk0gOjo9IEZB Q1RPUiB7TVVMVElQTFlJTkdfT1BFUkFUT1IgRkFDVE9SfQoKICAgICAgLS0gIEZBQ1RPUiA6Oj0g UFJJTUFSWSBbKiogUFJJTUFSWV0gfCBhYnMgUFJJTUFSWSB8IG5vdCBQUklNQVJZCgogICAgICAt LSAgTm8gbm9kZXMgYXJlIGdlbmVyYXRlZCBmb3IgYW55IG9mIHRoZXNlIGNvbnN0cnVjdHMuIElu c3RlYWQsIHRoZQogICAgICAtLSAgbm9kZSBmb3IgdGhlIG9wZXJhdG9yIGFwcGVhcnMgZGlyZWN0 bHkuIFdoZW4gd2UgcmVmZXIgdG8gYW4KICAgICAgLS0gIGV4cHJlc3Npb24gaW4gdGhpcyBkZXNj cmlwdGlvbiwgd2UgbWVhbiBhbnkgb2YgdGhlIHBvc3NpYmxlCiAgICAgIC0tICBjb25zaXN0dWVu dCBjb21wb25lbnRzIG9mIGFuIGV4cHJlc3Npb24gKGUuZy4gaWRlbnRpZmllciBpcwogICAgICAt LSAgYW4gZXhhbXBsZSBvZiBhbiBleHByZXNzaW9uKS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSA0LjQgIFByaW1hcnkgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICAg ICAtLSAgUFJJTUFSWSA6Oj0KICAgICAgLS0gICAgTlVNRVJJQ19MSVRFUkFMICB8IG51bGwKICAg ICAgLS0gIHwgU1RSSU5HX0xJVEVSQUwgICB8IEFHR1JFR0FURQogICAgICAtLSAgfCBOQU1FICAg ICAgICAgICAgIHwgUVVBTElGSUVEX0VYUFJFU1NJT04KICAgICAgLS0gIHwgQUxMT0NBVE9SICAg ICAgICB8IChFWFBSRVNTSU9OKQoKICAgICAgLS0gIFVzdWFsbHkgdGhlcmUgaXMgbm8gZXhwbGlj aXQgbm9kZSBpbiB0aGUgdHJlZSBmb3IgcHJpbWFyeS4gSW5zdGVhZAogICAgICAtLSAgdGhlIGNv bnN0aXR1ZW50IChlLmcuIEFHR1JFR0FURSkgYXBwZWFycyBkaXJlY3RseS4gVGhlcmUgYXJlIHR3 bwogICAgICAtLSAgZXhjZXB0aW9ucy4gRmlyc3QsIHRoZXJlIGlzIGFuIGV4cGxpY2l0IG5vZGUg Zm9yIGEgbnVsbCBwcmltYXJ5LgoKICAgICAgLS0gIE5fTnVsbAogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gTlVMTAogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0t ICBTZWNvbmQsIHRoZSBjYXNlIG9mIChFWFBSRVNTSU9OKSBpcyBoYW5kbGVkIHNwZWNpYWxseS4g QWRhIHJlcXVpcmVzCiAgICAgIC0tICB0aGF0IHRoZSBwYXJzZXIga2VlcCB0cmFjayBvZiB3aGlj aCBzdWJleHByZXNzaW9ucyBhcmUgZW5jbG9zZWQKICAgICAgLS0gIGluIHBhcmVudGhlc2VzLCBh bmQgaG93IG1hbnkgbGV2ZWxzIG9mIHBhcmVudGhlc2VzIGFyZSB1c2VkLiBUaGlzCiAgICAgIC0t ICBpbmZvcm1hdGlvbiBpcyByZXF1aXJlZCBmb3Igb3B0aW1pemF0aW9uIHB1cnBvc2VzLCBhbmQg YWxzbyBmb3IKICAgICAgLS0gIHNvbWUgc2VtYW50aWMgY2hlY2tzIChlLmcuICgoKDEpKSkgaW4g YSBwcm9jZWR1cmUgc3BlYyBkb2VzIG5vdAogICAgICAtLSAgY29uZm9ybSB3aXRoICgoKCgxKSkp KSBpbiB0aGUgYm9keSkuCgogICAgICAtLSAgVGhlIHBhcmVudGhlc2VzIGFyZSByZWNvcmRlZCBi eSBrZWVwaW5nIGEgUGFyZW5fQ291bnQgZmllbGQgaW4gZXZlcnkKICAgICAgLS0gIHN1YmV4cHJl c3Npb24gbm9kZSAoaXQgaXMgYWN0dWFsbHkgcHJlc2VudCBpbiBhbGwgbm9kZXMsIGJ1dCBvbmx5 CiAgICAgIC0tICB1c2VkIGluIHN1YmV4cHJlc3Npb24gbm9kZXMpLiBUaGlzIGNvdW50IHJlY29y ZHMgdGhlIG51bWJlciBvZgogICAgICAtLSAgbGV2ZWxzIG9mIHBhcmVudGhlc2VzLiBJZiB0aGUg bnVtYmVyIG9mIGxldmVscyBpbiB0aGUgc291cmNlIGV4Y2VlZHMKICAgICAgLS0gIHRoZSBtYXhp bXVtIGFjY29tb2RhdGVkIGJ5IHRoaXMgY291bnQsIHRoZW4gdGhlIGNvdW50IGlzIHNpbXBseSBs ZWZ0CiAgICAgIC0tICBhdCB0aGUgbWF4aW11bSB2YWx1ZS4gVGhpcyBtZWFucyB0aGF0IHRoZXJl IGFyZSBzb21lIHBhdGhhbG9naWNhbAogICAgICAtLSAgY2FzZXMgb2YgZmFpbHVyZSB0byBkZXRl Y3QgY29uZm9ybWFuY2UgZmFpbHVyZXMgKGUuZy4gYW4gZXhwcmVzc2lvbgogICAgICAtLSAgd2l0 aCA1MDAgbGV2ZWxzIG9mIHBhcmVucyB3aWxsIGNvbmZvcm0gd2l0aCBvbmUgd2l0aCA1MDEgbGV2 ZWxzKSwKICAgICAgLS0gIGJ1dCB3ZSBkbyBub3QgbmVlZCB0byBsb3NlIHNsZWVwIG92ZXIgdGhp cy4KCiAgICAgIC0tICBIaXN0b3JpY2FsIG5vdGU6IGluIHZlcnNpb25zIG9mIEdOQVQgcHJpb3Ig dG8gMS43NSwgdGhlcmUgd2FzIGEgbm9kZQogICAgICAtLSAgdHlwZSBOX1BhcmVudGhlc2l6ZWRf RXhwcmVzc2lvbiB1c2VkIHRvIGFjY3VyYXRlbHkgcmVjb3JkIHVubGltaXRlZAogICAgICAtLSAg bnVtYmVycyBvZiBsZXZlbHMgb2YgcGFyZW50aGVzZXMuIEhvd2V2ZXIsIGl0IHR1cm5lZCBvdXQg dG8gYmUgYQogICAgICAtLSAgcmVhbCBudWlzYW5jZSB0byBoYXZlIHRvIHRha2UgaW50byBhY2Nv dW50IHRoZSBwb3NzaWJsZSBwcmVzZW5jZSBvZgogICAgICAtLSAgdGhpcyBub2RlIGR1cmluZyBz ZW1hbnRpYyBhbmFseXNpcywgc2luY2UgYmFzaWNhbGx5IHBhcmVudGhlc2VzIGhhdmUKICAgICAg LS0gIHplcm8gcmVsZXZhbmNlIHRvIHNlbWFudGljIGFuYWx5c2lzLgoKICAgICAgLS0gIE5vdGU6 IHRoZSBsZXZlbCBvZiBwYXJlbnRoZXNlcyBhbHdheXMgcHJlc2VudCBpbiB0aGluZ3MgbGlrZQog ICAgICAtLSAgYWdncmVnYXRlcyBkb2VzIG5vdCBjb3VudCwgb25seSB0aGUgcGFyZW50aGVzZXMg aW4gdGhlIHByaW1hcnkKICAgICAgLS0gIChFWFBSRVNTSU9OKSBhZmZlY3QgdGhlIHNldHRpbmcg b2YgdGhlIFBhcmVuX0NvdW50IGZpZWxkLgoKICAgICAgLS0gIDJuZCBOb3RlOiB0aGUgY29udGVu dHMgb2YgdGhlIEV4cHJlc3Npb24gZmllbGQgbXVzdCBiZSBpZ25vcmVkIChpLmUuCiAgICAgIC0t ICB0cmVhdGVkIGFzIHRob3VnaCBpdCB3ZXJlIEVtcHR5KSBpZiBOb19Jbml0aWFsaXphdGlvbiBp cyBzZXQgVHJ1ZS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDQuNSAgU2hvcnQgQ2lyY3VpdCBDb250cm9sIEZvcm1zIC0tCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRVhQUkVTU0lPTiA6 Oj0KICAgICAgLS0gICAgUkVMQVRJT04ge2FuZCB0aGVuIFJFTEFUSU9OfSB8IFJFTEFUSU9OIHtv ciBlbHNlIFJFTEFUSU9OfQoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IEZvciBib3RoIHRo ZXNlIGNvbnRyb2wgZm9ybXMsIHRoZSBvcGVyYW5kIGFuZAogICAgICAtLSAgcmVzdWx0IHR5cGVz IGFyZSBhbHdheXMgU3RhbmRhcmQuQm9vbGVhbi4gVGhlIGV4cGFuZGVyIGluc2VydHMgdGhlCiAg ICAgIC0tICByZXF1aXJlZCBjb252ZXJzaW9uIG9wZXJhdGlvbnMgd2hlcmUgbmVlZGVkIHRvIGVu c3VyZSB0aGlzIGlzIHRoZQogICAgICAtLSAgY2FzZS4KCiAgICAgIC0tICBOX0FuZF9UaGVuCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBBTkQgb2YgQU5EIFRIRU4KICAgICAgLS0gIExlZnRfT3Bu ZCAoTm9kZTIpCiAgICAgIC0tICBSaWdodF9PcG5kIChOb2RlMykKICAgICAgLS0gIEFjdGlvbnMg KExpc3QxLVNlbSkKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAt LSAgTl9Pcl9FbHNlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBPUiBvZiBPUiBFTFNFCiAgICAg IC0tICBMZWZ0X09wbmQgKE5vZGUyKQogICAgICAtLSAgUmlnaHRfT3BuZCAoTm9kZTMpCiAgICAg IC0tICBBY3Rpb25zIChMaXN0MS1TZW0pCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVz c2lvbgoKICAgICAgLS0gIE5vdGU6IFRoZSBBY3Rpb25zIGZpZWxkIGlzIHVzZWQgdG8gaG9sZCBh Y3Rpb25zIGFzc29jaWF0ZWQgd2l0aAogICAgICAtLSAgdGhlIHJpZ2h0IGhhbmQgb3BlcmFuZC4g VGhlc2UgaGF2ZSB0byBiZSB0cmVhdGVkIHNwZWNpYWxseSBzaW5jZQogICAgICAtLSAgdGhleSBh cmUgbm90IHVuY29uZGl0aW9uYWxseSBleGVjdXRlZC4gU2VlIEluc2VydF9BY3Rpb25zIGZvciBh CiAgICAgIC0tICBtb3JlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mIGhvdyB0aGVzZSBhY3Rpb25z IGFyZSBoYW5kbGVkLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t IDQuNSAgTWVtYmVyc2hpcCBUZXN0cyAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCiAgICAgIC0tICBSRUxBVElPTiA6Oj0KICAgICAgLS0gICAgU0lNUExFX0VYUFJFU1NJT04g W25vdF0gaW4gUkFOR0UKICAgICAgLS0gIHwgU0lNUExFX0VYUFJFU1NJT04gW25vdF0gaW4gU1VC VFlQRV9NQVJLCgogICAgICAtLSAgTm90ZTogYWx0aG91Z2ggdGhlIGdyYW1tYXIgYWJvdmUgYWxs b3dzIG9ubHkgYSByYW5nZSBvciBhCiAgICAgIC0tICBzdWJ0eXBlIG1hcmssIHRoZSBwYXJzZXIg aW4gZmFjdCB3aWxsIGFjY2VwdCBhbnkgc2ltcGxlCiAgICAgIC0tICBleHByZXNzaW9uIGluIHBs YWNlIG9mIGEgc3VidHlwZSBtYXJrLiBUaGlzIG1lYW5zIHRoYXQgdGhlCiAgICAgIC0tICBzZW1h bnRpYyBhbmFseXplciBtdXN0IGJlIHByZXBhcmVkIHRvIGRlYWwgd2l0aCwgYW5kIGRpYWdub3Nl CiAgICAgIC0tICBhIHNpbXBsZSBleHByZXNzaW9uIG90aGVyIHRoYW4gYSBuYW1lIGZvciB0aGUg cmlnaHQgb3BlcmFuZC4KICAgICAgLS0gIFRoaXMgc2ltcGxpZmllcyBlcnJvciByZWNvdmVyeSBp biB0aGUgcGFyc2VyLgoKICAgICAgLS0gIE5fSW4KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIElO CiAgICAgIC0tICBMZWZ0X09wbmQgKE5vZGUyKQogICAgICAtLSAgUmlnaHRfT3BuZCAoTm9kZTMp CiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0gIE5fTm90X0lu CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBOT1Qgb2YgTk9UIElOCiAgICAgIC0tICBMZWZ0X09w bmQgKE5vZGUyKQogICAgICAtLSAgUmlnaHRfT3BuZCAoTm9kZTMpCiAgICAgIC0tICBwbHVzIGZp ZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0g NC41ICBPcGVyYXRvcnMgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBM T0dJQ0FMX09QRVJBVE9SICAgICAgICAgICAgIDo6PSAgYW5kIHwgb3IgIHwgeG9yCgogICAgICAt LSAgUkVMQVRJT05BTF9PUEVSQVRPUiAgICAgICAgICA6Oj0gID0gICB8IC89ICB8IDwgICB8IDw9 IHwgPiB8ID49CgogICAgICAtLSAgQklOQVJZX0FERElOR19PUEVSQVRPUiAgICAgICA6Oj0gICsg ICB8ICAtICB8ICYKCiAgICAgIC0tICBVTkFSWV9BRERJTkdfT1BFUkFUT1IgICAgICAgIDo6PSAg KyAgIHwgIC0KCiAgICAgIC0tICBNVUxUSVBMWUlOR19PUEVSQVRPUiAgICAgICAgIDo6PSAgKiAg IHwgIC8gIHwgbW9kIHwgcmVtCgogICAgICAtLSAgSElHSEVTVF9QUkVDRURFTkNFX09QRVJBVE9S ICA6Oj0gICoqICB8IGFicyB8IG5vdAoKICAgICAgLS0gIFNwcmludCBzeW50YXggaWYgVHJlYXRf Rml4ZWRfQXNfSW50ZWdlciBpcyBzZXQ6CgogICAgICAtLSAgICAgeCAjKiB5CiAgICAgIC0tICAg ICB4ICMvIHkKICAgICAgLS0gICAgIHggI21vZCB5CiAgICAgIC0tICAgICB4ICNyZW0geQoKICAg ICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IEZvciAqIC8gbW9kIHJlbSB3aXRoIGZpeGVkLXBvaW50 IG9wZXJhbmRzLCBHaWdpCiAgICAgIC0tICB3aWxsIG9ubHkgYmUgZ2l2ZW4gbm9kZXMgd2l0aCB0 aGUgVHJlYXRfRml4ZWRfQXNfSW50ZWdlciBmbGFnIHNldC4KICAgICAgLS0gIEFsbCBoYW5kbGlu ZyBvZiBzbWFsbHMgZm9yIG11bHRpcGxpY2F0aW9uIGFuZCBkaXZpc2lvbiBpcyBoYW5kbGVkCiAg ICAgIC0tICBieSB0aGUgZnJvbnQgZW5kIChtb2QgYW5kIHJlbSByZXN1bHQgb25seSBmcm9tIGV4 cGFuc2lvbikuIEdpZ2kKICAgICAgLS0gIHRodXMgbmV2ZXIgbmVlZHMgdG8gd29ycnkgYWJvdXQg c21hbGwgdmFsdWVzIChmb3Igb3RoZXIgb3BlcmF0b3JzCiAgICAgIC0tICBvcGVyYXRpbmcgb24g Zml4ZWQtcG9pbnQsIGUuZy4gYWRkaXRpb24sIHRoZSBzbWFsbCB2YWx1ZSBkb2VzIG5vdAogICAg ICAtLSAgaGF2ZSBhbnkgc2VtYW50aWMgZWZmZWN0IGFueXdheSwgdGhlc2UgYXJlIGFsd2F5cyBp bnRlZ2VyIG9wZXJhdGlvbnMuCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogRm9yIGFsbCBv cGVyYXRvcnMgdGFraW5nIEJvb2xlYW4gb3BlcmFuZHMsIHRoZQogICAgICAtLSAgdHlwZSBpcyBh bHdheXMgU3RhbmRhcmQuQm9vbGVhbi4gVGhlIGV4cGFuZGVyIGluc2VydHMgdGhlIHJlcXVpcmVk CiAgICAgIC0tICBjb252ZXJzaW9uIG9wZXJhdGlvbnMgd2hlcmUgbmVlZGVkIHRvIGVuc3VyZSB0 aGlzIGlzIHRoZSBjYXNlLgoKICAgICAgLS0gIE5fT3BfQW5kCiAgICAgIC0tICBTbG9jIHBvaW50 cyB0byBBTkQKICAgICAgLS0gIERvX0xlbmd0aF9DaGVjayAoRmxhZzQtU2VtKQogICAgICAtLSAg cGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9y IGV4cHJlc3Npb24KCiAgICAgIC0tICBOX09wX09yCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBP UgogICAgICAtLSAgRG9fTGVuZ3RoX0NoZWNrIChGbGFnNC1TZW0pCiAgICAgIC0tICBwbHVzIGZp ZWxkcyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVz c2lvbgoKICAgICAgLS0gIE5fT3BfWG9yCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBYT1IKICAg ICAgLS0gIERvX0xlbmd0aF9DaGVjayAoRmxhZzQtU2VtKQogICAgICAtLSAgcGx1cyBmaWVsZHMg Zm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24K CiAgICAgIC0tICBOX09wX0VxCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byA9CiAgICAgIC0tICBw bHVzIGZpZWxkcyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3Ig ZXhwcmVzc2lvbgoKICAgICAgLS0gIE5fT3BfTmUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIC89 CiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVz IGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0gIE5fT3BfTHQKICAgICAgLS0gIFNsb2Mg cG9pbnRzIHRvIDwKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBiaW5hcnkgb3BlcmF0b3IKICAg ICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAgTl9PcF9MZQogICAg ICAtLSAgU2xvYyBwb2ludHMgdG8gPD0KICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBiaW5hcnkg b3BlcmF0b3IKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAg Tl9PcF9HdAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gPgogICAgICAtLSAgcGx1cyBmaWVsZHMg Zm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24K CiAgICAgIC0tICBOX09wX0dlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byA+PQogICAgICAtLSAg cGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9y IGV4cHJlc3Npb24KCiAgICAgIC0tICBOX09wX0FkZAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8g KyAoYmluYXJ5KQogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBvcGVyYXRvcgogICAg ICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBOX09wX1N1YnRyYWN0 CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byAtIChiaW5hcnkpCiAgICAgIC0tICBwbHVzIGZpZWxk cyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lv bgoKICAgICAgLS0gIE5fT3BfQ29uY2F0CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byAmCiAgICAg IC0tICBJc19Db21wb25lbnRfTGVmdF9PcG5kIChGbGFnMTMtU2VtKQogICAgICAtLSAgSXNfQ29t cG9uZW50X1JpZ2h0X09wbmQgKEZsYWcxNC1TZW0pCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3Ig YmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAg ICAgLS0gIE5fT3BfTXVsdGlwbHkKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvICoKICAgICAgLS0g IFRyZWF0X0ZpeGVkX0FzX0ludGVnZXIgKEZsYWcxNC1TZW0pCiAgICAgIC0tICBSb3VuZGVkX1Jl c3VsdCAoRmxhZzE4LVNlbSkKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBiaW5hcnkgb3BlcmF0 b3IKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAgTl9PcF9E aXZpZGUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIC8KICAgICAgLS0gIFRyZWF0X0ZpeGVkX0Fz X0ludGVnZXIgKEZsYWcxNC1TZW0pCiAgICAgIC0tICBEb19EaXZpc2lvbl9DaGVjayAoRmxhZzEz LVNlbSkKICAgICAgLS0gIFJvdW5kZWRfUmVzdWx0IChGbGFnMTgtU2VtKQogICAgICAtLSAgcGx1 cyBmaWVsZHMgZm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4 cHJlc3Npb24KCiAgICAgIC0tICBOX09wX01vZAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gTU9E CiAgICAgIC0tICBUcmVhdF9GaXhlZF9Bc19JbnRlZ2VyIChGbGFnMTQtU2VtKQogICAgICAtLSAg RG9fRGl2aXNpb25fQ2hlY2sgKEZsYWcxMy1TZW0pCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3Ig YmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAg ICAgLS0gIE5fT3BfUmVtCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBSRU0KICAgICAgLS0gIFRy ZWF0X0ZpeGVkX0FzX0ludGVnZXIgKEZsYWcxNC1TZW0pCiAgICAgIC0tICBEb19EaXZpc2lvbl9D aGVjayAoRmxhZzEzLVNlbSkKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBiaW5hcnkgb3BlcmF0 b3IKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAgTl9PcF9F eHBvbgogICAgICAtLSAgSXNfUG93ZXJfT2ZfMl9Gb3JfU2hpZnQgKEZsYWcxMy1TZW0pCiAgICAg IC0tICBTbG9jIHBvaW50cyB0byAqKgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBv cGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBO X09wX1BsdXMKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvICsgKHVuYXJ5KQogICAgICAtLSAgcGx1 cyBmaWVsZHMgZm9yIHVuYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhw cmVzc2lvbgoKICAgICAgLS0gIE5fT3BfTWludXMKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIC0g KHVuYXJ5KQogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIHVuYXJ5IG9wZXJhdG9yCiAgICAgIC0t ICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0gIE5fT3BfQWJzCiAgICAgIC0t ICBTbG9jIHBvaW50cyB0byBBQlMKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciB1bmFyeSBvcGVy YXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBOX09w X05vdAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gTk9UCiAgICAgIC0tICBwbHVzIGZpZWxkcyBm b3IgdW5hcnkgb3BlcmF0b3IKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgog ICAgICAtLSAgU2VlIGFsc28gc2hpZnQgb3BlcmF0b3JzIGluIHNlY3Rpb24gQi4yCgogICAgICAt LSAgTm90ZSBvbiBmaXhlZC1wb2ludCBvcGVyYXRpb25zIHBhc3NlZCB0byBHaWdpOiBGb3IgYWRk aW5nIG9wZXJhdG9ycywKICAgICAgLS0gIHRoZSBzZW1hbnRpY3MgaXMgdG8gdHJlYXQgdGhlc2Ug c2ltcGx5IGFzIGludGVnZXIgb3BlcmF0aW9ucywgd2l0aAogICAgICAtLSAgdGhlIHNtYWxsIHZh bHVlcyBiZWluZyBpZ25vcmVkICh0aGUgYm91bmRzIGFyZSBhbHJlYWR5IHN0b3JlZCBpbgogICAg ICAtLSAgdW5pdHMgb2Ygc21hbGwsIHNvIHRoYXQgY29uc3RyYWludCBjaGVja2luZyB3b3JrcyBh cyB1c3VhbCkuIEZvciB0aGUKICAgICAgLS0gIGNhc2Ugb2YgbXVsdGlwbHkvZGl2aWRlL3JlbS9t b2Qgb3BlcmF0aW9ucywgR2lnaSB3aWxsIG9ubHkgc2VlIGZpeGVkCiAgICAgIC0tICBwb2ludCBv cGVyYW5kcyBpZiB0aGUgVHJlYXRfRml4ZWRfQXNfSW50ZWdlciBmbGFnIGlzIHNldCBhbmQgd2ls bAogICAgICAtLSAgdGh1cyB0cmVhdCB0aGVzZSBub2RlcyBpbiBpZGVudGljYWwgbWFubmVyLCBp Z25vcmluZyBzbWFsbCB2YWx1ZXMuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSA0LjYgIFR5cGUgQ29udmVyc2lvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgICAgLS0gIFRZUEVfQ09OVkVSU0lPTiA6Oj0KICAgICAgLS0gICAgU1VCVFlQ RV9NQVJLIChFWFBSRVNTSU9OKSB8IFNVQlRZUEVfTUFSSyAoTkFNRSkKCiAgICAgIC0tICBJbiB0 aGUgKE5BTUUpIGNhc2UsIHRoZSBuYW1lIGlzIHN0b3JlZCBhcyB0aGUgZXhwcmVzc2lvbgoKICAg ICAgLS0gIE5vdGU6IHRoZSBwYXJzZXIgbmV2ZXIgZ2VuZXJhdGVzIGEgdHlwZSBjb252ZXJzaW9u IG5vZGUsIHNpbmNlIGl0CiAgICAgIC0tICBsb29rcyBsaWtlIGFuIGluZGV4ZWQgY29tcG9uZW50 IHdoaWNoIGlzIGdlbmVyYXRlZCBieSBwcmVmZXJlbmNlLgogICAgICAtLSAgVGhlIHNlbWFudGlj IHBhc3MgbXVzdCBjb3JyZWN0IHRoaXMgbWlzaWRlbnRpZmljYXRpb24uCgogICAgICAtLSAgR2ln aSBoYW5kbGVzIGNvbnZlcnNpb25zIHRoYXQgaW52b2x2ZSBubyBjaGFuZ2UgaW4gdGhlIHJvb3Qg dHlwZSwKICAgICAgLS0gIGFuZCBhbHNvIGFsbCBjb252ZXJzaW9ucyBmcm9tIGludGVnZXIgdG8g ZmxvYXRpbmctcG9pbnQgdHlwZXMuCiAgICAgIC0tICBDb252ZXJzaW9ucyBmcm9tIGZsb2F0aW5n LXBvaW50IHRvIGludGVnZXIgYXJlIG9ubHkgaGFuZGxlZCBpbgogICAgICAtLSAgdGhlIGNhc2Ug d2hlcmUgRmxvYXRfVHJ1bmNhdGUgZmxhZyBzZXQuIE90aGVyIGNvbnZlcnNpb25zIGZyb20KICAg ICAgLS0gIGZsb2F0aW5nLXBvaW50IHRvIGludGVnZXIgKGludm9sdmluZyByb3VuZGluZykgYW5k IGFsbCBjb252ZXJzaW9ucwogICAgICAtLSAgaW52b2x2aW5nIGZpeGVkLXBvaW50IHR5cGVzIGFy ZSBoYW5kbGVkIGJ5IHRoZSBleHBhbmRlci4KCiAgICAgIC0tICBTcHJpbnQgc3ludGF4IGlmIEZs b2F0X1RydW5jYXRlIHNldDogWF4oWSkKICAgICAgLS0gIFNwcmludCBzeW50YXggaWYgQ29udmVy c2lvbl9PSyBzZXQgWD8oWSkKICAgICAgLS0gIFNwcmludCBzeW50YXggaWYgYm90aCBmbGFncyBz ZXQgWD9eKFkpCgogICAgICAtLSAgTm90ZTogSWYgZWl0aGVyIHRoZSBvcGVyYW5kIG9yIHJlc3Vs dCB0eXBlIGlzIGZpeGVkLXBvaW50LCBHaWdpIHdpbGwKICAgICAgLS0gIG9ubHkgc2VlIGEgdHlw ZSBjb252ZXJzaW9uIG5vZGUgd2l0aCBDb252ZXJzaW9uX09LIHNldC4gVGhlIGZyb250IGVuZAog ICAgICAtLSAgdGFrZXMgY2FyZSBvZiBhbGwgaGFuZGxpbmcgb2Ygc21hbGwncyBmb3IgZml4ZWQt cG9pbnQgY29udmVyc2lvbnMuCgogICAgICAtLSAgTl9UeXBlX0NvbnZlcnNpb24KICAgICAgLS0g IFNsb2MgcG9pbnRzIHRvIGZpcnN0IHRva2VuIG9mIHN1YnR5cGUgbWFyawogICAgICAtLSAgU3Vi dHlwZV9NYXJrIChOb2RlNCkKICAgICAgLS0gIEV4cHJlc3Npb24gKE5vZGUzKQogICAgICAtLSAg RG9fT3ZlcmZsb3dfQ2hlY2sgKEZsYWcxNy1TZW0pCiAgICAgIC0tICBEb19UYWdfQ2hlY2sgKEZs YWcxMy1TZW0pCiAgICAgIC0tICBEb19MZW5ndGhfQ2hlY2sgKEZsYWc0LVNlbSkKICAgICAgLS0g IEZsb2F0X1RydW5jYXRlIChGbGFnMTEtU2VtKQogICAgICAtLSAgUm91bmRlZF9SZXN1bHQgKEZs YWcxOC1TZW0pCiAgICAgIC0tICBDb252ZXJzaW9uX09LIChGbGFnMTQtU2VtKQogICAgICAtLSAg cGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBOb3RlOiBpZiBhIHJhbmdlIGNo ZWNrIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSBEb19SYW5nZV9DaGVjayBmbGFnCiAgICAgIC0tICBp cyBzZXQgaW4gdGhlIEV4cHJlc3Npb24gd2l0aCB0aGUgY2hlY2sgYmVpbmcgZG9uZSBhZ2FpbnN0 IHRoZQogICAgICAtLSAgdGFyZ2V0IHR5cGUgcmFuZ2UgKGFmdGVyIHRoZSBiYXNlIHR5cGUgY29u dmVyc2lvbiwgaWYgYW55KS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgLS0gNC43ICBRdWFsaWZpZWQgRXhwcmVzc2lvbiAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUVVBTElGSUVEX0VYUFJFU1NJT04gOjo9CiAg ICAgIC0tICAgIFNVQlRZUEVfTUFSSyAnIChFWFBSRVNTSU9OKSB8IFNVQlRZUEVfTUFSSyAnIEFH R1JFR0FURQoKICAgICAgLS0gIE5vdGU6IHRoZSBwYXJlbnRoZXNlcyBpbiB0aGUgKEVYUFJFU1NJ T04pIGNhc2UgYXJlIGRlZW1lZCB0byBlbmNsb3NlCiAgICAgIC0tICB0aGUgZXhwcmVzc2lvbiwg c28gdGhlIEV4cHJlc3Npb24gZmllbGQgb2YgdGhpcyBub2RlIGFsd2F5cyBwb2ludHMKICAgICAg LS0gIHRvIGEgcGFyZW50aGVzaXplZCBleHByZXNzaW9uIGluIHRoaXMgY2FzZSAoaS5lLiBQYXJl bl9Db3VudCB3aWxsCiAgICAgIC0tICBhbHdheXMgYmUgbm9uLXplcm8gZm9yIHRoZSByZWZlcmVu Y2VkIGV4cHJlc3Npb24gaWYgaXQgaXMgbm90IGFuCiAgICAgIC0tICBhZ2dyZWdhdGUpLgoKICAg ICAgLS0gIE5fUXVhbGlmaWVkX0V4cHJlc3Npb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGFw b3N0cm9waGUKICAgICAgLS0gIFN1YnR5cGVfTWFyayAoTm9kZTQpCiAgICAgIC0tICBFeHByZXNz aW9uIChOb2RlMykgZXhwcmVzc2lvbiBvciBhZ2dyZWdhdGUKICAgICAgLS0gIHBsdXMgZmllbGRz IGZvciBleHByZXNzaW9uCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA0Ljgg IEFsbG9jYXRvciAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFMTE9D QVRPUiA6Oj0KICAgICAgLS0gICAgbmV3IFNVQlRZUEVfSU5ESUNBVElPTiB8IG5ldyBRVUFMSUZJ RURfRVhQUkVTU0lPTgoKICAgICAgLS0gIFNwcmludCBzeW50YXggKHdoZW4gc3RvcmFnZSBwb29s IHByZXNlbnQpCiAgICAgIC0tICAgIG5ldyB4eHggKHN0b3JhZ2VfcG9vbCA9IHBvb2wpCgogICAg ICAtLSAgTl9BbGxvY2F0b3IKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIE5FVwogICAgICAtLSAg RXhwcmVzc2lvbiAoTm9kZTMpIHN1YnR5cGUgaW5kaWNhdGlvbiBvciBxdWFsaWZpZWQgZXhwcmVz c2lvbgogICAgICAtLSAgU3RvcmFnZV9Qb29sIChOb2RlMS1TZW0pCiAgICAgIC0tICBQcm9jZWR1 cmVfVG9fQ2FsbCAoTm9kZTQtU2VtKQogICAgICAtLSAgTm9fSW5pdGlhbGl6YXRpb24gKEZsYWcx My1TZW0pCiAgICAgIC0tICBEb19TdG9yYWdlX0NoZWNrIChGbGFnMTctU2VtKQogICAgICAtLSAg cGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSA1LjEgIFNlcXVlbmNlIE9mIFN0YXRlbWVudHMgLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU0VRVUVOQ0VfT0Zf U1RBVEVNRU5UUyA6Oj0gU1RBVEVNRU5UIHtTVEFURU1FTlR9CgogICAgICAtLSAgTm90ZTogQWx0 aG91Z2ggdGhlIHBhcnNlciB3aWxsIG5vdCBhY2NlcHQgYSBkZWNsYXJhdGlvbiBhcyBhCiAgICAg IC0tICBzdGF0ZW1lbnQsIHRoZSBzZW1hbnRpYyBhbmFseXplciBtYXkgaW5zZXJ0IGRlY2xhcmF0 aW9ucyAoZS5nLgogICAgICAtLSAgZGVjbGFyYXRpb25zIG9mIGltcGxpY2l0IHR5cGVzIG5lZWRl ZCBmb3IgZXhlY3V0aW9uIG9mIG90aGVyCiAgICAgIC0tICBzdGF0ZW1lbnRzKSBpbnRvIGEgc2Vx dWVuY2Ugb2Ygc3RhdGVtZW50cywgc28gdGhlIGNvZGUgZ2VubWVyYXRvcgogICAgICAtLSAgc2hv dWxkIGJlIHByZXBhcmVkIHRvIGFjY2VwdCBhIGRlY2xhcmF0aW9uIHdoZXJlIGEgc3RhdGVtZW50 IGlzCiAgICAgIC0tICBleHBlY3RlZC4gTm90ZSBhbHNvIHRoYXQgcHJhZ21hcyBjYW4gYXBwZWFy IGFzIHN0YXRlbWVudHMuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA1LjEg IFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFNUQVRF TUVOVCA6Oj0KICAgICAgLS0gICAge0xBQkVMfSBTSU1QTEVfU1RBVEVNRU5UIHwge0xBQkVMfSBD T01QT1VORF9TVEFURU1FTlQKCiAgICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNpdCBub2RlIGlu IHRoZSB0cmVlIGZvciBhIHN0YXRlbWVudC4gSW5zdGVhZCwgdGhlCiAgICAgIC0tICBpbmRpdmlk dWFsIHN0YXRlbWVudCBhcHBlYXJzIGRpcmVjdGx5LiBMYWJlbHMgYXJlIHRyZWF0ZWQgIGFzIGEK ICAgICAgLS0gIGtpbmQgb2Ygc3RhdGVtZW50LCBpLmUuIHRoZXkgYXJlIGxpbmtlZCBpbnRvIGEg c3RhdGVtZW50IGxpc3QgYXQKICAgICAgLS0gIHRoZSBwb2ludCB0aGV5IGFwcGVhciwgc28gdGhl IGxhYmVsZWQgc3RhdGVtZW50IGFwcGVhcnMgZm9sbG93aW5nCiAgICAgIC0tICB0aGUgbGFiZWwg b3IgbGFiZWxzIGluIHRoZSBzdGF0ZW1lbnQgbGlzdC4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSA1LjEgIFNpbXBsZSBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU0lNUExFX1NUQVRFTUVOVCA6Oj0gICAg ICBOVUxMX1NUQVRFTUVOVAogICAgICAtLSAgfCBBU1NJR05NRU5UX1NUQVRFTUVOVCAgfCBFWElU X1NUQVRFTUVOVAogICAgICAtLSAgfCBHT1RPX1NUQVRFTUVOVCAgICAgICAgfCBQUk9DRURVUkVf Q0FMTF9TVEFURU1FTlQKICAgICAgLS0gIHwgUkVUVVJOX1NUQVRFTUVOVCAgICAgIHwgRU5UUllf Q0FMTF9TVEFURU1FTlQKICAgICAgLS0gIHwgUkVRVUVVRV9TVEFURU1FTlQgICAgIHwgREVMQVlf U1RBVEVNRU5UCiAgICAgIC0tICB8IEFCT1JUX1NUQVRFTUVOVCAgICAgICB8IFJBSVNFX1NUQVRF TUVOVAogICAgICAtLSAgfCBDT0RFX1NUQVRFTUVOVAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gNS4xICBDb21wb3VuZCBTdGF0ZW1lbnQgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBDT01QT1VORF9TVEFURU1FTlQg Ojo9CiAgICAgIC0tICAgIElGX1NUQVRFTUVOVCAgICAgICAgIHwgQ0FTRV9TVEFURU1FTlQKICAg ICAgLS0gIHwgTE9PUF9TVEFURU1FTlQgICAgICAgfCBCTE9DS19TVEFURU1FTlQKICAgICAgLS0g IHwgQUNDRVBUX1NUQVRFTUVOVCAgICAgfCBTRUxFQ1RfU1RBVEVNRU5UCgogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDUuMSAgTnVsbCBTdGF0ZW1lbnQgLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIE5VTExfU1RBVEVNRU5UIDo6PSBu dWxsOwoKICAgICAgLS0gIE5fTnVsbF9TdGF0ZW1lbnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRv IE5VTEwKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNS4xICBMYWJlbCAtLQogICAg ICAtLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgTEFCRUwgOjo9IDw8bGFiZWxfU1RBVEVNRU5U X0lERU5USUZJRVI+PgoKICAgICAgLS0gIE5vdGUgdGhhdCB0aGUgb2NjdXJyZW5jZSBvZiBhIGxh YmVsIGlzIG5vdCBhIGRlZmluaW5nIGlkZW50aWZpZXIsCiAgICAgIC0tICBidXQgcmF0aGVyIGEg cmVmZXJlbmNpbmcgb2NjdXJyZW5jZS4gVGhlIGRlZmluaW5nIG9jY3VycmVuY2UgaXMKICAgICAg LS0gIGluIHRoZSBpbXBsaWNpdCBsYWJlbCBkZWNsYXJhdGlvbiB3aGljaCBvY2N1cnMgaW4gdGhl IGlubmVybW9zdAogICAgICAtLSAgZW5jbG9zaW5nIGJsb2NrLgoKICAgICAgLS0gIE5fTGFiZWwK ICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIDw8CiAgICAgIC0tICBJZGVudGlmaWVyIChOb2RlMSkg ZGlyZWN0IG5hbWUgb2Ygc3RhdGVtZW50IGlkZW50aWZpZXIKICAgICAgLS0gIEV4Y2VwdGlvbl9K dW5rIChGbGFnMTEtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSA1LjEgIFN0YXRlbWVudCBJZGVudGlmaWVyIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBTVEFURU1FTlRfSURFTlRJRklFUiA6Oj0gRElS RUNUX05BTUUKCiAgICAgIC0tICBUaGUgSURFTlRJRklFUiBvZiBhIFNUQVRFTUVOVF9JREVOVElG SUVSIHNoYWxsIGJlIGFuIGlkZW50aWZpZXIKICAgICAgLS0gIChub3QgYW4gT1BFUkFUT1JfU1lN Qk9MKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA1LjIg IEFzc2lnbm1lbnQgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgICAgIC0tICBBU1NJR05NRU5UX1NUQVRFTUVOVCA6Oj0KICAgICAgLS0gICAgdmFy aWFibGVfTkFNRSA6PSBFWFBSRVNTSU9OOwoKICAgICAgLS0gIE5fQXNzaWdubWVudF9TdGF0ZW1l bnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIDo9CiAgICAgIC0tICBOYW1lIChOb2RlMikKICAg ICAgLS0gIEV4cHJlc3Npb24gKE5vZGUzKQogICAgICAtLSAgRG9fVGFnX0NoZWNrIChGbGFnMTMt U2VtKQogICAgICAtLSAgRG9fTGVuZ3RoX0NoZWNrIChGbGFnNC1TZW0pCiAgICAgIC0tICBGb3J3 YXJkc19PSyAoRmxhZzUtU2VtKQogICAgICAtLSAgQmFja3dhcmRzX09LIChGbGFnNi1TZW0pCiAg ICAgIC0tICBOb19DdHJsX0FjdGlvbnMgKEZsYWc3LVNlbSkKCiAgICAgIC0tICBOb3RlOiBpZiBh IHJhbmdlIGNoZWNrIGlzIHJlcXVpcmVkLCB0aGVuIHRoZSBEb19SYW5nZV9DaGVjayBmbGFnCiAg ICAgIC0tICBpcyBzZXQgaW4gdGhlIEV4cHJlc3Npb24gKHJpZ2h0IGhhbmQgc2lkZSksIHdpdGgg dGhlIGNoZWNrIGJlaW5nCiAgICAgIC0tICBkb25lIGFnYWluc3QgdGhlIHR5cGUgb2YgdGhlIE5h bWUgKGxlZnQgaGFuZCBzaWRlKS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIDUuMyAgSWYgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgSUZfU1RBVEVNRU5UIDo6PQogICAgICAtLSAgICBpZiBDT05ESVRJT04gdGhlbgog ICAgICAtLSAgICAgIFNFUVVFTkNFX09GX1NUQVRFTUVOVFMKICAgICAgLS0gICAge2Vsc2lmIENP TkRJVElPTiB0aGVuCiAgICAgIC0tICAgICAgU0VRVUVOQ0VfT0ZfU1RBVEVNRU5UU30KICAgICAg LS0gICAgW2Vsc2UKICAgICAgLS0gICAgICBTRVFVRU5DRV9PRl9TVEFURU1FTlRTXQogICAgICAt LSAgICBlbmQgaWY7CgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBleHBhbmRlciBl bnN1cmVzIHRoYXQgdGhlIHR5cGUgb2YgdGhlCiAgICAgIC0tICBDb25kaXRpb24gZmllbGRzIGlz IGFsd2F5cyBTdGFuZGFyZC5Cb29sZWFuLCBldmVuIGlmIHRoZSB0eXBlCiAgICAgIC0tICBpbiB0 aGUgc291cmNlIGlzIHNvbWUgbm9uLXN0YW5kYXJkIGJvb2xlYW4gdHlwZS4KCiAgICAgIC0tICBO X0lmX1N0YXRlbWVudAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gSUYKICAgICAgLS0gIENvbmRp dGlvbiAoTm9kZTEpCiAgICAgIC0tICBUaGVuX1N0YXRlbWVudHMgKExpc3QyKQogICAgICAtLSAg RWxzaWZfUGFydHMgKExpc3QzKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm9uZSBwcmVzZW50KQogICAg ICAtLSAgRWxzZV9TdGF0ZW1lbnRzIChMaXN0NCkgKHNldCB0byBOb19MaXN0IGlmIG5vIGVsc2Ug cGFydCBwcmVzZW50KQogICAgICAtLSAgRW5kX1NwYW4gKFVpbnQ1KSAoc2V0IHRvIE5vX1VpbnQg aWYgZXhwYW5kZXIgZ2VuZXJhdGVkKQoKICAgICAgLS0gIE5fRWxzaWZfUGFydAogICAgICAtLSAg U2xvYyBwb2ludHMgdG8gRUxTSUYKICAgICAgLS0gIENvbmRpdGlvbiAoTm9kZTEpCiAgICAgIC0t ICBUaGVuX1N0YXRlbWVudHMgKExpc3QyKQogICAgICAtLSAgQ29uZGl0aW9uX0FjdGlvbnMgKExp c3QzLVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDUuMyAgQ29uZGl0 aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQ09ORElUSU9OIDo6 PSBib29sZWFuX0VYUFJFU1NJT04KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg ICAgLS0gNS40ICBDYXNlIFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgogICAgICAtLSAgQ0FTRV9TVEFURU1FTlQgOjo9CiAgICAgIC0tICAgIGNhc2UgRVhQUkVT U0lPTiBpcwogICAgICAtLSAgICAgIENBU0VfU1RBVEVNRU5UX0FMVEVSTkFUSVZFCiAgICAgIC0t ICAgICAge0NBU0VfU1RBVEVNRU5UX0FMVEVSTkFUSVZFfQogICAgICAtLSAgICBlbmQgY2FzZTsK CiAgICAgIC0tICBOb3RlOiB0aGUgQWx0ZXJuYXRpdmVzIGNhbiBjb250YWluIHByYWdtYXMuIFRo ZXNlIG9ubHkgb2NjdXIgYXQKICAgICAgLS0gIHRoZSBzdGFydCBvZiB0aGUgbGlzdCwgc2luY2Ug YW55IHByYWdtYXMgb2NjdXJyaW5nIGFmdGVyIHRoZSBmaXJzdAogICAgICAtLSAgYWx0ZXJuYXRp dmUgYXJlIGFic29yYmVkIGludG8gdGhlIGNvcnJlc3BvbmRpbmcgc3RhdGVtZW50IHNlcXVlbmNl LgoKICAgICAgLS0gIE5fQ2FzZV9TdGF0ZW1lbnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIENB U0UKICAgICAgLS0gIEV4cHJlc3Npb24gKE5vZGUzKQogICAgICAtLSAgQWx0ZXJuYXRpdmVzIChM aXN0NCkKICAgICAgLS0gIEVuZF9TcGFuIChVaW50NSkgKHNldCB0byBOb19VaW50IGlmIGV4cGFu ZGVyIGdlbmVyYXRlZCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gNS40ICBDYXNlIFN0YXRlbWVudCBBbHRlcm5hdGl2ZSAtLQogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQ0FTRV9TVEFURU1F TlRfQUxURVJOQVRJVkUgOjo9CiAgICAgIC0tICAgIHdoZW4gRElTQ1JFVEVfQ0hPSUNFX0xJU1Qg PT4KICAgICAgLS0gICAgICBTRVFVRU5DRV9PRl9TVEFURU1FTlRTCgogICAgICAtLSAgTl9DYXNl X1N0YXRlbWVudF9BbHRlcm5hdGl2ZQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gV0hFTgogICAg ICAtLSAgRGlzY3JldGVfQ2hvaWNlcyAoTGlzdDQpCiAgICAgIC0tICBTdGF0ZW1lbnRzIChMaXN0 MykKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNS41ICBMb29wIFN0 YXRlbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgTE9P UF9TVEFURU1FTlQgOjo9CiAgICAgIC0tICAgIFtsb29wX1NUQVRFTUVOVF9JREVOVElGSUVSIDpd CiAgICAgIC0tICAgICAgW0lURVJBVElPTl9TQ0hFTUVdIGxvb3AKICAgICAgLS0gICAgICAgIFNF UVVFTkNFX09GX1NUQVRFTUVOVFMKICAgICAgLS0gICAgICBlbmQgbG9vcCBbbG9vcF9JREVOVElG SUVSXTsKCiAgICAgIC0tICBOb3RlOiBUaGUgb2NjdXJyZW5jZSBvZiBhIGxvb3AgbGFiZWwgaXMg bm90IGEgZGVmaW5pbmcgaWRlbnRpZmllcgogICAgICAtLSAgYnV0IHJhdGhlciBhIHJlZmVyZW5j aW5nIG9jY3VycmVuY2UuIFRoZSBkZWZpbmluZyBvY2N1cnJlbmNlIGlzIGluCiAgICAgIC0tICB0 aGUgaW1wbGljaXQgbGFiZWwgZGVjbGFyYXRpb24gd2hpY2ggb2NjdXJzIGluIHRoZSBpbm5lcm1v c3QKICAgICAgLS0gIGVuY2xvc2luZyBibG9jay4KCiAgICAgIC0tICBOb3RlOiB0aGVyZSBpcyBh bHdheXMgYSBsb29wIHN0YXRlbWVudCBpZGVudGlmaWVyIHByZXNlbnQgaW4KICAgICAgLS0gIHRo ZSB0cmVlLCBldmVuIGlmIG5vbmUgd2FzIGdpdmVuIGluIHRoZSBzb3VyY2UuIEluIHRoZSBjYXNl IHdoZXJlCiAgICAgIC0tICBubyBsb29wIGlkZW50aWZpZXIgaXMgZ2l2ZW4gaW4gdGhlIHNvdXJj ZSwgdGhlIHBhcnNlciBjcmVhdGVzCiAgICAgIC0tICBhIG5hbWUgb2YgdGhlIGZvcm0gX0xvb3Bf biwgd2hlcmUgbiBpcyBhIGRlY2ltYWwgaW50ZWdlciAodGhlCiAgICAgIC0tICB0d28gdW5kZXJs aW5lcyBlbnN1cmUgdGhhdCB0aGUgbG9vcCBuYW1lcyBjcmVhdGVkIGluIHRoaXMgbWFubmVyCiAg ICAgIC0tICBkbyBub3QgY29uZmxpY3Qgd2l0aCBhbnkgdXNlciBkZWZpbmVkIGlkZW50aWZpZXJz KSwgYW5kIHRoZSBmbGFnCiAgICAgIC0tICBIYXNfQ3JlYXRlZF9JZGVudGlmaWVyIGlzIHNldCB0 byBUcnVlLiBUaGUgb25seSBleGNlcHRpb24gdG8gdGhlCiAgICAgIC0tICBydWxlIHRoYXQgYWxs IGxvb3Agc3RhdGVtZW50IG5vZGVzIGhhdmUgaWRlbnRpZmllcnMgb2NjdXJzIGZvcgogICAgICAt LSAgbG9vcHMgY29uc3RydWN0ZWQgYnkgdGhlIGV4cGFuZGVyLCBhbmQgdGhlIHNlbWFudGljIGFu YWx5emVyIHdpbGwKICAgICAgLS0gIGNyZWF0ZSBhbmQgc3VwcGx5IGR1bW15IGxvb3AgaWRlbnRp ZmllcnMgaW4gdGhlc2UgY2FzZXMuCgogICAgICAtLSAgTl9Mb29wX1N0YXRlbWVudAogICAgICAt LSAgU2xvYyBwb2ludHMgdG8gTE9PUAogICAgICAtLSAgSWRlbnRpZmllciAoTm9kZTEpIGxvb3Ag aWRlbnRpZmllciAoc2V0IHRvIEVtcHR5IGlmIG5vIGlkZW50aWZpZXIpCiAgICAgIC0tICBJdGVy YXRpb25fU2NoZW1lIChOb2RlMikgKHNldCB0byBFbXB0eSBpZiBubyBpdGVyYXRpb24gc2NoZW1l KQogICAgICAtLSAgU3RhdGVtZW50cyAoTGlzdDMpCiAgICAgIC0tICBFbmRfTGFiZWwgKE5vZGU0 KQogICAgICAtLSAgSGFzX0NyZWF0ZWRfSWRlbnRpZmllciAoRmxhZzE1KQoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNS41IEl0ZXJhdGlvbiBTY2hlbWUgLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBJVEVSQVRJT05fU0NIRU1F IDo6PQogICAgICAtLSAgICB3aGlsZSBDT05ESVRJT04gfCBmb3IgTE9PUF9QQVJBTUVURVJfU1BF Q0lGSUNBVElPTgoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IFRoaXMgZXhwYW5kZXIgZW5z dXJlcyB0aGF0IHRoZSB0eXBlIG9mIHRoZQogICAgICAtLSAgQ29uZGl0aW9uIGZpZWxkIGlzIGFs d2F5cyBTdGFuZGFyZC5Cb29sZWFuLCBldmVuIGlmIHRoZSB0eXBlCiAgICAgIC0tICBpbiB0aGUg c291cmNlIGlzIHNvbWUgbm9uLXN0YW5kYXJkIGJvb2xlYW4gdHlwZS4KCiAgICAgIC0tICBOX0l0 ZXJhdGlvbl9TY2hlbWUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFdISUxFIG9yIEZPUgogICAg ICAtLSAgQ29uZGl0aW9uIChOb2RlMSkgKHNldCB0byBFbXB0eSBpZiBGT1IgY2FzZSkKICAgICAg LS0gIENvbmRpdGlvbl9BY3Rpb25zIChMaXN0My1TZW0pCiAgICAgIC0tICBMb29wX1BhcmFtZXRl cl9TcGVjaWZpY2F0aW9uIChOb2RlNCkgKHNldCB0byBFbXB0eSBpZiBXSElMRSBjYXNlKQoKICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDUuNSAg TG9vcCBwYXJhbWV0ZXIgc3BlY2lmaWNhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBMT09QX1BBUkFNRVRFUl9TUEVDSUZJQ0FU SU9OIDo6PQogICAgICAtLSAgICBERUZJTklOR19JREVOVElGSUVSIGluIFtyZXZlcnNlXSBESVND UkVURV9TVUJUWVBFX0RFRklOSVRJT04KCiAgICAgIC0tICBOX0xvb3BfUGFyYW1ldGVyX1NwZWNp ZmljYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0IGlkZW50aWZpZXIKICAgICAg LS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgUmV2ZXJzZV9QcmVzZW50 IChGbGFnMTUpCiAgICAgIC0tICBEaXNjcmV0ZV9TdWJ0eXBlX0RlZmluaXRpb24gKE5vZGU0KQoK ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNS42ICBCbG9jayBTdGF0 ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBCTE9D S19TVEFURU1FTlQgOjo9CiAgICAgIC0tICAgIFtibG9ja19TVEFURU1FTlRfSURFTlRJRklFUjpd CiAgICAgIC0tICAgICAgW2RlY2xhcmUKICAgICAgLS0gICAgICAgIERFQ0xBUkFUSVZFX1BBUlRd CiAgICAgIC0tICAgICAgYmVnaW4KICAgICAgLS0gICAgICAgIEhBTkRMRURfU0VRVUVOQ0VfT0Zf U1RBVEVNRU5UUwogICAgICAtLSAgICAgIGVuZCBbYmxvY2tfSURFTlRJRklFUl07CgogICAgICAt LSAgTm90ZSB0aGF0IHRoZSBvY2N1cnJlbmNlIG9mIGEgYmxvY2sgaWRlbnRpZmllciBpcyBub3Qg YSBkZWZpbmluZwogICAgICAtLSAgaWRlbnRpZmllciwgYnV0IHJhdGhlciBhIHJlZmVyZW5jaW5n IG9jY3VycmVuY2UuIFRoZSBkZWZpbmluZwogICAgICAtLSAgb2NjdXJyZW5jZSBpcyBpbiB0aGUg aW1wbGljaXQgbGFiZWwgZGVjbGFyYXRpb24gd2hpY2ggb2NjdXJzIGluCiAgICAgIC0tICB0aGUg aW5uZXJtb3N0IGVuY2xvc2luZyBibG9jay4KCiAgICAgIC0tICBOb3RlOiB0aGVyZSBpcyBhbHdh eXMgYSBibG9jayBzdGF0ZW1lbnQgaWRlbnRpZmllciBwcmVzZW50IGluCiAgICAgIC0tICB0aGUg dHJlZSwgZXZlbiBpZiBub25lIHdhcyBnaXZlbiBpbiB0aGUgc291cmNlLiBJbiB0aGUgY2FzZSB3 aGVyZQogICAgICAtLSAgbm8gYmxvY2sgaWRlbnRpZmllciBpcyBnaXZlbiBpbiB0aGUgc291cmNl LCB0aGUgcGFyc2VyIGNyZWF0ZXMKICAgICAgLS0gIGEgbmFtZSBvZiB0aGUgZm9ybSBfQmxvY2tf biwgd2hlcmUgbiBpcyBhIGRlY2ltYWwgaW50ZWdlciAodGhlCiAgICAgIC0tICB0d28gdW5kZXJs aW5lcyBlbnN1cmUgdGhhdCB0aGUgYmxvY2sgbmFtZXMgY3JlYXRlZCBpbiB0aGlzIG1hbm5lcgog ICAgICAtLSAgZG8gbm90IGNvbmZsaWN0IHdpdGggYW55IHVzZXIgZGVmaW5lZCBpZGVudGlmaWVy cyksIGFuZCB0aGUgZmxhZwogICAgICAtLSAgSGFzX0NyZWF0ZWRfSWRlbnRpZmllciBpcyBzZXQg dG8gVHJ1ZS4gVGhlIG9ubHkgZXhjZXB0aW9uIHRvIHRoZQogICAgICAtLSAgcnVsZSB0aGF0IGFs bCBsb29wIHN0YXRlbWVudCBub2RlcyBoYXZlIGlkZW50aWZpZXJzIG9jY3VycyBmb3IKICAgICAg LS0gIGJsb2NrcyBjb25zdHJ1Y3RlZCBieSB0aGUgZXhwYW5kZXIsIGFuZCB0aGUgc2VtYW50aWMg YW5hbHl6ZXIKICAgICAgLS0gIGNyZWF0ZXMgYW5kIHN1cHBsaWVzIGR1bW15IG5hbWVzIGZvciB0 aGUgYmxvY2tzKS4KCiAgICAgIC0tICBOX0Jsb2NrX1N0YXRlbWVudAogICAgICAtLSAgU2xvYyBw b2ludHMgdG8gREVDTEFSRSBvciBCRUdJTgogICAgICAtLSAgSWRlbnRpZmllciAoTm9kZTEpIGJs b2NrIGRpcmVjdCBuYW1lIChzZXQgdG8gRW1wdHkgaWYgbm90IHByZXNlbnQpCiAgICAgIC0tICBE ZWNsYXJhdGlvbnMgKExpc3QyKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8gREVDTEFSRSBwYXJ0KQog ICAgICAtLSAgSGFuZGxlZF9TdGF0ZW1lbnRfU2VxdWVuY2UgKE5vZGU0KQogICAgICAtLSAgSXNf VGFza19NYXN0ZXIgKEZsYWc1LVNlbSkKICAgICAgLS0gIEFjdGl2YXRpb25fQ2hhaW5fRW50aXR5 IChOb2RlMy1TZW0pCiAgICAgIC0tICBIYXNfQ3JlYXRlZF9JZGVudGlmaWVyIChGbGFnMTUpCiAg ICAgIC0tICBJc19UYXNrX0FsbG9jYXRpb25fQmxvY2sgKEZsYWc2KQogICAgICAtLSAgSXNfQXN5 bmNocm9ub3VzX0NhbGxfQmxvY2sgKEZsYWc3KQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSA1LjcgIEV4aXQgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBFWElUX1NUQVRFTUVOVCA6Oj0gZXhpdCBbbG9vcF9OQU1F XSBbd2hlbiBDT05ESVRJT05dOwoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IFRoaXMgZXhw YW5kZXIgZW5zdXJlcyB0aGF0IHRoZSB0eXBlIG9mIHRoZQogICAgICAtLSAgQ29uZGl0aW9uIGZp ZWxkIGlzIGFsd2F5cyBTdGFuZGFyZC5Cb29sZWFuLCBldmVuIGlmIHRoZSB0eXBlCiAgICAgIC0t ICBpbiB0aGUgc291cmNlIGlzIHNvbWUgbm9uLXN0YW5kYXJkIGJvb2xlYW4gdHlwZS4KCiAgICAg IC0tICBOX0V4aXRfU3RhdGVtZW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBFWElUCiAgICAg IC0tICBOYW1lIChOb2RlMikgKHNldCB0byBFbXB0eSBpZiBubyBsb29wIG5hbWUgcHJlc2VudCkK ICAgICAgLS0gIENvbmRpdGlvbiAoTm9kZTEpIChzZXQgdG8gRW1wdHkgaWYgbm8gd2hlbiBwYXJ0 IHByZXNlbnQpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDUuOSAg R290byBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAg LS0gIEdPVE9fU1RBVEVNRU5UIDo6PSBnb3RvIGxhYmVsX05BTUU7CgogICAgICAtLSAgTl9Hb3Rv X1N0YXRlbWVudAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gR09UTwogICAgICAtLSAgTmFtZSAo Tm9kZTIpCiAgICAgIC0tICBFeGNlcHRpb25fSnVuayAoRmxhZzExLVNlbSkKCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA2LjEgIFN1YnByb2dyYW0gRGVj bGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAg ICAtLSAgU1VCUFJPR1JBTV9ERUNMQVJBVElPTiA6Oj0gU1VCUFJPR1JBTV9TUEVDSUZJQ0FUSU9O OwoKICAgICAgLS0gIE5fU3VicHJvZ3JhbV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gRlVOQ1RJT04gb3IgUFJPQ0VEVVJFCiAgICAgIC0tICBTcGVjaWZpY2F0aW9uIChOb2Rl MSkKICAgICAgLS0gIEJvZHlfVG9fSW5saW5lIChOb2RlMy1TZW0pCiAgICAgIC0tICBDb3JyZXNw b25kaW5nX0JvZHkgKE5vZGU1LVNlbSkKICAgICAgLS0gIFBhcmVudF9TcGVjIChOb2RlNC1TZW0p CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gNi4xICBBYnN0cmFjdCBTdWJwcm9ncmFtIERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEFCU1RSQUNUX1NV QlBST0dSQU1fREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIFNVQlBST0dSQU1fU1BFQ0lGSUNB VElPTiBpcyBhYnN0cmFjdDsKCiAgICAgIC0tICBOX0Fic3RyYWN0X1N1YnByb2dyYW1fRGVjbGFy YXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEFCU1RSQUNUCiAgICAgIC0tICBTcGVjaWZp Y2F0aW9uIChOb2RlMSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDYuMSAgU3VicHJvZ3JhbSBTcGVjaWZpY2F0aW9uIC0tCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU1VCUFJPR1JBTV9TUEVDSUZJ Q0FUSU9OIDo6PQogICAgICAtLSAgICBwcm9jZWR1cmUgREVGSU5JTkdfUFJPR1JBTV9VTklUX05B TUUgUEFSQU1FVEVSX1BST0ZJTEUKICAgICAgLS0gIHwgZnVuY3Rpb24gREVGSU5JTkdfREVTSUdO QVRPUiBQQVJBTUVURVJfQU5EX1JFU1VMVF9QUk9GSUxFCgogICAgICAtLSAgTm90ZTogdGhlcmUg YXJlIG5vIHNlcGFyYXRlIG5vZGVzIGZvciB0aGUgcHJvZmlsZXMsIGluc3RlYWQgdGhlCiAgICAg IC0tICBpbmZvcm1hdGlvbiBhcHBlYXJzIGRpcmVjdGx5IGluIHRoZSBmb2xsb3dpbmcgbm9kZXMu CgogICAgICAtLSAgTl9GdW5jdGlvbl9TcGVjaWZpY2F0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50 cyB0byBGVU5DVElPTgogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkgKHRoZSBk ZXNpZ25hdG9yKQogICAgICAtLSAgRWxhYm9yYXRpb25fQm9vbGVhbiAoTm9kZTItU2VtKQogICAg ICAtLSAgUGFyYW1ldGVyX1NwZWNpZmljYXRpb25zIChMaXN0MykgKHNldCB0byBOb19MaXN0IGlm IG5vIGZvcm1hbCBwYXJ0KQogICAgICAtLSAgU3VidHlwZV9NYXJrIChOb2RlNCkgZm9yIHJldHVy biB0eXBlCiAgICAgIC0tICBHZW5lcmljX1BhcmVudCAoTm9kZTUtU2VtKQoKICAgICAgLS0gIE5f UHJvY2VkdXJlX1NwZWNpZmljYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFBST0NFRFVS RQogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIEVsYWJvcmF0 aW9uX0Jvb2xlYW4gKE5vZGUyLVNlbSkKICAgICAgLS0gIFBhcmFtZXRlcl9TcGVjaWZpY2F0aW9u cyAoTGlzdDMpIChzZXQgdG8gTm9fTGlzdCBpZiBubyBmb3JtYWwgcGFydCkKICAgICAgLS0gIEdl bmVyaWNfUGFyZW50IChOb2RlNS1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg ICAgLS0gNi4xICBEZXNpZ25hdG9yIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg ICAgLS0gIERFU0lHTkFUT1IgOjo9CiAgICAgIC0tICAgIFtQQVJFTlRfVU5JVF9OQU1FIC5dIElE RU5USUZJRVIgfCBPUEVSQVRPUl9TWU1CT0wKCiAgICAgIC0tICBEZXNpZ25hdG9ycyB0aGF0IGFy ZSBzaW1wbHkgaWRlbnRpZmllcnMgb3Igb3BlcmF0b3Igc3ltYm9scyBhcHBlYXIKICAgICAgLS0g IGRpcmVjdGx5IGluIHRoZSB0cmVlIGluIHRoaXMgZm9ybS4gVGhlIGZvbGxvd2luZyBub2RlIGlz IHVzZWQgb25seQogICAgICAtLSAgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIGRlc2lnbmF0b3IgaGFz IGEgcGFyZW50IHVuaXQgbmFtZSBjb21wb25lbnQuCgogICAgICAtLSAgTl9EZXNpZ25hdG9yCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBwZXJpb2QKICAgICAgLS0gIE5hbWUgKE5vZGUyKSBob2xk cyB0aGUgcGFyZW50IHVuaXQgbmFtZS4gTm90ZSB0aGF0IHRoaXMgaXMgYWx3YXlzCiAgICAgIC0t ICAgbm9uLUVtcHR5LCBzaW5jZSB0aGlzIG5vZGUgaXMgb25seSB1c2VkIGZvciB0aGUgY2FzZSB3 aGVyZSBhCiAgICAgIC0tICAgcGFyZW50IGxpYnJhcnkgdW5pdCBwYWNrYWdlIG5hbWUgaXMgcHJl c2VudC4KICAgICAgLS0gIElkZW50aWZpZXIgKE5vZGUxKQoKICAgICAgLS0gIE5vdGUgdGhhdCB0 aGUgaWRlbnRpZmllciBjYW4gYWxzbyBiZSBhbiBvcGVyYXRvciBzeW1ib2wgaGVyZS4KCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA2LjEgIERlZmluaW5nIERl c2lnbmF0b3IgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgREVGSU5JTkdfREVTSUdOQVRPUiA6Oj0KICAgICAgLS0gICAgREVGSU5JTkdfUFJPR1JBTV9V TklUX05BTUUgfCBERUZJTklOR19PUEVSQVRPUl9TWU1CT0wKCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNi4xICBEZWZpbmluZyBQcm9ncmFtIFVu aXQgTmFtZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgREVGSU5JTkdfUFJPR1JBTV9VTklUX05BTUUgOjo9CiAgICAgIC0tICAgIFtQQVJF TlRfVU5JVF9OQU1FIC5dIERFRklOSU5HX0lERU5USUZJRVIKCiAgICAgIC0tICBUaGUgcGFyZW50 IHVuaXQgbmFtZSBpcyBwcmVzZW50IG9ubHkgaW4gdGhlIGNhc2Ugb2YgYSBjaGlsZCB1bml0CiAg ICAgIC0tICBuYW1lIChwZXJtaXNzaWJsZSBvbmx5IGZvciBBZGEgOTUgZm9yIGEgbGlicmFyeSBs ZXZlbCB1bml0LCBpLmUuCiAgICAgIC0tICBhIHVuaXQgYXQgc2NvcGUgbGV2ZWwgb25lKS4gSWYg bm8gc3VjaCBuYW1lIGlzIHByZXNlbnQsIHRoZSBkZWZpbmluZwogICAgICAtLSAgcHJvZ3JhbSB1 bml0IG5hbWUgaXMgcmVwcmVzZW50ZWQgc2ltcGx5IGFzIHRoZSBkZWZpbmluZyBpZGVudGlmaWVy LgogICAgICAtLSAgSW4gdGhlIGNoaWxkIHVuaXQgY2FzZSwgdGhlIGZvbGxvd2luZyBub2RlIGlz IHVzZWQgdG8gcmVwcmVzZW50IHRoZQogICAgICAtLSAgY2hpbGQgdW5pdCBuYW1lLgoKICAgICAg LS0gIE5fRGVmaW5pbmdfUHJvZ3JhbV9Vbml0X05hbWUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRv IHBlcmlvZAogICAgICAtLSAgTmFtZSAoTm9kZTIpIGhvbGRzIHRoZSBwYXJlbnQgdW5pdCBuYW1l LiBOb3RlIHRoYXQgdGhpcyBpcyBhbHdheXMKICAgICAgLS0gICBub24tRW1wdHksIHNpbmNlIHRo aXMgbm9kZSBpcyBvbmx5IHVzZWQgZm9yIHRoZSBjYXNlIHdoZXJlIGEKICAgICAgLS0gICBwYXJl bnQgdW5pdCBuYW1lIGlzIHByZXNlbnQuCiAgICAgIC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChO b2RlMSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuMSAgT3Bl cmF0b3IgU3ltYm9sIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgT1BFUkFUT1JfU1lNQk9MIDo6PSBTVFJJTkdfTElURVJBTAoKICAgICAgLS0gIE5vdGU6IHRo ZSBmaWVsZHMgb2YgdGhlIE5fT3BlcmF0b3JfU3ltYm9sIG5vZGUgYXJlIGxhaWQgb3V0IHRvCiAg ICAgIC0tICBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBmaWVsZHMgb2YgYW4gTl9DaGFyYWN0ZXJf TGl0ZXJhbCBub2RlLiBUaGlzCiAgICAgIC0tICBhbGxvd3MgZWFzeSBjb252ZXJzaW9uIG9mIHRo ZSBvcGVyYXRvciBzeW1ib2wgbm9kZSBpbnRvIGEgY2hhcmFjdGVyCiAgICAgIC0tICBsaXRlcmFs IG5vZGUgaW4gdGhlIGNhc2Ugd2hlcmUgYSBzdHJpbmcgY29uc3RhbnQgb2YgdGhlIGZvcm0gb2Yg YW4KICAgICAgLS0gIG9wZXJhdG9yIHN5bWJvbCBpcyBzY2FubmVkIG91dCBhcyBzdWNoLCBidXQg dHVybnMgb3V0IHNlbWFudGljYWxseQogICAgICAtLSAgdG8gYmUgYSBzdHJpbmcgbGl0ZXJhbCB0 aGF0IGlzIG5vdCBhbiBvcGVyYXRvci4gRm9yIGRldGFpbHMgc2VlCiAgICAgIC0tICBTaW5mby5D Ti5DaGFuZ2VfT3BlcmF0b3JfU3ltYm9sX1RvX1N0cmluZ19MaXRlcmFsLgoKICAgICAgLS0gIE5f T3BlcmF0b3JfU3ltYm9sCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBsaXRlcmFsCiAgICAgIC0t ICBDaGFycyAoTmFtZTEpIGNvbnRhaW5zIHRoZSBOYW1lX0lkIGZvciB0aGUgb3BlcmF0b3Igc3lt Ym9sCiAgICAgIC0tICBTdHJ2YWwgKFN0cjMpIElkIG9mIHN0cmluZyB2YWx1ZS4gVGhpcyBpcyB1 c2VkIGlmIHRoZSBvcGVyYXRvcgogICAgICAtLSAgIHN5bWJvbCB0dXJucyBvdXQgdG8gYmUgYSBu b3JtYWwgc3RyaW5nIGFmdGVyIGFsbC4KICAgICAgLS0gIEVudGl0eSAoTm9kZTQtU2VtKQogICAg ICAtLSAgQXNzb2NpYXRlZF9Ob2RlIChOb2RlNC1TZW0pCiAgICAgIC0tICBIYXNfUHJpdmF0ZV9W aWV3IChGbGFnMTEtU2VtKSBzZXQgaW4gZ2VuZXJpYyB1bml0cy4KICAgICAgLS0gIEV0eXBlIChO b2RlNS1TZW0pCgogICAgICAtLSAgTm90ZTogdGhlIFN0cnZhbCBmaWVsZCBtYXkgYmUgc2V0IHRv IE5vX1N0cmluZyBmb3IgZ2VuZXJhdGVkCiAgICAgIC0tICBvcGVyYXRvciBzeW1ib2xzIHRoYXQg YXJlIGtub3duIG5vdCB0byBiZSBzdHJpbmcgbGl0ZXJhbHMKICAgICAgLS0gIHNlbWFudGljYWxs eS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDYu MSAgRGVmaW5pbmcgT3BlcmF0b3IgU3ltYm9sIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgREVGSU5JTkdfT1BFUkFUT1JfU1lNQk9MIDo6PSBP UEVSQVRPUl9TWU1CT0wKCiAgICAgIC0tICBBIGRlZmluaW5nIG9wZXJhdG9yIHN5bWJvbCBpcyBh biBlbnRpdHksIHdoaWNoIGhhcyBhZGRpdGlvbmFsCiAgICAgIC0tICBmaWVsZHMgZGVwZW5kaW5n IG9uIHRoZSBzZXR0aW5nIG9mIHRoZSBFa2luZCBmaWVsZC4gVGhlc2UKICAgICAgLS0gIGFkZGl0 aW9uYWwgZmllbGRzIGFyZSBkZWZpbmVkIChhbmQgYWNjZXNzIHN1YnByb2dyYW1zIGRlY2xhcmVk KQogICAgICAtLSAgaW4gcGFja2FnZSBFaW5mby4KCiAgICAgIC0tICBOb3RlOiBOX0RlZmluaW5n X09wZXJhdG9yX1N5bWJvbCBpcyBhbiBleHRlbmRlZCBub2RlIHdob3NlIGZpZWxkcwogICAgICAt LSAgYXJlIGRlbGliZXJhdGVseSBsYXllZCBvdXQgdG8gbWF0Y2ggdGhlIGxheW91dCBvZiBmaWVs ZHMgaW4gYW4KICAgICAgLS0gIG9yZGluYXJ5IE5fT3BlcmF0b3JfU3ltYm9sIG5vZGUgYWxsb3dp bmcgZm9yIGVhc3kgYWx0ZXJhdGlvbiBvZgogICAgICAtLSAgYW4gb3BlcmF0b3Igc3ltYm9sIG5v ZGUgaW50byBhIGRlZmluaW5nIG9wZXJhdG9yIHN5bWJvbCBub2RlLgogICAgICAtLSAgU2VlIFNp bmZvLkNOLkNoYW5nZV9PcGVyYXRvcl9TeW1ib2xfVG9fRGVmaW5pbmdfT3BlcmF0b3JfU3ltYm9s CiAgICAgIC0tICBmb3IgZnVydGhlciBkZXRhaWxzLgoKICAgICAgLS0gIE5fRGVmaW5pbmdfT3Bl cmF0b3JfU3ltYm9sCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBsaXRlcmFsCiAgICAgIC0tICBD aGFycyAoTmFtZTEpIGNvbnRhaW5zIHRoZSBOYW1lX0lkIGZvciB0aGUgb3BlcmF0b3Igc3ltYm9s CiAgICAgIC0tICBOZXh0X0VudGl0eSAoTm9kZTItU2VtKQogICAgICAtLSAgU2NvcGUgKE5vZGUz LVNlbSkKICAgICAgLS0gIEV0eXBlIChOb2RlNS1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuMSAgUGFyYW1ldGVyIFByb2ZpbGUgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFBBUkFNRVRFUl9QUk9GSUxFIDo6 PSBbRk9STUFMX1BBUlRdCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgICAgLS0gNi4xICBQYXJhbWV0ZXIgYW5kIFJlc3VsdCBQcm9maWxlIC0tCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFBBUkFN RVRFUl9BTkRfUkVTVUxUX1BST0ZJTEUgOjo9IFtGT1JNQUxfUEFSVF0gcmV0dXJuIFNVQlRZUEVf TUFSSwoKICAgICAgLS0gIFRoZXJlIGlzIG5vIGV4cGxpY2l0IG5vZGUgaW4gdGhlIHRyZWUgZm9y IGEgcGFyYW1ldGVyIGFuZCByZXN1bHQKICAgICAgLS0gIHByb2ZpbGUuIEluc3RlYWQgdGhlIGlu Zm9ybWF0aW9uIGFwcGVhcnMgZGlyZWN0bHkgaW4gdGhlIHBhcmVudC4KCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNi4xICBGb3JtYWwgcGFydCAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRk9STUFMX1BBUlQgOjo9CiAgICAgIC0tICAgIChQ QVJBTUVURVJfU1BFQ0lGSUNBVElPTiB7OyBQQVJBTUVURVJfU1BFQ0lGSUNBVElPTn0pCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuMSAgUGFyYW1l dGVyIHNwZWNpZmljYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgICAgLS0gIFBBUkFNRVRFUl9TUEVDSUZJQ0FUSU9OIDo6PQogICAgICAtLSAgICBE RUZJTklOR19JREVOVElGSUVSX0xJU1QgOiBNT0RFIFNVQlRZUEVfTUFSSwogICAgICAtLSAgICAg IFs6PSBERUZBVUxUX0VYUFJFU1NJT05dCiAgICAgIC0tICB8IERFRklOSU5HX0lERU5USUZJRVJf TElTVCA6IEFDQ0VTU19ERUZJTklUSU9OCiAgICAgIC0tICAgICAgWzo9IERFRkFVTFRfRVhQUkVT U0lPTl0KCiAgICAgIC0tICBBbHRob3VnaCB0aGUgc3ludGF4IGFsbG93cyBtdWx0aXBsZSBpZGVu dGlmaWVycyBpbiB0aGUgbGlzdCwgdGhlCiAgICAgIC0tICBzZW1hbnRpY3MgaXMgYXMgdGhvdWdo IHN1Y2Nlc3NpdmUgc3BlY2lmaWNhdGlvbnMgd2VyZSBnaXZlbiB3aXRoCiAgICAgIC0tICBpZGVu dGljYWwgdHlwZSBkZWZpbml0aW9uIGFuZCBleHByZXNzaW9uIGNvbXBvbmVudHMuIFRvIHNpbXBs aWZ5CiAgICAgIC0tICBzZW1hbnRpYyBwcm9jZXNzaW5nLCB0aGUgcGFyc2VyIHJlcHJlc2VudHMg YSBtdWx0aXBsZSBkZWNsYXJhdGlvbgogICAgICAtLSAgY2FzZSBhcyBhIHNlcXVlbmNlIG9mIHNp bmdsZSBTcGVjaWZpY2F0aW9ucywgdXNpbmcgdGhlIE1vcmVfSWRzIGFuZAogICAgICAtLSAgUHJl dl9JZHMgZmxhZ3MgdG8gcHJlc2VydmUgdGhlIG9yaWdpbmFsIHNvdXJjZSBmb3JtIGFzIGRlc2Ny aWJlZAogICAgICAtLSAgaW4gdGhlIHNlY3Rpb24gb24gIkhhbmRsaW5nIG9mIERlZmluaW5nIElk ZW50aWZpZXIgTGlzdHMiLgoKICAgICAgLS0gIE5fUGFyYW1ldGVyX1NwZWNpZmljYXRpb24KICAg ICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0IGlkZW50aWZpZXIKICAgICAgLS0gIERlZmluaW5n X0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgSW5fUHJlc2VudCAoRmxhZzE1KQogICAgICAt LSAgT3V0X1ByZXNlbnQgKEZsYWcxNykKICAgICAgLS0gIFBhcmFtZXRlcl9UeXBlIChOb2RlMikg c3VidHlwZSBtYXJrIG9yIGFjY2VzcyBkZWZpbml0aW9uCiAgICAgIC0tICBFeHByZXNzaW9uIChO b2RlMykgKHNldCB0byBFbXB0eSBpZiBubyBkZWZhdWx0IGV4cHJlc3Npb24gcHJlc2VudCkKICAg ICAgLS0gIERvX0FjY2Vzc2liaWxpdHlfQ2hlY2sgKEZsYWcxMy1TZW0pCiAgICAgIC0tICBNb3Jl X0lkcyAoRmxhZzUpIChzZXQgdG8gRmFsc2UgaWYgbm8gbW9yZSBpZGVudGlmaWVycyBpbiBsaXN0 KQogICAgICAtLSAgUHJldl9JZHMgKEZsYWc2KSAoc2V0IHRvIEZhbHNlIGlmIG5vIHByZXZpb3Vz IGlkZW50aWZpZXJzIGluIGxpc3QpCiAgICAgIC0tICBEZWZhdWx0X0V4cHJlc3Npb24gKE5vZGU1 LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA2LjEgIE1vZGUgLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgTU9ERSA6Oj0gW2luXSB8IGluIG91dCB8IG91dAoK ICAgICAgLS0gIFRoZXJlIGlzIG5vIGV4cGxpY2l0IG5vZGUgaW4gdGhlIHRyZWUgZm9yIHRoZSBN b2RlLiBJbnN0ZWFkIHRoZQogICAgICAtLSAgSW5fUHJlc2VudCBhbmQgT3V0X1ByZXNlbnQgZmxh Z3MgYXJlIHNldCBpbiB0aGUgcGFyZW50IG5vZGUgdG8KICAgICAgLS0gIHJlY29yZCB0aGUgcHJl c2VuY2Ugb2Yga2V5d29yZHMgc3BlY2lmeWluZyB0aGUgbW9kZS4KCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuMyAgU3VicHJvZ3JhbSBCb2R5IC0tCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU1VCUFJPR1JBTV9CT0RZIDo6PQog ICAgICAtLSAgICBTVUJQUk9HUkFNX1NQRUNJRklDQVRJT04gaXMKICAgICAgLS0gICAgICBERUNM QVJBVElWRV9QQVJUCiAgICAgIC0tICAgIGJlZ2luCiAgICAgIC0tICAgICAgSEFORExFRF9TRVFV RU5DRV9PRl9TVEFURU1FTlRTCiAgICAgIC0tICAgIGVuZCBbREVTSUdOQVRPUl07CgogICAgICAt LSAgTl9TdWJwcm9ncmFtX0JvZHkKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEZVTkNUSU9OIG9y IFBST0NFRFVSRQogICAgICAtLSAgU3BlY2lmaWNhdGlvbiAoTm9kZTEpCiAgICAgIC0tICBEZWNs YXJhdGlvbnMgKExpc3QyKQogICAgICAtLSAgSGFuZGxlZF9TdGF0ZW1lbnRfU2VxdWVuY2UgKE5v ZGU0KQogICAgICAtLSAgQWN0aXZhdGlvbl9DaGFpbl9FbnRpdHkgKE5vZGUzLVNlbSkKICAgICAg LS0gIENvcnJlc3BvbmRpbmdfU3BlYyAoTm9kZTUtU2VtKQogICAgICAtLSAgQWN0c19Bc19TcGVj IChGbGFnNC1TZW0pCiAgICAgIC0tICBCYWRfSXNfRGV0ZWN0ZWQgKEZsYWcxNSkgdXNlZCBvbmx5 IGJ5IHBhcnNlcgogICAgICAtLSAgRG9fU3RvcmFnZV9DaGVjayAoRmxhZzE3LVNlbSkKICAgICAg LS0gIEhhc19Qcmlvcml0eV9QcmFnbWEgKEZsYWc2LVNlbSkKICAgICAgLS0gIElzX1Byb3RlY3Rl ZF9TdWJwcm9ncmFtX0JvZHkgKEZsYWc3LVNlbSkKICAgICAgLS0gIElzX1Rhc2tfTWFzdGVyIChG bGFnNS1TZW0pCiAgICAgIC0tICBXYXNfT3JpZ2luYWxseV9TdHViIChGbGFnMTMtU2VtKQoKICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNi40ICBQcm9j ZWR1cmUgQ2FsbCBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgICAgIC0tICBQUk9DRURVUkVfQ0FMTF9TVEFURU1FTlQgOjo9CiAgICAgIC0t ICAgIHByb2NlZHVyZV9OQU1FOyB8IHByb2NlZHVyZV9QUkVGSVggQUNUVUFMX1BBUkFNRVRFUl9Q QVJUOwoKICAgICAgLS0gIE5vdGU6IHRoZSByZWFzb24gdGhhdCBhIHByb2NlZHVyZSBjYWxsIGhh cyBleHByZXNzaW9uIGZpZWxkcyBpcwogICAgICAtLSAgdGhhdCBpdCBzZW1hbnRpY2FsbHkgcmVz ZW1ibGVzIGFuIGV4cHJlc3Npb24sIGUuZy4gb3ZlcmxvYWRpbmcgaXMKICAgICAgLS0gIGFsbG93 ZWQgYW5kIGEgdHlwZSBpcyBjb25jb2N0ZWQgZm9yIHNlbWFudGljIHByb2Nlc3NpbmcgcHVycG9z ZXMuCiAgICAgIC0tICBDZXJ0YWluIG9mIHRoZXNlIGZpZWxkcywgc3VjaCBhcyBQYXJlbnMgYXJl IG5vdCByZWxldmFudCwgYnV0IGl0CiAgICAgIC0tICBpcyBlYXNpZXIgdG8ganVzdCBzdXBwbHkg YWxsIG9mIHRoZW0gdG9nZXRoZXIhCgogICAgICAtLSAgTl9Qcm9jZWR1cmVfQ2FsbF9TdGF0ZW1l bnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0IHRva2VuIG9mIG5hbWUgb3IgcHJlZml4 CiAgICAgIC0tICBOYW1lIChOb2RlMikgc3RvcmVzIG5hbWUgb3IgcHJlZml4CiAgICAgIC0tICBQ YXJhbWV0ZXJfQXNzb2NpYXRpb25zIChMaXN0MykgKHNldCB0byBOb19MaXN0IGlmIG5vCiAgICAg IC0tICAgYWN0dWFsIHBhcmFtZXRlciBwYXJ0KQogICAgICAtLSAgRmlyc3RfTmFtZWRfQWN0dWFs IChOb2RlNC1TZW0pCiAgICAgIC0tICBDb250cm9sbGluZ19Bcmd1bWVudCAoTm9kZTEtU2VtKSAo c2V0IHRvIEVtcHR5IGlmIG5vdCBkaXNwYXRjaGluZykKICAgICAgLS0gIERvX1RhZ19DaGVjayAo RmxhZzEzLVNlbSkKICAgICAgLS0gIFBhcmFtZXRlcl9MaXN0X1RydW5jYXRlZCAoRmxhZzE3LVNl bSkKICAgICAgLS0gIEFCRV9Jc19DZXJ0YWluIChGbGFnMTgtU2VtKQogICAgICAtLSAgcGx1cyBm aWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBJZiBhbnkgSU4gcGFyYW1ldGVyIHJlcXVp cmVzIGEgcmFuZ2UgY2hlY2ssIHRoZW4gdGhlIGNvcnJlc3BvbmRpbmcKICAgICAgLS0gIGFyZ3Vt ZW50IGV4cHJlc3Npb24gaGFzIHRoZSBEb19SYW5nZV9DaGVjayBmbGFnIHNldCwgYW5kIHRoZSBy YW5nZQogICAgICAtLSAgY2hlY2sgaXMgZG9uZSBhZ2FpbnN0IHRoZSBmb3JtYWwgdHlwZS4gTm90 ZSB0aGF0IHRoaXMgYXJndW1lbnQKICAgICAgLS0gIGV4cHJlc3Npb24gbWF5IGFwcGVhciBkaXJl Y3RseSBpbiB0aGUgUGFyYW1ldGVyX0Fzc29jaWF0aW9ucyBsaXN0LAogICAgICAtLSAgb3IgbWF5 IGJlIGEgZGVzY2VuZGVudCBvZiBhbiBOX1BhcmFtZXRlcl9Bc3NvY2lhdGlvbiBub2RlIHRoYXQK ICAgICAgLS0gIGFwcGVhcnMgaW4gdGhpcyBsaXN0LgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICAgIC0tIDYuNCAgRnVuY3Rpb24gQ2FsbCAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBGVU5DVElPTl9DQUxMIDo6PQogICAgICAtLSAgICBmdW5j dGlvbl9OQU1FIHwgZnVuY3Rpb25fUFJFRklYIEFDVFVBTF9QQVJBTUVURVJfUEFSVAoKICAgICAg LS0gIE5vdGU6IHRoZSBwYXJzZXIgbWF5IGdlbmVyYXRlIGFuIGluZGV4ZWQgY29tcG9uZW50IG5v ZGUgb3Igc2ltcGx5CiAgICAgIC0tICBhIG5hbWUgbm9kZSBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24g Y2FsbCBub2RlLiBUaGUgc2VtYW50aWMgcGFzcyBtdXN0CiAgICAgIC0tICBjb3JyZWN0IHRoaXMg bWlzaWRlbnRpZmljYXRpb24uCgogICAgICAtLSAgTl9GdW5jdGlvbl9DYWxsCiAgICAgIC0tICBT bG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBvZiBuYW1lIG9yIHByZWZpeAogICAgICAtLSAgTmFt ZSAoTm9kZTIpIHN0b3JlcyBuYW1lIG9yIHByZWZpeAogICAgICAtLSAgUGFyYW1ldGVyX0Fzc29j aWF0aW9ucyAoTGlzdDMpIChzZXQgdG8gTm9fTGlzdCBpZiBubwogICAgICAtLSAgIGFjdHVhbCBw YXJhbWV0ZXIgcGFydCkKICAgICAgLS0gIEZpcnN0X05hbWVkX0FjdHVhbCAoTm9kZTQtU2VtKQog ICAgICAtLSAgQ29udHJvbGxpbmdfQXJndW1lbnQgKE5vZGUxLVNlbSkgKHNldCB0byBFbXB0eSBp ZiBub3QgZGlzcGF0Y2hpbmcpCiAgICAgIC0tICBEb19UYWdfQ2hlY2sgKEZsYWcxMy1TZW0pCiAg ICAgIC0tICBQYXJhbWV0ZXJfTGlzdF9UcnVuY2F0ZWQgKEZsYWcxNy1TZW0pCiAgICAgIC0tICBB QkVfSXNfQ2VydGFpbiAoRmxhZzE4LVNlbSkKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHBy ZXNzaW9uCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA2 LjQgIEFjdHVhbCBQYXJhbWV0ZXIgUGFydCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIEFDVFVBTF9QQVJBTUVURVJfUEFSVCA6Oj0KICAgICAgLS0g ICAgKFBBUkFNRVRFUl9BU1NPQ0lBVElPTiB7LFBBUkFNRVRFUl9BU1NPQ0lBVElPTn0pCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA2LjQgIFBhcmFtZXRl ciBBc3NvY2lhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIFBBUkFNRVRFUl9BU1NPQ0lBVElPTiA6Oj0KICAgICAgLS0gICAgW2Zvcm1hbF9w YXJhbWV0ZXJfU0VMRUNUT1JfTkFNRSA9Pl0gRVhQTElDSVRfQUNUVUFMX1BBUkFNRVRFUgoKICAg ICAgLS0gIE5vdGU6IHRoZSBOX1BhcmFtZXRlcl9Bc3NvY2lhdGlvbiBub2RlIGlzIGJ1aWx0IG9u bHkgaWYgYSBmb3JtYWwKICAgICAgLS0gIHBhcmFtZXRlciBzZWxlY3RvciBuYW1lIGlzIHByZXNl bnQsIG90aGVyd2lzZSB0aGUgcGFyYW1ldGVyCiAgICAgIC0tICBhc3NvY2lhdGlvbiBhcHBlYXJz IGluIHRoZSB0cmVlIHNpbXBseSBhcyB0aGUgbm9kZSBmb3IgdGhlCiAgICAgIC0tICBleHBsaWNp dCBhY3R1YWwgcGFyYW1ldGVyLgoKICAgICAgLS0gIE5fUGFyYW1ldGVyX0Fzc29jaWF0aW9uCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBmb3JtYWwgcGFyYW1ldGVyCiAgICAgIC0tICBTZWxlY3Rv cl9OYW1lIChOb2RlMikgKGFsd2F5cyBub24tRW1wdHksIHNpbmNlIHRoaXMgbm9kZSBpcwogICAg ICAtLSAgIG9ubHkgdXNlZCBpZiBhIGZvcm1hbCBwYXJhbWV0ZXIgc2VsZWN0b3IgbmFtZSBpcyBw cmVzZW50KQogICAgICAtLSAgRXhwbGljaXRfQWN0dWFsX1BhcmFtZXRlciAoTm9kZTMpCiAgICAg IC0tICBOZXh0X05hbWVkX0FjdHVhbCAoTm9kZTQtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuNCAgQWN0dWFsIFBhcmFtZXRlciAtLQogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBFWFBMSUNJVF9BQ1RVQUxfUEFSQU1F VEVSIDo6PSBFWFBSRVNTSU9OIHwgdmFyaWFibGVfTkFNRQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDYuNSAgUmV0dXJuIFN0YXRlbWVudCAtLQogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBSRVRVUk5fU1RBVEVNRU5UIDo6PSBy ZXR1cm4gW0VYUFJFU1NJT05dOwoKICAgICAgLS0gIE5fUmV0dXJuX1N0YXRlbWVudAogICAgICAt LSAgU2xvYyBwb2ludHMgdG8gUkVUVVJOCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykgKHNl dCB0byBFbXB0eSBpZiBubyBleHByZXNzaW9uIHByZXNlbnQpCiAgICAgIC0tICBTdG9yYWdlX1Bv b2wgKE5vZGUxLVNlbSkKICAgICAgLS0gIFByb2NlZHVyZV9Ub19DYWxsIChOb2RlNC1TZW0pCiAg ICAgIC0tICBEb19UYWdfQ2hlY2sgKEZsYWcxMy1TZW0pCiAgICAgIC0tICBSZXR1cm5fVHlwZSAo Tm9kZTItU2VtKQogICAgICAtLSAgQnlfUmVmIChGbGFnNS1TZW0pCgogICAgICAtLSAgTm90ZTog aWYgYSByYW5nZSBjaGVjayBpcyByZXF1aXJlZCwgdGhlbiBEb19SYW5nZV9DaGVjayBpcyBzZXQK ICAgICAgLS0gIG9uIHRoZSBFeHByZXNzaW9uLiBUaGUgcmFuZ2UgY2hlY2sgaXMgYWdhaW5zdCBS ZXR1cm5fVHlwZS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSA3LjEgIFBhY2thZ2UgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICAgICAtLSAgUEFDS0FHRV9ERUNMQVJBVElPTiA6Oj0gUEFDS0FHRV9TUEVD SUZJQ0FUSU9OOwoKICAgICAgLS0gIE5vdGU6IHRoZSBhY3RpdmF0aW9uIGNoYWluIGVudGl0eSBm b3IgYSBwYWNrYWdlIHNwZWMgaXMgdXNlZCBmb3IKICAgICAgLS0gIGFsbCB0YXNrcyBkZWNsYXJl ZCBpbiB0aGUgcGFja2FnZSBzcGVjLCBvciBpbiB0aGUgcGFja2FnZSBib2R5LgoKICAgICAgLS0g IE5fUGFja2FnZV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUEFDS0FHRQog ICAgICAtLSAgU3BlY2lmaWNhdGlvbiAoTm9kZTEpCiAgICAgIC0tICBDb3JyZXNwb25kaW5nX0Jv ZHkgKE5vZGU1LVNlbSkKICAgICAgLS0gIFBhcmVudF9TcGVjIChOb2RlNC1TZW0pCiAgICAgIC0t ICBBY3RpdmF0aW9uX0NoYWluX0VudGl0eSAoTm9kZTMtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gNy4xICBQYWNrYWdlIFNwZWNpZmljYXRpb24g LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQQUNL QUdFX1NQRUNJRklDQVRJT04gOjo9CiAgICAgIC0tICAgIHBhY2thZ2UgREVGSU5JTkdfUFJPR1JB TV9VTklUX05BTUUgaXMKICAgICAgLS0gICAgICB7QkFTSUNfREVDTEFSQVRJVkVfSVRFTX0KICAg ICAgLS0gICAgW3ByaXZhdGUKICAgICAgLS0gICAgICB7QkFTSUNfREVDTEFSQVRJVkVfSVRFTX1d CiAgICAgIC0tICAgIGVuZCBbW1BBUkVOVF9VTklUX05BTUUgLl0gSURFTlRJRklFUl0KCiAgICAg IC0tICBOX1BhY2thZ2VfU3BlY2lmaWNhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUEFD S0FHRQogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIFZpc2li bGVfRGVjbGFyYXRpb25zIChMaXN0MikKICAgICAgLS0gIFByaXZhdGVfRGVjbGFyYXRpb25zIChM aXN0MykgKHNldCB0byBOb19MaXN0IGlmIG5vIHByaXZhdGUKICAgICAgLS0gICBwYXJ0IHByZXNl bnQpCiAgICAgIC0tICBFbmRfTGFiZWwgKE5vZGU0KQogICAgICAtLSAgR2VuZXJpY19QYXJlbnQg KE5vZGU1LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDcuMSAg UGFja2FnZSBCb2R5IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAg UEFDS0FHRV9CT0RZIDo6PQogICAgICAtLSAgICBwYWNrYWdlIGJvZHkgREVGSU5JTkdfUFJPR1JB TV9VTklUX05BTUUgaXMKICAgICAgLS0gICAgICBERUNMQVJBVElWRV9QQVJUCiAgICAgIC0tICAg IFtiZWdpbgogICAgICAtLSAgICAgIEhBTkRMRURfU0VRVUVOQ0VfT0ZfU1RBVEVNRU5UU10KICAg ICAgLS0gICAgZW5kIFtbUEFSRU5UX1VOSVRfTkFNRSAuXSBJREVOVElGSUVSXTsKCiAgICAgIC0t ICBOX1BhY2thZ2VfQm9keQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUEFDS0FHRQogICAgICAt LSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIERlY2xhcmF0aW9ucyAoTGlz dDIpCiAgICAgIC0tICBIYW5kbGVkX1N0YXRlbWVudF9TZXF1ZW5jZSAoTm9kZTQpIChzZXQgdG8g RW1wdHkgaWYgbm8gSFNTIHByZXNlbnQpCiAgICAgIC0tICBDb3JyZXNwb25kaW5nX1NwZWMgKE5v ZGU1LVNlbSkKICAgICAgLS0gIFdhc19PcmlnaW5hbGx5X1N0dWIgKEZsYWcxMy1TZW0pCgogICAg ICAtLSAgTm90ZTogaWYgYSBzb3VyY2UgbGV2ZWwgcGFja2FnZSBkb2VzIG5vdCBjb250YWluIGEg aGFuZGxlZCBzZXF1ZW5jZQogICAgICAtLSAgb2Ygc3RhdGVtZW50cywgdGhlbiB0aGUgcGFyc2Vy IHN1cHBsaWVzIGEgZHVtbXkgb25lIHdpdGggYSBudWxsCiAgICAgIC0tICBzZXF1ZW5jZSBvZiBz dGF0ZW1lbnRzLiBDb21lc19Gcm9tX1NvdXJjZSB3aWxsIGJlIEZhbHNlIGluIHRoaXMKICAgICAg LS0gIGNvbnN0cnVjdGVkIHNlcXVlbmNlLiBUaGUgcmVhc29uIHdlIG5lZWQgdGhpcyBpcyBmb3Ig dGhlIEVuZF9MYWJlbAogICAgICAtLSAgZmllbGQgaW4gdGhlIEhTUy4KCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDcuNCAgUHJpdmF0ZSBUeXBlIERl Y2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgUFJJVkFURV9UWVBFX0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICB0eXBlIERF RklOSU5HX0lERU5USUZJRVIgW0RJU0NSSU1JTkFOVF9QQVJUXQogICAgICAtLSAgICAgIGlzIFtb YWJzdHJhY3RdIHRhZ2dlZF0gW2xpbWl0ZWRdIHByaXZhdGU7CgogICAgICAtLSAgTm90ZTogVEFH R0VEIGlzIG5vdCBwZXJtaXR0ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBOX1ByaXZhdGVf VHlwZV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gVFlQRQogICAgICAtLSAg RGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBEaXNjcmltaW5hbnRfU3BlY2lm aWNhdGlvbnMgKExpc3Q0KSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8KICAgICAgLS0gICBkaXNjcmlt aW5hbnQgcGFydCkKICAgICAgLS0gIFVua25vd25fRGlzY3JpbWluYW50c19QcmVzZW50IChGbGFn MTMpIHNldCBpZiAoPD4pIGRpc2NyaW1pbmFudAogICAgICAtLSAgQWJzdHJhY3RfUHJlc2VudCAo RmxhZzQpCiAgICAgIC0tICBUYWdnZWRfUHJlc2VudCAoRmxhZzE1KQogICAgICAtLSAgTGltaXRl ZF9QcmVzZW50IChGbGFnMTcpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDcuNCAgUHJpdmF0ZSBFeHRlbnNpb24gRGVjbGFyYXRpb24gLS0K ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0g IFBSSVZBVEVfRVhURU5TSU9OX0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICB0eXBlIERFRklO SU5HX0lERU5USUZJRVIgW0RJU0NSSU1JTkFOVF9QQVJUXSBpcwogICAgICAtLSAgICAgIFthYnN0 cmFjdF0gbmV3IGFuY2VzdG9yX1NVQlRZUEVfSU5ESUNBVElPTiB3aXRoIHByaXZhdGU7CgogICAg ICAtLSAgTm90ZTogcHJpdmF0ZSBleHRlbnNpb24gZGVjbGFyYXRpb25zIGFyZSBub3QgYWxsb3dl ZCBpbiBBZGEgODMgbW9kZQoKICAgICAgLS0gIE5fUHJpdmF0ZV9FeHRlbnNpb25fRGVjbGFyYXRp b24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFRZUEUKICAgICAgLS0gIERlZmluaW5nX0lkZW50 aWZpZXIgKE5vZGUxKQogICAgICAtLSAgRGlzY3JpbWluYW50X1NwZWNpZmljYXRpb25zIChMaXN0 NCkgKHNldCB0byBOb19MaXN0IGlmIG5vCiAgICAgIC0tICAgZGlzY3JpbWluYW50IHBhcnQpCiAg ICAgIC0tICBVbmtub3duX0Rpc2NyaW1pbmFudHNfUHJlc2VudCAoRmxhZzEzKSBzZXQgaWYgKDw+ KSBkaXNjcmltaW5hbnQKICAgICAgLS0gIEFic3RyYWN0X1ByZXNlbnQgKEZsYWc0KQogICAgICAt LSAgU3VidHlwZV9JbmRpY2F0aW9uIChOb2RlNSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSA4LjQgIFVzZSBDbGF1c2UgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAgICAtLSAgVVNFX0NMQVVTRSA6Oj0gVVNFX1BBQ0tBR0VfQ0xBVVNFIHwgVVNFX1RZUEVf Q0xBVVNFCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA4LjQg IFVzZSBQYWNrYWdlIENsYXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIFVTRV9QQUNLQUdFX0NMQVVTRSA6Oj0gdXNlIHBhY2thZ2VfTkFNRSB7LCBw YWNrYWdlX05BTUV9OwoKICAgICAgLS0gIE5fVXNlX1BhY2thZ2VfQ2xhdXNlCiAgICAgIC0tICBT bG9jIHBvaW50cyB0byBVU0UKICAgICAgLS0gIE5hbWVzIChMaXN0MikKICAgICAgLS0gIE5leHRf VXNlX0NsYXVzZSAoTm9kZTMtU2VtKQogICAgICAtLSAgSGlkZGVuX0J5X1VzZV9DbGF1c2UgKEVs aXN0NC1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA4LjQg IFVzZSBUeXBlIENsYXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg ICAgLS0gIFVTRV9UWVBFX0NMQVVTRSA6Oj0gdXNlIHR5cGUgU1VCVFlQRV9NQVJLIHssIFNVQlRZ UEVfTUFSS307CgogICAgICAtLSAgTm90ZTogdXNlIHR5cGUgY2xhdXNlIGlzIG5vdCBwZXJtaXR0 ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBOX1VzZV9UeXBlX0NsYXVzZQogICAgICAtLSAg U2xvYyBwb2ludHMgdG8gVVNFCiAgICAgIC0tICBTdWJ0eXBlX01hcmtzIChMaXN0MikKICAgICAg LS0gIE5leHRfVXNlX0NsYXVzZSAoTm9kZTMtU2VtKQogICAgICAtLSAgSGlkZGVuX0J5X1VzZV9D bGF1c2UgKEVsaXN0NC1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDguNSAgUmVuYW1pbmcgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFJFTkFNSU5HX0RFQ0xBUkFUSU9OIDo6PQog ICAgICAtLSAgICBPQkpFQ1RfUkVOQU1JTkdfREVDTEFSQVRJT04KICAgICAgLS0gIHwgRVhDRVBU SU9OX1JFTkFNSU5HX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IFBBQ0tBR0VfUkVOQU1JTkdfREVD TEFSQVRJT04KICAgICAgLS0gIHwgU1VCUFJPR1JBTV9SRU5BTUlOR19ERUNMQVJBVElPTgogICAg ICAtLSAgfCBHRU5FUklDX1JFTkFNSU5HX0RFQ0xBUkFUSU9OCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA4LjUgIE9iamVjdCBSZW5hbWluZyBE ZWNsYXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIE9CSkVDVF9SRU5BTUlOR19ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAg REVGSU5JTkdfSURFTlRJRklFUiA6IFNVQlRZUEVfTUFSSyByZW5hbWVzIG9iamVjdF9OQU1FOwoK ICAgICAgLS0gIE5fT2JqZWN0X1JlbmFtaW5nX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBv aW50cyB0byBmaXJzdCBpZGVudGlmaWVyCiAgICAgIC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChO b2RlMSkKICAgICAgLS0gIFN1YnR5cGVfTWFyayAoTm9kZTQpCiAgICAgIC0tICBOYW1lIChOb2Rl MikKICAgICAgLS0gIENvcnJlc3BvbmRpbmdfR2VuZXJpY19Bc3NvY2lhdGlvbiAoTm9kZTUtU2Vt KQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gOC41ICBFeGNlcHRpb24gUmVuYW1pbmcgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBFWENFUFRJT05fUkVO QU1JTkdfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIERFRklOSU5HX0lERU5USUZJRVIgOiBl eGNlcHRpb24gcmVuYW1lcyBleGNlcHRpb25fTkFNRTsKCiAgICAgIC0tICBOX0V4Y2VwdGlvbl9S ZW5hbWluZ19EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gZmlyc3QgaWRlbnRp ZmllcgogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBOYW1l IChOb2RlMikKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSA4LjUgIFBhY2thZ2UgUmVuYW1pbmcgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUEFDS0FHRV9SRU5B TUlOR19ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgcGFja2FnZSBERUZJTklOR19QUk9HUkFN X1VOSVRfTkFNRSByZW5hbWVzIHBhY2thZ2VfTkFNRTsKCiAgICAgIC0tICBOX1BhY2thZ2VfUmVu YW1pbmdfRGVjbGFyYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFBBQ0tBR0UKICAgICAg LS0gIERlZmluaW5nX1VuaXRfTmFtZSAoTm9kZTEpCiAgICAgIC0tICBOYW1lIChOb2RlMikKICAg ICAgLS0gIFBhcmVudF9TcGVjIChOb2RlNC1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOC41ICBTdWJwcm9ncmFtIFJlbmFtaW5n IERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgICAgLS0gIFNVQlBST0dSQU1fUkVOQU1JTkdfREVDTEFSQVRJT04gOjo9CiAg ICAgIC0tICAgIFNVQlBST0dSQU1fU1BFQ0lGSUNBVElPTiByZW5hbWVzIGNhbGxhYmxlX2VudGl0 eV9OQU1FOwoKICAgICAgLS0gIE5fU3VicHJvZ3JhbV9SZW5hbWluZ19EZWNsYXJhdGlvbgogICAg ICAtLSAgU2xvYyBwb2ludHMgdG8gUkVOQU1FUwogICAgICAtLSAgU3BlY2lmaWNhdGlvbiAoTm9k ZTEpCiAgICAgIC0tICBOYW1lIChOb2RlMikKICAgICAgLS0gIFBhcmVudF9TcGVjIChOb2RlNC1T ZW0pCiAgICAgIC0tICBDb3JyZXNwb25kaW5nX1NwZWMgKE5vZGU1LVNlbSkKCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDguNS41ICBHZW5l cmljIFJlbmFtaW5nIERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgR0VORVJJQ19SRU5BTUlOR19ERUNMQVJBVElP TiA6Oj0KICAgICAgLS0gICAgZ2VuZXJpYyBwYWNrYWdlIERFRklOSU5HX1BST0dSQU1fVU5JVF9O QU1FCiAgICAgIC0tICAgICAgcmVuYW1lcyBnZW5lcmljX3BhY2thZ2VfTkFNRQogICAgICAtLSAg fCBnZW5lcmljIHByb2NlZHVyZSBERUZJTklOR19QUk9HUkFNX1VOSVRfTkFNRQogICAgICAtLSAg ICAgIHJlbmFtZXMgZ2VuZXJpY19wcm9jZWR1cmVfTkFNRQogICAgICAtLSAgfCBnZW5lcmljIGZ1 bmN0aW9uIERFRklOSU5HX1BST0dSQU1fVU5JVF9OQU1FCiAgICAgIC0tICAgICAgcmVuYW1lcyBn ZW5lcmljX2Z1bmN0aW9uX05BTUUKCiAgICAgIC0tICBOX0dlbmVyaWNfUGFja2FnZV9SZW5hbWlu Z19EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gR0VORVJJQwogICAgICAtLSAg RGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIE5hbWUgKE5vZGUyKQogICAgICAt LSAgUGFyZW50X1NwZWMgKE5vZGU0LVNlbSkKCiAgICAgIC0tICBOX0dlbmVyaWNfUHJvY2VkdXJl X1JlbmFtaW5nX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBHRU5FUklDCiAg ICAgIC0tICBEZWZpbmluZ19Vbml0X05hbWUgKE5vZGUxKQogICAgICAtLSAgTmFtZSAoTm9kZTIp CiAgICAgIC0tICBQYXJlbnRfU3BlYyAoTm9kZTQtU2VtKQoKICAgICAgLS0gIE5fR2VuZXJpY19G dW5jdGlvbl9SZW5hbWluZ19EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gR0VO RVJJQwogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIE5hbWUg KE5vZGUyKQogICAgICAtLSAgUGFyZW50X1NwZWMgKE5vZGU0LVNlbSkKCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuMSAgVGFzayBUeXBlIERlY2xhcmF0 aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAg VEFTS19UWVBFX0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICB0YXNrIHR5cGUgREVGSU5JTkdf SURFTlRJRklFUiBbS05PV05fRElTQ1JJTUlOQU5UX1BBUlRdCiAgICAgIC0tICAgICAgW2lzIFRB U0tfREVGSU5JVElUSU9OXTsKCiAgICAgIC0tICBOX1Rhc2tfVHlwZV9EZWNsYXJhdGlvbgogICAg ICAtLSAgU2xvYyBwb2ludHMgdG8gVEFTSwogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAo Tm9kZTEpCiAgICAgIC0tICBUYXNrX0JvZHlfUHJvY2VkdXJlIChOb2RlMi1TZW0pCiAgICAgIC0t ICBEaXNjcmltaW5hbnRfU3BlY2lmaWNhdGlvbnMgKExpc3Q0KSAoc2V0IHRvIE5vX0xpc3QgaWYg bm8KICAgICAgLS0gICBkaXNjcmltaW5hbnQgcGFydCkKICAgICAgLS0gIFRhc2tfRGVmaW5pdGlv biAoTm9kZTMpIChzZXQgdG8gRW1wdHkgaWYgbm90IHByZXNlbnQpCiAgICAgIC0tICBDb3JyZXNw b25kaW5nX0JvZHkgKE5vZGU1LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gOS4xICBTaW5nbGUgVGFzayBEZWNsYXJhdGlvbiAtLQogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU0lOR0xFX1RBU0tf REVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIHRhc2sgREVGSU5JTkdfSURFTlRJRklFUiBbaXMg VEFTS19ERUZJTklUSU9OXTsKCiAgICAgIC0tICBOX1NpbmdsZV9UYXNrX0RlY2xhcmF0aW9uCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBUQVNLCiAgICAgIC0tICBEZWZpbmluZ19JZGVudGlmaWVy IChOb2RlMSkKICAgICAgLS0gIFRhc2tfRGVmaW5pdGlvbiAoTm9kZTMpIChzZXQgdG8gRW1wdHkg aWYgbm90IHByZXNlbnQpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSA5LjEgIFRhc2sgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIFRBU0tfREVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgICB7VEFTS19JVEVN fQogICAgICAtLSAgICBbcHJpdmF0ZQogICAgICAtLSAgICAgIHtUQVNLX0lURU19XQogICAgICAt LSAgICBlbmQgW3Rhc2tfSURFTlRJRklFUl0KCiAgICAgIC0tICBOb3RlOiBhcyBhIHJlc3VsdCBv ZiBzZW1hbnRpYyBhbmFseXNpcywgdGhlIGxpc3Qgb2YgdGFzayBpdGVtcyBjYW4KICAgICAgLS0g IGluY2x1ZGUgaW1wbGljaXQgdHlwZSBkZWNsYXJhdGlvbnMgcmVzdWx0aW5nIGZyb20gZW50cnkg ZmFtaWxpZXMuCgogICAgICAtLSAgTl9UYXNrX0RlZmluaXRpb24KICAgICAgLS0gIFNsb2MgcG9p bnRzIHRvIGZpcnN0IHRva2VuIG9mIHRhc2sgZGVmaW5pdGlvbgogICAgICAtLSAgVmlzaWJsZV9E ZWNsYXJhdGlvbnMgKExpc3QyKQogICAgICAtLSAgUHJpdmF0ZV9EZWNsYXJhdGlvbnMgKExpc3Qz KSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8gcHJpdmF0ZSBwYXJ0KQogICAgICAtLSAgRW5kX0xhYmVs IChOb2RlNCkKICAgICAgLS0gIEhhc19Qcmlvcml0eV9QcmFnbWEgKEZsYWc2LVNlbSkKICAgICAg LS0gIEhhc19TdG9yYWdlX1NpemVfUHJhZ21hIChGbGFnNS1TZW0pCiAgICAgIC0tICBIYXNfVGFz a19JbmZvX1ByYWdtYSAoRmxhZzctU2VtKQogICAgICAtLSAgSGFzX1Rhc2tfTmFtZV9QcmFnbWEg KEZsYWc4LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuMSAgVGFz ayBJdGVtIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVEFTS19JVEVN IDo6PSBFTlRSWV9ERUNMQVJBVElPTiB8IFJFUFJFU0VOVEFUSU9OX0NMQVVTRQoKICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS4xICBUYXNrIEJvZHkgLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBUQVNLX0JPRFkgOjo9CiAgICAgIC0tICAgIHRhc2sg Ym9keSB0YXNrX0RFRklOSU5HX0lERU5USUZJRVIgaXMKICAgICAgLS0gICAgICBERUNMQVJBVElW RV9QQVJUCiAgICAgIC0tICAgIGJlZ2luCiAgICAgIC0tICAgICAgSEFORExFRF9TRVFVRU5DRV9P Rl9TVEFURU1FTlRTCiAgICAgIC0tICAgIGVuZCBbdGFza19JREVOVElGSUVSXTsKCiAgICAgIC0t ICBHaWdpIHJlc3RyaWN0aW9uOiBUaGlzIG5vZGUgbmV2ZXIgYXBwZWFycy4KCiAgICAgIC0tICBO X1Rhc2tfQm9keQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gVEFTSwogICAgICAtLSAgRGVmaW5p bmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBEZWNsYXJhdGlvbnMgKExpc3QyKQogICAg ICAtLSAgSGFuZGxlZF9TdGF0ZW1lbnRfU2VxdWVuY2UgKE5vZGU0KQogICAgICAtLSAgSXNfVGFz a19NYXN0ZXIgKEZsYWc1LVNlbSkKICAgICAgLS0gIEFjdGl2YXRpb25fQ2hhaW5fRW50aXR5IChO b2RlMy1TZW0pCiAgICAgIC0tICBDb3JyZXNwb25kaW5nX1NwZWMgKE5vZGU1LVNlbSkKICAgICAg LS0gIFdhc19PcmlnaW5hbGx5X1N0dWIgKEZsYWcxMy1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuNCAgUHJvdGVjdGVkIFR5cGUgRGVj bGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIFBST1RFQ1RFRF9UWVBFX0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICBwcm90 ZWN0ZWQgdHlwZSBERUZJTklOR19JREVOVElGSUVSIFtLTk9XTl9ESVNDUklNSU5BTlRfUEFSVF0K ICAgICAgLS0gICAgICBpcyBQUk9URUNURURfREVGSU5JVElPTjsKCiAgICAgIC0tICBOb3RlOiBw cm90ZWN0ZWQgdHlwZSBkZWNsYXJhdGlvbnMgYXJlIG5vdCBwZXJtaXR0ZWQgaW4gQWRhIDgzIG1v ZGUKCiAgICAgIC0tICBOX1Byb3RlY3RlZF9UeXBlX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9j IHBvaW50cyB0byBQUk9URUNURUQKICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUx KQogICAgICAtLSAgRGlzY3JpbWluYW50X1NwZWNpZmljYXRpb25zIChMaXN0NCkgKHNldCB0byBO b19MaXN0IGlmIG5vCiAgICAgIC0tICAgZGlzY3JpbWluYW50IHBhcnQpCiAgICAgIC0tICBQcm90 ZWN0ZWRfRGVmaW5pdGlvbiAoTm9kZTMpCiAgICAgIC0tICBDb3JyZXNwb25kaW5nX0JvZHkgKE5v ZGU1LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSA5LjQgIFNpbmdsZSBQcm90ZWN0ZWQgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgU0lOR0xFX1BST1RF Q1RFRF9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgcHJvdGVjdGVkIERFRklOSU5HX0lERU5U SUZJRVIgaXMgUFJPVEVDVEVEX0RFRklOSVRJT047CgogICAgICAtLSAgTm90ZTogc2luZ2xlIHBy b3RlY3RlZCBkZWNsYXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEFkYSA4MyBtb2RlCgogICAg ICAtLSAgTl9TaW5nbGVfUHJvdGVjdGVkX0RlY2xhcmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50 cyB0byBQUk9URUNURUQKICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAg ICAtLSAgUHJvdGVjdGVkX0RlZmluaXRpb24gKE5vZGUzKQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjQgIFByb3RlY3RlZCBEZWZpbml0aW9uIC0tCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUk9URUNURURf REVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgICB7UFJPVEVDVEVEX09QRVJBVElPTl9ERUNMQVJB VElPTn0KICAgICAgLS0gICAgW3ByaXZhdGUKICAgICAgLS0gICAgICB7UFJPVEVDVEVEX0VMRU1F TlRfREVDTEFSQVRJT059XQogICAgICAtLSAgICBlbmQgW3Byb3RlY3RlZF9JREVOVElGSUVSXQoK ICAgICAgLS0gIE5fUHJvdGVjdGVkX0RlZmluaXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRv IGZpcnN0IHRva2VuIG9mIHByb3RlY3RlZCBkZWZpbml0aW9uCiAgICAgIC0tICBWaXNpYmxlX0Rl Y2xhcmF0aW9ucyAoTGlzdDIpCiAgICAgIC0tICBQcml2YXRlX0RlY2xhcmF0aW9ucyAoTGlzdDMp IChzZXQgdG8gTm9fTGlzdCBpZiBubyBwcml2YXRlIHBhcnQpCiAgICAgIC0tICBFbmRfTGFiZWwg KE5vZGU0KQogICAgICAtLSAgSGFzX1ByaW9yaXR5X1ByYWdtYSAoRmxhZzYtU2VtKQoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuNCAg UHJvdGVjdGVkIE9wZXJhdGlvbiBEZWNsYXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUk9URUNURURfT1BFUkFUSU9O X0RFQ0xBUkFUSU9OIDo6PQogICAgICAtLSAgICBTVUJQUk9HUkFNX0RFQ0xBUkFUSU9OCiAgICAg IC0tICB8IEVOVFJZX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IFJFUFJFU0VOVEFUSU9OX0NMQVVT RQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSA5LjQgIFByb3RlY3RlZCBFbGVtZW50IERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUk9URUNURURfRUxFTUVO VF9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgUFJPVEVDVEVEX09QRVJBVElPTl9ERUNMQVJB VElPTiB8IENPTVBPTkVOVF9ERUNMQVJBVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSA5LjQgIFByb3RlY3RlZCBCb2R5IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBQUk9URUNURURfQk9EWSA6Oj0KICAgICAgLS0gICAgcHJv dGVjdGVkIGJvZHkgREVGSU5JTkdfSURFTlRJRklFUiBpcwogICAgICAtLSAgICAgIHtQUk9URUNU RURfT1BFUkFUSU9OX0lURU19CiAgICAgIC0tICAgIGVuZCBbcHJvdGVjdGVkX0lERU5USUZJRVJd OwoKICAgICAgLS0gIE5vdGU6IHByb3RlY3RlZCBib2RpZXMgYXJlIG5vdCBhbGxvd2VkIGluIEFk YSA4MyBtb2RlCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFw cGVhcnMuCgogICAgICAtLSAgTl9Qcm90ZWN0ZWRfQm9keQogICAgICAtLSAgU2xvYyBwb2ludHMg dG8gUFJPVEVDVEVECiAgICAgIC0tICBEZWZpbmluZ19JZGVudGlmaWVyIChOb2RlMSkKICAgICAg LS0gIERlY2xhcmF0aW9ucyAoTGlzdDIpIHByb3RlY3RlZCBvcGVyYXRpb24gaXRlbXMgKGFuZCBw cmFnbWFzKQogICAgICAtLSAgRW5kX0xhYmVsIChOb2RlNCkKICAgICAgLS0gIENvcnJlc3BvbmRp bmdfU3BlYyAoTm9kZTUtU2VtKQogICAgICAtLSAgV2FzX09yaWdpbmFsbHlfU3R1YiAoRmxhZzEz LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t IDkuNCAgUHJvdGVjdGVkIE9wZXJhdGlvbiBJdGVtIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUFJPVEVDVEVEX09QRVJBVElPTl9JVEVNIDo6 PQogICAgICAtLSAgICBTVUJQUk9HUkFNX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IFNVQlBST0dS QU1fQk9EWQogICAgICAtLSAgfCBFTlRSWV9CT0RZCiAgICAgIC0tICB8IFJFUFJFU0VOVEFUSU9O X0NMQVVTRQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDku NS4yICBFbnRyeSBEZWNsYXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgICAgIC0tICBFTlRSWV9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgZW50cnkg REVGSU5JTkdfSURFTlRJRklFUgogICAgICAtLSAgICAgIFsoRElTQ1JFVEVfU1VCVFlQRV9ERUZJ TklUSU9OKV0gUEFSQU1FVEVSX1BST0ZJTEU7CgogICAgICAtLSAgTl9FbnRyeV9EZWNsYXJhdGlv bgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gRU5UUlkKICAgICAgLS0gIERlZmluaW5nX0lkZW50 aWZpZXIgKE5vZGUxKQogICAgICAtLSAgRGlzY3JldGVfU3VidHlwZV9EZWZpbml0aW9uIChOb2Rl NCkgKHNldCB0byBFbXB0eSBpZiBub3QgcHJlc2VudCkKICAgICAgLS0gIFBhcmFtZXRlcl9TcGVj aWZpY2F0aW9ucyAoTGlzdDMpIChzZXQgdG8gTm9fTGlzdCBpZiBubyBmb3JtYWwgcGFydCkKCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuNS4yICBBY2NlcHQg c3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgQUNDRVBUX1NUQVRFTUVOVCA6Oj0KICAgICAgLS0gICAgYWNjZXB0IGVudHJ5X0RJUkVDVF9O QU1FCiAgICAgIC0tICAgICAgWyhFTlRSWV9JTkRFWCldIFBBUkFNRVRFUl9QUk9GSUxFIFtkbwog ICAgICAtLSAgICAgICAgSEFORExFRF9TRVFVRU5DRV9PRl9TVEFURU1FTlRTCiAgICAgIC0tICAg IGVuZCBbZW50cnlfSURFTlRJRklFUl1dOwoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IFRo aXMgbm9kZSBuZXZlciBhcHBlYXJzLgoKICAgICAgLS0gIE5vdGU6IHRoZXJlIGFyZSBubyBleHBs aWNpdCBkZWNsYXJhdGlvbnMgYWxsb3dlZCBpbiBhbiBhY2NlcHQKICAgICAgLS0gIHN0YXRlbWVu dC4gSG93ZXZlciwgdGhlIGltcGxpY2l0IGRlY2xhcmF0aW9ucyBmb3IgYW55IHN0YXRlbWVudAog ICAgICAtLSAgaWRlbnRpZmllcnMgKGxhYmVscyBhbmQgYmxvY2svbG9vcCBpZGVudGlmaWVycykg YXJlIGRlY2xhcmF0aW9ucwogICAgICAtLSAgdGhhdCBiZWxvbmcgbG9naWNhbGx5IHRvIHRoZSBh Y2NlcHQgc3RhdGVtZW50LCBhbmQgdGhhdCBpcyB3aHkKICAgICAgLS0gIHRoZXJlIGlzIGEgRGVj bGFyYXRpb25zIGZpZWxkIGluIHRoaXMgbm9kZS4KCiAgICAgIC0tICBOX0FjY2VwdF9TdGF0ZW1l bnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEFDQ0VQVAogICAgICAtLSAgRW50cnlfRGlyZWN0 X05hbWUgKE5vZGUxKQogICAgICAtLSAgRW50cnlfSW5kZXggKE5vZGU1KSAoc2V0IHRvIEVtcHR5 IGlmIG5vdCBwcmVzZW50KQogICAgICAtLSAgUGFyYW1ldGVyX1NwZWNpZmljYXRpb25zIChMaXN0 MykgKHNldCB0byBOb19MaXN0IGlmIG5vIGZvcm1hbCBwYXJ0KQogICAgICAtLSAgSGFuZGxlZF9T dGF0ZW1lbnRfU2VxdWVuY2UgKE5vZGU0KQogICAgICAtLSAgRGVjbGFyYXRpb25zIChMaXN0Mikg KHNldCB0byBOb19MaXN0IGlmIG5vIGRlY2xhcmF0aW9ucykKCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSA5LjUuMiAgRW50cnkgSW5kZXggLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRU5UUllfSU5ERVggOjo9IEVYUFJFU1NJT04KCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuNS4yICBFbnRyeSBCb2R5IC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRU5UUllfQk9EWSA6Oj0K ICAgICAgLS0gICAgZW50cnkgREVGSU5JTkdfSURFTlRJRklFUiBFTlRSWV9CT0RZX0ZPUk1BTF9Q QVJUIEVOVFJZX0JBUlJJRVIgaXMKICAgICAgLS0gICAgICBERUNMQVJBVElWRV9QQVJUCiAgICAg IC0tICAgIGJlZ2luCiAgICAgIC0tICAgICAgSEFORExFRF9TRVFVRU5DRV9PRl9TVEFURU1FTlRT CiAgICAgIC0tICAgIGVuZCBbZW50cnlfSURFTlRJRklFUl07CgogICAgICAtLSAgRU5UUllfQkFS UklFUiA6Oj0gd2hlbiBDT05ESVRJT04KCiAgICAgIC0tICBOb3RlOiB3ZSBzdG9yZSB0aGUgQ09O RElUSU9OIG9mIHRoZSBFTlRSWV9CQVJSSUVSIGluIHRoZSBub2RlIGZvcgogICAgICAtLSAgdGhl IEVOVFJZX0JPRFlfRk9STUFMX1BBUlQgdG8gYXZvaWQgdGhlIE5fRW50cnlfQm9keSBub2RlIGdl dHRpbmcKICAgICAgLS0gIHRvbyBmdWxsIChpdCB3b3VsZCBvdGhlcndpc2UgaGF2ZSB0b28gbWFu eSBmaWVsZHMpCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFw cGVhcnMuCgogICAgICAtLSAgTl9FbnRyeV9Cb2R5CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBF TlRSWQogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBFbnRy eV9Cb2R5X0Zvcm1hbF9QYXJ0IChOb2RlNSkKICAgICAgLS0gIERlY2xhcmF0aW9ucyAoTGlzdDIp CiAgICAgIC0tICBIYW5kbGVkX1N0YXRlbWVudF9TZXF1ZW5jZSAoTm9kZTQpCiAgICAgIC0tICBB Y3RpdmF0aW9uX0NoYWluX0VudGl0eSAoTm9kZTMtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS41LjIgIEVudHJ5IEJvZHkgRm9ybWFsIFBh cnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0t ICBFTlRSWV9CT0RZX0ZPUk1BTF9QQVJUIDo6PQogICAgICAtLSAgICBbKEVOVFJZX0lOREVYX1NQ RUNJRklDQVRJT04pXSBQQVJBTUVURVJfUFJPRklMRQoKICAgICAgLS0gIE5vdGUgdGhhdCBhbiBl bnRyeSBib2R5IGZvcm1hbCBwYXJ0IG5vZGUgaXMgcHJlc2VudCBldmVuIGlmIGl0IGlzCiAgICAg IC0tICBlbXB0eS4gVGhpcyByZWZsZWN0cyB0aGUgZ3JhbW1hciwgaW4gd2hpY2ggaXQgaXMgdGhl IGNvbXBvbmVudHMgb2YKICAgICAgLS0gIHRoZSBlbnRyeSBib2R5IGZvcm1hbCBwYXJ0IHRoYXQg YXJlIG9wdGlvbmFsLCBub3QgdGhlIGVudHJ5IGJvZHkKICAgICAgLS0gIGZvcm1hbCBwYXJ0IGl0 c2VsZi4gQWxzbyB0aGlzIG1lYW5zIHRoYXQgdGhlIGJhcnJpZXIgY29uZGl0aW9uCiAgICAgIC0t ICBhbHdheXMgaGFzIHNvbWV3aGVyZSB0byBiZSBzdG9yZWQuCgogICAgICAtLSAgR2lnaSByZXN0 cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFwcGVhcnMuCgogICAgICAtLSAgTl9FbnRyeV9Cb2R5 X0Zvcm1hbF9QYXJ0CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbgogICAgICAt LSAgRW50cnlfSW5kZXhfU3BlY2lmaWNhdGlvbiAoTm9kZTQpIChzZXQgdG8gRW1wdHkgaWYgbm90 IHByZXNlbnQpCiAgICAgIC0tICBQYXJhbWV0ZXJfU3BlY2lmaWNhdGlvbnMgKExpc3QzKSAoc2V0 IHRvIE5vX0xpc3QgaWYgbm8gZm9ybWFsIHBhcnQpCiAgICAgIC0tICBDb25kaXRpb24gKE5vZGUx KSBmcm9tIGVudHJ5IGJhcnJpZXIgb2YgZW50cnkgYm9keQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gOS41LjIgIEVudHJ5IEJhcnJpZXIgLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBFTlRSWV9CQVJSSUVSIDo6PSB3aGVuIENP TkRJVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg ICAgLS0gOS41LjIgIEVudHJ5IEluZGV4IFNwZWNpZmljYXRpb24gLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBFTlRSWV9JTkRFWF9TUEVD SUZJQ0FUSU9OIDo6PQogICAgICAtLSAgICBmb3IgREVGSU5JTkdfSURFTlRJRklFUiBpbiBESVND UkVURV9TVUJUWVBFX0RFRklOSVRJT04KCiAgICAgIC0tICBHaWdpIHJlc3RyaWN0aW9uOiBUaGlz IG5vZGUgbmV2ZXIgYXBwZWFycy4KCiAgICAgIC0tICBOX0VudHJ5X0luZGV4X1NwZWNpZmljYXRp b24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEZPUgogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRp ZmllciAoTm9kZTEpCiAgICAgIC0tICBEaXNjcmV0ZV9TdWJ0eXBlX0RlZmluaXRpb24gKE5vZGU0 KQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuNS4z ICBFbnRyeSBDYWxsIFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgICAgIC0tICBFTlRSWV9DQUxMX1NUQVRFTUVOVCA6Oj0gZW50cnlfTkFNRSBb QUNUVUFMX1BBUkFNRVRFUl9QQVJUXTsKCiAgICAgIC0tICBUaGUgcGFyc2VyIG1heSBnZW5lcmF0 ZSBhIHByb2NlZHVyZSBjYWxsIGZvciB0aGlzIGNvbnN0cnVjdC4gVGhlCiAgICAgIC0tICBzZW1h bnRpYyBwYXNzIG11c3QgY29ycmVjdCB0aGlzIG1pc2lkZW50aWZpY2F0aW9uIHdoZXJlIG5lZWRl ZC4KCiAgICAgIC0tICBHaWdpIHJlc3RyaWN0aW9uOiBUaGlzIG5vZGUgbmV2ZXIgYXBwZWFycy4K CiAgICAgIC0tICBOX0VudHJ5X0NhbGxfU3RhdGVtZW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0 byBmaXJzdCB0b2tlbiBvZiBuYW1lCiAgICAgIC0tICBOYW1lIChOb2RlMikKICAgICAgLS0gIFBh cmFtZXRlcl9Bc3NvY2lhdGlvbnMgKExpc3QzKSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8KICAgICAg LS0gICBhY3R1YWwgcGFyYW1ldGVyIHBhcnQpCiAgICAgIC0tICBGaXJzdF9OYW1lZF9BY3R1YWwg KE5vZGU0LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSA5LjUuNCAgUmVxdWV1ZSBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICAgICAtLSAgUkVRVUVVRV9TVEFURU1FTlQgOjo9IHJlcXVldWUgZW50cnlf TkFNRSBbd2l0aCBhYm9ydF07CgogICAgICAtLSAgTm90ZTogcmVxdWV1ZSBzdGF0ZW1lbnRzIGFy ZSBub3QgcGVybWl0dGVkIGluIEFkYSA4MyBtb2RlCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlv bjogVGhpcyBub2RlIG5ldmVyIGFwcGVhcnMuCgogICAgICAtLSAgTl9SZXF1ZXVlX1N0YXRlbWVu dAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUkVRVUVVRQogICAgICAtLSAgTmFtZSAoTm9kZTIp CiAgICAgIC0tICBBYm9ydF9QcmVzZW50IChGbGFnMTUpCgogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSA5LjYgIERlbGF5IFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIERFTEFZX1NUQVRFTUVOVCA6Oj0KICAgICAg LS0gICAgREVMQVlfVU5USUxfU1RBVEVNRU5UCiAgICAgIC0tICB8IERFTEFZX1JFTEFUSVZFX1NU QVRFTUVOVAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0g OS42ICBEZWxheSBVbnRpbCBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBERUxBWV9VTlRJTF9TVEFURU1FTlQgOjo9IGRlbGF5IHVu dGlsIGRlbGF5X0VYUFJFU1NJT047CgogICAgICAtLSAgTm90ZTogZGVsYXkgdW50aWwgc3RhdGVt ZW50cyBhcmUgbm90IHBlcm1pdHRlZCBpbiBBZGEgODMgbW9kZQoKICAgICAgLS0gIEdpZ2kgcmVz dHJpY3Rpb246IFRoaXMgbm9kZSBuZXZlciBhcHBlYXJzLgoKICAgICAgLS0gIE5fRGVsYXlfVW50 aWxfU3RhdGVtZW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBERUxBWQogICAgICAtLSAgRXhw cmVzc2lvbiAoTm9kZTMpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAgICAtLSA5LjYgIERlbGF5IFJlbGF0aXZlIFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIERFTEFZX1JFTEFUSVZFX1NU QVRFTUVOVCA6Oj0gZGVsYXkgZGVsYXlfRVhQUkVTU0lPTjsKCiAgICAgIC0tICBHaWdpIHJlc3Ry aWN0aW9uOiBUaGlzIG5vZGUgbmV2ZXIgYXBwZWFycy4KCiAgICAgIC0tICBOX0RlbGF5X1JlbGF0 aXZlX1N0YXRlbWVudAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gREVMQVkKICAgICAgLS0gIEV4 cHJlc3Npb24gKE5vZGUzKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIDkuNyAgU2VsZWN0IFN0YXRlbWVudCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgICAgIC0tICBTRUxFQ1RfU1RBVEVNRU5UIDo6PQogICAgICAtLSAgICBTRUxFQ1RJ VkVfQUNDRVBUCiAgICAgIC0tICB8IFRJTUVEX0VOVFJZX0NBTEwKICAgICAgLS0gIHwgQ09ORElU SU9OQUxfRU5UUllfQ0FMTAogICAgICAtLSAgfCBBU1lOQ0hST05PVVNfU0VMRUNUCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjcuMSAgU2VsZWN0aXZlIEFj Y2VwdCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFNF TEVDVElWRV9BQ0NFUFQgOjo9CiAgICAgIC0tICAgIHNlbGVjdAogICAgICAtLSAgICAgIFtHVUFS RF0KICAgICAgLS0gICAgICAgIFNFTEVDVF9BTFRFUk5BVElWRQogICAgICAtLSAgICB7b3IKICAg ICAgLS0gICAgICBbR1VBUkRdCiAgICAgIC0tICAgICAgICBTRUxFQ1RfQUxURVJOQVRJVkV9CiAg ICAgIC0tICAgIFtlbHNlCiAgICAgIC0tICAgICAgU0VRVUVOQ0VfT0ZfU1RBVEVNRU5UU10KICAg ICAgLS0gICAgZW5kIHNlbGVjdDsKCiAgICAgIC0tICBHaWdpIHJlc3RyaWN0aW9uOiBUaGlzIG5v ZGUgbmV2ZXIgYXBwZWFycy4KCiAgICAgIC0tICBOb3RlOiB0aGUgZ3VhcmQgZXhwcmVzc2lvbiwg aWYgcHJlc2VudCwgYXBwZWFycyBpbiB0aGUgbm9kZSBmb3IKICAgICAgLS0gIHRoZSBzZWxlY3Qg YWx0ZXJuYXRpdmUuCgogICAgICAtLSAgTl9TZWxlY3RpdmVfQWNjZXB0CiAgICAgIC0tICBTbG9j IHBvaW50cyB0byBTRUxFQ1QKICAgICAgLS0gIFNlbGVjdF9BbHRlcm5hdGl2ZXMgKExpc3QxKQog ICAgICAtLSAgRWxzZV9TdGF0ZW1lbnRzIChMaXN0NCkgKHNldCB0byBOb19MaXN0IGlmIG5vIGVs c2UgcGFydCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjcuMSAgR3VhcmQg LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgR1VBUkQgOjo9IHdoZW4gQ09O RElUSU9OID0+CgogICAgICAtLSAgQXMgbm90ZWQgYWJvdmUsIHRoZSBDT05ESVRJT04gdGhhdCBp cyBwYXJ0IG9mIGEgR1VBUkQgaXMgaW5jbHVkZWQKICAgICAgLS0gIGluIHRoZSBub2RlIGZvciB0 aGUgc2VsZWN0IGFsZXJuYXRpdmUgZm9yIGNvbnZlbmllbmNlLgoKICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjcuMSAgU2VsZWN0IEFsdGVybmF0aXZlIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBTRUxFQ1Rf QUxURVJOQVRJVkUgOjo9CiAgICAgIC0tICAgIEFDQ0VQVF9BTFRFUk5BVElWRQogICAgICAtLSAg fCBERUxBWV9BTFRFUk5BVElWRQogICAgICAtLSAgfCBURVJNSU5BVEVfQUxURVJOQVRJVkUKCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS43LjEgIEFjY2Vw dCBBbHRlcm5hdGl2ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgQUNDRVBUX0FMVEVSTkFUSVZFIDo6PQogICAgICAtLSAgICBBQ0NFUFRfU1RBVEVN RU5UIFtTRVFVRU5DRV9PRl9TVEFURU1FTlRTXQoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246 IFRoaXMgbm9kZSBuZXZlciBhcHBlYXJzLgoKICAgICAgLS0gIE5fQWNjZXB0X0FsdGVybmF0aXZl CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBBQ0NFUFQKICAgICAgLS0gIEFjY2VwdF9TdGF0ZW1l bnQgKE5vZGUyKQogICAgICAtLSAgQ29uZGl0aW9uIChOb2RlMSkgZnJvbSB0aGUgZ3VhcmQgKHNl dCB0byBFbXB0eSBpZiBubyBndWFyZCBwcmVzZW50KQogICAgICAtLSAgU3RhdGVtZW50cyAoTGlz dDMpIChzZXQgdG8gRW1wdHlfTGlzdCBpZiBubyBzdGF0ZW1lbnRzKQogICAgICAtLSAgUHJhZ21h c19CZWZvcmUgKExpc3Q0KSBwcmFnbWFzIGJlZm9yZSBhbHQgKHNldCB0byBOb19MaXN0IGlmIG5v bmUpCiAgICAgIC0tICBBY2NlcHRfSGFuZGxlcl9SZWNvcmRzIChMaXN0NS1TZW0pCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS43LjEgIERlbGF5IEFsdGVy bmF0aXZlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0g IERFTEFZX0FMVEVSTkFUSVZFIDo6PQogICAgICAtLSAgICBERUxBWV9TVEFURU1FTlQgW1NFUVVF TkNFX09GX1NUQVRFTUVOVFNdCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2Rl IG5ldmVyIGFwcGVhcnMuCgogICAgICAtLSAgTl9EZWxheV9BbHRlcm5hdGl2ZQogICAgICAtLSAg U2xvYyBwb2ludHMgdG8gREVMQVkKICAgICAgLS0gIERlbGF5X1N0YXRlbWVudCAoTm9kZTIpCiAg ICAgIC0tICBDb25kaXRpb24gKE5vZGUxKSBmcm9tIHRoZSBndWFyZCAoc2V0IHRvIEVtcHR5IGlm IG5vIGd1YXJkIHByZXNlbnQpCiAgICAgIC0tICBTdGF0ZW1lbnRzIChMaXN0MykgKHNldCB0byBF bXB0eV9MaXN0IGlmIG5vIHN0YXRlbWVudHMpCiAgICAgIC0tICBQcmFnbWFzX0JlZm9yZSAoTGlz dDQpIHByYWdtYXMgYmVmb3JlIGFsdCAoc2V0IHRvIE5vX0xpc3QgaWYgbm9uZSkKCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS43LjEgIFRlcm1pbmF0 ZSBBbHRlcm5hdGl2ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAgICAtLSAgVEVSTUlOQVRFX0FMVEVSTkFUSVZFIDo6PSB0ZXJtaW5hdGU7CgogICAgICAt LSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFwcGVhcnMuCgogICAgICAtLSAg Tl9UZXJtaW5hdGVfQWx0ZXJuYXRpdmUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFRFUk1JTkFU RQogICAgICAtLSAgQ29uZGl0aW9uIChOb2RlMSkgZnJvbSB0aGUgZ3VhcmQgKHNldCB0byBFbXB0 eSBpZiBubyBndWFyZCBwcmVzZW50KQogICAgICAtLSAgUHJhZ21hc19CZWZvcmUgKExpc3Q0KSBw cmFnbWFzIGJlZm9yZSBhbHQgKHNldCB0byBOb19MaXN0IGlmIG5vbmUpCiAgICAgIC0tICBQcmFn bWFzX0FmdGVyIChMaXN0NSkgcHJhZ21hcyBhZnRlciBhbHQgKHNldCB0byBOb19MaXN0IGlmIG5v bmUpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjcuMiAg VGltZWQgRW50cnkgQ2FsbCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIFRJTUVEX0VOVFJZX0NBTEwgOjo9CiAgICAgIC0tICAgIHNlbGVjdAogICAgICAt LSAgICAgIEVOVFJZX0NBTExfQUxURVJOQVRJVkUKICAgICAgLS0gICAgb3IKICAgICAgLS0gICAg ICBERUxBWV9BTFRFUk5BVElWRQogICAgICAtLSAgICBlbmQgc2VsZWN0OwoKICAgICAgLS0gIEdp Z2kgcmVzdHJpY3Rpb246IFRoaXMgbm9kZSBuZXZlciBhcHBlYXJzLgoKICAgICAgLS0gIE5fVGlt ZWRfRW50cnlfQ2FsbAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gU0VMRUNUCiAgICAgIC0tICBF bnRyeV9DYWxsX0FsdGVybmF0aXZlIChOb2RlMSkKICAgICAgLS0gIERlbGF5X0FsdGVybmF0aXZl IChOb2RlNCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIDkuNy4yICBFbnRyeSBDYWxsIEFsdGVybmF0aXZlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRU5UUllfQ0FMTF9BTFRFUk5BVElWRSA6 Oj0KICAgICAgLS0gICAgRU5UUllfQ0FMTF9TVEFURU1FTlQgW1NFUVVFTkNFX09GX1NUQVRFTUVO VFNdCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFwcGVhcnMu CgogICAgICAtLSAgTl9FbnRyeV9DYWxsX0FsdGVybmF0aXZlCiAgICAgIC0tICBTbG9jIHBvaW50 cyB0byBmaXJzdCB0b2tlbiBvZiBlbnRyeSBjYWxsIHN0YXRlbWVudAogICAgICAtLSAgRW50cnlf Q2FsbF9TdGF0ZW1lbnQgKE5vZGUxKQogICAgICAtLSAgU3RhdGVtZW50cyAoTGlzdDMpIChzZXQg dG8gRW1wdHlfTGlzdCBpZiBubyBzdGF0ZW1lbnRzKQogICAgICAtLSAgUHJhZ21hc19CZWZvcmUg KExpc3Q0KSBwcmFnbWFzIGJlZm9yZSBhbHQgKHNldCB0byBOb19MaXN0IGlmIG5vbmUpCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSA5LjcuMyAgQ29u ZGl0aW9uYWwgRW50cnkgQ2FsbCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgICAgLS0gIENPTkRJVElPTkFMX0VOVFJZX0NBTEwgOjo9CiAgICAgIC0tICAg IHNlbGVjdAogICAgICAtLSAgICAgIEVOVFJZX0NBTExfQUxURVJOQVRJVkUKICAgICAgLS0gICAg ZWxzZQogICAgICAtLSAgICAgIFNFUVVFTkNFX09GX1NUQVRFTUVOVFMKICAgICAgLS0gICAgZW5k IHNlbGVjdDsKCiAgICAgIC0tICBHaWdpIHJlc3RyaWN0aW9uOiBUaGlzIG5vZGUgbmV2ZXIgYXBw ZWFycy4KCiAgICAgIC0tICBOX0NvbmRpdGlvbmFsX0VudHJ5X0NhbGwKICAgICAgLS0gIFNsb2Mg cG9pbnRzIHRvIFNFTEVDVAogICAgICAtLSAgRW50cnlfQ2FsbF9BbHRlcm5hdGl2ZSAoTm9kZTEp CiAgICAgIC0tICBFbHNlX1N0YXRlbWVudHMgKExpc3Q0KQoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS43LjQgIEFzeW5jaHJvbm91cyBTZWxlY3QgLS0K ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBU1lOQ0hS T05PVVNfU0VMRUNUIDo6PQogICAgICAtLSAgICBzZWxlY3QKICAgICAgLS0gICAgICBUUklHR0VS SU5HX0FMVEVSTkFUSVZFCiAgICAgIC0tICAgIHRoZW4gYWJvcnQKICAgICAgLS0gICAgICBBQk9S VEFCTEVfUEFSVAogICAgICAtLSAgICBlbmQgc2VsZWN0OwoKICAgICAgLS0gIE5vdGU6IGFzeW5j aHJvbm91cyBzZWxlY3QgaXMgbm90IHBlcm1pdHRlZCBpbiBBZGEgODMgbW9kZQoKICAgICAgLS0g IEdpZ2kgcmVzdHJpY3Rpb246IFRoaXMgbm9kZSBuZXZlciBhcHBlYXJzLgoKICAgICAgLS0gIE5f QXN5bmNocm9ub3VzX1NlbGVjdAogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gU0VMRUNUCiAgICAg IC0tICBUcmlnZ2VyaW5nX0FsdGVybmF0aXZlIChOb2RlMSkKICAgICAgLS0gIEFib3J0YWJsZV9Q YXJ0IChOb2RlMikKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICAgIC0tIDkuNy40ICBUcmlnZ2VyaW5nIEFsdGVybmF0aXZlIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVFJJR0dFUklOR19BTFRFUk5BVElW RSA6Oj0KICAgICAgLS0gICAgVFJJR0dFUklOR19TVEFURU1FTlQgW1NFUVVFTkNFX09GX1NUQVRF TUVOVFNdCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogVGhpcyBub2RlIG5ldmVyIGFwcGVh cnMuCgogICAgICAtLSAgTl9UcmlnZ2VyaW5nX0FsdGVybmF0aXZlCiAgICAgIC0tICBTbG9jIHBv aW50cyB0byBmaXJzdCB0b2tlbiBvZiB0cmlnZ2VyaW5nIHN0YXRlbWVudAogICAgICAtLSAgVHJp Z2dlcmluZ19TdGF0ZW1lbnQgKE5vZGUxKQogICAgICAtLSAgU3RhdGVtZW50cyAoTGlzdDMpIChz ZXQgdG8gRW1wdHlfTGlzdCBpZiBubyBzdGF0ZW1lbnRzKQogICAgICAtLSAgUHJhZ21hc19CZWZv cmUgKExpc3Q0KSBwcmFnbWFzIGJlZm9yZSBhbHQgKHNldCB0byBOb19MaXN0IGlmIG5vbmUpCgog ICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gOS43LjQgIFRy aWdnZXJpbmcgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgICAgLS0gIFRSSUdHRVJJTkdfU1RBVEVNRU5UIDo6PSBFTlRSWV9DQUxMX1NUQVRF TUVOVCB8IERFTEFZX1NUQVRFTUVOVAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIDkuNy40ICBBYm9ydGFibGUgUGFydCAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBBQk9SVEFCTEVfUEFSVCA6Oj0gU0VRVUVOQ0VfT0ZfU1RB VEVNRU5UUwoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IFRoaXMgbm9kZSBuZXZlciBhcHBl YXJzLgoKICAgICAgLS0gIE5fQWJvcnRhYmxlX1BhcnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRv IEFCT1JUCiAgICAgIC0tICBTdGF0ZW1lbnRzIChMaXN0MykKCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgICAgIC0tIDkuOCAgQWJvcnQgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQUJPUlRfU1RBVEVNRU5UIDo6PSBhYm9y dCB0YXNrX05BTUUgeywgdGFza19OQU1FfTsKCiAgICAgIC0tICBHaWdpIHJlc3RyaWN0aW9uOiBU aGlzIG5vZGUgbmV2ZXIgYXBwZWFycy4KCiAgICAgIC0tICBOX0Fib3J0X1N0YXRlbWVudAogICAg ICAtLSAgU2xvYyBwb2ludHMgdG8gQUJPUlQKICAgICAgLS0gIE5hbWVzIChMaXN0MikKCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTAuMS4xICBDb21waWxhdGlvbiAt LQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQ09NUElMQVRJT04g Ojo9IHtDT01QSUxBVElPTl9VTklUfQoKICAgICAgLS0gIFRoZXJlIGlzIG5vIGV4cGxpY2l0IG5v ZGUgaW4gdGhlIHRyZWUgZm9yIGEgY29tcGlsYXRpb24sIHNpbmNlIGluCiAgICAgIC0tICBnZW5l cmFsIHRoZSBjb21waWxlciBpcyBwcm9jZXNzaW5nIG9ubHkgYSBzaW5nbGUgY29tcGlsYXRpb24g dW5pdAogICAgICAtLSAgYXQgYSB0aW1lLiBJdCBpcyBwb3NzaWJsZSB0byBwYXJzZSBtdWx0aXBs ZSB1bml0cyBpbiBzeW50YXggY2hlY2sKICAgICAgLS0gIG9ubHkgbW9kZSwgYnV0IHRoZXkgdGhl IHRyZWVzIGFyZSBkaXNjYXJkZWQgaW4gYW55IGNhc2UuCgogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTAuMS4xICBDb21waWxhdGlvbiBVbml0IC0tCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIENPTVBJTEFUSU9OX1VO SVQgOjo9CiAgICAgIC0tICAgIENPTlRFWFRfQ0xBVVNFIExJQlJBUllfSVRFTQogICAgICAtLSAg fCBDT05URVhUX0NMQVVTRSBTVUJVTklUCgogICAgICAtLSAgVGhlIE5fQ29tcGlsYXRpb25fVW5p dCBub2RlIGl0c2VsZiByZXNwcmVzZW50cyB0aGUgYWJvdmUgc3ludGF4LgogICAgICAtLSAgSG93 ZXZlciwgdGhlcmUgYXJlIHR3byBhZGRpdGlvbmFsIGl0ZW1zIG5vdCByZWZsZWN0ZWQgaW4gdGhl IGFib3ZlCiAgICAgIC0tICBzeW50YXguIEZpcnN0IHdlIGhhdmUgdGhlIGdsb2JhbCBkZWNsYXJh dGlvbnMgdGhhdCBhcmUgYWRkZWQgYnkgdGhlCiAgICAgIC0tICBjb2RlIGdlbmVyYXRvci4gVGhl c2UgYXJlIG91dGVyIGxldmVsIGRlY2xhcmF0aW9ucyAoc28gdGhleSBjYW5ub3QKICAgICAgLS0g IGJlIHJlcHJlc2VudGVkIGFzIGJlaW5nIGluc2lkZSB0aGUgdW5pdHMpLiBBbiBleGFtcGxlIGlz IHRoZSB3cmFwcGVyCiAgICAgIC0tICBzdWJwcm9ncmFtcyB0aGF0IGFyZSBjcmVhdGVkIHRvIGRv IEFCRSBjaGVja2luZy4gQXMgYWx3YXlzIGEgbGlzdCBvZgogICAgICAtLSAgZGVjbGFyYXRpb25z IGNhbiBjb250YWluIGFjdGlvbnMgYXMgd2VsbCAoaS5lLiBzdGF0ZW1lbnRzKSwgYW5kIHN1Y2gK ICAgICAgLS0gIHN0YXRlbWVudHMgYXJlIGV4ZWN1dGVkIGFzIHBhcnQgb2YgdGhlIGVsYWJvcmF0 aW9uIG9mIHRoZSB1bml0LiBOb3RlCiAgICAgIC0tICB0aGF0IGFsbCBzdWNoIGRlY2xhcmF0aW9u cyBhcmUgZWxhYm9yYXRlZCBiZWZvcmUgdGhlIGxpYnJhcnkgdW5pdC4KCiAgICAgIC0tICBTaW1p bGFybHksIGNlcnRhaW4gYWN0aW9ucyBuZWVkIHRvIGJlIGVsYWJvcmF0ZWQgYXQgdGhlIGNvbXBs ZXRpb24KICAgICAgLS0gIG9mIGVsYWJvcmF0aW9uIG9mIHRoZSBsaWJyYXJ5IHVuaXQgKG5vdGFi bHkgdGhlIHN0YXRlbWVudCB0aGF0IHNldHMKICAgICAgLS0gIHRoZSBCb29sZWFuIGZsYWcgaW5k aWNhdGluZyB0aGF0IGVsYWJvcmF0aW9uIGlzIGNvbXBsZXRlKS4KCiAgICAgIC0tICBUaGUgdGhp cmQgaXRlbSBub3QgcmVmbGVjdGVkIGluIHRoZSBzeW50YXggaXMgcHJhZ21hcyB0aGF0IGFwcGVh cgogICAgICAtLSAgYWZ0ZXIgdGhlIGNvbXBpbGF0aW9uIHVuaXQuIEFzIGFsd2F5cyBwcmFnbWFz IGFyZSBhIHByb2JsZW0gc2luY2UKICAgICAgLS0gIHRoZXkgYXJlIG5vdCBwYXJ0IG9mIHRoZSBm b3JtYWwgc3ludGF4LCBidXQgY2FuIGJlIHN0dWNrIGludG8gdGhlCiAgICAgIC0tICBzb3VyY2Ug Zm9sbG93aW5nIGEgc2V0IG9mIGFkIGhvYyBydWxlcywgYW5kIHdlIGhhdmUgdG8gZmluZCBhbiBh ZAogICAgICAtLSAgaG9jIHdheSBvZiBzdGlja2luZyB0aGVtIGludG8gdGhlIHRyZWUuIEZvciBw cmFnbWFzIHRoYXQgYXBwZWFyCiAgICAgIC0tICBiZWZvcmUgdGhlIGxpYnJhcnkgdW5pdCwgd2Ug anVzdCBjb25zaWRlciB0aGVtIHRvIGJlIHBhcnQgb2YgdGhlCiAgICAgIC0tICBjb250ZXh0IGNs YXVzZSwgYW5kIHByYWdtYXMgY2FuIGFwcGVhciBpbiB0aGUgQ29udGV4dF9JdGVtcyBsaXN0CiAg ICAgIC0tICBvZiB0aGUgY29tcGlsYXRpb24gdW5pdC4gSG93ZXZlciwgcHJhZ21hcyBjYW4gYWxz byBhcHBlYXIgYWZ0ZXIKICAgICAgLS0gIHRoZSBsaWJyYXJ5IGl0ZW0uCgogICAgICAtLSAgVG8g ZGVhbCB3aXRoIGFsbCB0aGVzZSBwcm9ibGVtcywgd2UgY3JlYXRlIGFuIGF1eGlsaWFyeSBub2Rl IGZvcgogICAgICAtLSAgYSBjb21waWxhdGlvbiB1bml0LCByZWZlcmVuY2VkIGZyb20gdGhlIE5f Q29tcGlsYXRpb25fVW5pdCBub2RlCiAgICAgIC0tICB0aGF0IGNvbnRhaW5zIHRoZXNlIHRocmVl IGl0ZW1zLgoKICAgICAgLS0gIE5fQ29tcGlsYXRpb25fVW5pdAogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gZmlyc3QgdG9rZW4gb2YgZGVmaW5pbmcgdW5pdCBuYW1lCiAgICAgIC0tICBMaWJyYXJ5 X1VuaXQgKE5vZGU0LVNlbSkgY29ycmVzcG9uZGluZy9wYXJlbnQgc3BlYy9ib2R5CiAgICAgIC0t ICBDb250ZXh0X0l0ZW1zIChMaXN0MSkgY29udGV4dCBpdGVtcyBhbmQgcHJhZ21hcyBwcmVjZWRp bmcgdW5pdAogICAgICAtLSAgUHJpdmF0ZV9QcmVzZW50IChGbGFnMTUpIHNldCBpZiBsaWJyYXJ5 IHVuaXQgaGFzIHByaXZhdGUga2V5d29yZAogICAgICAtLSAgVW5pdCAoTm9kZTIpIGxpYnJhcnkg aXRlbSBvciBzdWJ1bml0CiAgICAgIC0tICBBdXhfRGVjbHNfTm9kZSAoTm9kZTUpIHBvaW50cyB0 byB0aGUgTl9Db21waWxhdGlvbl9Vbml0X0F1eCBub2RlCiAgICAgIC0tICBIYXNfTm9fRWxhYm9y YXRpb25fQ29kZSAoRmxhZzE3LVNlbSkKICAgICAgLS0gIEJvZHlfUmVxdWlyZWQgKEZsYWcxMy1T ZW0pIHNldCBmb3Igc3BlYyBpZiBib2R5IGlzIHJlcXVpcmVkCiAgICAgIC0tICBBY3RzX0FzX1Nw ZWMgKEZsYWc0LVNlbSkgZmxhZyBmb3Igc3VicHJvZ3JhbSBib2R5IHdpdGggbm8gc3BlYwogICAg ICAtLSAgRmlyc3RfSW5saW5lZF9TdWJwcm9ncmFtIChOb2RlMy1TZW0pCgogICAgICAtLSAgTl9D b21waWxhdGlvbl9Vbml0X0F1eAogICAgICAtLSAgU2xvYyBpcyBhIGNvcHkgb2YgdGhlIFNsb2Mg ZnJvbSB0aGUgTl9Db21waWxhdGlvbl9Vbml0IG5vZGUKICAgICAgLS0gIERlY2xhcmF0aW9ucyAo TGlzdDIpIChzZXQgdG8gTm9fTGlzdCBpZiBubyBnbG9iYWwgZGVjbGFyYXRpb25zKQogICAgICAt LSAgQWN0aW9ucyAoTGlzdDEpIChzZXQgdG8gTm9fTGlzdCBpZiBubyBhY3Rpb25zKQogICAgICAt LSAgUHJhZ21hc19BZnRlciAoTGlzdDUpIHByYWdtYXMgYWZ0ZXIgdW5pdCAoc2V0IHRvIE5vX0xp c3QgaWYgbm9uZSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEw LjEuMSAgTGlicmFyeSBJdGVtIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAgICAtLSAgTElCUkFSWV9JVEVNIDo6PQogICAgICAtLSAgICBbcHJpdmF0ZV0gTElCUkFSWV9V TklUX0RFQ0xBUkFUSU9OCiAgICAgIC0tICB8IExJQlJBUllfVU5JVF9CT0RZCiAgICAgIC0tICB8 IFtwcml2YXRlXSBMSUJSQVJZX1VOSVRfUkVOQU1JTkdfREVDTEFSQVRJT04KCiAgICAgIC0tICBO b3RlOiBQUklWQVRFIGlzIG5vdCBhbGxvd2VkIGluIEFkYSA4MyBtb2RlCgogICAgICAtLSAgVGhl cmUgaXMgbm8gZXhwbGljaXQgbm9kZSBpbiB0aGUgdHJlZSBmb3IgbGlicmFyeSBpdGVtLCBpbnN0 ZWFkCiAgICAgIC0tICB0aGUgZGVjbGFyYXRpb24gb3IgYm9keSwgYW5kIHRoZSBmbGFnIGZvciBw cml2YXRlIGlmIHByZXNlbnQsCiAgICAgIC0tICBhcHBlYXIgaW4gdGhlIE5fQ29tcGlsYXRpb25f VW5pdCBjbGF1c2UuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgICAgIC0tIDEwLjEuMSAgTGlicmFyeSBVbml0IERlY2xhcmFyYXRpb24gLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIExJQlJB UllfVU5JVF9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgU1VCUFJPR1JBTV9ERUNMQVJBVElP TiB8IFBBQ0tBR0VfREVDTEFSQVRJT04KICAgICAgLS0gIHwgR0VORVJJQ19ERUNMQVJBVElPTiAg ICB8IEdFTkVSSUNfSU5TVEFOVElBVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMC4xLjEgIExpYnJhcnkgVW5pdCBS ZW5hbWluZyBEZWNsYXJhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBMSUJSQVJZX1VOSVRfUkVOQU1JTkdf REVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIFBBQ0tBR0VfUkVOQU1JTkdfREVDTEFSQVRJT04K ICAgICAgLS0gIHwgR0VORVJJQ19SRU5BTUlOR19ERUNMQVJBVElPTgogICAgICAtLSAgfCBTVUJQ Uk9HUkFNX1JFTkFNSU5HX0RFQ0xBUkFUSU9OCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDEwLjEuMSAgTGlicmFyeSB1bml0IGJvZHkgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIExJQlJBUllfVU5JVF9CT0RZ IDo6PSBTVUJQUk9HUkFNX0JPRFkgfCBQQUNLQUdFX0JPRFkKCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMC4xLjEgIFBhcmVudCBVbml0IE5hbWUgLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUEFSRU5UX1VOSVRf TkFNRSA6Oj0gTkFNRQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSAxMC4xLjIgIENvbnRleHQgY2xhdXNlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KCiAgICAgIC0tICBDT05URVhUX0NMQVVTRSA6Oj0ge0NPTlRFWFRfSVRFTX0KCiAgICAg IC0tICBUaGUgY29udGV4dCBjbGF1c2UgY2FuIGluY2x1ZGUgcHJhZ21hcywgYW5kIGFueSBwcmFn bWFzIHRoYXQgYXBwZWFyCiAgICAgIC0tICBiZWZvcmUgdGhlIGNvbnRleHQgY2xhdXNlIHByb3Bl ciAoaS5lLiBhbGwgY29uZmlndXJhdGlvbiBwcmFnbWFzLAogICAgICAtLSAgYWxzbyBhcHBlYXIg YXQgdGhlIGZyb250IG9mIHRoaXMgbGlzdCkuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSAxMC4xLjIgIENvbnRleHRfSXRlbSAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIENPTlRFWFRfSVRFTSA6Oj0gV0lUSF9DTEFVU0UgfCBV U0VfQ0xBVVNFICB8IFdJVEhfVFlQRV9DTEFVU0UKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgICAgLS0gMTAuMS4yICBXaXRoIGNsYXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgogICAgICAtLSAgV0lUSF9DTEFVU0UgOjo9CiAgICAgIC0tICAgIHdpdGgg bGlicmFyeV91bml0X05BTUUgeyxsaWJyYXJ5X3VuaXRfTkFNRX07CgogICAgICAtLSAgQSBzZXBh cmF0ZSBXaXRoIGNsYXVzZSBpcyBidWlsdCBmb3IgZWFjaCBuYW1lLCBzbyB0aGF0IHdlIGhhdmUK ICAgICAgLS0gIGEgQ29ycmVzcG9uZGluZ19TcGVjIGZpZWxkIGZvciBlYWNoIHdpdGgnZWQgc3Bl Yy4gVGhlIGZsYWdzCiAgICAgIC0tICBGaXJzdF9OYW1lIGFuZCBMYXN0X05hbWUgYXJlIHVzZWQg dG8gcmVjb25zdHJ1Y3QgdGhlIGV4YWN0CiAgICAgIC0tICBzb3VyY2UgZm9ybS4gV2hlbiBhIGxp c3Qgb2YgbmFtZXMgYXBwZWFycyBpbiBvbmUgd2l0aCBjbGF1c2UsCiAgICAgIC0tICB0aGUgZmly c3QgbmFtZSBpbiB0aGUgbGlzdCBoYXMgRmlyc3RfTmFtZSBzZXQsIGFuZCB0aGUgbGFzdAogICAg ICAtLSAgaGFzIExhc3RfTmFtZSBzZXQuIElmIHRoZSB3aXRoIGNsYXVzZSBoYXMgb25seSBvbmUg bmFtZSwgdGhlbgogICAgICAtLSAgYm90aCBvZiB0aGUgZmxhZ3MgRmlyc3RfTmFtZSBhbmQgTGFz dF9OYW1lIGFyZSBzZXQgaW4gdGhpcyBuYW1lLgoKICAgICAgLS0gIE5vdGU6IGluIHRoZSBjYXNl IG9mIGltcGxpY2l0IHdpdGgncyB0aGF0IGFyZSBpbnN0YWxsZWQgYnkgdGhlCiAgICAgIC0tICBS dHNmaW5kIHJvdXRpbmUsIEltcGxpY2l0X1dpdGggaXMgc2V0LCBhbmQgdGhlIFNsb2MgaXMgdHlw aWNhbGx5CiAgICAgIC0tICBzZXQgdG8gU3RhbmRhcmRfTG9jYXRpb24sIGJ1dCBpdCBpcyBpbmNv cnJlY3QgdG8gdGVzdCB0aGUgU2xvYwogICAgICAtLSAgdG8gZmluZCBvdXQgaWYgYSB3aXRoIGNs YXVzZSBpcyBpbXBsaWNpdCwgdGVzdCB0aGUgZmxhZyBpbnN0ZWFkLgoKICAgICAgLS0gIE5fV2l0 aF9DbGF1c2UKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0IHRva2VuIG9mIGxpYnJhcnkg dW5pdCBuYW1lCiAgICAgIC0tICBOYW1lIChOb2RlMikKICAgICAgLS0gIExpYnJhcnlfVW5pdCAo Tm9kZTQtU2VtKQogICAgICAtLSAgQ29ycmVzcG9uZGluZ19TcGVjIChOb2RlNS1TZW0pCiAgICAg IC0tICBGaXJzdF9OYW1lIChGbGFnNSkgKHNldCB0byBUcnVlIGlmIGZpcnN0IG5hbWUgb3Igb25s eSBvbmUgbmFtZSkKICAgICAgLS0gIExhc3RfTmFtZSAoRmxhZzYpIChzZXQgdG8gVHJ1ZSBpZiBs YXN0IG5hbWUgb3Igb25seSBvbmUgbmFtZSkKICAgICAgLS0gIENvbnRleHRfSW5zdGFsbGVkIChG bGFnMTMtU2VtKQogICAgICAtLSAgRWxhYm9yYXRlX1ByZXNlbnQgKEZsYWc0LVNlbSkKICAgICAg LS0gIEVsYWJvcmF0ZV9BbGxfUHJlc2VudCAoRmxhZzE1LVNlbSkKICAgICAgLS0gIEltcGxpY2l0 X1dpdGggKEZsYWcxNy1TZW0pCiAgICAgIC0tICBVbnJlZmVyZW5jZWRfSW5fU3BlYyAoRmxhZzct U2VtKQogICAgICAtLSAgTm9fRW50aXRpZXNfUmVmX0luX1NwZWMgKEZsYWc4LVNlbSkKCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gV2l0aF9UeXBlIGNsYXVzZSAtLQogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVGhpcyBpcyBhIEdOQVQgZXh0ZW5z aW9uLCB1c2VkIHRvIGltcGxlbWVudCBtdXR1YWxseSByZWN1cnNpdmUKICAgICAgLS0gIHR5cGVz IGRlY2xhcmVkIGluIGRpZmZlcmVudCBwYWNrYWdlcy4KCiAgICAgIC0tICBXSVRIX1RZUEVfQ0xB VVNFIDo6PQogICAgICAtLSAgICB3aXRoIHR5cGUgdHlwZV9OQU1FIGlzIGFjY2VzcyB8IHdpdGgg dHlwZSB0eXBlX05BTUUgaXMgdGFnZ2VkCgogICAgICAtLSAgTl9XaXRoX1R5cGVfQ2xhdXNlCiAg ICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBvZiB0eXBlIG5hbWUKICAgICAgLS0g IE5hbWUgKE5vZGUyKQogICAgICAtLSAgVGFnZ2VkX1ByZXNlbnQgKEZsYWcxNSkKCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMC4yICBCb2R5IHN0dWIgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgQk9EWV9TVFVCIDo6PQogICAgICAtLSAgICBT VUJQUk9HUkFNX0JPRFlfU1RVQgogICAgICAtLSAgfCBQQUNLQUdFX0JPRFlfU1RVQgogICAgICAt LSAgfCBUQVNLX0JPRFlfU1RVQgogICAgICAtLSAgfCBQUk9URUNURURfQk9EWV9TVFVCCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEwLjEuMyAgU3Vi cHJvZ3JhbSBCb2R5IFN0dWIgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgICAgLS0gIFNVQlBST0dSQU1fQk9EWV9TVFVCIDo6PQogICAgICAtLSAgICBTVUJQ Uk9HUkFNX1NQRUNJRklDQVRJT04gaXMgc2VwYXJhdGU7CgogICAgICAtLSAgTl9TdWJwcm9ncmFt X0JvZHlfU3R1YgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gRlVOQ1RJT04gb3IgUFJPQ0VEVVJF CiAgICAgIC0tICBTcGVjaWZpY2F0aW9uIChOb2RlMSkKICAgICAgLS0gIExpYnJhcnlfVW5pdCAo Tm9kZTQtU2VtKSBwb2ludHMgdG8gdGhlIHN1YnVuaXQKICAgICAgLS0gIENvcnJlc3BvbmRpbmdf Qm9keSAoTm9kZTUtU2VtKQoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSAxMC4xLjMgIFBhY2thZ2UgQm9keSBTdHViIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBQQUNLQUdFX0JPRFlfU1RVQiA6Oj0KICAgICAg LS0gICAgcGFja2FnZSBib2R5IERFRklOSU5HX0lERU5USUZJRVIgaXMgc2VwYXJhdGU7CgogICAg ICAtLSAgTl9QYWNrYWdlX0JvZHlfU3R1YgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUEFDS0FH RQogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBMaWJyYXJ5 X1VuaXQgKE5vZGU0LVNlbSkgcG9pbnRzIHRvIHRoZSBzdWJ1bml0CiAgICAgIC0tICBDb3JyZXNw b25kaW5nX0JvZHkgKE5vZGU1LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gMTAuMS4zICBUYXNrIEJvZHkgU3R1YiAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgVEFTS19CT0RZX1NUVUIgOjo9CiAgICAgIC0tICAg IHRhc2sgYm9keSBERUZJTklOR19JREVOVElGSUVSIGlzIHNlcGFyYXRlOwoKICAgICAgLS0gIE5f VGFza19Cb2R5X1N0dWIKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFRBU0sKICAgICAgLS0gIERl ZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgTGlicmFyeV9Vbml0IChOb2RlNC1T ZW0pIHBvaW50cyB0byB0aGUgc3VidW5pdAogICAgICAtLSAgQ29ycmVzcG9uZGluZ19Cb2R5IChO b2RlNS1TZW0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gMTAuMS4zICBQcm90ZWN0ZWQgQm9keSBTdHViIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFBST1RFQ1RFRF9CT0RZX1NUVUIgOjo9CiAgICAg IC0tICAgIHByb3RlY3RlZCBib2R5IERFRklOSU5HX0lERU5USUZJRVIgaXMgc2VwYXJhdGU7Cgog ICAgICAtLSAgTm90ZTogcHJvdGVjdGVkIGJvZHkgc3R1YnMgYXJlIG5vdCBhbGxvd2VkIGluIEFk YSA4MyBtb2RlCgogICAgICAtLSAgTl9Qcm90ZWN0ZWRfQm9keV9TdHViCiAgICAgIC0tICBTbG9j IHBvaW50cyB0byBQUk9URUNURUQKICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUx KQogICAgICAtLSAgTGlicmFyeV9Vbml0IChOb2RlNC1TZW0pIHBvaW50cyB0byB0aGUgc3VidW5p dAogICAgICAtLSAgQ29ycmVzcG9uZGluZ19Cb2R5IChOb2RlNS1TZW0pCgogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTAuMS4zICBTdWJ1bml0IC0tCiAgICAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFNVQlVOSVQgOjo9IHNlcGFyYXRlIChQQVJFTlRfVU5J VF9OQU1FKSBQUk9QRVJfQk9EWQoKICAgICAgLS0gIE5fU3VidW5pdAogICAgICAtLSAgU2xvYyBw b2ludHMgdG8gU0VQQVJBVEUKICAgICAgLS0gIE5hbWUgKE5vZGUyKSBpcyB0aGUgbmFtZSBvZiB0 aGUgcGFyZW50IHVuaXQKICAgICAgLS0gIFByb3Blcl9Cb2R5IChOb2RlMSkgaXMgdGhlIHN1YnVu aXQgYm9keQogICAgICAtLSAgQ29ycmVzcG9uZGluZ19TdHViIChOb2RlMy1TZW0pIGlzIHRoZSBz dHViIGRlY2xhcmF0aW9uIGZvciB0aGUgdW5pdC4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogICAgICAtLSAxMS4xICBFeGNlcHRpb24gRGVjbGFyYXRpb24gLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRVhDRVBUSU9O X0RFQ0xBUkFUSU9OIDo6PSBERUZJTklOR19JREVOVElGSUVSX0xJU1QgOiBleGNlcHRpb247Cgog ICAgICAtLSAgRm9yIGNvbnNpc3RlbmN5IHdpdGggb2JqZWN0IGRlY2xhcmF0aW9ucyBldGMsIHRo ZSBwYXJzZXIgY29udmVydHMKICAgICAgLS0gIHRoZSBjYXNlIG9mIG11bHRpcGxlIGlkZW50aWZp ZXJzIGJlaW5nIGRlY2xhcmVkIHRvIGEgc2VyaWVzIG9mCiAgICAgIC0tICBkZWNsYXJhdGlvbnMg aW4gd2hpY2ggdGhlIGV4cHJlc3Npb24gaXMgY29waWVkLCB1c2luZyB0aGUgTW9yZV9JZHMKICAg ICAgLS0gIGFuZCBQcmV2X0lkcyBmbGFncyB0byByZW1lbWJlciB0aGUgc291Y2UgZm9ybSBhcyBk ZXNjcmliZWQgaW4gdGhlCiAgICAgIC0tICBzZWN0aW9uIG9uICJIYW5kbGluZyBvZiBEZWZpbmlu ZyBJZGVudGlmaWVyIExpc3RzIi4KCiAgICAgIC0tICBOX0V4Y2VwdGlvbl9EZWNsYXJhdGlvbgog ICAgICAtLSAgU2xvYyBwb2ludHMgdG8gRVhDRVBUSU9OCiAgICAgIC0tICBEZWZpbmluZ19JZGVu dGlmaWVyIChOb2RlMSkKICAgICAgLS0gIEV4cHJlc3Npb24gKE5vZGUzLVNlbSkKICAgICAgLS0g IE1vcmVfSWRzIChGbGFnNSkgKHNldCB0byBGYWxzZSBpZiBubyBtb3JlIGlkZW50aWZpZXJzIGlu IGxpc3QpCiAgICAgIC0tICBQcmV2X0lkcyAoRmxhZzYpIChzZXQgdG8gRmFsc2UgaWYgbm8gcHJl dmlvdXMgaWRlbnRpZmllcnMgaW4gbGlzdCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMS4yICBIYW5kbGVkIFNlcXVlbmNlIE9mIFN0 YXRlbWVudHMgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgogICAgICAtLSAgSEFORExFRF9TRVFVRU5DRV9PRl9TVEFURU1FTlRTIDo6PQogICAgICAt LSAgICAgIFNFUVVFTkNFX09GX1NUQVRFTUVOVFMKICAgICAgLS0gICAgW2V4Y2VwdGlvbgogICAg ICAtLSAgICAgIEVYQ0VQVElPTl9IQU5ETEVSCiAgICAgIC0tICAgICAge0VYQ0VQVElPTl9IQU5E TEVSfV0KICAgICAgLS0gICAgW2F0IGVuZAogICAgICAtLSAgICAgIGNsZWFudXBfcHJvY2VkdXJl X2NhbGwgKHBhcmFtLCBwYXJhbSwgcGFyYW0sIC4uLik7XQoKICAgICAgLS0gIFRoZSBBVCBFTkQg cGhyYXNlIGlzIGEgR05BVCBleHRlbnNpb24gdG8gcHJvdmlkZSBmb3IgY2xlYW51cHMuIEl0IGlz CiAgICAgIC0tICB1c2VkIG9ubHkgaW50ZXJuYWxseSBjdXJyZW50bHksIGJ1dCBpcyBjb25zaWRl cmVkIHRvIGJlIHN5bnRhY3RpYy4KICAgICAgLS0gIEF0IHRoZSBtb21lbnQsIHRoZSBvbmx5IGNs ZWFudXAgYWN0aW9uIGFsbG93ZWQgaXMgYSBzaW5nbGUgY2FsbCB0bwogICAgICAtLSAgYSBwYXJh bWV0ZXJsZXNzIHByb2NlZHVyZSwgYW5kIHRoZSBJZGVudGlmaWVyIGZpZWxkIG9mIHRoZSBub2Rl IGlzCiAgICAgIC0tICB0aGUgcHJvY2VkdXJlIHRvIGJlIGNhbGxlZC4gQWxzbyB0aGVyZSBpcyBh IGN1cnJlbnQgcmVzdHJpY3Rpb24KICAgICAgLS0gIHRoYXQgZXhjZXB0aW9uIGhhbmRsZXMgYW5k IGEgY2xlYW51cCBjYW5ub3QgYmUgcHJlc2VudCBpbiB0aGUgc2FtZQogICAgICAtLSAgZnJhbWUs IHNvIGF0IGxlYXN0IG9uZSBvZiBFeGNlcHRpb25fSGFuZGxlcnMgb3IgdGhlIElkZW50aWZpZXIg bXVzdAogICAgICAtLSAgYmUgbWlzc2luZy4KCiAgICAgIC0tICBBY3R1YWxseSwgbW9yZSBhY2N1 cmF0ZWx5LCB0aGlzIHJlc3RyaWN0aW9uIGFwcGxpZXMgdG8gdGhlIG9yaWdpbmFsCiAgICAgIC0t ICBzb3VyY2UgcHJvZ3JhbS4gSW4gdGhlIGV4cGFuZGVkIHRyZWUsIGlmIHRoZSBBdF9FbmRfUHJv YyBmaWVsZCBpcwogICAgICAtLSAgcHJlc2VudCwgdGhlbiB0aGVyZSB3aWxsIGFsc28gYmUgYW4g ZXhjZXB0aW9uIGhhbmRsZXIgb2YgdGhlIGZvcm06CgogICAgICAtLSAgICAgd2hlbiBhbGwgb3Ro ZXJzID0+CiAgICAgIC0tICAgICAgICBjbGVhbnVwOwogICAgICAtLSAgICAgICAgcmFpc2U7Cgog ICAgICAtLSAgd2hlcmUgY2xlYW51cCBpcyB0aGUgcHJvY2VkdXJlIHRvIGJlIGdlbmVyYXRlZC4g VGhlIHJlYXNvbiB3ZSBkbwogICAgICAtLSAgdGhpcyBpcyBzbyB0aGF0IHRoZSBmcm9udCBlbmQg Y2FuIGhhbmRsZSB0aGUgbmVjZXNzYXJ5IGVudHJpZXMgaW4KICAgICAgLS0gIHRoZSBleGNlcHRp b24gdGFibGVzLCBhbmQgb3RoZXIgZXhjZXB0aW9uIGhhbmRsZXIgYWN0aW9ucyByZXF1aXJlZAog ICAgICAtLSAgYXMgcGFydCBvZiB0aGUgbm9ybWFsIGhhbmRsaW5nIGZvciBleGNlcHRpb24gaGFu ZGxlcnMuCgogICAgICAtLSAgVGhlIEFUIEVORCBjbGVhbnVwIGhhbmRsZXIgcHJvdGVjdHMgb25s eSB0aGUgc2VxdWVuY2Ugb2Ygc3RhdGVtZW50cwogICAgICAtLSAgKG5vdCB0aGUgYXNzb2NpYXRl ZCBkZWNsYXJhdGlvbnMgb2YgdGhlIHBhcmVudCksIGp1c3QgbGlrZSBleGNlcHRpb24KICAgICAg LS0gIGhhbmRsZXJzLiBUaGUgYmlnIGRpZmZlcmVuY2UgaXMgdGhhdCB0aGUgY2xlYW51cCBwcm9j ZWR1cmUgaXMgY2FsbGVkCiAgICAgIC0tICBvbiBlaXRoZXIgYSBub3JtYWwgb3IgYW4gYWJub3Jt YWwgZXhpdCBmcm9tIHRoZSBzdGF0ZW1lbnQgc2VxdWVuY2UuCgogICAgICAtLSAgTm90ZTogdGhl IGxpc3Qgb2YgRXhjZXB0aW9uX0hhbmRsZXJzIGNhbiBjb250YWluIHByYWdtYXMgYXMgd2VsbAog ICAgICAtLSAgYXMgYWN0dWFsIGhhbmRsZXJzLiBJbiBwcmFjdGljZSB0aGVzZSBwcmFnbWFzIGNh biBvbmx5IG9jY3VyIGF0CiAgICAgIC0tICB0aGUgc3RhcnQgb2YgdGhlIGxpc3QsIHNpbmNlIGFu eSBwcmFnbWFzIG9jY3VycmluZyBsYXRlciBvbiB3aWxsCiAgICAgIC0tICBiZSBpbmNsdWRlZCBp biB0aGUgc3RhdGVtZW50IGxpc3Qgb2YgdGhlIGNvcnJlc3BvbmRpbmcgaGFuZGxlci4KCiAgICAg IC0tICBOb3RlOiBhbHRob3VnaCBpbiB0aGUgQWRhIHN5bnRheCwgdGhlIHNlcXVlbmNlIG9mIHN0 YXRlbWVudHMgaW4KICAgICAgLS0gIGEgaGFuZGxlZCBzZXF1ZW5jZSBvZiBzdGF0ZW1lbnRzIGNh biBvbmx5IGNvbnRhaW4gc3RhdGVtZW50cywgd2UKICAgICAgLS0gIGFsbG93IGZyZWUgbWl4aW5n IG9mIGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cyBpbiB0aGUgcmVzdWx0aW5nCiAgICAgIC0t ICBleHBhbmRlZCB0cmVlLiBUaGlzIGlzIGZvciBleGFtcGxlIHVzZWQgdG8gZGVhbCB3aXRoIHRo ZSBjYXNlIG9mCiAgICAgIC0tICBhIGNsZWFudXAgcHJvY2VkdXJlIHRoYXQgbXVzdCBoYW5kbGUg ZGVjbGFyYXRpb25zIGFzIHdlbGwgYXMgdGhlCiAgICAgIC0tICBzdGF0ZW1lbnRzIG9mIGEgYmxv Y2suCgogICAgICAtLSAgTl9IYW5kbGVkX1NlcXVlbmNlX09mX1N0YXRlbWVudHMKICAgICAgLS0g IFNsb2MgcG9pbnRzIHRvIGZpcnN0IHRva2VuIG9mIGZpcnN0IHN0YXRlbWVudAogICAgICAtLSAg U3RhdGVtZW50cyAoTGlzdDMpCiAgICAgIC0tICBFbmRfTGFiZWwgKE5vZGU0KSAoc2V0IHRvIEVt cHR5IGlmIGV4cGFuZGVyIGdlbmVyYXRlZCkKICAgICAgLS0gIEV4Y2VwdGlvbl9IYW5kbGVycyAo TGlzdDUpIChzZXQgdG8gTm9fTGlzdCBpZiBub25lIHByZXNlbnQpCiAgICAgIC0tICBBdF9FbmRf UHJvYyAoTm9kZTEpIChzZXQgdG8gRW1wdHkgaWYgbm8gY2xlYW4gdXAgcHJvY2VkdXJlKQogICAg ICAtLSAgRmlyc3RfUmVhbF9TdGF0ZW1lbnQgKE5vZGUyLVNlbSkKICAgICAgLS0gIFplcm9fQ29z dF9IYW5kbGluZyAoRmxhZzUtU2VtKQoKICAgICAgLS0gIE5vdGU6IHRoZSBwYXJlbnQgYWx3YXlz IGNvbnRhaW5zIGEgRGVjbGFyYXRpb25zIGZpZWxkIHdoaWNoIGNvbnRhaW5zCiAgICAgIC0tICBk ZWNsYXJhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBoYW5kbGVkIHNlcXVlbmNlIG9mIHN0YXRl bWVudHMuIFRoaXMKICAgICAgLS0gIGlzIHRydWUgZXZlbiBpbiB0aGUgY2FzZSBvZiBhbiBhY2Nl cHQgc3RhdGVtZW50IChzZWUgZGVzY3JpcHRpb24gb2YKICAgICAgLS0gIHRoZSBOX0FjY2VwdF9T dGF0ZW1lbnQgbm9kZSkuCgogICAgICAtLSAgRW5kX0xhYmVsIHJlZmVycyB0byB0aGUgY29udGFp bmluZyBjb25zdHJ1Y3QuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg ICAtLSAxMS4yICBFeGNlcHRpb24gSGFuZGxlciAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIEVYQ0VQVElPTl9IQU5ETEVSIDo6PQogICAgICAtLSAgICB3 aGVuIFtDSE9JQ0VfUEFSQU1FVEVSX1NQRUNJRklDQVRJT04gOl0KICAgICAgLS0gICAgICBFWENF UFRJT05fQ0hPSUNFIHt8IEVYQ0VQVElPTl9DSE9JQ0V9ID0+CiAgICAgIC0tICAgICAgICBTRVFV RU5DRV9PRl9TVEFURU1FTlRTCgogICAgICAtLSAgTm90ZTogY2hvaWNlIHBhcmFtZXRlciBzcGVj aWZpY2F0aW9uIGlzIG5vdCBhbGxvd2VkIGluIEFkYSA4MyBtb2RlCgogICAgICAtLSAgTl9FeGNl cHRpb25fSGFuZGxlcgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gV0hFTgogICAgICAtLSAgQ2hv aWNlX1BhcmFtZXRlciAoTm9kZTIpIChzZXQgdG8gRW1wdHkgaWYgbm90IHByZXNlbnQpCiAgICAg IC0tICBFeGNlcHRpb25fQ2hvaWNlcyAoTGlzdDQpCiAgICAgIC0tICBTdGF0ZW1lbnRzIChMaXN0 MykKICAgICAgLS0gIFplcm9fQ29zdF9IYW5kbGluZyAoRmxhZzUtU2VtKQoKICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDExLjIgIENob2lj ZSBwYXJhbWV0ZXIgc3BlY2lmaWNhdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBDSE9JQ0VfUEFSQU1FVEVSX1NQRUNJRklD QVRJT04gOjo9IERFRklOSU5HX0lERU5USUZJRVIKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gMTEuMiAgRXhjZXB0aW9uIENob2ljZSAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRVhDRVBUSU9OX0NIT0lDRSA6Oj0gZXhj ZXB0aW9uX05BTUUgfCBvdGhlcnMKCiAgICAgIC0tICBFeGNlcHQgaW4gdGhlIGNhc2Ugb2YgT1RI RVJTLCBubyBleHBsaWNpdCBub2RlIGFwcGVhcnMgaW4gdGhlIHRyZWUKICAgICAgLS0gIGZvciBl eGNlcHRpb24gY2hvaWNlLiBJbnN0ZWFkIHRoZSBleGNlcHRpb24gbmFtZSBhcHBlYXJzIGRpcmVj dGx5LgogICAgICAtLSAgQW4gT1RIRVJTIGNob2ljZSBpcyByZXByZXNlbnRlZCBieSBhIE5fT3Ro ZXJzX0Nob2ljZSBub2RlIChzZWUKICAgICAgLS0gIHNlY3Rpb24gMy44LjEuCgogICAgICAtLSAg Tm90ZTogZm9yIHRoZSBleGNlcHRpb24gY2hvaWNlIGNyZWF0ZWQgZm9yIGFuIGF0IGVuZCBoYW5k bGVyLCB0aGUKICAgICAgLS0gIGV4Y2VwdGlvbiBjaG9pY2UgaXMgYW4gTl9PdGhlcnNfQ2hvaWNl IG5vZGUgd2l0aCBBbGxfT3RoZXJzIHNldC4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSAxMS4zICBSYWlzZSBTdGF0ZW1lbnQgLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkFJU0VfU1RBVEVNRU5UIDo6PSByYWlzZSBbZXhj ZXB0aW9uX05BTUVdOwoKICAgICAgLS0gIE5fUmFpc2VfU3RhdGVtZW50CiAgICAgIC0tICBTbG9j IHBvaW50cyB0byBSQUlTRQogICAgICAtLSAgTmFtZSAoTm9kZTIpIChzZXQgdG8gRW1wdHkgaWYg bm8gZXhjZXB0aW9uIG5hbWUgcHJlc2VudCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAgICAgLS0gMTIuMSAgR2VuZXJpYyBEZWNsYXJhdGlvbiAtLQogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgR0VORVJJQ19ERUNMQVJBVElP TiA6Oj0KICAgICAgLS0gICAgR0VORVJJQ19TVUJQUk9HUkFNX0RFQ0xBUkFUSU9OIHwgR0VORVJJ Q19QQUNLQUdFX0RFQ0xBUkFUSU9OCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuMSAgR2VuZXJpYyBTdWJwcm9ncmFtIERlY2xhcmF0 aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIEdFTkVSSUNfU1VCUFJPR1JBTV9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAg R0VORVJJQ19GT1JNQUxfUEFSVCBTVUJQUk9HUkFNX1NQRUNJRklDQVRJT047CgogICAgICAtLSAg Tm90ZTogR2VuZXJpY19Gb3JtYWxfRGVjbGFyYXRpb25zIGNhbiBpbmNsdWRlIHByYWdtYXMKCiAg ICAgIC0tICBOX0dlbmVyaWNfU3VicHJvZ3JhbV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBw b2ludHMgdG8gR0VORVJJQwogICAgICAtLSAgU3BlY2lmaWNhdGlvbiAoTm9kZTEpIHN1YnByb2dy YW0gc3BlY2lmaWNhdGlvbgogICAgICAtLSAgQ29ycmVzcG9uZGluZ19Cb2R5IChOb2RlNS1TZW0p CiAgICAgIC0tICBHZW5lcmljX0Zvcm1hbF9EZWNsYXJhdGlvbnMgKExpc3QyKSBmcm9tIGdlbmVy aWMgZm9ybWFsIHBhcnQKICAgICAgLS0gIFBhcmVudF9TcGVjIChOb2RlNC1TZW0pCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuMSAgR2Vu ZXJpYyBQYWNrYWdlIERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEdFTkVSSUNfUEFDS0FHRV9ERUNMQVJBVElPTiA6 Oj0KICAgICAgLS0gICAgR0VORVJJQ19GT1JNQUxfUEFSVCBQQUNLQUdFX1NQRUNJRklDQVRJT047 CgogICAgICAtLSAgTm90ZTogd2hlbiB3ZSBkbyBnZW5lcmljcyByaWdodCwgdGhlIEFjdGl2YXRp b25fQ2hhaW5fRW50aXR5IGVudHJ5CiAgICAgIC0tICBmb3IgdGhpcyBub2RlIGNhbiBiZSByZW1v dmVkIChzaW5jZSB0aGUgZXhwYW5kZXIgd29uJ3Qgc2VlIGdlbmVyaWMKICAgICAgLS0gIHVuaXRz IGFueSBtb3JlKT8/Py4KCiAgICAgIC0tICBOb3RlOiBHZW5lcmljX0Zvcm1hbF9EZWNsYXJhdGlv bnMgY2FuIGluY2x1ZGUgcHJhZ21hcwoKICAgICAgLS0gIE5fR2VuZXJpY19QYWNrYWdlX0RlY2xh cmF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBHRU5FUklDCiAgICAgIC0tICBTcGVjaWZp Y2F0aW9uIChOb2RlMSkgcGFja2FnZSBzcGVjaWZpY2F0aW9uCiAgICAgIC0tICBDb3JyZXNwb25k aW5nX0JvZHkgKE5vZGU1LVNlbSkKICAgICAgLS0gIEdlbmVyaWNfRm9ybWFsX0RlY2xhcmF0aW9u cyAoTGlzdDIpIGZyb20gZ2VuZXJpYyBmb3JtYWwgcGFydAogICAgICAtLSAgUGFyZW50X1NwZWMg KE5vZGU0LVNlbSkKICAgICAgLS0gIEFjdGl2YXRpb25fQ2hhaW5fRW50aXR5IChOb2RlMy1TZW0p CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEyLjEgIEdl bmVyaWMgRm9ybWFsIFBhcnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIEdFTkVSSUNfRk9STUFMX1BBUlQgOjo9CiAgICAgIC0tICAgIGdlbmVyaWMg e0dFTkVSSUNfRk9STUFMX1BBUkFNRVRFUl9ERUNMQVJBVElPTiB8IFVTRV9DTEFVU0V9CgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gMTIuMSAgR2VuZXJpYyBGb3JtYWwgUGFyYW1ldGVyIERlY2xhcmF0aW9uIC0tCiAgICAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0g IEdFTkVSSUNfRk9STUFMX1BBUkFNRVRFUl9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgRk9S TUFMX09CSkVDVF9ERUNMQVJBVElPTgogICAgICAtLSAgfCBGT1JNQUxfVFlQRV9ERUNMQVJBVElP TgogICAgICAtLSAgfCBGT1JNQUxfU1VCUFJPR1JBTV9ERUNMQVJBVElPTgogICAgICAtLSAgfCBG T1JNQUxfUEFDS0FHRV9ERUNMQVJBVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDEyLjMgIEdlbmVyaWMgSW5zdGFudGlhdGlvbiAtLQogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBHRU5FUklDX0lOU1RB TlRJQVRJT04gOjo9CiAgICAgIC0tICAgIHBhY2thZ2UgREVGSU5JTkdfUFJPR1JBTV9VTklUX05B TUUgaXMKICAgICAgLS0gICAgICBuZXcgZ2VuZXJpY19wYWNrYWdlX05BTUUgW0dFTkVSSUNfQUNU VUFMX1BBUlRdOwogICAgICAtLSAgfCBwcm9jZWR1cmUgREVGSU5JTkdfUFJPR1JBTV9VTklUX05B TUUgaXMKICAgICAgLS0gICAgICBuZXcgZ2VuZXJpY19wcm9jZWR1cmVfTkFNRSBbR0VORVJJQ19B Q1RVQUxfUEFSVF07CiAgICAgIC0tICB8IGZ1bmN0aW9uIERFRklOSU5HX0RFU0lHTkFUT1IgaXMK ICAgICAgLS0gICAgICBuZXcgZ2VuZXJpY19mdW5jdGlvbl9OQU1FIFtHRU5FUklDX0FDVFVBTF9Q QVJUXTsKCiAgICAgIC0tICBOX1BhY2thZ2VfSW5zdGFudGlhdGlvbgogICAgICAtLSAgU2xvYyBw b2ludHMgdG8gUEFDS0FHRQogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAg ICAgLS0gIE5hbWUgKE5vZGUyKQogICAgICAtLSAgR2VuZXJpY19Bc3NvY2lhdGlvbnMgKExpc3Qz KSAoc2V0IHRvIE5vX0xpc3QgaWYgbm8KICAgICAgLS0gICBnZW5lcmljIGFjdHVhbCBwYXJ0KQog ICAgICAtLSAgUGFyZW50X1NwZWMgKE5vZGU0LVNlbSkKICAgICAgLS0gIEluc3RhbmNlX1NwZWMg KE5vZGU1LVNlbSkKICAgICAgLS0gIEFCRV9Jc19DZXJ0YWluIChGbGFnMTgtU2VtKQoKICAgICAg LS0gIE5fUHJvY2VkdXJlX0luc3RhbnRpYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFBS T0NFRFVSRQogICAgICAtLSAgRGVmaW5pbmdfVW5pdF9OYW1lIChOb2RlMSkKICAgICAgLS0gIE5h bWUgKE5vZGUyKQogICAgICAtLSAgUGFyZW50X1NwZWMgKE5vZGU0LVNlbSkKICAgICAgLS0gIEdl bmVyaWNfQXNzb2NpYXRpb25zIChMaXN0MykgKHNldCB0byBOb19MaXN0IGlmIG5vCiAgICAgIC0t ICAgZ2VuZXJpYyBhY3R1YWwgcGFydCkKICAgICAgLS0gIEluc3RhbmNlX1NwZWMgKE5vZGU1LVNl bSkKICAgICAgLS0gIEFCRV9Jc19DZXJ0YWluIChGbGFnMTgtU2VtKQoKICAgICAgLS0gIE5fRnVu Y3Rpb25fSW5zdGFudGlhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gRlVOQ1RJT04KICAg ICAgLS0gIERlZmluaW5nX1VuaXRfTmFtZSAoTm9kZTEpCiAgICAgIC0tICBOYW1lIChOb2RlMikK ICAgICAgLS0gIEdlbmVyaWNfQXNzb2NpYXRpb25zIChMaXN0MykgKHNldCB0byBOb19MaXN0IGlm IG5vCiAgICAgIC0tICAgZ2VuZXJpYyBhY3R1YWwgcGFydCkKICAgICAgLS0gIFBhcmVudF9TcGVj IChOb2RlNC1TZW0pCiAgICAgIC0tICBJbnN0YW5jZV9TcGVjIChOb2RlNS1TZW0pCiAgICAgIC0t ICBBQkVfSXNfQ2VydGFpbiAoRmxhZzE4LVNlbSkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogICAgICAtLSAxMi4zIEdlbmVyaWMgQWN0dWFsIFBhcnQgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgR0VORVJJQ19BQ1RVQUxfUEFS VCA6Oj0KICAgICAgLS0gICAgKEdFTkVSSUNfQVNTT0NJQVRJT04geywgR0VORVJJQ19BU1NPQ0lB VElPTn0pCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEy LjMgIEdlbmVyaWMgQXNzb2NpYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgICAgLS0gIEdFTkVSSUNfQVNTT0NJQVRJT04gOjo9CiAgICAgIC0tICAgIFtn ZW5lcmljX2Zvcm1hbF9wYXJhbWV0ZXJfU0VMRUNUT1JfTkFNRSA9Pl0KICAgICAgLS0gICAgICBF WFBMSUNJVF9HRU5FUklDX0FDVFVBTF9QQVJBTUVURVIKCiAgICAgIC0tICBOb3RlOiB1bmxpa2Ug dGhlIHByb2NlZHVyZSBjYWxsIGNhc2UsIGEgZ2VuZXJpYyBhc3NvY2lhdGlvbiBub2RlCiAgICAg IC0tICBpcyBnZW5lcmF0ZWQgZm9yIGV2ZXJ5IGFzc29jaWF0aW9uLCBldmVuIGlmIG5vIGZvcm1h bCBpcyBwcmVzZW50LgogICAgICAtLSAgSW4gdGhpcyBjYXNlIHRoZSBwYXJzZXIgd2lsbCBsZWF2 ZSB0aGUgU2VsZWN0b3JfTmFtZSBmaWVsZCBzZXQKICAgICAgLS0gIHRvIEVtcHR5LCB0byBiZSBm aWxsZWQgaW4gbGF0ZXIgYnkgdGhlIHNlbWFudGljIHBhc3MuCgogICAgICAtLSAgTl9HZW5lcmlj X0Fzc29jaWF0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBvZiBnZW5l cmljIGFzc29jaWF0aW9uCiAgICAgIC0tICBTZWxlY3Rvcl9OYW1lIChOb2RlMikgKHNldCB0byBF bXB0eSBpZiBubyBmb3JtYWwKICAgICAgLS0gICBwYXJhbWV0ZXIgc2VsZWN0b3IgbmFtZSkKICAg ICAgLS0gIEV4cGxpY2l0X0dlbmVyaWNfQWN0dWFsX1BhcmFtZXRlciAoTm9kZTEpCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIu MyAgRXhwbGljaXQgR2VuZXJpYyBBY3R1YWwgUGFyYW1ldGVyIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEVYUExJQ0lUX0dF TkVSSUNfQUNUVUFMX1BBUkFNRVRFUiA6Oj0KICAgICAgLS0gICAgRVhQUkVTU0lPTiAgICAgIHwg dmFyaWFibGVfTkFNRSAgIHwgc3VicHJvZ3JhbV9OQU1FCiAgICAgIC0tICB8IGVudHJ5X05BTUUg ICAgICB8IFNVQlRZUEVfTUFSSyAgICB8IHBhY2thZ2VfaW5zdGFuY2VfTkFNRQoKICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMi40ICBGb3JtYWwg T2JqZWN0IERlY2xhcmF0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KCiAgICAgIC0tICBGT1JNQUxfT0JKRUNUX0RFQ0xBUkFUSU9OIDo6PQogICAgICAt LSAgICBERUZJTklOR19JREVOVElGSUVSX0xJU1QgOgogICAgICAtLSAgICAgIE1PREUgU1VCVFlQ RV9NQVJLIFs6PSBERUZBVUxUX0VYUFJFU1NJT05dOwoKICAgICAgLS0gIEFsdGhvdWdoIHRoZSBz eW50YXggYWxsb3dzIG11bHRpcGxlIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCB0aGUKICAgICAg LS0gIHNlbWFudGljcyBpcyBhcyB0aG91Z2ggc3VjY2Vzc2l2ZSBkZWNsYXJhdGlvbnMgd2VyZSBn aXZlbiB3aXRoCiAgICAgIC0tICBpZGVudGljYWwgdHlwZSBkZWZpbml0aW9uIGFuZCBleHByZXNz aW9uIGNvbXBvbmVudHMuIFRvIHNpbXBsaWZ5CiAgICAgIC0tICBzZW1hbnRpYyBwcm9jZXNzaW5n LCB0aGUgcGFyc2VyIHJlcHJlc2VudHMgYSBtdWx0aXBsZSBkZWNsYXJhdGlvbgogICAgICAtLSAg Y2FzZSBhcyBhIHNlcXVlbmNlIG9mIHNpbmdsZSBkZWNsYXJhdGlvbnMsIHVzaW5nIHRoZSBNb3Jl X0lkcyBhbmQKICAgICAgLS0gIFByZXZfSWRzIGZsYWdzIHRvIHByZXNlcnZlIHRoZSBvcmlnaW5h bCBzb3VyY2UgZm9ybSBhcyBkZXNjcmliZWQKICAgICAgLS0gIGluIHRoZSBzZWN0aW9uIG9uICJI YW5kbGluZyBvZiBEZWZpbmluZyBJZGVudGlmaWVyIExpc3RzIi4KCiAgICAgIC0tICBOX0Zvcm1h bF9PYmplY3RfRGVjbGFyYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIGZpcnN0IGlkZW50 aWZpZXIKICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgSW5f UHJlc2VudCAoRmxhZzE1KQogICAgICAtLSAgT3V0X1ByZXNlbnQgKEZsYWcxNykKICAgICAgLS0g IFN1YnR5cGVfTWFyayAoTm9kZTQpCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykgKHNldCB0 byBFbXB0eSBpZiBubyBkZWZhdWx0IGV4cHJlc3Npb24pCiAgICAgIC0tICBNb3JlX0lkcyAoRmxh ZzUpIChzZXQgdG8gRmFsc2UgaWYgbm8gbW9yZSBpZGVudGlmaWVycyBpbiBsaXN0KQogICAgICAt LSAgUHJldl9JZHMgKEZsYWc2KSAoc2V0IHRvIEZhbHNlIGlmIG5vIHByZXZpb3VzIGlkZW50aWZp ZXJzIGluIGxpc3QpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSAxMi41ICBGb3JtYWwgVHlwZSBEZWNsYXJhdGlvbiAtLQogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZPUk1BTF9UWVBFX0RFQ0xBUkFU SU9OIDo6PQogICAgICAtLSAgICB0eXBlIERFRklOSU5HX0lERU5USUZJRVIgW0RJU0NSSU1JTkFO VF9QQVJUXQogICAgICAtLSAgICAgIGlzIEZPUk1BTF9UWVBFX0RFRklOSVRJT047CgogICAgICAt LSAgTl9Gb3JtYWxfVHlwZV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gVFlQ RQogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBGb3JtYWxf VHlwZV9EZWZpbml0aW9uIChOb2RlMykKICAgICAgLS0gIERpc2NyaW1pbmFudF9TcGVjaWZpY2F0 aW9ucyAoTGlzdDQpIChzZXQgdG8gTm9fTGlzdCBpZiBubwogICAgICAtLSAgIGRpc2NyaW1pbmFu dCBwYXJ0KQogICAgICAtLSAgVW5rbm93bl9EaXNjcmltaW5hbnRzX1ByZXNlbnQgKEZsYWcxMykg c2V0IGlmICg8PikgZGlzY3JpbWluYW50CgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDEyLjUgIEZvcm1hbCB0eXBlIGRlZmluaXRpb24gLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZPUk1BTF9UWVBF X0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIEZPUk1BTF9QUklWQVRFX1RZUEVfREVGSU5JVElP TgogICAgICAtLSAgfCBGT1JNQUxfREVSSVZFRF9UWVBFX0RFRklOSVRJT04KICAgICAgLS0gIHwg Rk9STUFMX0RJU0NSRVRFX1RZUEVfREVGSU5JVElPTgogICAgICAtLSAgfCBGT1JNQUxfU0lHTkVE X0lOVEVHRVJfVFlQRV9ERUZJTklUSU9OCiAgICAgIC0tICB8IEZPUk1BTF9NT0RVTEFSX1RZUEVf REVGSU5JVElPTgogICAgICAtLSAgfCBGT1JNQUxfRkxPQVRJTkdfUE9JTlRfREVGSU5JVElPTgog ICAgICAtLSAgfCBGT1JNQUxfT1JESU5BUllfRklYRURfUE9JTlRfREVGSU5JVElPTgogICAgICAt LSAgfCBGT1JNQUxfREVDSU1BTF9GSVhFRF9QT0lOVF9ERUZJTklUSU9OCiAgICAgIC0tICB8IEZP Uk1BTF9BUlJBWV9UWVBFX0RFRklOSVRJT04KICAgICAgLS0gIHwgRk9STUFMX0FDQ0VTU19UWVBF X0RFRklOSVRJT04KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogICAgICAtLSAxMi41LjEgIEZvcm1hbCBQcml2YXRlIFR5cGUgRGVmaW5pdGlvbiAt LQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAg ICAgIC0tICBGT1JNQUxfUFJJVkFURV9UWVBFX0RFRklOSVRJT04gOjo9CiAgICAgIC0tICAgIFtb YWJzdHJhY3RdIHRhZ2dlZF0gW2xpbWl0ZWRdIHByaXZhdGUKCiAgICAgIC0tICBOb3RlOiBUQUdH RUQgaXMgbm90IGFsbG93ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBOX0Zvcm1hbF9Qcml2 YXRlX1R5cGVfRGVmaW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUFJJVkFURQogICAg ICAtLSAgQWJzdHJhY3RfUHJlc2VudCAoRmxhZzQpCiAgICAgIC0tICBUYWdnZWRfUHJlc2VudCAo RmxhZzE1KQogICAgICAtLSAgTGltaXRlZF9QcmVzZW50IChGbGFnMTcpCgogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMi41LjEgIEZv cm1hbCBEZXJpdmVkIFR5cGUgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZPUk1BTF9ERVJJVkVEX1RZUEVf REVGSU5JVElPTiA6Oj0KICAgICAgLS0gICAgW2Fic3RyYWN0XSBuZXcgU1VCVFlQRV9NQVJLIFt3 aXRoIHByaXZhdGVdCgogICAgICAtLSAgTm90ZTogdGhpcyBjb25zdHJ1Y3QgaXMgbm90IGFsbG93 ZWQgaW4gQWRhIDgzIG1vZGUKCiAgICAgIC0tICBOX0Zvcm1hbF9EZXJpdmVkX1R5cGVfRGVmaW5p dGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gTkVXCiAgICAgIC0tICBTdWJ0eXBlX01hcmsg KE5vZGU0KQogICAgICAtLSAgUHJpdmF0ZV9QcmVzZW50IChGbGFnMTUpCiAgICAgIC0tICBBYnN0 cmFjdF9QcmVzZW50IChGbGFnNCkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMi41LjIgIEZvcm1hbCBEaXNjcmV0ZSBUeXBlIERl ZmluaXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgogICAgICAtLSAgRk9STUFMX0RJU0NSRVRFX1RZUEVfREVGSU5JVElPTiA6Oj0gKDw+ KQoKICAgICAgLS0gIE5fRm9ybWFsX0Rpc2NyZXRlX1R5cGVfRGVmaW5pdGlvbgogICAgICAtLSAg U2xvYyBwb2ludHMgdG8gKAoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEyLjUuMiAgRm9ybWFsIFNpZ25lZCBJbnRlZ2Vy IFR5cGUgRGVmaW5pdGlvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBGT1JNQUxfU0lHTkVEX0lOVEVHRVJfVFlQ RV9ERUZJTklUSU9OIDo6PSByYW5nZSA8PgoKICAgICAgLS0gIE5fRm9ybWFsX1NpZ25lZF9JbnRl Z2VyX1R5cGVfRGVmaW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gUkFOR0UKCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEy LjUuMiAgRm9ybWFsIE1vZHVsYXIgVHlwZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRk9STUFMX01PRFVM QVJfVFlQRV9ERUZJTklUSU9OIDo6PSBtb2QgPD4KCiAgICAgIC0tICBOX0Zvcm1hbF9Nb2R1bGFy X1R5cGVfRGVmaW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gTU9ECgogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEyLjUu MiAgRm9ybWFsIEZsb2F0aW5nIFBvaW50IERlZmluaXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZPUk1BTF9GTE9B VElOR19QT0lOVF9ERUZJTklUSU9OIDo6PSBkaWdpdHMgPD4KCiAgICAgIC0tICBOX0Zvcm1hbF9G bG9hdGluZ19Qb2ludF9EZWZpbml0aW9uCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBESUdJVFMK CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgICAgLS0gMTIuNS4yICBGb3JtYWwgT3JkaW5hcnkgRml4ZWQgUG9pbnQgRGVmaW5pdGlv biAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCgogICAgICAtLSAgRk9STUFMX09SRElOQVJZX0ZJWEVEX1BPSU5UX0RFRklOSVRJT04g Ojo9IGRlbHRhIDw+CgogICAgICAtLSAgTl9Gb3JtYWxfT3JkaW5hcnlfRml4ZWRfUG9pbnRfRGVm aW5pdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gREVMVEEKCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMi41LjIg IEZvcm1hbCBEZWNpbWFsIEZpeGVkIFBvaW50IERlZmluaXRpb24gLS0KICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRk9S TUFMX0RFQ0lNQUxfRklYRURfUE9JTlRfREVGSU5JVElPTiA6Oj0gZGVsdGEgPD4gZGlnaXRzIDw+ CgogICAgICAtLSAgTm90ZTogZm9ybWFsIGRlY2ltYWwgZml4ZWQgcG9pbnQgZGVmaW5pdGlvbiBu b3QgYWxsb3dlZCBpbiBBZGEgODMKCiAgICAgIC0tICBOX0Zvcm1hbF9EZWNpbWFsX0ZpeGVkX1Bv aW50X0RlZmluaXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIERFTFRBCgogICAgICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuNS4zICBG b3JtYWwgQXJyYXkgVHlwZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEZPUk1BTF9BUlJBWV9UWVBFX0RFRklO SVRJT04gOjo9IEFSUkFZX1RZUEVfREVGSU5JVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMi41LjQgIEZvcm1hbCBBY2Nlc3Mg VHlwZSBEZWZpbml0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBGT1JNQUxfQUNDRVNTX1RZUEVfREVGSU5JVElPTiA6Oj0g QUNDRVNTX1RZUEVfREVGSU5JVElPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuNiAgRm9ybWFsIFN1YnByb2dyYW0gRGVjbGFyYXRp b24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAg ICAgIC0tICBGT1JNQUxfU1VCUFJPR1JBTV9ERUNMQVJBVElPTiA6Oj0KICAgICAgLS0gICAgd2l0 aCBTVUJQUk9HUkFNX1NQRUNJRklDQVRJT04gW2lzIFNVQlBST0dSQU1fREVGQVVMVF07CgogICAg ICAtLSAgTl9Gb3JtYWxfU3VicHJvZ3JhbV9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gV0lUSAogICAgICAtLSAgU3BlY2lmaWNhdGlvbiAoTm9kZTEpCiAgICAgIC0tICBEZWZh dWx0X05hbWUgKE5vZGUyKSAoc2V0IHRvIEVtcHR5IGlmIG5vIHN1YnByb2dyYW0gZGVmYXVsdCkK ICAgICAgLS0gIEJveF9QcmVzZW50IChGbGFnMTUpCgogICAgICAtLSAgTm90ZTogaWYgbm8gc3Vi cHJvZ3JhbSBkZWZhdWx0IGlzIHByZXNlbnQsIHRoZW4gTmFtZSBpcyBzZXQKICAgICAgLS0gIHRv IEVtcHR5LCBhbmQgQm94X1ByZXNlbnQgaXMgRmFsc2UuCgogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuNiAgU3VicHJvZ3JhbSBEZWZhdWx0IC0tCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFNVQlBST0dSQU1fREVG QVVMVCA6Oj0gREVGQVVMVF9OQU1FIHwgPD4KCiAgICAgIC0tICBUaGVyZSBpcyBubyBzZXBhcmF0 ZSBub2RlIGluIHRoZSB0cmVlIGZvciBhIHN1YnByb2dyYW0gZGVmYXVsdC4KICAgICAgLS0gIElu c3RlYWQgdGhlIHBhcmVudCAoTl9Gb3JtYWxfU3VicHJvZ3JhbV9EZWNsYXJhdGlvbikgbm9kZSBj b250YWlucwogICAgICAtLSAgdGhlIGRlZmF1bHQgbmFtZSBvciBib3ggaW5kaWNhdGlvbiwgYXMg bmVlZGVkLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEyLjYgIERl ZmF1bHQgTmFtZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBE RUZBVUxUX05BTUUgOjo9IE5BTUUKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDEyLjcgIEZvcm1hbCBQYWNrYWdlIERlY2xhcmF0aW9uIC0tCiAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRk9S TUFMX1BBQ0tBR0VfREVDTEFSQVRJT04gOjo9CiAgICAgIC0tICAgIHdpdGggcGFja2FnZSBERUZJ TklOR19JREVOVElGSUVSCiAgICAgIC0tICAgICAgaXMgbmV3IGdlbmVyaWNfcGFja2FnZV9OQU1F IEZPUk1BTF9QQUNLQUdFX0FDVFVBTF9QQVJUOwoKICAgICAgLS0gIE5vdGU6IGZvcm1hbCBwYWNr YWdlIGRlY2xhcmF0aW9ucyBub3QgYWxsb3dlZCBpbiBBZGEgODMgbW9kZQoKICAgICAgLS0gIE5f Rm9ybWFsX1BhY2thZ2VfRGVjbGFyYXRpb24KICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIFdJVEgK ICAgICAgLS0gIERlZmluaW5nX0lkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgTmFtZSAoTm9k ZTIpCiAgICAgIC0tICBHZW5lcmljX0Fzc29jaWF0aW9ucyAoTGlzdDMpIChzZXQgdG8gTm9fTGlz dCBpZiAoPD4pIGNhc2Ugb3IKICAgICAgLS0gICBlbXB0eSBnZW5lcmljIGFjdHVhbCBwYXJ0KQog ICAgICAtLSAgQm94X1ByZXNlbnQgKEZsYWcxNSkKICAgICAgLS0gIEluc3RhbmNlX1NwZWMgKE5v ZGU1LVNlbSkKICAgICAgLS0gIEFCRV9Jc19DZXJ0YWluIChGbGFnMTgtU2VtKQoKICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTIuNyAgRm9ybWFs IFBhY2thZ2UgQWN0dWFsIFBhcnQgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgICAgIC0tICBGT1JNQUxfUEFDS0FHRV9BQ1RVQUxfUEFSVCA6Oj0KICAg ICAgLS0gICAgKDw+KSB8IFtHRU5FUklDX0FDVFVBTF9QQVJUXQoKICAgICAgLS0gIFRoZXJlIGlz IG5vIGV4cGxpY2l0IG5vZGUgaW4gdGhlIHRyZWUgZm9yIGEgZm9ybWFsIHBhY2thZ2UKICAgICAg LS0gIGFjdHVhbCBwYXJ0LiBJbnN0ZWFkIHRoZSBpbmZvcm1hdGlvbiBhcHBlYXJzIGluIHRoZSBw YXJlbnQgbm9kZQogICAgICAtLSAgKGkuZS4gdGhlIGZvcm1hbCBwYWNrYWdlIGRlY2xhcmF0aW9u IG5vZGUgaXRzZWxmKS4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSAxMy4xICBSZXByZXNlbnRhdGlvbiBjbGF1c2UgLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgUkVQUkVTRU5UQVRJT05fQ0xBVVNFIDo6 PQogICAgICAtLSAgICBBVFRSSUJVVEVfREVGSU5JVElPTl9DTEFVU0UKICAgICAgLS0gIHwgRU5V TUVSQVRJT05fUkVQUkVTRU5UQVRJT05fQ0xBVVNFCiAgICAgIC0tICB8IFJFQ09SRF9SRVBSRVNF TlRBVElPTl9DTEFVU0UKICAgICAgLS0gIHwgQVRfQ0xBVVNFCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIDEzLjEgIExvY2FsIE5hbWUgLS0KICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIExPQ0FMX05BTUUgOj0KICAgICAgLS0gICAgRElSRUNUX05B TUUKICAgICAgLS0gIHwgRElSRUNUX05BTUUnQVRUUklCVVRFX0RFU0lHTkFUT1IKICAgICAgLS0g IHwgbGlicmFyeV91bml0X05BTUUKCiAgICAgIC0tICBUaGUgY29uc3RydWN0IERJUkVDVF9OQU1F J0FUVFJJQlVURV9ERVNJR05BVE9SIGFwcGVhcnMgaW4gdGhlIHRyZWUKICAgICAgLS0gIGFzIGFu IGF0dHJpYnV0ZSByZWZlcmVuY2UsIHdoaWNoIGhhcyBlc3NlbnRpYWxseSB0aGUgc2FtZSBmb3Jt LgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0t IDEzLjMgIEF0dHJpYnV0ZSBkZWZpbml0aW9uIGNsYXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBVFRSSUJVVEVfREVGSU5JVElP Tl9DTEFVU0UgOjo9CiAgICAgIC0tICAgIGZvciBMT0NBTF9OQU1FJ0FUVFJJQlVURV9ERVNJR05B VE9SIHVzZSBFWFBSRVNTSU9OOwogICAgICAtLSAgfCBmb3IgTE9DQUxfTkFNRSdBVFRSSUJVVEVf REVTSUdOQVRPUiB1c2UgTkFNRTsKCiAgICAgIC0tICBJbiBBZGEgODMsIHRoZSBleHByZXNzaW9u IG11c3QgYmUgYSBzaW1wbGUgZXhwcmVzc2lvbiBhbmQgdGhlCiAgICAgIC0tICBsb2NhbCBuYW1l IG11c3QgYmUgYSBkaXJlY3QgbmFtZS4KCiAgICAgIC0tICBOb3RlOiBUaGUgb25seSBhdHRyaWJ1 dGUgZGVmaW5pdGlvbiBjbGF1c2UgdGhhdCBpcyBwcm9jZXNzZWQKICAgICAgLS0gIGJ5IEdpZ2kg aXMgdGhlIGFsaWdubWVudCBjbGF1c2UgKGZvciBhbGwgb3RoZXIgY2FzZXMsIHRoZQogICAgICAt LSAgaW5mb3JtYXRpb24gaXMgZXh0cmFjdGVkIGJ5IHRoZSBmcm9udCBlbmQgYW5kIGVpdGhlciBy ZXN1bHRzCiAgICAgIC0tICBpbiBzZXR0aW5nIGVudGl0eSBpbmZvcm1hdGlvbiwgZS5nLiBFc2l6 ZSBmb3IgdGhlIFNpemUgY2FzZSwKICAgICAgLS0gIG9yIGluIGFwcHJvcHJpYXRlIGV4cGFuc2lv biBhY3Rpb25zIChlLmcuIGluIHRoZSBzdG9yYWdlIHNpemUKICAgICAgLS0gIGNhc2UpLiBGb3Ig dGhlIGFsaWdubWVudCBjYXNlLCBHaWdpIHJlcXVpcmVzIHRoYXQgdGhlIGV4cHJlc3Npb24KICAg ICAgLS0gIGJlIGFuIGludGVnZXIgbGl0ZXJhbC4KCiAgICAgIC0tICBOX0F0dHJpYnV0ZV9EZWZp bml0aW9uX0NsYXVzZQogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gRk9SCiAgICAgIC0tICBOYW1l IChOb2RlMikgdGhlIGxvY2FsIG5hbWUKICAgICAgLS0gIENoYXJzIChOYW1lMSkgdGhlIGlkZW50 aWZpZXIgbmFtZSBmcm9tIHRoZSBhdHRyaWJ1dGUgZGVzaWduYXRvcgogICAgICAtLSAgRXhwcmVz c2lvbiAoTm9kZTMpIHRoZSBleHByZXNzaW9uIG9yIG5hbWUKICAgICAgLS0gIE5leHRfUmVwX0l0 ZW0gKE5vZGU0LVNlbSkKICAgICAgLS0gIEZyb21fQXRfTW9kIChGbGFnNC1TZW0pCgogICAgICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTMu NCAgRW51bWVyYXRpb24gcmVwcmVzZW50YXRpb24gY2xhdXNlIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIEVOVU1FUkFUSU9O X1JFUFJFU0VOVEFUSU9OX0NMQVVTRSA6Oj0KICAgICAgLS0gICAgZm9yIGZpcnN0X3N1YnR5cGVf TE9DQUxfTkFNRSB1c2UgRU5VTUVSQVRJT05fQUdHUkVHQVRFOwoKICAgICAgLS0gIEluIEFkYSA4 MywgdGhlIG5hbWUgbXVzdCBiZSBhIGRpcmVjdCBuYW1lCgogICAgICAtLSAgTl9FbnVtZXJhdGlv bl9SZXByZXNlbnRhdGlvbl9DbGF1c2UKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEZPUgogICAg ICAtLSAgSWRlbnRpZmllciAoTm9kZTEpIGRpcmVjdCBuYW1lCiAgICAgIC0tICBBcnJheV9BZ2dy ZWdhdGUgKE5vZGUzKQogICAgICAtLSAgTmV4dF9SZXBfSXRlbSAoTm9kZTQtU2VtKQoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEzLjQgIEVudW1lcmF0 aW9uIGFnZ3JlZ2F0ZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K CiAgICAgIC0tICBFTlVNRVJBVElPTl9BR0dSRUdBVEUgOjo9IEFSUkFZX0FHR1JFR0FURQoKICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEz LjUuMSAgUmVjb3JkIHJlcHJlc2VudGF0aW9uIGNsYXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBSRUNPUkRfUkVQUkVTRU5U QVRJT05fQ0xBVVNFIDo6PQogICAgICAtLSAgICBmb3IgZmlyc3Rfc3VidHlwZV9MT0NBTF9OQU1F IHVzZQogICAgICAtLSAgICAgIHJlY29yZCBbTU9EX0NMQVVTRV0KICAgICAgLS0gICAgICAgIHtD T01QT05FTlRfQ0xBVVNFfQogICAgICAtLSAgICAgIGVuZCByZWNvcmQ7CgogICAgICAtLSAgR2ln aSByZXN0cmljdGlvbjogTW9kX0NsYXVzZSBpcyBhbHdheXMgRW1wdHkgKGlmIHByZXNlbnQgaXQg aXMKICAgICAgLS0gIHJlcGxhY2VkIGJ5IGEgY29ycmVzcG9uZGluZyBBbGlnbm1lbnQgYXR0cmli dXRlIGRlZmluaXRpb24gY2xhdXNlKS4KCiAgICAgIC0tICBOb3RlOiBDb21wb25lbnRfQ2xhdXNl cyBjYW4gaW5jbHVkZSBwcmFnbWFzCgogICAgICAtLSAgTl9SZWNvcmRfUmVwcmVzZW50YXRpb25f Q2xhdXNlCiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBGT1IKICAgICAgLS0gIElkZW50aWZpZXIg KE5vZGUxKSBkaXJlY3QgbmFtZQogICAgICAtLSAgTW9kX0NsYXVzZSAoTm9kZTIpIChzZXQgdG8g RW1wdHkgaWYgbm8gbW9kIGNsYXVzZSBwcmVzZW50KQogICAgICAtLSAgQ29tcG9uZW50X0NsYXVz ZXMgKExpc3QzKQogICAgICAtLSAgTmV4dF9SZXBfSXRlbSAoTm9kZTQtU2VtKQoKICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIDEzLjUuMSAgQ29tcG9uZW50IGNs YXVzZSAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBD T01QT05FTlRfQ0xBVVNFIDo6PQogICAgICAtLSAgICBjb21wb25lbnRfTE9DQUxfTkFNRSBhdCBQ T1NJVElPTgogICAgICAtLSAgICAgIHJhbmdlIEZJUlNUX0JJVCAuLiBMQVNUX0JJVDsKCiAgICAg IC0tICBOX0NvbXBvbmVudF9DbGF1c2UKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIEFUCiAgICAg IC0tICBDb21wb25lbnRfTmFtZSAoTm9kZTEpIHBvaW50cyB0byBOYW1lIG9yIEF0dHJpYnV0ZV9S ZWZlcmVuY2UKICAgICAgLS0gIFBvc2l0aW9uIChOb2RlMikKICAgICAgLS0gIEZpcnN0X0JpdCAo Tm9kZTMpCiAgICAgIC0tICBMYXN0X0JpdCAoTm9kZTQpCgogICAgICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgICAgIC0tIDEzLjUuMSAgUG9zaXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgICAgLS0gIFBPU0lUSU9OIDo6PSBzdGF0aWNfRVhQUkVTU0lPTgoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gMTMuNS4xICBGaXJzdF9CaXQgLS0KICAg ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBGSVJTVF9CSVQgOjo9IHN0YXRp Y19TSU1QTEVfRVhQUkVTU0lPTgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAt LSAxMy41LjEgIExhc3RfQml0IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAg IC0tICBMQVNUX0JJVCA6Oj0gc3RhdGljX1NJTVBMRV9FWFBSRVNTSU9OCgogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSAxMy44ICBDb2RlIHN0YXRlbWVudCAtLQogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIENPREVfU1RBVEVNRU5UIDo6 PSBRVUFMSUZJRURfRVhQUkVTU0lPTjsKCiAgICAgIC0tICBOb3RlOiBpbiBHTkFULCB0aGUgcXVh bGlmaWVkIGV4cHJlc3Npb24gaGFzIHRoZSBmb3JtCgogICAgICAtLSAgICBBc21fSW5zbicoQXNt ICguLi4pKTsKCiAgICAgIC0tICAgICAgb3IKCiAgICAgIC0tICAgIEFzbV9JbnNuJyhBc21fVm9s YXRpbGUgKC4uLikpCgogICAgICAtLSAgU2VlIHBhY2thZ2UgU3lzdGVtLk1hY2hpbmVfQ29kZSBp biBmaWxlIHMtbWFjY29kLmFkcyBmb3IgZGV0YWlscwogICAgICAtLSAgb24gdGhlIGFsbG93ZWQg cGFyYW1ldGVycyB0byBBc21bX1ZvbGF0aWxlXS4gVGhlcmUgYXJlIHR3byB3YXlzCiAgICAgIC0t ICB0aGlzIG5vZGUgY2FuIGFyaXNlLCBhcyBhIGNvZGUgc3RhdGVtZW50LCBpbiB3aGljaCBjYXNl IHRoZQogICAgICAtLSAgZXhwcmVzc2lvbiBpcyB0aGUgcXVhbGlmaWVkIGV4cHJlc3Npb24sIG9y IGFzIGEgcmVzdWx0IG9mIHRoZQogICAgICAtLSAgZXhwYW5zaW9uIG9mIGFuIGludHJpbnNpYyBj YWxsIHRvIHRoZSBBc20gb3IgQXNtX0lucHV0IHByb2NlZHVyZS4KCiAgICAgIC0tICBOX0NvZGVf U3RhdGVtZW50CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byBmaXJzdCB0b2tlbiBvZiB0aGUgZXhw cmVzc2lvbgogICAgICAtLSAgRXhwcmVzc2lvbiAoTm9kZTMpCgogICAgICAtLSAgTm90ZTogcGFj a2FnZSBFeHBfQ29kZSBjb250YWlucyBhbiBhYnN0cmFjdCBmdW5jdGlvbmFsIGludGVyZmFjZQog ICAgICAtLSAgZm9yIHVzZSBieSBHaWdpIGluIGFjY2Vzc2luZyB0aGUgZGF0YSBmcm9tIE5fQ29k ZV9TdGF0ZW1lbnQgbm9kZXMuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gMTMuMTIgIFJlc3RyaWN0aW9uIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgLS0gIFJFU1RSSUNUSU9OIDo6PQogICAgICAtLSAgICByZXN0cmljdGlvbl9JREVOVElG SUVSCiAgICAgIC0tICB8IHJlc3RyaWN0aW9uX3BhcmFtZXRlcl9JREVOVElGSUVSID0+IEVYUFJF U1NJT04KCiAgICAgIC0tICBUaGVyZSBpcyBubyBleHBsaWNpdCBub2RlIGZvciByZXN0cmljdGlv bnMuIEluc3RlYWQgdGhlIHJlc3RyaWN0aW9uCiAgICAgIC0tICBhcHBlYXJzIGluIG5vcm1hbCBw cmFnbWEgc3ludGF4IGFzIGEgcHJhZ21hIGFyZ3VtZW50IGFzc29jaWF0aW9uLAogICAgICAtLSAg d2hpY2ggaGFzIHRoZSBzYW1lIHN5bnRhY3RpYyBmb3JtLgoKICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICAgICAgLS0gQi4yICBTaGlmdCBPcGVyYXRvcnMgLS0KICAgICAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBDYWxscyB0byB0aGUgaW50cmluc2ljIHNo aWZ0IGZ1bmN0aW9ucyBhcmUgY29udmVydGVkIHRvIG9uZSBvZgogICAgICAtLSAgdGhlIGZvbGxv d2luZyBzaGlmdCBub2Rlcywgd2hpY2ggaGF2ZSB0aGUgZm9ybSBvZiBub3JtYWwgYmluYXJ5CiAg ICAgIC0tICBvcGVyYXRvciBuYW1lcy4gTm90ZSB0aGF0IGZvciBhIGdpdmVuIHNoaWZ0IG9wZXJh dGlvbiwgb25lIG5vZGUKICAgICAgLS0gIGNvdmVycyBhbGwgcG9zc2libGUgdHlwZXMsIGFzIGZv ciBub3JtYWwgb3BlcmF0b3JzLgoKICAgICAgLS0gIE5vdGU6IGl0IGlzIHBlcmZlY3RseSBwZXJt aXNzaWJsZSBmb3IgdGhlIGV4cGFuZGVyIHRvIGdlbmVyYXRlCiAgICAgIC0tICBzaGlmdCBvcGVy YXRpb24gbm9kZXMgZGlyZWN0bHksIGluIHdoaWNoIGNhc2UgdGhleSB3aWxsIGJlIGFuYWx5emVk CiAgICAgIC0tICBhbmQgcGFyc2VkIGluIHRoZSB1c3VhbCBtYW5uZXIuCgogICAgICAtLSAgU3By aW50IHN5bnRheDogc2hpZnQtZnVuY3Rpb24tbmFtZSEoZXhwciwgY291bnQpCgogICAgICAtLSAg Tm90ZTogdGhlIExlZnRfT3BuZCBmaWVsZCBob2xkcyB0aGUgZmlyc3QgYXJndW1lbnQgKHRoZSB2 YWx1ZSB0bwogICAgICAtLSAgYmUgc2hpZnRlZCkuIFRoZSBSaWdodF9PcG5kIGZpZWxkIGhvbGRz IHRoZSBzZWNvbmQgYXJndW1lbnQgKHRoZQogICAgICAtLSAgc2hpZnQgY291bnQpLiBUaGUgQ2hh cnMgZmllbGQgaXMgdGhlIG5hbWUgb2YgdGhlIGludHJpbnNpYyBmdW5jdGlvbi4KCiAgICAgIC0t ICBOX09wX1JvdGF0ZV9MZWZ0CiAgICAgIC0tICBTbG9jIHBvaW50cyB0byB0aGUgZnVuY3Rpb24g bmFtZQogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBvcGVyYXRvcgogICAgICAtLSAg cGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KICAgICAgLS0gIFNoaWZ0X0NvdW50X09LIChGbGFn NC1TZW0pCgogICAgICAtLSAgTl9PcF9Sb3RhdGVfUmlnaHQKICAgICAgLS0gIFNsb2MgcG9pbnRz IHRvIHRoZSBmdW5jdGlvbiBuYW1lCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgYmluYXJ5IG9w ZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgogICAgICAtLSAgU2hp ZnRfQ291bnRfT0sgKEZsYWc0LVNlbSkKCiAgICAgIC0tICBOX09wX1NoaWZ0X0xlZnQKICAgICAg LS0gIFNsb2MgcG9pbnRzIHRvIHRoZSBmdW5jdGlvbiBuYW1lCiAgICAgIC0tICBwbHVzIGZpZWxk cyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lv bgogICAgICAtLSAgU2hpZnRfQ291bnRfT0sgKEZsYWc0LVNlbSkKCiAgICAgIC0tICBOX09wX1No aWZ0X1JpZ2h0X0FyaXRobWV0aWMKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIHRoZSBmdW5jdGlv biBuYW1lCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgYmluYXJ5IG9wZXJhdG9yCiAgICAgIC0t ICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgogICAgICAtLSAgU2hpZnRfQ291bnRfT0sgKEZs YWc0LVNlbSkKCiAgICAgIC0tICBOX09wX1NoaWZ0X1JpZ2h0CiAgICAgIC0tICBTbG9jIHBvaW50 cyB0byB0aGUgZnVuY3Rpb24gbmFtZQogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGJpbmFyeSBv cGVyYXRvcgogICAgICAtLSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KICAgICAgLS0gIFNo aWZ0X0NvdW50X09LIChGbGFnNC1TZW0pCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAtLSBPYnNvbGVzY2VudCBGZWF0dXJlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQoKICAgICAgLS0gIFRoZSBzeW50YXggZGVzY3JpcHRpb25zIGFuZCB0cmVlIG5vZGVzIGZvciBv YnNvbGVzY2VudCBmZWF0dXJlcyBhcmUKICAgICAgLS0gIGdyb3VwZWQgdG9nZXRoZXIsIGNvcnJl c3BvbmRpbmcgdG8gdGhlaXIgbG9jYXRpb24gaW4gYXBwZW5kaXggSSBpbgogICAgICAtLSAgdGhl IFJNLiBIb3dldmVyLCBwYXJzaW5nIGFuZCBzZW1hbnRpYyBhbmFseXNpcyBmb3IgdGhlc2UgY29u c3RydWN0cwogICAgICAtLSAgaXMgbG9jYXRlZCBpbiBhbiBhcHByb3ByaWF0ZSBjaGFwdGVyIChz ZWUgaW5kaXZpZHVhbCBub3RlcykuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgLS0gSi4zICBEZWx0YSBDb25zdHJhaW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgICAgLS0gIE5vdGU6IHRoZSBwYXJzZSByb3V0aW5lIGZvciB0aGlzIGNv bnN0cnVjdCBpcyBsb2NhdGVkIGluIHNlY3Rpb24KICAgICAgLS0gIDMuNS45IG9mIFBhci1DaDMs IGFuZCBzZW1hbnRpYyBhbmFseXNpcyBpcyBpbiBTZW1fQ2gzLCB3aGljaCBpcwogICAgICAtLSAg d2hlcmUgZGVsdGEgY29uc3RyYWludCBsb2dpY2FsbHkgYmVsb25ncy4KCiAgICAgIC0tICBERUxU QV9DT05TVFJBSU5UIDo6PSBERUxUQSBzdGF0aWNfRVhQUkVTU0lPTiBbUkFOR0VfQ09OU1RSQUlO VF0KCiAgICAgIC0tICBOX0RlbHRhX0NvbnN0cmFpbnQKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRv IERFTFRBCiAgICAgIC0tICBEZWx0YV9FeHByZXNzaW9uIChOb2RlMykKICAgICAgLS0gIFJhbmdl X0NvbnN0cmFpbnQgKE5vZGU0KSAoc2V0IHRvIEVtcHR5IGlmIG5vdCBwcmVzZW50KQoKICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gSi43ICBBdCBDbGF1c2UgLS0KICAgICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBVF9DTEFVU0UgOjo9IGZvciBESVJFQ1RfTkFN RSB1c2UgYXQgRVhQUkVTU0lPTjsKCiAgICAgIC0tICBOb3RlOiB0aGUgcGFyc2Ugcm91dGluZSBm b3IgdGhpcyBjb25zdHJ1Y3QgaXMgbG9jYXRlZCBpbiBQYXItQ2gxMywKICAgICAgLS0gIGFuZCB0 aGUgc2VtYW50aWMgYW5hbHlzaXMgaXMgaW4gU2VtX0NoMTMsIHdoZXJlIGF0IGNsYXVzZSBsb2dp Y2FsbHkKICAgICAgLS0gIGJlbG9uZ3MgaWYgaXQgd2VyZSBub3Qgb2Jzb2xlc2NlbnQuCgogICAg ICAtLSAgTm90ZTogaW4gQWRhIDgzIHRoZSBleHByZXNzaW9uIG11c3QgYmUgYSBzaW1wbGUgZXhw cmVzc2lvbgoKICAgICAgLS0gIEdpZ2kgcmVzdHJpY3Rpb246IFRoaXMgbm9kZSBuZXZlciBhcHBl YXJzLCBpdCBpcyByZXdyaXR0ZW4gYXMgYW4KICAgICAgLS0gIGFkZHJlc3MgYXR0cmlidXRlIGRl ZmluaXRpb24gY2xhdXNlLgoKICAgICAgLS0gIE5fQXRfQ2xhdXNlCiAgICAgIC0tICBTbG9jIHBv aW50cyB0byBGT1IKICAgICAgLS0gIElkZW50aWZpZXIgKE5vZGUxKQogICAgICAtLSAgRXhwcmVz c2lvbiAoTm9kZTMpCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gSi44ICBN b2QgY2xhdXNlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIE1PRF9D TEFVU0UgOjo9IGF0IG1vZCBzdGF0aWNfRVhQUkVTU0lPTjsKCiAgICAgIC0tICBOb3RlOiB0aGUg cGFyc2Ugcm91dGluZSBmb3IgdGhpcyBjb25zdHJ1Y3QgaXMgbG9jYXRlZCBpbiBQYXItQ2gxMywK ICAgICAgLS0gIGFuZCB0aGUgc2VtYW50aWMgYW5hbHlzaXMgaXMgaW4gU2VtX0NoMTMsIHdoZXJl IG1vZCBjbGF1c2UgbG9naWNhbGx5CiAgICAgIC0tICBiZWxvbmdzIGlmIGl0IHdlcmUgbm90IG9i c29sZXNjZW50LgoKICAgICAgLS0gIE5vdGU6IGluIEFkYSA4MywgdGhlIGV4cHJlc3Npb24gbXVz dCBiZSBhIHNpbXBsZSBleHByZXNzaW9uCgogICAgICAtLSAgR2lnaSByZXN0cmljdGlvbjogdGhp cyBub2RlIG5ldmVyIGFwcGVhcnMuIEl0IGlzIHJlcGxhY2VkCiAgICAgIC0tICBieSBhIGNvcnJl c3BvbmRpbmcgQWxpZ25tZW50IGF0dHJpYnV0ZSBkZWZpbml0aW9uIGNsYXVzZS4KCiAgICAgIC0t ICBOb3RlOiBwcmFnbWFzIGNhbiBhcHBlYXIgYmVmb3JlIGFuZCBhZnRlciB0aGUgTU9EX0NMQVVT RSBzaW5jZQogICAgICAtLSAgaXRzIG5hbWUgaGFzICJjbGF1c2UiIGluIGl0LiBUaGlzIGlzIHJh dGhlciBzdHJhbmdlLCBidXQgaXMgcXVpdGUKICAgICAgLS0gIGRlZmluaXRlbHkgc3BlY2lmaWVk LiBUaGUgcHJhZ21hcyBiZWZvcmUgYXJlIGNvbGxlY3RlZCBpbiB0aGUKICAgICAgLS0gIFByYWdt YXNfQmVmb3JlIGZpZWxkIG9mIHRoZSBtb2QgY2xhdXNlIG5vZGUgaXRzZWxmLCBhbmQgcHJhZ21h cwogICAgICAtLSAgYWZ0ZXIgYXJlIHNpbXBseSBzd2FsbG93ZWQgdXAgaW4gdGhlIGxpc3Qgb2Yg Y29tcG9uZW50IGNsYXVzZXMuCgogICAgICAtLSAgTl9Nb2RfQ2xhdXNlCiAgICAgIC0tICBTbG9j IHBvaW50cyB0byBBVAogICAgICAtLSAgRXhwcmVzc2lvbiAoTm9kZTMpCiAgICAgIC0tICBQcmFn bWFzX0JlZm9yZSAoTGlzdDQpIFByYWdtYXMgYmVmb3JlIG1vZCBjbGF1c2UgKE5vX0xpc3QgaWYg bm9uZSkKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNlbWFudGljIE5vZGVzIC0tCiAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlc2Ugc2VtYW50aWMgbm9kZXMgYXJlIHVz ZWQgdG8gaG9sZCBhZGRpdGlvbmFsIHNlbWFudGljIGluZm9ybWF0aW9uLgogICAtLSAgVGhleSBh cmUgaW5zZXJ0ZWQgaW50byB0aGUgdHJlZSBhcyBhIHJlc3VsdCBvZiBzZW1hbnRpYyBwcm9jZXNz aW5nLgogICAtLSAgQWx0aG91Z2ggdGhlcmUgYXJlIG5vIGxlZ2l0aW1hdGUgc291cmNlIHN5bnRh eCBjb25zdHJ1Y3Rpb25zIHRoYXQKICAgLS0gIGNvcnJlc3BvbmQgZGlyZWN0bHkgdG8gdGhlc2Ug bm9kZXMsIHdlIG5lZWQgYSBzb3VyY2Ugc3ludGF4IGZvciB0aGUKICAgLS0gIHJlY29uc3RydWN0 ZWQgdHJlZSBwcmludGVkIGJ5IFNwcmludCwgYW5kIHRoZSBub2RlIGRlc2NyaXB0aW9ucyBoZXJl CiAgIC0tICBzaG93IHRoaXMgc3ludGF4LgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSBDb25kaXRpb25hbCBFeHByZXNzaW9uIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBUaGlzIG5vZGUgaXMgdXNlZCB0byByZXByZXNl bnQgYW4gZXhwcmVzc2lvbiBjb3JyZXNwb25kaW5nIHRvIHRoZQogICAgICAtLSAgQyBjb25zdHJ1 Y3QgKGNvbmRpdGlvbiA/IHRoZW4tZXhwcmVzc2lvbiA6IGVsc2VfZXhwcmVzc2lvbiksIHdoZXJl CiAgICAgIC0tICBFeHByZXNzaW9ucyBpcyBhIHRocmVlIGVsZW1lbnQgbGlzdCwgd2hvc2UgZmly c3QgZXhwcmVzc2lvbiBpcyB0aGUKICAgICAgLS0gIGNvbmRpdGlvbiwgYW5kIHdob3NlIHNlY29u ZCBhbmQgdGhpcmQgZXhwcmVzc2lvbnMgYXJlIHRoZSB0aGVuIGFuZAogICAgICAtLSAgZWxzZSBl eHByZXNzaW9ucyByZXNwZWN0aXZlbHkuCgogICAgICAtLSAgTm90ZTogdGhlIFRoZW5fQWN0aW9u cyBhbmQgRWxzZV9BY3Rpb25zIGZpZWxkcyBhcmUgYWx3YXlzIHNldCB0bwogICAgICAtLSAgTm9f TGlzdCBpbiB0aGUgdHJlZSBwYXNzZWQgdG8gR2lnaS4gVGhlc2UgZmllbGRzIGFyZSB1c2VkIG9u bHkKICAgICAgLS0gIGZvciB0ZW1wb3JhcnkgcHJvY2Vzc2luZyBwdXJwb3NlcyBpbiB0aGUgZXhw YW5kZXIuCgogICAgICAtLSAgU3ByaW50IHN5bnRheDogKGlmIGV4cHIgdGhlbiBleHByIGVsc2Ug ZXhwcikKCiAgICAgIC0tICBOX0NvbmRpdGlvbmFsX0V4cHJlc3Npb24KICAgICAgLS0gIFNsb2Mg cG9pbnRzIHRvIHJlbGF0ZWQgbm9kZQogICAgICAtLSAgRXhwcmVzc2lvbnMgKExpc3QxKQogICAg ICAtLSAgVGhlbl9BY3Rpb25zIChMaXN0Mi1TZW0pCiAgICAgIC0tICBFbHNlX0FjdGlvbnMgKExp c3QzLVNlbSkKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgogICAgICAtLSAg Tm90ZTogaW4gdGhlIGNhc2Ugd2hlcmUgYSBkZWJ1ZyBzb3VyY2UgZmlsZSBpcyBnZW5lcmF0ZWQs IHRoZSBTbG9jCiAgICAgIC0tICBmb3IgdGhpcyBub2RlIHBvaW50cyB0byB0aGUgSUYga2V5d29y ZCBpbiB0aGUgU3ByaW50IGZpbGUgb3V0cHV0LgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAgICAtLSBFeHBhbmRlZF9OYW1lIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAg IC0tICBUaGUgTl9FeHBhbmRlZF9OYW1lIG5vZGUgaXMgdXNlZCB0byByZXByZXNlbnQgYSBzZWxl Y3RlZCBjb21wb25lbnQKICAgICAgLS0gIG5hbWUgdGhhdCBoYXMgYmVlbiByZXNvbHZlZCB0byBh biBleHBhbmRlZCBuYW1lLiBUaGUgc2VtYW50aWMgcGhhc2UKICAgICAgLS0gIHJlcGxhY2VzIE5f U2VsZWN0ZWRfQ29tcG9uZW50IG5vZGVzIHRoYXQgcmVwcmVzZW50IG5hbWVzIGJ5IHRoZSB1c2UK ICAgICAgLS0gIG9mIHRoaXMgbm9kZSwgbGVhdmluZyB0aGUgTl9TZWxlY3RlZF9Db21wb25lbnQg bm9kZSB1c2VkIG9ubHkgd2hlbgogICAgICAtLSAgdGhlIHByZWZpeCBpcyBhIHJlY29yZCBvciBw cm90ZWN0ZWQgdHlwZS4KCiAgICAgIC0tICBUaGUgZmllbGRzIG9mIHRoZSBOX0V4cGFuZGVkX05h bWUgbm9kZSBhcmUgbGF5ZWQgb3V0IGlkZW50aWNhbGx5CiAgICAgIC0tICB0byB0aG9zZSBvZiB0 aGUgTl9TZWxlY3RlZF9Db21wb25lbnQgbm9kZSwgYWxsb3dpbmcgY29udmVyc2lvbiBvZgogICAg ICAtLSAgYW4gZXhwYW5kZWQgbmFtZSBub2RlIHRvIGEgc2VsZWN0ZWQgY29tcG9uZW50IG5vZGUg dG8gYmUgZG9uZQogICAgICAtLSAgZWFzaWx5LCBzZWUgU2luZm8uQ04uQ2hhbmdlX1NlbGVjdGVk X0NvbXBvbmVudF9Ub19FeHBhbmRlZF9OYW1lLgoKICAgICAgLS0gIFRoZXJlIGlzIG5vIHNwZWNp YWwgc3ByaW50IHN5bnRheCBmb3IgYW4gZXhwYW5kZWQgbmFtZS4KCiAgICAgIC0tICBOX0V4cGFu ZGVkX05hbWUKICAgICAgLS0gIFNsb2MgcG9pbnRzIHRvIHRoZSBwZXJpb2QKICAgICAgLS0gIENo YXJzIChOYW1lMSkgY29weSBvZiBDaGFycyBmaWVsZCBvZiBzZWxlY3RvciBuYW1lCiAgICAgIC0t ICBQcmVmaXggKE5vZGUzKQogICAgICAtLSAgU2VsZWN0b3JfTmFtZSAoTm9kZTIpCiAgICAgIC0t ICBFbnRpdHkgKE5vZGU0LVNlbSkKICAgICAgLS0gIEFzc29jaWF0ZWRfTm9kZSAoTm9kZTQtU2Vt KQogICAgICAtLSAgUmVkdW5kYW50X1VzZSAoRmxhZzEzLVNlbSkKICAgICAgLS0gIEhhc19Qcml2 YXRlX1ZpZXcgKEZsYWcxMS1TZW0pIHNldCBpbiBnZW5lcmljIHVuaXRzLgogICAgICAtLSAgcGx1 cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIEZyZWUgU3RhdGVtZW50IC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAt LSAgVGhlIE5fRnJlZV9TdGF0ZW1lbnQgbm9kZSBpcyBnZW5lcmF0ZWQgYXMgYSByZXN1bHQgb2Yg YSBjYWxsIHRvIGFuCiAgICAgIC0tICBpbnN0YW50aWF0aW9uIG9mIFVuY2hlY2tlZF9EZWFsbG9j YXRpb24uIFRoZSBpbnN0YW50aWF0aW9uIG9mIHRoaXMKICAgICAgLS0gIGdlbmVyaWMgaXMgaGFu ZGxlZCBzcGVjaWFsbHkgYW5kIGdlbmVyYXRlcyB0aGlzIG5vZGUgZGlyZWN0bHkuCgogICAgICAt LSAgU3ByaW50IHN5bnRheDogZnJlZSBleHByZXNzaW9uCgogICAgICAtLSAgTl9GcmVlX1N0YXRl bWVudAogICAgICAtLSAgU2xvYyBpcyBjb3BpZWQgZnJvbSB0aGUgdW5jaGVja2VkIGRlYWxsb2Nh dGlvbiBjYWxsCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykgYXJndW1lbnQgdG8gdW5jaGVj a2VkIGRlYWxsb2NhdGlvbiBjYWxsCiAgICAgIC0tICBTdG9yYWdlX1Bvb2wgKE5vZGUxLVNlbSkK ICAgICAgLS0gIFByb2NlZHVyZV9Ub19DYWxsIChOb2RlNC1TZW0pCgogICAgICAtLSAgTm90ZTog aW4gdGhlIGNhc2Ugd2hlcmUgYSBkZWJ1ZyBzb3VyY2UgZmlsZSBpcyBnZW5lcmF0ZWQsIHRoZSBT bG9jCiAgICAgIC0tICBmb3IgdGhpcyBub2RlIHBvaW50cyB0byB0aGUgRlJFRSBrZXl3b3JkIGlu IHRoZSBTcHJpbnQgZmlsZSBvdXRwdXQuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAg IC0tIEZyZWV6ZSBFbnRpdHkgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0g IFRoaXMgbm9kZSBtYXJrcyB0aGUgcG9pbnQgaW4gYSBkZWNsYXJhdGl2ZSBwYXJ0IGF0IHdoaWNo IGFuIGVudGl0eQogICAgICAtLSAgZGVjbGFyZWQgdGhlcmVpbiBiZWNvbWVzIGZyb3plbi4gVGhl IGV4cGFuZGVyIHBsYWNlcyBpbml0aWFsaXphdGlvbgogICAgICAtLSAgcHJvY2VkdXJlcyBmb3Ig dHlwZXMgYXQgdGhvc2UgcG9pbnRzLiBHaWdpIHVzZXMgdGhlIGZyZWV6aW5nIHBvaW50CiAgICAg IC0tICB0byBlbGFib3JhdGUgZW50aXRpZXMgdGhhdCBtYXkgZGVwZW5kIG9uIHByZXZpb3VzIHBy aXZhdGUgdHlwZXMuCgogICAgICAtLSAgU2VlIHRoZSBzZWN0aW9uIGluIEVpbmZvICJEZWxheWVk IEZyZWV6aW5nIGFuZCBFbGFib3JhdGlvbiIgZm9yCiAgICAgIC0tICBhIGZ1bGwgZGVzY3JpcHRp b24gb2YgdGhlIHVzZSBvZiB0aGlzIG5vZGUuCgogICAgICAtLSAgVGhlIEVudGl0eSBmaWVsZCBw b2ludHMgYmFjayB0byB0aGUgZW50aXR5IGZvciB0aGUgdHlwZSAod2hvc2UKICAgICAgLS0gIEZy ZWV6ZV9Ob2RlIGZpZWxkIHBvaW50cyBiYWNrIHRvIHRoaXMgZnJlZXplIG5vZGUpLgoKICAgICAg LS0gIFRoZSBBY3Rpb25zIGZpZWxkIGNvbnRhaW5zIGEgbGlzdCBvZiBkZWNsYXJhdGlvbnMgYW5k IHN0YXRlbWVudHMKICAgICAgLS0gIGdlbmVyYXRlZCBieSB0aGUgZXhwYW5kZXIgd2hpY2ggYXJl IGFzc29jaWF0ZWQgd2l0aCB0aGUgZnJlZXplCiAgICAgIC0tICBub2RlLCBhbmQgYXJlIGVsYWJv cmF0ZWQgYXMgdGhvdWdoIHRoZSBmcmVlemUgbm9kZSB3ZXJlIHJlcGxhY2VkCiAgICAgIC0tICBi eSB0aGlzIHNlcXVlbmNlIG9mIGFjdGlvbnMuCgogICAgICAtLSAgTm90ZTogdGhlIFNsb2MgZmll bGQgaW4gdGhlIGZyZWV6ZSBub2RlIHJlZmVyZW5jZXMgYSBjb25zdHJ1Y3QKICAgICAgLS0gIGFz c29jaWF0ZWQgd2l0aCB0aGUgZnJlZXppbmcgcG9pbnQuIFRoaXMgaXMgdXNlZCBmb3IgcG9zdGlu ZwogICAgICAtLSAgbWVzc2FnZXMgaW4gc29tZSBlcnJvci93YXJuaW5nIHNpdHVhdGlvbnMsIGUu Zy4gdGhlIGNhc2Ugd2hlcmUKICAgICAgLS0gIGEgcHJpbWl0aXZlIG9wZXJhdGlvbiBvZiBhIHRh Z2dlZCB0eXBlIGlzIGRlY2xhcmVkIHRvbyBsYXRlLgoKICAgICAgLS0gIFNwcmludCBzeW50YXg6 IGZyZWV6ZSBlbnRpdHktbmFtZSBbCiAgICAgIC0tICAgICAgICAgICAgICAgICAgIGZyZWV6ZSBh Y3Rpb25zCiAgICAgIC0tICAgICAgICAgICAgICAgICBdCgogICAgICAtLSAgTl9GcmVlemVfRW50 aXR5CiAgICAgIC0tICBTbG9jIHBvaW50cyBuZWFyIGZyZWV6ZSBwb2ludCAoc2VlIGFib3ZlIHNw ZWNpYWwgbm90ZSkKICAgICAgLS0gIEVudGl0eSAoTm9kZTQtU2VtKQogICAgICAtLSAgQWNjZXNz X1R5cGVzX1RvX1Byb2Nlc3MgKEVsaXN0Mi1TZW0pIChzZXQgdG8gTm9fRWxpc3QgaWYgbm9uZSkK ICAgICAgLS0gIFRTU19FbGlzdCAoRWxpc3QzLVNlbSkgKHNldCB0byBOb19FbGlzdCBpZiBubyBh c3NvY2lhdGVkIFRTUydzKQogICAgICAtLSAgQWN0aW9ucyAoTGlzdDEpIChzZXQgdG8gTm9fTGlz dCBpZiBubyBmcmVlemUgYWN0aW9ucykKICAgICAgLS0gIEZpcnN0X1N1YnR5cGVfTGluayAoTm9k ZTUtU2VtKSAoc2V0IHRvIEVtcHR5IGlmIG5vIGxpbmspCgogICAgICAtLSAgVGhlIEFjdGlvbnMg ZmllbGQgaG9sZHMgYWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIGZyZWV6ZS4gVGhlc2UKICAg ICAgLS0gIGFjdGlvbnMgYXJlIGVsYWJvcmF0ZWQgYXQgdGhlIHBvaW50IHdoZXJlIHRoZSB0eXBl IGlzIGZyb3plbi4KCiAgICAgIC0tICBOb3RlOiBpbiB0aGUgY2FzZSB3aGVyZSBhIGRlYnVnIHNv dXJjZSBmaWxlIGlzIGdlbmVyYXRlZCwgdGhlIFNsb2MKICAgICAgLS0gIGZvciB0aGlzIG5vZGUg cG9pbnRzIHRvIHRoZSBGUkVFWkUga2V5d29yZCBpbiB0aGUgU3ByaW50IGZpbGUgb3V0cHV0LgoK ICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gSW1wbGljaXQg TGFiZWwgRGVjbGFyYXRpb24gLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCiAgICAgIC0tICBBbiBpbXBsaWNpdCBsYWJlbCBkZWNsYXJhdGlvbiBpcyBjcmVhdGVkIGZv ciBldmVyeSBvY2N1cnJlbmNlIG9mIGEKICAgICAgLS0gIGxhYmVsIG9uIGEgc3RhdGVtZW50IG9y IGEgbGFiZWwgb24gYSBibG9jayBvciBsb29wLiBJdCBpcyBjaGFpbmVkCiAgICAgIC0tICBpbiB0 aGUgZGVjbGFyYXRpb25zIG9mIHRoZSBpbm5lcm1vc3QgZW5jbG9zaW5nIGJsb2NrIGFzIHNwZWNp ZmllZAogICAgICAtLSAgaW4gUk0gc2VjdGlvbiA1LjEgKDMpLgoKICAgICAgLS0gIFRoZSBEZWZp bmluZ19JZGVudGlmaWVyIGlzIHRoZSBhY3R1YWwgaWRlbnRpZmllciBmb3IgdGhlCiAgICAgIC0t ICBzdGF0ZW1lbnQgaWRlbnRpZmllci4gTm90ZSB0aGF0IHRoZSBvY2N1cnJlbmNlIG9mIHRoZSBs YWJlbAogICAgICAtLSAgaXMgYSByZWZlcmVuY2UsIE5PVCB0aGUgZGVmaW5pbmcgb2NjdXJyZW5j ZS4gVGhlIGRlZmluaW5nCiAgICAgIC0tICBvY2N1cnJlbmNlIG9jY3VycyBhdCB0aGUgaGVhZCBv ZiB0aGUgaW5uZXJtb3N0IGVuY2xvc2luZwogICAgICAtLSAgYmxvY2ssIGFuZCBpcyByZXByZXNl bnRlZCBieSB0aGlzIG5vZGUuCgogICAgICAtLSAgTm90ZTogZnJvbSB0aGUgZ3JhbW1hciwgdGhp cyBtaWdodCBiZXR0ZXIgYmUgY2FsbGVkIGFuIGltcGxpY2l0CiAgICAgIC0tICBzdGF0ZW1lbnQg aWRlbnRpZmllciBkZWNsYXJhdGlvbiwgYnV0IHRoZSB0ZXJtIHdlIGNob29zZSBzZWVtcwogICAg ICAtLSAgZnJpZW5kbGllciwgc2luY2UgYXQgbGVhc3QgaW5mb3JtYWxseSBzdGF0ZW1lbnQgaWRl bnRpZmllcnMgYXJlCiAgICAgIC0tICBjYWxsZWQgbGFiZWxzIGluIGJvdGggY2FzZXMgKGkuZS4g d2hlbiB1c2VkIGluIGxhYmVscywgYW5kIHdoZW4KICAgICAgLS0gIHVzZWQgYXMgdGhlIGlkZW50 aWZpZXJzIG9mIGJsb2NrcyBhbmQgbG9vcHMpLgoKICAgICAgLS0gIE5vdGU6IGFsdGhvdWdoIHRo aXMgaXMgbG9naWNhbGx5IGEgc2VtYW50aWMgbm9kZSwgc2luY2UgaXQgZG9lcwogICAgICAtLSAg bm90IGNvcnJlc3BvbmQgZGlyZWN0bHkgdG8gYSBzb3VyY2Ugc3ludGF4IGNvbnN0cnVjdGlvbiwg dGhlc2UKICAgICAgLS0gIG5vZGVzIGFyZSBhY3R1YWxseSBjcmVhdGVkIGJ5IHRoZSBwYXJzZXIg aW4gYSBwb3N0IHBhc3MgZG9uZSBqdXN0CiAgICAgIC0tICBhZnRlciBwYXJzaW5nIGlzIGNvbXBs ZXRlLCBiZWZvcmUgc2VtYW50aWMgYW5hbHlzaXMgaXMgc3RhcnRlZCAoc2VlCiAgICAgIC0tICB0 aGUgUGFyLkxhYmwgc3VidW5pdCBpbiBmaWxlIHBhci1sYWJsLmFkYikuCgogICAgICAtLSAgU3By aW50IHN5bnRheDogbGFiZWxuYW1lIDogbGFiZWw7CgogICAgICAtLSAgTl9JbXBsaWNpdF9MYWJl bF9EZWNsYXJhdGlvbgogICAgICAtLSAgU2xvYyBwb2ludHMgdG8gdGhlIDw8IG9mIHRoZSBsYWJl bAogICAgICAtLSAgRGVmaW5pbmdfSWRlbnRpZmllciAoTm9kZTEpCiAgICAgIC0tICBMYWJlbF9D b25zdHJ1Y3QgKE5vZGUyLVNlbSkKCiAgICAgIC0tICBOb3RlOiBpbiB0aGUgY2FzZSB3aGVyZSBh IGRlYnVnIHNvdXJjZSBmaWxlIGlzIGdlbmVyYXRlZCwgdGhlIFNsb2MKICAgICAgLS0gIGZvciB0 aGlzIG5vZGUgcG9pbnRzIHRvIHRoZSBsYWJlbCBuYW1lIGluIHRoZSBnZW5lcmF0ZWQgZGVjbGFy YXRpb24uCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gSXR5cGVfUmVmZXJl bmNlIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFRoaXMgbm9kZSBp cyB1c2VkIHRvIGNyZWF0ZSBhIHJlZmVyZW5jZSB0byBhbiBJdHlwZS4gVGhlIG9ubHkKICAgICAg LS0gIHB1cnBvc2UgaXMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIEl0eXBlIGlzIGRlZmluZWQgaWYg dGhpcyBpcyB0aGUKICAgICAgLS0gIGZpcnN0IHJlZmVyZW5jZS4KCiAgICAgIC0tICBBIHR5cGlj YWwgdXNlIG9mIHRoaXMgbm9kZSBpcyB3aGVuIGFuIEl0eXBlIGlzIHRvIGJlIHJlZmVyZW5jZWQg aW4KICAgICAgLS0gIHR3byBicmFuY2hlcyBvZiBhbiBpZiBzdGF0ZW1lbnQuIEluIHRoaXMgY2Fz ZSBpdCBpcyBpbXBvcnRhbnQgdGhhdAogICAgICAtLSAgdGhlIGZpcnN0IHVzZSBvZiB0aGUgSXR5 cGUgbm90IGJlIGluc2lkZSB0aGUgY29uZGl0aW9uYWwsIHNpbmNlCiAgICAgIC0tICB0aGVuIGl0 IG1pZ2h0IG5vdCBiZSBkZWZpbmVkIGlmIHRoZSB3cm9uZyBicmFuY2ggb2YgdGhlIGlmIGlzCiAg ICAgIC0tICB0YWtlbiBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgZGVmaW5pdGlvbiBnZW5lcmF0ZXMg ZWxhYm9yYXRpb24gY29kZS4KCiAgICAgIC0tICBUaGUgSXR5cGUgZmllbGQgcG9pbnRzIHRvIHRo ZSByZWZlcmVuY2VkIEl0eXBlCgogICAgICAtLSAgc3ByaW50IHN5bnRheDogcmVmZXJlbmNlIGl0 eXBlLW5hbWUKCiAgICAgIC0tICBOX0l0eXBlX1JlZmVyZW5jZQogICAgICAtLSAgU2xvYyBwb2lu dHMgdG8gdGhlIG5vZGUgZ2VuZXJhdGluZyB0aGUgcmVmZXJlbmNlCiAgICAgIC0tICBJdHlwZSAo Tm9kZTEtU2VtKQoKICAgICAgLS0gIE5vdGU6IGluIHRoZSBjYXNlIHdoZXJlIGEgZGVidWcgc291 cmNlIGZpbGUgaXMgZ2VuZXJhdGVkLCB0aGUgU2xvYwogICAgICAtLSAgZm9yIHRoaXMgbm9kZSBw b2ludHMgdG8gdGhlIFJFRkVSRU5DRSBrZXl3b3JkIGluIHRoZSBmaWxlIG91dHB1dC4KCiAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBSYWlzZV94eHhfRXJyb3IgLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgT25lIG9mIHRoZXNlIG5vZGVzIGlzIGNy ZWF0ZWQgZHVyaW5nIHNlbWFudGljIGFuYWx5c2lzIHRvIHJlcGxhY2UKICAgICAgLS0gIGEgbm9k ZSBmb3IgYW4gZXhwcmVzc2lvbiB0aGF0IGlzIGRldGVybWluZWQgdG8gZGVmaW5pdGVseSByYWlz ZQogICAgICAtLSAgdGhlIGNvcnJlc3BvbmRpbmcgZXhjZXB0aW9uLgoKICAgICAgLS0gIFRoZSBO X1JhaXNlX3h4eF9FcnJvciBub2RlIG1heSBhbHNvIHN0YW5kIGFsb25lIGluIHBsYWNlCiAgICAg IC0tICBvZiBhIGRlY2xhcmF0aW9uIG9yIHN0YXRlbWVudCwgaW4gd2hpY2ggY2FzZSBpdCBzaW1w bHkgY2F1c2VzCiAgICAgIC0tICB0aGUgZXhjZXB0aW9uIHRvIGJlIHJhaXNlZCAoaS5lLiBpdCBp cyBlcXVpdmFsZW50IHRvIGEgcmFpc2UKICAgICAgLS0gIHN0YXRlbWVudCB0aGF0IHJhaXNlcyB0 aGUgY29ycmVzcG9uZGluZyBleGNlcHRpb24pLiBUaGlzIHVzZQogICAgICAtLSAgaXMgZGlzdGlu Z3Vpc2hlZCBieSB0aGUgZmFjdCB0aGF0IHRoZSBFdHlwZSBpbiB0aGlzIGNhc2UgaXMKICAgICAg LS0gIFN0YW5kYXJkX1ZvaWRfVHlwZSwgSW4gdGhlIHN1YmV4cHJzc2lvbiBjYXNlLCB0aGUgRXR5 cGUgaXMgdGhlCiAgICAgIC0tICBzYW1lIGFzIHRoZSB0eXBlIG9mIHRoZSBzdWJleHByZXNzaW9u IHdoaWNoIGl0IHJlcGxhY2VzLgoKICAgICAgLS0gIElmIENvbmRpdGlvbiBpcyBlbXB0eSwgdGhl biB0aGUgcmFpc2UgaXMgdW5jb25kaXRpb25hbC4gSWYgdGhlCiAgICAgIC0tICBDb25kaXRpb24g ZmllbGQgaXMgbm9uLWVtcHR5LCBpdCBpcyBhIGJvb2xlYW4gZXhwcmVzc2lvbiB3aGljaAogICAg ICAtLSAgaXMgZmlyc3QgZXZhbHVhdGVkLCBhbmQgdGhlIGV4Y2VwdGlvbiBpcyByYWlzZWQgb25s eSBpZiB0aGUKICAgICAgLS0gIHZhbHVlIG9mIHRoZSBleHByZXNzaW9uIGlzIFRydWUuIEluIHRo ZSB1bmNvbmRpdGlvbmFsIGNhc2UsIHRoZQogICAgICAtLSAgY3JlYXRpb24gb2YgdGhpcyBub2Rl IGlzIHVzdWFsbHkgYWNjb21wYW5pZWQgYnkgYSB3YXJuaW5nIG1lc3NhZ2UKICAgICAgLS0gIGVy cm9yLiBUaGUgY3JlYXRpb24gb2YgdGhpcyBub2RlIHdpbGwgdXN1YWxseSBiZSBhY2NvbXBhbmll ZCBieSBhCiAgICAgIC0tICBtZXNzYWdlICh1bmxlc3MgaXQgYXBwZWFycyB3aXRoaW4gdGhlIHJp Z2h0IG9wZXJhbmQgb2YgYSBzaG9ydAogICAgICAtLSAgY2lyY3VpdCBmb3JtIHdob3NlIGxlZnQg YXJndW1lbnQgaXMgc3RhdGljIGFuZCBkZWNpc2l2ZWx5CiAgICAgIC0tICBlbGltaW5hdGVzIGVs YWJvcmF0aW9uIG9mIHRoZSByYWlzZSBvcGVyYXRpb24uCgogICAgICAtLSAgR2lnaSByZXN0cmlj dGlvbjogVGhpcyBleHBhbmRlciBlbnN1cmVzIHRoYXQgdGhlIHR5cGUgb2YgdGhlCiAgICAgIC0t ICBDb25kaXRpb24gZmllbGQgaXMgYWx3YXlzIFN0YW5kYXJkLkJvb2xlYW4sIGV2ZW4gaWYgdGhl IHR5cGUKICAgICAgLS0gIGluIHRoZSBzb3VyY2UgaXMgc29tZSBub24tc3RhbmRhcmQgYm9vbGVh biB0eXBlLgoKICAgICAgLS0gIFNwcmludCBzeW50YXg6IFt4eHhfZXJyb3JdCiAgICAgIC0tICAg ICAgICAgICAgIG9yOiBbeHh4X2Vycm9yIHdoZW4gY29uZGl0aW9uXQoKICAgICAgLS0gIE5fUmFp c2VfQ29uc3RyYWludF9FcnJvcgogICAgICAtLSAgU2xvYyByZWZlcmVuY2VzIHJlbGF0ZWQgY29u c3RydWN0CiAgICAgIC0tICBDb25kaXRpb24gKE5vZGUxKSAoc2V0IHRvIEVtcHR5IGlmIG5vIGNv bmRpdGlvbikKICAgICAgLS0gIFNsb2MgaXMgY29waWVkIGZyb20gdGhlIGV4cHJlc3Npb24gZ2Vu ZXJhdGluZyB0aGUgZXhjZXB0aW9uCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lv bgoKICAgICAgLS0gIE5fUmFpc2VfUHJvZ3JhbV9FcnJvcgogICAgICAtLSAgU2xvYyByZWZlcmVu Y2VzIHJlbGF0ZWQgY29uc3RydWN0CiAgICAgIC0tICBDb25kaXRpb24gKE5vZGUxKSAoc2V0IHRv IEVtcHR5IGlmIG5vIGNvbmRpdGlvbikKICAgICAgLS0gIFNsb2MgaXMgY29waWVkIGZyb20gdGhl IGNvbnN0cnVjdCBnZW5lcmF0aW5nIHRoZSBleGNlcHRpb24KICAgICAgLS0gIHBsdXMgZmllbGRz IGZvciBleHByZXNzaW9uCgogICAgICAtLSAgTl9SYWlzZV9TdG9yYWdlX0Vycm9yCiAgICAgIC0t ICBTbG9jIHJlZmVyZW5jZXMgcmVsYXRlZCBjb25zdHJ1Y3QKICAgICAgLS0gIENvbmRpdGlvbiAo Tm9kZTEpIChzZXQgdG8gRW1wdHkgaWYgbm8gY29uZGl0aW9uKQogICAgICAtLSAgU2xvYyBpcyBj b3BpZWQgZnJvbSB0aGUgY29uc3RydWN0IGdlbmVyYXRpbmcgdGhlIGV4Y2VwdGlvbgogICAgICAt LSAgcGx1cyBmaWVsZHMgZm9yIGV4cHJlc3Npb24KCiAgICAgIC0tICBOb3RlOiBpbiB0aGUgY2Fz ZSB3aGVyZSBhIGRlYnVnIHNvdXJjZSBmaWxlIGlzIGdlbmVyYXRlZCwgdGhlIFNsb2MKICAgICAg LS0gIGZvciB0aGlzIG5vZGUgcG9pbnRzIHRvIHRoZSBsZWZ0IGJyYWNrZXQgaW4gdGhlIFNwcmlu dCBmaWxlIG91dHB1dC4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBSZWZlcmVuY2Ug LS0KICAgICAgLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgRm9yIGEgbnVtYmVyIG9mIHB1cnBv c2VzLCB3ZSBuZWVkIHRvIGNvbnN0cnVjdCByZWZlcmVuY2VzIHRvIG9iamVjdHMuCiAgICAgIC0t ICBUaGVzZSByZWZlcmVuY2VzIGFyZSBzdWJzZXF1ZW50bHkgdHJlYXRlZCBhcyBub3JtYWwgYWNj ZXNzIHZhbHVlcy4KICAgICAgLS0gIEFuIGV4YW1wbGUgaXMgdGhlIGNvbnN0cnVjdGlvbiBvZiB0 aGUgcGFyYW1ldGVyIGJsb2NrIHBhc3NlZCB0byBhCiAgICAgIC0tICB0YXNrIGVudHJ5LiBUaGUg Tl9SZWZlcmVuY2Ugbm9kZSBpcyBwcm92aWRlZCBmb3IgdGhpcyBwdXJwb3NlLiBJdCBpcwogICAg ICAtLSAgc2ltaWxhciBpbiBlZmZlY3QgdG8gdGhlIHVzZSBvZiB0aGUgVW5yZXN0cmljdGVkX0Fj Y2VzcyBhdHRyaWJ1dGUsCiAgICAgIC0tICBhbmQgbGlrZSBVbnJlc3RyaWN0ZWRfQWNjZXNzIGNh biBiZSBhcHBsaWVkIHRvIG9iamVjdHMgd2hpY2ggd291bGQKICAgICAgLS0gIG5vdCBiZSB2YWxp ZCBwcmVmaXhlcyBmb3IgdGhlIFVuY2hlY2tlZF9BY2Nlc3MgYXR0cmlidXRlIChlLmcuCiAgICAg IC0tICBvYmplY3RzIHdoaWNoIGFyZSBub3QgYWxpYXNlZCwgYW5kIHNsaWNlcykuIEluIGFkZGl0 aW9uIGl0IGNhbiBiZQogICAgICAtLSAgYXBwbGllZCB0byBjb21wb3NpdGUgdHlwZSB2YWx1ZXMg YXMgd2VsbCBhcyBvYmplY3RzLCBpbmNsdWRpbmcgc3RyaW5nCiAgICAgIC0tICB2YWx1ZXMgYW5k IGFnZ3JlZ2F0ZXMuCgogICAgICAtLSAgTm90ZTogd2UgdXNlIHRoZSBQcmVmaXggZmllbGQgZm9y IHRoaXMgZXhwcmVzc2lvbiBzbyB0aGF0IHRoZQogICAgICAtLSAgcmVzdWx0aW5nIG5vZGUgY2Fu IGJlIHRyZWF0ZWQgdXNpbmcgY29tbW9uIGNvZGUgd2l0aCB0aGUgYXR0cmlidXRlCiAgICAgIC0t ICBub2RlcyBmb3IgdGhlICdBY2Nlc3MgYW5kIHJlbGF0ZWQgYXR0cmlidXRlcy4gTG9naWNhbGx5 IGl0IHdvdWxkIG1ha2UKICAgICAgLS0gIG1vcmUgc2Vuc2UgdG8gY2FsbCBpdCBhbiBFeHByZXNz aW9uIGZpZWxkLCBidXQgdGhlbiB3ZSB3b3VsZCBoYXZlIHRvCiAgICAgIC0tICBzcGVjaWFsIGNh c2UgdGhlIHRyZWF0bWVudCBvZiB0aGUgTl9SZWZlcmVuY2Ugbm9kZS4KCiAgICAgIC0tICBTcHJp bnQgc3ludGF4OiBwcmVmaXgncmVmZXJlbmNlCgogICAgICAtLSAgTl9SZWZlcmVuY2UKICAgICAg LS0gIFNsb2MgaXMgY29waWVkIGZyb20gdGhlIGV4cHJlc3Npb24KICAgICAgLS0gIFByZWZpeCAo Tm9kZTMpCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAgICAgLS0gIE5v dGU6IGluIHRoZSBjYXNlIHdoZXJlIGEgZGVidWcgc291cmNlIGZpbGUgaXMgZ2VuZXJhdGVkLCB0 aGUgU2xvYwogICAgICAtLSAgZm9yIHRoaXMgbm9kZSBwb2ludHMgdG8gdGhlIHF1b3RlIGluIHRo ZSBTcHJpbnQgZmlsZSBvdXRwdXQuCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAg LS0gU3VicHJvZ3JhbV9JbmZvIC0tCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAg LS0gIFRoaXMgbm9kZSBnZW5lcmF0ZXMgdGhlIGFwcHJvcHJpYXRlIFN1YnByb2dyYW1fSW5mbyB2 YWx1ZSBmb3IgYQogICAgICAtLSAgZ2l2ZW4gcHJvY2VkdXJlLiBTZWUgQWRhLkV4Y2VwdGlvbnMg Zm9yIGZ1cnRoZXIgZGV0YWlscwoKICAgICAgLS0gIFNwcmludCBzeW50YXg6IHN1YnByb2cnc3Vi cHJvZ3JhbV9pbmZvCgogICAgICAtLSAgTl9TdWJwcm9ncmFtX0luZm8KICAgICAgLS0gIFNsb2Mg cG9pbnRzIHRvIHRoZSBlbnRpdHkgZm9yIHRoZSBwcm9jZWR1cmUKICAgICAgLS0gIElkZW50aWZp ZXIgKE5vZGUxKSBpZGVudGlmaWVyIHJlZmVyZW5jaW5nIHRoZSBwcm9jZWR1cmUKICAgICAgLS0g IEV0eXBlIChOb2RlNS1TZW0pIHR5cGUgKGFsd2F5cyBzZXQgdG8gQWRhLkV4Y2VwdGlvbnMuQ29k ZV9Mb2MKCiAgICAgIC0tICBOb3RlOiBpbiB0aGUgY2FzZSB3aGVyZSBhIGRlYnVnIHNvdXJjZSBm aWxlIGlzIGdlbmVyYXRlZCwgdGhlIFNsb2MKICAgICAgLS0gIGZvciB0aGlzIG5vZGUgcG9pbnRz IHRvIHRoZSBxdW90ZSBpbiB0aGUgU3ByaW50IGZpbGUgb3V0cHV0LgoKICAgICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gVW5jaGVja2VkIEV4cHJlc3Npb24gLS0KICAgICAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBbiB1bmNoZWNrZWQgZXhwcmVz c2lvbiBpcyBvbmUgdGhhdCBtdXN0IGJlIGFuYWx5emVkIGFuZCByZXNvbHZlZAogICAgICAtLSAg d2l0aCBhbGwgY2hlY2tzIG9mZiwgcmVnYXJkbGVzcyBvZiB0aGUgY3VycmVudCBzZXR0aW5nIG9m IHNjb3BlCiAgICAgIC0tICBzdXBwcmVzcyBmbGFncy4KCiAgICAgIC0tICBTcHJpbnQgc3ludGF4 OiBgKGV4cHJlc3Npb24pLgoKICAgICAgLS0gIE5vdGU6IHRoaXMgbm9kZSBpcyBhbHdheXMgcmVt b3ZlZCBmcm9tIHRoZSB0cmVlIChhbmQgcmVwbGFjZWQgYnkKICAgICAgLS0gIGl0cyBjb25zdGl0 dWVudCBleHByZXNzaW9uKSBvbiBjb21wbGV0aW9uIG9mIGFuYWx5c2lzLCBzbyBpdCBvbmx5CiAg ICAgIC0tICBhcHBlYXJzIGluIGludGVybWVkaWF0ZSB0cmVlcywgYW5kIHdpbGwgbmV2ZXIgYmUg c2VlbiBieSBHaWdpLgoKICAgICAgLS0gIE5fVW5jaGVja2VkX0V4cHJlc3Npb24KICAgICAgLS0g IFNsb2MgaXMgYSBjb3B5IG9mIHRoZSBTbG9jIG9mIHRoZSBleHByZXNzaW9uCiAgICAgIC0tICBF eHByZXNzaW9uIChOb2RlMykKICAgICAgLS0gIHBsdXMgZmllbGRzIGZvciBleHByZXNzaW9uCgog ICAgICAtLSAgTm90ZTogaW4gdGhlIGNhc2Ugd2hlcmUgYSBkZWJ1ZyBzb3VyY2UgZmlsZSBpcyBn ZW5lcmF0ZWQsIHRoZSBTbG9jCiAgICAgIC0tICBmb3IgdGhpcyBub2RlIHBvaW50cyB0byB0aGUg YmFjayBxdW90ZSBpbiB0aGUgU3ByaW50IGZpbGUgb3V0cHV0LgoKICAgICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBVbmNoZWNrZWQgVHlwZSBDb252ZXJzaW9uIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIC0tICBBbiB1bmNo ZWNrZWQgdHlwZSBjb252ZXJzaW9uIG5vZGUgcmVwcmVzZW50cyB0aGUgc2VtYW50aWMgYWN0aW9u CiAgICAgIC0tICBjb3JyZXNwb25kaW5nIHRvIGEgY2FsbCB0byBhbiBpbnN0YW50aWF0aW9uIG9m IFVuY2hlY2tlZF9Db252ZXJzaW9uLgogICAgICAtLSAgSXQgaXMgZ2VuZXJhdGVkIGFzIGEgcmVz dWx0IG9mIGFjdHVhbCB1c2Ugb2YgVW5jaGVja2VkX0NvbnZlcnNpb24KICAgICAgLS0gIGFuZCBh bHNvIHRoZSBleHBhbmRlciBnZW5lcmF0ZXMgdW5jaGVja2VkIHR5cGUgY29udmVyc2lvbiBub2Rl cwogICAgICAtLSAgZGlyZWN0bHkgZm9yIGV4cGFuc2lvbiBvZiBjb21wbGV4IHNlbWFudGljIGFj dGlvbnMuCgogICAgICAtLSAgTm90ZTogYW4gdW5jaGVja2VkIHR5cGUgY29udmVyc2lvbiBpcyBh IHZhcmlhYmxlIGFzIGZhciBhcyB0aGUKICAgICAgLS0gIHNlbWFudGljcyBhcmUgY29uY2VybmVk LCB3aGljaCBpcyBjb252ZW5pZW50IGZvciB0aGUgZXhwYW5kZXIuCiAgICAgIC0tICBUaGlzIGRv ZXMgbm90IGNoYW5nZSB3aGF0IEFkYSBzb3VyY2UgcHJvZ3JhbXMgYXJlIGxlZ2FsLCBzaW5jZQog ICAgICAtLSAgY2xlYXJseSBhIGZ1bmN0aW9uIGNhbGwgdG8gYW4gaW5zdGFudGlhdGlvbiBvZiBV bmNoZWNrZWRfQ29udmVyc2lvbgogICAgICAtLSAgaXMgbm90IGEgdmFyaWFibGUgaW4gYW55IGNh c2UuCgogICAgICAtLSAgU3ByaW50IHN5bnRheDogc3VidHlwZS1tYXJrIShleHByZXNzaW9uKS4K CiAgICAgIC0tICBOX1VuY2hlY2tlZF9UeXBlX0NvbnZlcnNpb24KICAgICAgLS0gIFNsb2MgcG9p bnRzIHRvIHJlbGF0ZWQgbm9kZSBpbiBzb3VyY2UKICAgICAgLS0gIFN1YnR5cGVfTWFyayAoTm9k ZTQpCiAgICAgIC0tICBFeHByZXNzaW9uIChOb2RlMykKICAgICAgLS0gIEtpbGxfUmFuZ2VfQ2hl Y2sgKEZsYWcxMS1TZW0pCiAgICAgIC0tICBwbHVzIGZpZWxkcyBmb3IgZXhwcmVzc2lvbgoKICAg ICAgLS0gIE5vdGU6IGluIHRoZSBjYXNlIHdoZXJlIGEgZGVidWcgc291cmNlIGZpbGUgaXMgZ2Vu ZXJhdGVkLCB0aGUgU2xvYwogICAgICAtLSAgZm9yIHRoaXMgbm9kZSBwb2ludHMgdG8gdGhlIGV4 Y2xhbWF0aW9uIGluIHRoZSBTcHJpbnQgZmlsZSBvdXRwdXQuCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAtLSBWYWxpZGF0ZV9VbmNoZWNrZWRfQ29udmVy c2lvbiAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAg LS0gIFRoZSBmcm9udCBlbmQgZG9lcyBtb3N0IG9mIHRoZSB2YWxpZGF0aW9uIG9mIHVuY2hlY2tl ZCBjb252ZXJzaW9uLAogICAgICAtLSAgaW5jbHVkaW5nIGNoZWNraW5nIHNpemVzICh0aGlzIGlz IGRvbmUgYWZ0ZXIgdGhlIGJhY2sgZW5kIGlzIGNhbGxlZAogICAgICAtLSAgdG8gdGFrZSBhZHZh bnRhZ2Ugb2YgYmFjay1hbm5vdGF0aW9uIG9mIGNhbGN1bGF0ZWQgc2l6ZXMpLgoKICAgICAgLS0g IFRoZSBmcm9udCBlbmQgYWxzbyBkZWFscyB3aXRoIHNwZWNpZmljIGNhc2VzIHRoYXQgYXJlIG5v dCBhbGxvd2VkCiAgICAgIC0tICBlLmcuIGludm9sdmluZyB1bmNvbnN0cmFpbmVkIGFycmF5IHR5 cGVzLgoKICAgICAgLS0gIEZvciB0aGUgY2FzZSBvZiB0aGUgc3RhbmRhcmQgZ2lnaSBiYWNrZW5k LCB0aGlzIG1lYW5zIHRoYXQgYWxsCiAgICAgIC0tICBjaGVja3MgYXJlIGRvbmUgaW4gdGhlIGZy b250LWVuZC4KCiAgICAgIC0tICBIb3dldmVyLCBpbiB0aGUgY2FzZSBvZiBzcGVjaWFsaXplZCBi YWNrLWVuZHMsIG5vdGFibHkgdGhlIEpWTQogICAgICAtLSAgYmFja2VuZCBmb3IgSkdOQVQsIGFk ZGl0aW9uYWwgcmVxdWlyZW1lbnRzIGFuZCByZXN0cmljdGlvbnMgYXBwbHkKICAgICAgLS0gIHRv IHVuY2hlY2tlZCBjb252ZXJzaW9uLCBhbmQgdGhlc2UgYXJlIG1vc3QgY29udmVuaWVudGx5IHBl cmZvcm1lZAogICAgICAtLSAgaW4gdGhlIHNwZWNpYWxpemVkIGJhY2stZW5kLgoKICAgICAgLS0g IFRvIGFjY29tbW9kYXRlIHRoaXMgcmVxdWlyZW1lbnQsIGZvciBzdWNoIGJhY2sgZW5kcywgdGhl IGZvbGxvd2luZwogICAgICAtLSAgc3BlY2lhbCBub2RlIGlzIGdlbmVyYXRlZCByZWNvcmRpbmcg YW4gdW5jaGVja2VkIGNvbnZlcnNpb24gdGhhdAogICAgICAtLSAgbmVlZHMgdG8gYmUgdmFsaWRh dGVkLiBUaGUgYmFjayBlbmQgc2hvdWxkIHBvc3QgYW4gYXBwcm9wcmlhdGUKICAgICAgLS0gIGVy cm9yIG1lc3NhZ2UgaWYgdGhlIHVuY2hlY2tlZCBjb252ZXJzaW9uIGlzIGludmFsaWQgb3Igd2Fy cmFudHMKICAgICAgLS0gIGEgc3BlY2lhbCB3YXJuaW5nIG1lc3NhZ2UuCgogICAgICAtLSAgU291 cmNlX1R5cGUgYW5kIFRhcmdldF9UeXBlIHBvaW50IHRvIHRoZSBlbnRpdGllcyBmb3IgdGhlIHR3 bwogICAgICAtLSAgdHlwZXMgaW52b2x2ZWQgaW4gdGhlIHVuY2hlY2tlZCBjb252ZXJzaW9uIGlu c3RhbnRpYXRpb24gdGhhdAogICAgICAtLSAgaXMgdG8gYmUgdmFsaWRhdGVkLgoKICAgICAgLS0g IFNwcmludCBzeW50YXg6IHZhbGlkYXRlIFVuY2hlY2tlZF9Db252ZXJzaW9uIChzb3VyY2UsIHRh cmdldCk7CgogICAgICAtLSAgTl9WYWxpZGF0ZV9VbmNoZWNrZWRfQ29udmVyc2lvbgogICAgICAt LSAgU2xvYyBwb2ludHMgdG8gaW5zdGFudGlhdGlvbiAobG9jYXRpb24gZm9yIHdhcm5pbmcgbWVz c2FnZSkKICAgICAgLS0gIFNvdXJjZV9UeXBlIChOb2RlMS1TZW0pCiAgICAgIC0tICBUYXJnZXRf VHlwZSAoTm9kZTItU2VtKQoKICAgICAgLS0gIE5vdGU6IGluIHRoZSBjYXNlIHdoZXJlIGEgZGVi dWcgc291cmNlIGZpbGUgaXMgZ2VuZXJhdGVkLCB0aGUgU2xvYwogICAgICAtLSAgZm9yIHRoaXMg bm9kZSBwb2ludHMgdG8gdGhlIFZBTElEQVRFIGtleXdvcmQgaW4gdGhlIGZpbGUgb3V0cHV0LgoK ICAgLS0tLS0tLS0tLS0KICAgLS0gRW1wdHkgLS0KICAgLS0tLS0tLS0tLS0KCiAgIC0tICBVc2Vk IGFzIHRoZSBjb250ZW50cyBvZiB0aGUgTmtpbmQgZmllbGQgb2YgdGhlIGR1bW15IEVtcHR5IG5v ZGUKICAgLS0gIGFuZCBpbiBzb21lIG90aGVyIHNpdHVhdGlvbnMgdG8gaW5kaWNhdGUgYW4gdW5p bml0aWFsaXplZCB2YWx1ZS4KCiAgIC0tICBOX0VtcHR5CiAgIC0tICBDaGFycyAoTmFtZTEpIGlz IHNldCB0byBOb19OYW1lCgogICAtLS0tLS0tLS0tLQogICAtLSBFcnJvciAtLQogICAtLS0tLS0t LS0tLQoKICAgLS0gIFVzZWQgYXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBOa2luZCBmaWVsZCBvZiB0 aGUgZHVtbXkgRXJyb3Igbm9kZS4KICAgLS0gIEhhcyBhbiBFdHlwZSBmaWVsZCwgd2hpY2ggZ2V0 cyBzZXQgdG8gQW55X1R5cGUgbGF0ZXIgb24sIHRvIGhlbHAKICAgLS0gIGVycm9yIHJlY292ZXJ5 IChFcnJvcl9Qb3N0ZWQgaXMgYWxzbyBzZXQgaW4gdGhlIEVycm9yIG5vZGUpLgoKICAgLS0gIE5f RXJyb3IKICAgLS0gIENoYXJzIChOYW1lMSkgaXMgc2V0IHRvIEVycm9yX05hbWUKICAgLS0gIEV0 eXBlIChOb2RlNS1TZW0pCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBOb2Rl IFR5cGUgRGVmaW5pdGlvbiAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0g IFRoZSBmb2xsb3dpbmcgaXMgdGhlIGRlZmluaXRpb24gb2YgdGhlIE5vZGVfS2luZCB0eXBlLiBB cyBwcmV2aW91c2x5CiAgIC0tICBkaXNjdXNzZWQsIHRoaXMgaXMgc2VwYXJhdGVkIG9mZiB0byBh bGxvdyByZWFycmFuZ2VtZW50IG9mIHRoZSBvcmRlcgogICAtLSAgdG8gZmFjaWxpdGlhdGUgZGVm aW5pdGlvbiBvZiBzdWJ0eXBlIHJhbmdlcy4gVGhlIGNvbW1lbnRzIHNob3cgdGhlCiAgIC0tICBz dWJ0eXBlIGNsYXNzZXMgd2hpY2ggYXBwbHkgdG8gZWFjaCBzZXQgb2Ygbm9kZSBraW5kcy4gVGhl IGZpcnN0CiAgIC0tICBlbnRyeSBpbiB0aGUgY29tbWVudCBjaGFyYWN0ZXJpemVzIHRoZSBmb2xs b3dpbmcgbGlzdCBvZiBub2Rlcy4KCiAgIHR5cGUgTm9kZV9LaW5kIGlzICgKICAgICAgTl9VbnVz ZWRfQXRfU3RhcnQsCgogICAgICAtLSAgTl9SZXByZXNlbnRhdGlvbl9DbGF1c2UKICAgICAgTl9B dF9DbGF1c2UsCiAgICAgIE5fQ29tcG9uZW50X0NsYXVzZSwKICAgICAgTl9FbnVtZXJhdGlvbl9S ZXByZXNlbnRhdGlvbl9DbGF1c2UsCiAgICAgIE5fTW9kX0NsYXVzZSwKICAgICAgTl9SZWNvcmRf UmVwcmVzZW50YXRpb25fQ2xhdXNlLAoKICAgICAgLS0gIE5fUmVwcmVzZW50YXRpb25fQ2xhdXNl LCBOX0hhc19DaGFycwogICAgICBOX0F0dHJpYnV0ZV9EZWZpbml0aW9uX0NsYXVzZSwKCiAgICAg IC0tICBOX0hhc19DaGFycwogICAgICBOX0VtcHR5LAogICAgICBOX1ByYWdtYSwKICAgICAgTl9Q cmFnbWFfQXJndW1lbnRfQXNzb2NpYXRpb24sCgogICAgICAtLSAgTl9IYXNfRXR5cGUKICAgICAg Tl9FcnJvciwKCiAgICAgIC0tICBOX0VudGl0eSwgTl9IYXNfRXR5cGUsIE5fSGFzX0NoYXJzCiAg ICAgIE5fRGVmaW5pbmdfQ2hhcmFjdGVyX0xpdGVyYWwsCiAgICAgIE5fRGVmaW5pbmdfSWRlbnRp ZmllciwKICAgICAgTl9EZWZpbmluZ19PcGVyYXRvcl9TeW1ib2wsCgogICAgICAtLSAgTl9TdWJl eHByLCBOX0hhc19FdHlwZSwgTl9IYXNfQ2hhcnMsIE5fSGFzX0VudGl0eQogICAgICBOX0V4cGFu ZGVkX05hbWUsCgogICAgICAtLSAgTl9EaXJlY3RfTmFtZSwgTl9TdWJleHByLCBOX0hhc19FdHlw ZSwKICAgICAgLS0gIE5fSGFzX0NoYXJzLCBOX0hhc19FbnRpdHkKICAgICAgTl9JZGVudGlmaWVy LAogICAgICBOX09wZXJhdG9yX1N5bWJvbCwKCiAgICAgIC0tICBOX0RpcmVjdF9OYW1lLCBOX1N1 YmV4cHIsIE5fSGFzX0V0eXBlLAogICAgICAtLSAgTl9IYXNfQ2hhcnMsIE5fSGFzX0VudGl0eQog ICAgICBOX0NoYXJhY3Rlcl9MaXRlcmFsLAoKICAgICAgLS0gIE5fQmluYXJ5X09wLCBOX09wLCBO X1N1YmV4cHIsCiAgICAgIC0tICBOX0hhc19FdHlwZSwgTl9IYXNfQ2hhcnMsIE5fSGFzX0VudGl0 eQogICAgICBOX09wX0FkZCwKICAgICAgTl9PcF9Db25jYXQsCiAgICAgIE5fT3BfRGl2aWRlLAog ICAgICBOX09wX0V4cG9uLAogICAgICBOX09wX01vZCwKICAgICAgTl9PcF9NdWx0aXBseSwKICAg ICAgTl9PcF9SZW0sCiAgICAgIE5fT3BfU3VidHJhY3QsCgogICAgICAtLSAgTl9CaW5hcnlfT3As IE5fT3AsIE5fU3ViZXhwciwgTl9IYXNfRXR5cGUKICAgICAgLS0gIE5fSGFzX0VudGl0eSwgTl9I YXNfQ2hhcnMsIE5fT3BfQm9vbGVhbgogICAgICBOX09wX0FuZCwKCiAgICAgIC0tICBOX0JpbmFy eV9PcCwgTl9PcCwgTl9TdWJleHByLCBOX0hhc19FdHlwZQogICAgICAtLSAgTl9IYXNfRW50aXR5 LCBOX0hhc19DaGFycywgTl9PcF9Cb29sZWFuLAogICAgICAtLSAgTl9PcF9Db21wYXJlCiAgICAg IE5fT3BfRXEsCiAgICAgIE5fT3BfR2UsCiAgICAgIE5fT3BfR3QsCiAgICAgIE5fT3BfTGUsCiAg ICAgIE5fT3BfTHQsCiAgICAgIE5fT3BfTmUsCgogICAgICAtLSAgTl9CaW5hcnlfT3AsIE5fT3As IE5fU3ViZXhwciwgTl9IYXNfRXR5cGUKICAgICAgLS0gIE5fSGFzX0VudGl0eSwgTl9IYXNfQ2hh cnMsIE5fT3BfQm9vbGVhbgogICAgICBOX09wX09yLAogICAgICBOX09wX1hvciwKCiAgICAgIC0t ICBOX0JpbmFyeV9PcCwgTl9PcCwgTl9TdWJleHByLCBOX0hhc19FdHlwZSwKICAgICAgLS0gIE5f T3BfU2hpZnQsIE5fSGFzX0NoYXJzLCBOX0hhc19FbnRpdHkKICAgICAgTl9PcF9Sb3RhdGVfTGVm dCwKICAgICAgTl9PcF9Sb3RhdGVfUmlnaHQsCiAgICAgIE5fT3BfU2hpZnRfTGVmdCwKICAgICAg Tl9PcF9TaGlmdF9SaWdodCwKICAgICAgTl9PcF9TaGlmdF9SaWdodF9Bcml0aG1ldGljLAoKICAg ICAgLS0gIE5fVW5hcnlfT3AsIE5fT3AsIE5fU3ViZXhwciwgTl9IYXNfRXR5cGUsCiAgICAgIC0t ICBOX0hhc19DaGFycywgTl9IYXNfRW50aXR5CiAgICAgIE5fT3BfQWJzLAogICAgICBOX09wX01p bnVzLAogICAgICBOX09wX05vdCwKICAgICAgTl9PcF9QbHVzLAoKICAgICAgLS0gIE5fU3ViZXhw ciwgTl9IYXNfRXR5cGUsIE5fSGFzX0VudGl0eQogICAgICBOX0F0dHJpYnV0ZV9SZWZlcmVuY2Us CgogICAgICAtLSAgTl9TdWJleHByLCBOX0hhc19FdHlwZQogICAgICBOX0FuZF9UaGVuLAogICAg ICBOX0NvbmRpdGlvbmFsX0V4cHJlc3Npb24sCiAgICAgIE5fRXhwbGljaXRfRGVyZWZlcmVuY2Us CiAgICAgIE5fRnVuY3Rpb25fQ2FsbCwKICAgICAgTl9JbiwKICAgICAgTl9JbmRleGVkX0NvbXBv bmVudCwKICAgICAgTl9JbnRlZ2VyX0xpdGVyYWwsCiAgICAgIE5fTm90X0luLAogICAgICBOX051 bGwsCiAgICAgIE5fT3JfRWxzZSwKICAgICAgTl9Qcm9jZWR1cmVfQ2FsbF9TdGF0ZW1lbnQsCiAg ICAgIE5fUXVhbGlmaWVkX0V4cHJlc3Npb24sCgogICAgICAtLSAgTl9SYWlzZV94eHhfRXJyb3Is IE5fU3ViZXhwciwgTl9IYXNfRXR5cGUKCiAgICAgIE5fUmFpc2VfQ29uc3RyYWludF9FcnJvciwK ICAgICAgTl9SYWlzZV9Qcm9ncmFtX0Vycm9yLAogICAgICBOX1JhaXNlX1N0b3JhZ2VfRXJyb3Is CgogICAgICAtLSAgTl9TdWJleHByLCBOX0hhc19FdHlwZQoKICAgICAgTl9BZ2dyZWdhdGUsCiAg ICAgIE5fQWxsb2NhdG9yLAogICAgICBOX0V4dGVuc2lvbl9BZ2dyZWdhdGUsCiAgICAgIE5fUmFu Z2UsCiAgICAgIE5fUmVhbF9MaXRlcmFsLAogICAgICBOX1JlZmVyZW5jZSwKICAgICAgTl9TZWxl Y3RlZF9Db21wb25lbnQsCiAgICAgIE5fU2xpY2UsCiAgICAgIE5fU3RyaW5nX0xpdGVyYWwsCiAg ICAgIE5fU3VicHJvZ3JhbV9JbmZvLAogICAgICBOX1R5cGVfQ29udmVyc2lvbiwKICAgICAgTl9V bmNoZWNrZWRfRXhwcmVzc2lvbiwKICAgICAgTl9VbmNoZWNrZWRfVHlwZV9Db252ZXJzaW9uLAoK ICAgICAgLS0gIE5fSGFzX0V0eXBlCiAgICAgIE5fU3VidHlwZV9JbmRpY2F0aW9uLAoKICAgICAg LS0gIE5fRGVjbGFyYXRpb24KICAgICAgTl9Db21wb25lbnRfRGVjbGFyYXRpb24sCiAgICAgIE5f RW50cnlfRGVjbGFyYXRpb24sCiAgICAgIE5fRm9ybWFsX09iamVjdF9EZWNsYXJhdGlvbiwKICAg ICAgTl9Gb3JtYWxfVHlwZV9EZWNsYXJhdGlvbiwKICAgICAgTl9GdWxsX1R5cGVfRGVjbGFyYXRp b24sCiAgICAgIE5fSW5jb21wbGV0ZV9UeXBlX0RlY2xhcmF0aW9uLAogICAgICBOX0xvb3BfUGFy YW1ldGVyX1NwZWNpZmljYXRpb24sCiAgICAgIE5fT2JqZWN0X0RlY2xhcmF0aW9uLAogICAgICBO X1Byb3RlY3RlZF9UeXBlX0RlY2xhcmF0aW9uLAogICAgICBOX1ByaXZhdGVfRXh0ZW5zaW9uX0Rl Y2xhcmF0aW9uLAogICAgICBOX1ByaXZhdGVfVHlwZV9EZWNsYXJhdGlvbiwKICAgICAgTl9TdWJ0 eXBlX0RlY2xhcmF0aW9uLAoKICAgICAgLS0gIE5fU3VicHJvZ3JhbV9TcGVjaWZpY2F0aW9uLCBO X0RlY2xhcmF0aW9uCiAgICAgIE5fRnVuY3Rpb25fU3BlY2lmaWNhdGlvbiwKICAgICAgTl9Qcm9j ZWR1cmVfU3BlY2lmaWNhdGlvbiwKCiAgICAgIC0tICAobm90aGluZyBzcGVjaWFsKQogICAgICBO X0VudHJ5X0luZGV4X1NwZWNpZmljYXRpb24sCiAgICAgIE5fRnJlZXplX0VudGl0eSwKCiAgICAg IC0tICBOX0FjY2Vzc19Ub19TdWJwcm9ncmFtX0RlZmluaXRpb24KICAgICAgTl9BY2Nlc3NfRnVu Y3Rpb25fRGVmaW5pdGlvbiwKICAgICAgTl9BY2Nlc3NfUHJvY2VkdXJlX0RlZmluaXRpb24sCgog ICAgICAtLSAgTl9MYXRlcl9EZWNsX0l0ZW0sCiAgICAgIE5fVGFza19UeXBlX0RlY2xhcmF0aW9u LAoKICAgICAgLS0gIE5fQm9keV9TdHViLCBOX0xhdGVyX0RlY2xfSXRlbQogICAgICBOX1BhY2th Z2VfQm9keV9TdHViLAogICAgICBOX1Byb3RlY3RlZF9Cb2R5X1N0dWIsCiAgICAgIE5fU3VicHJv Z3JhbV9Cb2R5X1N0dWIsCiAgICAgIE5fVGFza19Cb2R5X1N0dWIsCgogICAgICAtLSAgTl9HZW5l cmljX0luc3RhbnRpYXRpb24sIE5fTGF0ZXJfRGVjbF9JdGVtCiAgICAgIE5fRnVuY3Rpb25fSW5z dGFudGlhdGlvbiwKICAgICAgTl9QYWNrYWdlX0luc3RhbnRpYXRpb24sCiAgICAgIE5fUHJvY2Vk dXJlX0luc3RhbnRpYXRpb24sCgogICAgICAtLSAgTl9Vbml0X0JvZHksIE5fTGF0ZXJfRGVjbF9J dGVtLCBOX1Byb3Blcl9Cb2R5CiAgICAgIE5fUGFja2FnZV9Cb2R5LAogICAgICBOX1N1YnByb2dy YW1fQm9keSwKCiAgICAgIC0tICBOX0xhdGVyX0RlY2xfSXRlbSwgTl9Qcm9wZXJfQm9keQogICAg ICBOX1Byb3RlY3RlZF9Cb2R5LAogICAgICBOX1Rhc2tfQm9keSwKCiAgICAgIC0tICBOX0xhdGVy X0RlY2xfSXRlbQogICAgICBOX0ltcGxpY2l0X0xhYmVsX0RlY2xhcmF0aW9uLAogICAgICBOX1Bh Y2thZ2VfRGVjbGFyYXRpb24sCiAgICAgIE5fU2luZ2xlX1Rhc2tfRGVjbGFyYXRpb24sCiAgICAg IE5fU3VicHJvZ3JhbV9EZWNsYXJhdGlvbiwKICAgICAgTl9Vc2VfUGFja2FnZV9DbGF1c2UsCgog ICAgICAtLSAgTl9HZW5lcmljX0RlY2xhcmF0aW9uLCBOX0xhdGVyX0RlY2xfSXRlbQogICAgICBO X0dlbmVyaWNfUGFja2FnZV9EZWNsYXJhdGlvbiwKICAgICAgTl9HZW5lcmljX1N1YnByb2dyYW1f RGVjbGFyYXRpb24sCgogICAgICAtLSAgTl9BcnJheV9UeXBlX0RlZmluaXRpb24KICAgICAgTl9D b25zdHJhaW5lZF9BcnJheV9EZWZpbml0aW9uLAogICAgICBOX1VuY29uc3RyYWluZWRfQXJyYXlf RGVmaW5pdGlvbiwKCiAgICAgIC0tICBOX1JlbmFtaW5nX0RlY2xhcmF0aW9uCiAgICAgIE5fRXhj ZXB0aW9uX1JlbmFtaW5nX0RlY2xhcmF0aW9uLAogICAgICBOX09iamVjdF9SZW5hbWluZ19EZWNs YXJhdGlvbiwKICAgICAgTl9QYWNrYWdlX1JlbmFtaW5nX0RlY2xhcmF0aW9uLAogICAgICBOX1N1 YnByb2dyYW1fUmVuYW1pbmdfRGVjbGFyYXRpb24sCgogICAgICAtLSAgTl9HZW5lcmljX1JlbmFt aW5nX0RlY2xhcmF0aW9ucywgTl9SZW5hbWluZ19EZWNsYXJhdGlvbgogICAgICBOX0dlbmVyaWNf RnVuY3Rpb25fUmVuYW1pbmdfRGVjbGFyYXRpb24sCiAgICAgIE5fR2VuZXJpY19QYWNrYWdlX1Jl bmFtaW5nX0RlY2xhcmF0aW9uLAogICAgICBOX0dlbmVyaWNfUHJvY2VkdXJlX1JlbmFtaW5nX0Rl Y2xhcmF0aW9uLAoKICAgICAgLS0gIE5fU3RhdGVtZW50X090aGVyX1RoYW5fUHJvY2VkdXJlX0Nh bGwKICAgICAgTl9BYm9ydF9TdGF0ZW1lbnQsCiAgICAgIE5fQWNjZXB0X1N0YXRlbWVudCwKICAg ICAgTl9Bc3NpZ25tZW50X1N0YXRlbWVudCwKICAgICAgTl9Bc3luY2hyb25vdXNfU2VsZWN0LAog ICAgICBOX0Jsb2NrX1N0YXRlbWVudCwKICAgICAgTl9DYXNlX1N0YXRlbWVudCwKICAgICAgTl9D b2RlX1N0YXRlbWVudCwKICAgICAgTl9Db25kaXRpb25hbF9FbnRyeV9DYWxsLAogICAgICBOX0Rl bGF5X1JlbGF0aXZlX1N0YXRlbWVudCwKICAgICAgTl9EZWxheV9VbnRpbF9TdGF0ZW1lbnQsCiAg ICAgIE5fRW50cnlfQ2FsbF9TdGF0ZW1lbnQsCiAgICAgIE5fRnJlZV9TdGF0ZW1lbnQsCiAgICAg IE5fR290b19TdGF0ZW1lbnQsCiAgICAgIE5fTG9vcF9TdGF0ZW1lbnQsCiAgICAgIE5fTnVsbF9T dGF0ZW1lbnQsCiAgICAgIE5fUmFpc2VfU3RhdGVtZW50LAogICAgICBOX1JlcXVldWVfU3RhdGVt ZW50LAogICAgICBOX1JldHVybl9TdGF0ZW1lbnQsCiAgICAgIE5fU2VsZWN0aXZlX0FjY2VwdCwK ICAgICAgTl9UaW1lZF9FbnRyeV9DYWxsLAoKICAgICAgLS0gIE5fU3RhdGVtZW50X090aGVyX1Ro YW5fUHJvY2VkdXJlX0NhbGwsIE5fSGFzX0NvbmRpdGlvbgogICAgICBOX0V4aXRfU3RhdGVtZW50 LAogICAgICBOX0lmX1N0YXRlbWVudCwKCiAgICAgIC0tICBOX0hhc19Db25kaXRpb24KICAgICAg Tl9BY2NlcHRfQWx0ZXJuYXRpdmUsCiAgICAgIE5fRGVsYXlfQWx0ZXJuYXRpdmUsCiAgICAgIE5f RWxzaWZfUGFydCwKICAgICAgTl9FbnRyeV9Cb2R5X0Zvcm1hbF9QYXJ0LAogICAgICBOX0l0ZXJh dGlvbl9TY2hlbWUsCiAgICAgIE5fVGVybWluYXRlX0FsdGVybmF0aXZlLAoKICAgICAgLS0gIE90 aGVyIG5vZGVzIChub3QgcGFydCBvZiBhbnkgc3VidHlwZSBjbGFzcykKICAgICAgTl9BYm9ydGFi bGVfUGFydCwKICAgICAgTl9BYnN0cmFjdF9TdWJwcm9ncmFtX0RlY2xhcmF0aW9uLAogICAgICBO X0FjY2Vzc19EZWZpbml0aW9uLAogICAgICBOX0FjY2Vzc19Ub19PYmplY3RfRGVmaW5pdGlvbiwK ICAgICAgTl9DYXNlX1N0YXRlbWVudF9BbHRlcm5hdGl2ZSwKICAgICAgTl9Db21waWxhdGlvbl9V bml0LAogICAgICBOX0NvbXBpbGF0aW9uX1VuaXRfQXV4LAogICAgICBOX0NvbXBvbmVudF9Bc3Nv Y2lhdGlvbiwKICAgICAgTl9Db21wb25lbnRfTGlzdCwKICAgICAgTl9EZXJpdmVkX1R5cGVfRGVm aW5pdGlvbiwKICAgICAgTl9EZWNpbWFsX0ZpeGVkX1BvaW50X0RlZmluaXRpb24sCiAgICAgIE5f RGVmaW5pbmdfUHJvZ3JhbV9Vbml0X05hbWUsCiAgICAgIE5fRGVsdGFfQ29uc3RyYWludCwKICAg ICAgTl9EZXNpZ25hdG9yLAogICAgICBOX0RpZ2l0c19Db25zdHJhaW50LAogICAgICBOX0Rpc2Ny aW1pbmFudF9Bc3NvY2lhdGlvbiwKICAgICAgTl9EaXNjcmltaW5hbnRfU3BlY2lmaWNhdGlvbiwK ICAgICAgTl9FbnVtZXJhdGlvbl9UeXBlX0RlZmluaXRpb24sCiAgICAgIE5fRW50cnlfQm9keSwK ICAgICAgTl9FbnRyeV9DYWxsX0FsdGVybmF0aXZlLAogICAgICBOX0V4Y2VwdGlvbl9EZWNsYXJh dGlvbiwKICAgICAgTl9FeGNlcHRpb25fSGFuZGxlciwKICAgICAgTl9GbG9hdGluZ19Qb2ludF9E ZWZpbml0aW9uLAogICAgICBOX0Zvcm1hbF9EZWNpbWFsX0ZpeGVkX1BvaW50X0RlZmluaXRpb24s CiAgICAgIE5fRm9ybWFsX0Rlcml2ZWRfVHlwZV9EZWZpbml0aW9uLAogICAgICBOX0Zvcm1hbF9E aXNjcmV0ZV9UeXBlX0RlZmluaXRpb24sCiAgICAgIE5fRm9ybWFsX0Zsb2F0aW5nX1BvaW50X0Rl ZmluaXRpb24sCiAgICAgIE5fRm9ybWFsX01vZHVsYXJfVHlwZV9EZWZpbml0aW9uLAogICAgICBO X0Zvcm1hbF9PcmRpbmFyeV9GaXhlZF9Qb2ludF9EZWZpbml0aW9uLAogICAgICBOX0Zvcm1hbF9Q YWNrYWdlX0RlY2xhcmF0aW9uLAogICAgICBOX0Zvcm1hbF9Qcml2YXRlX1R5cGVfRGVmaW5pdGlv biwKICAgICAgTl9Gb3JtYWxfU2lnbmVkX0ludGVnZXJfVHlwZV9EZWZpbml0aW9uLAogICAgICBO X0Zvcm1hbF9TdWJwcm9ncmFtX0RlY2xhcmF0aW9uLAogICAgICBOX0dlbmVyaWNfQXNzb2NpYXRp b24sCiAgICAgIE5fSGFuZGxlZF9TZXF1ZW5jZV9PZl9TdGF0ZW1lbnRzLAogICAgICBOX0luZGV4 X09yX0Rpc2NyaW1pbmFudF9Db25zdHJhaW50LAogICAgICBOX0l0eXBlX1JlZmVyZW5jZSwKICAg ICAgTl9MYWJlbCwKICAgICAgTl9Nb2R1bGFyX1R5cGVfRGVmaW5pdGlvbiwKICAgICAgTl9OdW1i ZXJfRGVjbGFyYXRpb24sCiAgICAgIE5fT3JkaW5hcnlfRml4ZWRfUG9pbnRfRGVmaW5pdGlvbiwK ICAgICAgTl9PdGhlcnNfQ2hvaWNlLAogICAgICBOX1BhY2thZ2VfU3BlY2lmaWNhdGlvbiwKICAg ICAgTl9QYXJhbWV0ZXJfQXNzb2NpYXRpb24sCiAgICAgIE5fUGFyYW1ldGVyX1NwZWNpZmljYXRp b24sCiAgICAgIE5fUHJvdGVjdGVkX0RlZmluaXRpb24sCiAgICAgIE5fUmFuZ2VfQ29uc3RyYWlu dCwKICAgICAgTl9SZWFsX1JhbmdlX1NwZWNpZmljYXRpb24sCiAgICAgIE5fUmVjb3JkX0RlZmlu aXRpb24sCiAgICAgIE5fU2lnbmVkX0ludGVnZXJfVHlwZV9EZWZpbml0aW9uLAogICAgICBOX1Np bmdsZV9Qcm90ZWN0ZWRfRGVjbGFyYXRpb24sCiAgICAgIE5fU3VidW5pdCwKICAgICAgTl9UYXNr X0RlZmluaXRpb24sCiAgICAgIE5fVHJpZ2dlcmluZ19BbHRlcm5hdGl2ZSwKICAgICAgTl9Vc2Vf VHlwZV9DbGF1c2UsCiAgICAgIE5fVmFsaWRhdGVfVW5jaGVja2VkX0NvbnZlcnNpb24sCiAgICAg IE5fVmFyaWFudCwKICAgICAgTl9WYXJpYW50X1BhcnQsCiAgICAgIE5fV2l0aF9DbGF1c2UsCiAg ICAgIE5fV2l0aF9UeXBlX0NsYXVzZSwKICAgICAgTl9VbnVzZWRfQXRfRW5kKTsKCiAgIGZvciBO b2RlX0tpbmQnU2l6ZSB1c2UgODsKICAgLS0gIFRoZSBkYXRhIHN0cnVjdHVyZXMgaW4gQXRyZWUg YXNzdW1lIHRoaXMhCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE5vZGUg Q2xhc3MgRGVmaW5pdGlvbnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg c3VidHlwZSBOX0FjY2Vzc19Ub19TdWJwcm9ncmFtX0RlZmluaXRpb24gaXMgTm9kZV9LaW5kIHJh bmdlCiAgICAgTl9BY2Nlc3NfRnVuY3Rpb25fRGVmaW5pdGlvbiAuLgogICAgIE5fQWNjZXNzX1By b2NlZHVyZV9EZWZpbml0aW9uOwoKICAgc3VidHlwZSBOX0FycmF5X1R5cGVfRGVmaW5pdGlvbiBp cyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX0NvbnN0cmFpbmVkX0FycmF5X0RlZmluaXRpb24gLi4K ICAgICBOX1VuY29uc3RyYWluZWRfQXJyYXlfRGVmaW5pdGlvbjsKCiAgIHN1YnR5cGUgTl9CaW5h cnlfT3AgaXMgTm9kZV9LaW5kIHJhbmdlCiAgICAgTl9PcF9BZGQgLi4KICAgICBOX09wX1NoaWZ0 X1JpZ2h0X0FyaXRobWV0aWM7CgogICBzdWJ0eXBlIE5fQm9keV9TdHViIGlzIE5vZGVfS2luZCBy YW5nZQogICAgIE5fUGFja2FnZV9Cb2R5X1N0dWIgLi4KICAgICBOX1Rhc2tfQm9keV9TdHViOwoK ICAgc3VidHlwZSBOX0RlY2xhcmF0aW9uIGlzIE5vZGVfS2luZCByYW5nZQogICAgIE5fQ29tcG9u ZW50X0RlY2xhcmF0aW9uIC4uCiAgICAgTl9Qcm9jZWR1cmVfU3BlY2lmaWNhdGlvbjsKICAgLS0g IE5vdGU6IHRoaXMgaW5jbHVkZXMgYWxsIGNvbnN0cnVjdHMgbm9ybWFsbHkgdGhvdWdodCBvZiBh cyBkZWNsYXJhdGlvbnMKICAgLS0gIGV4Y2VwdCB0aG9zZSB3aGljaCBhcmUgc2VwYXJhdGVseSBn cm91cGVkIGFzIGxhdGVyIGRlY2xhcmF0aW9ucy4KCiAgIHN1YnR5cGUgTl9EaXJlY3RfTmFtZSBp cyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX0lkZW50aWZpZXIgLi4KICAgICBOX0NoYXJhY3Rlcl9M aXRlcmFsOwoKICAgc3VidHlwZSBOX0VudGl0eSBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX0Rl ZmluaW5nX0NoYXJhY3Rlcl9MaXRlcmFsIC4uCiAgICAgTl9EZWZpbmluZ19PcGVyYXRvcl9TeW1i b2w7CgogICBzdWJ0eXBlIE5fR2VuZXJpY19EZWNsYXJhdGlvbiBpcyBOb2RlX0tpbmQgcmFuZ2UK ICAgICBOX0dlbmVyaWNfUGFja2FnZV9EZWNsYXJhdGlvbiAuLgogICAgIE5fR2VuZXJpY19TdWJw cm9ncmFtX0RlY2xhcmF0aW9uOwoKICAgc3VidHlwZSBOX0dlbmVyaWNfSW5zdGFudGlhdGlvbiBp cyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX0Z1bmN0aW9uX0luc3RhbnRpYXRpb24gLi4KICAgICBO X1Byb2NlZHVyZV9JbnN0YW50aWF0aW9uOwoKICAgc3VidHlwZSBOX0dlbmVyaWNfUmVuYW1pbmdf RGVjbGFyYXRpb24gaXMgTm9kZV9LaW5kIHJhbmdlCiAgICAgTl9HZW5lcmljX0Z1bmN0aW9uX1Jl bmFtaW5nX0RlY2xhcmF0aW9uIC4uCiAgICAgTl9HZW5lcmljX1Byb2NlZHVyZV9SZW5hbWluZ19E ZWNsYXJhdGlvbjsKCiAgIHN1YnR5cGUgTl9IYXNfQ2hhcnMgaXMgTm9kZV9LaW5kIHJhbmdlCiAg ICAgTl9BdHRyaWJ1dGVfRGVmaW5pdGlvbl9DbGF1c2UgLi4KICAgICBOX09wX1BsdXM7CgogICBz dWJ0eXBlIE5fSGFzX0VudGl0eSBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX0V4cGFuZGVkX05h bWUgLi4KICAgICBOX0F0dHJpYnV0ZV9SZWZlcmVuY2U7CiAgIC0tICBOb2RlcyB0aGF0IGhhdmUg RW50aXR5IGZpZWxkcwogICAtLSAgV2FybmluZzogRE9FUyBOT1QgSU5DTFVERSBOX0ZyZWV6ZV9F bnRpdHkhCgogICBzdWJ0eXBlIE5fSGFzX0V0eXBlIGlzIE5vZGVfS2luZCByYW5nZQogICAgIE5f RXJyb3IgLi4KICAgICBOX1N1YnR5cGVfSW5kaWNhdGlvbjsKCiAgIHN1YnR5cGUgTl9MYXRlcl9E ZWNsX0l0ZW0gaXMgTm9kZV9LaW5kIHJhbmdlCiAgICAgTl9UYXNrX1R5cGVfRGVjbGFyYXRpb24g Li4KICAgICBOX0dlbmVyaWNfU3VicHJvZ3JhbV9EZWNsYXJhdGlvbjsKICAgLS0gIE5vdGU6IHRo aXMgaXMgQWRhIDgzIHJlbGV2YW50IG9ubHkgKHNlZSBBZGEgODMgUk0gMy45ICgyKSkgYW5kCiAg IC0tICBpbmNsdWRlcyBvbmx5IHRob3NlIGl0ZW1zIHdoaWNoIGNhbiBhcHBlYXIgYXMgbGF0ZXIg ZGVjbGFyYXRpdmUKICAgLS0gIGl0ZW1zLiBUaGlzIGFsc28gaW5jbHVkZXMgTl9JbXBsaWNpdF9M YWJlbF9EZWNsYXJhdGlvbiB3aGljaCBpcwogICAtLSAgbm90IHNwZWNpZmljYWxseSBpbiB0aGUg Z3JhbW1hciBidXQgbWF5IGFwcGVhciBhcyBhIHZhbGlkIGxhdGVyCiAgIC0tICBkZWNsYXJhdGl2 ZSBpdGVtcy4gSXQgZG9lcyBOT1QgaW5jbHVkZSBOX1ByYWdtYSB3aGljaCBjYW4gYWxzbwogICAt LSAgYXBwZWFyIGFtb25nIGxhdGVyIGRlY2xhcmF0aXZlIGl0ZW1zLiBJdCBkb2VzIGhvd2V2ZXIg aW5jbHVkZQogICAtLSAgTl9Qcm90ZWN0ZWRfQm9keSwgd2hpY2ggaXMgYSBiaXQgcGVjdWxpYXIs IGJ1dCBoYXJtbGVzcyBzaW5jZQogICAtLSAgdGhpcyBjYW5ub3QgYXBwZWFyIGluIEFkYSA4MyBt b2RlIGFueXdheS4KCiAgIHN1YnR5cGUgTl9PcCBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX09w X0FkZCAuLgogICAgIE5fT3BfUGx1czsKCiAgIHN1YnR5cGUgTl9PcF9Cb29sZWFuIGlzIE5vZGVf S2luZCByYW5nZQogICAgIE5fT3BfQW5kIC4uCiAgICAgTl9PcF9Yb3I7CiAgIC0tICBCaW5hcnkg b3BlcmF0b3JzIHdoaWNoIHRha2Ugb3BlcmFuZHMgb2YgYSBib29sZWFuIHR5cGUsIGFuZCB5aWVs ZAogICAtLSAgYSByZXN1bHQgb2YgYSBib29sZWFuIHR5cGUuCgogICBzdWJ0eXBlIE5fT3BfQ29t cGFyZSBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX09wX0VxIC4uCiAgICAgTl9PcF9OZTsKCiAg IHN1YnR5cGUgTl9PcF9TaGlmdCBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX09wX1JvdGF0ZV9M ZWZ0IC4uCiAgICAgTl9PcF9TaGlmdF9SaWdodF9Bcml0aG1ldGljOwoKICAgc3VidHlwZSBOX1By b3Blcl9Cb2R5IGlzIE5vZGVfS2luZCByYW5nZQogICAgIE5fUGFja2FnZV9Cb2R5IC4uCiAgICAg Tl9UYXNrX0JvZHk7CgogICBzdWJ0eXBlIE5fUmFpc2VfeHh4X0Vycm9yIGlzIE5vZGVfS2luZCBy YW5nZQogICAgIE5fUmFpc2VfQ29uc3RyYWludF9FcnJvciAuLgogICAgIE5fUmFpc2VfU3RvcmFn ZV9FcnJvcjsKCiAgIHN1YnR5cGUgTl9SZW5hbWluZ19EZWNsYXJhdGlvbiBpcyBOb2RlX0tpbmQg cmFuZ2UKICAgICBOX0V4Y2VwdGlvbl9SZW5hbWluZ19EZWNsYXJhdGlvbiAuLgogICAgIE5fR2Vu ZXJpY19Qcm9jZWR1cmVfUmVuYW1pbmdfRGVjbGFyYXRpb247CgogICBzdWJ0eXBlIE5fUmVwcmVz ZW50YXRpb25fQ2xhdXNlIGlzIE5vZGVfS2luZCByYW5nZQogICAgIE5fQXRfQ2xhdXNlIC4uCiAg ICAgTl9BdHRyaWJ1dGVfRGVmaW5pdGlvbl9DbGF1c2U7CgogICBzdWJ0eXBlIE5fU3RhdGVtZW50 X090aGVyX1RoYW5fUHJvY2VkdXJlX0NhbGwgaXMgTm9kZV9LaW5kIHJhbmdlCiAgICAgTl9BYm9y dF9TdGF0ZW1lbnQgLi4KICAgICBOX0lmX1N0YXRlbWVudDsKICAgLS0gIE5vdGUgdGhhdCB0aGlz IGluY2x1ZGVzIGFsbCBzdGF0ZW1lbnQgdHlwZXMgZXhjZXB0IGZvciB0aGUgY2FzZXMgb2YgdGhl CiAgIC0tICBOX1Byb2NlZHVyZV9DYWxsX1N0YXRlbWVudCB3aGljaCBpcyBjb25zaWRlcmVkIHRv IGJlIGEgc3ViZXhwcmVzc2lvbgogICAtLSAgKHNpbmNlIG92ZXJsb2FkaW5nIGlzIHBvc3NpYmxl LCBzbyBpdCBuZWVkcyB0byBnbyB0aHJvdWdoIHRoZSBub3JtYWwKICAgLS0gIG92ZXJsb2FkaW5n IHJlc29sdXRpb24gZm9yIGV4cHJlc3Npb25zKS4KCiAgIHN1YnR5cGUgTl9IYXNfQ29uZGl0aW9u IGlzIE5vZGVfS2luZCByYW5nZQogICAgIE5fRXhpdF9TdGF0ZW1lbnQgLi4KICAgICBOX1Rlcm1p bmF0ZV9BbHRlcm5hdGl2ZTsKICAgLS0gIE5vZGVzIHdpdGggY29uZGl0aW9uIGZpZWxkcyAoZG9l cyBub3QgaW5jbHVkZSBOX1JhaXNlX3h4eF9FcnJvcikKCiAgIHN1YnR5cGUgTl9TdWJleHByIGlz IE5vZGVfS2luZCByYW5nZQogICAgIE5fRXhwYW5kZWRfTmFtZSAuLgogICAgIE5fVW5jaGVja2Vk X1R5cGVfQ29udmVyc2lvbjsKICAgLS0gIE5vZGVzIHdpdGggZXhwcmVzc2lvbiBmaWVsZHMKCiAg IHN1YnR5cGUgTl9TdWJwcm9ncmFtX1NwZWNpZmljYXRpb24gaXMgTm9kZV9LaW5kIHJhbmdlCiAg ICAgTl9GdW5jdGlvbl9TcGVjaWZpY2F0aW9uIC4uCiAgICAgTl9Qcm9jZWR1cmVfU3BlY2lmaWNh dGlvbjsKCiAgIHN1YnR5cGUgTl9VbmFyeV9PcCBpcyBOb2RlX0tpbmQgcmFuZ2UKICAgICBOX09w X0FicyAuLgogICAgIE5fT3BfUGx1czsKCiAgIHN1YnR5cGUgTl9Vbml0X0JvZHkgaXMgTm9kZV9L aW5kIHJhbmdlCiAgICAgTl9QYWNrYWdlX0JvZHkgLi4KICAgICBOX1N1YnByb2dyYW1fQm9keTsK CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBOb2RlIEFjY2VzcyBGdW5jdGlv bnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGZvbGxvd2lu ZyBmdW5jdGlvbnMgcmV0dXJuIHRoZSBjb250ZW50cyBvZiB0aGUgaW5kaWNhdGVkIGZpZWxkIG9m CiAgIC0tICB0aGUgbm9kZSByZWZlcmVuY2VkIGJ5IHRoZSBhcmd1bWVudCwgd2hpY2ggaXMgYSBO b2RlX0lkLiBUaGV5IHByb3ZpZGUKICAgLS0gIGxvZ2ljYWwgYWNjZXNzIHRvIGZpZWxkcyBpbiB0 aGUgbm9kZSB3aGljaCBjb3VsZCBiZSBhY2Nlc3NlZCB1c2luZyB0aGUKICAgLS0gIEF0cmVlLlVu Y2hlY2tlZF9BY2Nlc3MgcGFja2FnZSwgYnV0IHRoZSBpZGVhIGlzIGFsd2F5cyB0byB1c2UgdGhl c2UKICAgLS0gIGhpZ2hlciBsZXZlbCByb3V0aW5lcyB3aGljaCBwcmVzZXJ2ZSBzdHJvbmcgdHlw aW5nLiBJbiBkZWJ1ZyBtb2RlLAogICAtLSAgdGhlc2Ugcm91dGluZXMgY2hlY2sgdGhhdCB0aGV5 IGFyZSBiZWluZyBhcHBsaWVkIHRvIGFuIGFwcHJvcHJpYXRlCiAgIC0tICBub2RlLCBhcyB3ZWxs IGFzIGNoZWNraW5nIHRoYXQgdGhlIG5vZGUgaXMgaW4gcmFuZ2UuCgogICBmdW5jdGlvbiBBQkVf SXNfQ2VydGFpbgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcx OAoKICAgZnVuY3Rpb24gQWJvcnRfUHJlc2VudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47ICAgIC0tIEZsYWcxNQoKICAgZnVuY3Rpb24gQWJvcnRhYmxlX1BhcnQKICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMgoKICAgZnVuY3Rpb24gQWJzdHJh Y3RfUHJlc2VudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc0 CgogICBmdW5jdGlvbiBBY2NlcHRfSGFuZGxlcl9SZWNvcmRzCiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDUKCiAgIGZ1bmN0aW9uIEFjY2VwdF9TdGF0ZW1lbnQK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMgoKICAgZnVuY3Rp b24gQWNjZXNzX1R5cGVzX1RvX1Byb2Nlc3MKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlz dF9JZDsgICAtLSBFbGlzdDIKCiAgIGZ1bmN0aW9uIEFjdGlvbnMKICAgICAoTiA6IE5vZGVfSWQp IHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0MQoKICAgZnVuY3Rpb24gQWN0aXZhdGlvbl9DaGFp bl9FbnRpdHkKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoK ICAgZnVuY3Rpb24gQWN0c19Bc19TcGVjCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsgICAgLS0gRmxhZzQKCiAgIGZ1bmN0aW9uIEFnZ3JlZ2F0ZV9Cb3VuZHMKICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVuY3Rpb24gQWxpYXNlZF9Q cmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzQKCiAg IGZ1bmN0aW9uIEFsbF9PdGhlcnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAg ICAtLSBGbGFnMTEKCiAgIGZ1bmN0aW9uIEFsbF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzE1CgogICBmdW5jdGlvbiBBbHRlcm5hdGl2ZXMKICAg ICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0NAoKICAgZnVuY3Rpb24g QW5jZXN0b3JfUGFydAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5v ZGUzCgogICBmdW5jdGlvbiBBcnJheV9BZ2dyZWdhdGUKICAgICAoTiA6IE5vZGVfSWQpIHJldHVy biBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVuY3Rpb24gQXNzaWdubWVudF9PSwogICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxNQoKICAgZnVuY3Rpb24gQXNz b2NpYXRlZF9Ob2RlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9k ZTQKCiAgIGZ1bmN0aW9uIEF0X0VuZF9Qcm9jCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9k ZV9JZDsgICAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9uIEF0dHJpYnV0ZV9OYW1lCiAgICAgKE4gOiBO b2RlX0lkKSByZXR1cm4gTmFtZV9JZDsgICAgLS0gTmFtZTIKCiAgIGZ1bmN0aW9uIEF1eF9EZWNs c19Ob2RlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTUKCiAg IGZ1bmN0aW9uIEJhY2t3YXJkc19PSwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 ICAgIC0tIEZsYWc2CgogICBmdW5jdGlvbiBCYWRfSXNfRGV0ZWN0ZWQKICAgICAoTiA6IE5vZGVf SWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTUKCiAgIGZ1bmN0aW9uIEJ5X1JlZgogICAg IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc1CgogICBmdW5jdGlvbiBC b2R5X1JlcXVpcmVkCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxh ZzEzCgogICBmdW5jdGlvbiBCb2R5X1RvX0lubGluZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IE5vZGVfSWQ7ICAgIC0tIE5vZGUzCgogICBmdW5jdGlvbiBCb3hfUHJlc2VudAogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxNQoKICAgZnVuY3Rpb24gQ2hhcl9M aXRlcmFsX1ZhbHVlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQ2hhcl9Db2RlOyAgLS0gQ2hh cl9Db2RlMgoKICAgZnVuY3Rpb24gQ2hhcnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOYW1l X0lkOyAgICAtLSBOYW1lMQoKICAgZnVuY3Rpb24gQ2hvaWNlX1BhcmFtZXRlcgogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBDaG9pY2Vz CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDEKCiAgIGZ1bmN0 aW9uIENvbXBpbGVfVGltZV9Lbm93bl9BZ2dyZWdhdGUKICAgICAoTiA6IE5vZGVfSWQpIHJldHVy biBCb29sZWFuOyAgICAtLSBGbGFnMTgKCiAgIGZ1bmN0aW9uIENvbXBvbmVudF9Bc3NvY2lhdGlv bnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0MgoKICAgZnVu Y3Rpb24gQ29tcG9uZW50X0NsYXVzZXMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lk OyAgICAtLSBMaXN0MwoKICAgZnVuY3Rpb24gQ29tcG9uZW50X0l0ZW1zCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDMKCiAgIGZ1bmN0aW9uIENvbXBvbmVudF9M aXN0CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTEKCiAgIGZ1 bmN0aW9uIENvbXBvbmVudF9OYW1lCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsg ICAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9uIENvbmRpdGlvbgogICAgIChOIDogTm9kZV9JZCkgcmV0 dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUxCgogICBmdW5jdGlvbiBDb25kaXRpb25fQWN0aW9ucwog ICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3QzCgogICBmdW5jdGlv biBDb25zdGFudF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAg LS0gRmxhZzE3CgogICBmdW5jdGlvbiBDb25zdHJhaW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1 cm4gTm9kZV9JZDsgICAgLS0gTm9kZTMKCiAgIGZ1bmN0aW9uIENvbnN0cmFpbnRzCiAgICAgKE4g OiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDEKCiAgIGZ1bmN0aW9uIENvbnRl eHRfSW5zdGFsbGVkCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxh ZzEzCgogICBmdW5jdGlvbiBDb250ZXh0X0l0ZW1zCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g TGlzdF9JZDsgICAgLS0gTGlzdDEKCiAgIGZ1bmN0aW9uIENvbnRyb2xsaW5nX0FyZ3VtZW50CiAg ICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9u IENvbnZlcnNpb25fT0sKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBG bGFnMTQKCiAgIGZ1bmN0aW9uIENvcnJlc3BvbmRpbmdfQm9keQogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU1CgogICBmdW5jdGlvbiBDb3JyZXNwb25kaW5nX0dl bmVyaWNfQXNzb2NpYXRpb24KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAt LSBOb2RlNQoKICAgZnVuY3Rpb24gQ29ycmVzcG9uZGluZ19JbnRlZ2VyX1ZhbHVlCiAgICAgKE4g OiBOb2RlX0lkKSByZXR1cm4gVWludDsgICAgICAgLS0gVWludDQKCiAgIGZ1bmN0aW9uIENvcnJl c3BvbmRpbmdfU3BlYwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5v ZGU1CgogICBmdW5jdGlvbiBDb3JyZXNwb25kaW5nX1N0dWIKICAgICAoTiA6IE5vZGVfSWQpIHJl dHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVuY3Rpb24gRGNoZWNrX0Z1bmN0aW9uCiAg ICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gRW50aXR5X0lkOyAgLS0gTm9kZTUKCiAgIGZ1bmN0aW9u IERlYnVnX1N0YXRlbWVudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0t IE5vZGUzCgogICBmdW5jdGlvbiBEZWNsYXJhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVy biBMaXN0X0lkOyAgICAtLSBMaXN0MgoKICAgZnVuY3Rpb24gRGVmYXVsdF9FeHByZXNzaW9uCiAg ICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTUKCiAgIGZ1bmN0aW9u IERlZmF1bHRfTmFtZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5v ZGUyCgogICBmdW5jdGlvbiBEZWZpbmluZ19JZGVudGlmaWVyCiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gRW50aXR5X0lkOyAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9uIERlZmluaW5nX1VuaXRfTmFt ZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUxCgogICBmdW5j dGlvbiBEZWxheV9BbHRlcm5hdGl2ZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7 ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBEZWxheV9GaW5hbGl6ZV9BdHRhY2gKICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTQKCiAgIGZ1bmN0aW9uIERlbGF5 X1N0YXRlbWVudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUy CgogICBmdW5jdGlvbiBEZWx0YV9FeHByZXNzaW9uCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Tm9kZV9JZDsgICAgLS0gTm9kZTMKCiAgIGZ1bmN0aW9uIERpZ2l0c19FeHByZXNzaW9uCiAgICAg KE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIERp c2NyX0NoZWNrX0Z1bmNzX0J1aWx0CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsg ICAgLS0gRmxhZzExCgogICBmdW5jdGlvbiBEaXNjcmV0ZV9DaG9pY2VzCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDQKCiAgIGZ1bmN0aW9uIERpc2NyZXRlX1Jh bmdlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTQKCiAgIGZ1 bmN0aW9uIERpc2NyZXRlX1N1YnR5cGVfRGVmaW5pdGlvbgogICAgIChOIDogTm9kZV9JZCkgcmV0 dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBEaXNjcmV0ZV9TdWJ0eXBlX0Rl ZmluaXRpb25zCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDIK CiAgIGZ1bmN0aW9uIERpc2NyaW1pbmFudF9TcGVjaWZpY2F0aW9ucwogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3Q0CgogICBmdW5jdGlvbiBEaXNjcmltaW5hbnRf VHlwZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU1CgogICBm dW5jdGlvbiBEb19BY2Nlc3NfQ2hlY2sKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFu OyAgICAtLSBGbGFnMTEKCiAgIGZ1bmN0aW9uIERvX0FjY2Vzc2liaWxpdHlfQ2hlY2sKICAgICAo TiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTMKCiAgIGZ1bmN0aW9uIERv X0Rpc2NyaW1pbmFudF9DaGVjawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAg IC0tIEZsYWcxMwoKICAgZnVuY3Rpb24gRG9fRGl2aXNpb25fQ2hlY2sKICAgICAoTiA6IE5vZGVf SWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTMKCiAgIGZ1bmN0aW9uIERvX0xlbmd0aF9D aGVjawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc0CgogICBm dW5jdGlvbiBEb19PdmVyZmxvd19DaGVjawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xl YW47ICAgIC0tIEZsYWcxNwoKICAgZnVuY3Rpb24gRG9fUmFuZ2VfQ2hlY2sKICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnOQoKICAgZnVuY3Rpb24gRG9fU3RvcmFn ZV9DaGVjawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxNwoK ICAgZnVuY3Rpb24gRG9fVGFnX0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsgICAgLS0gRmxhZzEzCgogICBmdW5jdGlvbiBFbGFib3JhdGVfQWxsX1ByZXNlbnQKICAgICAo TiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTUKCiAgIGZ1bmN0aW9uIEVs YWJvcmF0ZV9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0g RmxhZzQKCiAgIGZ1bmN0aW9uIEVsYWJvcmF0aW9uX0Jvb2xlYW4KICAgICAoTiA6IE5vZGVfSWQp IHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMgoKICAgZnVuY3Rpb24gRWxzZV9BY3Rpb25zCiAg ICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDMKCiAgIGZ1bmN0aW9u IEVsc2VfU3RhdGVtZW50cwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0t IExpc3Q0CgogICBmdW5jdGlvbiBFbHNpZl9QYXJ0cwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IExpc3RfSWQ7ICAgIC0tIExpc3QzCgogICBmdW5jdGlvbiBFbmNsb3NpbmdfVmFyaWFudAogICAg IChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBF bmRfTGFiZWwKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNAoK ICAgZnVuY3Rpb24gRW5kX1NwYW4KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBVaW50OyAgICAg ICAtLSBVaW50NQoKICAgZnVuY3Rpb24gRW50aXR5CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Tm9kZV9JZDsgICAgLS0gTm9kZTQKCiAgIGZ1bmN0aW9uIEVudHJ5X0JvZHlfRm9ybWFsX1BhcnQK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNQoKICAgZnVuY3Rp b24gRW50cnlfQ2FsbF9BbHRlcm5hdGl2ZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVf SWQ7ICAgIC0tIE5vZGUxCgogICBmdW5jdGlvbiBFbnRyeV9DYWxsX1N0YXRlbWVudAogICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUxCgogICBmdW5jdGlvbiBFbnRy eV9EaXJlY3RfTmFtZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5v ZGUxCgogICBmdW5jdGlvbiBFbnRyeV9JbmRleAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5v ZGVfSWQ7ICAgIC0tIE5vZGU1CgogICBmdW5jdGlvbiBFbnRyeV9JbmRleF9TcGVjaWZpY2F0aW9u CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTQKCiAgIGZ1bmN0 aW9uIEV0eXBlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTUK CiAgIGZ1bmN0aW9uIEV4Y2VwdGlvbl9DaG9pY2VzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g TGlzdF9JZDsgICAgLS0gTGlzdDQKCiAgIGZ1bmN0aW9uIEV4Y2VwdGlvbl9IYW5kbGVycwogICAg IChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3Q1CgogICBmdW5jdGlvbiBF eGNlcHRpb25fSnVuawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZs YWcxMQoKICAgZnVuY3Rpb24gRXhwbGljaXRfQWN0dWFsX1BhcmFtZXRlcgogICAgIChOIDogTm9k ZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUzCgogICBmdW5jdGlvbiBFeHBhbnNpb25f RGVsYXllZAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxMQoK ICAgZnVuY3Rpb24gRXhwbGljaXRfR2VuZXJpY19BY3R1YWxfUGFyYW1ldGVyCiAgICAgKE4gOiBO b2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9uIEV4cHJlc3Np b24KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVu Y3Rpb24gRXhwcmVzc2lvbnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lkOyAgICAt LSBMaXN0MQoKICAgZnVuY3Rpb24gRmlyc3RfQml0CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Tm9kZV9JZDsgICAgLS0gTm9kZTMKCiAgIGZ1bmN0aW9uIEZpcnN0X0lubGluZWRfU3VicHJvZ3Jh bQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEVudGl0eV9JZDsgIC0tIE5vZGUzCgogICBmdW5j dGlvbiBGaXJzdF9OYW1lCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0g RmxhZzUKCiAgIGZ1bmN0aW9uIEZpcnN0X05hbWVkX0FjdHVhbAogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBGaXJzdF9SZWFsX1N0YXRl bWVudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBm dW5jdGlvbiBGaXJzdF9TdWJ0eXBlX0xpbmsKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBFbnRp dHlfSWQ7ICAtLSBOb2RlNQoKICAgZnVuY3Rpb24gRmxvYXRfVHJ1bmNhdGUKICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTEKCiAgIGZ1bmN0aW9uIEZvcm1hbF9U eXBlX0RlZmluaXRpb24KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBO b2RlMwoKICAgZnVuY3Rpb24gRm9yd2FyZHNfT0sKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOyAgICAtLSBGbGFnNQoKICAgZnVuY3Rpb24gRnJvbV9BdF9Nb2QKICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnNAoKICAgZnVuY3Rpb24gR2VuZXJpY19B c3NvY2lhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0 MwoKICAgZnVuY3Rpb24gR2VuZXJpY19Gb3JtYWxfRGVjbGFyYXRpb25zCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDIKCiAgIGZ1bmN0aW9uIEdlbmVyaWNfUGFy ZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTUKCiAgIGZ1 bmN0aW9uIEdlbmVyaWNfUGFyZW50X1R5cGUKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2Rl X0lkOyAgICAtLSBOb2RlNAoKICAgZnVuY3Rpb24gSGFuZGxlZF9TdGF0ZW1lbnRfU2VxdWVuY2UK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNAoKICAgZnVuY3Rp b24gSGFuZGxlcl9MaXN0X0VudHJ5CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsg ICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIEhhc19DcmVhdGVkX0lkZW50aWZpZXIKICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTUKCiAgIGZ1bmN0aW9uIEhhc19E eW5hbWljX0xlbmd0aF9DaGVjawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAg IC0tIEZsYWcxMAoKICAgZnVuY3Rpb24gSGFzX0R5bmFtaWNfUmFuZ2VfQ2hlY2sKICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTIKCiAgIGZ1bmN0aW9uIEhhc19O b19FbGFib3JhdGlvbl9Db2RlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAg LS0gRmxhZzE3CgogICBmdW5jdGlvbiBIYXNfUHJpb3JpdHlfUHJhZ21hCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzYKCiAgIGZ1bmN0aW9uIEhhc19Qcml2YXRl X1ZpZXcKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTEKCiAg IGZ1bmN0aW9uIEhhc19TdG9yYWdlX1NpemVfUHJhZ21hCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1 cm4gQm9vbGVhbjsgICAgLS0gRmxhZzUKCiAgIGZ1bmN0aW9uIEhhc19UYXNrX0luZm9fUHJhZ21h CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzcKCiAgIGZ1bmN0 aW9uIEhhc19UYXNrX05hbWVfUHJhZ21hCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsgICAgLS0gRmxhZzgKCiAgIGZ1bmN0aW9uIEhhc19XaWRlX0NoYXJhY3RlcgogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxMQoKICAgZnVuY3Rpb24gSGlkZGVu X0J5X1VzZV9DbGF1c2UKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBFbGlzdF9JZDsgICAtLSBF bGlzdDQKCiAgIGZ1bmN0aW9uIEhpZ2hfQm91bmQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBO b2RlX0lkOyAgICAtLSBOb2RlMgoKICAgZnVuY3Rpb24gSWRlbnRpZmllcgogICAgIChOIDogTm9k ZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUxCgogICBmdW5jdGlvbiBJbXBsaWNpdF9X aXRoCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzE3CgogICBm dW5jdGlvbiBJbl9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAg LS0gRmxhZzE1CgogICBmdW5jdGlvbiBJbmNsdWRlc19JbmZpbml0aWVzCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzExCgogICBmdW5jdGlvbiBJbnN0YW5jZV9T cGVjCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTUKCiAgIGZ1 bmN0aW9uIEludHZhbAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIFVpbnQ7ICAgICAgIC0tIFVp bnQzCgogICBmdW5jdGlvbiBJc19Bc3luY2hyb25vdXNfQ2FsbF9CbG9jawogICAgIChOIDogTm9k ZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc3CgogICBmdW5jdGlvbiBJc19Db21wb25l bnRfTGVmdF9PcG5kCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxh ZzEzCgogICBmdW5jdGlvbiBJc19Db21wb25lbnRfUmlnaHRfT3BuZAogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxNAoKICAgZnVuY3Rpb24gSXNfQ29udHJvbGxp bmdfQWN0dWFsCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzE2 CgogICBmdW5jdGlvbiBJc19NYWNoaW5lX051bWJlcgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47ICAgIC0tIEZsYWcxMQoKICAgZnVuY3Rpb24gSXNfT3ZlcmxvYWRlZAogICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc1CgogICBmdW5jdGlvbiBJc19Q b3dlcl9PZl8yX0Zvcl9TaGlmdAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAg IC0tIEZsYWcxMwoKICAgZnVuY3Rpb24gSXNfUHJvdGVjdGVkX1N1YnByb2dyYW1fQm9keQogICAg IChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc3CgogICBmdW5jdGlvbiBJ c19TdGF0aWNfRXhwcmVzc2lvbgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAg IC0tIEZsYWc2CgogICBmdW5jdGlvbiBJc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IKICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTYKCiAgIGZ1bmN0aW9uIElzX1Rh c2tfQWxsb2NhdGlvbl9CbG9jawogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAg IC0tIEZsYWc2CgogICBmdW5jdGlvbiBJc19UYXNrX01hc3RlcgogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc1CgogICBmdW5jdGlvbiBJdGVyYXRpb25fU2NoZW1l CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1bmN0 aW9uIEl0eXBlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gRW50aXR5X0lkOyAgLS0gTm9kZTEK CiAgIGZ1bmN0aW9uIEtpbGxfUmFuZ2VfQ2hlY2sKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOyAgICAtLSBGbGFnMTEKCiAgIGZ1bmN0aW9uIExhYmVsX0NvbnN0cnVjdAogICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBMZWZ0 X09wbmQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMgoKICAg ZnVuY3Rpb24gTGFzdF9CaXQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAt LSBOb2RlNAoKICAgZnVuY3Rpb24gTGFzdF9OYW1lCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Qm9vbGVhbjsgICAgLS0gRmxhZzYKCiAgIGZ1bmN0aW9uIExpYnJhcnlfVW5pdAogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBMaW1pdGVk X1ByZXNlbnQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTcK CiAgIGZ1bmN0aW9uIExpdGVyYWxzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsg ICAgLS0gTGlzdDEKCiAgIGZ1bmN0aW9uIExvb3BfQWN0aW9ucwogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3QyCgogICBmdW5jdGlvbiBMb29wX1BhcmFtZXRlcl9T cGVjaWZpY2F0aW9uCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9k ZTQKCiAgIGZ1bmN0aW9uIExvd19Cb3VuZAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVf SWQ7ICAgIC0tIE5vZGUxCgogICBmdW5jdGlvbiBNb2RfQ2xhdXNlCiAgICAgKE4gOiBOb2RlX0lk KSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIE1vcmVfSWRzCiAgICAg KE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzUKCiAgIGZ1bmN0aW9uIE11 c3RfTm90X0ZyZWV6ZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZs YWc4CgogICBmdW5jdGlvbiBOYW1lCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsg ICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIE5hbWVzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g TGlzdF9JZDsgICAgLS0gTGlzdDIKCiAgIGZ1bmN0aW9uIE5leHRfRW50aXR5CiAgICAgKE4gOiBO b2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIE5leHRfTmFt ZWRfQWN0dWFsCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTQK CiAgIGZ1bmN0aW9uIE5leHRfUmVwX0l0ZW0KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2Rl X0lkOyAgICAtLSBOb2RlNAoKICAgZnVuY3Rpb24gTmV4dF9Vc2VfQ2xhdXNlCiAgICAgKE4gOiBO b2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTMKCiAgIGZ1bmN0aW9uIE5vX0N0cmxf QWN0aW9ucwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc3Cgog ICBmdW5jdGlvbiBOb19FbnRpdGllc19SZWZfSW5fU3BlYwogICAgIChOIDogTm9kZV9JZCkgcmV0 dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc4CgogICBmdW5jdGlvbiBOb19Jbml0aWFsaXphdGlvbgog ICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxMwoKICAgZnVuY3Rp b24gTnVsbF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsgICAgLS0g RmxhZzEzCgogICBmdW5jdGlvbiBOdWxsX1JlY29yZF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lk KSByZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzE3CgogICBmdW5jdGlvbiBPYmplY3RfRGVmaW5p dGlvbgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBm dW5jdGlvbiBPS19Gb3JfU3RyZWFtCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVhbjsg ICAgLS0gRmxhZzQKCiAgIGZ1bmN0aW9uIE9yaWdpbmFsX0Rpc2NyaW1pbmFudAogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBPdGhlcnNf RGlzY3JldGVfQ2hvaWNlcwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0t IExpc3QxCgogICBmdW5jdGlvbiBPdXRfUHJlc2VudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IEJvb2xlYW47ICAgIC0tIEZsYWcxNwoKICAgZnVuY3Rpb24gUGFyYW1ldGVyX0Fzc29jaWF0aW9u cwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3QzCgogICBmdW5j dGlvbiBQYXJhbWV0ZXJfTGlzdF9UcnVuY2F0ZWQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOyAgICAtLSBGbGFnMTcKCiAgIGZ1bmN0aW9uIFBhcmFtZXRlcl9TcGVjaWZpY2F0aW9u cwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0tIExpc3QzCgogICBmdW5j dGlvbiBQYXJhbWV0ZXJfVHlwZQogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAg IC0tIE5vZGUyCgogICBmdW5jdGlvbiBQYXJlbnRfU3BlYwogICAgIChOIDogTm9kZV9JZCkgcmV0 dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBQb3NpdGlvbgogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBQcmFnbWFf QXJndW1lbnRfQXNzb2NpYXRpb25zCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsg ICAgLS0gTGlzdDIKCiAgIGZ1bmN0aW9uIFByYWdtYXNfQWZ0ZXIKICAgICAoTiA6IE5vZGVfSWQp IHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0NQoKICAgZnVuY3Rpb24gUHJhZ21hc19CZWZvcmUK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0NAoKICAgZnVuY3Rp b24gUHJlZml4CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTMK CiAgIGZ1bmN0aW9uIFByZXNlbnRfRXhwcgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIFVpbnQ7 ICAgICAgIC0tIFVpbnQzCgogICBmdW5jdGlvbiBQcmV2X0lkcwogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc2CgogICBmdW5jdGlvbiBQcmludF9Jbl9IZXgKICAg ICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTMKCiAgIGZ1bmN0aW9u IFByaXZhdGVfRGVjbGFyYXRpb25zCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsg ICAgLS0gTGlzdDMKCiAgIGZ1bmN0aW9uIFByaXZhdGVfUHJlc2VudAogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxNQoKICAgZnVuY3Rpb24gUHJvY2VkdXJlX1Rv X0NhbGwKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNAoKICAg ZnVuY3Rpb24gUHJvcGVyX0JvZHkKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAg ICAtLSBOb2RlMQoKICAgZnVuY3Rpb24gUHJvdGVjdGVkX0RlZmluaXRpb24KICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVuY3Rpb24gUHJvdGVjdGVk X1ByZXNlbnQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTUK CiAgIGZ1bmN0aW9uIFJhaXNlc19Db25zdHJhaW50X0Vycm9yCiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gQm9vbGVhbjsgICAgLS0gRmxhZzcKCiAgIGZ1bmN0aW9uIFJhbmdlX0NvbnN0cmFpbnQK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNAoKICAgZnVuY3Rp b24gUmFuZ2VfRXhwcmVzc2lvbgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAg IC0tIE5vZGU0CgogICBmdW5jdGlvbiBSZWFsX1JhbmdlX1NwZWNpZmljYXRpb24KICAgICAoTiA6 IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlNAoKICAgZnVuY3Rpb24gUmVhbHZh bAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIFVyZWFsOyAgICAgIC0tIFVyZWFsMwoKICAgZnVu Y3Rpb24gUmVjb3JkX0V4dGVuc2lvbl9QYXJ0CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9k ZV9JZDsgICAgLS0gTm9kZTMKCiAgIGZ1bmN0aW9uIFJlZHVuZGFudF9Vc2UKICAgICAoTiA6IE5v ZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnMTMKCiAgIGZ1bmN0aW9uIFJldHVybl9U eXBlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1 bmN0aW9uIFJldmVyc2VfUHJlc2VudAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47 ICAgIC0tIEZsYWcxNQoKICAgZnVuY3Rpb24gUmlnaHRfT3BuZAogICAgIChOIDogTm9kZV9JZCkg cmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUzCgogICBmdW5jdGlvbiBSb3VuZGVkX1Jlc3VsdAog ICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxOAoKICAgZnVuY3Rp b24gU2NvcGUKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoK ICAgZnVuY3Rpb24gU2VsZWN0X0FsdGVybmF0aXZlcwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJu IExpc3RfSWQ7ICAgIC0tIExpc3QxCgogICBmdW5jdGlvbiBTZWxlY3Rvcl9OYW1lCiAgICAgKE4g OiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsgICAgLS0gTm9kZTIKCiAgIGZ1bmN0aW9uIFNlbGVj dG9yX05hbWVzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDEK CiAgIGZ1bmN0aW9uIFNoaWZ0X0NvdW50X09LCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9v bGVhbjsgICAgLS0gRmxhZzQKCiAgIGZ1bmN0aW9uIFNvdXJjZV9UeXBlCiAgICAgKE4gOiBOb2Rl X0lkKSByZXR1cm4gRW50aXR5X0lkOyAgLS0gTm9kZTEKCiAgIGZ1bmN0aW9uIFNwZWNpZmljYXRp b24KICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMQoKICAgZnVu Y3Rpb24gU3RhdGVtZW50cwogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIExpc3RfSWQ7ICAgIC0t IExpc3QzCgogICBmdW5jdGlvbiBTdGF0aWNfUHJvY2Vzc2luZ19PSwogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc0CgogICBmdW5jdGlvbiBTdG9yYWdlX1Bvb2wK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMQoKICAgZnVuY3Rp b24gU3RydmFsCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gU3RyaW5nX0lkOyAgLS0gU3RyMwoK ICAgZnVuY3Rpb24gU3VidHlwZV9JbmRpY2F0aW9uCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4g Tm9kZV9JZDsgICAgLS0gTm9kZTUKCiAgIGZ1bmN0aW9uIFN1YnR5cGVfTWFyawogICAgIChOIDog Tm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGU0CgogICBmdW5jdGlvbiBTdWJ0eXBl X01hcmtzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDIKCiAg IGZ1bmN0aW9uIFRhZ2dlZF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gQm9vbGVh bjsgICAgLS0gRmxhZzE1CgogICBmdW5jdGlvbiBUYXJnZXRfVHlwZQogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIEVudGl0eV9JZDsgIC0tIE5vZGUyCgogICBmdW5jdGlvbiBUYXNrX0JvZHlfUHJv Y2VkdXJlCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gRW50aXR5X0lkOyAgLS0gTm9kZTIKCiAg IGZ1bmN0aW9uIFRhc2tfRGVmaW5pdGlvbgogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVf SWQ7ICAgIC0tIE5vZGUzCgogICBmdW5jdGlvbiBUaGVuX0FjdGlvbnMKICAgICAoTiA6IE5vZGVf SWQpIHJldHVybiBMaXN0X0lkOyAgICAtLSBMaXN0MgoKICAgZnVuY3Rpb24gVGhlbl9TdGF0ZW1l bnRzCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDIKCiAgIGZ1 bmN0aW9uIFRyZWF0X0ZpeGVkX0FzX0ludGVnZXIKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBC b29sZWFuOyAgICAtLSBGbGFnMTQKCiAgIGZ1bmN0aW9uIFRyaWdnZXJpbmdfQWx0ZXJuYXRpdmUK ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMQoKICAgZnVuY3Rp b24gVHJpZ2dlcmluZ19TdGF0ZW1lbnQKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lk OyAgICAtLSBOb2RlMQoKICAgZnVuY3Rpb24gVFNTX0VsaXN0CiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gRWxpc3RfSWQ7ICAgLS0gRWxpc3QzCgogICBmdW5jdGlvbiBUeXBlX0RlZmluaXRpb24K ICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBOb2RlX0lkOyAgICAtLSBOb2RlMwoKICAgZnVuY3Rp b24gVW5pdAogICAgIChOIDogTm9kZV9JZCkgcmV0dXJuIE5vZGVfSWQ7ICAgIC0tIE5vZGUyCgog ICBmdW5jdGlvbiBVbmtub3duX0Rpc2NyaW1pbmFudHNfUHJlc2VudAogICAgIChOIDogTm9kZV9J ZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWcxMwoKICAgZnVuY3Rpb24gVW5yZWZlcmVuY2Vk X0luX1NwZWMKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29sZWFuOyAgICAtLSBGbGFnNwoK ICAgZnVuY3Rpb24gVmFyaWFudF9QYXJ0CiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9J ZDsgICAgLS0gTm9kZTQKCiAgIGZ1bmN0aW9uIFZhcmlhbnRzCiAgICAgKE4gOiBOb2RlX0lkKSBy ZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDEKCiAgIGZ1bmN0aW9uIFZpc2libGVfRGVjbGFyYXRp b25zCiAgICAgKE4gOiBOb2RlX0lkKSByZXR1cm4gTGlzdF9JZDsgICAgLS0gTGlzdDIKCiAgIGZ1 bmN0aW9uIFdhc19PcmlnaW5hbGx5X1N0dWIKICAgICAoTiA6IE5vZGVfSWQpIHJldHVybiBCb29s ZWFuOyAgICAtLSBGbGFnMTMKCiAgIGZ1bmN0aW9uIFplcm9fQ29zdF9IYW5kbGluZwogICAgIChO IDogTm9kZV9JZCkgcmV0dXJuIEJvb2xlYW47ICAgIC0tIEZsYWc1CgogICAtLSAgRW5kIGZ1bmN0 aW9ucyAobm90ZSB1c2VkIGJ5IHhzaW5mbyB1dGlsaXR5IHByb2dyYW0gdG8gZW5kIHByb2Nlc3Np bmcpCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE5vZGUgVXBkYXRlIFBy b2NlZHVyZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZXNl IGFyZSB0aGUgY29ycmVzcG9uZGluZyBub2RlIHVwZGF0ZSByb3V0aW5lcywgd2hpY2ggYWdhaW4g cHJvdmlkZQogICAtLSAgYSBoaWdoIGxldmVsIGxvZ2ljYWwgYWNjZXNzIHdpdGggdHlwZSBjaGVj a2luZy4gSW4gYWRkaXRpb24gdG8gc2V0dGluZwogICAtLSAgdGhlIGluZGljYXRlZCBmaWVsZCBv ZiB0aGUgbm9kZSBOIHRvIHRoZSBnaXZlbiBWYWwsIGluIHRoZSBjYXNlIG9mCiAgIC0tICB0cmVl IHBvaW50ZXJzIChMaXN0MS00KSwgdGhlIHBhcmVudCBwb2ludGVyIG9mIHRoZSBWYWwgbm9kZSBp cyBzZXQgdG8KICAgLS0gIHBvaW50IGJhY2sgdG8gbm9kZSBOLiBUaGlzIGF1dG9tYXRlcyB0aGUg c2V0dGluZyBvZiB0aGUgcGFyZW50IHBvaW50ZXIuCgogICBwcm9jZWR1cmUgU2V0X0FCRV9Jc19D ZXJ0YWluCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBG bGFnMTgKCiAgIHByb2NlZHVyZSBTZXRfQWJvcnRfUHJlc2VudAogICAgIChOIDogTm9kZV9JZDsg VmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzE1CgogICBwcm9jZWR1cmUgU2V0X0Fi b3J0YWJsZV9QYXJ0CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAg ICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9BYnN0cmFjdF9QcmVzZW50CiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNAoKICAgcHJvY2VkdXJl IFNldF9BY2NlcHRfSGFuZGxlcl9SZWNvcmRzCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0 X0lkKTsgICAgICAgICAgICAtLSBMaXN0NQoKICAgcHJvY2VkdXJlIFNldF9BY2NlcHRfU3RhdGVt ZW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2Rl MgoKICAgcHJvY2VkdXJlIFNldF9BY2Nlc3NfVHlwZXNfVG9fUHJvY2VzcwogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogRWxpc3RfSWQpOyAgICAgICAgICAgLS0gRWxpc3QyCgogICBwcm9jZWR1cmUg U2V0X0FjdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAg IC0tIExpc3QxCgogICBwcm9jZWR1cmUgU2V0X0FjdGl2YXRpb25fQ2hhaW5fRW50aXR5CiAgICAg KE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMwoKICAgcHJv Y2VkdXJlIFNldF9BY3RzX0FzX1NwZWMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4g Oj0gVHJ1ZSk7ICAgIC0tIEZsYWc0CgogICBwcm9jZWR1cmUgU2V0X0FnZ3JlZ2F0ZV9Cb3VuZHMK ICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgog ICBwcm9jZWR1cmUgU2V0X0FsaWFzZWRfUHJlc2VudAogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzQKCiAgIHByb2NlZHVyZSBTZXRfQWxsX090aGVy cwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzEx CgogICBwcm9jZWR1cmUgU2V0X0FsbF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTUKCiAgIHByb2NlZHVyZSBTZXRfQWx0ZXJuYXRp dmVzCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0 NAoKICAgcHJvY2VkdXJlIFNldF9BbmNlc3Rvcl9QYXJ0CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwg OiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMwoKICAgcHJvY2VkdXJlIFNldF9BcnJheV9B Z2dyZWdhdGUKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0t IE5vZGUzCgogICBwcm9jZWR1cmUgU2V0X0Fzc2lnbm1lbnRfT0sKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNQoKICAgcHJvY2VkdXJlIFNldF9B c3NvY2lhdGVkX05vZGUKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAg ICAgIC0tIE5vZGU0CgogICBwcm9jZWR1cmUgU2V0X0F0dHJpYnV0ZV9OYW1lCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBOYW1lX0lkKTsgICAgICAgICAgICAtLSBOYW1lMgoKICAgcHJvY2VkdXJl IFNldF9BdF9FbmRfUHJvYwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAg ICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfQXV4X0RlY2xzX05vZGUKICAgICAoTiA6 IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU1CgogICBwcm9jZWR1 cmUgU2V0X0JhY2t3YXJkc19PSwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzYKCiAgIHByb2NlZHVyZSBTZXRfQmFkX0lzX0RldGVjdGVkCiAgICAg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTUKCiAgIHBy b2NlZHVyZSBTZXRfQm9keV9SZXF1aXJlZAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh biA6PSBUcnVlKTsgICAgLS0gRmxhZzEzCgogICBwcm9jZWR1cmUgU2V0X0JvZHlfVG9fSW5saW5l CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMwoK ICAgcHJvY2VkdXJlIFNldF9Cb3hfUHJlc2VudAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9v bGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzE1CgogICBwcm9jZWR1cmUgU2V0X0J5X1JlZgogICAg IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzUKCiAgIHBy b2NlZHVyZSBTZXRfQ2hhcl9MaXRlcmFsX1ZhbHVlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBD aGFyX0NvZGUpOyAgICAgICAgICAtLSBDaGFyX0NvZGUyCgogICBwcm9jZWR1cmUgU2V0X0NoYXJz CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOYW1lX0lkKTsgICAgICAgICAgICAtLSBOYW1lMQoK ICAgcHJvY2VkdXJlIFNldF9DaG9pY2VfUGFyYW1ldGVyCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwg OiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9DaG9pY2Vz CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MQoK ICAgcHJvY2VkdXJlIFNldF9Db21waWxlX1RpbWVfS25vd25fQWdncmVnYXRlCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTgKCiAgIHByb2NlZHVy ZSBTZXRfQ29tcG9uZW50X0Fzc29jaWF0aW9ucwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlz dF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDIKCiAgIHByb2NlZHVyZSBTZXRfQ29tcG9uZW50X0Ns YXVzZXMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAgIC0tIExp c3QzCgogICBwcm9jZWR1cmUgU2V0X0NvbXBvbmVudF9JdGVtcwogICAgIChOIDogTm9kZV9JZDsg VmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDMKCiAgIHByb2NlZHVyZSBTZXRfQ29t cG9uZW50X0xpc3QKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAg IC0tIE5vZGUxCgogICBwcm9jZWR1cmUgU2V0X0NvbXBvbmVudF9OYW1lCiAgICAgKE4gOiBOb2Rl X0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMQoKICAgcHJvY2VkdXJlIFNl dF9Db25kaXRpb24KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAg IC0tIE5vZGUxCgogICBwcm9jZWR1cmUgU2V0X0NvbmRpdGlvbl9BY3Rpb25zCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MwoKICAgcHJvY2VkdXJl IFNldF9Db25zdGFudF9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9 IFRydWUpOyAgICAtLSBGbGFnMTcKCiAgIHByb2NlZHVyZSBTZXRfQ29uc3RyYWludAogICAgIChO IDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTMKCiAgIHByb2Nl ZHVyZSBTZXRfQ29uc3RyYWludHMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAg ICAgICAgICAgIC0tIExpc3QxCgogICBwcm9jZWR1cmUgU2V0X0NvbnRleHRfSW5zdGFsbGVkCiAg ICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTMKCiAg IHByb2NlZHVyZSBTZXRfQ29udGV4dF9JdGVtcwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlz dF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDEKCiAgIHByb2NlZHVyZSBTZXRfQ29udHJvbGxpbmdf QXJndW1lbnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0t IE5vZGUxCgogICBwcm9jZWR1cmUgU2V0X0NvbnZlcnNpb25fT0sKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNAoKICAgcHJvY2VkdXJlIFNldF9D b3JyZXNwb25kaW5nX0JvZHkKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAg ICAgICAgIC0tIE5vZGU1CgogICBwcm9jZWR1cmUgU2V0X0NvcnJlc3BvbmRpbmdfR2VuZXJpY19B c3NvY2lhdGlvbgogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAg LS0gTm9kZTUKCiAgIHByb2NlZHVyZSBTZXRfQ29ycmVzcG9uZGluZ19JbnRlZ2VyX1ZhbHVlCiAg ICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBVaW50KTsgICAgICAgICAgICAgICAtLSBVaW50NAoKICAg cHJvY2VkdXJlIFNldF9Db3JyZXNwb25kaW5nX1NwZWMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6 IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU1CgogICBwcm9jZWR1cmUgU2V0X0NvcnJlc3Bv bmRpbmdfU3R1YgogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAg LS0gTm9kZTMKCiAgIHByb2NlZHVyZSBTZXRfRGNoZWNrX0Z1bmN0aW9uCiAgICAgKE4gOiBOb2Rl X0lkOyBWYWwgOiBFbnRpdHlfSWQpOyAgICAgICAgICAtLSBOb2RlNQoKICAgcHJvY2VkdXJlIFNl dF9EZWJ1Z19TdGF0ZW1lbnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAg ICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1cmUgU2V0X0RlY2xhcmF0aW9ucwogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDIKCiAgIHByb2NlZHVy ZSBTZXRfRGVmYXVsdF9FeHByZXNzaW9uCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lk KTsgICAgICAgICAgICAtLSBOb2RlNQoKICAgcHJvY2VkdXJlIFNldF9EZWZhdWx0X05hbWUKICAg ICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUyCgogICBw cm9jZWR1cmUgU2V0X0RlZmluaW5nX0lkZW50aWZpZXIKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6 IEVudGl0eV9JZCk7ICAgICAgICAgIC0tIE5vZGUxCgogICBwcm9jZWR1cmUgU2V0X0RlZmluaW5n X1VuaXRfTmFtZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAg LS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfRGVsYXlfQWx0ZXJuYXRpdmUKICAgICAoTiA6IE5v ZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU0CgogICBwcm9jZWR1cmUg U2V0X0RlbGF5X0ZpbmFsaXplX0F0dGFjaAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVh biA6PSBUcnVlKTsgICAgLS0gRmxhZzE0CgogICBwcm9jZWR1cmUgU2V0X0RlbGF5X1N0YXRlbWVu dAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIK CiAgIHByb2NlZHVyZSBTZXRfRGVsdGFfRXhwcmVzc2lvbgogICAgIChOIDogTm9kZV9JZDsgVmFs IDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTMKCiAgIHByb2NlZHVyZSBTZXRfRGlnaXRz X0V4cHJlc3Npb24KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAg IC0tIE5vZGUyCgogICBwcm9jZWR1cmUgU2V0X0Rpc2NyX0NoZWNrX0Z1bmNzX0J1aWx0CiAgICAg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTEKCiAgIHBy b2NlZHVyZSBTZXRfRGlzY3JldGVfQ2hvaWNlcwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlz dF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDQKCiAgIHByb2NlZHVyZSBTZXRfRGlzY3JldGVfUmFu Z2UKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU0 CgogICBwcm9jZWR1cmUgU2V0X0Rpc2NyZXRlX1N1YnR5cGVfRGVmaW5pdGlvbgogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVy ZSBTZXRfRGlzY3JldGVfU3VidHlwZV9EZWZpbml0aW9ucwogICAgIChOIDogTm9kZV9JZDsgVmFs IDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDIKCiAgIHByb2NlZHVyZSBTZXRfRGlzY3Jp bWluYW50X1NwZWNpZmljYXRpb25zCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsg ICAgICAgICAgICAtLSBMaXN0NAoKICAgcHJvY2VkdXJlIFNldF9EaXNjcmltaW5hbnRfVHlwZQog ICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTUKCiAg IHByb2NlZHVyZSBTZXRfRG9fQWNjZXNzX0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTEKCiAgIHByb2NlZHVyZSBTZXRfRG9fQWNjZXNz aWJpbGl0eV9DaGVjawogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsg ICAgLS0gRmxhZzEzCgogICBwcm9jZWR1cmUgU2V0X0RvX0Rpc2NyaW1pbmFudF9DaGVjawogICAg IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzEzCgogICBw cm9jZWR1cmUgU2V0X0RvX0RpdmlzaW9uX0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTMKCiAgIHByb2NlZHVyZSBTZXRfRG9fTGVuZ3Ro X0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBG bGFnNAoKICAgcHJvY2VkdXJlIFNldF9Eb19PdmVyZmxvd19DaGVjawogICAgIChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzE3CgogICBwcm9jZWR1cmUgU2V0 X0RvX1JhbmdlX0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUp OyAgICAtLSBGbGFnOQoKICAgcHJvY2VkdXJlIFNldF9Eb19TdG9yYWdlX0NoZWNrCiAgICAgKE4g OiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTcKCiAgIHByb2Nl ZHVyZSBTZXRfRG9fVGFnX0NoZWNrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9 IFRydWUpOyAgICAtLSBGbGFnMTMKCiAgIHByb2NlZHVyZSBTZXRfRWxhYm9yYXRlX0FsbF9QcmVz ZW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFn MTUKCiAgIHByb2NlZHVyZSBTZXRfRWxhYm9yYXRlX1ByZXNlbnQKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc0CgogICBwcm9jZWR1cmUgU2V0X0Vs YWJvcmF0aW9uX0Jvb2xlYW4KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAg ICAgICAgIC0tIE5vZGUyCgogICBwcm9jZWR1cmUgU2V0X0Vsc2VfQWN0aW9ucwogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDMKCiAgIHByb2NlZHVy ZSBTZXRfRWxzZV9TdGF0ZW1lbnRzCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsg ICAgICAgICAgICAtLSBMaXN0NAoKICAgcHJvY2VkdXJlIFNldF9FbHNpZl9QYXJ0cwogICAgIChO IDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDMKCiAgIHByb2Nl ZHVyZSBTZXRfRW5jbG9zaW5nX1ZhcmlhbnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVf SWQpOyAgICAgICAgICAgIC0tIE5vZGUyCgogICBwcm9jZWR1cmUgU2V0X0VuZF9MYWJlbAogICAg IChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHBy b2NlZHVyZSBTZXRfRW5kX1NwYW4KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVpbnQpOyAgICAg ICAgICAgICAgIC0tIFVpbnQ1CgogICBwcm9jZWR1cmUgU2V0X0VudGl0eQogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVyZSBT ZXRfRW50cnlfQm9keV9Gb3JtYWxfUGFydAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9J ZCk7ICAgICAgICAgICAgLS0gTm9kZTUKCiAgIHByb2NlZHVyZSBTZXRfRW50cnlfQ2FsbF9BbHRl cm5hdGl2ZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0g Tm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfRW50cnlfQ2FsbF9TdGF0ZW1lbnQKICAgICAoTiA6IE5v ZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUxCgogICBwcm9jZWR1cmUg U2V0X0VudHJ5X0RpcmVjdF9OYW1lCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsg ICAgICAgICAgICAtLSBOb2RlMQoKICAgcHJvY2VkdXJlIFNldF9FbnRyeV9JbmRleAogICAgIChO IDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTUKCiAgIHByb2Nl ZHVyZSBTZXRfRW50cnlfSW5kZXhfU3BlY2lmaWNhdGlvbgogICAgIChOIDogTm9kZV9JZDsgVmFs IDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVyZSBTZXRfRXR5cGUK ICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU1Cgog ICBwcm9jZWR1cmUgU2V0X0V4Y2VwdGlvbl9DaG9pY2VzCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwg OiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0NAoKICAgcHJvY2VkdXJlIFNldF9FeGNlcHRp b25fSGFuZGxlcnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAg IC0tIExpc3Q1CgogICBwcm9jZWR1cmUgU2V0X0V4Y2VwdGlvbl9KdW5rCiAgICAgKE4gOiBOb2Rl X0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTEKCiAgIHByb2NlZHVyZSBT ZXRfRXhwYW5zaW9uX0RlbGF5ZWQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0g VHJ1ZSk7ICAgIC0tIEZsYWcxMQoKICAgcHJvY2VkdXJlIFNldF9FeHBsaWNpdF9BY3R1YWxfUGFy YW1ldGVyCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBO b2RlMwoKICAgcHJvY2VkdXJlIFNldF9FeHBsaWNpdF9HZW5lcmljX0FjdHVhbF9QYXJhbWV0ZXIK ICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUxCgog ICBwcm9jZWR1cmUgU2V0X0V4cHJlc3Npb24KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVf SWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1cmUgU2V0X0V4cHJlc3Npb25zCiAg ICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MQoKICAg cHJvY2VkdXJlIFNldF9GaXJzdF9CaXQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQp OyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1cmUgU2V0X0ZpcnN0X0lubGluZWRfU3Vi cHJvZ3JhbQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogRW50aXR5X0lkKTsgICAgICAgICAgLS0g Tm9kZTMKCiAgIHByb2NlZHVyZSBTZXRfRmlyc3RfTmFtZQogICAgIChOIDogTm9kZV9JZDsgVmFs IDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzUKCiAgIHByb2NlZHVyZSBTZXRfRmlyc3Rf TmFtZWRfQWN0dWFsCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAg ICAtLSBOb2RlNAoKICAgcHJvY2VkdXJlIFNldF9GaXJzdF9SZWFsX1N0YXRlbWVudAogICAgIChO IDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2Nl ZHVyZSBTZXRfRmlyc3RfU3VidHlwZV9MaW5rCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBFbnRp dHlfSWQpOyAgICAgICAgICAtLSBOb2RlNQoKICAgcHJvY2VkdXJlIFNldF9GbG9hdF9UcnVuY2F0 ZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzEx CgogICBwcm9jZWR1cmUgU2V0X0Zvcm1hbF9UeXBlX0RlZmluaXRpb24KICAgICAoTiA6IE5vZGVf SWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1cmUgU2V0 X0ZvcndhcmRzX09LCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAg ICAtLSBGbGFnNQoKICAgcHJvY2VkdXJlIFNldF9Gcm9tX0F0X01vZAogICAgIChOIDogTm9kZV9J ZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzQKCiAgIHByb2NlZHVyZSBTZXRf R2VuZXJpY19Bc3NvY2lhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAg ICAgICAgICAgIC0tIExpc3QzCgogICBwcm9jZWR1cmUgU2V0X0dlbmVyaWNfRm9ybWFsX0RlY2xh cmF0aW9ucwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0g TGlzdDIKCiAgIHByb2NlZHVyZSBTZXRfR2VuZXJpY19QYXJlbnQKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU1CgogICBwcm9jZWR1cmUgU2V0X0dl bmVyaWNfUGFyZW50X1R5cGUKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAg ICAgICAgIC0tIE5vZGU0CgogICBwcm9jZWR1cmUgU2V0X0hhbmRsZWRfU3RhdGVtZW50X1NlcXVl bmNlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2Rl NAoKICAgcHJvY2VkdXJlIFNldF9IYW5kbGVyX0xpc3RfRW50cnkKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUyCgogICBwcm9jZWR1cmUgU2V0X0hh c19DcmVhdGVkX0lkZW50aWZpZXIKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0g VHJ1ZSk7ICAgIC0tIEZsYWcxNQoKICAgcHJvY2VkdXJlIFNldF9IYXNfRHluYW1pY19MZW5ndGhf Q2hlY2sKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZs YWcxMAoKICAgcHJvY2VkdXJlIFNldF9IYXNfRHluYW1pY19SYW5nZV9DaGVjawogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzEyCgogICBwcm9jZWR1 cmUgU2V0X0hhc19Ob19FbGFib3JhdGlvbl9Db2RlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBC b29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTcKCiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByaW9y aXR5X1ByYWdtYQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAg LS0gRmxhZzYKCiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByaXZhdGVfVmlldwogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzExCgogICBwcm9jZWR1cmUg U2V0X0hhc19TdG9yYWdlX1NpemVfUHJhZ21hCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29s ZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNQoKICAgcHJvY2VkdXJlIFNldF9IYXNfVGFza19JbmZv X1ByYWdtYQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0g RmxhZzcKCiAgIHByb2NlZHVyZSBTZXRfSGFzX1Rhc2tfTmFtZV9QcmFnbWEKICAgICAoTiA6IE5v ZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc4CgogICBwcm9jZWR1cmUg U2V0X0hhc19XaWRlX0NoYXJhY3RlcgogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6 PSBUcnVlKTsgICAgLS0gRmxhZzExCgogICBwcm9jZWR1cmUgU2V0X0hpZGRlbl9CeV9Vc2VfQ2xh dXNlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBFbGlzdF9JZCk7ICAgICAgICAgICAtLSBFbGlz dDQKCiAgIHByb2NlZHVyZSBTZXRfSGlnaF9Cb3VuZAogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Tm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2NlZHVyZSBTZXRfSWRlbnRpZmll cgogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTEK CiAgIHByb2NlZHVyZSBTZXRfSW1wbGljaXRfV2l0aAogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Qm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzE3CgogICBwcm9jZWR1cmUgU2V0X0luX1ByZXNl bnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcx NQoKICAgcHJvY2VkdXJlIFNldF9JbmNsdWRlc19JbmZpbml0aWVzCiAgICAgKE4gOiBOb2RlX0lk OyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTEKCiAgIHByb2NlZHVyZSBTZXRf SW5zdGFuY2VfU3BlYwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAg ICAgLS0gTm9kZTUKCiAgIHByb2NlZHVyZSBTZXRfSW50dmFsCiAgICAgKE4gOiBOb2RlX0lkOyBW YWwgOiBVaW50KTsgICAgICAgICAgICAgICAtLSBVaW50MwoKICAgcHJvY2VkdXJlIFNldF9Jc19B c3luY2hyb25vdXNfQ2FsbF9CbG9jawogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6 PSBUcnVlKTsgICAgLS0gRmxhZzcKCiAgIHByb2NlZHVyZSBTZXRfSXNfQ29tcG9uZW50X0xlZnRf T3BuZAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxh ZzEzCgogICBwcm9jZWR1cmUgU2V0X0lzX0NvbXBvbmVudF9SaWdodF9PcG5kCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTQKCiAgIHByb2NlZHVy ZSBTZXRfSXNfQ29udHJvbGxpbmdfQWN0dWFsCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29s ZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTYKCiAgIHByb2NlZHVyZSBTZXRfSXNfTWFjaGluZV9O dW1iZXIKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZs YWcxMQoKICAgcHJvY2VkdXJlIFNldF9Jc19PdmVybG9hZGVkCiAgICAgKE4gOiBOb2RlX0lkOyBW YWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNQoKICAgcHJvY2VkdXJlIFNldF9Jc19Q b3dlcl9PZl8yX0Zvcl9TaGlmdAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzEzCgogICBwcm9jZWR1cmUgU2V0X0lzX1Byb3RlY3RlZF9TdWJwcm9n cmFtX0JvZHkKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0t IEZsYWc3CgogICBwcm9jZWR1cmUgU2V0X0lzX1N0YXRpY19FeHByZXNzaW9uCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNgoKICAgcHJvY2VkdXJl IFNldF9Jc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJv b2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNgoKICAgcHJvY2VkdXJlIFNldF9Jc19UYXNrX0Fs bG9jYXRpb25fQmxvY2sKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7 ICAgIC0tIEZsYWc2CgogICBwcm9jZWR1cmUgU2V0X0lzX1Rhc2tfTWFzdGVyCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNQoKICAgcHJvY2VkdXJl IFNldF9JdGVyYXRpb25fU2NoZW1lCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsg ICAgICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9JdHlwZQogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogRW50aXR5X0lkKTsgICAgICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBT ZXRfS2lsbF9SYW5nZV9DaGVjawogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzExCgogICBwcm9jZWR1cmUgU2V0X0xhc3RfQml0CiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlNAoKICAgcHJvY2VkdXJl IFNldF9MYXN0X05hbWUKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7 ICAgIC0tIEZsYWc2CgogICBwcm9jZWR1cmUgU2V0X0xpYnJhcnlfVW5pdAogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVyZSBT ZXRfTGFiZWxfQ29uc3RydWN0CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAg ICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9MZWZ0X09wbmQKICAgICAoTiA6IE5v ZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUyCgogICBwcm9jZWR1cmUg U2V0X0xpbWl0ZWRfUHJlc2VudAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzE3CgogICBwcm9jZWR1cmUgU2V0X0xpdGVyYWxzCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MQoKICAgcHJvY2VkdXJl IFNldF9Mb29wX0FjdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAg ICAgICAgIC0tIExpc3QyCgogICBwcm9jZWR1cmUgU2V0X0xvb3BfUGFyYW1ldGVyX1NwZWNpZmlj YXRpb24KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5v ZGU0CgogICBwcm9jZWR1cmUgU2V0X0xvd19Cb3VuZAogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Tm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfTW9kX0NsYXVz ZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIK CiAgIHByb2NlZHVyZSBTZXRfTW9yZV9JZHMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xl YW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc1CgogICBwcm9jZWR1cmUgU2V0X011c3RfTm90X0ZyZWV6 ZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzgK CiAgIHByb2NlZHVyZSBTZXRfTmFtZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7 ICAgICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2NlZHVyZSBTZXRfTmFtZXMKICAgICAoTiA6IE5v ZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAgIC0tIExpc3QyCgogICBwcm9jZWR1cmUg U2V0X05leHRfRW50aXR5CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAg ICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9OZXh0X05hbWVkX0FjdHVhbAogICAgIChO IDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2Nl ZHVyZSBTZXRfTmV4dF9SZXBfSXRlbQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7 ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVyZSBTZXRfTmV4dF9Vc2VfQ2xhdXNlCiAg ICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMwoKICAg cHJvY2VkdXJlIFNldF9Ob19DdHJsX0FjdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJv b2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc3CgogICBwcm9jZWR1cmUgU2V0X05vX0VudGl0aWVz X1JlZl9Jbl9TcGVjCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAg ICAtLSBGbGFnOAoKICAgcHJvY2VkdXJlIFNldF9Ob19Jbml0aWFsaXphdGlvbgogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzEzCgogICBwcm9jZWR1 cmUgU2V0X051bGxfUHJlc2VudAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzEzCgogICBwcm9jZWR1cmUgU2V0X051bGxfUmVjb3JkX1ByZXNlbnQK ICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNwoK ICAgcHJvY2VkdXJlIFNldF9PYmplY3RfRGVmaW5pdGlvbgogICAgIChOIDogTm9kZV9JZDsgVmFs IDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTQKCiAgIHByb2NlZHVyZSBTZXRfT0tfRm9y X1N0cmVhbQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0g RmxhZzQKCiAgIHByb2NlZHVyZSBTZXRfT3JpZ2luYWxfRGlzY3JpbWluYW50CiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJl IFNldF9PdGhlcnNfRGlzY3JldGVfQ2hvaWNlcwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlz dF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDEKCiAgIHByb2NlZHVyZSBTZXRfT3V0X1ByZXNlbnQK ICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNwoK ICAgcHJvY2VkdXJlIFNldF9QYXJhbWV0ZXJfQXNzb2NpYXRpb25zCiAgICAgKE4gOiBOb2RlX0lk OyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MwoKICAgcHJvY2VkdXJlIFNldF9Q YXJhbWV0ZXJfTGlzdF9UcnVuY2F0ZWQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4g Oj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNwoKICAgcHJvY2VkdXJlIFNldF9QYXJhbWV0ZXJfU3BlY2lm aWNhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAgIC0t IExpc3QzCgogICBwcm9jZWR1cmUgU2V0X1BhcmFtZXRlcl9UeXBlCiAgICAgKE4gOiBOb2RlX0lk OyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9Q YXJlbnRfU3BlYwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAg LS0gTm9kZTQKCiAgIHByb2NlZHVyZSBTZXRfUG9zaXRpb24KICAgICAoTiA6IE5vZGVfSWQ7IFZh bCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUyCgogICBwcm9jZWR1cmUgU2V0X1ByYWdt YV9Bcmd1bWVudF9Bc3NvY2lhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQp OyAgICAgICAgICAgIC0tIExpc3QyCgogICBwcm9jZWR1cmUgU2V0X1ByYWdtYXNfQWZ0ZXIKICAg ICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAgICAgICAgICAgIC0tIExpc3Q1CgogICBw cm9jZWR1cmUgU2V0X1ByYWdtYXNfQmVmb3JlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0 X0lkKTsgICAgICAgICAgICAtLSBMaXN0NAoKICAgcHJvY2VkdXJlIFNldF9QcmVmaXgKICAgICAo TiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9j ZWR1cmUgU2V0X1ByZXNlbnRfRXhwcgogICAgIChOIDogTm9kZV9JZDsgVmFsIDogVWludCk7ICAg ICAgICAgICAgICAgLS0gVWludDMKCiAgIHByb2NlZHVyZSBTZXRfUHJldl9JZHMKICAgICAoTiA6 IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc2CgogICBwcm9jZWR1 cmUgU2V0X1ByaW50X0luX0hleAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBU cnVlKTsgICAgLS0gRmxhZzEzCgogICBwcm9jZWR1cmUgU2V0X1ByaXZhdGVfRGVjbGFyYXRpb25z CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MwoK ICAgcHJvY2VkdXJlIFNldF9Qcml2YXRlX1ByZXNlbnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6 IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcxNQoKICAgcHJvY2VkdXJlIFNldF9Qcm9jZWR1 cmVfVG9fQ2FsbAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAg LS0gTm9kZTQKCiAgIHByb2NlZHVyZSBTZXRfUHJvcGVyX0JvZHkKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUxCgogICBwcm9jZWR1cmUgU2V0X1By b3RlY3RlZF9EZWZpbml0aW9uCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAg ICAgICAgICAtLSBOb2RlMwoKICAgcHJvY2VkdXJlIFNldF9Qcm90ZWN0ZWRfUHJlc2VudAogICAg IChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzE1CgogICBw cm9jZWR1cmUgU2V0X1JhaXNlc19Db25zdHJhaW50X0Vycm9yCiAgICAgKE4gOiBOb2RlX0lkOyBW YWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNwoKICAgcHJvY2VkdXJlIFNldF9SYW5n ZV9Db25zdHJhaW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAg ICAtLSBOb2RlNAoKICAgcHJvY2VkdXJlIFNldF9SYW5nZV9FeHByZXNzaW9uCiAgICAgKE4gOiBO b2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2RlNAoKICAgcHJvY2VkdXJl IFNldF9SZWFsX1JhbmdlX1NwZWNpZmljYXRpb24KICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5v ZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGU0CgogICBwcm9jZWR1cmUgU2V0X1JlYWx2YWwKICAg ICAoTiA6IE5vZGVfSWQ7IFZhbCA6IFVyZWFsKTsgICAgICAgICAgICAgIC0tIFVyZWFsMwoKICAg cHJvY2VkdXJlIFNldF9SZWNvcmRfRXh0ZW5zaW9uX1BhcnQKICAgICAoTiA6IE5vZGVfSWQ7IFZh bCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1cmUgU2V0X1JlZHVu ZGFudF9Vc2UKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0t IEZsYWcxMwoKICAgcHJvY2VkdXJlIFNldF9SZXR1cm5fVHlwZQogICAgIChOIDogTm9kZV9JZDsg VmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2NlZHVyZSBTZXRfUmV2 ZXJzZV9QcmVzZW50CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAg ICAtLSBGbGFnMTUKCiAgIHByb2NlZHVyZSBTZXRfUmlnaHRfT3BuZAogICAgIChOIDogTm9kZV9J ZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTMKCiAgIHByb2NlZHVyZSBTZXRf Um91bmRlZF9SZXN1bHQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7 ICAgIC0tIEZsYWcxOAoKICAgcHJvY2VkdXJlIFNldF9TY29wZQogICAgIChOIDogTm9kZV9JZDsg VmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTMKCiAgIHByb2NlZHVyZSBTZXRfU2Vs ZWN0X0FsdGVybmF0aXZlcwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAg ICAgICAgLS0gTGlzdDEKCiAgIHByb2NlZHVyZSBTZXRfU2VsZWN0b3JfTmFtZQogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2NlZHVy ZSBTZXRfU2VsZWN0b3JfTmFtZXMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQpOyAg ICAgICAgICAgIC0tIExpc3QxCgogICBwcm9jZWR1cmUgU2V0X1NoaWZ0X0NvdW50X09LCiAgICAg KE4gOiBOb2RlX0lkOyBWYWwgOiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnNAoKICAgcHJv Y2VkdXJlIFNldF9Tb3VyY2VfVHlwZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogRW50aXR5X0lk KTsgICAgICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfU3BlY2lmaWNhdGlvbgogICAg IChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTEKCiAgIHBy b2NlZHVyZSBTZXRfU3RhdGVtZW50cwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7 ICAgICAgICAgICAgLS0gTGlzdDMKCiAgIHByb2NlZHVyZSBTZXRfU3RhdGljX1Byb2Nlc3Npbmdf T0sKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4pOyAgICAgICAgICAgIC0tIEZsYWc0 CgogICBwcm9jZWR1cmUgU2V0X1N0b3JhZ2VfUG9vbAogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Tm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfU3RydmFsCiAg ICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBTdHJpbmdfSWQpOyAgICAgICAgICAtLSBTdHIzCgogICBw cm9jZWR1cmUgU2V0X1N1YnR5cGVfSW5kaWNhdGlvbgogICAgIChOIDogTm9kZV9JZDsgVmFsIDog Tm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTUKCiAgIHByb2NlZHVyZSBTZXRfU3VidHlwZV9N YXJrCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAgICAgICAgICAtLSBOb2Rl NAoKICAgcHJvY2VkdXJlIFNldF9TdWJ0eXBlX01hcmtzCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwg OiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MgoKICAgcHJvY2VkdXJlIFNldF9UYWdnZWRf UHJlc2VudAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0g RmxhZzE1CgogICBwcm9jZWR1cmUgU2V0X1RhcmdldF9UeXBlCiAgICAgKE4gOiBOb2RlX0lkOyBW YWwgOiBFbnRpdHlfSWQpOyAgICAgICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9UYXNr X0JvZHlfUHJvY2VkdXJlCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBFbnRpdHlfSWQpOyAgICAg ICAgICAtLSBOb2RlMgoKICAgcHJvY2VkdXJlIFNldF9UYXNrX0RlZmluaXRpb24KICAgICAoTiA6 IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUzCgogICBwcm9jZWR1 cmUgU2V0X1RoZW5fQWN0aW9ucwogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAg ICAgICAgICAgLS0gTGlzdDIKCiAgIHByb2NlZHVyZSBTZXRfVGhlbl9TdGF0ZW1lbnRzCiAgICAg KE4gOiBOb2RlX0lkOyBWYWwgOiBMaXN0X0lkKTsgICAgICAgICAgICAtLSBMaXN0MgoKICAgcHJv Y2VkdXJlIFNldF9UcmVhdF9GaXhlZF9Bc19JbnRlZ2VyCiAgICAgKE4gOiBOb2RlX0lkOyBWYWwg OiBCb29sZWFuIDo9IFRydWUpOyAgICAtLSBGbGFnMTQKCiAgIHByb2NlZHVyZSBTZXRfVHJpZ2dl cmluZ19BbHRlcm5hdGl2ZQogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAg ICAgICAgLS0gTm9kZTEKCiAgIHByb2NlZHVyZSBTZXRfVHJpZ2dlcmluZ19TdGF0ZW1lbnQKICAg ICAoTiA6IE5vZGVfSWQ7IFZhbCA6IE5vZGVfSWQpOyAgICAgICAgICAgIC0tIE5vZGUxCgogICBw cm9jZWR1cmUgU2V0X1RTU19FbGlzdAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogRWxpc3RfSWQp OyAgICAgICAgICAgLS0gRWxpc3QzCgogICBwcm9jZWR1cmUgU2V0X1R5cGVfRGVmaW5pdGlvbgog ICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAgICAgICAgICAgLS0gTm9kZTMKCiAg IHByb2NlZHVyZSBTZXRfVW5pdAogICAgIChOIDogTm9kZV9JZDsgVmFsIDogTm9kZV9JZCk7ICAg ICAgICAgICAgLS0gTm9kZTIKCiAgIHByb2NlZHVyZSBTZXRfVW5rbm93bl9EaXNjcmltaW5hbnRz X1ByZXNlbnQKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0t IEZsYWcxMwoKICAgcHJvY2VkdXJlIFNldF9VbnJlZmVyZW5jZWRfSW5fU3BlYwogICAgIChOIDog Tm9kZV9JZDsgVmFsIDogQm9vbGVhbiA6PSBUcnVlKTsgICAgLS0gRmxhZzcKCiAgIHByb2NlZHVy ZSBTZXRfVmFyaWFudF9QYXJ0CiAgICAgKE4gOiBOb2RlX0lkOyBWYWwgOiBOb2RlX0lkKTsgICAg ICAgICAgICAtLSBOb2RlNAoKICAgcHJvY2VkdXJlIFNldF9WYXJpYW50cwogICAgIChOIDogTm9k ZV9JZDsgVmFsIDogTGlzdF9JZCk7ICAgICAgICAgICAgLS0gTGlzdDEKCiAgIHByb2NlZHVyZSBT ZXRfVmlzaWJsZV9EZWNsYXJhdGlvbnMKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IExpc3RfSWQp OyAgICAgICAgICAgIC0tIExpc3QyCgogICBwcm9jZWR1cmUgU2V0X1dhc19PcmlnaW5hbGx5X1N0 dWIKICAgICAoTiA6IE5vZGVfSWQ7IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWcx MwoKICAgcHJvY2VkdXJlIFNldF9aZXJvX0Nvc3RfSGFuZGxpbmcKICAgICAoTiA6IE5vZGVfSWQ7 IFZhbCA6IEJvb2xlYW4gOj0gVHJ1ZSk7ICAgIC0tIEZsYWc1CgogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIEl0ZXJhdG9yIFByb2NlZHVyZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgLS0gIFRoZSBjYWxsIHRvIE5leHRfeHh4IChOKSBpcyBlcXVpdmFsZW50 IHRvIE4gOj0gTmV4dF94eHggKE4pCgogICBwcm9jZWR1cmUgTmV4dF9FbnRpdHkgICAgICAgKE4g OiBpbiBvdXQgTm9kZV9JZCk7CiAgIHByb2NlZHVyZSBOZXh0X05hbWVkX0FjdHVhbCAoTiA6IGlu IG91dCBOb2RlX0lkKTsKICAgcHJvY2VkdXJlIE5leHRfUmVwX0l0ZW0gICAgIChOIDogaW4gb3V0 IE5vZGVfSWQpOwogICBwcm9jZWR1cmUgTmV4dF9Vc2VfQ2xhdXNlICAgKE4gOiBpbiBvdXQgTm9k ZV9JZCk7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBM b2dpY2FsIEFjY2VzcyB0byBFbmRfU3BhbiBGaWVsZCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gRW5kX0xvY2F0aW9uIChOIDogTm9kZV9J ZCkgcmV0dXJuIFNvdXJjZV9QdHI7CiAgIC0tICBOIGlzIGFuIE5fSWZfU3RhdGVtZW50IG9yIE5f Q2FzZV9TdGF0ZW1lbnQgbm9kZSwgYW5kIHRoaXMKICAgLS0gIGZ1bmN0aW9uIHJldHVybnMgdGhl IGxvY2F0aW9uIG9mIHRoZSBJRiB0b2tlbiBpbiB0aGUgRU5EIElGCiAgIC0tICBzZXF1ZW5jZSBi eSB0cmFuc2xhdGluZyB0aGUgdmFsdWUgb2YgdGhlIEVuZF9TcGFuIGZpZWxkLgoKICAgcHJvY2Vk dXJlIFNldF9FbmRfTG9jYXRpb24gKE4gOiBOb2RlX0lkOyBTIDogU291cmNlX1B0cik7CiAgIC0t ICBOIGlzIGFuIE5fSWZfU3RhdGVtZW50IG9yIE5fQ2FzZV9TdGF0ZW1lbnQgbm9kZS4gVGhpcyBw cm9jZWR1cmUKICAgLS0gIHNldHMgdGhlIEVuZF9TcGFuIGZpZWxkIHRvIGNvcnJlc3BvbmQgdG8g dGhlIGdpdmVuIHZhbHVlIFMuIEluCiAgIC0tICBvdGhlciB3b3JkcywgRW5kX1NwYW4gaXMgc2V0 IHRvIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gUyBhbmQKICAgLS0gIFNsb2MgKE4pLCB0aGUgc3Rh cnRpbmcgbG9jYXRpb24uCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBJbmxpbmUgUHJh Z21hcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJhZ21hIElubGluZSAoQUJFX0lz X0NlcnRhaW4pOwogICBwcmFnbWEgSW5saW5lIChBYm9ydF9QcmVzZW50KTsKICAgcHJhZ21hIElu bGluZSAoQWJvcnRhYmxlX1BhcnQpOwogICBwcmFnbWEgSW5saW5lIChBYnN0cmFjdF9QcmVzZW50 KTsKICAgcHJhZ21hIElubGluZSAoQWNjZXB0X0hhbmRsZXJfUmVjb3Jkcyk7CiAgIHByYWdtYSBJ bmxpbmUgKEFjY2VwdF9TdGF0ZW1lbnQpOwogICBwcmFnbWEgSW5saW5lIChBY2Nlc3NfVHlwZXNf VG9fUHJvY2Vzcyk7CiAgIHByYWdtYSBJbmxpbmUgKEFjdGlvbnMpOwogICBwcmFnbWEgSW5saW5l IChBY3RpdmF0aW9uX0NoYWluX0VudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUgKEFjdHNfQXNfU3Bl Yyk7CiAgIHByYWdtYSBJbmxpbmUgKEFnZ3JlZ2F0ZV9Cb3VuZHMpOwogICBwcmFnbWEgSW5saW5l IChBbGlhc2VkX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChBbGxfT3RoZXJzKTsKICAgcHJh Z21hIElubGluZSAoQWxsX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChBbHRlcm5hdGl2ZXMp OwogICBwcmFnbWEgSW5saW5lIChBbmNlc3Rvcl9QYXJ0KTsKICAgcHJhZ21hIElubGluZSAoQXJy YXlfQWdncmVnYXRlKTsKICAgcHJhZ21hIElubGluZSAoQXNzaWdubWVudF9PSyk7CiAgIHByYWdt YSBJbmxpbmUgKEFzc29jaWF0ZWRfTm9kZSk7CiAgIHByYWdtYSBJbmxpbmUgKEF0X0VuZF9Qcm9j KTsKICAgcHJhZ21hIElubGluZSAoQXR0cmlidXRlX05hbWUpOwogICBwcmFnbWEgSW5saW5lIChB dXhfRGVjbHNfTm9kZSk7CiAgIHByYWdtYSBJbmxpbmUgKEJhY2t3YXJkc19PSyk7CiAgIHByYWdt YSBJbmxpbmUgKEJhZF9Jc19EZXRlY3RlZCk7CiAgIHByYWdtYSBJbmxpbmUgKEJvZHlfVG9fSW5s aW5lKTsKICAgcHJhZ21hIElubGluZSAoQm9keV9SZXF1aXJlZCk7CiAgIHByYWdtYSBJbmxpbmUg KEJ5X1JlZik7CiAgIHByYWdtYSBJbmxpbmUgKEJveF9QcmVzZW50KTsKICAgcHJhZ21hIElubGlu ZSAoQ2hhcl9MaXRlcmFsX1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoQ2hhcnMpOwogICBwcmFn bWEgSW5saW5lIChDaG9pY2VfUGFyYW1ldGVyKTsKICAgcHJhZ21hIElubGluZSAoQ2hvaWNlcyk7 CiAgIHByYWdtYSBJbmxpbmUgKENvbXBpbGVfVGltZV9Lbm93bl9BZ2dyZWdhdGUpOwogICBwcmFn bWEgSW5saW5lIChDb21wb25lbnRfQXNzb2NpYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoQ29t cG9uZW50X0NsYXVzZXMpOwogICBwcmFnbWEgSW5saW5lIChDb21wb25lbnRfSXRlbXMpOwogICBw cmFnbWEgSW5saW5lIChDb21wb25lbnRfTGlzdCk7CiAgIHByYWdtYSBJbmxpbmUgKENvbXBvbmVu dF9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoQ29uZGl0aW9uKTsKICAgcHJhZ21hIElubGluZSAo Q29uZGl0aW9uX0FjdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChDb25zdGFudF9QcmVzZW50KTsK ICAgcHJhZ21hIElubGluZSAoQ29uc3RyYWludCk7CiAgIHByYWdtYSBJbmxpbmUgKENvbnN0cmFp bnRzKTsKICAgcHJhZ21hIElubGluZSAoQ29udGV4dF9JbnN0YWxsZWQpOwogICBwcmFnbWEgSW5s aW5lIChDb250ZXh0X0l0ZW1zKTsKICAgcHJhZ21hIElubGluZSAoQ29udHJvbGxpbmdfQXJndW1l bnQpOwogICBwcmFnbWEgSW5saW5lIChDb252ZXJzaW9uX09LKTsKICAgcHJhZ21hIElubGluZSAo Q29ycmVzcG9uZGluZ19Cb2R5KTsKICAgcHJhZ21hIElubGluZSAoQ29ycmVzcG9uZGluZ19HZW5l cmljX0Fzc29jaWF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoQ29ycmVzcG9uZGluZ19JbnRlZ2Vy X1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoQ29ycmVzcG9uZGluZ19TcGVjKTsKICAgcHJhZ21h IElubGluZSAoQ29ycmVzcG9uZGluZ19TdHViKTsKICAgcHJhZ21hIElubGluZSAoRGNoZWNrX0Z1 bmN0aW9uKTsKICAgcHJhZ21hIElubGluZSAoRGVidWdfU3RhdGVtZW50KTsKICAgcHJhZ21hIElu bGluZSAoRGVjbGFyYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoRGVmYXVsdF9FeHByZXNzaW9u KTsKICAgcHJhZ21hIElubGluZSAoRGVmYXVsdF9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoRGVm aW5pbmdfSWRlbnRpZmllcik7CiAgIHByYWdtYSBJbmxpbmUgKERlZmluaW5nX1VuaXRfTmFtZSk7 CiAgIHByYWdtYSBJbmxpbmUgKERlbGF5X0FsdGVybmF0aXZlKTsKICAgcHJhZ21hIElubGluZSAo RGVsYXlfRmluYWxpemVfQXR0YWNoKTsKICAgcHJhZ21hIElubGluZSAoRGVsYXlfU3RhdGVtZW50 KTsKICAgcHJhZ21hIElubGluZSAoRGVsdGFfRXhwcmVzc2lvbik7CiAgIHByYWdtYSBJbmxpbmUg KERpZ2l0c19FeHByZXNzaW9uKTsKICAgcHJhZ21hIElubGluZSAoRGlzY3JfQ2hlY2tfRnVuY3Nf QnVpbHQpOwogICBwcmFnbWEgSW5saW5lIChEaXNjcmV0ZV9DaG9pY2VzKTsKICAgcHJhZ21hIElu bGluZSAoRGlzY3JldGVfUmFuZ2UpOwogICBwcmFnbWEgSW5saW5lIChEaXNjcmV0ZV9TdWJ0eXBl X0RlZmluaXRpb24pOwogICBwcmFnbWEgSW5saW5lIChEaXNjcmV0ZV9TdWJ0eXBlX0RlZmluaXRp b25zKTsKICAgcHJhZ21hIElubGluZSAoRGlzY3JpbWluYW50X1NwZWNpZmljYXRpb25zKTsKICAg cHJhZ21hIElubGluZSAoRGlzY3JpbWluYW50X1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChEb19B Y2Nlc3NfQ2hlY2spOwogICBwcmFnbWEgSW5saW5lIChEb19BY2Nlc3NpYmlsaXR5X0NoZWNrKTsK ICAgcHJhZ21hIElubGluZSAoRG9fRGlzY3JpbWluYW50X0NoZWNrKTsKICAgcHJhZ21hIElubGlu ZSAoRG9fTGVuZ3RoX0NoZWNrKTsKICAgcHJhZ21hIElubGluZSAoRG9fRGl2aXNpb25fQ2hlY2sp OwogICBwcmFnbWEgSW5saW5lIChEb19PdmVyZmxvd19DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUg KERvX1JhbmdlX0NoZWNrKTsKICAgcHJhZ21hIElubGluZSAoRG9fU3RvcmFnZV9DaGVjayk7CiAg IHByYWdtYSBJbmxpbmUgKERvX1RhZ19DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKEVsYWJvcmF0 ZV9QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAoRWxhYm9yYXRlX0FsbF9QcmVzZW50KTsKICAg cHJhZ21hIElubGluZSAoRWxhYm9yYXRpb25fQm9vbGVhbik7CiAgIHByYWdtYSBJbmxpbmUgKEVs c2VfQWN0aW9ucyk7CiAgIHByYWdtYSBJbmxpbmUgKEVsc2VfU3RhdGVtZW50cyk7CiAgIHByYWdt YSBJbmxpbmUgKEVsc2lmX1BhcnRzKTsKICAgcHJhZ21hIElubGluZSAoRW5jbG9zaW5nX1Zhcmlh bnQpOwogICBwcmFnbWEgSW5saW5lIChFbmRfTGFiZWwpOwogICBwcmFnbWEgSW5saW5lIChFbmRf U3Bhbik7CiAgIHByYWdtYSBJbmxpbmUgKEVudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUgKEVudHJ5 X0JvZHlfRm9ybWFsX1BhcnQpOwogICBwcmFnbWEgSW5saW5lIChFbnRyeV9DYWxsX0FsdGVybmF0 aXZlKTsKICAgcHJhZ21hIElubGluZSAoRW50cnlfQ2FsbF9TdGF0ZW1lbnQpOwogICBwcmFnbWEg SW5saW5lIChFbnRyeV9EaXJlY3RfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKEVudHJ5X0luZGV4 KTsKICAgcHJhZ21hIElubGluZSAoRW50cnlfSW5kZXhfU3BlY2lmaWNhdGlvbik7CiAgIHByYWdt YSBJbmxpbmUgKEV0eXBlKTsKICAgcHJhZ21hIElubGluZSAoRXhjZXB0aW9uX0Nob2ljZXMpOwog ICBwcmFnbWEgSW5saW5lIChFeGNlcHRpb25fSnVuayk7CiAgIHByYWdtYSBJbmxpbmUgKEV4Y2Vw dGlvbl9IYW5kbGVycyk7CiAgIHByYWdtYSBJbmxpbmUgKEV4cGFuc2lvbl9EZWxheWVkKTsKICAg cHJhZ21hIElubGluZSAoRXhwbGljaXRfQWN0dWFsX1BhcmFtZXRlcik7CiAgIHByYWdtYSBJbmxp bmUgKEV4cGxpY2l0X0dlbmVyaWNfQWN0dWFsX1BhcmFtZXRlcik7CiAgIHByYWdtYSBJbmxpbmUg KEV4cHJlc3Npb24pOwogICBwcmFnbWEgSW5saW5lIChFeHByZXNzaW9ucyk7CiAgIHByYWdtYSBJ bmxpbmUgKEZpcnN0X0JpdCk7CiAgIHByYWdtYSBJbmxpbmUgKEZpcnN0X0lubGluZWRfU3VicHJv Z3JhbSk7CiAgIHByYWdtYSBJbmxpbmUgKEZpcnN0X05hbWUpOwogICBwcmFnbWEgSW5saW5lIChG aXJzdF9OYW1lZF9BY3R1YWwpOwogICBwcmFnbWEgSW5saW5lIChGaXJzdF9SZWFsX1N0YXRlbWVu dCk7CiAgIHByYWdtYSBJbmxpbmUgKEZpcnN0X1N1YnR5cGVfTGluayk7CiAgIHByYWdtYSBJbmxp bmUgKEZsb2F0X1RydW5jYXRlKTsKICAgcHJhZ21hIElubGluZSAoRm9ybWFsX1R5cGVfRGVmaW5p dGlvbik7CiAgIHByYWdtYSBJbmxpbmUgKEZvcndhcmRzX09LKTsKICAgcHJhZ21hIElubGluZSAo RnJvbV9BdF9Nb2QpOwogICBwcmFnbWEgSW5saW5lIChHZW5lcmljX0Fzc29jaWF0aW9ucyk7CiAg IHByYWdtYSBJbmxpbmUgKEdlbmVyaWNfRm9ybWFsX0RlY2xhcmF0aW9ucyk7CiAgIHByYWdtYSBJ bmxpbmUgKEdlbmVyaWNfUGFyZW50KTsKICAgcHJhZ21hIElubGluZSAoR2VuZXJpY19QYXJlbnRf VHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhbmRsZWRfU3RhdGVtZW50X1NlcXVlbmNlKTsKICAg cHJhZ21hIElubGluZSAoSGFuZGxlcl9MaXN0X0VudHJ5KTsKICAgcHJhZ21hIElubGluZSAoSGFz X0NyZWF0ZWRfSWRlbnRpZmllcik7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19EeW5hbWljX0xlbmd0 aF9DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19EeW5hbWljX1JhbmdlX0NoZWNrKTsKICAg cHJhZ21hIElubGluZSAoSGFzX05vX0VsYWJvcmF0aW9uX0NvZGUpOwogICBwcmFnbWEgSW5saW5l IChIYXNfUHJpb3JpdHlfUHJhZ21hKTsKICAgcHJhZ21hIElubGluZSAoSGFzX1ByaXZhdGVfVmll dyk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19TdG9yYWdlX1NpemVfUHJhZ21hKTsKICAgcHJhZ21h IElubGluZSAoSGFzX1Rhc2tfSW5mb19QcmFnbWEpOwogICBwcmFnbWEgSW5saW5lIChIYXNfVGFz a19OYW1lX1ByYWdtYSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19XaWRlX0NoYXJhY3Rlcik7CiAg IHByYWdtYSBJbmxpbmUgKEhpZGRlbl9CeV9Vc2VfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAo SGlnaF9Cb3VuZCk7CiAgIHByYWdtYSBJbmxpbmUgKElkZW50aWZpZXIpOwogICBwcmFnbWEgSW5s aW5lIChJbXBsaWNpdF9XaXRoKTsKICAgcHJhZ21hIElubGluZSAoSW5jbHVkZXNfSW5maW5pdGll cyk7CiAgIHByYWdtYSBJbmxpbmUgKEluX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChJbnN0 YW5jZV9TcGVjKTsKICAgcHJhZ21hIElubGluZSAoSW50dmFsKTsKICAgcHJhZ21hIElubGluZSAo SXNfQXN5bmNocm9ub3VzX0NhbGxfQmxvY2spOwogICBwcmFnbWEgSW5saW5lIChJc19Db21wb25l bnRfTGVmdF9PcG5kKTsKICAgcHJhZ21hIElubGluZSAoSXNfQ29tcG9uZW50X1JpZ2h0X09wbmQp OwogICBwcmFnbWEgSW5saW5lIChJc19Db250cm9sbGluZ19BY3R1YWwpOwogICBwcmFnbWEgSW5s aW5lIChJc19NYWNoaW5lX051bWJlcik7CiAgIHByYWdtYSBJbmxpbmUgKElzX092ZXJsb2FkZWQp OwogICBwcmFnbWEgSW5saW5lIChJc19Qb3dlcl9PZl8yX0Zvcl9TaGlmdCk7CiAgIHByYWdtYSBJ bmxpbmUgKElzX1Byb3RlY3RlZF9TdWJwcm9ncmFtX0JvZHkpOwogICBwcmFnbWEgSW5saW5lIChJ c19TdGF0aWNfRXhwcmVzc2lvbik7CiAgIHByYWdtYSBJbmxpbmUgKElzX1N1YnByb2dyYW1fRGVz Y3JpcHRvcik7CiAgIHByYWdtYSBJbmxpbmUgKElzX1Rhc2tfQWxsb2NhdGlvbl9CbG9jayk7CiAg IHByYWdtYSBJbmxpbmUgKElzX1Rhc2tfTWFzdGVyKTsKICAgcHJhZ21hIElubGluZSAoSXRlcmF0 aW9uX1NjaGVtZSk7CiAgIHByYWdtYSBJbmxpbmUgKEl0eXBlKTsKICAgcHJhZ21hIElubGluZSAo S2lsbF9SYW5nZV9DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKExhc3RfQml0KTsKICAgcHJhZ21h IElubGluZSAoTGFzdF9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoTGlicmFyeV9Vbml0KTsKICAg cHJhZ21hIElubGluZSAoTGFiZWxfQ29uc3RydWN0KTsKICAgcHJhZ21hIElubGluZSAoTGVmdF9P cG5kKTsKICAgcHJhZ21hIElubGluZSAoTGltaXRlZF9QcmVzZW50KTsKICAgcHJhZ21hIElubGlu ZSAoTGl0ZXJhbHMpOwogICBwcmFnbWEgSW5saW5lIChMb29wX0FjdGlvbnMpOwogICBwcmFnbWEg SW5saW5lIChMb29wX1BhcmFtZXRlcl9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21hIElubGluZSAo TG93X0JvdW5kKTsKICAgcHJhZ21hIElubGluZSAoTW9kX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxp bmUgKE1vcmVfSWRzKTsKICAgcHJhZ21hIElubGluZSAoTXVzdF9Ob3RfRnJlZXplKTsKICAgcHJh Z21hIElubGluZSAoTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKE5hbWVzKTsKICAgcHJhZ21hIElu bGluZSAoTmV4dF9FbnRpdHkpOwogICBwcmFnbWEgSW5saW5lIChOZXh0X05hbWVkX0FjdHVhbCk7 CiAgIHByYWdtYSBJbmxpbmUgKE5leHRfUmVwX0l0ZW0pOwogICBwcmFnbWEgSW5saW5lIChOZXh0 X1VzZV9DbGF1c2UpOwogICBwcmFnbWEgSW5saW5lIChOb19DdHJsX0FjdGlvbnMpOwogICBwcmFn bWEgSW5saW5lIChOb19FbnRpdGllc19SZWZfSW5fU3BlYyk7CiAgIHByYWdtYSBJbmxpbmUgKE5v X0luaXRpYWxpemF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoTnVsbF9QcmVzZW50KTsKICAgcHJh Z21hIElubGluZSAoTnVsbF9SZWNvcmRfUHJlc2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKE9iamVj dF9EZWZpbml0aW9uKTsKICAgcHJhZ21hIElubGluZSAoT0tfRm9yX1N0cmVhbSk7CiAgIHByYWdt YSBJbmxpbmUgKE9yaWdpbmFsX0Rpc2NyaW1pbmFudCk7CiAgIHByYWdtYSBJbmxpbmUgKE90aGVy c19EaXNjcmV0ZV9DaG9pY2VzKTsKICAgcHJhZ21hIElubGluZSAoT3V0X1ByZXNlbnQpOwogICBw cmFnbWEgSW5saW5lIChQYXJhbWV0ZXJfQXNzb2NpYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAo UGFyYW1ldGVyX1NwZWNpZmljYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoUGFyYW1ldGVyX0xp c3RfVHJ1bmNhdGVkKTsKICAgcHJhZ21hIElubGluZSAoUGFyYW1ldGVyX1R5cGUpOwogICBwcmFn bWEgSW5saW5lIChQYXJlbnRfU3BlYyk7CiAgIHByYWdtYSBJbmxpbmUgKFBvc2l0aW9uKTsKICAg cHJhZ21hIElubGluZSAoUHJhZ21hX0FyZ3VtZW50X0Fzc29jaWF0aW9ucyk7CiAgIHByYWdtYSBJ bmxpbmUgKFByYWdtYXNfQWZ0ZXIpOwogICBwcmFnbWEgSW5saW5lIChQcmFnbWFzX0JlZm9yZSk7 CiAgIHByYWdtYSBJbmxpbmUgKFByZWZpeCk7CiAgIHByYWdtYSBJbmxpbmUgKFByZXNlbnRfRXhw cik7CiAgIHByYWdtYSBJbmxpbmUgKFByZXZfSWRzKTsKICAgcHJhZ21hIElubGluZSAoUHJpbnRf SW5fSGV4KTsKICAgcHJhZ21hIElubGluZSAoUHJpdmF0ZV9EZWNsYXJhdGlvbnMpOwogICBwcmFn bWEgSW5saW5lIChQcml2YXRlX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChQcm9jZWR1cmVf VG9fQ2FsbCk7CiAgIHByYWdtYSBJbmxpbmUgKFByb3Blcl9Cb2R5KTsKICAgcHJhZ21hIElubGlu ZSAoUHJvdGVjdGVkX0RlZmluaXRpb24pOwogICBwcmFnbWEgSW5saW5lIChQcm90ZWN0ZWRfUHJl c2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFJhaXNlc19Db25zdHJhaW50X0Vycm9yKTsKICAgcHJh Z21hIElubGluZSAoUmFuZ2VfQ29uc3RyYWludCk7CiAgIHByYWdtYSBJbmxpbmUgKFJhbmdlX0V4 cHJlc3Npb24pOwogICBwcmFnbWEgSW5saW5lIChSZWFsdmFsKTsKICAgcHJhZ21hIElubGluZSAo UmVhbF9SYW5nZV9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21hIElubGluZSAoUmVjb3JkX0V4dGVu c2lvbl9QYXJ0KTsKICAgcHJhZ21hIElubGluZSAoUmVkdW5kYW50X1VzZSk7CiAgIHByYWdtYSBJ bmxpbmUgKFJldHVybl9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoUmV2ZXJzZV9QcmVzZW50KTsK ICAgcHJhZ21hIElubGluZSAoUmlnaHRfT3BuZCk7CiAgIHByYWdtYSBJbmxpbmUgKFJvdW5kZWRf UmVzdWx0KTsKICAgcHJhZ21hIElubGluZSAoU2NvcGUpOwogICBwcmFnbWEgSW5saW5lIChTZWxl Y3RfQWx0ZXJuYXRpdmVzKTsKICAgcHJhZ21hIElubGluZSAoU2VsZWN0b3JfTmFtZSk7CiAgIHBy YWdtYSBJbmxpbmUgKFNlbGVjdG9yX05hbWVzKTsKICAgcHJhZ21hIElubGluZSAoU2hpZnRfQ291 bnRfT0spOwogICBwcmFnbWEgSW5saW5lIChTb3VyY2VfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUg KFNwZWNpZmljYXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTdGF0ZW1lbnRzKTsKICAgcHJhZ21h IElubGluZSAoU3RhdGljX1Byb2Nlc3NpbmdfT0spOwogICBwcmFnbWEgSW5saW5lIChTdG9yYWdl X1Bvb2wpOwogICBwcmFnbWEgSW5saW5lIChTdHJ2YWwpOwogICBwcmFnbWEgSW5saW5lIChTdWJ0 eXBlX0luZGljYXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTdWJ0eXBlX01hcmspOwogICBwcmFn bWEgSW5saW5lIChTdWJ0eXBlX01hcmtzKTsKICAgcHJhZ21hIElubGluZSAoVGFnZ2VkX1ByZXNl bnQpOwogICBwcmFnbWEgSW5saW5lIChUYXJnZXRfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKFRh c2tfQm9keV9Qcm9jZWR1cmUpOwogICBwcmFnbWEgSW5saW5lIChUYXNrX0RlZmluaXRpb24pOwog ICBwcmFnbWEgSW5saW5lIChUaGVuX0FjdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChUaGVuX1N0 YXRlbWVudHMpOwogICBwcmFnbWEgSW5saW5lIChUcmlnZ2VyaW5nX0FsdGVybmF0aXZlKTsKICAg cHJhZ21hIElubGluZSAoVHJpZ2dlcmluZ19TdGF0ZW1lbnQpOwogICBwcmFnbWEgSW5saW5lIChU cmVhdF9GaXhlZF9Bc19JbnRlZ2VyKTsKICAgcHJhZ21hIElubGluZSAoVFNTX0VsaXN0KTsKICAg cHJhZ21hIElubGluZSAoVHlwZV9EZWZpbml0aW9uKTsKICAgcHJhZ21hIElubGluZSAoVW5pdCk7 CiAgIHByYWdtYSBJbmxpbmUgKFVua25vd25fRGlzY3JpbWluYW50c19QcmVzZW50KTsKICAgcHJh Z21hIElubGluZSAoVW5yZWZlcmVuY2VkX0luX1NwZWMpOwogICBwcmFnbWEgSW5saW5lIChWYXJp YW50X1BhcnQpOwogICBwcmFnbWEgSW5saW5lIChWYXJpYW50cyk7CiAgIHByYWdtYSBJbmxpbmUg KFZpc2libGVfRGVjbGFyYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoV2FzX09yaWdpbmFsbHlf U3R1Yik7CiAgIHByYWdtYSBJbmxpbmUgKFplcm9fQ29zdF9IYW5kbGluZyk7CgogICBwcmFnbWEg SW5saW5lIChTZXRfQUJFX0lzX0NlcnRhaW4pOwogICBwcmFnbWEgSW5saW5lIChTZXRfQWJvcnRf UHJlc2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BYm9ydGFibGVfUGFydCk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9BYnN0cmFjdF9QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Fj Y2VwdF9IYW5kbGVyX1JlY29yZHMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQWNjZXB0X1N0YXRl bWVudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BY2Nlc3NfVHlwZXNfVG9fUHJvY2Vzcyk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9BY3Rpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0FjdGl2 YXRpb25fQ2hhaW5fRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0FjdHNfQXNfU3BlYyk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BZ2dyZWdhdGVfQm91bmRzKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0FsaWFzZWRfUHJlc2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BbGxfT3RoZXJz KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0FsbF9QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAo U2V0X0FsdGVybmF0aXZlcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BbmNlc3Rvcl9QYXJ0KTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0FycmF5X0FnZ3JlZ2F0ZSk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9Bc3NpZ25tZW50X09LKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Fzc29jaWF0ZWRfTm9k ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BdF9FbmRfUHJvYyk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9BdHRyaWJ1dGVfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BdXhfRGVjbHNfTm9k ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9CYWNrd2FyZHNfT0spOwogICBwcmFnbWEgSW5saW5l IChTZXRfQmFkX0lzX0RldGVjdGVkKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0JvZHlfVG9fSW5s aW5lKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0JvZHlfUmVxdWlyZWQpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfQnlfUmVmKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0JveF9QcmVzZW50KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0NoYXJfTGl0ZXJhbF9WYWx1ZSk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9DaGFycyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9DaG9pY2VfUGFyYW1ldGVyKTsKICAg cHJhZ21hIElubGluZSAoU2V0X0Nob2ljZXMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ29tcGls ZV9UaW1lX0tub3duX0FnZ3JlZ2F0ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db21wb25lbnRf QXNzb2NpYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvbXBvbmVudF9DbGF1c2VzKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0NvbXBvbmVudF9JdGVtcyk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9Db21wb25lbnRfTGlzdCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db21wb25lbnRfTmFt ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db25kaXRpb24pOwogICBwcmFnbWEgSW5saW5lIChT ZXRfQ29uZGl0aW9uX0FjdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ29uc3RhbnRfUHJl c2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db25zdHJhaW50KTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0NvbnN0cmFpbnRzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvbnRleHRfSW5zdGFs bGVkKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvbnRleHRfSXRlbXMpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfQ29udHJvbGxpbmdfQXJndW1lbnQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ29u dmVyc2lvbl9PSyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db3JyZXNwb25kaW5nX0JvZHkpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfQ29ycmVzcG9uZGluZ19HZW5lcmljX0Fzc29jaWF0aW9uKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0NvcnJlc3BvbmRpbmdfSW50ZWdlcl9WYWx1ZSk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9Db3JyZXNwb25kaW5nX1NwZWMpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfQ29ycmVzcG9uZGluZ19TdHViKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0RjaGVja19GdW5j dGlvbik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EZWJ1Z19TdGF0ZW1lbnQpOwogICBwcmFnbWEg SW5saW5lIChTZXRfRGVjbGFyYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0RlZmF1bHRf RXhwcmVzc2lvbik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EZWZhdWx0X05hbWUpOwogICBwcmFn bWEgSW5saW5lIChTZXRfRGVmaW5pbmdfSWRlbnRpZmllcik7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9EZWZpbmluZ19Vbml0X05hbWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGVsYXlfQWx0ZXJu YXRpdmUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGVsYXlfRmluYWxpemVfQXR0YWNoKTsKICAg cHJhZ21hIElubGluZSAoU2V0X0RlbGF5X1N0YXRlbWVudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9EZWx0YV9FeHByZXNzaW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0RpZ2l0c19FeHByZXNz aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyX0NoZWNrX0Z1bmNzX0J1aWx0KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0Rpc2NyZXRlX0Nob2ljZXMpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfRGlzY3JldGVfUmFuZ2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGlzY3JldGVfU3VidHlw ZV9EZWZpbml0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyZXRlX1N1YnR5cGVfRGVm aW5pdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGlzY3JpbWluYW50X1NwZWNpZmljYXRp b25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyaW1pbmFudF9UeXBlKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0RvX0FjY2Vzc19DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Eb19B Y2Nlc3NpYmlsaXR5X0NoZWNrKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0RvX0Rpc2NyaW1pbmFu dF9DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Eb19MZW5ndGhfQ2hlY2spOwogICBwcmFn bWEgSW5saW5lIChTZXRfRG9fRGl2aXNpb25fQ2hlY2spOwogICBwcmFnbWEgSW5saW5lIChTZXRf RG9fT3ZlcmZsb3dfQ2hlY2spOwogICBwcmFnbWEgSW5saW5lIChTZXRfRG9fUmFuZ2VfQ2hlY2sp OwogICBwcmFnbWEgSW5saW5lIChTZXRfRG9fU3RvcmFnZV9DaGVjayk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9Eb19UYWdfQ2hlY2spOwogICBwcmFnbWEgSW5saW5lIChTZXRfRWxhYm9yYXRlX1By ZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRWxhYm9yYXRlX0FsbF9QcmVzZW50KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0VsYWJvcmF0aW9uX0Jvb2xlYW4pOwogICBwcmFnbWEgSW5saW5l IChTZXRfRWxzZV9BY3Rpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Vsc2VfU3RhdGVtZW50 cyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FbHNpZl9QYXJ0cyk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9FbmNsb3NpbmdfVmFyaWFudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FbmRfTGFiZWwp OwogICBwcmFnbWEgSW5saW5lIChTZXRfRW5kX1NwYW4pOwogICBwcmFnbWEgSW5saW5lIChTZXRf RW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0VudHJ5X0JvZHlfRm9ybWFsX1BhcnQpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfRW50cnlfQ2FsbF9BbHRlcm5hdGl2ZSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9FbnRyeV9DYWxsX1N0YXRlbWVudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9F bnRyeV9EaXJlY3RfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FbnRyeV9JbmRleCk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9FbnRyeV9JbmRleF9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0V0eXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0V4Y2VwdGlvbl9DaG9p Y2VzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0V4Y2VwdGlvbl9KdW5rKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0V4Y2VwdGlvbl9IYW5kbGVycyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FeHBh bnNpb25fRGVsYXllZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FeHBsaWNpdF9BY3R1YWxfUGFy YW1ldGVyKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0V4cGxpY2l0X0dlbmVyaWNfQWN0dWFsX1Bh cmFtZXRlcik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FeHByZXNzaW9uKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0V4cHJlc3Npb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ZpcnN0X0JpdCk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9GaXJzdF9JbmxpbmVkX1N1YnByb2dyYW0pOwogICBwcmFn bWEgSW5saW5lIChTZXRfRmlyc3RfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9GaXJzdF9O YW1lZF9BY3R1YWwpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRmlyc3RfUmVhbF9TdGF0ZW1lbnQp OwogICBwcmFnbWEgSW5saW5lIChTZXRfRmlyc3RfU3VidHlwZV9MaW5rKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0Zsb2F0X1RydW5jYXRlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Zvcm1hbF9U eXBlX0RlZmluaXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfRm9yd2FyZHNfT0spOwogICBw cmFnbWEgSW5saW5lIChTZXRfRnJvbV9BdF9Nb2QpOwogICBwcmFnbWEgSW5saW5lIChTZXRfR2Vu ZXJpY19Bc3NvY2lhdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfR2VuZXJpY19Gb3JtYWxf RGVjbGFyYXRpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0dlbmVyaWNfUGFyZW50KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0dlbmVyaWNfUGFyZW50X1R5cGUpOwogICBwcmFnbWEgSW5saW5l IChTZXRfSGFuZGxlZF9TdGF0ZW1lbnRfU2VxdWVuY2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRf SGFuZGxlcl9MaXN0X0VudHJ5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19DcmVhdGVkX0lk ZW50aWZpZXIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX0R5bmFtaWNfTGVuZ3RoX0NoZWNr KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19EeW5hbWljX1JhbmdlX0NoZWNrKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0hhc19Ob19FbGFib3JhdGlvbl9Db2RlKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0hhc19Qcmlvcml0eV9QcmFnbWEpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX1By aXZhdGVfVmlldyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfU3RvcmFnZV9TaXplX1ByYWdt YSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfVGFza19JbmZvX1ByYWdtYSk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9IYXNfVGFza19OYW1lX1ByYWdtYSk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9IYXNfV2lkZV9DaGFyYWN0ZXIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGlkZGVuX0J5X1Vz ZV9DbGF1c2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGlnaF9Cb3VuZCk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9JZGVudGlmaWVyKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ltcGxpY2l0X1dp dGgpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSW5jbHVkZXNfSW5maW5pdGllcyk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9Jbl9QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0luc3RhbmNl X1NwZWMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSW50dmFsKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0lzX0FzeW5jaHJvbm91c19DYWxsX0Jsb2NrKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lz X0NvbXBvbmVudF9MZWZ0X09wbmQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQ29tcG9uZW50 X1JpZ2h0X09wbmQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQ29udHJvbGxpbmdfQWN0dWFs KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX01hY2hpbmVfTnVtYmVyKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0lzX092ZXJsb2FkZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUG93ZXJf T2ZfMl9Gb3JfU2hpZnQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUHJvdGVjdGVkX1N1YnBy b2dyYW1fQm9keSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19TdGF0aWNfRXhwcmVzc2lvbik7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IpOwogICBwcmFn bWEgSW5saW5lIChTZXRfSXNfVGFza19BbGxvY2F0aW9uX0Jsb2NrKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0lzX1Rhc2tfTWFzdGVyKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0l0ZXJhdGlvbl9T Y2hlbWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXR5cGUpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfS2lsbF9SYW5nZV9DaGVjayk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9MYXN0X0JpdCk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9MYXN0X05hbWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfTGli cmFyeV9Vbml0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0xhYmVsX0NvbnN0cnVjdCk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9MZWZ0X09wbmQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfTGltaXRl ZF9QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0xpdGVyYWxzKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0xvb3BfQWN0aW9ucyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Mb29wX1BhcmFt ZXRlcl9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0xvd19Cb3VuZCk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9Nb2RfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X01v cmVfSWRzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X011c3RfTm90X0ZyZWV6ZSk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoU2V0X05hbWVzKTsKICAgcHJh Z21hIElubGluZSAoU2V0X05leHRfRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X05leHRf TmFtZWRfQWN0dWFsKTsKICAgcHJhZ21hIElubGluZSAoU2V0X05leHRfVXNlX0NsYXVzZSk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9Ob19DdHJsX0FjdGlvbnMpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfTm9fRW50aXRpZXNfUmVmX0luX1NwZWMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfTm9fSW5p dGlhbGl6YXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfTnVsbF9QcmVzZW50KTsKICAgcHJh Z21hIElubGluZSAoU2V0X051bGxfUmVjb3JkX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfT2JqZWN0X0RlZmluaXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfT0tfRm9yX1N0cmVh bSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9PcmlnaW5hbF9EaXNjcmltaW5hbnQpOwogICBwcmFn bWEgSW5saW5lIChTZXRfT3RoZXJzX0Rpc2NyZXRlX0Nob2ljZXMpOwogICBwcmFnbWEgSW5saW5l IChTZXRfT3V0X1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfUGFyYW1ldGVyX0Fzc29j aWF0aW9ucyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9QYXJhbWV0ZXJfU3BlY2lmaWNhdGlvbnMp OwogICBwcmFnbWEgSW5saW5lIChTZXRfUGFyYW1ldGVyX0xpc3RfVHJ1bmNhdGVkKTsKICAgcHJh Z21hIElubGluZSAoU2V0X1BhcmFtZXRlcl9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1Bh cmVudF9TcGVjKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1Bvc2l0aW9uKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X1ByYWdtYV9Bcmd1bWVudF9Bc3NvY2lhdGlvbnMpOwogICBwcmFnbWEgSW5saW5l IChTZXRfUHJhZ21hc19BZnRlcik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9QcmFnbWFzX0JlZm9y ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9QcmVmaXgpOwogICBwcmFnbWEgSW5saW5lIChTZXRf UHJlc2VudF9FeHByKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1ByZXZfSWRzKTsKICAgcHJhZ21h IElubGluZSAoU2V0X1ByaW50X0luX0hleCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Qcml2YXRl X0RlY2xhcmF0aW9ucyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Qcml2YXRlX1ByZXNlbnQpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfUHJvY2VkdXJlX1RvX0NhbGwpOwogICBwcmFnbWEgSW5saW5l IChTZXRfUHJvcGVyX0JvZHkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfUHJvdGVjdGVkX0RlZmlu aXRpb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfUHJvdGVjdGVkX1ByZXNlbnQpOwogICBwcmFn bWEgSW5saW5lIChTZXRfUmFpc2VzX0NvbnN0cmFpbnRfRXJyb3IpOwogICBwcmFnbWEgSW5saW5l IChTZXRfUmFuZ2VfQ29uc3RyYWludCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SYW5nZV9FeHBy ZXNzaW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1JlYWx2YWwpOwogICBwcmFnbWEgSW5saW5l IChTZXRfUmVhbF9SYW5nZV9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1Jl Y29yZF9FeHRlbnNpb25fUGFydCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZWR1bmRhbnRfVXNl KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1JldHVybl9UeXBlKTsKICAgcHJhZ21hIElubGluZSAo U2V0X1JldmVyc2VfUHJlc2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SaWdodF9PcG5kKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X1JvdW5kZWRfUmVzdWx0KTsKICAgcHJhZ21hIElubGluZSAo U2V0X1Njb3BlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1NlbGVjdF9BbHRlcm5hdGl2ZXMpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfU2VsZWN0b3JfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9TZWxlY3Rvcl9OYW1lcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9TaGlmdF9Db3VudF9PSyk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Tb3VyY2VfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9TcGVjaWZpY2F0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N0YXRlbWVudHMpOwogICBw cmFnbWEgSW5saW5lIChTZXRfU3RhdGljX1Byb2Nlc3NpbmdfT0spOwogICBwcmFnbWEgSW5saW5l IChTZXRfU3RvcmFnZV9Qb29sKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N0cnZhbCk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9TdWJ0eXBlX0luZGljYXRpb24pOwogICBwcmFnbWEgSW5saW5lIChT ZXRfU3VidHlwZV9NYXJrKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N1YnR5cGVfTWFya3MpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfVGFnZ2VkX1ByZXNlbnQpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfVGFyZ2V0X1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfVGFza19Cb2R5X1Byb2NlZHVy ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9UYXNrX0RlZmluaXRpb24pOwogICBwcmFnbWEgSW5s aW5lIChTZXRfVGhlbl9BY3Rpb25zKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1RoZW5fU3RhdGVt ZW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9UcmlnZ2VyaW5nX0FsdGVybmF0aXZlKTsKICAg cHJhZ21hIElubGluZSAoU2V0X1RyaWdnZXJpbmdfU3RhdGVtZW50KTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X1RyZWF0X0ZpeGVkX0FzX0ludGVnZXIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfVFNT X0VsaXN0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1R5cGVfRGVmaW5pdGlvbik7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9Vbml0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1Vua25vd25fRGlzY3Jp bWluYW50c19QcmVzZW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1VucmVmZXJlbmNlZF9Jbl9T cGVjKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1ZhcmlhbnRfUGFydCk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9WYXJpYW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9WaXNpYmxlX0RlY2xhcmF0 aW9ucyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9XYXNfT3JpZ2luYWxseV9TdHViKTsKICAgcHJh Z21hIElubGluZSAoU2V0X1plcm9fQ29zdF9IYW5kbGluZyk7CgplbmQgU2luZm87Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgR05BVCBDT01QSUxFUiBDT01QT05FTlRTICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VSBJIE4gVCBQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyBwIGUgYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJldmlzaW9uOiAxLjEuMTYuMSAkCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLQotLSAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTItMjAwMSwgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tIEdOQVQgaXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gIHJlZGlzdHJpYnV0ZSBpdCAgYW5k L29yIG1vZGlmeSBpdCB1bmRlciAtLQotLSB0ZXJtcyBvZiB0aGUgIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCAgYnkgdGhlIEZyZWUgU29mdC0gLS0KLS0gd2FyZSAgRm91 bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIsICBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl ciB2ZXItIC0tCi0tIHNpb24uICBHTkFUIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRILSAtLQotLSBPVVQgQU5ZIFdBUlJBTlRZOyAgd2l0 aG91dCBldmVuIHRoZSAgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgLS0KLS0g b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIC0tCi0tIGZvciAgbW9yZSBkZXRhaWxzLiAgWW91IHNob3VsZCBoYXZl ICByZWNlaXZlZCAgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCAtLQotLSBQdWJsaWMgTGljZW5z ZSAgZGlzdHJpYnV0ZWQgd2l0aCBHTkFUOyAgc2VlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3Jp dGUgLS0KLS0gdG8gIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sICA1OSBUZW1wbGUgUGxh Y2UgLSBTdWl0ZSAzMzAsICBCb3N0b24sIC0tCi0tIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgIGlmIG90aGVyIGZpbGVz ICBpbnN0YW50aWF0ZSAgZ2VuZXJpY3MgZnJvbSB0aGlzIC0tCi0tIHVuaXQsIG9yIHlvdSBsaW5r ICB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyAgdG8gcHJvZHVjZSBhbiBleGVjdXRhYmxlLCAt LQotLSB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5n ICBleGVjdXRhYmxlICB0byAgYmUgLS0KLS0gY292ZXJlZCAgYnkgdGhlICBHTlUgIEdlbmVyYWwg IFB1YmxpYyAgTGljZW5zZS4gIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IC0tCi0tIGhvd2V2ZXIg aW52YWxpZGF0ZSAgYW55IG90aGVyIHJlYXNvbnMgd2h5ICB0aGUgZXhlY3V0YWJsZSBmaWxlICBt aWdodCBiZSAtLQotLSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t IEdOQVQgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkICBieSB0aGUgR05BVCB0ZWFtIGF0ICBOZXcg WW9yayBVbml2ZXJzaXR5LiAtLQotLSBFeHRlbnNpdmUgY29udHJpYnV0aW9ucyB3ZXJlIHByb3Zp ZGVkIGJ5IEFkYSBDb3JlIFRlY2hub2xvZ2llcyBJbmMuICAgICAgLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIFN1cHBvcnQgZm9yIHVuaXZlcnNhbCBp bnRlZ2VyIGFyaXRobWV0aWMKCi0tICBXQVJOSU5HOiBUaGVyZSBpcyBhIEMgdmVyc2lvbiBvZiB0 aGlzIHBhY2thZ2UuIEFueSBjaGFuZ2VzIHRvIHRoaXMKLS0gIHNvdXJjZSBmaWxlIG11c3QgYmUg cHJvcGVybHkgcmVmbGVjdGVkIGluIHRoZSBDIGhlYWRlciBmaWxlIHNpbmZvLmgKCndpdGggQWxs b2M7CndpdGggVGFibGU7CndpdGggVHlwZXM7IHVzZSBUeXBlczsKCnBhY2thZ2UgVWludHAgaXMK CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gQmFzaWMgVHlwZXMgYW5kIENvbnN0YW50cyBmb3IgVWludHAgUGFja2FnZSAtLQogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIFVp bnQgaXMgcHJpdmF0ZTsKICAgLS0gIFRoZSBiYXNpYyB1bml2ZXJzYWwgaW50ZWdlciB0eXBlCgog ICBOb19VaW50IDogY29uc3RhbnQgVWludDsKICAgLS0gIEEgY29uc3RhbnQgdmFsdWUgaW5kaWNh dGluZyBhIG1pc3Npbmcgb3IgdW5zZXQgVWludCB2YWx1ZQoKICAgVWludF8wICAgOiBjb25zdGFu dCBVaW50OwogICBVaW50XzEgICA6IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfMiAgIDogY29uc3Rh bnQgVWludDsKICAgVWludF8zICAgOiBjb25zdGFudCBVaW50OwogICBVaW50XzQgICA6IGNvbnN0 YW50IFVpbnQ7CiAgIFVpbnRfNSAgIDogY29uc3RhbnQgVWludDsKICAgVWludF82ICAgOiBjb25z dGFudCBVaW50OwogICBVaW50XzcgICA6IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfOCAgIDogY29u c3RhbnQgVWludDsKICAgVWludF85ICAgOiBjb25zdGFudCBVaW50OwogICBVaW50XzEwICA6IGNv bnN0YW50IFVpbnQ7CiAgIFVpbnRfMTIgIDogY29uc3RhbnQgVWludDsKICAgVWludF8xNSAgOiBj b25zdGFudCBVaW50OwogICBVaW50XzE2ICA6IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfMjQgIDog Y29uc3RhbnQgVWludDsKICAgVWludF8zMiAgOiBjb25zdGFudCBVaW50OwogICBVaW50XzYzICA6 IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfNjQgIDogY29uc3RhbnQgVWludDsKICAgVWludF8xMjgg OiBjb25zdGFudCBVaW50OwoKICAgVWludF9NaW51c18xICAgOiBjb25zdGFudCBVaW50OwogICBV aW50X01pbnVzXzIgICA6IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfTWludXNfMyAgIDogY29uc3Rh bnQgVWludDsKICAgVWludF9NaW51c180ICAgOiBjb25zdGFudCBVaW50OwogICBVaW50X01pbnVz XzUgICA6IGNvbnN0YW50IFVpbnQ7CiAgIFVpbnRfTWludXNfNiAgIDogY29uc3RhbnQgVWludDsK ICAgVWludF9NaW51c183ICAgOiBjb25zdGFudCBVaW50OwogICBVaW50X01pbnVzXzggICA6IGNv bnN0YW50IFVpbnQ7CiAgIFVpbnRfTWludXNfOSAgIDogY29uc3RhbnQgVWludDsKICAgVWludF9N aW51c18xMiAgOiBjb25zdGFudCBVaW50OwogICBVaW50X01pbnVzXzEyOCA6IGNvbnN0YW50IFVp bnQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0t LS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIEluaXRpYWxpemU7CiAgIC0tICBJbml0aWFsaXplIFVp bnQgdGFibGVzLiBOb3RlIHRoYXQgSW5pdGlhbGl6ZSBtdXN0IG5vdCBiZSBjYWxsZWQgaWYKICAg LS0gIFRyZWVfUmVhZCBpcyB1c2VkLiBOb3RlIGFsc28gdGhhdCB0aGVyZSBpcyBubyBsb2NrIHJv dXRpbmUgaW4gdGhpcwogICAtLSAgdW5pdCwgdGhlc2UgYXJlIGFtb25nIHRoZSBmZXcgdGFibGVz IHRoYXQgY2FuIGJlIGV4cGFuZGVkIGR1cmluZwogICAtLSAgZ2lnaSBwcm9jZXNzaW5nLgoKICAg cHJvY2VkdXJlIFRyZWVfUmVhZDsKICAgLS0gIEluaXRpYWxpemVzIGludGVybmFsIHRhYmxlcyBm cm9tIGN1cnJlbnQgdHJlZSBmaWxlIHVzaW5nIFRyZWVfUmVhZC4KICAgLS0gIE5vdGUgdGhhdCBJ bml0aWFsaXplIHNob3VsZCBub3QgYmUgY2FsbGVkIGlmIFRyZWVfUmVhZCBpcyB1c2VkLgogICAt LSAgVHJlZV9SZWFkIGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgaW5pdGlhbGl6YXRpb24uCgogICBw cm9jZWR1cmUgVHJlZV9Xcml0ZTsKICAgLS0gIFdyaXRlcyBvdXQgaW50ZXJuYWwgdGFibGVzIHRv IGN1cnJlbnQgdHJlZSBmaWxlIHVzaW5nIFRyZWVfV3JpdGUuCgogICBmdW5jdGlvbiBVSV9BYnMg KFJpZ2h0IDogVWludCkgcmV0dXJuIFVpbnQ7CiAgIHByYWdtYSBJbmxpbmUgKFVJX0Ficyk7CiAg IC0tICBSZXR1cm5zIGFicyBmdW5jdGlvbiBvZiB1bml2ZXJzYWwgaW50ZWdlci4KCiAgIGZ1bmN0 aW9uIFVJX0FkZCAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0dXJuIFVpbnQ7CiAgIGZ1 bmN0aW9uIFVJX0FkZCAoTGVmdCA6IEludDsgIFJpZ2h0IDogVWludCkgcmV0dXJuIFVpbnQ7CiAg IGZ1bmN0aW9uIFVJX0FkZCAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIFVpbnQ7 CiAgIC0tICBSZXR1cm5zIHN1bSBvZiB0d28gaW50ZWdlciB2YWx1ZXMuCgogICBmdW5jdGlvbiBV SV9EZWNpbWFsX0RpZ2l0c19IaSAoVSA6IFVpbnQpIHJldHVybiBOYXQ7CiAgIC0tICBSZXR1cm5z IGFuIGVzdGltYXRlIG9mIHRoZSBudW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMgcmVxdWlyZWQgdG8K ICAgLS0gIHJlcHJlc2VudCB0aGUgYWJzb2x1dGUgdmFsdWUgb2YgVS4gVGhpcyBlc3RpbWF0ZSBp cyBjb3JyZWN0IG9yIGhpZ2gsCiAgIC0tICBpLmUuIGl0IG5ldmVyIHJldHVybnMgYSB2YWx1ZSB0 aGF0IGlzIHRvbyBsb3cuIFRoZSBhY2N1cmFjeSBvZiB0aGUKICAgLS0gIGVzdGltYXRlIGFmZmVj dHMgb25seSB0aGUgZWZmZWN0aXZlbmVzcyBvZiBjb21wYXJpc29uIG9wdGltaXphdGlvbnMKICAg LS0gIGluIFVyZWFscC4KCiAgIGZ1bmN0aW9uIFVJX0RlY2ltYWxfRGlnaXRzX0xvIChVIDogVWlu dCkgcmV0dXJuIE5hdDsKICAgLS0gIFJldHVybnMgYW4gZXN0aW1hdGUgb2YgdGhlIG51bWJlciBv ZiBkZWNpbWFsIGRpZ2l0cyByZXF1aXJlZCB0bwogICAtLSAgcmVwcmVzZW50IHRoZSBhYnNvbHV0 ZSB2YWx1ZSBvZiBVLiBUaGlzIGVzdGltYXRlIGlzIGNvcnJlY3Qgb3IgbG93LAogICAtLSAgaS5l LiBpdCBuZXZlciByZXR1cm5zIGEgdmFsdWUgdGhhdCBpcyB0b28gaGlnaC4gVGhlIGFjY3VyYWN5 IG9mIHRoZQogICAtLSAgZXN0aW1hdGUgYWZmZWN0cyBvbmx5IHRoZSBlZmZlY3RpdmVuZXNzIG9m IGNvbXBhcmlzb24gb3B0aW1pemF0aW9ucwogICAtLSAgaW4gVXJlYWxwLgoKICAgZnVuY3Rpb24g VUlfRGl2IChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rp b24gVUlfRGl2IChMZWZ0IDogSW50OyAgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludDsKICAgZnVu Y3Rpb24gVUlfRGl2IChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gVWludDsKICAg LS0gIFJldHVybnMgcXVvdGllbnQgb2YgdHdvIGludGVnZXIgdmFsdWVzLiBGYXRhbCBlcnJvciBp ZiBSaWdodCA9IDAKCiAgIGZ1bmN0aW9uIFVJX0VxIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50 KSByZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24gVUlfRXEgKExlZnQgOiBJbnQ7ICBSaWdodCA6 IFVpbnQpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiBVSV9FcSAoTGVmdCA6IFVpbnQ7IFJp Z2h0IDogSW50KSAgcmV0dXJuIEJvb2xlYW47CiAgIHByYWdtYSBJbmxpbmUgKFVJX0VxKTsKICAg LS0gIENvbXBhcmVzIGludGVnZXIgdmFsdWVzIGZvciBlcXVhbGl0eS4KCiAgIGZ1bmN0aW9uIFVJ X0V4cG9uIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rp b24gVUlfRXhwb24gKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBm dW5jdGlvbiBVSV9FeHBvbiAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIFVpbnQ7 CiAgIGZ1bmN0aW9uIFVJX0V4cG9uIChMZWZ0IDogSW50OyAgUmlnaHQgOiBJbnQpICByZXR1cm4g VWludDsKICAgLS0gIFJldHVybnMgcmVzdWx0IG9mIGV4cG9uZW50aWF0aW5nIHR3byBpbnRlZ2Vy IHZhbHVlcwogICAtLSAgRmF0YWwgZXJyb3IgaWYgUmlnaHQgaXMgbmVnYXRpdmUuCgogICBmdW5j dGlvbiBVSV9HQ0QgKFVpbiwgVmluIDogVWludCkgcmV0dXJuIFVpbnQ7CiAgIC0tICBDb21wdXRl cyBHQ0Qgb2YgaW5wdXQgdmFsdWVzLiBBc3N1bWVzIFVpbiA+PSBWaW4gPj0gMC4KCiAgIGZ1bmN0 aW9uIFVJX0dlIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1cm4gQm9vbGVhbjsKICAg ZnVuY3Rpb24gVUlfR2UgKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBCb29sZWFu OwogICBmdW5jdGlvbiBVSV9HZSAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIEJv b2xlYW47CiAgIHByYWdtYSBJbmxpbmUgKFVJX0dlKTsKICAgLS0gIENvbXBhcmVzIGludGVnZXIg dmFsdWVzIGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwuCgogICBmdW5jdGlvbiBVSV9HdCAoTGVm dCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0dXJuIEJvb2xlYW47CiAgIGZ1bmN0aW9uIFVJX0d0 IChMZWZ0IDogSW50OyAgUmlnaHQgOiBVaW50KSByZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24g VUlfR3QgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBCb29sZWFuOwogICBwcmFn bWEgSW5saW5lIChVSV9HdCk7CiAgIC0tICBDb21wYXJlcyBpbnRlZ2VyIHZhbHVlcyBmb3IgZ3Jl YXRlciB0aGFuLgoKICAgZnVuY3Rpb24gVUlfSXNfSW5fSW50X1JhbmdlIChJbnB1dCA6IFVpbnQp IHJldHVybiBCb29sZWFuOwogICBwcmFnbWEgSW5saW5lIChVSV9Jc19Jbl9JbnRfUmFuZ2UpOwog ICAtLSAgRGV0ZXJtaW5lcyBpZiB1bml2ZXJzYWwgaW50ZWdlciBpcyBpbiBJbnQgcmFuZ2UuCgog ICBmdW5jdGlvbiBVSV9MZSAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0dXJuIEJvb2xl YW47CiAgIGZ1bmN0aW9uIFVJX0xlIChMZWZ0IDogSW50OyAgUmlnaHQgOiBVaW50KSByZXR1cm4g Qm9vbGVhbjsKICAgZnVuY3Rpb24gVUlfTGUgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJl dHVybiBCb29sZWFuOwogICBwcmFnbWEgSW5saW5lIChVSV9MZSk7CiAgIC0tICBDb21wYXJlcyBp bnRlZ2VyIHZhbHVlcyBmb3IgbGVzcyB0aGFuIG9yIGVxdWFsLgoKICAgZnVuY3Rpb24gVUlfTHQg KExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiBV SV9MdCAoTGVmdCA6IEludDsgIFJpZ2h0IDogVWludCkgcmV0dXJuIEJvb2xlYW47CiAgIGZ1bmN0 aW9uIFVJX0x0IChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gQm9vbGVhbjsKICAg LS0gIENvbXBhcmVzIGludGVnZXIgdmFsdWVzIGZvciBsZXNzIHRoYW4uCgogICBmdW5jdGlvbiBV SV9NYXggKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBmdW5jdGlv biBVSV9NYXggKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBmdW5j dGlvbiBVSV9NYXggKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBVaW50OwogICAt LSAgUmV0dXJucyBtYXhpbXVtIG9mIHR3byBpbnRlZ2VyIHZhbHVlcwoKICAgZnVuY3Rpb24gVUlf TWluIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rpb24g VUlfTWluIChMZWZ0IDogSW50OyAgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rp b24gVUlfTWluIChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gVWludDsKICAgLS0g IFJldHVybnMgbWluaW11bSBvZiB0d28gaW50ZWdlciB2YWx1ZXMuCgogICBmdW5jdGlvbiBVSV9N b2QgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBmdW5jdGlvbiBV SV9Nb2QgKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBmdW5jdGlv biBVSV9Nb2QgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBVaW50OwogICBwcmFn bWEgSW5saW5lIChVSV9Nb2QpOwogICAtLSAgUmV0dXJucyBtb2QgZnVuY3Rpb24gb2YgdHdvIGlu dGVnZXIgdmFsdWVzLgoKICAgZnVuY3Rpb24gVUlfTXVsIChMZWZ0IDogVWludDsgUmlnaHQgOiBV aW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rpb24gVUlfTXVsIChMZWZ0IDogSW50OyAgUmlnaHQg OiBVaW50KSByZXR1cm4gVWludDsKICAgZnVuY3Rpb24gVUlfTXVsIChMZWZ0IDogVWludDsgUmln aHQgOiBJbnQpICByZXR1cm4gVWludDsKICAgLS0gIFJldHVybnMgcHJvZHVjdCBvZiB0d28gaW50 ZWdlciB2YWx1ZXMKCiAgIGZ1bmN0aW9uIFVJX05lIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50 KSByZXR1cm4gQm9vbGVhbjsKICAgZnVuY3Rpb24gVUlfTmUgKExlZnQgOiBJbnQ7ICBSaWdodCA6 IFVpbnQpIHJldHVybiBCb29sZWFuOwogICBmdW5jdGlvbiBVSV9OZSAoTGVmdCA6IFVpbnQ7IFJp Z2h0IDogSW50KSAgcmV0dXJuIEJvb2xlYW47CiAgIHByYWdtYSBJbmxpbmUgKFVJX05lKTsKICAg LS0gIENvbXBhcmVzIGludGVnZXIgdmFsdWVzIGZvciBpbmVxdWFsaXR5LgoKICAgZnVuY3Rpb24g VUlfTmVnYXRlIChSaWdodCA6IFVpbnQpIHJldHVybiBVaW50OwogICBwcmFnbWEgSW5saW5lIChV SV9OZWdhdGUpOwogICAtLSAgUmV0dXJucyBuZWdhdGl2ZSBvZiB1bml2ZXJzYWwgaW50ZWdlci4K CiAgIGZ1bmN0aW9uIFVJX1JlbSAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0dXJuIFVp bnQ7CiAgIGZ1bmN0aW9uIFVJX1JlbSAoTGVmdCA6IEludDsgIFJpZ2h0IDogVWludCkgcmV0dXJu IFVpbnQ7CiAgIGZ1bmN0aW9uIFVJX1JlbSAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0 dXJuIFVpbnQ7CiAgIC0tICBSZXR1cm5zIHJlbSBvZiB0d28gaW50ZWdlciB2YWx1ZXMuCgogICBm dW5jdGlvbiBVSV9TdWIgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50Owog ICBmdW5jdGlvbiBVSV9TdWIgKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50 OwogICBmdW5jdGlvbiBVSV9TdWIgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBV aW50OwogICBwcmFnbWEgSW5saW5lIChVSV9TdWIpOwogICAtLSAgUmV0dXJucyBkaWZmZXJlbmNl IG9mIHR3byBpbnRlZ2VyIHZhbHVlcwoKICAgZnVuY3Rpb24gVUlfRnJvbV9EaW50IChJbnB1dCA6 IERpbnQpIHJldHVybiBVaW50OwogICAtLSAgQ29udmVydHMgRGludCB2YWx1ZSB0byB1bml2ZXJz YWwgaW50ZWdlciBmb3JtLgoKICAgZnVuY3Rpb24gVUlfRnJvbV9JbnQgKElucHV0IDogSW50KSBy ZXR1cm4gVWludDsKICAgLS0gIENvbnZlcnRzIEludCB2YWx1ZSB0byB1bml2ZXJzYWwgaW50ZWdl ciBmb3JtLgoKICAgZnVuY3Rpb24gVUlfVG9fSW50IChJbnB1dCA6IFVpbnQpIHJldHVybiBJbnQ7 CiAgIC0tICBDb252ZXJ0cyB1bml2ZXJzYWwgaW50ZWdlciB2YWx1ZSB0byBJbnQuIEZhdGFsIGVy cm9yCiAgIC0tICBpZiB2YWx1ZSBpcyBub3QgaW4gYXBwcm9wcmlhdGUgcmFuZ2UuCgogICBmdW5j dGlvbiBOdW1fQml0cyAoSW5wdXQgOiBVaW50KSByZXR1cm4gTmF0OwogICAtLSAgQXBwcm94aW1h dGUgbnVtYmVyIG9mIGJpbmFyeSBiaXRzIGluIGdpdmVuIHVuaXZlcnNhbCBpbnRlZ2VyLgogICAt LSAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIGZvciBjYXBhY2l0eSBjaGVja3MsIGFuZCBpdCBjYW4g YmUgb25lCiAgIC0tICBiaXQgb2ZmIHdpdGhvdXQgYWZmZWN0aW5nIGl0cyB1c2FnZS4KCiAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBPdXRwdXQgUm91dGluZXMgLS0KICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgogICB0eXBlIFVJX0Zvcm1hdCBpcyAoSGV4LCBEZWNpbWFsLCBBdXRvKTsK ICAgLS0gIFVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgVUlfSW1hZ2UvVUlfV3JpdGUgb3V0cHV0 IGlzIGluIGhleGFkZWNpbWFsCiAgIC0tICBvciBkZWNpbWFsIGZvcm1hdC4gQXV0bywgdGhlIGRl ZmF1bHQgc2V0dGluZywgbGV0cyB0aGUgcm91dGluZSBtYWtlCiAgIC0tICBhIGRlY2lzaW9uIGJh c2VkIG9uIHRoZSB2YWx1ZS4KCiAgIFVJX0ltYWdlX01heCAgICA6IGNvbnN0YW50IDo9IDMyOwog ICBVSV9JbWFnZV9CdWZmZXIgOiBTdHJpbmcgKDEgLi4gVUlfSW1hZ2VfTWF4KTsKICAgVUlfSW1h Z2VfTGVuZ3RoIDogTmF0dXJhbDsKICAgLS0gIEJ1ZmZlciB1c2VkIGZvciBVSV9JbWFnZSBhcyBk ZXNjcmliZWQgYmVsb3cKCiAgIHByb2NlZHVyZSBVSV9JbWFnZSAoSW5wdXQgOiBVaW50OyBGb3Jt YXQgOiBVSV9Gb3JtYXQgOj0gQXV0byk7CiAgIC0tICBQbGFjZXMgYSByZXByZXNlbnRhdGlvbiBv ZiBVaW50LCBjb25zaXN0aW5nIG9mIGEgcG9zc2libGUgbWludXMgc2lnbiwKICAgLS0gIGZvbGxv d2VkIGJ5IHRoZSB2YWx1ZSBpbiBVSV9JbWFnZV9CdWZmZXIuIFRoZSBmb3JtIG9mIHRoZSB2YWx1 ZSBpcyBhbgogICAtLSAgaW50ZWdlciBsaXRlcmFsIGluIGVpdGhlciBkZWNpbWFsIChubyBiYXNl KSBvciBoZXhhZGVjaW1hbCAoYmFzZSAxNikKICAgLS0gIGZvcm1hdC4gSWYgSGV4IGlzIFRydWUg b24gZW50cnksIHRoZW4gaGV4IG1vZGUgaXMgZm9yY2VkLCBvdGhlcndpc2UKICAgLS0gIFVJX0lt YWdlIG1ha2VzIGEgZ3Vlc3MgYXQgd2hpY2ggb3V0cHV0IGZvcm1hdCBpcyBtb3JlIGNvbnZlbmll bnQuIFRoZQogICAtLSAgdmFsdWUgbXVzdCBmaXQgaW4gVUlfSW1hZ2VfQnVmZmVyLiBJZiBuZWNl c3NhcnksIHRoZSByZXN1bHQgaXMgYW4KICAgLS0gIGFwcHJveGltYXRpb24gb2YgdGhlIHByb3Bl ciB2YWx1ZSwgdXNpbmcgYW4gZXhwb25lbnRpYWwgZm9ybWF0LiBUaGUKICAgLS0gIGltYWdlIG9m IE5vX1VpbnQgaXMgb3V0cHV0IGFzIGEgc2luZ2xlIHF1ZXN0aW9uIG1hcmsuCgogICBwcm9jZWR1 cmUgVUlfV3JpdGUgKElucHV0IDogVWludDsgRm9ybWF0IDogVUlfRm9ybWF0IDo9IEF1dG8pOwog ICAtLSAgV3JpdGVzIGEgcmVwcmVzZW50YXRpb24gb2YgVWludCwgY29uc2lzdGluZyBvZiBhIHBv c3NpYmxlIG1pbnVzIHNpZ24sCiAgIC0tICBmb2xsb3dlZCBieSB0aGUgdmFsdWUgdG8gdGhlIG91 dHB1dCBmaWxlLiBUaGUgZm9ybSBvZiB0aGUgdmFsdWUgaXMgYW4KICAgLS0gIGludGVnZXIgbGl0 ZXJhbCBpbiBlaXRoZXIgZGVjaW1hbCAobm8gYmFzZSkgb3IgaGV4YWRlY2ltYWwgKGJhc2UgMTYp CiAgIC0tICBmb3JtYXQgYXMgYXBwcm9wcmlhdGUuIFVJX0Zvcm1hdCBzaG93cyB3aGljaCBmb3Jt YXQgdG8gdXNlLiBBdXRvLAogICAtLSAgdGhlIGRlZmF1bHQsIGFza3MgVUlfV3JpdGUgdG8gbWFr ZSBhIGd1ZXNzIGF0IHdoaWNoIG91dHB1dCBmb3JtYXQKICAgLS0gIHdpbGwgYmUgbW9yZSBjb252 ZW5pZW50IHRvIHJlYWQuCgogICBwcm9jZWR1cmUgcGlkIChJbnB1dCA6IFVpbnQpOwogICAtLSAg V3JpdGVzIHJlcHJlc2VudGF0aW9uIG9mIFVpbnQgaW4gZGVjaW1hbCB3aXRoIGEgdGVybWluYXRp bmcgbGluZQogICAtLSAgcmV0dXJuLiBUaGlzIGlzIGludGVuZGVkIGZvciB1c2UgZnJvbSB0aGUg ZGVidWdnZXIuCgogICBwcm9jZWR1cmUgcGloIChJbnB1dCA6IFVpbnQpOwogICAtLSAgV3JpdGVz IHJlcHJlc2VudGF0aW9uIG9mIFVpbnQgaW4gaGV4IHdpdGggYSB0ZXJtaW5hdGluZyBsaW5lIHJl dHVybi4KICAgLS0gIFRoaXMgaXMgaW50ZW5kZWQgZm9yIHVzZSBmcm9tIHRoZSBkZWJ1Z2dlci4K CiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBPcGVyYXRvciBSZW5hbWluZ3MgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBmdW5jdGlvbiAiKyIgKExlZnQgOiBVaW50 OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMgVUlfQWRkOwogICBmdW5jdGlvbiAi KyIgKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMgVUlfQWRk OwogICBmdW5jdGlvbiAiKyIgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBVaW50 IHJlbmFtZXMgVUlfQWRkOwoKICAgZnVuY3Rpb24gIi8iIChMZWZ0IDogVWludDsgUmlnaHQgOiBV aW50KSByZXR1cm4gVWludCByZW5hbWVzIFVJX0RpdjsKICAgZnVuY3Rpb24gIi8iIChMZWZ0IDog SW50OyAgUmlnaHQgOiBVaW50KSByZXR1cm4gVWludCByZW5hbWVzIFVJX0RpdjsKICAgZnVuY3Rp b24gIi8iIChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gVWludCByZW5hbWVzIFVJ X0RpdjsKCiAgIGZ1bmN0aW9uICIqIiAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0dXJu IFVpbnQgcmVuYW1lcyBVSV9NdWw7CiAgIGZ1bmN0aW9uICIqIiAoTGVmdCA6IEludDsgIFJpZ2h0 IDogVWludCkgcmV0dXJuIFVpbnQgcmVuYW1lcyBVSV9NdWw7CiAgIGZ1bmN0aW9uICIqIiAoTGVm dCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIFVpbnQgcmVuYW1lcyBVSV9NdWw7CgogICBm dW5jdGlvbiAiLSIgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFt ZXMgVUlfU3ViOwogICBmdW5jdGlvbiAiLSIgKExlZnQgOiBJbnQ7ICBSaWdodCA6IFVpbnQpIHJl dHVybiBVaW50IHJlbmFtZXMgVUlfU3ViOwogICBmdW5jdGlvbiAiLSIgKExlZnQgOiBVaW50OyBS aWdodCA6IEludCkgIHJldHVybiBVaW50IHJlbmFtZXMgVUlfU3ViOwoKICAgZnVuY3Rpb24gIioq IiAgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMgVUlfRXhw b247CiAgIGZ1bmN0aW9uICIqKiIgIChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4g VWludCByZW5hbWVzIFVJX0V4cG9uOwogICBmdW5jdGlvbiAiKioiICAoTGVmdCA6IEludDsgIFJp Z2h0IDogVWludCkgcmV0dXJuIFVpbnQgcmVuYW1lcyBVSV9FeHBvbjsKICAgZnVuY3Rpb24gIioq IiAgKExlZnQgOiBJbnQ7ICBSaWdodCA6IEludCkgIHJldHVybiBVaW50IHJlbmFtZXMgVUlfRXhw b247CgogICBmdW5jdGlvbiAiYWJzIiAoUmVhbCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMg VUlfQWJzOwoKICAgZnVuY3Rpb24gIm1vZCIgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJl dHVybiBVaW50IHJlbmFtZXMgVUlfTW9kOwogICBmdW5jdGlvbiAibW9kIiAoTGVmdCA6IEludDsg IFJpZ2h0IDogVWludCkgcmV0dXJuIFVpbnQgcmVuYW1lcyBVSV9Nb2Q7CiAgIGZ1bmN0aW9uICJt b2QiIChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gVWludCByZW5hbWVzIFVJX01v ZDsKCiAgIGZ1bmN0aW9uICJyZW0iIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1cm4g VWludCByZW5hbWVzIFVJX1JlbTsKICAgZnVuY3Rpb24gInJlbSIgKExlZnQgOiBJbnQ7ICBSaWdo dCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMgVUlfUmVtOwogICBmdW5jdGlvbiAicmVtIiAo TGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIFVpbnQgcmVuYW1lcyBVSV9SZW07Cgog ICBmdW5jdGlvbiAiLSIgICAoUmVhbCA6IFVpbnQpIHJldHVybiBVaW50IHJlbmFtZXMgVUlfTmVn YXRlOwoKICAgZnVuY3Rpb24gIj0iICAgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJldHVy biBCb29sZWFuIHJlbmFtZXMgVUlfRXE7CiAgIGZ1bmN0aW9uICI9IiAgIChMZWZ0IDogSW50OyAg UmlnaHQgOiBVaW50KSByZXR1cm4gQm9vbGVhbiByZW5hbWVzIFVJX0VxOwogICBmdW5jdGlvbiAi PSIgICAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIEJvb2xlYW4gcmVuYW1lcyBV SV9FcTsKCiAgIGZ1bmN0aW9uICI+PSIgIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSByZXR1 cm4gQm9vbGVhbiByZW5hbWVzIFVJX0dlOwogICBmdW5jdGlvbiAiPj0iICAoTGVmdCA6IEludDsg IFJpZ2h0IDogVWludCkgcmV0dXJuIEJvb2xlYW4gcmVuYW1lcyBVSV9HZTsKICAgZnVuY3Rpb24g Ij49IiAgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBCb29sZWFuIHJlbmFtZXMg VUlfR2U7CgogICBmdW5jdGlvbiAiPiIgICAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogVWludCkgcmV0 dXJuIEJvb2xlYW4gcmVuYW1lcyBVSV9HdDsKICAgZnVuY3Rpb24gIj4iICAgKExlZnQgOiBJbnQ7 ICBSaWdodCA6IFVpbnQpIHJldHVybiBCb29sZWFuIHJlbmFtZXMgVUlfR3Q7CiAgIGZ1bmN0aW9u ICI+IiAgIChMZWZ0IDogVWludDsgUmlnaHQgOiBJbnQpICByZXR1cm4gQm9vbGVhbiByZW5hbWVz IFVJX0d0OwoKICAgZnVuY3Rpb24gIjw9IiAgKExlZnQgOiBVaW50OyBSaWdodCA6IFVpbnQpIHJl dHVybiBCb29sZWFuIHJlbmFtZXMgVUlfTGU7CiAgIGZ1bmN0aW9uICI8PSIgIChMZWZ0IDogSW50 OyAgUmlnaHQgOiBVaW50KSByZXR1cm4gQm9vbGVhbiByZW5hbWVzIFVJX0xlOwogICBmdW5jdGlv biAiPD0iICAoTGVmdCA6IFVpbnQ7IFJpZ2h0IDogSW50KSAgcmV0dXJuIEJvb2xlYW4gcmVuYW1l cyBVSV9MZTsKCiAgIGZ1bmN0aW9uICI8IiAgIChMZWZ0IDogVWludDsgUmlnaHQgOiBVaW50KSBy ZXR1cm4gQm9vbGVhbiByZW5hbWVzIFVJX0x0OwogICBmdW5jdGlvbiAiPCIgICAoTGVmdCA6IElu dDsgIFJpZ2h0IDogVWludCkgcmV0dXJuIEJvb2xlYW4gcmVuYW1lcyBVSV9MdDsKICAgZnVuY3Rp b24gIjwiICAgKExlZnQgOiBVaW50OyBSaWdodCA6IEludCkgIHJldHVybiBCb29sZWFuIHJlbmFt ZXMgVUlfTHQ7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBNYXJrL1Jl bGVhc2UgUHJvY2Vzc2luZyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg LS0gIFRoZSBzcGFjZSB1c2VkIGJ5IFVpbnQgZGF0YSBpcyBub3QgYXV0b21hdGljYWxseSByZWNs YWltZWQuIEhvd2V2ZXIsCiAgIC0tICBhIG1hcmstcmVsZWFzZSByZWdpbWUgaXMgaW1wbGVtZW50 ZWQgd2hpY2ggYWxsb3dzIHN0b3JhZ2UgdG8gYmUKICAgLS0gIHJlbGVhc2VkIGJhY2sgdG8gYSBw cmV2aW91c2x5IG5vdGVkIG1hcmsuIFRoaXMgaXMgdXNlZCBmb3IgZXhhbXBsZQogICAtLSAgd2hl biBkb2luZyBjb21wYXJpc29ucywgd2hlcmUgb25seSBpbnRlcm1lZGlhdGUgcmVzdWx0cyBnZXQg c3RvcmVkCiAgIC0tICB0aGF0IGRvIG5vdCBuZWVkIHRvIGJlIHNhdmVkIGZvciBmdXR1cmUgdXNl LgoKICAgdHlwZSBTYXZlX01hcmsgaXMgcHJpdmF0ZTsKCiAgIGZ1bmN0aW9uIE1hcmsgcmV0dXJu IFNhdmVfTWFyazsKICAgLS0gIE5vdGUgbWFyayBwb2ludCBmb3IgZnV0dXJlIHJlbGVhc2UKCiAg IHByb2NlZHVyZSBSZWxlYXNlIChNIDogU2F2ZV9NYXJrKTsKICAgLS0gIFJlbGVhc2Ugc3RvcmFn ZSBhbGxvY2F0ZWQgc2luY2UgbWFyayB3YXMgbm90ZWQKCiAgIHByb2NlZHVyZSBSZWxlYXNlX0Fu ZF9TYXZlIChNIDogU2F2ZV9NYXJrOyBVSSA6IGluIG91dCBVaW50KTsKICAgLS0gIExpa2UgUmVs ZWFzZSwgZXhjZXB0IHRoYXQgdGhlIGdpdmVuIFVpbnQgdmFsdWUgKHdoaWNoIGlzIHR5cGljYWxs eQogICAtLSAgYW1vbmcgdGhlIGRhdGEgYmVpbmcgcmVsZWFzZWQpIGlzIHJlY29waWVkIGFmdGVy IHRoZSByZWxlYXNlLCBzbwogICAtLSAgdGhhdCBpdCBpcyB0aGUgbW9zdCByZWNlbnQgaXRlbSwg YW5kIFVJIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8KICAgLS0gIGl0cyBjb3BpZWQgbG9jYXRpb24u CgogICBwcm9jZWR1cmUgUmVsZWFzZV9BbmRfU2F2ZSAoTSA6IFNhdmVfTWFyazsgVUkxLCBVSTIg OiBpbiBvdXQgVWludCk7CiAgIC0tICBMaWtlIFJlbGVhc2UsIGV4Y2VwdCB0aGF0IHRoZSBnaXZl biBVaW50IHZhbHVlcyAod2hpY2ggYXJlIHR5cGljYWxseQogICAtLSAgYW1vbmcgdGhlIGRhdGEg YmVpbmcgcmVsZWFzZWQpIGFyZSByZWNvcGllZCBhZnRlciB0aGUgcmVsZWFzZSwgc28KICAgLS0g IHRoYXQgdGhleSBhcmUgdGhlIG1vc3QgcmVjZW50IGl0ZW1zLCBhbmQgVUkxIGFuZCBVSTIgYXJl IHVwZGF0ZWQgaWYKICAgLS0gIG5lY2Vzc2FyeSB0byBwb2ludCB0byB0aGUgY29waWVkIGxvY2F0 aW9ucy4gVGhpcyByb3V0aW5lIGlzIGNhcmVmdWwKICAgLS0gIHRvIGRvIHRoaW5ncyBpbiB0aGUg cmlnaHQgb3JkZXIsIHNvIHRoYXQgdGhlIHZhbHVlcyBkbyBub3QgY2xvYmJlcgogICAtLSAgb25l IGFub3RoZXIuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBS ZXByZXNlbnRhdGlvbiBvZiBVaW50IFZhbHVlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQoKcHJpdmF0ZQoKICAgdHlwZSBVaW50IGlzIG5ldyBJbnQgcmFuZ2UgVWlu dF9Mb3dfQm91bmQgLi4gVWludF9IaWdoX0JvdW5kOwogICBmb3IgVWludCdTaXplIHVzZSAzMjsK CiAgIE5vX1VpbnQgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfTG93X0JvdW5kKTsKCiAg IC0tICBVaW50IHZhbHVlcyBhcmUgcmVwcmVzZW50ZWQgYXMgbXVsdGlwbGUgcHJlY2lzaW9uIGlu dGVnZXJzIHN0b3JlZCBpbgogICAtLSAgYSBtdWx0aS1kaWdpdCBmb3JtYXQgdXNpbmcgQmFzZSBh cyB0aGUgYmFzZS4gVGhpcyB2YWx1ZSBpcyBjaG9zZW4gc28KICAgLS0gIHRoYXQgdGhlIHByb2R1 Y3QgQmFzZSpCYXNlIGlzIHdpdGhpbiB0aGUgcmFuZ2Ugb2YgYWxsb3dlZCBJbnQgdmFsdWVzLgoK ICAgLS0gIEJhc2UgaXMgZGVmaW5lZCB0byBhbGxvdyBlZmZpY2llbnQgZXhlY3V0aW9uIG9mIHRo ZSBwcmltaXRpdmUKICAgLS0gIG9wZXJhdGlvbnMgKGEwLCBiMCwgYzApIGRlZmluZWQgaW4gdGhl IHNlY3Rpb24gIlRoZSBDbGFzc2ljYWwKICAgLS0gIEFsZ29yaXRobXMiIChzZWMuIDQuMy4xKSBv ZiBEb25hbGQgS251dGgncyAiVGhlIEFydCBvZiBDb21wdXRlcgogICAtLSAgUHJvZ3JhbW1pbmci LCBWb2wuIDIuIFRoZXNlIGFsZ29yaXRobXMgYXJlIHVzZWQgaW4gdGhpcyBwYWNrYWdlLgoKICAg QmFzZV9CaXRzIDogY29uc3RhbnQgOj0gMTU7CiAgIC0tICBOdW1iZXIgb2YgYml0cyBpbiBiYXNl IHZhbHVlCgogICBCYXNlIDogY29uc3RhbnQgSW50IDo9IDIgKiogQmFzZV9CaXRzOwoKICAgLS0g IFZhbHVlcyBpbiB0aGUgcmFuZ2UgLShCYXNlKzEpIC4uIG1heGRpcmVjdCBhcmUgZW5jb2RlZCBk aXJlY3RseSBhcwogICAtLSAgVWludCB2YWx1ZXMgYnkgYWRkaW5nIGEgYmlhcyB2YWx1ZS4gVGhl IHZhbHVlIG9mIG1heGRpcmVjdCBpcyBjaG9zZW4KICAgLS0gIHNvIHRoYXQgYSBkaXJlY3RseSBy ZXByZXNlbnRlZCBudW1iZXIgYWx3YXlzIGZpdHMgaW4gdHdvIGRpZ2l0cyB3aGVuCiAgIC0tICBy ZXByZXNlbnRlZCBpbiBiYXNlIGZvcm1hdC4KCiAgIE1pbl9EaXJlY3QgOiBjb25zdGFudCBJbnQg Oj0gLShCYXNlIC0gMSk7CiAgIE1heF9EaXJlY3QgOiBjb25zdGFudCBJbnQgOj0gKEJhc2UgLSAx KSAqIChCYXNlIC0gMSk7CgogICAtLSAgVGhlIGZvbGxvd2luZyB2YWx1ZXMgZGVmaW5lIHRoZSBi aWFzIHVzZWQgdG8gc3RvcmUgVWludCB2YWx1ZXMgd2hpY2gKICAgLS0gIGFyZSBpbiB0aGlzIHJh bmdlLCBhcyB3ZWxsIGFzIHRoZSBiaWFzZWQgdmFsdWVzIGZvciB0aGUgZmlyc3QgYW5kCiAgIC0t ICBsYXN0IHZhbHVlcyBpbiB0aGlzIHJhbmdlLiBXZSB1c2UgYSBuZXcgZGVyaXZlZCB0eXBlIGZv ciB0aGVzZQogICAtLSAgY29uc3RhbnRzIHRvIGF2b2lkIGFjY2lkZW50YWwgdXNlIG9mIFVpbnQg YXJpdGhtZXRpYyBvbiB0aGVzZQogICAtLSAgdmFsdWVzLCB3aGljaCBpcyBuZXZlciBjb3JyZWN0 LgoKICAgdHlwZSBDdHJsIGlzIHJhbmdlIEludCdGaXJzdCAuLiBJbnQnTGFzdDsKCiAgIFVpbnRf RGlyZWN0X0JpYXMgIDogY29uc3RhbnQgQ3RybCA6PSBDdHJsIChVaW50X0xvd19Cb3VuZCkgKyBD dHJsIChCYXNlKTsKICAgVWludF9EaXJlY3RfRmlyc3QgOiBjb25zdGFudCBDdHJsIDo9IFVpbnRf RGlyZWN0X0JpYXMgKyBDdHJsIChNaW5fRGlyZWN0KTsKICAgVWludF9EaXJlY3RfTGFzdCAgOiBj b25zdGFudCBDdHJsIDo9IFVpbnRfRGlyZWN0X0JpYXMgKyBDdHJsIChNYXhfRGlyZWN0KTsKCiAg IFVpbnRfMCAgIDogY29uc3RhbnQgVWludCA6PSBVaW50IChVaW50X0RpcmVjdF9CaWFzKTsKICAg VWludF8xICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMgKyAxKTsK ICAgVWludF8yICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMgKyAy KTsKICAgVWludF8zICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMg KyAzKTsKICAgVWludF80ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0Jp YXMgKyA0KTsKICAgVWludF81ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0 X0JpYXMgKyA1KTsKICAgVWludF82ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGly ZWN0X0JpYXMgKyA2KTsKICAgVWludF83ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRf RGlyZWN0X0JpYXMgKyA3KTsKICAgVWludF84ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVp bnRfRGlyZWN0X0JpYXMgKyA4KTsKICAgVWludF85ICAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQg KFVpbnRfRGlyZWN0X0JpYXMgKyA5KTsKICAgVWludF8xMCAgOiBjb25zdGFudCBVaW50IDo9IFVp bnQgKFVpbnRfRGlyZWN0X0JpYXMgKyAxMCk7CiAgIFVpbnRfMTIgIDogY29uc3RhbnQgVWludCA6 PSBVaW50IChVaW50X0RpcmVjdF9CaWFzICsgMTIpOwogICBVaW50XzE1ICA6IGNvbnN0YW50IFVp bnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyArIDE1KTsKICAgVWludF8xNiAgOiBjb25zdGFu dCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMgKyAxNik7CiAgIFVpbnRfMjQgIDogY29u c3RhbnQgVWludCA6PSBVaW50IChVaW50X0RpcmVjdF9CaWFzICsgMjQpOwogICBVaW50XzMyICA6 IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyArIDMyKTsKICAgVWludF82 MyAgOiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMgKyA2Myk7CiAgIFVp bnRfNjQgIDogY29uc3RhbnQgVWludCA6PSBVaW50IChVaW50X0RpcmVjdF9CaWFzICsgNjQpOwog ICBVaW50XzEyOCA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyArIDEy OCk7CgogICBVaW50X01pbnVzXzEgICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJl Y3RfQmlhcyAtIDEpOwogICBVaW50X01pbnVzXzIgICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAo VWludF9EaXJlY3RfQmlhcyAtIDIpOwogICBVaW50X01pbnVzXzMgICA6IGNvbnN0YW50IFVpbnQg Oj0gVWludCAoVWludF9EaXJlY3RfQmlhcyAtIDMpOwogICBVaW50X01pbnVzXzQgICA6IGNvbnN0 YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyAtIDQpOwogICBVaW50X01pbnVzXzUg ICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyAtIDUpOwogICBVaW50 X01pbnVzXzYgICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyAtIDYp OwogICBVaW50X01pbnVzXzcgICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3Rf QmlhcyAtIDcpOwogICBVaW50X01pbnVzXzggICA6IGNvbnN0YW50IFVpbnQgOj0gVWludCAoVWlu dF9EaXJlY3RfQmlhcyAtIDgpOwogICBVaW50X01pbnVzXzkgICA6IGNvbnN0YW50IFVpbnQgOj0g VWludCAoVWludF9EaXJlY3RfQmlhcyAtIDkpOwogICBVaW50X01pbnVzXzEyICA6IGNvbnN0YW50 IFVpbnQgOj0gVWludCAoVWludF9EaXJlY3RfQmlhcyAtIDEyKTsKICAgVWludF9NaW51c18xMjgg OiBjb25zdGFudCBVaW50IDo9IFVpbnQgKFVpbnRfRGlyZWN0X0JpYXMgLSAxMjgpOwoKICAgdHlw ZSBTYXZlX01hcmsgaXMgcmVjb3JkCiAgICAgIFNhdmVfVWludCAgIDogVWludDsKICAgICAgU2F2 ZV9VZGlnaXQgOiBJbnQ7CiAgIGVuZCByZWNvcmQ7CgogICAtLSAgVmFsdWVzIG91dHNpZGUgdGhl IHJhbmdlIHRoYXQgaXMgcmVwcmVzZW50ZWQgZGlyZWN0bHkgYXJlIHN0b3JlZAogICAtLSAgdXNp bmcgdHdvIHRhYmxlcy4gVGhlIHNlY29uZGFyeSB0YWJsZSBVZGlnaXRzIGNvbnRhaW5zIHNlcXVl bmNlcyBvZgogICAtLSAgSW50IHZhbHVlcyBjb25zaXN0aW5nIG9mIHRoZSBkaWdpdHMgb2YgdGhl IG51bWJlciBpbiBhIHJhZGl4IEJhc2UKICAgLS0gIHN5c3RlbS4gVGhlIGRpZ2l0cyBhcmUgc3Rv cmVkIGZyb20gbW9zdCBzaWduaWZpY2FudCB0byBsZWFzdAogICAtLSAgc2lnbmlmaWNhbnQgd2l0 aCB0aGUgZmlyc3QgZGlnaXQgb25seSBjYXJyeWluZyB0aGUgc2lnbi4KCiAgIC0tICBUaGVyZSBp cyBvbmUgZW50cnkgaW4gdGhlIHByaW1hcnkgVWludHMgdGFibGUgZm9yIGVhY2ggZGlzdGluY3Qg VWludAogICAtLSAgdmFsdWUuIFRoaXMgdGFibGUgZW50cnkgY29udGFpbnMgdGhlIGxlbmd0aCAo bnVtYmVyIG9mIGRpZ2l0cykgYW5kCiAgIC0tICBhIHN0YXJ0aW5nIG9mZnNldCBvZiB0aGUgdmFs dWUgaW4gdGhlIFVkaWdpdHMgdGFibGUuCgogICBVaW50X0ZpcnN0X0VudHJ5IDogY29uc3RhbnQg VWludCA6PSBVaW50IChVaW50X1RhYmxlX1N0YXJ0KTsKCiAgIC0tICBTb21lIHN1YnByb2dyYW1z IGRlZmluZWQgaW4gdGhpcyBwYWNrYWdlIG1hbmlwdWxhdGUgdGhlIFVkaWdpdHMKICAgLS0gIHRh YmxlIGRpcmVjdGx5LCB3aGlsZSBmb3Igb3RoZXJzIGl0IGlzIG1vcmUgY29udmVuaWVudCB0byB3 b3JrIHdpdGgKICAgLS0gIGxvY2FsbHkgZGVmaW5lZCBhcnJheXMgb2YgdGhlIGRpZ2l0cyBvZiB0 aGUgVW5pdmVyc2FsIEludGVnZXJzLgogICAtLSAgVGhlIHR5cGUgVUlfVmVjdG9yIGlzIGRlZmlu ZWQgZm9yIHRoaXMgcHVycG9zZSBhbmQgc29tZSBpbnRlcm5hbAogICAtLSAgc3VicHJvZ3JhbXMg dXNlZCBmb3IgY29udmVydGluZyBmcm9tIG9uZSB0byB0aGUgb3RoZXIgYXJlIGRlZmluZWQuCgog ICB0eXBlIFVJX1ZlY3RvciBpcyBhcnJheSAoUG9zIHJhbmdlIDw+KSBvZiBJbnQ7CiAgIC0tICBW ZWN0b3IgY29udGFpbmluZyB0aGUgaW50ZWdlciB2YWx1ZXMgb2YgYSBVaW50IHZhbHVlCgogICAt LSAgTm90ZTogQW4gZWFybGllciB2ZXJzaW9uIG9mIHRoaXMgcGFja2FnZSB1c2VkIHBvaW50ZXJz IG9mIGFycmF5cwogICAtLSAgb2YgSW50cyAoZHluYW1pY2FsbHkgYWxsb2NhdGVkKSBmb3IgdGhl IFVpbnQgdHlwZS4gVGhlIGNoYW5nZQogICAtLSAgbGVhZHMgdG8gYSBmZXcgbGVzcyBuYXR1cmFs IGlkaW9tcyB1c2VkIHRocm91Z2hvdXQgdGhpcyBjb2RlLCBidXQKICAgLS0gIGVsaW1pbmF0ZXMg YWxsIHVzZXMgb2YgdGhlIGhlYXAgZXhjZXB0IGZvciB0aGUgdGFibGUgcGFja2FnZSBpdHNlbGYu CiAgIC0tICBGb3IgZXhhbXBsZSwgVWludCBwYXJhbWV0ZXJzIGFyZSBvZnRlbiBjb252ZXJ0ZWQg dG8gVUlfVmVjdG9ycyBmb3IKICAgLS0gIGludGVybmFsIG1hbmlwdWxhdGlvbi4gVGhpcyBpcyBk b25lIGJ5IGNyZWF0aW5nIHRoZSBsb2NhbCBVSV9WZWN0b3IKICAgLS0gIHVzaW5nIHRoZSBmdW5j dGlvbiBOX0RpZ2l0cyBvbiB0aGUgVWludCB0byBmaW5kIHRoZSBzaXplIG5lZWRlZCBmb3IKICAg LS0gIHRoZSB2ZWN0b3IsIGFuZCB0aGVuIGNhbGxpbmcgSW5pdF9PcGVyYW5kIHRvIGNvcHkgdGhl IHZhbHVlcyBvdXQKICAgLS0gIG9mIHRoZSB0YWJsZSBpbnRvIHRoZSB2ZWN0b3IuCgogICB0eXBl IFVpbnRfRW50cnkgaXMgcmVjb3JkCiAgICAgIExlbmd0aCA6IFBvczsKICAgICAgLS0gIExlbmd0 aCBvZiBlbnRyeSBpbiBVZGlnaXRzIHRhYmxlIGluIGRpZ2l0cyAoaS5lLiBpbiB3b3JkcykKCiAg ICAgIExvYyA6IEludDsKICAgICAgLS0gIFN0YXJ0aW5nIGxvY2F0aW9uIGluIFVkaWdpdHMgdGFi bGUgb2YgdGhpcyBVaW50IHZhbHVlCiAgIGVuZCByZWNvcmQ7CgogICBwYWNrYWdlIFVpbnRzIGlz IG5ldyBUYWJsZS5UYWJsZSAoCiAgICAgVGFibGVfQ29tcG9uZW50X1R5cGUgPT4gVWludF9FbnRy eSwKICAgICBUYWJsZV9JbmRleF9UeXBlICAgICA9PiBVaW50LAogICAgIFRhYmxlX0xvd19Cb3Vu ZCAgICAgID0+IFVpbnRfRmlyc3RfRW50cnksCiAgICAgVGFibGVfSW5pdGlhbCAgICAgICAgPT4g QWxsb2MuVWludHNfSW5pdGlhbCwKICAgICBUYWJsZV9JbmNyZW1lbnQgICAgICA9PiBBbGxvYy5V aW50c19JbmNyZW1lbnQsCiAgICAgVGFibGVfTmFtZSAgICAgICAgICAgPT4gIlVpbnRzIik7Cgog ICBwYWNrYWdlIFVkaWdpdHMgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAgICBUYWJsZV9Db21wb25l bnRfVHlwZSA9PiBJbnQsCiAgICAgVGFibGVfSW5kZXhfVHlwZSAgICAgPT4gSW50LAogICAgIFRh YmxlX0xvd19Cb3VuZCAgICAgID0+IDAsCiAgICAgVGFibGVfSW5pdGlhbCAgICAgICAgPT4gQWxs b2MuVWRpZ2l0c19Jbml0aWFsLAogICAgIFRhYmxlX0luY3JlbWVudCAgICAgID0+IEFsbG9jLlVk aWdpdHNfSW5jcmVtZW50LAogICAgIFRhYmxlX05hbWUgICAgICAgICAgID0+ICJVZGlnaXRzIik7 CgogICAtLSAgTm90ZTogdGhlIHJlYXNvbiB0aGVzZSB0YWJsZXMgYXJlIGRlZmluZWQgaGVyZSBp biB0aGUgcHJpdmF0ZSBwYXJ0IG9mCiAgIC0tICB0aGUgc3BlYywgcmF0aGVyIHRoYW4gaW4gdGhl IGJvZHksIGlzIHRoYXQgdGhleSBhcmUgcmVmcmVyZW5jZWQKICAgLS0gIGRpcmVjdGx5IGJ5IGdp Z2kuCgplbmQgVWludHA7Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgR05BVCBDT01QSUxFUiBDT01QT05FTlRTICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBVIFIgRSBBIEwgUCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUyBwIGUgYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXZp c2lvbjogMS4xLjE2LjIgJAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgQ29weXJp Z2h0IChDKSAxOTkyLTE5OTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIGlzIGZyZWUgc29mdHdhcmU7ICB5b3Ug Y2FuICByZWRpc3RyaWJ1dGUgaXQgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgLS0KLS0gdGVybXMg b2YgdGhlICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgIGJ5IHRoZSBG cmVlIFNvZnQtIC0tCi0tIHdhcmUgIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyLCAgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyLSAtLQotLSBzaW9uLiAgR05BVCBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSC0gLS0K LS0gT1VUIEFOWSBXQVJSQU5UWTsgIHdpdGhvdXQgZXZlbiB0aGUgIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIC0tCi0tIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAtLQotLSBmb3IgIG1vcmUg ZGV0YWlscy4gIFlvdSBzaG91bGQgaGF2ZSAgcmVjZWl2ZWQgIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgLS0KLS0gUHVibGljIExpY2Vuc2UgIGRpc3RyaWJ1dGVkIHdpdGggR05BVDsgIHNlZSBm aWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIC0tCi0tIHRvICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCAgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgQm9zdG9uLCAtLQotLSBN QSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBl eGNlcHRpb24sICBpZiBvdGhlciBmaWxlcyAgaW5zdGFudGlhdGUgIGdlbmVyaWNzIGZyb20gdGhp cyAtLQotLSB1bml0LCBvciB5b3UgbGluayAgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgIHRv IHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgLS0KLS0gdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0 c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgZXhlY3V0YWJsZSAgdG8gIGJlIC0tCi0tIGNvdmVy ZWQgIGJ5IHRoZSAgR05VICBHZW5lcmFsICBQdWJsaWMgIExpY2Vuc2UuICBUaGlzIGV4Y2VwdGlv biBkb2VzIG5vdCAtLQotLSBob3dldmVyIGludmFsaWRhdGUgIGFueSBvdGhlciByZWFzb25zIHdo eSAgdGhlIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgLS0KLS0gY292ZXJlZCBieSB0aGUgIEdO VSBQdWJsaWMgTGljZW5zZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCAg YnkgdGhlIEdOQVQgdGVhbSBhdCAgTmV3IFlvcmsgVW5pdmVyc2l0eS4gLS0KLS0gRXh0ZW5zaXZl IGNvbnRyaWJ1dGlvbnMgd2VyZSBwcm92aWRlZCBieSBBZGEgQ29yZSBUZWNobm9sb2dpZXMgSW5j LiAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0t ICBTdXBwb3J0IGZvciB1bml2ZXJzYWwgcmVhbCBhcml0aG1ldGljCgp3aXRoIFR5cGVzOyB1c2Ug VHlwZXM7CndpdGggVWludHA7IHVzZSBVaW50cDsKCnBhY2thZ2UgVXJlYWxwIGlzCgogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gUmVwcmVzZW50YXRpb24g b2YgVW5pdmVyc2FsIFJlYWxzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgLS0gIEEgdW5pdmVyc2FsIHJlYWwgdmFsdWUgaXMgcmVwcmVzZW50ZWQgYnkg YSBzaW5nbGUgdmFsdWUgKHdoaWNoIGlzCiAgIC0tICBhbiBpbmRleCBpbnRvIGFuIGludGVybmFs IHRhYmxlKS4gVGhlc2UgdmFsdWVzIGFyZSBub3QgaGFzaGVkLCBzbwogICAtLSAgdGhlIGVxdWFs aXR5IG9wZXJhdG9yIHNob3VsZCBub3QgYmUgdXNlZCBvbiBVcmVhbCB2YWx1ZXMgKGluc3RlYWQK ICAgLS0gIHVzZSB0aGUgVVJfRXEgZnVuY3Rpb24pLgoKICAgLS0gIEEgVXJlYWwgdmFsdWUgcmVw cmVzZW50cyBhbiBhcmJpdHJhcnkgcHJlY2lzaW9uIHVuaXZlcnNhbCByZWFsIHZhbHVlLAogICAt LSAgc3RvcmVkIGludGVybmFsbHkgdXNpbmcgZm91ciBjb21wb25lbnRzCgogICAtLSAgICB0aGUg bnVtZXJhdG9yIChVaW50LCBhbHdheXMgbm9uLW5lZ2F0aXZlKQogICAtLSAgICB0aGUgZGVub21p bmF0b3IgKFVpbnQsIGFsd2F5cyBub24temVybywgYWx3YXlzIHBvc2l0aXZlIGlmIGJhc2UgPSAw KQogICAtLSAgICBhIHJlYWwgYmFzZSAoTmF0LCBlaXRoZXIgemVybywgb3IgaW4gdGhlIHJhbmdl IDIgLi4gMTYpCiAgIC0tICAgIGEgc2lnbiBmbGFnIChCb29sZWFuKSwgc2V0IGlmIG5lZ2F0aXZl CgogICAtLSAgSWYgdGhlIGJhc2UgaXMgemVybywgdGhlbiB0aGUgYWJzb2x1dGUgdmFsdWUgb2Yg dGhlIFVyZWFsIGlzIHNpbXBseQogICAtLSAgbnVtZXJhdG9yL2Rlbm9taW5hdG9yLiBJZiB0aGUg YmFzZSBpcyBub24temVybywgdGhlbiB0aGUgYWJzb2x1dGUKICAgLS0gIHZhbHVlIGlzIG51bSAv IChyYmFzZSAqKiBkZW4pLgoKICAgLS0gIE5lZ2F0aXZlIG51bWJlcnMgYXJlIHJlcHJlc2VudGVk IGJ5IHRoZSBzaWduIG9mIHRoZSBudW1lcmF0b3IgYmVpbmcKICAgLS0gIG5lZ2F0aXZlLiBUaGUg ZGVub21pbmF0b3IgaXMgYWx3YXlzIHBvc2l0aXZlLgoKICAgLS0gIEEgbm9ybWFsaXplZCBVcmVh bCB2YWx1ZSBoYXMgYmFzZSA9IDAsIGFuZCBudW1lcmF0b3IvZGVub21pbmF0b3IKICAgLS0gIHJl ZHVjZWQgdG8gbG93ZXN0IHRlcm1zLCB3aXRoIHplcm8gaXRzZWxmIGJlaW5nIHJlcHJlc2VudGVk IGFzIDAvMS4KICAgLS0gIFRoaXMgaXMgYSBjYW5vbmljYWwgZm9ybWF0LCBzbyB0aGF0IGZvciBu b3JtYWxpemVkIFVyZWFsIHZhbHVlcyBpdAogICAtLSAgaXMgdGhlIGNhc2UgdGhhdCB0d28gZXF1 YWwgdmFsdWVzIGFsd2F5cyBoYXZlIHRoZSBzYW1lIGRlbm9taW5hdG9yCiAgIC0tICBhbmQgbnVt ZXJhdG9yIHZhbHVlcy4KCiAgIC0tICBOb3RlOiBhIHZhbHVlIG9mIG1pbnVzIHplcm8gaXMgbGVn aXRpbWF0ZSwgYW5kIHRoZSBvcGVyYXRpb25zIGluCiAgIC0tICBVcmVhbHAgcHJlc2VydmUgdGhl IGhhbmRsaW5nIG9mIHNpZ25lZCB6ZXJvZXMgaW4gYWNjb3JkYW5jZSB3aXRoCiAgIC0tICB0aGUg cnVsZXMgb2YgSUVFRSBQNzU0ICgiSUVFRSBmbG9hdGluZyBwb2ludCIpLgoKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFR5cGVzIGZvciBVcmVhbHAgUGFja2FnZSAtLQog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHR5cGUgVXJlYWwgaXMgcHJpdmF0 ZTsKICAgLS0gIFR5cGUgdXNlZCBmb3IgcmVwcmVzZW50YXRpb24gb2YgdW5pdmVyc2FsIHJlYWxz CgogICBOb19VcmVhbCA6IGNvbnN0YW50IFVyZWFsOwogICAtLSAgQ29uc3RhbnQgdXNlZCB0byBp bmRpY2F0ZSBtaXNzaW5nIG9yIHVuc2V0IFVyZWFsIHZhbHVlCgogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAgLS0gVXJlYWwgQ29uc3RhbnRzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgZnVuY3Rpb24gVXJlYWxfMCByZXR1cm4gVXJlYWw7CiAgIC0tICBSZXR1cm5zIHZhbHVlIDAu MAoKICAgZnVuY3Rpb24gVXJlYWxfTV8wIHJldHVybiBVcmVhbDsKICAgLS0gIFJldHVybnMgdmFs dWUgLTAuMAoKICAgZnVuY3Rpb24gVXJlYWxfVGVudGggcmV0dXJuIFVyZWFsOwogICAtLSAgUmV0 dXJucyB2YWx1ZSAwLjEKCiAgIGZ1bmN0aW9uIFVyZWFsX0hhbGYgcmV0dXJuIFVyZWFsOwogICAt LSAgUmV0dXJucyB2YWx1ZSAwLjUKCiAgIGZ1bmN0aW9uIFVyZWFsXzEgcmV0dXJuIFVyZWFsOwog ICAtLSAgUmV0dXJucyB2YWx1ZSAxLjAKCiAgIGZ1bmN0aW9uIFVyZWFsXzIgcmV0dXJuIFVyZWFs OwogICAtLSAgUmV0dXJucyB2YWx1ZSAyLjAKCiAgIGZ1bmN0aW9uIFVyZWFsXzEwIHJldHVybiBV cmVhbDsKICAgLS0gIFJldHVybnMgdmFsdWUgMTAuMAoKICAgZnVuY3Rpb24gVXJlYWxfMTAwIHJl dHVybiBVcmVhbDsKICAgLS0gIFJldHVybnMgdmFsdWUgMTAwLjAKCiAgIGZ1bmN0aW9uIFVyZWFs XzJfMTI4IHJldHVybiBVcmVhbDsKICAgLS0gIFJldHVybnMgdmFsdWUgMi4wICoqIDEyOAoKICAg ZnVuY3Rpb24gVXJlYWxfMl9NXzEyOCByZXR1cm4gVXJlYWw7CiAgIC0tICBSZXR1cm5zIHZhbHVl IDIuMCAqKiAoLTEyOCkKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN1YnByb2dyYW1zIC0t CiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZTsKICAgLS0gIElu aXRpYWxpemUgVXJlYWwgdGFibGVzLiBOb3RlIHRoYXQgSW5pdGlhbGl6ZSBtdXN0IG5vdCBiZSBj YWxsZWQgaWYKICAgLS0gIFRyZWVfUmVhZCBpcyB1c2VkLiBOb3RlIGFsc28gdGhhdCB0aGVyZSBp cyBubyBMb2NrIHJvdXRpbmUgaW4gdGhpcwogICAtLSAgdW5pdC4gVGhlc2UgdGFibGVzIGFyZSBh bW9uZyB0aGUgZmV3IHRhYmxlcyB0aGF0IGNhbiBiZSBleHBhbmRlZAogICAtLSAgZHVyaW5nIEdp Z2kgcHJvY2Vzc2luZy4KCiAgIHByb2NlZHVyZSBUcmVlX1JlYWQ7CiAgIC0tICBJbml0aWFsaXpl cyBpbnRlcm5hbCB0YWJsZXMgZnJvbSBjdXJyZW50IHRyZWUgZmlsZSB1c2luZyBUcmVlX1JlYWQu CiAgIC0tICBOb3RlIHRoYXQgSW5pdGlhbGl6ZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpZiBUcmVl X1JlYWQgaXMgdXNlZC4KICAgLS0gIFRyZWVfUmVhZCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IGlu aXRpYWxpemF0aW9uLgoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGU7CiAgIC0tICBXcml0ZXMgb3V0 IGludGVybmFsIHRhYmxlcyB0byBjdXJyZW50IHRyZWUgZmlsZSB1c2luZyBUcmVlX1dyaXRlCgog ICBmdW5jdGlvbiBSYmFzZSAoUmVhbCA6IFVyZWFsKSByZXR1cm4gTmF0OwogICAtLSAgUmV0dXJu IHRoZSBiYXNlIG9mIHRoZSB1bml2ZXJzYWwgcmVhbC4KCiAgIGZ1bmN0aW9uIERlbm9taW5hdG9y IChSZWFsIDogVXJlYWwpIHJldHVybiBVaW50OwogICAtLSAgUmV0dXJuIHRoZSBkZW5vbWluYXRv ciBvZiB0aGUgdW5pdmVyc2FsIHJlYWwuCgogICBmdW5jdGlvbiBOdW1lcmF0b3IgKFJlYWwgOiBV cmVhbCkgcmV0dXJuIFVpbnQ7CiAgIC0tICBSZXR1cm4gdGhlIG51bWVyYXRvciBvZiB0aGUgdW5p dmVyc2FsIHJlYWwuCgogICBmdW5jdGlvbiBOb3JtX0RlbiAoUmVhbCA6IFVyZWFsKSByZXR1cm4g VWludDsKICAgLS0gIFJldHVybiB0aGUgZGVub21pbmF0b3Igb2YgdGhlIHVuaXZlcnNhbCByZWFs IGFmdGVyIGEgbm9ybWFsaXphdGlvbi4KCiAgIGZ1bmN0aW9uIE5vcm1fTnVtIChSZWFsIDogVXJl YWwpIHJldHVybiBVaW50OwogICAtLSAgUmV0dXJuIHRoZSBudW1lcmF0b3Igb2YgdGhlIHVuaXZl cnNhbCByZWFsIGFmdGVyIGEgbm9ybWFsaXphdGlvbi4KCiAgIGZ1bmN0aW9uIFVSX0Zyb21fVWlu dCAoVUkgOiBVaW50KSByZXR1cm4gVXJlYWw7CiAgIC0tICBSZXR1cm5zIHJlYWwgY29ycmVzcG9u ZGluZyB0byB1bml2ZXJzYWwgaW50ZWdlciB2YWx1ZQoKICAgZnVuY3Rpb24gVVJfVG9fVWludCAo UmVhbCA6IFVyZWFsKSByZXR1cm4gVWludDsKICAgLS0gIFJldHVybiBpbnRlZ2VyIHZhbHVlIG9i dGFpbmVkIGJ5IGFjY3VyYXRlIHJvdW5kaW5nIG9mIHJlYWwgdmFsdWUuCiAgIC0tICBUaGUgcm91 bmRpbmcgb2YgdmFsdWVzIGhhbGYgd2F5IGJldHdlZW4gdHdvIGludGVnZXJzIGlzIGF3YXkgZnJv bQogICAtLSAgemVybywgYXMgcmVxdWlyZWQgYnkgbm9ybWFsIEFkYSA5NSByb3VuZGluZyBzZW1h bnRpY3MuCgogICBmdW5jdGlvbiBVUl9UcnVuYyAoUmVhbCA6IFVyZWFsKSByZXR1cm4gVWludDsK ICAgLS0gIFJldHVybiBpbnRlZ2VyIHZhbHVlIG9idGFpbmVkIGJ5IGEgdHJ1bmNhdGlvbiBvZiBy ZWFsIHRvd2FyZHMgemVybwoKICAgZnVuY3Rpb24gVVJfQ2VpbGluZyAoUmVhbCA6IFVyZWFsKSBy ZXR1cm4gVWludDsKICAgLS0gIFJldHVybiB2YWx1ZSBvZiBzbWFsbGVzdCBpbnRlZ2VyIG5vdCBs ZXNzIHRoYW4gdGhlIGdpdmVuIHZhbHVlCgogICBmdW5jdGlvbiBVUl9GbG9vciAoUmVhbCA6IFVy ZWFsKSByZXR1cm4gVWludDsKICAgLS0gIFJldHVybiB2YWx1ZSBvZiBzbWFsbGVzdCBpbnRlZ2Vy IG5vdCBncmVhdGVyIHRoYW4gdGhlIGdpdmVuIHZhbHVlCgogICAtLSAgQ29udmVyc2lvbiB0YWJs ZSBmb3IgYWJvdmUgZm91ciBmdW5jdGlvbnMKCiAgIC0tICAgIElucHV0ICAgIFRvX1VpbnQgICAg VHJ1bmMgICAgQ2VpbGluZyAgICBGbG9vcgogICAtLSAgICAgMS4wICAgICAgICAxICAgICAgICAg MSAgICAgICAgIDEgICAgICAgICAxCiAgIC0tICAgICAxLjIgICAgICAgIDEgICAgICAgICAxICAg ICAgICAgMiAgICAgICAgIDEKICAgLS0gICAgIDEuNSAgICAgICAgMiAgICAgICAgIDEgICAgICAg ICAyICAgICAgICAgMQogICAtLSAgICAgMS43ICAgICAgICAyICAgICAgICAgMSAgICAgICAgIDIg ICAgICAgICAxCiAgIC0tICAgICAyLjAgICAgICAgIDIgICAgICAgICAyICAgICAgICAgMiAgICAg ICAgIDIKICAgLS0gICAgLTEuMCAgICAgICAtMSAgICAgICAgLTEgICAgICAgIC0xICAgICAgICAt MQogICAtLSAgICAtMS4yICAgICAgIC0xICAgICAgICAtMSAgICAgICAgLTEgICAgICAgIC0yCiAg IC0tICAgIC0xLjUgICAgICAgLTIgICAgICAgIC0xICAgICAgICAtMSAgICAgICAgLTIKICAgLS0g ICAgLTEuNyAgICAgICAtMiAgICAgICAgLTEgICAgICAgIC0xICAgICAgICAtMgogICAtLSAgICAt Mi4wICAgICAgIC0yICAgICAgICAtMiAgICAgICAgLTIgICAgICAgIC0yCgogICBmdW5jdGlvbiBV Ul9Gcm9tX0NvbXBvbmVudHMKICAgICAoTnVtICAgICAgOiBVaW50OwogICAgICBEZW4gICAgICA6 IFVpbnQ7CiAgICAgIFJiYXNlICAgIDogTmF0IDo9IDA7CiAgICAgIE5lZ2F0aXZlIDogQm9vbGVh biA6PSBGYWxzZSkKICAgICAgcmV0dXJuICAgICBVcmVhbDsKICAgLS0gIEJ1aWxkcyByZWFsIHZh bHVlIGZyb20gZ2l2ZW4gbnVtZXJhdG9yLCBkZW5vbWluYXRvciBhbmQgYmFzZS4gVGhlCiAgIC0t ICB2YWx1ZSBpcyBuZWdhdGl2ZSBpZiBOZWdhdGl2ZSBpcyBzZXQgdG8gdHJ1ZSwgYW5kIG90aGVy d2lzZSBpcwogICAtLSAgbm9uLW5lZ2F0aXZlLgoKICAgZnVuY3Rpb24gVVJfQWRkIChMZWZ0IDog VXJlYWw7IFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbDsKICAgZnVuY3Rpb24gVVJfQWRkIChM ZWZ0IDogVXJlYWw7IFJpZ2h0IDogVWludCkgIHJldHVybiBVcmVhbDsKICAgZnVuY3Rpb24gVVJf QWRkIChMZWZ0IDogVWludDsgIFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbDsKICAgLS0gIFJl dHVybnMgcmVhbCBzdW0gb2Ygb3BlcmFuZHMKCiAgIGZ1bmN0aW9uIFVSX0RpdiAoTGVmdCA6IFVy ZWFsOyBSaWdodCA6IFVyZWFsKSByZXR1cm4gVXJlYWw7CiAgIGZ1bmN0aW9uIFVSX0RpdiAoTGVm dCA6IFVpbnQ7ICBSaWdodCA6IFVyZWFsKSByZXR1cm4gVXJlYWw7CiAgIGZ1bmN0aW9uIFVSX0Rp diAoTGVmdCA6IFVyZWFsOyBSaWdodCA6IFVpbnQpICByZXR1cm4gVXJlYWw7CiAgIC0tICBSZXR1 cm5zIHJlYWwgcXVvdGllbnQgb2Ygb3BlcmFuZHMuIEZhdGFsIGVycm9yIGlmIFJpZ2h0IGlzIHpl cm8KCiAgIGZ1bmN0aW9uIFVSX011bCAoTGVmdCA6IFVyZWFsOyBSaWdodCA6IFVyZWFsKSByZXR1 cm4gVXJlYWw7CiAgIGZ1bmN0aW9uIFVSX011bCAoTGVmdCA6IFVpbnQ7ICBSaWdodCA6IFVyZWFs KSByZXR1cm4gVXJlYWw7CiAgIGZ1bmN0aW9uIFVSX011bCAoTGVmdCA6IFVyZWFsOyBSaWdodCA6 IFVpbnQpICByZXR1cm4gVXJlYWw7CiAgIC0tICBSZXR1cm5zIHJlYWwgcHJvZHVjdCBvZiBvcGVy YW5kcwoKICAgZnVuY3Rpb24gVVJfU3ViIChMZWZ0IDogVXJlYWw7IFJpZ2h0IDogVXJlYWwpIHJl dHVybiBVcmVhbDsKICAgZnVuY3Rpb24gVVJfU3ViIChMZWZ0IDogVWludDsgIFJpZ2h0IDogVXJl YWwpIHJldHVybiBVcmVhbDsKICAgZnVuY3Rpb24gVVJfU3ViIChMZWZ0IDogVXJlYWw7IFJpZ2h0 IDogVWludCkgIHJldHVybiBVcmVhbDsKICAgLS0gIFJldHVybnMgcmVhbCBkaWZmZXJlbmNlIG9m IG9wZXJhbmRzCgogICBmdW5jdGlvbiBVUl9FeHBvbmVudGlhdGUgKFJlYWwgIDogVXJlYWw7IE4g OiBVaW50KSByZXR1cm4gIFVyZWFsOwogICAtLSAgUmV0dXJucyByZXN1bHQgb2YgcmFpc2luZyBV cmVhbCB0byBVaW50IHBvd2VyLgogICAtLSAgRmF0YWwgZXJyb3IgaWYgTGVmdCBpcyAwIGFuZCBS aWdodCBpcyBuZWdhdGl2ZS4KCiAgIGZ1bmN0aW9uIFVSX0FicyAoUmVhbCA6IFVyZWFsKSByZXR1 cm4gVXJlYWw7CiAgIC0tICBSZXR1cm5zIGFicyBmdW5jdGlvbiBvZiByZWFsCgogICBmdW5jdGlv biBVUl9OZWdhdGUgKFJlYWwgOiBVcmVhbCkgcmV0dXJuIFVyZWFsOwogICAtLSAgUmV0dXJucyBu ZWdhdGl2ZSBvZiByZWFsCgogICBmdW5jdGlvbiBVUl9FcSAoTGVmdCwgUmlnaHQgOiBVcmVhbCkg cmV0dXJuIEJvb2xlYW47CiAgIC0tICBDb21wYXJlcyByZWFscyBmb3IgZXF1YWxpdHkuCgogICBm dW5jdGlvbiBVUl9NYXggKExlZnQsIFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbDsKICAgLS0g IFJldHVybnMgdGhlIG1heGltdW0gb2YgdHdvIHJlYWxzCgogICBmdW5jdGlvbiBVUl9NaW4gKExl ZnQsIFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbDsKICAgLS0gIFJldHVybnMgdGhlIG1pbmlt dW0gb2YgdHdvIHJlYWxzCgogICBmdW5jdGlvbiBVUl9OZSAoTGVmdCwgUmlnaHQgOiBVcmVhbCkg cmV0dXJuIEJvb2xlYW47CiAgIC0tICBDb21wYXJlcyByZWFscyBmb3IgaW5lcXVhbGl0eS4KCiAg IGZ1bmN0aW9uIFVSX0x0IChMZWZ0LCBSaWdodCA6IFVyZWFsKSByZXR1cm4gQm9vbGVhbjsKICAg LS0gIENvbXBhcmVzIHJlYWxzIGZvciBsZXNzIHRoYW4uCgogICBmdW5jdGlvbiBVUl9MZSAoTGVm dCwgUmlnaHQgOiBVcmVhbCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBDb21wYXJlcyByZWFscyBm b3IgbGVzcyB0aGFuIG9yIGVxdWFsLgoKICAgZnVuY3Rpb24gVVJfR3QgKExlZnQsIFJpZ2h0IDog VXJlYWwpIHJldHVybiBCb29sZWFuOwogICAtLSAgQ29tcGFyZXMgcmVhbHMgZm9yIGdyZWF0ZXIg dGhhbi4KCiAgIGZ1bmN0aW9uIFVSX0dlIChMZWZ0LCBSaWdodCA6IFVyZWFsKSByZXR1cm4gQm9v bGVhbjsKICAgLS0gIENvbXBhcmVzIHJlYWxzIGZvciBncmVhdGVyIHRoYW4gb3IgZXF1YWwuCgog ICBmdW5jdGlvbiBVUl9Jc19aZXJvIChSZWFsIDogVXJlYWwpIHJldHVybiBCb29sZWFuOwogICAt LSAgVGVzdHMgaWYgcmVhbCB2YWx1ZSBpcyB6ZXJvCgogICBmdW5jdGlvbiBVUl9Jc19OZWdhdGl2 ZSAoUmVhbCA6IFVyZWFsKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3RzIGlmIHJlYWwgdmFs dWUgaXMgbmVnYXRpdmUsIG5vdGUgdGhhdCBuZWdhdGl2ZSB6ZXJvIGdpdmVzIHRydWUKCiAgIGZ1 bmN0aW9uIFVSX0lzX1Bvc2l0aXZlIChSZWFsIDogVXJlYWwpIHJldHVybiBCb29sZWFuOwogICAt LSAgVGVzdCBpZiByZWFsIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvCgogICBwcm9jZWR1cmUg VVJfV3JpdGUgKFJlYWwgOiBVcmVhbCk7CiAgIC0tICBXcml0ZXMgdmFsdWUgb2YgUmVhbCB0byBz dGFuZGFyZCBvdXRwdXQuIFVzZWQgb25seSBmb3IgZGVidWdnaW5nIGFuZAogICAtLSAgdHJlZS9z b3VyY2Ugb3V0cHV0LiBJZiB0aGUgcmVzdWx0IGlzIGVhc2lseSByZXByZXNlbnRhYmxlIGFzIGEg c3RhbmRhcmQKICAgLS0gIEFkYSBsaXRlcmFsLCBpdCB3aWxsIGJlIGdpdmVuIHRoYXQgd2F5LCBi dXQgYXMgYSByZXN1bHQgb2YgZXZhbHVhdGlvbgogICAtLSAgb2Ygc3RhdGljIGV4cHJlc3Npb25z LCBpdCBpcyBwb3NzaWJsZSB0byBnZW5lcmF0ZSBjb25zdGFudHMgKGUuZy4gMS8xMykKICAgLS0g IHdoaWNoIGhhdmUgbm8gc3VjaCByZXByZXNlbnRhdGlvbi4gSW4gc3VjaCBjYXNlcyAoYW5kIGlu IGNhc2VzIHdoZXJlIGl0CiAgIC0tICBpcyB0b28gbXVjaCB3b3JrIHRvIGZpZ3VyZSBvdXQgdGhl IEFkYSBsaXRlcmFsKSwgdGhlIHN0cmluZyB0aGF0IGlzCiAgIC0tICBvdXRwdXQgaXMgb2YgdGhl IGZvcm0gW251bWVyYXRvci9kZW5vbWluYXRvcl0uCgogICBwcm9jZWR1cmUgcHIgKFJlYWwgOiBV cmVhbCk7CiAgIC0tICBXcml0ZXMgdmFsdWUgb2YgUmVhbCB0byBzdGFuZGFyZCBvdXRwdXQgd2l0 aCBhIHRlcm1pbmF0aW5nIGxpbmUgcmV0dXJuLAogICAtLSAgdXNpbmcgVVJfV3JpdGUgYXMgZGVz Y3JpYmVkIGFib3ZlLiBUaGlzIGlzIGZvciB1c2UgZnJvbSB0aGUgZGVidWdnZXIuCgogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gT3BlcmF0b3IgUmVuYW1pbmdzIC0tCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgZnVuY3Rpb24gIisiIChMZWZ0IDogVXJlYWw7IFJpZ2h0 IDogVXJlYWwpIHJldHVybiBVcmVhbCByZW5hbWVzIFVSX0FkZDsKICAgZnVuY3Rpb24gIisiIChM ZWZ0IDogVWludDsgIFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbCByZW5hbWVzIFVSX0FkZDsK ICAgZnVuY3Rpb24gIisiIChMZWZ0IDogVXJlYWw7IFJpZ2h0IDogVWludCkgIHJldHVybiBVcmVh bCByZW5hbWVzIFVSX0FkZDsKCiAgIGZ1bmN0aW9uICIvIiAoTGVmdCA6IFVyZWFsOyBSaWdodCA6 IFVyZWFsKSByZXR1cm4gVXJlYWwgcmVuYW1lcyBVUl9EaXY7CiAgIGZ1bmN0aW9uICIvIiAoTGVm dCA6IFVpbnQ7ICBSaWdodCA6IFVyZWFsKSByZXR1cm4gVXJlYWwgcmVuYW1lcyBVUl9EaXY7CiAg IGZ1bmN0aW9uICIvIiAoTGVmdCA6IFVyZWFsOyBSaWdodCA6IFVpbnQpICByZXR1cm4gVXJlYWwg cmVuYW1lcyBVUl9EaXY7CgogICBmdW5jdGlvbiAiKiIgKExlZnQgOiBVcmVhbDsgUmlnaHQgOiBV cmVhbCkgcmV0dXJuIFVyZWFsIHJlbmFtZXMgVVJfTXVsOwogICBmdW5jdGlvbiAiKiIgKExlZnQg OiBVaW50OyAgUmlnaHQgOiBVcmVhbCkgcmV0dXJuIFVyZWFsIHJlbmFtZXMgVVJfTXVsOwogICBm dW5jdGlvbiAiKiIgKExlZnQgOiBVcmVhbDsgUmlnaHQgOiBVaW50KSAgcmV0dXJuIFVyZWFsIHJl bmFtZXMgVVJfTXVsOwoKICAgZnVuY3Rpb24gIi0iIChMZWZ0IDogVXJlYWw7IFJpZ2h0IDogVXJl YWwpIHJldHVybiBVcmVhbCByZW5hbWVzIFVSX1N1YjsKICAgZnVuY3Rpb24gIi0iIChMZWZ0IDog VWludDsgIFJpZ2h0IDogVXJlYWwpIHJldHVybiBVcmVhbCByZW5hbWVzIFVSX1N1YjsKICAgZnVu Y3Rpb24gIi0iIChMZWZ0IDogVXJlYWw7IFJpZ2h0IDogVWludCkgIHJldHVybiBVcmVhbCByZW5h bWVzIFVSX1N1YjsKCiAgIGZ1bmN0aW9uICIqKiIgIChSZWFsICA6IFVyZWFsOyBOIDogVWludCkg cmV0dXJuIFVyZWFsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcmVuYW1lcyBVUl9FeHBvbmVudGlhdGU7CgogICBmdW5jdGlvbiAiYWJzIiAoUmVh bCA6IFVyZWFsKSByZXR1cm4gVXJlYWwgcmVuYW1lcyBVUl9BYnM7CgogICBmdW5jdGlvbiAiLSIg ICAoUmVhbCA6IFVyZWFsKSByZXR1cm4gVXJlYWwgcmVuYW1lcyBVUl9OZWdhdGU7CgogICBmdW5j dGlvbiAiPSIgICAoTGVmdCwgUmlnaHQgOiBVcmVhbCkgcmV0dXJuIEJvb2xlYW4gcmVuYW1lcyBV Ul9FcTsKCiAgIGZ1bmN0aW9uICI8IiAgIChMZWZ0LCBSaWdodCA6IFVyZWFsKSByZXR1cm4gQm9v bGVhbiByZW5hbWVzIFVSX0x0OwoKICAgZnVuY3Rpb24gIjw9IiAgKExlZnQsIFJpZ2h0IDogVXJl YWwpIHJldHVybiBCb29sZWFuIHJlbmFtZXMgVVJfTGU7CgogICBmdW5jdGlvbiAiPj0iICAoTGVm dCwgUmlnaHQgOiBVcmVhbCkgcmV0dXJuIEJvb2xlYW4gcmVuYW1lcyBVUl9HZTsKCiAgIGZ1bmN0 aW9uICI+IiAgIChMZWZ0LCBSaWdodCA6IFVyZWFsKSByZXR1cm4gQm9vbGVhbiByZW5hbWVzIFVS X0d0OwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gTWFyay9SZWxlYXNl IFByb2Nlc3NpbmcgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBU aGUgc3BhY2UgdXNlZCBieSBVcmVhbCBkYXRhIGlzIG5vdCBhdXRvbWF0aWNhbGx5IHJlY2xhaW1l ZC4gSG93ZXZlciwKICAgLS0gIGEgbWFyay1yZWxlYXNlIHJlZ2ltZSBpcyBpbXBsZW1lbnRlZCB3 aGljaCBhbGxvd3Mgc3RvcmFnZSB0byBiZQogICAtLSAgcmVsZWFzZWQgYmFjayB0byBhIHByZXZp b3VzbHkgbm90ZWQgbWFyay4gVGhpcyBpcyB1c2VkIGZvciBleGFtcGxlCiAgIC0tICB3aGVuIGRv aW5nIGNvbXBhcmlzb25zLCB3aGVyZSBvbmx5IGludGVybWVkaWF0ZSByZXN1bHRzIGdldCBzdG9y ZWQKICAgLS0gIHRoYXQgZG8gbm90IG5lZWQgdG8gYmUgc2F2ZWQgZm9yIGZ1dHVyZSB1c2UuCgog ICB0eXBlIFNhdmVfTWFyayBpcyBwcml2YXRlOwoKICAgZnVuY3Rpb24gTWFyayByZXR1cm4gU2F2 ZV9NYXJrOwogICAtLSAgTm90ZSBtYXJrIHBvaW50IGZvciBmdXR1cmUgcmVsZWFzZQoKICAgcHJv Y2VkdXJlIFJlbGVhc2UgKE0gOiBTYXZlX01hcmspOwogICAtLSAgUmVsZWFzZSBzdG9yYWdlIGFs bG9jYXRlZCBzaW5jZSBtYXJrIHdhcyBub3RlZAoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgIC0tIFJlcHJlc2VudGF0aW9uIG9mIFVyZWFsIFZhbHVlcyAtLQogICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCnByaXZhdGUKCiAgIHR5cGUgVXJl YWwgaXMgbmV3IEludCByYW5nZSBVcmVhbF9Mb3dfQm91bmQgLi4gVXJlYWxfSGlnaF9Cb3VuZDsK ICAgZm9yIFVyZWFsJ1NpemUgdXNlIDMyOwoKICAgTm9fVXJlYWwgOiBjb25zdGFudCBVcmVhbCA6 PSBVcmVhbCdGaXJzdDsKCiAgIHR5cGUgU2F2ZV9NYXJrIGlzIG5ldyBJbnQ7CgogICBwcmFnbWEg SW5saW5lIChEZW5vbWluYXRvcik7CiAgIHByYWdtYSBJbmxpbmUgKE1hcmspOwogICBwcmFnbWEg SW5saW5lIChOb3JtX051bSk7CiAgIHByYWdtYSBJbmxpbmUgKE5vcm1fRGVuKTsKICAgcHJhZ21h IElubGluZSAoTnVtZXJhdG9yKTsKICAgcHJhZ21hIElubGluZSAoUmJhc2UpOwogICBwcmFnbWEg SW5saW5lIChSZWxlYXNlKTsKICAgcHJhZ21hIElubGluZSAoVXJlYWxfMCk7CiAgIHByYWdtYSBJ bmxpbmUgKFVyZWFsX01fMCk7CiAgIHByYWdtYSBJbmxpbmUgKFVyZWFsX1RlbnRoKTsKICAgcHJh Z21hIElubGluZSAoVXJlYWxfSGFsZik7CiAgIHByYWdtYSBJbmxpbmUgKFVyZWFsXzEpOwogICBw cmFnbWEgSW5saW5lIChVcmVhbF8yKTsKICAgcHJhZ21hIElubGluZSAoVXJlYWxfMTApOwogICBw cmFnbWEgSW5saW5lIChVUl9Gcm9tX0NvbXBvbmVudHMpOwoKZW5kIFVyZWFscDsKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICBHTkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBF IEkgTiBGIE8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuNy4xMC4xICQKLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAxIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gR05BVCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQv b3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3Vu ZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlci0gLS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRo b3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUg IHJlY2VpdmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNl ICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0 ZSAtLQotLSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFj ZSAtIFN1aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMg IGluc3RhbnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsg IHRoaXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0t Ci0tIHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcg IGV4ZWN1dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAg UHVibGljICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBp bnZhbGlkYXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1p Z2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g R05BVCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZ b3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlk ZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp3aXRoIFR5cGVzOyAgdXNlIFR5cGVzOwp3aXRo IFVpbnRwOyAgdXNlIFVpbnRwOwp3aXRoIFVyZWFscDsgdXNlIFVyZWFscDsKCnBhY2thZ2UgRWlu Zm8gaXMKCi0tICBUaGlzIHBhY2thZ2UgZGVmaW5lcyB0aGUgYW5ub3RhdGlvbnMgdG8gdGhlIGFi c3RyYWN0IHN5bnRheCB0cmVlIHRoYXQKLS0gIGFyZSBuZWVkZWQgdG8gc3VwcG9ydCBzZW1hbnRp YyBwcm9jZXNzaW5nIG9mIGFuIEFkYSBjb21waWxhdGlvbi4KCi0tICBUaGVzZSBhbm5vdGF0aW9u cyBhcmUgZm9yIHRoZSBtb3N0IHBhcnQgYXR0cmlidXRlcyBvZiBkZWNsYXJlZCBlbnRpdGllcywK LS0gIGFuZCB0aGV5IGNvcnJlc3BvbmQgdG8gY29udmVudGlvbmFsIHN5bWJvbCB0YWJsZSBpbmZv cm1hdGlvbi4gT3RoZXIKLS0gIGF0dHJpYnV0ZXMgaW5jbHVkZSBzZXRzIG9mIG1lYW5pbmdzIGZv ciBvdmVybG9hZGVkIG5hbWVzLCBwb3NzaWJsZQotLSAgdHlwZXMgZm9yIG92ZXJsb2FkZWQgZXhw cmVzc2lvbnMsIGZsYWdzIHRvIGluZGljYXRlIGRlZmVycmVkIGNvbnN0YW50cywKLS0gIGluY29t cGxldGUgdHlwZXMsIGV0Yy4gVGhlc2UgYXR0cmlidXRlcyBhcmUgc3RvcmVkIGluIGF2YWlsYWJs ZSBmaWVsZHMKLS0gIGluIHRyZWUgbm9kZXMgKGkuZS4gZmllbGRzIG5vdCB1c2VkIGJ5IHRoZSBw YXJzZXIsIGFzIGRlZmluZWQgYnkgdGhlCi0tICBTaW5mbyBwYWNrYWdlIHNwZWNpZmljYXRpb24p LCBhbmQgYWNjZXNzZWQgYnkgbWVhbnMgb2YgYSBzZXQgb2YKLS0gIHN1YnByb2dyYW1zIHdoaWNo IGRlZmluZSBhbiBhYnN0cmFjdCBpbnRlcmZhY2UuCgotLSAgVGhlcmUgYXJlIHR3byBraW5kcyBv ZiBzZW1hbnRpYyBpbmZvcm1hdGlvbgoKLS0gICAgRmlyc3QsIHRoZSB0cmVlIG5vZGVzIHdpdGgg dGhlIGZvbGxvd2luZyBOa2luZCB2YWx1ZXM6CgotLSAgICAgIE5fRGVmaW5pbmdfSWRlbnRpZmll cgotLSAgICAgIE5fRGVmaW5pbmdfQ2hhcmFjdGVyX0xpdGVyYWwKLS0gICAgICBOX0RlZmluaW5n X09wZXJhdG9yX1N5bWJvbAoKLS0gICAgYXJlIGNhbGxlZCBFbnRpdGllcywgYW5kIGNvbnN0aXR1 dGUgdGhlIGluZm9ybWF0aW9uIHRoYXQgd291bGQgb2Z0ZW4KLS0gICAgYmUgc3RvcmVkIHNlcGFy YXRlbHkgaW4gYSBzeW1ib2wgdGFibGUuIFRoZXNlIG5vZGVzIGFyZSBhbGwgZXh0ZW5kZWQKLS0g ICAgdG8gcHJvdmlkZSBleHRyYSBzcGFjZSwgYW5kIGNvbnRhaW4gZmllbGRzIHdoaWNoIGRlcGVu ZCBvbiB0aGUgZW50aXR5Ci0tICAgIGtpbmQsIGFzIGRlZmluZWQgYnkgdGhlIGNvbnRlbnRzIG9m IHRoZSBFa2luZCBmaWVsZC4gVGhlIHVzZSBvZiB0aGUKLS0gICAgRWtpbmQgZmllbGQsIGFuZCB0 aGUgYXNzb2NpYXRlZCBmaWVsZHMgaW4gdGhlIGVudGl0eSwgYXJlIGRlZmluZWQKLS0gICAgaW4g dGhpcyBwYWNrYWdlLCBhcyBhcmUgdGhlIGFjY2VzcyBmdW5jdGlvbnMgdG8gdGhlc2UgZmllbGRz LgoKLS0gICAgU2Vjb25kLCBpbiBzb21lIGNhc2VzIHNlbWFudGljIGluZm9ybWF0aW9uIGlzIHN0 b3JlZCBkaXJlY3RseSBpbiBvdGhlcgotLSAgICBraW5kcyBvZiBub2RlcywgZS5nLiB0aGUgRXR5 cGUgZmllbGQsIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHR5cGUgb2YgYW4KLS0gICAgZXhwcmVzc2lv bi4gVGhlIGFjY2VzcyBmdW5jdGlvbnMgdG8gdGhlc2UgZmllbGRzIGFyZSBkZWZpbmVkIGluIHRo ZQotLSAgICBTaW5mbyBwYWNrYWdlLCBidXQgdGhlaXIgZnVsbCBkb2N1bWVudGF0aW9uIGlzIHRv IGJlIGZvdW5kIGluCi0tICAgIHRoZSBFaW5mbyBwYWNrYWdlIHNwZWNpZmljYXRpb24uCgotLSAg RGVjbGFyYXRpb24gcHJvY2Vzc2luZyBwbGFjZXMgaW5mb3JtYXRpb24gaW4gdGhlIG5vZGVzIG9m IHRoZWlyIGRlZmluaW5nCi0tICBpZGVudGlmaWVycy4gTmFtZSByZXNvbHV0aW9uIHBsYWNlcyBp biBhbGwgb3RoZXIgb2NjdXJyZW5jZXMgb2YgYW4KLS0gIGlkZW50aWZpZXIgYSBwb2ludGVyIHRv IHRoZSBjb3JyZXNwb25kaW5nIGRlZmluaW5nIG9jY3VycmVuY2UuCgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotLSBUaGUgWEVJTkZPIFV0aWxpdHkgUHJvZ3JhbSAtLQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIFhFSU5GTyBpcyBhIHV0aWxpdHkgcHJvZ3Jh bSB3aGljaCBhdXRvbWF0aWNhbGx5IHByb2R1Y2VzIGEgQyBoZWFkZXIgZmlsZSwKLS0gIGEteGVp bmZvLmggZnJvbSB0aGUgc3BlYyBhbmQgYm9keSBvZiBwYWNrYWdlIEVpbmZvLiBJdCByZWFkcyB0 aGUgaW5wdXQKLS0gIGZpbGVzIGVpbmZvLmFkcyBhbmQgZWluZm8uYWRiIGFuZCBwcm9kdWNlcyB0 aGUgb3V0cHV0IGZpbGUgYS14ZWluZm8uaC4KCi0tICBJbiBvcmRlciBmb3IgdGhpcyB1dGlsaXR5 IHByb2dyYW0gdG8gb3BlcmF0ZSBjb3JyZWN0bHksIHRoZSBmb3JtIG9mIHRoZQotLSAgZWluZm8u YWRzIGFuZCBlaW5mby5hZGIgZmlsZXMgbXVzdCBtZWV0IGNlcnRhaW4gcmVxdWlyZW1lbnRzIGFu ZCBiZSBsYWlkCi0tICBvdXQgaW4gYSBzcGVjaWZpYyBtYW5uZXIuCgotLSAgVGhlIGdlbmVyYWwg Zm9ybSBvZiBlaW5mby5hZHMgaXMgYXMgZm9sbG93czoKCi0tICAgICB0eXBlIGRlY2xhcmF0aW9u IGZvciB0eXBlIEVudGl0eV9LaW5kCi0tICAgICBzdWJ0eXBlIGRlY2xhcmF0aW9ucyBkZWNsYXJp bmcgc3VicmFuZ2VzIG9mIEVudGl0eV9LaW5kCi0tICAgICBzdWJ0eXBlIGRlY2xhcmF0aW9ucyBk ZWNsYXJpbmcgc3lub255bXMgZm9yIHNvbWUgc3RhbmRhcmQgdHlwZXMKLS0gICAgIGZ1bmN0aW9u IHNwZWNzIGZvciBhdHRyaWJ1dGVzCi0tICAgICBwcm9jZWR1cmUgc3BlY3MKLS0gICAgIHByYWdt YSBJbmxpbmUgZGVjbGFyYXRpb25zCgotLSAgVGhpcyBvcmRlciBtdXN0IGJlIG9ic2VydmVkLiBU aGVyZSBhcmUgbm8gcmVzdHJpY3Rpb25zIG9uIHRoZSBwcm9jZWR1cmVzLAotLSAgc2luY2UgdGhl IEMgaGVhZGVyIGZpbGUgb25seSBpbmNsdWRlcyBmdW5jdGlvbnMgKEdpZ2kgaXMgbm90IGFsbG93 ZWQgdG8KLS0gIG1vZGlmeSB0aGUgZ2VuZXJhdGVkIHRyZWUpLiBIb3dldmVyLCBmdW5jdGlvbnMg YXJlIHJlcXVpcmVkIHRvIGhhdmUgaGVhZGVycwotLSAgdGhhdCBmaXQgb24gYSBzaW5nbGUgbGlu ZS4KCi0tICBYRUlORk8gcmVhZHMgYW5kIHByb2Nlc3NlcyB0aGUgZnVuY3Rpb24gc3BlY3MgYW5k IHRoZSBwcmFnbWEgSW5saW5lcy4gRm9yCi0tICBmdW5jdGlvbnMgdGhhdCBhcmUgZGVjbGFyZWQg YXMgaW5saW5lZCwgWEVJTkZPIHJlYWRzIHRoZSBjb3JyZXNwb25kaW5nIGJvZHkKLS0gIGZyb20g eGVpbmZvLmFkYiwgYW5kIHByb2Nlc3NlcyBpdCBpbnRvIEMgY29kZS4gVGhpcyByZXN1bHRzIGlu IHNvbWUgc3RyaWN0Ci0tICByZXN0cmljdGlvbnMgb24gd2hpY2ggZnVuY3Rpb25zIGNhbiBiZSBp bmxpbmVkOgoKLS0gICAgIFRoZSBmdW5jdGlvbiBzcGVjIG11c3QgYmUgb24gYSBzaW5nbGUgbGlu ZQoKLS0gICAgIFRoZXJlIGNhbiBvbmx5IGJlIGEgc2luZ2xlIHN0YXRlbWVudCwgY29udGFpbmVk IG9uIGEgc2luZ2xlIGxpbmUsCi0tICAgICBub3QgY291bnRpbmcgYW55IHByYWdtYSBBc3NlcnQg c3RhdGVtZW50cy4KCi0tICAgICBUaGlzIHNpbmdsZSBzdGF0ZW1lbnQgbXVzdCBlaXRoZXIgYnkg YSBmdW5jdGlvbiBjYWxsIHdpdGggc2ltcGxlLAotLSAgICAgc2luZ2xlIHRva2VuIGFyZ3VtZW50 cywgb3IgaXQgbXVzdCBiZSBhIG1lbWJlcnNoaXAgdGVzdCBvZiB0aGUgZm9ybQotLSAgICAgYSBp biBiLCB3aGVyZSBhIGFuZCBiIGFyZSBzaW5nbGUgdG9rZW5zLgoKLS0gIEZvciBmdW5jdGlvbnMg dGhhdCBhcmUgbm90IGlubGluZWQsIHRoZXJlIGlzIG5vIHJlc3RyaWN0aW9uIG9uIHRoZSBib2R5 LAotLSAgYW5kIFhFSU5GTyBnZW5lcmF0ZXMgYSBkaXJlY3QgcmVmZXJlbmNlIGluIHRoZSBDIGhl YWRlciBmaWxlIHdoaWNoIGFsbG93cwotLSAgdGhlIEMgY29kZSBpbiBHaWdpIHRvIGRpcmVjdGx5 IGNhbGwgdGhlIGNvcnJlc3BvbmRpbmcgQWRhIGJvZHkuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0tIEhhbmRsaW5nIG9mIFR5cGUnU2l6ZSBWYWx1ZXMgLS0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLS0gIFRoZSBBZGEgOTUgUk0gY29udGFpbnMgc29t ZSByYXRoZXIgcGVjdWxpYXIgKHRvIHVzISkgcnVsZXMgb24gdGhlIHZhbHVlCi0tICBvZiB0eXBl J1NpemUgKHNlZSBSTSAxMy4zKDU1KSkuIFdlIGhhdmUgZm91bmQgdGhhdCBhdHRlbXB0aW5nIHRv IHVzZQotLSAgdGhlc2UgUk0gU2l6ZSB2YWx1ZXMgZ2VuZXJhbGx5LCBhbmQgaW4gcGFydGljdWxh ciBmb3IgZGV0ZXJtaW5pbmcgdGhlCi0tICBkZWZhdWx0IHNpemUgb2Ygb2JqZWN0cywgY3JlYXRl cyBjaGFvcywgYW5kIG1ham9yIGluY29tcGF0aWJpbGllcyBpbgotLSAgZXhpc3RpbmcgY29kZS4K Ci0tICBXZSBwcm9jZWVkIGFzIGZvbGxvd3MsIGZvciBkaXNjcmV0ZSBhbmQgZml4ZWQtcG9pbnQg c3VidHlwZXMsIHdlIGhhdmUKLS0gIHR3byBzZXBhcmF0ZSBzaXplcyBmb3IgZWFjaCBzdWJ0eXBl OgoKLS0gICAgVGhlIE9iamVjdF9TaXplLCB3aGljaCBpcyB1c2VkIGZvciBkZXRlcm1pbmluZyB0 aGUgZGVmYXVsdCBzaXplIG9mCi0tICAgIG9iamVjdHMgYW5kIGNvbXBvbmVudHMuIFRoaXMgc2l6 ZSB2YWx1ZSBjYW4gYmUgcmVmZXJyZWQgdG8gdXNpbmcgdGhlCi0tICAgIE9iamVjdF9TaXplIGF0 dHJpYnV0ZS4gVGhlIHBocmFzZSAiaXMgdXNlZCIgaGVyZSBtZWFucyB0aGF0IGl0IGlzCi0tICAg IHRoZSBiYXNpcyBvZiB0aGUgZGV0ZXJtaW5hdGlvbiBvZiB0aGUgc2l6ZS4gVGhlIGJhY2tlbmQg aXMgZnJlZSB0bwotLSAgICBwYWQgdGhpcyB1cCBpZiBuZWNlc3NhcnkgZm9yIGVmZmljaWVuY3ks IGUuZy4gYW4gOC1iaXQgc3RhbmQtYWxvbmUKLS0gICAgY2hhcmFjdGVyIG1pZ2h0IGJlIHN0b3Jl ZCBpbiAzMiBiaXRzIG9uIGEgbWFjaGluZSB3aXRoIG5vIGVmZmljaWVudAotLSAgICBieXRlIGFj Y2VzcyBpbnN0cnVjdGlvbnMgc3VjaCBhcyB0aGUgQWxwaGEuCgotLSAgICBUaGUgZGVmYXVsdCBy dWxlcyBmb3IgdGhlIHZhbHVlIG9mIE9iamVjdF9TaXplIGZvciBmaXhlZC1wb2ludCBhbmQKLS0g ICAgZGlzY3JldGUgdHlwZXMgYXJlIGFzIGZvbGxvd3M6CgotLSAgICAgICBUaGUgT2JqZWN0X1Np emUgZm9yIGJhc2Ugc3VidHlwZXMgcmVmbGVjdCB0aGUgbmF0dXJhbCBoYXJkd2FyZQotLSAgICAg ICBzaXplIGluIGJpdHMgKHNlZSBUdHlwZXMgYW5kIENzdGFuZCBmb3IgaW50ZWdlciB0eXBlcyku IEZvcgotLSAgICAgICBlbnVtZXJhdGlvbiBhbmQgZml4ZWQtcG9pbnQgYmFzZSBzdWJ0eXBlcyBo YXZlIDguIDE2LiAzMiBvciA2NAotLSAgICAgICBiaXRzIGZvciB0aGlzIHNpemUsIGRlcGVuZGlu ZyBvbiB0aGUgcmFuZ2Ugb2YgdmFsdWVzIHRvIGJlIHN0b3JlZC4KCi0tICAgICAgIFRoZSBPYmpl Y3RfU2l6ZSBvZiBhIHN1YnR5cGUgaXMgdGhlIHNhbWUgYXMgdGhlIE9iamVjdF9TaXplIG9mCi0t ICAgICAgIHRoZSBzdWJ0eXBlIGZyb20gd2hpY2ggaXQgaXMgb2J0YWluZWQuCgotLSAgICAgICBU aGUgT2JqZWN0X1NpemUgb2YgYSBkZXJpdmVkIGJhc2UgdHlwZSBpcyBjb3BpZWQgZnJvbSB0aGUg cGFyZW50Ci0tICAgICAgIGJhc2UgdHlwZSwgYW5kIHRoZSBPYmplY3RfU2l6ZSBvZiBhIGRlcml2 ZWQgZmlyc3Qgc3VidHlwZSBpcyBjb3BpZWQKLS0gICAgICAgZnJvbSB0aGUgcGFyZW50IGZpcnN0 IHN1YnR5cGUuCgotLSAgICBUaGUgVmFsdWVfU2l6ZSB3aGljaCBpcyB0aGUgbnVtYmVyIG9mIGJp dHMgcmVxdWlyZWQgdG8gc3RvcmUgYSB2YWx1ZQotLSAgICBvZiB0aGUgdHlwZS4gVGhpcyBzaXpl IGNhbiBiZSByZWZlcnJlZCB0byB1c2luZyB0aGUgVmFsdWVfU2l6ZQotLSAgICBhdHRyaWJ1dGUu IFRoaXMgdmFsdWUgaXMgdXNlZCB0byBkZXRlcm1pbmUgaG93IHRpZ2h0bHkgdG8gcGFjawotLSAg ICByZWNvcmRzIG9yIGFycmF5cyB3aXRoIGNvbXBvbmVudHMgb2YgdGhpcyB0eXBlLCBhbmQgYWxz byBhZmZlY3RzCi0tICAgIHRoZSBzZW1hbnRpY3Mgb2YgdW5jaGVja2VkIGNvbnZlcnNpb24gKHVu Y2hlY2tlZCBjb252ZXJzaW9ucyB3aGVyZQotLSAgICB0aGUgVmFsdWVfU2l6ZSB2YWx1ZXMgZGlm ZmVyIGdlbmVyYXRlIGEgd2FybmluZywgYW5kIGFyZSBwb3RlbnRpYWxseQotLSAgICB0YXJnZXQg ZGVwZW5kZW50KS4KCi0tICAgIFRoZSBkZWZhdWx0IHJ1bGUgZm9yIHRoZSB2YWx1ZSBvZiBWYWx1 ZV9TaXplIGFyZSBhcyBmb2xsb3dzOgoKLS0gICAgICAgVGhlIFZhbHVlX1NpemUgZm9yIGEgYmFz ZSBzdWJ0eXBlIGlzIHRoZSBtaW5pbXVtIG51bWJlciBvZiBiaXRzCi0tICAgICAgIHJlcXVpcmVk IHRvIHN0b3JlIGFsbCB2YWx1ZXMgb2YgdGhlIHR5cGUgKGluY2x1ZGluZyB0aGUgc2lnbiBiaXQK LS0gICAgICAgb25seSBpZiBuZWdhdGl2ZSB2YWx1ZXMgYXJlIHBvc3NpYmxlKS4KCi0tICAgICAg IElmIGEgc3VidHlwZSBzdGF0aWNhbGx5IG1hdGNoZXMgdGhlIGZpcnN0IHN1YnR5cGUsIHRoZW4g aXQgaGFzCi0tICAgICAgIGJ5IGRlZmF1bHQgdGhlIHNhbWUgVmFsdWVfU2l6ZSBhcyB0aGUgZmly c3Qgc3VidHlwZS4gVGhpcyBpcyBhCi0tICAgICAgIGNvbnNlcXVlbmNlIG9mIFJNIDEzLjEoMTQp ICgiaWYgdHdvIHN1YnR5cGVzIHN0YXRpY2FsbHkgbWF0Y2gsCi0tICAgICAgIHRoZW4gdGhlaXIg c3VidHlwZS1zcGVjaWZpYyBhc3BlY3RzIGFyZSB0aGUgc2FtZSIuKQoKLS0gICAgICAgQWxsIG90 aGVyIHN1YnR5cGVzIGhhdmUgYSBWYWx1ZV9TaXplIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1pbmlt dW0KLS0gICAgICAgbnVtYmVyIG9mIGJpdHMgcmVxdWlyZWQgdG8gc3RvcmUgYWxsIHZhbHVlcyBv ZiB0aGUgc3VidHlwZS4gRm9yCi0tICAgICAgIGR5bmFtaWMgYm91bmRzLCBpdCBpcyBhc3N1bWVk IHRoYXQgdGhlIHZhbHVlIGNhbiByYW5nZSBkb3duIG9yIHVwCi0tICAgICAgIHRvIHRoZSBjb3Jy ZXNwb25kaW5nIGJvdW5kIG9mIHRoZSBhbmNlc3RvcgoKLS0gICAgVGhlIFJNIGRlZmluZWQgYXR0 cmlidXRlIFNpemUgY29ycmVzcG9uZHMgdG8gdGhlIFZhbHVlX1NpemUgYXR0cmlidXRlLgoKLS0g ICAgVGhlIFNpemUgYXR0cmlidXRlIG1heSBiZSBkZWZpbmVkIGZvciBhIGZpcnN0LW5hbWVkIHN1 YnR5cGUuIFRoaXMgc2V0cwotLSAgICB0aGUgVmFsdWVfU2l6ZSBvZiB0aGUgZmlyc3QtbmFtZWQg c3VidHlwZSB0byB0aGUgZ2l2ZW4gdmFsdWUsIGFuZCB0aGUKLS0gICAgT2JqZWN0X1NpemUgb2Yg dGhpcyBmaXJzdC1uYW1lZCBzdWJ0eXBlIHRvIHRoZSBnaXZlbiB2YWx1ZSBwYWRkZWQgdXAKLS0g ICAgdG8gYW4gYXBwcm9wcmlhdGUgYm91bmRhcnkuIEl0IGlzIGEgY29uc2VxdWVuY2Ugb2YgdGhl IGRlZmF1bHQgcnVsZXMKLS0gICAgYWJvdmUgdGhhdCB0aGlzIE9iamVjdF9TaXplIHdpbGwgYXBw bHkgdG8gYWxsIGZ1cnRoZXIgc3VidHlwZXMuIE9uIHRoZQotLSAgICBvdHloZXIgaGFuZCwgVmFs dWVfU2l6ZSBpcyBhZmZlY3RlZCBvbmx5IGZvciB0aGUgZmlyc3Qgc3VidHlwZSwgYW55Ci0tICAg IGR5bmFtaWMgc3VidHlwZXMgb2J0YWluZWQgZnJvbSBpdCBkaXJlY3RseSwgYW5kIGFueSBzdGF0 aWNhbGx5IG1hdGNoaW5nCi0tICAgIHN1YnR5cGVzLiBUaGUgVmFsdWVfU2l6ZSBvZiBhbnkgb3Ro ZXIgc3RhdGljIHN1YnR5cGVzIGlzIG5vdCBhZmZlY3RlZC4KCi0tICAgIFZhbHVlX1NpemUgYW5k IE9iamVjdF9TaXplIG1heSBiZSBleHBsaWNpdGx5IHNldCBmb3IgYW55IHN1YnR5cGUgdXNpbmcK LS0gICAgYW4gYXR0cmlidXRlIGRlZmluaXRpb24gY2xhdXNlLiBOb3RlIHRoYXQgdGhlIHVzZSBv ZiB0aGVzZSBhdHRyaWJ1dGVzCi0tICAgIGNhbiBjYXVzZSB0aGUgUk0gMTMuMSgxNCkgcnVsZSB0 byBiZSB2aW9sYXRlZC4gSWYgdHdvIGFjY2VzcyB0eXBlcwotLSAgICByZWZlcmVuY2UgYWxpYXNl ZCBvYmplY3RzIHdob3NlIHN1YnR5cGVzIGhhdmUgZGlmZmVyaW5nIE9iamVjdF9TaXplCi0tICAg IHZhbHVlcyBhcyBhIHJlc3VsdCBvZiBleHBsaWNpdCBhdHRyaWJ1dGUgZGVmaW5pdGlvbiBjbGF1 c2VzLCB0aGVuIGl0Ci0tICAgIGlzIGVycm9uZW91cyB0byBjb252ZXJ0IGZyb20gb25lIGFjY2Vz cyBzdWJ0eXBlIHRvIHRoZSBvdGhlci4KCi0tICAgIEF0IHRoZSBpbXBsZW1lbnRhdGlvbiBsZXZl bCwgRXNpemUgc3RvcmVzIHRoZSBPYmplY3RfU2l6ZSBhbmQgdGhlCi0tICAgIFJNX1NpemUgZmll bGQgc3RvcmVzIHRoZSBWYWx1ZV9TaXplIChhbmQgaGVuY2UgdGhlIHZhbHVlIG9mIHRoZQotLSAg ICBTaXplIGF0dHJpYnV0ZSwgd2hpY2gsIGFzIG5vdGVkIGFib3ZlLCBpcyBlcXVpdmFsZW50IHRv IFZhbHVlX1NpemUpLgoKLS0gIFRvIGdldCBhIGZlZWwgZm9yIHRoZSBkaWZmZXJlbmNlLCBjb25z aWRlciB0aGUgZm9sbG93aW5nIGV4YW1wbGVzIChub3RlCi0tICB0aGF0IGluIGVhY2ggY2FzZSB0 aGUgYmFzZSBpcyBzaG9ydF9zaG9ydF9pbnRlZ2VyIHdpdGggYSBzaXplIG9mIDgpOgoKLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9iamVjdF9TaXplICAgICBW YWx1ZV9TaXplCgotLSAgICAgdHlwZSB4MSBpcyByYW5nZSAwLi41OyAgICAgICAgICAgICAgICAg ICAgICA4ICAgICAgICAgICAgICAgMwoKLS0gICAgIHR5cGUgeDIgaXMgcmFuZ2UgMC4uNTsKLS0g ICAgIGZvciB4MidzaXplIHVzZSAxMjsgICAgICAgICAgICAgICAgICAgICAgICAxMiAgICAgICAg ICAgICAgMTIKCi0tICAgICBzdWJ0eXBlIHgzIGlzIHgyIHJhbmdlIDAgLi4gMzsgICAgICAgICAg ICAgMTIgICAgICAgICAgICAgICAyCgotLSAgICAgc3VidHlwZSB4NCBpcyB4MidiYXNlIHJhbmdl IDAgLi4gMTA7ICAgICAgICA4ICAgICAgICAgICAgICAgNAoKLS0gICAgIHN1YnR5cGUgeDUgaXMg eDIgcmFuZ2UgMCAuLiBkeW5hbWljOyAgICAgICAxMiAgICAgICAgICAgICAgKDcpCgotLSAgICAg c3VidHlwZSB4NiBpcyB4MidiYXNlIHJhbmdlIDAgLi4gZHluYW1pYzsgICA4ICAgICAgICAgICAg ICAoNykKCi0tICBOb3RlOiB0aGUgZW50cmllcyBtYXJrZWQgKDcpIGFyZSBub3QgYWN0dWFsbHkg c3BlY2lmaWVkIGJ5IHRoZSBBZGEgOTUgUk0sCi0tICBidXQgaXQgc2VlbXMgaW4gdGhlIHNwaXJp dCBvZiB0aGUgUk0gcnVsZXMgdG8gYWxsb2NhdGUgdGhlIG1pbmltdW0gbnVtYmVyCi0tICBvZiBi aXRzIGtub3duIHRvIGJlIGxhcmdlIGVub3VnaCB0byBob2xkIHRoZSBnaXZlbiByYW5nZSBvZiB2 YWx1ZXMuCgotLSAgU28gZmFyLCBzbyBnb29kLCBidXQgR05BVCBoYXMgdG8gb2JleSB0aGUgUk0g cnVsZXMsIHNvIHRoZSBxdWVzdGlvbiBpcwotLSAgdW5kZXIgd2hhdCBjb25kaXRpb25zIG11c3Qg dGhlIFJNIFNpemUgYmUgdXNlZC4gVGhlIGZvbGxvd2luZyBpcyBhIGxpc3QKLS0gIG9mIHRoZSBv Y2Nhc2lvbnMgb24gd2hpY2ggdGhlIFJNIFNpemUgbXVzdCBiZSB1c2VkOgoKLS0gICAgQ29tcG9u ZW50IHNpemUgZm9yIHBhY2tlZCBhcnJheXMgb3IgcmVjb3JkcwotLSAgICBWYWx1ZSBvZiB0aGUg YXR0cmlidXRlIFNpemUgZm9yIGEgdHlwZQotLSAgICBXYXJuaW5nIGFib3V0IHNpemVzIG5vdCBt YXRjaGluZyBmb3IgdW5jaGVja2VkIGNvbnZlcnNpb24KCi0tICBUaGUgUk1fU2l6ZSBmaWVsZCBr ZWVwcyB0cmFjayBvZiB0aGUgUk0gU2l6ZSBhcyBuZWVkZWQgaW4gdGhlc2UKLS0gIHRocmVlIHNp dHVhdGlvbnMuCgotLSAgRm9yIHR5cGVzIG90aGVyIHRoYW4gZGlzY3JldGUgYW5kIGZpeGVkLXBv aW50IHR5cGVzLCB0aGUgT2JqZWN0X1NpemUKLS0gIGFuZCBWYWx1ZV9TaXplIGFyZSB0aGUgc2Ft ZSAoYW5kIGVxdWl2YWxlbnQgdG8gdGhlIFJNIGF0dHJpYnV0ZSBTaXplKS4KLS0gIE9ubHkgU2l6 ZSBtYXkgYmUgc3BlY2lmaWVkIGZvciBzdWNoIHR5cGVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLS0gRW50aXR5IEF0dHJpYnV0ZXMgLS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0tICBU aGlzIHNlY3Rpb24gY29udGFpbnMgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSBhdHRyaWJ1dGVzIHRo YXQgYXJlIGRlZmluZWQKLS0gIG9uIGVudGl0aWVzLiBTb21lIGF0dHJpYnV0ZXMgYXBwbHkgdG8g YWxsIGVudGl0aWVzLCBvdGhlcnMgb25seSB0byBjZXJ0YWluCi0tICBraW5kcyBvZiBlbnRpdGll cy4gSW4gdGhlIGxhdHRlciBjYXNlIHRoZSBhdHRyaWJ1dGUgc2hvdWxkIG9ubHkgYmUgc2V0IG9y Ci0tICBhY2Nlc3NlZCBpZiB0aGUgRWtpbmQgZmllbGQgaW5kaWNhdGVzIGFuIGFwcHJvcHJpYXRl IGVudGl0eS4KCi0tICBUaGVyZSBhcmUgdHdvIGtpbmRzIG9mIGF0dHJpYnV0ZXMgdGhhdCBhcHBs eSB0byBlbnRpdGllcywgc3RvcmVkIGFuZAotLSAgc3ludGhlc2l6ZWQuIFN0b3JlZCBhdHRyaWJ1 dGVzIGNvcnJlc3BvbmQgdG8gYSBmaWVsZCBvciBmbGFnIGluIHRoZSBlbnRpdHkKLS0gIGl0c2Vs Zi4gU3VjaCBhdHRyaWJ1dGVzIGFyZSBpZGVudGlmaWVkIGluIHRoZSB0YWJsZSBiZWxvdyBieSBn aXZpbmcgdGhlCi0tICBmaWVsZCBvciBmbGFnIGluIHRoZSBhdHRyaWJ1dGUgdGhhdCBpcyB1c2Vk IHRvIGhvbGQgdGhlIGF0dHJpYnV0ZSB2YWx1ZS4KLS0gIFN5bnRoZXNpemVkIGF0dHJpYnV0ZXMg YXJlIG5vdCBzdG9yZWQgZGlyZWN0bHksIGJ1dCBhcmUgcmF0aGVyIGNvbXB1dGVkIGFzCi0tICBu ZWVkZWQgZnJvbSBvdGhlciBhdHRyaWJ1dGVzLCBvciBmcm9tIGluZm9ybWF0aW9uIGluIHRoZSB0 cmVlLiBUaGVzZSBhcmUKLS0gIG1hcmtlZCAic3ludGhlc2l6ZWQiIGluIHRoZSB0YWJsZSBiZWxv dy4gVGhlIHN0b3JlZCBhdHRyaWJ1dGVzIGhhdmUgYm90aAotLSAgYWNjZXNzIGZ1bmN0aW9ucyBh bmQgc2V0IHByb2NlZHVyZXMgdG8gc2V0IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlcywgd2hpbGUK LS0gIHN5bnRoZXNpemVkIGF0dHJpYnV0ZXMgaGF2ZSBvbmx5IGFjY2VzcyBmdW5jdGlvbnMuCgot LSAgTm90ZTogaW4gdGhlIGNhc2Ugb2YgTm9kZSwgVWludCwgb3IgRWxpc3QgZmllbGRzLCB0aGVy ZSBhcmUgY2FzZXMgd2hlcmUKLS0gIHRoZSBzYW1lIHBoeXNpY2FsIGZpZWxkIGlzIHVzZWQgZm9y IGRpZmZlcmVudCBwdXJwb3NlcyBpbiBkaWZmZXJlbnQKLS0gIGVudGl0aWVzLCBzbyB0aGVzZSBh Y2Nlc3MgZnVuY3Rpb25zIHNob3VsZCBvbmx5IGJlIHJlZmVyZW5jZWQgZm9yIHRoZQotLSAgY2xh c3Mgb2YgZW50aXRpZXMgaW4gd2hpY2ggdGhleSBhcmUgZGVmaW5lZCBhcyBiZWluZyBwcmVzZW50 LiBGbGFncyBhcmUKLS0gIG5vdCBvdmVybGFwcGVkIGluIHRoaXMgd2F5LCBidXQgbmV2ZXJ0aGVs ZXNzIGFzIGEgbWF0dGVyIG9mIHN0eWxlIGFuZAotLSAgYWJzdHJhY3Rpb24gKHdoaWNoIG1heSBv ciBtYXkgbm90IGJlIGNoZWNrZWQgYnkgYXNzZXJ0aW9ucyBpbiB0aGUgYm9keSksCi0tICB0aGlz IHJlc3RyaWN0aW9uIHNob3VsZCBiZSBvYnNlcnZlZCBmb3IgZmxhZyBmaWVsZHMgYXMgd2VsbC4K Ci0tICBOb3RlOiBjZXJ0YWluIG9mIHRoZSBhdHRyaWJ1dGVzIG9uIHR5cGVzIGFwcGx5IG9ubHkg dG8gYmFzZSB0eXBlcywgYW5kCi0tICBhcmUgc28gbm90ZWQgYnkgdGhlIG5vdGF0aW9uIFtiYXNl IHR5cGUgb25seV0uIFRoZXNlIGFyZSBjYXNlcyB3aGVyZSB0aGUKLS0gIGF0dHJpYnV0ZSBvZiBh bnkgc3VidHlwZSBpcyB0aGUgc2FtZSBhcyB0aGUgYXR0cmlidXRlIG9mIHRoZSBiYXNlIHR5cGUu Ci0tICBUaGUgYXR0cmlidXRlIGNhbiBiZSByZWZlcmVuY2VkIG9uIGEgc3VidHlwZSAoYW5kIGF1 dG9tYXRpY2FsbHkgcmV0cmlldmVzCi0tICB0aGUgdmFsdWUgZnJvbSB0aGUgYmFzZSB0eXBlKSwg YW5kIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBzZXQgdGhlbSBvbgotLSAgb3RoZXIgdGhhbiBh IHN1YnR5cGUsIHRoZXkgd2lsbCBpbnN0ZWFkIGJlIHNldCBvbiB0aGUgY29ycmVzcG9uZGluZyBi YXNlCi0tICB0eXBlLgoKLS0gIE90aGVyIGF0dHJpYnV0ZXMgYXJlIG5vdGVkIGFzIGFwcGx5aW5n IHRoZSBpbXBsZW1lbnRhdGlvbiBiYXNlIHR5cGUgb25seS4KLS0gIFRoZXNlIGFyZSByZXByZXNl bnRhdGlvbiBhdHRyaWJ1dGVzIHdoaWNoIG11c3QgYWx3YXlzIGFwcGx5IHRvIGEgZnVsbAotLSAg bm9uLXByaXZhdGUgdHlwZSwgYW5kIHdoZXJlIHRoZSBhdHRyaWJ1dGVzIGFyZSBhbHdheXMgb24g dGhlIGZ1bGwgdHlwZS4KLS0gIFRoZSBhdHRyaWJ1dGUgY2FuIGJlIHJlZmVyZW5jZWQgb24gYSBz dWJ0eXBlIChhbmQgYXV0b21hdGljYWxseSByZXRyaWVzCi0tICB0aGUgdmFsdWUgZnJvbSB0aGUg aW1wbGVtZW50YXRpb24gYmFzZSB0eXBlKSwgYW5kIGlmIGFuIGF0dGVtcHQgaXMgbWFkZQotLSAg dG8gc2V0IHRoZW0gb24gb3RoZXIgdGhhbiBhIHN1YnR5cGUsIHRoZXkgd2lsbCBpbnN0ZWFkIGJl IHNldCBvbiB0aGUKLS0gIGNvcnJlc3BvbmRpbmcgaW1wbGVtZW50YXRpb24gYmFzZSB0eXBlLgoK LS0gICAgQWNjZXB0X0FkZHJlc3MgKEVsaXN0MjEpCi0tICAgICAgIFByZXNlbnQgaW4gZW50cmll cy4gSWYgYW4gYWNjZXB0IGhhcyBhIHN0YXRlbWVudCBzZXF1ZW5jZSwgdGhlbiBhbgotLSAgICAg ICBhZGRyZXNzIHZhcmlhYmxlIGlzIGNyZWF0ZWQsIHdoaWNoIGlzIHVzZWQgdG8gaG9sZCB0aGUg YWRkcmVzcyBvZiB0aGUKLS0gICAgICAgcGFyYW1ldGVycywgYXMgcGFzc2VkIGJ5IHRoZSBydW50 aW1lLiBBY2NlcHRfQWRkcmVzcyBob2xkcyBhbiBlbGVtZW50Ci0tICAgICAgIGxpc3Qgd2hpY2gg cmVwcmVzZW50cyBhIHN0YWNrIG9mIGVudGl0aWVzIGZvciB0aGVzZSBhZGRyZXNzIHZhcmlhYmxl cy4KLS0gICAgICAgVGhlIGN1cnJlbnQgZW50cnkgaXMgdGhlIHRvcCBvZiB0aGUgc3RhY2ssIHdo aWNoIGlzIHRoZSBsYXN0IGVsZW1lbnQKLS0gICAgICAgb24gdGhlIGxpc3QuIEEgc3RhY2sgaXMg cmVxdWlyZWQgdG8gaGFuZGxlIHRoZSBjYXNlIG9mIG5lc3RlZCBzZWxlY3QKLS0gICAgICAgc3Rh dGVtZW50cyByZWZlcmVuY2luZyB0aGUgc2FtZSBlbnRyeS4KCi0tICAgIEFjdHVhbF9TdWJ0eXBl IChOb2RlMTcpCi0tICAgICAgIFByZXNlbnQgaW4gdmFyaWFibGVzLCBjb25zdGFudHMsIGFuZCBm b3JtYWwgcGFyYW1ldGVycy4gVGhpcyBpcyB0aGUKLS0gICAgICAgc3VidHlwZSBpbXBvc2VkIGJ5 IHRoZSB2YWx1ZSBvZiB0aGUgb2JqZWN0LCBhcyBvcHBvc2VkIHRvIGl0cyBub21pbmFsCi0tICAg ICAgIHN1YnR5cGUsIHdoaWNoIGlzIGltcG9zZWQgYnkgdGhlIGRlY2xhcmF0aW9uLiBUaGUgYWN0 dWFsIHN1YnR5cGUKLS0gICAgICAgZGlmZmVycyBmcm9tIHRoZSBub21pbmFsIG9uZSB3aGVuIHRo ZSBsYXR0ZXIgaXMgaW5kZWZpbml0ZSAoYXMgaW4gdGhlCi0tICAgICAgIGNhc2Ugb2YgYW4gdW5j b25zdHJhaW5lZCBmb3JtYWwgcGFyYW1ldGVyLCBvciBhIHZhcmlhYmxlIGRlY2xhcmVkCi0tICAg ICAgIHdpdGggYW4gdW5jb25zdHJhaW5lZCB0eXBlIGFuZCBhbiBpbml0aWFsIHZhbHVlKS4gVGhl IG5vbWluYWwgc3VidHlwZQotLSAgICAgICBpcyB0aGUgRXR5cGUgZW50cnkgZm9yIHRoZSBlbnRp dHkuIFRoZSBBY3R1YWxfU3VidHlwZSBmaWVsZCBpcyBzZXQKLS0gICAgICAgb25seSBpZiB0aGUg YWN0dWFsIHN1YnR5cGUgZGlmZmVycyBmcm9tIHRoZSBub21pbmFsIHN1YnR5cGUuIElmIHRoZQot LSAgICAgICBhY3R1YWwgYW5kIG5vbWluYWwgc3VidHlwZXMgYXJlIHRoZSBzYW1lLCB0aGVuIHRo ZSBBY3R1YWxfU3VidHlwZQotLSAgICAgICBmaWVsZCBpcyBFbXB0eSwgYW5kIEV0eXBlIGluZGlj YXRlcyBib3RoIHR5cGVzLgotLQotLSAgICAgICBGb3Igb2JqZWN0cywgdGhlIEFjdHVhbF9TdWJ0 eXBlIGlzIHNldCBvbmx5IGlmIHRoaXMgaXMgYSBkaXNjcmltaW5hdGVkCi0tICAgICAgIHR5cGUu IEZvciBhcnJheXMsIHRoZSBib3VuZHMgb2YgdGhlIGV4cHJlc3Npb24gYXJlIG9idGFpbmVkIGFu ZCB0aGUKLS0gICAgICAgRXR5cGUgb2YgdGhlIG9iamVjdCBpcyBkaXJlY3RseSB0aGUgY29uc3Ry YWluZWQgc3VidHlwZS4gVGhpcyBpcwotLSAgICAgICByYXRoZXIgaXJyZWd1bGFyLCBhbmQgdGhl IHNlbWFudGljIGNoZWNrcyB0aGF0IGRlcGVuZCBvbiB0aGUgbm9taW5hbAotLSAgICAgICBzdWJ0 eXBlIGJlaW5nIHVuY29uc3RyYWluZWQgdXNlIGZsYWcgSXNfQ29uc3RyX1N1YnRfRm9yX1VfTm9t aW5hbChxdikuCgotLSAgICBBY2Nlc3NfRGlzcF9UYWJsZSAoTm9kZTE2KSBbYmFzZSB0eXBlIG9u bHldCi0tICAgICAgIFByZXNlbnQgaW4gcmVjb3JkIHR5cGUgZW50aXRpZXMuIEZvciBhIHRhZ2dl ZCB0eXBlLCBwb2ludHMgdG8gdGhlCi0tICAgICAgIGRpc3BhdGNoIHRhYmxlIGFzc29jaWF0ZWQg d2l0aCB0aGUgdGFnZ2VkIHR5cGUuIEZvciBhIG5vbi10YWdnZWQKLS0gICAgICAgcmVjb3JkLCBj b250YWlucyBFbXB0eS4KCi0tICAgIEFkZHJlc3NfQ2xhdXNlIChzeW50aGVzaXplZCkKLS0gICAg ICAgQXBwbGllcyB0byBlbnRyaWVzLCBvYmplY3RzIGFuZCBzdWJwcm9ncmFtcy4gU2V0IGlmIGFu IGFkZHJlc3MgY2xhdXNlCi0tICAgICAgIGlzIHByZXNlbnQgd2hpY2ggcmVmZXJlbmNlcyB0aGUg b2JqZWN0IG9yIHN1YnByb2dyYW0gYW5kIHBvaW50cyB0bwotLSAgICAgICB0aGUgTl9BdHRyaWJ1 dGVfRGVmaW5pdGlvbl9DbGF1c2Ugbm9kZS4gRW1wdHkgaWYgbm8gQWRkcmVzcyBjbGF1c2UuCi0t ICAgICAgIFRoZSBleHByZXNzaW9uIGluIHRoZSBhZGRyZXNzIGNsYXVzZSBpcyBhbHdheXMgYSBj b25zdGFudCB0aGF0IGlzCi0tICAgICAgIGRlZmluZWQgYmVmb3JlIHRoZSBlbnRpdHkgdG8gd2hp Y2ggdGhlIGFkZHJlc3MgY2xhdXNlIGFwcGxpZXMuCi0tICAgICAgIE5vdGU6IEdpZ2kgcmVmZXJl bmNlcyB0aGlzIGZpZWxkIGluIEVfVGFza19UeXBlIGVudGl0aWVzPz8/CgotLSAgICBBZGRyZXNz X1Rha2VuIChGbGFnMTA0KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGlm IHRoZSBBZGRyZXNzIG9yIFVucmVzdHJpY3RlZF9BY2Nlc3MKLS0gICAgICAgYXR0cmlidXRlIGlz IGFwcGxpZWQgZGlyZWN0bHkgdG8gdGhlIGVudGl0eSwgaS5lLiB0aGUgZW50aXR5IGlzIHRoZQot LSAgICAgICBlbnRpdHkgb2YgdGhlIHByZWZpeCBvZiB0aGUgYXR0cmlidXRlIHJlZmVyZW5jZS4g VXNlZCBieSBHaWdpIHRvCi0tICAgICAgIG1ha2Ugc3VyZSB0aGF0IHRoZSBhZGRyZXNzIGNhbiBi ZSBtZWFuaW5nZnVsbHkgdGFrZW4uCgotLSAgICBBbGlhcyAoTm9kZTE4KQotLSAgICAgICBQcmVz ZW50IGluIG92ZXJsb2FkZWQgZW50aXRpZXMgKGxpdGVyYWxzLCBzdWJwcm9ncmFtcywgZW50cmll cykuCi0tICAgICAgIFBvaW50cyB0byBwYXJlbnQgc3VicHJvZ3JhbSBvZiBhIGRlcml2ZWQgc3Vi cHJvZ3JhbS4gQWxzbyB1c2VkIGZvcgotLSAgICAgICBhIHN1YnByb2dyYW0gcmVuYW1pbmcsIHdo ZXJlIGl0IHBvaW50cyB0byB0aGUgcmVuYW1lZCBzdWJwcm9ncmFtLgotLSAgICAgICBBbHdheXMg ZW1wdHkgZm9yIGVudHJpZXMuCgotLSAgICBBbGlnbm1lbnQgKFVpbnQxNCkKLS0gICAgICAgUHJl c2VudCBpbiBhbGwgZW50aXRpZXMgZm9yIHR5cGVzIGFuZCBvYmplY3RzLiBUaGlzIGluZGljYXRl cyB0aGUKLS0gICAgICAgZGVzaXJlZCBhbGlnbm1lbnQgZm9yIGEgdHlwZSwgb3IgdGhlIGFjdHVh bCBhbGlnbm1lbnQgZm9yIGFuIG9iamVjdC4KLS0gICAgICAgQSB2YWx1ZSBvZiB6ZXJvIChVaW50 XzApIGluZGljYXRlcyB0aGF0IHRoZSBhbGlnbm1lbnQgaXMgbm90IHlldCBzZXQuCi0tICAgICAg IFRoZSBhbGlnbm1lbnQgY2FuIGJlIHNldCBieSBhbiBleHBsaWNpdCBhbGlnbm1lbnQgY2xhdXNl LCBvciBzZXQgYnkKLS0gICAgICAgdGhlIGZyb250LWVuZCBpbiBwYWNrYWdlIExheW91dCwgb3Ig c2V0IGJ5IHRoZSBiYWNrLWVuZC4KCi0tICAgIEFsaWdubWVudF9DbGF1c2UgKHN5bnRoZXNpemVk KQotLSAgICAgICBBcHBsbGllcyB0byBhbGwgZW50aXRpZXMgZm9yIHR5cGVzIGFuZCBvYmplY3Rz LiBJZiBhbiBhbGlnbm1lbnQKLS0gICAgICAgYXR0cmlidXRlIGRlZmluaXRpb24gY2xhdXNlIGlz IHByZXNlbnQgZm9yIHRoZSBlbnRpdHksIHRoZW4gdGhpcwotLSAgICAgICBmdW5jdGlvbiByZXR1 cm5zIHRoZSBOX0F0dHJpYnV0ZV9EZWZpbml0aW9uIGNsYXVzZSB0aGF0IHNwZWNpZmllcyB0aGUK LS0gICAgICAgYWxpZ25tZW50LiBJZiBubyBhbGlnbm1lbnQgY2xhdXNlIGFwcGxpZXMgdG8gdGhl IHR5cGUsIHRoZW4gdGhlIGNhbGwKLS0gICAgICAgdG8gdGhpcyBmdW5jdGlvbiByZXR1cm5zIEVt cHR5LiBOb3RlIHRoYXQgdGhlIGNhbGwgY2FuIHJldHVybiBhCi0tICAgICAgIG5vbi1FbXB0eSB2 YWx1ZSBldmVuIGlmIEhhc19BbGlnbm1lbnRfQ2xhdXNlIGlzIG5vdCBzZXQgKGhhcHBlbnMgd2l0 aAotLSAgICAgICBzdWJ0eXBlIGFuZCBkZXJpdmVkIHR5cGUgZGVjbGFyYXRpb25zKS4gTm90ZSBh bHNvIHRoYXQgYSByZWNvcmQKLS0gICAgICAgZGVmaW5pdGlvbiBjbGF1c2Ugd2l0aCBhbiAob2Jz b2xlc2NlbnQpIG1vZCBjbGF1c2UgaXMgY29udmVydGVkCi0tICAgICAgIGludG8gYW4gYXR0cmli dXRlIGRlZmluaXRpb24gY2xhdXNlIGZvciB0aGlzIHB1cnBvc2UuCgotLSAgICBBbmNlc3Rvcl9T dWJ0eXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgdHlwZSBhbmQgc3Vi dHlwZSBlbnRpdGllcy4gSWYgdGhlIGFyZ3VtZW50IGlzIGEKLS0gICAgICAgc3VidHlwZSB0aGVu IGl0IHJldHVybnMgdGhlIHN1YnR5cGUgb3IgdHlwZSBmcm9tIHdoaWNoIHRoZSBzdWJ0eXBlCi0t ICAgICAgIHdhcyBvYnRhaW5lZCwgb3RoZXJ3aXNlIGl0IHJldHVybnMgRW1wdHkuCgotLSAgICBB c3NvY2lhdGVkX0Zvcm1hbF9QYWNrYWdlIChOb2RlMTIpCi0tICAgICAgIFByZXNlbnQgaW4gcGFj a2FnZXMgdGhhdCBhcmUgdGhlIGFjdHVhbHMgb2YgZm9ybWFsX3BhY2thZ2VzLiBQb2ludHMKLS0g ICAgICAgdG8gdGhlIGVudGl0eSBpbiB0aGUgZGVjbGFyYXRpb24gZm9yIHRoZSBmb3JtYWwgcGFj a2FnZS4KCi0tICAgIEFzc29jaWF0ZWRfTm9kZV9Gb3JfSXR5cGUgKE5vZGU4KQotLSAgICAgICBQ cmVzZW50IGluIGFsbCB0eXBlIGFuZCBzdWJ0eXBlIGVudGl0aWVzLiBTZXQgbm9uLUVtcHR5IG9u bHkgZm9yCi0tICAgICAgIEl0eXBlcy4gU2V0IHRvIHBvaW50IHRvIHRoZSBhc3NvY2lhdGVkIG5v ZGUgZm9yIHRoZSBJdHlwZSwgaS5lLgotLSAgICAgICB0aGUgbm9kZSB3aG9zZSBlbGFib3JhdGlv biBnZW5lcmF0ZWQgdGhlIEl0eXBlLiBUaGlzIGlzIHVzZWQgZm9yCi0tICAgICAgIGNvcHlpbmcg dHJlZXMsIHRvIGRldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0byBjb3B5IGFuIEl0eXBlLgoKLS0g ICAgQXNzb2NpYXRlZF9TdG9yYWdlX1Bvb2wgKE5vZGUyMikKLS0gICAgICAgUHJlc2VudCBpbiBz aW1wbGUgYW5kIGdlbmVyYWwgYWNjZXNzIHR5cGUgZW50aXRpZXMuIFJlZmVyZW5jZXMgdGhlCi0t ICAgICAgIHN0b3JhZ2UgcG9vbCB0byBiZSB1c2VkIGZvciB0aGUgY29ycmVzcG9uZGluZyBjb2xs ZWN0aW9uLiBBIHZhbHVlIG9mCi0tICAgICAgIEVtcHR5IG1lYW5zIHRoYXQgdGhlIGRlZmF1bHQg cG9vbCBpcyB0byBiZSB1c2VkLgoKLS0gICAgQXNzb2NpYXRlZF9GaW5hbF9DaGFpbiAoTm9kZTIz KQotLSAgICAgICBQcmVzZW50IGluIHNpbXBsZSBhbmQgZ2VuZXJhbCBhY2Nlc3MgdHlwZSBlbnRp dGllcy4gUmVmZXJlbmNlcyB0aGUKLS0gICAgICAgTGlzdF9Db250cm9sbGVyIG9iamVjdCB0aGF0 IGhvbGRzIHRoZSBmaW5hbGl6YXRpb24gY2hhaW4gb24gd2hpY2gKLS0gICAgICAgYXJlIGF0dGFj aGVkIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCBvYmplY3RzIHJlZmVyZW5jZWQgYnkgdGhlIGFjY2Vz cwotLSAgICAgICB0eXBlLiBFbXB0eSB3aGVuIHRoZSBhY2Nlc3MgdHlwZSBjYW5ub3QgcmVmZXJl bmNlIGEgY29udHJvbGxlZCBvYmplY3QuCgotLSAgICBCYXJyaWVyX0Z1bmN0aW9uIChOb2RlMTIp Ci0tICAgICAgIFByZXNlbnQgaW4gcHJvdGVjdGVkIGVudHJpZXMgYW5kIGVudHJ5IGZhbWlsaWVz LiBUaGlzIGlzIHRoZQotLSAgICAgICBzdWJwcm9ncmFtIGRlY2xhcmF0aW9uIGZvciB0aGUgYm9k eSBvZiB0aGUgZnVuY3Rpb24gdGhhdCByZXR1cm5zCi0tICAgICAgIHRoZSB2YWx1ZSBvZiB0aGUg ZW50cnkgYmFycmllci4KCi0tICAgIEJhc2VfVHlwZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFw cGxpZXMgdG8gYWxsIHR5cGUgZW50aXRpZXMuIFJldHVybnMgdGhlIGJhc2UgdHlwZSBvZiBhIHR5 cGUgb3IKLS0gICAgICAgc3VidHlwZS4gVGhlIGJhc2UgdHlwZSBvZiBhIHR5cGUgaXMgdGhlIHR5 cGUgaXRzZWxmLiBUaGUgYmFzZSB0eXBlCi0tICAgICAgIG9mIGEgc3VidHlwZSBpcyB0aGUgdHlw ZSB0aGF0IGl0IGNvbnN0cmFpbnMgKHdoaWNoIGlzIGFsd2F5cyBhIHR5cGUKLS0gICAgICAgZW50 aXR5LCBub3Qgc29tZSBvdGhlciBzdWJ0eXBlKS4gTm90ZSB0aGF0IGluIHRoZSBjYXNlIG9mIGEg c3VidHlwZQotLSAgICAgICBvZiBhIHByaXZhdGUgdHlwZSwgaXQgaXMgcG9zc2libGUgZm9yIHRo ZSBiYXNlIHR5cGUgYXR0cmlidXRlIHRvCi0tICAgICAgIHJldHVybiBhIHByaXZhdGUgdHlwZSwg ZXZlbiBpZiB0aGUgc3VidHlwZSB0byB3aGljaCBpdCBhcHBsaWVzIGlzCi0tICAgICAgIG5vbi1w cml2YXRlLiBTZWUgYWxzbyBJbXBsZW1lbnRhdGlvbl9CYXNlX1R5cGUuIE5vdGU6IGl0IGlzIGFs bG93ZWQKLS0gICAgICAgdG8gYXBwbHkgQmFzZV9UeXBlIHRvIG90aGVyIHRoYW4gYSB0eXBlLCBp biB3aGljaCBjYXNlIGl0IHNpbXBseQotLSAgICAgICByZXR1cm5zIHRoZSBlbnRpdHkgdW5jaGFu Z2VkLgoKLS0gICAgQmxvY2tfTm9kZSAoTm9kZTExKQotLSAgICAgICBQcmVzZW50IGluIGJsb2Nr IGVudGl0aWVzLiBQb2ludHMgdG8gdGhlIGlkZW50aWZpZXIgaW4gdGhlCi0tICAgICAgIEJsb2Nr X1N0YXRlbWVudCBpdHNlbGYuIFVzZWQgd2hlbiByZXRyaWV2aW5nIHRoZSBibG9jayBjb25zdHJ1 Y3QKLS0gICAgICAgZm9yIGZpbmFsaXphdGlvbiBwdXJwb3NlcywgVGhlIGJsb2NrIGVudGl0eSBo YXMgYW4gaW1wbGljaXQgbGFiZWwKLS0gICAgICAgZGVjbGFyYXRpb24gaW4gdGhlIGVuY2xvc2lu ZyBkZWNsYXJhdGl2ZSBwYXJ0LCBhbmQgaGFzIG90aGVyd2lzZQotLSAgICAgICBubyBkaXJlY3Qg Y29ubmVjdGlvbiBpbiB0aGUgdHJlZSB3aXRoIHRoZSBibG9jayBzdGF0ZW1lbnQuIFRoZQotLSAg ICAgICBsaW5rIGlzIHRvIHRoZSBpZGVudGlmaWVyICh3aGljaCBpcyBhbiBvY2N1cnJlbmNlIG9m IHRoZSBlbnRpdHkpCi0tICAgICAgIGFuZCBub3QgdG8gdGhlIGJsb2NrX3N0YXRlbWVudCBpdHNl bGYsIGJlY2F1c2UgdGhlIHN0YXRlbWVudCBtYXkKLS0gICAgICAgYmUgcmV3cml0dGVuLCBlLmcu IGluIHRoZSBwcm9jZXNzIG9mIHJlbW92aW5nIGRlYWQgY29kZS4KCi0tICAgIEJvZHlfRW50aXR5 IChOb2RlMTkpCi0tICAgICAgIFByZXNlbnQgaW4gcGFja2FnZSBhbmQgZ2VuZXJpYyBwYWNrYWdl IGVudGl0aWVzLCBwb2ludHMgdG8gdGhlCi0tICAgICAgIGNvcnJlc3BvbmRpbmcgcGFja2FnZSBi b2R5IGVudGl0eSBpZiBvbmUgaXMgcHJlc2VudC4KCi0tICAgIENfUGFzc19CeV9Db3B5IChGbGFn MTI1KSBbaW1wbGVtZW50YXRpb24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFByZXNlbnQgaW4g cmVjb3JkIHR5cGVzLiBTZXQgaWYgYSBwcmFnbWEgQ29udmVudGlvbiBmb3IgdGhlIHJlY29yZAot LSAgICAgICB0eXBlIHNwZWNpZmllcyBjb252ZW50aW9uIENfUGFzc19CeV9Db3B5LiBUaGlzIGNv bnZlbnRpb24gbmFtZSBpcwotLSAgICAgICB0cmVhdGVkIGFzIGlkZW50aWNhbCBpbiBhbGwgcmVz cGVjdHMgdG8gY29udmVudGlvbiBDLCBleGNlcHQgdGhhdAotLSAgICAgICBpZiBpdCBpcyBzcGVj aWZpZWQgZm9yIGEgcmVjb3JkIHR5cGUsIHRoZW4gdGhlIENfUGFzc19CeV9Db3B5IGZsYWcKLS0g ICAgICAgaXMgc2V0LCBhbmQgaWYgYSBmb3JlaWduIGNvbnZlbnRpb24gc3VicHJvZ3JhbSBoYXMg YSBmb3JtYWwgb2YgdGhlCi0tICAgICAgIGNvcnJlc3BvbmRpbmcgdHlwZSwgdGhlbiB0aGUgcGFy YW1ldGVyIHBhc3NpbmcgbWVjaGFuaXNtIHdpbGwgYmUKLS0gICAgICAgc2V0IHRvIEJ5X0NvcHkg KHVubGVzcyBzcGVjaWZpY2FsbHkgb3ZlcnJpZGRlbiBieSBhbiBJbXBvcnQgb3IKLS0gICAgICAg RXhwb3J0IHByYWdtYSkuCgotLSAgICBDaGFycyAoTmFtZTEpCi0tICAgICAgIFByZXNlbnQgaW4g YWxsIGVudGl0aWVzLiBUaGlzIGZpZWxkIGNvbnRhaW5zIGFuIGVudHJ5IGludG8gdGhlIG5hbWVz Ci0tICAgICAgIHRhYmxlIHRoYXQgaGFzIHRoZSBjaGFyYWN0ZXIgc3RyaW5nIG9mIHRoZSBpZGVu dGlmaWVyLCBjaGFyYWN0ZXIKLS0gICAgICAgbGl0ZXJhbCBvciBvcGVyYXRvciBzeW1ib2wuIFNl ZSBOYW1ldCBmb3IgZnVydGhlciBkZXRhaWxzLiBOb3RlIHRoYXQKLS0gICAgICAgdGhyb3VnaG91 dCB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgZnJvbnQgZW5kLCB0aGlzIG5hbWUgaXMgdGhlIHNpbXBs ZQotLSAgICAgICB1bnF1YWxpZmllZCBuYW1lLiBIb3dldmVyLCBqdXN0IGJlZm9yZSBnaWdpIGlz IGNhbGxlZCwgYSBjYWxsIGlzIG1hZGUKLS0gICAgICAgdG8gUXVhbGlmeV9BbGxfRW50aXR5X05h bWVzLiBUaGlzIGNhdXNlcyBlbnRpdHkgbmFtZXMgdG8gYmUgcXVhbGlmaWVkCi0tICAgICAgIHVz aW5nIHRoZSBlbmNvZGluZyBkZXNjcmliZWQgaW4gZXhwX2RidWcuYWRzLCBhbmQgZnJvbSB0aGF0 IHBvaW50IG9uCi0tICAgICAgIChpbmNsdWRpbmcgcG9zdCBnaWdpIHN0ZXBzIHN1Y2ggYXMgY3Jv c3MtcmVmZXJlbmNlIGdlbmVyYXRpb24pLCB0aGUKLS0gICAgICAgZW50aXRpZXMgd2lsbCBjb250 YWluIHRoZSBlbmNvZGVkIHF1YWxpZmllZCBuYW1lcy4KCi0tICAgIENsYXNzX1dpZGVfVHlwZSAo Tm9kZTkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIEZvciBhIHRhZ2dl ZCB0eXBlIG9yIHN1YnR5cGUsIHJldHVybnMKLS0gICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgaW1w bGljaXRseSBkZWNsYXJlZCBjbGFzcy13aWRlIHR5cGUuIFNldCB0byBFbXB0eQotLSAgICAgICBm b3Igbm9uLXRhZ2dlZCB0eXBlcy4KCi0tICAgIENsb25lZF9TdWJ0eXBlIChOb2RlMTYpCi0tICAg ICAgIFByZXNlbnQgaW4gRV9SZWNvcmRfU3VidHlwZSBhbmQgRV9DbGFzc19XaWRlX1N1YnR5cGUg ZW50aXRpZXMuCi0tICAgICAgIEVhY2ggc3VjaCBlbnRpdHkgY2FuIGVpdGhlciBoYXZlIGEgRGlz Y3JpbWluYW50X0NvbnN0cmFpbnQsIGluCi0tICAgICAgIHdoaWNoIGNhc2UgaXQgcmVwcmVzZW50 cyBhIGRpc3RpbmN0IHR5cGUgZnJvbSB0aGUgYmFzZSB0eXBlIChhbmQKLS0gICAgICAgd2lsbCBo YXZlIGEgbGlzdCBvZiBjb21wb25lbnRzIGFuZCBkaXNjcmltYW50cyBpbiB0aGUgbGlzdCBoZWFk ZWQgYnkKLS0gICAgICAgRmlyc3RfRW50aXR5KSBvciBlbHNlIG5vIHN1Y2ggY29uc3RyYWludCwg aW4gd2hpY2ggY2FzZSBpdCB3aWxsIGJlIGEKLS0gICAgICAgY29weSBvZiB0aGUgYmFzZSB0eXBl LgotLQotLSAgICAgICBvICBFYWNoIGVsZW1lbnQgb2YgdGhlIGxpc3QgaW4gRmlyc3RfRW50aXR5 IGlzIGNvcGllZCBmcm9tIHRoZSBiYXNlCi0tICAgICAgICAgIHR5cGU7IGluIHRoYXQgY2FzZSwg dGhpcyBmaWVsZCBpcyBFbXB0eS4KLS0KLS0gICAgICAgbyAgVGhlIGxpc3QgaW4gRmlyc3RfRW50 aXR5IGlzIHNoYXJlZCB3aXRoIHRoZSBiYXNlIHR5cGU7IGluIHRoYXQKLS0gICAgICAgICAgY2Fz ZSwgdGhpcyBmaWVsZCBwb2ludHMgdG8gdGhhdCBlbnRpdHkuCi0tCi0tICAgICAgIEEgcmVjb3Jk IG9yIGNsYXNzd2lkZSBzdWJ0eXBlIG1heSBhbHNvIGJlIGEgY29weSBvZiBzb21lIG90aGVyCi0t ICAgICAgIHN1YnR5cGUgYW5kIHNoYXJlIHRoZSBlbnRpdGllcyBpbiB0aGUgRmlyc3RfRW50aXR5 IHdpdGggdGhhdCBzdWJ0eXBlLgotLSAgICAgICBJbiB0aGF0IGNhc2UsIHRoaXMgZmllbGQgcG9p bnRzIHRvIHRoYXQgc3VidHlwZS4KLS0KLS0gICAgICAgRm9yIEVfQ2xhc3NfV2lkZV9TdWJ0eXBl LCB0aGUgcHJlc2VuY2Ugb2YgRXF1aXZhbGVudF9UeXBlIG92ZXJyaWRlcwotLSAgICAgICB0aGlz IGZpZWxkLiBOb3RlIHRoYXQgdGhpcyBmaWVsZCBPTkxZIGFwcGVhcnMgaW4gc3VidHlwZSBlbnRy aWVzLCBub3QKLS0gICAgICAgaW4gdHlwZSBlbnRyaWVzLCBpdCBpcyBub3QgcHJlc2VudCwgYW5k IGl0IGlzIGFuIGVycm9yIHRvIHJlZmVyZW5jZQotLSAgICAgICBDbG9uZWRfU3VidHlwZSBpbiBh biBFX1JlY29yZF9UeXBlIG9yIEVfQ2xhc3NfV2lkZV9UeXBlIGVudGl0eS4KCi0tICAgIENvbWVz X0Zyb21fU291cmNlCi0tICAgICAgIFRoaXMgZmxhZyBhcHBlYXJzIG9uIGFsbCBub2RlcywgaW5j bHVkaW5nIGVudGl0aWVzLCBhbmQgaW5kaWNhdGVzCi0tICAgICAgIHRoYXQgdGhlIG5vZGUgd2Fz IGNyZWF0ZWQgYnkgdGhlIHNjYW5uZXIgb3IgcGFyc2VyIGZyb20gdGhlIG9yaWdpbmFsCi0tICAg ICAgIHNvdXJjZS4gVGh1cyBmb3IgZW50aXRpZXMsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBlbnRp dHkgaXMgZGVmaW5lZAotLSAgICAgICBpbiB0aGUgb3JpZ2luYWwgc291cmNlIHByb2dyYW0uCgot LSAgICBDb21wb25lbnRfQWxpZ25tZW50IChzcGVjaWFsIGZpZWxkKSBbYmFzZSB0eXBlIG9ubHld Ci0tICAgICAgIFByZXNlbnQgaW4gYXJyYXkgYW5kIHJlY29yZCBlbnRpdGllcy4gQ29udGFpbnMg YSB2YWx1ZSBvZiB0eXBlCi0tICAgICAgIENvbXBvbmVudF9BbGlnbm1lbnRfS2luZCBpbmRpY2F0 aW5nIHRoZSBhbGlnbm1lbnQgb2YgY29tcG9uZW50cy4KLS0gICAgICAgU2V0IHRvIENhbGlnbl9E ZWZhdWx0IG5vcm1hbGx5LCBidXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkgdXNlIG9mCi0tICAgICAg IHRoZSBDb21wb25lbnRfQWxpZ25tZW50IHByYWdtYS4gTm90ZTogdGhpcyBmaWVsZCBpcyBjdXJy ZW50bHkKLS0gICAgICAgc3RvcmVkIGluIGEgbm9uLXN0YW5kYXJkIHdheSwgc2VlIGJvZHkgZm9y IGRldGFpbHMuCgotLSAgICBDb21wb25lbnRfQml0X09mZnNldCAoVWludDExKQotLSAgICAgICBQ cmVzZW50IGluIHJlY29yZCBjb21wb25lbnRzIChFX0NvbXBvbmVudCwgRV9EaXNjcmltaW5hbnQp IGlmIGEKLS0gICAgICAgY29tcG9uZW50IGNsYXVzZSBhcHBsaWVzIHRvIHRoZSBjb21wb25lbnQu IEZpcnN0IGJpdCBwb3NpdGlvbiBvZgotLSAgICAgICBnaXZlbiBjb21wb25lbnQsIGNvbXB1dGVk IGZyb20gdGhlIGZpcnN0IGJpdCBhbmQgcG9zaXRpb24gdmFsdWVzCi0tICAgICAgIGdpdmVuIGlu IHRoZSBjb21wb25lbnQgY2xhdXNlLiBBIHZhbHVlIG9mIE5vX1VpbnQgbWVhbnMgdGhhdCB0aGUK LS0gICAgICAgdmFsdWUgaXMgbm90IHlldCBrbm93bi4gVGhlIHZhbHVlIGNhbiBiZSBzZXQgYnkg dGhlIGFwcGVhcmVuY2Ugb2YKLS0gICAgICAgYW4gZXhwbGljaXQgY29tcG9uZW50IGNsYXVzZSBp biBhIHJlY29yZCByZXByZXNlbnRhdGlvbiBjbGF1c2UsCi0tICAgICAgIG9yIGl0IGNhbiBiZSBz ZXQgYnkgdGhlIGZyb250LWVuZCBpbiBwYWNrYWdlIExheW91dCwgb3IgaXQgY2FuIGJlCi0tICAg ICAgIHNldCBieSB0aGUgYmFja2VuZC4gQnkgdGhlIHRpbWUgYmFja2VuZCBwcm9jZXNzaW5nIGlz IGNvbXBsZXRlZCwKLS0gICAgICAgdGhpcyBmaWVsZCBpcyBhbHdheXMgc2V0LiBBIG5lZ2F0aXZl IHZhbHVlIGlzIHVzZWQgdG8gcmVwcmVzZW50Ci0tICAgICAgIGEgdmFsdWUgd2hpY2ggaXMgbm90 IGtub3duIGF0IGNvbXBpbGUgdGltZSwgYW5kIG11c3QgYmUgY29tcHV0ZWQKLS0gICAgICAgYXQg cnVuLXRpbWUgKHRoaXMgaGFwcGVucyBpZiBmaWVsZHMgb2YgYSByZWNvcmQgaGF2ZSB2YXJpYWJs ZQotLSAgICAgICBsZW5ndGhzKS4gU2VlIHBhY2thZ2UgTGF5b3V0IGZvciBkZXRhaWxzIG9mIHRo ZXNlIHZhbHVlcy4KLS0KLS0gICAgICAgTm90ZTogdGhpcyBmaWVsZCBpcyBvYnNvbGVzY2VudCwg dG8gYmUgZXZlbnR1YWxseSByZXBsYWNlZCBlbnRpcmVseQotLSAgICAgICBieSBOb3JtYWxpemVk X0ZpcnN0X0JpdCBhbmQgTm9ybWFsaXplZF9Qb3NpdGlvbiwgYnV0IGZvciB0aGUgbW9tZW50LAot LSAgICAgICBnaWdpIGlzIHN0aWxsIHVzaW5nIChhbmQgYmFjayBhbm5vdGF0aW5nKSB0aGlzIGZp ZWxkLCBhbmQgZ2lnaSBkb2VzCi0tICAgICAgIG5vdCBrbm93IGFib3V0IHRoZSBuZXcgZmllbGRz LiBGb3IgdGhlIGZyb250IGVuZCBsYXlvdXQgY2FzZSwgdGhlCi0tICAgICAgIENvbXBvbmVudF9C aXRfT2Zmc2V0IGZpZWxkIGlzIG9ubHkgc2V0IGlmIGl0IGlzIHN0YXRpYywgYW5kIG90aGVyd2lz ZQotLSAgICAgICB0aGUgbmV3IE5vcm1hbGl6ZWRfRmlyc3RfQml0IGFuZCBOb3JtYWxpemVkX1Bv c2l0aW9uIGZpZWxkcyBhcmUgdXNlZC4KCi0tICAgIENvbXBvbmVudF9DbGF1c2UgKE5vZGUxMykK LS0gICAgICAgUHJlc2VudCBpbiByZWNvcmQgY29tcG9uZW50cyBhbmQgZGlzY3JpbWluYW50cy4g SWYgYSByZWNvcmQKLS0gICAgICAgcmVwcmVzZW50YXRpb24gY2xhdXNlIGlzIHByZXNlbnQgZm9y IHRoZSBjb3JyZXNwb25kaW5nIHJlY29yZAotLSAgICAgICB0eXBlIGEgdGhhdCBzcGVjaWZpZXMg YSBwb3NpdGlvbiBmb3IgdGhlIGNvbXBvbmVudCwgdGhlbiB0aGUKLS0gICAgICAgQ29tcG9uZW50 X0NsYXVzZSBmaWVsZCBvZiB0aGUgRV9Db21wb25lbnQgZW50aXR5IHBvaW50cyB0byB0aGUKLS0g ICAgICAgTl9Db21wb25lbnRfQ2xhdWUgbm9kZS4gU2V0IHRvIEVtcHR5IGlmIG5vIHJlY29yZCBy ZXByZXNlbnRhdGlvbgotLSAgICAgICBjbGF1c2Ugd2FzIHByZXNlbnQsIG9yIGlmIHRoZXJlIHdh cyBubyBzcGVjaWZpY2F0aW9uIGZvciB0aGlzCi0tICAgICAgIGNvbXBvbmVudC4KCi0tICAgIENv bXBvbmVudF9TaXplIChVaW50MjIpIFtpbXBsZW1lbnRhdGlvbiBiYXNlIHR5cGUgb25seV0KLS0g ICAgICAgUHJlc2VudCBpbiBhcnJheSB0eXBlcy4gSXQgY29udGFpbnMgdGhlIGNvbXBvbmVudCBz aXplIHZhbHVlIGZvcgotLSAgICAgICB0aGUgYXJyYXkuIEEgdmFsdWUgb2YgemVybyBtZWFucyB0 aGF0IHRoZSB2YWx1ZSBpcyBub3QgeWV0IHNldC4KLS0gICAgICAgVGhlIHZhbHVlIGNhbiBiZSBz ZXQgYnkgdGhlIHVzZSBvZiBhIGNvbXBvbmVudCBzaXplIGNsYXVzZSwgb3IKLS0gICAgICAgYnkg dGhlIGZyb250IGVuZCBpbiBwYWNrYWdlIExheW91dCwgb3IgYnkgdGhlIGJhY2tlbmQuIEEgbmVn YXRpdmUKLS0gICAgICAgdmFsdWUgaXMgdXNlZCB0byByZXByZXNlbnQgYSB2YWx1ZSB3aGljaCBp cyBub3Qga25vd24gYXQgY29tcGlsZQotLSAgICAgICB0aW1lLCBhbmQgbXVzdCBiZSBjb21wdXRl ZCBhdCBydW4tdGltZSAodGhpcyBoYXBwZW5zIGlmIHRoZSB0eXBlCi0tICAgICAgIG9mIHRoZSBj b21wb25lbnQgaGFzIGEgdmFyaWFibGUgbGVuZ3RoIHNpemUpLiBTZWUgcGFja2FnZSBMYXlvdXQK LS0gICAgICAgZm9yIGRldGFpbHMgb2YgdGhlc2UgdmFsdWVzLgoKLS0gICAgQ29tcG9uZW50X1R5 cGUgKE5vZGUyMCkgW2ltcGxlbWVudGF0aW9uIGJhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVz ZW50IGluIGFycmF5IHR5cGVzIGFuZCBzdWJ0eXBlcywgYW5kIGFsc28gaW4gdGhlIHNwZWNpYWwK LS0gICAgICAgZW51bWVyYXRpb24gdGFibGUgdHlwZSBjcmVhdGVkIGZvciBlbnVtZXJhdGlvbiB0 eXBlLiBSZWZlcmVuY2VzCi0tICAgICAgIHRoZSBlbnRpdHkgZm9yIHRoZSBjb21wb25lbnQgdHlw ZS4KCi0tICAgIENvbnN0YW50X1ZhbHVlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0 byBjb25zdGFudHMsIG5hbWVkIGludGVnZXJzLCBhbmQgbmFtZWQgcmVhbHMuIE9idGFpbnMKLS0g ICAgICAgdGhlIGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb24gZm9yIHRoZSBlbnRpdHkuIFdpbGwg cmV0dXJuIEVtcHR5IGZvcgotLSAgICAgICBmb3IgYSBkZWZlcnJlZCBjb25zdGFudCB3aG9zZSBm dWxsIHZpZXcgaXMgbm90IGF2YWlsYWJsZSBvciBpbiBzb21lCi0tICAgICAgIG90aGVyIGNhc2Vz IG9mIGludGVybmFsIGVudGl0aWVzLCB3aGljaCBjYW5ub3QgYmUgdHJlYXRlZCBhcwotLSAgICAg ICBjb25zdGFudHMgZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiBjb25zdGFudCBmb2xkaW5nLgoK LS0gICAgQ29ycmVzcG9uZGluZ19Db25jdXJyZW50X1R5cGUgKE5vZGUxOCkKLS0gICAgICAgUHJl c2VudCBpbiByZWNvcmQgdHlwZXMgdGhhdCBhcmUgY29uc3RydWN0ZWQgYnkgdGhlIGV4cGFuZGVy IHRvCi0tICAgICAgIHJlcHJlc2VudCB0YXNrIGFuZCBwcm90ZWN0ZWQgdHlwZXMgKElzX0NvbmN1 cnJlbnRfUmVjb3JkX1R5cGUgZmxhZwotLSAgICAgICBzZXQgVHJ1ZSkuIFBvaW50cyB0byB0aGUg ZW50aXR5IGZvciB0aGUgY29ycmVzcG9uZGluZyB0YXNrIHR5cGUgb3IKLS0gICAgICAgcHJvdGVj dGVkIHR5cGUuCgotLSAgICBDb3JyZXNwb25kaW5nX0Rpc2NyaW1pbmFudCAoTm9kZTE5KQotLSAg ICAgICBQcmVzZW50IGluIGRpc2NyaW1pbmFudHMgb2YgYSBkZXJpdmVkIHR5cGUsIHdoZW4gdGhl IGRpc2NyaW1pbmFudCBpcwotLSAgICAgICB1c2VkIHRvIGNvbnN0cmFpbiBhIGRpc2NyaW1pbmFu dCBvZiB0aGUgcGFyZW50IHR5cGUuIFBvaW50cyB0byB0aGUKLS0gICAgICAgY29ycmVzcG9uZGlu ZyBkaXNjcmltaW5hbnQgaW4gdGhlIHBhcmVudCB0eXBlLiBPdGhlcndpc2UgaXQgaXMgRW1wdHku CgotLSAgICBDb3JyZXNwb25kaW5nX0VxdWFsaXR5IChOb2RlMTMpCi0tICAgICAgIFByZXNlbnQg aW4gZnVuY3Rpb24gZW50aXRpZXMgZm9yIGltcGxpY2l0IGluZXF1YWxpdHkgb3BlcmF0b3JzLgot LSAgICAgICBEZW5vdGVzIHRoZSBleHBsaWNpdCBvciBkZXJpdmVkIGVxdWFsaXR5IG9wZXJhdGlv biB0aGF0IGNyZWF0ZXMKLS0gICAgICAgdGhlIGltcGxpY2l0IGluZXF1YWxpdHkuIE5vdGUgdGhh dCB0aGlzIGZpZWxkIGlzIG5vdCBwcmVzZW50IGluCi0tICAgICAgIG90aGVyIGZ1bmN0aW9uIGVu dGl0aWVzLCBvbmx5IGluIGltcGxpY2l0IGluZXF1YWxpdHkgcm91dGluZXMsCi0tICAgICAgIHdo ZXJlIENvbWVzX0Zyb21fU291cmNlIGlzIGFsd2F5cyBGYWxzZS4KCi0tICAgIENvcnJlc3BvbmRp bmdfUmVjb3JkX1R5cGUgKE5vZGUxOCkKLS0gICAgICAgUHJlc2VudCBpbiBwcm90ZWN0ZWQgYW5k IHRhc2sgdHlwZXMgYW5kIHN1YnR5cGVzLiBSZWZlcmVuY2VzIHRoZQotLSAgICAgICBlbnRpdHkg Zm9yIHRoZSBjb3JyZXNwb25kaW5nIHJlY29yZCB0eXBlIGNvbnN0cnVjdGVkIGJ5IHRoZSBleHBh bmRlcgotLSAgICAgICAoc2VlIEV4cF9DaDkpLiBUaGlzIHR5cGUgaXMgdXNlZCB0byByZXByZXNl bnQgdmFsdWVzIG9mIHRoZSB0YXNrIHR5cGUuCgotLSAgICBDb3JyZXNwb25kaW5nX1JlbW90ZV9U eXBlIChOb2RlMjIpCi0tICAgICAgUHJlc2VudCBpbiByZWNvcmQgdHlwZXMgdGhhdCBkZXNjcmli ZSB0aGUgZmF0IHBvaW50ZXIgc3RydWN0dXJlIGZvcgotLSAgICAgIFJlbW90ZV9BY2Nlc3NfVG9f U3Vicm9ncmFtIHR5cGVzLiBSZWZlcmVuY2VzIHRoZSBvcmlnaW5hbCBhY2Nlc3MgdHlwZS4KCi0t ICAgIENSX0Rpc2NyaW1pbmFudCAoTm9kZTIzKQotLSAgICAgIFByZXNlbnQgaW4gZGlzY3JpbWlu YW50cyBvZiBjb25jdXJyZW50IHR5cGVzLiBEZW5vdGVzIHRoZSBob21vbG9nb3VzCi0tICAgICAg ZGlzY3JpbWluYW50IG9mIHRoZSBjb3JyZXNwb25kaW5nIHJlY29yZCB0eXBlLiBUaGUgQ1JfRGlz Y3JpbWluYW50IGlzCi0tICAgICAgY3JlYXRlZCBhdCB0aGUgc2FtZSB0aW1lIGFzIHRoZSBkaXNj cmltaW5hbCwgYW5kIHVzZWQgdG8gcmVwbGFjZQotLSAgICAgIG9jY3VycmVuY2VzIG9mIHRoZSBk aXNjcmltaW5hbnQgd2l0aGluIHRoZSB0eXBlIGRlY2xhcmF0aW9uLgoKLS0gICAgRGVidWdfSW5m b19PZmYgKEZsYWcxNjYpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYg YSBwcmFnbWEgU3VwcHJlc3NfRGVidWdfSW5mbyBhcHBsaWVzCi0tICAgICAgIHRvIHRoZSBlbnRp dHksIG9yIGlmIGludGVybmFsIHByb2Nlc3NpbmcgaW4gdGhlIGNvbXBpbGVyIGRldGVybWluZXMK LS0gICAgICAgdGhhdCBzdXBwcmVzc2lvbiBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiBpcyBkZXNpcmFi bGUuCgotLSAgICBEZWJ1Z19SZW5hbWluZ19MaW5rIChOb2RlMTMpCi0tICAgICAgIFVzZWQgdG8g bGluayB0aGUgZW51bWVyYXRpb24gbGl0ZXJhbCBvZiBhIGRlYnVnIHJlbmFtaW5nIGRlY2xhcmF0 aW9uCi0tICAgICAgIHRvIHRoZSByZW5hbWVkIGVudGl0eS4gU2VlIEV4cF9EYnVnLkRlYnVnX1Jl bmFtaW5nX0RlY2xhcmF0aW9uIGZvcgotLSAgICAgICBkZXRhaWxzIG9mIHRoZSB1c2Ugb2YgdGhp cyBmaWVsZC4KCi0tICAgIERlY2xhcmF0aW9uX05vZGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBB cHBsaWVzIHRvIGFsbCBlbnRpdGllcy4gUmV0dXJucyB0aGUgdHJlZSBub2RlIGZvciB0aGUgZGVj bGFyYXRpb24KLS0gICAgICAgdGhhdCBkZWNsYXJlZCB0aGUgZW50aXR5LiBOb3JtYWxseSB0aGlz IGlzIGp1c3QgdGhlIFBhcmVudCBvZiB0aGUKLS0gICAgICAgZW50aXR5LiBPbmUgZXhjZXB0aW9u IGFyaXNlcyB3aXRoIGNoaWxkIHVuaXRzLCB3aGVyZSB0aGUgcGFyZW50IG9mCi0tICAgICAgIHRo ZSBlbnRpdHkgaXMgYSBzZWxlY3RlZCBjb21wb25lbnQgb3IgYSBkZWZpbmluZyBwcm9ncmFtIHVu aXQgbmFtZS4KLS0gICAgICAgQW5vdGhlciBleGNlcHRpb24gaXMgdGhhdCBpZiB0aGUgZW50aXR5 IGlzIGFuIGluY29tcGxldGUgdHlwZSB0aGF0Ci0tICAgICAgIGhhcyBiZWVuIGNvbXBsZXRlZCwg dGhlbiB3ZSBvYnRhaW4gdGhlIGRlY2xhcmF0aW9uIG5vZGUgZGVub3RlZCBieQotLSAgICAgICB0 aGUgZnVsbCB0eXBlLCBpLmUuIHRoZSBmdWxsIHR5cGUgZGVjbGFyYXRpb24gbm9kZS4KCi0tICAg IERlZmF1bHRfRXhwcl9GdW5jdGlvbiAoTm9kZTIxKQotLSAgICAgICBQcmVzZW50IGluIHBhcmFt ZXRlcnMuIEl0IGhvbGRzIHRoZSBlbnRpdHkgb2YgdGhlIHBhcmFtZXRlcmxlc3MKLS0gICAgICAg ZnVuY3Rpb24gdGhhdCBpcyBidWlsdCB0byBldmFsdWF0ZSB0aGUgZGVmYXVsdCBleHByZXNzaW9u IGlmIGl0IGlzCi0tICAgICAgIG1vcmUgY29tcGxleCB0aGFuIGEgc2ltcGxlIGlkZW50aWZpZXIg b3IgbGl0ZXJhbC4gRm9yIHRoZSBsYXR0ZXIKLS0gICAgICAgc2ltcGxlIGNhc2VzIG9yIGlmIHRo ZXJlIGlzIG5vIGRlZmF1bHQgdmFsdWUsIHRoaXMgZmllbGQgaXMgRW1wdHkuCgotLSAgICBEZWZh dWx0X0V4cHJlc3Npb25zX1Byb2Nlc3NlZCAoRmxhZzEwOCkKLS0gICAgICAgQSBmbGFnIGluIHN1 YnByb2dyYW1zIChmdW5jdGlvbnMsIG9wZXJhdG9ycywgcHJvY2VkdXJlcykgYW5kIGluCi0tICAg ICAgIGVudHJpZXMgYW5kIGVudHJ5IGZhbWlsaWVzIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBkZWZh dWx0IGV4cHJlc3Npb25zCi0tICAgICAgIGhhdmUgYmVlbiBwcm9jZXNzZWQgYW5kIHRvIGF2b2lk IG11bHRpcGxlIGNhbGxzIHRvIHByb2Nlc3MgdGhlCi0tICAgICAgIGRlZmF1bHQgZXhwcmVzc2lv bnMgKHNlZSBGcmVlemUuUHJvY2Vzc19EZWZhdWx0X0V4cHJlc3Npb25zKSwgd2hpY2gKLS0gICAg ICAgd291bGQgbm90IG9ubHkgd2FzdGUgdGltZSwgYnV0IGFsc28gZ2VuZXJhdGUgZmFsc2UgZXJy b3IgbWVzc2FnZXMuCgotLSAgICBEZWZhdWx0X1ZhbHVlIChOb2RlMjApCi0tICAgICAgIFByZXNl bnQgaW4gZm9ybWFsIHBhcmFtZXRlcnMuIFBvaW50cyB0byB0aGUgbm9kZSByZXByZXNlbnRpbmcg dGhlCi0tICAgICAgIGV4cHJlc3Npb24gZm9yIHRoZSBkZWZhdWx0IHZhbHVlIGZvciB0aGUgcGFy YW1ldGVyLiBFbXB0eSBpZiB0aGUKLS0gICAgICAgcGFyYW1ldGVyIGhhcyBubyBkZWZhdWx0IHZh bHVlICh3aGljaCBpcyBhbHdheXMgdGhlIGNhc2UgZm9yIE9VVAotLSAgICAgICBhbmQgSU4gT1VU IHBhcmFtZXRlcnMgaW4gdGhlIGFic2VuY2Ugb2YgZXJyb3JzKS4KCi0tICAgIERlbGF5X0NsZWFu dXBzIChGbGFnMTE0KQotLSAgICAgICBQcmVzZW50IGluIGVudGl0aWVzIHRoYXQgaGF2ZSBmaW5h bGl6YXRpb24gbGlzdHMgKHN1YnByb2dyYW1zCi0tICAgICAgIGJsb2NrcywgYW5kIHRhc2tzKS4g U2V0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGdlbmVyaWMgYm9keQotLSAgICAgICBpbnN0YW50aWF0 aW9ucyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5LiBJZiB0aGlzIGZsYWcgaXMKLS0gICAg ICAgc2V0LCB0aGVuIGdlbmVyYXRpb24gb2YgY2xlYW51cCBhY3Rpb25zIGZvciB0aGUgY29ycmVz cG9uZGluZwotLSAgICAgICBlbnRpdHkgbXVzdCBiZSBkZWxheWVkLCBzaW5jZSB0aGUgaW5zZXJ0 aW9uIG9mIHRoZSBnZW5lcmljIGJvZHkKLS0gICAgICAgbWF5IGFmZmVjdCBjbGVhbnVwIGdlbmVy YXRpb24gKHNlZSBJbmxpbmUgZm9yIGZ1cnRoZXIgZGV0YWlscykuCgotLSAgICBEZWxheV9TdWJw cm9ncmFtX0Rlc2NyaXB0b3JzIChGbGFnNTApCi0tICAgICAgIFByZXNlbnQgaW4gZW50aXRpZXMg Zm9yIHdoaWNoIGV4Y2VwdGlvbiBzdWJwcm9ncmFtIGRlc2NyaXB0b3JzCi0tICAgICAgIGFyZSBn ZW5lcmF0ZWQgKHN1YnByb2dyYW1zLCBwYWNrYWdlIGRlY2xhcmF0aW9ucyBhbmQgcGFja2FnZQot LSAgICAgICBib2RpZXMpLiBQcmVzZW50IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGdlbmVyaWMgYm9k eSBpbnN0YW50aWF0aW9ucwotLSAgICAgICBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5LiBJ ZiB0aGlzIGZsYWcgaXMgc2V0LCB0aGVuIGdlbmVyYXRpb24KLS0gICAgICAgb2YgdGhlIHN1YnBy b2dyYW0gZGVzY3JpcHRvciBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZW5pdGllcyBtdXN0Ci0tICAg ICAgIGJlIGRlbGF5ZWQsIHNpbmNlIHRoZSBpbnNlcnRpb24gb2YgdGhlIGdlbmVyaWMgYm9keSBt YXkgYWRkIGVudHJpZXMKLS0gICAgICAgdG8gdGhlIGxpc3Qgb2YgaGFuZGxlcnMuCi0tCi0tICAg ICAgIE5vdGU6IGZvciBzdWJwcm9ncmFtcywgRGVsYXlfU3VicHJvZ3JhbV9EZXNjcmlwdG9ycyBp cyBzZXQgaWYgYW5kCi0tICAgICAgIG9ubHkgaWYgRGVsYXlfQ2xlYW51cHMgaXMgc2V0LiBCdXQg RGVsYXlfQ2xlYW51cHMgY2FuIGJlIHNldCBmb3IgYQotLSAgICAgICBhIGJsb2NrIChpbiB3aGlj aCBjYXNlIERlbGF5X1N1YnByb2dyYW1fRGVzY3JpcHRvcnMgaXMgc2V0IGZvciB0aGUKLS0gICAg ICAgY29udGFpbmluZyBzdWJwcm9ncmFtKS4gSW4gYWRkaXRpb24gRGVsYXlfU3VicHJvZ3JhbV9E ZXNjcmlwdG9ycyBpcwotLSAgICAgICBzZXQgZm9yIGEgbGlicmFyeSBsZXZlbCBwYWNrYWdlIGRl Y2xhcmF0aW9uIG9yIGJvZHkgd2hpY2ggY29udGFpbnMKLS0gICAgICAgZGVsYXllZCBpbnN0YW50 aWF0aW9ucyAoaW4gdGhpcyBjYXNlIHRoZSBkZXNjcmlwdG9yIHJlZmVycyB0byB0aGUKLS0gICAg ICAgZW5jbG9zaW5nIGVsYWJvcmF0aW9uIHByb2NlZHVyZSkuCgotLSAgICBEZWx0YV9WYWx1ZSAo VXJlYWwxOCkKLS0gICAgICAgUHJlc2VudCBpbiBmaXhlZCBhbmQgZGVjaW1hbCB0eXBlcy4gUG9p bnRzIHRvIGEgdW5pdmVyc2FsIHJlYWwKLS0gICAgICAgdGhhdCBob2xkcyB2YWx1ZSBvZiBkZWx0 YSBmb3IgdGhlIHR5cGUsIGFzIGdpdmVuIGluIHRoZSBkZWNsYXJhdGlvbgotLSAgICAgICBvciBh cyBpbmhlcml0ZWQgYnkgYSBzdWJ0eXBlIG9yIGRlcml2ZWQgdHlwZS4KCi0tICAgIERlcGVuZGVu dF9JbnN0YW5jZXMgKEVsaXN0OCkKLS0gICAgICAgUHJlc2VudCBpbiBwYWNrYWdlcyB0aGF0IGFy ZSBpbnN0YW5jZXMuIEhvbGRzIGxpc3Qgb2YgaW5zdGFuY2VzCi0tICAgICAgIG9mIGlubmVyIGdl bmVyaWNzLiBVc2VkIHRvIHBsYWNlIGZyZWV6ZSBub2RlcyBmb3IgdGhvc2UgaW5zdGFuY2VzCi0t ICAgICAgIGFmdGVyIHRoYXQgb2YgdGhlIGN1cnJlbnQgb25lLCBpLmUuIGFmdGVyIHRoZSBjb3Jy ZXNwb25kaW5nIGdlbmVyaWMKLS0gICAgICAgYm9kaWVzLgoKLS0gICAgRGVwZW5kc19Pbl9Qcml2 YXRlIChGbGFnMTQpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIFNldCBp ZiB0aGUgdHlwZSBpcyBwcml2YXRlIG9yIGlmIGl0Ci0tICAgICAgIGRlcGVuZHMgb24gYSBwcml2 YXRlIHR5cGUuCgotLSAgICBEZXNpZ25hdGVkX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBB cHBsaWVzIHRvIGFjY2VzcyB0eXBlcy4gUmV0dXJucyB0aGUgZGVzaWduYXRlZCB0eXBlLiBEaWZm ZXJzCi0tICAgICAgIGZyb20gRGlyZWN0bHlfRGVzaWduYXRlZF9UeXBlIGluIHRoYXQgaWYgdGhl IGFjY2VzcyB0eXBlIHJlZmVycwotLSAgICAgICB0byBhbiBpbmNvbXBsZXRlIHR5cGUsIGFuZCB0 aGUgZnVsbCB0eXBlIGlzIGF2YWlsYWJsZSwgdGhlbiB0aGlzCi0tICAgICAgIGZ1bGwgdHlwZSBp cyByZXR1cm5lZCBpbnN0ZWFkIG9mIHRoZSBpbmNvbXBsZXRlIHR5cGUuCgotLSAgICBEaWdpdHNf VmFsdWUgKFVpbnQxNykKLS0gICAgICAgUHJlc2VudCBpbiBmbG9hdGluZyBwb2ludCB0eXBlcyBh bmQgc3VidHlwZXMgYW5kIGRlY2ltYWwgdHlwZXMgYW5kCi0tICAgICAgIHN1YnR5cGVzLiBDb250 YWlucyB0aGUgRGlnaXRzIHZhbHVlIHNwZWNpZmllZCBpbiB0aGUgZGVjbGFyYXRpb24uCgotLSAg ICBEaXJlY3RseV9EZXNpZ25hdGVkX1R5cGUgKE5vZGUyMCkKLS0gICAgICAgUHJlc2VudCBpbiBh Y2Nlc3MgdHlwZXMuIFRoaXMgZmllbGQgcG9pbnRzIHRvIHRoZSB0eXBlIHRoYXQgaXMKLS0gICAg ICAgZGlyZWN0bHkgZGVzaWduYXRlZCBieSB0aGUgYWNjZXNzIHR5cGUuIEluIHRoZSBjYXNlIG9m IGFuIGFjY2VzcwotLSAgICAgICB0eXBlIHRvIGFuIGluY29tcGxldGUgdHlwZSwgdGhpcyBmaWVs ZCByZWZlcmVuY2VzIHRoZSBpbmNvbXBsZXRlCi0tICAgICAgIHR5cGUuIE5vdGUgdGhhdCBpbiB0 aGUgc2VtYW50aWMgcHJvY2Vzc2luZywgd2hhdCBpcyB1c2VmdWwgaW4KLS0gICAgICAgbmVhcmx5 IGFsbCBjYXNlcyBpcyB0aGUgZnVsbCB0eXBlIGRlc2lnbmF0ZWQgYnkgdGhlIGFjY2VzcyB0eXBl LgotLSAgICAgICBUaGUgZnVuY3Rpb24gRGVzaWduYXRlZF9UeXBlIG9idGFpbnMgdGhpcyBmdWxs IHR5cGUgaW4gdGhlIGNhc2Ugb2YKLS0gICAgICAgYWNjZXNzIHRvIGFuIGluY29tcGxldGUgdHlw ZS4KCi0tICAgIERpc2NhcmRfTmFtZXMgKEZsYWc4OCkKLS0gICAgICAgUHJlc2VudCBpbiB0eXBl cyBhbmQgZXhjZXB0aW9uIGVudGl0aWVzLiBTZXQgaWYgcHJhZ21hIERpc2NhcmRfTmFtZXMKLS0g ICAgICAgYXBwbGllcyB0byB0aGUgZW50aXR5LiBJdCBpcyBhbHNvIHNldCBmb3IgZGVjbGFyYXRp dmUgcmVnaW9ucyBhbmQKLS0gICAgICAgcGFja2FnZSBzcGVjcyBmb3Igd2hpY2ggYSBEaXNjYXJk X05hbWVzIHByYWdtYSB3aXRoIHplcm8gYXJndW1lbnRzCi0tICAgICAgIGhhcyBiZWVuIGVuY291 bnRlcmVkLiBUaGUgcHVycG9zZSBvZiBzZXR0aW5nIHRoaXMgZmxhZyBpcyB0byBiZSBhYmxlCi0t ICAgICAgIHRvIHNldCB0aGUgRGlzY2FyZF9OYW1lcyBhdHRyaWJ1dGUgb24gZW51bWVyYXRpb24g dHlwZXMgZGVjbGFyZWQKLS0gICAgICAgYWZ0ZXIgdGhlIHByYWdtYSB3aXRoaW4gdGhlIHNhbWUg ZGVjbGFyYXRpdmUgcmVnaW9uLgoKLS0gICAgRGlzY3JpbWluYWwgKE5vZGUxNykKLS0gICAgICAg UHJlc2VudCBpbiBkaXNjcmltaW5hbnRzIChEaXNjcmltaW5hbnQgZm9ybWFsOiBHTkFUJ3MgZmly c3QKLS0gICAgICAgY29pbmFnZSkuIFRoZSBlbnRpdHkgdXNlZCBhcyBhIGZvcm1hbCBwYXJhbWV0 ZXIgdGhhdCBjb3JyZXNwb25kcwotLSAgICAgICB0byBhIGRpc2NyaW1pbmFudC4gU2VlIHNlY3Rp b24gIlVzZSBvZiBEaXNjcmltaW5hbnRzIiBmb3IgZGV0YWlscy4KCi0tICAgIERpc2NyaW1pbmFs X0xpbmsgKE5vZGUxMCkKLS0gICAgICAgUHJlc2VudCBpbiBkaXNjcmltaW5hbHMgKHdoaWNoIGhh dmUgYW4gRWtpbmQgb2YgRV9Jbl9QYXJhbWV0ZXIsCi0tICAgICAgIG9yIEVfQ29uc3RhbnQpLCBw b2ludHMgYmFjayB0byBjb3JyZXNwb25kaW5nIGRpc2NyaW1pbmFudC4KCi0tICAgIERpc2NyaW1p bmFudF9DaGVja2luZ19GdW5jIChOb2RlMjApCi0tICAgICAgIFByZXNlbnQgaW4gY29tcG9uZW50 cy4gUG9pbnRzIHRvIHRoZSBkZWZpbmluZyBpZGVudGlmaWVyIG9mIHRoZQotLSAgICAgICBmdW5j dGlvbiBidWlsdCBieSB0aGUgZXhwYW5kZXIgcmV0dXJucyBhIEJvb2xlYW4gaW5kaWNhdGluZyB3 aGV0aGVyCi0tICAgICAgIHRoZSBnaXZlbiByZWNvcmQgY29tcG9uZW50IGV4aXN0cyBmb3IgdGhl IGN1cnJlbnQgZGlzY3JpbWluYW50Ci0tICAgICAgIHZhbHVlcy4KCi0tICAgIERpc2NyaW1pbmFu dF9Db25zdHJhaW50IChFbGlzdDIxKQotLSAgICAgICBQcmVzZW50IGluIGVudGl0aWVzIHdob3Nl IEhhc19EaXNjcmltaW5hbnRzIGZsYWcgaXMgc2V0IChjb25jdXJyZW50Ci0tICAgICAgIHR5cGVz LCBzdWJ0eXBlcywgcmVjb3JkIHR5cGVzIGFuZCBzdWJ0eXBlcywgcHJpdmF0ZSB0eXBlcyBhbmQK LS0gICAgICAgc3VidHlwZXMsIGxpbWl0ZWQgcHJpdmF0ZSB0eXBlcyBhbmQgc3VidHlwZXMgYW5k IGluY29tcGxldGUgdHlwZXMpLgotLSAgICAgICBJdCBpcyBhbiBlcnJvciB0byByZWZlcmVuY2Ug dGhlIERpc2NyaW1pbmFudF9Db25zdHJhaW50IGZpZWxkIGlmCi0tICAgICAgIEhhc19EaXNjaW1p bmFudHMgaXMgRmFsc2UuCi0tCi0tICAgICAgIElmIHRoZSBJc19Db25zdHJhaW5lZCBmbGFnIGlz IHNldCwgRGlzY3JpbWluYW50X0NvbnN0cmFpbnQgcG9pbnRzCi0tICAgICAgIHRvIGFuIGVsZW1l bnQgbGlzdCBjb250YWluaW5nIHRoZSBkaXNjcmltaW5hbnQgY29uc3RyYWludHMgaW4gdGhlCi0t ICAgICAgIHNhbWUgb3JkZXIgaW4gd2hpY2ggdGhlIGRpc2NyaW1pbmFudHMgYXJlIGRlY2xhcmVk LgotLQotLSAgICAgICBJZiB0aGUgSXNfQ29uc3RyYWluZWQgZmxhZyBpcyBub3Qgc2V0IGJ1dCB0 aGUgZGlzY3JpbWluYW50cyBvZiB0aGUKLS0gICAgICAgdW5jb25zdHJhaW5lZCB0eXBlIGhhdmUg ZGVmYXVsdCBpbml0aWFsIHZhbHVlcyB0aGVuIHRoaXMgZmllbGQKLS0gICAgICAgcG9pbnRzIHRv IGFuIGVsZW1lbnQgbGlzdCBnaXZpbmcgdGhlc2UgZGVmYXVsdCBpbml0aWFsIHZhbHVlcyBpbgot LSAgICAgICB0aGUgc2FtZSBvcmRlciBpbiB3aGljaCB0aGUgZGlzY3JpbWluYW50cyBhcmUgZGVj bGFyZWQuIE5vdGUgdGhhdAotLSAgICAgICBpbiB0aGlzIGNhc2UgdGhlIGVudGl0eSBjYW5ub3Qg YmUgYSB0YWdnZWQgcmVjb3JkIHR5cGUsIGJlY2F1c2UKLS0gICAgICAgZGlzY3JpbWluYW50cyBp biB0aGlzIGNhc2UgY2Fubm90IGhhdmUgZGVmYXVsdHMuCi0tCi0tICAgICAgIElmIHRoZSBlbnRp dHkgaXMgYSB0YWdnZWQgcmVjb3JkIGltcGxpY2l0IHR5cGUsIHRoZW4gdGhpcyBmaWVsZCBpcwot LSAgICAgICBpbmhlcml0ZWQgZnJvbSB0aGUgZmlyc3Qgc3VidHlwZSAoc28gdGhhdCB0aGUgaXR5 cGUgaXMgc3VidHlwZQotLSAgICAgICBjb25mb3JtYW50IHdpdGggaXRzIGZpcnN0IHN1YnR5cGUs IHdoaWNoIGlzIG5lZWRlZCB3aGVuIHRoZSBmaXJzdAotLSAgICAgICBzdWJ0eXBlIG92ZXJyaWRl cyBwcmltaXRpdmUgb3BlcmF0aW9ucyBpbmhlcml0ZWQgYnkgdGhlIGltcGxpY2l0Ci0tICAgICAg IGJhc2UgdHlwZSkuCi0tCi0tICAgICAgIEluIGFsbCBvdGhlciBjYXNlcyBEaXNjcmltaW5hbnRf Q29uc3RyYWludCBjb250YWlucyB0aGUgZW1wdHkKLS0gICAgICAgRWxpc3QgKGllIGl0IGlzIGlu aXRpYWxpemVkIHdpdGggYSBjYWxsIHRvIE5ld19FbG10X0xpc3QpLgoKLS0gICAgRGlzY3JpbWlu YW50X0RlZmF1bHRfVmFsdWUgKE5vZGUyMCkKLS0gICAgICAgUHJlc2VudCBpbiBkaXNjcmltaW5h bnRzLiBQb2ludHMgdG8gdGhlIG5vZGUgcmVwcmVzZW50aW5nIHRoZQotLSAgICAgICBleHByZXNz aW9uIGZvciB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgZGlzY3JpbWluYW50LiBTZXQgdG8KLS0g ICAgICAgRW1wdHkgaWYgdGhlIGRpc2NyaW1pbmFudCBoYXMgbm8gZGVmYXVsdCB2YWx1ZS4KCi0t ICAgIERpc2NyaW1pbmFudF9OdW1iZXIgKFVpbnQxNSkKLS0gICAgICAgUHJlc2VudCBpbiBkaXNj cmltaW5hbnRzLiBHaXZlcyB0aGUgcmFua2luZyBvZiBhIGRpc2NyaW1pbmFudCBpbgotLSAgICAg ICB0aGUgbGlzdCBvZiBkaXNjcmltaW5hbnRzIG9mIHRoZSB0eXBlLCBpLmUuIGEgc2VxdWVudGlh bCBpbnRlZ2VyCi0tICAgICAgIGluZGV4IHN0YXJ0aW5nIGF0IDEgYW5kIHJhbmdpbmcgdXAgdG8g TnVtYmVyX0Rpc2NyaW1pbmFudHMuCgotLSAgICBEVENfRW50aXR5IChOb2RlMTYpCi0tICAgICAg IFByZXNlbnQgaW4gZnVuY3Rpb24gYW5kIHByb2NlZHVyZSBlbnRpdGllcy4gU2V0IHRvIEVtcHR5 IHVubGVzcwotLSAgICAgICB0aGUgc3VicHJvZ3JhbSBpcyBkaXNwYXRjaGluZyBpbiB3aGljaCBj YXNlIGl0IHJlZmVyZW5jZXMgdGhlCi0tICAgICAgIERpc3BhdGNoIFRhYmxlIHBvaW50ZXIgQ29t cG9uZW50LiBUaGF0IGlzIHRvIHNheSB0aGUgY29tcG9uZW50IF90YWcKLS0gICAgICAgZm9yIHJl Z3VsYXIgQWRhIHRhZ2dlZCB0eXBlcywgZm9yIENQUF9DbGFzcyB0eXBlcyBhbmQgdGhlaXIKLS0g ICAgICAgZGVzY2VuZGFudHMgdGhpcyBmaWVsZCBwb2ludHMgdG8gdGhlIGNvbXBvbmVudCBlbnRp dHkgaW4gdGhlIHJlY29yZAotLSAgICAgICB0aGF0IGlzIHRoZSBWdGFibGUgcG9pbnRlciBmb3Ig dGhlIFZ0YWJsZSBjb250YWluaW5nIHRoZSBlbnRyeSB0aGF0Ci0tICAgICAgIHJlZmVyZW5jZXMg dGhlIHN1YnByb2dyYW0uCgotLSAgICBEVF9FbnRyeV9Db3VudCAoVWludDE1KQotLSAgICAgICBQ cmVzZW50IGluIEVfQ29tcG9uZW50IGVudGl0aWVzLiBPbmx5IHVzZWQgZm9yIGNvbXBvbmVudCBt YXJrZWQKLS0gICAgICAgSXNfVGFnLiBTdG9yZSB0aGUgbnVtYmVyIG9mIGVudHJpZXMgaW4gdGhl IFZ0YWJsZSAob3IgRGlzcGF0Y2ggVGFibGUpCgotLSAgICBEVF9Qb3NpdGlvbiAoVWludDE1KQot LSAgICAgICBQcmVzZW50IGluIGZ1bmN0aW9uIGFuZCBwcm9jZWR1cmUgZW50aXRpZXMgd2hpY2gg YXJlIGRpc3BhdGNoaW5nCi0tICAgICAgIChzaG91bGQgbm90IGJlIHJlZmVyZW5jZWQgd2l0aG91 dCBmaXJzdCBjaGVja2luZyB0aGF0IGZsYWcKLS0gICAgICAgSXNfRGlzcGF0Y2hpbmdfT3BlcmF0 aW9uIGlzIFRydWUpLiBDb250YWlucyB0aGUgb2Zmc2V0IGludG8KLS0gICAgICAgdGhlIFZ0YWJs ZSBmb3IgdGhlIGVudHJ5IHRoYXQgcmVmZXJlbmNlcyB0aGUgc3VicHJvZ3JhbS4KCi0tICAgIEVr aW5kIChFa2luZCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIENvbnRhaW5zIGEg dmFsdWUgb2YgdGhlIGVudW1lcmF0aW9uIHR5cGUKLS0gICAgICAgRW50aXR5X0tpbmQgZGVjbGFy ZWQgaW4gYSBzdWJzZXF1ZW50IHNlY3Rpb24gaW4gdGhpcyBzcGVjLgoKLS0gICAgRWxhYm9yYXRl X0FsbF9EZXNpcmFibGUgKEZsYWcxNDYpCi0tICAgICAgIFByZXNlbnQgaW4gcGFja2FnZSBhbmQg c3VicHJvZ3JhbSBlbnRpdGllcywgYW5kIGluIGdlbmVyaWMgcGFja2FnZQotLSAgICAgICBhbmQg c3VicHJvZ3JhbSBlbnRpdGllcy4gU2V0IGlmIGludGVybmFsIGFuYWx5c2lzIG9mIGEgY2xpZW50 IHRoYXQKLS0gICAgICAgd2l0aCdzIHRoaXMgdW5pdCBkZXRlcm1pbmVzIHRoYXQgRWxhYm9yYXRl X0FsbCBpcyBkZXNpcmFibGUsIGkuZS4KLS0gICAgICAgdGhhdCB0aGVyZSBpcyBhIHBvc3NpYmls aXR5IHRoYXQgUHJvZ3JhbV9FcnJvciBtYXkgYmUgcmFpc2VkIGlmCi0tICAgICAgIEVsYWJvcmF0 ZV9BbGwgY29uZGl0aW9ucyBjYW5ub3QgYmUgbWV0LgoKLS0gICAgRWxhYm9yYXRpb25fRW50aXR5 IChOb2RlMTMpCi0tICAgICAgIFByZXNlbnQgaW4gZ2VuZXJpYyBhbmQgbm9uLWdlbmVyaWMgcGFj a2FnZSBhbmQgc3VicHJvZ3JhbQotLSAgICAgICBlbnRpdGllcy4gVGhpcyBpcyBhIGJvb2xlYW4g ZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgdW5pdCB0aGF0Ci0tICAgICAgIGlzIGluaXRpYWxs bHkgc2V0IHRvIEZhbHNlLCBhbmQgaXMgc2V0IFRydWUgd2hlbiB0aGUgdW5pdCBpcwotLSAgICAg ICBlbGFib3JhdGVkLiBUaGlzIGlzIHVzZWQgZm9yIHR3byBwdXJwb3Nlcy4gRmlyc3QsIGl0IGlz IHVzZWQgdG8KLS0gICAgICAgaW1wbGVtZW50IHJlcXVpcmVkIGFjY2VzcyBiZWZvcmUgZWxhYm9y YXRpb24gY2hlY2tzICh0aGUgZmxhZwotLSAgICAgICBtdXN0IGJlIHRydWUgdG8gY2FsbCBhIHN1 YnByb2dyYW0gYXQgZWxhYm9yYXRpb24gdGltZSkuIFNlY29uZCwKLS0gICAgICAgaXQgaXMgdXNl ZCB0byBndWFyZCBhZ2FpbnN0IHJlcGVhdGVkIGV4ZWN1dGlvbiBvZiB0aGUgZ2VuZXJhdGVkCi0t ICAgICAgIGVsYWJvcmF0aW9uIGNvZGUuCi0tCi0tICAgICAgIE5vdGUgdGhhdCB3ZSBhbHdheXMg YWxsb2NhdGUgdGhpcyBmbGFnLCBhbmQgc2V0IHRoaXMgZmllbGQsIGJ1dAotLSAgICAgICB3ZSBk byBub3QgYWx3YXlzIGFjdHVhbGx5IHVzZSBpdC4gSXQgaXMgb25seSB1c2VkIGlmIGl0IGlzIG5l ZWRlZAotLSAgICAgICBmb3IgYWNjZXNzLWJlZm9yZS1lbGFib3JhdGlvbiB1c2UgKHNlZSBFbGFi b3JhdGlvbl9FbnRpdHlfUmVxdWlyZWQKLS0gICAgICAgZmxhZykgb3IgaWYgZWl0aGVyIHRoZSBz cGVjIG9yIHRoZSBib2R5IGhhcyBlbGFib3JhdGlvbiBjb2RlLiBJZgotLSAgICAgICBuZWl0aGVy IG9mIHRoZXNlIHR3byBjb25kaXRpb25zIGhvbGRzLCB0aGVuIHRoZSBlbnRpdHkgaXMgc3RpbGwK LS0gICAgICAgYWxsb2NhdGVkIChzaW5jZSB3ZSBkb24ndCBrbm93IGVhcmx5IGVub3VnaCB3aGV0 aGVyIG9yIG5vdCB0aGVyZQotLSAgICAgICBpcyBlbGFib3JhdGlvbiBjb2RlKSwgYnV0IGlzIHNp bXBseSBub3QgdXNlZCBmb3IgYW55IHB1cnBvc2UuCgotLSAgICBFbGFib3JhdGlvbl9FbnRpdHlf UmVxdWlyZWQgKEZsYWcxNzQpCi0tICAgICAgIFByZXNlbnQgaW4gZ2VuZXJpY3MgYW5kIG5vbi1n ZW5lcmljIHBhY2thZ2UgYW5kIHN1YnByb2dyYW0KLS0gICAgICAgZW50aXRpZXMuIFNldCBvbmx5 IGlmIEVsYWJvcmF0aW9uX0VudGl0eSBpcyBub24tRW1wdHkgdG8gaW5kaWNhdGUKLS0gICAgICAg dGhhdCB0aGUgYm9vbGVhbiBpcyByZXF1aXJlZCB0byBiZSBzZXQgZXZlbiBpZiB0aGVyZSBpcyBu byBvdGhlcgotLSAgICAgICBlbGFib3JhdGlvbiBjb2RlLiBUaGlzIG9jY3VycyB3aGVuIHRoZSBF bGFib3JhdGlvbl9FbnRpdHkgZmxhZwotLSAgICAgICBpcyB1c2VkIGZvciByZXF1aXJlZCBhY2Nl c3MtYmVmb3JlLWVsYWJvcmF0aW9uIGNoZWNraW5nLiBJZiB0aGUKLS0gICAgICAgZmxhZyBpcyBv bmx5IGZvciBwcmV2ZW50aW5nIG11bHRpcGxlIGV4ZWN1dGlvbiBvZiB0aGUgZWxhYm9yYXRpb24K LS0gICAgICAgY29kZSwgdGhlbiBpZiB0aGVyZSBpcyBubyBvdGhlciBlbGFib3JhdGlvbiBjb2Rl LCBvYnZpb3VzbHkgdGhlcmUKLS0gICAgICAgaXMgbm8gbmVlZCB0byBzZXQgdGhlIGZsYWcuCgot LSAgICBFbmNsb3NpbmdfRHluYW1pY19TY29wZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgQXBwbGll c2EgdG8gYWxsIGVudGl0aWVzLiBSZXR1cm5zIHRoZSBjbG9zZXN0IGR5bmFtaWMgc2NvcGUgaW4g d2hpY2gKLS0gICAgICB0aGUgZW50aXR5IGlzIGRlY2xhcmVkIG9yIFN0YW5kYXJkX1N0YW5kYXJk IGZvciBsaWJyYXJ5LWxldmVsIGVudGl0aWVzCgotLSAgICBFbmNsb3NpbmdfU2NvcGUgKE5vZGUx OCkKLS0gICAgICAgUHJlc2VudCBpbiBsYWJlbHMuIERlbm90ZXMgdGhlIGlubmVybW9zdCBlbmNs b3NpbmcgY29uc3RydWN0IHRoYXQKLS0gICAgICAgY29udGFpbnMgdGhlIGxhYmVsLiBJZGVudGlj YWwgdG8gdGhlIHNjb3BlIG9mIHRoZSBsYWJlbCwgZXhjZXB0IGZvcgotLSAgICAgICBsYWJlbHMg ZGVjbGFyZWQgaW4gdGhlIGJvZHkgb2YgYW4gYWNjZXB0IHN0YXRlbWVudCwgaW4gd2hpY2ggY2Fz ZSB0aGUKLS0gICAgICAgZW50cnlfbmFtZSBpcyB0aGUgRW5jbG9zaW5nX1Njb3BlLiBVc2VkIHRv IHZhbGlkYXRlIGdvdG8ncyB3aXRoaW4KLS0gICAgICAgYWNjZXB0IHN0YXRlbWVudHMuCgotLSAg ICBFbnRyeV9BY2NlcHRlZCAoRmxhZzE1MikKLS0gICAgICAgUHJlc2VudCBpbiBFX0VudHJ5IGFu ZCBFX0VudHJ5X0ZhbWlseSBlbnRpdGllcy4gU2V0IGlmIHRoZXJlIGlzCi0tICAgICAgIGF0IGxl YXN0IG9uZSBhY2NlcHQgZm9yIHRoaXMgZW50cnkgaW4gdGhlIHRhc2sgYm9keS4gVXNlZCB0bwot LSAgICAgICBnZW5lcmF0ZSB3YXJuaW5ncyBmb3IgbWlzc2luZyBhY2NlcHRzLgoKLS0gICAgRW50 cnlfQm9kaWVzX0FycmF5IChOb2RlMTUpCi0tICAgICAgIFByZXNlbnQgaW4gcHJvdGVjdGVkIHR5 cGVzIGZvciB3aGljaCBIYXNfRW50cmllcyBpcyB0cnVlLgotLSAgICAgICBUaGlzIGlzIHRoZSBk ZWZpbmluZyBpZGVudGlmaWVyIGZvciB0aGUgYXJyYXkgb2YgZW50cnkgYm9keQotLSAgICAgICBh Y3Rpb24gcHJvY2VkdXJlcyBhbmQgYmFycmllciBmdW5jdGlvbnMgdXNlZCBieSB0aGUgcnVudGlt ZSB0bwotLSAgICAgICBleGVjdXRlIHRoZSB1c2VyIGNvZGUgYXNzb2NpYXRlZCB3aXRoIGVhY2gg ZW50cnkuCgotLSAgICBFbnRyeV9DYW5jZWxfUGFyYW1ldGVyIChOb2RlMjMpCi0tICAgICAgIFBy ZXNlbnQgaW4gYmxvY2tzLiBUaGlzIG9ubHkgYXBwbGllcyB0byBhIGJsb2NrIHN0YXRlbWVudCBm b3IKLS0gICAgICAgd2hpY2ggdGhlIElzX0FzeW5jaHJvbm91c19DYWxsX0Jsb2NrIGZsYWcgaXMg c2V0LiBJdAotLSAgICAgICBjb250YWlucyB0aGUgZGVmaW5pbmcgaWRlbnRpZmllciBvZiBhbiBv YmplY3QgdGhhdCBtdXN0IGJlCi0tICAgICAgIHBhc3NlZCB0byB0aGUgQ2FuY2VsX1Rhc2tfRW50 cnlfQ2FsbCBvciBDYW5jZWxfUHJvdGVjdGVkX0VudHJ5X0NhbGwKLS0gICAgICAgY2FsbCBpbiB0 aGUgY2xlYW51cCBoYW5kbGVyIGFkZGVkIHRvIHRoZSBibG9jayBieQotLSAgICAgICBFeHBfQ2g3 LkV4cGFuZF9DbGVhbnVwX0FjdGlvbnMuIFRoaXMgcGFyYW1ldGVyIGlzIGEgQm9vbGVhbgotLSAg ICAgICBvYmplY3QgZm9yIHRhc2sgZW50cnkgY2FsbHMgYW5kIGEgQ29tbXVuaWNhdGlvbnNfQmxv Y2sgb2JqZWN0Ci0tICAgICAgIGluIHRoZSBjYXNlIG9mIHByb3RlY3RlZCBlbnRyeSBjYWxscy4g SW4gYm90aCBjYXNlcyB0aGUgb2JqZWN0cwotLSAgICAgICBhcmUgZGVjbGFyZWQgaW4gb3V0ZXIg c2NvcGVzIHRvIHRoaXMgYmxvY2suCgotLSAgICBFbnRyeV9Db21wb25lbnQgKE5vZGUxMSkKLS0g ICAgICAgUHJlc2VudCBpbiBmb3JtYWwgcGFyYW1ldGVycyAoaW4sIGluIG91dCBhbmQgb3V0IHBh cmFtZXRlcnMpLiBVc2VkCi0tICAgICAgIG9ubHkgZm9yIGZvcm1hbHMgb2YgZW50cmllcy4gUmVm ZXJlbmNlcyB0aGUgY29ycmVzcG9uZGluZyBjb21wb25lbnQKLS0gICAgICAgb2YgdGhlIGVudHJ5 IHBhcmFtZXRlciByZWNvcmQgZm9yIHRoZSBlbnRyeS4KCi0tICAgIEVudHJ5X0Zvcm1hbCAoTm9k ZTE2KQotLSAgICAgICBQcmVzZW50IGluIGNvbXBvbmVudHMgb2YgdGhlIHJlY29yZCBidWlsdCB0 byBjb3JyZXNwb25kIHRvIGVudHJ5Ci0tICAgICAgIHBhcmFtZXRlcnMuIFRoaXMgZmllbGQgcG9p bnRzIGZyb20gdGhlIGNvbXBvbmVudCB0byB0aGUgZm9ybWFsLiBJdAotLSAgICAgICBpcyB0aGUg YmFjayBwb2ludGVyIGNvcnJlc3BvbmRpbmcgdG8gRW50cnlfQ29tcG9uZW50LgoKLS0gICAgRW50 cnlfSW5kZXhfQ29uc3RhbnQgKE5vZGUxOCkKLS0gICAgICAgUHJlc2VudCBpbiBhbiBlbnRyeSBp bmRleCBwYXJhbWV0ZXIuIFRoaXMgaXMgYW4gaWRlbnRpZmllciB0aGF0Ci0tICAgICAgIGV2ZW50 dWFsbHkgYmVjb21lcyB0aGUgbmFtZSBvZiBhIGNvbnN0YW50IHJlcHJlc2VudGluZyB0aGUgaW5k ZXgKLS0gICAgICAgb2YgdGhlIGVudHJ5IGZhbWlseSBtZW1iZXIgd2hvc2UgZW50cnkgYm9keSBp cyBiZWluZyBleGVjdXRlZC4gVXNlZAotLSAgICAgICB0byBleHBhbmQgcmVmZXJlbmNlcyB0byB0 aGUgZW50cnkgaW5kZXggc3BlY2lmaWNhdGlvbiBpZGVudGlmaWVyLgoKLS0gICAgRW50cnlfSW5k ZXhfVHlwZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gYW4gZW50cnkgZmFtaWx5 LiBEZW5vdGVzIEV0eXBlIG9mIHRoZSBzdWJ0eXBlIGluZGljYXRpb24KLS0gICAgICAgaW4gdGhl IGVudHJ5IGRlY2xhcmF0aW9uLiBVc2VkIHRvIHJlc29sdmUgdGhlIGluZGV4IGV4cHJlc3Npb24g aW4gYW4KLS0gICAgICAgYWNjZXB0IHN0YXRlbWVudCBmb3IgYSBtZW1iZXIgb2YgdGhlIGZhbWls eSwgYW5kIGluIHRoZSBwcmVmaXggb2YKLS0gICAgICAgJ0NPVU5UIHdoZW4gaXQgYXBwbGllcyB0 byBhIGZhbWlseSBtZW1iZXIuCgotLSAgICBFbnRyeV9QYXJhbWV0ZXJzX1R5cGUgKE5vZGUxNSkK LS0gICAgICAgUHJlc2VudCBpbiBlbnRyaWVzLiBQb2ludHMgdG8gdGhlIGFjY2Vzcy10by1yZWNv cmQgdHlwZSB0aGF0IGlzCi0tICAgICAgIGNvbnN0cnVjdGVkIGJ5IHRoZSBleHBhbmRlciB0byBo b2xkIGEgcmVmZXJlbmNlIHRvIHRoZSBwYXJhbWV0ZXIKLS0gICAgICAgdmFsdWVzLiBUaGlzIHJl ZmVyZW5jZSBpcyBtYW5pcHVsYXRlZCAoYXMgYW4gYWRkcmVzcykgYnkgdGhlCi0tICAgICAgIHRh c2tpbmcgcnVudGltZS4gVGhlIGRlc2lnbmF0ZWQgcmVjb3JkIHJlcHJlc2VudHMgYSBwYWNrYWdp bmcKLS0gICAgICAgdXAgb2YgdGhlIGVudHJ5IHBhcmFtZXRlcnMgKHNlZSBFeHBfQ2g5LkV4cGFu ZF9OX0VudHJ5X0RlY2xhcmF0aW9uCi0tICAgICAgIGZvciBmdXJ0aGVyIGRldGFpbHMpLiBFbnRy eV9QYXJhbWV0ZXJzX1R5cGUgaXMgRW1wdHkgaWYgdGhlIGVudHJ5Ci0tICAgICAgIGhhcyBubyBw YXJhbWV0ZXJzLgoKLS0gICAgRW51bWVyYXRpb25fUG9zIChVaW50MTEpCi0tICAgICAgIFByZXNl bnQgaW4gZW51bWVyYXRpb24gbGl0ZXJhbHMuIENvbnRhaW5zIHRoZSBwb3NpdGlvbiBudW1iZXIK LS0gICAgICAgY29ycmVzcG9uZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlIGVudW1lcmF0aW9uIGxp dGVyYWwuCgotLSAgICBFbnVtZXJhdGlvbl9SZXAgKFVpbnQxMikKLS0gICAgICAgUHJlc2VudCBp biBlbnVtZXJhdGlvbiBsaXRlcmFscy4gQ29udGFpbnMgdGhlIHJlcHJlc2VudGF0aW9uIHRoYXQK LS0gICAgICAgY29ycmVzcG9uZHMgdG8gdGhlIHZhbHVlIG9mIHRoZSBlbnVtZXJhdGlvbiBsaXRl cmFsLiBOb3RlIHRoYXQKLS0gICAgICAgdGhpcyBpcyBub3JtYWxseSB0aGUgc2FtZSBhcyBFbnVt ZXJhdGlvbl9Qb3MgZXhjZXB0IGluIHRoZSBwcmVzZW5jZQotLSAgICAgICBvZiByZXByZXNlbnRh dGlvbiBjbGF1c2VzLCB3aGVyZSBQb3Mgd2lsbCBzdGlsbCByZXByZXNlbnQgdGhlCi0tICAgICAg IHBvc2l0aW9uIG9mIHRoZSBsaXRlcmFsIHdpdGhpbiB0aGUgdHlwZSBhbmQgUmVwIHdpbGwgaGF2 ZSBiZSB0aGUKLS0gICAgICAgdmFsdWUgZ2l2ZW4gaW4gdGhlIHJlcHJlc2VudGF0aW9uIGNsYXVz ZS4KCi0tICAgIEVudW1lcmF0aW9uX1JlcF9FeHByIChOb2RlMjIpCi0tICAgICAgIFByZXNlbnQg aW4gZW51bWVyYXRpb24gbGl0ZXJhbHMuIFBvaW50cyB0byB0aGUgZXhwcmVzc2lvbiBpbiBhbgot LSAgICAgICBhc3NvY2lhdGVkIGVudW1lcmF0aW9uIHJlcCBjbGF1c2UgdGhhdCBwcm92aWRlcyB0 aGUgcmVwcmVzZW50YXRpb24KLS0gICAgICAgdmFsdWUgZm9yIHRoaXMgbGl0ZXJhbC4gRW1wdHkg aWYgbm8gZW51bWVyYXRpb24gcmVwIGNsYXVzZSBmb3IgdGhpcwotLSAgICAgICBsaXRlcmFsIChv ciBpZiByZXAgY2xhdXNlIGRvZXMgbm90IGhhdmUgYW4gZW50cnkgZm9yIHRoaXMgbGl0ZXJhbCwK LS0gICAgICAgYW4gZXJyb3Igc2l0dWF0aW9uKS4gVGhpcyBpcyBhbHNvIHVzZWQgdG8gY2F0Y2gg ZHVwbGljYXRlIGVudHJpZXMKLS0gICAgICAgZm9yIHRoZSBzYW1lIGxpdGVyYWwuCgotLSAgICBF bnVtX1Bvc19Ub19SZXAgKE5vZGUyMykKLS0gICAgICAgUHJlc2VudCBpbiBlbnVtZXJhdGlvbiB0 eXBlcyAoYnV0IG5vdCBlbnVtZXJhdGlvbiBzdWJ0eXBlcykuIFNldCB0bwotLSAgICAgICBFbXB0 eSB1bmxlc3MgdGhlIGVudW1lcmF0aW9uIHR5cGUgaGFzIGEgbm9uLXN0YW5kYXJkIHJlcHJlc2Vu dGF0aW9uCi0tICAgICAgIChpLmUuIGF0IGxlYXN0IG9uZSBsaXRlcmFsIGhhcyBhIHJlcHJlc2Vu dGF0aW9uIHZhbHVlIGRpZmZlcmVudCBmcm9tCi0tICAgICAgIGl0cyBwb3MgdmFsdWUpLiBJbiB0 aGlzIGNhc2UsIEVudW1fUG9zX1RvX1JlcCBpcyB0aGUgZW50aXR5IGZvciBhbgotLSAgICAgICBh cnJheSBjb25zdHJ1Y3RlZCB3aGVuIHRoZSB0eXBlIGlzIGZyb3plbiB0aGF0IG1hcHMgUG9zIHZh bHVlcyB0bwotLSAgICAgICBjb3JyZXNwb25kaW5nIFJlcCB2YWx1ZXMuIFRoZSBpbmRleCB0eXBl IG9mIHRoaXMgYXJyYXkgaXMgTmF0dXJhbCwKLS0gICAgICAgYW5kIHRoZSBjb21wb25lbnQgdHlw ZSBpcyBhIHN1aXRhYmxlIGludGVnZXIgdHlwZSB0aGF0IGhvbGRzIHRoZQotLSAgICAgICBmdWxs IHJhbmdlIG9mIHJlcHJlc2VudGF0aW9uIHZhbHVlcy4KCi0tICAgIEVxdWl2YWxlbnRfVHlwZSAo Tm9kZTE4KQotLSAgICAgICBQcmVzZW50IGluIGNsYXNzIHdpZGUgdHlwZXMgYW5kIHN1YnR5cGVz LCBhY2Nlc3MgdG8gcHJvdGVjdGVkCi0tICAgICAgIHN1YnByb2dyYW0gdHlwZXMsIGFuZCBpbiBl eGNlcHRpb25fdHlwZXMuIEZvciBhIGNsYXNzd2lkZSB0eXBlLCBpdAotLSAgICAgICBpcyBhbHdh eXMgRW1wdHkuIEZvciBhIGNsYXNzIHdpZGUgc3VidHlwZSwgaXQgcG9pbnRzIHRvIGFuIGVudGl0 eQotLSAgICAgICBjcmVhdGVkIGJ5IHRoZSBleHBhbmRlciB3aGljaCBnaXZlcyBHaWdpIGFuIGVh c2lseSB1bmRlcnN0YW5kYWJsZQotLSAgICAgICBlcXVpdmFsZW50IG9mIHRoZSBjbGFzcyBzdWJ0 eXBlIHdpdGggYSBrbm93biBzaXplIChnaXZlbiBieSBhbgotLSAgICAgICBpbml0aWFsIHZhbHVl KS4gU2VlIEV4cF9VdGlsLkV4cGFuZF9DbGFzc19XaWRlX1N1YnR5cGUgZm9yIGZ1cnRoZXIKLS0g ICAgICAgZGV0YWlscy4gRm9yIEVfZXhjZXB0aW9uX3R5cGUsIHRoaXMgcG9pbnRzIHRvIHRoZSBy ZWNvcmQgY29udGFpbmluZwotLSAgICAgICB0aGUgZGF0YSBuZWNlc3NhcnkgdG8gcmVwcmVzZW50 IGV4Y2VwdGlvbnMgKGZvciBmdXJ0aGVyIGRldGFpbHMsIHNlZQotLSAgICAgICBTeXN0ZW0uU3Rh bmRhcmRfTGlicmFyeS4gRm9yIGFjY2Vzc190b19wcm90ZWN0ZWQgc3VicHJvZ3JhbXMsIGl0Ci0t ICAgICAgIGRlbm90ZXMgYSByZWNvcmQgdGhhdCBob2xkcyBwb2ludGVycyB0byB0aGUgb3BlcmF0 aW9uIGFuZCB0byB0aGUKLS0gICAgICAgcHJvdGVjdGVkIG9iamVjdC4gRm9yIHJlbW90ZSBBY2Nl c3NfVG9fU3VicHJvZ3JhbSB0eXBlcywgaXQgZGVub3RlcwotLSAgICAgICB0aGUgcmVjb3JkIHRo YXQgaXMgdGhlIGZhdCBwb2ludGVyIHJlcHJlc2VudGF0aW9uIG9mIGFuIFJBU1QuCgotLSAgICBF c2l6ZSAoVWludDEyKQotLSAgICAgICBQcmVzZW50IGluIGFsbCB0eXBlcyBhbmQgc3VidHlwZXMs IGFuIGFsc28gZm9yIGNvbXBvbmVudHMsIGNvbnN0YW50cywKLS0gICAgICAgYW5kIHZhcmlhYmxl cy4gQ29udGFpbnMgdGhlIE9iamVjdF9TaXplIG9mIHRoZSB0eXBlIG9yIG9mIHRoZSBvYmplY3Qu Ci0tICAgICAgIEEgdmFsdWUgb2YgemVybyBpbmRpY2F0ZXMgdGhhdCB0aGUgdmFsdWUgaXMgbm90 IHlldCBrbm93bi4KLS0KLS0gICAgICAgRm9yIHRoZSBjYXNlIG9mIGNvbXBvbmVudHMgd2hlcmUg YSBjb21wb25lbnQgY2xhdXNlIGlzIHByZXNlbnQsIHRoZQotLSAgICAgICB2YWx1ZSBpcyB0aGUg dmFsdWUgZnJvbSB0aGUgY29tcG9uZW50IGNsYXVzZSwgd2hpY2ggbXVzdCBiZSBub24tCi0tICAg ICAgIG5lZ2F0aXZlIChidXQgbWF5IGJlIHplcm8sIHdoaWNoIGlzIGFjY2VwdGFibGUgZm9yIHRo ZSBjYXNlIG9mCi0tICAgICAgIGEgdHlwZSB3aXRoIG9ubHkgb25lIHBvc3NpYmxlIHZhbHVlKS4g SXQgaXMgYWxzbyBwb3NzaWJsZSBmb3IgRXNpemUKLS0gICAgICAgb2YgYSBjb21wb25lbnQgdG8g YmUgc2V0IHdpdGhvdXQgYSBjb21wb25lbnQgY2xhdXNlIHByZXNlbnQsIHdoaWNoCi0tICAgICAg IG1lYW5zIHRoYXQgdGhlIGNvbXBvbmVudCBzaXplIGlzIHNwZWNpZmllZCwgYnV0IG5vdCB0aGUg cG9zaXRpb24uCi0tICAgICAgIFNlZSBhbHNvIFJNX1NpemUgYW5kIHRoZSBzZWN0aW9uIG9uICJI YW5kbGluZyBvZiBUeXBlJ1NpemUgVmFsdWVzIi4KLS0gICAgICAgRHVyaW5nIGdpZ2kgcHJvY2Vz c2luZywgdGhlIHZhbHVlIGlzIGJhY2sgYW5ub3RhdGVkIGZvciBhbGwgemVybwotLSAgICAgICB2 YWx1ZXMsIHNvIHRoYXQgYWZ0ZXIgdGhlIGNhbGwgdG8gZ2lnaSwgdGhlIHZhbHVlIGlzIHByb3Bl cmx5IHNldC4KCi0tICAgIEV0eXBlIChOb2RlNSkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50 aXRpZXMuIFJlcHJlc2VudHMgdGhlIHR5cGUgb2YgdGhlIGVudGl0eSwgd2hpY2gKLS0gICAgICAg aXMgaXRzZWxmIGFub3RoZXIgZW50aXR5LiBGb3IgYSB0eXBlIGVudGl0eSwgcG9pbnRzIHRvIHRo ZSBwYXJlbnQKLS0gICAgICAgdHlwZSBmb3IgYSBkZXJpdmVkIHR5cGUsIG9yIGlmIHRoZSB0eXBl IGlzIG5vdCBkZXJpdmVkLCBwb2ludHMgdG8KLS0gICAgICAgaXRzZWxmLiBGb3IgYSBzdWJ0eXBl IGVudGl0eSwgRXR5cGUgcG9pbnRzIHRvIHRoZSBiYXNlIHR5cGUuCgotLSAgICBFeGNlcHRpb25f Q29kZSAoVWludDIyKQotLSAgICAgICBQcmVzZW50IGluIGV4Y2VwdGlvbiBlbnRpdGl0ZXMuIFNl dCB0byB6ZXJvIHVubGVzcyBlaXRoZXIgYW4KLS0gICAgICAgSW1wb3J0X0V4Y2VwdGlvbiBvciBF eHBvcnRfRXhjZXB0aW9uIHByYWdtYSBhcHBsaWVzIHRvIHRoZQotLSAgICAgICBwcmFnbWEgYW5k IHNwZWNpZmllcyBhIENvZGUgdmFsdWUuIFNlZSBkZXNjcmlwdGlvbiBvZiB0aGVzZQotLSAgICAg ICBwcmFnbWFzIGZvciBkZXRhaWxzLiBOb3RlIHRoYXQgdGhpcyBmaWVsZCBpcyByZWxldmFudCBv bmx5IGlmCi0tICAgICAgIElzX1ZNU19FeGNlcHRpb24gaXMgc2V0LgoKLS0gICAgRXh0cmFfRm9y bWFsIChOb2RlMTUpCi0tICAgICAgIFByZXNlbnQgaW4gZm9ybWFsIHBhcmFtZXRlcnMgaW4gdGhl IG5vbi1nZW5lcmljIGNhc2UuIENlcnRhaW4KLS0gICAgICAgcGFyYW1ldGVycyByZXF1aXJlIGV4 dHJhIGltcGxpY2l0IGluZm9ybWF0aW9uIHRvIGJlIHBhc3NlZAotLSAgICAgICAoZS5nLiB0aGUg ZmxhZyBpbmRpY2F0aW5nIGlmIGFuIHVuY29uc3RyYWluZWQgdmFyaWFudCByZWNvcmQKLS0gICAg ICAgYXJndW1lbnQgaXMgY29uc3RyYWluZWQsIGFuZCB0aGUgYWNjZXNzaWJpbGl0eSBsZXZlbCBm b3IKLS0gICAgICAgYWNjZXNzIHBhcmFtZXRlcnMuIFNlZSBkZXNjcmlwdGlvbiBvZiBFeHRyYV9D b25zdHJhaW5lZCwKLS0gICAgICAgRXh0cmFfQWNjZXNzaWJpbGl0eSBmaWVsZHMgZm9yIGZ1cnRo ZXIgZGV0YWlscy4gRXh0cmEgZm9ybWFsCi0tICAgICAgIHBhcmFtZXRlcnMgYXJlIGNvbnN0cnVj dGVkIHRvIHJlcHJlc2VudCB0aGVzZSB2YWx1ZXMsIGFuZAotLSAgICAgICBjaGFpbmVkIHRvIHRo ZSBlbmQgb2YgdGhlIGxpc3Qgb2YgZm9ybWFscyB1c2luZyB0aGUKLS0gICAgICAgRXh0cmFfRm9y bWFsIGZpZWxkIChpLmUuIHRoZSBFeHRyYV9Gb3JtYWwgZmllbGQgb2YgdGhlIGxhc3QKLS0gICAg ICAgInJlYWwiIGZvcm1hbCBwb2ludHMgdG8gdGhlIGZpcnN0IGV4dHJhIGZvcm1hbCwgYW5kIHRo ZQotLSAgICAgICBFeHRyYV9Gb3JtYWwgZmllbGQgb2YgZWFjaCBleHRyYSBmb3JtYWwgcG9pbnRz IHRvIHRoZSBuZXh0Ci0tICAgICAgIG9uZSwgd2l0aCBFbXB0eSBpbmRpY2F0aW5nIHRoZSBlbmQg b2YgdGhlIGxpc3Qgb2YgZXh0cmEKLS0gICAgICAgZm9ybWFscy4KCi0tICAgIEV4dHJhX0FjY2Vz c2liaWxpdHkgKE5vZGUxMykKLS0gICAgICAgUHJlc2VudCBpbiBmb3JtYWwgcGFyYW1ldGVycyBp biB0aGUgbm9uLWdlbmVyaWMgY2FzZSBpZgotLSAgICAgICBleHBhbnNpb24gaXMgYWN0aXZlLiBO b3JtYWxseSBFbXB0eSwgYnV0IGlmIGEgcGFyYW1ldGVyIGlzCi0tICAgICAgIG9uZSBmb3Igd2hp Y2ggYSBkeW5hbWljIGFjY2Vzc2liaWxpdHkgY2hlY2sgaXMgcmVxdWlyZWQsIHRoZW4KLS0gICAg ICAgYW4gZXh0cmEgZm9ybWFsIG9mIHR5cGUgTmF0dXJhbCBpcyBjcmVhdGVkIChzZWUgZGVzY3Jp cHRpb24KLS0gICAgICAgb2YgZmllbGQgRXh0cmFfRm9ybWFsKSwgYW5kIHRoZSBFeHRyYV9BY2Nl c3NpYmlsaXR5IGZpZWxkIG9mCi0tICAgICAgIHRoZSBmb3JtYWwgcGFyYW1ldGVyIHBvaW50cyB0 byB0aGUgZW50aXR5IGZvciB0aGlzIGV4dHJhCi0tICAgICAgIGZvcm1hbC4gQWxzbyBwcmVzZW50 IGluIHZhcmlhYmxlcyB3aGVuIGNvbXBpbGluZyByZWNlaXZpbmcKLS0gICAgICAgc3R1YnMuIElu IHRoaXMgY2FzZSwgYSBub24gRW1wdHkgdmFsdWUgbWVhbnMgdGhhdCB0aGlzCi0tICAgICAgIHZh cmlhYmxlJ3MgYWNjZXNzaWJpbGl0eSBkZXB0aCBoYXMgYmVlbiB0cmFuc21pdHRlZCBieSB0aGUK LS0gICAgICAgY2FsbGVyIGFuZCBtdXN0IGJlIHJldHJpZXZlZCB0aHJvdWdoIHRoZSBlbnRpdHkg ZGVzaWduZWQgYnkKLS0gICAgICAgdGhpcyBmaWVsZCBpbnN0ZWFkIG9mIGJlaW5nIGNvbXB1dGVk LgoKLS0gICAgRXh0cmFfQ29uc3RyYWluZWQgKE5vZGUyMykKLS0gICAgICAgUHJlc2VudCBpbiBm b3JtYWwgcGFyYW1ldGVycyBpbiB0aGUgbm9uLWdlbmVyaWMgY2FzZSBpZgotLSAgICAgICBleHBh bnNpb24gaXMgYWN0aXZlLiBOb3JtYWxseSBFbXB0eSwgYnV0IGlmIGEgcGFyYW1ldGVyIGlzCi0t ICAgICAgIG9uZSBmb3Igd2hpY2ggYSBkeW5hbWljIGluZGljYXRpb24gb2YgaXRzIGNvbnN0cmFp bmVkIHN0YXR1cwotLSAgICAgICBpcyByZXF1aXJlZCwgdGhlbiBhbiBleHRyYSBmb3JtYWwgb2Yg dHlwZSBCb29sZWFuIGlzIGNyZWF0ZWQKLS0gICAgICAgKHNlZSBkZXNjcmlwdGlvbiBvZiBmaWVs ZCBFeHRyYV9Gb3JtYWwpLCBhbmQgdGhlCi0tICAgICAgIEV4dHJhX0NvbnN0cmFpbmVkIGZpZWxk IG9mIHRoZSBmb3JtYWwgcGFyYW1ldGVyIHBvaW50cyB0byB0aGUKLS0gICAgICAgZW50aXR5IGZv ciB0aGlzIGV4dHJhIGZvcm1hbC4gQWxzbyBwcmVzZW50IGluIHZhcmlhYmxlcyB3aGVuCi0tICAg ICAgIGNvbXBpbGluZyByZWNlaXZpbmcgc3R1YnMuIEluIHRoaXMgY2FzZSwgYSBub24gZW1wdHkg dmFsdWUKLS0gICAgICAgbWVhbnMgdGhhdCB0aGlzIHZhcmlhYmxlJ3MgY29uc3RyYWluZWQgc3Rh dHVzIGhhcyBiZWVuCi0tICAgICAgIHRyYW5zbWl0dGVkIGJ5IHRoZSBjYWxsZXIgYW5kIG11c3Qg YmUgcmV0cmlldmVkIHRocm91Z2ggdGhlCi0tICAgICAgIGVudGl0eSBkZXNpZ25lZCBieSB0aGlz IGZpZWxkIGluc3RlYWQgb2YgYmVpbmcgY29tcHV0ZWQuCgotLSAgICBGaW5hbGl6YXRpb25fQ2hh aW5fRW50aXR5IChOb2RlMTkpCi0tICAgICAgIFByZXNlbnQgaW4gc2NvcGVzIHdoaWNoIGNhbiBo YXZlIGZpbmFsaXphYmxlIGVudGl0aWVzIChibG9ja3MsCi0tICAgICAgIGZ1bmN0aW9ucywgcHJv Y2VkdXJlcywgdGFza3MsIGVudHJpZXMpLiBXaGVuIHRoaXMgZmllbGQgaXMgZW1wdHkgaXQKLS0g ICAgICAgbWVhbnMgdGhhdCB0aGVyZSBhcmUgbm8gZmluYWxpemF0aW9uIGFjdGlvbnMgdG8gcGVy Zm9ybSBvbiBleGl0IG9mIHRoZQotLSAgICAgICBzY29wZS4gV2hlbiB0aGlzIGZpZWxkIGNvbnRh aW5zICdFcnJvcicsIGl0IG1lYW5zIHRoYXQgbm8KLS0gICAgICAgZmluYWxpemF0aW9uIGFjdGlv bnMgc2hvdWxkIGhhcHBlbiBhdCB0aGlzIGxldmVsIGFuZCB0aGUKLS0gICAgICAgZmluYWxpemF0 aW9uIGNoYWluIG9mIGEgcGFyZW50IHNjb3BlIHNoYWxsIGJlIHVzZWQgKD8/PyB0aGlzIGlzCi0t ICAgICAgIGFuIGltcHJvcGVyIHVzZSBvZiAnRXJyb3InIGFuZCBzaG91bGQgYmUgY2hhbmdlZCku IG90aGVyd2lzZSBpdAotLSAgICAgICBjb250YWlucyBhbiBlbnRpdHkgb2YgdHlwZSBGaW5hbGl6 YWJsZV9QdHIgdGhhdCBpcyB0aGUgaGVhZCBvZiB0aGUKLS0gICAgICAgbGlzdCBvZiBvYmplY3Rz IHRvIGZpbmFsaXplIG9uIGV4aXQuIFNlZSAiRmluYWxpemF0aW9uIE1hbmFnZW1lbnQiCi0tICAg ICAgIHNlY3Rpb24gaW4gZXhwX2NoNy5hZGIgZm9yIG1vcmUgZGV0YWlscy4KCi0tICAgIEZpbmFs aXplX1N0b3JhZ2VfT25seSAoRmxhZzE1OCkgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVz ZW50IGluIGFsbCB0eXBlcy4gU2V0IG9uIGRpcmVjdCBjb250cm9sbGVkIHR5cGVzIHRvIHdoaWNo IGEKLS0gICAgICAgdmFsaWQgRmluYWxpemVfU3RvcmFnZV9Pbmx5IHByYWdtYSBhcHBsaWVzLiBU aGlzIGZsYWcgaXMgYWxzbyBzZXQgb24KLS0gICAgICAgY29tcG9zaXRlIHR5cGVzIHdoZW4gdGhl eSBoYXZlIGF0IGxlYXN0IG9uZSBjb250cm9sbGVkIGNvbXBvbmVudCBhbmQKLS0gICAgICAgYWxs IHRoZWlyIGNvbnRyb2xsZWQgY29tcG9uZW50cyBhcmUgRmluYWxpemVfU3RvcmFnZV9Pbmx5LiBJ dCBpcyBhbHNvCi0tICAgICAgIGluaGVyaXRlZCBieSB0eXBlIGRlcml2YXRpb24gZXhjZXB0IGZv ciBkaXJlY3QgY29udHJvbGxlZCB0eXBlcyB3aGVyZQotLSAgICAgICB0aGUgRmluYWxpemVfU3Rv cmFnZV9Pbmx5IHByYWdtYSBpcyByZXF1aXJlZCBhdCBlYWNoIGxldmVsIG9mCi0tICAgICAgIGRl cml2YXRpb24uCgotLSAgICBGaXJzdF9Db21wb25lbnQgKHN5bnRoZXNpemVkKQotLSAgICAgICBB cHBsaWVzIHRvIHJlY29yZCB0eXBlcy4gUmV0dXJucyB0aGUgZmlyc3QgY29tcG9uZW50IGJ5IGZv bGxvd2luZwotLSAgICAgICB0aGUgY2hhaW4gb2YgZGVjbGFyZWQgZW50aXRpZXMgZm9yIHRoZSBy ZWNvcmQgdW50aWwgYSBjb21wb25lbnQKLS0gICAgICAgaXMgZm91bmQgKG9uZSB3aXRoIGFuIEVr aW5kIG9mIEVfQ29tcG9uZW50KS4gVGhlIGRpc2NyaW1pbmFudHMgYXJlCi0tICAgICAgIHNraXBw ZWQuIElmIHRoZSByZWNvcmQgaXMgbnVsbCwgdGhlbiBFbXB0eSBpcyByZXR1cm5lZC4KCi0tICAg IEZpcnN0X0Rpc2NyaW1pbmFudCAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gdHlw ZXMgd2l0aCBkaXNjcmltaW5hbnRzLiBUaGUgZGlzY3JpbWluYW50cyBhcmUgdGhlCi0tICAgICAg IGZpcnN0IGVudGl0aWVzIGRlY2xhcmVkIGluIHRoZSB0eXBlLCBzbyBub3JtYWxseSB0aGlzIGlz IGVxdWl2YWxlbnQKLS0gICAgICAgdG8gRmlyc3RfRW50aXR5LiBUaGUgZXhjZXB0aW9uIGFyaXNl cyBmb3IgdGFnZ2VkIHR5cGVzLCB3aGVyZSB0aGUKLS0gICAgICAgdGFnIGl0c2VsZiBpcyBwcmVw ZW5kZWQgdG8gdGhlIGZyb250IG9mIHRoZSBlbnRpdHkgY2hhaW4sIHNvIHRoZQotLSAgICAgICBG aXJzdF9EaXNjcmltaW5hbnQgZnVuY3Rpb24gc3RlcHMgcGFzdCB0aGUgdGFnIGlmIGl0IGlzIHBy ZXNlbnQuCgotLSAgICBGaXJzdF9HaXJkZXJfRGlzY3JpbWluYW50IChzeW50aGVzaXplZCkKLS0g ICAgICAgQXBwbGllcyB0byB0eXBlcyB3aXRoIGRpc2NyaW1pbmFudHMuIEZvciB0YWdnZWQgdHlw ZXMsIGFuZCB1bnRhZ2dlZAotLSAgICAgICB0eXBlcyB3aGljaCBhcmUgcm9vdCB0eXBlcyBvciBk ZXJpdmVkIHR5cGVzIGJ1dCB3aGljaCBkbyBub3QgcmVuYW1lCi0tICAgICAgIGRpc2NyaW1pbmFu dHMgaW4gdGhlaXIgcm9vdCB0eXBlLCB0aGlzIGlzIHRoZSBzYW1lIGFzCi0tICAgICAgIEZpcnN0 X0Rpc2NyaW1pbmFudC4KLS0KLS0gICAgICAgRm9yIGRlcml2ZWQgbm9uLXRhZ2dlZCB0eXBlcyB0 aGF0IHJlbmFtZSBkaXNjcmltaW5hbnRzIGluIHRoZSByb290Ci0tICAgICAgIHR5cGUgdGhpcyBp cyB0aGUgZmlyc3Qgb2YgdGhlIGRpc2NyaW1pbmFudHMgdGhhdCBvY2N1cnIgaW4gdGhlCi0tICAg ICAgIHJvb3QgdHlwZS4gVG8gYmUgcHJlY2lzZSwgaW4gdGhpcyBjYXNlIGdpcmRlciBkaXNjcmlt aW5hbnRzIGFyZQotLSAgICAgICBlbnRpdGllcyBhdHRhY2hlZCB0byB0aGUgZW50aXR5IGNoYWlu IG9mIHRoZSBkZXJpdmVkIHR5cGUgd2hpY2gKLS0gICAgICAgYXJlIGEgY29weSBvZiB0aGUgZGlz Y3JpbWluYW50cyBvZiB0aGUgcm9vdCB0eXBlLiBGdXJ0aGVybW9yZSB0aGVpcgotLSAgICAgICBJ c19Db21wbGV0ZWx5X0hpZGRlbiBmbGFnIGlzIHNldC4KLS0KLS0gICAgICAgRm9yIGRlcml2ZWQg dW50YWdnZWQgdHlwZXMsIGdpcmRlciBkaXNjcmltaW5hbnRzIGFyZSB0aGUgcmVhbAotLSAgICAg ICBkaXNjcmltaW5hbnRzIGZyb20gR2lnaSdzIHN0YW5kcG9pbnQsIGllIHRob3NlIHRoYXQgd2ls bCBiZSBzdG9yZWQgaW4KLS0gICAgICAgYWN0dWFsIG9iamVjdHMgb2YgdGhlIHR5cGUuCgotLSAg ICBGaXJzdF9FbnRpdHkgKE5vZGUxNykKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMg d2hpY2ggYWN0IGFzIHNjb3BlcyB0byB3aGljaCBhIGxpc3Qgb2YKLS0gICAgICAgYXNzb2NpYXRl ZCBlbnRpdGllcyBpcyBhdHRhY2hlZCAoYmxvY2tzLCBjbGFzcyBzdWJ0eXBlcyBhbmQgdHlwZXMs Ci0tICAgICAgIGVudHJpZXMsIGZ1bmN0aW9ucywgbG9vcHMsIHBhY2thZ2VzLCBwcm9jZWR1cmVz LCBwcm90ZWN0ZWQgb2JqZWN0cywKLS0gICAgICAgcmVjb3JkIHR5cGVzIGFuZCBzdWJ0eXBlcywg cHJpdmF0ZSB0eXBlcywgdGFzayB0eXBlcyBhbmQgc3VidHlwZXMpLgotLSAgICAgICBQb2ludHMg dG8gYSBsaXN0IG9mIGFzc29jaWF0ZWQgZW50aXRpZXMgdXNpbmcgdGhlIE5leHRfRW50aXR5IGZp ZWxkCi0tICAgICAgIGFzIGEgY2hhaW4gcG9pbnRlciB3aXRoIEVtcHR5IG1hcmtpbmcgdGhlIGVu ZCBvZiB0aGUgbGlzdC4KCi0tICAgIEZpcnN0X0Zvcm1hbCAoc3ludGhlc2l6ZWQpCi0tICAgICAg IEFwcGxpZXMgdG8gc3VicHJvZ3JhbXMgYW5kIHN1YnByb2dyYW0gdHlwZXMsIGFuZCBhbHNvIGlu IGVudHJpZXMKLS0gICAgICAgYW5kIGVudHJ5IGZhbWlsaWVzLiBSZXR1cm5zIGZpcnN0IGZvcm1h bCBvZiB0aGUgc3VicHJvZ3JhbSBvciBlbnRyeS4KLS0gICAgICAgVGhlIGZvcm1hbHMgYXJlIHRo ZSBmaXJzdCBlbnRpdGllcyBkZWNsYXJlZCBpbiBhIHN1YnByb2dyYW0gb3IgaW4KLS0gICAgICAg YSBzdWJwcm9ncmFtIHR5cGUgKHRoZSBkZXNpZ25hdGVkIHR5cGUgb2YgYW4gQWNjZXNzX1RvX1N1 YnByb2dyYW0KLS0gICAgICAgZGVmaW5pdGlvbikgb3IgaW4gYW4gZW50cnkuCgotLSAgICBGaXJz dF9JbmRleCAoTm9kZTE3KQotLSAgICAgICBQcmVzZW50IGluIGFycmF5IHR5cGVzIGFuZCBzdWJ0 eXBlcyBhbmQgaW4gc3RyaW5nIHR5cGVzIGFuZCBzdWJ0eXBlcy4KLS0gICAgICAgQnkgaW50cm9k dWNpbmcgaW1wbGljaXQgc3VidHlwZXMgZm9yIHRoZSBpbmRleCBjb25zdHJhaW50cywgd2UgaGF2 ZQotLSAgICAgICB0aGUgc2FtZSBzdHJ1Y3R1cmUgZm9yIGNvbnN0cmFpbmVkIGFuZCB1bmNvbnN0 cmFpbmVkIGFycmF5cywgc3VidHlwZQotLSAgICAgICBtYXJrcyBhbmQgZGlzY3JldGUgcmFuZ2Vz IGFyZSBib3RoIHJlcHJlc2VudGVkIGJ5IGEgc3VidHlwZS4gVGhpcwotLSAgICAgICBmdW5jdGlv biByZXR1cm5zIHRoZSB0cmVlIG5vZGUgY29ycmVzcG9uZGluZyB0byBhbiBvY2N1cnJlbmNlIG9m IHRoZQotLSAgICAgICBmaXJzdCBpbmRleCAoTk9UIHRoZSBlbnRpdHkgZm9yIHRoZSB0eXBlKS4g U3Vic2VxdWVudCBpbmRleGVzIGFyZQotLSAgICAgICBvYnRhaW5lZCB1c2luZyBOZXh0X0luZGV4 LiBOb3RlIHRoYXQgdGhpcyBmaWVsZCBpcyBwcmVzZW50IGZvciB0aGUKLS0gICAgICAgY2FzZSBv ZiBzdHJpbmcgbGl0ZXJhbCBzdWJ0eXBlcywgYnV0IGlzIGFsd2F5cyBFbXB0eS4KCi0tICAgIEZp cnN0X0xpdGVyYWwgKE5vZGUxNykKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW51bWVyYXRpb24g dHlwZXMsIGluY2x1ZGluZyBjaGFyYWN0ZXIgYW5kIGJvb2xlYW4KLS0gICAgICAgdHlwZXMuIFRo aXMgZmllbGQgcG9pbnRzIHRvIHRoZSBmaXJzdCBlbnVtZXJhdGlvbiBsaXRlcmFsIGVudGl0eQot LSAgICAgICBmb3IgdGhlIHR5cGUgKGkuZS4gaXQgaXMgc2V0IHRvIEZpcnN0IChMaXRlcmFscyAo TikpIHdoZXJlIE4gaXMKLS0gICAgICAgdGhlIGVudW1lcmF0aW9uIHR5cGUgZGVmaW5pdGlvbiBu b2RlLiBBIHNwZWNpYWwgY2FzZSBvY2N1cnMgd2l0aAotLSAgICAgICBzdGFuZGFyZCBjaGFyYWN0 ZXIgYW5kIHdpZGUgY2hhcmFjdGVyIHR5cGVzLCB3aGVyZSB0aGlzIGZpZWxkIGlzCi0tICAgICAg IEVtcHR5LCBzaW5jZSB0aGVyZSBhcmUgbm8gZW51bWVyYXRpb24gbGl0ZXJhbCBsaXN0cyBpbiB0 aGVzZSBjYXNlcy4KCi0tICAgIEZpcnN0X09wdGlvbmFsX1BhcmFtZXRlciAoTm9kZTE0KQotLSAg ICAgICBQcmVzZW50IGluIChub24tZ2VuZXJpYykgZnVuY3Rpb24gYW5kIHByb2NlZHVyZSBlbnRp dGllcy4gU2V0IHRvIGEKLS0gICAgICAgbm9uLW51bGwgdmFsdWUgb25seSBpZiBhIHByYWdtYSBJ bXBvcnRfRnVuY3Rpb24sIEltcG9ydF9Qcm9jZWR1cmUKLS0gICAgICAgb3IgSW1wb3J0X1ZhbHVl ZF9Qcm9jZWR1cmUgc3BlY2lmaWVzIGEgRmlyc3RfT3B0aW9uYWxfUGFyYW1ldGVyCi0tICAgICAg IGFyZ3VtZW50LCBpbiB3aGljaCBjYXNlIHRoaXMgZmllbGQgcG9pbnRzIHRvIHRoZSBwYXJhbWV0 ZXIgZW50aXR5Ci0tICAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHNwZWNpZmllZCBwYXJhbWV0 ZXIuCgotLSAgICBGaXJzdF9Qcml2YXRlX0VudGl0eSAoTm9kZTE2KQotLSAgICAgICBQcmVzZW50 IGluIGFsbCBlbnRpdGllcyBjb250YWluaW5nIHByaXZhdGUgcGFydHMgKHBhY2thZ2VzLAotLSAg ICAgICBwcm90ZWN0ZWQgdHlwZXMgYW5kIHN1YnR5cGVzLCB0YXNrIHR5cGVzIGFuZCBzdWJ0eXBl cykuIFRoZQotLSAgICAgICBlbnRpdGllcyBvbiB0aGUgZW50aXR5IGNoYWluIGFyZSBpbiBvcmRl ciBvZiBkZWNsYXJhdGlvbiwgc28gdGhlCi0tICAgICAgIGVudHJpZXMgZm9yIHByaXZhdGUgZW50 aXRpZXMgYXJlIGF0IHRoZSBlbmQgb2YgdGhlIGNoYWluLiBUaGlzCi0tICAgICAgIGZpZWxkIHBv aW50cyB0byB0aGUgZmlyc3QgZW50aXR5IGZvciB0aGUgcHJpdmF0ZSBwYXJ0LiBJdCBpcwotLSAg ICAgICBFbXB0eSBpZiB0aGVyZSBhcmUgbm8gZW50aXRpZXMgZGVjbGFyZWQgaW4gdGhlIHByaXZh dGUgcGFydCBvcgotLSAgICAgICBpZiB0aGVyZSBpcyBubyBwcml2YXRlIHBhcnQuCgotLSAgICBG aXJzdF9SZXBfSXRlbSAoTm9kZTYpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBJ ZiBub24tZW1wdHksIHBvaW50cyB0byBhIGxpbmtlZCBsaXN0IG9mCi0tICAgICAgIHJlcHJlc2Vu dGF0aW9uIHByYWdtYXMgbm9kZXMgYW5kIHJlcHJlc2VudGF0aW9uIGNsYXVzZSBub2RlcyB0aGF0 Ci0tICAgICAgIGFwcGx5IHRvIHRoZSBlbnRpdHksIGxpbmtlZCB1c2luZyBOZXh0X1JlcF9JdGVt LCB3aXRoIEVtcHR5IG1hcmtpbmcKLS0gICAgICAgdGhlIGVuZCBvZiB0aGUgbGlzdC4gSW4gdGhl IGNhc2Ugb2YgZGVyaXZlZCB0eXBlcyBhbmQgc3VidHlwZXMsIHRoZQotLSAgICAgICBuZXcgZW50 aXR5IGluaGVyaXRzIHRoZSBjaGFpbiBhdCB0aGUgcG9pbnQgb2YgZGVjbGFyYXRpb24uIFRoaXMK LS0gICAgICAgbWVhbnMgdGhhdCBpdCBpcyBwb3NzaWJsZSB0byBoYXZlIG11bHRpcGxlIGluc3Rh bmNlcyBvZiB0aGUgc2FtZQotLSAgICAgICBraW5kIG9mIHJlcCBpdGVtIG9uIHRoZSBjaGFpbiwg aW4gd2hpY2ggY2FzZSBpdCBpcyB0aGUgZmlyc3Qgb25lCi0tICAgICAgIHRoYXQgYXBwbGllcyB0 byB0aGUgZW50aXR5LgotLQotLSAgICAgICBGb3IgbW9zdCByZXByZXNlbnRhdGlvbiBpdGVtcywg dGhlIHJlcHJlc2VudGF0aW9uIGluZm9ybWF0aW9uIGlzCi0tICAgICAgIHJlZmxlY3RlZCBpbiBv dGhlciBmaWVsZHMgYW5kIGZsYWdzIGluIHRoZSBlbnRpdHkuIEZvciBleGFtcGxlIGlmCi0tICAg ICAgIGEgcmVjb3JkIHJlcHJlc2VudGF0aW9uIGNsYXVzZSBpcyBwcmVzZW50LCB0aGUgY29tcG9u ZW50IGVudGl0aWVzCi0tICAgICAgIHJlZmxlY3QgdGhlIHNwZWNpZmllZCBpbmZvcm1hdGlvbi4g SG93ZXZlciwgdGhlcmUgYXJlIHNvbWUgaXRlbXMKLS0gICAgICAgdGhhdCBhcmUgb25seSByZWZs ZWN0ZWQgaW4gdGhlIGNoYWluLiBUaGVzZSBpbmNsdWRlOgotLQotLSAgICAgICAgICBBbGlnbm1l bnQgYXR0cmlidXRlIGRlZmluaXRpb24gY2xhdXNlCi0tICAgICAgICAgIE1hY2hpbmVfQXR0cmli dXRlIHByYWdtYQotLSAgICAgICAgICBMaW5rX0FsaWFzIHByYWdtYQotLSAgICAgICAgICBMaW5r LVNlY3Rpb24gcHJhZ21hCi0tICAgICAgICAgIFdlYWtfRXh0ZXJuYWwgcHJhZ21hCi0tCi0tICAg ICAgIElmIGFueSBvZiB0aGVzZSBpdGVtcyBhcmUgcHJlc2VudCwgdGhlbiB0aGUgZmxhZyBIYXNf R2lnaV9SZXBfSXRlbQotLSAgICAgICBpcyBzZXQsIGluZGljYXRpbmcgdGhhdCBHaWdpIHNob3Vs ZCBzZWFyY2ggdGhlIGNoYWluLgotLQotLSAgICAgICBPdGhlciByZXByZXNlbnRhdGlvbiBpdGVt cyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNoYWluIHNvIHRoYXQgZXJyb3IKLS0gICAgICAgbWVzc2Fn ZXMgY2FuIGVhc2lseSBsb2NhdGUgdGhlIHJlbGV2YW50IG5vZGVzIGZvciBwb3N0aW5nIGVycm9y cy4KLS0gICAgICAgTm90ZSBpbiBwYXJ0aWN1bGFyIHRoYXQgc2l6ZSBjbGF1c2VzIGFyZSBwcmVz ZW50IG9ubHkgZm9yIHRoaXMKLS0gICAgICAgcHVycG9zZSwgYW5kIHNob3VsZCBvbmx5IGJlIGFj Y2Vzc2VkIGlmIEhhc19TaXplX0NsYXVzZSBpcyBzZXQuCgotLSAgICBGaXJzdF9TdWJ0eXBlIChz eW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgdHlwZXMgYW5kIHN1YnR5cGVzLiBG b3IgdHlwZXMsIHlpZWxkcyB0aGUgZmlyc3QKLS0gICAgICAgc3VidHlwZSBvZiB0aGUgdHlwZS4g Rm9yIHN1YnR5cGVzLCB5aWVsZHMgdGhlIGZpcnN0IHN1YnR5cGUgb2YKLS0gICAgICAgdGhlIGJh c2UgdHlwZSBvZiB0aGUgc3VidHlwZS4KCi0tICAgIEZyZWV6ZV9Ob2RlIChOb2RlNykKLS0gICAg ICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIElmIHRoZXJlIGlzIGFuIGFzc29jaWF0ZWQgZnJl ZXplIG5vZGUgZm9yCi0tICAgICAgIHRoZSBlbnRpdHksIHRoaXMgZmllbGQgcmVmZXJlbmNlcyB0 aGlzIGZyZWV6ZSBub2RlLiBJZiBubyBmcmVlemUKLS0gICAgICAgbm9kZSBpcyBhc3NvY2lhdGVk IHdpdGggdGhlIGVudGl0eSwgdGhlbiB0aGlzIGZpZWxkIGlzIEVtcHR5LiBTZWUKLS0gICAgICAg cGFja2FnZSBGcmVlemUgZm9yIGZ1cnRoZXIgZGV0YWlscy4KCi0tICAgIEZyb21fV2l0aF9UeXBl IChGbGFnMTU5KQotLSAgICAgICBQcmVzZW50IGluIHBhY2thZ2UgYW5kIHR5cGUgZW50aXRpZXMu IEluZGljYXRlcyB0aGF0IHRoZSBlbnRpdHkKLS0gICAgICAgYXBwZWFycyBpbiBhIFdpdGhfVHlw ZSBjbGF1c2UgaW4gdGhlIGNvbnRleHQgb2Ygc29tZSBvdGhlciB1bml0LAotLSAgICAgICBlaXRo ZXIgYXMgdGhlIHByZWZpeCAod2hpY2ggbXVzdCBiZSBhIHBhY2thZ2UpLCBvciBhcyBhIHR5cGUg bmFtZS4KLS0gICAgICAgVGhlIHBhY2thZ2UgY2FuIG9ubHkgYmUgdXNlZCB0byByZXRyaWV2ZSBz dWNoIGEgdHlwZSwgYW5kIHRoZSB0eXBlCi0tICAgICAgIGNhbiBiZSB1c2VkIG9ubHkgaW4gY29t cG9uZW50IGRlY2xhcmF0aW9ucyBhbmQgYWNjZXNzIGRlZmluaXRpb25zLgotLSAgICAgICBUaGUg V2l0aF9UeXBlIGNsYXVzZSBpcyB1c2VkIHRvIGNvbnN0cnVjdCBtdXR1YWxseSByZWN1cnNpdmUK LS0gICAgICAgdHlwZXMsIGkuZS4gcmVjb3JkIHR5cGVzIChKYXZhIGNsYXNzZXMpIHRoYXQgaG9s ZCBwb2ludGVycyB0byBlYWNoCi0tICAgICAgIG90aGVyLiBJZiBzdWNoIGEgdHlwZSBpcyBhbiBh Y2Nlc3MgdHlwZSwgaXQgaGFzIG5vIGV4cGxpY2l0IGZyZWV6ZQotLSAgICAgICBub2RlLCBzbyB0 aGF0IHRoZSBiYWNrLWVuZCBkb2VzIG5vdCBhdHRlbXB0IHRvIGVsYWJvcmF0ZSBpdC4KCi0tICAg IEZ1bGxfVmlldyAoTm9kZTExKQotLSAgICAgICBQcmVzZW50IGluIGFsbCB0eXBlIGFuZCBzdWJ0 eXBlIGVudGl0aWVzIGFuZCBpbiBkZWZlcnJlZCBjb25zdGFudHMuCi0tICAgICAgIFJlZmVyZW5j ZXMgdGhlIGVudGl0eSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZnVsbCB0eXBlIGRlY2xhcmF0aW9u LgotLSAgICAgICBGb3IgYWxsIHR5cGVzIG90aGVyIHRoYW4gcHJpdmF0ZSBhbmQgaW5jb21wbGV0 ZSB0eXBlcywgdGhpcyBmaWVsZAotLSAgICAgICBhbHdheXMgY29udGFpbnMgRW1wdHkuIFNlZSBh bHNvIFVuZGVybHlpbmdfVHlwZS4KCi0tICAgIEZ1bmN0aW9uX1JldHVybnNfV2l0aF9EU1AgKEZs YWcxNjkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHN1YnByb2dyYW0gZW50aXRpZXMsIGFuZCB0 eXBlIGVudGl0aWVzIGZvciBhY2Nlc3MKLS0gICAgICAgdG8gc3VicHJvZ3JhbSB2YWx1ZXMuIFNl dCBUcnVlIGlmIHRoZSBmdW5jdGlvbiAob3IgcmVmZXJlbmNlZAotLSAgICAgICBmdW5jdGlvbiBp biB0aGUgY2FzZSBvZiBhbiBhY2Nlc3MgdmFsdWUpIHJldHVybnMgd2l0aCB1c2luZyB0aGUKLS0g ICAgICAgRFNQIChkZXByZXNzZWQgc3RhY2sgcG9pbnRlcikgYXBwcm9hY2guIFRoaXMgY2FuIG9u bHkgYmUgc2V0Ci0tICAgICAgIFRydWUgaWYgVGFyZ3Bhcm0uRnVuY3Rpb25zX1JldHVybl9CeV9E U1BfT25fVGFyZ2V0IGlzIFRydWUgYW5kCi0tICAgICAgIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEg dmFsdWUgb2YgYSB0eXBlIHdob3NlIHNpemUgaXMgbm90IGtub3duCi0tICAgICAgIGF0IGNvbXBp bGUgdGltZS4KCi0tICAgIEdlbmVyaWNfUmVuYW1pbmdzIChFbGlzdDIzKQotLSAgICAgICBQcmVz ZW50IGluIHBhY2thZ2UgYW5kIHN1YnByb2dyYW0gaW5zdGFuY2VzLiBIb2xkcyBtYXBwaW5nIHRo YXQKLS0gICAgICAgYXNzb2NpYXRlcyBnZW5lcmljIHBhcmFtZXRlcnMgd2l0aCB0aGUgY29ycmVz cG9uZGluZyBpbnN0YW5jZXMsIGluCi0tICAgICAgIHRob3NlIGNhc2VzIHdoZXJlIHRoZSBpbnN0 YW5jZSBpcyBhbiBlbnRpdHkuCgotLSAgICBHaXJkZXJfQ29uc3RyYWludCAoRWxpc3QyMykKLS0g ICAgICAgUHJlc2VudCBpbiBlbnRpdGllcyB0aGF0IGNhbiBoYXZlIGRpc2NyaW1pbmFudHMgKGNv bmN1cnJlbnQgdHlwZXMKLS0gICAgICAgc3VidHlwZXMsIHJlY29yZCB0eXBlcyBhbmQgc3VidHlw ZXMsIHByaXZhdGUgdHlwZXMgYW5kIHN1YnR5cGVzLAotLSAgICAgICBsaW1pdGVkIHByaXZhdGUg dHlwZXMgYW5kIHN1YnR5cGVzIGFuZCBpbmNvbXBsZXRlIHR5cGVzKS4gUG9pbnRzCi0tICAgICAg IHRvIGFuIGVsZW1lbnQgbGlzdCBjb250YWluaW5nIHRoZSBleHByZXNzaW9ucyBmb3IgZWFjaCBv ZiB0aGUKLS0gICAgICAgZ2lyZGVyIGRpc2NyaW1pbmFudHMgZm9yIHRoZSByZWNvcmQgKHN1Yil0 eXBlLgoKLS0gICAgSGFuZGxlcl9SZWNvcmRzIChMaXN0MTApCi0tICAgICAgIFByZXNlbnQgaW4g c3VicHJvZ3JhbSBhbmQgcGFja2FnZSBlbnRpdGllcy4gUG9pbnRzIHRvIGEgbGlzdCBvZgotLSAg ICAgICBpZGVudGlmaWVycyByZWZlcmVuY2luZyB0aGUgaGFuZGxlciByZWNvcmQgZW50aXRpZXMg Zm9yIHRoZQotLSAgICAgICBjb3JyZXNwb25kaW5nIHVuaXQuCgotLSAgICBIYXNfQWxpYXNlZF9D b21wb25lbnRzIChGbGFnMTM1KSBbaW1wbGVtZW50YXRpb24gYmFzZSB0eXBlIG9ubHldCi0tICAg ICAgIFByZXNlbnQgaW4gYXJyYXkgdHlwZSBlbnRpdGllcy4gSW5kaWNhdGVzIHRoYXQgdGhlIGNv bXBvbmVudCB0eXBlCi0tICAgICAgIG9mIHRoZSBhcnJheSBpcyBhbGlhc2VkLgoKLS0gICAgSGFz X0FsaWdubWVudF9DbGF1c2UgKEZsYWc0NikKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgdHlwZSBl bnRpdGllcyBhbmQgb2JqZWN0cy4gSW5kaWNhdGVzIGlmIGFuIGFsaWdubWVudAotLSAgICAgICBj bGF1c2UgaGFzIGJlZW4gZ2l2ZW4gZm9yIHRoZSBlbnRpdHkuIElmIHNldCwgdGhlbiBBbGlnbm1l bnRfQ2xhdXNlCi0tICAgICAgIHJldHVybnMgdGhlIE5fQXR0cmlidXRlX0RlZmluaXRpb24gbm9k ZSBmb3IgdGhlIGFsaWdubWVudCBhdHRyaWJ1dGUKLS0gICAgICAgZGVmaW5pdGlvbiBjbGF1c2Uu IE5vdGUgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBmbGFnIHRvIGJlIEZhbHNlCi0tICAg ICAgIGV2ZW4gd2hlbiBBbGlnbm1lbnRfQ2xhdXNlIHJldHVybnMgbm9uX0VtcHR5ICh0aGlzIGhh cHBlbnMgaW4gdGhlIGNhc2UKLS0gICAgICAgb2YgZGVyaXZlZCB0eXBlIGRlY2xhcmF0aW9ucyku CgotLSAgICBIYXNfQWxsX0NhbGxzX1JlbW90ZSAoRmxhZzc5KQotLSAgICAgICBQcmVzZW50IGlu IGFsbCBsaWJyYXJ5IHVuaXQgZW50aXRpZXMuIFNldCB0cnVlIGlmIHRoZSBsaWJyYXJ5IHVuaXQK LS0gICAgICAgaGFzIGFuIEFsbF9DYWxsc19SZW1vdGUgcHJhZ21hLiBOb3RlIHRoYXQgc3VjaCBl bnRpdGllcyBtdXN0IGFsc28KLS0gICAgICAgYmUgUkNJIGVudGl0aWVzLCBzbyB0aGUgZmxhZyBJ c19SZW1vdGVfQ2FsbF9JbnRlcmZhY2Ugd2lsbCBhbHdheXMKLS0gICAgICAgYmUgc2V0IGlmIHRo aXMgZmxhZyBpcyBzZXQuCgotLSAgICBIYXNfQXRvbWljX0NvbXBvbmVudHMgKEZsYWc4NikgW2lt cGxlbWVudGF0aW9uIGJhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50IGluIGFsbCB0eXBl cyBhbmQgb2JqZWN0cy4gU2V0IG9ubHkgZm9yIGFuIGFycmF5IHR5cGUgb3IKLS0gICAgICAgYW4g YXJyYXkgb2JqZWN0IGlmIGEgdmFsaWQgcHJhZ21hIEF0b21pY19Db21wb25lbnRzIGFwcGxpZXMg dG8gdGhlCi0tICAgICAgIHR5cGUgb3Igb2JqZWN0LiBOb3RlIHRoYXQgaW4gdGhlIGNhc2Ugb2Yg YW4gb2JqZWN0LCB0aGlzIGZsYWcgaXMKLS0gICAgICAgb25seSBzZXQgb24gdGhlIG9iamVjdCBp ZiB0aGVyZSB3YXMgYW4gZXhwbGljaXQgcHJhZ21hIGZvciB0aGUKLS0gICAgICAgb2JqZWN0LiBJ biBvdGhlciB3b3JkcywgdGhlIHByb3BlciB0ZXN0IGZvciB3aGV0aGVyIGFuIG9iamVjdCBoYXMK LS0gICAgICAgYXRvbWljIGNvbXBvbmVudHMgaXMgdG8gc2VlIGlmIGVpdGhlciB0aGUgb2JqZWN0 IG9yIGl0cyBiYXNlIHR5cGUKLS0gICAgICAgaGFzIHRoaXMgZmxhZyBzZXQuIE5vdGUgdGhhdCBp biB0aGUgY2FzZSBvZiBhIHR5cGUsIHRoZSBwcmFnbWEgd2lsbAotLSAgICAgICBiZSBjaGFpbmVk IHRvIHRoZSByZXAgaXRlbSBjaGFpbiBvZiB0aGUgZmlyc3Qgc3VidHlwZSBpbiB0aGUgdXN1YWwK LS0gICAgICAgbWFubmVyLgoKLS0gICAgSGFzX0F0dGFjaF9IYW5kbGVyIChzeW50aGVzaXplZCkK LS0gICAgICAgQXBwbGllcyB0byByZWNvcmQgdHlwZXMgdGhhdCBhcmUgY29uc3RydWN0ZWQgYnkg dGhlIGV4cGFuZGVyIHRvCi0tICAgICAgIHJlcHJlc2VudCBwcm90ZWN0ZWQgdHlwZXMuIFJldHVy bnMgVHJ1ZSBpZiB0aGVyZSBpcyBhdCBsZWFzdCBvbmUKLS0gICAgICAgQXR0YWNoX0hhbmRsZXIg cHJhZ21hIGluIHRoZSBjb3JyZXNwb25kaW5nIHNwZWNpZmljYXRpb24uCgotLSAgICBIYXNfQmlh c2VkX1JlcHJlc2VudGF0aW9uIChGbGFnMTM5KQotLSAgICAgICBQcmVzZW50IGluIGRpc2NyZXRl IHR5cGVzICh3aGVyZSBpdCBhcHBsaWVzIHRvIHRoZSB0eXBlJ3NpemUgdmFsdWUpLAotLSAgICAg ICBhbmQgdG8gb2JqZWN0cyAoYm90aCBzdGFuZC1hbG9uZSBhbmQgY29tcG9uZW50cyksIHdoZXJl IGl0IGFwcGxpZXMgdG8KLS0gICAgICAgdGhlIHNpemUgb2YgdGhlIG9iamVjdCBmcm9tIGEgc2l6 ZSBvciByZWNvcmQgY29tcG9uZW50IGNsYXVzZS4gSW4KLS0gICAgICAgYWxsIGNhc2VzIGl0IGlu ZGljYXRlcyB0aGF0IHRoZSBzaXplIGluIHF1ZXN0aW9uIGlzIHNtYWxsZXIgdGhhbgotLSAgICAg ICB3b3VsZCBub3JtYWxseSBiZSByZXF1aXJlZCwgYnV0IHRoYXQgdGhlIHNpemUgcmVxdWlyZW1l bnQgY2FuIGJlCi0tICAgICAgIHNhdGlzZmllZCBieSB1c2luZyBhIGJpYXNlZCByZXByZXNlbnRh dGlvbiwgaW4gd2hpY2ggc3RvcmVkIHZhbHVlcwotLSAgICAgICBoYXZlIHRoZSBsb3cgYm91bmQg KEV4cHJfVmFsdWUgKFR5cGVfTG93X0JvdW5kIChUKSkgc3VidHJhY3RlZCB0bwotLSAgICAgICBy ZWR1Y2UgdGhlIHJlcXVpcmVkIHNpemUuIEZvciBleGFtcGxlLCBhIHR5cGUgd2l0aCBhIHJhbmdl IG9mIDEuLjIKLS0gICAgICAgdGFrZXMgb25lIGJpdCwgdXNpbmcgMCB0byByZXByZXNlbnQgMSBh bmQgMSB0byByZXByZXNlbnQgMi4KLS0KLS0gICAgICAgTm90ZSB0aGF0IGluIHRoZSBvYmplY3Qg YW5kIGNvbXBvbmVudCBjYXNlcywgdGhlIGZsYWcgaXMgb25seSBzZXQKLS0gICAgICAgaWYgdGhl IHR5cGUgaXMgdW5iaWFzZWQsIGJ1dCB0aGUgb2JqZWN0IHNwZWNpZmllcyBhIHNtYWxsZXIgc2l6 ZQotLSAgICAgICB0aGFuIHRoZSBzaXplIG9mIHRoZSB0eXBlLCBmb3JjaW5nIGJpYXNlZCByZXBy ZXNlbnRhdGlvbiBmb3IgdGhlCi0tICAgICAgIG9iamVjdCwgYnV0IHRoZSBzdWJ0eXBlIGlzIHN0 aWxsIGFuIHVuYmlhc2VkIHR5cGUuCgotLSAgICBIYXNfQ29tcGxldGlvbiAoRmxhZzI2KQotLSAg ICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcyB0aGF0IHJlcXVpcmUgYSBjb21wbGV0aW9uIChm dW5jdGlvbnMsCi0tICAgICAgIHByb2NlZHVyZXMsIHByaXZhdGUgdHlwZXMsIGxpbWl0ZWQgcHJp dmF0ZSB0eXBlcywgaW5jb21wbGV0ZSB0eXBlcywKLS0gICAgICAgYW5kIHBhY2thZ2VzIHRoYXQg cmVxdWlyZSBhIGJvZHkpLiBTZXQgaWYgdGhlIGNvbXBsZXRpb24gaGFzIGJlZW4KLS0gICAgICAg ZW5jb3VudGVyZWQgYW5kIGFuYWx5emVkLgoKLS0gICAgSGFzX0NvbXBsZXRpb25fSW5fQm9keSAo RmxhZzcxKQotLSAgICAgICBQcmVzZW50IGluICAiVGFmdCBhbWVuZG1lbnQgdHlwZXMiIHRoYXQg aXMgdG8gc2F5IGluY29tcGxldGUgdHlwZXMKLS0gICAgICAgd2hvc2UgZnVsbCBkZWNsYXJhdGlv biBhcHBlYXJzIGluIHRoZSBwYWNrYWdlIGJvZHkuCgotLSAgICBIYXNfQ29tcGxleF9SZXByZXNl bnRhdGlvbiAoRmxhZzE0MCkgW2ltcGxlbWVudGF0aW9uIGJhc2UgdHlwZSBvbmx5XQotLSAgICAg ICBQcmVzZW50IGluIGFsbCB0eXBlIGVudGl0aWVzLiBTZXQgb25seSBmb3IgYSByZWNvcmQgYmFz ZSB0eXBlIHRvCi0tICAgICAgIHdoaWNoIGEgdmFsaWQgcHJhZ21hIENvbXBsZXhfUmVwcmVzZW50 YXRpb24gYXBwbGllcy4KCi0tICAgIEhhc19Db21wb25lbnRfU2l6ZV9DbGF1c2UgKEZsYWc2OCkg W2ltcGxlbWVudGF0aW9uIGJhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50IGluIGFsbCB0 eXBlIGVudGl0aWVzLiBTZXQgaWYgYSBjb21wb25lbnQgc2l6ZSBjbGF1c2UgaXMKLS0gICAgICAg cHJlc2VudCBmb3IgdGhlIGdpdmVuIHR5cGUuIE5vdGUgdGhhdCB0aGlzIGZsYWcgY2FuIGJlIEZh bHNlIGV2ZW4KLS0gICAgICAgaWYgQ29tcG9uZW50X1NpemUgaXMgbm9uLXplcm8gKGhhcHBlbnMg aW4gdGhlIGNhc2Ugb2YgZGVyaXZlZCB0eXBlcykuCgotLSAgICBIYXNfQ29udHJvbGxpbmdfUmVz dWx0IChGbGFnOTgpCi0tICAgICAgIFByZXNlbnQgaW4gRV9GdW5jdGlvbiBlbnRpdGllcy4gVHJ1 ZSBpZiBUaGUgZnVuY3Rpb24gaXMgYSBwcmltaXRpdmUKLS0gICAgICAgZnVuY3Rpb24gb2YgYSB0 YWdnZWQgdHlwZSB3aGljaCBjYW4gZGlzcGF0Y2ggb24gcmVzdWx0CgotLSAgICBIYXNfQ29udHJv bGxlZF9Db21wb25lbnQgKEZsYWc0MykgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50 IGluIGNvbXBvc2l0ZSB0eXBlIGVudGl0aWVzLiBJbmRpY2F0ZXMgdGhhdCB0aGUgdHlwZSBoYXMg YQotLSAgICAgICBjb21wb25lbnQgdGhhdCBlaXRoZXIgaXMgYSBjb250cm9sbGVkIHR5cGUsIG9y IGl0c2VsZiBjb250YWlucyBhCi0tICAgICAgIGNvbnRyb2xsZWQgY29tcG9uZW50IChpLmUuIGVp dGhlciBIYXNfQ29udHJvbGxlZF9Db21wb25lbnQgb3IKLS0gICAgICAgSXNfQ29udHJvbGxlZCBp cyBzZXQgZm9yIGF0IGxlYXN0IG9uZSBjb21wb25lbnQpLgoKLS0gICAgSGFzX0NvbnZlbnRpb25f UHJhZ21hIChGbGFnMTE5KQotLSAgICAgICBQcmVzZW50IGluIGFuIGVudGl0eSBmb3Igd2hpY2gg YSBDb252ZW50aW9uLCBJbXBvcnQsIG9yIEV4cG9ydAotLSAgICAgICBwcmFnbWEgaGFzIGJlZW4g Z2l2ZW4uIFVzZWQgdG8gcHJldmVudCBtb3JlIHRoYW4gb25lIHN1Y2ggcHJhZ21hCi0tICAgICAg IGFwcGVhcmluZyBmb3IgYSBnaXZlbiBlbnRpdHkgKFJNIEIuMSg0NSkpLgoKLS0gICAgSGFzX0Rl bGF5ZWRfRnJlZXplIChGbGFnMTgpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBT ZXQgdG8gaW5kaWNhdGUgdGhhdCBhbiBleHBsaWNpdCBmcmVlemUKLS0gICAgICAgbm9kZSBtdXN0 IGJlIGdlbmVyYXRlZCBmb3IgdGhlIGVudGl0eSBhdCBpdHMgZnJlZXppbmcgcG9pbnQuIFNlZQot LSAgICAgICBzZXBhcmF0ZSBzZWN0aW9uICgiRGVsYXllZCBGcmVlemluZyBhbmQgRWxhYm9yYXRp b24iKSBmb3IgZGV0YWlscy4KCi0tICAgIEhhc19EaXNjcmltaW5hbnRzIChGbGFnNSkKLS0gICAg ICAgUHJlc2VudCBpbiBhbGwgdHlwZXMgYW5kIHN1YnR5cGVzLiBGb3IgdHlwZXMgdGhhdCBhcmUg YWxsb3dlZCB0byBoYXZlCi0tICAgICAgIGRpc2NyaW1pbmFudHMgKHJlY29yZCB0eXBlcyBhbmQg c3VidHlwZXMsIHRhc2sgdHlwZXMgYW5kIHN1YnR5cGVzLAotLSAgICAgICBwcm90ZWN0ZWQgdHlw ZXMgYW5kIHN1YnR5cGVzLCBwcml2YXRlIHR5cGVzLCBsaW1pdGVkIHByaXZhdGUgdHlwZXMsCi0t ICAgICAgIGFuZCBpbmNvbXBsZXRlIHR5cGVzKSwgaW5kaWNhdGVzIGlmIHRoZSBjb3JyZXNwb25k aW5nIHR5cGUgb3Igc3VidHlwZQotLSAgICAgICBoYXMgYSBrbm93biBkaXNjcmltaW5hbnQgcGFy dC4gQWx3YXlzIGZhbHNlIGZvciBhbGwgb3RoZXIgdHlwZXMuCgotLSAgICBIYXNfRW50cmllcyAo c3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gY29uY3VycmVudCB0eXBlcy4gVHJ1ZSBp ZiBhbnkgZW50cmllcyBhcmUgZGVjbGFyZWQKLS0gICAgICAgd2l0aGluIHRoZSB0YXNrIG9yIHBy b3RlY3RlZCBkZWZpbml0aW9uIGZvciB0aGUgdHlwZS4KCi0tICAgIEhhc19FbnVtZXJhdGlvbl9S ZXBfQ2xhdXNlIChGbGFnNjYpCi0tICAgICAgIFByZXNlbnQgaW4gZW51bWVyYXRpb24gdHlwZXMu IFNldCBpZiBhbiBlbnVtZXJhdGlvbiByZXByZXNlbnRhdGlvbgotLSAgICAgICBjbGF1c2UgaGFz IGJlZW4gZ2l2ZW4gZm9yIHRoaXMgZW51bWVyYXRpb24gdHlwZS4gVXNlZCB0byBwcmV2ZW50IG1v cmUKLS0gICAgICAgdGhhbiBvbmUgZW51bWVyYXRpb24gcmVwcmVzZW50YXRpb24gY2xhdXNlIGZv ciBhIGdpdmVuIHR5cGUuIE5vdGUKLS0gICAgICAgdGhhdCB0aGlzIGRvZXMgbm90IGltcGx5IGEg cmVwcmVzZW50YXRpb24gd2l0aCBob2xlcywgc2luY2UgdGhlIHJlcAotLSAgICAgICBjbGF1c2Ug bWF5IG1lcmVseSBjb25maXJtIHRoZSBkZWZhdWx0IDAuLk4gcmVwcmVzZW50YXRpb24uCgotLSAg ICBIYXNfRXh0ZXJuYWxfVGFnX1JlcF9DbGF1c2UgKEZsYWcxMTApCi0tICAgICAgIFByZXNlbnQg aW4gdGFnZ2VkIHR5cGVzLiBTZXQgaWYgYW4gZXh0ZXJuYWxfdGFnIHJlcC4gY2xhdXNlIGhhcyBi ZWVuCi0tICAgICAgIGdpdmVuIGZvciB0aGlzIHR5cGUuIFVzZSB0byBhdm9pZCB0aGUgZ2VuZXJh dGlvbiBvZiB0aGUgZGVmYXVsdAotLSAgICAgICBleHRlcm5hbF90YWcuCgotLSAgICBIYXNfRXhp dCAoRmxhZzQ3KQotLSAgICAgICBQcmVzZW50IGluIGxvb3AgZW50aXRpZXMuIFNldCBpZiB0aGUg bG9vcCBjb250YWlucyBhbiBleGl0IHN0YXRlbWVudC4KCi0tICAgIEhhc19Gb3JlaWduX0NvbnZl bnRpb24gKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcy4gRGV0 ZXJtaW5lcyBpZiB0aGUgQ29udmVudGlvbiBmb3IgdGhlCi0tICAgICAgIGVudGl0eSBpcyBhIGZv cmVpZ24gY29udmVudGlvbiAoaS5lLiBpcyBvdGhlciB0aGFuIENvbnZlbnRpb25fQWRhLAotLSAg ICAgICBDb252ZW50aW9uX0ludHJpbnNpYywgQ29udmVudGlvbl9FbnRyeSBvciBDb252ZW50aW9u X1Byb3RlY3RlZCkuCgotLSAgICBIYXNfRm9yd2FyZF9JbnN0YW50aWF0aW9uIChGbGFnMTc1KQot LSAgICAgICBQcmVzZW50IGluIHBhY2thZ2UgZW50aXRpZXMuIFNldCB0cnVlIGZvciBwYWNrYWdl cyB0aGF0IGNvbnRhaW4KLS0gICAgICAgaW5zdGFudGlhdGlvbnMgb2YgbG9jYWwgZ2VuZXJpYyBl bnRpdGllcywgYmVmb3JlIHRoZSBjb3JyZXNwb25kaW5nCi0tICAgICAgIGdlbmVyaWMgYm9keSBo YXMgYmVlbiBzZWVuLiBJZiBhIHBhY2thZ2UgaGFzIGEgZm9yd2FyZCBpbnN0YW50aWF0aW9uLAot LSAgICAgICB3ZSBjYW5ub3QgaW5saW5lIHN1YnByb2dyYW1zIGFwcGVhcmluZyBpbiB0aGUgc2Ft ZSBwYWNrYWdlIGJlY2F1c2UKLS0gICAgICAgdGhlIHBsYWNlbWVudCByZXF1aXJlbWVudHMgb2Yg dGhlIGluc3RhbmNlIHdpbGwgY29uZmxpY3Qgd2l0aCB0aGUKLS0gICAgICAgbGluZWFyIGVsYWJv cmF0aW9uIG9mIGZyb250LWVuZCBpbmxpbmluZy4KCi0tICAgIEhhc19GdWxseV9RdWFsaWZpZWRf TmFtZSAoRmxhZzE3MykKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCBUcnVl IGlmIHRoZSBuYW1lIGluIHRoZSBDaGFycyBmaWVsZAotLSAgICAgICBoYXMgYmVlbiByZXBsYWNl ZCBieSB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUsIGFzIHVzZWQgZm9yIGRlYnVnCi0tICAgICAg IG91dHB1dC4gU2VlIEV4cF9EYnVnIGZvciBhIGZ1bGwgZGVzY3JpcHRpb24gb2YgdGhlIHVzZSBv ZiB0aGlzCi0tICAgICAgIGZsYWcgYW5kIGFsc28gdGhlIHJlbGF0ZWQgZmxhZyBIYXNfUXVhbGlm aWVkX05hbWUuCgotLSAgICBIYXNfR2lnaV9SZXBfSXRlbSAoRmxhZzgyKQotLSAgICAgICBUaGlz IGZsYWcgaXMgc2V0IGlmIHRoZSByZXAgaXRlbSBjaGFpbiAocmVmZXJlbmNlZCBieSBGaXJzdF9S ZXBfSXRlbQotLSAgICAgICBhbmQgbGlua2VkIHRocm91Z2ggdGhlIE5leHRfUmVwX0l0ZW0gY2hh aW4gY29udGFpbnMgYSByZXByZXNlbnRhdGlvbgotLSAgICAgICBpdGVtIHRoYXQgbmVlZHMgdG8g YmUgc3BlY2lhbGx5IHByb2Nlc3NlZCBieSBHaWdpLCBpLmUuIG9uZSBvZiB0aGUKLS0gICAgICAg Zm9sbG93aW5nIGl0ZW1zOgotLQotLSAgICAgICAgICBNYWNoaW5lX0F0dHJpYnV0ZSBwcmFnbWEK LS0gICAgICAgICAgTGlua2VyX0FsaWFzIHByYWdtYQotLSAgICAgICAgICBMaW5rZXJfU2VjdGlv biBwcmFnbWEKLS0gICAgICAgICAgV2Vha19FeHRlcm5hbCBwcmFnbWEKLS0KLS0gICAgICAgSWYg dGhpcyBmbGFnIGlzIHNldCwgdGhlbiBHaWdpIHNob3VsZCBzY2FuIHRoZSByZXAgaXRlbSBjaGFp biB0bwotLSAgICAgICBwcm9jZXNzIGFueSBvZiB0aGVzZSBpdGVtcyB0aGF0IGFwcGVhci4gQXQg bGVhc3Qgb25lIHN1Y2ggaXRlbSB3aWxsCi0tICAgICAgIGJlIHByZXNlbnQuCgotLSAgICBIYXNf SG9tb255bSAoRmxhZzU2KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGlm IGFuIGVudGl0eSBoYXMgYSBob21vbnltIGluIHRoZSBzYW1lCi0tICAgICAgIHNjb3BlLiBVc2Vk IGJ5IEdpZ2kgdG8gZ2VuZXJhdGUgdW5pcXVlIG5hbWVzIGZvciBzdWNoIGVudGl0aWVzLgoKLS0g ICAgSGFzX0ludGVycnVwdF9IYW5kbGVyIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0 byBhbGwgcHJvdGVjdGVkIHR5cGVzIGVudGl0aWVzLiBTZXQgaWYgdGhlIHByb3RlY3RlZCB0eXBl Ci0tICAgICAgIGRlZmluaXRpb24gY29udGFpbnMgYXQgbGVhc3Qgb25lIHByb2NlZHVyZSB0byB3 aGljaCBhIHByYWdtYQotLSAgICAgICBJbnRlcnJ1cHRfSGFuZGxlciBhcHBsaWVzLgoKLS0gICAg SGFzX01hY2hpbmVfUmFkaXhfQ2xhdXNlIChGbGFnODMpCi0tICAgICAgIFByZXNlbnQgaW4gZGVj aW1hbCB0eXBlcyBhbmQgc3VidHlwZXMsIHNldCBpZiBhIE1hY2hpbmVfUmFkaXgKLS0gICAgICAg cmVwcmVzZW50YXRpb24gY2xhdXNlIGlzIHByZXNlbnQuIFRoaXMgZmxhZyBpcyB1c2VkIHRvIGRl dGVjdAotLSAgICAgICB0aGUgZXJyb3Igb2YgbXVsdGlwbGUgbWFjaGluZSByYWRpeCBjbGF1c2Vz IGZvciBhIHNpbmdsZSB0eXBlLgoKLS0gICAgSGFzX01hc3Rlcl9FbnRpdHkgKEZsYWcyMSkKLS0g ICAgICAgUHJlc2VudCBpbiBlbnRpdGllcyB0aGF0IGNhbiBhcHBlYXIgaW4gdGhlIHNjb3BlIHN0 YWNrIChzZWUgc3BlYwotLSAgICAgICBvZiBTZW0pLiBJdCBpcyBzZXQgaWYgYSB0YXNrIG1hc3Rl ciBlbnRpdHkgKF9tYXN0ZXIpIGhhcyBiZWVuCi0tICAgICAgIGRlY2xhcmVkIGFuZCBpbml0aWFs aXplZCBpbiB0aGUgY29ycmVzcG9uZGluZyBzY29wZS4KCi0tICAgIEhhc19NaXNzaW5nX1JldHVy biAoRmxhZzE0MikKLS0gICAgICAgUHJlc2VudCBpbiBmdW5jdGlvbnMgYW5kIGdlbmVyaWMgZnVu Y3Rpb25zLiBTZXQgaWYgdGhlcmUgaXMgb25lIG9yCi0tICAgICAgIG1vcmUgbWlzc2luZyByZXR1 cm4gc3RhdGVtZW50cyBpbiB0aGUgZnVuY3Rpb24uIFRoaXMgaXMgdXNlZCB0bwotLSAgICAgICBj b250cm9sIHdyYXBwaW5nIG9mIHRoZSBib2R5IGluIEV4cF9DaDYgdG8gZW5zdXJlIHRoYXQgdGhl IHByb2dyYW0KLS0gICAgICAgZXJyb3IgZXhlcHRpb24gaXMgY29ycmVjdGx5IHJhaXNlZCBpbiB0 aGlzIGNhc2UgYXQgcnVudGltZS4KCi0tICAgIEhhc19OZXN0ZWRfQmxvY2tfV2l0aF9IYW5kbGVy IChGbGFnMTAxKQotLSAgICAgICBQcmVzZW50IGluIHNjb3BlIGVudGl0aWVzLiBTZXQgaWYgdGhl cmUgaXMgYSBuZXN0ZWQgYmxvY2sgd2l0aGluIHRoZQotLSAgICAgICBzY29wZSB0aGF0IGhhcyBh biBleGNlcHRpb24gaGFuZGxlciBhbmQgdGhlIHR3byBzY29wZXMgYXJlIGluIHRoZQotLSAgICAg ICBzYW1lIHByb2NlZHVyZS4gVGhpcyBpcyB1c2VkIGJ5IHRoZSBiYWNrZW5kIGZvciBjb250cm9s bGluZyBjZXJ0YWluCi0tICAgICAgIG9wdGltaXphdGlvbnMgdG8gZW5zdXJlIHRoYXQgdGhleSBh cmUgY29uc2lzdGVudCB3aXRoIGV4Y2VwdGlvbnMuCi0tICAgICAgIFNlZSBkb2N1bWVudGF0aW9u IGluIEdpZ2kgZm9yIGZ1cnRoZXIgZGV0YWlscy4KCi0tICAgIEhhc19Ob25fU3RhbmRhcmRfUmVw IChGbGFnNzUpIFtpbXBsZW1lbnRhdGlvbiBiYXNlIHR5cGUgb25seV0KLS0gICAgICAgUHJlc2Vu dCBpbiBhbGwgdHlwZSBlbnRpdGllcy4gU2V0IHdoZW4gc29tZSByZXByZXNlbnRhdGlvbiBjbGF1 c2UKLS0gICAgICAgb3IgcHJhZ21hIGNhdXNlcyB0aGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGl0 ZW0gdG8gYmUgc2lnbmlmaWNhbnRseQotLSAgICAgICBtb2RpZmllZC4gSW4gdGhpcyBjYXRlZ29y eSBhcmUgY2hhbmdlcyBvZiBzbWFsbCBvciByYWRpeCBmb3IgYQotLSAgICAgICBmaXhlZC1wb2lu dCB0eXBlLCBjaGFuZ2Ugb2YgY29tcG9uZW50IHNpemUgZm9yIGFuIGFycmF5LCBhbmQgcmVjb3Jk Ci0tICAgICAgIG9yIGVudW1lcmF0aW9uIHJlcHJlc2VudGF0aW9uIGNsYXVzZXMsIGFzIHdlbGwg YXMgcGFja2VkIHByYWdtYXMuCi0tICAgICAgIEFsbCBvdGhlciByZXByZXNlbnRhdGlvbiBjbGF1 c2VzIChlLmcuIFNpemUgYW5kIEFsaWdubWVudCBjbGF1c2VzKQotLSAgICAgICBhcmUgbm90IGNv bnNpZGVyZWQgdG8gYmUgc2lnbmlmaWNhbnQgc2luY2UgdGhleSBkbyBub3QgYWZmZWN0Ci0tICAg ICAgIHN0b3JlZCBiaXQgcGF0dGVybnMuCgotLSAgICBIYXNfT2JqZWN0X1NpemVfQ2xhdXNlIChG bGFnMTcyKQotLSAgICAgICBQcmVzZW50IGluIGVudGl0aWVzIGZvciB0eXBlcyBhbmQgc3VidHlw ZXMuIFNldCBpZiBhbiBPYmplY3RfU2l6ZQotLSAgICAgICBjbGF1c2UgaGFzIGJlZW4gcHJvY2Vz c2VkIGZvciB0aGUgdHlwZSBVc2VkIHRvIHByZXZlbnQgbXVsdGlwbGUKLS0gICAgICAgT2JqZWN0 X1NpemUgY2xhdXNlcyBmb3IgYSBnaXZlbiBlbnRpdHkuCgotLSAgICBIYXNfUGVyX09iamVjdF9D b25zdHJhaW50IChGbGFnMTU0KQotLSAgICAgICBQcmVzZW50IGluIEVfQ29tcG9uZW50IGVudGl0 aWVzLCB0cnVlIGlmIHRoZSBzdWJ0eXBlIG9mIHRoZQotLSAgICAgICBjb21wb25lbnQgaGFzIGEg cGVyIG9iamVjdCBjb25zdHJhaW50LCBpLmUuIGFuIGFjdHVhbCBkaXNjcmltaW5hbnQKLS0gICAg ICAgdmFsdWUgb2YgdGhlIGZvcm0gVCdBY2Nlc3MsIHdoZXJlIFQgaXMgdGhlIGVuY2xvc2luZyB0 eXBlLgoKLS0gICAgSGFzX1ByYWdtYV9Db250cm9sbGVkIChGbGFnMjcpIFtpbXBsZW1lbnRhdGlv biBiYXNlIHR5cGUgb25seV0KLS0gICAgICAgUHJlc2VudCBpbiBhY2Nlc3MgdHlwZSBlbnRpdGll cy4gSXQgaXMgc2V0IGlmIGEgcHJhZ21hIENvbnRyb2xsZWQKLS0gICAgICAgYXBwbGllcyB0byB0 aGUgYWNjZXNzIHR5cGUuCgotLSAgICBIYXNfUHJhZ21hX0VsYWJvcmF0ZV9Cb2R5IChGbGFnMTUw KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGluIGNvbXBpbGF0aW9uIHVu aXQgZW50aXRpZXMgaWYgYQotLSAgICAgICBwcmFnbWEgRWxhYm9yYXRlX0JvZHkgYXBwbGllcyB0 byB0aGUgY29tcGlsYXRpb24gdW5pdC4KCi0tICAgIEhhc19QcmFnbWFfSW5saW5lIChGbGFnMTU3 KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGZvciBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMgZm9yIHdoaWNoCi0tICAgICAgIGEgcHJhZ21hIElubGluZSBvciBJbmxpbmVf QWx3YXlzIGFwcGxpZXMgdG8gdGhlIHN1YnByb2dyYW0uIE5vdGUKLS0gICAgICAgc3VicHJvZ3Jh bS4gTm90ZSB0aGF0IHRoaXMgZmxhZyBjYW4gYmUgc2V0IGV2ZW4gaWYgSXNfSW5saW5lZCBpcwot LSAgICAgICBub3Qgc2V0LiBUaGlzIGhhcHBlbnMgZm9yIHByYWdtYSBJbmxpbmUgKGlmIElubGlu ZV9BY3RpdmUgaXMgRmFsc2UpCi0tICAgICAgIEluIG90aGVyIHdvcmRzLCB0aGUgZmxhZyBIYXNf UHJhZ21hX0lubGluZSByZXByZXNlbnRzIHRoZSBmb3JtYWwKLS0gICAgICAgc2VtYW50aWMgc3Rh dHVzLCBhbmQgaXMgdXNlZCBmb3IgY2hlY2tpbmcgc2VtYW50aWMgY29ycmVjdG5lc3MuCi0tICAg ICAgIFRoZSBmbGFnIElzX0lubGluZWQgaW5kaWNhdGVzIHdoZXRoZXIgaW5saW5pbmcgaXMgYWN0 dWFsbHkgYWN0aXZlCi0tICAgICAgIGZvciB0aGUgZW50aXR5LgoKLS0gICAgSGFzX1ByYWdtYV9Q YWNrIChGbGFnMTIxKSBbaW1wbGVtZW50YXRpb24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFBy ZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBJdCBpbmRpY2F0ZXMgdGhhdCBhIHZhbGlkIHByYWdtYSBQ YWNrIHdhcwotLSAgICAgICB3YXMgZ2l2ZW4gZm9yIHRoZSB0eXBlLiBOb3RlIHRoYXQgdGhpcyBm bGFnIGlzIG5vdCBpbmhlcml0ZWQgYnkgYQotLSAgICAgICBkZXJpdmVkIHR5cGUuIFNlZSBhbHNv IHRoZSBJc19QYWNrZWQgZmxhZy4KCi0tICAgIEhhc19QcmFnbWFfUHVyZV9GdW5jdGlvbiAoRmxh ZzE3OSkKLS0gICAgICAgUHJlc2VudCBpbiBzdWJwcm9ncmFtIGVudGl0aWVzLiBJdCBpbmRpY2F0 ZXMgdGhhdCBhIHZhbGlkIHByYWdtYQotLSAgICAgICBQdXJlX0Z1bmN0aW9uIHdhcyBnaXZlbiBm b3IgdGhlIGVudGl0eS4gSW4gc29tZSBjYXNlcywgd2UgbmVlZCB0bwotLSAgICAgICBrbm93IHRo YXQgSXNfUHVyZSB3YXMgZXhwbGljaXRseSBzZXQgdXNpbmcgdGhpcyBwcmFnbWEuCgotLSAgICBI YXNfUHJpbWl0aXZlX09wZXJhdGlvbnMgKEZsYWcxMjApIFtiYXNlIHR5cGUgb25seV0KLS0gICAg ICAgUHJlc2VudCBpbiBhbGwgdHlwZSBlbnRpdGllcy4gU2V0IGlmIGF0IGxlYXN0IG9uZSBwcmlt aXRpdmUgb3BlcmF0aW9uCi0tICAgICAgIGlzIGRlZmluZWQgb24gdGhlIHR5cGUuIFRoaXMgZmxh ZyBpcyBub3QgeWV0IHByb3Blcmx5IHNldCA/Pz8KCi0tICAgIEhhc19Qcml2YXRlX0FuY2VzdG9y IChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgdHlwZSBhbmQgc3VidHlwZSBl bnRpdGllcy4gUmV0dXJucyBUcnVlIGlmIGF0IGxlYXN0Ci0tICAgICAgIG9uZSBhbmNlc3RvciBp cyBwcml2YXRlLCBhbmQgb3RoZXJ3aXNlIEZhbHNlIGlmIHRoZXJlIGFyZSBubyBwcml2YXRlCi0t ICAgICAgIGFuY2VzdG9ycy4KCi0tICAgIEhhc19Qcml2YXRlX0RlY2xhcmF0aW9uIChGbGFnMTU1 KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gUmV0dXJucyBUcnVlIGlmIGl0IGlz IHRoZSBkZWZpbmluZyBlbnRpdHkKLS0gICAgICAgb2YgYSBwcml2YXRlIHR5cGUgZGVjbGFyYXRp b24gb3IgaXRzIGNvcnJlc3BvbmRpbmcgZnVsbCBkZWNsYXJhdGlvbi4KLS0gICAgICAgVGhpcyBm bGFnIGlzIHRodXMgcHJlc2VydmVkIHdoZW4gdGhlIGZ1bGwgYW5kIHRoZSBwYXJ0aWFsIHZpZXdz IGFyZQotLSAgICAgICBleGNoYW5nZWQsIHRvIGluZGljYXRlIGlmIGEgZnVsbCB0eXBlIGRlY2xh cmF0aW9uIGlzIGEgY29tcGxldGlvbi4KLS0gICAgICAgVXNlZCBmb3Igc2VtYW50aWMgY2hlY2tz IGluIEUuNCAoMTgpLCBhbmQgZWxzZXdoZXJlLgoKLS0gICAgSGFzX1F1YWxpZmllZF9OYW1lIChG bGFnMTYxKQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IFRydWUgaWYgdGhl IG5hbWUgaW4gdGhlIENoYXJzIGZpZWxkCi0tICAgICAgIGhhcyBiZWVuIHJlcGxhY2VkIGJ5IGl0 cyBxdWFsaWZpZWQgbmFtZSwgYXMgdXNlZCBmb3IgZGVidWcgb3V0cHV0LgotLSAgICAgICBTZWUg RXhwX0RidWcgZm9yIGEgZnVsbCBkZXNjcmlwdGlvbiBvZiBxdWFsaWZpY2F0aW9uIHJlcXVpcmVt ZW50cy4KLS0gICAgICAgRm9yIHNvbWUgZW50aXRpZXMsIHRoZSBuYW1lIGlzIHRoZSBmdWxseSBx dWFsaWZpZWQgbmFtZSwgYnV0IHRoZXJlCi0tICAgICAgIGFyZSBleGNlcHRpb25zLiBJbiBwYXJ0 aWN1bGFyLCBmb3IgbG9jYWwgdmFyaWFibGVzIGluIHByb2NlZHVyZXMsCi0tICAgICAgIHdlIGRv IG5vdCBpbmNsdWRlIHRoZSBwcm9jZWR1cmUgaXRzZWxmIG9yIGhpZ2hlciBzY29wZXMuIFNlZSBh bHNvCi0tICAgICAgIHRoZSBmbGFnIEhhc19GdWxseV9RdWFsaWZpZWRfTmFtZSwgd2hpY2ggaXMg c2V0IGlmIHRoZSBuYW1lIGRvZXMKLS0gICAgICAgaW5kZWVkIGluY2x1ZGUgdGhlIGZ1bGx5IHF1 YWxpZmllZCBuYW1lLgoKLS0gICAgSGFzX1JlY29yZF9SZXBfQ2xhdXNlIChGbGFnNjUpCi0tICAg ICAgIFByZXNlbnQgaW4gcmVjb3JkIHR5cGVzLiBTZXQgaWYgYSByZWNvcmQgcmVwcmVzZW50YXRp b24gY2xhdXNlIGhhcwotLSAgICAgICBiZWVuIGdpdmVuIGZvciB0aGlzIHJlY29yZCB0eXBlLiBV c2VkIHRvIHByZXZlbnQgbW9yZSB0aGFuIG9uZSBzdWNoCi0tICAgICAgIGNsYXVzZSBmb3IgYSBn aXZlbiByZWNvcmQgdHlwZS4gTm90ZSB0aGF0IHRoaXMgaXMgaW5pdGlhbGx5IGNsZWFyZWQKLS0g ICAgICAgZm9yIGEgZGVyaXZlZCB0eXBlLCBldmVuIHRob3VnaCB0aGUgcmVwcmVzZW50YXRpb24g aXMgaW5oZXJpdGVkLiBTZWUKLS0gICAgICAgYWxzbyB0aGUgZmxhZyBIYXNfU3BlY2lmaWVkX0xh eW91dC4KCi0tICAgIEhhc19SZWN1cnNpdmVfQ2FsbCAoRmxhZzE0MykKLS0gICAgICAgUHJlc2Vu dCBpbiBwcm9jZWR1cmVzLiBTZXQgaWYgYSBkaXJlY3QgcGFyYW1ldGVybGVzcyByZWN1cnNpdmUg Y2FsbAotLSAgICAgICBpcyBkZXRlY3RlZCB3aGlsZSBhbmFseXppbmcgdGhlIGJvZHkuIFVzZWQg dG8gYWN0aXZhdGUgc29tZSBlcnJvcgotLSAgICAgICBjaGVja3MgZm9yIGluZmluaXRlIHJlY3Vy c2lvbi4KCi0tICAgIEhhc19TaXplX0NsYXVzZSAoRmxhZzI5KQotLSAgICAgICBQcmVzZW50IGlu IGVudGl0aWVzIGZvciB0eXBlcyBhbmQgb2JqZWN0cy4gU2V0IGlmIGEgc2l6ZSBjbGF1c2UgaXMK LS0gICAgICAgcHJlc2VudCBmb3IgdGhlIGVudGl0eS4gVXNlZCB0byBwcmV2ZW50IG11bHRpcGxl IFNpemUgY2xhdXNlcyBmb3IgYQotLSAgICAgICBnaXZlbiBlbnRpdHkuIE5vdGUgdGhhdCBpdCBp cyBhbHdheXMgaW5pdGlhbGx5IGNsZWFyZWQgZm9yIGEgZGVyaXZlZAotLSAgICAgICB0eXBlLCBl dmVuIHRob3VnaCB0aGUgU2l6ZSBmb3Igc3VjaCBhIHR5cGUgaXMgaW5oZXJpdGVkIGZyb20gYSBT aXplCi0tICAgICAgIGNsYXVzZSBnaXZlbiBmb3IgdGhlIHBhcmVudCB0eXBlLgoKLS0gICAgSGFz X1NtYWxsX0NsYXVzZSAoRmxhZzY3KQotLSAgICAgICBQcmVzZW50IGluIG9yZGluYXJ5IGZpeGVk IHBvaW50IHR5cGVzIChidXQgbm90IHN1YnR5cGVzKS4gSW5kaWNhdGVzCi0tICAgICAgIHRoYXQg YSBzbWFsbCBjbGF1c2UgaGFzIGJlZW4gZ2l2ZW4gZm9yIHRoZSBlbnRpdHkuIFVzZWQgdG8gcHJl dmVudAotLSAgICAgICBtdWx0aXBsZSBTbWFsbCBjbGF1c2VzIGZvciBhIGdpdmVuIGVudGl0eS4g Tm90ZSB0aGF0IGl0IGlzIGFsd2F5cwotLSAgICAgICBpbml0aWFsbHkgY2xlYXJlZCBmb3IgYSBk ZXJpdmVkIHR5cGUsIGV2ZW4gdGhvdWdoIHRoZSBTbWFsbCBmb3Igc3VjaAotLSAgICAgICBhIHR5 cGUgaXMgaW5oZXJpdGVkIGZyb20gYSBTbWFsbCBjbGF1c2UgZ2l2ZW4gZm9yIHRoZSBwYXJlbnQg dHlwZS4KCi0tICAgIEhhc19TcGVjaWZpZWRfTGF5b3V0IChGbGFnMTAwKQotLSAgICAgICBQcmVz ZW50IGluIGFsbCB0eXBlIGVudGl0aWVzLiBTZXQgZm9yIGEgcmVjb3JkIHR5cGUgb3Igc3VidHlw ZSBpZgotLSAgICAgICB0aGUgcmVjb3JkIGxheW91dCBoYXMgYmVlbiBzcGVjaWZpZWQgYnkgYSBy ZWNvcmQgcmVwcmVzZW50YXRpb24KLS0gICAgICAgY2xhdXNlLiBOb3RlIHRoYXQgdGhpcyBkaWZm ZXJzIGZyb20gdGhlIGZsYWcgSGFzX1JlY29yZF9SZXBfQ2xhdXNlCi0tICAgICAgIGluIHRoYXQg aXQgaXMgaW5oZXJpdGVkIGJ5IGEgZGVyaXZlZCB0eXBlLiBIYXNfUmVjb3JkX1JlcF9DbGF1c2Ug aXMKLS0gICAgICAgdXNlZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSB0eXBlIGlzIG1lbnRpb25lZCBl eHBsaWNpdGx5IGluIGEgcmVjb3JkCi0tICAgICAgIHJlcHJlc2VudGF0aW9uIGNsYXVzZSwgYW5k IHRodXMgaXMgbm90IGluaGVyaXRlZCBieSBhIGRlcml2ZWQgdHlwZS4KLS0gICAgICAgVGhpcyBm bGFnIGlzIGFsd2F5cyBGYWxzZSBmb3Igbm9uLXJlY29yZCB0eXBlcy4KCi0tICAgIEhhc19TdG9y YWdlX1NpemVfQ2xhdXNlIChGbGFnMjMpIFtpbXBsZW1lbnRhdGlvbiBiYXNlIHR5cGUgb25seV0K LS0gICAgICAgUHJlc2VudCBpbiB0YXNrIHR5cGVzIGFuZCBhY2Nlc3MgdHlwZXMuIEl0IGlzIHNl dCBpZiBhIFN0b3JhZ2VfU2l6ZQotLSAgICAgICBjbGF1c2UgaXMgcHJlc2VudCBmb3IgdGhlIHR5 cGUuIFVzZWQgdG8gcHJldmVudCBtdWx0aXBsZSBjbGF1c2VzIGZvcgotLSAgICAgICBvbmUgdHlw ZS4gTm90ZSB0aGF0IHRoaXMgZmxhZyBpcyBpbml0aWFsbHkgY2xlYXJlZCBmb3IgYSBkZXJpdmVk IHR5cGUKLS0gICAgICAgZXZlbiB0aG91Z2ggdGhlIFN0b3JhZ2VfU2l6ZSBmb3Igc3VjaCBhIHR5 cGUgaXMgaW5oZXJpdGVkIGZyb20gYQotLSAgICAgICBTdG9yYWdlX1NpemUgY2xhdXNlIGdpdmVu IGZvciB0aGUgcGFyZW50IHR5cGUuIE5vdGUgdGhhdCBpbiB0aGUgY2FzZQotLSAgICAgICBvZiBh Y2Nlc3MgdHlwZXMsIHRoaXMgZmxhZyBpcyBwcmVzZW50IG9ubHkgaW4gdGhlIHJvb3QgdHlwZSwg c2luY2UgYQotLSAgICAgICBzdG9yYWdlIHNpemUgY2xhdXNlIGNhbm5vdCBiZSBnaXZlbiB0byBh IGRlcml2ZWQgdHlwZS4KCi0tICAgIEhhc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IgKEZsYWc5MykK LS0gICAgICAgVGhpcyBmbGFnIGlzIHNldCBvbiBlbnRpdGllcyBmb3Igd2hpY2ggemVyby1jb3N0 IGV4Y2VwdGlvbiBzdWJwcm9ncmFtCi0tICAgICAgIGRlc2NyaXB0b3JzIGNhbiBiZSBnZW5lcmF0 ZWQgKHN1YnByb2dyYW1zIGFuZCBsaWJyYXJ5IGxldmVsIHBhY2thZ2UKLS0gICAgICAgZGVjbGFy YXRpb25zIGFuZCBib2RpZXMpLiBJdCBpbmRpY2F0ZXMgdGhhdCBhIHN1YnByb2dyYW0gZGVzY3Jp cHRvcgotLSAgICAgICBoYXMgYmVlbiBnZW5lcmF0ZWQsIGFuZCBpcyB1c2VkIHRvIHN1cHByZXNz IGdlbmVyYXRpb24gb2YgbXVsdGlwbGUKLS0gICAgICAgZGVzY3JpcHRvcnMgKGUuZy4gd2hlbiBp bnN0YW50aWF0aW5nIGdlbmVyaWMgYm9kaWVzKS4KCi0tICAgIEhhc19UYXNrIChGbGFnMzApIFti YXNlIHR5cGUgb25seV0KLS0gICAgICAgUHJlc2VudCBpbiBhbGwgdHlwZSBlbnRpdGllcy4gU2V0 IG9uIHRhc2sgdHlwZXMgdGhlbXNlbHZlcywgYW5kIGFsc28KLS0gICAgICAgKHJlY3Vyc2l2ZWx5 KSBvbiBhbnkgY29tcG9zaXRlIHR5cGUgd2hpY2ggaGFzIGEgY29tcG9uZW50IGZvciB3aGljaAot LSAgICAgICBIYXNfVGFzayBpcyBzZXQuIFRoZSBtZWFuaW5nIGlzIHRoYXQgYW4gYWxsb2NhdG9y IG9mIHN1Y2ggYW4gb2JqZWN0Ci0tICAgICAgIG11c3QgY3JlYXRlIHRoZSByZXF1aXJlZCB0YXNr cy4gTm90ZSB0aGF0IHRoZSBmbGFnIGlzIG5vdCBzZXQgb24KLS0gICAgICAgYWNjZXNzIHR5cGVz LCBldmVuIGlmIHRoZXkgZGVzaWduYXRlIGFuIG9iamVjdCB0aGF0IEhhc19UYXNrLgoKLS0gICAg SGFzX1VuY2hlY2tlZF9VbmlvbiAoRmxhZzEyMykgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQ cmVzZW50IGluIGFsbCB0eXBlIGVudGl0aWVzLiBTZXQgb24gdW5jaGVja2VkIHVuaW9ucyB0aGVt c2VsdmVzCi0tICAgICAgIGFuZCAocmVjdXJzaXZlbHkpIG9uIGFueSBjb21wb3NpdGUgdHlwZSB3 aGljaCBoYXMgYSBjb21wb25lbnQgZm9yCi0tICAgICAgIHdoaWNoIEhhc19VbmNoZWNrZWRfVW5p b24gaXMgc2V0LiBUaGUgbWVhbmluZyBpcyB0aGF0IGEgY29tcGFyaXNvbgotLSAgICAgICBvcGVy YXRpb24gZm9yIHRoZSB0eXBlIGlzIG5vdCBwZXJtaXR0ZWQuIE5vdGUgdGhhdCB0aGUgZmxhZyBp cyBub3QKLS0gICAgICAgc2V0IG9uIGFjY2VzcyB0eXBlcywgZXZlbiBpZiB0aGV5IGRlc2lnbmF0 ZSBhbiBvYmplY3QgdGhhdCBoYXMKLS0gICAgICAgdGhlIGZsYWcgSGFzX1VuY2hlY2tlZF9Vbmlv biBzZXQuCgotLSAgICBIYXNfVW5rbm93bl9EaXNjcmltaW5hbnRzIChGbGFnNzIpCi0tICAgICAg IFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIFR5cGVzIGNhbiBoYXZlIHVua25vd24gZGlz Y3JpbWluYW50cwotLSAgICAgICBlaXRoZXIgZnJvbSB0aGVpciBkZWNsYXJhdGlvbiBvciB0aHJv dWdoIHR5cGUgZGVyaXZhdGlvbi4gVGhlIHVzZQotLSAgICAgICBvZiB0aGlzIGZsYWcgZXhhY3Rs eSBtZWV0cyB0aGUgc3BlYyBpbiBSTSAzLjcoMjYpLiBOb3RlIHRoYXQgYWxsCi0tICAgICAgIGNs YXNzLXdpZGUgdHlwZXMgYXJlIGNvbnNpZGVyZWQgdG8gaGF2ZSB1bmtub3duIGRpc2NyaW1pbmFu dHMuCgotLSAgICBIYXNfVm9sYXRpbGVfQ29tcG9uZW50cyAoRmxhZzg3KSBbaW1wbGVtZW50YXRp b24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGVzIGFuZCBvYmpl Y3RzLiBTZXQgb25seSBmb3IgYW4gYXJyYXkgdHlwZSBvcgotLSAgICAgICBhcnJheSBvYmplY3Qg aWYgYSB2YWxpZCBwcmFnbWEgVm9sYXRpbGVfQ29tcG9uZW50cyBvciBhIHZhbGlkCi0tICAgICAg IHByYWdtYSBBdG9taWNfQ29tcG9uZW50cyBhcHBsaWVzIHRvIHRoZSB0eXBlIG9yIG9iamVjdC4g Tm90ZSB0aGF0Ci0tICAgICAgIGluIHRoZSBjYXNlIG9mIGFuIG9iamVjdCwgdGhpcyBmbGFnIGlz IG9ubHkgc2V0IG9uIHRoZSBvYmplY3QgaWYKLS0gICAgICAgdGhlcmUgd2FzIGFuIGV4cGxpY2l0 IHByYWdtYSBmb3IgdGhlIG9iamVjdC4gSW4gb3RoZXIgd29yZHMsIHRoZQotLSAgICAgICBwcm9w ZXIgdGVzdCBmb3Igd2hldGhlciBhbiBvYmplY3QgaGFzIHZvbGF0aWxlIGNvbXBvbmVudHMgaXMg dG8KLS0gICAgICAgc2VlIGlmIGVpdGhlciB0aGUgb2JqZWN0IG9yIGl0cyBiYXNlIHR5cGUgaGFz IHRoaXMgZmxhZyBzZXQuIE5vdGUKLS0gICAgICAgdGhhdCBpbiB0aGUgY2FzZSBvZiBhIHR5cGUg dGhlIHByYWdtYSB3aWxsIGJlIGNoYWluZWQgdG8gdGhlIHJlcAotLSAgICAgICBpdGVtIGNoYWlu IG9mIHRoZSBmaXJzdCBzdWJ0eXBlIGluIHRoZSB1c3VhbCBtYW5uZXIuCgotLSAgICBIaWRpbmdf TG9vcF9WYXJpYWJsZSAoTm9kZTgpCi0tICAgICAgIFByZXNlbnQgaW4gdmFyaWFibGVzLiBTZXQg b25seSBpZiBhIHZhcmlhYmxlIG9mIGEgZGlzY3JldGUgdHlwZSBpcwotLSAgICAgICBoaWRkZW4g YnkgYSBsb29wIHZhcmlhYmxlIGluIHRoZSBzYW1lIGxvY2FsIHNjb3BlLCBpbiB3aGljaCBjYXNl Ci0tICAgICAgIHRoZSBIaWRpbmdfTG9vcF9WYXJpYWJsZSBmaWVsZCBvZiB0aGUgaGlkZGVuIHZh cmlhYmxlIHBvaW50cyB0bwotLSAgICAgICB0aGUgRV9Mb29wX1ZhcmlhYmxlIGVudGl0eSBkb2lu ZyB0aGUgaGlkaW5nLiBVc2VkIGluIHByb2Nlc3NpbmcKLS0gICAgICAgd2FybmluZyBtZXNzYWdl cyBpZiB0aGUgaGlkZGVuIHZhcmlhYmxlIHR1cm5zIG91dCB0byBiZSB1bnVzZWQKLS0gICAgICAg b3IgaXMgcmVmZXJlbmNlZCB3aXRob3V0IGJlaW5nIHNldC4KCi0tICAgIEhvbW9ueW0gKE5vZGU0 KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gTGluayBmb3IgbGlzdCBvZiBlbnRp dGllcyB0aGF0IGhhdmUgdGhlCi0tICAgICAgIHNhbWUgc291cmNlIG5hbWUgYW5kIHRoYXQgYXJl IGRlY2xhcmVkIGluIHRoZSBzYW1lIG9yIGVuY2xvc2luZwotLSAgICAgICBzY29wZXMuIEhvbW9u eW1zIGluIHRoZSBzYW1lIHNjb3BlIGFyZSBvdmVybG9hZGVkLiBVc2VkIGZvciBuYW1lCi0tICAg ICAgIHJlc29sdXRpb24gYW5kIGZvciB0aGUgZ2VuZXJhdGlvbiBvZiBkZWJ1Z2dpbmcgaW5mb3Jt YXRpb24uCgotLSAgICBJbXBsZW1lbnRhdGlvbl9CYXNlX1R5cGUgKHN5bnRoZXNpemVkKQotLSAg ICAgICBBcHBsaWVzIHRvIGFsbCB0eXBlcy4gU2ltaWxhciB0byBCYXNlX1R5cGUsIGJ1dCBuZXZl ciByZXR1cm5zIGEKLS0gICAgICAgcHJpdmF0ZSB0eXBlIHdoZW4gYXBwbGllZCB0byBhIG5vbi1w cml2YXRlIHR5cGUuIEluc3RlYWQgaW4gdGhpcwotLSAgICAgICBjYXNlLCBpdCBhbHdheXMgcmV0 dXJucyB0aGUgUmVwcmVzZW50YXRpb25fVHlwZSBvZiB0aGUgYmFzZSB0eXBlCi0tICAgICAgIGlu IHRoaXMgY2FzZSwgc28gdGhhdCB3ZSBzdGlsbCBoYXZlIGEgY29uY3JldGUgdHlwZS4gTm90ZTog aXQgaXMKLS0gICAgICAgYWxsb3dlZCB0byBhcHBseSBJbXBsZW1lbnRhdGlvbl9CYXNlX1R5cGUg dG8gb3RoZXIgdGhhbiBhIHR5cGUsCi0tICAgICAgIGluIHdoaWNoIGNhc2UgaXQgc2ltcGx5IHJl dHVybnMgdGhlIGVudGl0eSB1bmNoYW5nZWQuCgotLSAgICBJbl9QYWNrYWdlX0JvZHkgKEZsYWc0 OCkKLS0gICAgICAgU2V0IG9uIHRoZSBlbnRpdHkgdGhhdCBkZW5vdGVzIHRoZSBwYWNrYWdlICh0 aGUgZGVmaW5pbmcgb2NjdXJyZW5jZQotLSAgICAgICBvZiB0aGUgcGFja2FnZSBkZWNsYXJhdGlv bikgd2hpbGUgYW5hbHl6aW5nIGFuZCBleHBhbmRpbmcgdGhlIHBhY2thZ2UKLS0gICAgICAgYm9k eS4gUmVzZXQgb24gY29tcGxldGlvbiBvZiBhbmFseXNpcy9leHBhbnNpb24uCgotLSAgICBJbl9Q cml2YXRlX1BhcnQgKEZsYWc0NSkKLS0gICAgICAgUHJlc2VudCBpbiBwYWNrYWdlIGVudGl0aWVz LiBGbGFnIGlzIHNldCB0byBpbmRpY2F0ZSB0aGF0IHRoZQotLSAgICAgICBwcml2YXRlIHBhcnQg aXMgYmVpbmcgYW5hbHl6ZWQuIFRoZSBmbGFnIGlzIHJlc2V0IGF0IHRoZSBlbmQgb2YgdGhlCi0t ICAgICAgIHBhY2thZ2UgZGVjbGFyYXRpb24uCgotLSAgICBJbm5lcl9JbnN0YW5jZXMgKEVsaXN0 MjMpCi0tICAgICAgUHJlc2VudCBpbiBnZW5lcmljIHVuaXRzLiBDb250YWlucyBlbGVtZW50IGxp c3Qgb2YgdW5pdHMgdGhhdCBhcmUKLS0gICAgICBpbnN0YW50aWF0ZWQgd2l0aGluIHRoZSBnaXZl biBnZW5lcmljLiBVc2VkIHRvIGRpYWdub3NlIGNpcmN1bGFyCi0tICAgICAgaW5zdGFudGlhdGlv bnMuCgotLSAgICBJbnRlcmZhY2VfTmFtZSAoTm9kZTIxKQotLSAgICAgICBQcmVzZW50IGluIGV4 Y2VwdGlvbnMsIGZ1bmN0aW9ucywgcHJvY2VkdXJlcywgdmFyaWFibGVzLCBjb25zdGFudHMsCi0t ICAgICAgIGFuZCBwYWNrYWdlcy4gU2V0IHRvIEVtcHR5IHVubGVzcyBhbiBleHBvcnQsIGltcG9y dCwgb3IgaW50ZXJmYWNlCi0tICAgICAgIG5hbWUgcHJhZ21hIGhhcyBleHBsaWNpdGx5IHNwZWNp ZmllZCBhbiBleHRlcm5hbCBuYW1lLCBpbiB3aGljaAotLSAgICAgICBjYXNlIGl0IHJlZmVyZW5j ZXMgYW4gTl9TdHJpbmdfTGl0ZXJhbCBub2RlIGZvciB0aGUgc3BlY2lmaWVkCi0tICAgICAgIGV4 dGVyYWwgbmFtZS4gSW4gdGhlIGNhc2Ugb2YgZXhjZXB0aW9ucywgdGhlIGZpZWxkIGlzIHNldCBi eQotLSAgICAgICBJbXBvcnRfRXhjZXB0aW9uL0V4cG9ydF9FeGNlcHRpb24gKHdoaWNoIGNhbiBi ZSB1c2VkIGluIE9wZW5WTVMKLS0gICAgICAgdmVyc2lvbnMgb25seSkuIE5vdGUgdGhhdCBpZiB0 aGlzIGZpZWxkIGlzIEVtcHR5LCBhbmQgSXNfSW1wb3J0ZWQKLS0gICAgICAgb3IgSXNfRXhwb3J0 ZWQgaXMgc2V0LCB0aGVuIHRoZSBkZWZhdWx0IGludGVyZmFjZSBuYW1lIGlzIHRoZSBuYW1lCi0t ICAgICAgIG9mIHRoZSBlbnRpdHksIGNhc2VkIGluIGEgbWFubmVyIHRoYXQgaXMgYXBwcm9wcmlh dGUgdG8gdGhlIHN5c3RlbQotLSAgICAgICBpbiB1c2UuIE5vdGUgdGhhdCBJbnRlcmZhY2VfTmFt ZSBpcyBpZ25vcmVkIGlmIGFuIGFkZHJlc3MgY2xhdXNlCi0tICAgICAgIGlzIHByZXNlbnQgKHNp bmNlIGl0IGlzIG1lYW5pbmdsZXNzIGluIHRoaXMgY2FzZSkuCi0tCi0tICAgICAgIEFuIGFkZGl0 aW9uYWwgc3BlY2lhbCBjYXNlIHVzYWdlIG9mIHRoaXMgZmllbGQgaXMgaW4gSkdOQVQgZm9yCi0t ICAgICAgIEVfQ29tcG9uZW50IGFuZCBFX0Rpc2NyaW1pbmFudC4gSkdOQVQgYWxsb3dzIHRoZXNl IGVudGl0aWVzIHRvCi0tICAgICAgIGJlIGltcG9ydGVkIGJ5IHNwZWNpZnlpbmcgcHJhZ21hIElt cG9ydCB3aXRoaW4gYSBjb21wb25lbnQncwotLSAgICAgICBjb250YWluaW5nIHJlY29yZCBkZWZp bml0aW9uLiBUaGlzIHN1cHBvcnRzIGludGVyZmFjaW5nIHRvCi0tICAgICAgIG9iamVjdCBmaWVs ZHMgZGVmaW5lZCB3aXRoaW4gSmF2YSBjbGFzc2VzLCBhbmQgc3VjaCBwcmFnbWFzCi0tICAgICAg IGFyZSBnZW5lcmF0ZWQgYnkgdGhlIGp2bTJhZGEgYmluZGluZyBnZW5lcmF0b3IgdG9vbCB3aGVu ZXZlcgotLSAgICAgICBpdCBwcm9jZXNzZXMgY2xhc3NlcyB3aXRoIHB1YmxpYyBvYmplY3QgZmll bGRzLiBBIHByYWdtYSBJbXBvcnQKLS0gICAgICAgZm9yIGEgY29tcG9uZW50IGNhbiBkZWZpbmUg dGhlIEV4dGVybmFsX05hbWUgb2YgdGhlIGltcG9ydGVkCi0tICAgICAgIEphdmEgZmllbGQgKHdo aWNoIGlzIGdlbmVyYWxseSBuZWVkZWQsIGJlY2F1c2UgSmF2YSBuYW1lcyBhcmUKLS0gICAgICAg Y2FzZSBzZW5zaXRpdmUpLgotLQotLSAgICBJbl9Vc2UgKEZsYWc4KQotLSAgICAgICBQcmVzZW50 IGluIHBhY2thZ2VzIGFuZCB0eXBlcy4gU2V0IHdoZW4gYW5hbHl6aW5nIGEgdXNlIGNsYXVzZSBm b3IKLS0gICAgICAgdGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5LiBSZXNldCBhdCBlbmQgb2YgY29y cmVzcG9uZGluZyBkZWNsYXJhdGl2ZQotLSAgICAgICBwYXJ0LiBUaGUgZmxhZyBvbiBhIHR5cGUg aXMgYWxzbyB1c2VkIHRvIGRldGVybWluZSB0aGUgdmlzaWJpbGl0eSBvZgotLSAgICAgICB0aGUg cHJpbWl0aXZlIG9wZXJhdG9ycyBvZiB0aGUgdHlwZS4KCi0tICAgIElzX0Fic3RyYWN0IChGbGFn MTkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGVzLCBhbmQgYWxzbyBmb3IgZnVuY3Rpb25z IGFuZCBwcm9jZWR1cmVzLiBTZXQKLS0gICAgICAgZm9yIGFic3RyYWN0IHR5cGVzIGFuZCBhYnN0 cmFjdCBzdWJwcm9ncmFtcy4KCi0tICAgIElzX0FjY2Vzc19Db25zdGFudCAoRmxhZzY5KQotLSAg ICAgICBQcmVzZW50IGluIGFjY2VzcyB0eXBlcyBhbmQgc3VidHlwZXMuIEluZGljYXRlcyB0aGF0 IHRoZSBrZXl3b3JkCi0tICAgICAgIGNvbnN0YW50IHdhcyBwcmVzZW50IGluIHRoZSBhY2Nlc3Mg dHlwZSBkZWZpbml0aW9uLgoKLS0gICAgSXNfQWNjZXNzX1R5cGUgKHN5bnRoZXNpemVkKQotLSAg ICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgYWNjZXNzIHR5cGVzIGFuZCBz dWJ0eXBlcwoKLS0gICAgSXNfQWxpYXNlZCAoRmxhZzE1KQotLSAgICAgICBQcmVzZW50IGluIG9i amVjdHMgd2hvc2UgZGVjbGFyYXRpb25zIGNhcnJ5IHRoZSBrZXl3b3JkIGFsaWFzZWQsCi0tICAg ICAgIGFuZCBvbiByZWNvcmQgY29tcG9uZW50cyB0aGF0IGhhdmUgdGhlIGtleXdvcmQuCgotLSAg ICBJc19BbHdheXNfSW5saW5lZCAoc3ludGhlc2l6ZWQpCi0tICAgICAgIFByZXNlbnQgaW4gc3Vi cHJvZ3JhbXMuIFRydWUgaWYgdGhlcmUgaXMgYSBwcmFnbWEgSW5saW5lX0Fsd2F5cyBmb3IKLS0g ICAgICAgdGhlIHN1YnByb2dyYW0uCgotLSAgICBJc19BU1RfRW50cnkgKEZsYWcxMzIpCi0tICAg ICAgIFByZXNlbnQgaW4gZW50cnkgZW50aXRpZXMuIFNldCBpZiBhIHZhbGlkIHByYWdtYSBBU1Rf RW50cnkgYXBwbGllcwotLSAgICAgICB0byB0aGUgZW50cnkuIFRoaXMgZmxhZyBjYW4gb25seSBi ZSBzZXQgaW4gT3BlblZNUyB2ZXJzaW9ucyBvZiBHTkFULgotLSAgICAgICBOb3RlOiB3ZSBhbHNv IGFsbG93IHRoZSBmbGFnIHRvIGFwcGVhciBpbiBlbnRyeSBmYW1pbGllcywgYnV0IGdpdmVuCi0t ICAgICAgIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIHRoZSBwcmFnbWEgQVNUX0VudHJ5 LCB0aGlzIGZsYWcgd2lsbAotLSAgICAgICBhbHdheXMgYmUgRmFsc2UgaW4gZW50cnkgZmFtaWxp ZXMuCgotLSAgICBJc19BdG9taWMgKEZsYWc4NSkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgdHlw ZSBlbnRpdGllcywgYW5kIGFsc28gaW4gY29uc3RhbnRzLCBjb21wb25lbnRzIGFuZAotLSAgICAg ICB2YXJpYWJsZXMuIFNldCBpZiBhIHByYWdtYSBBdG9taWMgb3IgU2hhcmVkIGFwcGxpZXMgdG8g dGhlIGVudGl0eS4KLS0gICAgICAgSW4gdGhlIGNhc2Ugb2YgcHJpdmF0ZSBhbmQgaW5jb21wbGV0 ZSB0eXBlcywgdGhpcyBmbGFnIGlzIHNldCBpbgotLSAgICAgICBib3RoIHRoZSBwYXJ0aWFsIHZp ZXcgYW5kIHRoZSBmdWxsIHZpZXcuCgotLSAgICBJc19BcnJheV9UeXBlIChzeW50aGVzaXplZCkK LS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMsIHRydWUgZm9yIGFycmF5IHR5cGVzIGFu ZCBzdWJ0eXBlcwoKLS0gICAgSXNfQXN5bmNocm9ub3VzIChGbGFnODEpCi0tICAgICAgIFByZXNl bnQgaW4gYWxsIHR5cGUgZW50aXRpZXMgYW5kIGluIHByb2NlZHVyZSBlbnRpdGllcy4gU2V0Ci0t ICAgICAgIGlmIGEgcHJhZ21hIEFzeW5jaHJvbm91cyBhcHBsaWVzIHRvIHRoZSBlbnRpdHkuCgot LSAgICBJc19CaXRfUGFja2VkX0FycmF5IChGbGFnMTIyKQotLSAgICAgICBQcmVzZW50IGluIGFs bCBlbnRpdGllcy4gVGhpcyBmbGFnIGlzIHNldCBmb3IgYSBwYWNrZWQgYXJyYXkKLS0gICAgICAg dHlwZSB0aGF0IGlzIGJpdCBwYWNrZWQgKGkuZS4gdGhlIGNvbXBvbmVudCBzaXplIGlzIGtub3du IGJ5IHRoZQotLSAgICAgICBmcm9udCBlbmQgYW5kIGlzIGluIHRoZSByYW5nZSAxLTcsIDktMTUs IG9yIDE3LTMxKS4gSXNfUGFja2VkIGlzCi0tICAgICAgIGFsd2F5cyBzZXQgaWYgSXNfQml0X1Bh Y2tlZF9BcnJheSBpcyBzZXQsIGJ1dCBpdCBpcyBwb3NzaWJsZSBmb3IKLS0gICAgICAgSXNfUGFj a2VkIHRvIGJlIHNldCB3aXRob3V0IElzX0JpdF9QYWNrZWRfQXJyYXkgb3IgdGhlIGNhc2Ugb2Yg YW4KLS0gICAgICAgYXJyYXkgaGF2aW5nIG9uZSBvciBtb3JlIGluZGV4IHR5cGVzIHRoYXQgYXJl IGVudW1lcmF0aW9uIHR5cGVzCi0tICAgICAgIHdpdGggbm9uLXN0YW5kYXJkIGVudW1lcmF0aW9u IHJlcHJlc2VudGF0aW9ucy4KCi0tICAgIElzX0Jvb2xlYW5fVHlwZSAoc3ludGhlc2l6ZWQpCi0t ICAgICAgIEFwcGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBib29sZWFuIHR5cGVzIGFu ZCBzdWJ0eXBlcywKLS0gICAgICAgaS5lLiBTdGFuZGFyZC5Cb29sZWFuIGFuZCBhbGwgdHlwZXMg dWx0aW1hdGVseSBkZXJpdmVkIGZyb20gaXQuCgotLSAgICBJc19CeV9Db3B5X1R5cGUgKHN5bnRo ZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCB0eXBlIGVudGl0aWVzLiBSZXR1cm5zIHRy dWUgaWYgdGhlIGVudGl0eSBpcwotLSAgICAgICBhIGJ5IGNvcHkgdHlwZSAoUk0gNi4yKDMpKS4K Ci0tICAgIElzX0J5X1JlZmVyZW5jZV9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGll cyB0byBhbGwgdHlwZSBlbnRpdGllcy4gVHJ1ZSBpZiB0aGUgdHlwZSBpcyByZXF1aXJlZCB0bwot LSAgICAgICBiZSBwYXNzZWQgYnkgcmVmZXJlbmNlLCBhcyBkZWZpbmVkIGluIChSTSA2LjIoNC05 KSkuCgotLSAgICBJc19DYWxsZWQgKEZsYWcxMDIpCi0tICAgICAgIFByZXNlbnQgaW4gc3VicHJv Z3JhbXMuIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3VicHJvZ3JhbSBpcyBjYWxsZWQKLS0gICAgICAg aW4gdGhlIHVuaXQgYmVpbmcgY29tcGlsZWQgb3IgaW4gYSB1bml0IGluIHRoZSBjb250ZXh0LiBV c2VkIGZvcgotLSAgICAgICBpbmxpbmluZy4KCi0tICAgIElzX0NoYXJhY3Rlcl9UeXBlIChGbGFn NjMpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBjaGFyYWN0ZXIg dHlwZXMgYW5kIHN1YnR5cGVzLAotLSAgICAgICBpLmUuIGVudW1lcmF0aW9uIHR5cGVzIHRoYXQg aGF2ZSBhdCBsZWFzdCBvbmUgY2hhcmFjdGVyIGxpdGVyYWwuCgotLSAgICBJc19DaGlsZF9Vbml0 IChGbGFnNzMpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgb25seSBmb3Ig ZGVmaW5pbmcgZW50aXRpZXMgb2YgcHJvZ3JhbQotLSAgICAgICB1bml0cyB0aGF0IGFyZSBjaGls ZCB1bml0cyAoYnV0IEZhbHNlIGZvciBzdWJ1bml0cykuCgotLSAgICBJc19DbGFzc19XaWRlX1R5 cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBm b3IgY2xhc3Mgd2lkZSB0eXBlcyBhbmQgc3VidHlwZXMKCi0tICAgIElzX0NvbXBpbGF0aW9uX1Vu aXQgKEZsYWcxNDkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgdGhl IGVudGl0eSBpcyBhIHBhY2thZ2Ugb3Igc3VicHJvZ3JhbQotLSAgICAgICBlbnRpdHkgZm9yIGEg Y29tcGlsYXRpb24gdW5pdCBvdGhlciB0aGFuIGEgc3VidW5pdCAoc2luY2Ugd2UgdHJlYXQKLS0g ICAgICAgc3VidW5pdHMgYXMgcGFydCBvZiB0aGUgc2FtZSBjb21waWxhdGlvbiBvcGVyYXRpb24g YXMgdGhlIHVsdGltYXRlCi0tICAgICAgIHBhcmVudCwgd2UgZG8gbm90IGNvbnNpZGVyIHRoZW0g dG8gYmUgc2VwYXJhdGUgdW5pdHMgZm9yIHRoaXMgZmxhZykuCgotLSAgICBJc19Db21wbGV0ZWx5 X0hpZGRlbiAoRmxhZzEwMykKLS0gICAgICAgQSBmbGFnIHNldCBvbiBhbiBFX0Rpc2NyaW1pbmFu dCBlbnRpdHkuIFRoaXMgZmxhZyBjYW4gYmUgc2V0IG9ubHkKLS0gICAgICAgZm9yIGdpcmRlciBk aXNjcmltaW5hbnRzIG9mIHVudGFnZ2VkIHR5cGVzLiBXaGVuIHNldCwgdGhlIGVudGl0eQotLSAg ICAgICBpcyBhIGdpcmRlciBkaXNjcmltaW5hbnQgb2YgYSBkZXJpdmVkIHVudGFnZ2VkIHR5cGUg d2hpY2ggaXMgbm90Ci0tICAgICAgIGRpcmVjdGx5IHZpc2libGUgaW4gdGhlIGRlcml2ZWQgdHlw ZSBiZWNhdXNlIHRoZSBkZXJpdmVkIHR5cGUgb3IKLS0gICAgICAgb25lIG9mIGl0cyBhbmNlc3Rv cnMgaGF2ZSByZW5hbWVkIHRoZSBkaXNjcmltaW5hbnRzIGluIHRoZSByb290Ci0tICAgICAgIHR5 cGUuIE5vdGUgdGhhdCB0aGVyZSBhcmUgZ2lyZGVyIGRpc2NyaW1pbmFudHMgd2hpY2ggYXJlIG5v dAotLSAgICAgICBDb21wbGV0ZWx5X0hpZGRlbiAoZWcgdGhlIGRpc2NyaW1pbmFudHMgb2YgYSBy b290IHR5cGUpLgoKLS0gICAgSXNfQ29tcG9zaXRlX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAg ICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgYWxsIGNvbXBvc2l0ZSB0eXBlcyBh bmQKLS0gICAgICAgc3VidHlwZXMuIEVpdGhlciBJc19Db21wb3NpdGVfVHlwZSBvciBJc19FbGVt ZW50YXJ5X1R5cGUgKGJ1dAotLSAgICAgICBub3QgYm90aCkgaXMgdHJ1ZSBvZiBhbnkgdHlwZS4K Ci0tICAgIElzX0NvbmN1cnJlbnRfUmVjb3JkX1R5cGUgKEZsYWcyMCkKLS0gICAgICAgUHJlc2Vu dCBpbiByZWNvcmQgdHlwZXMgYW5kIHN1YnR5cGVzLiBTZXQgaWYgdGhlIHR5cGUgd2FzIGNyZWF0 ZWQKLS0gICAgICAgYnkgdGhlIGV4cGFuZGVyIHRvIHJlcHJlc2VudCBhIHRhc2sgb3IgcHJvdGVj dGVkIHR5cGUuIEZvciBldmVyeQotLSAgICAgICBjb25jdXJyZW50IHR5cGUsIHN1Y2ggYXMgcmVj b3JkIHR5cGUgaXMgY29uc3RydWN0ZWQsIGFuZCB0YXNrIGFuZAotLSAgICAgICBwcm90ZWN0ZWQg b2JqZWN0cyBhcmUgaW5zdGFuY2VzIG9mIHRoaXMgcmVjb3JkIHR5cGUgYXQgcnVudGltZQotLSAg ICAgICAoR2lnaSB3aWxsIHJlcGxhY2UgZGVjbGFyYXRpb25zIG9mIHRoZSBjb25jdXJyZW50IHR5 cGUgdXNpbmcgdGhlCi0tICAgICAgIGRlY2xhcmF0aW9ucyBvZiB0aGUgY29ycmVzcG9uZGluZyBy ZWNvcmQgdHlwZSkuIFNlZSBwYWNrYWdlIEV4cF9DaDkKLS0gICAgICAgZm9yIGZ1cnRoZXIgZGV0 YWlscy4KCi0tICAgIElzX0NvbmN1cnJlbnRfVHlwZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFw cGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciB0YXNrIHR5cGVzIGFuZCBzdWJ0eXBlcyBh bmQKLS0gICAgICAgZm9yIHByb3RlY3RlZCB0eXBlcyBhbmQgc3VidHlwZXMuCgotLSAgICBJc19D b25zdHJhaW5lZCAoRmxhZzEyKQotLSAgICAgICBQcmVzZW50IGluIHR5cGVzIG9yIHN1YnR5cGVz IHdoaWNoIG1heSBoYXZlIGluZGV4LCBkaXNjcmltaW5hbnQKLS0gICAgICAgb3IgcmFuZ2UgY29u c3RyYWludCAoaS5lLiBhcnJheSB0eXBlcyBhbmQgc3VidHlwZXMsIHJlY29yZCB0eXBlcwotLSAg ICAgICBhbmQgc3VidHlwZXMsIHN0cmluZyB0eXBlcyBhbmQgc3VidHlwZXMsIGFuZCBhbGwgbnVt ZXJpYyB0eXBlcykuCi0tICAgICAgIFNldCBpZiB0aGUgdHlwZSBvciBzdWJ0eXBlIGlzIGNvbnN0 cmFpbmVkLgoKLS0gICAgSXNfQ29uc3RyX1N1YnRfRm9yX1VfTm9taW5hbCAoRmxhZzgwKQotLSAg ICAgICBQcmVzZW50IGluIGFsbCB0eXBlcyBhbmQgc3VidHlwZXMuIFNldCB0cnVlIG9ubHkgZm9y IHRoZSBjb25zdHJ1Y3RlZAotLSAgICAgICBzdWJ0eXBlIG9mIGFuIG9iamVjdCB3aG9zZSBub21p bmFsIHN1YnR5cGUgaXMgdW5jb25zdHJhaW5lZC4gTm90ZQotLSAgICAgICB0aGF0IHRoZSBjb25z dHJ1Y3RlZCBzdWJ0eXBlIGl0c2VsZiB3aWxsIGJlIGNvbnN0cmFpbmVkLgoKLS0gICAgSXNfQ29u c3RyX1N1YnRfRm9yX1VOX0FsaWFzZWQgKEZsYWcxNDEpCi0tICAgICAgIFRoaXMgZmxhZyBjYW4g b25seSBiZSBzZXQgaWYgSXNfQ29uc3RyX1N1YnRfRm9yX1VfTm9taW5hbCBpcyBzZXQuIEl0Ci0t ICAgICAgIGluZGljYXRlcyB0aGF0IGluIGFkZGl0aW9uIHRoZSBvYmplY3QgY29uY2VybmVkIGlz IGFsaWFzZWQuIFRoaXMgZmxhZwotLSAgICAgICBpcyB1c2VkIGJ5IEdpZ2kgdG8gZGV0ZXJtaW5l IHdoZXRoZXIgYSB0ZW1wbGF0ZSBtdXN0IGJlIGNvbnN0cnVjdGVkLgoKLS0gICAgSXNfQ29uc3Ry dWN0b3IgKEZsYWc3NikKLS0gICAgICAgUHJlc2VudCBpbiBmdW5jdGlvbiBhbmQgcHJvY2VkdXJl IGVudGl0aWVzLiBTZXQgaWYgYSBwcmFnbWEKLS0gICAgICAgQ1BQX0NvbnN0cnVjdG9yIGFwcGxp ZXMgdG8gdGhlIHN1YnByb2dyYW0uCgotLSAgICBJc19Db250cm9sbGVkIChGbGFnNDIpIFtiYXNl IHR5cGUgb25seV0KLS0gICAgICAgUHJlc2VudCBpbiBhbGwgdHlwZSBlbnRpdGllcy4gSW5kaWNh dGVzIHRoYXQgdGhlIHR5cGUgaXMgY29udHJvbGxlZCwKLS0gICAgICAgaS5lLiBpcyBlaXRoZXIg YSBkZXNjZW5kYW50IG9mIEFkYS5GaW5hbGl6YXRpb24uQ29udHJvbGxlZCBvciBvZgotLSAgICAg ICBBZGEuRmluYWxpemF0aW9uLkxpbWl0ZWRfQ29udHJvbGxlZC4KCi0tICAgIElzX0NvbnRyb2xs aW5nX0Zvcm1hbCAoRmxhZzk3KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBGb3JtYWxfS2luZCBl bnRpdHkuIE1hcmtzIHRoZSBjb250cm9sbGluZyBwYXJhbWV0ZXJzCi0tICAgICAgIG9mIGRpc3Bh dGNoaW5nIG9wZXJhdGlvbnMuCgotLSAgICBJc19DUFBfQ2xhc3MgKEZsYWc3NCkKLS0gICAgICAg UHJlc2VudCBpbiBhbGwgdHlwZSBlbnRpdGllcywgc2V0IG9ubHkgZm9yIHRhZ2dlZCBhbmQgdW50 YWdnZWQKLS0gICAgICAgcmVjb3JkIHR5cGVzIHRvIHdoaWNoIHRoZSBwcmFnbWEgQ1BQX0NsYXNz IGhhcyBiZWVuIGFwcGxpZWQuCgotLSAgICBJc19EZWNpbWFsX0ZpeGVkX1BvaW50X1R5cGUgKHN5 bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCB0eXBlIGVudGl0aWVzLCB0cnVlIGZv ciBkZWNpbWFsIGZpeGVkIHBvaW50Ci0tICAgICAgIHR5cGVzIGFuZCBzdWJ0eXBlcy4KCi0tICAg IElzX0Rlcml2ZWRfVHlwZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gYWxsIHR5 cGUgZW50aXRpZXMuIERldGVybWluZSBpZiBnaXZlbiBlbnRpdHkgaXMgYQotLSAgICAgICBkZXJp dmVkIHR5cGUKCi0tICAgIElzX0Rlc3RydWN0b3IgKEZsYWc3NykKLS0gICAgICAgUHJlc2VudCBp biBmdW5jdGlvbiBhbmQgcHJvY2VkdXJlIGVudGl0aWVzLiBTZXQgaWYgYSBwcmFnbWEKLS0gICAg ICAgQ1BQX0Rlc3RydWN0b3IgYXBwbGllcyB0byB0aGUgc3VicHJvZ3JhbS4KCi0tICAgIElzX0Rp c2NyZXRlX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGll cywgdHJ1ZSBmb3IgYWxsIGRpc2NyZXRlIHR5cGVzIGFuZCBzdWJ0eXBlcwoKLS0gICAgSXNfRGlz Y3JldGVfX09yX0ZpeGVkX1BvaW50X1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVz IHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgYWxsIGRpc2NyZXRlIHR5cGVzIGFuZCBzdWJ0eXBl cwotLSAgICAgICBhbmQgYWxsIGZpeGVkLXBvaW50IHR5cGVzIGFuZCBzdWJ0eXBlcy4KCi0tICAg IElzX0Rpc2NyaW1fU09fRnVuY3Rpb24gKEZsYWcxNzYpCi0tICAgICAgIFByZXNlbnQgaW4gYWxs IGVudGl0aWVzLCBzZXQgb25seSBpbiBFX0Z1bmN0aW9uIGVudGl0aWVzIHRoYXQgTGF5b3V0Ci0t ICAgICAgIGNyZWF0ZXMgdG8gY29tcHV0ZSBkaXNjcmltaW5hbnQtZGVwZW5kZW50IGR5bmFtaWMg c2l6ZS9vZmZzZXQgdmFsdWVzLgoKLS0gICAgSXNfRGlzcGF0Y2hpbmdfT3BlcmF0aW9uIChGbGFn NikKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCB0cnVlIGZvciBwcm9jZWR1 cmVzLCBmdW5jdGlvbnMsCi0tICAgICAgIGdlbmVyaWMgcHJvY2VkdXJlcyBhbmQgZ2VuZXJpYyBm dW5jdGlvbnMgaWYgdGhlIGNvcnJlc3BvbmRpbmcKLS0gICAgICAgb3BlcmF0aW9uIGlzIGRpc3Bh dGNoaW5nLgoKLS0gICAgSXNfRHluYW1pY19TY29wZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFw cGxpZXMgdG8gYWxsIEVudGl0aWVzLiBSZXR1cm5zIFRydWUgaWYgdGhlIGVudGl0eSBpcyBhIGR5 bmFtaWMKLS0gICAgICAgc2NvcGUgKGkuZS4gYSBibG9jaywgYSBzdWJwcm9ncmFtIGEgdGFza190 eXBlIG9yIGFuIGVudHJ5KS4KCi0tICAgIElzX0VsZW1lbnRhcnlfVHlwZSAoc3ludGhlc2l6ZWQp Ci0tICAgICAgIEFwcGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBhbGwgZWxlbWVudGFy eSB0eXBlcyBhbmQKLS0gICAgICAgc3VidHlwZXMuIEVpdGhlciBJc19Db21wb3NpdGVfVHlwZSBv ciBJc19FbGVtZW50YXJ5X1R5cGUgKGJ1dAotLSAgICAgICBub3QgYm90aCkgaXMgdHJ1ZSBvZiBh bnkgdHlwZS4KCi0tICAgIElzX0VsaW1pbmF0ZWQgKEZsYWcxMjQpCi0tICAgICAgIFByZXNlbnQg aW4gdHlwZSBlbnRpdGllcywgc3VicHJvZ3JhbSBlbnRpdGllcywgYW5kIG9iamVjdCBlbnRpdGll cy4KLS0gICAgICAgSW5kaWNhdGVzIHRoYXQgdGhlIGNvcnJlc3BvbmRpbmcgZW50aXR5IGhhcyBi ZWVuIGVsaW1pbmF0ZWQgYnkgdXNlCi0tICAgICAgIG9mIHByYWdtYSBFbGltaW5hdGUuCgotLSAg ICBJc19FbnVtZXJhdGlvbl9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgUHJlc2VudCBpbiBh bGwgZW50aXRpZXMsIHRydWUgZm9yIGVudW1lcmF0aW9uIHR5cGVzIGFuZCBzdWJ0eXBlcwoKLS0g ICAgSXNfRW50cnkgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGll cywgVHJ1ZSBvbmx5IGZvciBlbnRyeSBhbmQgZW50cnkgZmFtaWx5Ci0tICAgICAgIGVudGl0aWVz IGFuZCBGYWxzZSBmb3IgYWxsIG90aGVyIGVudGl0eSBraW5kcy4KCi0tICAgIElzX0VudHJ5X0Zv cm1hbCAoRmxhZzUyKQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IG9ubHkg Zm9yIGVudHJ5IGZvcm1hbHMgKHdoaWNoIGNhbgotLSAgICAgICBvbmx5IGJlIGluLCBpbi1vdXQg b3Igb3V0IHBhcmFtZXRlcnMpLiBUaGlzIGZsYWcgaXMgdXNlZCB0byBzcGVlZAotLSAgICAgICB1 cCB0aGUgdGVzdCBmb3IgdGhlIG5lZWQgdG8gcmVwbGFjZSByZWZlcmVuY2VzIGluIEV4cF9DaDIu CgotLSAgICBJc19FeHBvcnRlZCAoRmxhZzk5KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRp dGllcy4gU2V0IGlmIHRoZSBlbnRpdHkgaXMgZXhwb3J0ZWQuIEZvciBub3cgd2UKLS0gICAgICAg b25seSBhbGxvdyB0aGUgZXhwb3J0IG9mIGNvbnN0YW50cywgZXhjZXB0aW9ucywgZnVuY3Rpb25z LCBwcm9jZWR1cmVzCi0tICAgICAgIGFuZCB2YXJpYWJsZXMsIGJ1dCB0aGF0IG1heSB3ZWxsIGNo YW5nZSBsYXRlciBvbi4gRXhjZXB0aW9ucyBjYW4gb25seQotLSAgICAgICBiZSBleHBvcnRlZCBp biB0aGUgT3BlblZNUyBhbmQgSmF2YSBWTSBpbXBsZW1lbnRhdGlvbnMgb2YgR05BVC4KCi0tICAg IElzX0ZpcnN0X1N1YnR5cGUgKEZsYWc3MCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRp ZXMuIFRydWUgZm9yIGZpcnN0IHN1YnR5cGVzIChSTSAzLjIuMSg2KSksCi0tICAgICAgIGkuZS4g dGhlIGVudGl0eSBpbiB0aGUgdHlwZSBkZWNsYXJhdGlvbiB0aGF0IGludHJvZHVjZWQgdGhlIHR5 cGUuCi0tICAgICAgIFRoaXMgbWF5IGJlIHRoZSBiYXNlIHR5cGUgaXRzZWxmIChlLmcuIGZvciBy ZWNvcmQgZGVjbGFyYXRpb25zIGFuZAotLSAgICAgICBlbnVtZXJhdGlvbiB0eXBlIGRlY2xhcmF0 aW9ucyksIG9yIGl0IG1heSBiZSB0aGUgZmlyc3Qgc3VidHlwZSBvZgotLSAgICAgICBhbiBhbm9u eW1vdXMgYmFzZSB0eXBlIChlLmcuIGZvciBpbnRlZ2VyIHR5cGUgZGVjbGFyYXRpb25zIG9yCi0t ICAgICAgIGNvbnN0cmFpbmVkIGFycmF5IGRlY2xhcmF0aW9ucykuCgotLSAgICBJc19GaXhlZF9Q b2ludF9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMs IHRydWUgZm9yIGRlY2ltYWwgYW5kIG9yZGluYXJ5IGZpeGVkCi0tICAgICAgIHBvaW50IHR5cGVz IGFuZCBzdWJ0eXBlcwoKLS0gICAgSXNfRmxvYXRpbmdfUG9pbnRfVHlwZSAoc3ludGhlc2l6ZWQp Ci0tICAgICAgIEFwcGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBmbG9hdCB0eXBlcyBh bmQgc3VidHlwZXMKCi0tICAgIElzX0Zvcm1hbCAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxp ZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBJTiwgSU4gT1VUIGFuZCBPVVQgcGFyYW1ldGVy cwoKLS0gICAgSXNfRm9ybWFsX1N1YnByb2dyYW0gKEZsYWcxMTEpCi0tICAgICAgIERlZmluZWQg b24gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBnZW5lcmljIGZvcm1hbCBzdWJwcm9ncmFtcy4KCi0t ICAgIElzX0Zvcl9BY2Nlc3NfU3VidHlwZSAoRmxhZzExOCkKLS0gICAgICAgUHJlc2VudCBpbiBF X1ByaXZhdGVfU3VidHlwZSBhbmQgRV9SZWNvcmRfU3VidHlwZSBlbnRpdGllcy4KLS0gICAgICAg TWVhbnMgdGhlIHNvbGUgcHVycG9zZSBvZiB0aGUgdHlwZSBpcyB0byBiZSBkZXNpZ25hdGVkIGJ5 IGFuCi0tICAgICAgIEFjY2Vzc19TdWJ0eXBlIGFuZCBoZW5jZSBzaG91bGQgbm90IGJlIGV4cGFu ZGVkIGludG8gY29tcG9uZW50cwotLSAgICAgICBiZWNhdXNlIHRoZSB0eXBlIG1heSBub3QgaGF2 ZSBiZWVuIGZvdW5kIG9yIGZyb3plbiB5ZXQuCgotLSAgICBJc19Gcm96ZW4gKEZsYWc0KQotLSAg ICAgICBQcmVzZW50IGluIGFsbCB0eXBlIGVudGl0aWVzLiBTZXQgaWYgdGhlIHR5cGUgaGFzIGJl ZW4gZnJvemVuLgoKLS0gICAgSXNfR2VuZXJpY19BY3R1YWxfVHlwZSAoRmxhZzk0KQotLSAgICAg ICBQcmVzZW50IGluIHRoZSBzdWJ0eXBlIGRlY2xhcmF0aW9uIHRoYXQgcmVuYW1lcyB0aGUgZ2Vu ZXJpYyBmb3JtYWwKLS0gICAgICAgYXMgYSBzdWJ0eXBlIG9mIHRoZSBhY3R1YWwuIEd1YXJhbnRl ZXMgdGhhdCB0aGUgc3VidHlwZSBpcyBub3Qgc3RhdGljCi0tICAgICAgIHdpdGhpbiB0aGUgaW5z dGFuY2UuCgotLSAgICBJc19HZW5lcmljX0luc3RhbmNlIChGbGFnMTMwKQotLSAgICAgICBQcmVz ZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IHRvIGluZGljYXRlIHRoYXQgdGhlIGVudGl0eSBpcyBh bgotLSAgICAgICBpbnN0YW5jZSBvZiBhIGdlbmVyaWMgdW5pdC4KCi0tICAgIElzX0dlbmVyaWNf VHlwZSAoRmxhZzEzKQotLSAgICAgICBQcmVzZW50IGluIHR5cGVzIHdoaWNoIGFyZSBnZW5lcmlj IGZvcm1hbCB0eXBlcy4gU3VjaCB0eXBlcyBoYXZlIGFuCi0tICAgICAgIEVraW5kIHRoYXQgY29y cmVzcG9uZHMgdG8gdGhlaXIgY2xhc3NpZmljYXRpb24sIHNvIHRoZSBFa2luZCBjYW5ub3QKLS0g ICAgICAgYmUgdXNlZCB0byBpZGVudGlmeSBnZW5lcmljIHR5cGVzLgoKLS0gICAgSXNfR2VuZXJp Y19Vbml0IChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMuIFlp ZWxkcyBUcnVlIGZvciBhIGdlbmVyaWMgdW5pdCAoZ2VuZXJpYwotLSAgICAgICBwYWNrYWdlLCBn ZW5lcmljIGZ1bmN0aW9uLCBnZW5lcmljIHByb2NlZHVyZSksIGFuZCBGYWxzZSBmb3IgYWxsCi0t ICAgICAgIG90aGVyIGVudGl0aWVzLgoKLS0gICAgSXNfSGlkZGVuIChGbGFnNTcpCi0tICAgICAg IFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgdHJ1ZSBmb3IgYWxsIGVudGl0aWVzIGRlY2xh cmVkIGluIHRoZQotLSAgICAgICBwcml2YXRlIHBhcnQgb3IgYm9keSBvZiBhIHBhY2thZ2UuIEFs c28gbWFya3MgZ2VuZXJpYyBmb3JtYWxzIG9mIGEKLS0gICAgICAgZm9ybWFsIHBhY2thZ2UgZGVj bGFyZWQgd2l0aG91dCBhIGJveC4gRm9yIGxpYnJhcnkgbGV2ZWwgZW50aXRpZXMsCi0tICAgICAg IHRoaXMgZmxhZyBpcyBzZXQgaWYgdGhlIGVudGl0eSBpcyBub3QgcHVibGljbHkgdmlzaWJsZS4K Ci0tICAgIElzX0hpZGRlbl9PcGVuX1Njb3BlIChGbGFnMTcxKQotLSAgICAgICBQcmVzZW50IGlu IGFsbCBlbnRpdGllcy4gU2V0IHRydWUgZm9yIGEgc2NvcGUgdGhhdCBjb250YWlucyB0aGUKLS0g ICAgICAgaW5zdGFudGlhdGlvbiBvZiBhIGNoaWxkIHVuaXQsIGFuZCB3aG9zZSBlbnRpdGllcyBh cmUgbm90IHZpc2libGUKLS0gICAgICAgZHVyaW5nIGFuYWx5c2lzIG9mIHRoZSBpbnN0YW5jZS4K Ci0tICAgIElzX0ltbWVkaWF0ZWx5X1Zpc2libGUgKEZsYWc3KQotLSAgICAgICBQcmVzZW50IGlu IGFsbCBlbnRpdGllcy4gU2V0IGlmIGVudGl0eSBpcyBpbW1lZGlhdGVseSB2aXNpYmxlLCBpLmUu Ci0tICAgICAgIGlzIGRlZmluZWQgaW4gc29tZSBjdXJyZW50bHkgb3BlbiBzY29wZSAoUk0gOC4z KDQpKS4KCi0tICAgIElzX0ltcG9ydGVkIChGbGFnMjQpCi0tICAgICAgIFByZXNlbnQgaW4gYWxs IGVudGl0aWVzLiBTZXQgaWYgdGhlIGVudGl0eSBpcyBpbXBvcnRlZC4gRm9yIG5vdyB3ZQotLSAg ICAgICBvbmx5IGFsbG93IHRoZSBpbXBvcnQgb2YgZXhjZXB0aW9ucywgZnVuY3Rpb25zLCBwcm9j ZWR1cmVzLCBwYWNrYWdlcy4KLS0gICAgICAgYW5kIHZhcmlhYmxlcy4gRXhjZXB0aW9ucyBjYW4g b25seSBiZSBpbXBvcnRlZCBpbiB0aGUgT3BlblZNUyBhbmQKLS0gICAgICAgSmF2YSBWTSBpbXBs ZW1lbnRhdGlvbnMgb2YgR05BVC4gUGFja2FnZXMgYW5kIHR5cGVzIGNhbiBvbmx5IGJlCi0tICAg ICAgIGltcG9ydGVkIGluIHRoZSBKYXZhIFZNIGltcGxlbWVudGF0aW9uLgoKLS0gICAgSXNfSW5j b21wbGV0ZV9Pcl9Qcml2YXRlX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRv IGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgcHJpdmF0ZSBhbmQgaW5jb21wbGV0ZSB0eXBlcwoKLS0g ICAgSXNfSW5kZWZpbml0ZV9TdWJ0eXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0 byBhbGwgZW50aXRpZXMgZm9yIHR5cGVzIGFuZCBzdWJ0eXBlcy4gRGV0ZXJtaW5lcyBpZiBnaXZl bgotLSAgICAgICBlbnRpdHkgaXMgYW4gdW5jb25zdHJhaW5lZCBhcnJheSB0eXBlIG9yIHN1YnR5 cGUsIGEgZGlzY3JpbWluYXRlZAotLSAgICAgICByZWNvcmQgdHlwZSBvciBzdWJ0eXBlIHdpdGgg bm8gaW5pdGlhbCBkaXNjcmltaW5hbnQgdmFsdWVzIG9yIGEKLS0gICAgICAgY2xhc3Mgd2lkZSB0 eXBlIG9yIHN1YnR5cGUuCgotLSAgICBJc19JbmxpbmVkIChGbGFnMTEpCi0tICAgICAgIFByZXNl bnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB3aGlj aCBhcmUKLS0gICAgICAgdG8gYmUgaW5saW5lZC4gRm9yIHN1YnByb2dyYW1zIGNyZWF0ZWQgZHVy aW5nIGV4cGFuc2lvbiwgdGhpcyBmbGFnCi0tICAgICAgIG1heSBiZSBzZXQgZGlyZWN0bHkgYnkg dGhlIGV4cGFuZGVyIHRvIHJlcXVlc3QgaW5saW5pbmcuIEFsc28gc2V0Ci0tICAgICAgIGZvciBw YWNrYWdlcyB0aGF0IGNvbnRhaW4gaW5saW5lZCBzdWJwcm9ncmFtcywgd2hvc2UgYm9kaWVzIG11 c3QgYmUKLS0gICAgICAgYmUgY29tcGlsZWQuIElzX0lubGluZWQgaXMgYWxzbyBzZXQgb24gZ2Vu ZXJpYyBzdWJwcm9ncmFtcyBhbmQgaXMKLS0gICAgICAgaW5oZXJpdGVkIGJ5IHRoZWlyIGluc3Rh bmNlcy4gSXQgaXMgYWxzbyBzZXQgb24gdGhlIGJvZHkgZW50aXRpZXMKLS0gICAgICAgb2YgaW5s aW5lZCBzdWJwcm9ncmFtcy4gU2VlIGFsc28gSGFzX1ByYWdtYV9JbmxpbmUuCgotLSAgICBJc19J bnN0YW50aWF0ZWQgKEZsYWcxMjYpCi0tICAgICAgIFByZXNlbnQgaW4gZ2VuZXJpYyBwYWNrYWdl cyBhbmQgZ2VuZXJpYyBzdWJwcm9ncmFtcy4gU2V0IGlmIHRoZSB1bml0Ci0tICAgICAgIGlzIGlu c3RhbnRpYXRlZCBmcm9tIHNvbWV3aGVyZSBpbiB0aGUgZXh0ZW5kZWQgbWFpbiBzb3VyY2UgdW5p dC4gVGhpcwotLSAgICAgICBmbGFnIGlzIHVzZWQgdG8gY29udHJvbCB3YXJuaW5ncyBhYm91dCB0 aGUgdW5pdCBiZWluZyB1bmluc3RhbnRpYXRlZC4KLS0gICAgICAgQWxzbyBzZXQgaW4gYSBwYWNr YWdlIHRoYXQgaXMgdXNlZCBhcyBhbiBhY3R1YWwgZm9yIGEgZ2VuZXJpYyBwYWNrYWdlCi0tICAg ICAgIGZvcm1hbCBpbiBhbiBpbnN0YW50aWF0aW9uLiBBbHNvIHNldCBvbiBhIHBhcmVudCBpbnN0 YW5jZSwgaW4gdGhlCi0tICAgICAgIGluc3RhbnRpYXRpb24gb2YgYSBjaGlsZCwgd2hpY2ggaXMg aW1wbGljaXRseSBkZWNsYXJlZCBpbiB0aGUgcGFyZW50LgoKLS0gICAgSXNfSW50ZWdlcl9UeXBl IChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMsIHRydWUgZm9y IGludGVnZXIgdHlwZXMgYW5kIHN1YnR5cGVzCgotLSAgICBJc19JbnRlcm5hbCAoRmxhZzE3KQot LSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IHRvIGluZGljYXRlIGFuIGVudGl0 eSBjcmVhdGVkIGR1cmluZwotLSAgICAgICBzZW1hbnRpYyBwcm9jZXNzaW5nIChlLmcuIGFuIGlt cGxpY2l0IHR5cGUpLiBOZWVkIG1vcmUgZG9jdW1lbnRhdGlvbgotLSAgICAgICBvbiB0aGlzIG9u ZSEgPz8/CgotLSAgICBJc19JbnRlcnJ1cHRfSGFuZGxlciAoRmxhZzg5KQotLSAgICAgICBQcmVz ZW50IGluIHByb3RlY3RlZCBwcm9jZWR1cmVzLiBTZXQgaWYgYSBwcmFnbWEgSW50ZXJydXB0X0hh bmRsZXIKLS0gICAgICAgYXBwbGllcyB0byB0aGUgcHJvY2VkdXJlICh3aGljaCBtdXN0IGJlIHBh cmFtZXRlcmxlc3MpLgoKLS0gICAgSXNfSW50cmluc2ljX1N1YnByb2dyYW0gKEZsYWc2NCkKLS0g ICAgICAgUHJlc2VudCBpbiBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMuIEl0IGlzIHNldCBpZiBh IHZhbGlkIHByYWdtYQotLSAgICAgICBJbnRlcmZhY2Ugb3IgSW1wb3J0IGlzIHByZXNlbnQgZm9y IHRoaXMgc3VicHJvZ3JhbSBzcGVjaWZ5aW5nIHByYWdtYQotLSAgICAgICBJbnRyaW5zaWMuIFZh bGlkIG1lYW5zIHRoYXQgdGhlIG5hbWUgYW5kIHByb2ZpbGUgb2YgdGhlIHN1YnByb2dyYW0KLS0g ICAgICAgbWF0Y2ggdGhlIHJlcXVpcmVtZW50cyBvZiBvbmUgb2YgdGhlIHJlY29nbml6ZWQgaW50 cmluc2ljIHN1YnByb2dyYW1zCi0tICAgICAgIChzZWUgcGFja2FnZSBTZW1fSW50ciBmb3IgZGV0 YWlscykuIE5vdGU6IHRoZSB2YWx1ZSBvZiBDb252ZW50aW9uIGZvcgotLSAgICAgICBzdWNoIGFu IGVudGl0eSB3aWxsIGJlIHNldCB0byBDb252ZW50aW9uX0ludHJpbnNpYywgYnV0IGl0IGlzIHRo ZQotLSAgICAgICBzZXR0aW5nIG9mIElzX0ludHJpbnNpY19TdWJwcm9ncmFtLCBOT1Qgc2ltcGx5 IGhhdmluZyBjb252ZW50aW9uIHNldAotLSAgICAgICB0byBpbnRyaW5zaWMsIHdoaWNoIGNhdXNl cyBpbnRyaW5zaWMgY29kZSB0byBiZSBnZW5lcmF0ZWQuCgotLSAgICBJc19JdHlwZSAoRmxhZzkx KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcywgc2V0IGZvciBJdHlwZXMuIElmIGl0 IGlzIHNldCwgdGhlbiB0aGUKLS0gICAgICAgZGVjbGFyYXRpb24gZm9yIHRoZSB0eXBlIGRvZXMg bm90IGFwcGVhciBleHBsaWNpdGx5IGluIHRoZSB0cmVlLgotLSAgICAgICBJbnN0ZWFkIGdpZ2kg d2lsbCBlbGFib3JhdGUgdGhlIHR5cGUgd2hlbiBpdCBpcyBmaXJzdCB1c2VkLgotLSAgICAgICBI YXNfRGVsYXllZF9GcmVlemUgY2FuIGJlIHNldCBmb3IgSXR5cGVzLCBhbmQgdGhlIG1lYW5pbmcg aXMgdGhhdAotLSAgICAgICB0aGUgZmlyc3QgdXNlICh0aGUgb25lIHdoaWNoIGNhdXNlcyB0aGUg dHlwZSB0byBiZSBkZWZpbmVkKSB3aWxsCi0tICAgICAgIGJlIHRoZSBmcmVlemUgbm9kZS4gTm90 ZSB0aGF0IGFuIGltcG9ydGFudCByZXN0cmljdGlvbiBvbiBJdHlwZXMKLS0gICAgICAgaXMgdGhh dCB0aGUgZmlyc3QgdXNlIG9mIHN1Y2ggYSB0eXBlICh0aGUgb25lIHRoYXQgY2F1c2VzIGl0IHRv IGJlCi0tICAgICAgIGRlZmluZWQpIG11c3QgYmUgaW4gdGhlIHNhbWUgc2NvcGUgYXMgdGhlIHR5 cGUuCgotLSAgICBJc19Lbm93bl9WYWxpZCAoRmxhZzE3MCkKLS0gICAgICAgUHJlc2VudCBpbiBh bGwgZW50aXRpZXMuIFJlbGV2YW50IGZvciB0eXBlcyAoYW5kIHN1YnR5cGUpIGFuZAotLSAgICAg ICBmb3Igb2JqZWN0cyAoYW5kIGVudW1lcmF0aW9uIGxpdGVyYWxzKSBvZiBhIGRpc2NyZXRlIHR5 cGUuCi0tCi0tICAgICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgZmxhZyBpcyB0byBpbXBsZW1lbnQg dGhlIHJlcXVpcmVtZW50IHN0YXRlZAotLSAgICAgICBpbiAoUk0gMTMuOS4xKDktMTEpKSB3aGlj aCByZXF1aXJlIHRoYXQgdGhlIHVzZSBvZiBwb3NzaWJseSBpbnZhbGlkCi0tICAgICAgIHZhbHVl cyBtYXkgbm90IGNhdXNlIHByb2dyYW1zIHRvIGJlY29tZSBlcnJvbmVvdXMuIFNlZSB0aGUgZnVu Y3Rpb24KLS0gICAgICAgRXhwX1V0aWwuRXhwcl9Lbm93bl9WYWxpZCBmb3IgZnVydGhlciBkZXRh aWxzLiBOb3RlIHRoYXQgdGhlIHNldHRpbmcKLS0gICAgICAgaXMgY29uc2VydmF0aXZlLCBpbiB0 aGUgc2Vuc2UgdGhhdCBpZiB0aGUgZmxhZyBpcyBzZXQsIGl0IG11c3QgYmUKLS0gICAgICAgcmln aHQuIElmIHRoZSBmbGFnIGlzIG5vdCBzZXQsIG5vdGhpbmcgaXMga25vd24gYWJvdXQgdGhlIHZh bGlkaXR5LgotLQotLSAgICAgICBGb3IgZW51bWVyYXRpb24gbGl0ZXJhbHMsIHRoZSBmbGFnIGlz IGFsd2F5cyBzZXQsIHNpbmNlIGNsZWFybHkKLS0gICAgICAgYW4gZW51bWVyYXRpb24gbGl0ZXJh bCByZXByZXNlbnRzIGEgdmFsaWQgdmFsdWUuIFJhbmdlIGNoZWNrcwotLSAgICAgICB3aGVyZSBu ZWNlc3Nhcnkgd2lsbCBlbnN1cmUgdGhhdCB0aGlzIHZhbGlkIHZhbHVlIGlzIGFwcHJvcHJpYXRl LgotLQotLSAgICAgICBGb3Igb2JqZWN0cywgdGhlIGZsYWcgaW5kaWNhdGVzIHRoZSBzdGF0ZSBv ZiBrbm93bGVkZ2UgYWJvdXQgdGhlCi0tICAgICAgIGN1cnJlbnQgdmFsdWUgb2YgdGhlIG9iamVj dC4gVGhpcyBtYXkgYmUgbW9kaWZpZWQgZHVyaW5nIGV4cGFuc2lvbiwKLS0gICAgICAgYW5kIHRo dXMgdGhlIGZpbmFsIHZhbHVlIGlzIG5vdCByZWxldmFudCB0byBnaWdpLgotLQotLSAgICAgICBG b3IgdHlwZXMgYW5kIHN1YnR5cGVzLCB0aGUgZmxhZyBpcyBzZXQgaWYgYWxsIHBvc3NpYmxlIGJp dCBwYXR0ZXJucwotLSAgICAgICBvZiBsZW5ndGggT2JqZWN0X1NpemUgKGkuZS4gRXNpemUgb2Yg dGhlIHR5cGUpIHJlcHJlc2VudCB2YWxpZCB2YWx1ZXMKLS0gICAgICAgb2YgdGhlIHR5cGUuIElu IGdlbmVyYWwgZm9yIHN1Y2ggdHl0cGVzLCBhbGwgdmFsdWVzIGFyZSB2YWxpZCwgdGhlCi0tICAg ICAgIG9ubHkgZXhjZXB0aW9uIGJlaW5nIHRoZSBjYXNlIHdoZXJlIGFuIG9iamVjdCBvZiB0aGUg dHlwZSBoYXMgYW4KLS0gICAgICAgZXhwbGljaXQgc2l6ZSB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBP YmplY3RfU2l6ZS4KLS0KLS0gICAgICAgRm9yIG5vbi1kaXNjcmV0ZSBvYmplY3RzLCB0aGUgc2V0 dGluZyBvZiB0aGUgSXNfS25vd25fVmFsaWQgZmxhZyBpcwotLSAgICAgICBub3QgZGVmaW5lZCwg YW5kIGlzIG5vdCByZWxldmFudCwgc2luY2UgdGhlIGNvbnNpZGVyYXRpb25zIG9mIHRoZQotLSAg ICAgICByZXF1aXJlbWVudCBpbiAoUk0gMTMuOS4xKDktMTEpKSBkbyBub3QgYXBwbHkuCgotLSAg ICBJc19MaW1pdGVkX0NvbXBvc2l0ZSAoRmxhZzEwNikKLS0gICAgICAgUHJlc2VudCBpbiBhbGwg ZW50aXRpZXMuIFRydWUgZm9yIGNvbXBvc2l0ZSB0eXBlcyB0aGF0IGhhdmUgYQotLSAgICAgICBs aW1pdGVkIGNvbXBvbmVudC4gVXNlZCB0byBlbmZvcmNlIHRoZSBydWxlIHRoYXQgb3BlcmF0aW9u cyBvbgotLSAgICAgICB0aGUgY29tcG9zaXRlIHR5cGUgdGhhdCBkZXBlbmQgb24gdGhlIGZ1bGwg dmlldyBvZiB0aGUgY29tcG9uZW50Ci0tICAgICAgIGRvIG5vdCBiZWNvbWUgdmlzaWJsZSB1bnRp bCB0aGUgaW1tZWRpYXRlIHNjb3BlIG9mIHRoZSBjb21wb3NpdGUKLS0gICAgICAgdHlwZSBpdHNl bGYgKFJNIDcuMy4xICg1KSkuCgotLSAgICBJc19MaW1pdGVkX1JlY29yZCAoRmxhZzI1KQotLSAg ICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IHRvIHRydWUgZm9yIHJlY29yZCAoc3Vi KXR5cGVzIGlmIHRoZQotLSAgICAgICByZWNvcmQgaXMgZGVjbGFyZWQgdG8gYmUgbGltaXRlZC4g Tm90ZSB0aGF0IHRoaXMgZmxhZyBpcyBub3Qgc2V0Ci0tICAgICAgIHNpbXBseSBiZWNhdXNlIHNv bWUgY29tcG9uZW50cyBvZiB0aGUgcmVjb3JkIGFyZSBsaW1pdGVkLgoKLS0gICAgSXNfTGltaXRl ZF9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMuIFRy dWUgaWYgZW50aXR5IGlzIGEgbGltaXRlZCB0eXBlIChsaW1pdGVkCi0tICAgICAgIHByaXZhdGUg dHlwZSwgdGFzayB0eXBlLCBwcm90ZWN0ZWQgdHlwZSwgY29tcG9zaXRlIGNvbnRhaW5pbmcgYQot LSAgICAgICBsaW1pdGVkIGNvbXBvbmVudCwgb3IgYSBzdWJ0eXBlIG9mIGFueSBvZiB0aGVzZSB0 eXBlcykuCgotLSAgICBJc19NYWNoaW5lX0NvZGVfU3VicHJvZ3JhbSAoRmxhZzEzNykKLS0gICAg ICAgUHJlc2VudCBpbiBzdWJwcm9ncmFtIGVudGl0aWVzLiBTZXQgdG8gaW5kaWNhdGUgdGhhdCB0 aGUgc3VicHJvZ3JhbQotLSAgICAgICBpcyBhIG1hY2hpbmUgY29kZSBzdWJwcm9ncmFtIChpLmUu IGl0cyBib2R5IGluY2x1ZGVzIGF0IGxlYXN0IG9uZQotLSAgICAgICBjb2RlIHN0YXRlbWVudCku IEFsc28gaW5kaWNhdGVzIHRoYXQgYWxsIG5lY2Vzc2FyeSBzZW1hbnRpYyBjaGVja3MKLS0gICAg ICAgYXMgcmVxdWlyZWQgYnkgUk0gMTMuOCBoYXZlIGJlZW4gcGVyZm9ybWVkLgoKLS0gICAgSXNf Tm9uX1N0YXRpY19TdWJ0eXBlIChGbGFnMTA5KQotLSAgICAgICBUaGlzIGZsYWcgaXMgcHJlc2Vu dCBpbiBhbGwgdHlwZSBhbmQgc3VidHlwZSBlbnRpdGllcy4gSXQgaXMgc2V0IGluCi0tICAgICAg IHNvbWUgKGJ1dCBub3QgYWxsKSBjYXNlcyBpbiB3aGljaCBhIHN1YnR5cGUgaXMga25vd24gdG8g YmUgbm9uLXN0YXRpYy4KLS0gICAgICAgQmVmb3JlIHRoaXMgZmxhZyB3YXMgYWRkZWQsIHRoZSBj b21wdXRhdGlvbiBvZiB3aGV0aGVyIGEgc3VidHlwZSB3YXMKLS0gICAgICAgc3RhdGljIHdhcyBl bnRpcmVseSBzeW50aGVzaXplZCwgYnkgbG9va2luZyBhdCB0aGUgYm91bmRzLCBhbmQgdGhlCi0t ICAgICAgIGltbWVkaWF0ZSBzdWJ0eXBlIHBhcmVudC4gSG93ZXZlciwgdGhpcyBtZXRob2QgZG9l cyBub3Qgd29yayBmb3Igc29tZQotLSAgICAgICBJdHlwZXMgdGhhdCBoYXZlIG5vIHBhcmVudCBz ZXQgKGFuZCB0aGUgb25seSB3YXkgdG8gZmluZCB0aGUgaW1tZWRpYXRlCi0tICAgICAgIHN1YnR5 cGUgcGFyZW50IGlzIHRvIGdvIHRocm91Z2ggdGhlIHRyZWUpLiBGb3Igbm93LCB0aGlzIGZsYXkg aXMgc2V0Ci0tICAgICAgIGNvbnNlcnZhdGl2ZWx5LCBpLmUuIGlmIGl0IGlzIHNldCB0aGVuIGZv ciBzdXJlIHRoZSBzdWJ0eXBlIGlzIG5vbi0KLS0gICAgICAgc3RhdGljLCBidXQgaWYgaXQgaXMg bm90IHNldCwgdGhlbiB0aGUgdHlwZSBtYXkgb3IgbWF5IG5vdCBiZSBzdGF0aWMuCi0tICAgICAg IFRodXMgdGhlIHRlc3QgZm9yIGEgc3RhdGljIHN1YnR5cGUgaXMgdGhhdCB0aGlzIGZsYWcgaXMg Y2xlYXIgQU5ECi0tICAgICAgIHRoYXQgdGhlIGJvdW5kcyBhcmUgc3RhdGljIEFORCB0aGF0IHRo ZSBwYXJlbnQgc3VidHlwZSAoaWYgYXZhaWxhYmxlCi0tICAgICAgIHRvIGJlIHRlc3RlZCkgaXMg c3RhdGljLiBFdmVudHVhbGx5IHdlIHNob3VsZCBtYWtlIHN1cmUgdGhpcyBmbGFnCi0tICAgICAg IGlzIGFsd2F5cyBzZXQgcmlnaHQsIGF0IHdoaWNoIHBvaW50LCB0aGVzZSBjb21tZW50cyBjYW4g YmUgcmVtb3ZlZCwKLS0gICAgICAgYW5kIHRoZSB0ZXN0cyBmb3Igc3RhdGljIHN1YnR5cGVzIGdy ZWF0bHkgc2ltcGxpZmllZC4KCi0tICAgIElzX051bGxfSW5pdF9Qcm9jIChGbGFnMTc4KQotLSAg ICAgICBQcmVzZW50IGluIHByb2NlZHVyZSBlbnRpdGllcy4gU2V0IGZvciBnZW5lcmF0ZWQgaW5p dF9wcm9jIHByb2NlZHVyZXMKLS0gICAgICAgKHVzZWQgdG8gaW5pdGlhbGl6ZSBjb21wb3NpdGUg dHlwZXMpLCBpZiB0aGUgY29kZSBmb3IgdGhlIHByb2NlZHVyZQotLSAgICAgICBpcyBudWxsIChp LmUuIGlzIGEgcmV0dXJuIGFuZCBub3RoaW5nIGVsc2UpLiBTdWNoIG51bGwgaW5pdGlhbGl6YXRp b24KLS0gICAgICAgcHJvY2VkdXJlcyBhcmUgZ2VuZXJhdGVkIGluIGNhc2Ugc29tZSBjbGllbnQg aXMgY29tcGlsZWQgdXNpbmcgdGhlCi0tICAgICAgIEluaXRpYWxpemVfU2NhbGFycyBwcmFnbWEs IGdlbmVyYXRpbmcgYSBjYWxsIHRvIHRoaXMgbnVsbCBwcm9jZWR1cmUsCi0tICAgICAgIGJ1dCB0 aGVyZSBpcyBubyBuZWVkIHRvIGNhbGwgc3VjaCBwcm9jZWR1cmVzIHdpdGhpbiBhIGNvbXBpbGF0 aW9uCi0tICAgICAgIHVuaXQsIGFuZCB0aGlzIGZsYWcgaXMgdXNlZCB0byBzdXBwcmVzcyBzdWNo IGNhbGxzLgoKLS0gICAgSXNfTnVtZXJpY19UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBw bGllcyB0byBhbGwgZW50aXRpZXMsIHRydWUgZm9yIGFsbCBudW1lcmljIHR5cGVzIGFuZCBzdWJ0 eXBlcwotLSAgICAgICAoaW50ZWdlciwgZml4ZWQsIGZsb2F0KS4KCi0tICAgIElzX09iamVjdCAo c3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBl bnRpdGllcyByZXByZXNlbnRpbmcgb2JqZWN0cywKLS0gICAgICAgaW5jbHVkaW5nIGdlbmVyaWMg Zm9ybWFsIHBhcmFtZXRlcnMuCgotLSAgICBJc19PcHRpb25hbF9QYXJhbWV0ZXIgKEZsYWcxMzQp Ci0tICAgICAgIFByZXNlbnQgaW4gcGFyYW1ldGVyIGVudGl0aWVzLiBTZXQgaWYgdGhlIHBhcmFt ZXRlciBpcyBzcGVjaWZpZWQgYXMKLS0gICAgICAgb3B0aW9uYWwgYnkgdXNlIG9mIGEgRmlyc3Rf T3B0aW9uYWxfUGFyYW1ldGVyIGFyZ3VtZW50IHRvIG9uZSBvZiB0aGUKLS0gICAgICAgZXh0ZW5k ZWQgSW1wb3J0IHByYWdtYXMuIENhbiBvbmx5IGJlIHNldCBmb3IgT3BlblZNUyB2ZXJzaW9ucyBv ZiBHTkFULgoKLS0gICAgSXNfT3JkaW5hcnlfRml4ZWRfUG9pbnRfVHlwZSAoc3ludGhlc2l6ZWQp Ci0tICAgICAgIEFwcGxpZXMgdG8gYWxsIGVudGl0aWVzLCB0cnVlIGZvciBvcmRpbmFyeSBmaXhl ZCBwb2ludCB0eXBlcwotLSAgICAgICBhbmQgc3VidHlwZXMKCi0tICAgIElzX1BhY2thZ2UgKHN5 bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcy4gVHJ1ZSBmb3IgcGFj a2FnZXMgYW5kIGdlbmVyaWMgcGFja2FnZXMuCi0tICAgICAgIEZhbHNlIGZvciBhbGwgb3RoZXIg ZW50aXRpZXMuCgotLSAgICBJc19QYWNrYWdlX0JvZHlfRW50aXR5IChGbGFnMTYwKQotLSAgICAg ICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGZvciBlbnRpdGllcyBkZWZpbmVkIGF0IHRo ZSB0b3AgbGV2ZWwKLS0gICAgICAgb2YgYSBwYWNrYWdlIGJvZHkuIFVzZWQgdG8gY29udHJvbCBl eHRlcm5hbGx5IGdlbmVyYXRlZCBuYW1lcy4KCi0tICAgIElzX1BhY2tlZCAoRmxhZzUxKSBbaW1w bGVtZW50YXRpb24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUg ZW50aXRpZXMuIFRoaXMgZmxhZyBpcyBzZXQgb25seSBmb3IgcmVjb3JkIGFuZAotLSAgICAgICBh cnJheSB0eXBlcyB3aGljaCBoYXZlIGEgcGFja2VkIHJlcHJlc2VudGF0aW9uLiBUaGVyZSBhcmUg dGhyZWUKLS0gICAgICAgY2FzZXMgd2hpY2ggY2F1c2UgcGFja2luZzoKLS0KLS0gICAgICAgICAx LiBFeHBsaWNpdCB1c2Ugb2YgcHJhZ21hIFBhY2sgZm9yIGFuIGFycmF5IG9mIHBhY2thZ2UgY29t cG9uZW50cwotLSAgICAgICAgIDIuIEV4cGxpY2l0IHVzZSBvZiBwcmFnbWEgUGFjayB0byBwYWNr IGEgcmVjb3JkCi0tICAgICAgICAgNC4gU2V0dGluZyBDb21wb25lbnRfU2l6ZSBvZiBhbiBhcnJh eSB0byBhIGJpdC1wYWNrYWJsZSB2YWx1ZQotLSAgICAgICAgIDMuIEluZGV4aW5nIGFuIGFycmF5 IHdpdGggYSBub24tc3RhbmRhcmQgZW51bWVyYXRpb24gdHlwZS4KLS0KLS0gICAgICAgRm9yIHJl Y29yZHMsIElzX1BhY2tlZCBpcyBhbHdheXMgc2V0IGlmIEhhc19QYWNrX1ByYWdtYSBpcyBzZXQs Ci0tICAgICAgIGFuZCBjYW4gYWxzbyBiZSBzZXQgb24gaXRzIG93biBpbiBhIGRlcml2ZWQgdHlw ZSB3aGljaCBpbmhlcml0ZWQKLS0gICAgICAgaXRzIHBhY2tlZCBzdGF0dXMuCi0tCi0tICAgICAg IEZvciBhcnJheXMsIElzX1BhY2tlZCBpcyBzZXQgaWYgYW4gYXJyYXkgaXMgYml0IHBhY2tlZCAo aS5lLiB0aGUKLS0gICAgICAgY29tcG9uZW50IHNpemUgaXMga25vd24gYXQgY29tcGlsZSB0aW1l IGFuZCBpcyAxLTcsIDktMTUgb3IgMTctMzEpLAotLSAgICAgICBvciBpZiB0aGUgYXJyYXkgaGFz IG9uZSBvciBtb3JlIGluZGV4IHR5cGVzIHRoYXQgYXJlIGVudW1lcmF0aW9uCi0tICAgICAgIHR5 cGVzIHdpdGggbm9uLXN0YW5kYXJkIHJlcHJlc2VudGF0aW9ucyAoaW4gR05BVCwgd2Ugc3RvcmUg c3VjaAotLSAgICAgICBhcnJheXMgY29tcGFjdGx5LCB1c2luZyB0aGUgUG9zIG9mIHRoZSBlbnVt ZXJhdGlvbiB0eXBlIHZhbHVlKS4KLS0KLS0gICAgICAgQXMgZm9yIHRoZSBjYXNlIG9mIHJlY29y ZHMsIElzX1BhY2tlZCBjYW4gYmUgc2V0IG9uIGl0cyBvd24gZm9yIGEKLS0gICAgICAgZGVyaXZl ZCB0eXBlLCB3aXRoIHRoZSBzYW1lIGR1YWwgYmVmb3JlL2FmdGVyIGZyZWV6ZSBtZWFuaW5nLgot LSAgICAgICBJc19QYWNrZWQgY2FuIGFsc28gYmUgc2V0IGFzIHRoZSByZXN1bHQgb2YgYW4gZXhw bGljaXQgY29tcG9uZW50Ci0tICAgICAgIHNpemUgY2xhdXNlIHRoYXQgc3BlY2lmaWVzIGFuIGFw cHJvcHJpYXRlIGNvbXBvbmVudCBzaXplLgotLQotLSAgICAgICBJbiB0aGUgYml0IHBhY2tlZCBh cnJheSBjYXNlLCBJc19CaXRfUGFja2VkX0FycmF5IHdpbGwgYmUgc2V0IGluCi0tICAgICAgIHRo ZSBiaXQgcGFja2VkIGNhc2Ugb25jZSB0aGUgYXJyYXkgdHlwZSBpcyBmcm96ZW4uCi0tCi0tICAg ICAgIEJlZm9yZSBhbiBhcnJheSB0eXBlIGlzIGZyb3plbiwgSXNfUGFja2VkIHdpbGwgYWx3YXlz IGJlIHNldCBpZgotLSAgICAgICBIYXNfUGFja19QcmFnbWEgaXMgc2V0LiBCZWZvcmUgdGhlIGZy ZWV6ZSBwb2ludCwgaXQgaXMgbm90IHBvc3NpYmxlCi0tICAgICAgIHRvIGtub3cgdGhlIGNvbXBv bmVudCBzaXplLCBzaW5jZSB0aGUgY29tcG9uZW50IHR5cGUgaXMgbm90IGZyb3plbgotLSAgICAg ICB1bnRpbCB0aGUgYXJyYXkgdHlwZSBpcyBmcm96ZW4uIFRodXMgSXNfUGFja2VkIGZvciBhbiBh cnJheSB0eXBlCi0tICAgICAgIGJlZm9yZSBpdCBpcyBmcm96ZW4gbWVhbnMgdGhhdCBwYWNrZWQg aXMgcmVxdWlyZWQuIFRoZW4gaWYgaXQgdHVybnMKLS0gICAgICAgb3V0IHRoYXQgdGhlIGNvbXBv bmVudCBzaXplIGlzIG5vdCBzdWl0YWJsZSBmb3IgYml0IHBhY2tpbmcsIHRoZQotLSAgICAgICBJ c19QYWNrZWQgZmxhZyBnZXRzIHR1cm5lZCBvZmYuCgotLSAgICBJc19QYWNrZWRfQXJyYXlfVHlw ZSAoRmxhZzEzOCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFRoaXMgZmxhZyBp cyBzZXQgb24gdGhlIGVudGl0eSBmb3IgdGhlIHR5cGUKLS0gICAgICAgdXNlZCB0byBpbXBsZW1l bnQgYSBwYWNrZWQgYXJyYXkgKGVpdGhlciBhIG1vZHVsYXIgdHlwZSwgb3IgYSBzdWJ0eXBlCi0t ICAgICAgIG9mIFBhY2tlZF9CeXRlc3sxLDIsNH0gYXMgYXBwcm9wcmlhdGUpLiBUaGUgZmxhZyBp cyBzZXQgaWYgYW5kIG9ubHkKLS0gICAgICAgaWYgdGhlIHR5cGUgYXBwZWFycyBpbiB0aGUgUGFj a2VkX0FycmF5X1R5cGUgZmllbGQgb2Ygc29tZSBvdGhlciB0eXBlCi0tICAgICAgIGVudGl0eS4g SXQgaXMgdXNlZCBieSBHaWdpIHRvIGFjdGl2YXRlIHRoZSBzcGVjaWFsIHByb2Nlc3NpbmcgZm9y IHN1Y2gKLS0gICAgICAgdHlwZXMgKHVuY2hlY2tlZCBjb252ZXJzaW9ucyB0aGF0IHdvdWxkIG5v dCBvdGhlcndpc2UgYmUgYWxsb3dlZCBhcmUKLS0gICAgICAgYWxsb3dlZCBmb3Igc3VjaCB0eXBl cykuCgotLSAgICBJc19Qb3RlbnRpYWxseV9Vc2VfVmlzaWJsZSAoRmxhZzkpCi0tICAgICAgIFBy ZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgZW50aXR5IGlzIHBvdGVudGlhbGx5IHVzZSB2 aXNpYmxlLAotLSAgICAgICBpLmUuIGl0IGlzIGRlZmluZWQgaW4gYSBwYWNrYWdlIHRoYXQgYXBw ZWFycyBpbiBhIGN1cnJlbnRseSBhY3RpdmUKLS0gICAgICAgdXNlIGNsYXVzZSAoUk0gOC40KDgp KS4gTm90ZSB0aGF0IHBvdGVudGlhbGx5IHVzZSB2aXNpYmxlIGVudGl0aWVzCi0tICAgICAgIGFy ZSBub3QgbmVjZXNzYXJpbHkgdXNlIHZpc2libGUgKFJNIDguNCg5LTExKSkuCgotLSAgICBJc19Q cmVlbGFib3JhdGVkIChGbGFnNTkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLCBz ZXQgaW4gRV9QYWNrYWdlIGFuZCBFX0dlbmVyaWNfUGFja2FnZQotLSAgICAgICBlbnRpdGllcyB0 byB3aGljaCBhIHByYWdtYSBQcmVlbGFib3JhdGUgaXMgYXBwbGllZCwgYW5kIGFsc28gaW4KLS0g ICAgICAgYWxsIGVudGl0aWVzIHdpdGhpbiBzdWNoIHBhY2thZ2VzLiBOb3RlIHRoYXQgdGhlIGZh Y3QgdGhhdCB0aGlzCi0tICAgICAgIGZsYWcgaXMgc2V0IGRvZXMgbm90IG5lY2VzYXJpbHkgbWVh biB0aGF0IG5vIGVsYWJvcmF0aW9uIGNvZGUgaXMKLS0gICAgICAgZ2VuZXJhdGVkIGZvciB0aGUg cGFja2FnZS4KCi0tICAgIElzX1ByaXZhdGVfQ29tcG9zaXRlIChGbGFnMTA3KQotLSAgICAgICBQ cmVzZW50IGluIGNvbXBvc2l0ZSB0eXBlcyB0aGF0IGhhdmUgYSBwcml2YXRlIGNvbXBvbmVudC4g VXNlZCB0bwotLSAgICAgICBlbmZvcmNlIHRoZSBydWxlIHRoYXQgb3BlcmF0aW9ucyBvbiB0aGUg Y29tcG9zaXRlIHR5cGUgdGhhdCBkZXBlbmQKLS0gICAgICAgb24gdGhlIGZ1bGxsIHZpZXcgb2Yg dGhlIGNvbXBvbmVudCwgZG8gbm90IGJlY29tZSB2aXNpYmxlIHVudGlsIHRoZQotLSAgICAgICBp bW1lZGlhdGUgc2NvcGUgb2YgdGhlIGNvbXBvc2l0ZSB0eXBlIGl0c2VsZiAoNy4zLjEgKDUpKS4g Qm90aCB0aGlzCi0tICAgICAgIGZsYWcgYW5kIElzX0xpbWl0ZWRfQ29tcG9zaXRlIGFyZSBuZWVk ZWQuCgotLSAgICBJc19Qcml2YXRlX0Rlc2NlbmRhbnQgKEZsYWc1MykKLS0gICAgICAgUHJlc2Vu dCBpbiBlbnRpdGllcyB0aGF0IGNhbiByZXByZXNlbnQgbGlicmFyeSB1bml0cyAocGFja2FnZXMs Ci0tICAgICAgIGZ1bmN0aW9ucywgcHJvY2VkdXJlcykuIFNldCBpZiB0aGUgbGlicmFyeSB1bml0 IGlzIGl0c2VsZiBhIHByaXZhdGUKLS0gICAgICAgY2hpbGQgdW5pdCwgb3IgaWYgaXQgaXMgdGhl IGRlc2NlbmRlbnQgb2YgYSBwcml2YXRlIGNoaWxkIHVuaXQuCgotLSAgICBJc19Qcml2YXRlX1R5 cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBm b3IgcHJpdmF0ZSB0eXBlcyBhbmQgc3VidHlwZXMsCi0tICAgICAgIGFzIHdlbGwgYXMgZm9yIHJl Y29yZCB3aXRoIHByaXZhdGUgdHlwZXMgYXMgc3VidHlwZXMKCi0tICAgIElzX1Byb3RlY3RlZF9U eXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMsIHRydWUg Zm9yIHByb3RlY3RlZCB0eXBlcyBhbmQgc3VidHlwZXMKCi0tICAgIElzX1BzZWN0ZWQgKEZsYWcx NTMpCi0tICAgICAgIFByZXNlbnQgaW4gZW50aXRpZXMgZm9yIG9iamVjdHMsIHRydWUgaWYgYSB2 YWxpZCBQc2VjdF9PYmplY3QKLS0gICAgICAgcHJhZ21hIGFwcGxpZXMgdG8gdGhlIG9iamVjdC4g VXNlZCB0byBkZXRlY3QgZHVwbGljYXRlIHByYWdtYXMuCgotLSAgICBJc19QdWJsaWMgKEZsYWcx MCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCB0byBpbmRpY2F0ZSB0aGF0 IGFuIGVudGl0eSBkZWZpbmVkIGluCi0tICAgICAgIG9uZSBjb21waWxhdGlvbiB1bml0IGNhbiBi ZSByZWZlcmVuY2VkIGZyb20gb3RoZXIgY29tcGlsYXRpb24gdW5pdHMuCi0tICAgICAgIElmIHRo aXMgcmVmZXJlbmNlIGNhdXNlcyBhIHJlZmVyZW5jZSBpbiB0aGUgZ2VuZXJhdGVkIHZhcmlhYmxl LCBmb3IKLS0gICAgICAgZXhhbXBsZSBpbiB0aGUgY2FzZSBvZiBhIHZhcmlhYmxlIG5hbWUsIHRo ZW4gR2lnaSB3aWxsIGdlbmVyYXRlIGFuCi0tICAgICAgIGFwcHJvcHJpYXRlIGV4dGVybmFsIG5h bWUgZm9yIHVzZSBieSB0aGUgbGlua2VyLgoKLS0gICAgSXNfUHJvdGVjdGVkX1ByaXZhdGUgKHN5 bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGEgcmVjb3JkIGNvbXBvbmVudC4gUmV0dXJu cyB0cnVlIGlmIHRoaXMgY29tcG9uZW50Ci0tICAgICAgIGlzIHVzZWQgdG8gcmVwcmVzZW50IGEg cHJpdmF0ZSBkZWNsYXJhdGlvbiBvZiBhIHByb3RlY3RlZCB0eXBlLgoKLS0gICAgSXNfUHJvdGVj dGVkX1JlY29yZF9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50 aXRpZXMsIHRydWUgaWYgSXNfQ29uY3VycmVudF9SZWNvcmRfVHlwZQotLSAgICAgICBDb3JyZXNw b25kaW5nX0NvbmN1cnJlbnRfVHlwZSBpcyBhIHByb3RlY3RlZCB0eXBlLgoKLS0gICAgSXNfUHVy ZSAoRmxhZzQ0KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGluIGFsbCBl bnRpdGllcyBvZiBhIHVuaXQgdG8gd2hpY2ggYQotLSAgICAgICBwcmFnbWEgUHVyZSBpcyBhcHBs aWVkLCBhbmQgYWxzbyBzZXQgZm9yIHRoZSBlbnRpdHkgb2YgdGhlIHVuaXQKLS0gICAgICAgaXRz ZWxmLiBJbiBhZGRpdGlvbiwgdGhpcyBmbGFnIG1heSBiZSBzZXQgZm9yIGFueSBvdGhlciBmdW5j dGlvbnMKLS0gICAgICAgb3IgcHJvY2VkdXJlcyB0aGF0IGFyZSBrbm93biB0byBiZSBzaWRlIGVm ZmVjdCBmcmVlLCBzbyBpbiB0aGUgY2FzZQotLSAgICAgICBvZiBzdWJwcm9ncmFtcywgdGhlIElz X1B1cmUgZmxhZyBtYXkgYmUgdXNlZCBieSB0aGUgb3B0aW1pemVyIHRvCi0tICAgICAgIGltcGx5 IHRoYXQgaXQgY2FuIGFzc3VtZSBmcmVlZG9tIGZyb20gc2lkZSBlZmZlY3RzIChvdGhlciB0aGFu IHRob3NlCi0tICAgICAgIHJlc3VsdGluZyBmcm9tIGFzc2lnbm1lbnQgdG8gb3V0IHBhcmFtZXRl cnMsIG9yIHRvIG9iamVjdHMgZGVzaWduYXRlZAotLSAgICAgICBieSBhY2Nlc3MgcGFyYW1ldGVy cykuCgotLSAgICBJc19SZWFsX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRv IGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgcmVhbCB0eXBlcyBhbmQgc3VidHlwZXMKCi0tICAgIElz X1JlY29yZF9UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRp ZXMsIHRydWUgZm9yIHJlY29yZCB0eXBlcyBhbmQgc3VidHlwZXMsCi0tICAgICAgIGluY2x1ZGVz IGNsYXNzLXdpZGUgdHlwZXMgYW5kIHN1YnR5cGVzICh3aGljaCBhcmUgYWxzbyByZWNvcmRzKQoK LS0gICAgSXNfUmVtb3RlX0NhbGxfSW50ZXJmYWNlIChGbGFnNjIpCi0tICAgICAgIFByZXNlbnQg aW4gYWxsIGVudGl0aWVzLCBzZXQgaW4gRV9QYWNrYWdlIGFuZCBFX0dlbmVyaWNfUGFja2FnZQot LSAgICAgICBlbnRpdGllcyB0byB3aGljaCBhIHByYWdtYSBSZW1vdGVfQ2FsbF9JbnRlcmFjZSBp cyBhcHBsaWVkLCBhbmQKLS0gICAgICAgYWxzbyBpbiBhbGwgZW50aXRpZXMgd2l0aGluIHN1Y2gg cGFja2FnZXMuCgotLSAgICBJc19SZW1vdGVfVHlwZXMgKEZsYWc2MSkKLS0gICAgICAgUHJlc2Vu dCBpbiBhbGwgZW50aXRpZXMsIHNldCBpbiBFX1BhY2thZ2UgYW5kIEVfR2VuZXJpY19QYWNrYWdl Ci0tICAgICAgIGVudGl0aWVzIHRvIHdoaWNoIGEgcHJhZ21hIFJlbW90ZV9UeXBlcyBpcyBhcHBs aWVkLCBhbmQgYWxzbyBpbgotLSAgICAgICBhbGwgZW50aXRpZXMgd2l0aGluIHN1Y2ggcGFja2Fn ZXMuCgotLSAgICBJc19SZW5hbWluZ19PZl9PYmplY3QgKEZsYWcxMTIpCi0tICAgICAgIFByZXNl bnQgaW4gYWxsIGVudGl0aWVzLCBzZXQgb25seSBmb3IgYSB2YXJpYWJsZSBvciBjb25zdGFudCBm b3IKLS0gICAgICAgd2hpY2ggdGhlIFJlbmFtZWRfT2JqZWN0IGZpZWxkIGlzIG5vbi1lbXB0eSBh bmQgZm9yIHdoaWNoIHRoZQotLSAgICAgICByZW5hbWluZyBpcyBoYW5kbGVkIGJ5IHRoZSBmcm9u dCBlbmQsIGJ5IG1hY3JvIHN1YnN0aXR1dGlvbiBvZgotLSAgICAgICBhIGNvcHkgb2YgdGhlIChl dmFsdWF0ZWQpIG5hbWUgdHJlZSB3aGVyZWV2ZXIgdGhlIHZhcmlhYmxlIGlzIHVzZWQuCgotLSAg ICBJc19SZXR1cm5fQnlfUmVmZXJlbmNlX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBs aWVzIHRvIGFsbCB0eXBlIGVudGl0aWVzLiBUcnVlIGlmIHRoZSB0eXBlIGlzIHJlcXVpcmVkIHRv Ci0tICAgICAgIGJlIHJldHVybmVkIGJ5IHJlZmVyZW5jZSwgYXMgZGVmaW5lZCBpbiA2LjUoMTEt MTYpLgoKLS0gICAgSXNfU2NhbGFyX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVz IHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3Igc2NhbGFyIHR5cGVzIGFuZCBzdWJ0eXBlcwoKLS0g ICAgSXNfU2hhcmVkX1Bhc3NpdmUgKEZsYWc2MCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50 aXRpZXMsIHNldCBpbiBFX1BhY2thZ2UgYW5kIEVfR2VuZXJpY19QYWNrYWdlCi0tICAgICAgIGVu dGl0aWVzIHRvIHdoaWNoIGEgcHJhZ21hIFNoYXJlZF9QYXNzaXZlIGlzIGFwcGxpZWQsIGFuZCBh bHNvIGluCi0tICAgICAgIGFsbCBlbnRpdGllcyB3aXRoaW4gc3VjaCBwYWNrYWdlcy4KCi0tICAg IElzX1N0YXRpY2FsbHlfQWxsb2NhdGVkIChGbGFnMjgpCi0tICAgICAgIFByZXNlbnQgaW4gYWxs IGVudGl0aWVzLiBUaGlzIGNhbiBvbmx5IGJlIHNldCBUcnVlIGZvciBleGNlcHRpb24sCi0tICAg ICAgIHZhcmlhYmxlLCBjb25zdGFudCwgYW5kIHR5cGUvc3VidHlwZSBlbnRpdGllcy4gSWYgdGhl IGZsYWcgaXMgc2V0LAotLSAgICAgICB0aGVuIHRoZSB2YXJpYWJsZSBvciBjb25zdGFudCBtdXN0 IGJlIGFsbG9jYXRlZCBzdGF0aWNhbGx5IHJhdGhlcgotLSAgICAgICB0aGFuIG9uIHRoZSBsb2Nh bCBzdGFjayBmcmFtZS4gRm9yIGV4Y2VwdGlvbnMsIHRoZSBtZWFuaW5nIGlzIHRoYXQKLS0gICAg ICAgdGhlIGV4Y2VwdGlvbiBkYXRhIHNob3VsZCBiZSBhbGxvY2F0ZWQgc3RhdGljYWxseSAoYW5k IGluZGVlZCB0aGlzCi0tICAgICAgIGZsYWcgaXMgYWx3YXlzIHNldCBmb3IgZXhjZXB0aW9ucywg c2luY2UgZXhjZXB0aW9ucyBkbyBub3QgaGF2ZQotLSAgICAgICBsb2NhbCBzY29wZSkuIEZvciBh IHR5cGUsIHRoZSBtZWFuaW5nIGlzIHRoYXQgdGhlIHR5cGUgbXVzdCBiZQotLSAgICAgICBlbGFi b3JhdGVkIGF0IHRoZSBnbG9iYWwgbGV2ZWwgcmF0aGVyIHRoYW4gbG9jYWxseS4gTm8gdHlwZSBt YXJrZWQKLS0gICAgICAgd2l0aCB0aGlzIGZsYWcgbWF5IGRlcGVuZCBvbiBhIGxvY2FsIHZhcmlh YmxlLCBvciBvbiBhbnkgb3RoZXIgdHlwZQotLSAgICAgICB3aGljaCBkb2VzIG5vdCBhbHNvIGhh dmUgdGhpcyBmbGFnIHNldCB0byBUcnVlLiBGb3IgYSB2YXJpYWJsZSBvcgotLSAgICAgICBvciBj b25zdGFudCwgaWYgdGhlIGZsYWcgaXMgc2V0LCB0aGVuIHRoZSB0eXBlIG9mIHRoZSBvYmplY3Qg bXVzdAotLSAgICAgICBlaXRoZXIgYmUgZGVjbGFyZWQgYXQgdGhlIGxpYnJhcnkgbGV2ZWwsIG9y IGl0IG11c3QgYWxzbyBoYXZlIHRoZQotLSAgICAgICBmbGFnIHNldCAoc2luY2UgdG8gYWxsb2Nh dGUgdGhlIG9qZWN0IHN0YXRpY2FsbHksIGl0cyB0eXBlIG11c3QKLS0gICAgICAgYWxzbyBiZSBl bGFib3JhdGVkIGdsb2JhbGx5KS4KCi0tICAgIElzX1N1YnByb2dyYW0gKHN5bnRoZXNpemVkKQot LSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgYm9kaWVzIG9mIGZ1bmN0 aW9ucywgcHJvY2VkdXJlcwotLSAgICAgICBhbmQgb3BlcmF0b3JzLgoKLS0gICAgSXNfU3RyaW5n X1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCB0eXBlIGVudGl0aWVz LiBEZXRlcm1pbmVzIGlmIHRoZSBnaXZlbiB0eXBlIGlzIGEKLS0gICAgICAgc3RyaW5nIHR5cGUs IGkuZS4gaXQgaXMgZGlyZWN0bHkgYSBzdHJpbmcgdHlwZSBvciBzdHJpbmcgc3VidHlwZSwKLS0g ICAgICAgb3IgYSBzdHJpbmcgc2xpY2UgdHlwZSwgb3IgYW4gYXJyYXkgdHlwZSB3aXRoIG9uZSBk aW1lbnNpb24gYW5kIGEKLS0gICAgICAgY29tcG9uZW50IHR5cGUgdGhhdCBpcyBhIGNoYXJhY3Rl ciB0eXBlLgoKLS0gICAgSXNfVGFnIChGbGFnNzgpCi0tICAgICAgIFByZXNlbnQgaW4gRV9Db21w b25lbnQuIEZvciByZWd1bGFyIHRhZ2dlZCB0eXBlIHRoaXMgZmxhZyBpcyBzZXQgb24KLS0gICAg ICAgdGhlIHRhZyBjb21wb25lbnQgKHdob3NlIG5hbWUgaXMgTmFtZV91VGFnKSBhbmQgZm9yIENQ UF9DbGFzcyB0YWdnZWQKLS0gICAgICAgdHlwZXMsIHRoaXMgZmxhZyBtYXJrcyB0aGUgcG9pbnRl ciB0byB0aGUgbWFpbiB2dGFibGUgKGkuZS4gdGhlIG9uZQotLSAgICAgICB0byBiZSBleHRlbmRl ZCBieSBkZXJpdmF0aW9uKQoKLS0gICAgSXNfVGFnZ2VkX1R5cGUgKEZsYWc1NSkKLS0gICAgICAg UHJlc2VudCBpbiBhbGwgZW50aXRpZXMsIHRydWUgZm9yIGFuIGVudGl0eSBmb3IgYSB0YWdnZWQg dHlwZS4KCi0tICAgIElzX1Rhc2tfUmVjb3JkX1R5cGUgKHN5bnRoZXNpemVkKQotLSAgICAgICBB cHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBpZiBJc19Db25jdXJyZW50X1JlY29yZF9UeXBl Ci0tICAgICAgIENvcnJlc3BvbmRpbmdfQ29uY3VycmVudF9UeXBlIGlzIGEgdGFzayB0eXBlLgoK LS0gICAgSXNfVGFza19UeXBlIChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwg ZW50aXRpZXMsIHRydWUgZm9yIHRhc2sgdHlwZXMgYW5kIHN1YnR5cGVzCgotLSAgICBJc19UcnVl X0NvbnN0YW50IChGbGFnMTYzKQotLSAgICAgICBUaGlzIGZsYWcgaXMgc2V0IGluIGNvbnN0YW50 cyBhbmQgdmFyaWFibGVzIHdoaWNoIGhhdmUgYW4gaW5pdGlhbAotLSAgICAgICB2YWx1ZSBzcGVj aWZpZWQgYnV0IHdoaWNoIGFyZSBuZXZlciBhc3NpZ25lZCwgcGFydGlhbGx5IG9yIGluIHRoZQot LSAgICAgICB3aG9sZS4gRm9yIHZhcmlhYmxlcywgaXQgbWVhbnMgdGhhdCB0aGUgdmFyaWFibGUg d2FzIGluaXRpYWxpemVkCi0tICAgICAgIGJ1dCBuZXZlciBtb2RpZmllZCwgYW5kIGhlbmNlIGNh biBiZSB0cmVhdGVkIGFzIGEgY29uc3RhbnQgYnkgdGhlCi0tICAgICAgIGNvZGUgZ2VuZXJhdG9y LiBGb3IgYSBjb25zdGFudCwgaXQgbWVhbnMgdGhhdCB0aGUgY29uc3RhbnQgd2FzIG5vdAotLSAg ICAgICBtb2RpZmllZCBieSBnZW5lcmF0ZWQgY29kZSAoZS5nLiB0byBzZXQgYSBkaXNjcmltaW5h bnQgaW4gYW4gaW5pdAotLSAgICAgICBwcm9jKS4gQXNzaWdubWVudHMgYnkgdXNlciBvciBnZW5l cmF0ZWQgY29kZSB3aWxsIHJlc2V0IHRoaXMgZmxhZy4KCi0tICAgIElzX1R5cGUgKHN5bnRoZXNp emVkKQotLSAgICAgICBBcHBsaWVzIHRvIGFsbCBlbnRpdGllcywgdHJ1ZSBmb3IgYSB0eXBlIGVu dGl0eQoKLS0gICAgSXNfVW5jaGVja2VkX1VuaW9uIChGbGFnMTE3KQotLSAgICAgICBQcmVzZW50 IGluIGFsbCBlbnRpdGllcy4gU2V0IG9ubHkgaW4gcmVjb3JkIHR5cGVzIHRvIHdoaWNoIHRoZQot LSAgICAgICBwcmFnbWEgVW5jaGVja2VkX1VuaW9uIGhhcyBiZWVuIHZhbGlkbHkgYXBwbGllZC4K Ci0tICAgIElzX1Vuc2lnbmVkX1R5cGUgKEZsYWcxNDQpCi0tICAgICAgIFByZXNlbnQgaW4gYWxs IHR5cGVzLCBidXQgY2FuIGJlIHNldCBvbmx5IGZvciBkaXNjcmV0ZSBhbmQgZml4ZWQtcG9pbnQK LS0gICAgICAgdHlwZSBhbmQgc3VidHlwZSBlbnRpdGllcy4gVGhpcyBmbGFnIGlzIG9ubHkgdmFs aWQgaWYgdGhlIGVudGl0eSBpcwotLSAgICAgICBmcm96ZW4uIElmIHNldCBpdCBpbmRpY2F0ZXMg dGhhdCB0aGUgcmVwcmVzZW50YXRpb24gaXMga25vd24gdG8gYmUKLS0gICAgICAgdW5zaWduZWQg KGkuZS4gdGhhdCBubyBuZWdhdGl2ZSB2YWx1ZXMgYXBwZWFyIGluIHRoZSByYW5nZSkuIFRoaXMg aXMKLS0gICAgICAgbm9ybWFsbHkganVzdCBhIHJlZmxlY3Rpb24gb2YgdGhlIGxvd2VyIGJvdW5k IG9mIHRoZSBzdWJ0eXBlIG9yIGJhc2UKLS0gICAgICAgdHlwZSwgYnV0IHRoZXJlIGlzIG9uZSBj YXNlIGluIHdoaWNoIHRoZSBzZXR0aW5nIGlzIG5vbi1vYnZpb3VzLAotLSAgICAgICBuYW1lbHkg dGhlIGNhc2Ugb2YgYW4gdW5zaWduZWQgc3VidHlwZSBvZiBhIHNpZ25lZCB0eXBlIGZyb20gd2hp Y2gKLS0gICAgICAgYSBmdXJ0aGVyIHN1YnR5cGUgaXMgb2J0YWluZWQgdXNpbmcgdmFyaWFibGUg Ym91bmRzLiBUaGlzIGZ1cnRoZXIKLS0gICAgICAgc3VidHlwZSBpcyBzdGlsbCB1bnNpZ25lZCwg YnV0IHRoaXMgY2Fubm90IGJlIGRldGVybWluZWQgYnkgbG9va2luZwotLSAgICAgICBhdCBpdHMg Ym91bmRzIG9yIHRoZSBib3VuZHMgb2YgdGhlIGNvcnJlc3BvbmRpbmcgYmFzZSB0eXBlLgoKLS0g ICAgSXNfVmFsdWVkX1Byb2NlZHVyZSAoRmxhZzEyNykKLS0gICAgICAgUHJlc2VudCBpbiBwcm9j ZWR1cmUgZW50aXRpZXMuIFNldCBpZiBhbiBJbXBvcnRfVmFsdWVkX1Byb2NlZHVyZQotLSAgICAg ICBvciBFeHBvcnRfVmFsdWVkX1Byb2NlZHVyZSBwcmFnbWEgYXBwbGllcyB0byB0aGUgcHJvY2Vk dXJlIGVudGl0eS4KCi0tICAgIElzX1Zpc2libGVfQ2hpbGRfVW5pdCAoRmxhZzExNikKLS0gICAg ICAgUHJlc2VudCBpbiBjb21waWxhdGlvbiB1bml0cyB0aGF0IGFyZSBjaGlsZCB1bml0cy4gT25j ZSBjb21waWxlZCwKLS0gICAgICAgY2hpbGQgdW5pdHMgcmVtYWluIGNoYWluZWQgdG8gdGhlIGVu dGl0aWVzIGluIHRoZSBwYXJlbnQgdW5pdCwgYW5kCi0tICAgICAgIGEgc2VwYXJhdGUgZmxhZyBt dXN0IGJlIHVzZWQgdG8gaW5kaWNhdGUgd2hldGhlciB0aGUgbmFtZXMgYXJlCi0tICAgICAgIHZp c2libGUgYnkgc2VsZWN0ZWQgbm90YXRpb24sIG9yIG5vdC4KCi0tICAgIElzX1ZNU19FeGNlcHRp b24gKEZsYWcxMzMpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgb25seSBm b3IgZXhjZXB0aW9uIGVudGl0aWVzIHdoZXJlIHRoZQotLSAgICAgICBleGNlcHRpb24gd2FzIHNw ZWNpZmllZCBpbiBhbiBJbXBvcnRfRXhjZXB0aW9uIG9yIEV4cG9ydF9FeGNlcHRpb24KLS0gICAg ICAgcHJhZ21hIHdpdGggdGhlIFZNUyBvcHRpb24gZm9yIEZvcm0uIFNlZSBkZXNjcmlwdGlvbiBv ZiB0aGVzZSBwcmFnbWFzCi0tICAgICAgIGZvciBkZXRhaWxzLiBUaGlzIGZsYWcgY2FuIG9ubHkg YmUgc2V0IGluIE9wZW5WTVMgdmVyc2lvbnMgb2YgR05BVC4KCi0tICAgIElzX1ZvbGF0aWxlIChG bGFnMTYpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMsIGFuZCBhbHNvIGlu IGNvbnN0YW50cywgY29tcG9uZW50cyBhbmQKLS0gICAgICAgdmFyaWFibGVzLiBTZXQgaWYgYSBw cmFnbWEgVm9sYXRpbGUgYXBwbGllcyB0byB0aGUgZW50aXR5LiBBbHNvIHNldAotLSAgICAgICBp ZiBwcmFnbWEgU2hhcmVkIG9yIHByYWdtYSBBdG9taWMgYXBwbGllcyB0byBlbnRpdHkuIEluIHRo ZSBjYXNlIG9mCi0tICAgICAgIHByaXZhdGUgb3IgaW5jb21wbGV0ZSB0eXBlcywgdGhpcyBmbGFn IGlzIHNldCBpbiBib3RoIHRoZSBwcml2YXRlCi0tICAgICAgIGFuZCBmdWxsIHZpZXcuCgotLSAg ICBJc19XcmFwcGVyX1BhY2thZ2UgKHN5bnRoZXNpemVkKQotLSAgICAgICBQcmVzZW50IGluIHBh Y2thZ2UgZW50aXRpZXMuIEluZGljYXRlcyB0aGF0IHRoZSBwYWNrYWdlIGhhcyBiZWVuCi0tICAg ICAgIGNyZWF0ZWQgYXMgYSB3cmFwcGVyIGZvciBhIHN1YnByb2dyYW0gaW5zdGFudGlhdGlvbi4K Ci0tICAgIExhc3RfRW50aXR5IChOb2RlMjApCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0 aWVzIHdoaWNoIGFjdCBhcyBzY29wZXMgdG8gd2hpY2ggYSBsaXN0IG9mCi0tICAgICAgIGFzc29j aWF0ZWQgZW50aXRpZXMgaXMgYXR0YWNoZWQgKGJsb2NrcywgY2xhc3Mgc3VidHlwZXMgYW5kIHR5 cGVzLAotLSAgICAgICBlbnRyaWVzLCBmdW5jdGlvbnMsIGxvb3BzLCBwYWNrYWdlcywgcHJvY2Vk dXJlcywgcHJvdGVjdGVkIG9iamVjdHMsCi0tICAgICAgIHJlY29yZCB0eXBlcyBhbmQgc3VidHlw ZXMsIHByaXZhdGUgdHlwZXMsIHRhc2sgdHlwZXMgYW5kIHN1YnR5cGVzKS4KLS0gICAgICAgUG9p bnRzIHRvIGEgdGhlIGxhc3QgZW50cnkgaW4gdGhlIGxpc3Qgb2YgYXNzb2NpYXRlZCBlbnRpdGll cyBjaGFpbmVkCi0tICAgICAgIHRocm91Z2ggdGhlIE5leHRfRW50aXR5IGZpZWxkLiBFbXB0eSBp ZiBubyBlbnRpdGllcyBhcmUgY2hhaW5lZC4KCi0tICAgIExpdF9JbmRleGVzIChOb2RlMTUpCi0t ICAgICAgIFByZXNlbnQgaW4gZW51bWVyYXRpb24gdHlwZXMgYW5kIHN1YnR5cGVzLiBOb24tZW1w dHkgb25seSBmb3IgdGhlCi0tICAgICAgIGNhc2Ugb2YgYW4gZW51bWVyYXRpb24gcm9vdCB0eXBl LCB3aGVyZSBpdCBjb250YWlucyB0aGUgZW50aXR5IGZvcgotLSAgICAgICB0aGUgZ2VuZXJhdGVk IGluZGV4ZXMgZW50aXR5LiBTZWUgdW5pdCBFeHBfSW1ndiBmb3IgZnVsbCBkZXRhaWxzIG9mCi0t ICAgICAgIHRoZSBuYXR1cmUgYW5kIHVzZSBvZiB0aGlzIGVudGl0eSBmb3IgaW1wbGtlbWVudGlu ZyB0aGUgSW1hZ2UgYW5kCi0tICAgICAgIFZhbHVlIGF0dHJpYnV0ZXMgZm9yIHRoZSBlbnVtZXJh dGlvbiB0eXBlIGluIHF1ZXN0aW9uLgotLQotLSAgICBMaXRfU3RyaW5ncyAoTm9kZTE2KQotLSAg ICAgICBQcmVzZW50IGluIGVudW1lcmF0aW9uIHR5cGVzIGFuZCBzdWJ0eXBlcy4gTm9uLWVtcHR5 IG9ubHkgZm9yIHRoZQotLSAgICAgICBjYXNlIG9mIGFuIGVudW1lcmF0aW9uIHJvb3QgdHlwZSwg d2hlcmUgaXQgY29udGFpbnMgdGhlIGVudGl0eSBmb3IKLS0gICAgICAgdGhlIGxpdGVyYWxzIHN0 cmluZyBlbnRpdHkuIFNlZSB1bml0IEV4cF9JbWd2IGZvciBmdWxsIGRldGFpbHMgb2YKLS0gICAg ICAgdGhlIG5hdHVyZSBhbmQgdXNlIG9mIHRoaXMgZW50aXR5IGZvciBpbXBsZW1lbnRpbmcgdGhl IEltYWdlIGFuZAotLSAgICAgICBWYWx1ZSBhdHRyaWJ1dGVzIGZvciB0aGUgZW51bWVyYXRpb24g dHlwZSBpbiBxdWVzdGlvbi4KCi0tICAgIE1hY2hpbmVfUmFkaXhfMTAgKEZsYWc4NCkKLS0gICAg ICAgUHJlc2VudCBpbiBkZWNpbWFsIHR5cGVzIGFuZCBzdWJ0eXBlcywgc2V0IGlmIHRoZSBNYWNo aW5lX1JhZGl4Ci0tICAgICAgIGlzIDEwLCBhcyB0aGUgcmVzdWx0IG9mIHRoZSBzcGVjaWZpY2F0 aW9uIG9mIGEgbWFjaGluZSByYWRpeAotLSAgICAgICByZXByZXNlbnRhdGlvbiBjbGF1c2UuIE5v dGUgdGhhdCBpdCBpcyBwb3NzaWJsZSBmb3IgdGhpcyBmbGFnCi0tICAgICAgIHRvIGJlIHNldCB3 aXRob3V0IGhhdmluZyBIYXNfTWFjaGluZV9SYWRpeF9DbGF1c2UgVHJ1ZS4gVGhpcwotLSAgICAg ICBoYXBwZW5zIHdoZW4gYSB0eXBlIGlzIGRlcml2ZWQgZnJvbSBhIHR5cGUgd2l0aCBhIGNsYXVz ZSBwcmVzZW50LgoKLS0gICAgTWFzdGVyX0lkIChOb2RlMTcpCi0tICAgICAgIFByZXNlbnQgaW4g YWNjZXNzIHR5cGVzIGFuZCBzdWJ0eXBlcy4gRW1wdHkgdW5sZXNzIEhhc19UYXNrIGlzCi0tICAg ICAgIHNldCBmb3IgdGhlIGRlc2lnbmF0ZWQgdHlwZSwgaW4gd2hpY2ggY2FzZSBpdCBwb2ludHMg dG8gdGhlIGVudGl0eQotLSAgICAgICBmb3IgdGhlIE1hc3Rlcl9JZCBmb3IgdGhlIGFjY2VzcyB0 eXBlIG1hc3Rlci4KCi0tICAgIE1hdGVyaWFsaXplX0VudGl0eSAoRmxhZzE2OCkKLS0gICAgICAg UHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCBvbmx5IGZvciBjb25zdGFudCBvciByZW5hbWVk IGVudGl0aWVzCi0tICAgICAgIHdoaWNoIHNob3VsZCBiZSBtYXRlcmlhbGl6ZWQgZm9yIGRlYnVn Z2luZyBwdXJwb3Nlcy4gSW4gdGhlIGNhc2Ugb2YKLS0gICAgICAgYSBjb25zdGFudCwgYSBtZW1v cnkgbG9jYXRpb24gc2hvdWxkIGJlIGFsbG9jYXRlZCBjb250YWluaW5nIHRoZQotLSAgICAgICB2 YWx1ZS4gSW4gdGhlIGNhc2Ugb2YgYSByZW5hbWluZywgYSBtZW1vcnkgbG9jYXRpb24gY29udGFp bmluZyB0aGUKLS0gICAgICAgcmVuYW1lZCBhZGRyZXNzIHNob3VsZCBiZSBhbGxvY2F0ZWQuCgot LSAgICBNZWNoYW5pc20gKFVpbnQ4KSAocmV0dXJuZWQgYXMgTWVjaGFuaXNtX1R5cGUpCi0tICAg ICAgIFByZXNlbnQgaW4gZnVuY3Rpb25zIGFuZCBub24tZ2VuZXJpYyBmb3JtYWwgcGFyYW1ldGVy cy4gSW5kaWNhdGVzCi0tICAgICAgIHRoZSBtZWNoYW5pc20gdG8gYmUgdXNlZCBmb3IgdGhlIGZ1 bmN0aW9uIHJldHVybiBvciBmb3IgdGhlIGZvcm1hbAotLSAgICAgICBwYXJhbWV0ZXIuIFNlZSBz ZXBhcmF0ZSBzZWN0aW9uIG9uIHBhc3NpbmcgbWVjaGFuaXNtcy4KCi0tICAgIE1vZHVsdXMgKFVp bnQxNykgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50IGluIG1vZHVsYXIgdHlwZXMu IENvbnRhaW5zIHRoZSBtb2R1bHVzLiBGb3IgdGhlIGJpbmFyeQotLSAgICAgICBjYXNlLCB0aGlz IHdpbGwgYmUgYSBwb3dlciBvZiAyLCBidXQgaWYgTm9uX0JpbmFyeV9Nb2R1bHVzIGlzCi0tICAg ICAgIHNldCwgdGhlbiBpdCB3aWxsIG5vdCBiZSBhIHBvd2VyIG9mIDIuCgotLSAgICBOZWVkc19E ZWJ1Z19JbmZvIChGbGFnMTQ3KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0 IGlmIHRoZSBlbnRpdHkgcmVxdWlyZXMgZGVidWdnaW5nCi0tICAgICAgIGluZm9ybWF0aW9uIHRv IGJlIGdlbmVyYXRlZC4gVGhpcyBpcyB0cnVlIG9mIGFsbCBlbnRpdGllcyB0aGF0Ci0tICAgICAg IGhhdmUgQ29tZXNfRnJvbV9Tb3VyY2Ugc2V0LCBhbmQgYWxzbyB0cmFuc2l0aXZlbHkgZm9yIGVu dGl0aWVzCi0tICAgICAgIGFzc29jaWF0ZWQgd2l0aCBzdWNoIGNvbXBvbmVudHMgKGUuZy4gdGhl aXIgdHlwZXMpLiBJdCBpcyB0cnVlCi0tICAgICAgIGZvciBhbGwgZW50aXRpZXMgaW4gRGVidWdf R2VuZXJhdGVkX0NvZGUgbW9kZSAoLWduYXREIHN3aXRjaCkuCgotLSAgICBOZWVkc19Ob19BY3R1 YWxzIChGbGFnMjIpCi0tICAgICAgIFByZXNlbnQgaW4gY2FsbGFibGUgZW50aXRpZXMgKHN1YnBy b2dyYW1zLCBlbnRyaWVzLCBhY2Nlc3MgdG8KLS0gICAgICAgc3VicHJvZ3JhbXMpICB3aGljaCBj YW4gYmUgY2FsbGVkIHdpdGhvdXQgYWN0dWFscyBiZWNhdXNlIGFsbCBvZgotLSAgICAgICB0aGVp ciBmb3JtYWxzIChpZiBhbnkpIGhhdmUgZGVmYXVsdCB2YWx1ZXMuIFRoaXMgZmxhZyBzaW1wbGlm aWVzIHRoZQotLSAgICAgICByZXNvbHV0aW9uIG9mIHRoZSBzeW50YWN0aWMgYW1iaWd1aXR5IGlu dm9sdmluZyBhIGNhbGwgdG8gdGhlc2UKLS0gICAgICAgZW50aXRpZXMgd2hlbiB0aGUgcmV0dXJu IHR5cGUgaXMgYW4gYXJyYXkgdHlwZSwgYW5kIGEgY2FsbCBjYW4gYmUKLS0gICAgICAgaW50ZXJw cmV0ZWQgYXMgYW4gaW5kZXhpbmcgb2YgdGhlIHJlc3VsdCBvZiB0aGUgY2FsbC4gSXQgaXMgYWxz bwotLSAgICAgICB1c2VkIHRvIHJlc29sdmUgdmFyaW91cyBjYXNlcyBvZiBlbnRyeSBjYWxscy4K Ci0tICAgIE5vdF9Tb3VyY2VfQXNzaWduZWQgKEZsYWcxMTUpCi0tICAgICAgIFByZXNlbnQgaW4g YWxsIGVudGl0aWVzLCBidXQgcmVsZXZhbnQgb25seSBmb3IgdmFyaWFibGVzIGFuZAotLSAgICAg ICBwYXJhbWV0ZXJzLiBUaGlzIGZsYWcgaXMgc2V0IGlmIHRoZSBvYmplY3QgaXMgbmV2ZXIgYXNz aWduZWQgYQotLSAgICAgICB2YWx1ZSBpbiB1c2VyIGNvZGUgYW5kIHdhcyBub3QgZnVsbHkgaW5p dGlhbGl6ZWQgYXQgZGVjbGFyYXRpb24KLS0gICAgICAgdGltZS4gTm90ZSBob3dldmVyLCB0aGF0 IGFuIGFjY2VzcyB2YXJpYWJsZSBpcyBub3QgY29uc2lkZXJlZAotLSAgICAgICBmdWxseSBpbml0 aWFsaXplZCBpbiB0aGlzIHNlbnNlLgotLQotLSAgICAgICBUaGlzIGZsYWcgaXMgb25seSBmb3Ig dGhlIHB1cnBvc2VzIG9mIGlzc3Vpbmcgd2FybmluZ3MsIGl0IG11c3Qgbm90Ci0tICAgICAgIGJl IHVzZWQgYnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHRvIGluZGljYXRlIHRoYXQgdGhlIHZhcmlhYmxl IGlzIGluCi0tICAgICAgIGZhY3QgYSBjb25zdGFudCwgc2luY2Ugc29tZSBhc3NpZ25tZW50cyBp biBnZW5lcmF0ZWQgY29kZSBkbyBub3QKLS0gICAgICAgY291bnQgKGZvciBleGFtcGxlLCB0aGUg Y2FsbCB0byBhbiBpbml0X3Byb2MgdG8gYXNzaWduIHNvbWUgYnV0Ci0tICAgICAgIG5vdCBhbGwg b2YgdGhlIGZpZWxkcyBpbiBhIHBhdGlhbGx5IGluaXRpYWxpemVkIHJlY29yZCkuIFRoZSBjb2Rl Ci0tICAgICAgIGdlbmVyYXRvciBzaG91bGQgaW5zdGVhZCB1c2UgdGhlIGZsYWcgSXNfVHJ1ZV9D b25zdGFudC4KLS0KLS0gICAgICAgSW4gdmFyaWFibGVzIGFuZCBvdXQgcGFyYW1ldGVycywgaWYg dGhpcyBmbGFnIGlzIHNldCBhZnRlciBmdWxsCi0tICAgICAgIHByb2Nlc3Npbmcgb2YgdGhlIGNv cnJlc3BvbmRpbmcgZGVjbGFyYXRpdmUgdW5pdCwgaXQgaW5kaWNhdGVzIHRoYXQKLS0gICAgICAg dGhlIHZhcmlhYmxlIG9yIHBhcmFtZXRlciB3YXMgbmV2ZXIgc2V0LCBhbmQgYSB3YXJuaW5nIG1l c3NhZ2UgY2FuCi0tICAgICAgIGJlIGlzc3VlZC4KLS0KLS0gICAgICAgTm90ZTogdGhpcyBmbGFn IGlzIGluaXRpYWxseSBzZXQsIGFuZCB0aGVuIGNsZWFyZWQgb24gZW5jb3VudGVyaW5nCi0tICAg ICAgIGFueSBjb25zdHJ1Y3QgdGhhdCBtaWdodCBjb25jZWl2YWJseSBsZWdpdGltYXRlbHkgc2V0 IHRoZSB2YWx1ZS4KLS0gICAgICAgVGh1cyBkdXJpbmcgdGhlIGFuYWx5c2lzIG9mIGEgZGVjbGFy YXRpdmUgcmVnaW9uIGFuZCBpdHMgYXNzb2NpYXRlZAotLSAgICAgICBzdGF0ZW1lbnQgc2VxdWVu Y2UsIHRoZSBtZWFuaW5nIG9mIHRoZSBmbGFnIGlzICJub3QgYXNzaWduZWQgeWV0IiwKLS0gICAg ICAgYW5kIG9uY2UgdGhpcyBhbmFseXNpcyBpcyBjb21wbGV0ZSB0aGUgZmxhZyBtZWFucyAibmV2 ZXIgYXNzaWduZWQiLgoKLS0gICAgICAgTm90ZTogZm9yIHZhcmlhYmxlcyBhcHBlYXJpbmcgaW4g cGFja2FnZSBkZWNsYXJhdGlvbnMsIHRoaXMgZmxhZwotLSAgICAgICBpcyBuZXZlciBzZXQuIFRo YXQgaXMgYmVjYXVzZSB0aGVyZSBpcyBubyB3YXkgdG8gdGVsbCBpZiBzb21lCi0tICAgICAgIGNs aWVudCBtb2RpZmllcyB0aGUgdmFyaWFibGUgKG9yIGluIHRoZSBjYXNlIG9mIHZhcmlhYmxlcyBp biB0aGUKLS0gICAgICAgcHJpdmF0ZSBwYXJ0LCBpZiBzb21lIGNoaWxkIHVuaXQgbW9kaWZpZXMg dGhlIHZhcmlhYmxlcykuCgotLSAgICAgICBOb3RlOiBpbiB0aGUgY2FzZSBvZiByZW5hbWVkIG9i amVjdHMsIHRoZSBmbGFnIG11c3QgYmUgc2V0IGluIHRoZQotLSAgICAgICB1bHRpbWF0ZSByZW5h bWVkIG9iamVjdC4gQ2xpZW50cyBub3RpbmcgYSBwb3NzaWJsZSBtb2RpZmljYXRpb24KLS0gICAg ICAgc2hvdWxkIHVzZSB0aGUgTm90ZV9Qb3NzaWJsZV9Nb2RpZmljYXRpb24gcHJvY2VkdXJlIGlu IFNlbV9VdGlsCi0tICAgICAgIHJhdGhlciB0aGFuIFNldF9Ob3RfU291cmNlX0Fzc2lnbmVkIHBy ZWNpc2VseSB0byBkZWFsIHByb3Blcmx5IHdpdGgKLS0gICAgICAgdGhlIHJlbmFtaW5nIHBvc3Np YmlsaXR5LgoKLS0gICAgTmV4dF9Db21wb25lbnQgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBs aWVzIHRvIHJlY29yZCBjb21wb25lbnRzLiBSZXR1cm5zIHRoZSBuZXh0IGNvbXBvbmVudCBieQot LSAgICAgICBmb2xsb3dpbmcgdGhlIGNoYWluIG9mIGRlY2xhcmVkIGVudGl0aWVzIHVudGlsIG9u ZSBpcyBmb3VuZCB3aGljaAotLSAgICAgICBjb3JyZXNwb25kcyB0byBhIGNvbXBvbmVudCAoRWtp bmQgaXMgRV9Db21wb25lbnQpLiBBbnkgaW50ZXJuYWwgdHlwZXMKLS0gICAgICAgZ2VuZXJhdGVk IGZyb20gdGhlIHN1YnR5cGUgaW5kaWNhdGlvbnMgb2YgdGhlIHJlY29yZCBjb21wb25lbnRzIGFy ZQotLSAgICAgICBza2lwcGVkLiBSZXR1cm5zIEVtcHR5IGlmIG5vIG1vcmUgY29tcG9uZW50cy4K Ci0tICAgIE5leHRfRGlzY3JpbWluYW50IChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0 byBkaXNjcmltaW5hbnRzIHJldHVybmVkIGJ5IEZpcnN0L05leHRfRGlzY3JpbWluYW50LgotLSAg ICAgICBSZXR1cm5zIHRoZSBuZXh0IGxhbmd1YWdlLWRlZmluZWQgKGllOiBwZXJoYXBzIG5vbi1n aXJkZXIpCi0tICAgICAgIGRpc2NyaW1pbmFudCBieSBmb2xsb3dpbmcgdGhlIGNoYWluIG9mIGRl Y2xhcmVkIGVudGl0aWVzIGFzIGxvbmcgYXMKLS0gICAgICAgdGhlIGtpbmQgb2YgdGhlIGVudGl0 eSBjb3JyZXNwb25kcyB0byBhIGRpc2NyaW1pbmFudC4gTm90ZSB0aGF0IHRoZQotLSAgICAgICBk aXNjcmltaW5hbnRzIG1pZ2h0IGJlIHRoZSBvbmx5IGNvbXBvbmVudHMgb2YgdGhlIHJlY29yZC4K LS0gICAgICAgUmV0dXJucyBFbXB0eSBpZiB0aGVyZSBhcmUgbm8gbW9yZS4KCi0tICAgIE5leHRf RW50aXR5IChOb2RlMikKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFRoZSBlbnRp dGllcyBvZiBhIHNjb3BlIGFyZSBjaGFpbmVkLCB3aXRoCi0tICAgICAgIHRoZSBoZWFkIG9mIHRo ZSBsaXN0IGJlaW5nIGluIHRoZSBGaXJzdF9FbnRpdHkgZmllbGQgb2YgdGhlIHNjb3BlCi0tICAg ICAgIGVudGl0eS4gQWxsIGVudGl0aWVzIHVzZSB0aGUgTmV4dF9FbnRpdHkgZmllbGQgYXMgYSBm b3J3YXJkIHBvaW50ZXIKLS0gICAgICAgZm9yIHRoaXMgbGlzdCwgd2l0aCBFbXB0eSBpbmRpY2F0 aW5nIHRoZSBlbmQgb2YgdGhlIGxpc3QuIFNpbmNlIHRoaXMKLS0gICAgICAgZmllbGQgaXMgaW4g dGhlIGJhc2UgcGFydCBvZiB0aGUgZW50aXR5LCB0aGUgYWNjZXNzIHJvdXRpbmVzIGZvciB0aGlz Ci0tICAgICAgIGZpZWxkIGFyZSBpbiBTaW5mby4KCi0tICAgIE5leHRfRm9ybWFsIChzeW50aGVz aXplZCkKLS0gICAgICAgQXBwbGllcyB0byB0aGUgZW50aXR5IGZvciBhIGZvcm1hbCBwYXJhbWV0 ZXIuIFJldHVybnMgdGhlIG5leHQKLS0gICAgICAgZm9ybWFsIHBhcmFtZXRlciBvZiB0aGUgc3Vi cHJvZ3JhbSBvciBzdWJwcm9ncmFtIHR5cGUuIFJldHVybnMKLS0gICAgICAgRW1wdHkgaWYgdGhl cmUgYXJlIG5vIG1vcmUgZm9ybWFscy4KCi0tICAgIE5leHRfRm9ybWFsX1dpdGhfRXh0cmFzIChz eW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byB0aGUgZW50aXR5IGZvciBhIGZvcm1hbCBw YXJhbWV0ZXIuIFJldHVybnMgdGhlIG5leHQKLS0gICAgICAgZm9ybWFsIHBhcmFtZXRlciBvZiB0 aGUgc3VicHJvZ3JhbSBvciBzdWJwcm9ncmFtIHR5cGUuIFJldHVybnMKLS0gICAgICAgRW1wdHkg aWYgdGhlcmUgYXJlIG5vIG1vcmUgZm9ybWFscy4gVGhlIGxpc3QgcmV0dXJuZWQgaW5jbHVkZXMK LS0gICAgICAgYWxsIHRoZSBleHRyYSBmb3JtYWxzIChzZWUgZGVzY3JpcHRpb24gb2YgRXh0cmFf Rm9ybWFsIGZpZWxkKQoKLS0gICAgTmV4dF9HaXJkZXJfRGlzY3JpbWluYW50IChzeW50aGVzaXpl ZCkKLS0gICAgICAgQXBwbGllcyB0byBkaXNjcmltaW5hbnRzLiBTZXQgb25seSBmb3IgYSBkaXNj cmltaW5hbnQgcmV0dXJuZWQgYnkKLS0gICAgICAgYSBjYWxsIHRvIEZpcnN0L05leHRfR2lyZGVy X0Rpc2NyaW1pbmFudC4gUmV0dXJucyBuZXh0IGdpcmRlcgotLSAgICAgICBkaXNjcmltaW5hbnQs IGlmIHRoZXJlIGFyZSBtb3JlIChzZWUgY29tcGxldGUgZGVzY3JpcHRpb24gaW4KLS0gICAgICAg Rmlyc3RfR2lyZGVyX0Rpc2NyaW1pbmFudCksIG9yIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3Jl LgoKLS0gICAgTmV4dF9JbmRleCAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gYXJy YXkgdHlwZXMgYW5kIHN1YnR5cGVzIGFuZCB0byBzdHJpbmcgdHlwZXMgYW5kCi0tICAgICAgIHN1 YnR5cGVzLiBZaWVsZHMgdGhlIG5leHQgaW5kZXguIFRoZSBmaXJzdCBpbmRleCBpcyBvYnRhaW5l ZCBieQotLSAgICAgICB1c2luZyB0aGUgRmlyc3RfSW5kZXggYXR0cmlidXRlLCBhbmQgdGhlbiBz dWJzZXF1ZW50IGluZGV4ZXMgYXJlCi0tICAgICAgIG9idGFpbmVkIGJ5IGFwcGx5aW5nIE5leHRf SW5kZXggdG8gdGhlIHByZXZpb3VzIGluZGV4LiBFbXB0eSBpcwotLSAgICAgICByZXR1cm5lZCB0 byBpbmRpY2F0ZSB0aGF0IHRoZXJlIGFyZSBubyBtb3JlIGluZGV4ZXMuIE5vdGUgdGhhdAotLSAg ICAgICB1bmxpa2UgbW9zdCBhdHRyaWJ1dGVzIGluIHRoaXMgcGFja2FnZSwgTmV4dF9JbmRleCBh cHBsaWVzIHRvCi0tICAgICAgIG5vZGVzIGZvciB0aGUgaW5kZXhlcywgbm90IHRvIGVudGl0aWVz LgoKLS0gICAgTmV4dF9JbmxpbmVkX1N1YnByb2dyYW0gKE5vZGUxMikKLS0gICAgICAgUHJlc2Vu dCBpbiBzdWJwcm9ncmFtcy4gVXNlZCB0byBjaGFpbiBpbmxpbmVkIHN1YnByb2dyYW1zIHVzZWQg aW4KLS0gICAgICAgdGhlIGN1cnJlbnQgY29tcGlsYXRpb24sIGluIHRoZSBvcmRlciBpbiB3aGlj aCB0aGV5IG11c3QgYmUgY29tcGlsZWQKLS0gICAgICAgYnkgR2lnaSB0byBpbnN1cmUgdGhhdCBh bGwgaW5saW5pbmdzIGFyZSBwZXJmb3JtZWQuCgotLSAgICBOZXh0X0xpdGVyYWwgKHN5bnRoZXNp emVkKQotLSAgICAgICBBcHBsaWVzIHRvIGVudW1lcmF0aW9uIGxpdGVyYWxzLCByZXR1cm5zIHRo ZSBuZXh0IGxpdGVyYWwsIG9yCi0tICAgICAgIEVtcHR5IGlmIGFwcGxpZWQgdG8gdGhlIGxhc3Qg bGl0ZXJhbC4gVGhpcyBpcyBhY3R1YWxseSBhIHN5bm9ueW0KLS0gICAgICAgZm9yIE5leHQsIGJ1 dCBpdHMgdXNlIGlzIHByZWZlcnJlZCBpbiB0aGlzIGNvbnRleHQuCgotLSAgICBOb25fQmluYXJ5 X01vZHVsdXMgKEZsYWc1OCkgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50IGluIG1v ZHVsYXIgaW50ZWdlciB0eXBlcy4gU2V0IGlmIHRoZSBtb2R1bHVzIGZvciB0aGUgdHlwZQotLSAg ICAgICBpcyBvdGhlciB0aGFuIGEgcG93ZXIgb2YgMi4KCi0tICAgIE5vbnplcm9fSXNfVHJ1ZSAo RmxhZzE2MikgW2Jhc2UgdHlwZSBvbmx5XQotLSAgICAgICBQcmVzZW50IGluIGVudW1lcmF0aW9u IHR5cGVzLiBUcnVlIGlmIGFueSBub24temVybyB2YWx1ZSBpcyB0byBiZQotLSAgICAgICBpbnRl cnByZXRlZCBhcyB0cnVlLiBDdXJyZW50bHkgdGhpcyBpcyBzZXQgdHJ1ZSBmb3IgZGVyaXZlZCBC b29sZWFuCi0tICAgICAgIHR5cGVzIHdoaWNoIGhhdmUgYSBjb252ZW50aW9uIG9mIEMsIEMrKyBv ciBGb3J0cmFuLgoKLS0gICAgTm9fUG9vbF9Bc3NpZ25lZCAoRmxhZzEzMSkgW3Jvb3QgdHlwZSBv bmx5XQotLSAgICAgICBQcmVzZW50IGluIGFjY2VzcyB0eXBlcy4gU2V0IGlmIGEgc3RvcmFnZSBz aXplIGNsYXVzZSBhcHBsaWVzIHRvCi0tICAgICAgIHRoZSB2YXJpYWJsZSB3aXRoIGEgY29tcGls ZSB0aW1lIGtub3duIHZhbHVlIG9mIHplcm8uIFRoaXMgZmxhZyBpcwotLSAgICAgICB1c2VkIHRv IGdlbmVyYXRlIHdhcm5pbmdzIGlmIGFueSBhdHRlbXB0IGlzIG1hZGUgdG8gYWxsb2NhdGUgYW4K LS0gICAgICAgaW5zdGFuY2Ugb2Ygc3VjaCBhbiBhY2Nlc3MgdHlwZS4KCi0tICAgIE5vX1JldHVy biAoRmxhZzExMykKLS0gICAgICAgUHJlc2VudCBpbiBwcm9jZWR1cmUgYW5kIGdlbmVyaWMgcHJv Y2VkdXJlIGVudHJpZXMuIEluZGljYXRlcyB0aGF0Ci0tICAgICAgIGEgcHJhZ21hIE5vX1JldHVy biBhcHBsaWVzIHRvIHRoZSBwcm9jZWR1cmUuCgotLSAgICBOb3JtYWxpemVkX0ZpcnN0X0JpdCAo VWludDgpCi0tICAgICAgIFByZXNlbnQgaW4gY29tcG9uZW50cyBhbmQgZGlzY3JpbWluYW50cy4g SW5kaWNhdGVzIHRoZSBub3JtYWxpemVkCi0tICAgICAgIHZhbHVlIG9mIEZpcnN0X0JpdCBmb3Ig dGhlIGNvbXBvbmVudCwgaS5lLiB0aGUgb2Zmc2V0IHdpdGhpbiB0aGUKLS0gICAgICAgbG93ZXN0 IGFkZHJlc3NlZCBzdG9yYWdlIHVuaXQgY29udGFpbmluZyBwYXJ0IG9yIGFsbCBvZiB0aGUgZmll bGQuCgotLSAgICBOb3JtYWxpemVkX1Bvc2l0aW9uIChVaW50OSkKLS0gICAgICAgUHJlc2VudCBp biBjb21wb25lbnRzIGFuZCBkaXNjcmltaW5hbnRzLiBJbmRpY2F0ZXMgdGhlIG5vcm1hbGl6ZWQK LS0gICAgICAgdmFsdWUgb2YgUG9zaXRpb24gZm9yIHRoZSBjb21wb25lbnQsIGkuZS4gdGhlIG9m ZnNldCBpbiBzdG9yYWdlCi0tICAgICAgIHVuaXRzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSByZWNv cmQgdG8gdGhlIGxvd2VzdCBhZGRyZXNzZWQgc3RvcmFnZQotLSAgICAgICB1bml0IGNvbnRhaW5p bmcgcGFydCBvciBhbGwgb2YgdGhlIGZpZWxkLgoKLS0gICAgTm9ybWFsaXplZF9Qb3NpdGlvbl9N YXggKFVpbnQxMCkKLS0gICAgICAgUHJlc2VudCBpbiBjb21wb25lbnRzIGFuZCBkaXNjcmltaW5h bnRzLiBGb3IgYWxtb3N0IGFsbCBjYXNlcywgdGhpcwotLSAgICAgICBpcyB0aGUgc2FtZSBhcyBO b3JtYWxpemVkX1Bvc2l0aW9uLiBUaGUgb25lIGV4Y2VwdGlvbiBpcyBmb3IgdGhlIGNhc2UKLS0g ICAgICAgb2YgYSBkaXNjcmltaW5hdGVkIHJlY29yZCBjb250YWluaW5nIG9uZSBvciBtb3JlIGFy cmF5cyB3aG9zZSBsZW5ndGgKLS0gICAgICAgZGVwZW5kcyBvbiBkaXNjcmltaW5hbnRzLiBJbiB0 aGlzIGNhc2UsIHRoZSBOb3JtYWxpemVkX1Bvc2l0aW9uX01heAotLSAgICAgICBmaWVsZCByZXBy ZXNlbnRzIHRoZSBtYXhpbXVtIHBvc3NpYmxlIHZhbHVlIG9mIE5vcm1hbGl6ZWRfUG9zaXRpb24K LS0gICAgICAgYXNzdW1pbmcgbWluL21heCB2YWx1ZXMgZm9yIGRpc2NyaW1pbmFudCBzdWJzY3Jp cHRzIGluIGFsbCBmaWVsZHMuCi0tICAgICAgIFRoaXMgaXMgdXNlZCBieSBMYXlvdXQgaW4gZnJv bnQgZW5kIGxheW91dCBtb2RlIHRvIHByb3Blcmx5IGNvbXB1dGVkCi0tICAgICAgIHRoZSBtYXhp bXVtIHNpemUgc3VjaCByZWNvcmRzIChuZWVkZWQgZm9yIGFsbG9jYXRpb24gcHVycG9zZXMgd2hl bgotLSAgICAgICB0aGVyZSBhcmUgZGVmYXVsdCBkaXNjcmltaW5hbnRzLCBhbmQgYWxzbyBmb3Ig dGhlICdTaXplIHZhbHVlKS4KCi0tICAgIE51bWJlcl9EaW1lbnNpb25zIChzeW50aGVzaXplZCkK LS0gICAgICAgQXBwbGllcyB0byBhcnJheSB0eXBlcyBhbmQgc3VidHlwZXMuIFJldHVybnMgdGhl IG51bWJlciBvZiBkaW1lbnNpb25zCi0tICAgICAgIG9mIHRoZSBhcnJheSB0eXBlIG9yIHN1YnR5 cGUgYXMgYSB2YWx1ZSBvZiB0eXBlIFBvcy4KCi0tICAgIE51bWJlcl9EaXNjcmltaW5hbnRzIChz eW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgdHlwZXMgd2l0aCBkaXNjcmltaW5h bnRzLiBZaWVsZHMgdGhlIG51bWJlciBvZgotLSAgICAgICBkaXNjcmltaW5hbnRzIGFzIGEgdmFs dWUgb2YgdHlwZSBQb3MuCgotLSAgICBOdW1iZXJfRW50cmllcyAoc3ludGhlc2l6ZWQpCi0tICAg ICAgIEFwcGxpZXMgdG8gY29uY3VycmVudCB0eXBlcy4gUmV0dXJucyB0aGUgbnVtYmVyIG9mIGVu dHJpZXMgdGhhdCBhcmUKLS0gICAgICAgZGVjbGFyZWQgd2l0aGluIHRoZSB0YXNrIG9yIHByb3Rl Y3RlZCBkZWZpbml0aW9uIGZvciB0aGUgdHlwZS4KCi0tICAgIE51bWJlcl9Gb3JtYWxzIChzeW50 aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBzdWJwcm9ncmFtcyBhbmQgc3VicHJvZ3JhbSB0 eXBlcy4gWWllbGRzIHRoZSBudW1iZXIgb2YKLS0gICAgICAgZm9ybWFscyBhcyBhIHZhbHVlIG9m IHR5cGUgUG9zLgoKLS0gICAgT2JqZWN0X1JlZiAoTm9kZTE3KQotLSAgICAgICBQcmVzZW50IGlu IHByb3RlY3RlZCBib2RpZXMuIFRoaXMgaXMgYW4gaW1wbGljaXQgcHJpdmFsIGZvciB0aGUKLS0g ICAgICAgUHJvdGVjdGlvbiBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIGEgcHJvdGVjdGVkIG9iamVj dC4gU2VlIFByaXZhbAotLSAgICAgICBmb3IgZnVydGhlciBkZXRhaWxzIG9uIHRoZSB1c2Ugb2Yg cHJpdmFscy4KCi0tICAgIE9yaWdpbmFsX1JlY29yZF9Db21wb25lbnQgKE5vZGUyMikKLS0gICAg ICAgUHJlc2VudCBpbiBjb21wb25lbnRzLCBpbmNsdWRpbmcgZGlzY3JpbWluYW50cy4gVGhlIHVz YWdlIGRlcGVuZHMKLS0gICAgICAgb24gd2hldGhlciB0aGUgcmVjb3JkIGlzIGEgYmFzZSB0eXBl IGFuZCB3aGV0aGVyIGl0IGlzIHRhZ2dlZC4KLS0KLS0gICAgICAgSW4gYmFzZSB0YWdnZWQgdHlw ZXM6Ci0tICAgICAgICAgV2hlbiB0aGUgY29tcG9uZW50IGlzIGluaGVyaXRlZCBpbiBhIHJlY29y ZCBleHRlbnNpb24sIGl0IHBvaW50cwotLSAgICAgICAgIHRvIHRoZSBvcmlnaW5hbCBjb21wb25l bnQgKHRoZSBlbnRpdHkgb2YgdGhlIGFuY2VzdG9yIGNvbXBvbmVudAotLSAgICAgICAgIHdoaWNo IGlzIG5vdCBpdHNlbGYgaW5oZXJpdGVkKSBvdGhlcndpc2UgaXQgcG9pbnRzIHRvIGl0c2VsZi4K LS0gICAgICAgICBHaWdpIHVzZXMgdGhpcyBhdHRyaWJ1dGUgdG8gaW1wbGVtZW50IHRoZSBhdXRv bWF0aWMgZGVyZWZlcmVuY2UgaW4KLS0gICAgICAgICB0aGUgZXh0ZW5zaW9uIGFuZCB0byBhcHBs eSB0aGUgdHJhbnNmb3JtYXRpb246Ci0tCi0tICAgICAgICAgICAgUmVjX0V4dC5Db21wIC0+IFJl Y19FeHQuUGFyZW50LiAuLi4gLlBhcmVudC5Db21wCi0tCi0tICAgICAgIEluIGJhc2Ugbm9uLXRh Z2dlZCB0eXBlczoKLS0gICAgICAgICBBbHdheXMgcG9pbnRzIHRvIGl0c2VsZiBleGNlcHQgZm9y IG5vbi1naXJkZXIgZGlzY3JpbWluYW50cywgd2hlcmUKLS0gICAgICAgICBpdCBwb2ludHMgdG8g dGhlIGdpcmRlciBkaXNjcmltaW5hbnQgaXQgcmVuYW1lcy4KLS0KLS0gICAgICAgSW4gc3VidHlw ZXMgKHRhZ2dlZCBhbmQgdW50YWdnZWQpOgotLSAgICAgICAgIFBvaW50cyB0byB0aGUgY29tcG9u ZW50IGluIHRoZSBiYXNlIHR5cGUuCgotLSAgICBQYWNrZWRfQXJyYXlfVHlwZSAoTm9kZTIzKQot LSAgICAgICBQcmVzZW50IGluIGFycmF5IHR5cGVzIGFuZCBzdWJ0eXBlcywgaW5jbHVkaW5nIHRo ZSBzdHJpbmcgbGl0ZXJhbAotLSAgICAgICBzdWJ0eXBlIGNhc2UsIGlmIHRoZSBjb3JyZXNwb25k aW5nIHR5cGUgaXMgcGFja2VkIChlaXRoZXIgYml0IHBhY2tlZAotLSAgICAgICBvciBwYWNrZWQg dG8gZWxpbWluYXRlIGhvbGVzIGluIG5vbi1jb250aWd1b3VzIGVudW1lcmF0aW9uIHR5cGUKLS0g ICAgICAgaW5kZXggdHlwZXMpLiBSZWZlcmVuY2VzIHRoZSB0eXBlIHVzZWQgdG8gcmVwcmVzZW50 IHRoZSBwYWNrZWQgYXJyYXksCi0tICAgICAgIHdoaWNoIGlzIGVpdGhlciBhIG1vZHVsYXIgdHlw ZSBmb3Igc2hvcnQgc3RhdGljIGFycmF5cywgb3IgYW4KLS0gICAgICAgYXJyYXkgb2YgU3lzdGVt LlVuc2lnbmVkLiBOb3RlIHRoYXQgaW4gc29tZSBzaXR1YXRpb25zIChpbnRlcm5hbAotLSAgICAg ICB0eXBlcywgYW5kIHJlZmVyZW5jZXMgdG8gZmllbGRzIG9mIHZhcmlhbnQgcmVjb3JkcyksIGl0 IGlzIG5vdAotLSAgICAgICBhbHdheXMgcG9zc2libGUgdG8gY29uc3RydWN0IHRoaXMgdHlwZSBp biBhZHZhbmNlIG9mIGl0cyB1c2UuIElmCi0tICAgICAgIFBhY2tlZF9BcnJheV9UeXBlIGlzIGVt cHR5LCB0aGVuIHRoZSBuZWNlc3NhcnkgdHlwZSBpcyBkZWNsYXJlZAotLSAgICAgICBvbiB0aGUg Zmx5IGZvciBlYWNoIHJlZmVyZW5jZSB0byB0aGUgYXJyYXkuCgotLSAgICBQYXJhbWV0ZXJfTW9k ZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gZm9ybWFsIHBhcmFtZXRlciBlbnRp dGllcy4gVGhpcyBpcyBhIHN5bm9ueW0gZm9yIEVraW5kLAotLSAgICAgICB1c2VkIHdoZW4gb2J0 YWluaW5nIHRoZSBmb3JtYWwga2luZCBvZiBhIGZvcm1hbCBwYXJhbWV0ZXIgKHRoZSByZXN1bHQK LS0gICAgICAgaXMgb25lIG9mIEVfW0luL091dC9Jbl9PdXRdX1BhcmFtZXRlcikKCi0tICAgIFBh cmVudF9TdWJ0eXBlIChOb2RlMTkpCi0tICAgICAgIFByZXNlbnQgaW4gRV9SZWNvcmRfVHlwZS4g UG9pbnRzIHRvIHRoZSBzdWJ0eXBlIHRvIHVzZSBmb3IgYQotLSAgICAgICBmaWVsZCB0aGF0IHJl ZmVyZW5jZXMgdGhlIHBhcmVudCByZWNvcmQuIFRoaXMgaXMgdXNlZCBieSBHaWdpIHRvCi0tICAg ICAgIGNvbnN0cnVjdCBzdWNoIGEgZmllbGQuCgotLSAgICBQcmltaXRpdmVfT3BlcmF0aW9ucyAo RWxpc3QxNSkKLS0gICAgICAgUHJlc2VudCBpbiB0YWdnZWQgcmVjb3JkIHR5cGVzIGFuZCBzdWJ0 eXBlcyBhbmQgaW4gdGFnZ2VkIHByaXZhdGUKLS0gICAgICAgdHlwZXMuIFBvaW50cyB0byBhbiBl bGVtZW50IGxpc3Qgb2YgZW50aXRpZXMgZm9yIHByaW1pdGl2ZSBvcGVyYXRpb25zCi0tICAgICAg IGZvciB0aGUgdGFnZ2VkIHR5cGUuIE5vdCBwcmVzZW50IChhbmQgbm90IHNldCkgaW4gdW50YWdn ZWQgdHlwZXMgKGl0Ci0tICAgICAgIGlzIGFuIGVycm9yIHRvIHJlZmVyZW5jZSB0aGUgcHJpbWl0 aXZlIG9wZXJhdGlvbnMgZmllbGQgb2YgYSB0eXBlCi0tICAgICAgIHRoYXQgaXMgbm90IHRhZ2dl ZCkuCgotLSAgICBQcml2YXRlX0RlcGVuZGVudHMgKEVsaXN0MTgpCi0tICAgICAgIFByZXNlbnQg aW4gcHJpdmF0ZSAoc3ViKXR5cGVzLiBSZWNvcmRzIHRoZSBzdWJ0eXBlcyBvZiB0aGUKLS0gICAg ICAgcHJpdmF0ZSB0eXBlLCBkZXJpdmF0aW9ucyBmcm9tIGl0LCBhbmQgcmVjb3JkcyBhbmQgYXJy YXlzCi0tICAgICAgIHdpdGggY29tcG9uZW50cyBkZXBlbmRlbnQgb24gdGhlIHR5cGUuCi0tCi0t ICAgICAgIFRoZSBzdWJ0eXBlcyBhcmUgdHJhdmVyc2VkIHdoZW4gaW5zdGFsbGluZyBhbmQgZGVp bnN0YWxsaW5nCi0tICAgICAgICh0aGUgZnVsbCB2aWV3IG9mKSBhIHByaXZhdGUgdHlwZSBpbiBv cmRlciB0byBlbnN1cmUgY29ycmVjdAotLSAgICAgICB2aWV3IG9mIHRoZSBzdWJ0eXBlcy4KLS0K LS0gICAgICAgVXNlZCBpbiBzaW1pbGFyIGZhc2hpb24gZm9yIGluY29tcGxldGUgdHlwZXM6IGhv bGRzIGxpc3Qgb2Ygc3VidHlwZXMKLS0gICAgICAgb2YgdGhlc2UgaW5jb21wbGV0ZSB0eXBlcyB0 aGF0IGhhdmUgZGlzY3JpbWluYW50IGNvbnN0cmFpbnRzLiBUaGUKLS0gICAgICAgZnVsbCB2aWV3 cyBvZiB0aGVzZSBzdWJ0eXBlcyBhcmUgY29uc3RydWN0ZWQgd2hlbiB0aGUgZnVsbCB2aWV3IG9m Ci0tICAgICAgIHRoZSBpbmNvbXBsZXRlIHR5cGUgaXMgcHJvY2Vzc2VkLgoKLS0gICAgICAgSW4g YWRkaXRpb24sIGlmIHRoZSBpbmNvbXBsZXRlIHR5cGUgaXMgdGhlIGRlc2lnbmF0ZWQgdHlwZSBp biBhbgotLSAgICAgICBhY2Nlc3MgZGVmaW5pdGlvbiBmb3IgYW4gYWNjZXNzIHBhcmFtZXRlciwg dGhlIG9wZXJhdGlvbiBtYXkgYmUKLS0gICAgICAgYSBkaXNwYXRjaGluZyBwcmltaXRpdmUgb3Bl cmF0aW9uLCB3aGljaCBpcyBvbmx5IGtub3duIHdoZW4gdGhlIGZ1bGwKLS0gICAgICAgZGVjbGFy YXRpb24gb2YgdGhlIHR5cGUgaXMgc2Vlbi4gU3VicHJvZ3JhbXMgdGhhdCBoYXZlIHN1Y2ggYW4K LS0gICAgICAgYWNjZXNzIHBhcmFtZXRlciBhcmUgYWxzbyBwbGFjZWQgaW4gdGhlIGxpc3Qgb2Yg cHJpdmF0ZV9kZXBlbmRlbnRzLgoKLS0gICAgUHJpdmFsIChOb2RlMTcpCi0tICAgICAgIFByZXNl bnQgaW4gY29tcG9uZW50cy4gVXNlZCBmb3IgcmVwcmVzZW50aW5nIHByaXZhdGUgZGVjbGFyYXRp b25zCi0tICAgICAgIG9mIHByb3RlY3RlZCBvYmplY3RzIChwcml2YXRlIGZvcm1hbDogYnkgYW5h bG9neSB0byBEaXNjcmltaW5hbF9MaW5rKS4KLS0gICAgICAgRW1wdHkgdW5sZXNzIHRoZSBzeW50 aGVzaXplZCBJc19Qcm90ZWN0ZWRfUHJpdmF0ZSBhdHRyaWJ1dGUgaXMKLS0gICAgICAgdHJ1ZS4g VGhlIGVudGl0eSB1c2VkIGFzIGEgZm9ybWFsIHBhcmFtZXRlciB0aGF0IGNvcnJlc3BvbmRzIHRv Ci0tICAgICAgIHRoZSB0byB0aGUgcHJpdmF0ZSBkZWNsYXJhdGlvbiBpbiBwcm90ZWN0ZWQgb3Bl cmF0aW9ucy4gU2VlCi0tICAgICAgICJQcml2YXRlIGRhdGEgaW4gcHJvdGVjdGVkIG9iamVjdHMi IGZvciBkZXRhaWxzLgoKLS0gICAgUHJpdmFsc19DaGFpbiAoRWxpc3QyMykKLS0gICAgICAgUHJl c2VudCBpbiBwcm90ZWN0ZWQgb3BlcmF0aW9ucyAoc3VicHJvZ3JhbXMgYW5kIGVudHJpZXMpLiBM aW5rcwotLSAgICAgICBhbGwgb2NjdXJyZW5jZXMgb2YgdGhlIFByaXZhbHMgaW4gdGhlIGJvZHkg b2YgdGhlIG9wZXJhdGlvbiwgaW4KLS0gICAgICAgb3JkZXIgdG8gcGF0Y2ggdGhlaXIgdHlwZXMg YXQgdGhlIGVuZCBvZiB0aGVpciBleHBhbnNpb24uIFNlZQotLSAgICAgICAiUHJpdmF0ZSBkYXRh IGluIHByb3RlY3RlZCBvYmplY3RzIiBmb3IgZGV0YWlscy4KCi0tICAgIFByaXZhdGVfVmlldyAo Tm9kZTIyKQotLSAgICAgICBGb3IgZWFjaCBwcml2YXRlIHR5cGUsIHRocmVlIGVudGl0aWVzIGFy ZSBhbGxvY2F0ZWQsIHRoZSBwcml2YXRlIHZpZXcsCi0tICAgICAgIHRoZSBmdWxsIHZpZXcsIGFu ZCB0aGUgc2hhZG93IGVudGl0eS4gVGhlIHNoYWRvdyBlbnRpdHkgY29udGFpbnMgYQotLSAgICAg ICBjb3B5IG9mIHRoZSBwcml2YXRlIHZpZXcgYW5kIGlzIHVzZWQgZm9yIHJlc3RvcmluZyB0aGUg cHJvcGVyIHByaXZhdGUKLS0gICAgICAgdmlldyBhZnRlciBhIHJlZ2lvbiBpbiB3aGljaCB0aGUg ZnVsbCB2aWV3IGlzIHZpc2libGUgKGFuZCBpcyBjb3BpZWQKLS0gICAgICAgaW50byB0aGUgZW50 aXR5IG5vcm1hbGx5IHVzZWQgZm9yIHRoZSBwcml2YXRlIHZpZXcgZHVyaW5nIHRoaXMgcGVyaW9k Ci0tICAgICAgIG9mIHZpc2liaWxpdHkpLiBUaGUgUHJpdmF0ZV9WaWV3IGZpZWxkIGlzIHNlbGYt cmVmZXJlbnRpYWwgd2hlbiB0aGUKLS0gICAgICAgcHJpdmF0ZSB2aWV3IGxpdmVzIGluIGl0cyBu b3JtYWwgZW50aXR5LCBidXQgaW4gdGhlIGNvcHkgdGhhdCBpcyBtYWRlCi0tICAgICAgIGluIHRo ZSBzaGFkb3cgZW50aXR5LCBpdCBwb2ludHMgdG8gdGhlIHByb3BlciBsb2NhdGlvbiBpbiB3aGlj aCB0bwotLSAgICAgICByZXN0b3JlIHRoZSBwcml2YXRlIHZpZXcgc2F2ZWQgaW4gdGhlIHNoYWRv dy4KCi0tICAgIFByb3RlY3RlZF9Gb3JtYWwgKE5vZGUyMikKLS0gICAgICAgUHJlc2VudCBpbiBm b3JtYWwgcGFyYW1ldGVycyAoaW4sIGluIG91dCBhbmQgb3V0IHBhcmFtZXRlcnMpLiBVc2VkCi0t ICAgICAgIG9ubHkgZm9yIGZvcm1hbHMgb2YgcHJvdGVjdGVkIG9wZXJhdGlvbnMuIFJlZmVyZW5j ZXMgY29ycmVzcG9uZGluZwotLSAgICAgICBmb3JtYWwgcGFyYW1ldGVyIGluIHRoZSB1bnByb3Rl Y3RlZCB2ZXJzaW9uIG9mIHRoZSBvcGVyYXRpb24gdGhhdAotLSAgICAgICBpcyBjcmVhdGVkIGR1 cmluZyBleHBhbnNpb24uCgotLSAgICBQcm90ZWN0ZWRfQm9keV9TdWJwcm9ncmFtIChOb2RlMTEp Ci0tICAgICAgIFByZXNlbnQgaW4gcHJvdGVjdGVkIG9wZXJhdGlvbnMuIFJlZmVyZW5jZXMgdGhl IGVudGl0eSBmb3IgdGhlCi0tICAgICAgIHN1YnByb2dyYW0gd2hpY2ggaW1wbGVtZW50cyB0aGUg Ym9keSBvZiB0aGUgb3BlcmF0aW9uLgoKLS0gICAgUHJvdGVjdGVkX09wZXJhdGlvbiAoTm9kZTIz KQotLSAgICAgICBQcmVzZW50IGluIGNvbXBvbmVudHMuIFVzZWQgZm9yIHJlcHJlc2VudGluZyBw cml2YXRlIGRlY2xhcmF0aW9ucwotLSAgICAgICBvZiBwcm90ZWN0ZWQgb2JqZWN0cy4gRW1wdHkg dW5sZXNzIHRoZSBzeW50aGVzaXplZCBhdHRyaWJ1dGUKLS0gICAgICAgSXNfUHJvdGVjdGVkX1By aXZhdGUgaXMgVHJ1ZS4gVGhpcyBpcyB0aGUgZW50aXR5IGNvcnJlc3BvbmRpbmcKLS0gICAgICAg dG8gdGhlIGJvZHkgb2YgdGhlIHByb3RlY3RlZCBvcGVyYXRpb24gY3VycmVudGx5IGJlaW5nIGFu YWx5emVkLAotLSAgICAgICBhbmQgd2hpY2ggd2lsbCBldmVudHVhbGx5IHVzZSB0aGUgY3VycmVu dCBQcml2YWwgYXNzb2NpYXRlZCB3aXRoCi0tICAgICAgIHRoaXMgY29tcG9uZW50IHRvIHJlZmVy IHRvIHRoZSByZW5hbWluZyBvZiBhIHByaXZhdGUgb2JqZWN0Ci0tICAgICAgIGNvbXBvbmVudC4g QXMgc29vbiBhcyB0aGUgZXhwYW5kZXIgZ2VuZXJhdGVzIHRoaXMgcmVuYW1pbmcsIHRoaXMKLS0g ICAgICAgYXR0cmlidXRlIGlzIGNoYW5nZWQgdG8gcmVmZXIgdG8gdGhlIG5leHQgcHJvdGVjdGVk IHN1YnByb2dyYW0uCi0tICAgICAgIFNlZSAiUHJpdmF0ZSBkYXRhIGluIHByb3RlY3RlZCBvYmpl Y3RzIiBmb3IgZGV0YWlscy4KCi0tICAgIFJlYWNoYWJsZSAoRmxhZzQ5KQotLSAgICAgICBQcmVz ZW50IGluIGxhYmVscy4gVGhlIGZsYWcgaXMgc2V0IG92ZXIgdGhlIHJhbmdlIG9mIHN0YXRlbWVu dHMgaW4KLS0gICAgICAgd2hpY2ggYSBnb3RvIHRvIHRoYXQgbGFiZWwgaXMgbGVnYWwuCgotLSAg ICBSZWZlcmVuY2VkIChGbGFnMTU2KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRpdGllcywg c2V0IGlmIHRoZSBlbnRpdHkgaXMgcmVmZXJlbmNlZC4KCi0tICAgIFJlZmVyZW5jZWRfT2JqZWN0 IChOb2RlMTApCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIFNldCBub24t RW1wdHkgb25seSBmb3IgdHlwZSBlbnRpdGllcwotLSAgICAgICBjb25zdHJ1Y3RlZCBmb3IgdW5j b25zdHJhaW5lZCBvYmplY3RzLCBvciBvYmplY3RzIHRoYXQgZGVwZW5kIG9uCi0tICAgICAgIGRp c2NyaW1pbmFudHMuIFBvaW50cyB0byB0aGUgZXhwcmVzc2lvbiBmcm9tIHdoaWNoIHRoZSBhY3R1 YWwKLS0gICAgICAgc3VidHlwZSBvZiB0aGUgb2JqZWN0IGNhbiBiZSBldmFsdWF0ZWQuCgotLSAg ICBSZWdpc3Rlcl9FeGNlcHRpb25fQ2FsbCAoTm9kZTIwKQotLSAgICAgICBQcmVzZW50IGluIGV4 Y2VwdGlvbiBlbnRpdGllcy4gV2hlbiBhbiBleGNlcHRpb24gaXMgZGVjbGFyZWQsCi0tICAgICAg IGEgY2FsbCBpcyBleHBhbmRlZCB0byBSZWdpc3Rlcl9FeGNlcHRpb24uIFRoaXMgZmllbGQgcG9p bnRzIHRvCi0tICAgICAgIHRoZSBleHBhbmRlZCBOX1Byb2NlZHVyZV9DYWxsX1N0YXRlbWVudCBu b2RlIGZvciB0aGlzIGNhbGwuIEl0Ci0tICAgICAgIGlzIHVzZWQgZm9yIEltcG9ydC9FeHBvcnRf RXhjZXB0aW9uIHByb2Nlc3NpbmcgdG8gbW9kaWZ5IHRoZQotLSAgICAgICByZWdpc3RlciBjYWxs IHRvIG1ha2UgYXBwcm9wcmlhdGUgZW50cmllcyBpbiB0aGUgc3BlY2lhbCB0YWJsZXMKLS0gICAg ICAgdXNlZCBmb3IgaGFuZGxpbmcgdGhlc2UgcHJhZ21hcyBhdCBydW50aW1lLgoKLS0gICAgUmVs YXRlZF9BcnJheV9PYmplY3QgKE5vZGUxOSkKLS0gICAgICAgUHJlc2VudCBpbiBhcnJheSB0eXBl cyBhbmQgc3VidHlwZXMuIFVzZWQgb25seSBmb3IgdGhlIGJhc2UgdHlwZQotLSAgICAgICBhbmQg c3VidHlwZSBjcmVhdGVkIGZvciBhbiBhbm9ueW1vdXMgYXJyYXkgb2JqZWN0LiBTZXQgdG8gcG9p bnQKLS0gICAgICAgdG8gdGhlIGVudGl0eSBvZiB0aGUgY29ycmVzcG9uZGluZyBhcnJheSBvYmpl Y3QuIEN1cnJlbnRseSB1c2VkCi0tICAgICAgIG9ubHkgZm9yIHR5cGUtcmVsYXRlZCBlcnJvciBt ZXNzYWdlcy4KCi0tICAgIFJlbGF0ZWRfSW5zdGFuY2UgKE5vZGUxNSkKLS0gICAgICAgUHJlc2Vu dCBpbiB0aGUgd3JhcHBlciBwYWNrYWdlcyBjcmVhdGVkIGZvciBzdWJwcm9ncmFtIGluc3RhbmNl cy4KLS0gICAgICAgVGhlIGludGVybmFsIHN1YnByb2dyYW0gdGhhdCBpbXBsZW1lbnRzIHRoZSBp bnN0YW5jZSBpcyBpbnNpZGUgdGhlCi0tICAgICAgIHdyYXBwZXIgcGFja2FnZSwgYnV0IGZvciBk ZWJ1Z2dpbmcgcHVycG9zZXMgaXRzIGV4dGVybmFsIHN5bWJvbAotLSAgICAgICBtdXN0IGNvcnJl c3BvbmQgdG8gdGhlIG5hbWUgYW5kIHNjb3BlIG9mIHRoZSByZWxhdGVkIGluc3RhbmNlLgoKLS0g ICAgUmVuYW1lZF9FbnRpdHkgKE5vZGUxOCkKLS0gICAgICAgUHJlc2VudCBpbiBleGNlcHRpb25z LCBwYWNrYWdlcyBhbmQgZ2VuZXJpYyB1bml0cyB0aGF0IGFyZSBkZWZpbmVkCi0tICAgICAgIGJ5 IGEgcmVuYW1pbmcgZGVjbGFyYXRpb24uIERlbm90ZXMgdGhlIHJlbmFtZWQgZW50aXR5LCBvciB0 cmFuc2l0LQotLSAgICAgICBpdGl2ZWx5IHRoZSB1bHRpbWF0ZSByZW5hbWVkIGVudGl0eSBpZiB0 aGVyZSBpcyBhIGNoYWluIG9mIHJlbmFtaW5nCi0tICAgICAgIGRlY2xhcmF0aW9ucy4KCi0tICAg IFJlbmFtZWRfT2JqZWN0IChOb2RlMTgpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIG9iamVjdHMg KGNvbnN0YW50cywgdmFyaWFibGVzLCBjb21wb25lbnRzLCBmb3JtYWwKLS0gICAgICAgcGFyYW1l dGVycywgZ2VuZXJpYyBmb3JtYWwgcGFyYW1ldGVycywgYW5kIGxvb3AgcGFyYW1ldGVycy4gU2V0 Ci0tICAgICAgIG5vbi1FbXB0eSBpZiB0aGUgb2JqZWN0IHdhcyBkZWNsYXJlZCBieSBhIHJlbmFt aW5nIGRlY2xhcmF0aW9uLCBpbgotLSAgICAgICB3aGljaCBjYXNlIGl0IHJlZmVyZW5jZXMgdGhl IHRyZWUgbm9kZSBmb3IgdGhlIG5hbWUgb2YgdGhlIHJlbmFtZWQKLS0gICAgICAgb2JqZWN0LiBU aGlzIGlzIG9ubHkgcG9zc2libGUgZm9yIHRoZSB2YXJpYWJsZSBhbmQgY29uc3RhbnQgY2FzZXMu Ci0tICAgICAgIEZvciBmb3JtYWwgcGFyYW1ldGVycywgdGhpcyBmaWVsZCBpcyB1c2VkIGluIHRo ZSBjb3Vyc2Ugb2YgaW5saW5lCi0tICAgICAgIGV4cGFuc2lvbiwgdG8gbWFwIHRoZSBmb3JtYWxz IG9mIGEgc3VicHJvZ3JhbSBpbnRvIHRoZSBjb3JyZXNwb25kaW5nCi0tICAgICAgIGFjdHVhbHMu IFRoZSBmaWVsZCBpcyBFbXB0eSBvdGhlcndpc2UuCgotLSAgICBSZW5hbWluZ19NYXAgKFVpbnQ5 KQotLSAgICAgICBQcmVzZW50IGluIGdlbmVyaWMgc3VicHJvZ3JhbXMsIGdlbmVyaWMgcGFja2Fn ZXMsIGFuZCB0aGVpcgotLSAgICAgICBpbnN0YW5jZXMuIEFsc28gcHJlc2VudCBpbiB0aGUgaW5z dGFuY2VzIG9mIHRoZSBjb3JyZXNwb25kaW5nCi0tICAgICAgIGJvZGllcy4gRGVub3RlcyB0aGUg cmVuYW1pbmcgbWFwIChnZW5lcmljIGVudGl0aWVzID0+IGluc3RhbmNlCi0tICAgICAgIGVudGl0 aWVzKSB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgaW5zdGFuY2UgYnkgZ2l2aW4gYW4gaW5kZXggaW50 bwotLSAgICAgICB0aGUgdGFibGVzIHVzZWQgdG8gcmVwcmVzZW50IHRoZXNlIG1hcHMuIFNlZSBT ZW1fQ2gxMiBmb3IgZnVydGhlcgotLSAgICAgICBkZXRhaWxzLiBUaGUgbWFwcyBmb3IgcGFja2Fn ZSBpbnN0YW5jZXMgYXJlIGFsc28gdXNlZCB3aGVuIHRoZQotLSAgICAgICBpbnN0YW5jZSBpcyB0 aGUgYWN0dWFsIGNvcnJlc3BvbmRpbmcgdG8gYSBmb3JtYWwgcGFja2FnZS4KCi0tICAgIFJldHVy bl9QcmVzZW50IChGbGFnNTQpCi0tICAgICAgIFByZXNlbnQgaW4gZnVuY3Rpb24gYW5kIGdlbmVy aWMgZnVuY3Rpb24gZW50aXRpZXMuIFNldCBpZiB0aGUKLS0gICAgICAgZnVuY3Rpb24gY29udGFp bnMgYSByZXR1cm4gc3RhdGVtZW50ICh1c2VkIGZvciBlcnJvciBjaGVja2luZykuCi0tICAgICAg IFRoaXMgZmxhZyBjYW4gYWxzbyBiZSBzZXQgaW4gcHJvY2VkdXJlIGFuZCBnZW5lcmljIHByb2Nl ZHVyZQotLSAgICAgICBlbnRpdGllcyAoZm9yIGNvbnZlbmllbmNlIGluIHNldHRpbmcgaXQpLCBi dXQgaXMgb25seSB0ZXN0ZWQKLS0gICAgICAgZm9yIHRoZSBmdW5jdGlvbiBjYXNlLgoKLS0gICAg UmV0dXJuc19CeV9SZWYgKEZsYWc5MCkKLS0gICAgICAgUHJlc2VudCBpbiBmdW5jdGlvbiBlbnRp dGllcywgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZnVuY3Rpb24KLS0gICAgICAgcmV0dXJucyB0aGUg cmVzdWx0IGJ5IHJlZmVyZW5jZSwgZWl0aGVyIGJlY2F1c2UgaXRzIHJldHVybiB0eXAgaXMgYQot LSAgICAgICBieS1yZWZlcmVuY2UtdHlwZSBvciBiZWNhdXNlIGl0IHVzZXMgZXhwbGljaXRseSB0 aGUgc2Vjb25kYXJ5IHN0YWNrLgoKLS0gICAgUmV2ZXJzZV9CaXRfT3JkZXIgKEZsYWcxNjQpCi0t ICAgICAgIFByZXNlbnQgaW4gYWxsIHJlY29yZCB0eXBlIGVudGl0aWVzLiBTZXQgaWYgYSB2YWxp ZCBwcmFnbWEgYW4KLS0gICAgICAgYXR0cmlidXRlIHJlcHJlc2VudGlvbiBjbGF1c2UgZm9yIEJp dF9PcmRlciBoYXMgcmV2ZXJzZWQgdGhlIG9yZGVyCi0tICAgICAgIG9mIGJpdHMgZnJvbSB0aGUg ZGVmYXVsdCB2YWx1ZS4gV2hlbiB0aGlzIGZsYWcgaXMgc2V0LCBhIGNvbXBvbmVudAotLSAgICAg ICBjbGF1c2UgbXVzdCBzcGVjaWZ5IGEgc2V0IG9mIGJpdHMgZW50aXJlbHkgY29udGFpbmVkIGlu IGEgc2luZ2xlCi0tICAgICAgIHN0b3JhZ2UgdW5pdC4KCi0tICAgIFJNX1NpemUgKFVpbnQxMykK LS0gICAgICAgUHJlc2VudCBpbiBhbGwgdHlwZSBhbmQgc3VidHlwZSBlbnRpdGllcy4gQ29udGFp bnMgdGhlIHZhbHVlIG9mCi0tICAgICAgIHR5cGUnU2l6ZSBhcyBkZWZpbmVkIGluIHRoZSBSTS4g U2VlIGFsc28gdGhlIEVzaXplIGZpZWxkIGFuZAotLSAgICAgICBhbmQgdGhlIGRlc2NyaXB0aW9u IG9uICJIYW5kbGluZyBvZiBUeXBlJ1NpemUgVmFsdWVzIi4gQSB2YWx1ZQotLSAgICAgICBvZiB6 ZXJvIGZvciBpbiB0aGlzIGZpZWxkIGZvciBhIG5vbi1kaXNjcmV0ZSB0eXBlIG1lYW5zIHRoYXQK LS0gICAgICAgdGhlIGZyb250IGVuZCBoYXMgbm90IHlldCBkZXRlcm1pbmVkIHRoZSBzaXplIHZh bHVlLiBGb3IgdGhlCi0tICAgICAgIGNhc2Ugb2YgYSBkaXNjcmV0ZSB0eXBlLCB0aGlzIGZpZWxk IGlzIGFsd2F5cyBzZXQgYnkgdGhlIGZyb250Ci0tICAgICAgIGVuZCBhbmQgemVybyBpcyBhIGxl Z2l0aW1hdGUgdmFsdWUgZm9yIGEgdHlwZSB3aXRoIG9uZSB2YWx1ZS4KCi0tICAgIFJvb3RfVHlw ZSAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gYWxsIHR5cGUgZW50aXRpZXMuIEZv ciBjbGFzcy13aWRlIHR5cGVzLCByZXR1cm4gdGhlIHJvb3QKLS0gICAgICAgdHlwZSBvZiB0aGUg Y2xhc3MgY292ZXJlZCBieSB0aGUgQ1cgdHlwZSwgb3RoZXJ3aXNlIHJldHVybnMgdGhlCi0tICAg ICAgIHVsdGltYXRlIGRlcml2YXRpb24gYW5jZXN0b3Igb2YgdGhlIGdpdmVuIHR5cGUuIFRoaXMg ZnVuY3Rpb24KLS0gICAgICAgcHJlc2VydmVzIHRoZSB2aWV3LCBpLmUuIHRoZSBSb290X1R5cGUg b2YgYSBwYXJ0aWFsIHZpZXcgaXMgdGhlCi0tICAgICAgIHBhcnRpYWwgdmlldyBvZiB0aGUgdWxp bWF0ZSBhbmNlc3RvciwgdGhlIFJvb3RfVHlwZSBvZiBhIGZ1bGwgdmlldwotLSAgICAgICBpcyB0 aGUgZnVsbCB2aWV3IG9mIHRoZSB1bHRpbWF0ZSBhbmNlc3Rvci4gTm90ZSB0aGF0IHRoaXMgZnVu Y3Rpb24KLS0gICAgICAgZG9lcyBub3QgY29ycmVzcG9uZCBleGFjdGx5IHRvIHRoZSB1c2Ugb2Yg cm9vdCB0eXBlIGluIHRoZSBSTSwgc2luY2UKLS0gICAgICAgaW4gdGhlIFJNIHJvb3QgdHlwZSBh cHBsaWVzIHRvIGEgY2xhc3Mgb2YgdHlwZXMsIG5vdCB0byBhIHR5cGUuCgotLSAgICBTY2FsYXJf UmFuZ2UgKE5vZGUyMCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgc2NhbGFyIHR5cGVzIChpbmNs dWRpbmcgbW9kdWxhciB0eXBlcywgd2hlcmUgdGhlCi0tICAgICAgIGJvdW5kcyBhcmUgMCAuLiBt b2R1bHVzIC0gMSkuIFJlZmVyZW5jZXMgYSBub2RlIGluIHRoZSB0cmVlIHRoYXQKLS0gICAgICAg Y29udGFpbnMgdGhlIGJvdW5kcyBmb3IgdGhlIHJhbmdlLiBOb3RlIHRoYXQgdGhpcyBpbmZvcm1h dGlvbgotLSAgICAgICBjb3VsZCBiZSBvYnRhaW5lZCBieSBydW1tYWdpbmcgYXJvdW5kIHRoZSB0 cmVlLCBidXQgaXQgaXMgbW9yZQotLSAgICAgICBjb252ZW5pZW50IHRvIGhhdmUgaXQgaW1tZWRp YXRlbHkgYXQgaGFuZCBpbiB0aGUgZW50aXR5LiBUaGUKLS0gICAgICAgY29udGVudHMgb2YgU2Nh bGFyX1JhbmdlIGNhbiBlaXRoZXIgYmUgYW4gTl9TdWJ0eXBlX0luZGljYXRpb24KLS0gICAgICAg bm9kZSAod2l0aCBhIGNvbnN0cmFpbnQpLCBvciBhIFJhbmdlIG5vZGUsIGJ1dCBub3QgYSBzaW1w bGUKLS0gICAgICAgc3VidHlwZSByZWZlcmVuY2UgKGEgc3VidHlwZSBpcyBjb252ZXJ0ZWQgaW50 byBhIHJhbmdlKS4KCi0tICAgIFNjYWxlX1ZhbHVlIChVaW50MTUpCi0tICAgICAgIFByZXNlbnQg aW4gZGVjaW1hbCBmaXhlZC1wb2ludCB0eXBlcyBhbmQgc3VidHlwZXMuIENvbnRhaW5zIHRoZSBz Y2FsZQotLSAgICAgICBmb3IgdGhlIHR5cGUgKGkuZS4gdGhlIHZhbHVlIG9mIHR5cGUnU2NhbGUg PSB0aGUgbnVtYmVyIG9mIGRlY2ltYWwKLS0gICAgICAgZGlnaXRzIGFmdGVyIHRoZSBkZWNpbWFs IHBvaW50KS4KCi0tICAgIFNjb3BlIChOb2RlMykKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50 aXRpZXMuIFBvaW50cyB0byB0aGUgZW50aXR5IGZvciB0aGUgc2NvcGUgKGJsb2NrLAotLSAgICAg ICBsb29wLCBzdWJwcm9ncmFtLCBwYWNrYWdlIGV0Yy4pIGluIHdoaWNoIHRoZSBlbnRpdHkgaXMg ZGVjbGFyZWQuCi0tICAgICAgIFNpbmNlIHRoaXMgZmllbGQgaXMgaW4gdGhlIGJhc2UgcGFydCBv ZiB0aGUgZW50aXR5IG5vZGUsIHRoZSBhY2Nlc3MKLS0gICAgICAgcm91dGluZXMgZm9yIHRoaXMg ZmllbGQgYXJlIGluIFNpbmZvLgoKLS0gICAgU2NvcGVfRGVwdGggKHN5bnRoKQotLSAgICAgICBB cHBsaWVzIHRvIHByb2dyYW0gdW5pdHMsIGJsb2NrcywgY29uY3VycmVudCB0eXBlcyBhbmQgZW50 cmllcywKLS0gICAgICAgYW5kIGFsc28gdG8gcmVjb3JkIHR5cGVzLCBpLmUuIHRvIGFueSBlbnRp dHkgdGhhdCBjYW4gYXBwZWFyIG9uCi0tICAgICAgIHRoZSBzY29wZSBzdGFjay4gWWllbGRzIHRo ZSBzY29wZSBkZXB0aCB2YWx1ZSwgd2hpY2ggZm9yIHRob3NlCi0tICAgICAgIGVudGl0aWVzIG90 aGVyIHRoYW4gcmVjb3JkcyBpcyBzaW1wbHkgdGhlIHNjb3BlIGRlcHRoIHZhbHVlLAotLSAgICAg ICBmb3IgcmVjb3JkIGVudGl0aWVzLCBpdCBpcyB0aGUgU2NvcGVfRGVwdGggb2YgdGhlIHJlY29y ZCBzY29wZS4KCi0tICAgIFNjb3BlX0RlcHRoX1ZhbHVlIChVaW50MjIpCi0tICAgICAgIFByZXNl bnQgaW4gcHJvZ3JhbSB1bml0cywgYmxvY2tzLCBjb25jdXJyZW50IHR5cGVzIGFuZCBlbnRyaWVz LgotLSAgICAgICBJbmRpY2F0ZXMgdGhlIG51bWJlciBvZiBzY29wZXMgdGhhdCBzdGF0aWNhbGx5 IGVuY2xvc2UgdGhlCi0tICAgICAgIGRlY2xhcmF0aW9uIG9mIHRoZSB1bml0IG9yIHR5cGUuIExp YnJhcnkgdW5pdHMgaGF2ZSBhIGRlcHRoIG9mIHplcm8uCi0tICAgICAgIE5vdGUgdGhhdCByZWNv cmQgdHlwZXMgY2FuIGFjdCBhcyBzY29wZXMgYnV0IGRvIE5PVCBoYXZlIHRoaXMgZmllbGQKLS0g ICAgICAgc2V0IChzZWUgU2NvcGVfRGVwdGggYWJvdmUpCgotLSAgICBTY29wZV9EZXB0aF9TZXQg KHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIGEgc3BlY2lhbCBwcmVkaWNhdGUgZnVu Y3Rpb24gdGhhdCByZXR1cm5zIGEgQm9vbGVhbiB2YWx1ZQotLSAgICAgICBpbmRpY2F0aW5nIHdo ZXRoZXIgb3Igbm90IHRoZSBTY29wZV9EZXB0aCBmaWVsZCBoYXMgYmVlbiBzZXQuIEl0Ci0tICAg ICAgIGlzIG5lZWRlZCwgc2luY2UgcmV0dXJucyBhbiBpbnZhbGlkIHZhbHVlIGluIHRoaXMgY2Fz ZSEKCi0tICAgIFNlY19TdGFja19OZWVkZWRfRm9yX1JldHVybiAoRmxhZzE2NykKLS0gICAgICAg UHJlc2VudCBpbiBzY29wZSBlbnRpdGllcyAoYmxvY2tzLGZ1bmN0aW9ucywgcHJvY2VkdXJlcywg dGFza3MsCi0tICAgICAgIGVudHJpZXMpLiBTZXQgdG8gVHJ1ZSB3aGVuIHNlY29uZGFyeSBzdGFj ayBpcyB1c2VkIHRvIGhvbGQKLS0gICAgICAgdGhlIHJldHVybmVkIHZhbHVlIG9mIGEgZnVuY3Rp b24gYW5kIHRodXMgc2hvdWxkIG5vdCBiZQotLSAgICAgICByZWxlYXNlZCBvbiBzY29wZSBleGl0 LgoKLS0gICAgU2hhZG93X0VudGl0aWVzIChMaXN0MTQpCi0tICAgICAgIFByZXNlbnQgaW4gcGFj a2FnZSBhbmQgZ2VuZXJpYyBwYWNrYWdlIGVudGl0aWVzLiBQb2ludHMgdG8gYSBsaXN0Ci0tICAg ICAgIG9mIGVudGl0aWVzIHRoYXQgY29ycmVzcG9uZCB0byBwcml2YXRlIHR5cGVzLiBGb3IgZWFj aCBwcml2YXRlIHR5cGUKLS0gICAgICAgYSBzaGFkb3cgZW50aXR5IGlzIGNyZWF0ZWQgdGhhdCBo b2xkcyBhIGNvcHkgb2YgdGhlIHByaXZhdGUgdmlldy4KLS0gICAgICAgSW4gcmVnaW9ucyBvZiB0 aGUgcHJvZ3JhbSB3aGVyZSB0aGUgZnVsbCB2aWV3cyBvZiB0aGVzZSBwcml2YXRlCi0tICAgICAg IGVudGl0aWVzIGFyZSB2aXNpYmxlLCB0aGUgZnVsbCB2aWV3IGlzIGNvcGllZCBpbnRvIHRoZSBl bnRpdHkgdGhhdAotLSAgICAgICBpcyBub3JtYWxseSB1c2VkIHRvIGhvbGQgdGhlIHByaXZhdGUg dmlldywgYnV0IHRoZSBzaGFkb3cgZW50aXR5Ci0tICAgICAgIGNvcHkgaXMgdW5jaGFuZ2VkLiBU aGUgc2hhZG93IGVudGl0aWVzIGFyZSB0aGVuIHVzZWQgdG8gcmVzdG9yZSB0aGUKLS0gICAgICAg b3JpZ2luYWwgcHJpdmF0ZSB2aWV3cyBhdCB0aGUgZW5kIG9mIHRoZSByZWdpb24uIFRoaXMgbGlz dCBpcyBhCi0tICAgICAgIHN0YW5kYXJkIGZvcm1hdCBsaXN0IChpLmUuIEZpcnN0IChTaGFkb3df RW50aXRpZXMpIGlzIHRoZSBmaXJzdAotLSAgICAgICBlbnRyeSBhbmQgc3Vic2VxdWVudCBlbnRy aWVzIGFyZSBvYnRhaW5lZCB1c2luZyBOZXh0LgoKLS0gICAgU2hhcmVkX1Zhcl9Bc3NpZ25fUHJv YyAoTm9kZTIyKQotLSAgICAgICBQcmVzZW50IGluIHZhcmlhYmxlcy4gU2V0IG5vbi1FbXB0eSBv bmx5IGlmIElzX1NoYXJlZF9QYXNzaXZlIGlzCi0tICAgICAgIHNldCwgaW4gd2hpY2ggY2FzZSB0 aGlzIGlzIHRoZSBlbnRpdHkgZm9yIHRoZSBzaGFyZWQgbWVtb3J5IGFzc2lnbgotLSAgICAgICBy b3V0aW5lLiBTZWUgRXhwX1NtZW0gZm9yIGZ1bGwgZGV0YWlscy4KCi0tICAgIFNoYXJlZF9WYXJf UmVhZF9Qcm9jIChOb2RlMTUpCi0tICAgICAgIFByZXNlbnQgaW4gdmFyaWFibGVzLiBTZXQgbm9u LUVtcHR5IG9ubHkgaWYgSXNfU2hhcmVkX1Bhc3NpdmUgaXMKLS0gICAgICAgc2V0LCBpbiB3aGlj aCBjYXNlIHRoaXMgaXMgdGhlIGVudGl0eSBmb3IgdGhlIHNoYXJlZCBtZW1vcnkgcmVhZAotLSAg ICAgICByb3V0aW5lLiBTZWUgRXhwX1NtZW0gZm9yIGZ1bGwgZGV0YWlscy4KCi0tICAgIFNpemVf Q2hlY2tfQ29kZSAoTm9kZTkpCi0tICAgICAgIFByZXNlbnQgaW4gY29uc3RhbnRzIGFuZCB2YXJp YWJsZXMuIE5vcm1hbGx5IEVtcHR5LiBTZXQgaWYgY29kZSBpcwotLSAgICAgICBnZW5lcmF0ZWQg dG8gY2hlY2sgdGhlIHNpemUgb2YgdGhlIHZhcmlhYmxlLiBUaGlzIGZpZWxkIGlzIHVzZWQgdG8K LS0gICAgICAgc3VwcHJlc3MgdGhpcyBjb2RlIGlmIGEgc3Vic2VxdWVudCBhZGRyZXNzIGNsYXVz ZSBpcyBlbmNvdW50ZXJlZC4KCi0tICAgIFNpemVfQ2xhdXNlIChzeW50aGVzaXplZCkKLS0gICAg ICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMuIElmIGEgc2l6ZSBjbGF1c2UgaXMgcHJlc2VudCBp biB0aGUgcmVwCi0tICAgICAgIGl0ZW0gY2hhaW4gZm9yIGFuIGVudGl0eSB0aGVuIHRoZSBhdHRy aWJ1dGUgZGVmaW5pdGlvbiBjbGF1c2Ugbm9kZQotLSAgICAgICBmb3IgdGhlIHNpemUgY2xhdXNl IGlzIHJldHVybmVkLiBPdGhlcndpc2UgU2l6ZV9DbGF1c2UgcmV0dXJucyBFbXB0eQotLSAgICAg ICBpZiBubyBpdGVtIGlzIHByZXNlbnQuIFVzdWFsbHkgdGhpcyBpcyBvbmx5IG1lYW5pbmdmdWwg aWYgdGhlIGZsYWcKLS0gICAgICAgSGFzX1NpemVfQ2xhdXNlIGlzIHNldC4gVGhpcyBpcyBiZWNh dXNlIHdoZW4gdGhlIHJlcHJlc2VudGF0aW9uIGl0ZW0KLS0gICAgICAgY2hhaW4gaXMgY29waWVk IGZvciBhIGRlcml2ZWQgdHlwZSwgaXQgY2FuIGluaGVyaXQgYSBzaXplIGNsYXVzZSB0aGF0Ci0t ICAgICAgIGlzIG5vdCBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpdHkuCgotLSAgICBTaXplX0RlcGVu ZHNfT25fRGlzY3JpbWluYW50IChGbGFnMTc3KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBlbnRp dGllcyBmb3IgdHlwZXMgYW5kIHN1YnR5cGVzLiBJbmRpY2F0ZXMgdGhhdCB0aGUKLS0gICAgICAg c2l6ZSBvZiB0aGUgdHlwZSBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZiBvbmUgb3IgbW9yZSBkaXNj cmltaW5hbnRzLgotLSAgICAgICBDdXJyZW50bHksIHRoaXMgZmxhZyBpcyBvbmx5IHNldCBpbiBm cm9udCBlbmQgbGF5b3V0IG1vZGUgZm9yIGFycmF5cwotLSAgICAgICB3aGljaCBoYXZlIG9uZSBv ciBtb3JlIGJvdW5kcyBkZXBlbmRpbmcgb24gYSBkaXNjcmltaW5hbnQgdmFsdWUuCgotLSAgICBT aXplX0tub3duX0F0X0NvbXBpbGVfVGltZSAoRmxhZzkyKQotLSAgICAgICBQcmVzZW50IGluIGFs bCBlbnRpdGllcyBmb3IgdHlwZXMgYW5kIHN1YnR5cGVzLiBJbmRpY2F0ZXMgdGhhdCB0aGUKLS0g ICAgICAgc2l6ZSBvZiBvYmplY3RzIG9mIHRoZSB0eXBlIGlzIGtub3duIGF0IGNvbXBpbGUgdGlt ZS4gVGhpcyBmbGFnIGlzCi0tICAgICAgIHVzZWQgdG8gb3B0aW1pemUgc29tZSBnZW5lcmF0ZWQg Y29kZSBzZXF1ZW5jZXMsIGFuZCBhbHNvIHRvIGVuYWJsZQotLSAgICAgICBzb21lIGVycm9yIGNo ZWNrcyAoZS5nLiBkaXNhbGxvd2luZyBjb21wb25lbnQgY2xhdXNlcyBvbiB2YXJpYWJsZQotLSAg ICAgICBsZW5ndGggb2JqZWN0cy4gSXQgaXMgc2V0IGNvbnNlcnZhdGl2ZWx5IChpLmUuIGlmIGl0 IGlzIFRydWUsIHRoZQotLSAgICAgICBzaXplIGlzIGNlcnRhaW5seSBrbm93biBhdCBjb21waWxl IHRpbWUsIGlmIGl0IGlzIEZhbHNlLCB0aGVuIHRoZQotLSAgICAgICBzaXplIG1heSBvciBtYXkg bm90IGJlIGtub3duIGF0IGNvbXBpbGUgdGltZSwgYnV0IHRoZSBjb2RlIHdpbGwKLS0gICAgICAg YXNzdW1lIHRoYXQgaXQgaXMgbm90IGtub3duKS4KCi0tICAgIFNtYWxsX1ZhbHVlIChVcmVhbDIx KQotLSAgICAgICBQcmVzZW50IGluIGZpeGVkIHBvaW50IHR5cGVzLiBQb2ludHMgdG8gdGhlIHVu aXZlcnNhbCByZWFsIGZvciB0aGUKLS0gICAgICAgU21hbGwgb2YgdGhlIHR5cGUsIGVpdGhlciBh cyBnaXZlbiBpbiBhIHJlcHJlc2VudGF0aW9uIGNsYXVzZSwgb3IKLS0gICAgICAgYXMgY29tcHV0 ZWQgKGFzIGEgcG93ZXIgb2YgdHdvKSBieSB0aGUgY29tcGlsZXIuCgotLSAgICBTcGVjX0VudGl0 eSAoTm9kZTE5KQotLSAgICAgICBQcmVzZW50IGluIHBhY2thZ2UgYm9keSBlbnRpdGllcy4gUG9p bnRzIHRvIGNvcnJlc3BvbmRpbmcgcGFja2FnZQotLSAgICAgICBzcGVjIGVudGl0eS4gQWxzbyBw cmVzZW50IGluIHN1YnByb2dyYW0gYm9keSBwYXJhbWV0ZXJzIGluIHRoZQotLSAgICAgICBjYXNl IHdoZXJlIHRoZXJlIGlzIGEgc2VwYXJhdGUgc3BlYywgd2hlcmUgdGhpcyBmaWVsZCByZWZlcmVu Y2VzCi0tICAgICAgIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBlbnRpdGllcyBpbiB0aGUg c3BlYy4KCi0tICAgIFN0b3JhZ2VfU2l6ZV9WYXJpYWJsZSAoTm9kZTE1KSBbaW1wbGVtZW50YXRp b24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFByZXNlbnQgaW4gYWNjZXNzIHR5cGVzIGFuZCB0 YXNrIHR5cGUgZW50aXRpZXMuIFRoaXMgZmxhZyBpcyBzZXQKLS0gICAgICAgaWYgYSB2YWxpZCBh bmQgZWZmZWN0aXZlIHByYWdtYSBTdG9yYWdlX1NpemUgYXBwbGllcyB0byB0aGUgYmFzZQotLSAg ICAgICB0eXBlLiBQb2ludHMgdG8gdGhlIGVudGl0eSBmb3IgYSB2YXJpYWJsZSB0aGF0IGlzIGNy ZWF0ZWQgdG8KLS0gICAgICAgaG9sZCB0aGUgdmFsdWUgZ2l2ZW4gaW4gYSBTdG9yYWdlX1NpemUg cHJhZ21hIGZvciBhbiBhY2Nlc3MKLS0gICAgICAgY29sbGVjdGlvbiBvciBhIHRhc2sgdHlwZS4g Tm90ZSB0aGF0IGluIHRoZSBhY2Nlc3MgdHlwZSBjYXNlLAotLSAgICAgICB0aGlzIGZpZWxkIGlz IHByZXNlbnQgb25seSBpbiB0aGUgcm9vdCB0eXBlIChzaW5jZSBkZXJpdmVkIHR5cGVzCi0tICAg ICAgIHNoYXJlIHRoZSBzYW1lIHN0b3JhZ2UgcG9vbCkuCgotLSAgICBTdHJpY3RfQWxpZ25tZW50 IChGbGFnMTQ1KSBbaW1wbGVtZW50YXRpb24gYmFzZSB0eXBlIG9ubHldCi0tICAgICAgIFByZXNl bnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIEluZGljYXRlcyB0aGF0IHNvbWUgY29udGFpbmluZyBw YXJ0Ci0tICAgICAgIGlzIGVpdGhlciBhbGlhc2VkIG9yIHRhZ2dlZC4gVGhpcyBwcm9oaWJpdHMg cGFja2luZyB0aGUgb2JqZWN0Ci0tICAgICAgIHRpZ2h0ZXIgdGhhbiBpdHMgbmF0dXJhbCBzaXpl IGFuZCBhbGlnbm1lbnQuCgotLSAgICBTdHJpbmdfTGl0ZXJhbF9MZW5ndGggKFVpbnQxNikKLS0g ICAgICAgUHJlc2VudCBpbiBzdHJpbmcgbGl0ZXJhbCBzdWJ0eXBlcyAod2hpY2ggYXJlIGNyZWF0 ZWQgdG8gY29ycmVzcG9uZAotLSAgICAgICB0byBzdHJpbmcgbGl0ZXJhbHMgaW4gdGhlIHByb2dy YW0pLiBDb250YWlucyB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcKLS0gICAgICAgbGl0ZXJhbC4K Ci0tICAgIFN0cmluZ19MaXRlcmFsX0xvd19Cb3VuZCAoTm9kZTE1KQotLSAgICAgICBQcmVzZW50 IGluIHN0cmluZyBsaXRlcmFsIHN1YnR5cGVzICh3aGljaCBhcmUgY3JlYXRlZCB0byBjb3JyZXNw b25kCi0tICAgICAgIHRvIHN0cmluZyBsaXRlcmFscyBpbiB0aGUgcHJvZ3JhbSkuIENvbnRhaW5z IGFuIGV4cHJlc3Npb24gd2hvc2UKLS0gICAgICAgdmFsdWUgcmVwcmVzZW50cyB0aGUgbG93IGJv dW5kIG9mIHRoZSBsaXRlcmFsLiBUaGlzIGlzIGEgY29weSBvZgotLSAgICAgICB0aGUgbG93IGJv dW5kIG9mIHRoZSBhcHBsaWNhYmxlIGluZGV4IGNvbnN0cmFpbnQgaWYgdGhlcmUgaXMgb25lLAot LSAgICAgICBvciBhIGNvcHkgb2YgdGhlIGxvdyBib3VuZCBvZiB0aGUgaW5kZXggYmFzZSB0eXBl IGlmIG5vdC4KCi0tICAgIFN1cHByZXNzX0FjY2Vzc19DaGVja3MgKEZsYWczMSkKLS0gICAgICAg UHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCBpZiBhY2Nlc3MgY2hlY2tzIGFzc29jaWF0ZWQg d2l0aCB0aGlzCi0tICAgICAgIGVudGl0eSBhcmUgdG8gYmUgc3VwcHJlc3NlZCAoc2VlIHNlcGFy YXRlIHNlY3Rpb24gb24gIkhhbmRsaW5nIG9mCi0tICAgICAgIENoZWNrIFN1cHByZXNzaW9uIikK Ci0tICAgIFN1cHByZXNzX0FjY2Vzc2liaWxpdHlfQ2hlY2tzIChGbGFnMzIpCi0tICAgICAgIFBy ZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgYWNjZXNzaWJpbGl0eSBjaGVja3MgYXNzb2Np YXRlZCB3aXRoCi0tICAgICAgIHRoaXMgZW50aXR5IGFyZSB0byBiZSBzdXBwcmVzc2VkIChzZWUg c2VwYXJhdGUgc2VjdGlvbiBvbiAiSGFuZGxpbmcKLS0gICAgICAgb2YgQ2hlY2sgU3VwcHJlc3Np b24iKQoKLS0gICAgU3VwcHJlc3NfRGlzY3JpbWluYW50X0NoZWNrcyAoRmxhZzMzKQotLSAgICAg ICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGlmIGRpc2NyaW1pbmFudCBjaGVja3MgYXNz b2NpYXRlZCB3aXRoCi0tICAgICAgIHRoaXMgZW50aXR5IGFyZSB0byBiZSBzdXBwcmVzc2VkIChz ZWUgc2VwYXJhdGUgc2VjdGlvbiBvbiAiSGFuZGxpbmcKLS0gICAgICAgb2YgQ2hlY2sgU3VwcHJl c3Npb24iKQoKLS0gICAgU3VwcHJlc3NfRGl2aXNpb25fQ2hlY2tzIChGbGFnMzQpCi0tICAgICAg IFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgZGl2aXNpb24gY2hlY2tzIGFzc29jaWF0 ZWQgd2l0aAotLSAgICAgICB0aGlzIGVudGl0eSBhcmUgdG8gYmUgc3VwcHJlc3NlZCAoc2VlIHNl cGFyYXRlIHNlY3Rpb24gb24gIkhhbmRsaW5nCi0tICAgICAgIG9mIENoZWNrIFN1cHByZXNzaW9u IikKCi0tICAgIFN1cHByZXNzX0VsYWJvcmF0aW9uX0NoZWNrcyAoRmxhZzM1KQotLSAgICAgICBQ cmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGlmIGVsYWJvcmF0aW9uIGNoZWNrcyBhc3NvY2lh dGVkIHdpdGgKLS0gICAgICAgdGhpcyBlbnRpdHkgYXJlIHRvIGJlIHN1cHByZXNzZWQgKHNlZSBz ZXBhcmF0ZSBzZWN0aW9uIG9uICJIYW5kbGluZwotLSAgICAgICBvZiBDaGVjayBTdXBwcmVzc2lv biIpCgotLSAgICBTdXBwcmVzc19FbGFib3JhdGlvbl9XYXJuaW5ncyAoRmxhZzE0OCkKLS0gICAg ICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCBpZiBhIHByYWdtYSBTdXBwcmVzcyBFbGFi b3JhdGlvbl9DaGVja3MKLS0gICAgICAgaXMgYXBwbGllZCBzcGVjaWZpY2FsbHkgdG8gdGhlIGVu dGl0eS4gSWYgc2V0IG9uIGEgc3VicHJvZ3JhbSwgYWxsCi0tICAgICAgIGVsYWJvcmF0aW9uIHdh cm5pbmdzIGZvciBjYWxscyB0byB0aGUgc3VicHJvZ3JhbSBhcmUgc3VwcHJlc3NlZC4gSWYKLS0g ICAgICAgc2V0IG9uIGEgcGFja2FnZSwgdGhlbiBhbGwgZWxhYm9yYXRpb24gd2FybmluZ3MgZm9y IGNhbGxzIHRvIGFueQotLSAgICAgICBzdWJwcm9ncmFtcyBpbiB0aGUgcGFja2FnZSBhcmUgc3Vw cHJlc3NlZC4KCi0tICAgIFN1cHByZXNzX0luZGV4X0NoZWNrcyAoRmxhZzM2KQotLSAgICAgICBQ cmVzZW50IGluIGFsbCBlbnRpdGllcy4gU2V0IGlmIGluZGV4IGNoZWNrcyBhc3NvY2lhdGVkIHdp dGggdGhpcwotLSAgICAgICBlbnRpdHkgYXJlIHRvIGJlIHN1cHByZXNzZWQgKHNlZSBzZXBhcmF0 ZSBzZWN0aW9uIG9uICJIYW5kbGluZyBvZgotLSAgICAgICBDaGVjayBTdXBwcmVzc2lvbiIpCgot LSAgICBTdXBwcmVzc19Jbml0X1Byb2MgKEZsYWcxMDUpIFtiYXNlIHR5cGUgb25seV0KLS0gICAg ICAgUHJlc2VudCBpbiBhbGwgdHlwZSBlbnRpdGllcy4gU2V0IHRvIHN1cHByZXNzIHRoZSBnZW5l cmF0aW9uIG9mCi0tICAgICAgIGluaXRpYWxpemF0aW9uIHByb2NlZHVyZXMgd2hlcmUgdGhleSBh cmUga25vd24gdG8gYmUgbm90IG5lZWRlZC4KLS0gICAgICAgRm9yIGV4YW1wbGUsIHRoZSBlbnVt ZXJhdGlvbiBpbWFnZSB0YWJsZSBlbnRpdHkgdXNlcyB0aGlzIGZsYWcuCgotLSAgICBTdXBwcmVz c19MZW5ndGhfQ2hlY2tzIChGbGFnMzcpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVz LiBTZXQgaWYgbGVuZ3RoIGNoZWNrcyBhc3NvY2lhdGVkIHdpdGggdGhpcwotLSAgICAgICBlbnRp dHkgYXJlIHRvIGJlIHN1cHByZXNzZWQgKHNlZSBzZXBhcmF0ZSBzZWN0aW9uIG9uICJIYW5kbGlu ZyBvZgotLSAgICAgICBDaGVjayBTdXBwcmVzc2lvbiIpCgotLSAgICBTdXBwcmVzc19PdmVyZmxv d19DaGVja3MgKEZsYWczOCkKLS0gICAgICAgUHJlc2VudCBpbiBhbGwgZW50aXRpZXMuIFNldCBp ZiBvdmVyZmxvdyBjaGVja3MgYXNzb2NpYXRlZCB3aXRoCi0tICAgICAgIHRoaXMgZW50aXR5IGFy ZSB0byBiZSBzdXBwcmVzc2VkIChzZWUgc2VwYXJhdGUgc2VjdGlvbiBvbiAiSGFuZGxpbmcKLS0g ICAgICAgb2YgQ2hlY2sgU3VwcHJlc3Npb24iKQoKLS0gICAgU3VwcHJlc3NfUmFuZ2VfQ2hlY2tz IChGbGFnMzkpCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgcmFuZ2Ug Y2hlY2tzIGFzc29jaWF0ZWQgd2l0aCB0aGlzCi0tICAgICAgIGVudGl0eSBhcmUgdG8gYmUgc3Vw cHJlc3NlZCAoc2VlIHNlcGFyYXRlIHNlY3Rpb24gb24gIkhhbmRsaW5nIG9mCi0tICAgICAgIENo ZWNrIFN1cHByZXNzaW9uIikKCi0tICAgIFN1cHByZXNzX1N0b3JhZ2VfQ2hlY2tzIChGbGFnNDAp Ci0tICAgICAgIFByZXNlbnQgaW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgc3RvcmFnZSBjaGVja3Mg YXNzb2NpYXRlZCB3aXRoCi0tICAgICAgIHRoaXMgZW50aXR5IGFyZSB0byBiZSBzdXBwcmVzc2Vk IChzZWUgc2VwYXJhdGUgc2VjdGlvbiBvbiAiSGFuZGxpbmcKLS0gICAgICAgb2YgQ2hlY2sgU3Vw cHJlc3Npb24iKQoKLS0gICAgU3VwcHJlc3NfU3R5bGVfQ2hlY2tzIChGbGFnMTY1KQotLSAgICAg ICBQcmVzZW50IGluIGFsbCBlbnRpdGllcy4gU3VwcHJlc3NlcyBhbnkgc3R5bGUgY2hlY2tzIHNw ZWNpZmljYWxseQotLSAgICAgICBhc3NvY2lhdGVkIHdpdGggdGhlIGdpdmVuIGVudGl0eSBpZiBz ZXQuCgotLSAgICBTdXBwcmVzc19UYWdfQ2hlY2tzIChGbGFnNDEpCi0tICAgICAgIFByZXNlbnQg aW4gYWxsIGVudGl0aWVzLiBTZXQgaWYgdGFnIGNoZWNrcyBhc3NvY2lhdGVkIHdpdGggdGhpcwot LSAgICAgICBlbnRpdHkgYXJlIHRvIGJlIHN1cHByZXNzZWQgKHNlZSBzZXBhcmF0ZSBzZWN0aW9u IG9uICJIYW5kbGluZyBvZgotLSAgICAgICBDaGVjayBTdXBwcmVzc2lvbiIpCgotLSAgICBUYWdf Q29tcG9uZW50IChzeW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byB0YWdnZWQgcmVjb3Jk IHR5cGVzLCByZXR1cm5zIHRoZSBlbnRpdHkgZm9yIHRoZSBfVGFnCi0tICAgICAgIGZpZWxkIGlu IHRoaXMgcmVjb3JkLCB3aGljaCBtdXN0IGJlIHByZXNlbnQuCgotLSAgICBUeXBlX0hpZ2hfQm91 bmQgKHN5bnRoZXNpemVkKQotLSAgICAgICBBcHBsaWVzIHRvIHNjYWxhciB0eXBlcy4gUmV0dXJu cyB0aGUgdHJlZSBub2RlIChOb2RlX0lkKSB0aGF0Ci0tICAgICAgIGNvbnRhaW5zIHRoZSBoaWdo IGJvdW5kIG9mIGEgc2NhbGFyIHR5cGUuIFRoZSByZXR1cm5lZCB2YWx1ZSBpcyBhCi0tICAgICAg IGxpdGVyYWwgZm9yIGEgYmFzZSB0eXBlLCBidXQgbWF5IGJlIGFuIGV4cHJlc3Npb24gaW4gdGhl IGNhc2Ugb2YgYQotLSAgICAgICBzY2FsYXIgdHlwZSB3aXRoIGR5bmFtaWMgYm91bmRzLiBOb3Rl IHRoYXQgaW4gdGhlIGNhc2Ugb2YgYSBmaXhlZAotLSAgICAgICBwb2ludCB0eXBlLCB0aGUgaGln aCBib3VuZCBpcyBpbiB1bml0cyBvZiBzbWFsbCwgYW5kIGlzIGFuIGludGVnZXIuCgotLSAgICBU eXBlX0xvd19Cb3VuZCAoc3ludGhlc2l6ZWQpCi0tICAgICAgIEFwcGxpZXMgdG8gc2NhbGFyIHR5 cGVzLiBSZXR1cm5zIHRoZSB0cmVlIG5vZGUgKE5vZGVfSWQpIHRoYXQKLS0gICAgICAgY29udGFp bnMgdGhlIGxvdyBib3VuZCBvZiBhIHNjYWxhciB0eXBlLiBUaGUgcmV0dXJuZWQgdmFsdWUgaXMg YQotLSAgICAgICBsaXRlcmFsIGZvciBhIGJhc2UgdHlwZSwgYnV0IG1heSBiZSBhbiBleHByZXNz aW9uIGluIHRoZSBjYXNlIG9mIGEKLS0gICAgICAgc2NhbGFyIHR5cGUgd2l0aCBkeW5hbWljIGJv dW5kcy4gTm90ZSB0aGF0IGluIHRoZSBjYXNlIG9mIGEgZml4ZWQKLS0gICAgICAgcG9pbnQgdHlw ZSwgdGhlIGxvdyBib3VuZCBpcyBpbiB1bml0cyBvZiBzbWFsbCwgYW5kIGlzIGFuIGludGVnZXIu CgotLSAgICBVbmRlcmx5aW5nX0Z1bGxfVmlldyAoTm9kZTE5KQotLSAgICAgICBQcmVzZW50IGlu IHByaXZhdGUgc3VidHlwZXMgdGhhdCBhcmUgdGhlIGNvbXBsZXRpb24gb2Ygb3RoZXIgcHJpdmF0 ZQotLSAgICAgICB0eXBlcywgb3IgaW4gcHJpdmF0ZSB0eXBlcyB0aGF0IGFyZSBkZXJpdmVkIGZy b20gcHJpdmF0ZSBzdWJ0eXBlcy4KLS0gICAgICAgSWYgdGhlIGZ1bGwgdmlldyBvZiBhIHByaXZh dGUgdHlwZSBUIGlzIGRlcml2ZWQgZnJvbSBhbm90aGVyCi0tICAgICAgIHByaXZhdGUgdHlwZSAg d2l0aCBkaXNjcmltaW5hbnRzIFRkLCB0aGUgZnVsbCB2aWV3IG9mIFQgaXMgYWxzbwotLSAgICAg ICBwcml2YXRlLCBhbmQgdGhlcmUgaXMgbm8gd2F5IHRvIGF0dGFjaCB0byBpdCBhIGZ1cnRoZXIg ZnVsbCB2aWV3IHRoYXQKLS0gICAgICAgd291bGQgY29udmV5IHRoZSBzdHJ1Y3R1cmUgb2YgVCB0 byB0aGUgYmFjayBlbmQuIFRoZSBVbmRlcmx5aW5nX0Z1bGxfCi0tICAgICAgIFZpZXcgaXMgYW4g YXR0cmlidXRlIG9mIHRoZSBmdWxsIHZpZXcgdGhhdCBpcyBhIHN1YnR5cGUgb2YgVGQgd2l0aAot LSAgICAgICB0aGUgc2FtZSBjb25zdHJhaW50IGFzIHRoZSBkZWNsYXJhdGlvbiBmb3IgVC4gVGhl IGRlY2xhcmF0aW9uIGZvciB0aGlzCi0tICAgICAgIHN1YnR5cGUgaXMgYnVpbHQgYXQgdGhlIHBv aW50IG9mIHRoZSBkZWNsYXJhdGlvbiBvZiBULCBlaXRoZXIgYXMgYQotLSAgICAgICBjb21wbGV0 aW9uLCBvciBhcyBhIHN1YnR5cGUgZGVjbGFyYXRpb24gd2hlcmUgdGhlIGJhc2UgdHlwZSBpcyBw cml2YXRlCi0tICAgICAgIGFuZCBoYXMgYSBwcml2YXRlIGNvbXBsZXRpb24uIElmIFRkIGlzIGFs cmVhZHkgY29uc3RyYWluZWQsIHRoZW4gaXRzCi0tICAgICAgIGZ1bGwgdmlldyBjYW4gc2VydmUg ZGlyZWN0bHkgYXMgdGhlIGZ1bGwgdmlldyBvZiBULgoKLS0gICAgVW5kZXJseWluZ19UeXBlIChz eW50aGVzaXplZCkKLS0gICAgICAgQXBwbGllcyB0byBhbGwgZW50aXRpZXMuIFRoaXMgaXMgdGhl IGlkZW50aXR5IGZ1bmN0aW9uIGV4Y2VwdCBpbgotLSAgICAgICB0aGUgY2FzZSB3aGVyZSBpdCBp cyBhcHBsaWVkIHRvIGFuIGluY29tcGxldGUgb3IgcHJpdmF0ZSB0eXBlLAotLSAgICAgICBpbiB3 aGljaCBjYXNlIGl0IGlzIHRoZSB1bmRlcmx5aW5nIHR5cGUgb2YgdGhlIHR5cGUgZGVjbGFyZWQg YnkKLS0gICAgICAgdGhlIGNvbXBsZXRpb24sIG9yIEVtcHR5IGlmIHRoZSBjb21wbGV0aW9uIGhh cyBub3QgeWV0IGJlZW4KLS0gICAgICAgZW5jb3VudGVyZWQgYW5kIGFuYWx5emVkLgotLQotLSAg ICAgICBOb3RlOiB0aGUgcmVhc29uIHRoaXMgYXR0cmlidXRlIGFwcGxpZXMgdG8gYWxsIGVudGl0 aWVzLCBhbmQgbm90Ci0tICAgICAgIGp1c3QgdHlwZXMsIGlzIHRvIGxlZ2l0aW1pemUgY29kZSB3 aGVyZSBVbmRlcmx5aW5nX1R5cGUgaXMgYXBwbGllZAotLSAgICAgICB0byBhbiBlbnRpdHkgd2hp Y2ggbWF5IG9yIG1heSBub3QgYmUgYSB0eXBlLCB3aXRoIHRoZSBpbnRlbnQgdGhhdAotLSAgICAg ICBpZiBpdCBpcyBhIHR5cGUsIGl0cyB1bmRlcmx5aW5nIHR5cGUgaXMgdGFrZW4uCgotLSAgICBV bnNldF9SZWZlcmVuY2UgKE5vZGUxNikKLS0gICAgICAgUHJlc2VudCBpbiB2YXJpYWJsZXMgYW5k IG91dCBwYXJhbWV0ZXJzLiBUaGlzIGlzIG5vcm1hbGx5IEVtcHR5LgotLSAgICAgICBJdCBpcyBz ZXQgdG8gcG9pbnQgdG8gYW4gaWRlbnRpZmllciB0aGF0IHJlcHJlc2VudHMgYSByZWZlcmVuY2UK LS0gICAgICAgdG8gdGhlIGVudGl0eSBiZWZvcmUgYW55IHZhbHVlIGhhcyBiZWVuIHNldC4gT25s eSB0aGUgZmlyc3Qgc3VjaAotLSAgICAgICByZWZlcmVuY2UgaXMgaWRlbnRpZmllZC4gVGhpcyBm aWVsZCBpcyB1c2VkIHRvIGdlbmVyYXRlIGEgd2FybmluZwotLSAgICAgICBtZXNzYWdlIGlmIG5l Y2Vzc2FyeSAoc2VlIFNlbV9XYXJuLkNoZWNrX1Vuc2V0X1JlZmVyZW5jZSkuCgotLSAgICBVc2Vz X1NlY19TdGFjayAoRmxhZzk1KQotLSAgICAgICBQcmVzZW50IGluIHNjb3BlIGVudGl0aWVzIChi bG9ja3MsZnVuY3Rpb25zLCBwcm9jZWR1cmVzLCB0YXNrcywKLS0gICAgICAgZW50cmllcykuIFNl dCB0byBUcnVlIHdoZW4gc2Vjb25kYXJ5IHN0YWNrIGlzIHVzZWQgaW4gdGhpcyBzY29wZSBhbmQK LS0gICAgICAgbXVzdCBiZSByZWxlYXNlZCBvbiBleGl0IHVubGVzcyBTZWNfU3RhY2tfTmVlZGVk X0Zvcl9SZXR1cm4gaXMgc2V0LgoKLS0gICAgVmF4X0Zsb2F0IChGbGFnMTUxKSBbYmFzZSB0eXBl IG9ubHldCi0tICAgICAgIFByZXNlbnQgaW4gYWxsIHR5cGUgZW50aXRpZXMuIFNldCBvbmx5IG9u IHRoZSBiYXNlIHR5cGUgb2YgZmxvYXQKLS0gICAgICAgdHlwZXMgd2l0aCBWYXggZm9ybWF0LiBU aGUgcGFydGljdWxhciBmb3JtYXQgaXMgZGV0ZXJtaW5lZCBieSB0aGUKLS0gICAgICAgRGlnaXRz X1ZhbHVlIHZhbHVlIHdoaWNoIGlzIDYsOSwxNSBmb3IgRl9GbG9hdCwgRF9GbG9hdCwgR19GbG9h dC4KCi0tICAgIFdhcm5pbmdzX09mZiAoRmxhZzk2KQotLSAgICAgICBQcmVzZW50IGluIGFsbCBl bnRpdGllcy4gU2V0IGlmIGEgcHJhZ21hIFdhcm5pbmdzIChPZmYsIGVudGl0eS1uYW1lKQotLSAg ICAgICBpcyB1c2VkIHRvIHN1cHByZXNzIHdhcm5pbmdzIGZvciBhIGdpdmVuIGVudGl0eS4gSXQg aXMgYWxzbyB1c2VkIGJ5Ci0tICAgICAgIHRoZSBjb21waWxlciBpbiBzb21lIHNpdHVhdGlvbnMg dG8ga2lsbCBzcHVyaW91cyB3YXJuaW5ncy4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBB Y2Nlc3MgS2luZHMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGZvbGxvd2lu ZyB0aHJlZSBlbnRpdHkga2luZHMgYXJlIGludHJvZHVjZWQgYnkgdGhlIGNvcnJlc3BvbmRpbmcK ICAgLS0gIHR5cGUgZGVmaW5pdGlvbnM6CgogICAtLSAgICBFX0FjY2Vzc19UeXBlLCAgRV9HZW5l cmFsX0FjY2Vzc19UeXBlLCAgRV9Bbm9ueW1vdXNfQWNjZXNzX1R5cGUuCgogICAtLSAgSW4gYWRk aXRpb24sIHdlIGRlZmluZSB0aGUga2luZCBFX0FsbG9jYXRvcl9UeXBlIHRvIGxhYmVsCiAgIC0t ICBhbGxvY2F0b3JzLiBUaGlzIGlzIGJlY2F1c2Ugc3BlY2lhbCByZXNvbHV0aW9uIHJ1bGVzIGFw cGx5IHRvIHRoaXMKICAgLS0gIGNvbnN0cnVjdC4gRXZlbnR1YWxseSB0aGUgY29uc3RydWN0cyBh cmUgbGFiZWxlZCB3aXRoIHRoZSBhY2Nlc3MKICAgLS0gIHR5cGUgaW1wb3NlZCBieSB0aGUgY29u dGV4dC4gR2lnaSBzaG91bGQgbmV2ZXIgc2VlIHRoZSB0eXBlCiAgIC0tICBFX0FsbG9jYXRvci4K CiAgIC0tICBTaW1pbGFybHksIHRoZSB0eXBlIEVfQWNjZXNzX0F0dHJpYnV0ZV9UeXBlIGlzIHVz ZWQgYXMgdGhlIGluaXRpYWwKICAgLS0gIGtpbmQgYXNzb2NpYXRlZCB3aXRoIGFuIGFjY2VzcyBh dHRyaWJ1dGUuIEFmdGVyIHJlc29sdXRpb24gYSBzcGVjaWZpYwogICAtLSAgYWNjZXNzIHR5cGUg d2lsbCBiZSBlc3RhYmxpc2hlZCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBjb250ZXh0LgoKICAgLS0g IEZpbmFsbHksIHRoZSB0eXBlIEFueV9BY2Nlc3MgaXMgdXNlZCB0byBsYWJlbCAtbnVsbC0gZHVy aW5nIHR5cGUKICAgLS0gIHJlc29sdXRpb24uIEFueV9BY2Nlc3MgaXMgYWxzbyByZXBsYWNlZCBi eSB0aGUgY29udGV4dCB0eXBlIGFmdGVyCiAgIC0tICByZXNvbHV0aW9uLgoKICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ2xhc3NpZmljYXRpb24gb2YgRW50aXRpZXMg LS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGUgY2xhc3Np ZmljYXRpb24gb2YgcHJvZ3JhbSBlbnRpdGllcyB3aGljaCBmb2xsb3dzIGlzIGEgcmVmaW5lbWVu dCBvZgogICAtLSAgdGhlIGxpc3QgZ2l2ZW4gaW4gUk0gMy4xKDEpLiBFLmcuLCBzZXBhcmF0ZSBl bnRpdGllcyBkZW5vdGUgc3VidHlwZXMgb2YKICAgLS0gIGRpZmZlcmVudCB0eXBlIGNsYXNzZXMu IEFkYSA5NSBlbnRpdGllcyBpbmNsdWRlIGNsYXNzIHdpZGUgdHlwZXMsCiAgIC0tICBwcm90ZWN0 ZWQgdHlwZXMsIHN1YnByb2dyYW0gdHlwZXMsIGdlbmVyYWxpemVkIGFjY2VzcyB0eXBlcywgIGdl bmVyaWMKICAgLS0gIGZvcm1hbCBkZXJpdmVkIHR5cGVzIGFuZCBnZW5lcmljIGZvcm1hbCBwYWNr YWdlcy4KCiAgIC0tICBUaGUgb3JkZXIgY2hvc2VuIGZvciB0aGVzZSBraW5kcyBhbGxvd3MgdXMg dG8gY2xhc3NpZnkgcmVsYXRlZCBlbnRpdGllcwogICAtLSAgc28gdGhhdCB0aGV5IGFyZSBjb250 aWd1b3VzLiBBcyBhIHJlc3VsdCwgdGhleSBkbyBub3QgYXBwZWFyIGluIHRoZQogICAtLSAgZXhh Y3Qgc2FtZSBvcmRlciBhcyB0aGVpciBvcmRlciBvZiBmaXJzdCBhcHBlYXJhbmNlIGluIHRoZSBM Uk0gKEZvcgogICAtLSAgZXhhbXBsZSwgcHJpdmF0ZSB0eXBlcyBhcmUgbGlzdGVkIGJlZm9yZSBw YWNrYWdlcykuIFRoZSBjb250aWd1aXR5CiAgIC0tICBhbGxvd3MgdXMgdG8gZGVmaW5lIHVzZWZ1 bCBzdWJ0eXBlcyAoc2VlIGJlbG93KSBzdWNoIGFzIHR5cGUgZW50aXRpZXMsCiAgIC0tICBvdmVy bG9hZGVkIGVudGl0aWVzLCBldGMuCgogICAtLSAgRWFjaCBlbnRpdHkgKGV4cGxpY2l0bHkgb3Ig aW1wbGljaXRseSBkZWNsYXJlZCkgaGFzIGEga2luZCwgd2hpY2ggaXMKICAgLS0gIGEgdmFsdWUg b2YgdGhlIGZvbGxvd2luZyB0eXBlOgoKICAgdHlwZSBFbnRpdHlfS2luZCBpcyAoCgogICAgICBF X1ZvaWQsCiAgICAgIC0tICBUaGUgaW5pdGlhbCBFa2luZCB2YWx1ZSBmb3IgYSBuZXdseSBjcmVh dGVkIGVudGl0eS4gQWxzbyB1c2VkIGFzCiAgICAgIC0tICB0aGUgRWtpbmQgZm9yIFN0YW5kYXJk X1ZvaWRfVHlwZSwgYSB0eXBlIGVudGl0eSBpbiBTdGFuZGFyZCB1c2VkCiAgICAgIC0tICBhcyBh IGR1bW15IHR5cGUgZm9yIHRoZSByZXR1cm4gdHlwZSBvZiBhIHByb2NlZHVyZSAodGhlIHJlYXNv biB3ZQogICAgICAtLSAgY3JlYXRlIHRoaXMgdHlwZSBpcyB0byBzaGFyZSB0aGUgY2lyY3VpdHMg Zm9yIHBlcmZvcm1pbmcgb3ZlcmxvYWQKICAgICAgLS0gIHJlc29sdXRpb24gb24gY2FsbHMpLgoK ICAgICAgLS0tLS0tLS0tLS0tLQogICAgICAtLSBPYmplY3RzIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0KCiAgICAgIEVfVmFyaWFibGUsCiAgICAgIC0tICBWYXJpYWJsZXMgY3JlYXRlZCBieSBhbiBv YmplY3QgZGVjbGFyYXRpb24gd2l0aCBubyBjb25zdGFudCBrZXl3b3JkCgogICAgICBFX0NvbXBv bmVudCwKICAgICAgLS0gIENvbXBvbmVudHMgb2YgYSByZWNvcmQgZGVjbGFyYXRpb24sIHByaXZh dGUgZGVjbGFyYXRpb25zIG9mCiAgICAgIC0tICBwcm90ZWN0ZWQgb2JqZWN0cy4KCiAgICAgIEVf Q29uc3RhbnQsCiAgICAgIC0tICBDb25zdGFudHMgY3JlYXRlZCBieSBhbiBvYmplY3QgZGVjbGFy YXRpb24gd2l0aCBhIGNvbnN0YW50IGtleXdvcmQKCiAgICAgIEVfRGlzY3JpbWluYW50LAogICAg ICAtLSAgQSBkaXNjcmltaW5hbnQsIGNyZWF0ZWQgYnkgdGhlIHVzZSBvZiBhIGRpc2NyaW1pbmFu dCBpbiBhIHR5cGUKICAgICAgLS0gIGRlY2xhcmF0aW9uLgoKICAgICAgRV9Mb29wX1BhcmFtZXRl ciwKICAgICAgLS0gIEEgbG9vcCBwYXJhbWV0ZXIgY3JlYXRlZCBieSBhIGZvciBsb29wCgogICAg ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgLS0gUGFyYW1ldGVyIEVudGl0aWVzIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgICAgLS0gIFBhcmFtZXRlcnMgYXJl IGFsc28gb2JqZWN0cwoKICAgICAgRV9Jbl9QYXJhbWV0ZXIsCiAgICAgIC0tICBBbiBpbiBwYXJh bWV0ZXIgb2YgYSBzdWJwcm9ncmFtIG9yIGVudHJ5CgogICAgICBFX091dF9QYXJhbWV0ZXIsCiAg ICAgIC0tICBBbiBvdXQgcGFyYW1ldGVyIG9mIGEgc3VicHJvZ3JhbSBvciBlbnRyeQoKICAgICAg RV9Jbl9PdXRfUGFyYW1ldGVyLAogICAgICAtLSAgQW4gaW4tb3V0IHBhcmFtZXRlciBvZiBhIHN1 YnByb2dyYW0gb3IgZW50cnkKCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIEdlbmVyaWMgUGFyYW1ldGVyIEVudGl0aWVzIC0tCiAgICAgIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAtLSAgR2VuZXJpYyBwYXJhbWV0ZXJzIGFyZSBh bHNvIG9iamVjdHMKCiAgICAgIEVfR2VuZXJpY19Jbl9PdXRfUGFyYW1ldGVyLAogICAgICAtLSAg QSBnZW5lcmljIGluIG91dCBwYXJhbWV0ZXIsIGNyZWF0ZWQgYnkgdGhlIHVzZSBvZiBhIGdlbmVy aWMgaW4gb3V0CiAgICAgIC0tICBwYXJhbWV0ZXIgaW4gYSBnZW5lcmljIGRlY2xhcmF0aW9uLgoK ICAgICAgRV9HZW5lcmljX0luX1BhcmFtZXRlciwKICAgICAgLS0gIEEgZ2VuZXJpYyBpbiBwYXJh bWV0ZXIsIGNyZWF0ZWQgYnkgdGhlIHVzZSBvZiBhIGdlbmVyaWMgaW4KICAgICAgLS0gIHBhcmFt ZXRlciBpbiBhIGdlbmVyaWMgZGVjbGFyYXRpb24uCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0t CiAgICAgIC0tIE5hbWVkIE51bWJlcnMgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg ICAgRV9OYW1lZF9JbnRlZ2VyLAogICAgICAtLSAgTmFtZWQgbnVtYmVycyBjcmVhdGVkIGJ5IGEg bnVtYmVyIGRlY2xhcmF0aW9uIHdpdGggYW4gaW50ZWdlciB2YWx1ZQoKICAgICAgRV9OYW1lZF9S ZWFsLAogICAgICAtLSAgTmFtZWQgbnVtYmVycyBjcmVhdGVkIGJ5IGEgbnVtYmVyIGRlY2xhcmF0 aW9uIHdpdGggYSByZWFsIHZhbHVlCgogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAg ICAtLSBFbnVtZXJhdGlvbiBUeXBlcyAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgICAgRV9FbnVtZXJhdGlvbl9UeXBlLAogICAgICAtLSAgRW51bWVyYXRpb24gdHlwZXMsIGNy ZWF0ZWQgYnkgYW4gZW51bWVyYXRpb24gdHlwZSBkZWNsYXJhdGlvbgoKICAgICAgRV9FbnVtZXJh dGlvbl9TdWJ0eXBlLAogICAgICAtLSAgRW51bWVyYXRpb24gc3VidHlwZXMsIGNyZWF0ZWQgYnkg YW4gZXhwbGljaXQgb3IgaW1wbGljaXQgc3VidHlwZQogICAgICAtLSAgZGVjbGFyYXRpb24gYXBw bGllZCB0byBhbiBlbnVtZXJhdGlvbiB0eXBlIG9yIHN1YnR5cGUuCgogICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIE51bWVyaWMgVHlwZXMgLS0KICAgICAgLS0tLS0tLS0tLS0tLS0t LS0tLQoKICAgICAgRV9TaWduZWRfSW50ZWdlcl9UeXBlLAogICAgICAtLSAgU2lnbmVkIGludGVn ZXIgdHlwZSwgdXNlZCBmb3IgdGhlIGFub255bW91cyBiYXNlIHR5cGUgb2YgdGhlCiAgICAgIC0t ICBpbnRlZ2VyIHN1YnR5cGUgY3JlYXRlZCBieSBhbiBpbnRlZ2VyIHR5cGUgZGVjbGFyYXRpb24u CgogICAgICBFX1NpZ25lZF9JbnRlZ2VyX1N1YnR5cGUsCiAgICAgIC0tICBTaWduZWQgaW50ZWdl ciBzdWJ0eXBlLCBjcmVhdGVkIGJ5IGVpdGhlciBhbiBpbnRlZ2VyIHN1YnR5cGUgb3IKICAgICAg LS0gIGludGVnZXIgdHlwZSBkZWNsYXJhdGlvbiAoaW4gdGhlIGxhdHRlciBjYXNlIGFuIGludGVn ZXIgdHlwZSBpcwogICAgICAtLSAgY3JlYXRlZCBmb3IgdGhlIGJhc2UgdHlwZSwgYW5kIHRoaXMg aXMgdGhlIGZpcnN0IG5hbWVkIHN1YnR5cGUpLgoKICAgICAgRV9Nb2R1bGFyX0ludGVnZXJfVHlw ZSwKICAgICAgLS0gIE1vZHVsYXIgaW50ZWdlciB0eXBlLCB1c2VkIGZvciB0aGUgYW5vbnltb3Vz IGJhc2UgdHlwZSBvZiB0aGUKICAgICAgLS0gIGludGVnZXIgc3VidHlwZSBjcmVhdGVkIGJ5IGEg bW9kdWxhciBpbnRlZ2VyIHR5cGUgZGVjbGFyYXRpb24uCgogICAgICBFX01vZHVsYXJfSW50ZWdl cl9TdWJ0eXBlLAogICAgICAtLSAgTW9kdWxhciBpbnRlZ2VyIHN1YnR5cGUsIGNyZWF0ZWQgYnkg ZWl0aGVyIGFuIG1vZHVsYXIgc3VidHlwZQogICAgICAtLSAgb3IgbW9kdWxhciB0eXBlIGRlY2xh cmF0aW9uIChpbiB0aGUgbGF0dGVyIGNhc2UgYSBtb2R1bGFyIHR5cGUKICAgICAgLS0gIGlzIGNy ZWF0ZWQgZm9yIHRoZSBiYXNlIHR5cGUsIGFuZCB0aGlzIGlzIHRoZSBmaXJzdCBuYW1lZCBzdWJ0 eXBlKS4KCiAgICAgIEVfT3JkaW5hcnlfRml4ZWRfUG9pbnRfVHlwZSwKICAgICAgLS0gIE9yZGlu YXJ5IGZpeGVkIHR5cGUsIHVzZWQgZm9yIHRoZSBhbm9ueW1vdXMgYmFzZSB0eXBlIG9mIHRoZQog ICAgICAtLSAgZml4ZWQgc3VidHlwZSBjcmVhdGVkIGJ5IGFuIG9yZGluYXJ5IGZpeGVkIHBvaW50 IHR5cGUgZGVjbGFyYXRpb24uCgogICAgICBFX09yZGluYXJ5X0ZpeGVkX1BvaW50X1N1YnR5cGUs CiAgICAgIC0tICBPcmRpbmFyeSBmaXhlZCBwb2ludCBzdWJ0eXBlLCBjcmVhdGVkIGJ5IGVpdGhl ciBhbiBvcmRpbmFyeSBmaXhlZAogICAgICAtLSAgcG9pbnQgc3VidHlwZSBvciBvcmRpbmFyeSBm aXhlZCBwb2ludCB0eXBlIGRlY2xhcmF0aW9uIChpbiB0aGUKICAgICAgLS0gIGxhdHRlciBjYXNl IGEgZml4ZWQgcG9pbnQgdHlwZSBpcyBjcmVhdGVkIGZvciB0aGUgYmFzZSB0eXBlLCBhbmQKICAg ICAgLS0gIHRoaXMgaXMgdGhlIGZpcnN0IG5hbWVkIHN1YnR5cGUpLgoKICAgICAgRV9EZWNpbWFs X0ZpeGVkX1BvaW50X1R5cGUsCiAgICAgIC0tICBEZWNpbWFsIGZpeGVkIHR5cGUsIHVzZWQgZm9y IHRoZSBhbm9ueW1vdXMgYmFzZSB0eXBlIG9mIHRoZSBkZWNpbWFsCiAgICAgIC0tICBmaXhlZCBz dWJ0eXBlIGNyZWF0ZWQgYnkgYW4gb3JkaW5hcnkgZml4ZWQgcG9pbnQgdHlwZSBkZWNsYXJhdGlv bi4KCiAgICAgIEVfRGVjaW1hbF9GaXhlZF9Qb2ludF9TdWJ0eXBlLAogICAgICAtLSAgRGVjaW1h bCBmaXhlZCBwb2ludCBzdWJ0eXBlLCBjcmVhdGVkIGJ5IGVpdGhlciBhIGRlY2ltYWwgZml4ZWQg cG9pbnQKICAgICAgLS0gIHN1YnR5cGUgb3IgZGVjaW1hbCBmaXhlZCBwb2ludCB0eXBlIGRlY2xh cmF0aW9uIChpbiB0aGUgbGF0dGVyIGNhc2UKICAgICAgLS0gIGEgZml4ZWQgcG9pbnQgdHlwZSBp cyBjcmVhdGVkIGZvciB0aGUgYmFzZSB0eXBlLCBhbmQgdGhpcyBpcyB0aGUKICAgICAgLS0gIGZp cnN0IG5hbWVkIHN1YnR5cGUpLgoKICAgICAgRV9GbG9hdGluZ19Qb2ludF9UeXBlLAogICAgICAt LSAgRmxvYXRpbmcgcG9pbnQgdHlwZSwgdXNlZCBmb3IgdGhlIGFub255bW91cyBiYXNlIHR5cGUg b2YgdGhlCiAgICAgIC0tICBmbG9hdGluZyBwb2ludCBzdWJ0eXBlIGNyZWF0ZWQgYnkgYSBmbG9h dGluZyBwb2ludCB0eXBlIGRlY2xhcmF0aW9uLgoKICAgICAgRV9GbG9hdGluZ19Qb2ludF9TdWJ0 eXBlLAogICAgICAtLSAgRmxvYXRpbmcgcG9pbnQgc3VidHlwZSwgY3JlYXRlZCBieSBlaXRoZXIg YSBmbG9hdGluZyBwb2ludCBzdWJ0eXBlCiAgICAgIC0tICBvciBmbG9hdGluZyBwb2ludCB0eXBl IGRlY2xhcmF0aW9uIChpbiB0aGUgbGF0dGVyIGNhc2UgYSBmbG9hdGluZwogICAgICAtLSAgcG9p bnQgdHlwZSBpcyBjcmVhdGVkIGZvciB0aGUgYmFzZSB0eXBlLCBhbmQgdGhpcyBpcyB0aGUgZmly c3QKICAgICAgLS0gIG5hbWVkIHN1YnR5cGUpLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tCiAg ICAgIC0tIEFjY2VzcyBUeXBlcyAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIEVf QWNjZXNzX1R5cGUsCiAgICAgIC0tICBBbiBhY2Nlc3MgdHlwZSBjcmVhdGVkIGJ5IGFuIGFjY2Vz cyB0eXBlIGRlY2xhcmF0aW9uIHdpdGggbm8gYWxsCiAgICAgIC0tICBrZXl3b3JkIHByZXNlbnQu IE5vdGUgdGhhdCB0aGUgcHJlZGVmaW5lZCB0eXBlIEFueV9BY2Nlc3MsIHdoaWNoCiAgICAgIC0t ICBoYXMgRV9BY2Nlc3NfVHlwZSBFa2luZCwgaXMgdXNlZCB0byBsYWJlbCBOVUxMIGluIHRoZSB1 cHdhcmRzIHBhc3MKICAgICAgLS0gIG9mIHR5cGUgYW5hbHlzaXMsIHRvIGJlIHJlcGxhY2VkIGJ5 IHRoZSB0cnVlIGFjY2VzcyB0eXBlIGluIHRoZQogICAgICAtLSAgZG93bndhcmRzIHJlc29sdXRp b24gcGFzcy4KCiAgICAgIEVfQWNjZXNzX1N1YnR5cGUsCiAgICAgIC0tICBBbiBhY2Nlc3Mgc3Vi dHlwZSBjcmVhdGVkIGJ5IGEgc3VidHlwZSBkZWNsYXJhdGlvbiBmb3IgYW55IGFjY2VzcwogICAg ICAtLSAgdHlwZSAod2hldGhlciBvciBub3QgaXQgaXMgYSBnZW5lcmFsIGFjY2VzcyB0eXBlKS4K CiAgICAgIEVfQWNjZXNzX0F0dHJpYnV0ZV9UeXBlLAogICAgICAtLSAgQW4gYWNjZXNzIHR5cGUg Y3JlYXRlZCBmb3IgYW4gYWNjZXNzIGF0dHJpYnV0ZSAoc3VjaCBhcyAnQWNjZXNzLAogICAgICAt LSAgJ1VucmVzdHJpY3RlZF9BY2Nlc3MgYW5kIFVuY2hlY2tlZF9BY2Nlc3MpCgogICAgICBFX0Fs bG9jYXRvcl9UeXBlLAogICAgICAtLSAgQSBzcGVjaWFsIGludGVybmFsIHR5cGUgdXNlZCB0byBs YWJlbCBhbGxvY2F0b3JzIGFuZCBhdHRyaWJ1dGUKICAgICAgLS0gIHJlZmVyZW5jZXMgdXNpbmcg J0FjY2Vzcy4gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBzcGVjaWFsIHJlc29sdXRpb24KICAgICAg LS0gIHJ1bGVzIGFwcGx5IHRvIHRoZXNlIGNvbnN0cnVjdHMuIE9uIHRoZSByZXNvbHV0aW9uIHBh c3MsIHRoaXMgdHlwZQogICAgICAtLSAgaXMgYWx3YXlzIHJlcGxhY2VkIGJ5IHRoZSBhY3R1YWwg YWNjZXNzIHR5cGUsIHNvIEdpZ2kgc2hvdWxkIG5ldmVyCiAgICAgIC0tICBzZWUgdHlwZXMgd2l0 aCB0aGlzIEVraW5kLgoKICAgICAgRV9HZW5lcmFsX0FjY2Vzc19UeXBlLAogICAgICAtLSAgQW4g YWNjZXNzIHR5cGUgY3JlYXRlZCBieSBhbiBhY2Nlc3MgdHlwZSBkZWNsYXJhdGlvbiB3aXRoIHRo ZSBhbGwKICAgICAgLS0gIGtleXdvcmQgcHJlc2VudC4KCiAgICAgIEVfQWNjZXNzX1N1YnByb2dy YW1fVHlwZSwKICAgICAgLS0gIEFuIGFjY2VzcyB0byBzdWJwcm9ncmFtIHR5cGUsIGNyZWF0ZWQg YnkgYW4gYWNjZXNzIHRvIHN1YnByb2dyYW0KICAgICAgLS0gIGRlY2xhcmF0aW9uLgoKICAgICAg RV9BY2Nlc3NfUHJvdGVjdGVkX1N1YnByb2dyYW1fVHlwZSwKICAgICAgLS0gIEFuIGFjY2VzcyB0 byBhIHByb3RlY3RlZCBzdWJwcm9ncmFtLCBjcmVhdGVkIGJ5IHRoZSBjb3JyZXNwb25kaW5nCiAg ICAgIC0tICBkZWNsYXJhdGlvbi4gVmFsdWVzIG9mIHN1Y2ggYSB0eXBlIGRlbm90ZSBib3RoIGEg cHJvdGVjdGVkIG9iamVjdAogICAgICAtLSAgYW5kIGEgcHJvdGVjdGVkIG9wZXJhdGlvbiB3aXRo aW4sIGFuZCBoYXZlIGRpZmZlcmVudCBjb21waWxlLXRpbWUKICAgICAgLS0gIGFuZCBydW4tdGlt ZSBwcm9wZXJ0aWVzIHRoYW4gb3RoZXIgYWNjZXNzIHRvIHN1YnByb2dyYW1zLgoKICAgICAgRV9B bm9ueW1vdXNfQWNjZXNzX1R5cGUsCiAgICAgIC0tICBBbiBhbm9ueW1vdXMgYWNjZXNzIHR5cGUg Y3JlYXRlZCBieSBhbiBhY2Nlc3MgcGFyYW1ldGVyIG9yIGFjY2VzcwogICAgICAtLSAgZGlzY3Jp bWluYW50LgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIENvbXBvc2l0ZSBU eXBlcyAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIEVfQXJyYXlfVHlwZSwK ICAgICAgLS0gIEFuIGFycmF5IHR5cGUgY3JlYXRlZCBieSBhbiBhcnJheSB0eXBlIGRlY2xhcmF0 aW9uLiBJbmNsdWRlcyBhbGwKICAgICAgLS0gIGNhc2VzIG9mIGFycmF5cywgZXhjZXB0IGZvciBz dHJpbmcgdHlwZXMuCgogICAgICBFX0FycmF5X1N1YnR5cGUsCiAgICAgIC0tICBBbiBhcnJheSBz dWJ0eXBlLCBjcmVhdGVkIGJ5IGFuIGV4cGxpY2l0IGFycmF5IHN1YnR5cGUgZGVjbGFyYXRpb24s CiAgICAgIC0tICBvciB0aGUgdXNlIG9mIGFuIGFub255bW91cyBhcnJheSBzdWJ0eXBlLgoKICAg ICAgRV9TdHJpbmdfVHlwZSwKICAgICAgLS0gIEEgc3RyaW5nIHR5cGUsIGkuZS4gYW4gYXJyYXkg dHlwZSB3aG9zZSBjb21wb25lbnQgdHlwZSBpcyBhIGNoYXJhY3RlcgogICAgICAtLSAgdHlwZSwg YW5kIGZvciB3aGljaCBzdHJpbmcgbGl0ZXJhbHMgY2FuIHRodXMgYmUgd3JpdHRlbi4KCiAgICAg IEVfU3RyaW5nX1N1YnR5cGUsCiAgICAgIC0tICBBIHN0cmluZyBzdWJ0eXBlLCBjcmVhdGVkIGJ5 IGFuIGV4cGxpY2l0IHN1YnR5cGUgZGVjbGFyYXRpb24gZm9yIGEKICAgICAgLS0gIHN0cmluZyB0 eXBlLCBvciB0aGUgdXNlIG9mIGFuIGFub255bW91cyBzdWJ0eXBlIG9mIGEgc3RyaW5nIHR5cGUs CgogICAgICBFX1N0cmluZ19MaXRlcmFsX1N1YnR5cGUsCiAgICAgIC0tICBBIHNwZWNpYWwgc3Ry aW5nIHN1YnR5cGUsIHVzZWQgb25seSB0byBkZXNjcmliZSB0aGUgdHlwZSBvZiBhIHN0cmluZwog ICAgICAtLSAgbGl0ZXJhbCAod2lsbCBhbHdheXMgYmUgb25lIGRpbWVuc2lvbmFsLCB3aXRoIGxp dGVyYWwgYm91bmRzKS4KCiAgICAgIEVfQ2xhc3NfV2lkZV9UeXBlLAogICAgICAtLSAgQSBjbGFz cyB3aWRlIHR5cGUsIGNyZWF0ZWQgYnkgYW55IHRhZ2dlZCB0eXBlIGRlY2xhcmF0aW9uIChpLmUu IGlmCiAgICAgIC0tICBhIHRhZ2dlZCB0eXBlIGlzIGRlY2xhcmVkLCB0aGUgY29ycmVzcG9uZGlu ZyBjbGFzcyB0eXBlIGlzIGFsd2F5cwogICAgICAtLSAgY3JlYXRlZCwgdXNpbmcgdGhpcyBFa2lu ZCB2YWx1ZSkuCgogICAgICBFX0NsYXNzX1dpZGVfU3VidHlwZSwKICAgICAgLS0gIEEgc3VidHlw ZSBvZiBhIGNsYXNzIHdpZGUgdHlwZSwgY3JlYXRlZCBieSBhIHN1YnR5cGUgZGVjbGFyYXRpb24K ICAgICAgLS0gIHVzZWQgdG8gZGVjbGFyZSBhIHN1YnR5cGUgb2YgYSBjbGFzcyB0eXBlLgoKICAg ICAgRV9SZWNvcmRfVHlwZSwKICAgICAgLS0gIEEgcmVjb3JkIHR5cGUsIGNyZWF0ZWQgYnkgYSBy ZWNvcmQgdHlwZSBkZWNsYXJhdGlvbgoKICAgICAgRV9SZWNvcmRfU3VidHlwZSwKICAgICAgLS0g IEEgcmVjb3JkIHN1YnR5cGUsIGNyZWF0ZWQgYnkgYSByZWNvcmQgc3VidHlwZSBkZWNsYXJhdGlv bi4KCiAgICAgIEVfUmVjb3JkX1R5cGVfV2l0aF9Qcml2YXRlLAogICAgICAtLSAgVXNlZCBmb3Ig dHlwZXMgZGVmaW5lZCBieSBhIHByaXZhdGUgZXh0ZW5zaW9uIGRlY2xhcmF0aW9uLiBJbmNsdWRl cwogICAgICAtLSAgdGhlIGZpZWxkcyBmb3IgYm90aCBwcml2YXRlIHR5cGVzIGFuZCBmb3IgcmVj b3JkIHR5cGVzICh3aXRoIHRoZQogICAgICAtLSAgc29sZSBleGNlcHRpb24gb2YgQ29ycmVzcG9u ZGluZ19Db25jdXJyZW50X1R5cGUgd2hpY2ggaXMgb2J2aW91c2x5CiAgICAgIC0tICBub3QgbmVl ZGVkKS4gVGhpcyBlbnRpdHkgaXMgY29uc2lkZXJlZCB0byBiZSBib3RoIGEgcmVjb3JkIHR5cGUg YW5kCiAgICAgIC0tICBhIHByaXZhdGUgdHlwZS4KCiAgICAgIEVfUmVjb3JkX1N1YnR5cGVfV2l0 aF9Qcml2YXRlLAogICAgICAtLSAgQSBzdWJ0eXBlIG9mIGEgdHlwZSBkZWZpbmVkIGJ5IGEgcHJp dmF0ZSBleHRlbnNpb24gZGVjbGFyYXRpb24uCgogICAgICBFX1ByaXZhdGVfVHlwZSwKICAgICAg LS0gIEEgcHJpdmF0ZSB0eXBlLCBjcmVhdGVkIGJ5IGEgcHJpdmF0ZSB0eXBlIGRlY2xhcmF0aW9u IHRoYXQgZG9lcwogICAgICAtLSAgbm90IGhhdmUgdGhlIGtleXdvcmQgbGltaXRlZC4KCiAgICAg IEVfUHJpdmF0ZV9TdWJ0eXBlLAogICAgICAtLSAgQSBzdWJ0eXBlIG9mIGEgcHJpdmF0ZSB0eXBl LCBjcmVhdGVkIGJ5IGEgc3VidHlwZSBkZWNsYXJhdGlvbiB1c2VkCiAgICAgIC0tICB0byBkZWNs YXJlIGEgc3VidHlwZSBvZiBhIHByaXZhdGUgdHlwZS4KCiAgICAgIEVfTGltaXRlZF9Qcml2YXRl X1R5cGUsCiAgICAgIC0tICBBIGxpbWl0ZWQgcHJpdmF0ZSB0eXBlLCBjcmVhdGVkIGJ5IGEgcHJp dmF0ZSB0eXBlIGRlY2xhcmF0aW9uIHRoYXQKICAgICAgLS0gIGhhcyB0aGUga2V5d29yZCBsaW1p dGVkLgoKICAgICAgRV9MaW1pdGVkX1ByaXZhdGVfU3VidHlwZSwKICAgICAgLS0gIEEgc3VidHlw ZSBvZiBhIGxpbWl0ZWQgcHJpdmF0ZSB0eXBlLCBjcmVhdGVkIGJ5IGEgc3VidHlwZSBkZWNsYXJh dGlvbgogICAgICAtLSAgdXNlZCB0byBkZWNsYXJlIGEgc3VidHlwZSBvZiBhIGxpbWl0ZWQgcHJp dmF0ZSB0eXBlLgoKICAgICAgRV9JbmNvbXBsZXRlX1R5cGUsCiAgICAgIC0tICBBbiBpbmNvbXBs ZXRlIHR5cGUsIGNyZWF0ZWQgYnkgYW4gaW5jb21wbGV0ZSB0eXBlIGRlY2xhcmF0aW9uCgogICAg ICBFX1Rhc2tfVHlwZSwKICAgICAgLS0gIEEgdGFzayB0eXBlLCBjcmVhdGVkIGJ5IGEgdGFzayB0 eXBlIGRlY2xhcmF0aW9uLiBBbiBlbnRpdHkgd2l0aCB0aGlzCiAgICAgIC0tICBFa2luZCBpcyBh bHNvIGNyZWF0ZWQgdG8gZGVzY3JpYmUgdGhlIGFub255bW91cyB0eXBlIG9mIGEgdGFzayB0aGF0 CiAgICAgIC0tICBpcyBjcmVhdGVkIGJ5IGEgc2luZ2xlIHRhc2sgZGVjbGFyYXRpb24uCgogICAg ICBFX1Rhc2tfU3VidHlwZSwKICAgICAgLS0gIEEgc3VidHlwZSBvZiBhIHRhc2sgdHlwZSwgY3Jl YXRlZCBieSBhIHN1YnR5cGUgZGVjbGFyYXRpb24gdXNlZCB0bwogICAgICAtLSAgZGVjbGFyZSBh IHN1YnR5cGUgb2YgYSB0YXNrIHR5cGUuCgogICAgICBFX1Byb3RlY3RlZF9UeXBlLAogICAgICAt LSAgQSBwcm90ZWN0ZWQgdHlwZSwgY3JlYXRlZCBieSBhIHByb3RlY3RlZCB0eXBlIGRlY2xhcmF0 aW9uLiBBbiBlbnRpdHkKICAgICAgLS0gIHdpdGggdGhpcyBFa2luZCBpcyBhbHNvIGNyZWF0ZWQg dG8gZGVzY3JpYmUgdGhlIGFub255bW91cyB0eXBlIG9mCiAgICAgIC0tICBhIHByb3RlY3RlZCBv YmplY3QgY3JlYXRlZCBieSBhIHNpbmdsZSBwcm90ZWN0ZWQgZGVjbGFyYXRpb24uCgogICAgICBF X1Byb3RlY3RlZF9TdWJ0eXBlLAogICAgICAtLSAgQSBzdWJ0eXBlIG9mIGEgcHJvdGVjdGVkIHR5 cGUsIGNyZWF0ZWQgYnkgYSBzdWJ0eXBlIGRlY2xhcmF0aW9uIHVzZWQKICAgICAgLS0gIHRvIGRl Y2xhcmUgYSBzdWJ0eXBlIG9mIGEgcHJvdGVjdGVkIHR5cGUuCgogICAgICAtLS0tLS0tLS0tLS0t LS0tLQogICAgICAtLSBPdGhlciBUeXBlcyAtLQogICAgICAtLS0tLS0tLS0tLS0tLS0tLQoKICAg ICAgRV9FeGNlcHRpb25fVHlwZSwKICAgICAgLS0gIFRoZSB0eXBlIG9mIGFuIGV4Y2VwdGlvbiBj cmVhdGVkIGJ5IGFuIGV4Y2VwdGlvbiBkZWNsYXJhdGlvbgoKICAgICAgRV9TdWJwcm9ncmFtX1R5 cGUsCiAgICAgIC0tICBUaGlzIGlzIHRoZSBkZXNpZ25hdGVkIHR5cGUgb2YgYW4gQWNjZXNzX1Rv X1N1YnByb2dyYW0uIEhhcyB0eXBlCiAgICAgIC0tICBhbmQgc2lnbmF0dXJlIGxpa2UgYSBzdWJw cm9ncmFtIGVudGl0eSwgc28gY2FuIGFwcGVhciBpbiBjYWxscywKICAgICAgLS0gIHdoaWNoIGFy ZSByZXNvbHZlZCBsaWtlIHJlZ3VsYXIgY2FsbHMsIGV4Y2VwdCB0aGF0IHN1Y2ggYW4gZW50aXR5 CiAgICAgIC0tICBpcyBub3Qgb3ZlcmxvYWRhYmxlLgoKICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgICAgIC0tIE92ZXJsb2FkYWJsZSBFbnRpdGllcyAtLQogICAgICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgICAgIEVfRW51bWVyYXRpb25fTGl0ZXJhbCwKICAgICAg LS0gIEFuIGVudW1lcmF0aW9uIGxpdGVyYWwsIGNyZWF0ZWQgYnkgdGhlIHVzZSBvZiB0aGUgbGl0 ZXJhbCBpbiBhbgogICAgICAtLSAgZW51bWVyYXRpb24gdHlwZSBkZWZpbml0aW9uLgoKICAgICAg RV9GdW5jdGlvbiwKICAgICAgLS0gIEEgZnVuY3Rpb24sIGNyZWF0ZWQgYnkgYSBmdW5jdGlvbiBk ZWNsYXJhdGlvbiBvciBhIGZ1bmN0aW9uIGJvZHkKICAgICAgLS0gIHRoYXQgYWN0cyBhcyBpdHMg b3duIGRlY2xhcmF0aW9uLgoKICAgICAgRV9PcGVyYXRvciwKICAgICAgLS0gIEEgcHJlZGVmaW5l ZCBvcGVyYXRvciwgYXBwZWFyaW5nIGluIFN0YW5kYXJkLCBvciBhbiBpbXBsaWNpdGx5CiAgICAg IC0tICBkZWZpbmVkIGNvbmNhdGVuYXRpb24gb3BlcmF0b3IgY3JlYXRlZCB3aGVuZXZlciBhbiBh cnJheSBpcwogICAgICAtLSAgZGVjbGFyZWQuIFdlIGRvIG5vdCBtYWtlIG5vcm1hbCBkZXJpdmVk IG9wZXJhdG9ycyBleHBsaWNpdCBpbgogICAgICAtLSAgdGhlIHRyZWUsIGJ1dCB0aGUgY29uY2F0 ZW5hdGlvbiBvcGVyYXRvcnMgYXJlIG1hZGUgZXhwbGljaXQuCgogICAgICBFX1Byb2NlZHVyZSwK ICAgICAgLS0gIEEgcHJvY2VkdXJlLCBjcmVhdGVkIGJ5IGEgcHJvY2VkdXJlIGRlY2xhcmF0aW9u IG9yIGEgcHJvY2VkdXJlCiAgICAgIC0tICBib2R5IHRoYXQgYWN0cyBhcyBpdHMgb3duIGRlY2xh cmF0aW9uLgoKICAgICAgRV9FbnRyeSwKICAgICAgLS0gIEFuIGVudHJ5LCBjcmVhdGVkIGJ5IGFu IGVudHJ5IGRlY2xhcmF0aW9uIGluIGEgdGFzayBvciBwcm90ZWN0ZWQKICAgICAgLS0gIG9iamVj dC4KCiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgIC0tIE90aGVyIEVudGl0aWVzIC0t CiAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICBFX0VudHJ5X0ZhbWlseSwKICAgICAg LS0gIEFuIGVudHJ5IGZhbWlseSwgY3JlYXRlZCBieSBhbiBlbnRyeSBmYW1pbHkgZGVjbGFyYXRp b24gaW4gYQogICAgICAtLSAgdGFzayBvciBwcm90ZWN0ZWQgdHlwZSBkZWZpbml0aW9uLgoKICAg ICAgRV9CbG9jaywKICAgICAgLS0gIEEgYmxvY2sgaWRlbnRpZmllciwgY3JlYXRlZCBieSBhbiBl eHBsaWNpdCBvciBpbXBsaWNpdCBsYWJlbCBvbgogICAgICAtLSAgYSBibG9jayBvciBkZWNsYXJl IHN0YXRlbWVudC4KCiAgICAgIEVfRW50cnlfSW5kZXhfUGFyYW1ldGVyLAogICAgICAtLSAgQW4g ZW50cnkgaW5kZXggcGFyYW1ldGVyIGNyZWF0ZWQgYnkgYW4gZW50cnkgaW5kZXggc3BlY2lmaWNh dGlvbgogICAgICAtLSAgZm9yIHRoZSBib2R5IG9mIGEgcHJvdGVjdGVkIGVudHJ5IGZhbWlseS4K CiAgICAgIEVfRXhjZXB0aW9uLAogICAgICAtLSAgQW4gZXhjZXB0aW9uIGNyZWF0ZWQgYnkgYW4g ZXhjZXB0aW9uIGRlY2xhcmF0aW9uLiBUaGUgZXhjZXB0aW9uCiAgICAgIC0tICBpdHNlbGYgdXNl cyBFX0V4Y2VwdGlvbiBmb3IgdGhlIEVraW5kLCB0aGUgaW1wbGljaXQgdHlwZSB0aGF0IGlzCiAg ICAgIC0tICBjcmVhdGVkIHRvIHJlcHJlc2VudCBpdHMgdHlwZSB1c2VzIHRoZSBFa2luZCBFX0V4 Y2VwdGlvbl9UeXBlLgoKICAgICAgRV9HZW5lcmljX0Z1bmN0aW9uLAogICAgICAtLSAgQSBnZW5l cmljIGZ1bmN0aW9uLiBUaGlzIGlzIHRoZSBlbnRpdHkgZm9yIGEgZ2VuZXJpYyBmdW5jdGlvbgog ICAgICAtLSAgY3JlYXRlZCBieSBhIGdlbmVyaWMgc3VicHJvZ3JhbSBkZWNsYXJhdGlvbi4KCiAg ICAgIEVfR2VuZXJpY19QYWNrYWdlLAogICAgICAtLSAgQSBnZW5lcmljIHBhY2thZ2UsIHRoaXMg aXMgdGhlIGVudGl0eSBmb3IgYSBnZW5lcmljIHBhY2thZ2UgY3JlYXRlZAogICAgICAtLSAgYnkg YSBnZW5lcmljIHBhY2thZ2UgZGVjbGFyYXRpb24uCgogICAgICBFX0dlbmVyaWNfUHJvY2VkdXJl LAogICAgICAtLSAgQSBnZW5lcmljIGZ1bmN0aW9uLiBUaGlzIGlzIHRoZSBlbnRpdHkgZm9yIGEg Z2VuZXJpYyBwcm9jZWR1cmUKICAgICAgLS0gIGNyZWF0ZWQgYnkgYSBnZW5lcmljIHN1YnByb2dy YW0gZGVjbGFyYXRpb24uCgogICAgICBFX0xhYmVsLAogICAgICAtLSAgVGhlIGRlZmluaW5nIGVu dGl0eSBmb3IgYSBsYWJlbC4gTm90ZSB0aGF0IHRoaXMgaXMgY3JlYXRlZCBieSB0aGUKICAgICAg LS0gIGltcGxpY2l0IGxhYmVsIGRlY2xhcmF0aW9uLCBub3QgdGhlIG9jY3VycmVuY2Ugb2YgdGhl IGxhYmVsIGl0c2VsZiwKICAgICAgLS0gIHdoaWNoIGlzIHNpbXBseSBhIGRpcmVjdCBuYW1lIHJl ZmVycmluZyB0byB0aGUgbGFiZWwuCgogICAgICBFX0xvb3AsCiAgICAgIC0tICBBIGxvb3AgaWRl bnRpZmllciwgY3JlYXRlZCBieSBhbiBleHBsaWNpdCBvciBpbXBsaWNpdCBsYWJlbCBvbiBhCiAg ICAgIC0tICBsb29wIHN0YXRlbWVudC4KCiAgICAgIEVfUGFja2FnZSwKICAgICAgLS0gIEEgcGFj a2FnZSwgY3JlYXRlZCBieSBhIHBhY2thZ2UgZGVjbGFyYXRpb24KCiAgICAgIEVfUGFja2FnZV9C b2R5LAogICAgICAtLSAgQSBwYWNrYWdlIGJvZHkuIFRoaXMgZW50aXR5IHNlcnZlcyBvbmx5IGxp bWl0ZWQgZnVuY3Rpb25zLCBzaW5jZQogICAgICAtLSAgbW9zdCBzZW1hbnRpYyBhbmFseXNpcyB1 c2VzIHRoZSBwYWNrYWdlIGVudGl0eSAoRV9QYWNrYWdlKS4gSG93ZXZlcgogICAgICAtLSAgdGhl cmUgYXJlIHNvbWUgYXR0cmlidXRlcyB0aGF0IGFyZSBzaWduaWZpY2FudCBmb3IgdGhlIGJvZHkg ZW50aXR5LgogICAgICAtLSAgRm9yIGV4YW1wbGUsIGNvbGxlY3Rpb24gb2YgZXhjZXB0aW9uIGhh bmRsZXJzLgoKICAgICAgRV9Qcm90ZWN0ZWRfT2JqZWN0LAogICAgICAtLSAgQSBwcm90ZWN0ZWQg b2JqZWN0LCBjcmVhdGVkIGJ5IGFuIG9iamVjdCBkZWNsYXJhdGlvbiB0aGF0IGRlY2xhcmVzCiAg ICAgIC0tICBhbiBvYmplY3Qgb2YgYSBwcm90ZWN0ZWQgdHlwZS4KCiAgICAgIEVfUHJvdGVjdGVk X0JvZHksCiAgICAgIC0tICBBIHByb3RlY3RlZCBib2R5LiBUaGlzIGVudGl0eSBzZXJ2ZXMgYWxt b3N0IG5vIGZ1bmN0aW9uLCBzaW5jZSBhbGwKICAgICAgLS0gIHNlbWFudGljIGFuYWx5c2lzIHVz ZXMgdGhlIHByb3RlY3RlZCBlbnRpdHkgKEVfUHJvdGVjdGVkX1R5cGUpCgogICAgICBFX1Rhc2tf Qm9keSwKICAgICAgLS0gIEEgdGFzayBib2R5LiBUaGlzIGVudGl0eSBzZXJ2ZXMgYWxtb3N0IG5v IGZ1bmN0aW9uLCBzaW5jZSBhbGwKICAgICAgLS0gIHNlbWFudGljIGFuYWx5c2lzIHVzZXMgdGhl IHByb3RlY3RlZCBlbnRpdHkgKEVfVGFza19UeXBlKS4KCiAgICAgIEVfU3VicHJvZ3JhbV9Cb2R5 CiAgICAgIC0tICBBIHN1YnByb2dyYW0gYm9keS4gVXNlZCB3aGVuIGEgc3VicHJvZ3JhbSBoYXMg YSBzZXBhcmF0ZSBkZWNsYXJhdGlvbgogICAgICAtLSAgdG8gcmVwcmVzZW50IHRoZSBlbnRpdHkg Zm9yIHRoZSBib2R5LiBUaGlzIGVudGl0eSBzZXJ2ZXMgYWxtb3N0IG5vCiAgICAgIC0tICBmdW5j dGlvbiwgc2luY2UgYWxsIHNlbWFudGljIGFuYWx5c2lzIHVzZXMgdGhlIHN1YnByb2dyYW0gZW50 aXR5CiAgICAgIC0tICBmb3IgdGhlIGRlY2xhcmF0aW9uIChFX0Z1bmN0aW9uIG9yIEVfUHJvY2Vk dXJlKS4KICAgKTsKCiAgIGZvciBFbnRpdHlfS2luZCdTaXplIHVzZSA4OwogICAtLSAgVGhlIGRh dGEgc3RydWN0dXJlcyBpbiBBdHJlZSBhc3N1bWUgdGhpcyEKCiAgIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIFN1YnR5cGUgRGVjbGFyYXRpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGFib3ZlIGVudGl0aWVzIGFyZSBhcnJhbmdlZCBzbyB0 aGF0IHRoZXkgY2FuIGJlIGNvbnZlbmllbnRseQogICAtLSAgZ3JvdXBlZCBpbnRvIHN1YnR5cGUg cmFuZ2VzLiBOb3RlIHRoYXQgZm9yIGVhY2ggb2YgdGhlIHh4eF9LSW5kCiAgIC0tICByYW5nZXMg ZGVmaW5lZCBiZWxvdywgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIElzX3h4eC4uIHByZWRpY2F0 ZQogICAtLSAgd2hpY2ggaXMgdG8gYmUgdXNlZCBpbiBwcmVmZXJlbmNlIHRvIGRpcmVjdCByYW5n ZSB0ZXN0cyB1c2luZyB0aGUKICAgLS0gIHN1YnR5cGUgbmFtZS4gSG93ZXZlciwgdGhlIHN1YnR5 cGUgbmFtZXMgYXJlIGF2YWlsYWJsZSBmb3IgZGlyZWN0CiAgIC0tICB1c2UsIGUuZy4gYXMgY2hv aWNlcyBpbiBjYXNlIHN0YXRlbWVudHMuCgogICBzdWJ0eXBlIEFjY2Vzc19LaW5kICAgICAgICAg ICAgICAgICBpcyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9BY2Nlc3NfVHlwZSAuLgogICAt LSAgRV9BY2Nlc3NfU3VidHlwZQogICAtLSAgRV9BY2Nlc3NfQXR0cmlidXRlX1R5cGUKICAgLS0g IEVfQWxsb2NhdG9yX1R5cGUKICAgLS0gIEVfR2VuZXJhbF9BY2Nlc3NfVHlwZQogICAtLSAgRV9B Y2Nlc3NfU3VicHJvZ3JhbV9UeXBlCiAgIC0tICBFX0FjY2Vzc19Qcm90ZWN0ZWRfU3VicHJvZ3Jh bV9UeXBlCiAgICAgICBFX0Fub255bW91c19BY2Nlc3NfVHlwZTsKCiAgIHN1YnR5cGUgQXJyYXlf S2luZCAgICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX0FycmF5 X1R5cGUgLi4KICAgLS0gIEVfQXJyYXlfU3VidHlwZQogICAtLSAgRV9TdHJpbmdfVHlwZQogICAt LSAgRV9TdHJpbmdfU3VidHlwZQogICAgICAgRV9TdHJpbmdfTGl0ZXJhbF9TdWJ0eXBlOwoKICAg c3VidHlwZSBDbGFzc19XaWRlX0tpbmQgICAgICAgICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UK ICAgICAgIEVfQ2xhc3NfV2lkZV9UeXBlIC4uCiAgICAgICBFX0NsYXNzX1dpZGVfU3VidHlwZTsK CiAgIHN1YnR5cGUgQ29tcG9zaXRlX0tpbmQgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJh bmdlCiAgICAgICBFX0FycmF5X1R5cGUgLi4KICAgLS0gIEVfQXJyYXlfU3VidHlwZQogICAtLSAg RV9TdHJpbmdfVHlwZQogICAtLSAgRV9TdHJpbmdfU3VidHlwZQogICAtLSAgRV9TdHJpbmdfTGl0 ZXJhbF9TdWJ0eXBlCiAgIC0tICBFX0NsYXNzX1dpZGVfVHlwZQogICAtLSAgRV9DbGFzc19XaWRl X1N1YnR5cGUKICAgLS0gIEVfUmVjb3JkX1R5cGUKICAgLS0gIEVfUmVjb3JkX1N1YnR5cGUKICAg LS0gIEVfUmVjb3JkX1R5cGVfV2l0aF9Qcml2YXRlCiAgIC0tICBFX1JlY29yZF9TdWJ0eXBlX1dp dGhfUHJpdmF0ZQogICAtLSAgRV9Qcml2YXRlX1R5cGUKICAgLS0gIEVfUHJpdmF0ZV9TdWJ0eXBl CiAgIC0tICBFX0xpbWl0ZWRfUHJpdmF0ZV9UeXBlCiAgIC0tICBFX0xpbWl0ZWRfUHJpdmF0ZV9T dWJ0eXBlCiAgIC0tICBFX0luY29tcGxldGVfVHlwZQogICAtLSAgRV9UYXNrX1R5cGUKICAgLS0g IEVfVGFza19TdWJ0eXBlLAogICAtLSAgRV9Qcm90ZWN0ZWRfVHlwZSwKICAgICAgIEVfUHJvdGVj dGVkX1N1YnR5cGU7CgogICBzdWJ0eXBlIENvbmN1cnJlbnRfS2luZCAgICAgICAgICAgICBpcyBF bnRpdHlfS2luZCByYW5nZQogICAgICAgRV9UYXNrX1R5cGUgLi4KICAgLS0gIEVfVGFza19TdWJ0 eXBlLAogICAtLSAgRV9Qcm90ZWN0ZWRfVHlwZSwKICAgICAgIEVfUHJvdGVjdGVkX1N1YnR5cGU7 CgogICBzdWJ0eXBlIENvbmN1cnJlbnRfQm9keV9LaW5kICAgICAgICBpcyBFbnRpdHlfS2luZCBy YW5nZQogICAgICAgRV9Qcm90ZWN0ZWRfQm9keSAuLgogICAgICAgRV9UYXNrX0JvZHk7CgogICBz dWJ0eXBlIERlY2ltYWxfRml4ZWRfUG9pbnRfS2luZCAgICBpcyBFbnRpdHlfS2luZCByYW5nZQog ICAgICAgRV9EZWNpbWFsX0ZpeGVkX1BvaW50X1R5cGUgLi4KICAgICAgIEVfRGVjaW1hbF9GaXhl ZF9Qb2ludF9TdWJ0eXBlOwoKICAgc3VidHlwZSBEaWdpdHNfS2luZCAgICAgICAgICAgICAgICAg aXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfRGVjaW1hbF9GaXhlZF9Qb2ludF9UeXBlIC4u CiAgIC0tICBFX0RlY2ltYWxfRml4ZWRfUG9pbnRfU3VidHlwZQogICAtLSAgRV9GbG9hdGluZ19Q b2ludF9UeXBlCiAgICAgICBFX0Zsb2F0aW5nX1BvaW50X1N1YnR5cGU7CgogICBzdWJ0eXBlIERp c2NyZXRlX0tpbmQgICAgICAgICAgICAgICBpcyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9F bnVtZXJhdGlvbl9UeXBlIC4uCiAgIC0tICBFX0VudW1lcmF0aW9uX1N1YnR5cGUKICAgLS0gIEVf U2lnbmVkX0ludGVnZXJfVHlwZQogICAtLSAgRV9TaWduZWRfSW50ZWdlcl9TdWJ0eXBlCiAgIC0t ICBFX01vZHVsYXJfSW50ZWdlcl9UeXBlCiAgICAgICBFX01vZHVsYXJfSW50ZWdlcl9TdWJ0eXBl OwoKICAgc3VidHlwZSBEaXNjcmV0ZV9Pcl9GaXhlZF9Qb2ludF9LaW5kIGlzIEVudGl0eV9LaW5k IHJhbmdlCiAgICAgICBFX0VudW1lcmF0aW9uX1R5cGUgLi4KICAgLS0gIEVfRW51bWVyYXRpb25f U3VidHlwZQogICAtLSAgRV9TaWduZWRfSW50ZWdlcl9UeXBlCiAgIC0tICBFX1NpZ25lZF9JbnRl Z2VyX1N1YnR5cGUKICAgLS0gIEVfTW9kdWxhcl9JbnRlZ2VyX1R5cGUKICAgLS0gIEVfTW9kdWxh cl9JbnRlZ2VyX1N1YnR5cGUKICAgLS0gIEVfT3JkaW5hcnlfRml4ZWRfUG9pbnRfVHlwZQogICAt LSAgRV9PcmRpbmFyeV9GaXhlZF9Qb2ludF9TdWJ0eXBlCiAgIC0tICBFX0RlY2ltYWxfRml4ZWRf UG9pbnRfVHlwZQogICAgICAgRV9EZWNpbWFsX0ZpeGVkX1BvaW50X1N1YnR5cGU7CgogICBzdWJ0 eXBlIEVsZW1lbnRhcnlfS2luZCAgICAgICAgICAgICBpcyBFbnRpdHlfS2luZCByYW5nZQogICAg ICAgRV9FbnVtZXJhdGlvbl9UeXBlIC4uCiAgIC0tICBFX0VudW1lcmF0aW9uX1N1YnR5cGUKICAg LS0gIEVfU2lnbmVkX0ludGVnZXJfVHlwZQogICAtLSAgRV9TaWduZWRfSW50ZWdlcl9TdWJ0eXBl CiAgIC0tICBFX01vZHVsYXJfSW50ZWdlcl9UeXBlCiAgIC0tICBFX01vZHVsYXJfSW50ZWdlcl9T dWJ0eXBlCiAgIC0tICBFX09yZGluYXJ5X0ZpeGVkX1BvaW50X1R5cGUKICAgLS0gIEVfT3JkaW5h cnlfRml4ZWRfUG9pbnRfU3VidHlwZQogICAtLSAgRV9EZWNpbWFsX0ZpeGVkX1BvaW50X1R5cGUK ICAgLS0gIEVfRGVjaW1hbF9GaXhlZF9Qb2ludF9TdWJ0eXBlCiAgIC0tICBFX0Zsb2F0aW5nX1Bv aW50X1R5cGUKICAgLS0gIEVfRmxvYXRpbmdfUG9pbnRfU3VidHlwZQogICAtLSAgRV9BY2Nlc3Nf VHlwZQogICAtLSAgRV9BY2Nlc3NfU3VidHlwZQogICAtLSAgRV9BY2Nlc3NfQXR0cmlidXRlX1R5 cGUKICAgLS0gIEVfQWxsb2NhdG9yX1R5cGUKICAgLS0gIEVfR2VuZXJhbF9BY2Nlc3NfVHlwZQog ICAtLSAgRV9BY2Nlc3NfU3VicHJvZ3JhbV9UeXBlCiAgIC0tICBFX0FjY2Vzc19Qcm90ZWN0ZWRf U3VicHJvZ3JhbV9UeXBlCiAgICAgICBFX0Fub255bW91c19BY2Nlc3NfVHlwZTsKCiAgIHN1YnR5 cGUgRW51bWVyYXRpb25fS2luZCAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAg ICBFX0VudW1lcmF0aW9uX1R5cGUgLi4KICAgICAgIEVfRW51bWVyYXRpb25fU3VidHlwZTsKCiAg IHN1YnR5cGUgRW50cnlfS2luZCAgICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdl CiAgICAgICBFX0VudHJ5IC4uCiAgICAgICBFX0VudHJ5X0ZhbWlseTsKCiAgIHN1YnR5cGUgRml4 ZWRfUG9pbnRfS2luZCAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX09y ZGluYXJ5X0ZpeGVkX1BvaW50X1R5cGUgLi4KICAgLS0gIEVfT3JkaW5hcnlfRml4ZWRfUG9pbnRf U3VidHlwZQogICAtLSAgRV9EZWNpbWFsX0ZpeGVkX1BvaW50X1R5cGUKICAgICAgIEVfRGVjaW1h bF9GaXhlZF9Qb2ludF9TdWJ0eXBlOwoKICAgc3VidHlwZSBGbG9hdF9LaW5kICAgICAgICAgICAg ICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfRmxvYXRpbmdfUG9pbnRfVHlwZSAu LgogICAgICAgRV9GbG9hdGluZ19Qb2ludF9TdWJ0eXBlOwoKICAgc3VidHlwZSBGb3JtYWxfS2lu ZCAgICAgICAgICAgICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfSW5fUGFyYW1l dGVyIC4uCiAgIC0tICBFX091dF9QYXJhbWV0ZXIKICAgICAgIEVfSW5fT3V0X1BhcmFtZXRlcjsK CiAgIHN1YnR5cGUgR2VuZXJpY19Vbml0X0tpbmQgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJh bmdlCiAgICAgICBFX0dlbmVyaWNfRnVuY3Rpb24gLi4KICAgLS0gIEVfR2VuZXJpY19QYWNrYWdl LAogICAgICAgRV9HZW5lcmljX1Byb2NlZHVyZTsKCiAgIHN1YnR5cGUgSW5jb21wbGV0ZV9Pcl9Q cml2YXRlX0tpbmQgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX1JlY29yZF9UeXBlX1dp dGhfUHJpdmF0ZSAuLgogICAtLSAgRV9SZWNvcmRfU3VidHlwZV9XaXRoX1ByaXZhdGUKICAgLS0g IEVfUHJpdmF0ZV9UeXBlCiAgIC0tICBFX1ByaXZhdGVfU3VidHlwZQogICAtLSAgRV9MaW1pdGVk X1ByaXZhdGVfVHlwZQogICAtLSAgRV9MaW1pdGVkX1ByaXZhdGVfU3VidHlwZQogICAgICAgRV9J bmNvbXBsZXRlX1R5cGU7CgogICBzdWJ0eXBlIEludGVnZXJfS2luZCAgICAgICAgICAgICAgICBp cyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9TaWduZWRfSW50ZWdlcl9UeXBlIC4uCiAgIC0t ICBFX1NpZ25lZF9JbnRlZ2VyX1N1YnR5cGUKICAgLS0gIEVfTW9kdWxhcl9JbnRlZ2VyX1R5cGUK ICAgICAgIEVfTW9kdWxhcl9JbnRlZ2VyX1N1YnR5cGU7CgogICBzdWJ0eXBlIE1vZHVsYXJfSW50 ZWdlcl9LaW5kICAgICAgICBpcyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9Nb2R1bGFyX0lu dGVnZXJfVHlwZSAuLgogICAgICAgRV9Nb2R1bGFyX0ludGVnZXJfU3VidHlwZTsKCiAgIHN1YnR5 cGUgTmFtZWRfS2luZCAgICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAg ICBFX05hbWVkX0ludGVnZXIgLi4KICAgICAgIEVfTmFtZWRfUmVhbDsKCiAgIHN1YnR5cGUgTnVt ZXJpY19LaW5kICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX1Np Z25lZF9JbnRlZ2VyX1R5cGUgLi4KICAgLS0gIEVfU2lnbmVkX0ludGVnZXJfU3VidHlwZQogICAt LSAgRV9Nb2R1bGFyX0ludGVnZXJfVHlwZQogICAtLSAgRV9Nb2R1bGFyX0ludGVnZXJfU3VidHlw ZQogICAtLSAgRV9PcmRpbmFyeV9GaXhlZF9Qb2ludF9UeXBlCiAgIC0tICBFX09yZGluYXJ5X0Zp eGVkX1BvaW50X1N1YnR5cGUKICAgLS0gIEVfRGVjaW1hbF9GaXhlZF9Qb2ludF9UeXBlCiAgIC0t ICBFX0RlY2ltYWxfRml4ZWRfUG9pbnRfU3VidHlwZQogICAtLSAgRV9GbG9hdGluZ19Qb2ludF9U eXBlCiAgICAgICBFX0Zsb2F0aW5nX1BvaW50X1N1YnR5cGU7CgogICBzdWJ0eXBlIE9iamVjdF9L aW5kICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX1ZhcmlhYmxl IC4uCiAgIC0tICBFX0NvbXBvbmVudAogICAtLSAgRV9Db25zdGFudAogICAtLSAgRV9EaXNjcmlt aW5hbnQKICAgLS0gIEVfTG9vcF9QYXJhbWV0ZXIKICAgLS0gIEVfSW5fUGFyYW1ldGVyCiAgIC0t ICBFX091dF9QYXJhbWV0ZXIKICAgLS0gIEVfSW5fT3V0X1BhcmFtZXRlcgogICAtLSAgRV9HZW5l cmljX0luX091dF9QYXJhbWV0ZXIKICAgICAgIEVfR2VuZXJpY19Jbl9QYXJhbWV0ZXI7CgogICBz dWJ0eXBlIE9yZGluYXJ5X0ZpeGVkX1BvaW50X0tpbmQgICBpcyBFbnRpdHlfS2luZCByYW5nZQog ICAgICAgRV9PcmRpbmFyeV9GaXhlZF9Qb2ludF9UeXBlIC4uCiAgICAgICBFX09yZGluYXJ5X0Zp eGVkX1BvaW50X1N1YnR5cGU7CgogICBzdWJ0eXBlIE92ZXJsb2FkYWJsZV9LaW5kICAgICAgICAg ICBpcyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9FbnVtZXJhdGlvbl9MaXRlcmFsIC4uCiAg IC0tICBFX0Z1bmN0aW9uCiAgIC0tICBFX09wZXJhdG9yCiAgIC0tICBFX1Byb2NlZHVyZQogICAg ICAgRV9FbnRyeTsKCiAgIHN1YnR5cGUgUHJpdmF0ZV9LaW5kICAgICAgICAgICAgICAgIGlzIEVu dGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX1JlY29yZF9UeXBlX1dpdGhfUHJpdmF0ZSAuLgogICAt LSAgRV9SZWNvcmRfU3VidHlwZV9XaXRoX1ByaXZhdGUKICAgLS0gIEVfUHJpdmF0ZV9UeXBlCiAg IC0tICBFX1ByaXZhdGVfU3VidHlwZQogICAtLSAgRV9MaW1pdGVkX1ByaXZhdGVfVHlwZQogICAg ICAgRV9MaW1pdGVkX1ByaXZhdGVfU3VidHlwZTsKCiAgIHN1YnR5cGUgUHJvdGVjdGVkX0tpbmQg ICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdlCiAgICAgICBFX1Byb3RlY3RlZF9UeXBl IC4uCiAgICAgICBFX1Byb3RlY3RlZF9TdWJ0eXBlOwoKICAgc3VidHlwZSBSZWFsX0tpbmQgICAg ICAgICAgICAgICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfT3JkaW5hcnlfRml4 ZWRfUG9pbnRfVHlwZSAuLgogICAtLSAgRV9PcmRpbmFyeV9GaXhlZF9Qb2ludF9TdWJ0eXBlCiAg IC0tICBFX0RlY2ltYWxfRml4ZWRfUG9pbnRfVHlwZQogICAtLSAgRV9EZWNpbWFsX0ZpeGVkX1Bv aW50X1N1YnR5cGUKICAgLS0gIEVfRmxvYXRpbmdfUG9pbnRfVHlwZQogICAgICAgRV9GbG9hdGlu Z19Qb2ludF9TdWJ0eXBlOwoKICAgc3VidHlwZSBSZWNvcmRfS2luZCAgICAgICAgICAgICAgICAg aXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfQ2xhc3NfV2lkZV9UeXBlIC4uCiAgIC0tICBF X0NsYXNzX1dpZGVfU3VidHlwZQogICAtLSAgRV9SZWNvcmRfVHlwZQogICAtLSAgRV9SZWNvcmRf U3VidHlwZQogICAtLSAgRV9SZWNvcmRfVHlwZV9XaXRoX1ByaXZhdGUKICAgICAgIEVfUmVjb3Jk X1N1YnR5cGVfV2l0aF9Qcml2YXRlOwoKICAgc3VidHlwZSBTY2FsYXJfS2luZCAgICAgICAgICAg ICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVfRW51bWVyYXRpb25fVHlwZSAuLgog ICAtLSAgRV9FbnVtZXJhdGlvbl9TdWJ0eXBlCiAgIC0tICBFX1NpZ25lZF9JbnRlZ2VyX1R5cGUK ICAgLS0gIEVfU2lnbmVkX0ludGVnZXJfU3VidHlwZQogICAtLSAgRV9Nb2R1bGFyX0ludGVnZXJf VHlwZQogICAtLSAgRV9Nb2R1bGFyX0ludGVnZXJfU3VidHlwZQogICAtLSAgRV9PcmRpbmFyeV9G aXhlZF9Qb2ludF9UeXBlCiAgIC0tICBFX09yZGluYXJ5X0ZpeGVkX1BvaW50X1N1YnR5cGUKICAg LS0gIEVfRGVjaW1hbF9GaXhlZF9Qb2ludF9UeXBlCiAgIC0tICBFX0RlY2ltYWxfRml4ZWRfUG9p bnRfU3VidHlwZQogICAtLSAgRV9GbG9hdGluZ19Qb2ludF9UeXBlCiAgICAgICBFX0Zsb2F0aW5n X1BvaW50X1N1YnR5cGU7CgogICBzdWJ0eXBlIFN0cmluZ19LaW5kICAgICAgICAgICAgICAgICBp cyBFbnRpdHlfS2luZCByYW5nZQogICAgICAgRV9TdHJpbmdfVHlwZSAuLgogICAtLSAgRV9TdHJp bmdfU3VidHlwZQogICAgICAgRV9TdHJpbmdfTGl0ZXJhbF9TdWJ0eXBlOwoKICAgc3VidHlwZSBT dWJwcm9ncmFtX0tpbmQgICAgICAgICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAgICAgIEVf RnVuY3Rpb24gLi4KICAgLS0gIEVfT3BlcmF0b3IKICAgICAgIEVfUHJvY2VkdXJlOwoKICAgc3Vi dHlwZSBTaWduZWRfSW50ZWdlcl9LaW5kICAgICAgICAgaXMgRW50aXR5X0tpbmQgcmFuZ2UKICAg ICAgIEVfU2lnbmVkX0ludGVnZXJfVHlwZSAuLgogICAgICAgRV9TaWduZWRfSW50ZWdlcl9TdWJ0 eXBlOwoKICAgc3VidHlwZSBUYXNrX0tpbmQgICAgICAgICAgICAgICAgICAgaXMgRW50aXR5X0tp bmQgcmFuZ2UKICAgICAgIEVfVGFza19UeXBlIC4uCiAgICAgICBFX1Rhc2tfU3VidHlwZTsKCiAg IHN1YnR5cGUgVHlwZV9LaW5kICAgICAgICAgICAgICAgICAgIGlzIEVudGl0eV9LaW5kIHJhbmdl CiAgICAgICBFX0VudW1lcmF0aW9uX1R5cGUgLi4KICAgLS0gIEVfRW51bWVyYXRpb25fU3VidHlw ZQogICAtLSAgRV9TaWduZWRfSW50ZWdlcl9UeXBlCiAgIC0tICBFX1NpZ25lZF9JbnRlZ2VyX1N1 YnR5cGUKICAgLS0gIEVfTW9kdWxhcl9JbnRlZ2VyX1R5cGUKICAgLS0gIEVfTW9kdWxhcl9JbnRl Z2VyX1N1YnR5cGUKICAgLS0gIEVfT3JkaW5hcnlfRml4ZWRfUG9pbnRfVHlwZQogICAtLSAgRV9P cmRpbmFyeV9GaXhlZF9Qb2ludF9TdWJ0eXBlCiAgIC0tICBFX0RlY2ltYWxfRml4ZWRfUG9pbnRf VHlwZQogICAtLSAgRV9EZWNpbWFsX0ZpeGVkX1BvaW50X1N1YnR5cGUKICAgLS0gIEVfRmxvYXRp bmdfUG9pbnRfVHlwZQogICAtLSAgRV9GbG9hdGluZ19Qb2ludF9TdWJ0eXBlCiAgIC0tICBFX0Fj Y2Vzc19UeXBlCiAgIC0tICBFX0FjY2Vzc19TdWJ0eXBlCiAgIC0tICBFX0FjY2Vzc19BdHRyaWJ1 dGVfVHlwZQogICAtLSAgRV9BbGxvY2F0b3JfVHlwZSwKICAgLS0gIEVfR2VuZXJhbF9BY2Nlc3Nf VHlwZQogICAtLSAgRV9BY2Nlc3NfU3VicHJvZ3JhbV9UeXBlLAogICAtLSAgRV9BY2Nlc3NfUHJv dGVjdGVkX1N1YnByb2dyYW1fVHlwZQogICAtLSAgRV9Bbm9ueW1vdXNfQWNjZXNzX1R5cGUKICAg LS0gIEVfQXJyYXlfVHlwZQogICAtLSAgRV9BcnJheV9TdWJ0eXBlCiAgIC0tICBFX1N0cmluZ19U eXBlCiAgIC0tICBFX1N0cmluZ19TdWJ0eXBlCiAgIC0tICBFX1N0cmluZ19MaXRlcmFsX1N1YnR5 cGUKICAgLS0gIEVfQ2xhc3NfV2lkZV9TdWJ0eXBlCiAgIC0tICBFX0NsYXNzX1dpZGVfVHlwZQog ICAtLSAgRV9SZWNvcmRfVHlwZQogICAtLSAgRV9SZWNvcmRfU3VidHlwZQogICAtLSAgRV9SZWNv cmRfVHlwZV9XaXRoX1ByaXZhdGUKICAgLS0gIEVfUmVjb3JkX1N1YnR5cGVfV2l0aF9Qcml2YXRl CiAgIC0tICBFX1ByaXZhdGVfVHlwZQogICAtLSAgRV9Qcml2YXRlX1N1YnR5cGUKICAgLS0gIEVf TGltaXRlZF9Qcml2YXRlX1R5cGUKICAgLS0gIEVfTGltaXRlZF9Qcml2YXRlX1N1YnR5cGUKICAg LS0gIEVfSW5jb21wbGV0ZV9UeXBlCiAgIC0tICBFX1Rhc2tfVHlwZQogICAtLSAgRV9UYXNrX1N1 YnR5cGUKICAgLS0gIEVfUHJvdGVjdGVkX1R5cGUKICAgLS0gIEVfUHJvdGVjdGVkX1N1YnR5cGUK ICAgLS0gIEVfRXhjZXB0aW9uX1R5cGUKICAgICAgIEVfU3VicHJvZ3JhbV9UeXBlOwoKICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gRGVzY3JpcHRpb24gb2YgRGVmaW5lZCBBdHRyaWJ1dGVzIGZvciBFbnRpdHlfS2luZHMgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KCiAgIC0tICBGb3IgZWFjaCBlbnVtZXJhdGlvbiB2YWx1ZSBkZWZpbmVkIGluIEVudGl0eV9L aW5kIHdlIGxpc3QgYWxsIHRoZQogICAtLSAgYXR0cmlidXRlcyBkZWZpbmVkIGluIEVpbmZvIHdo aWNoIGNhbiBsZWdhbGx5IGJlIGFwcGxpZWQgdG8gYW4gZW50aXR5CiAgIC0tICBvZiB0aGF0IGtp bmQuIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgYXR0cmlidXRlIGZ1bmN0aW9ucyAoYW5kIGZv cgogICAtLSAgbm9uLXN5bnRoZXNpemVkIGF0dHJpYnV0ZXMsIG9yIHRoZSBjb3JyZXNwb25kaW5n IHNldCBwcm9jZWR1cmVzKSBhcmUKICAgLS0gIGluIHRoZSBFaW5mbyBib2R5LgoKICAgLS0gIFRo ZSBmb2xsb3dpbmcgYXR0cmlidXRlcyBhcHBseSB0byBhbGwgZW50aXRpZXMKCiAgIC0tICAgIEVr aW5kICAgICAgICAgICAgICAgICAgICAgICAgIChFa2luZCkKCiAgIC0tICAgIENoYXJzICAgICAg ICAgICAgICAgICAgICAgICAgIChOYW1lMSkKICAgLS0gICAgTmV4dF9FbnRpdHkgICAgICAgICAg ICAgICAgICAgKE5vZGUyKQogICAtLSAgICBTY29wZSAgICAgICAgICAgICAgICAgICAgICAgICAo Tm9kZTMpCiAgIC0tICAgIEhvbW9ueW0gICAgICAgICAgICAgICAgICAgICAgIChOb2RlNCkKICAg LS0gICAgRXR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgKE5vZGU1KQogICAtLSAgICBGaXJz dF9SZXBfSXRlbSAgICAgICAgICAgICAgICAoTm9kZTYpCiAgIC0tICAgIEZyZWV6ZV9Ob2RlICAg ICAgICAgICAgICAgICAgIChOb2RlNykKCiAgIC0tICAgIEFkZHJlc3NfVGFrZW4gICAgICAgICAg ICAgICAgIChGbGFnMTA0KQogICAtLSAgICBEZWJ1Z19JbmZvX09mZiAgICAgICAgICAgICAgICAo RmxhZzE2NikKICAgLS0gICAgSGFzX0NvbnZlbnRpb25fUHJhZ21hICAgICAgICAgKEZsYWcxMTkp CiAgIC0tICAgIEhhc19EZWxheWVkX0ZyZWV6ZSAgICAgICAgICAgIChGbGFnMTgpCiAgIC0tICAg IEhhc19GdWxseV9RdWFsaWZpZWRfTmFtZSAgICAgIChGbGFnMTczKQogICAtLSAgICBIYXNfR2ln aV9SZXBfSXRlbSAgICAgICAgICAgICAoRmxhZzgyKQogICAtLSAgICBIYXNfSG9tb255bSAgICAg ICAgICAgICAgICAgICAoRmxhZzU2KQogICAtLSAgICBIYXNfUHJhZ21hX0VsYWJvcmF0ZV9Cb2R5 ICAgICAoRmxhZzE1MCkKICAgLS0gICAgSGFzX1ByYWdtYV9JbmxpbmUgICAgICAgICAgICAgKEZs YWcxNTcpCiAgIC0tICAgIEhhc19Qcml2YXRlX0RlY2xhcmF0aW9uICAgICAgIChGbGFnMTU1KQog ICAtLSAgICBIYXNfUXVhbGlmaWVkX05hbWUgICAgICAgICAgICAoRmxhZzE2MSkKICAgLS0gICAg SGFzX1Vua25vd25fRGlzY3JpbWluYW50cyAgICAgKEZsYWc3MikKICAgLS0gICAgSXNfQml0X1Bh Y2tlZF9BcnJheSAgICAgICAgICAgKEZsYWcxMjIpCiAgIC0tICAgIElzX0NoaWxkX1VuaXQgICAg ICAgICAgICAgICAgIChGbGFnNzMpCiAgIC0tICAgIElzX0NvbXBpbGF0aW9uX1VuaXQgICAgICAg ICAgIChGbGFnMTQ5KQogICAtLSAgICBJc19Db21wbGV0ZWx5X0hpZGRlbiAgICAgICAgICAoRmxh ZzEwMykKICAgLS0gICAgSXNfRGlzY3JpbV9TT19GdW5jdGlvbiAgICAgICAgKEZsYWcxNzYpCiAg IC0tICAgIElzX0Rpc3BhdGNoaW5nX09wZXJhdGlvbiAgICAgIChGbGFnNikKICAgLS0gICAgSXNf RXhwb3J0ZWQgICAgICAgICAgICAgICAgICAgKEZsYWc5OSkKICAgLS0gICAgSXNfRmlyc3RfU3Vi dHlwZSAgICAgICAgICAgICAgKEZsYWc3MCkKICAgLS0gICAgSXNfRm9ybWFsX1N1YnByb2dyYW0g ICAgICAgICAgKEZsYWcxMTEpCiAgIC0tICAgIElzX0dlbmVyaWNfSW5zdGFuY2UgICAgICAgICAg IChGbGFnMTMwKQogICAtLSAgICBJc19IaWRkZW4gICAgICAgICAgICAgICAgICAgICAoRmxhZzU3 KQogICAtLSAgICBJc19IaWRkZW5fT3Blbl9TY29wZSAgICAgICAgICAoRmxhZzE3MSkKICAgLS0g ICAgSXNfSW1tZWRpYXRlbHlfVmlzaWJsZSAgICAgICAgKEZsYWc3KQogICAtLSAgICBJc19JbXBv cnRlZCAgICAgICAgICAgICAgICAgICAoRmxhZzI0KQogICAtLSAgICBJc19JbmxpbmVkICAgICAg ICAgICAgICAgICAgICAoRmxhZzExKQogICAtLSAgICBJc19JbnRlcm5hbCAgICAgICAgICAgICAg ICAgICAoRmxhZzE3KQogICAtLSAgICBJc19JdHlwZSAgICAgICAgICAgICAgICAgICAgICAoRmxh ZzkxKQogICAtLSAgICBJc19Lbm93bl9WYWxpZCAgICAgICAgICAgICAgICAoRmxhZzE3MCkKICAg LS0gICAgSXNfTGltaXRlZF9Db21wb3NpdGUgICAgICAgICAgKEZsYWcxMDYpCiAgIC0tICAgIElz X0xpbWl0ZWRfUmVjb3JkICAgICAgICAgICAgIChGbGFnMjUpCiAgIC0tICAgIElzX1BhY2thZ2Vf Qm9keV9FbnRpdHkgICAgICAgIChGbGFnMTYwKQogICAtLSAgICBJc19QYWNrZWRfQXJyYXlfVHlw ZSAgICAgICAgICAoRmxhZzEzOCkKICAgLS0gICAgSXNfUG90ZW50aWFsbHlfVXNlX1Zpc2libGUg ICAgKEZsYWc5KQogICAtLSAgICBJc19QcmVlbGFib3JhdGVkICAgICAgICAgICAgICAoRmxhZzU5 KQogICAtLSAgICBJc19QdWJsaWMgICAgICAgICAgICAgICAgICAgICAoRmxhZzEwKQogICAtLSAg ICBJc19QdXJlICAgICAgICAgICAgICAgICAgICAgICAoRmxhZzQ0KQogICAtLSAgICBJc19SZW1v dGVfQ2FsbF9JbnRlcmZhY2UgICAgICAoRmxhZzYyKQogICAtLSAgICBJc19SZW1vdGVfVHlwZXMg ICAgICAgICAgICAgICAoRmxhZzYxKQogICAtLSAgICBJc19TaGFyZWRfUGFzc2l2ZSAgICAgICAg ICAgICAoRmxhZzYwKQogICAtLSAgICBJc19TdGF0aWNhbGx5X0FsbG9jYXRlZCAgICAgICAoRmxh ZzI4KQogICAtLSAgICBJc19VbmNoZWNrZWRfVW5pb24gICAgICAgICAgICAoRmxhZzExNykKICAg LS0gICAgSXNfVk1TX0V4Y2VwdGlvbiAgICAgICAgICAgICAgKEZsYWcxMzMpCiAgIC0tICAgIE1h dGVyaWFsaXplX0VudGl0eSAgICAgICAgICAgIChGbGFnMTY4KQogICAtLSAgICBOZWVkc19EZWJ1 Z19JbmZvICAgICAgICAgICAgICAoRmxhZzE0NykKICAgLS0gICAgUmVmZXJlbmNlZCAgICAgICAg ICAgICAgICAgICAgKEZsYWcxNTYpCiAgIC0tICAgIFN1cHByZXNzX0FjY2Vzc19DaGVja3MgICAg ICAgIChGbGFnMzEpCiAgIC0tICAgIFN1cHByZXNzX0FjY2Vzc2liaWxpdHlfQ2hlY2tzIChGbGFn MzIpCiAgIC0tICAgIFN1cHByZXNzX0Rpc2NyaW1pbmFudF9DaGVja3MgIChGbGFnMzMpCiAgIC0t ICAgIFN1cHByZXNzX0RpdmlzaW9uX0NoZWNrcyAgICAgIChGbGFnMzQpCiAgIC0tICAgIFN1cHBy ZXNzX0VsYWJvcmF0aW9uX0NoZWNrcyAgIChGbGFnMzUpCiAgIC0tICAgIFN1cHByZXNzX0VsYWJv cmF0aW9uX1dhcm5pbmdzIChGbGFnMTQ4KQogICAtLSAgICBTdXBwcmVzc19JbmRleF9DaGVja3Mg ICAgICAgICAoRmxhZzM2KQogICAtLSAgICBTdXBwcmVzc19MZW5ndGhfQ2hlY2tzICAgICAgICAo RmxhZzM3KQogICAtLSAgICBTdXBwcmVzc19PdmVyZmxvd19DaGVja3MgICAgICAoRmxhZzM4KQog ICAtLSAgICBTdXBwcmVzc19SYW5nZV9DaGVja3MgICAgICAgICAoRmxhZzM5KQogICAtLSAgICBT dXBwcmVzc19TdG9yYWdlX0NoZWNrcyAgICAgICAoRmxhZzQwKQogICAtLSAgICBTdXBwcmVzc19T dHlsZV9DaGVja3MgICAgICAgICAoRmxhZzE2NSkKICAgLS0gICAgU3VwcHJlc3NfVGFnX0NoZWNr cyAgICAgICAgICAgKEZsYWc0MSkKCiAgIC0tICAgIERlY2xhcmF0aW9uX05vZGUgICAgICAgICAg ICAgIChzeW50aCkKICAgLS0gICAgRW5jbG9zaW5nX0R5bmFtaWNfU2NvcGUgICAgICAgKHN5bnRo KQogICAtLSAgICBIYXNfRm9yZWlnbl9Db252ZW50aW9uICAgICAgICAoc3ludGgpCiAgIC0tICAg IElzX0R5bmFtaWNfU2NvcGUgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgSXNfR2VuZXJp Y19Vbml0ICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBJc19MaW1pdGVkX1R5cGUgICAg ICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIFVuZGVybHlpbmdfVHlwZSAgICAgICAgICAgICAg IChzeW50aCkKICAgLS0gICAgYWxsIGNsYXNzaWZpY2F0aW9uIGF0dHJpYnV0ZXMgKHN5bnRoKQoK ICAgLS0gIFRoZSBmb2xsb3dpbmcgbGlzdCBvZiBhY2Nlc3MgZnVuY3Rpb25zIGFwcGxpZXMgdG8g YWxsIGVudGl0aWVzIGZvcgogICAtLSAgdHlwZXMgYW5kIHN1YnR5cGVzLiBSZWZlcmVuY2VzIHRv IHRoaXMgbGlzdCBhcHBlYXIgc3Vic2VxdWVudGx5IGFzCiAgIC0tICBhcyAiKHBsdXMgdHlwZSBh dHRyaWJ1dGVzKSIgZm9yIGVhY2ggYXBwcm9wcmlhdGUgRW50aXR5X0tpbmQuCgogICAtLSAgICBB c3NvY2lhdGVkX05vZGVfRm9yX0l0eXBlICAgICAoTm9kZTgpCiAgIC0tICAgIENsYXNzX1dpZGVf VHlwZSAgICAgICAgICAgICAgIChOb2RlOSkKICAgLS0gICAgUmVmZXJlbmNlZF9PYmplY3QgICAg ICAgICAgICAgKE5vZGUxMCkKICAgLS0gICAgRnVsbF9WaWV3ICAgICAgICAgICAgICAgICAgICAg KE5vZGUxMSkKICAgLS0gICAgRXNpemUgICAgICAgICAgICAgICAgICAgICAgICAgKFVpbnQxMikK ICAgLS0gICAgUk1fU2l6ZSAgICAgICAgICAgICAgICAgICAgICAgKFVpbnQxMykKICAgLS0gICAg QWxpZ25tZW50ICAgICAgICAgICAgICAgICAgICAgKFVpbnQxNCkKCiAgIC0tICAgIERlcGVuZHNf T25fUHJpdmF0ZSAgICAgICAgICAgIChGbGFnMTQpCiAgIC0tICAgIERpc2NhcmRfTmFtZXMgICAg ICAgICAgICAgICAgIChGbGFnODgpCiAgIC0tICAgIEZpbmFsaXplX1N0b3JhZ2VfT25seSAgICAg ICAgIChGbGFnMTU4KSAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBGcm9tX1dpdGhfVHlwZSAg ICAgICAgICAgICAgICAoRmxhZzE1OSkKICAgLS0gICAgSGFzX0FsaWFzZWRfQ29tcG9uZW50cyAg ICAgICAgKEZsYWcxMzUpCiAgIC0tICAgIEhhc19BbGlnbm1lbnRfQ2xhdXNlICAgICAgICAgIChG bGFnNDYpCiAgIC0tICAgIEhhc19BdG9taWNfQ29tcG9uZW50cyAgICAgICAgIChGbGFnODYpICAg KGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBIYXNfQ29tcGxleF9SZXByZXNlbnRhdGlvbiAgICAo RmxhZzE0MCkgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgSGFzX0Rpc2NyaW1pbmFudHMgICAg ICAgICAgICAgKEZsYWc1KQogICAtLSAgICBIYXNfTm9uX1N0YW5kYXJkX1JlcCAgICAgICAgICAo RmxhZzc1KQogICAtLSAgICBIYXNfT2JqZWN0X1NpemVfQ2xhdXNlICAgICAgICAoRmxhZzE3MikK ICAgLS0gICAgSGFzX1ByaW1pdGl2ZV9PcGVyYXRpb25zICAgICAgKEZsYWcxMjApICAoYmFzZSB0 eXBlIG9ubHkpCiAgIC0tICAgIEhhc19TaXplX0NsYXVzZSAgICAgICAgICAgICAgIChGbGFnMjkp CiAgIC0tICAgIEhhc19TcGVjaWZpZWRfTGF5b3V0ICAgICAgICAgIChGbGFnMTAwKSAgKGJhc2Ug dHlwZSBvbmx5KQogICAtLSAgICBIYXNfVGFzayAgICAgICAgICAgICAgICAgICAgICAoRmxhZzMw KSAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgSGFzX1VuY2hlY2tlZF9VbmlvbiAgICAgICAg ICAgKEZsYWcxMjMpICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0tICAgIEhhc19Wb2xhdGlsZV9Db21w b25lbnRzICAgICAgIChGbGFnODcpICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBJbl9Vc2Ug ICAgICAgICAgICAgICAgICAgICAgICAoRmxhZzgpCiAgIC0tICAgIElzX0Fic3RyYWN0ICAgICAg ICAgICAgICAgICAgIChGbGFnMTkpCiAgIC0tICAgIElzX0FzeW5jaHJvbm91cyAgICAgICAgICAg ICAgIChGbGFnODEpCiAgIC0tICAgIElzX0F0b21pYyAgICAgICAgICAgICAgICAgICAgIChGbGFn ODUpCiAgIC0tICAgIElzX0NvbnN0cl9TdWJ0X0Zvcl9VX05vbWluYWwgIChGbGFnODApCiAgIC0t ICAgIElzX0NvbnN0cl9TdWJ0X0Zvcl9VTl9BbGlhc2VkIChGbGFnMTQxKQogICAtLSAgICBJc19D b250cm9sbGVkICAgICAgICAgICAgICAgICAoRmxhZzQyKSAgIChiYXNlIHR5cGUgb25seSkKICAg LS0gICAgSXNfRWxpbWluYXRlZCAgICAgICAgICAgICAgICAgKEZsYWcxMjQpCiAgIC0tICAgIElz X0Zyb3plbiAgICAgICAgICAgICAgICAgICAgIChGbGFnNCkKICAgLS0gICAgSXNfR2VuZXJpY19B Y3R1YWxfVHlwZSAgICAgICAgKEZsYWc5NCkKICAgLS0gICAgSXNfR2VuZXJpY19UeXBlICAgICAg ICAgICAgICAgKEZsYWcxMykKICAgLS0gICAgSXNfTm9uX1N0YXRpY19TdWJ0eXBlICAgICAgICAg KEZsYWcxMDkpCiAgIC0tICAgIElzX1BhY2tlZCAgICAgICAgICAgICAgICAgICAgIChGbGFnNTEp ICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBJc19Qcml2YXRlX0NvbXBvc2l0ZSAgICAgICAg ICAoRmxhZzEwNykKICAgLS0gICAgSXNfUmVuYW1pbmdfT2ZfT2JqZWN0ICAgICAgICAgKEZsYWcx MTIpCiAgIC0tICAgIElzX1RhZ2dlZF9UeXBlICAgICAgICAgICAgICAgIChGbGFnNTUpCiAgIC0t ICAgIElzX1Vuc2lnbmVkX1R5cGUgICAgICAgICAgICAgIChGbGFnMTQ0KQogICAtLSAgICBJc19W b2xhdGlsZSAgICAgICAgICAgICAgICAgICAoRmxhZzE2KQogICAtLSAgICBTaXplX0RlcGVuZHNf T25fRGlzY3JpbWluYW50ICAoRmxhZzE3NykKICAgLS0gICAgU2l6ZV9Lbm93bl9BdF9Db21waWxl X1RpbWUgICAgKEZsYWc5MikKICAgLS0gICAgU3RyaWN0X0FsaWdubWVudCAgICAgICAgICAgICAg KEZsYWcxNDUpCiAgIC0tICAgIFN1cHByZXNzX0luaXRfUHJvYyAgICAgICAgICAgIChGbGFnMTA1 KSAgKGJhc2UgdHlwZSBvbmx5KQoKICAgLS0gICAgQWxpZ25tZW50X0NsYXVzZSAgICAgICAgICAg ICAgKHN5bnRoKQogICAtLSAgICBBbmNlc3Rvcl9TdWJ0eXBlICAgICAgICAgICAgICAoc3ludGgp CiAgIC0tICAgIEJhc2VfVHlwZSAgICAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAg Rmlyc3RfU3VidHlwZSAgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBIYXNfUHJpdmF0 ZV9BbmNlc3RvciAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIEltcGxlbWVudGF0aW9uX0Jhc2Vf VHlwZSAgICAgIChzeW50aCkKICAgLS0gICAgSXNfQnlfQ29weV9UeXBlICAgICAgICAgICAgICAg KHN5bnRoKQogICAtLSAgICBJc19CeV9SZWZlcmVuY2VfVHlwZSAgICAgICAgICAoc3ludGgpCiAg IC0tICAgIElzX1JldHVybl9CeV9SZWZlcmVuY2VfVHlwZSAgIChzeW50aCkKICAgLS0gICAgUm9v dF9UeXBlICAgICAgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBTaXplX0NsYXVzZSAg ICAgICAgICAgICAgICAgICAoc3ludGgpCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICAgLS0gQXBwbGljYWJsZSBhdHRyaWJ1dGVzIGJ5IGVudGl0eSBraW5k IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0g IEVfQWNjZXNzX1Byb3RlY3RlZF9TdWJwcm9ncmFtX1R5cGUKICAgLS0gICAgRXF1aXZhbGVudF9U eXBlICAgICAgICAgICAgICAgKE5vZGUxOCkKICAgLS0gICAgRGlyZWN0bHlfRGVzaWduYXRlZF9U eXBlICAgICAgKE5vZGUyMCkKICAgLS0gICAgTmVlZHNfTm9fQWN0dWFscyAgICAgICAgICAgICAg KEZsYWcyMikKICAgLS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfQWNjZXNz X1N1YnByb2dyYW1fVHlwZQogICAtLSAgICBFcXVpdmFsZW50X1R5cGUgICAgICAgICAgICAgICAo Tm9kZTE4KSAgIChyZW1vdGUgdHlwZXMgb25seSkKICAgLS0gICAgRGlyZWN0bHlfRGVzaWduYXRl ZF9UeXBlICAgICAgKE5vZGUyMCkKICAgLS0gICAgTmVlZHNfTm9fQWN0dWFscyAgICAgICAgICAg ICAgKEZsYWcyMikKICAgLS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfQWNj ZXNzX1R5cGUKICAgLS0gIEVfQWNjZXNzX1N1YnR5cGUKICAgLS0gICAgU3RvcmFnZV9TaXplX1Zh cmlhYmxlICAgICAgICAgKE5vZGUxNSkgICAocm9vdCB0eXBlIG9ubHkpCiAgIC0tICAgIE1hc3Rl cl9JZCAgICAgICAgICAgICAgICAgICAgIChOb2RlMTcpCiAgIC0tICAgIERpcmVjdGx5X0Rlc2ln bmF0ZWRfVHlwZSAgICAgIChOb2RlMjApCiAgIC0tICAgIEFzc29jaWF0ZWRfU3RvcmFnZV9Qb29s ICAgICAgIChOb2RlMjIpCiAgIC0tICAgIEFzc29jaWF0ZWRfRmluYWxfQ2hhaW4gICAgICAgIChO b2RlMjMpCiAgIC0tICAgIEhhc19QcmFnbWFfQ29udHJvbGxlZCAgICAgICAgIChGbGFnMjcpICAg KGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBIYXNfU3RvcmFnZV9TaXplX0NsYXVzZSAgICAgICAo RmxhZzIzKSAgIChyb290IHR5cGUgb25seSkKICAgLS0gICAgSXNfQWNjZXNzX0NvbnN0YW50ICAg ICAgICAgICAgKEZsYWc2OSkKICAgLS0gICAgTm9fUG9vbF9Bc3NpZ25lZCAgICAgICAgICAgICAg KEZsYWcxMzEpICAocm9vdCB0eXBlIG9ubHkpCiAgIC0tICAgIChwbHVzIHR5cGUgYXR0cmlidXRl cykKCiAgIC0tICBFX0FjY2Vzc19BdHRyaWJ1dGVfVHlwZQogICAtLSAgICBEaXJlY3RseV9EZXNp Z25hdGVkX1R5cGUgICAgICAoTm9kZTIwKQogICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMp CgogICAtLSAgRV9BbGxvY2F0b3JfVHlwZQogICAtLSAgICBEaXJlY3RseV9EZXNpZ25hdGVkX1R5 cGUgICAgICAoTm9kZTIwKQogICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAg RV9Bbm9ueW1vdXNfQWNjZXNzX1R5cGUKICAgLS0gICAgU3RvcmFnZV9TaXplX1ZhcmlhYmxlICAg ICAgICAgKE5vZGUxNSkgICA/Pz8gaXMgdGhpcyBuZWVkZWQgPz8/CiAgIC0tICAgIERpcmVjdGx5 X0Rlc2lnbmF0ZWRfVHlwZSAgICAgIChOb2RlMjApCiAgIC0tICAgIChwbHVzIHR5cGUgYXR0cmli dXRlcykKCiAgIC0tICBFX0FycmF5X1R5cGUKICAgLS0gIEVfQXJyYXlfU3VidHlwZQogICAtLSAg ICBGaXJzdF9JbmRleCAgICAgICAgICAgICAgICAgICAoTm9kZTE3KQogICAtLSAgICBSZWxhdGVk X0FycmF5X09iamVjdCAgICAgICAgICAoTm9kZTE5KQogICAtLSAgICBDb21wb25lbnRfVHlwZSAg ICAgICAgICAgICAgICAoTm9kZTIwKSAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgQ29tcG9u ZW50X1NpemUgICAgICAgICAgICAgICAgKFVpbnQyMikgICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0t ICAgIFBhY2tlZF9BcnJheV9UeXBlICAgICAgICAgICAgIChOb2RlMjMpCiAgIC0tICAgIENvbXBv bmVudF9BbGlnbm1lbnQgICAgICAgICAgIChzcGVjaWFsKSAgKGJhc2UgdHlwZSBvbmx5KQogICAt LSAgICBIYXNfQ29tcG9uZW50X1NpemVfQ2xhdXNlICAgICAoRmxhZzY4KSAgIChiYXNlIHR5cGUg b25seSkKICAgLS0gICAgSGFzX0NvbnRyb2xsZWRfQ29tcG9uZW50ICAgICAgKEZsYWc0MykgICAo YmFzZSB0eXBlIG9ubHkpCiAgIC0tICAgIEhhc19QcmFnbWFfUGFjayAgICAgICAgICAgICAgIChG bGFnMTIxKSAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBJc19BbGlhc2VkICAgICAgICAgICAg ICAgICAgICAoRmxhZzE1KQogICAtLSAgICBJc19Db25zdHJhaW5lZCAgICAgICAgICAgICAgICAo RmxhZzEyKQogICAtLSAgICBOZXh0X0luZGV4ICAgICAgICAgICAgICAgICAgICAoc3ludGgpCiAg IC0tICAgIE51bWJlcl9EaW1lbnNpb25zICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgKHBs dXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfQmxvY2sKICAgLS0gICAgQmxvY2tfTm9kZSAg ICAgICAgICAgICAgICAgICAgKE5vZGUxMSkKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAg ICAgICAgICAgKE5vZGUxNykKICAgLS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAg KE5vZGUyMCkKICAgLS0gICAgRGVsYXlfQ2xlYW51cHMgICAgICAgICAgICAgICAgKEZsYWcxMTQp CiAgIC0tICAgIERpc2NhcmRfTmFtZXMgICAgICAgICAgICAgICAgIChGbGFnODgpCiAgIC0tICAg IEZpbmFsaXphdGlvbl9DaGFpbl9FbnRpdHkgICAgIChOb2RlMTkpCiAgIC0tICAgIFNjb3BlX0Rl cHRoX1ZhbHVlICAgICAgICAgICAgIChVaW50MjIpCiAgIC0tICAgIFNjb3BlX0RlcHRoICAgICAg ICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgRW50cnlfQ2FuY2VsX1BhcmFtZXRlciAgICAg ICAgKE5vZGUyMykKICAgLS0gICAgSGFzX01hc3Rlcl9FbnRpdHkgICAgICAgICAgICAgKEZsYWcy MSkKICAgLS0gICAgSGFzX05lc3RlZF9CbG9ja19XaXRoX0hhbmRsZXIgKEZsYWcxMDEpCiAgIC0t ICAgIFNlY19TdGFja19OZWVkZWRfRm9yX1JldHVybiAgIChGbGFnMTY3KQogICAtLSAgICBVc2Vz X1NlY19TdGFjayAgICAgICAgICAgICAgICAoRmxhZzk1KQoKICAgLS0gIEVfQ2xhc3NfV2lkZV9U eXBlCiAgIC0tICBFX0NsYXNzX1dpZGVfU3VidHlwZQogICAtLSAgICBDbG9uZWRfU3VidHlwZSAg ICAgICAgICAgICAgICAoTm9kZTE2KSAgIChzdWJ0eXBlIGNhc2Ugb25seSkKICAgLS0gICAgRmly c3RfRW50aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykKICAgLS0gICAgRXF1aXZhbGVudF9U eXBlICAgICAgICAgICAgICAgKE5vZGUxOCkgICAoYWx3YXlzIEVtcHR5IGluIHR5cGUgY2FzZSkK ICAgLS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAg SGFzX0NvbnRyb2xsZWRfQ29tcG9uZW50ICAgICAgKEZsYWc0MykgICAoYmFzZSB0eXBlIG9ubHkp CiAgIC0tICAgIEZpcnN0X0NvbXBvbmVudCAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAg KHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfQ29tcG9uZW50CiAgIC0tICAgIE5vcm1h bGl6ZWRfRmlyc3RfQml0ICAgICAgICAgIChVaW50OCkKICAgLS0gICAgTm9ybWFsaXplZF9Qb3Np dGlvbiAgICAgICAgICAgKFVpbnQ5KQogICAtLSAgICBOb3JtYWxpemVkX1Bvc2l0aW9uX01heCAg ICAgICAoVWludDEwKQogICAtLSAgICBDb21wb25lbnRfQml0X09mZnNldCAgICAgICAgICAoVWlu dDExKQogICAtLSAgICBFc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAoVWludDEyKQogICAt LSAgICBDb21wb25lbnRfQ2xhdXNlICAgICAgICAgICAgICAoTm9kZTEzKQogICAtLSAgICBEVF9F bnRyeV9Db3VudCAgICAgICAgICAgICAgICAoVWludDE1KQogICAtLSAgICBFbnRyeV9Gb3JtYWwg ICAgICAgICAgICAgICAgICAoTm9kZTE2KQogICAtLSAgICBQcml2YWwgICAgICAgICAgICAgICAg ICAgICAgICAoTm9kZTE3KQogICAtLSAgICBSZW5hbWVkX09iamVjdCAgICAgICAgICAgICAgICAo Tm9kZTE4KSAgIChhbHdheXMgRW1wdHkpCiAgIC0tICAgIERpc2NyaW1pbmFudF9DaGVja2luZ19G dW5jICAgIChOb2RlMjApCiAgIC0tICAgIEludGVyZmFjZV9OYW1lICAgICAgICAgICAgICAgIChO b2RlMjEpICAgKEpHTkFUIHVzYWdlIG9ubHkpCiAgIC0tICAgIE9yaWdpbmFsX1JlY29yZF9Db21w b25lbnQgICAgIChOb2RlMjIpCiAgIC0tICAgIFByb3RlY3RlZF9PcGVyYXRpb24gICAgICAgICAg IChOb2RlMjMpCiAgIC0tICAgIEhhc19CaWFzZWRfUmVwcmVzZW50YXRpb24gICAgIChGbGFnMTM5 KQogICAtLSAgICBIYXNfUGVyX09iamVjdF9Db25zdHJhaW50ICAgICAoRmxhZzE1NCkKICAgLS0g ICAgSXNfQXRvbWljICAgICAgICAgICAgICAgICAgICAgKEZsYWc4NSkKICAgLS0gICAgSXNfVGFn ICAgICAgICAgICAgICAgICAgICAgICAgKEZsYWc3OCkKICAgLS0gICAgSXNfVm9sYXRpbGUgICAg ICAgICAgICAgICAgICAgKEZsYWcxNikKICAgLS0gICAgTmV4dF9Db21wb25lbnQgICAgICAgICAg ICAgICAgKHN5bnRoKQogICAtLSAgICBJc19Qcm90ZWN0ZWRfUHJpdmF0ZSAgICAgICAgICAoc3lu dGgpCgogICAtLSAgRV9Db25zdGFudAogICAtLSAgRV9Mb29wX1BhcmFtZXRlcgogICAtLSAgICBT aXplX0NoZWNrX0NvZGUgICAgICAgICAgICAgICAoTm9kZTkpCiAgIC0tICAgIERpc2NyaW1pbmFs X0xpbmsgICAgICAgICAgICAgIChOb2RlMTApICAgKGRpc2NyaW1pbmFscyBvbmx5KQogICAtLSAg ICBGdWxsX1ZpZXcgICAgICAgICAgICAgICAgICAgICAoTm9kZTExKQogICAtLSAgICBFc2l6ZSAg ICAgICAgICAgICAgICAgICAgICAgICAoVWludDEyKQogICAtLSAgICBBbGlnbm1lbnQgICAgICAg ICAgICAgICAgICAgICAoVWludDE0KQogICAtLSAgICBBY3R1YWxfU3VidHlwZSAgICAgICAgICAg ICAgICAoTm9kZTE3KQogICAtLSAgICBSZW5hbWVkX09iamVjdCAgICAgICAgICAgICAgICAoTm9k ZTE4KQogICAtLSAgICBJbnRlcmZhY2VfTmFtZSAgICAgICAgICAgICAgICAoTm9kZTIxKQogICAt LSAgICBIYXNfQWxpZ25tZW50X0NsYXVzZSAgICAgICAgICAoRmxhZzQ2KQogICAtLSAgICBIYXNf QXRvbWljX0NvbXBvbmVudHMgICAgICAgICAoRmxhZzg2KQogICAtLSAgICBIYXNfQmlhc2VkX1Jl cHJlc2VudGF0aW9uICAgICAoRmxhZzEzOSkKICAgLS0gICAgSGFzX1NpemVfQ2xhdXNlICAgICAg ICAgICAgICAgKEZsYWcyOSkKICAgLS0gICAgSGFzX1ZvbGF0aWxlX0NvbXBvbmVudHMgICAgICAg KEZsYWc4NykKICAgLS0gICAgSXNfQXRvbWljICAgICAgICAgICAgICAgICAgICAgKEZsYWc4NSkK ICAgLS0gICAgSXNfRWxpbWluYXRlZCAgICAgICAgICAgICAgICAgKEZsYWcxMjQpCiAgIC0tICAg IElzX1BzZWN0ZWQgICAgICAgICAgICAgICAgICAgIChGbGFnMTUzKQogICAtLSAgICBJc19UcnVl X0NvbnN0YW50ICAgICAgICAgICAgICAoRmxhZzE2MykKICAgLS0gICAgSXNfVm9sYXRpbGUgICAg ICAgICAgICAgICAgICAgKEZsYWcxNikKICAgLS0gICAgTm90X1NvdXJjZV9Bc3NpZ25lZCAgICAg ICAgICAgKEZsYWcxMTUpCiAgIC0tICAgIEFkZHJlc3NfQ2xhdXNlICAgICAgICAgICAgICAgIChz eW50aCkKICAgLS0gICAgQWxpZ25tZW50X0NsYXVzZSAgICAgICAgICAgICAgKHN5bnRoKQogICAt LSAgICBDb25zdGFudF9WYWx1ZSAgICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIFNpemVf Q2xhdXNlICAgICAgICAgICAgICAgICAgIChzeW50aCkKCiAgIC0tICBFX0RlY2ltYWxfRml4ZWRf UG9pbnRfVHlwZQogICAtLSAgRV9EZWNpbWFsX0ZpeGVkX1N1YnR5cGUKICAgLS0gICAgU2NhbGVf VmFsdWUgICAgICAgICAgICAgICAgICAgKFVpbnQxNSkKICAgLS0gICAgRGlnaXRzX1ZhbHVlICAg ICAgICAgICAgICAgICAgKFVpbnQxNykKICAgLS0gICAgU2NhbGFyX1JhbmdlICAgICAgICAgICAg ICAgICAgKE5vZGUyMCkKICAgLS0gICAgRGVsdGFfVmFsdWUgICAgICAgICAgICAgICAgICAgKFVy ZWFsMTgpCiAgIC0tICAgIFNtYWxsX1ZhbHVlICAgICAgICAgICAgICAgICAgIChVcmVhbDIxKQog ICAtLSAgICBIYXNfTWFjaGluZV9SYWRpeF9DbGF1c2UgICAgICAoRmxhZzgzKQogICAtLSAgICBN YWNoaW5lX1JhZGl4XzEwICAgICAgICAgICAgICAoRmxhZzg0KQogICAtLSAgICBUeXBlX0xvd19C b3VuZCAgICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIFR5cGVfSGlnaF9Cb3VuZCAgICAg ICAgICAgICAgIChzeW50aCkKICAgLS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0g IEVfRGlzY3JpbWluYW50CiAgIC0tICAgIE5vcm1hbGl6ZWRfRmlyc3RfQml0ICAgICAgICAgIChV aW50OCkKICAgLS0gICAgTm9ybWFsaXplZF9Qb3NpdGlvbiAgICAgICAgICAgKFVpbnQ5KQogICAt LSAgICBOb3JtYWxpemVkX1Bvc2l0aW9uX01heCAgICAgICAoVWludDEwKQogICAtLSAgICBDb21w b25lbnRfQml0X09mZnNldCAgICAgICAgICAoVWludDExKQogICAtLSAgICBFc2l6ZSAgICAgICAg ICAgICAgICAgICAgICAgICAoVWludDEyKQogICAtLSAgICBDb21wb25lbnRfQ2xhdXNlICAgICAg ICAgICAgICAoTm9kZTEzKQogICAtLSAgICBEaXNjcmltaW5hbnRfTnVtYmVyICAgICAgICAgICAo VWludDE1KQogICAtLSAgICBEaXNjcmltaW5hbCAgICAgICAgICAgICAgICAgICAoTm9kZTE3KQog ICAtLSAgICBSZW5hbWVkX09iamVjdCAgICAgICAgICAgICAgICAoTm9kZTE4KSAgIChhbHdheXMg RW1wdHkpCiAgIC0tICAgIENvcnJlc3BvbmRpbmdfRGlzY3JpbWluYW50ICAgIChOb2RlMTkpCiAg IC0tICAgIERpc2NyaW1pbmFudF9EZWZhdWx0X1ZhbHVlICAgIChOb2RlMjApCiAgIC0tICAgIElu dGVyZmFjZV9OYW1lICAgICAgICAgICAgICAgIChOb2RlMjEpICAgKEpHTkFUIHVzYWdlIG9ubHkp CiAgIC0tICAgIE9yaWdpbmFsX1JlY29yZF9Db21wb25lbnQgICAgIChOb2RlMjIpCiAgIC0tICAg IENSX0Rpc2NyaW1pbmFudCAgICAgICAgICAgICAgIChOb2RlMjMpCiAgIC0tICAgIE5leHRfRGlz Y3JpbWluYW50ICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgTmV4dF9HaXJkZXJfRGlzY3Jp bWluYW50ICAgICAgKHN5bnRoKQoKICAgLS0gIEVfRW50cnkKICAgLS0gIEVfRW50cnlfRmFtaWx5 CiAgIC0tICAgIFByb3RlY3RlZF9Cb2R5X1N1YnByb2dyYW0gICAgIChOb2RlMTEpCiAgIC0tICAg IEJhcnJpZXJfRnVuY3Rpb24gICAgICAgICAgICAgIChOb2RlMTIpCiAgIC0tICAgIEVudHJ5X1Bh cmFtZXRlcnNfVHlwZSAgICAgICAgIChOb2RlMTUpCiAgIC0tICAgIEZpcnN0X0VudGl0eSAgICAg ICAgICAgICAgICAgIChOb2RlMTcpCiAgIC0tICAgIEFsaWFzICAgICAgICAgICAgICAgICAgICAg ICAgIChOb2RlMTgpICAgKEVudHJ5IG9ubHkuIEFsd2F5cyBlbXB0eSkKICAgLS0gICAgRmluYWxp emF0aW9uX0NoYWluX0VudGl0eSAgICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkgICAg ICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAgQWNjZXB0X0FkZHJlc3MgICAgICAgICAg ICAgICAgKEVsaXN0MjEpCiAgIC0tICAgIFNjb3BlX0RlcHRoX1ZhbHVlICAgICAgICAgICAgIChV aW50MjIpCiAgIC0tICAgIFNjb3BlX0RlcHRoICAgICAgICAgICAgICAgICAgIChzeW50aCkKICAg LS0gICAgUHJpdmFsc19DaGFpbiAgICAgICAgICAgICAgICAgKEVsaXN0MjMpICAoZm9yIGEgcHJv dGVjdGVkIGVudHJ5KQogICAtLSAgICBEZWZhdWx0X0V4cHJlc3Npb25zX1Byb2Nlc3NlZCAoRmxh ZzEwOCkKICAgLS0gICAgRW50cnlfQWNjZXB0ZWQgICAgICAgICAgICAgICAgKEZsYWcxNTIpCiAg IC0tICAgIElzX0FTVF9FbnRyeSAgICAgICAgICAgICAgICAgIChGbGFnMTMyKSAgKGZvciBlbnRy eSBvbmx5KQogICAtLSAgICBOZWVkc19Ob19BY3R1YWxzICAgICAgICAgICAgICAoRmxhZzIyKQog ICAtLSAgICBTZWNfU3RhY2tfTmVlZGVkX0Zvcl9SZXR1cm4gICAoRmxhZzE2NykKICAgLS0gICAg VXNlc19TZWNfU3RhY2sgICAgICAgICAgICAgICAgKEZsYWc5NSkKICAgLS0gICAgQWRkcmVzc19D bGF1c2UgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBGaXJzdF9Gb3JtYWwgICAgICAg ICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIEVudHJ5X0luZGV4X1R5cGUgICAgICAgICAgICAg IChzeW50aCkKICAgLS0gICAgTnVtYmVyX0Zvcm1hbHMgICAgICAgICAgICAgICAgKHN5bnRoKQoK ICAgLS0gIEVfRW50cnlfSW5kZXhfUGFyYW1ldGVyCiAgIC0tICAgIEVudHJ5X0luZGV4X0NvbnN0 YW50ICAgICAgICAgIChOb2RlMTgpCgogICAtLSAgRV9FbnVtZXJhdGlvbl9MaXRlcmFsCiAgIC0t ICAgIEVudW1lcmF0aW9uX1BvcyAgICAgICAgICAgICAgIChVaW50MTEpCiAgIC0tICAgIEVudW1l cmF0aW9uX1JlcCAgICAgICAgICAgICAgIChVaW50MTIpCiAgIC0tICAgIERlYnVnX1JlbmFtaW5n X0xpbmsgICAgICAgICAgIChOb2RlMTMpCiAgIC0tICAgIEFsaWFzICAgICAgICAgICAgICAgICAg ICAgICAgIChOb2RlMTgpCiAgIC0tICAgIEVudW1lcmF0aW9uX1JlcF9FeHByICAgICAgICAgIChO b2RlMjIpCiAgIC0tICAgIE5leHRfTGl0ZXJhbCAgICAgICAgICAgICAgICAgIChzeW50aCkKCiAg IC0tICBFX0VudW1lcmF0aW9uX1R5cGUKICAgLS0gIEVfRW51bWVyYXRpb25fU3VidHlwZQogICAt LSAgICBMaXRfSW5kZXhlcyAgICAgICAgICAgICAgICAgICAoTm9kZTE1KSAgIChyb290IHR5cGUg b25seSkKICAgLS0gICAgTGl0X1N0cmluZ3MgICAgICAgICAgICAgICAgICAgKE5vZGUxNikgICAo cm9vdCB0eXBlIG9ubHkpCiAgIC0tICAgIEZpcnN0X0xpdGVyYWwgICAgICAgICAgICAgICAgIChO b2RlMTcpCiAgIC0tICAgIFNjYWxhcl9SYW5nZSAgICAgICAgICAgICAgICAgIChOb2RlMjApCiAg IC0tICAgIEVudW1fUG9zX1RvX1JlcCAgICAgICAgICAgICAgIChOb2RlMjMpICAgKHR5cGUgb25s eSwgbm90IHN1YnR5cGUpCiAgIC0tICAgIEhhc19CaWFzZWRfUmVwcmVzZW50YXRpb24gICAgIChG bGFnMTM5KQogICAtLSAgICBIYXNfRW51bWVyYXRpb25fUmVwX0NsYXVzZSAgICAoRmxhZzY2KQog ICAtLSAgICBOb256ZXJvX0lzX1RydWUgICAgICAgICAgICAgICAoRmxhZzE2MikgIChiYXNlIHR5 cGUgb25seSkKICAgLS0gICAgVHlwZV9Mb3dfQm91bmQgICAgICAgICAgICAgICAgKHN5bnRoKQog ICAtLSAgICBUeXBlX0hpZ2hfQm91bmQgICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIChw bHVzIHR5cGUgYXR0cmlidXRlcykKCiAgIC0tICBFX0V4Y2VwdGlvbgogICAtLSAgICBSZW5hbWVk X0VudGl0eSAgICAgICAgICAgICAgICAoTm9kZTE4KQogICAtLSAgICBSZWdpc3Rlcl9FeGNlcHRp b25fQ2FsbCAgICAgICAoTm9kZTIwKQogICAtLSAgICBJbnRlcmZhY2VfTmFtZSAgICAgICAgICAg ICAgICAoTm9kZTIxKQogICAtLSAgICBFeGNlcHRpb25fQ29kZSAgICAgICAgICAgICAgICAoVWlu dDIyKQogICAtLSAgICBEaXNjYXJkX05hbWVzICAgICAgICAgICAgICAgICAoRmxhZzg4KQogICAt LSAgICBJc19WTVNfRXhjZXB0aW9uICAgICAgICAgICAgICAoRmxhZzEzMykKCiAgIC0tICBFX0V4 Y2VwdGlvbl9UeXBlCiAgIC0tICAgIEVxdWl2YWxlbnRfVHlwZSAgICAgICAgICAgICAgIChOb2Rl MTgpCiAgIC0tICAgIChwbHVzIHR5cGUgYXR0cmlidXRlcykKCiAgIC0tICBFX0Zsb2F0aW5nX1Bv aW50X1R5cGUKICAgLS0gIEVfRmxvYXRpbmdfUG9pbnRfU3VidHlwZQogICAtLSAgICBEaWdpdHNf VmFsdWUgICAgICAgICAgICAgICAgICAoVWludDE3KQogICAtLSAgICBUeXBlX0xvd19Cb3VuZCAg ICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIFNjYWxhcl9SYW5nZSAgICAgICAgICAgICAg ICAgIChOb2RlMjApCiAgIC0tICAgIFR5cGVfSGlnaF9Cb3VuZCAgICAgICAgICAgICAgIChzeW50 aCkKICAgLS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfRnVuY3Rpb24KICAg LS0gIEVfR2VuZXJpY19GdW5jdGlvbgogICAtLSAgICBNZWNoYW5pc20gICAgICAgICAgICAgICAg ICAgICAoVWludDgpICAgIChyZXR1cm5zIE1lY2hhbmlzbV9UeXBlKQogICAtLSAgICBSZW5hbWlu Z19NYXAgICAgICAgICAgICAgICAgICAoVWludDkpCiAgIC0tICAgIEhhbmRsZXJfUmVjb3JkcyAg ICAgICAgICAgICAgIChMaXN0MTApICAgKG5vbi1nZW5lcmljIGNhc2Ugb25seSkKICAgLS0gICAg UHJvdGVjdGVkX0JvZHlfU3VicHJvZ3JhbSAgICAgKE5vZGUxMSkKICAgLS0gICAgTmV4dF9Jbmxp bmVkX1N1YnByb2dyYW0gICAgICAgKE5vZGUxMikKICAgLS0gICAgQ29ycmVzcG9uZGluZ19FcXVh bGl0eSAgICAgICAgKE5vZGUxMykgICAoaW1wbGljaXQgLz0gb25seSkKICAgLS0gICAgRWxhYm9y YXRpb25fRW50aXR5ICAgICAgICAgICAgKE5vZGUxMykgICAoYWxsIG90aGVyIGNhc2VzKQogICAt LSAgICBGaXJzdF9PcHRpb25hbF9QYXJhbWV0ZXIgICAgICAoTm9kZTE0KSAgIChub24tZ2VuZXJp YyBjYXNlIG9ubHkpCiAgIC0tICAgIERUX1Bvc2l0aW9uICAgICAgICAgICAgICAgICAgIChVaW50 MTUpCiAgIC0tICAgIERUQ19FbnRpdHkgICAgICAgICAgICAgICAgICAgIChOb2RlMTYpCiAgIC0t ICAgIEZpcnN0X0VudGl0eSAgICAgICAgICAgICAgICAgIChOb2RlMTcpCiAgIC0tICAgIEFsaWFz ICAgICAgICAgICAgICAgICAgICAgICAgIChOb2RlMTgpICAgKG5vbi1nZW5lcmljIGNhc2Ugb25s eSkKICAgLS0gICAgUmVuYW1lZF9FbnRpdHkgICAgICAgICAgICAgICAgKE5vZGUxOCkgICAoZ2Vu ZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIEZpbmFsaXphdGlvbl9DaGFpbl9FbnRpdHkgICAgIChO b2RlMTkpCiAgIC0tICAgIExhc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgIChOb2RlMjApCiAg IC0tICAgIEludGVyZmFjZV9OYW1lICAgICAgICAgICAgICAgIChOb2RlMjEpCiAgIC0tICAgIFNj b3BlX0RlcHRoX1ZhbHVlICAgICAgICAgICAgIChVaW50MjIpCiAgIC0tICAgIFNjb3BlX0RlcHRo ICAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgR2VuZXJpY19SZW5hbWluZ3MgICAg ICAgICAgICAgKEVsaXN0MjMpICAoZm9yIGFuIGluc3RhbmNlKQogICAtLSAgICBJbm5lcl9JbnN0 YW5jZXMgICAgICAgICAgICAgICAoRWxpc3QyMykgIChmb3IgYSBnZW5lcmljIGZ1bmN0aW9uKQog ICAtLSAgICBQcml2YWxzX0NoYWluICAgICAgICAgICAgICAgICAoRWxpc3QyMykgIChmb3IgYSBw cm90ZWN0ZWQgZnVuY3Rpb24pCiAgIC0tICAgIEVsYWJvcmF0aW9uX0VudGl0eV9SZXF1aXJlZCAg IChGbGFnMTc0KQogICAtLSAgICBGdW5jdGlvbl9SZXR1cm5zX1dpdGhfRFNQICAgICAoRmxhZzE2 OSkKICAgLS0gICAgRGVmYXVsdF9FeHByZXNzaW9uc19Qcm9jZXNzZWQgKEZsYWcxMDgpCiAgIC0t ICAgIERlbGF5X0NsZWFudXBzICAgICAgICAgICAgICAgIChGbGFnMTE0KQogICAtLSAgICBEZWxh eV9TdWJwcm9ncmFtX0Rlc2NyaXB0b3JzICAoRmxhZzUwKQogICAtLSAgICBEaXNjYXJkX05hbWVz ICAgICAgICAgICAgICAgICAoRmxhZzg4KQogICAtLSAgICBFbGFib3JhdGVfQWxsX0Rlc2lyYWJs ZSAgICAgICAoRmxhZzE0NikKICAgLS0gICAgSGFzX0NvbXBsZXRpb24gICAgICAgICAgICAgICAg KEZsYWcyNikKICAgLS0gICAgSGFzX0NvbnRyb2xsaW5nX1Jlc3VsdCAgICAgICAgKEZsYWc5OCkK ICAgLS0gICAgSGFzX01hc3Rlcl9FbnRpdHkgICAgICAgICAgICAgKEZsYWcyMSkKICAgLS0gICAg SGFzX01pc3NpbmdfUmV0dXJuICAgICAgICAgICAgKEZsYWcxNDIpCiAgIC0tICAgIEhhc19OZXN0 ZWRfQmxvY2tfV2l0aF9IYW5kbGVyIChGbGFnMTAxKQogICAtLSAgICBIYXNfUHJhZ21hX1B1cmVf RnVuY3Rpb24gICAgICAoRmxhZzE3OSkgIChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAg IEhhc19SZWN1cnNpdmVfQ2FsbCAgICAgICAgICAgIChGbGFnMTQzKQogICAtLSAgICBIYXNfU3Vi cHJvZ3JhbV9EZXNjcmlwdG9yICAgICAoRmxhZzkzKQogICAtLSAgICBJc19BYnN0cmFjdCAgICAg ICAgICAgICAgICAgICAoRmxhZzE5KQogICAtLSAgICBJc19DYWxsZWQgICAgICAgICAgICAgICAg ICAgICAoRmxhZzEwMikgIChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIElzX0NvbnN0 cnVjdG9yICAgICAgICAgICAgICAgIChGbGFnNzYpCiAgIC0tICAgIElzX0Rlc3RydWN0b3IgICAg ICAgICAgICAgICAgIChGbGFnNzcpCiAgIC0tICAgIElzX0Rpc2NyaW1fU09fRnVuY3Rpb24gICAg ICAgIChGbGFnMTc2KQogICAtLSAgICBJc19FbGltaW5hdGVkICAgICAgICAgICAgICAgICAoRmxh ZzEyNCkKICAgLS0gICAgSXNfSW5zdGFudGlhdGVkICAgICAgICAgICAgICAgKEZsYWcxMjYpICAo Z2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIElzX0ludHJpbnNpY19TdWJwcm9ncmFtICAgICAg IChGbGFnNjQpCiAgIC0tICAgIElzX01hY2hpbmVfQ29kZV9TdWJwcm9ncmFtICAgIChGbGFnMTM3 KSAgKG5vbi1nZW5lcmljIGNhc2Ugb25seSkKICAgLS0gICAgSXNfUHJpdmF0ZV9EZXNjZW5kYW50 ICAgICAgICAgKEZsYWc1MykKICAgLS0gICAgSXNfUHVyZSAgICAgICAgICAgICAgICAgICAgICAg KEZsYWc0NCkKICAgLS0gICAgSXNfVmlzaWJsZV9DaGlsZF9Vbml0ICAgICAgICAgKEZsYWcxMTYp CiAgIC0tICAgIE5lZWRzX05vX0FjdHVhbHMgICAgICAgICAgICAgIChGbGFnMjIpCiAgIC0tICAg IFJldHVybl9QcmVzZW50ICAgICAgICAgICAgICAgIChGbGFnNTQpCiAgIC0tICAgIFJldHVybnNf QnlfUmVmICAgICAgICAgICAgICAgIChGbGFnOTApCiAgIC0tICAgIFNlY19TdGFja19OZWVkZWRf Rm9yX1JldHVybiAgIChGbGFnMTY3KQogICAtLSAgICBVc2VzX1NlY19TdGFjayAgICAgICAgICAg ICAgICAoRmxhZzk1KQogICAtLSAgICBBZGRyZXNzX0NsYXVzZSAgICAgICAgICAgICAgICAoc3lu dGgpCiAgIC0tICAgIEZpcnN0X0Zvcm1hbCAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0g ICAgTnVtYmVyX0Zvcm1hbHMgICAgICAgICAgICAgICAgKHN5bnRoKQoKICAgLS0gIEVfR2VuZXJh bF9BY2Nlc3NfVHlwZQogICAtLSAgICBTdG9yYWdlX1NpemVfVmFyaWFibGUgICAgICAgICAoTm9k ZTE1KSAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgTWFzdGVyX0lkICAgICAgICAgICAgICAg ICAgICAgKE5vZGUxNykKICAgLS0gICAgRGlyZWN0bHlfRGVzaWduYXRlZF9UeXBlICAgICAgKE5v ZGUyMCkKICAgLS0gICAgQXNzb2NpYXRlZF9TdG9yYWdlX1Bvb2wgICAgICAgKE5vZGUyMikKICAg LS0gICAgQXNzb2NpYXRlZF9GaW5hbF9DaGFpbiAgICAgICAgKE5vZGUyMykKICAgLS0gICAgKHBs dXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfR2VuZXJpY19Jbl9QYXJhbWV0ZXIKICAgLS0g IEVfR2VuZXJpY19Jbl9PdXRfUGFyYW1ldGVyCiAgIC0tICAgIEVudHJ5X0NvbXBvbmVudCAgICAg ICAgICAgICAgIChOb2RlMTEpCiAgIC0tICAgIEFjdHVhbF9TdWJ0eXBlICAgICAgICAgICAgICAg IChOb2RlMTcpCiAgIC0tICAgIFJlbmFtZWRfT2JqZWN0ICAgICAgICAgICAgICAgIChOb2RlMTgp ICAgKGFsd2F5cyBFbXB0eSkKICAgLS0gICAgRGVmYXVsdF9WYWx1ZSAgICAgICAgICAgICAgICAg KE5vZGUyMCkKICAgLS0gICAgUHJvdGVjdGVkX0Zvcm1hbCAgICAgICAgICAgICAgKE5vZGUyMikK ICAgLS0gICAgSXNfQ29udHJvbGxpbmdfRm9ybWFsICAgICAgICAgKEZsYWc5NykKICAgLS0gICAg SXNfRW50cnlfRm9ybWFsICAgICAgICAgICAgICAgKEZsYWc1MikKICAgLS0gICAgUGFyYW1ldGVy X01vZGUgICAgICAgICAgICAgICAgKHN5bnRoKQoKICAgLS0gIEVfSW5jb21wbGV0ZV9UeXBlCiAg IC0tICAgIFByaXZhdGVfRGVwZW5kZW50cyAgICAgICAgICAgIChFbGlzdDE4KQogICAtLSAgICBE aXNjcmltaW5hbnRfQ29uc3RyYWludCAgICAgICAoRWxpc3QyMSkKICAgLS0gICAgR2lyZGVyX0Nv bnN0cmFpbnQgICAgICAgICAgICAgKEVsaXN0MjMpCiAgIC0tICAgIEZpcnN0X0Rpc2NyaW1pbmFu dCAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgRmlyc3RfR2lyZGVyX0Rpc2NyaW1pbmFudCAg ICAgKHN5bnRoKQogICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9Jbl9Q YXJhbWV0ZXIKICAgLS0gIEVfSW5fT3V0X1BhcmFtZXRlcgogICAtLSAgRV9PdXRfUGFyYW1ldGVy CiAgIC0tICAgIE1lY2hhbmlzbSAgICAgICAgICAgICAgICAgICAgIChVaW50OCkgICAgKHJldHVy bnMgTWVjaGFuaXNtX1R5cGUpCiAgIC0tICAgIERpc2NyaW1pbmFsX0xpbmsgICAgICAgICAgICAg IChOb2RlMTApICAgKGRpc2NyaW1pbmFscyBvbmx5KQogICAtLSAgICBFbnRyeV9Db21wb25lbnQg ICAgICAgICAgICAgICAoTm9kZTExKQogICAtLSAgICBFc2l6ZSAgICAgICAgICAgICAgICAgICAg ICAgICAoVWludDEyKQogICAtLSAgICBFeHRyYV9BY2Nlc3NpYmlsaXR5ICAgICAgICAgICAoTm9k ZTEzKQogICAtLSAgICBBbGlnbm1lbnQgICAgICAgICAgICAgICAgICAgICAoVWludDE0KQogICAt LSAgICBFeHRyYV9Gb3JtYWwgICAgICAgICAgICAgICAgICAoTm9kZTE1KQogICAtLSAgICBVbnNl dF9SZWZlcmVuY2UgICAgICAgICAgICAgICAoTm9kZTE2KQogICAtLSAgICBBY3R1YWxfU3VidHlw ZSAgICAgICAgICAgICAgICAoTm9kZTE3KQogICAtLSAgICBSZW5hbWVkX09iamVjdCAgICAgICAg ICAgICAgICAoTm9kZTE4KQogICAtLSAgICBTcGVjX0VudGl0eSAgICAgICAgICAgICAgICAgICAo Tm9kZTE5KQogICAtLSAgICBEZWZhdWx0X1ZhbHVlICAgICAgICAgICAgICAgICAoTm9kZTIwKQog ICAtLSAgICBEZWZhdWx0X0V4cHJfRnVuY3Rpb24gICAgICAgICAoTm9kZTIxKQogICAtLSAgICBQ cm90ZWN0ZWRfRm9ybWFsICAgICAgICAgICAgICAoTm9kZTIyKQogICAtLSAgICBFeHRyYV9Db25z dHJhaW5lZCAgICAgICAgICAgICAoTm9kZTIzKQogICAtLSAgICBJc19Db250cm9sbGluZ19Gb3Jt YWwgICAgICAgICAoRmxhZzk3KQogICAtLSAgICBJc19FbnRyeV9Gb3JtYWwgICAgICAgICAgICAg ICAoRmxhZzUyKQogICAtLSAgICBJc19PcHRpb25hbF9QYXJhbWV0ZXIgICAgICAgICAoRmxhZzEz NCkKICAgLS0gICAgTm90X1NvdXJjZV9Bc3NpZ25lZCAgICAgICAgICAgKEZsYWcxMTUpCiAgIC0t ICAgIFBhcmFtZXRlcl9Nb2RlICAgICAgICAgICAgICAgIChzeW50aCkKCiAgIC0tICBFX0xhYmVs CiAgIC0tICAgIEVuY2xvc2luZ19TY29wZSAgICAgICAgICAgICAgIChOb2RlMTgpCiAgIC0tICAg IFJlYWNoYWJsZSAgICAgICAgICAgICAgICAgICAgIChGbGFnNDkpCgogICAtLSAgRV9MaW1pdGVk X1ByaXZhdGVfVHlwZQogICAtLSAgRV9MaW1pdGVkX1ByaXZhdGVfU3VidHlwZQogICAtLSAgICBG aXJzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAoTm9kZTE3KQogICAtLSAgICBQcml2YXRlX0Rl cGVuZGVudHMgICAgICAgICAgICAoRWxpc3QxOCkKICAgLS0gICAgVW5kZXJseWluZ19GdWxsX1Zp ZXcgICAgICAgICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAg ICAgKE5vZGUyMCkKICAgLS0gICAgRGlzY3JpbWluYW50X0NvbnN0cmFpbnQgICAgICAgKEVsaXN0 MjEpCiAgIC0tICAgIFByaXZhdGVfVmlldyAgICAgICAgICAgICAgICAgIChOb2RlMjIpCiAgIC0t ICAgIEdpcmRlcl9Db25zdHJhaW50ICAgICAgICAgICAgIChFbGlzdDIzKQogICAtLSAgICBIYXNf Q29tcGxldGlvbiAgICAgICAgICAgICAgICAoRmxhZzI2KQogICAtLSAgICBIYXNfQ29tcGxldGlv bl9Jbl9Cb2R5ICAgICAgICAoRmxhZzcxKQogICAtLSAgICBGaXJzdF9EaXNjcmltaW5hbnQgICAg ICAgICAgICAoc3ludGgpCiAgIC0tICAgIEZpcnN0X0dpcmRlcl9EaXNjcmltaW5hbnQgICAgIChz eW50aCkKICAgLS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfTG9vcAogICAt LSAgICBIYXNfRXhpdCAgICAgICAgICAgICAgICAgICAgICAoRmxhZzQ3KQogICAtLSAgICBIYXNf TWFzdGVyX0VudGl0eSAgICAgICAgICAgICAoRmxhZzIxKQogICAtLSAgICBIYXNfTmVzdGVkX0Js b2NrX1dpdGhfSGFuZGxlciAoRmxhZzEwMSkKCiAgIC0tICBFX01vZHVsYXJfSW50ZWdlcl9UeXBl CiAgIC0tICBFX01vZHVsYXJfSW50ZWdlcl9TdWJ0eXBlCiAgIC0tICAgIE1vZHVsdXMgICAgICAg ICAgICAgICAgICAgICAgIChVaW50MTcpICAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgU2Nh bGFyX1JhbmdlICAgICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAgTm9uX0JpbmFyeV9N b2R1bHVzICAgICAgICAgICAgKEZsYWc1OCkgICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBI YXNfQmlhc2VkX1JlcHJlc2VudGF0aW9uICAgICAoRmxhZzEzOSkKICAgLS0gICAgVHlwZV9Mb3df Qm91bmQgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBUeXBlX0hpZ2hfQm91bmQgICAg ICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIChwbHVzIHR5cGUgYXR0cmlidXRlcykKCiAgIC0t ICBFX05hbWVkX0ludGVnZXIKICAgLS0gICAgQ29uc3RhbnRfVmFsdWUgICAgICAgICAgICAgICAg KHN5bnRoKQoKICAgLS0gIEVfTmFtZWRfUmVhbAogICAtLSAgICBDb25zdGFudF9WYWx1ZSAgICAg ICAgICAgICAgICAoc3ludGgpCgogICAtLSAgRV9PcGVyYXRvcgogICAtLSAgICBGaXJzdF9FbnRp dHkgICAgICAgICAgICAgICAgICAoTm9kZTE3KQogICAtLSAgICBBbGlhcyAgICAgICAgICAgICAg ICAgICAgICAgICAoTm9kZTE4KQogICAtLSAgICBMYXN0X0VudGl0eSAgICAgICAgICAgICAgICAg ICAoTm9kZTIwKQogICAtLSAgICBJc19NYWNoaW5lX0NvZGVfU3VicHJvZ3JhbSAgICAoRmxhZzEz NykKICAgLS0gICAgSXNfUHVyZSAgICAgICAgICAgICAgICAgICAgICAgKEZsYWc0NCkKICAgLS0g ICAgSXNfSW50cmluc2ljX1N1YnByb2dyYW0gICAgICAgKEZsYWc2NCkKICAgLS0gICAgRGVmYXVs dF9FeHByZXNzaW9uc19Qcm9jZXNzZWQgKEZsYWcxMDgpCiAgIC0tICAgIEhhc19QcmFnbWFfUHVy ZV9GdW5jdGlvbiAgICAgIChGbGFnMTc5KQoKICAgLS0gIEVfT3JkaW5hcnlfRml4ZWRfUG9pbnRf VHlwZQogICAtLSAgRV9PcmRpbmFyeV9GaXhlZF9Qb2ludF9TdWJ0eXBlCiAgIC0tICAgIERlbHRh X1ZhbHVlICAgICAgICAgICAgICAgICAgIChVcmVhbDE4KQogICAtLSAgICBTY2FsYXJfUmFuZ2Ug ICAgICAgICAgICAgICAgICAoTm9kZTIwKQogICAtLSAgICBTbWFsbF9WYWx1ZSAgICAgICAgICAg ICAgICAgICAoVXJlYWwyMSkKICAgLS0gICAgSGFzX1NtYWxsX0NsYXVzZSAgICAgICAgICAgICAg KEZsYWc2NykKICAgLS0gICAgVHlwZV9Mb3dfQm91bmQgICAgICAgICAgICAgICAgKHN5bnRoKQog ICAtLSAgICBUeXBlX0hpZ2hfQm91bmQgICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIChw bHVzIHR5cGUgYXR0cmlidXRlcykKCiAgIC0tICBFX1BhY2thZ2UKICAgLS0gIEVfR2VuZXJpY19Q YWNrYWdlCiAgIC0tICAgIERlcGVuZGVudF9JbnN0YW5jZXMgICAgICAgICAgIChFbGlzdDgpICAg KGZvciBhbiBpbnN0YW5jZSkKICAgLS0gICAgUmVuYW1pbmdfTWFwICAgICAgICAgICAgICAgICAg KFVpbnQ5KQogICAtLSAgICBIYW5kbGVyX1JlY29yZHMgICAgICAgICAgICAgICAoTGlzdDEwKSAg IChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIEFzc29jaWF0ZWRfRm9ybWFsX1BhY2th Z2UgICAgIChOb2RlMTIpCiAgIC0tICAgIEVsYWJvcmF0aW9uX0VudGl0eSAgICAgICAgICAgIChO b2RlMTMpCiAgIC0tICAgIFNoYWRvd19FbnRpdGllcyAgICAgICAgICAgICAgIChMaXN0MTQpCiAg IC0tICAgIFJlbGF0ZWRfSW5zdGFuY2UgICAgICAgICAgICAgIChOb2RlMTUpICAgKG5vbi1nZW5l cmljIGNhc2Ugb25seSkKICAgLS0gICAgRmlyc3RfUHJpdmF0ZV9FbnRpdHkgICAgICAgICAgKE5v ZGUxNikKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykKICAg LS0gICAgUmVuYW1lZF9FbnRpdHkgICAgICAgICAgICAgICAgKE5vZGUxOCkKICAgLS0gICAgQm9k eV9FbnRpdHkgICAgICAgICAgICAgICAgICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkg ICAgICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAgSW50ZXJmYWNlX05hbWUgICAgICAg ICAgICAgICAgKE5vZGUyMSkKICAgLS0gICAgU2NvcGVfRGVwdGhfVmFsdWUgICAgICAgICAgICAg KFVpbnQyMikKICAgLS0gICAgU2NvcGVfRGVwdGggICAgICAgICAgICAgICAgICAgKHN5bnRoKQog ICAtLSAgICBHZW5lcmljX1JlbmFtaW5ncyAgICAgICAgICAgICAoRWxpc3QyMykgIChmb3IgYW4g aW5zdGFuY2UpCiAgIC0tICAgIElubmVyX0luc3RhbmNlcyAgICAgICAgICAgICAgIChFbGlzdDIz KSAgKGdlbmVyaWMgY2FzZSBvbmx5KQogICAtLSAgICBEZWxheV9TdWJwcm9ncmFtX0Rlc2NyaXB0 b3JzICAoRmxhZzUwKQogICAtLSAgICBEaXNjYXJkX05hbWVzICAgICAgICAgICAgICAgICAoRmxh Zzg4KQogICAtLSAgICBFbGFib3JhdGVfQWxsX0Rlc2lyYWJsZSAgICAgICAoRmxhZzE0NikKICAg LS0gICAgRWxhYm9yYXRpb25fRW50aXR5X1JlcXVpcmVkICAgKEZsYWcxNzQpCiAgIC0tICAgIEZy b21fV2l0aF9UeXBlICAgICAgICAgICAgICAgIChGbGFnMTU5KQogICAtLSAgICBIYXNfQWxsX0Nh bGxzX1JlbW90ZSAgICAgICAgICAoRmxhZzc5KQogICAtLSAgICBIYXNfQ29tcGxldGlvbiAgICAg ICAgICAgICAgICAoRmxhZzI2KQogICAtLSAgICBIYXNfRm9yd2FyZF9JbnN0YW50aWF0aW9uICAg ICAoRmxhZzE3NSkKICAgLS0gICAgSGFzX01hc3Rlcl9FbnRpdHkgICAgICAgICAgICAgKEZsYWcy MSkKICAgLS0gICAgSGFzX1N1YnByb2dyYW1fRGVzY3JpcHRvciAgICAgKEZsYWc5MykKICAgLS0g ICAgSW5fUGFja2FnZV9Cb2R5ICAgICAgICAgICAgICAgKEZsYWc0OCkKICAgLS0gICAgSW5fUHJp dmF0ZV9QYXJ0ICAgICAgICAgICAgICAgKEZsYWc0NSkKICAgLS0gICAgSW5fVXNlICAgICAgICAg ICAgICAgICAgICAgICAgKEZsYWc4KQogICAtLSAgICBJc19JbnN0YW50aWF0ZWQgICAgICAgICAg ICAgICAoRmxhZzEyNikKICAgLS0gICAgSXNfUHJpdmF0ZV9EZXNjZW5kYW50ICAgICAgICAgKEZs YWc1MykKICAgLS0gICAgSXNfVmlzaWJsZV9DaGlsZF9Vbml0ICAgICAgICAgKEZsYWcxMTYpCiAg IC0tICAgIElzX1dyYXBwZXJfUGFja2FnZSAgICAgICAgICAgIChzeW50aCkgICAgKG5vbi1nZW5l cmljIGNhc2Ugb25seSkKCiAgIC0tICBFX1BhY2thZ2VfQm9keQogICAtLSAgICBIYW5kbGVyX1Jl Y29yZHMgICAgICAgICAgICAgICAoTGlzdDEwKSAgIChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAg IC0tICAgIEZpcnN0X0VudGl0eSAgICAgICAgICAgICAgICAgIChOb2RlMTcpCiAgIC0tICAgIFNw ZWNfRW50aXR5ICAgICAgICAgICAgICAgICAgIChOb2RlMTkpCiAgIC0tICAgIExhc3RfRW50aXR5 ICAgICAgICAgICAgICAgICAgIChOb2RlMjApCiAgIC0tICAgIFNjb3BlX0RlcHRoX1ZhbHVlICAg ICAgICAgICAgIChVaW50MjIpCiAgIC0tICAgIFNjb3BlX0RlcHRoICAgICAgICAgICAgICAgICAg IChzeW50aCkKICAgLS0gICAgRGVsYXlfU3VicHJvZ3JhbV9EZXNjcmlwdG9ycyAgKEZsYWc1MCkK ICAgLS0gICAgSGFzX1N1YnByb2dyYW1fRGVzY3JpcHRvciAgICAgKEZsYWc5MykKCiAgIC0tICBF X1ByaXZhdGVfVHlwZQogICAtLSAgRV9Qcml2YXRlX1N1YnR5cGUKICAgLS0gICAgUHJpbWl0aXZl X09wZXJhdGlvbnMgICAgICAgICAgKEVsaXN0MTUpCiAgIC0tICAgIEZpcnN0X0VudGl0eSAgICAg ICAgICAgICAgICAgIChOb2RlMTcpCiAgIC0tICAgIFByaXZhdGVfRGVwZW5kZW50cyAgICAgICAg ICAgIChFbGlzdDE4KQogICAtLSAgICBVbmRlcmx5aW5nX0Z1bGxfVmlldyAgICAgICAgICAoTm9k ZTE5KQogICAtLSAgICBMYXN0X0VudGl0eSAgICAgICAgICAgICAgICAgICAoTm9kZTIwKQogICAt LSAgICBEaXNjcmltaW5hbnRfQ29uc3RyYWludCAgICAgICAoRWxpc3QyMSkKICAgLS0gICAgUHJp dmF0ZV9WaWV3ICAgICAgICAgICAgICAgICAgKE5vZGUyMikKICAgLS0gICAgR2lyZGVyX0NvbnN0 cmFpbnQgICAgICAgICAgICAgKEVsaXN0MjMpCiAgIC0tICAgIEhhc19Db21wbGV0aW9uICAgICAg ICAgICAgICAgIChGbGFnMjYpCiAgIC0tICAgIEhhc19Db21wbGV0aW9uX0luX0JvZHkgICAgICAg IChGbGFnNzEpCiAgIC0tICAgIElzX0NvbnRyb2xsZWQgICAgICAgICAgICAgICAgIChGbGFnNDIp ICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBJc19Gb3JfQWNjZXNzX1N1YnR5cGUgICAgICAg ICAoRmxhZzExOCkgIChzdWJ0eXBlIG9ubHkpCiAgIC0tICAgIEZpcnN0X0Rpc2NyaW1pbmFudCAg ICAgICAgICAgIChzeW50aCkKICAgLS0gICAgRmlyc3RfR2lyZGVyX0Rpc2NyaW1pbmFudCAgICAg KHN5bnRoKQogICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9Qcm9jZWR1 cmUKICAgLS0gIEVfR2VuZXJpY19Qcm9jZWR1cmUKICAgLS0gICAgUmVuYW1pbmdfTWFwICAgICAg ICAgICAgICAgICAgKFVpbnQ5KQogICAtLSAgICBIYW5kbGVyX1JlY29yZHMgICAgICAgICAgICAg ICAoTGlzdDEwKSAgIChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIFByb3RlY3RlZF9C b2R5X1N1YnByb2dyYW0gICAgIChOb2RlMTEpCiAgIC0tICAgIE5leHRfSW5saW5lZF9TdWJwcm9n cmFtICAgICAgIChOb2RlMTIpCiAgIC0tICAgIEVsYWJvcmF0aW9uX0VudGl0eSAgICAgICAgICAg IChOb2RlMTMpCiAgIC0tICAgIEZpcnN0X09wdGlvbmFsX1BhcmFtZXRlciAgICAgIChOb2RlMTQp ICAgKG5vbi1nZW5lcmljIGNhc2Ugb25seSkKICAgLS0gICAgRFRfUG9zaXRpb24gICAgICAgICAg ICAgICAgICAgKFVpbnQxNSkKICAgLS0gICAgRFRDX0VudGl0eSAgICAgICAgICAgICAgICAgICAg KE5vZGUxNikKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykK ICAgLS0gICAgQWxpYXMgICAgICAgICAgICAgICAgICAgICAgICAgKE5vZGUxOCkgICAobm9uLWdl bmVyaWMgY2FzZSBvbmx5KQogICAtLSAgICBSZW5hbWVkX0VudGl0eSAgICAgICAgICAgICAgICAo Tm9kZTE4KSAgIChnZW5lcmljIGNhc2Ugb25seSkKICAgLS0gICAgRmluYWxpemF0aW9uX0NoYWlu X0VudGl0eSAgICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAg ICAgKE5vZGUyMCkKICAgLS0gICAgSW50ZXJmYWNlX05hbWUgICAgICAgICAgICAgICAgKE5vZGUy MSkKICAgLS0gICAgU2NvcGVfRGVwdGhfVmFsdWUgICAgICAgICAgICAgKFVpbnQyMikKICAgLS0g ICAgU2NvcGVfRGVwdGggICAgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBHZW5lcmlj X1JlbmFtaW5ncyAgICAgICAgICAgICAoRWxpc3QyMykgIChmb3IgYW4gaW5zdGFuY2UpCiAgIC0t ICAgIElubmVyX0luc3RhbmNlcyAgICAgICAgICAgICAgIChFbGlzdDIzKSAgKGZvciBhIGdlbmVy aWMgcHJvY2VkdXJlKQogICAtLSAgICBQcml2YWxzX0NoYWluICAgICAgICAgICAgICAgICAoRWxp c3QyMykgIChmb3IgYSBwcm90ZWN0ZWQgcHJvY2VkdXJlKQogICAtLSAgICBFbGFib3JhdGlvbl9F bnRpdHlfUmVxdWlyZWQgICAoRmxhZzE3NCkKICAgLS0gICAgRnVuY3Rpb25fUmV0dXJuc19XaXRo X0RTUCAgICAgKEZsYWcxNjkpICAoYWx3YXlzIEZhbHNlIGZvciBwcm9jZWR1cmUpCiAgIC0tICAg IERlZmF1bHRfRXhwcmVzc2lvbnNfUHJvY2Vzc2VkIChGbGFnMTA4KQogICAtLSAgICBEZWxheV9D bGVhbnVwcyAgICAgICAgICAgICAgICAoRmxhZzExNCkKICAgLS0gICAgRGVsYXlfU3VicHJvZ3Jh bV9EZXNjcmlwdG9ycyAgKEZsYWc1MCkKICAgLS0gICAgRGlzY2FyZF9OYW1lcyAgICAgICAgICAg ICAgICAgKEZsYWc4OCkKICAgLS0gICAgRWxhYm9yYXRlX0FsbF9EZXNpcmFibGUgICAgICAgKEZs YWcxNDYpCiAgIC0tICAgIEhhc19Db21wbGV0aW9uICAgICAgICAgICAgICAgIChGbGFnMjYpCiAg IC0tICAgIEhhc19NYXN0ZXJfRW50aXR5ICAgICAgICAgICAgIChGbGFnMjEpCiAgIC0tICAgIEhh c19OZXN0ZWRfQmxvY2tfV2l0aF9IYW5kbGVyIChGbGFnMTAxKQogICAtLSAgICBIYXNfUHJhZ21h X1B1cmVfRnVuY3Rpb24gICAgICAoRmxhZzE3OSkgIChub24tZ2VuZXJpYyBjYXNlIG9ubHkpCiAg IC0tICAgIEhhc19TdWJwcm9ncmFtX0Rlc2NyaXB0b3IgICAgIChGbGFnOTMpCiAgIC0tICAgIElz X1Zpc2libGVfQ2hpbGRfVW5pdCAgICAgICAgIChGbGFnMTE2KQogICAtLSAgICBJc19BYnN0cmFj dCAgICAgICAgICAgICAgICAgICAoRmxhZzE5KQogICAtLSAgICBJc19Bc3luY2hyb25vdXMgICAg ICAgICAgICAgICAoRmxhZzgxKQogICAtLSAgICBJc19DYWxsZWQgICAgICAgICAgICAgICAgICAg ICAoRmxhZzEwMikgIChub24tZ2VuZXJpYyBzdWJwcm9ncmFtKQogICAtLSAgICBJc19Db25zdHJ1 Y3RvciAgICAgICAgICAgICAgICAoRmxhZzc2KQogICAtLSAgICBJc19EZXN0cnVjdG9yICAgICAg ICAgICAgICAgICAoRmxhZzc3KQogICAtLSAgICBJc19FbGltaW5hdGVkICAgICAgICAgICAgICAg ICAoRmxhZzEyNCkKICAgLS0gICAgSXNfSW5zdGFudGlhdGVkICAgICAgICAgICAgICAgKEZsYWcx MjYpICAoZ2VuZXJpYyBjYXNlIG9ubHkpCiAgIC0tICAgIElzX0ludGVycnVwdF9IYW5kbGVyICAg ICAgICAgIChGbGFnODkpCiAgIC0tICAgIElzX0ludHJpbnNpY19TdWJwcm9ncmFtICAgICAgIChG bGFnNjQpCiAgIC0tICAgIElzX01hY2hpbmVfQ29kZV9TdWJwcm9ncmFtICAgIChGbGFnMTM3KSAg KG5vbi1nZW5lcmljIGNhc2Ugb25seSkKICAgLS0gICAgSXNfTnVsbF9Jbml0X1Byb2MgICAgICAg ICAgICAgKEZsYWcxNzgpCiAgIC0tICAgIElzX1ByaXZhdGVfRGVzY2VuZGFudCAgICAgICAgIChG bGFnNTMpCiAgIC0tICAgIElzX1B1cmUgICAgICAgICAgICAgICAgICAgICAgIChGbGFnNDQpCiAg IC0tICAgIElzX1ZhbHVlZF9Qcm9jZWR1cmUgICAgICAgICAgIChGbGFnMTI3KQogICAtLSAgICBJ c19WaXNpYmxlX0NoaWxkX1VuaXQgICAgICAgICAoRmxhZzExNikKICAgLS0gICAgTmVlZHNfTm9f QWN0dWFscyAgICAgICAgICAgICAgKEZsYWcyMikKICAgLS0gICAgTm9fUmV0dXJuICAgICAgICAg ICAgICAgICAgICAgKEZsYWcxMTMpCiAgIC0tICAgIFNlY19TdGFja19OZWVkZWRfRm9yX1JldHVy biAgIChGbGFnMTY3KQogICAtLSAgICBBZGRyZXNzX0NsYXVzZSAgICAgICAgICAgICAgICAoc3lu dGgpCiAgIC0tICAgIEZpcnN0X0Zvcm1hbCAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0g ICAgTnVtYmVyX0Zvcm1hbHMgICAgICAgICAgICAgICAgKHN5bnRoKQoKICAgLS0gIEVfUHJvdGVj dGVkX0JvZHkKICAgLS0gICAgT2JqZWN0X1JlZiAgICAgICAgICAgICAgICAgICAgKE5vZGUxNykK ICAgLS0gICAgKGFueSBvdGhlcnM/Pz8gRmlyc3QvTGFzdCBFbnRpdHksIFNjb3BlX0RlcHRoPz8/ KQoKICAgLS0gIEVfUHJvdGVjdGVkX09iamVjdAoKICAgLS0gIEVfUHJvdGVjdGVkX1R5cGUKICAg LS0gIEVfUHJvdGVjdGVkX1N1YnR5cGUKICAgLS0gICAgRW50cnlfQm9kaWVzX0FycmF5ICAgICAg ICAgICAgKE5vZGUxNSkKICAgLS0gICAgRmlyc3RfUHJpdmF0ZV9FbnRpdHkgICAgICAgICAgKE5v ZGUxNikKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykKICAg LS0gICAgQ29ycmVzcG9uZGluZ19SZWNvcmRfVHlwZSAgICAgKE5vZGUxOCkKICAgLS0gICAgRmlu YWxpemF0aW9uX0NoYWluX0VudGl0eSAgICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkg ICAgICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAgRGlzY3JpbWluYW50X0NvbnN0cmFp bnQgICAgICAgKEVsaXN0MjEpCiAgIC0tICAgIFNjb3BlX0RlcHRoX1ZhbHVlICAgICAgICAgICAg IChVaW50MjIpCiAgIC0tICAgIFNjb3BlX0RlcHRoICAgICAgICAgICAgICAgICAgIChzeW50aCkK ICAgLS0gICAgR2lyZGVyX0NvbnN0cmFpbnQgICAgICAgICAgICAgKEVsaXN0MjMpCiAgIC0tICAg IEhhc19Db250cm9sbGVkX0NvbXBvbmVudCAgICAgIChGbGFnNDMpICAgKGJhc2UgdHlwZSBvbmx5 KQogICAtLSAgICBIYXNfSW50ZXJydXB0X0hhbmRsZXIgICAgICAgICAoc3ludGgpCiAgIC0tICAg IFNlY19TdGFja19OZWVkZWRfRm9yX1JldHVybiAgIChGbGFnMTY3KSA/Pz8KICAgLS0gICAgVXNl c19TZWNfU3RhY2sgICAgICAgICAgICAgICAgKEZsYWc5NSkgPz8/CiAgIC0tICAgIEhhc19FbnRy aWVzICAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgTnVtYmVyX0VudHJpZXMgICAg ICAgICAgICAgICAgKHN5bnRoKQoKICAgLS0gIEVfUmVjb3JkX1R5cGUKICAgLS0gIEVfUmVjb3Jk X1N1YnR5cGUKICAgLS0gICAgUHJpbWl0aXZlX09wZXJhdGlvbnMgICAgICAgICAgKEVsaXN0MTUp CiAgIC0tICAgIEFjY2Vzc19EaXNwX1RhYmxlICAgICAgICAgICAgIChOb2RlMTYpICAgKGJhc2Ug dHlwZSBvbmx5KQogICAtLSAgICBDbG9uZWRfU3VidHlwZSAgICAgICAgICAgICAgICAoTm9kZTE2 KSAgIChzdWJ0eXBlIGNhc2Ugb25seSkKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAgICAg ICAgICAgKE5vZGUxNykKICAgLS0gICAgQ29ycmVzcG9uZGluZ19Db25jdXJyZW50X1R5cGUgKE5v ZGUxOCkKICAgLS0gICAgUGFyZW50X1N1YnR5cGUgICAgICAgICAgICAgICAgKE5vZGUxOSkKICAg LS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAgKE5vZGUyMCkKICAgLS0gICAgRGlz Y3JpbWluYW50X0NvbnN0cmFpbnQgICAgICAgKEVsaXN0MjEpCiAgIC0tICAgIENvcnJlc3BvbmRp bmdfUmVtb3RlX1R5cGUgICAgIChOb2RlMjIpICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBH aXJkZXJfQ29uc3RyYWludCAgICAgICAgICAgICAoRWxpc3QyMykKICAgLS0gICAgQ29tcG9uZW50 X0FsaWdubWVudCAgICAgICAgICAgKHNwZWNpYWwpICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0tICAg IENfUGFzc19CeV9Db3B5ICAgICAgICAgICAgICAgIChGbGFnMTI1KSAgKGJhc2UgdHlwZSBvbmx5 KQogICAtLSAgICBIYXNfQ29udHJvbGxlZF9Db21wb25lbnQgICAgICAoRmxhZzQzKSAgIChiYXNl IHR5cGUgb25seSkKICAgLS0gICAgSGFzX0V4dGVybmFsX1RhZ19SZXBfQ2xhdXNlICAgKEZsYWcx MTApCiAgIC0tICAgIEhhc19SZWNvcmRfUmVwX0NsYXVzZSAgICAgICAgIChGbGFnNjUpCiAgIC0t ICAgIElzX0NvbmN1cnJlbnRfUmVjb3JkX1R5cGUgICAgIChGbGFnMjApCiAgIC0tICAgIElzX0Nv bnN0cmFpbmVkICAgICAgICAgICAgICAgIChGbGFnMTIpCiAgIC0tICAgIElzX0NvbnRyb2xsZWQg ICAgICAgICAgICAgICAgIChGbGFnNDIpICAgKGJhc2UgdHlwZSBvbmx5KQogICAtLSAgICBSZXZl cnNlX0JpdF9PcmRlciAgICAgICAgICAgICAoRmxhZzE2NCkgIChiYXNlIHR5cGUgb25seSkKICAg LS0gICAgRmlyc3RfQ29tcG9uZW50ICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICBGaXJz dF9EaXNjcmltaW5hbnQgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIEZpcnN0X0dpcmRlcl9E aXNjcmltaW5hbnQgICAgIChzeW50aCkKICAgLS0gICAgVGFnX0NvbXBvbmVudCAgICAgICAgICAg ICAgICAgKHN5bnRoKQogICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9S ZWNvcmRfVHlwZV9XaXRoX1ByaXZhdGUKICAgLS0gIEVfUmVjb3JkX1N1YnR5cGVfV2l0aF9Qcml2 YXRlCiAgIC0tICAgIFByaW1pdGl2ZV9PcGVyYXRpb25zICAgICAgICAgIChFbGlzdDE1KQogICAt LSAgICBBY2Nlc3NfRGlzcF9UYWJsZSAgICAgICAgICAgICAoTm9kZTE2KSAgIChiYXNlIHR5cGUg b25seSkKICAgLS0gICAgRmlyc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykKICAg LS0gICAgUHJpdmF0ZV9EZXBlbmRlbnRzICAgICAgICAgICAgKEVsaXN0MTgpCiAgIC0tICAgIFVu ZGVybHlpbmdfRnVsbF9WaWV3ICAgICAgICAgIChOb2RlMTkpCiAgIC0tICAgIExhc3RfRW50aXR5 ICAgICAgICAgICAgICAgICAgIChOb2RlMjApCiAgIC0tICAgIERpc2NyaW1pbmFudF9Db25zdHJh aW50ICAgICAgIChFbGlzdDIxKQogICAtLSAgICBQcml2YXRlX1ZpZXcgICAgICAgICAgICAgICAg ICAoTm9kZTIyKQogICAtLSAgICBHaXJkZXJfQ29uc3RyYWludCAgICAgICAgICAgICAoRWxpc3Qy MykKICAgLS0gICAgSGFzX0NvbXBsZXRpb24gICAgICAgICAgICAgICAgKEZsYWcyNikKICAgLS0g ICAgSGFzX0NvbXBsZXRpb25fSW5fQm9keSAgICAgICAgKEZsYWc3MSkKICAgLS0gICAgSGFzX0Nv bnRyb2xsZWRfQ29tcG9uZW50ICAgICAgKEZsYWc0MykgICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0t ICAgIEhhc19SZWNvcmRfUmVwX0NsYXVzZSAgICAgICAgIChGbGFnNjUpCiAgIC0tICAgIEhhc19F eHRlcm5hbF9UYWdfUmVwX0NsYXVzZSAgIChGbGFnMTEwKQogICAtLSAgICBJc19Db25jdXJyZW50 X1JlY29yZF9UeXBlICAgICAoRmxhZzIwKQogICAtLSAgICBJc19Db25zdHJhaW5lZCAgICAgICAg ICAgICAgICAoRmxhZzEyKQogICAtLSAgICBJc19Db250cm9sbGVkICAgICAgICAgICAgICAgICAo RmxhZzQyKSAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgUmV2ZXJzZV9CaXRfT3JkZXIgICAg ICAgICAgICAgKEZsYWcxNjQpICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0tICAgIEZpcnN0X0NvbXBv bmVudCAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgRmlyc3RfRGlzY3JpbWluYW50ICAg ICAgICAgICAgKHN5bnRoKQogICAtLSAgICBGaXJzdF9HaXJkZXJfRGlzY3JpbWluYW50ICAgICAo c3ludGgpCiAgIC0tICAgIFRhZ19Db21wb25lbnQgICAgICAgICAgICAgICAgIChzeW50aCkKICAg LS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfU2lnbmVkX0ludGVnZXJfVHlw ZQogICAtLSAgRV9TaWduZWRfSW50ZWdlcl9TdWJ0eXBlCiAgIC0tICAgIFNjYWxhcl9SYW5nZSAg ICAgICAgICAgICAgICAgIChOb2RlMjApCiAgIC0tICAgIEhhc19CaWFzZWRfUmVwcmVzZW50YXRp b24gICAgIChGbGFnMTM5KQogICAtLSAgICBUeXBlX0xvd19Cb3VuZCAgICAgICAgICAgICAgICAo c3ludGgpCiAgIC0tICAgIFR5cGVfSGlnaF9Cb3VuZCAgICAgICAgICAgICAgIChzeW50aCkKICAg LS0gICAgKHBsdXMgdHlwZSBhdHRyaWJ1dGVzKQoKICAgLS0gIEVfU3RyaW5nX1R5cGUKICAgLS0g IEVfU3RyaW5nX1N1YnR5cGUKICAgLS0gICAgRmlyc3RfSW5kZXggICAgICAgICAgICAgICAgICAg KE5vZGUxNykKICAgLS0gICAgQ29tcG9uZW50X1R5cGUgICAgICAgICAgICAgICAgKE5vZGUyMCkg ICAoYmFzZSB0eXBlIG9ubHkpCiAgIC0tICAgIElzX0NvbnN0cmFpbmVkICAgICAgICAgICAgICAg IChGbGFnMTIpCiAgIC0tICAgIE5leHRfSW5kZXggICAgICAgICAgICAgICAgICAgIChzeW50aCkK ICAgLS0gICAgTnVtYmVyX0RpbWVuc2lvbnMgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICAo cGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9TdHJpbmdfTGl0ZXJhbF9TdWJ0eXBlCiAg IC0tICAgIFN0cmluZ19MaXRlcmFsX0xvd19Cb3VuZCAgICAgIChOb2RlMTUpCiAgIC0tICAgIFN0 cmluZ19MaXRlcmFsX0xlbmd0aCAgICAgICAgIChVaW50MTYpCiAgIC0tICAgIEZpcnN0X0luZGV4 ICAgICAgICAgICAgICAgICAgIChOb2RlMTcpICAgKGFsd2F5cyBFbXB0eSkKICAgLS0gICAgQ29t cG9uZW50X1R5cGUgICAgICAgICAgICAgICAgKE5vZGUyMCkgICAoYmFzZSB0eXBlIG9ubHkpCiAg IC0tICAgIFBhY2tlZF9BcnJheV9UeXBlICAgICAgICAgICAgIChOb2RlMjMpCiAgIC0tICAgIChw bHVzIHR5cGUgYXR0cmlidXRlcykKCiAgIC0tICBFX1N1YnByb2dyYW1fQm9keQogICAtLSAgICBG aXJzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAoTm9kZTE3KQogICAtLSAgICBMYXN0X0VudGl0 eSAgICAgICAgICAgICAgICAgICAoTm9kZTIwKQogICAtLSAgICBTY29wZV9EZXB0aF9WYWx1ZSAg ICAgICAgICAgICAoVWludDIyKQogICAtLSAgICBTY29wZV9EZXB0aCAgICAgICAgICAgICAgICAg ICAoc3ludGgpCgogICAtLSAgRV9TdWJwcm9ncmFtX1R5cGUKICAgLS0gICAgRGlyZWN0bHlfRGVz aWduYXRlZF9UeXBlICAgICAgKE5vZGUyMCkKICAgLS0gICAgRmlyc3RfRm9ybWFsICAgICAgICAg ICAgICAgICAgKHN5bnRoKQogICAtLSAgICBOdW1iZXJfRm9ybWFscyAgICAgICAgICAgICAgICAo c3ludGgpCiAgIC0tICAgIEZ1bmN0aW9uX1JldHVybnNfV2l0aF9EU1AgICAgIChGbGFnMTY5KQog ICAtLSAgICAocGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9UYXNrX0JvZHkKICAgLS0g ICAgKGFueSBvdGhlcnM/Pz8gRmlyc3QvTGFzdCBFbnRpdHksIFNjb3BlX0RlcHRoPz8/KQoKICAg LS0gIEVfVGFza19UeXBlCiAgIC0tICBFX1Rhc2tfU3VidHlwZQogICAtLSAgICBTdG9yYWdlX1Np emVfVmFyaWFibGUgICAgICAgICAoTm9kZTE1KSAgIChiYXNlIHR5cGUgb25seSkKICAgLS0gICAg Rmlyc3RfUHJpdmF0ZV9FbnRpdHkgICAgICAgICAgKE5vZGUxNikKICAgLS0gICAgRmlyc3RfRW50 aXR5ICAgICAgICAgICAgICAgICAgKE5vZGUxNykKICAgLS0gICAgQ29ycmVzcG9uZGluZ19SZWNv cmRfVHlwZSAgICAgKE5vZGUxOCkKICAgLS0gICAgRmluYWxpemF0aW9uX0NoYWluX0VudGl0eSAg ICAgKE5vZGUxOSkKICAgLS0gICAgTGFzdF9FbnRpdHkgICAgICAgICAgICAgICAgICAgKE5vZGUy MCkKICAgLS0gICAgRGlzY3JpbWluYW50X0NvbnN0cmFpbnQgICAgICAgKEVsaXN0MjEpCiAgIC0t ICAgIFNjb3BlX0RlcHRoX1ZhbHVlICAgICAgICAgICAgIChVaW50MjIpCiAgIC0tICAgIFNjb3Bl X0RlcHRoICAgICAgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgR2lyZGVyX0NvbnN0cmFp bnQgICAgICAgICAgICAgKEVsaXN0MjMpCiAgIC0tICAgIERlbGF5X0NsZWFudXBzICAgICAgICAg ICAgICAgIChGbGFnMTE0KQogICAtLSAgICBIYXNfTWFzdGVyX0VudGl0eSAgICAgICAgICAgICAo RmxhZzIxKQogICAtLSAgICBIYXNfU3RvcmFnZV9TaXplX0NsYXVzZSAgICAgICAoRmxhZzIzKSAg IChiYXNlIHR5cGUgb25seSkKICAgLS0gICAgVXNlc19TZWNfU3RhY2sgICAgICAgICAgICAgICAg KEZsYWc5NSkgID8/PwogICAtLSAgICBTZWNfU3RhY2tfTmVlZGVkX0Zvcl9SZXR1cm4gICAoRmxh ZzE2NykgPz8/CiAgIC0tICAgIEhhc19FbnRyaWVzICAgICAgICAgICAgICAgICAgIChzeW50aCkK ICAgLS0gICAgTnVtYmVyX0VudHJpZXMgICAgICAgICAgICAgICAgKHN5bnRoKQogICAtLSAgICAo cGx1cyB0eXBlIGF0dHJpYnV0ZXMpCgogICAtLSAgRV9WYXJpYWJsZQogICAtLSAgICBIaWRpbmdf TG9vcF9WYXJpYWJsZSAgICAgICAgICAoTm9kZTgpCiAgIC0tICAgIFNpemVfQ2hlY2tfQ29kZSAg ICAgICAgICAgICAgIChOb2RlOSkKICAgLS0gICAgRXNpemUgICAgICAgICAgICAgICAgICAgICAg ICAgKFVpbnQxMikKICAgLS0gICAgRXh0cmFfQWNjZXNzaWJpbGl0eSAgICAgICAgICAgKE5vZGUx MykKICAgLS0gICAgQWxpZ25tZW50ICAgICAgICAgICAgICAgICAgICAgKFVpbnQxNCkKICAgLS0g ICAgU2hhcmVkX1Zhcl9SZWFkX1Byb2MgICAgICAgICAgKE5vZGUxNSkKICAgLS0gICAgVW5zZXRf UmVmZXJlbmNlICAgICAgICAgICAgICAgKE5vZGUxNikKICAgLS0gICAgQWN0dWFsX1N1YnR5cGUg ICAgICAgICAgICAgICAgKE5vZGUxNykKICAgLS0gICAgUmVuYW1lZF9PYmplY3QgICAgICAgICAg ICAgICAgKE5vZGUxOCkKICAgLS0gICAgSW50ZXJmYWNlX05hbWUgICAgICAgICAgICAgICAgKE5v ZGUyMSkKICAgLS0gICAgU2hhcmVkX1Zhcl9Bc3NpZ25fUHJvYyAgICAgICAgKE5vZGUyMikKICAg LS0gICAgRXh0cmFfQ29uc3RyYWluZWQgICAgICAgICAgICAgKE5vZGUyMykKICAgLS0gICAgSGFz X0FsaWdubWVudF9DbGF1c2UgICAgICAgICAgKEZsYWc0NikKICAgLS0gICAgSGFzX0F0b21pY19D b21wb25lbnRzICAgICAgICAgKEZsYWc4NikKICAgLS0gICAgSGFzX0JpYXNlZF9SZXByZXNlbnRh dGlvbiAgICAgKEZsYWcxMzkpCiAgIC0tICAgIEhhc19TaXplX0NsYXVzZSAgICAgICAgICAgICAg IChGbGFnMjkpCiAgIC0tICAgIEhhc19Wb2xhdGlsZV9Db21wb25lbnRzICAgICAgIChGbGFnODcp CiAgIC0tICAgIElzX0F0b21pYyAgICAgICAgICAgICAgICAgICAgIChGbGFnODUpCiAgIC0tICAg IElzX0VsaW1pbmF0ZWQgICAgICAgICAgICAgICAgIChGbGFnMTI0KQogICAtLSAgICBJc19Qc2Vj dGVkICAgICAgICAgICAgICAgICAgICAoRmxhZzE1MykKICAgLS0gICAgSXNfU2hhcmVkX1Bhc3Np dmUgICAgICAgICAgICAgKEZsYWc2MCkKICAgLS0gICAgSXNfVHJ1ZV9Db25zdGFudCAgICAgICAg ICAgICAgKEZsYWcxNjMpCiAgIC0tICAgIElzX1ZvbGF0aWxlICAgICAgICAgICAgICAgICAgIChG bGFnMTYpCiAgIC0tICAgIE5vdF9Tb3VyY2VfQXNzaWduZWQgICAgICAgICAgIChGbGFnMTE1KQog ICAtLSAgICBBZGRyZXNzX0NsYXVzZSAgICAgICAgICAgICAgICAoc3ludGgpCiAgIC0tICAgIEFs aWdubWVudF9DbGF1c2UgICAgICAgICAgICAgIChzeW50aCkKICAgLS0gICAgU2l6ZV9DbGF1c2Ug ICAgICAgICAgICAgICAgICAgKHN5bnRoKQoKICAgLS0gIEVfVm9pZAogICAtLSAgICBTaW5jZSBF X1ZvaWQgaXMgdGhlIGluaXRpYWwgRWtpbmQgdmFsdWUgb2YgYW4gZW50aXR5IHdoZW4gaXQgaXMg Zmlyc3QKICAgLS0gICAgY3JlYXRlZCwgb25lIG1pZ2h0IGV4cGVjdCB0aGF0IG5vIGF0dHJpYnV0 ZXMgd291bGQgYmUgZGVmaW5lZCBvbiBzdWNoCiAgIC0tICAgIGFuIGVudGl0eSB1bnRpbCBpdHMg RWtpbmQgZmllbGQgaXMgc2V0LiBIb3dldmVyLCBpbiBwcmFjdGljZSwgdGhlcmUKICAgLS0gICAg YXJlIG1hbnkgaW5zdGFuY2VzIGluIHdoaWNoIGZpZWxkcyBvZiBhbiBFX1ZvaWQgZW50aXR5IGFy ZSBzZXQgaW4gdGhlCiAgIC0tICAgIGNvZGUgcHJpb3IgdG8gc2V0dGluZyB0aGUgRWtpbmQgZmll bGQuIFRoaXMgaXMgbm90IHdlbGwgZG9jdW1lbnRlZCBvcgogICAtLSAgICB3ZWxsIGNvbnRyb2xs ZWQsIGFuZCBuZWVkcyBjbGVhbmluZyB1cCBsYXRlci4gTWVhbndoaWxlLCB0aGUgYWNjZXNzCiAg IC0tICAgIHByb2NlZHVyZXMgaW4gdGhlIGJvZHkgb2YgRWluZm8gcGVybWl0IG1hbnksIGJ1dCBu b3QgYWxsLCBhdHRyaWJ1dGVzCiAgIC0tICAgIHRvIGJlIGFwcGxpZWQgdG8gYW4gRV9Wb2lkIGVu dGl0eSwgcHJlY2lzZWx5IHNvIHRoYXQgdGhpcyBraW5kIG9mCiAgIC0tICAgIHByZS1zZXR0aW5n IG9mIGF0dHJpYnV0ZXMgd29ya3MuIFRoaXMgaXMgcmVhbGx5IGEgaG9sZSBpbiB0aGUgZHluYW1p YwogICAtLSAgICB0eXBlIGNoZWNraW5nLCBzaW5jZSB0aGVyZSBpcyBubyBhc3N1cmFuY2UgdGhh dCB0aGUgZXZlbnR1YWwgRWtpbmQKICAgLS0gICAgdmFsdWUgd2lsbCBiZSBhcHByb3ByaWF0ZSBm b3IgdGhlIGF0dHJpYnV0ZXMgc2V0LCBhbmQgdGhlIGNvbnNlcXVlbmNlCiAgIC0tICAgIGlzIHRo YXQgdGhlIGR5bmFtaWMgdHlwZSBjaGVja2luZyBpbiB0aGUgRWluZm8gYm9keSBpcyB1bm5lY2Vz c2FyaWx5CiAgIC0tICAgIHdlYWsuIFRvIGJlIGxvb2tlZCBhdCBzeXN0ZW1hdGljYWxseSBzb21l IHRpbWUgPz8/CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ29t cG9uZW50X0FsaWdubWVudCBDb250cm9sIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgLS0gIFRoZXJlIGFyZSBmb3VyIHR5cGVzIG9mIGFsaWdubWVudCBwb3NzaWJs ZSBmb3IgYXJyYXkgYW5kIHJlY29yZAogICAtLSAgdHlwZXMsIGFuZCBhIGZpZWxkIGluIHRoZSB0 eXBlIGVudGl0aWVzIGNvbnRhaW5zIGEgdmFsdWUgb2YgdGhlCiAgIC0tICBmb2xsb3dpbmcgdHlw ZSBpbmRpY2F0aW5nIHdoaWNoIGFsaWdubWVudCBjaG9pY2UgYXBwbGllcy4gRm9yIGZ1bGwKICAg LS0gIGRldGFpbHMgb2YgdGhlIG1lYW5pbmcgb2YgdGhlc2UgYWxpZ21lbnQgdHlwZXMsIHNlZSBk ZXNjcmlwdGlvbgogICAtLSAgb2YgdGhlIENvbXBvbmVudF9BbGlnbm1lbnQgcHJhZ21hCgogICB0 eXBlIENvbXBvbmVudF9BbGlnbm1lbnRfS2luZCBpcyAoCiAgICAgIENhbGlnbl9EZWZhdWx0LCAg ICAgICAgICAtLSBkZWZhdWx0IGFsaWdubWVudAogICAgICBDYWxpZ25fQ29tcG9uZW50X1NpemUs ICAgLS0gbmF0dXJhbCBhbGlnbm1lbnQgZm9yIGNvbXBvbmVudCBzaXplCiAgICAgIENhbGlnbl9D b21wb25lbnRfU2l6ZV80LCAtLSBuYXR1cmFsIGZvciBzaXplIDw9IDQsIDQgZm9yIHNpemUgPj0g NAogICAgICBDYWxpZ25fU3RvcmFnZV9Vbml0KTsgICAgLS0gYWxsIGNvbXBvbmVudHMgYnl0ZSBh bGlnbmVkCgogICAtLS0tLS0tLS0tLS0tLS0KICAgLS0gSXRlcmF0b3JzIC0tCiAgIC0tLS0tLS0t LS0tLS0tLQoKICAgLS0gIEluIGFkZGl0aW9uIHRvIGF0dHJpYnV0ZXMgdGhhdCBhcmUgc3RvcmVk IGFzIHBsYWluIGRhdGEsIG90aGVyCiAgIC0tICBhdHRyaWJ1dGVzIGFyZSBwcm9jZWR1cmFsLCBh bmQgcmVxdWlyZSBzb21lIHNtYWxsIGFtb3VudCBvZgogICAtLSAgY29tcHV0YXRpb24uIE9mIGNv dXJzZSwgZnJvbSB0aGUgcG9pbnQgb2YgdmlldyBvZiBhIHVzZXIgb2YgdGhpcwogICAtLSAgcGFj a2FnZSwgdGhlIGRpc3RpbmN0aW9uIGlzIG5vdCB2aXNpYmxlIChldmVuIHRoZSBmaWVsZCBpbmZv cm1hdGlvbgogICAtLSAgcHJvdmlkZWQgYmVsb3cgc2hvdWxkIGJlIGRpc3JlZ2FyZGVkLCBhcyBp dCBpcyBzdWJqZWN0IHRvICBjaGFuZ2UKICAgLS0gIHdpdGhvdXQgbm90aWNlISkuIEEgbnVtYmVy IG9mICBhdHRyaWJ1dGVzIGFwcGVhciBhcyBsaXN0czogbGlzdHMgb2YKICAgLS0gIGZvcm1hbHMs ICBsaXN0cyBvZiBhY3R1YWxzLCBvZiBkaXNjcmltaW5hbnRzLCBldGMuIEZvciB0aGVzZSwgcGFp cnMKICAgLS0gIG9mIGZ1bmN0aW9ucyBhcmUgZGVmaW5lZCwgd2hpY2ggdGFrZSB0aGUgZm9ybToK CiAgIC0tICAgICAgZnVuY3Rpb24gRmlyc3RfVGhpbmcgKEUgOiBFbmNsb3NpbmdfQ29uc3RydWN0 KSByZXR1cm4gVGhpbmc7CiAgIC0tICAgICAgZnVuY3Rpb24gTmV4dF9UaGluZyAoVCA6IFRoaW5n KSByZXR1cm4gVGhpbmc7CgogICAtLSAgVGhlIGVuZCBvZiBpdGVyYXRpb24gaXMgYWx3YXlzIHNp Z25hbGVkIGJ5IGEgdmFsdWUgb2YgRW1wdHksIHNvIHRoYXQKICAgLS0gIGxvb3BzIG92ZXIgdGhl c2UgY2hhaW5zIGludmFyaWFibHkgaGF2ZSB0aGUgZm9ybToKCiAgIC0tICAgICAgVGhpcyA6IFRo aW5nOwogICAtLSAgICAgIC4uLgogICAtLSAgICAgIFRoaXMgOj0gRmlyc3RfVGhpbmcgKEUpOwoK ICAgLS0gICAgICB3aGlsZSBQcmVzZW50IChUaGlzKSBsb29wCiAgIC0tICAgICAgICAgRG9fU29t ZXRoaW5nX1dpdGggKFRoaXMpOwogICAtLSAgICAgICAgLi4uCiAgIC0tICAgICAgICBUaGlzIDo9 IE5leHRfVGhpbmcgKFRoaXMpOwogICAtLSAgICAgIGVuZCBsb29wOwoKICAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSGFuZGxpbmcgb2YgQ2hlY2sgU3VwcHJlc3Np b24gLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGVy ZSBhcmUgdGhyZWUgd2F5cyB0aGF0IGNoZWNrcyBjYW4gYmUgc3VwcHJlc3NlZDoKCiAgIC0tICAg IDEuICBBdCB0aGUgY29tbWFuZCBsaW5lIGxldmVsLiBQYWNrYWdlIE9wdCBjb250YWlucyBnbG9i YWwgQm9vbGVhbgogICAtLSAgICAgICAgZmxhZ3Mgd2l0aCBuYW1lcyBTdXBwcmVzc19PcHRpb25z Lnh4eF9DaGVja3MsIHdoZXJlIHh4eCBpcyB0aGUKICAgLS0gICAgICAgIG5hbWUgb2Ygb25lIG9m IHRoZSBjaGVja3MgdGhhdCBjYW4gYmUgc3VwcHJlc3NlZCAoZXhjbHVkaW5nCiAgIC0tICAgICAg ICBBbGxfQ2hlY2tzLCB3aGljaCBpcyBzaW1wbHkgcmVmbGVjdGVkIGJ5IHNldHRpbmcgYWxsIHRo ZQogICAtLSAgICAgICAgaW5kaXZpZHVhbCBmbGFncykKCiAgIC0tICAgIDIuICBBdCB0aGUgc2Nv cGUgbGV2ZWwuIFRoZSBib2R5IG9mIFNlbSBjb250YWlucyBmbGFncyB3aXRoIG5hbWVzCiAgIC0t ICAgICAgICBTdXBwcmVzcy54eHhfQ2hlY2tzIHdoaWNoIGFyZSBzZXQgdG8gaW5kaWNhdGUgdGhh dCB0aGUgZ2l2ZW4KICAgLS0gICAgICAgIGNoZWNrIGlzIHN1cHByZXNzZWQgZm9yIHRoZSBjdXJy ZW50IHNjb3BlLiBUaGVzZSBmbGFncyBhcmUKICAgLS0gICAgICAgIHNhdmVkIGluIHRoZSBzY29w ZSBzdGFjayBvbiBlbnRyeSB0byBhIHNjb3BlIGFuZCByZXN0b3JlZCBvbgogICAtLSAgICAgICAg ZXhpdCBmcm9tIHRoZSBzY29wZS4KCiAgIC0tICAgIDMuICBBdCB0aGUgZW50aXR5IGxldmVsLiBF YWNoIGVudGl0eSBjb250YWlucyBhIHNldCBvZiBmbGFncyBuYW1lZAogICAtLSAgICAgICAgU3Vw cHJlc3NfeHh4X0NoZWNrcyB3aGljaCBzdXBwcmVzcyB0aGUgZ2l2ZW4gY2hlY2sgZm9yIHRoYXQK ICAgLS0gICAgICAgIHBhcnRpY3VsYXJseSBlbnRpdHkgKG9mIGNvdXJzZSBub3QgYWxsIGZsYWdz IGFyZSBtZWFuaW5nZnVsIGZvcgogICAtLSAgICAgICAgYWxsIGVudGl0aWVzKS4KCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gSGFuZGxpbmcgb2YgRGlzY3JpbWluYW50 cyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgRHVyaW5nIHNl bWFudGljIHByb2Nlc3NpbmcsIGRpc2NyaW1pbmFudHMgYXJlIHNlcGFyYXRlIGVudGl0aWVzIHdo aWNoCiAgIC0tICByZWZsZWN0IHRoZSBzZW1hbnRpYyBwcm9wZXJ0aWVzIGFuZCBhbGxvd2VkIHVz YWdlIG9mIGRpc2NyaW1pbmFudHMgaW4KICAgLS0gIHRoZSBsYW5ndWFnZS4KCiAgIC0tICBJbiB0 aGUgY2FzZSBvZiBkaXNjcmltaW5hbnRzIHVzZWQgYXMgYm91bmRzLCB0aGUgcmVmZXJlbmNlcyBh cmUgaGFuZGxlZAogICAtLSAgZGlyZWN0bHksIHNpbmNlIHNwZWNpYWwgcHJvY2Vzc2luZyBpcyBu ZWVkZWQgaW4gYW55IGNhc2UuIEhvd2V2ZXIsIHRoZXJlCiAgIC0tICBhcmUgdHdvIGNpcmN1bXN0 YW5jZXMgaW4gd2hpY2ggZGlzY3JpbWluYW50cyBhcmUgcmVmZXJlbmNlZCBpbiBhIHF1aXRlCiAg IC0tICBnZW5lcmFsIG1hbm5lciwgbGlrZSBhbnkgb3RoZXIgdmFyaWFibGVzOgoKICAgLS0gICAg IEluIGluaXRpYWxpemF0aW9uIGV4cHJlc3Npb25zIGZvciByZWNvcmRzLiBOb3RlIHRoYXQgdGhl IGV4cHJlc3Npb25zCiAgIC0tICAgICB1c2VkIGluIFByaW9yaXR5LCBTdG9yYWdlX1NpemUsIGFu ZCBUYXNrX0luZm8gcHJhZ21hcyBhcmUgZWZmZWN0aXZlbHkKICAgLS0gICAgIGluIHRoaXMgY2F0 ZWdvcnksIHNpbmNlIHRoZXNlIHByYWdtYXMgYXJlIGNvbnZlcnRlZCB0byBpbml0aWFsaXplZAog ICAtLSAgICAgcmVjb3JkIGZpZWxkcyBpbiB0aGUgQ29ycmVzcG9uZGluZ19SZWNvcmRfVHlwZS4K CiAgIC0tICAgICBJbiB0YXNrIGFuZCBwcm90ZWN0ZWQgYm9kaWVzLCB3aGVyZSB0aGUgZGlzY3Jp bWluYW50IHZhbHVlcyBtYXkgYmUKICAgLS0gICAgIHJlZmVyZW5jZWQgZnJlZWx5IHdpdGhpbiB0 aGVzZSBib2RpZXMuIERpc2NyaW1pbmFudHMgY2FuIGFsc28gYXBwZWFyCiAgIC0tICAgICBpbiBi b3VuZHMgb2YgZW50cnkgZmFtaWxpZXMgYW5kIGluIGRlZmF1bHRzIG9mIG9wZXJhdGlvbnMuCgog ICAtLSAgSW4gYm90aCB0aGVzZSBjYXNlcywgdGhlIGRpc2NyaW1pbmFudHMgbXVzdCBiZSB0cmVh dGVkIGVzc2VudGlhbGx5IGFzCiAgIC0tICBvYmplY3RzLiBUaGUgZm9sbG93aW5nIGFwcHJvYWNo IGlzIHVzZWQgdG8gc2ltcGxpZnkgYW5kIG1pbmltaXplIHRoZQogICAtLSAgc3BlY2lhbCBwcm9j ZXNzaW5nIHRoYXQgaXMgcmVxdWlyZWQuCgogICAtLSAgV2hlbiBhIHJlY29yZCB0eXBlIHdpdGgg ZGlzY3JpbWluYW50cyBpcyBwcm9jZXNzZWQsIHRoZSBzZW1hbnRpYwogICAtLSAgcHJvY2Vzc2lu ZyBjcmVhdGVzIHRoZSBlbnRpdGllcyBmb3IgdGhlIGRpc2NyaW1pbmFudHMuIEl0IGFsc28gY3Jl YXRlcwogICAtLSAgYW4gYWRkaXRpb25hbCBzZXQgb2YgZW50aXRpZXMsIGNhbGxlZCBkaXNjcmlt aW5hbHMsIG9uZSBmb3IgZWFjaCBvZgogICAtLSAgdGhlIGRpc2NyaW1pbmFudHMsIGFuZCB0aGUg RGlzY3JpbWluYWwgZmllbGQgb2YgdGhlIGRpc2NyaW1pbmFudCBlbnRpdHkKICAgLS0gIHBvaW50 cyB0byB0aGlzIGFkZGl0aW9uYWwgZW50aXR5LCB3aGljaCBpcyBpbml0aWFsbHkgY3JlYXRlZCBh cyBhbgogICAtLSAgdW5pbml0aWFsaXplZCAoRV9Wb2lkKSBlbnRpdHkuCgogICAtLSAgRHVyaW5n IGV4cGFuc2lvbiBvZiBleHByZXNzaW9ucywgYW55IGRpc2NyaW1pbmFudCByZWZlcmVuY2UgaXMg cmVwbGFjZWQKICAgLS0gIGJ5IGEgcmVmZXJlbmNlIHRvIHRoZSBjb3JyZXNwb25kaW5nIGRpc2Ny aW1pbmFsLiBXaGVuIHRoZSBpbml0aWFsaXphdGlvbgogICAtLSAgcHJvY2VkdXJlIGZvciB0aGUg cmVjb3JkIGlzIGNyZWF0ZWQgKHRoZXJlIHdpbGwgYWx3YXlzIGJlIG9uZSwgc2luY2UKICAgLS0g IGRpc2NyaW1pbmFudHMgYXJlIHByZXNlbnQsIHNlZSBFeHBfQ2gzIGZvciBmdXJ0aGVyIGRldGFp bHMpLCB0aGUKICAgLS0gIGRpc2NyaW1pbmFscyBhcmUgdXNlZCBhcyB0aGUgZW50aXRpZXMgZm9y IHRoZSBmb3JtYWwgcGFyYW1ldGVycyBvZgogICAtLSAgdGhpcyBpbml0aWFsaXphdGlvbiBwcm9j ZWR1cmUuIFRoZSByZWZlcmVuY2VzIHRvIHRoZXNlIGRpc2NyaW1pbmFudHMKICAgLS0gIGhhdmUg YWxyZWFkeSBiZWVuIHJlcGxhY2VkIGJ5IHJlZmVyZW5jZXMgdG8gdGhlc2UgZGlzY3JpbWluYWxz LCB3aGljaAogICAtLSAgYXJlIG5vdyB0aGUgZm9ybWFsIHBhcmFtZXRlcnMgY29ycmVzcG9uZGlu ZyB0byB0aGUgcmVxdWlyZWQgb2JqZWN0cy4KCiAgIC0tICBJbiB0aGUgY2FzZSBvZiBhIHRhc2sg b3IgcHJvdGVjdGVkIGJvZHksIHRoZSBzZW1hbnRpY3Mgc2ltaWxhcmx5CiAgIC0tICBjcmVhdGVz IGEgc2V0IG9mIGRpc2NyaW1pbmFscyBmb3IgdGhlIGRpc2NyaW1pbmFudHMgb2YgdGhlIHRhc2sg b3IKICAgLS0gIHByb3RlY3RlZCB0eXBlLiBXaGVuIHRoZSBwcm9jZWR1cmUgaXMgY3JlYXRlZCBm b3IgdGhlIHRhc2sgYm9keSwKICAgLS0gIHRoZSBwYXJhbWV0ZXIgcGFzc2VkIGluIGlzIGEgcmVm ZXJlbmNlIHRvIHRoZSB0YXNrIHZhbHVlIHR5cGUsIHdoaWNoCiAgIC0tICBjb250YWlucyB0aGUg cmVxdWlyZWQgZGlzY3JpbWluYW50IHZhbHVlcy4gVGhlIGV4cGFuZGVyIGNyZWF0ZXMgYQogICAt LSAgc2V0IG9mIGRlY2xhcmF0aW9ucyBvZiB0aGUgZm9ybToKCiAgIC0tICAgICAgZGlzY3JpbWlu YWwgOiBjb25zdGFudCBkdHlwZSByZW5hbWVzIF9UYXNrLmRpc2NyaW1pbmFudDsKCiAgIC0tICB3 aGVyZSBkaXNjcmltaW5hbCBpcyB0aGUgZGlzY3JpbWluYWwgZW50aXR5IHJlZmVyZW5jZWQgYnkg dGhlIHRhc2sKICAgLS0gIGRpc2NyaW1pbmFudCwgYW5kIF9UYXNrIGlzIHRoZSB0YXNrIHZhbHVl IHBhc3NlZCBpbiBhcyB0aGUgcGFyYW1ldGVyLgogICAtLSAgQWdhaW4sIGFueSByZWZlcmVuY2Vz IHRvIGRpc2NyaW1pbmFudHMgaW4gdGhlIHRhc2sgYm9keSBoYXZlIGJlZW4KICAgLS0gIHJlcGxh Y2VkIGJ5IHRoZSBkaXNjcmltaW5hbCByZWZlcmVuY2UsIHdoaWNoIGlzIG5vdyBhbiBvYmplY3Qg dGhhdAogICAtLSAgY29udGFpbnMgdGhlIHJlcXVpcmVkIHZhbHVlLgoKICAgLS0gIFRoaXMgYXBw cm9hY2ggZm9yIHRhc2tzIG1lYW5zIHRoYXQgdHdvIHNldHMgb2YgZGlzY3JpbWluYWxzIGFyZSBu ZWVkZWQKICAgLS0gIGZvciBhIHRhc2sgdHlwZSwgb25lIGZvciB0aGUgaW5pdGlhbGl6YXRpb24g cHJvY2VkdXJlLCBhbmQgb25lIGZvciB0aGUKICAgLS0gIHRhc2sgYm9keS4gVGhpcyB3b3JrcyBv dXQgbmljZWx5LCBzaW5jZSB0aGUgc2VtYW50aWNzIGFsbG9jYXRlcyBvbmUgc2V0CiAgIC0tICBm b3IgdGhlIHRhc2sgaXRzZWxmLCBhbmQgb25lIHNldCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgcmVj b3JkLgoKICAgLS0gIFRoZSBvbmUgYml0IG9mIHRyaWNraW5lc3MgYXJpc2VzIGluIG1ha2luZyBz dXJlIHRoYXQgdGhlIHJpZ2h0IHNldCBvZgogICAtLSAgZGlzY3JpbWluYWxzIGlzIHVzZWQgYXQg dGhlIHJpZ2h0IHRpbWUuIEZpcnN0IHRoZSB0YXNrIGRlZmluaXRpb24gaXMKICAgLS0gIHByb2Nl c3NlZC4gQW55IHJlZmVyZW5jZXMgdG8gZGlzY3JpbWluYW50cyBoZXJlIGFyZSByZXBsYWNlZCBi eSB0aGUKICAgLS0gIHRoZSBjb3JyZXNwb25kaW5nICp0YXNrKiBkaXNjcmltaW5hbHMgKHRoZSBy ZWNvcmQgdHlwZSBkb2Vzbid0IGV2ZW4KICAgLS0gIGV4aXN0IHlldCwgc2luY2UgaXQgaXMgY29u c3RydWN0ZWQgYXMgcGFydCBvZiB0aGUgZXhwYW5zaW9uIG9mIHRoZQogICAtLSAgdGFzayBkZWNs YXJhdGlvbiwgd2hpY2ggaGFwcGVucyBhZnRlciB0aGUgc2VtYW50aWMgcHJvY2Vzc2luZyBvZiB0 aGUKICAgLS0gIHRhc2sgZGVmaW5pdGlvbikuIFRoZSBkaXNjcmltaW5hbnRzIHRvIGJlIHVzZWQg Zm9yIHRoZSBjb3JyZXNwb25kaW5nCiAgIC0tICByZWNvcmQgYXJlIGNyZWF0ZWQgYXQgdGhlIHNh bWUgdGltZSBhcyB0aGUgb3RoZXIgZGlzY3JpbWluYWxzLCBhbmQKICAgLS0gIGhlbGQgaW4gdGhl IENSX0Rpc2NyaW1pbmFudCBmaWVsZCBvZiB0aGUgZGlzY3JpbWluYW50LiBBIHVzZSBvZiB0aGUK ICAgLS0gIGRpc2NyaW1pbmFudCBpbiBhIGJvdW5kIGZvciBhbiBlbnRyeSBmYW1pbHkgaXMgcmVw bGFjZWQgd2l0aCB0aGUgQ1JfCiAgIC0tICBkaXNjcmltaW5hbnQgYmVjYXVzZSBpdCBjb250cm9s cyB0aGUgYm91bmQgb2YgdGhlIGVudHJ5IHF1ZXVlIGFycmF5CiAgIC0tICB3aGljaCBpcyBhIGNv bXBvbmVudCBvZiB0aGUgY29ycmVzcG9uZGluZyByZWNvcmQuCgogICAtLSAgSnVzdCBiZWZvcmUg dGhlIHJlY29yZCBpbml0aWFsaXphdGlvbiByb3V0aW5lIGlzIGNvbnN0cnVjdGVkLCB0aGUKICAg LS0gIGV4cGFuZGVyIGV4Y2hhbmdlcyB0aGUgdGFzayBhbmQgcmVjb3JkIGRpc2NyaW1pbmFscy4g VGhpcyBoYXMgdHdvCiAgIC0tICBlZmZlY3RzLiBGaXJzdCB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUg cmVjb3JkIGluaXRpYWxpemF0aW9uIHJvdXRpbmUKICAgLS0gIHVzZXMgdGhlIGRpc2NyaW1pbmFs cyB0aGF0IGFyZSBub3cgb24gdGhlIHJlY29yZCwgd2hpY2ggaXMgdGhlIHNldAogICAtLSAgdGhh dCB1c2VkIHRvIGJlIG9uIHRoZSB0YXNrLCB3aGljaCBpcyB3aGF0IHdlIHdhbnQuCgogICAtLSAg U2Vjb25kLCBhIG5ldyBzZXQgb2YgKHNvIGZhciB1bnVzZWQpIGRpc2NyaW1pbmFscyBpcyBub3cg b24gdGhlIHRhc2sKICAgLS0gIGRpc2NyaW1pbmFudHMsIGFuZCBpdCBpcyB0aGlzIHNldCB0aGF0 IHdpbGwgYmUgdXNlZCBmb3IgZXhwYW5kaW5nIHRoZQogICAtLSAgdGFzayBib2R5LCBhbmQgYWxz byBmb3IgdGhlIGRpc2NyaW1pbmFsIGRlY2xhcmF0aW9ucyBhdCB0aGUgc3RhcnQgb2YKICAgLS0g IHRoZSB0YXNrIGJvZHkuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgLS0gUHJpdmF0ZSBkYXRhIGluIHByb3RlY3RlZCBvYmplY3RzIC0tCiAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFByaXZhdGUgb2JqZWN0IGRl Y2xhcmF0aW9ucyBpbiBwcm90ZWN0ZWQgdHlwZXMgcG9zZSBwcm9ibGVtcwogICAtLSAgc2ltaWxh ciB0byB0aG9zZSBvZiBkaXNjcmltaW5hbnRzLiBUaGV5IGFyZSBleHBhbmRlZCB0byBjb21wb25l bnRzCiAgIC0tICBvZiBhIHJlY29yZCB3aGljaCBpcyBwYXNzZWQgYXMgdGhlIHBhcmFtZXRlciAi X29iamVjdCIgdG8gZXhwYW5kZWQKICAgLS0gIGZvcm1zIG9mIGFsbCBwcm90ZWN0ZWQgb3BlcmF0 aW9ucy4gQXMgd2l0aCBkaXNjcmltaW5hbnRzLCB0aW1pbmcKICAgLS0gIG9mIHRoaXMgZXhwYW5z aW9uIGlzIGEgcHJvYmxlbS4gVGhlIHNlcXVlbmNlIG9mIHN0YXRlbWVudHMgZm9yIGEKICAgLS0g IHByb3RlY3RlZCBvcGVyYXRpb24gaXMgZXhwYW5kZWQgYmVmb3JlIHRoZSBvcGVyYXRpb24gaXRz ZWxmLCBzbyB0aGUKICAgLS0gIGZvcm1hbCBwYXJhbWV0ZXIgZm9yIHRoZSByZWNvcmQgb2JqZWN0 IGNvbnRhaW5pbmcgdGhlIHByaXZhdGUgZGF0YQogICAtLSAgZG9lcyBub3QgZXhpc3Qgd2hlbiB0 aGUgcmVmZXJlbmNlcyB0byB0aGF0IGRhdGEgYXJlIGV4cGFuZGVkLgoKICAgLS0gIEZvciB0aGlz IHJlYXNvbiwgcHJpdmF0ZSBkYXRhIGlzIGhhbmRsZWQgaW4gdGhlIHNhbWUgd2F5IGFzCiAgIC0t ICBkaXNjcmltaW5hbnRzLCBleHBhbmRpbmcgcmVmZXJlbmNlcyB0byBwcml2YXRlIGRhdGEgaW4g cHJvdGVjdGVkCiAgIC0tICBvcGVyYXRpb25zICh3aGljaCBhcHBlYXIgYXMgY29tcG9uZW50cykg dG8gcGxhY2Vob2xkZXJzIHdoaWNoIHdpbGwKICAgLS0gIGV2ZW50dWFsbHkgYmVjb21lIHJlbmFt aW5ncyBvZiB0aGUgcHJpdmF0ZSBzZWxlY3RlZCBjb21wb25lbnRzCiAgIC0tICBvZiB0aGUgIl9v YmplY3QiIGZvcm1hbCBwYXJhbWV0ZXIuIFRoZXNlIHBsYWNlaG9sZGVycyBhcmUgY2FsbGVkCiAg IC0tICAicHJpdmFscyIsIGJ5IGFuYWxvZ3kgdG8gdGhlICJkaXNjcmltaW5hbHMiIHVzZWQgdG8g aW1wbGVtZW50CiAgIC0tICBkaXNjcmltaW5hbnRzLiBUaGV5IGFyZSBhdHRhY2hlZCB0byB0aGUg Y29tcG9uZW50IGRlY2xhcmF0aW9uIG5vZGVzCiAgIC0tICByZXByZXNlbnRpbmcgdGhlIHByaXZh dGUgb2JqZWN0IGRlY2xhcmF0aW9ucyBvZiB0aGUgcHJvdGVjdGVkIHR5cGUuCgogICAtLSAgQXMg d2l0aCBkaXNjcmltaW5hbHMsIGVhY2ggcHJvdGVjdGVkIHN1YnByb2dyYW0gbmVlZHMgYSB1bmlx dWUgc2V0CiAgIC0tICBvZiBwcml2YWxzLCBzaW5jZSB0aGV5IG11c3QgcmVmZXIgdG8gcmVuYW1p bmdzIG9mIGNvbXBvbmVudHMgb2YgYQogICAtLSAgZm9ybWFsIHBhcmFtZXRlciBvZiB0aGF0IG9w ZXJhdGlvbi4gRW50cnkgYm9kaWVzIG5lZWQgYW5vdGhlciBzZXQsCiAgIC0tICB3aGljaCB0aGV5 IGFsbCBzaGFyZSBhbmQgd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIHJlbmFtaW5ncyBpbiB0aGUK ICAgLS0gIFNlcnZpY2VfRW50cmllcyBwcm9jZWR1cmUgZm9yIHRoZSBwcm90ZWN0ZWQgdHlwZSAo dGhpcyBpcyBub3QgeWV0CiAgIC0tICBpbXBsZW1lbnRlZD8/PykuIFRoaXMgbWVhbnMgdGhhdCB3 ZSBtdXN0IGFzc29jaWF0ZSBhIG5ldyBzZXQgb2YKICAgLS0gIHByaXZhbHMgKGFuZCBkaXNjcmlt aW5hbHMpIHdpdGggdGhlIHByaXZhdGUgZGVjbGFyYXRpb25zIGFmdGVyCiAgIC0tICB0aGUgYm9k eSBvZiBhIHByb3RlY3RlZCBzdWJwcm9ncmFtIGlzIHByb2Nlc3NlZC4KCiAgIC0tICBUaGUgbGFz dCBjb21wbGljYXRpb24gaXMgdGhlIHByZXNlbmNlIG9mIGRpc2NyaW1pbmFudHMgYW5kIGRpc2Ny aW1pbmF0ZWQKICAgLS0gIGNvbXBvbmVudHMuIEluIHRoZSBjb3JyZXNwb25kaW5nIHJlY29yZCwg dGhlIGNvbXBvbmVudHMgYXJlIGNvbnN0cmFpbmVkCiAgIC0tICBieSB0aGUgZGlzY3JpbWluYW50 cyBvZiB0aGUgcmVjb3JkLCBidXQgd2l0aGluIGVhY2ggcHJvdGVjdGVkIG9wZXJhdGlvbgogICAt LSAgdGhleSBhcmUgY29uc3RyYWluZWQgYnkgdGhlIGRpc2NyaW1pbmFudHMgb2YgdGhlIGFjdHVh bC4gVGhlIGFjdHVhbAogICAtLSAgc3VidHlwZXMgb2YgdGhvc2UgY29tcG9uZW50cyBhcmUgY29u c3RydWN0ZWQgYXMgZm9yIG90aGVyIHVuY29uc3RyYWluZWQKICAgLS0gIGZvcm1hbHMsIGJ1dCB0 aGUgcHJpdmFscyBhcmUgY3JlYXRlZCBiZWZvcmUgdGhlIGZvcm1hbCBvYmplY3QgaXMgYWRkZWQK ICAgLS0gIHRvIHRoZSBwYXJhbWV0ZXIgbGlzdCBvZiB0aGUgcHJvdGVjdGVkIG9wZXJhdGlvbiwg c28gdGhleSBjYXJyeSB0aGUKICAgLS0gIG5vbWluYWwgc3VidHlwZSBvZiB0aGUgb3JpZ2luYWwg Y29tcG9uZW50LiBBZnRlciB0aGUgcHJvdGVjdGVkIG9wZXJhdGlvbgogICAtLSAgaXMgYWN0dWFs bHkgY3JlYXRlZCAoaW4gIHRoZSBleHBhbnNpb24gb2YgdGhlIHByb3RlY3RlZCBib2R5KSB3ZSBt dXN0CiAgIC0tICBwYXRjaCB0aGUgdHlwZXMgb2YgZWFjaCBwcml2YWwgb2NjdXJyZW5jZSB3aXRo IHRoZSBwcm9wZXIgYWN0dWFsIHN1YnR5cGUKICAgLS0gIHdoaWNoIGlzIGJ5IG5vdyBzZXQuIFRo ZSBQcml2YWxzX0NoYWluIGlzIHVzZWQgZm9yIHRoaXMgcGF0Y2hpbmcuCgogICAtLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIFR5cGUgU3lub255bXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLQoK ICAgLS0gIFRoZSBmb2xsb3dpbmcgdHlwZSBzeW5vbnltcyBhcmUgdXNlZCB0byB0aWR5IHVwIHRo ZSBmdW5jdGlvbiBhbmQKICAgLS0gIHByb2NlZHVyZSBkZWNsYXJhdGlvbnMgdGhhdCBmb2xsb3cs IGFuZCBhbHNvIHRvIG1ha2UgaXQgcG9zc2libGUKICAgLS0gIHRvIG1lZXQgdGhlIHJlcXVpcmVt ZW50IGZvciB0aGUgWEVJTkZPIHV0aWxpdHkgdGhhdCBhbGwgZnVuY3Rpb24KICAgLS0gIHNwZWNz IG11c3QgZml0IG9uIGEgc2luZ2xlIHNvdXJjZSBsaW5lLgoKICAgc3VidHlwZSBCIGlzIEJvb2xl YW47CiAgIHN1YnR5cGUgQyBpcyBDb21wb25lbnRfQWxpZ25tZW50X0tpbmQ7CiAgIHN1YnR5cGUg RSBpcyBFbnRpdHlfSWQ7CiAgIHN1YnR5cGUgTSBpcyBNZWNoYW5pc21fVHlwZTsKICAgc3VidHlw ZSBOIGlzIE5vZGVfSWQ7CiAgIHN1YnR5cGUgVSBpcyBVaW50OwogICBzdWJ0eXBlIFIgaXMgVXJl YWw7CiAgIHN1YnR5cGUgTCBpcyBFbGlzdF9JZDsKICAgc3VidHlwZSBTIGlzIExpc3RfSWQ7Cgog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gIEF0dHJpYnV0ZSBBY2Nl c3MgRnVuY3Rpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg LS0gIEFsbCBhdHRyaWJ1dGVzIGFyZSBtYW5pcHVsYXRlZCB0aHJvdWdoIGEgcHJvY2VkdXJhbCBp bnRlcmZhY2UuIFRoaXMKICAgLS0gIHNlY3Rpb24gY29udGFpbnMgdGhlIGZ1bmN0aW9ucyB1c2Vk IHRvIG9idGFpbiBhdHRyaWJ1dGUgdmFsdWVzIHdoaWNoCiAgIC0tICBjb3JyZXNwb25kIHRvIHZh bHVlcyBpbiBmaWVsZHMgb3IgZmxhZ3MgaW4gdGhlIGVudGl0eSBpdHNlbGYuCgogICBmdW5jdGlv biBBY2NlcHRfQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBMOwog ICBmdW5jdGlvbiBBY2Nlc3NfRGlzcF9UYWJsZSAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBBY3R1YWxfU3VidHlwZSAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBBZGRyZXNzX1Rha2VuICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBBbGlhcyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBBbGlnbm1lbnQg ICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBB c3NvY2lhdGVkX0ZpbmFsX0NoYWluICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBm dW5jdGlvbiBBc3NvY2lhdGVkX0Zvcm1hbF9QYWNrYWdlICAgICAgICAgIChJZCA6IEUpIHJldHVy biBFOwogICBmdW5jdGlvbiBBc3NvY2lhdGVkX05vZGVfRm9yX0l0eXBlICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBBc3NvY2lhdGVkX1N0b3JhZ2VfUG9vbCAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBCYXJyaWVyX0Z1bmN0aW9uICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBCbG9ja19Ob2RlICAg ICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBCb2R5 X0VudGl0eSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5j dGlvbiBDUl9EaXNjcmltaW5hbnQgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBF OwogICBmdW5jdGlvbiBDX1Bhc3NfQnlfQ29weSAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBDbGFzc19XaWRlX1R5cGUgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBDbG9uZWRfU3VidHlwZSAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBDb21wb25lbnRfQWxpZ25t ZW50ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBDOwogICBmdW5jdGlvbiBDb21wb25l bnRfQ2xhdXNlICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlv biBDb21wb25lbnRfQml0X09mZnNldCAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwog ICBmdW5jdGlvbiBDb21wb25lbnRfU2l6ZSAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBVOwogICBmdW5jdGlvbiBDb21wb25lbnRfVHlwZSAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBDb3JyZXNwb25kaW5nX0NvbmN1cnJlbnRfVHlw ZSAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBDb3JyZXNwb25kaW5nX0Rpc2Ny aW1pbmFudCAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBDb3JyZXNwb25k aW5nX0VxdWFsaXR5ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBD b3JyZXNwb25kaW5nX1JlY29yZF9UeXBlICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBm dW5jdGlvbiBDb3JyZXNwb25kaW5nX1JlbW90ZV9UeXBlICAgICAgICAgIChJZCA6IEUpIHJldHVy biBFOwogICBmdW5jdGlvbiBEZWJ1Z19JbmZvX09mZiAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBEZWJ1Z19SZW5hbWluZ19MaW5rICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBEVENfRW50aXR5ICAgICAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBEVF9FbnRyeV9Db3Vu dCAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBEVF9Q b3NpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5j dGlvbiBEZWZhdWx0X0V4cHJfRnVuY3Rpb24gICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBF OwogICBmdW5jdGlvbiBEZWZhdWx0X0V4cHJlc3Npb25zX1Byb2Nlc3NlZCAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBEZWZhdWx0X1ZhbHVlICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBEZWxheV9DbGVhbnVwcyAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBEZWxheV9TdWJwcm9ncmFt X0Rlc2NyaXB0b3JzICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBEZWx0YV9W YWx1ZSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBSOwogICBmdW5jdGlv biBEZXBlbmRlbnRfSW5zdGFuY2VzICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBMOwog ICBmdW5jdGlvbiBEZXBlbmRzX09uX1ByaXZhdGUgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBEaWdpdHNfVmFsdWUgICAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBEaXJlY3RseV9EZXNpZ25hdGVkX1R5cGUgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBEaXNjYXJkX05hbWVzICAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBEaXNjcmltaW5h bCAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBE aXNjcmltaW5hbF9MaW5rICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBm dW5jdGlvbiBEaXNjcmltaW5hbnRfQ2hlY2tpbmdfRnVuYyAgICAgICAgIChJZCA6IEUpIHJldHVy biBFOwogICBmdW5jdGlvbiBEaXNjcmltaW5hbnRfQ29uc3RyYWludCAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBMOwogICBmdW5jdGlvbiBEaXNjcmltaW5hbnRfRGVmYXVsdF9WYWx1ZSAgICAg ICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBEaXNjcmltaW5hbnRfTnVtYmVyICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBFbGFib3JhdGVfQWxs X0Rlc2lyYWJsZSAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBFbGFi b3JhdGlvbl9FbnRpdHkgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5j dGlvbiBFbGFib3JhdGlvbl9FbnRpdHlfUmVxdWlyZWQgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBFbmNsb3NpbmdfU2NvcGUgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBFOwogICBmdW5jdGlvbiBFbnRyeV9BY2NlcHRlZCAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBFbnRyeV9Cb2RpZXNfQXJyYXkgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFbnRyeV9DYW5jZWxfUGFy YW1ldGVyICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFbnRyeV9D b21wb25lbnQgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlv biBFbnRyeV9Gb3JtYWwgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwog ICBmdW5jdGlvbiBFbnRyeV9JbmRleF9Db25zdGFudCAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBFbnRyeV9JbmRleF9UeXBlICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFbnRyeV9QYXJhbWV0ZXJzX1R5cGUgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFbnVtX1Bvc19Ub19SZXAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFbnVtZXJhdGlv bl9Qb3MgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBF bnVtZXJhdGlvbl9SZXAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBm dW5jdGlvbiBFbnVtZXJhdGlvbl9SZXBfRXhwciAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBOOwogICBmdW5jdGlvbiBFcXVpdmFsZW50X1R5cGUgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFc2l6ZSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBFeGNlcHRpb25fQ29kZSAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBFeHRyYV9BY2Nlc3Np YmlsaXR5ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBFeHRy YV9Db25zdHJhaW5lZCAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5j dGlvbiBFeHRyYV9Gb3JtYWwgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBF OwogICBmdW5jdGlvbiBGaW5hbGl6YXRpb25fQ2hhaW5fRW50aXR5ICAgICAgICAgIChJZCA6IEUp IHJldHVybiBFOwogICBmdW5jdGlvbiBGaW5hbGl6ZV9TdG9yYWdlX09ubHkgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBGaXJzdF9FbnRpdHkgICAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBGaXJzdF9JbmRleCAgICAg ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBGaXJzdF9M aXRlcmFsICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlv biBGaXJzdF9PcHRpb25hbF9QYXJhbWV0ZXIgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwog ICBmdW5jdGlvbiBGaXJzdF9Qcml2YXRlX0VudGl0eSAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBGaXJzdF9SZXBfSXRlbSAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBGcmVlemVfTm9kZSAgICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBGcm9tX1dpdGhfVHlwZSAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBGdWxsX1ZpZXcg ICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBG dW5jdGlvbl9SZXR1cm5zX1dpdGhfRFNQICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBHZW5lcmljX1JlbmFtaW5ncyAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBMOwogICBmdW5jdGlvbiBHaXJkZXJfQ29uc3RyYWludCAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBMOwogICBmdW5jdGlvbiBIYW5kbGVyX1JlY29yZHMgICAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBTOwogICBmdW5jdGlvbiBIYXNfQWxpYXNlZF9Db21wb25lbnRz ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfQWxpZ25tZW50 X0NsYXVzZSAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNf QWxsX0NhbGxzX1JlbW90ZSAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBIYXNfQXRvbWljX0NvbXBvbmVudHMgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBIYXNfQmlhc2VkX1JlcHJlc2VudGF0aW9uICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfQ29tcGxldGlvbiAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfQ29tcGxldGlvbl9Jbl9Cb2R5ICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfQ29tcGxleF9SZXBy ZXNlbnRhdGlvbiAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfQ29t cG9uZW50X1NpemVfQ2xhdXNlICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBIYXNfQ29udHJvbGxlZF9Db21wb25lbnQgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBIYXNfQ29udHJvbGxpbmdfUmVzdWx0ICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBIYXNfQ29udmVudGlvbl9QcmFnbWEgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfRGVsYXllZF9GcmVlemUgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfRGlzY3JpbWluYW50cyAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfRW51bWVy YXRpb25fUmVwX0NsYXVzZSAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBI YXNfRXhpdCAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBIYXNfRXh0ZXJuYWxfVGFnX1JlcF9DbGF1c2UgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBIYXNfRnVsbHlfUXVhbGlmaWVkX05hbWUgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfR2lnaV9SZXBfSXRlbSAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfSG9tb255bSAgICAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfSW50ZXJydXB0 X0hhbmRsZXIgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNf TWFjaGluZV9SYWRpeF9DbGF1c2UgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBIYXNfTWFzdGVyX0VudGl0eSAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBIYXNfTWlzc2luZ19SZXR1cm4gICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfTmVzdGVkX0Jsb2NrX1dpdGhfSGFuZGxlciAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfRm9yd2FyZF9JbnN0YW50aWF0aW9u ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfTm9uX1N0YW5kYXJk X1JlcCAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfT2Jq ZWN0X1NpemVfQ2xhdXNlICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBIYXNfUGVyX09iamVjdF9Db25zdHJhaW50ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBIYXNfUHJhZ21hX0NvbnRyb2xsZWQgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBIYXNfUHJhZ21hX0VsYWJvcmF0ZV9Cb2R5ICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfUHJhZ21hX0lubGluZSAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfUHJhZ21hX1BhY2sgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfUHJhZ21h X1B1cmVfRnVuY3Rpb24gICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBI YXNfUHJpbWl0aXZlX09wZXJhdGlvbnMgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBIYXNfUXVhbGlmaWVkX05hbWUgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBIYXNfUmVjb3JkX1JlcF9DbGF1c2UgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfUmVjdXJzaXZlX0NhbGwgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfU2l6ZV9DbGF1c2UgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfU21hbGxfQ2xh dXNlICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNf U3BlY2lmaWVkX0xheW91dCAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBIYXNfU3RvcmFnZV9TaXplX0NsYXVzZSAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBIYXNfU3VicHJvZ3JhbV9EZXNjcmlwdG9yICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfVGFzayAgICAgICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfVW5jaGVja2VkX1VuaW9uICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfVW5rbm93bl9EaXNj cmltaW5hbnRzICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBIYXNfVm9s YXRpbGVfQ29tcG9uZW50cyAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBIb21vbnltICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwog ICBmdW5jdGlvbiBIaWRpbmdfTG9vcF9WYXJpYWJsZSAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBJbl9QYWNrYWdlX0JvZHkgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJbl9Qcml2YXRlX1BhcnQgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJbl9Vc2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJbm5lcl9JbnN0 YW5jZXMgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBMOwogICBmdW5jdGlvbiBJ bnRlcmZhY2VfTmFtZSAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBm dW5jdGlvbiBJc19BU1RfRW50cnkgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBJc19BYnN0cmFjdCAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19BY2Nlc3NfQ29uc3RhbnQgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19BbGlhc2VkICAgICAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Bc3luY2hyb25v dXMgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19B dG9taWMgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBJc19CaXRfUGFja2VkX0FycmF5ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBJc19DUFBfQ2xhc3MgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBJc19DYWxsZWQgICAgICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19DaGFyYWN0ZXJfVHlwZSAgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19DaGlsZF9Vbml0ICAg ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Db21w aWxhdGlvbl9Vbml0ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBJc19Db21wbGV0ZWx5X0hpZGRlbiAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBJc19Db25zdHJfU3VidF9Gb3JfVU5fQWxpYXNlZCAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBJc19Db25zdHJfU3VidF9Gb3JfVV9Ob21pbmFsICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Db25zdHJhaW5lZCAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Db25zdHJ1Y3RvciAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Db250cm9s bGVkICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJ c19Db250cm9sbGluZ19Gb3JtYWwgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBJc19EZXN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBJc19EaXNjcmltX1NPX0Z1bmN0aW9uICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19EaXNwYXRjaGluZ19PcGVyYXRpb24gICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19FbGltaW5hdGVkICAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19FbnRyeV9Gb3Jt YWwgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19F eHBvcnRlZCAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBJc19GaXJzdF9TdWJ0eXBlICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBJc19Gb3JfQWNjZXNzX1N1YnR5cGUgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Gcm96ZW4gICAgICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19HZW5lcmljX0luc3RhbmNlICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19IaWRkZW4gICAgICAg ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19IaWRk ZW5fT3Blbl9TY29wZSAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBJc19JbW1lZGlhdGVseV9WaXNpYmxlICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBJc19JbXBvcnRlZCAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBJc19JbmxpbmVkICAgICAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19JbnN0YW50aWF0ZWQgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19JbnRlcm5hbCAgICAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19JbnRlcnJ1 cHRfSGFuZGxlciAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJ c19JbnRyaW5zaWNfU3VicHJvZ3JhbSAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBJc19JdHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBJc19Lbm93bl9WYWxpZCAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19MaW1pdGVkX0NvbXBvc2l0ZSAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19NYWNoaW5lX0NvZGVfU3VicHJv Z3JhbSAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Ob25fU3RhdGlj X1N1YnR5cGUgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19O dWxsX0luaXRfUHJvYyAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBJc19PcHRpb25hbF9QYXJhbWV0ZXIgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBJc19QYWNrYWdlX0JvZHlfRW50aXR5ICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBJc19QYWNrZWQgICAgICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19QYWNrZWRfQXJyYXlfVHlwZSAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Qb3RlbnRpYWxseV9V c2VfVmlzaWJsZSAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19QcmVl bGFib3JhdGVkICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBJc19Qcml2YXRlX0NvbXBvc2l0ZSAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBJc19Qcml2YXRlX0Rlc2NlbmRhbnQgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBJc19Qc2VjdGVkICAgICAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19QdWJsaWMgICAgICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19QdXJlICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19SZW1vdGVf Q2FsbF9JbnRlcmZhY2UgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJ c19SZW1vdGVfVHlwZXMgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBJc19SZW5hbWluZ19PZl9PYmplY3QgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBJc19TaGFyZWRfUGFzc2l2ZSAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19TdGF0aWNhbGx5X0FsbG9jYXRlZCAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19UYWcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19UYWdnZWRfVHlw ZSAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19U cnVlX0NvbnN0YW50ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBJc19VbmNoZWNrZWRfVW5pb24gICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBJc19VbnNpZ25lZF9UeXBlICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBJc19WTVNfRXhjZXB0aW9uICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19WYWx1ZWRfUHJvY2VkdXJlICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19WaXNpYmxlX0NoaWxk X1VuaXQgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBJc19Wb2xh dGlsZSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlv biBJc19XcmFwcGVyX1BhY2thZ2UgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBMYXN0X0VudGl0eSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBMaXRfSW5kZXhlcyAgICAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBMaXRfU3RyaW5ncyAgICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBNYWNoaW5lX1JhZGl4XzEwICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBNYXN0ZXJfSWQg ICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBN YXRlcmlhbGl6ZV9FbnRpdHkgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBNZWNoYW5pc20gICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBNOwogICBmdW5jdGlvbiBNb2R1bHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBOZWVkc19EZWJ1Z19JbmZvICAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBOZWVkc19Ob19BY3R1YWxzICAgICAg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBOZXh0X0lubGluZWRf U3VicHJvZ3JhbSAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBOb19Q b29sX0Fzc2lnbmVkICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBOb19SZXR1cm4gICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBOb25fQmluYXJ5X01vZHVsdXMgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBOb256ZXJvX0lzX1RydWUgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBOb3JtYWxpemVkX0ZpcnN0X0JpdCAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBOb3JtYWxpemVkX1Bvc2l0 aW9uICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBOb3JtYWxp emVkX1Bvc2l0aW9uX01heCAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlv biBOb3RfU291cmNlX0Fzc2lnbmVkICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwog ICBmdW5jdGlvbiBPYmplY3RfUmVmICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBFOwogICBmdW5jdGlvbiBPcmlnaW5hbF9SZWNvcmRfQ29tcG9uZW50ICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBQYWNrZWRfQXJyYXlfVHlwZSAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBQYXJlbnRfU3VidHlwZSAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBQcmltaXRpdmVf T3BlcmF0aW9ucyAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBMOwogICBmdW5jdGlvbiBQ cml2YWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBm dW5jdGlvbiBQcml2YWxzX0NoYWluICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBMOwogICBmdW5jdGlvbiBQcml2YXRlX0RlcGVuZGVudHMgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBMOwogICBmdW5jdGlvbiBQcml2YXRlX1ZpZXcgICAgICAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBQcm90ZWN0ZWRfQm9keV9TdWJwcm9n cmFtICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBQcm90ZWN0ZWRfRm9y bWFsICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlvbiBQcm90 ZWN0ZWRfT3BlcmF0aW9uICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5j dGlvbiBSTV9TaXplICAgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBV OwogICBmdW5jdGlvbiBSZWFjaGFibGUgICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBSZWZlcmVuY2VkICAgICAgICAgICAgICAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBSZWZlcmVuY2VkX09iamVjdCAgICAgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBSZWdpc3Rlcl9FeGNlcHRp b25fQ2FsbCAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBSZWxhdGVk X0FycmF5X09iamVjdCAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlv biBSZWxhdGVkX0luc3RhbmNlICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwog ICBmdW5jdGlvbiBSZW5hbWVkX0VudGl0eSAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBOOwogICBmdW5jdGlvbiBSZW5hbWVkX09iamVjdCAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBSZW5hbWluZ19NYXAgICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBSZXR1cm5fUHJlc2VudCAgICAg ICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBSZXR1cm5zX0J5 X1JlZiAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBS ZXZlcnNlX0JpdF9PcmRlciAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBTY2FsYXJfUmFuZ2UgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBOOwogICBmdW5jdGlvbiBTY2FsZV9WYWx1ZSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBTY29wZV9EZXB0aF9WYWx1ZSAgICAgICAgICAgICAg ICAgIChJZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBTZWNfU3RhY2tfTmVlZGVkX0Zvcl9S ZXR1cm4gICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTaGFkb3dfRW50aXRp ZXMgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBTOwogICBmdW5jdGlvbiBTaGFy ZWRfVmFyX0Fzc2lnbl9Qcm9jICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5j dGlvbiBTaGFyZWRfVmFyX1JlYWRfUHJvYyAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBF OwogICBmdW5jdGlvbiBTaXplX0NoZWNrX0NvZGUgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBOOwogICBmdW5jdGlvbiBTaXplX0tub3duX0F0X0NvbXBpbGVfVGltZSAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTaXplX0RlcGVuZHNfT25fRGlzY3JpbWlu YW50ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTbWFsbF9WYWx1ZSAgICAg ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBSOwogICBmdW5jdGlvbiBTcGVjX0Vu dGl0eSAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlv biBTdG9yYWdlX1NpemVfVmFyaWFibGUgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwog ICBmdW5jdGlvbiBTdHJpY3RfQWxpZ25tZW50ICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBTdHJpbmdfTGl0ZXJhbF9MZW5ndGggICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBVOwogICBmdW5jdGlvbiBTdHJpbmdfTGl0ZXJhbF9Mb3dfQm91bmQgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBOOwogICBmdW5jdGlvbiBTdXBwcmVzc19BY2Nlc3NfQ2hl Y2tzICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19B Y2Nlc3NpYmlsaXR5X0NoZWNrcyAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBT dXBwcmVzc19EaXNjcmltaW5hbnRfQ2hlY2tzICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBm dW5jdGlvbiBTdXBwcmVzc19EaXZpc2lvbl9DaGVja3MgICAgICAgICAgIChJZCA6IEUpIHJldHVy biBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19FbGFib3JhdGlvbl9DaGVja3MgICAgICAgIChJZCA6 IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19FbGFib3JhdGlvbl9XYXJuaW5ncyAg ICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19JbmRleF9DaGVja3Mg ICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19Jbml0 X1Byb2MgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBw cmVzc19MZW5ndGhfQ2hlY2tzICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5j dGlvbiBTdXBwcmVzc19PdmVyZmxvd19DaGVja3MgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBC OwogICBmdW5jdGlvbiBTdXBwcmVzc19SYW5nZV9DaGVja3MgICAgICAgICAgICAgIChJZCA6IEUp IHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19TdG9yYWdlX0NoZWNrcyAgICAgICAgICAg IChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19TdHlsZV9DaGVja3MgICAg ICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBTdXBwcmVzc19UYWdfQ2hl Y2tzICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBVbmRlcmx5 aW5nX0Z1bGxfVmlldyAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBFOwogICBmdW5jdGlv biBVbnNldF9SZWZlcmVuY2UgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOOwog ICBmdW5jdGlvbiBVc2VzX1NlY19TdGFjayAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJl dHVybiBCOwogICBmdW5jdGlvbiBWYXhfRmxvYXQgICAgICAgICAgICAgICAgICAgICAgICAgIChJ ZCA6IEUpIHJldHVybiBCOwogICBmdW5jdGlvbiBXYXJuaW5nc19PZmYgICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEUpIHJldHVybiBCOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAtLSBDbGFzc2lmaWNhdGlvbiBBdHRyaWJ1dGVzIC0tCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBUaGVzZSBmdW5jdGlvbnMgcHJvdmlkZSBhIGNvbnZl bmllbnQgZnVuY3Rpb25hbCBub3RhdGlvbiBmb3IgdGVzdGluZwogICAtLSAgd2hldGhlciBhbiBF a2luZCB2YWx1ZSBiZWxvbmdzIHRvIGEgc3BlY2lmaWVkIGtpbmQsIGZvciBleGFtcGxlIHRoZQog ICAtLSAgZnVuY3Rpb24gSXNfRWxlbWVudGFyeV9UeXBlIHRlc3RzIGlmIGl0cyBhcmd1bWVudCBp cyBpbiBFbGVtZW50YXJ5X0tpbmQuCiAgIC0tICBJbiBzb21lIGNhc2VzLCB0aGUgdGVzdCBpcyBv ZiBhbiBlbnRpdHkgYXR0cmlidXRlIChlLmcuIGluIHRoZSBjYXNlIG9mCiAgIC0tICBJc19HZW5l cmljX1R5cGUgd2hlcmUgdGhlIEVraW5kIGRvZXMgbm90IHByb3ZpZGUgdGhlIG5lZWRlZCBpbmZv cm1hdGlvbikKCiAgIGZ1bmN0aW9uIElzX0FjY2Vzc19UeXBlICAgICAgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0FycmF5X1R5cGUgICAgICAgICAgICAg ICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0NsYXNzX1dpZGVfVHlw ZSAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0NvbXBv c2l0ZV9UeXBlICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9u IElzX0NvbmN1cnJlbnRfQm9keSAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAg IGZ1bmN0aW9uIElzX0NvbmN1cnJlbnRfUmVjb3JkX1R5cGUgICAgICAgICAgKElkIDogRSkgcmV0 dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0NvbmN1cnJlbnRfVHlwZSAgICAgICAgICAgICAgICAgKElk IDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0RlY2ltYWxfRml4ZWRfUG9pbnRfVHlwZSAg ICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0RpZ2l0c19UeXBlICAgICAg ICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0Rpc2NyZXRl X09yX0ZpeGVkX1BvaW50X1R5cGUgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElz X0Rpc2NyZXRlX1R5cGUgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1 bmN0aW9uIElzX0VsZW1lbnRhcnlfVHlwZSAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJu IEI7CiAgIGZ1bmN0aW9uIElzX0VudHJ5ICAgICAgICAgICAgICAgICAgICAgICAgICAgKElkIDog RSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0VudW1lcmF0aW9uX1R5cGUgICAgICAgICAgICAg ICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0ZpeGVkX1BvaW50X1R5cGUgICAg ICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0Zsb2F0aW5nX1Bv aW50X1R5cGUgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0Zv cm1hbCAgICAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0 aW9uIElzX0Zvcm1hbF9TdWJwcm9ncmFtICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7 CiAgIGZ1bmN0aW9uIElzX0dlbmVyaWNfQWN0dWFsX1R5cGUgICAgICAgICAgICAgKElkIDogRSkg cmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0dlbmVyaWNfVHlwZSAgICAgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0dlbmVyaWNfVW5pdCAgICAgICAgICAg ICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0luY29tcGxldGVfT3Jf UHJpdmF0ZV9UeXBlICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0ludGVn ZXJfVHlwZSAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9u IElzX0xpbWl0ZWRfUmVjb3JkICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAg IGZ1bmN0aW9uIElzX01vZHVsYXJfSW50ZWdlcl9UeXBlICAgICAgICAgICAgKElkIDogRSkgcmV0 dXJuIEI7CiAgIGZ1bmN0aW9uIElzX05hbWVkX051bWJlciAgICAgICAgICAgICAgICAgICAgKElk IDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX051bWVyaWNfVHlwZSAgICAgICAgICAgICAg ICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX09iamVjdCAgICAgICAgICAg ICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX09yZGluYXJ5 X0ZpeGVkX1BvaW50X1R5cGUgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElz X092ZXJsb2FkYWJsZSAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1 bmN0aW9uIElzX1ByaXZhdGVfVHlwZSAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJu IEI7CiAgIGZ1bmN0aW9uIElzX1Byb3RlY3RlZF9UeXBlICAgICAgICAgICAgICAgICAgKElkIDog RSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1JlYWxfVHlwZSAgICAgICAgICAgICAgICAgICAg ICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1JlY29yZF9UeXBlICAgICAgICAg ICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1NjYWxhcl9UeXBl ICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1Np Z25lZF9JbnRlZ2VyX1R5cGUgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0 aW9uIElzX1N1YnByb2dyYW0gICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7 CiAgIGZ1bmN0aW9uIElzX1Rhc2tfVHlwZSAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkg cmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1R5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIEI7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgIC0tIFN5bnRoZXNpemVkIEF0dHJpYnV0ZSBGdW5jdGlvbnMgLS0KICAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmdW5jdGlvbnMgaW4gdGhp cyBzZWN0aW9uIHN5bnRoZXNpemUgYXR0cmlidXRlcyBmcm9tIHRoZSB0cmVlLAogICAtLSAgc28g dGhleSBkbyBub3QgY29ycmVzcG9uZCB0byBkZWZpbmVkIGZpZWxkcyBpbiB0aGUgZW50aXR5IGl0 c2VsZi4KCiAgIGZ1bmN0aW9uIEFkZHJlc3NfQ2xhdXNlICAgICAgICAgICAgICAgICAgICAgKElk IDogRSkgcmV0dXJuIE47CiAgIGZ1bmN0aW9uIEFsaWdubWVudF9DbGF1c2UgICAgICAgICAgICAg ICAgICAgKElkIDogRSkgcmV0dXJuIE47CiAgIGZ1bmN0aW9uIEFuY2VzdG9yX1N1YnR5cGUgICAg ICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEJhc2VfVHlwZSAg ICAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIENv bnN0YW50X1ZhbHVlICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIE47CiAgIGZ1 bmN0aW9uIERlY2xhcmF0aW9uX05vZGUgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJu IE47CiAgIGZ1bmN0aW9uIERlc2lnbmF0ZWRfVHlwZSAgICAgICAgICAgICAgICAgICAgKElkIDog RSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEVuY2xvc2luZ19EeW5hbWljX1Njb3BlICAgICAgICAg ICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEZpcnN0X0NvbXBvbmVudCAgICAgICAg ICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEZpcnN0X0Rpc2NyaW1p bmFudCAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEZpcnN0 X0Zvcm1hbCAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0 aW9uIEZpcnN0X0dpcmRlcl9EaXNjcmltaW5hbnQgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7 CiAgIGZ1bmN0aW9uIEZpcnN0X1N1YnR5cGUgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkg cmV0dXJuIEU7CiAgIGZ1bmN0aW9uIEhhc19BdHRhY2hfSGFuZGxlciAgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEhhc19FbnRyaWVzICAgICAgICAgICAgICAg ICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEhhc19Gb3JlaWduX0NvbnZl bnRpb24gICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEhhc19Qcml2 YXRlX0FuY2VzdG9yICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9u IEhhc19Qcml2YXRlX0RlY2xhcmF0aW9uICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAg IGZ1bmN0aW9uIEltcGxlbWVudGF0aW9uX0Jhc2VfVHlwZSAgICAgICAgICAgKElkIDogRSkgcmV0 dXJuIEU7CiAgIGZ1bmN0aW9uIElzX0Fsd2F5c19JbmxpbmVkICAgICAgICAgICAgICAgICAgKElk IDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0Jvb2xlYW5fVHlwZSAgICAgICAgICAgICAg ICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0J5X0NvcHlfVHlwZSAgICAg ICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0J5X1JlZmVy ZW5jZV9UeXBlICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElz X0Rlcml2ZWRfVHlwZSAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1 bmN0aW9uIElzX0R5bmFtaWNfU2NvcGUgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJu IEI7CiAgIGZ1bmN0aW9uIElzX0luZGVmaW5pdGVfU3VidHlwZSAgICAgICAgICAgICAgKElkIDog RSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX0xpbWl0ZWRfVHlwZSAgICAgICAgICAgICAgICAg ICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1BhY2thZ2UgICAgICAgICAgICAg ICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1Byb3RlY3RlZF9Q cml2YXRlICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1By b3RlY3RlZF9SZWNvcmRfVHlwZSAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0 aW9uIElzX1JldHVybl9CeV9SZWZlcmVuY2VfVHlwZSAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7 CiAgIGZ1bmN0aW9uIElzX1N0cmluZ19UeXBlICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkg cmV0dXJuIEI7CiAgIGZ1bmN0aW9uIElzX1Rhc2tfUmVjb3JkX1R5cGUgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIE5leHRfQ29tcG9uZW50ICAgICAgICAgICAg ICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIE5leHRfRGlzY3JpbWluYW50 ICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIE5leHRfRm9y bWFsICAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9u IE5leHRfRm9ybWFsX1dpdGhfRXh0cmFzICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAg IGZ1bmN0aW9uIE5leHRfR2lyZGVyX0Rpc2NyaW1pbmFudCAgICAgICAgICAgKElkIDogRSkgcmV0 dXJuIEU7CiAgIGZ1bmN0aW9uIE5leHRfTGl0ZXJhbCAgICAgICAgICAgICAgICAgICAgICAgKElk IDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIE51bWJlcl9EaW1lbnNpb25zICAgICAgICAgICAg ICAgICAgKElkIDogRSkgcmV0dXJuIFBvczsKICAgZnVuY3Rpb24gTnVtYmVyX0Rpc2NyaW1pbmFu dHMgICAgICAgICAgICAgICAoSWQgOiBFKSByZXR1cm4gUG9zOwogICBmdW5jdGlvbiBOdW1iZXJf RW50cmllcyAgICAgICAgICAgICAgICAgICAgIChJZCA6IEUpIHJldHVybiBOYXQ7CiAgIGZ1bmN0 aW9uIE51bWJlcl9Gb3JtYWxzICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIFBv czsKICAgZnVuY3Rpb24gUGFyYW1ldGVyX01vZGUgICAgICAgICAgICAgICAgICAgICAoSWQgOiBF KSByZXR1cm4gRm9ybWFsX0tpbmQ7CiAgIGZ1bmN0aW9uIFJvb3RfVHlwZSAgICAgICAgICAgICAg ICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CiAgIGZ1bmN0aW9uIFNjb3BlX0RlcHRoX1Nl dCAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIFNpemVf Q2xhdXNlICAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIE47CiAgIGZ1bmN0 aW9uIFRhZ19Db21wb25lbnQgICAgICAgICAgICAgICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7 CiAgIGZ1bmN0aW9uIFR5cGVfSGlnaF9Cb3VuZCAgICAgICAgICAgICAgICAgICAgKElkIDogRSkg cmV0dXJuIE47CiAgIGZ1bmN0aW9uIFR5cGVfTG93X0JvdW5kICAgICAgICAgICAgICAgICAgICAg KElkIDogRSkgcmV0dXJuIE47CiAgIGZ1bmN0aW9uIFVuZGVybHlpbmdfVHlwZSAgICAgICAgICAg ICAgICAgICAgKElkIDogRSkgcmV0dXJuIEU7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFR5cGUgUmVwcmVzZW50YXRpb24gQXR0cmlidXRl IFByZWRpY2F0ZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQoKICAgLS0gIFRoZXNlIHByZWRpY2F0ZXMgdGVzdCB0aGUgc2V0dGluZyBvZiB0aGUg aW5kaWNhdGVkIGF0dHJpYnV0ZS4gSWYKICAgLS0gIHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXQsIHRo ZW4gS25vd24gaXMgVHJ1ZSwgYW5kIFVua25vd24gaXMgRmFsc2UuCiAgIC0tICBJZiBubyB2YWx1 ZSBpcyBzZXQsIHRoZW4gS25vd24gaXMgRmFsc2UgYW5kIFVua25vd24gaXMgVHJ1ZS4gVGhlCiAg IC0tICBLbm93bl9TdGF0aWMgcHJlZGljYXRlIGlzIHRydWUgb25seSBpZiB0aGUgdmFsdWUgaXMg c2V0IChLbm93bikKICAgLS0gIGFuZCBpcyBzZXQgdG8gYSBjb21waWxlIHRpbWUga25vd24gdmFs dWUuIE5vdGUgdGhhdCBpbiB0aGUgY2FzZQogICAtLSAgb2YgQWxpZ25tZW50IGFuZCBOb3JtYWxp emVkX0ZpcnN0X0JpdCwgZHluYW1pYyB2YWx1ZXMgYXJlIG5vdAogICAtLSAgcG9zc2libGUsIHNv IHdlIGRvIG5vdCBuZWVkIGEgc2VwYXJhdGUgS25vd25fU3RhdGljIGNhbGxzIGluCiAgIC0tICB0 aGVzZSBjYXNlcy4gVGhlIG5vdCBzZXQgKHVua25vd24gdmFsdWVzIGFyZSBhcyBmb2xsb3dzOgoK ICAgLS0gICAgQWxpZ25tZW50ICAgICAgICAgICAgICAgVWludF8wCiAgIC0tICAgIENvbXBvbmVu dF9TaXplICAgICAgICAgIFVpbnRfMAogICAtLSAgICBDb21wb25lbnRfQml0X09mZnNldCAgICBO b19VaW50CiAgIC0tICAgIERpZ2l0c19WYWx1ZSAgICAgICAgICAgIFVpbnRfMAogICAtLSAgICBF c2l6ZSAgICAgICAgICAgICAgICAgICBVaW50XzAKICAgLS0gICAgTm9ybWFsaXplZF9GaXJzdF9C aXQgICAgTm9fVWludAogICAtLSAgICBOb3JtYWxpemVkX1Bvc2l0aW9uICAgICBOb19VaW50CiAg IC0tICAgIE5vcm1hbGl6ZWRfUG9zaXRpb25fTWF4IE5vX1VpbnQKICAgLS0gICAgUk1fU2l6ZSAg ICAgICAgICAgICAgICAgVWludF8wCgogICAtLSAgSXQgd291bGQgYmUgY2xlYW5lciB0byB1c2Ug Tm9fVWludCBpbiBhbGwgdGhlc2UgY2FzZXMsIGJ1dCBoaXN0b3JpY2FsbHkKICAgLS0gIHdlIGNo b3NlIHRvIHVzZSBVaW50XzAgYXQgZmlyc3QsIGFuZCB0aGUgY2hhbmdlIG92ZXIgd2lsbCB0YWtl IHRpbWUgPz8/CiAgIC0tICBUaGlzIGlzIHBhcnRpY3VsYXJseSB0cnVlIGZvciB0aGUgUk1fU2l6 ZSBmaWVsZCwgd2hlcmUgYSB2YWx1ZSBvZiB6ZXJvCiAgIC0tICBpcyBsZWdpdGltYXRlLiBXZSBk ZWFsIHdpdGggdGhpcyBieSBhIG5hc3R5IGtsdWRnZSB0aGF0IGtub3dzIHRoYXQgdGhlCiAgIC0t ICB2YWx1ZSBpcyBhbHdheXMga25vd24gc3RhdGljIGZvciBkaXNjcmV0ZSB0eXBlcyAoYW5kIG5v IG90aGVyIHR5cGVzIGNhbgogICAtLSAgaGF2ZSBhbiBSTV9TaXplIHZhbHVlIG9mIHplcm8pLgoK ICAgZnVuY3Rpb24gS25vd25fQWxpZ25tZW50ICAgICAgICAgICAgICAgICAgICAgICAoRSA6IEVu dGl0eV9JZCkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEtub3duX0NvbXBvbmVudF9CaXRfT2Zmc2V0 ICAgICAgICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBCOwogICBmdW5jdGlvbiBLbm93bl9D b21wb25lbnRfU2l6ZSAgICAgICAgICAgICAgICAgIChFIDogRW50aXR5X0lkKSByZXR1cm4gQjsK ICAgZnVuY3Rpb24gS25vd25fRXNpemUgICAgICAgICAgICAgICAgICAgICAgICAgICAoRSA6IEVu dGl0eV9JZCkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEtub3duX05vcm1hbGl6ZWRfRmlyc3RfQml0 ICAgICAgICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBCOwogICBmdW5jdGlvbiBLbm93bl9O b3JtYWxpemVkX1Bvc2l0aW9uICAgICAgICAgICAgIChFIDogRW50aXR5X0lkKSByZXR1cm4gQjsK ICAgZnVuY3Rpb24gS25vd25fTm9ybWFsaXplZF9Qb3NpdGlvbl9NYXggICAgICAgICAoRSA6IEVu dGl0eV9JZCkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIEtub3duX1JNX1NpemUgICAgICAgICAgICAg ICAgICAgICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBCOwoKICAgZnVuY3Rpb24gS25vd25f U3RhdGljX0NvbXBvbmVudF9CaXRfT2Zmc2V0ICAgICAoRSA6IEVudGl0eV9JZCkgcmV0dXJuIEI7 CiAgIGZ1bmN0aW9uIEtub3duX1N0YXRpY19Db21wb25lbnRfU2l6ZSAgICAgICAgICAgKEUgOiBF bnRpdHlfSWQpIHJldHVybiBCOwogICBmdW5jdGlvbiBLbm93bl9TdGF0aWNfRXNpemUgICAgICAg ICAgICAgICAgICAgIChFIDogRW50aXR5X0lkKSByZXR1cm4gQjsKICAgZnVuY3Rpb24gS25vd25f U3RhdGljX05vcm1hbGl6ZWRfUG9zaXRpb24gICAgICAoRSA6IEVudGl0eV9JZCkgcmV0dXJuIEI7 CiAgIGZ1bmN0aW9uIEtub3duX1N0YXRpY19Ob3JtYWxpemVkX1Bvc2l0aW9uX01heCAgKEUgOiBF bnRpdHlfSWQpIHJldHVybiBCOwogICBmdW5jdGlvbiBLbm93bl9TdGF0aWNfUk1fU2l6ZSAgICAg ICAgICAgICAgICAgIChFIDogRW50aXR5X0lkKSByZXR1cm4gQjsKCiAgIGZ1bmN0aW9uIFVua25v d25fQWxpZ25tZW50ICAgICAgICAgICAgICAgICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBC OwogICBmdW5jdGlvbiBVbmtub3duX0NvbXBvbmVudF9CaXRfT2Zmc2V0ICAgICAgICAgIChFIDog RW50aXR5X0lkKSByZXR1cm4gQjsKICAgZnVuY3Rpb24gVW5rbm93bl9Db21wb25lbnRfU2l6ZSAg ICAgICAgICAgICAgICAoRSA6IEVudGl0eV9JZCkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIFVua25v d25fRXNpemUgICAgICAgICAgICAgICAgICAgICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBC OwogICBmdW5jdGlvbiBVbmtub3duX05vcm1hbGl6ZWRfRmlyc3RfQml0ICAgICAgICAgIChFIDog RW50aXR5X0lkKSByZXR1cm4gQjsKICAgZnVuY3Rpb24gVW5rbm93bl9Ob3JtYWxpemVkX1Bvc2l0 aW9uICAgICAgICAgICAoRSA6IEVudGl0eV9JZCkgcmV0dXJuIEI7CiAgIGZ1bmN0aW9uIFVua25v d25fTm9ybWFsaXplZF9Qb3NpdGlvbl9NYXggICAgICAgKEUgOiBFbnRpdHlfSWQpIHJldHVybiBC OwogICBmdW5jdGlvbiBVbmtub3duX1JNX1NpemUgICAgICAgICAgICAgICAgICAgICAgIChFIDog RW50aXR5X0lkKSByZXR1cm4gQjsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog ICAtLSBBdHRyaWJ1dGUgU2V0IFByb2NlZHVyZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgogICBwcm9jZWR1cmUgU2V0X0FjY2VwdF9BZGRyZXNzICAgICAgICAgICAgICAg IChJZCA6IEU7IFYgOiBMKTsKICAgcHJvY2VkdXJlIFNldF9BY2Nlc3NfRGlzcF9UYWJsZSAgICAg ICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfQWN0dWFsX1N1YnR5cGUg ICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0FkZHJlc3Nf VGFrZW4gICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X0FsaWFzICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAg cHJvY2VkdXJlIFNldF9BbGlnbm1lbnQgICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDog VSk7CiAgIHByb2NlZHVyZSBTZXRfQXNzb2NpYXRlZF9GaW5hbF9DaGFpbiAgICAgICAgKElkIDog RTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0Fzc29jaWF0ZWRfRm9ybWFsX1BhY2thZ2UgICAg IChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9Bc3NvY2lhdGVkX05vZGVfRm9yX0l0 eXBlICAgICAoSWQgOiBFOyBWIDogTik7CiAgIHByb2NlZHVyZSBTZXRfQXNzb2NpYXRlZF9TdG9y YWdlX1Bvb2wgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0JhcnJpZXJf RnVuY3Rpb24gICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9C bG9ja19Ob2RlICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogTik7CiAgIHByb2NlZHVy ZSBTZXRfQm9keV9FbnRpdHkgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBw cm9jZWR1cmUgU2V0X0NSX0Rpc2NyaW1pbmFudCAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBF KTsKICAgcHJvY2VkdXJlIFNldF9DX1Bhc3NfQnlfQ29weSAgICAgICAgICAgICAgICAoSWQgOiBF OyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9DbGFzc19XaWRlX1R5cGUgICAgICAg ICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfQ2xvbmVkX1N1YnR5cGUg ICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0NvbXBvbmVu dF9BbGlnbm1lbnQgICAgICAgICAgIChJZCA6IEU7IFYgOiBDKTsKICAgcHJvY2VkdXJlIFNldF9D b21wb25lbnRfQml0X09mZnNldCAgICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVy ZSBTZXRfQ29tcG9uZW50X0NsYXVzZSAgICAgICAgICAgICAgKElkIDogRTsgViA6IE4pOwogICBw cm9jZWR1cmUgU2V0X0NvbXBvbmVudF9TaXplICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBV KTsKICAgcHJvY2VkdXJlIFNldF9Db21wb25lbnRfVHlwZSAgICAgICAgICAgICAgICAoSWQgOiBF OyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfQ29ycmVzcG9uZGluZ19Db25jdXJyZW50X1R5cGUg KElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0NvcnJlc3BvbmRpbmdfRGlzY3JpbWlu YW50ICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9Db3JyZXNwb25kaW5nX0Vx dWFsaXR5ICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfQ29ycmVzcG9u ZGluZ19SZWNvcmRfVHlwZSAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0Nv cnJlc3BvbmRpbmdfUmVtb3RlX1R5cGUgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJl IFNldF9EZWJ1Z19JbmZvX09mZiAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVl KTsKICAgcHJvY2VkdXJlIFNldF9EZWJ1Z19SZW5hbWluZ19MaW5rICAgICAgICAgICAoSWQgOiBF OyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRFRDX0VudGl0eSAgICAgICAgICAgICAgICAgICAg KElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0RUX0VudHJ5X0NvdW50ICAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBVKTsKICAgcHJvY2VkdXJlIFNldF9EVF9Qb3NpdGlvbiAgICAg ICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVyZSBTZXRfRGVmYXVsdF9F eHByX0Z1bmN0aW9uICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0Rl ZmF1bHRfRXhwcmVzc2lvbnNfUHJvY2Vzc2VkIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X0RlZmF1bHRfVmFsdWUgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBO KTsKICAgcHJvY2VkdXJlIFNldF9EZWxheV9DbGVhbnVwcyAgICAgICAgICAgICAgICAoSWQgOiBF OyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9EZWxheV9TdWJwcm9ncmFtX0Rlc2Ny aXB0b3JzICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9EZWx0YV9W YWx1ZSAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogUik7CiAgIHByb2NlZHVyZSBTZXRf RGVwZW5kZW50X0luc3RhbmNlcyAgICAgICAgICAgKElkIDogRTsgViA6IEwpOwogICBwcm9jZWR1 cmUgU2V0X0RlcGVuZHNfT25fUHJpdmF0ZSAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0RpZ2l0c19WYWx1ZSAgICAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBVKTsKICAgcHJvY2VkdXJlIFNldF9EaXJlY3RseV9EZXNpZ25hdGVkX1R5cGUgICAg ICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRGlzY2FyZF9OYW1lcyAgICAgICAg ICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfRGlzY3Jp bWluYWwgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0 X0Rpc2NyaW1pbmFsX0xpbmsgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2Vk dXJlIFNldF9EaXNjcmltaW5hbnRfQ2hlY2tpbmdfRnVuYyAgICAoSWQgOiBFOyBWIDogRSk7CiAg IHByb2NlZHVyZSBTZXRfRGlzY3JpbWluYW50X0NvbnN0cmFpbnQgICAgICAgKElkIDogRTsgViA6 IEwpOwogICBwcm9jZWR1cmUgU2V0X0Rpc2NyaW1pbmFudF9EZWZhdWx0X1ZhbHVlICAgIChJZCA6 IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9EaXNjcmltaW5hbnRfTnVtYmVyICAgICAgICAg ICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVyZSBTZXRfRWxhYm9yYXRlX0FsbF9EZXNpcmFi bGUgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfRWxhYm9y YXRpb25fRW50aXR5ICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0 X0VsYWJvcmF0aW9uX0VudGl0eV9SZXF1aXJlZCAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwog ICBwcm9jZWR1cmUgU2V0X0VuY2xvc2luZ19TY29wZSAgICAgICAgICAgICAgIChJZCA6IEU7IFYg OiBFKTsKICAgcHJvY2VkdXJlIFNldF9FbnRyeV9BY2NlcHRlZCAgICAgICAgICAgICAgICAoSWQg OiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9FbnRyeV9Cb2RpZXNfQXJyYXkg ICAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRW50cnlfQ2FuY2Vs X1BhcmFtZXRlciAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0VudHJ5 X0NvbXBvbmVudCAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNl dF9FbnRyeV9Gb3JtYWwgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2Nl ZHVyZSBTZXRfRW50cnlfSW5kZXhfQ29uc3RhbnQgICAgICAgICAgKElkIDogRTsgViA6IEUpOwog ICBwcm9jZWR1cmUgU2V0X0VudHJ5X1BhcmFtZXRlcnNfVHlwZSAgICAgICAgIChJZCA6IEU7IFYg OiBFKTsKICAgcHJvY2VkdXJlIFNldF9FbnVtX1Bvc19Ub19SZXAgICAgICAgICAgICAgICAoSWQg OiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRW51bWVyYXRpb25fUG9zICAgICAgICAgICAg ICAgKElkIDogRTsgViA6IFUpOwogICBwcm9jZWR1cmUgU2V0X0VudW1lcmF0aW9uX1JlcCAgICAg ICAgICAgICAgIChJZCA6IEU7IFYgOiBVKTsKICAgcHJvY2VkdXJlIFNldF9FbnVtZXJhdGlvbl9S ZXBfRXhwciAgICAgICAgICAoSWQgOiBFOyBWIDogTik7CiAgIHByb2NlZHVyZSBTZXRfRXF1aXZh bGVudF9UeXBlICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0 X0VzaXplICAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBVKTsKICAgcHJvY2Vk dXJlIFNldF9FeGNlcHRpb25fQ29kZSAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAg IHByb2NlZHVyZSBTZXRfRXh0cmFfQWNjZXNzaWJpbGl0eSAgICAgICAgICAgKElkIDogRTsgViA6 IEUpOwogICBwcm9jZWR1cmUgU2V0X0V4dHJhX0NvbnN0cmFpbmVkICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9FeHRyYV9Gb3JtYWwgICAgICAgICAgICAgICAg ICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRmluYWxpemF0aW9uX0NoYWluX0Vu dGl0eSAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X0ZpbmFsaXplX1N0b3Jh Z2VfT25seSAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X0ZpcnN0X0VudGl0eSAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2Vk dXJlIFNldF9GaXJzdF9JbmRleCAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogTik7CiAg IHByb2NlZHVyZSBTZXRfRmlyc3RfTGl0ZXJhbCAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6 IEUpOwogICBwcm9jZWR1cmUgU2V0X0ZpcnN0X09wdGlvbmFsX1BhcmFtZXRlciAgICAgIChJZCA6 IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9GaXJzdF9Qcml2YXRlX0VudGl0eSAgICAgICAg ICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfRmlyc3RfUmVwX0l0ZW0gICAgICAg ICAgICAgICAgKElkIDogRTsgViA6IE4pOwogICBwcm9jZWR1cmUgU2V0X0ZyZWV6ZV9Ob2RlICAg ICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9Gcm9tX1dp dGhfVHlwZSAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2Vk dXJlIFNldF9GdWxsX1ZpZXcgICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAg IHByb2NlZHVyZSBTZXRfRnVuY3Rpb25fUmV0dXJuc19XaXRoX0RTUCAgICAgKElkIDogRTsgViA6 IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfR2VuZXJpY19SZW5hbWluZ3MgICAgICAgICAg ICAgKElkIDogRTsgViA6IEwpOwogICBwcm9jZWR1cmUgU2V0X0dpcmRlcl9Db25zdHJhaW50ICAg ICAgICAgICAgIChJZCA6IEU7IFYgOiBMKTsKICAgcHJvY2VkdXJlIFNldF9IYW5kbGVyX1JlY29y ZHMgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogUyk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0Fs aWFzZWRfQ29tcG9uZW50cyAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2Nl ZHVyZSBTZXRfSGFzX0FsaWdubWVudF9DbGF1c2UgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0g VHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0FsbF9DYWxsc19SZW1vdGUgICAgICAgICAgKElk IDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0F0b21pY19Db21wb25l bnRzICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFz X0JpYXNlZF9SZXByZXNlbnRhdGlvbiAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHBy b2NlZHVyZSBTZXRfSGFzX0NvbXBsZXRpb24gICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIg Oj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0NvbXBsZXRpb25fSW5fQm9keSAgICAgICAg KElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0NvbXBsZXhfUmVw cmVzZW50YXRpb24gICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRf SGFzX0NvbXBvbmVudF9TaXplX0NsYXVzZSAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAg IHByb2NlZHVyZSBTZXRfSGFzX0NvbnRyb2xsZWRfQ29tcG9uZW50ICAgICAgKElkIDogRTsgViA6 IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0NvbnRyb2xsaW5nX1Jlc3VsdCAgICAg ICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0NvbnZlbnRp b25fUHJhZ21hICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBT ZXRfSGFzX0RlbGF5ZWRfRnJlZXplICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7 CiAgIHByb2NlZHVyZSBTZXRfSGFzX0Rpc2NyaW1pbmFudHMgICAgICAgICAgICAgKElkIDogRTsg ViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0VudW1lcmF0aW9uX1JlcF9DbGF1 c2UgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0V4aXQg ICAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVy ZSBTZXRfSGFzX0V4dGVybmFsX1RhZ19SZXBfQ2xhdXNlICAgKElkIDogRTsgViA6IEIgOj0gVHJ1 ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0Z1bGx5X1F1YWxpZmllZF9OYW1lICAgICAgKElkIDog RTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0dpZ2lfUmVwX0l0ZW0gICAg ICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX0hv bW9ueW0gICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2Nl ZHVyZSBTZXRfSGFzX01hY2hpbmVfUmFkaXhfQ2xhdXNlICAgICAgKElkIDogRTsgViA6IEIgOj0g VHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX01hc3Rlcl9FbnRpdHkgICAgICAgICAgICAgKElk IDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX01pc3NpbmdfUmV0dXJu ICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFz X05lc3RlZF9CbG9ja19XaXRoX0hhbmRsZXIgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHBy b2NlZHVyZSBTZXRfSGFzX0ZvcndhcmRfSW5zdGFudGlhdGlvbiAgICAgKElkIDogRTsgViA6IEIg Oj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX05vbl9TdGFuZGFyZF9SZXAgICAgICAgICAg KElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX09iamVjdF9TaXpl X0NsYXVzZSAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRf SGFzX1Blcl9PYmplY3RfQ29uc3RyYWludCAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAg IHByb2NlZHVyZSBTZXRfSGFzX1ByYWdtYV9Db250cm9sbGVkICAgICAgICAgKElkIDogRTsgViA6 IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByYWdtYV9FbGFib3JhdGVfQm9keSAg ICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByYWdtYV9J bmxpbmUgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBT ZXRfSGFzX1ByYWdtYV9QYWNrICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7 CiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByYWdtYV9QdXJlX0Z1bmN0aW9uICAgICAgKElkIDogRTsg ViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByaW1pdGl2ZV9PcGVyYXRpb25z ICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1ByaXZh dGVfRGVjbGFyYXRpb24gICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVy ZSBTZXRfSGFzX1F1YWxpZmllZF9OYW1lICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1 ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1JlY29yZF9SZXBfQ2xhdXNlICAgICAgICAgKElkIDog RTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1JlY3Vyc2l2ZV9DYWxsICAg ICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1Np emVfQ2xhdXNlICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2Nl ZHVyZSBTZXRfSGFzX1NtYWxsX0NsYXVzZSAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0g VHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1NwZWNpZmllZF9MYXlvdXQgICAgICAgICAgKElk IDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1N0b3JhZ2VfU2l6ZV9D bGF1c2UgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFz X1N1YnByb2dyYW1fRGVzY3JpcHRvciAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHBy b2NlZHVyZSBTZXRfSGFzX1Rhc2sgICAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIg Oj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1VuY2hlY2tlZF9VbmlvbiAgICAgICAgICAg KElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfSGFzX1Vua25vd25fRGlz Y3JpbWluYW50cyAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRf SGFzX1ZvbGF0aWxlX0NvbXBvbmVudHMgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAg IHByb2NlZHVyZSBTZXRfSGlkaW5nX0xvb3BfVmFyaWFibGUgICAgICAgICAgKElkIDogRTsgViA6 IEUpOwogICBwcm9jZWR1cmUgU2V0X0hvbW9ueW0gICAgICAgICAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9Jbl9QYWNrYWdlX0JvZHkgICAgICAgICAgICAg ICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9Jbl9Qcml2YXRlX1Bh cnQgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNl dF9Jbl9Vc2UgICAgICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsK ICAgcHJvY2VkdXJlIFNldF9Jbm5lcl9JbnN0YW5jZXMgICAgICAgICAgICAgICAoSWQgOiBFOyBW IDogTCk7CiAgIHByb2NlZHVyZSBTZXRfSW50ZXJmYWNlX05hbWUgICAgICAgICAgICAgICAgKElk IDogRTsgViA6IE4pOwogICBwcm9jZWR1cmUgU2V0X0lzX0FTVF9FbnRyeSAgICAgICAgICAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0Fic3RyYWN0 ICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUg U2V0X0lzX0FjY2Vzc19Db25zdGFudCAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUp OwogICBwcm9jZWR1cmUgU2V0X0lzX0FsaWFzZWQgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7 IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0FzeW5jaHJvbm91cyAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0F0b21p YyAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X0lzX0JpdF9QYWNrZWRfQXJyYXkgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NQUF9DbGFzcyAgICAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NhbGxlZCAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0No YXJhY3Rlcl9UeXBlICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9j ZWR1cmUgU2V0X0lzX0NoaWxkX1VuaXQgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9 IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NvbXBpbGF0aW9uX1VuaXQgICAgICAgICAgIChJ ZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NvbXBsZXRlbHlfSGlk ZGVuICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lz X0NvbmN1cnJlbnRfUmVjb3JkX1R5cGUgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X0lzX0NvbnN0cl9TdWJ0X0Zvcl9VTl9BbGlhc2VkIChJZCA6IEU7IFYgOiBC IDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NvbnN0cl9TdWJ0X0Zvcl9VX05vbWluYWwg IChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NvbnN0cmFpbmVk ICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X0lzX0NvbnN0cnVjdG9yICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwog ICBwcm9jZWR1cmUgU2V0X0lzX0NvbnRyb2xsZWQgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYg OiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0NvbnRyb2xsaW5nX0Zvcm1hbCAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0Rlc3RydWN0 b3IgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUg U2V0X0lzX0Rpc2NyaW1fU09fRnVuY3Rpb24gICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUp OwogICBwcm9jZWR1cmUgU2V0X0lzX0Rpc3BhdGNoaW5nX09wZXJhdGlvbiAgICAgIChJZCA6IEU7 IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0VsaW1pbmF0ZWQgICAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0VudHJ5 X0Zvcm1hbCAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X0lzX0V4cG9ydGVkICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0ZpcnN0X1N1YnR5cGUgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0Zvcl9BY2Nlc3NfU3VidHlw ZSAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0Zv cm1hbF9TdWJwcm9ncmFtICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9j ZWR1cmUgU2V0X0lzX0Zyb3plbiAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9 IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0dlbmVyaWNfQWN0dWFsX1R5cGUgICAgICAgIChJ ZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0dlbmVyaWNfSW5zdGFu Y2UgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lz X0dlbmVyaWNfVHlwZSAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X0lzX0hpZGRlbiAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBC IDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0hpZGRlbl9PcGVuX1Njb3BlICAgICAgICAg IChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0ltbWVkaWF0ZWx5 X1Zpc2libGUgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X0lzX0ltcG9ydGVkICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwog ICBwcm9jZWR1cmUgU2V0X0lzX0lubGluZWQgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYg OiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0luc3RhbnRpYXRlZCAgICAgICAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0ludGVybmFs ICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUg U2V0X0lzX0ludGVycnVwdF9IYW5kbGVyICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUp OwogICBwcm9jZWR1cmUgU2V0X0lzX0ludHJpbnNpY19TdWJwcm9ncmFtICAgICAgIChJZCA6IEU7 IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0l0eXBlICAgICAgICAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0tub3du X1ZhbGlkICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X0lzX0xpbWl0ZWRfQ29tcG9zaXRlICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX0xpbWl0ZWRfUmVjb3JkICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX01hY2hpbmVfQ29kZV9TdWJw cm9ncmFtICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX05v bl9TdGF0aWNfU3VidHlwZSAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9j ZWR1cmUgU2V0X0lzX051bGxfSW5pdF9Qcm9jICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9 IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX09wdGlvbmFsX1BhcmFtZXRlciAgICAgICAgIChJ ZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1BhY2thZ2VfQm9keV9F bnRpdHkgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lz X1BhY2tlZCAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X0lzX1BhY2tlZF9BcnJheV9UeXBlICAgICAgICAgIChJZCA6IEU7IFYgOiBC IDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1BvdGVudGlhbGx5X1VzZV9WaXNpYmxlICAg IChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1ByZWVsYWJvcmF0 ZWQgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X0lzX1ByaXZhdGVfQ29tcG9zaXRlICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwog ICBwcm9jZWR1cmUgU2V0X0lzX1ByaXZhdGVfRGVzY2VuZGFudCAgICAgICAgIChJZCA6IEU7IFYg OiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1BzZWN0ZWQgICAgICAgICAgICAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1B1YmxpYyAg ICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUg U2V0X0lzX1B1cmUgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUp OwogICBwcm9jZWR1cmUgU2V0X0lzX1JlbW90ZV9DYWxsX0ludGVyZmFjZSAgICAgIChJZCA6IEU7 IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1JlbW90ZV9UeXBlcyAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1JlbmFt aW5nX09mX09iamVjdCAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X0lzX1NoYXJlZF9QYXNzaXZlICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1N0YXRpY2FsbHlfQWxsb2NhdGVkICAgICAgIChJZCA6 IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1RhZyAgICAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1Rh Z2dlZF9UeXBlICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9j ZWR1cmUgU2V0X0lzX1RydWVfQ29uc3RhbnQgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9 IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1VuY2hlY2tlZF9VbmlvbiAgICAgICAgICAgIChJ ZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1Vuc2lnbmVkX1R5cGUg ICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lz X1ZNU19FeGNlcHRpb24gICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X0lzX1ZhbHVlZF9Qcm9jZWR1cmUgICAgICAgICAgIChJZCA6IEU7IFYgOiBC IDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1Zpc2libGVfQ2hpbGRfVW5pdCAgICAgICAg IChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X0lzX1ZvbGF0aWxlICAg ICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X0xhc3RfRW50aXR5ICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2Vk dXJlIFNldF9MaXRfSW5kZXhlcyAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAg IHByb2NlZHVyZSBTZXRfTGl0X1N0cmluZ3MgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6 IEUpOwogICBwcm9jZWR1cmUgU2V0X01hY2hpbmVfUmFkaXhfMTAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X01hc3Rlcl9JZCAgICAgICAgICAg ICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9NYXRlcmlhbGl6ZV9F bnRpdHkgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNl dF9NZWNoYW5pc20gICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogTSk7CiAgIHByb2Nl ZHVyZSBTZXRfTW9kdWx1cyAgICAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IFUpOwog ICBwcm9jZWR1cmUgU2V0X05lZWRzX0RlYnVnX0luZm8gICAgICAgICAgICAgIChJZCA6IEU7IFYg OiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X05lZWRzX05vX0FjdHVhbHMgICAgICAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X05leHRfSW5saW5l ZF9TdWJwcm9ncmFtICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9Ob19Q b29sX0Fzc2lnbmVkICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJv Y2VkdXJlIFNldF9Ob19SZXR1cm4gICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6 PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9Ob25fQmluYXJ5X01vZHVsdXMgICAgICAgICAgICAo SWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9Ob256ZXJvX0lzX1RydWUg ICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9O b3JtYWxpemVkX0ZpcnN0X0JpdCAgICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVy ZSBTZXRfTm9ybWFsaXplZF9Qb3NpdGlvbiAgICAgICAgICAgKElkIDogRTsgViA6IFUpOwogICBw cm9jZWR1cmUgU2V0X05vcm1hbGl6ZWRfUG9zaXRpb25fTWF4ICAgICAgIChJZCA6IEU7IFYgOiBV KTsKICAgcHJvY2VkdXJlIFNldF9Ob3RfU291cmNlX0Fzc2lnbmVkICAgICAgICAgICAoSWQgOiBF OyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9PYmplY3RfUmVmICAgICAgICAgICAg ICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfT3JpZ2luYWxfUmVjb3Jk X0NvbXBvbmVudCAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X1BhY2tlZF9B cnJheV9UeXBlICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9Q YXJlbnRfU3VidHlwZSAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVy ZSBTZXRfUHJpbWl0aXZlX09wZXJhdGlvbnMgICAgICAgICAgKElkIDogRTsgViA6IEwpOwogICBw cm9jZWR1cmUgU2V0X1ByaXZhbCAgICAgICAgICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBF KTsKICAgcHJvY2VkdXJlIFNldF9Qcml2YWxzX0NoYWluICAgICAgICAgICAgICAgICAoSWQgOiBF OyBWIDogTCk7CiAgIHByb2NlZHVyZSBTZXRfUHJpdmF0ZV9EZXBlbmRlbnRzICAgICAgICAgICAg KElkIDogRTsgViA6IEwpOwogICBwcm9jZWR1cmUgU2V0X1ByaXZhdGVfVmlldyAgICAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9Qcm90ZWN0ZWRfQm9keV9T dWJwcm9ncmFtICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVyZSBTZXRfUHJvdGVjdGVk X0Zvcm1hbCAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBwcm9jZWR1cmUgU2V0X1By b3RlY3RlZF9PcGVyYXRpb24gICAgICAgICAgIChJZCA6IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJl IFNldF9STV9TaXplICAgICAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAgIHBy b2NlZHVyZSBTZXRfUmVhY2hhYmxlICAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIg Oj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfUmVmZXJlbmNlZCAgICAgICAgICAgICAgICAgICAg KElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVyZSBTZXRfUmVmZXJlbmNlZF9PYmpl Y3QgICAgICAgICAgICAgKElkIDogRTsgViA6IE4pOwogICBwcm9jZWR1cmUgU2V0X1JlZ2lzdGVy X0V4Y2VwdGlvbl9DYWxsICAgICAgIChJZCA6IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9S ZWxhdGVkX0FycmF5X09iamVjdCAgICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAgIHByb2NlZHVy ZSBTZXRfUmVsYXRlZF9JbnN0YW5jZSAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwogICBw cm9jZWR1cmUgU2V0X1JlbmFtZWRfRW50aXR5ICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBO KTsKICAgcHJvY2VkdXJlIFNldF9SZW5hbWVkX09iamVjdCAgICAgICAgICAgICAgICAoSWQgOiBF OyBWIDogTik7CiAgIHByb2NlZHVyZSBTZXRfUmVuYW1pbmdfTWFwICAgICAgICAgICAgICAgICAg KElkIDogRTsgViA6IFUpOwogICBwcm9jZWR1cmUgU2V0X1JldHVybl9QcmVzZW50ICAgICAgICAg ICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1JldHVybnNf QnlfUmVmICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1 cmUgU2V0X1JldmVyc2VfQml0X09yZGVyICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRy dWUpOwogICBwcm9jZWR1cmUgU2V0X1NjYWxhcl9SYW5nZSAgICAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9TY2FsZV9WYWx1ZSAgICAgICAgICAgICAgICAg ICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVyZSBTZXRfU2NvcGVfRGVwdGhfVmFsdWUgICAg ICAgICAgICAgKElkIDogRTsgViA6IFUpOwogICBwcm9jZWR1cmUgU2V0X1NlY19TdGFja19OZWVk ZWRfRm9yX1JldHVybiAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X1NoYWRvd19FbnRpdGllcyAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBTKTsKICAgcHJvY2Vk dXJlIFNldF9TaGFyZWRfVmFyX0Fzc2lnbl9Qcm9jICAgICAgICAoSWQgOiBFOyBWIDogRSk7CiAg IHByb2NlZHVyZSBTZXRfU2hhcmVkX1Zhcl9SZWFkX1Byb2MgICAgICAgICAgKElkIDogRTsgViA6 IEUpOwogICBwcm9jZWR1cmUgU2V0X1NpemVfQ2hlY2tfQ29kZSAgICAgICAgICAgICAgIChJZCA6 IEU7IFYgOiBOKTsKICAgcHJvY2VkdXJlIFNldF9TaXplX0RlcGVuZHNfT25fRGlzY3JpbWluYW50 ICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9TaXplX0tub3duX0F0 X0NvbXBpbGVfVGltZSAgICAoSWQgOiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNl dF9TbWFsbF9WYWx1ZSAgICAgICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogUik7CiAgIHByb2Nl ZHVyZSBTZXRfU3BlY19FbnRpdHkgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEUpOwog ICBwcm9jZWR1cmUgU2V0X1N0b3JhZ2VfU2l6ZV9WYXJpYWJsZSAgICAgICAgIChJZCA6IEU7IFYg OiBFKTsKICAgcHJvY2VkdXJlIFNldF9TdHJpY3RfQWxpZ25tZW50ICAgICAgICAgICAgICAoSWQg OiBFOyBWIDogQiA6PSBUcnVlKTsKICAgcHJvY2VkdXJlIFNldF9TdHJpbmdfTGl0ZXJhbF9MZW5n dGggICAgICAgICAoSWQgOiBFOyBWIDogVSk7CiAgIHByb2NlZHVyZSBTZXRfU3RyaW5nX0xpdGVy YWxfTG93X0JvdW5kICAgICAgKElkIDogRTsgViA6IE4pOwogICBwcm9jZWR1cmUgU2V0X1N1cHBy ZXNzX0FjY2Vzc19DaGVja3MgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9j ZWR1cmUgU2V0X1N1cHByZXNzX0FjY2Vzc2liaWxpdHlfQ2hlY2tzIChJZCA6IEU7IFYgOiBCIDo9 IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX0Rpc2NyaW1pbmFudF9DaGVja3MgIChJ ZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX0RpdmlzaW9u X0NoZWNrcyAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1 cHByZXNzX0VsYWJvcmF0aW9uX0NoZWNrcyAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBw cm9jZWR1cmUgU2V0X1N1cHByZXNzX0VsYWJvcmF0aW9uX1dhcm5pbmdzIChJZCA6IEU7IFYgOiBC IDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX0luZGV4X0NoZWNrcyAgICAgICAg IChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX0luaXRf UHJvYyAgICAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0 X1N1cHByZXNzX0xlbmd0aF9DaGVja3MgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwog ICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX092ZXJmbG93X0NoZWNrcyAgICAgIChJZCA6IEU7IFYg OiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX1JhbmdlX0NoZWNrcyAgICAg ICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX1N0 b3JhZ2VfQ2hlY2tzICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUg U2V0X1N1cHByZXNzX1N0eWxlX0NoZWNrcyAgICAgICAgIChJZCA6IEU7IFYgOiBCIDo9IFRydWUp OwogICBwcm9jZWR1cmUgU2V0X1N1cHByZXNzX1RhZ19DaGVja3MgICAgICAgICAgIChJZCA6IEU7 IFYgOiBCIDo9IFRydWUpOwogICBwcm9jZWR1cmUgU2V0X1VuZGVybHlpbmdfRnVsbF9WaWV3ICAg ICAgICAgIChJZCA6IEU7IFYgOiBFKTsKICAgcHJvY2VkdXJlIFNldF9VbnNldF9SZWZlcmVuY2Ug ICAgICAgICAgICAgICAoSWQgOiBFOyBWIDogTik7CiAgIHByb2NlZHVyZSBTZXRfVXNlc19TZWNf U3RhY2sgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1ZSk7CiAgIHByb2NlZHVy ZSBTZXRfVmF4X0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEIgOj0gVHJ1 ZSk7CiAgIHByb2NlZHVyZSBTZXRfV2FybmluZ3NfT2ZmICAgICAgICAgICAgICAgICAgKElkIDog RTsgViA6IEIgOj0gVHJ1ZSk7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICAtLSBGaWVsZCBJbml0aWFsaXphdGlvbiBSb3V0aW5lcyAtLQogICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZXNlIHJvdXRpbmVzIGFyZSBvdmVybG9h ZGluZ3Mgb2Ygc29tZSBvZiB0aGUgYWJvdmUgU2V0IHByb2NlZHVyZXMKICAgLS0gIHdoZXJlIHRo ZSBhcmd1bWVudCBpcyBub3JtYWxseSBhIFVpbnQuIFRoZSBvdmVybG9hZGluZ3MgdGFrZSBhbiBJ bnQKICAgLS0gIHBhcmFtZXRlciBpbnN0ZWFkLCBhbmQgYXBwcm9wcmlhdGVseSBjb252ZXJ0IGl0 LiBUaGVyZSBhcmUgYWxzbwogICAtLSAgdmVyc2lvbnMgdGhhdCBpbXBsaWNpdGx5IGluaXRpYWxp emUgdG8gdGhlIGFwcHJvcHJpYXRlICJub3Qgc2V0IgogICAtLSAgdmFsdWUuIFRoZSBub3Qgc2V0 ICh1bmtub3duKSB2YWx1ZXMgYXJlIGFzIGZvbGxvd3M6CgogICAtLSAgICBBbGlnbm1lbnQgICAg ICAgICAgICAgICAgIFVpbnRfMAogICAtLSAgICBDb21wb25lbnRfU2l6ZSAgICAgICAgICAgIFVp bnRfMAogICAtLSAgICBDb21wb25lbnRfQml0X09mZnNldCAgICAgIE5vX1VpbnQKICAgLS0gICAg RGlnaXRzX1ZhbHVlICAgICAgICAgICAgICBVaW50XzAKICAgLS0gICAgRXNpemUgICAgICAgICAg ICAgICAgICAgICBVaW50XzAKICAgLS0gICAgTm9ybWFsaXplZF9GaXJzdF9CaXQgICAgICBOb19V aW50CiAgIC0tICAgIE5vcm1hbGl6ZWRfUG9zaXRpb24gICAgICAgTm9fVWludAogICAtLSAgICBO b3JtYWxpemVkX1Bvc2l0aW9uX01heCAgIE5vX1VpbnQKICAgLS0gICAgUk1fU2l6ZSAgICAgICAg ICAgICAgICAgICBVaW50XzAKCiAgIC0tICBJdCB3b3VsZCBiZSBjbGVhbmVyIHRvIHVzZSBOb19V aW50IGluIGFsbCB0aGVzZSBjYXNlcywgYnV0IGhpc3RvcmljYWxseQogICAtLSAgd2UgY2hvc2Ug dG8gdXNlIFVpbnRfMCBhdCBmaXJzdCwgYW5kIHRoZSBjaGFuZ2Ugb3ZlciB3aWxsIHRha2UgdGlt ZSA/Pz8KICAgLS0gIFRoaXMgaXMgcGFydGljdWxhcmx5IHRydWUgZm9yIHRoZSBSTV9TaXplIGZp ZWxkLCB3aGVyZSBhIHZhbHVlIG9mIHplcm8KICAgLS0gIGlzIGxlZ2l0aW1hdGUgYW5kIGNhdXNl cyBzb21lIGtsdWRnZXMgYXJvdW5kIHRoZSBjb2RlLgoKICAgcHJvY2VkdXJlIEluaXRfQWxpZ25t ZW50ICAgICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBJbnQpOwogICBwcm9jZWR1cmUgSW5pdF9D b21wb25lbnRfU2l6ZSAgICAgICAgICAgKElkIDogRTsgViA6IEludCk7CiAgIHByb2NlZHVyZSBJ bml0X0NvbXBvbmVudF9CaXRfT2Zmc2V0ICAgICAoSWQgOiBFOyBWIDogSW50KTsKICAgcHJvY2Vk dXJlIEluaXRfRGlnaXRzX1ZhbHVlICAgICAgICAgICAgIChJZCA6IEU7IFYgOiBJbnQpOwogICBw cm9jZWR1cmUgSW5pdF9Fc2l6ZSAgICAgICAgICAgICAgICAgICAgKElkIDogRTsgViA6IEludCk7 CiAgIHByb2NlZHVyZSBJbml0X05vcm1hbGl6ZWRfRmlyc3RfQml0ICAgICAoSWQgOiBFOyBWIDog SW50KTsKICAgcHJvY2VkdXJlIEluaXRfTm9ybWFsaXplZF9Qb3NpdGlvbiAgICAgIChJZCA6IEU7 IFYgOiBJbnQpOwogICBwcm9jZWR1cmUgSW5pdF9Ob3JtYWxpemVkX1Bvc2l0aW9uX01heCAgKElk IDogRTsgViA6IEludCk7CiAgIHByb2NlZHVyZSBJbml0X1JNX1NpemUgICAgICAgICAgICAgICAg ICAoSWQgOiBFOyBWIDogSW50KTsKCiAgIHByb2NlZHVyZSBJbml0X0FsaWdubWVudCAgICAgICAg ICAgICAgICAoSWQgOiBFKTsKICAgcHJvY2VkdXJlIEluaXRfQ29tcG9uZW50X1NpemUgICAgICAg ICAgIChJZCA6IEUpOwogICBwcm9jZWR1cmUgSW5pdF9Db21wb25lbnRfQml0X09mZnNldCAgICAg KElkIDogRSk7CiAgIHByb2NlZHVyZSBJbml0X0RpZ2l0c19WYWx1ZSAgICAgICAgICAgICAoSWQg OiBFKTsKICAgcHJvY2VkdXJlIEluaXRfRXNpemUgICAgICAgICAgICAgICAgICAgIChJZCA6IEUp OwogICBwcm9jZWR1cmUgSW5pdF9Ob3JtYWxpemVkX0ZpcnN0X0JpdCAgICAgKElkIDogRSk7CiAg IHByb2NlZHVyZSBJbml0X05vcm1hbGl6ZWRfUG9zaXRpb24gICAgICAoSWQgOiBFKTsKICAgcHJv Y2VkdXJlIEluaXRfTm9ybWFsaXplZF9Qb3NpdGlvbl9NYXggIChJZCA6IEUpOwogICBwcm9jZWR1 cmUgSW5pdF9STV9TaXplICAgICAgICAgICAgICAgICAgKElkIDogRSk7CgogICBwcm9jZWR1cmUg SW5pdF9TaXplX0FsaWduIChJZCA6IEUpOwogICAtLSAgVGhpcyBwcm9jZWR1cmUgaW5pdGlhbGl6 ZXMgYm90aCBzaXplIGZpZWxkcyBhbmQgdGhlIGFsaWdubWVudAogICAtLSAgZmllbGQgdG8gYWxs IGJlIFVua25vd24uCgogICBwcm9jZWR1cmUgSW5pdF9TaXplIChJZCA6IEU7IFYgOiBJbnQpOwog ICAtLSAgSW5pdGlhbGl6ZSBib3RoIHRoZSBFc2l6ZSBhbmQgUk1fU2l6ZSBmaWVsZHMgb2YgRSB0 byBWCgogICBwcm9jZWR1cmUgSW5pdF9Db21wb25lbnRfTG9jYXRpb24gKElkIDogRSk7CiAgIC0t ICBJbml0aWFsaXplcyBhbGwgZmllbGRzIGRlc2NyaWJpbmcgdGhlIGxvY2F0aW9uIG9mIGEgY29t cG9uZW50CiAgIC0tICAoTm9ybWFsaXplZF9Qb3NpdGlvbiwgQ29tcG9uZW50X0JpdF9PZmZzZXQs IE5vcm1hbGl6ZWRfRmlyc3RfQml0LAogICAtLSAgTm9ybWFsaXplZF9Qb3NpdGlvbl9NYXgsIEVz aXplKSB0byBhbGwgYmUgVW5rbm93bi4KCiAgIC0tLS0tLS0tLS0tLS0tLQogICAtLSBJdGVyYXRv cnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGNhbGwgdG8gTmV4dF94eHggKG9i aikgaXMgZXF1aXZhbGVudCB0byBvYmogOj0gTmV4dF94eHggKG9iaikKICAgLS0gIFdlIGRlZmlu ZSB0aGUgc2V0IG9mIFByb2NfTmV4dF94eHggcm91dGluZXMgc2ltcGx5IGZvciB0aGUgcHVycG9z ZXMKICAgLS0gIG9mIGlubGluaW5nIHRoZW0gd2l0aG91dCBuZWNlc3NhcmlseSBpbmxpbmluZyB0 aGUgZnVuY3Rpb24uCgogICBwcm9jZWR1cmUgUHJvY19OZXh0X0NvbXBvbmVudCAgICAgICAgICAg KE4gOiBpbiBvdXQgTm9kZV9JZCk7CiAgIHByb2NlZHVyZSBQcm9jX05leHRfRGlzY3JpbWluYW50 ICAgICAgICAoTiA6IGluIG91dCBOb2RlX0lkKTsKICAgcHJvY2VkdXJlIFByb2NfTmV4dF9Gb3Jt YWwgICAgICAgICAgICAgIChOIDogaW4gb3V0IE5vZGVfSWQpOwogICBwcm9jZWR1cmUgUHJvY19O ZXh0X0Zvcm1hbF9XaXRoX0V4dHJhcyAgKE4gOiBpbiBvdXQgTm9kZV9JZCk7CiAgIHByb2NlZHVy ZSBQcm9jX05leHRfR2lyZGVyX0Rpc2NyaW1pbmFudCAoTiA6IGluIG91dCBOb2RlX0lkKTsKICAg cHJvY2VkdXJlIFByb2NfTmV4dF9JbmRleCAgICAgICAgICAgICAgIChOIDogaW4gb3V0IE5vZGVf SWQpOwogICBwcm9jZWR1cmUgUHJvY19OZXh0X0lubGluZWRfU3VicHJvZ3JhbSAgKE4gOiBpbiBv dXQgTm9kZV9JZCk7CiAgIHByb2NlZHVyZSBQcm9jX05leHRfTGl0ZXJhbCAgICAgICAgICAgICAo TiA6IGluIG91dCBOb2RlX0lkKTsKCiAgIHByYWdtYSBJbmxpbmUgKFByb2NfTmV4dF9Db21wb25l bnQpOwogICBwcmFnbWEgSW5saW5lIChQcm9jX05leHRfRGlzY3JpbWluYW50KTsKICAgcHJhZ21h IElubGluZSAoUHJvY19OZXh0X0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFByb2NfTmV4dF9G b3JtYWxfV2l0aF9FeHRyYXMpOwogICBwcmFnbWEgSW5saW5lIChQcm9jX05leHRfR2lyZGVyX0Rp c2NyaW1pbmFudCk7CiAgIHByYWdtYSBJbmxpbmUgKFByb2NfTmV4dF9JbmRleCk7CiAgIHByYWdt YSBJbmxpbmUgKFByb2NfTmV4dF9JbmxpbmVkX1N1YnByb2dyYW0pOwogICBwcmFnbWEgSW5saW5l IChQcm9jX05leHRfTGl0ZXJhbCk7CgogICBwcm9jZWR1cmUgTmV4dF9Db21wb25lbnQgICAgICAg ICAgIChOIDogaW4gb3V0IE5vZGVfSWQpCiAgICAgcmVuYW1lcyBQcm9jX05leHRfQ29tcG9uZW50 OwoKICAgcHJvY2VkdXJlIE5leHRfRGlzY3JpbWluYW50ICAgICAgICAoTiA6IGluIG91dCBOb2Rl X0lkKQogICAgIHJlbmFtZXMgUHJvY19OZXh0X0Rpc2NyaW1pbmFudDsKCiAgIHByb2NlZHVyZSBO ZXh0X0Zvcm1hbCAgICAgICAgICAgICAgKE4gOiBpbiBvdXQgTm9kZV9JZCkKICAgICByZW5hbWVz IFByb2NfTmV4dF9Gb3JtYWw7CgogICBwcm9jZWR1cmUgTmV4dF9Gb3JtYWxfV2l0aF9FeHRyYXMg IChOIDogaW4gb3V0IE5vZGVfSWQpCiAgICAgcmVuYW1lcyBQcm9jX05leHRfRm9ybWFsX1dpdGhf RXh0cmFzOwoKICAgcHJvY2VkdXJlIE5leHRfR2lyZGVyX0Rpc2NyaW1pbmFudCAoTiA6IGluIG91 dCBOb2RlX0lkKQogICAgIHJlbmFtZXMgUHJvY19OZXh0X0dpcmRlcl9EaXNjcmltaW5hbnQ7Cgog ICBwcm9jZWR1cmUgTmV4dF9JbmRleCAgICAgICAgICAgICAgIChOIDogaW4gb3V0IE5vZGVfSWQp CiAgICAgcmVuYW1lcyBQcm9jX05leHRfSW5kZXg7CgogICBwcm9jZWR1cmUgTmV4dF9JbmxpbmVk X1N1YnByb2dyYW0gIChOIDogaW4gb3V0IE5vZGVfSWQpCiAgICAgcmVuYW1lcyBQcm9jX05leHRf SW5saW5lZF9TdWJwcm9ncmFtOwoKICAgcHJvY2VkdXJlIE5leHRfTGl0ZXJhbCAgICAgICAgICAg ICAoTiA6IGluIG91dCBOb2RlX0lkKQogICAgIHJlbmFtZXMgUHJvY19OZXh0X0xpdGVyYWw7Cgog ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIE1pc2NlbGxhbmVvdXMgU3Vi cHJvZ3JhbXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgcHJvY2Vk dXJlIEFwcGVuZF9FbnRpdHkgKElkIDogRW50aXR5X0lkOyBWIDogRW50aXR5X0lkKTsKICAgLS0g IEFkZCBhbiBlbnRpdHkgdG8gdGhlIGxpc3Qgb2YgZW50aXRpZXMgZGVjbGFyZWQgaW4gdGhlIHNj b3BlIFYKCiAgIGZ1bmN0aW9uIElzX0VudGl0eV9OYW1lIChOIDogTm9kZV9JZCkgcmV0dXJuIEJv b2xlYW47CiAgIC0tICBUZXN0IGlmIHRoZSBub2RlIE4gaXMgdGhlIG5hbWUgb2YgYW4gZW50aXR5 IChpLmUuIGlzIGFuIGlkZW50aWZpZXIsCiAgIC0tICBleHBhbmRlZCBuYW1lLCBvciBhbiBhdHRy aWJ1dGUgcmVmZXJlbmNlIHRoYXQgcmV0dXJucyBhbiBlbnRpdHkpLgoKICAgZnVuY3Rpb24gTmV4 dF9JbmRleCAoSWQgOiBOb2RlX0lkKSByZXR1cm4gTm9kZV9JZDsKICAgLS0gIEdpdmVuIGFuIGlu ZGV4IGZyb20gYSBwcmV2aW91cyBjYWxsIHRvIEZpcnN0X0luZGV4IG9yIE5leHRfSW5kZXgsCiAg IC0tICByZXR1cm5zIGEgbm9kZSByZXByZXNlbnRpbmcgdGhlIG9jY3VycmVuY2Ugb2YgdGhlIG5l eHQgaW5kZXggc3VidHlwZSwKICAgLS0gIG9yIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3JlIGlu ZGV4IHN1YnR5cGVzLgoKICAgZnVuY3Rpb24gU2NvcGVfRGVwdGggKElkIDogRW50aXR5X0lkKSBy ZXR1cm4gVWludDsKICAgLS0gIFJldHVybnMgdGhlIHNjb3BlIGRlcHRoIHZhbHVlIG9mIHRoZSBJ ZCwgdW5sZXNzIHRoZSBJZCBpcyBhIHJlY29yZAogICAtLSAgdHlwZSwgaW4gd2hpY2ggY2FzZSBp dCByZXR1cm5zIHRoZSBzY29wZSBkZXB0aCBvZiB0aGUgcmVjb3JkIHNjb3BlLgoKICAgZnVuY3Rp b24gU3VidHlwZV9LaW5kIChLIDogRW50aXR5X0tpbmQpIHJldHVybiBFbnRpdHlfS2luZDsKICAg LS0gIEdpdmVuIGFuIGVudGl0eV9raW5kIEsgdGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBlbnRp dHlfa2luZAogICAtLSAgY29ycmVzcG9uZGluZyB0byBzdWJ0eXBlIGtpbmQgb2YgdGhlIHR5cGUg cmVwcmVzZW50ZWQgYnkgSy4gRm9yCiAgIC0tICBleGFtcGxlIGlmIEsgaXMgRV9TaWduZWRfSW50 ZWdlcl9UeXBlIHRoZW4gRV9TaWduZWRfSW50ZWdlcl9TdWJ0eXBlCiAgIC0tICBpcyByZXR1cm5l ZC4gSWYgSyBpcyBhbHJlYWR5IGEgc3VidHlwZSBraW5kIGl0IGl0c2VsZiBpcyByZXR1cm5lZC4g QW4KICAgLS0gIGludGVybmFsIGVycm9yIGlzIGdlbmVyYXRlZCBpZiBubyBzdWNoIGNvcnJlc3Bv bmRlbmNlIGV4aXN0cyBmb3IgSy4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICAgLS0gRGVidWdnaW5nIE91dHB1dCBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgV3JpdGVfRW50aXR5X0ZsYWdzIChJ ZCA6IEVudGl0eV9JZDsgUHJlZml4IDogU3RyaW5nKTsKICAgLS0gIFdyaXRlcyBhIHNlcmllcyBv ZiBlbnRyaWVzIGdpdmluZyBhIGxpbmUgZm9yIGVhY2ggZmxhZyB0aGF0IGlzCiAgIC0tICBzZXQg dG8gVHJ1ZS4gRWFjaCBsaW5lIGlzIHByZWZpeGVkIGJ5IHRoZSBnaXZlbiBzdHJpbmcKCiAgIHBy b2NlZHVyZSBXcml0ZV9FbnRpdHlfSW5mbyAoSWQgOiBFbnRpdHlfSWQ7IFByZWZpeCA6IFN0cmlu Zyk7CiAgIC0tICBBIGRlYnVnZ2luZyBwcm9jZWR1cmUgdG8gd3JpdGUgb3V0IGluZm9ybWF0aW9u IGFib3V0IGFuIGVudGl0eQoKICAgcHJvY2VkdXJlIFdyaXRlX0ZpZWxkNl9OYW1lICAoSWQgOiBF bnRpdHlfSWQpOwogICBwcm9jZWR1cmUgV3JpdGVfRmllbGQ3X05hbWUgIChJZCA6IEVudGl0eV9J ZCk7CiAgIHByb2NlZHVyZSBXcml0ZV9GaWVsZDhfTmFtZSAgKElkIDogRW50aXR5X0lkKTsKICAg cHJvY2VkdXJlIFdyaXRlX0ZpZWxkOV9OYW1lICAoSWQgOiBFbnRpdHlfSWQpOwogICBwcm9jZWR1 cmUgV3JpdGVfRmllbGQxMF9OYW1lIChJZCA6IEVudGl0eV9JZCk7CiAgIHByb2NlZHVyZSBXcml0 ZV9GaWVsZDExX05hbWUgKElkIDogRW50aXR5X0lkKTsKICAgcHJvY2VkdXJlIFdyaXRlX0ZpZWxk MTJfTmFtZSAoSWQgOiBFbnRpdHlfSWQpOwogICBwcm9jZWR1cmUgV3JpdGVfRmllbGQxM19OYW1l IChJZCA6IEVudGl0eV9JZCk7CiAgIHByb2NlZHVyZSBXcml0ZV9GaWVsZDE0X05hbWUgKElkIDog RW50aXR5X0lkKTsKICAgcHJvY2VkdXJlIFdyaXRlX0ZpZWxkMTVfTmFtZSAoSWQgOiBFbnRpdHlf SWQpOwogICBwcm9jZWR1cmUgV3JpdGVfRmllbGQxNl9OYW1lIChJZCA6IEVudGl0eV9JZCk7CiAg IHByb2NlZHVyZSBXcml0ZV9GaWVsZDE3X05hbWUgKElkIDogRW50aXR5X0lkKTsKICAgcHJvY2Vk dXJlIFdyaXRlX0ZpZWxkMThfTmFtZSAoSWQgOiBFbnRpdHlfSWQpOwogICBwcm9jZWR1cmUgV3Jp dGVfRmllbGQxOV9OYW1lIChJZCA6IEVudGl0eV9JZCk7CiAgIHByb2NlZHVyZSBXcml0ZV9GaWVs ZDIwX05hbWUgKElkIDogRW50aXR5X0lkKTsKICAgcHJvY2VkdXJlIFdyaXRlX0ZpZWxkMjFfTmFt ZSAoSWQgOiBFbnRpdHlfSWQpOwogICBwcm9jZWR1cmUgV3JpdGVfRmllbGQyMl9OYW1lIChJZCA6 IEVudGl0eV9JZCk7CiAgIHByb2NlZHVyZSBXcml0ZV9GaWVsZDIzX05hbWUgKElkIDogRW50aXR5 X0lkKTsKICAgLS0gIFRoZXNlIHJvdXRpbmVzIGFyZSB1c2VkIHRvIG91dHB1dCBhIG5pY2Ugc3lt Ym9saWMgbmFtZSBmb3IgdGhlIGdpdmVuCiAgIC0tICBmaWVsZCwgZGVwZW5kaW5nIG9uIHRoZSBF a2luZC4gTm8gYmxhbmtzIG9yIGVuZCBvZiBsaW5lcyBhcmUgb3V0cHV0LAogICAtLSAganVzdCB0 aGUgY2hhcmFjdGVycyBvZiB0aGUgZmllbGQgbmFtZS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgIC0tIElubGluZSBQcmFnbWFzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAg Tm90ZSB0aGF0IHRoZXNlIGlubGluZSBwcmFnbWFzIGFyZSByZWZlcmVuY2VkIGJ5IHRoZSBYRUlO Rk8gdXRpbGl0eQogICAtLSAgcHJvZ3JhbSBpbiBwcmVwYXJpbmcgdGhlIGNvcnJlc3BvbmRpbmcg QyBoZWFkZXIsIGFuZCBvbmx5IHRob3NlCiAgIC0tICBzdWJwcm9ncmFtcyBtZWV0aW5nIHRoZSBy ZXF1aXJlbWVudHMgZG9jdW1lbnRlZCBpbiB0aGUgc2VjdGlvbiBvbgogICAtLSAgWEVJTkZPIG1h eSBiZSByZWZlcmVuY2VkIGluIHRoaXMgc2VjdGlvbi4KCiAgIHByYWdtYSBJbmxpbmUgKEFjY2Vw dF9BZGRyZXNzKTsKICAgcHJhZ21hIElubGluZSAoQWNjZXNzX0Rpc3BfVGFibGUpOwogICBwcmFn bWEgSW5saW5lIChBY3R1YWxfU3VidHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEFkZHJlc3NfVGFr ZW4pOwogICBwcmFnbWEgSW5saW5lIChBbGlhcyk7CiAgIHByYWdtYSBJbmxpbmUgKEFsaWdubWVu dCk7CiAgIHByYWdtYSBJbmxpbmUgKEFzc29jaWF0ZWRfRmluYWxfQ2hhaW4pOwogICBwcmFnbWEg SW5saW5lIChBc3NvY2lhdGVkX0Zvcm1hbF9QYWNrYWdlKTsKICAgcHJhZ21hIElubGluZSAoQXNz b2NpYXRlZF9Ob2RlX0Zvcl9JdHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEFzc29jaWF0ZWRfU3Rv cmFnZV9Qb29sKTsKICAgcHJhZ21hIElubGluZSAoQmFycmllcl9GdW5jdGlvbik7CiAgIHByYWdt YSBJbmxpbmUgKEJsb2NrX05vZGUpOwogICBwcmFnbWEgSW5saW5lIChCb2R5X0VudGl0eSk7CiAg IHByYWdtYSBJbmxpbmUgKENSX0Rpc2NyaW1pbmFudCk7CiAgIHByYWdtYSBJbmxpbmUgKENfUGFz c19CeV9Db3B5KTsKICAgcHJhZ21hIElubGluZSAoQ2xhc3NfV2lkZV9UeXBlKTsKICAgcHJhZ21h IElubGluZSAoQ2xvbmVkX1N1YnR5cGUpOwogICBwcmFnbWEgSW5saW5lIChDb21wb25lbnRfQml0 X09mZnNldCk7CiAgIHByYWdtYSBJbmxpbmUgKENvbXBvbmVudF9DbGF1c2UpOwogICBwcmFnbWEg SW5saW5lIChDb21wb25lbnRfU2l6ZSk7CiAgIHByYWdtYSBJbmxpbmUgKENvbXBvbmVudF9UeXBl KTsKICAgcHJhZ21hIElubGluZSAoQ29ycmVzcG9uZGluZ19Db25jdXJyZW50X1R5cGUpOwogICBw cmFnbWEgSW5saW5lIChDb3JyZXNwb25kaW5nX0Rpc2NyaW1pbmFudCk7CiAgIHByYWdtYSBJbmxp bmUgKENvcnJlc3BvbmRpbmdfRXF1YWxpdHkpOwogICBwcmFnbWEgSW5saW5lIChDb3JyZXNwb25k aW5nX1JlY29yZF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoQ29ycmVzcG9uZGluZ19SZW1vdGVf VHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKERlYnVnX0luZm9fT2ZmKTsKICAgcHJhZ21hIElubGlu ZSAoRGVidWdfUmVuYW1pbmdfTGluayk7CiAgIHByYWdtYSBJbmxpbmUgKERUQ19FbnRpdHkpOwog ICBwcmFnbWEgSW5saW5lIChEVF9FbnRyeV9Db3VudCk7CiAgIHByYWdtYSBJbmxpbmUgKERUX1Bv c2l0aW9uKTsKICAgcHJhZ21hIElubGluZSAoRGVmYXVsdF9FeHByX0Z1bmN0aW9uKTsKICAgcHJh Z21hIElubGluZSAoRGVmYXVsdF9FeHByZXNzaW9uc19Qcm9jZXNzZWQpOwogICBwcmFnbWEgSW5s aW5lIChEZWZhdWx0X1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoRGVsYXlfQ2xlYW51cHMpOwog ICBwcmFnbWEgSW5saW5lIChEZWxheV9TdWJwcm9ncmFtX0Rlc2NyaXB0b3JzKTsKICAgcHJhZ21h IElubGluZSAoRGVsdGFfVmFsdWUpOwogICBwcmFnbWEgSW5saW5lIChEZXBlbmRlbnRfSW5zdGFu Y2VzKTsKICAgcHJhZ21hIElubGluZSAoRGVwZW5kc19Pbl9Qcml2YXRlKTsKICAgcHJhZ21hIElu bGluZSAoRGlnaXRzX1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoRGlyZWN0bHlfRGVzaWduYXRl ZF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoRGlzY2FyZF9OYW1lcyk7CiAgIHByYWdtYSBJbmxp bmUgKERpc2NyaW1pbmFsKTsKICAgcHJhZ21hIElubGluZSAoRGlzY3JpbWluYWxfTGluayk7CiAg IHByYWdtYSBJbmxpbmUgKERpc2NyaW1pbmFudF9DaGVja2luZ19GdW5jKTsKICAgcHJhZ21hIElu bGluZSAoRGlzY3JpbWluYW50X0NvbnN0cmFpbnQpOwogICBwcmFnbWEgSW5saW5lIChEaXNjcmlt aW5hbnRfRGVmYXVsdF9WYWx1ZSk7CiAgIHByYWdtYSBJbmxpbmUgKERpc2NyaW1pbmFudF9OdW1i ZXIpOwogICBwcmFnbWEgSW5saW5lIChFbGFib3JhdGVfQWxsX0Rlc2lyYWJsZSk7CiAgIHByYWdt YSBJbmxpbmUgKEVsYWJvcmF0aW9uX0VudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUgKEVsYWJvcmF0 aW9uX0VudGl0eV9SZXF1aXJlZCk7CiAgIHByYWdtYSBJbmxpbmUgKEVuY2xvc2luZ19TY29wZSk7 CiAgIHByYWdtYSBJbmxpbmUgKEVudHJ5X0FjY2VwdGVkKTsKICAgcHJhZ21hIElubGluZSAoRW50 cnlfQm9kaWVzX0FycmF5KTsKICAgcHJhZ21hIElubGluZSAoRW50cnlfQ2FuY2VsX1BhcmFtZXRl cik7CiAgIHByYWdtYSBJbmxpbmUgKEVudHJ5X0NvbXBvbmVudCk7CiAgIHByYWdtYSBJbmxpbmUg KEVudHJ5X0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKEVudHJ5X0luZGV4X0NvbnN0YW50KTsK ICAgcHJhZ21hIElubGluZSAoRW50cnlfSW5kZXhfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEVu dHJ5X1BhcmFtZXRlcnNfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEVudW1fUG9zX1RvX1JlcCk7 CiAgIHByYWdtYSBJbmxpbmUgKEVudW1lcmF0aW9uX1Bvcyk7CiAgIHByYWdtYSBJbmxpbmUgKEVu dW1lcmF0aW9uX1JlcCk7CiAgIHByYWdtYSBJbmxpbmUgKEVudW1lcmF0aW9uX1JlcF9FeHByKTsK ICAgcHJhZ21hIElubGluZSAoRXF1aXZhbGVudF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoRXNp emUpOwogICBwcmFnbWEgSW5saW5lIChFeGNlcHRpb25fQ29kZSk7CiAgIHByYWdtYSBJbmxpbmUg KEV4dHJhX0FjY2Vzc2liaWxpdHkpOwogICBwcmFnbWEgSW5saW5lIChFeHRyYV9Db25zdHJhaW5l ZCk7CiAgIHByYWdtYSBJbmxpbmUgKEV4dHJhX0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKEZp bmFsaXphdGlvbl9DaGFpbl9FbnRpdHkpOwogICBwcmFnbWEgSW5saW5lIChGaXJzdF9FbnRpdHkp OwogICBwcmFnbWEgSW5saW5lIChGaXJzdF9JbmRleCk7CiAgIHByYWdtYSBJbmxpbmUgKEZpcnN0 X0xpdGVyYWwpOwogICBwcmFnbWEgSW5saW5lIChGaXJzdF9PcHRpb25hbF9QYXJhbWV0ZXIpOwog ICBwcmFnbWEgSW5saW5lIChGaXJzdF9Qcml2YXRlX0VudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUg KEZpcnN0X1JlcF9JdGVtKTsKICAgcHJhZ21hIElubGluZSAoRnJlZXplX05vZGUpOwogICBwcmFn bWEgSW5saW5lIChGcm9tX1dpdGhfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKEZ1bGxfVmlldyk7 CiAgIHByYWdtYSBJbmxpbmUgKEZ1bmN0aW9uX1JldHVybnNfV2l0aF9EU1ApOwogICBwcmFnbWEg SW5saW5lIChHZW5lcmljX1JlbmFtaW5ncyk7CiAgIHByYWdtYSBJbmxpbmUgKEdpcmRlcl9Db25z dHJhaW50KTsKICAgcHJhZ21hIElubGluZSAoSGFuZGxlcl9SZWNvcmRzKTsKICAgcHJhZ21hIElu bGluZSAoSGFzX0FsaWFzZWRfQ29tcG9uZW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19BbGln bm1lbnRfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoSGFzX0FsbF9DYWxsc19SZW1vdGUpOwog ICBwcmFnbWEgSW5saW5lIChIYXNfQXRvbWljX0NvbXBvbmVudHMpOwogICBwcmFnbWEgSW5saW5l IChIYXNfQmlhc2VkX1JlcHJlc2VudGF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoSGFzX0NvbXBs ZXRpb24pOwogICBwcmFnbWEgSW5saW5lIChIYXNfQ29tcGxldGlvbl9Jbl9Cb2R5KTsKICAgcHJh Z21hIElubGluZSAoSGFzX0NvbXBsZXhfUmVwcmVzZW50YXRpb24pOwogICBwcmFnbWEgSW5saW5l IChIYXNfQ29tcG9uZW50X1NpemVfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoSGFzX0NvbnRy b2xsZWRfQ29tcG9uZW50KTsKICAgcHJhZ21hIElubGluZSAoSGFzX0NvbnRyb2xsaW5nX1Jlc3Vs dCk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19Db252ZW50aW9uX1ByYWdtYSk7CiAgIHByYWdtYSBJ bmxpbmUgKEhhc19EZWxheWVkX0ZyZWV6ZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19EaXNjcmlt aW5hbnRzKTsKICAgcHJhZ21hIElubGluZSAoSGFzX0VudW1lcmF0aW9uX1JlcF9DbGF1c2UpOwog ICBwcmFnbWEgSW5saW5lIChIYXNfRXhpdCk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19FeHRlcm5h bF9UYWdfUmVwX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19GdWxseV9RdWFsaWZpZWRf TmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19HaWdpX1JlcF9JdGVtKTsKICAgcHJhZ21hIElu bGluZSAoSGFzX0hvbW9ueW0pOwogICBwcmFnbWEgSW5saW5lIChIYXNfTWFjaGluZV9SYWRpeF9D bGF1c2UpOwogICBwcmFnbWEgSW5saW5lIChIYXNfTWFzdGVyX0VudGl0eSk7CiAgIHByYWdtYSBJ bmxpbmUgKEhhc19NaXNzaW5nX1JldHVybik7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19OZXN0ZWRf QmxvY2tfV2l0aF9IYW5kbGVyKTsKICAgcHJhZ21hIElubGluZSAoSGFzX0ZvcndhcmRfSW5zdGFu dGlhdGlvbik7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19Ob25fU3RhbmRhcmRfUmVwKTsKICAgcHJh Z21hIElubGluZSAoSGFzX09iamVjdF9TaXplX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhh c19QZXJfT2JqZWN0X0NvbnN0cmFpbnQpOwogICBwcmFnbWEgSW5saW5lIChIYXNfUHJhZ21hX0Nv bnRyb2xsZWQpOwogICBwcmFnbWEgSW5saW5lIChIYXNfUHJhZ21hX0VsYWJvcmF0ZV9Cb2R5KTsK ICAgcHJhZ21hIElubGluZSAoSGFzX1ByYWdtYV9JbmxpbmUpOwogICBwcmFnbWEgSW5saW5lIChI YXNfUHJhZ21hX1BhY2spOwogICBwcmFnbWEgSW5saW5lIChIYXNfUHJhZ21hX1B1cmVfRnVuY3Rp b24pOwogICBwcmFnbWEgSW5saW5lIChIYXNfUHJpbWl0aXZlX09wZXJhdGlvbnMpOwogICBwcmFn bWEgSW5saW5lIChIYXNfUHJpdmF0ZV9EZWNsYXJhdGlvbik7CiAgIHByYWdtYSBJbmxpbmUgKEhh c19RdWFsaWZpZWRfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19SZWNvcmRfUmVwX0NsYXVz ZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19SZWN1cnNpdmVfQ2FsbCk7CiAgIHByYWdtYSBJbmxp bmUgKEhhc19TaXplX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19TbWFsbF9DbGF1c2Up OwogICBwcmFnbWEgSW5saW5lIChIYXNfU3BlY2lmaWVkX0xheW91dCk7CiAgIHByYWdtYSBJbmxp bmUgKEhhc19TdG9yYWdlX1NpemVfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoSGFzX1N1YnBy b2dyYW1fRGVzY3JpcHRvcik7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19UYXNrKTsKICAgcHJhZ21h IElubGluZSAoSGFzX1VuY2hlY2tlZF9Vbmlvbik7CiAgIHByYWdtYSBJbmxpbmUgKEhhc19Vbmtu b3duX0Rpc2NyaW1pbmFudHMpOwogICBwcmFnbWEgSW5saW5lIChIYXNfVm9sYXRpbGVfQ29tcG9u ZW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKEhpZGluZ19Mb29wX1ZhcmlhYmxlKTsKICAgcHJhZ21h IElubGluZSAoSG9tb255bSk7CiAgIHByYWdtYSBJbmxpbmUgKEluX1BhY2thZ2VfQm9keSk7CiAg IHByYWdtYSBJbmxpbmUgKEluX1ByaXZhdGVfUGFydCk7CiAgIHByYWdtYSBJbmxpbmUgKEluX1Vz ZSk7CiAgIHByYWdtYSBJbmxpbmUgKElubmVyX0luc3RhbmNlcyk7CiAgIHByYWdtYSBJbmxpbmUg KEludGVyZmFjZV9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoSXNfQVNUX0VudHJ5KTsKICAgcHJh Z21hIElubGluZSAoSXNfQWJzdHJhY3QpOwogICBwcmFnbWEgSW5saW5lIChJc19BY2Nlc3NfQ29u c3RhbnQpOwogICBwcmFnbWEgSW5saW5lIChJc19BY2Nlc3NfVHlwZSk7CiAgIHByYWdtYSBJbmxp bmUgKElzX0FsaWFzZWQpOwogICBwcmFnbWEgSW5saW5lIChJc19BcnJheV9UeXBlKTsKICAgcHJh Z21hIElubGluZSAoSXNfQXN5bmNocm9ub3VzKTsKICAgcHJhZ21hIElubGluZSAoSXNfQXRvbWlj KTsKICAgcHJhZ21hIElubGluZSAoSXNfQml0X1BhY2tlZF9BcnJheSk7CiAgIHByYWdtYSBJbmxp bmUgKElzX0NQUF9DbGFzcyk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0NhbGxlZCk7CiAgIHByYWdt YSBJbmxpbmUgKElzX0NoYXJhY3Rlcl9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfQ2hpbGRf VW5pdCk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0NsYXNzX1dpZGVfVHlwZSk7CiAgIHByYWdtYSBJ bmxpbmUgKElzX0NvbXBpbGF0aW9uX1VuaXQpOwogICBwcmFnbWEgSW5saW5lIChJc19Db21wbGV0 ZWx5X0hpZGRlbik7CiAgIHByYWdtYSBJbmxpbmUgKElzX0NvbXBvc2l0ZV9UeXBlKTsKICAgcHJh Z21hIElubGluZSAoSXNfQ29uY3VycmVudF9Cb2R5KTsKICAgcHJhZ21hIElubGluZSAoSXNfQ29u Y3VycmVudF9SZWNvcmRfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0NvbmN1cnJlbnRfVHlw ZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0NvbnN0cl9TdWJ0X0Zvcl9VTl9BbGlhc2VkKTsKICAg cHJhZ21hIElubGluZSAoSXNfQ29uc3RyX1N1YnRfRm9yX1VfTm9taW5hbCk7CiAgIHByYWdtYSBJ bmxpbmUgKElzX0NvbnN0cmFpbmVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfQ29uc3RydWN0b3Ip OwogICBwcmFnbWEgSW5saW5lIChJc19Db250cm9sbGVkKTsKICAgcHJhZ21hIElubGluZSAoSXNf Q29udHJvbGxpbmdfRm9ybWFsKTsKICAgcHJhZ21hIElubGluZSAoSXNfRGVjaW1hbF9GaXhlZF9Q b2ludF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfRGVzdHJ1Y3Rvcik7CiAgIHByYWdtYSBJ bmxpbmUgKElzX0Rpc2NyaW1fU09fRnVuY3Rpb24pOwogICBwcmFnbWEgSW5saW5lIChJc19EaWdp dHNfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0Rpc2NyZXRlX09yX0ZpeGVkX1BvaW50X1R5 cGUpOwogICBwcmFnbWEgSW5saW5lIChJc19EaXNjcmV0ZV9UeXBlKTsKICAgcHJhZ21hIElubGlu ZSAoSXNfRGlzcGF0Y2hpbmdfT3BlcmF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoSXNfRWxlbWVu dGFyeV9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfRWxpbWluYXRlZCk7CiAgIHByYWdtYSBJ bmxpbmUgKElzX0VudHJ5KTsKICAgcHJhZ21hIElubGluZSAoSXNfRW50cnlfRm9ybWFsKTsKICAg cHJhZ21hIElubGluZSAoSXNfRW51bWVyYXRpb25fVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElz X0V4cG9ydGVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfRmlyc3RfU3VidHlwZSk7CiAgIHByYWdt YSBJbmxpbmUgKElzX0ZpeGVkX1BvaW50X1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChJc19GbG9h dGluZ19Qb2ludF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfRm9yX0FjY2Vzc19TdWJ0eXBl KTsKICAgcHJhZ21hIElubGluZSAoSXNfRm9ybWFsKTsKICAgcHJhZ21hIElubGluZSAoSXNfRm9y bWFsX1N1YnByb2dyYW0pOwogICBwcmFnbWEgSW5saW5lIChJc19Gcm96ZW4pOwogICBwcmFnbWEg SW5saW5lIChJc19HZW5lcmljX0FjdHVhbF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfR2Vu ZXJpY19JbnN0YW5jZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0dlbmVyaWNfVHlwZSk7CiAgIHBy YWdtYSBJbmxpbmUgKElzX0dlbmVyaWNfVW5pdCk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0hpZGRl bik7CiAgIHByYWdtYSBJbmxpbmUgKElzX0hpZGRlbl9PcGVuX1Njb3BlKTsKICAgcHJhZ21hIElu bGluZSAoSXNfSW1tZWRpYXRlbHlfVmlzaWJsZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0ltcG9y dGVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfSW5jb21wbGV0ZV9Pcl9Qcml2YXRlX1R5cGUpOwog ICBwcmFnbWEgSW5saW5lIChJc19JbmxpbmVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfSW5zdGFu dGlhdGVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfSW50ZWdlcl9UeXBlKTsKICAgcHJhZ21hIElu bGluZSAoSXNfSW50ZXJuYWwpOwogICBwcmFnbWEgSW5saW5lIChJc19JbnRlcnJ1cHRfSGFuZGxl cik7CiAgIHByYWdtYSBJbmxpbmUgKElzX0ludHJpbnNpY19TdWJwcm9ncmFtKTsKICAgcHJhZ21h IElubGluZSAoSXNfSXR5cGUpOwogICBwcmFnbWEgSW5saW5lIChJc19Lbm93bl9WYWxpZCk7CiAg IHByYWdtYSBJbmxpbmUgKElzX0xpbWl0ZWRfQ29tcG9zaXRlKTsKICAgcHJhZ21hIElubGluZSAo SXNfTGltaXRlZF9SZWNvcmQpOwogICBwcmFnbWEgSW5saW5lIChJc19NYWNoaW5lX0NvZGVfU3Vi cHJvZ3JhbSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX01vZHVsYXJfSW50ZWdlcl9UeXBlKTsKICAg cHJhZ21hIElubGluZSAoSXNfTmFtZWRfTnVtYmVyKTsKICAgcHJhZ21hIElubGluZSAoSXNfTm9u X1N0YXRpY19TdWJ0eXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfTnVsbF9Jbml0X1Byb2MpOwog ICBwcmFnbWEgSW5saW5lIChJc19OdW1lcmljX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChJc19P YmplY3QpOwogICBwcmFnbWEgSW5saW5lIChJc19PcHRpb25hbF9QYXJhbWV0ZXIpOwogICBwcmFn bWEgSW5saW5lIChJc19QYWNrYWdlX0JvZHlfRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoSXNf T3JkaW5hcnlfRml4ZWRfUG9pbnRfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX092ZXJsb2Fk YWJsZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1BhY2tlZCk7CiAgIHByYWdtYSBJbmxpbmUgKElz X1BhY2tlZF9BcnJheV9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoSXNfUG90ZW50aWFsbHlfVXNl X1Zpc2libGUpOwogICBwcmFnbWEgSW5saW5lIChJc19QcmVlbGFib3JhdGVkKTsKICAgcHJhZ21h IElubGluZSAoSXNfUHJpdmF0ZV9Db21wb3NpdGUpOwogICBwcmFnbWEgSW5saW5lIChJc19Qcml2 YXRlX0Rlc2NlbmRhbnQpOwogICBwcmFnbWEgSW5saW5lIChJc19Qcml2YXRlX1R5cGUpOwogICBw cmFnbWEgSW5saW5lIChJc19Qcm90ZWN0ZWRfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1Bz ZWN0ZWQpOwogICBwcmFnbWEgSW5saW5lIChJc19QdWJsaWMpOwogICBwcmFnbWEgSW5saW5lIChJ c19QdXJlKTsKICAgcHJhZ21hIElubGluZSAoSXNfUmVhbF9UeXBlKTsKICAgcHJhZ21hIElubGlu ZSAoSXNfUmVjb3JkX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChJc19SZW1vdGVfQ2FsbF9JbnRl cmZhY2UpOwogICBwcmFnbWEgSW5saW5lIChJc19SZW1vdGVfVHlwZXMpOwogICBwcmFnbWEgSW5s aW5lIChJc19SZW5hbWluZ19PZl9PYmplY3QpOwogICBwcmFnbWEgSW5saW5lIChJc19TY2FsYXJf VHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1NoYXJlZF9QYXNzaXZlKTsKICAgcHJhZ21hIElu bGluZSAoSXNfU2lnbmVkX0ludGVnZXJfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1N0YXRp Y2FsbHlfQWxsb2NhdGVkKTsKICAgcHJhZ21hIElubGluZSAoSXNfU3VicHJvZ3JhbSk7CiAgIHBy YWdtYSBJbmxpbmUgKElzX1RhZyk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1RhZ2dlZF9UeXBlKTsK ICAgcHJhZ21hIElubGluZSAoSXNfVHJ1ZV9Db25zdGFudCk7CiAgIHByYWdtYSBJbmxpbmUgKElz X1Rhc2tfVHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1R5cGUpOwogICBwcmFnbWEgSW5saW5l IChJc19VbmNoZWNrZWRfVW5pb24pOwogICBwcmFnbWEgSW5saW5lIChJc19VbnNpZ25lZF9UeXBl KTsKICAgcHJhZ21hIElubGluZSAoSXNfVk1TX0V4Y2VwdGlvbik7CiAgIHByYWdtYSBJbmxpbmUg KElzX1ZhbHVlZF9Qcm9jZWR1cmUpOwogICBwcmFnbWEgSW5saW5lIChJc19WaXNpYmxlX0NoaWxk X1VuaXQpOwogICBwcmFnbWEgSW5saW5lIChJc19Wb2xhdGlsZSk7CiAgIHByYWdtYSBJbmxpbmUg KExhc3RfRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoTGl0X0luZGV4ZXMpOwogICBwcmFnbWEg SW5saW5lIChMaXRfU3RyaW5ncyk7CiAgIHByYWdtYSBJbmxpbmUgKE1hY2hpbmVfUmFkaXhfMTAp OwogICBwcmFnbWEgSW5saW5lIChNYXN0ZXJfSWQpOwogICBwcmFnbWEgSW5saW5lIChNYXRlcmlh bGl6ZV9FbnRpdHkpOwogICBwcmFnbWEgSW5saW5lIChNZWNoYW5pc20pOwogICBwcmFnbWEgSW5s aW5lIChNb2R1bHVzKTsKICAgcHJhZ21hIElubGluZSAoTmVlZHNfRGVidWdfSW5mbyk7CiAgIHBy YWdtYSBJbmxpbmUgKE5lZWRzX05vX0FjdHVhbHMpOwogICBwcmFnbWEgSW5saW5lIChOZXh0X0lu ZGV4KTsKICAgcHJhZ21hIElubGluZSAoTmV4dF9JbmxpbmVkX1N1YnByb2dyYW0pOwogICBwcmFn bWEgSW5saW5lIChOZXh0X0xpdGVyYWwpOwogICBwcmFnbWEgSW5saW5lIChOb19Qb29sX0Fzc2ln bmVkKTsKICAgcHJhZ21hIElubGluZSAoTm9fUmV0dXJuKTsKICAgcHJhZ21hIElubGluZSAoTm9u X0JpbmFyeV9Nb2R1bHVzKTsKICAgcHJhZ21hIElubGluZSAoTm9uemVyb19Jc19UcnVlKTsKICAg cHJhZ21hIElubGluZSAoTm9ybWFsaXplZF9GaXJzdF9CaXQpOwogICBwcmFnbWEgSW5saW5lIChO b3JtYWxpemVkX1Bvc2l0aW9uKTsKICAgcHJhZ21hIElubGluZSAoTm9ybWFsaXplZF9Qb3NpdGlv bl9NYXgpOwogICBwcmFnbWEgSW5saW5lIChOb3RfU291cmNlX0Fzc2lnbmVkKTsKICAgcHJhZ21h IElubGluZSAoT2JqZWN0X1JlZik7CiAgIHByYWdtYSBJbmxpbmUgKE9yaWdpbmFsX1JlY29yZF9D b21wb25lbnQpOwogICBwcmFnbWEgSW5saW5lIChQYWNrZWRfQXJyYXlfVHlwZSk7CiAgIHByYWdt YSBJbmxpbmUgKFBhcmFtZXRlcl9Nb2RlKTsKICAgcHJhZ21hIElubGluZSAoUGFyZW50X1N1YnR5 cGUpOwogICBwcmFnbWEgSW5saW5lIChQcmltaXRpdmVfT3BlcmF0aW9ucyk7CiAgIHByYWdtYSBJ bmxpbmUgKFByaXZhbCk7CiAgIHByYWdtYSBJbmxpbmUgKFByaXZhbHNfQ2hhaW4pOwogICBwcmFn bWEgSW5saW5lIChQcml2YXRlX0RlcGVuZGVudHMpOwogICBwcmFnbWEgSW5saW5lIChQcml2YXRl X1ZpZXcpOwogICBwcmFnbWEgSW5saW5lIChQcm90ZWN0ZWRfQm9keV9TdWJwcm9ncmFtKTsKICAg cHJhZ21hIElubGluZSAoUHJvdGVjdGVkX0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFByb3Rl Y3RlZF9PcGVyYXRpb24pOwogICBwcmFnbWEgSW5saW5lIChSTV9TaXplKTsKICAgcHJhZ21hIElu bGluZSAoUmVhY2hhYmxlKTsKICAgcHJhZ21hIElubGluZSAoUmVmZXJlbmNlZCk7CiAgIHByYWdt YSBJbmxpbmUgKFJlZmVyZW5jZWRfT2JqZWN0KTsKICAgcHJhZ21hIElubGluZSAoUmVnaXN0ZXJf RXhjZXB0aW9uX0NhbGwpOwogICBwcmFnbWEgSW5saW5lIChSZWxhdGVkX0FycmF5X09iamVjdCk7 CiAgIHByYWdtYSBJbmxpbmUgKFJlbGF0ZWRfSW5zdGFuY2UpOwogICBwcmFnbWEgSW5saW5lIChS ZW5hbWVkX0VudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUgKFJlbmFtZWRfT2JqZWN0KTsKICAgcHJh Z21hIElubGluZSAoUmVuYW1pbmdfTWFwKTsKICAgcHJhZ21hIElubGluZSAoUmV0dXJuX1ByZXNl bnQpOwogICBwcmFnbWEgSW5saW5lIChSZXR1cm5zX0J5X1JlZik7CiAgIHByYWdtYSBJbmxpbmUg KFJldmVyc2VfQml0X09yZGVyKTsKICAgcHJhZ21hIElubGluZSAoU2NhbGFyX1JhbmdlKTsKICAg cHJhZ21hIElubGluZSAoU2NhbGVfVmFsdWUpOwogICBwcmFnbWEgSW5saW5lIChTY29wZV9EZXB0 aF9WYWx1ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNlY19TdGFja19OZWVkZWRfRm9yX1JldHVybik7 CiAgIHByYWdtYSBJbmxpbmUgKFNoYWRvd19FbnRpdGllcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNo YXJlZF9WYXJfQXNzaWduX1Byb2MpOwogICBwcmFnbWEgSW5saW5lIChTaGFyZWRfVmFyX1JlYWRf UHJvYyk7CiAgIHByYWdtYSBJbmxpbmUgKFNpemVfQ2hlY2tfQ29kZSk7CiAgIHByYWdtYSBJbmxp bmUgKFNpemVfRGVwZW5kc19Pbl9EaXNjcmltaW5hbnQpOwogICBwcmFnbWEgSW5saW5lIChTaXpl X0tub3duX0F0X0NvbXBpbGVfVGltZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNtYWxsX1ZhbHVlKTsK ICAgcHJhZ21hIElubGluZSAoU3BlY19FbnRpdHkpOwogICBwcmFnbWEgSW5saW5lIChTdG9yYWdl X1NpemVfVmFyaWFibGUpOwogICBwcmFnbWEgSW5saW5lIChTdHJpY3RfQWxpZ25tZW50KTsKICAg cHJhZ21hIElubGluZSAoU3RyaW5nX0xpdGVyYWxfTGVuZ3RoKTsKICAgcHJhZ21hIElubGluZSAo U3RyaW5nX0xpdGVyYWxfTG93X0JvdW5kKTsKICAgcHJhZ21hIElubGluZSAoU3VwcHJlc3NfQWNj ZXNzX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFN1cHByZXNzX0FjY2Vzc2liaWxpdHlfQ2hl Y2tzKTsKICAgcHJhZ21hIElubGluZSAoU3VwcHJlc3NfRGlzY3JpbWluYW50X0NoZWNrcyk7CiAg IHByYWdtYSBJbmxpbmUgKFN1cHByZXNzX0RpdmlzaW9uX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxp bmUgKFN1cHByZXNzX0VsYWJvcmF0aW9uX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFN1cHBy ZXNzX0VsYWJvcmF0aW9uX1dhcm5pbmdzKTsKICAgcHJhZ21hIElubGluZSAoU3VwcHJlc3NfSW5k ZXhfQ2hlY2tzKTsKICAgcHJhZ21hIElubGluZSAoU3VwcHJlc3NfSW5pdF9Qcm9jKTsKICAgcHJh Z21hIElubGluZSAoU3VwcHJlc3NfTGVuZ3RoX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFN1 cHByZXNzX092ZXJmbG93X0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFN1cHByZXNzX1Jhbmdl X0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFN1cHByZXNzX1N0b3JhZ2VfQ2hlY2tzKTsKICAg cHJhZ21hIElubGluZSAoU3VwcHJlc3NfU3R5bGVfQ2hlY2tzKTsKICAgcHJhZ21hIElubGluZSAo U3VwcHJlc3NfVGFnX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFVuZGVybHlpbmdfRnVsbF9W aWV3KTsKICAgcHJhZ21hIElubGluZSAoVW5zZXRfUmVmZXJlbmNlKTsKICAgcHJhZ21hIElubGlu ZSAoVXNlc19TZWNfU3RhY2spOwogICBwcmFnbWEgSW5saW5lIChWYXhfRmxvYXQpOwogICBwcmFn bWEgSW5saW5lIChXYXJuaW5nc19PZmYpOwoKICAgcHJhZ21hIElubGluZSAoSW5pdF9BbGlnbm1l bnQpOwogICBwcmFnbWEgSW5saW5lIChJbml0X0NvbXBvbmVudF9CaXRfT2Zmc2V0KTsKICAgcHJh Z21hIElubGluZSAoSW5pdF9Db21wb25lbnRfU2l6ZSk7CiAgIHByYWdtYSBJbmxpbmUgKEluaXRf RGlnaXRzX1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoSW5pdF9Fc2l6ZSk7CiAgIHByYWdtYSBJ bmxpbmUgKEluaXRfUk1fU2l6ZSk7CgogICBwcmFnbWEgSW5saW5lIChLbm93bl9BbGlnbm1lbnQp OwogICBwcmFnbWEgSW5saW5lIChLbm93bl9Db21wb25lbnRfQml0X09mZnNldCk7CiAgIHByYWdt YSBJbmxpbmUgKEtub3duX0NvbXBvbmVudF9TaXplKTsKICAgcHJhZ21hIElubGluZSAoS25vd25f RXNpemUpOwoKICAgcHJhZ21hIElubGluZSAoS25vd25fU3RhdGljX0NvbXBvbmVudF9TaXplKTsK ICAgcHJhZ21hIElubGluZSAoS25vd25fU3RhdGljX0VzaXplKTsKCiAgIHByYWdtYSBJbmxpbmUg KFVua25vd25fQWxpZ25tZW50KTsKICAgcHJhZ21hIElubGluZSAoVW5rbm93bl9Db21wb25lbnRf Qml0X09mZnNldCk7CiAgIHByYWdtYSBJbmxpbmUgKFVua25vd25fQ29tcG9uZW50X1NpemUpOwog ICBwcmFnbWEgSW5saW5lIChVbmtub3duX0VzaXplKTsKCiAgIHByYWdtYSBJbmxpbmUgKFNldF9B Y2NlcHRfQWRkcmVzcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BY2Nlc3NfRGlzcF9UYWJsZSk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9BY3R1YWxfU3VidHlwZSk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9BZGRyZXNzX1Rha2VuKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0FsaWFzKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0FsaWdubWVudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Bc3NvY2lh dGVkX0ZpbmFsX0NoYWluKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Fzc29jaWF0ZWRfRm9ybWFs X1BhY2thZ2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQXNzb2NpYXRlZF9Ob2RlX0Zvcl9JdHlw ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Bc3NvY2lhdGVkX1N0b3JhZ2VfUG9vbCk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9CYXJyaWVyX0Z1bmN0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X0Jsb2NrX05vZGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQm9keV9FbnRpdHkpOwogICBwcmFn bWEgSW5saW5lIChTZXRfQ1JfRGlzY3JpbWluYW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Nf UGFzc19CeV9Db3B5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NsYXNzX1dpZGVfVHlwZSk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9DbG9uZWRfU3VidHlwZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9Db21wb25lbnRfQml0X09mZnNldCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db21wb25lbnRf Q2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvbXBvbmVudF9TaXplKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0NvbXBvbmVudF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvcnJl c3BvbmRpbmdfQ29uY3VycmVudF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvcnJlc3Bv bmRpbmdfRGlzY3JpbWluYW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0NvcnJlc3BvbmRpbmdf RXF1YWxpdHkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfQ29ycmVzcG9uZGluZ19SZWNvcmRfVHlw ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Db3JyZXNwb25kaW5nX1JlbW90ZV9UeXBlKTsKICAg cHJhZ21hIElubGluZSAoU2V0X0RlYnVnX0luZm9fT2ZmKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X0RlYnVnX1JlbmFtaW5nX0xpbmspOwogICBwcmFnbWEgSW5saW5lIChTZXRfRFRDX0VudGl0eSk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EVF9Qb3NpdGlvbik7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9EZWZhdWx0X0V4cHJfRnVuY3Rpb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGVmYXVsdF9F eHByZXNzaW9uc19Qcm9jZXNzZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGVmYXVsdF9WYWx1 ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EZWxheV9DbGVhbnVwcyk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9EZWxheV9TdWJwcm9ncmFtX0Rlc2NyaXB0b3JzKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0RlbHRhX1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0RlcGVuZGVudF9JbnN0YW5j ZXMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGVwZW5kc19Pbl9Qcml2YXRlKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0RpZ2l0c19WYWx1ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EaXJlY3Rs eV9EZXNpZ25hdGVkX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRGlzY2FyZF9OYW1lcyk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9EaXNjcmltaW5hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9EaXNjcmltaW5hbF9MaW5rKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyaW1pbmFudF9D aGVja2luZ19GdW5jKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyaW1pbmFudF9Db25zdHJh aW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyaW1pbmFudF9EZWZhdWx0X1ZhbHVlKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0Rpc2NyaW1pbmFudF9OdW1iZXIpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfRWxhYm9yYXRlX0FsbF9EZXNpcmFibGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRf RWxhYm9yYXRpb25fRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0VsYWJvcmF0aW9uX0Vu dGl0eV9SZXF1aXJlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9FbmNsb3NpbmdfU2NvcGUpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfRW50cnlfQWNjZXB0ZWQpOwogICBwcmFnbWEgSW5saW5lIChT ZXRfRW50cnlfQm9kaWVzX0FycmF5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0VudHJ5X0NhbmNl bF9QYXJhbWV0ZXIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRW50cnlfQ29tcG9uZW50KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0VudHJ5X0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9F bnRyeV9QYXJhbWV0ZXJzX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRW51bV9Qb3NfVG9f UmVwKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0VudW1lcmF0aW9uX1Bvcyk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9FbnVtZXJhdGlvbl9SZXApOwogICBwcmFnbWEgSW5saW5lIChTZXRfRW51bWVy YXRpb25fUmVwX0V4cHIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRXF1aXZhbGVudF9UeXBlKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0VzaXplKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0V4Y2Vw dGlvbl9Db2RlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0V4dHJhX0FjY2Vzc2liaWxpdHkpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfRXh0cmFfQ29uc3RyYWluZWQpOwogICBwcmFnbWEgSW5saW5l IChTZXRfRXh0cmFfRm9ybWFsKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ZpbmFsaXphdGlvbl9D aGFpbl9FbnRpdHkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRmlyc3RfRW50aXR5KTsKICAgcHJh Z21hIElubGluZSAoU2V0X0ZpcnN0X0luZGV4KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ZpcnN0 X0xpdGVyYWwpOwogICBwcmFnbWEgSW5saW5lIChTZXRfRmlyc3RfT3B0aW9uYWxfUGFyYW1ldGVy KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ZpcnN0X1ByaXZhdGVfRW50aXR5KTsKICAgcHJhZ21h IElubGluZSAoU2V0X0ZpcnN0X1JlcF9JdGVtKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0ZyZWV6 ZV9Ob2RlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0Zyb21fV2l0aF9UeXBlKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0Z1bGxfVmlldyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9GdW5jdGlvbl9S ZXR1cm5zX1dpdGhfRFNQKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0dlbmVyaWNfUmVuYW1pbmdz KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0dpcmRlcl9Db25zdHJhaW50KTsKICAgcHJhZ21hIElu bGluZSAoU2V0X0hhbmRsZXJfUmVjb3Jkcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfQWxp YXNlZF9Db21wb25lbnRzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19BbGlnbm1lbnRfQ2xh dXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19BbGxfQ2FsbHNfUmVtb3RlKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0hhc19BdG9taWNfQ29tcG9uZW50cyk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9IYXNfQmlhc2VkX1JlcHJlc2VudGF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hh c19Db21wbGV0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19Db21wbGV0aW9uX0luX0Jv ZHkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX0NvbXBsZXhfUmVwcmVzZW50YXRpb24pOwog ICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX0NvbXBvbmVudF9TaXplX0NsYXVzZSk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9IYXNfQ29udHJvbGxlZF9Db21wb25lbnQpOwogICBwcmFnbWEgSW5saW5l IChTZXRfSGFzX0NvbnRyb2xsaW5nX1Jlc3VsdCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNf Q29udmVudGlvbl9QcmFnbWEpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX0RlbGF5ZWRfRnJl ZXplKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19EaXNjcmltaW5hbnRzKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0hhc19FbnVtZXJhdGlvbl9SZXBfQ2xhdXNlKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0hhc19FeGl0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19FeHRlcm5hbF9UYWdf UmVwX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfRnVsbHlfUXVhbGlmaWVkX05h bWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX0dpZ2lfUmVwX0l0ZW0pOwogICBwcmFnbWEg SW5saW5lIChTZXRfSGFzX0hvbW9ueW0pOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX01hY2hp bmVfUmFkaXhfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19NYXN0ZXJfRW50aXR5 KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19NaXNzaW5nX1JldHVybik7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9IYXNfTmVzdGVkX0Jsb2NrX1dpdGhfSGFuZGxlcik7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9IYXNfRm9yd2FyZF9JbnN0YW50aWF0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X0hhc19Ob25fU3RhbmRhcmRfUmVwKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19PYmplY3Rf U2l6ZV9DbGF1c2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX1Blcl9PYmplY3RfQ29uc3Ry YWludCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfUHJhZ21hX0NvbnRyb2xsZWQpOwogICBw cmFnbWEgSW5saW5lIChTZXRfSGFzX1ByYWdtYV9FbGFib3JhdGVfQm9keSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9IYXNfUHJhZ21hX0lubGluZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNf UHJhZ21hX1BhY2spOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX1ByYWdtYV9QdXJlX0Z1bmN0 aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19QcmltaXRpdmVfT3BlcmF0aW9ucyk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9IYXNfUHJpdmF0ZV9EZWNsYXJhdGlvbik7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9IYXNfUXVhbGlmaWVkX05hbWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFz X1JlY29yZF9SZXBfQ2xhdXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19SZWN1cnNpdmVf Q2FsbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfU2l6ZV9DbGF1c2UpOwogICBwcmFnbWEg SW5saW5lIChTZXRfSGFzX1NtYWxsX0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNf U3BlY2lmaWVkX0xheW91dCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfU3RvcmFnZV9TaXpl X0NsYXVzZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfU3VicHJvZ3JhbV9EZXNjcmlwdG9y KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0hhc19UYXNrKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X0hhc19VbmNoZWNrZWRfVW5pb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfSGFzX1Vua25vd25f RGlzY3JpbWluYW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IYXNfVm9sYXRpbGVfQ29tcG9u ZW50cyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9IaWRpbmdfTG9vcF9WYXJpYWJsZSk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9Ib21vbnltKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0luX1BhY2th Z2VfQm9keSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jbl9Qcml2YXRlX1BhcnQpOwogICBwcmFn bWEgSW5saW5lIChTZXRfSW5fVXNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lubmVyX0luc3Rh bmNlcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9JbnRlcmZhY2VfTmFtZSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9Jc19BU1RfRW50cnkpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQWJzdHJh Y3QpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQWNjZXNzX0NvbnN0YW50KTsKICAgcHJhZ21h IElubGluZSAoU2V0X0lzX0FsaWFzZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQXN5bmNo cm9ub3VzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0F0b21pYyk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9Jc19CaXRfUGFja2VkX0FycmF5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0NQ UF9DbGFzcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19DYWxsZWQpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfSXNfQ2hhcmFjdGVyX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfQ2hp bGRfVW5pdCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19Db21waWxhdGlvbl9Vbml0KTsKICAg cHJhZ21hIElubGluZSAoU2V0X0lzX0NvbXBsZXRlbHlfSGlkZGVuKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0lzX0NvbmN1cnJlbnRfUmVjb3JkX1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRf SXNfQ29uc3RyX1N1YnRfRm9yX1VfTm9taW5hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19D b25zdHJfU3VidF9Gb3JfVU5fQWxpYXNlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19Db25z dHJhaW5lZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19Db25zdHJ1Y3Rvcik7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9Jc19Db250cm9sbGVkKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0Nv bnRyb2xsaW5nX0Zvcm1hbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19EZXN0cnVjdG9yKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0Rpc2NyaW1fU09fRnVuY3Rpb24pOwogICBwcmFnbWEg SW5saW5lIChTZXRfSXNfRGlzcGF0Y2hpbmdfT3BlcmF0aW9uKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0lzX0VsaW1pbmF0ZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfRW50cnlfRm9ybWFs KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0V4cG9ydGVkKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0lzX0ZpcnN0X1N1YnR5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfRm9yX0FjY2Vz c19TdWJ0eXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0Zvcm1hbF9TdWJwcm9ncmFtKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0Zyb3plbik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9J c19HZW5lcmljX0FjdHVhbF9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0dlbmVyaWNf SW5zdGFuY2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfR2VuZXJpY19UeXBlKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0lzX0hpZGRlbik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19IaWRk ZW5fT3Blbl9TY29wZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19JbW1lZGlhdGVseV9WaXNp YmxlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0ltcG9ydGVkKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X0lzX0lubGluZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfSW5zdGFudGlhdGVk KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0ludGVybmFsKTsKICAgcHJhZ21hIElubGluZSAo U2V0X0lzX0ludGVycnVwdF9IYW5kbGVyKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0ludHJp bnNpY19TdWJwcm9ncmFtKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0l0eXBlKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0lzX0tub3duX1ZhbGlkKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lz X0xpbWl0ZWRfQ29tcG9zaXRlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX0xpbWl0ZWRfUmVj b3JkKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX01hY2hpbmVfQ29kZV9TdWJwcm9ncmFtKTsK ICAgcHJhZ21hIElubGluZSAoU2V0X0lzX05vbl9TdGF0aWNfU3VidHlwZSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9Jc19OdWxsX0luaXRfUHJvYyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19P cHRpb25hbF9QYXJhbWV0ZXIpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUGFja2FnZV9Cb2R5 X0VudGl0eSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19QYWNrZWQpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfSXNfUGFja2VkX0FycmF5X1R5cGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNf UG90ZW50aWFsbHlfVXNlX1Zpc2libGUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUHJlZWxh Ym9yYXRlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19Qcml2YXRlX0NvbXBvc2l0ZSk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9Jc19Qcml2YXRlX0Rlc2NlbmRhbnQpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfSXNfUHNlY3RlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19QdWJsaWMpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUHVyZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19S ZW1vdGVfQ2FsbF9JbnRlcmZhY2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfUmVtb3RlX1R5 cGVzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX1JlbmFtaW5nX09mX09iamVjdCk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9Jc19TaGFyZWRfUGFzc2l2ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9Jc19TdGF0aWNhbGx5X0FsbG9jYXRlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19UYWcp OwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfVGFnZ2VkX1R5cGUpOwogICBwcmFnbWEgSW5saW5l IChTZXRfSXNfVHJ1ZV9Db25zdGFudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Jc19VbmNoZWNr ZWRfVW5pb24pOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfVW5zaWduZWRfVHlwZSk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9Jc19WTVNfRXhjZXB0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X0lzX1ZhbHVlZF9Qcm9jZWR1cmUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfSXNfVmlzaWJsZV9D aGlsZF9Vbml0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0lzX1ZvbGF0aWxlKTsKICAgcHJhZ21h IElubGluZSAoU2V0X0xhc3RfRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X0xpdF9JbmRl eGVzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0xpdF9TdHJpbmdzKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X01hY2hpbmVfUmFkaXhfMTApOwogICBwcmFnbWEgSW5saW5lIChTZXRfTWFzdGVyX0lk KTsKICAgcHJhZ21hIElubGluZSAoU2V0X01hdGVyaWFsaXplX0VudGl0eSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9NZWNoYW5pc20pOwogICBwcmFnbWEgSW5saW5lIChTZXRfTW9kdWx1cyk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9OZWVkc19EZWJ1Z19JbmZvKTsKICAgcHJhZ21hIElubGluZSAo U2V0X05lZWRzX05vX0FjdHVhbHMpOwogICBwcmFnbWEgSW5saW5lIChTZXRfTmV4dF9JbmxpbmVk X1N1YnByb2dyYW0pOwogICBwcmFnbWEgSW5saW5lIChTZXRfTm9fUG9vbF9Bc3NpZ25lZCk7CiAg IHByYWdtYSBJbmxpbmUgKFNldF9Ob19SZXR1cm4pOwogICBwcmFnbWEgSW5saW5lIChTZXRfTm9u X0JpbmFyeV9Nb2R1bHVzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X05vbnplcm9fSXNfVHJ1ZSk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Ob3JtYWxpemVkX0ZpcnN0X0JpdCk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9Ob3JtYWxpemVkX1Bvc2l0aW9uKTsKICAgcHJhZ21hIElubGluZSAoU2V0X05v cm1hbGl6ZWRfUG9zaXRpb25fTWF4KTsKICAgcHJhZ21hIElubGluZSAoU2V0X05vdF9Tb3VyY2Vf QXNzaWduZWQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfT2JqZWN0X1JlZik7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9PcmlnaW5hbF9SZWNvcmRfQ29tcG9uZW50KTsKICAgcHJhZ21hIElubGluZSAo U2V0X1BhY2tlZF9BcnJheV9UeXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1BhcmVudF9TdWJ0 eXBlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1ByaW1pdGl2ZV9PcGVyYXRpb25zKTsKICAgcHJh Z21hIElubGluZSAoU2V0X1ByaXZhbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Qcml2YWxzX0No YWluKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1ByaXZhdGVfRGVwZW5kZW50cyk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9Qcml2YXRlX1ZpZXcpOwogICBwcmFnbWEgSW5saW5lIChTZXRfUHJvdGVj dGVkX0JvZHlfU3VicHJvZ3JhbSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9Qcm90ZWN0ZWRfRm9y bWFsKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1Byb3RlY3RlZF9PcGVyYXRpb24pOwogICBwcmFn bWEgSW5saW5lIChTZXRfUk1fU2l6ZSk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZWFjaGFibGUp OwogICBwcmFnbWEgSW5saW5lIChTZXRfUmVmZXJlbmNlZCk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9SZWZlcmVuY2VkX09iamVjdCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZWdpc3Rlcl9FeGNl cHRpb25fQ2FsbCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZWxhdGVkX0FycmF5X09iamVjdCk7 CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZWxhdGVkX0luc3RhbmNlKTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X1JlbmFtZWRfRW50aXR5KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1JlbmFtZWRfT2Jq ZWN0KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1JlbmFtaW5nX01hcCk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9SZXR1cm5fUHJlc2VudCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZXR1cm5zX0J5 X1JlZik7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9SZXZlcnNlX0JpdF9PcmRlcik7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9TY2FsYXJfUmFuZ2UpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU2NhbGVf VmFsdWUpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU2NvcGVfRGVwdGhfVmFsdWUpOwogICBwcmFn bWEgSW5saW5lIChTZXRfU2VjX1N0YWNrX05lZWRlZF9Gb3JfUmV0dXJuKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X1NoYWRvd19FbnRpdGllcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9TaGFyZWRf VmFyX0Fzc2lnbl9Qcm9jKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1NoYXJlZF9WYXJfUmVhZF9Q cm9jKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1NpemVfQ2hlY2tfQ29kZSk7CiAgIHByYWdtYSBJ bmxpbmUgKFNldF9TaXplX0RlcGVuZHNfT25fRGlzY3JpbWluYW50KTsKICAgcHJhZ21hIElubGlu ZSAoU2V0X1NpemVfS25vd25fQXRfQ29tcGlsZV9UaW1lKTsKICAgcHJhZ21hIElubGluZSAoU2V0 X1NtYWxsX1ZhbHVlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1NwZWNfRW50aXR5KTsKICAgcHJh Z21hIElubGluZSAoU2V0X1N0b3JhZ2VfU2l6ZV9WYXJpYWJsZSk7CiAgIHByYWdtYSBJbmxpbmUg KFNldF9TdHJpY3RfQWxpZ25tZW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N0cmluZ19MaXRl cmFsX0xlbmd0aCk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9TdHJpbmdfTGl0ZXJhbF9Mb3dfQm91 bmQpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU3VwcHJlc3NfQWNjZXNzX0NoZWNrcyk7CiAgIHBy YWdtYSBJbmxpbmUgKFNldF9TdXBwcmVzc19BY2Nlc3NpYmlsaXR5X0NoZWNrcyk7CiAgIHByYWdt YSBJbmxpbmUgKFNldF9TdXBwcmVzc19EaXNjcmltaW5hbnRfQ2hlY2tzKTsKICAgcHJhZ21hIElu bGluZSAoU2V0X1N1cHByZXNzX0RpdmlzaW9uX0NoZWNrcyk7CiAgIHByYWdtYSBJbmxpbmUgKFNl dF9TdXBwcmVzc19FbGFib3JhdGlvbl9DaGVja3MpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU3Vw cHJlc3NfRWxhYm9yYXRpb25fV2FybmluZ3MpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU3VwcHJl c3NfSW5kZXhfQ2hlY2tzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N1cHByZXNzX0luaXRfUHJv Yyk7CiAgIHByYWdtYSBJbmxpbmUgKFNldF9TdXBwcmVzc19MZW5ndGhfQ2hlY2tzKTsKICAgcHJh Z21hIElubGluZSAoU2V0X1N1cHByZXNzX092ZXJmbG93X0NoZWNrcyk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9TdXBwcmVzc19SYW5nZV9DaGVja3MpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU3Vw cHJlc3NfU3RvcmFnZV9DaGVja3MpOwogICBwcmFnbWEgSW5saW5lIChTZXRfU3VwcHJlc3NfU3R5 bGVfQ2hlY2tzKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1N1cHByZXNzX1RhZ19DaGVja3MpOwog ICBwcmFnbWEgSW5saW5lIChTZXRfVW5kZXJseWluZ19GdWxsX1ZpZXcpOwogICBwcmFnbWEgSW5s aW5lIChTZXRfVW5zZXRfUmVmZXJlbmNlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1VzZXNfU2Vj X1N0YWNrKTsKICAgcHJhZ21hIElubGluZSAoU2V0X1ZheF9GbG9hdCk7CiAgIHByYWdtYSBJbmxp bmUgKFNldF9XYXJuaW5nc19PZmYpOwoKICAgLS0gIEVORCBYRUlORk8gSU5MSU5FUwoKICAgLS0g IFRoZSBmb2xsb3dpbmcgSW5saW5lIHByYWdtYXMgYXJlICpub3QqIHJlYWQgYnkgeGVpbmZvIHdo ZW4gYnVpbGRpbmcKICAgLS0gIHRoZSBDIHZlcnNpb24gb2YgdGhpcyBpbnRlcmZhY2UgYXV0b21h dGljYWxseSAoc28gdGhlIEMgdmVyc2lvbiB3aWxsCiAgIC0tICBlbmQgdXAgbWFraW5nIG91dCBv ZiBsaW5lIGNhbGxzKS4gVGhlIHByYWdtYSBzY2FuIGluIHhlaW5mbyB3aWxsIGJlCiAgIC0tICB0 ZXJtaW5hdGVkIG9uIGVuY291bnRlcmluZyB0aGUgRU5EIFhFSU5GTyBJTkxJTkVTIGxpbmUuIFdl IGlubGluZQogICAtLSAgdGhpbmdzIGhlcmUgd2hpY2ggYXJlIHNtYWxsLCBidXQgbm90IG9mIHRo ZSBjYW5vbmljYWwgYXR0cmlidXRlCiAgIC0tICBhY2Nlc3Mvc2V0IGZvcm1hdCB0aGF0IGNhbiBi ZSBoYW5kbGVkIGJ5IHhlaW5mby4KCiAgIHByYWdtYSBJbmxpbmUgKElzX1BhY2thZ2UpOwogICBw cmFnbWEgSW5saW5lIChJc19XcmFwcGVyX1BhY2thZ2UpOwogICBwcmFnbWEgSW5saW5lIChLbm93 bl9STV9TaXplKTsKICAgcHJhZ21hIElubGluZSAoS25vd25fU3RhdGljX0NvbXBvbmVudF9CaXRf T2Zmc2V0KTsKICAgcHJhZ21hIElubGluZSAoS25vd25fU3RhdGljX1JNX1NpemUpOwogICBwcmFn bWEgSW5saW5lIChTY29wZV9EZXB0aCk7CiAgIHByYWdtYSBJbmxpbmUgKFNjb3BlX0RlcHRoX1Nl dCk7CiAgIHByYWdtYSBJbmxpbmUgKFVua25vd25fUk1fU2l6ZSk7CgplbmQgRWluZm87Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgR05BVCBDT01QSUxFUiBDT01QT05FTlRTICAgICAgICAgICAgICAgICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBTIE4gQSBNIEUgUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyBwIGUgYyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJFJldmlzaW9uOiAxLjcuMTAuMSAkCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTItMjAwMSwgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tCi0tIEdOQVQgaXMgZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gIHJlZGlzdHJpYnV0ZSBpdCAg YW5kL29yIG1vZGlmeSBpdCB1bmRlciAtLQotLSB0ZXJtcyBvZiB0aGUgIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCAgYnkgdGhlIEZyZWUgU29mdC0gLS0KLS0gd2FyZSAg Rm91bmRhdGlvbjsgIGVpdGhlciB2ZXJzaW9uIDIsICBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXItIC0tCi0tIHNpb24uICBHTkFUIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRILSAtLQotLSBPVVQgQU5ZIFdBUlJBTlRZOyAg d2l0aG91dCBldmVuIHRoZSAgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgLS0K LS0gb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIC0tCi0tIGZvciAgbW9yZSBkZXRhaWxzLiAgWW91IHNob3VsZCBo YXZlICByZWNlaXZlZCAgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCAtLQotLSBQdWJsaWMgTGlj ZW5zZSAgZGlzdHJpYnV0ZWQgd2l0aCBHTkFUOyAgc2VlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwg d3JpdGUgLS0KLS0gdG8gIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sICA1OSBUZW1wbGUg UGxhY2UgLSBTdWl0ZSAzMzAsICBCb3N0b24sIC0tCi0tIE1BIDAyMTExLTEzMDcsIFVTQS4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgIGlmIG90aGVyIGZp bGVzICBpbnN0YW50aWF0ZSAgZ2VuZXJpY3MgZnJvbSB0aGlzIC0tCi0tIHVuaXQsIG9yIHlvdSBs aW5rICB0aGlzIHVuaXQgd2l0aCBvdGhlciBmaWxlcyAgdG8gcHJvZHVjZSBhbiBleGVjdXRhYmxl LCAtLQotLSB0aGlzICB1bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0 aW5nICBleGVjdXRhYmxlICB0byAgYmUgLS0KLS0gY292ZXJlZCAgYnkgdGhlICBHTlUgIEdlbmVy YWwgIFB1YmxpYyAgTGljZW5zZS4gIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IC0tCi0tIGhvd2V2 ZXIgaW52YWxpZGF0ZSAgYW55IG90aGVyIHJlYXNvbnMgd2h5ICB0aGUgZXhlY3V0YWJsZSBmaWxl ICBtaWdodCBiZSAtLQotLSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tIEdOQVQgd2FzIG9yaWdpbmFsbHkgZGV2ZWxvcGVkICBieSB0aGUgR05BVCB0ZWFtIGF0ICBO ZXcgWW9yayBVbml2ZXJzaXR5LiAtLQotLSBFeHRlbnNpdmUgY29udHJpYnV0aW9ucyB3ZXJlIHBy b3ZpZGVkIGJ5IEFkYSBDb3JlIFRlY2hub2xvZ2llcyBJbmMuICAgICAgLS0KLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0tCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKd2l0aCBUeXBlczsgdXNlIFR5cGVzOwoK cGFja2FnZSBTbmFtZXMgaXMKCi0tICBUaGlzIHBhY2thZ2UgY29udGFpbnMgZGVmaW5pdGlvbnMg b2Ygc3RhbmRhcmQgbmFtZXMgKGkuZS4gZW50cmllcyBpbiB0aGUKLS0gIE5hbWVzIHRhYmxlKSB0 aGF0IGFyZSB1c2VkIHRocm91Z2hvdXQgdGhlIEdOQVQgY29tcGlsZXIpLiBJdCBhbHNvIGNvbnRh aW5zCi0tICB0aGUgZGVmaW5pdGlvbnMgb2Ygc29tZSBlbnVtZXJhdGlvbiB0eXBlcyB3aG9zZSBk ZWZpbml0aW9ucyBhcmUgdGllZCB0bwotLSAgdGhlIG9yZGVyIG9mIHRoZXNlIHByZXNldCBuYW1l cy4KCi0tICBXQVJOSU5HOiBUaGVyZSBpcyBhIEMgZmlsZSwgYS1zbmFtZXMtaCB3aGljaCBkdXBs aWNhdGVzIHNvbWUgb2YgdGhlCi0tICBkZWZpbml0aW9ucyBpbiB0aGlzIGZpbGUgYW5kIG11c3Qg YmUga2VwdCBwcm9wZXJseSBzeW5jaHJvbml6ZWQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gUHJlc2V0IE5hbWVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmb2xs b3dpbmcgYXJlIHByZXNldCBlbnRyaWVzIGluIHRoZSBuYW1lcyB0YWJsZSwgd2hpY2ggYXJlCiAg IC0tICBlbnRlcmVkIGF0IHRoZSBzdGFydCBvZiBldmVyeSBjb21waWxhdGlvbiBmb3IgZWFzeSBh Y2Nlc3MuIE5vdGUKICAgLS0gIHRoYXQgdGhlIG9yZGVyIG9mIGluaXRpYWxpemF0aW9uIG9mIHRo ZXNlIG5hbWVzIGluIHRoZSBib2R5IG11c3QKICAgLS0gIGJlIGNvb3JkaW5hdGVkIHdpdGggdGhl IG9yZGVyIG9mIG5hbWVzIGluIHRoaXMgdGFibGUuCgogICAtLSAgTm90ZTogYSBuYW1lIG1heSBu b3QgYXBwZWFyIG1vcmUgdGhhbiBvbmNlIGluIHRoZSBmb2xsb3dpbmcgbGlzdC4KICAgLS0gIElm IGFkZGl0aW9uYWwgcHJhZ21hcyBvciBhdHRyaWJ1dGVzIGFyZSBpbnRyb2R1Y2VkIHdoaWNoIG1p Z2h0CiAgIC0tICBvdGhlcndpc2UgY2F1c2UgYSBkdXBsaWNhdGUsIHRoZW4gbGlzdCBpdCBvbmx5 IG9uY2UgaW4gdGhpcyB0YWJsZSwKICAgLS0gIGFuZCBhZGp1c3QgdGhlIGRlZmluaXRpb24gb2Yg dGhlIGZ1bmN0aW9ucyBmb3IgdGVzdGluZyBmb3IgcHJhZ21hCiAgIC0tICBuYW1lcyBhbmQgYXR0 cmlidXRlIG5hbWVzLCBhbmQgcmV0dXJuaW5nIHRoZWlyIElEIHZhbHVlcy4gT2YgY291cnNlCiAg IC0tICBldmVyeXRoaW5nIGlzIHNpbXBsZXIgaWYgbm8gc3VjaCBkdXBsaWNhdGlvbnMgb2NjdXIh CgogICAtLSAgRmlyc3Qgd2UgaGF2ZSB0aGUgb25lIGNoYXJhY3RlciBuYW1lcyB1c2VkIHRvIG9w dGltaXplIHRoZSBsb29rdXAKICAgLS0gIHByb2Nlc3MgZm9yIG9uZSBjaGFyYWN0ZXIgaWRlbnRp ZmllcnMgKGF2b2lkIHRoZSBoYXNoaW5nIGluIHRoaXMgY2FzZSkKICAgLS0gIFRoZXJlIGFyZSBh IGZ1bGwgMjU2IG9mIHRoZXNlLCBidXQgb25seSB0aGUgZW50cmllcyBmb3IgbG93ZXIgY2FzZQog ICAtLSAgYW5kIHVwcGVyIGNhc2UgbGV0dGVycyBoYXZlIGlkZW50aWZpZXJzCgogICAtLSAgVGhl IGxvd2VyIGNhc2UgbGV0dGVyIGVudHJpZXMgYXJlIHVzZWQgZm9yIG9uZSBjaGFyYWN0ZXIgaWRl bnRpZmllcnMKICAgLS0gIGFwcGVhcmluZyBpbiB0aGUgc291cmNlLCBmb3IgZXhhbXBsZSBpbiBw cmFnbWEgSW50ZXJmYWNlIChDKS4KCiAgIE5hbWVfQSAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ2EnKTsKICAgTmFtZV9CICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgn YicpOwogICBOYW1lX0MgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9J ZCArIENoYXJhY3RlcidQb3MgKCdjJyk7CiAgIE5hbWVfRCAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ2QnKTsKICAgTmFtZV9FICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9z ICgnZScpOwogICBOYW1lX0YgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFt ZV9JZCArIENoYXJhY3RlcidQb3MgKCdmJyk7CiAgIE5hbWVfRyAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ2cnKTsKICAgTmFtZV9I ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXIn UG9zICgnaCcpOwogICBOYW1lX0kgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3Rf TmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdpJyk7CiAgIE5hbWVfSiAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ2onKTsKICAgTmFt ZV9LICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0 ZXInUG9zICgnaycpOwogICBOYW1lX0wgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmly c3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdsJyk7CiAgIE5hbWVfTSAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ20nKTsKICAg TmFtZV9OICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFy YWN0ZXInUG9zICgnbicpOwogICBOYW1lX08gICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g Rmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdvJyk7CiAgIE5hbWVfUCAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ3AnKTsK ICAgTmFtZV9RICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBD aGFyYWN0ZXInUG9zICgncScpOwogICBOYW1lX1IgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdyJyk7CiAgIE5hbWVfUyAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ3Mn KTsKICAgTmFtZV9UICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQg KyBDaGFyYWN0ZXInUG9zICgndCcpOwogICBOYW1lX1UgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCd1Jyk7CiAgIE5hbWVfViAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAo J3YnKTsKICAgTmFtZV9XICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVf SWQgKyBDaGFyYWN0ZXInUG9zICgndycpOwogICBOYW1lX1ggICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCd4Jyk7CiAgIE5hbWVfWSAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1Bv cyAoJ3knKTsKICAgTmFtZV9aICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05h bWVfSWQgKyBDaGFyYWN0ZXInUG9zICgneicpOwoKICAgLS0gIFRoZSB1cHBlciBjYXNlIGxldHRl ciBlbnRyaWVzIGFyZSB1c2VkIGJ5IGV4cGFuZGVyIGNvZGUgZm9yIGxvY2FsCiAgIC0tICB2YXJp YWJsZXMgdGhhdCBkbyBub3QgcmVxdWlyZSB1bmlxdWUgbmFtZXMgKGUuZy4gZm9ybWFsIHBhcmFt ZXRlcgogICAtLSAgbmFtZXMgaW4gY29uc3RydWN0ZWQgcHJvY2VkdXJlcykKCiAgIE5hbWVfdUEg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1Bv cyAoJ0EnKTsKICAgTmFtZV91QiAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0X05h bWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnQicpOwogICBOYW1lX3VDICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdDJyk7CiAgIE5hbWVf dUQgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFjdGVy J1BvcyAoJ0QnKTsKICAgTmFtZV91RSAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZpcnN0 X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnRScpOwogICBOYW1lX3VGICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdGJyk7CiAgIE5h bWVfdUcgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hhcmFj dGVyJ1BvcyAoJ0cnKTsKICAgTmFtZV91SCAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IEZp cnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnSCcpOwogICBOYW1lX3VJICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdJJyk7CiAg IE5hbWVfdUogICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsgQ2hh cmFjdGVyJ1BvcyAoJ0onKTsKICAgTmFtZV91SyAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnSycpOwogICBOYW1lX3VMICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdMJyk7 CiAgIE5hbWVfdU0gICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lkICsg Q2hhcmFjdGVyJ1BvcyAoJ00nKTsKICAgTmFtZV91TiAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnTicpOwogICBOYW1lX3VPICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3MgKCdP Jyk7CiAgIE5hbWVfdVAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1lX0lk ICsgQ2hhcmFjdGVyJ1BvcyAoJ1AnKTsKICAgTmFtZV91USAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnUScpOwogICBOYW1lX3VSICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQb3Mg KCdSJyk7CiAgIE5hbWVfdVMgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9OYW1l X0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ1MnKTsKICAgTmFtZV91VCAgICAgICAgOiBjb25zdGFudCBO YW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnVCcpOwogICBOYW1lX3VV ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3RlcidQ b3MgKCdVJyk7CiAgIE5hbWVfdVYgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJzdF9O YW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ1YnKTsKICAgTmFtZV91VyAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnVycpOwogICBOYW1l X3VYICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gRmlyc3RfTmFtZV9JZCArIENoYXJhY3Rl cidQb3MgKCdYJyk7CiAgIE5hbWVfdVkgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBGaXJz dF9OYW1lX0lkICsgQ2hhcmFjdGVyJ1BvcyAoJ1knKTsKICAgTmFtZV91WiAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyBDaGFyYWN0ZXInUG9zICgnWicpOwoKICAg LS0gIE5vdGU6IHRoZSBmb2xsb3dpbmcgdGFibGUgaXMgcmVhZCBieSB0aGUgdXRpbGl0eSBwcm9n cmFtIFhTTkFNRVMgYW5kCiAgIC0tICBpdHMgZm9ybWF0IHNob3VsZCBub3QgYmUgY2hhbmdlZCB3 aXRob3V0IGNvb3JkaW5hdGluZyB3aXRoIHRoaXMgcHJvZ3JhbS4KCiAgIE4gOiBjb25zdGFudCBO YW1lX0lkIDo9IEZpcnN0X05hbWVfSWQgKyAyNTY7CiAgIC0tICBTeW5vbnltIHVzZWQgaW4gc3Rh bmRhcmQgbmFtZSBkZWZpbml0aW9ucwoKICAgLS0gIFNvbWUgbmFtZXMgdGhhdCBhcmUgdXNlZCBi eSBnaWdpLCBhbmQgd2hvc2UgZGVmaW5pdGlvbnMgYXJlIHJlZmxlY3RlZAogICAtLSAgaW4gdGhl IEMgaGVhZGVyIGZpbGUgYS1zbmFtZXMuaC4gVGhleSBhcmUgcGxhY2VkIGF0IHRoZSBzdGFydCBz byB0aGF0CiAgIC0tICB0aGUgbmVlZCB0byBtb2RpZnkgYS1zbmFtZXMuaCBpcyBtaW5pbWl6ZWQu CgogICBOYW1lX3VQYXJlbnQgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDAwMDsKICAgTmFtZV91VGFnICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMDE7CiAgIE5hbWVfT2ZmICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDAyOwogICBOYW1lX1NwYWNlICAg ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAwMzsKICAg TmFtZV9UaW1lICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAwMDQ7CiAgIE5hbWVfdUluaXRfUHJvYyAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMDA1OwogICBOYW1lX3VTaXplICAgICAgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAwNjsKCiAgIC0tICBTb21lIHNwZWNpYWwg bmFtZXMgdXNlZCBieSB0aGUgZXhwYW5kZXIuIE5vdGUgdGhhdCB0aGUgbG93ZXIgY2FzZSB1J3MK ICAgLS0gIGF0IHRoZSBzdGFydCBvZiB0aGVzZSBuYW1lcyBnZXQgdHJhbnNsYXRlZCB0byBleHRy YSB1bmRlcnNjb3Jlcy4gVGhlc2UKICAgLS0gIG5hbWVzIGFyZSBvbmx5IHJlZmVyZW5jZWQgaW50 ZXJuYWxseSBieSBleHBhbmRlciBnZW5lcmF0ZWQgY29kZS4KCiAgIE5hbWVfdUFib3J0X1NpZ25h bCAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDA3OwogICBOYW1l X3VBZGRyZXNzX1Jlc29sdmVyICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiAr IDAwODsKICAgTmFtZV91QXNzaWduICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBO YW1lX0lkIDo9IE4gKyAwMDk7CiAgIE5hbWVfdUNoYWluICAgICAgICAgICAgICAgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDEwOwogICBOYW1lX3VDbGVhbiAgICAgICAgICAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAxMTsKICAgTmFtZV91Q29u dHJvbGxlciAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMTI7 CiAgIE5hbWVfdUVudHJ5X0JvZGllcyAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDEzOwogICBOYW1lX3VFeHB1bmdlICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDAxNDsKICAgTmFtZV91RmluYWxfTGlzdCAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMTU7CiAgIE5hbWVfdUlkZXB0aCAg ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDE2OwogICBO YW1lX3VJbml0ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDAxNzsKICAgTmFtZV91TG9jYWxfRmluYWxfTGlzdCAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAwMTg7CiAgIE5hbWVfdU1hc3RlciAgICAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDE5OwogICBOYW1lX3VPYmplY3QgICAgICAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAyMDsKICAgTmFtZV91 UHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAw MjE7CiAgIE5hbWVfdVNlcnZpY2UgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMDIyOwogICBOYW1lX3VUYWdzICAgICAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAyMzsKICAgTmFtZV91VGFzayAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMjQ7CiAgIE5hbWVfdVRhc2tf SWQgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDI1Owog ICBOYW1lX3VUYXNrX0luZm8gICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDAyNjsKICAgTmFtZV91VGFza19OYW1lICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAwMjc7CiAgIE5hbWVfdVRyYWNlX1NwICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDI4OwoKICAgLS0gIE5hbWVzIG9mIHJv dXRpbmVzIGluIEFkYS5GaW5hbGl6YXRpb24sIG5lZWRlZCBieSBleHBhbmRlcgoKICAgTmFtZV9J bml0aWFsaXplICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAw Mjk7CiAgIE5hbWVfQWRqdXN0ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMDMwOwogICBOYW1lX0ZpbmFsaXplICAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAzMTsKCiAgIC0tICBOYW1lcyBvZiBmaWVsZHMgZGVj bGFyZWQgaW4gU3lzdGVtLkZpbmFsaXphdGlvbl9JbXBsZW1lbnRhdGlvbiwKICAgLS0gIG5lZWRl ZCBieSB0aGUgZXhwYW5kZXIgd2hlbiBnZW5lcmF0aW5nIGNvZGUgZm9yIGZpbmFsaXphdGlvbi4K CiAgIE5hbWVfTmV4dCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDMyOwogICBOYW1lX1ByZXYgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDAzMzsKCiAgIC0tICBOYW1lcyBvZiBUU1Mgcm91dGluZXMg KHNlZSBFeHBfVFNTKTsgTmFtZV91SW5pdF9Qcm9jIGFib3ZlIGlzIGFsc28KICAgLS0gIG9uZSBv ZiB0aGVzZS4KCiAgIE5hbWVfdURlZXBfQWRqdXN0ICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMDM0OwogICBOYW1lX3VFcXVhbGl0eSAgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDAzNTsKICAgTmFtZV91RGVlcF9GaW5hbGl6 ZSAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMzY7CiAgIE5hbWVf dURlZXBfSW5pdGlhbGl6ZSAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MDM3OwogICBOYW1lX3VJbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDAzODsKICAgTmFtZV91T3V0cHV0ICAgICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwMzk7CiAgIE5hbWVfdVJBU19BY2Nlc3MgICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDQwOwogICBOYW1lX3VSQVNf RGVyZWZlcmVuY2UgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA0MTsK ICAgTmFtZV91UmVhZCAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAwNDI7CiAgIE5hbWVfdVJlcF9Ub19Qb3MgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMDQzOwogICBOYW1lX3VXcml0ZSAgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA0NDsKCiAgIC0tICBOYW1lcyBvZiBh bGxvY2F0aW9uIHJvdXRpbmVzLCBhbHNvIG5lZWRlZCBieSBleHBhbmRlcgoKICAgTmFtZV9BbGxv Y2F0ZSAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwNDU7 CiAgIE5hbWVfRGVhbGxvY2F0ZSAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDQ2OwogICBOYW1lX0RlcmVmZXJlbmNlICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDA0NzsKCiAgIC0tICBOYW1lcyBvZiBUZXh0X0lPIGdlbmVy aWMgc3VicGFja2FnZXMgKHNlZSBSdHNmaW5kLlRleHRfSU9fS2x1ZGdlKQoKICAgRmlyc3RfVGV4 dF9JT19QYWNrYWdlICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwNDg7 CiAgIE5hbWVfRGVjaW1hbF9JTyAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDQ4OwogICBOYW1lX0VudW1lcmF0aW9uX0lPICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDA0OTsKICAgTmFtZV9GaXhlZF9JTyAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwNTA7CiAgIE5hbWVfRmxvYXRfSU8g ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDUxOwogICBO YW1lX0ludGVnZXJfSU8gICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDA1MjsKICAgTmFtZV9Nb2R1bGFyX0lPICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAwNTM7CiAgIExhc3RfVGV4dF9JT19QYWNrYWdlICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDUzOwoKICAgc3VidHlwZSBUZXh0X0lPX1Bh Y2thZ2VfTmFtZSBpcyBOYW1lX0lkCiAgICAgcmFuZ2UgRmlyc3RfVGV4dF9JT19QYWNrYWdlIC4u IExhc3RfVGV4dF9JT19QYWNrYWdlOwoKICAgLS0gIE5hbWVzIG9mIGZpbGVzIGluIGxpYnJhcnkg Zm9yIEFkYS5UZXh0X0lPIGFuZCBBZGEuV2lkZV9UZXh0X0lPCgogICBOYW1lX2FfdGV4dGlvICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA1NDsKICAgTmFt ZV9hX3dpdGVpbyAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAwNTU7CgogICAtLSAgU29tZSBtaXNjZWxsYW5lb3VzIG5hbWVzIHVzZWQgZm9yIGVycm9yIGRl dGVjdGlvbi9yZWNvdmVyeQoKICAgTmFtZV9Db25zdCAgICAgICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwNTY7CiAgIE5hbWVfRXJyb3IgICAgICAgICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDU3OwogICBOYW1lX0dvICAg ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA1ODsK ICAgTmFtZV9QdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAwNTk7CiAgIE5hbWVfUHV0X0xpbmUgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMDYwOwogICBOYW1lX1RvICAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA2MTsKCiAgIC0tICBOYW1lcyBmb3Ig cGFja2FnZXMgdGhhdCBhcmUgdHJlYXRlZCBzcGVjaWFsbHkgYnkgdGhlIGNvbXBpbGVyCgogICBO YW1lX0ZpbmFsaXphdGlvbiAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDA2MjsKICAgTmFtZV9GaW5hbGl6YXRpb25fUm9vdCAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAwNjM7CiAgIE5hbWVfSW50ZXJmYWNlcyAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDY0OwogICBOYW1lX1N0YW5kYXJkICAgICAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA2NTsKICAgTmFtZV9T eXN0ZW0gICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAw NjY7CiAgIE5hbWVfVGV4dF9JTyAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMDY3OwogICBOYW1lX1dpZGVfVGV4dF9JTyAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA2ODsKCiAgIC0tICBOYW1lcyBvZiBpZGVudGlmaWVy cyB1c2VkIGluIGV4cGFuZGluZyBkaXN0cmlidXRpb24gc3R1YnMKCiAgIE5hbWVfQWRkciAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDY5OwogICBO YW1lX0FzeW5jICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDA3MDsKICAgTmFtZV9HZXRfQWN0aXZlX1BhcnRpdGlvbl9JRCAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAwNzE7CiAgIE5hbWVfR2V0X1JDSV9QYWNrYWdlX1JlY2VpdmVyICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDcyOwogICBOYW1lX09yaWdpbiAgICAgICAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA3MzsKICAgTmFtZV9Q YXJhbXMgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAw NzQ7CiAgIE5hbWVfUGFydGl0aW9uICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMDc1OwogICBOYW1lX1BhcnRpdGlvbl9JbnRlcmZhY2UgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA3NjsKICAgTmFtZV9SYXMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwNzc7CiAgIE5hbWVfUkNJX05h bWUgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDc4Owog ICBOYW1lX1JlY2VpdmVyICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDA3OTsKICAgTmFtZV9SZXN1bHQgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAwODA7CiAgIE5hbWVfUnBjICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDgxOwogICBOYW1lX1N1YnBfSWQgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA4MjsKCiAgIC0t ICBPcGVyYXRvciBTeW1ib2wgZW50cmllcy4gVGhlIGFjdHVhbCBuYW1lcyBoYXZlIGFuIHVwcGVy IGNhc2UgTyBhdAogICAtLSAgdGhlIHN0YXJ0IGluIHBsYWNlIG9mIHRoZSBPcF8gcHJlZml4IChl LmcuIHRoZSBhY3R1YWwgbmFtZSB0aGF0CiAgIC0tICBjb3JyZXNwb25kcyB0byBOYW1lX09wX0Fi cyBpcyAiT2FicyIuCgogICBGaXJzdF9PcGVyYXRvcl9OYW1lICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDA4MzsKICAgTmFtZV9PcF9BYnMgICAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwODM7IC0tICJhYnMiCiAgIE5hbWVf T3BfQW5kICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MDg0OyAtLSAiYW5kIgogICBOYW1lX09wX01vZCAgICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDA4NTsgLS0gIm1vZCIKICAgTmFtZV9PcF9Ob3QgICAgICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwODY7IC0tICJub3Qi CiAgIE5hbWVfT3BfT3IgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDg3OyAtLSAib3IiCiAgIE5hbWVfT3BfUmVtICAgICAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDg4OyAtLSAicmVtIgogICBOYW1lX09wX1hv ciAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA4OTsg LS0gInhvciIKICAgTmFtZV9PcF9FcSAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAwOTA7IC0tICI9IgogICBOYW1lX09wX05lICAgICAgICAgICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA5MTsgLS0gIi89IgogICBOYW1l X09wX0x0ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiAr IDA5MjsgLS0gIjwiCiAgIE5hbWVfT3BfTGUgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMDkzOyAtLSAiPD0iCiAgIE5hbWVfT3BfR3QgICAgICAgICAg ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMDk0OyAtLSAiPiIKICAg TmFtZV9PcF9HZSAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAwOTU7IC0tICI+PSIKICAgTmFtZV9PcF9BZGQgICAgICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwOTY7IC0tICIrIgogICBOYW1lX09wX1N1YnRyYWN0 ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDA5NzsgLS0gIi0i CiAgIE5hbWVfT3BfQ29uY2F0ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMDk4OyAtLSAiJiIKICAgTmFtZV9PcF9NdWx0aXBseSAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAwOTk7IC0tICIqIgogICBOYW1lX09wX0Rpdmlk ZSAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEwMDsgLS0g Ii8iCiAgIE5hbWVfT3BfRXhwb24gICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMTAxOyAtLSAiKioiCiAgIExhc3RfT3BlcmF0b3JfTmFtZSAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTAxOwoKICAgLS0gIE5hbWVzIGZvciBh bGwgcHJhZ21hcyByZWNvZ25pemVkIGJ5IEdOQVQuIFRoZSBlbnRyaWVzIHdpdGggdGhlIGNvbW1l bnQKICAgLS0gICJBZGEgODMiIGFyZSBwcmFnbWFzIHRoYXQgYXJlIGRlZmluZWQgaW4gQWRhIDgz LCBidXQgbm90IGluIEFkYSA5NS4KICAgLS0gIFRoZXNlIHByYWdtYXMgYXJlIGZ1bGx5IGltcGxl bWVudGVkIGluIGJvdGggQWRhIDgzIGFuZCBBZGEgOTUgbW9kZXMKICAgLS0gIGluIEdOQVQuCgog ICAtLSAgVGhlIGVudHJpZXMgbWFya2VkIEdOQVQgYXJlIHByYWdtYXMgdGhhdCBhcmUgZGVmaW5l ZCBieSBHTkFUCiAgIC0tICBhbmQgaW1wbGVtZW50ZWQgaW4gYm90aCBBZGEgODMgYW5kIEFkYSA5 NSBtb2Rlcy4gRnVsbCBkZXNjcmlwdGlvbnMKICAgLS0gIG9mIHRoZXNlIGltcGxlbWVudGF0aW9u IGRlcGVuZGVudCBwcmFnbWFzIG1heSBiZSBmb3VuZCBpbiB0aGUKICAgLS0gIGFwcHJvcHJpYXRl IHNlY3Rpb24gaW4gdW5pdCBTZW1fUHJhZyBpbiBmaWxlIHNlbS1wcmFnLmFkYi4KCiAgIC0tICBU aGUgZW50cmllcyBtYXJrZWQgVk1TIGFyZSBWTVMgc3BlY2lmaWMgcHJhZ21hcyB0aGF0IGFyZSBy ZWNvZ25pemVkCiAgIC0tICBvbmx5IGluIE9wZW5WTVMgdmVyc2lvbnMgb2YgR05BVC4gVGhleSBh cmUgaWdub3JlZCBpbiBvdGhlciB2ZXJzaW9ucwogICAtLSAgd2l0aCBhbiBhcHByb3ByaWF0ZSB3 YXJuaW5nLgoKICAgRmlyc3RfUHJhZ21hX05hbWUgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAxMDI7CgogICAtLSAgQ29uZmlndXJhdGlvbiBwcmFnbWFzIGFyZSBn cm91cGVkIGF0IHN0YXJ0CgogICBOYW1lX0FkYV84MyAgICAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEwMjsgLS0gR05BVAogICBOYW1lX0FkYV85NSAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEwMzsgLS0gR05B VAogICBOYW1lX0NfUGFzc19CeV9Db3B5ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDEwNDsgLS0gR05BVAogICBOYW1lX0NvbXBvbmVudF9BbGlnbm1lbnQgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEwNTsgLS0gR05BVAogICBOYW1lX0Rpc2Nh cmRfTmFtZXMgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEwNjsK ICAgTmFtZV9FbGFib3JhdGlvbl9DaGVja3MgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAxMDc7IC0tIEdOQVQKICAgTmFtZV9FbGltaW5hdGUgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMDg7IC0tIEdOQVQKICAgTmFtZV9FeHRlbmRf U3lzdGVtICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMDk7IC0t IEdOQVQKICAgTmFtZV9FeHRlbnNpb25zX0FsbG93ZWQgICAgICAgICAgICAgOiBjb25zdGFudCBO YW1lX0lkIDo9IE4gKyAxMTA7IC0tIEdOQVQKICAgTmFtZV9FeHRlcm5hbF9OYW1lX0Nhc2luZyAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMTE7IC0tIEdOQVQKICAgTmFtZV9G bG9hdF9SZXByZXNlbnRhdGlvbiAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAx MTI7IC0tIEdOQVQKICAgTmFtZV9Jbml0aWFsaXplX1NjYWxhcnMgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAxMTM7IC0tIEdOQVQKICAgTmFtZV9MaWNlbnNlICAgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMTQ7IC0tIEdOQVQKICAg TmFtZV9Mb2NraW5nX1BvbGljeSAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAxMTU7CiAgIE5hbWVfTG9uZ19GbG9hdCAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMTE2OyAtLSBWTVMKICAgTmFtZV9Ob19SdW5fVGltZSAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMTc7IC0tIEdOQVQKICAgTmFt ZV9Ob3JtYWxpemVfU2NhbGFycyAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAxMTg7CiAgIE5hbWVfUG9sbGluZyAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMTE5OyAtLSBHTkFUCiAgIE5hbWVfUHJvcGFnYXRlX0V4Y2VwdGlvbnMg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTIwOyAtLSBHTkFUCiAgIE5hbWVf UXVldWluZ19Qb2xpY3kgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MTIxOwogICBOYW1lX1JhdmVuc2NhciAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDEyMjsKICAgTmFtZV9SZXN0cmljdGVkX1J1bl9UaW1lICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMjM7CiAgIE5hbWVfUmVzdHJpY3Rpb25zICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTI0OwogICBOYW1lX1Jldmll d2FibGUgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEyNTsK ICAgTmFtZV9Tb3VyY2VfRmlsZV9OYW1lICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAxMjY7IC0tIEdOQVQKICAgTmFtZV9TdHlsZV9DaGVja3MgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMjc7IC0tIEdOQVQKICAgTmFtZV9TdXBwcmVz cyAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxMjg7CiAg IE5hbWVfVGFza19EaXNwYXRjaGluZ19Qb2xpY3kgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgMTI5OwogICBOYW1lX1Vuc3VwcHJlc3MgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDEzMDsgLS0gR05BVAogICBOYW1lX1VzZV9WQURTX1NpemUgICAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEzMTsgLS0gR05BVAogICBO YW1lX1dhcm5pbmdzICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDEzMjsgLS0gR05BVAogICBOYW1lX1ZhbGlkaXR5X0NoZWNrcyAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEzMzsgLS0gR05BVAogICBMYXN0X0NvbmZpZ3VyYXRp b25fUHJhZ21hX05hbWUgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEzMzsKCiAgIC0t ICBSZW1haW5pbmcgcHJhZ21hIG5hbWVzCgogICBOYW1lX0Fib3J0X0RlZmVyICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEzNDsgLS0gR05BVAogICBOYW1lX0Fs bF9DYWxsc19SZW1vdGUgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDEz NTsKICAgTmFtZV9Bbm5vdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAxMzY7IC0tIEdOQVQKCiAgIC0tICBOb3RlOiBBU1RfRW50cnkgaXMgbm90IGlu IHRoaXMgbGlzdCBiZWNhdXNlIGl0cyBuYW1lIG1hdGNoZXMgdGhlCiAgIC0tICBuYW1lIG9mIHRo ZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZS4gSG93ZXZlciwgaXQgaXMgaW5jbHVkZWQgaW4gdGhl CiAgIC0tICBkZWZpbml0aW9uIG9mIHRoZSB0eXBlIEF0dHJpYnV0ZV9JZCwgYW5kIHRoZSBmdW5j dGlvbnMgR2V0X1ByYWdtYV9JZAogICAtLSAgYW5kIENoZWNrX1ByYWdtYV9JZCBjb3JyZWN0bHkg cmVjb2duaXplIGFuZCBwcm9jZXNzIE5hbWVfQVNUX0VudHJ5LgogICAtLSAgQVNUX0VudHJ5IGlz IGEgVk1TIHNwZWNpZmljIHByYWdtYS4KCiAgIE5hbWVfQXNzZXJ0ICAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTM3OyAtLSBHTkFUCiAgIE5hbWVfQXN5 bmNocm9ub3VzICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTM4 OwogICBOYW1lX0F0b21pYyAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDEzOTsKICAgTmFtZV9BdG9taWNfQ29tcG9uZW50cyAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyAxNDA7CiAgIE5hbWVfQXR0YWNoX0hhbmRsZXIgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTQxOwogICBOYW1lX0NvbW1lbnQg ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE0MjsgLS0g R05BVAogICBOYW1lX0NvbW1vbl9PYmplY3QgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDE0MzsgLS0gR05BVAogICBOYW1lX0NvbXBsZXhfUmVwcmVzZW50YXRpb24g ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE0NDsgLS0gR05BVAogICBOYW1lX0Nv bnRyb2xsZWQgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE0 NTsKICAgTmFtZV9Db252ZW50aW9uICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAxNDY7CiAgIE5hbWVfQ1BQX0NsYXNzICAgICAgICAgICAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTQ3OyAtLSBHTkFUCiAgIE5hbWVfQ1BQX0NvbnN0cnVj dG9yICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTQ4OyAtLSBHTkFU CiAgIE5hbWVfQ1BQX1ZpcnR1YWwgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMTQ5OyAtLSBHTkFUCiAgIE5hbWVfQ1BQX1Z0YWJsZSAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTUwOyAtLSBHTkFUCiAgIE5hbWVfRGVidWcg ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTUxOyAt LSBHTkFUCiAgIE5hbWVfRWxhYm9yYXRlICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMTUyOyAtLSBBZGEgODMKICAgTmFtZV9FbGFib3JhdGVfQWxsICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxNTM7CiAgIE5hbWVfRWxhYm9y YXRlX0JvZHkgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTU0Owog ICBOYW1lX0V4cG9ydCAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDE1NTsKICAgTmFtZV9FeHBvcnRfRXhjZXB0aW9uICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAxNTY7IC0tIFZNUwogICBOYW1lX0V4cG9ydF9GdW5jdGlvbiAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE1NzsgLS0gR05BVAogICBO YW1lX0V4cG9ydF9PYmplY3QgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDE1ODsgLS0gR05BVAogICBOYW1lX0V4cG9ydF9Qcm9jZWR1cmUgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE1OTsgLS0gR05BVAogICBOYW1lX0V4cG9ydF9WYWx1 ZWRfUHJvY2VkdXJlICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE2MDsgLS0gR05B VAogICBOYW1lX0V4dGVybmFsICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDE2MTsgLS0gR05BVAogICBOYW1lX0ZpbmFsaXplX1N0b3JhZ2VfT25seSAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE2MjsgLS0gR05BVAogICBOYW1lX0lkZW50 ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE2Mzsg LS0gVk1TCiAgIE5hbWVfSW1wb3J0ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMTY0OwogICBOYW1lX0ltcG9ydF9FeGNlcHRpb24gICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE2NTsgLS0gVk1TCiAgIE5hbWVfSW1wb3J0X0Z1 bmN0aW9uICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTY2OyAtLSBH TkFUCiAgIE5hbWVfSW1wb3J0X09iamVjdCAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMTY3OyAtLSBHTkFUCiAgIE5hbWVfSW1wb3J0X1Byb2NlZHVyZSAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTY4OyAtLSBHTkFUCiAgIE5hbWVfSW1w b3J0X1ZhbHVlZF9Qcm9jZWR1cmUgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTY5 OyAtLSBHTkFUCiAgIE5hbWVfSW5saW5lICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMTcwOwogICBOYW1lX0lubGluZV9BbHdheXMgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE3MTsgLS0gR05BVAogICBOYW1lX0lubGlu ZV9HZW5lcmljICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE3Mjsg LS0gR05BVAogICBOYW1lX0luc3BlY3Rpb25fUG9pbnQgICAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDE3MzsKICAgTmFtZV9JbnRlcmZhY2UgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxNzQ7IC0tIEFkYSA4MwogICBOYW1lX0ludGVy ZmFjZV9OYW1lICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE3NTsg LS0gR05BVAogICBOYW1lX0ludGVycnVwdF9IYW5kbGVyICAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDE3NjsKICAgTmFtZV9JbnRlcnJ1cHRfUHJpb3JpdHkgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxNzc7CiAgIE5hbWVfSmF2YV9Db25zdHJ1Y3Rv ciAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTc4OyAtLSBHTkFUCiAg IE5hbWVfSmF2YV9JbnRlcmZhY2UgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgMTc5OyAtLSBHTkFUCiAgIE5hbWVfTGlua19XaXRoICAgICAgICAgICAgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTgwOyAtLSBHTkFUCiAgIE5hbWVfTGlua2VyX0Fs aWFzICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTgxOyAtLSBH TkFUCiAgIE5hbWVfTGlua2VyX09wdGlvbnMgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMTgyOwogICBOYW1lX0xpbmtlcl9TZWN0aW9uICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE4MzsgLS0gR05BVAogICBOYW1lX0xpc3QgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE4NDsKICAgTmFt ZV9NYWNoaW5lX0F0dHJpYnV0ZSAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAxODU7IC0tIEdOQVQKICAgTmFtZV9NYWluICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyAxODY7IC0tIEdOQVQKICAgTmFtZV9NYWluX1N0b3JhZ2Ug ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxODc7IC0tIEdOQVQK ICAgTmFtZV9NZW1vcnlfU2l6ZSAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAxODg7IC0tIEFkYSA4MwogICBOYW1lX05vX1JldHVybiAgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE4OTsgLS0gR05BVAogICBOYW1lX09wdGlt aXplICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE5MDsK ICAgTmFtZV9QYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAxOTE7CiAgIE5hbWVfUGFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMTkyOwogICBOYW1lX1Bhc3NpdmUgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE5MzsgLS0gR05BVAogICBOYW1lX1By ZWVsYWJvcmF0ZSAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDE5 NDsKICAgTmFtZV9Qcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAxOTU7CiAgIE5hbWVfUHNlY3RfT2JqZWN0ICAgICAgICAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMTk2OyAtLSBWTVMKICAgTmFtZV9QdXJlICAgICAgICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAxOTc7CiAgIE5hbWVf UHVyZV9GdW5jdGlvbiAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MTk4OyAtLSBHTkFUCiAgIE5hbWVfUmVtb3RlX0NhbGxfSW50ZXJmYWNlICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMTk5OwogICBOYW1lX1JlbW90ZV9UeXBlcyAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIwMDsKICAgTmFtZV9TaGFyZV9HZW5l cmljICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMDE7IC0tIEdO QVQKICAgTmFtZV9TaGFyZWQgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAyMDI7IC0tIEFkYSA4MwogICBOYW1lX1NoYXJlZF9QYXNzaXZlICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIwMzsKCiAgIC0tICBOb3RlOiBTdG9y YWdlX1NpemUgaXMgbm90IGluIHRoaXMgbGlzdCBiZWNhdXNlIGl0cyBuYW1lIG1hdGNoZXMgdGhl CiAgIC0tICBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIGF0dHJpYnV0ZS4gSG93ZXZlciwgaXQg aXMgaW5jbHVkZWQgaW4gdGhlCiAgIC0tICBkZWZpbml0aW9uIG9mIHRoZSB0eXBlIEF0dHJpYnV0 ZV9JZCwgYW5kIHRoZSBmdW5jdGlvbnMgR2V0X1ByYWdtYV9JZAogICAtLSAgYW5kIENoZWNrX1By YWdtYV9JZCBjb3JyZWN0bHkgcmVjb2duaXplIGFuZCBwcm9jZXNzIE5hbWVfU3RvcmFnZV9TaXpl LgoKICAgLS0gIE5vdGU6IFN0b3JhZ2VfVW5pdCBpcyBhbHNvIG9taXR0ZWQgZnJvbSB0aGUgbGlz dCBiZWNhdXNlIG9mIGEgY2xhc2gKICAgLS0gIHdpdGggYW4gYXR0cmlidXRlIG5hbWUsIGFuZCBp cyB0cmVhdGVkIHNpbWlsYXJseS4KCiAgIE5hbWVfU291cmNlX1JlZmVyZW5jZSAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjA0OyAtLSBHTkFUCiAgIE5hbWVfU3RyZWFt X0NvbnZlcnQgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjA1OyAt LSBHTkFUCiAgIE5hbWVfU3VidGl0bGUgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMjA2OyAtLSBHTkFUCiAgIE5hbWVfU3VwcHJlc3NfQWxsICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjA3OyAtLSBHTkFUCiAgIE5hbWVf U3VwcHJlc3NfRGVidWdfSW5mbyAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MjA4OyAtLSBHTkFUCiAgIE5hbWVfU3VwcHJlc3NfSW5pdGlhbGl6YXRpb24gICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMjA5OyAtLSBHTkFUCiAgIE5hbWVfU3lzdGVtX05hbWUgICAg ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjEwOyAtLSBBZGEgODMK ICAgTmFtZV9UYXNrX0luZm8gICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAyMTE7IC0tIEdOQVQKICAgTmFtZV9UYXNrX05hbWUgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMTI7IC0tIEdOQVQKICAgTmFtZV9UYXNrX1N0 b3JhZ2UgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMTM7IC0t IFZNUwogICBOYW1lX1RpbWVfU2xpY2UgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDIxNDsgLS0gR05BVAogICBOYW1lX1RpdGxlICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIxNTsgLS0gR05BVAogICBOYW1lX1Vu Y2hlY2tlZF9VbmlvbiAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIx NjsgLS0gR05BVAogICBOYW1lX1VuaW1wbGVtZW50ZWRfVW5pdCAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDIxNzsgLS0gR05BVAogICBOYW1lX1VucmVzZXJ2ZV9BbGxfSW50 ZXJydXB0cyAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIxODsgLS0gR05BVAogICBO YW1lX1ZvbGF0aWxlICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDIxOTsKICAgTmFtZV9Wb2xhdGlsZV9Db21wb25lbnRzICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAyMjA7CiAgIE5hbWVfV2Vha19FeHRlcm5hbCAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjIxOyAtLSBHTkFUCiAgIExhc3RfUHJhZ21h X05hbWUgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjIxOwoK ICAgLS0gIExhbmd1YWdlIGNvbnZlbnRpb24gbmFtZXMgZm9yIHByYWdtYSBDb252ZW50aW9uL0V4 cG9ydC9JbXBvcnQvSW50ZXJmYWNlCiAgIC0tICBOb3RlIHRoYXQgTmFtZV9DIGlzIG5vdCBpbmNs dWRlZCBpbiB0aGlzIGxpc3QsIHNpbmNlIGl0IHdhcyBhbHJlYWR5CiAgIC0tICBkZWNsYXJlZCBl YXJsaWVyIGluIHRoZSBjb250ZXh0IG9mIG9uZS1jaGFyYWN0ZXIgaWRlbnRpZmllciBuYW1lcwog ICAtLSAgKHdoZXJlIHRoZSBvcmRlciBpcyBjcml0aWNhbCB0byB0aGUgZmFzdCBsb29rIHVwIHBy b2Nlc3MpLgoKICAgLS0gIE5vdGU6IHRoZXJlIGFyZSBubyBjb252ZW50aW9uIG5hbWVzIGNvcnJl c3BvbmRpbmcgdG8gdGhlIGNvbnZlbnRpb25zCiAgIC0tICBFbnRyeSBhbmQgUHJvdGVjdGVkLCB0 aGlzIGlzIGJlY2F1c2UgdGhlc2UgY29udmVudGlvbnMgY2Fubm90IGJlCiAgIC0tICBzcGVjaWZp ZWQgYnkgYSBwcmFnbWEuCgogICAtLSAgTm90ZTogVGhlIGNvbnZlbnRpb24gbmFtZSBDX1Bhc3Nf QnlfQ29weSBpcyB0cmVhdGVkIGFzIGVudGlyZWx5CiAgIC0tICBlcXVpdmFsZW50IHRvIEMgZXhj ZXB0IHdoZW4gaXQgaXMgc3BlY2lmaWVkIG9uIGEgcmVjb3JkIHR5cGUuIEluCiAgIC0tICB0aGlz IGNhc2UgdGhlIGNvbnZlbnRpb24gb2YgdGhlIHJlY29yZCB0eXBlIGlzIHNldCB0byBDLCBidXQg aW4KICAgLS0gIGFkZGl0aW9uIHRoZSBmbGFnIENfUGFzc19CeV9Db3B5IGlzIHNldCBvbiB0aGUg cmVjb3JkIHR5cGUuCgogICBGaXJzdF9Db252ZW50aW9uX05hbWUgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDIyMjsKICAgTmFtZV9BZGEgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMjI7CiAgIE5hbWVfQXNtICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjIzOwogICBO YW1lX0Fzc2VtYmxlciAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDIyNDsKICAgTmFtZV9DT0JPTCAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAyMjU7CiAgIE5hbWVfQ1BQICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjI2OwogICBOYW1lX0RMTCAgICAgICAgICAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIyNzsKICAgTmFtZV9G b3J0cmFuICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAy Mjg7CiAgIE5hbWVfSW50cmluc2ljICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMjI5OwogICBOYW1lX0phdmEgICAgICAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIzMDsKICAgTmFtZV9TdGRjYWxsICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMzE7CiAgIE5hbWVfU3R1YmJl ZCAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjMyOwog ICBOYW1lX1dpbjMyICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDIzMzsKICAgTGFzdF9Db252ZW50aW9uX05hbWUgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAyMzM7CgogICAtLSAgT3RoZXIgc3BlY2lhbCBuYW1lcyB1c2Vk IGluIHByb2Nlc3NpbmcgcHJhZ21hIGFyZ3VtZW50cwoKICAgTmFtZV9Bc19JcyAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMzQ7CiAgIE5hbWVfQm9k eV9GaWxlX05hbWUgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjM1 OwogICBOYW1lX0Nhc2luZyAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDIzNjsKICAgTmFtZV9Db2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyAyMzc7CiAgIE5hbWVfQ29tcG9uZW50ICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjM4OwogICBOYW1lX0NvbXBvbmVu dF9TaXplXzQgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDIzOTsKICAg TmFtZV9Db3B5ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAyNDA7CiAgIE5hbWVfRF9GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMjQxOwogICBOYW1lX0Rlc2NyaXB0b3IgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI0MjsKICAgTmFtZV9EZWZhdWx0ICAgICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNDM7CiAgIE5hbWVf RG90X1JlcGxhY2VtZW50ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MjQ0OwogICBOYW1lX0R5bmFtaWMgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDI0NTsKICAgTmFtZV9FbnRpdHkgICAgICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNDY7CiAgIE5hbWVfRXh0ZXJuYWxfTmFtZSAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjQ3OwogICBOYW1lX0ZpcnN0 X09wdGlvbmFsX1BhcmFtZXRlciAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI0ODsK ICAgTmFtZV9Gb3JtICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAyNDk7CiAgIE5hbWVfR19GbG9hdCAgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMjUwOwogICBOYW1lX0djYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI1MTsKICAgTmFtZV9HbmF0ICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNTI7CiAgIE5h bWVfR1BMICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBO ICsgMjUzOwogICBOYW1lX0lFRUVfRmxvYXQgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDI1NDsKICAgTmFtZV9JbnRlcm5hbCAgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNTU7CiAgIE5hbWVfTGlua19OYW1lICAgICAg ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjU2OwogICBOYW1lX0xv d2VyY2FzZSAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI1 NzsKICAgTmFtZV9NYXhfU2l6ZSAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAyNTg7CiAgIE5hbWVfTWVjaGFuaXNtICAgICAgICAgICAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjU5OwogICBOYW1lX01peGVkY2FzZSAgICAgICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI2MDsKICAgTmFtZV9Nb2RpZmll ZF9HUEwgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNjE7CiAg IE5hbWVfTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgMjYyOwogICBOYW1lX05DQSAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDI2MzsKICAgTmFtZV9ObyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNjQ7CiAgIE5hbWVfT24gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjY1OwogICBOYW1l X1BhcmFtZXRlcl9UeXBlcyAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiAr IDI2NjsKICAgTmFtZV9SZWZlcmVuY2UgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBO YW1lX0lkIDo9IE4gKyAyNjc7CiAgIE5hbWVfUmVzdHJpY3RlZCAgICAgICAgICAgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjY4OwogICBOYW1lX1Jlc3VsdF9NZWNoYW5pc20g ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI2OTsKICAgTmFtZV9SZXN1 bHRfVHlwZSAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNzA7 CiAgIE5hbWVfU0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMjcxOwogICBOYW1lX1NlY3Rpb24gICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDI3MjsKICAgTmFtZV9TZW1hcGhvcmUgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyNzM7CiAgIE5hbWVfU3BlY19GaWxl X05hbWUgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjc0OwogICBO YW1lX1N0YXRpYyAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDI3NTsKICAgTmFtZV9TdGFja19TaXplICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAyNzY7CiAgIE5hbWVfU3VidW5pdF9GaWxlX05hbWUgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjc3OwogICBOYW1lX1Rhc2tfU3RhY2tfU2l6 ZV9EZWZhdWx0ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI3ODsKICAgTmFtZV9U YXNrX1R5cGUgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAy Nzk7CiAgIE5hbWVfVGltZV9TbGljaW5nX0VuYWJsZWQgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMjgwOwogICBOYW1lX1RvcF9HdWFyZCAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI4MTsKICAgTmFtZV9VQkEgICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyODI7CiAgIE5hbWVfVUJTICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjgzOwog ICBOYW1lX1VCU0IgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDI4NDsKICAgTmFtZV9Vbml0X05hbWUgICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyAyODU7CiAgIE5hbWVfVW5rbm93biAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjg2OwogICBOYW1lX1VucmVzdHJpY3Rl ZCAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI4NzsKICAgTmFt ZV9VcHBlcmNhc2UgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAyODg7CiAgIE5hbWVfVkFYX0Zsb2F0ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMjg5OwogICBOYW1lX1ZNUyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI5MDsKICAgTmFtZV9Xb3JraW5nX1N0b3JhZ2Ug ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyOTE7CgogICAtLSAgTmFt ZXMgb2YgcmVjb2duaXplZCBhdHRyaWJ1dGVzLiBUaGUgZW50cmllcyB3aXRoIHRoZSBjb21tZW50 ICJBZGEgODMiCiAgIC0tICBhcmUgYXR0cmlidXRlcyB0aGF0IGFyZSBkZWZpbmVkIGluIEFkYSA4 MywgYnV0IG5vdCBpbiBBZGEgOTUuIFRoZXNlCiAgIC0tICBhdHRyaWJ1dGVzIGFyZSBpbXBsZW1l bnRlZCBpbiBib3RoIEFkYSA4MyBhbmQgQWRhIDk1IG1vZGVzIGluIEdOQVQuCgogICAtLSAgVGhl IGVudHJpZXMgbWFya2VkIEdOQVQgYXJlIGF0dHJpYnV0ZXMgdGhhdCBhcmUgZGVmaW5lZCBieSBH TkFUCiAgIC0tICBhbmQgaW1wbGVtZW50ZWQgaW4gYm90aCBBZGEgODMgYW5kIEFkYSA5NSBtb2Rl cy4gRnVsbCBkZXNjcmlwdGlvbnMKICAgLS0gIG9mIHRoZXNlIGltcGxlbWVudGF0aW9uIGRlcGVu ZGVudCBhdHRyaWJ1dGVzIG1heSBiZSBmb3VuZCBpbiB0aGUKICAgLS0gIGFwcHJvcHJpYXRlIHNl Y3Rpb24gaW4gcGFja2FnZSBTZW1fQXR0ciBpbiBmaWxlIHNlbS1hdHRyLmFkcy4KCiAgIC0tICBU aGUgZW50cmllcyBtYXJrZWQgVk1TIGFyZSByZWNvZ25pemVkIG9ubHkgaW4gT3BlblZNUyBpbXBs ZW1lbnRhdGlvbnMKICAgLS0gIG9mIEdOQVQsIGFuZCBhcmUgdHJlYXRlZCBhcyBpbGxlZ2FsIGlu IGFsbCBvdGhlciBjb250ZXh0cy4KCiAgIEZpcnN0X0F0dHJpYnV0ZV9OYW1lICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMjkyOwogICBOYW1lX0Fib3J0X1NpZ25hbCAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI5MjsgIC0tIEdOQVQK ICAgTmFtZV9BY2Nlc3MgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAyOTM7CiAgIE5hbWVfQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMjk0OwogICBOYW1lX0FkZHJlc3NfU2l6ZSAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI5NTsgIC0tIEdOQVQKICAgTmFtZV9B ZnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAy OTY7CiAgIE5hbWVfQWxpZ25tZW50ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMjk3OwogICBOYW1lX0FzbV9JbnB1dCAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDI5ODsgIC0tIEdOQVQKICAgTmFtZV9Bc21fT3V0cHV0 ICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAyOTk7ICAtLSBH TkFUCiAgIE5hbWVfQVNUX0VudHJ5ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMzAwOyAgLS0gVk1TCiAgIE5hbWVfQml0ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzAxOyAgLS0gR05BVAogICBOYW1lX0Jp dF9PcmRlciAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMw MjsKICAgTmFtZV9CaXRfUG9zaXRpb24gICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyAzMDM7ICAtLSBHTkFUCiAgIE5hbWVfQm9keV9WZXJzaW9uICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzA0OwogICBOYW1lX0NhbGxhYmxlICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMwNTsKICAgTmFt ZV9DYWxsZXIgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAzMDY7CiAgIE5hbWVfQ29kZV9BZGRyZXNzICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMzA3OyAgLS0gR05BVAogICBOYW1lX0NvbXBvbmVudF9TaXplICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMwODsKICAgTmFtZV9Db21wb3Nl ICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMDk7CiAg IE5hbWVfQ29uc3RyYWluZWQgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgMzEwOwogICBOYW1lX0NvdW50ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDMxMTsKICAgTmFtZV9EZWZhdWx0X0JpdF9PcmRlciAgICAgICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMTI7IC0tIEdOQVQKICAgTmFtZV9EZWZp bml0ZSAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMTM7 CiAgIE5hbWVfRGVsdGEgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgMzE0OwogICBOYW1lX0Rlbm9ybSAgICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDMxNTsKICAgTmFtZV9EaWdpdHMgICAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMTY7CiAgIE5hbWVfRWxhYm9yYXRl ZCAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzE3OyAtLSBH TkFUCiAgIE5hbWVfRW1heCAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMzE4OyAtLSBBZGEgODMKICAgTmFtZV9FbnVtX1JlcCAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMTk7IC0tIEdOQVQKICAgTmFtZV9F cHNpbG9uICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAz MjA7IC0tIEFkYSA4MwogICBOYW1lX0V4cG9uZW50ICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDMyMTsKICAgTmFtZV9FeHRlcm5hbF9UYWcgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMjI7CiAgIE5hbWVfRmlyc3QgICAg ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzIzOwogICBO YW1lX0ZpcnN0X0JpdCAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDMyNDsKICAgTmFtZV9GaXhlZF9WYWx1ZSAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAzMjU7IC0tIEdOQVQKICAgTmFtZV9Gb3JlICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMjY7CiAgIE5hbWVfSGFzX0Rp c2NyaW1pbmFudHMgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzI3OyAt LSBHTkFUCiAgIE5hbWVfSWRlbnRpdHkgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMzI4OwogICBOYW1lX0ltZyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMyOTsgLS0gR05BVAogICBOYW1lX0ludGVnZXJf VmFsdWUgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMzMDsgLS0g R05BVAogICBOYW1lX0xhcmdlICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDMzMTsgLS0gQWRhIDgzCiAgIE5hbWVfTGFzdCAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzMyOwogICBOYW1lX0xhc3RfQml0 ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMzMzsKICAg TmFtZV9MZWFkaW5nX1BhcnQgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAzMzQ7CiAgIE5hbWVfTGVuZ3RoICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMzM1OwogICBOYW1lX01hY2hpbmVfRW1heCAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDMzNjsKICAgTmFtZV9NYWNoaW5lX0VtaW4g ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzMzc7CiAgIE5hbWVf TWFjaGluZV9NYW50aXNzYSAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg MzM4OwogICBOYW1lX01hY2hpbmVfT3ZlcmZsb3dzICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDMzOTsKICAgTmFtZV9NYWNoaW5lX1JhZGl4ICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNDA7CiAgIE5hbWVfTWFjaGluZV9Sb3VuZHMgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzQxOwogICBOYW1lX01hY2hp bmVfU2l6ZSAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM0Mjsg LS0gR05BVAogICBOYW1lX01hbnRpc3NhICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDM0MzsgLS0gQWRhIDgzCiAgIE5hbWVfTWF4X0ludGVycnVwdF9Qcmlv cml0eSAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzQ0OyAtLSBHTkFUCiAgIE5h bWVfTWF4X1ByaW9yaXR5ICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBO ICsgMzQ1OyAtLSBHTkFUCiAgIE5hbWVfTWF4X1NpemVfSW5fU3RvcmFnZV9FbGVtZW50cyAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzQ2OwogICBOYW1lX01heGltdW1fQWxpZ25tZW50ICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM0NzsgLS0gR05BVAogICBOYW1l X01lY2hhbmlzbV9Db2RlICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiAr IDM0ODsgLS0gR05BVAogICBOYW1lX01vZGVsX0VtaW4gICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDM0OTsKICAgTmFtZV9Nb2RlbF9FcHNpbG9uICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNTA7CiAgIE5hbWVfTW9kZWxfTWFu dGlzc2EgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzUxOwogICBO YW1lX01vZGVsX1NtYWxsICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDM1MjsKICAgTmFtZV9Nb2R1bHVzICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAzNTM7CiAgIE5hbWVfTnVsbF9QYXJhbWV0ZXIgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzU0OyAtLSBHTkFUCiAgIE5hbWVfT2JqZWN0 X1NpemUgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzU1OyAt LSBHTkFUCiAgIE5hbWVfUGFydGl0aW9uX0lEICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMzU2OwogICBOYW1lX1Bhc3NlZF9CeV9SZWZlcmVuY2UgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM1NzsgLS0gR05BVAogICBOYW1lX1BvcyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM1ODsKICAg TmFtZV9Qb3NpdGlvbiAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAzNTk7CiAgIE5hbWVfUmFuZ2UgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgMzYwOwogICBOYW1lX1JhbmdlX0xlbmd0aCAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM2MTsgLS0gR05BVAogICBOYW1lX1JvdW5k ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM2MjsK ICAgTmFtZV9TYWZlX0VtYXggICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyAzNjM7IC0tIEFkYSA4MwogICBOYW1lX1NhZmVfRmlyc3QgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM2NDsKICAgTmFtZV9TYWZlX0xhcmdlICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNjU7IC0tIEFkYSA4 MwogICBOYW1lX1NhZmVfTGFzdCAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDM2NjsKICAgTmFtZV9TYWZlX1NtYWxsICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNjc7IC0tIEFkYSA4MwogICBOYW1lX1NjYWxlICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM2ODsKICAgTmFt ZV9TY2FsaW5nICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAzNjk7CiAgIE5hbWVfU2lnbmVkX1plcm9zICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMzcwOwogICBOYW1lX1NpemUgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM3MTsKICAgTmFtZV9TbWFsbCAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNzI7CiAgIE5hbWVfU3Rv cmFnZV9TaXplICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzcz OwogICBOYW1lX1N0b3JhZ2VfVW5pdCAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDM3NDsgLS0gR05BVAogICBOYW1lX1RhZyAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM3NTsKICAgTmFtZV9UZXJtaW5hdGVkICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzNzY7CiAgIE5hbWVf VGljayAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg Mzc3OyAtLSBHTkFUCiAgIE5hbWVfVG9fQWRkcmVzcyAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgMzc4OyAtLSBHTkFUCiAgIE5hbWVfVHlwZV9DbGFzcyAgICAg ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzc5OyAtLSBHTkFUCiAg IE5hbWVfVUVUX0FkZHJlc3MgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgMzgwOyAtLSBHTkFUCiAgIE5hbWVfVW5iaWFzZWRfUm91bmRpbmcgICAgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzgxOwogICBOYW1lX1VuY2hlY2tlZF9BY2Nlc3Mg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM4MjsKICAgTmFtZV9Vbml2 ZXJzYWxfTGl0ZXJhbF9TdHJpbmcgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzODM7 IC0tIEdOQVQKICAgTmFtZV9VbnJlc3RyaWN0ZWRfQWNjZXNzICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyAzODQ7IC0tIEdOQVQKICAgTmFtZV9WQURTX1NpemUgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzODU7IC0tIEdOQVQKICAgTmFt ZV9WYWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyAzODY7CiAgIE5hbWVfVmFsaWQgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgMzg3OwogICBOYW1lX1ZhbHVlX1NpemUgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM4ODsgLS0gR05BVAogICBOYW1lX1ZlcnNpb24g ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM4OTsKICAg TmFtZV9XY2hhcl9UX1NpemUgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyAzOTA7IC0tIEdOQVQKICAgTmFtZV9XaWRlX1dpZHRoICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzOTE7CiAgIE5hbWVfV2lkdGggICAgICAgICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzkyOwogICBOYW1lX1dvcmRf U2l6ZSAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM5Mzsg LS0gR05BVAoKICAgLS0gIEF0dHJpYnV0ZXMgdGhhdCBkZXNpZ25hdGUgYXR0cmlidXRlcyByZXR1 cm5pbmcgcmVuYW1hYmxlIGZ1bmN0aW9ucywKICAgLS0gIGkuZS4gZnVuY3Rpb25zIHRoYXQgcmV0 dXJuIG90aGVyIHRoYW4gYSB1bml2ZXJzYWwgdmFsdWUuCgogICBGaXJzdF9SZW5hbWFibGVfRnVu Y3Rpb25fQXR0cmlidXRlICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM5NDsKICAgTmFtZV9B ZGphY2VudCAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAz OTQ7CiAgIE5hbWVfQ2VpbGluZyAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgMzk1OwogICBOYW1lX0NvcHlfU2lnbiAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDM5NjsKICAgTmFtZV9GbG9vciAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyAzOTc7CiAgIE5hbWVfRnJhY3Rp b24gICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgMzk4Owog ICBOYW1lX0ltYWdlICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDM5OTsKICAgTmFtZV9JbnB1dCAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA0MDA7CiAgIE5hbWVfTWFjaGluZSAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDAxOwogICBOYW1lX01heCAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQwMjsKICAgTmFt ZV9NaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA0MDM7CiAgIE5hbWVfTW9kZWwgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgNDA0OwogICBOYW1lX1ByZWQgICAgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQwNTsKICAgTmFtZV9SZW1haW5kZXIgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MDY7CiAgIE5hbWVfUm91 bmRpbmcgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDA3 OwogICBOYW1lX1N1Y2MgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDQwODsKICAgTmFtZV9UcnVuY2F0aW9uICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MDk7CiAgIE5hbWVfVmFsdWUgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDEwOwogICBOYW1lX1dpZGVfSW1h Z2UgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQxMTsKICAg TmFtZV9XaWRlX1ZhbHVlICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyA0MTI7CiAgIExhc3RfUmVuYW1hYmxlX0Z1bmN0aW9uX0F0dHJpYnV0ZSAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgNDEyOwoKICAgLS0gIEF0dHJpYnV0ZXMgdGhhdCBkZXNpZ25hdGUg cHJvY2VkdXJlcwoKICAgRmlyc3RfUHJvY2VkdXJlX0F0dHJpYnV0ZSAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA0MTM7CiAgIE5hbWVfT3V0cHV0ICAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDEzOwogICBOYW1lX1JlYWQgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQxNDsKICAgTmFt ZV9Xcml0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA0MTU7CiAgIExhc3RfUHJvY2VkdXJlX0F0dHJpYnV0ZSAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgNDE1OwoKICAgLS0gIFJlbWFpbmluZyBhdHRyaWJ1dGVzIGFyZSBvbmVz IHRoYXQgcmV0dXJuIGVudGl0aWVzCgogICBGaXJzdF9FbnRpdHlfQXR0cmlidXRlX05hbWUgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQxNjsKICAgTmFtZV9FbGFiX0JvZHkgICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MTY7IC0tIEdOQVQK ICAgTmFtZV9FbGFiX1NwZWMgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyA0MTc7IC0tIEdOQVQKICAgTmFtZV9TdG9yYWdlX1Bvb2wgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MTg7CgogICAtLSAgVGhlc2UgYXR0cmlidXRl cyBhcmUgdGhlIG9uZXMgdGhhdCByZXR1cm4gdHlwZXMKCiAgIEZpcnN0X1R5cGVfQXR0cmlidXRl X05hbWUgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDE5OwogICBOYW1lX0Jh c2UgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQx OTsKICAgTmFtZV9DbGFzcyAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyA0MjA7CiAgIExhc3RfVHlwZV9BdHRyaWJ1dGVfTmFtZSAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDIwOwogICBMYXN0X0VudGl0eV9BdHRyaWJ1dGVfTmFt ZSAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQyMDsKICAgTGFzdF9BdHRyaWJ1 dGVfTmFtZSAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MjA7Cgog ICAtLSAgTmFtZXMgb2YgcmVjb2duaXplZCBsb2NraW5nIHBvbGljeSBpZGVudGlmaWVycwoKICAg LS0gIE5vdGU6IHBvbGljaWVzIGFyZSBpZGVudGlmaWVkIGJ5IHRoZSBmaXJzdCBjaGFyYWN0ZXIg b2YgdGhlCiAgIC0tICBuYW1lIChlLmcuIEMgZm9yIENlaWxpbmdfTG9ja2luZykuIElmIG5ldyBw b2xpY3kgbmFtZXMgYXJlIGFkZGVkLAogICAtLSAgdGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJl IGRpc3RpbmN0LgoKICAgRmlyc3RfTG9ja2luZ19Qb2xpY3lfTmFtZSAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA0MjE7CiAgIE5hbWVfQ2VpbGluZ19Mb2NraW5nICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDIxOwogICBOYW1lX0luaGVyaXRhbmNl X0xvY2tpbmcgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQyMjsKICAgTGFz dF9Mb2NraW5nX1BvbGljeV9OYW1lICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA0MjI7CgogICAtLSAgTmFtZXMgb2YgcmVjb2duaXplZCBxdWV1aW5nIHBvbGljeSBpZGVudGlm aWVycy4KCiAgIC0tICBOb3RlOiBwb2xpY2llcyBhcmUgaWRlbnRpZmllZCBieSB0aGUgZmlyc3Qg Y2hhcmFjdGVyIG9mIHRoZQogICAtLSAgbmFtZSAoZS5nLiBGIGZvciBGSUZPX1F1ZXVpbmcpLiBJ ZiBuZXcgcG9saWN5IG5hbWVzIGFyZSBhZGRlZCwKICAgLS0gIHRoZSBmaXJzdCBjaGFyYWN0ZXIg bXVzdCBiZSBkaXN0aW5jdC4KCiAgIEZpcnN0X1F1ZXVpbmdfUG9saWN5X05hbWUgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDIzOwogICBOYW1lX0ZJRk9fUXVldWluZyAgICAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQyMzsKICAgTmFtZV9Qcmlv cml0eV9RdWV1aW5nICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MjQ7 CiAgIExhc3RfUXVldWluZ19Qb2xpY3lfTmFtZSAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgNDI0OwoKICAgLS0gIE5hbWVzIG9mIHJlY29nbml6ZWQgdGFzayBkaXNwYXRjaGlu ZyBwb2xpY3kgaWRlbnRpZmllcnMKCiAgIC0tICBOb3RlOiBwb2xpY2llcyBhcmUgaWRlbnRpZmll ZCBieSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZQogICAtLSAgbmFtZSAoZS5nLiBGIGZvciBG SUZPX1dJdGhpbm5fUHJpb3JpdGllcykuIElmIG5ldyBwb2xpY3kgbmFtZXMKICAgLS0gIGFyZSBh ZGRlZCwgdGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGRpc3RpbmN0LgoKICAgRmlyc3RfVGFz a19EaXNwYXRjaGluZ19Qb2xpY3lfTmFtZSAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MjU7 CiAgIE5hbWVfRmlmb19XaXRoaW5fUHJpb3JpdGllcyAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgNDI1OwogICBMYXN0X1Rhc2tfRGlzcGF0Y2hpbmdfUG9saWN5X05hbWUgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDQyNTsKCiAgIC0tICBOYW1lcyBvZiByZWNvZ25pemVkIGNo ZWNrcyBmb3IgcHJhZ21hIFN1cHByZXNzCgogICBGaXJzdF9DaGVja19OYW1lICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQyNjsKICAgTmFtZV9BY2Nlc3NfQ2hl Y2sgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MjY7CiAgIE5h bWVfQWNjZXNzaWJpbGl0eV9DaGVjayAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBO ICsgNDI3OwogICBOYW1lX0Rpc2NyaW1pbmFudF9DaGVjayAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDQyODsKICAgTmFtZV9EaXZpc2lvbl9DaGVjayAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0Mjk7CiAgIE5hbWVfRWxhYm9yYXRpb25fQ2hl Y2sgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDMwOwogICBOYW1lX0lu ZGV4X0NoZWNrICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQz MTsKICAgTmFtZV9MZW5ndGhfQ2hlY2sgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyA0MzI7CiAgIE5hbWVfT3ZlcmZsb3dfQ2hlY2sgICAgICAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDMzOwogICBOYW1lX1JhbmdlX0NoZWNrICAgICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQzNDsKICAgTmFtZV9TdG9yYWdl X0NoZWNrICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0MzU7CiAg IE5hbWVfVGFnX0NoZWNrICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgNDM2OwogICBOYW1lX0FsbF9DaGVja3MgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDQzNzsKICAgTGFzdF9DaGVja19OYW1lICAgICAgICAgICAgICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0Mzc7CgogICAtLSAgTmFtZXMgY29ycmVz cG9uZGluZyB0byByZXNlcnZlZCBrZXl3b3JkcywgZXhjbHVkaW5nIHRob3NlIGFscmVhZHkKICAg LS0gIGRlY2xhcmVkIGluIHRoZSBhdHRyaWJ1dGUgbGlzdCAoQWNjZXNzLCBEZWx0YSwgRGlnaXRz LCBSYW5nZSkuCgogICBOYW1lX0Fib3J0ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDQzODsKICAgTmFtZV9BYnMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0Mzk7CiAgIE5hbWVfQWNjZXB0ICAgICAg ICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDQwOwogICBOYW1l X0FuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiAr IDQ0MTsKICAgTmFtZV9BbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBO YW1lX0lkIDo9IE4gKyA0NDI7CiAgIE5hbWVfQXJyYXkgICAgICAgICAgICAgICAgICAgICAgICAg IDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDQzOwogICBOYW1lX0F0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ0NDsKICAgTmFtZV9CZWdp biAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0NDU7 CiAgIE5hbWVfQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgNDQ2OwogICBOYW1lX0Nhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDQ0NzsKICAgTmFtZV9Db25zdGFudCAgICAgICAgICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0NDg7CiAgIE5hbWVfRGVjbGFyZSAg ICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDQ5OwogICBO YW1lX0RlbGF5ICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDQ1MDsKICAgTmFtZV9EbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyA0NTE7CiAgIE5hbWVfRWxzZSAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDUyOwogICBOYW1lX0Vsc2lmICAgICAgICAg ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ1MzsKICAgTmFtZV9F bmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0 NTQ7CiAgIE5hbWVfRW50cnkgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgNDU1OwogICBOYW1lX0V4Y2VwdGlvbiAgICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ1NjsKICAgTmFtZV9FeGl0ICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0NTc7CiAgIE5hbWVfRm9yICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDU4Owog ICBOYW1lX0Z1bmN0aW9uICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDQ1OTsKICAgTmFtZV9HZW5lcmljICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA0NjA7CiAgIE5hbWVfR290byAgICAgICAgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDYxOwogICBOYW1lX0lmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ2MjsKICAgTmFt ZV9JbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA0NjM7CiAgIE5hbWVfSXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgNDY0OwogICBOYW1lX0xpbWl0ZWQgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ2NTsKICAgTmFtZV9Mb29wICAgICAgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0NjY7CiAgIE5hbWVfTW9k ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDY3 OwogICBOYW1lX05ldyAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDQ2ODsKICAgTmFtZV9Ob3QgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyA0Njk7CiAgIE5hbWVfTnVsbCAgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDcwOwogICBOYW1lX09mICAgICAg ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ3MTsKICAg TmFtZV9PciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyA0NzI7CiAgIE5hbWVfT3RoZXJzICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgNDczOwogICBOYW1lX091dCAgICAgICAgICAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ3NDsKICAgTmFtZV9QYWNrYWdlICAgICAg ICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0NzU7CiAgIE5hbWVf UHJhZ21hICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg NDc2OwogICBOYW1lX1ByaXZhdGUgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDQ3NzsKICAgTmFtZV9Qcm9jZWR1cmUgICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0Nzg7CiAgIE5hbWVfUmFpc2UgICAgICAgICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDc5OwogICBOYW1lX1JlY29y ZCAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ4MDsK ICAgTmFtZV9SZW0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyA0ODE7CiAgIE5hbWVfUmVuYW1lcyAgICAgICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgNDgyOwogICBOYW1lX1JldHVybiAgICAgICAgICAgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ4MzsKICAgTmFtZV9SZXZlcnNlICAg ICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0ODQ7CiAgIE5h bWVfU2VsZWN0ICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBO ICsgNDg1OwogICBOYW1lX1NlcGFyYXRlICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDQ4NjsKICAgTmFtZV9TdWJ0eXBlICAgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0ODc7CiAgIE5hbWVfVGFzayAgICAgICAgICAg ICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDg4OwogICBOYW1lX1Rl cm1pbmF0ZSAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ4 OTsKICAgTmFtZV9UaGVuICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1l X0lkIDo9IE4gKyA0OTA7CiAgIE5hbWVfVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgIDog Y29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDkxOwogICBOYW1lX1VzZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDQ5MjsKICAgTmFtZV9XaGVuICAg ICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0OTM7CiAg IE5hbWVfV2hpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6 PSBOICsgNDk0OwogICBOYW1lX1dpdGggICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0 YW50IE5hbWVfSWQgOj0gTiArIDQ5NTsKICAgTmFtZV9Yb3IgICAgICAgICAgICAgICAgICAgICAg ICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0OTY7CgogICAtLSAgTmFtZXMgb2YgaW50 cmluc2ljIHN1YnByb2dyYW1zCgogICAtLSAgTm90ZTogQXNtIGlzIG1pc3NpbmcgZnJvbSB0aGlz IGxpc3QsIHNpbmNlIEFzbSBpcyBhIGxlZ2l0aW1hdGUKICAgLS0gIGNvbnZlbnRpb24gbmFtZS4K CiAgIEZpcnN0X0ludHJpbnNpY19OYW1lICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9J ZCA6PSBOICsgNDk3OwogICBOYW1lX0RpdmlkZSAgICAgICAgICAgICAgICAgICAgICAgICA6IGNv bnN0YW50IE5hbWVfSWQgOj0gTiArIDQ5NzsKICAgTmFtZV9FbmNsb3NpbmdfRW50aXR5ICAgICAg ICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA0OTg7CiAgIE5hbWVfRXhjZXB0aW9u X0luZm9ybWF0aW9uICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNDk5OwogICBO YW1lX0V4Y2VwdGlvbl9NZXNzYWdlICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0g TiArIDUwMDsKICAgTmFtZV9FeGNlcHRpb25fTmFtZSAgICAgICAgICAgICAgICAgOiBjb25zdGFu dCBOYW1lX0lkIDo9IE4gKyA1MDE7CiAgIE5hbWVfRmlsZSAgICAgICAgICAgICAgICAgICAgICAg ICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTAyOwogICBOYW1lX0ltcG9ydF9BZGRyZXNz ICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUwMzsKICAgTmFtZV9J bXBvcnRfTGFyZ2VzdF9WYWx1ZSAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1 MDQ7CiAgIE5hbWVfSW1wb3J0X1ZhbHVlICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFt ZV9JZCA6PSBOICsgNTA1OwogICBOYW1lX0lzX05lZ2F0aXZlICAgICAgICAgICAgICAgICAgICA6 IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUwNjsKICAgTmFtZV9MaW5lICAgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MDc7CiAgIE5hbWVfUm90YXRl X0xlZnQgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTA4Owog ICBOYW1lX1JvdGF0ZV9SaWdodCAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDUwOTsKICAgTmFtZV9TaGlmdF9MZWZ0ICAgICAgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA1MTA7CiAgIE5hbWVfU2hpZnRfUmlnaHQgICAgICAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTExOwogICBOYW1lX1NoaWZ0X1JpZ2h0 X0FyaXRobWV0aWMgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUxMjsKICAgTmFt ZV9Tb3VyY2VfTG9jYXRpb24gICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA1MTM7CiAgIE5hbWVfVW5jaGVja2VkX0NvbnZlcnNpb24gICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgNTE0OwogICBOYW1lX1VuY2hlY2tlZF9EZWFsbG9jYXRpb24gICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUxNTsKICAgTGFzdF9JbnRyaW5zaWNfTmFtZSAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MTU7CgogICAtLSAgUmVz ZXJ2ZWQgd29yZHMgdXNlZCBvbmx5IGluIEFkYSA5NQoKICAgRmlyc3RfOTVfUmVzZXJ2ZWRfV29y ZCAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MTY7CiAgIE5hbWVfQWJz dHJhY3QgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTE2 OwogICBOYW1lX0FsaWFzZWQgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDUxNzsKICAgTmFtZV9Qcm90ZWN0ZWQgICAgICAgICAgICAgICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MTg7CiAgIE5hbWVfVW50aWwgICAgICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTE5OwogICBOYW1lX1JlcXVldWUg ICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUyMDsKICAg TmFtZV9UYWdnZWQgICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyA1MjE7CiAgIExhc3RfOTVfUmVzZXJ2ZWRfV29yZCAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgNTIxOwoKICAgc3VidHlwZSBBZGFfOTVfUmVzZXJ2ZWRfV29yZHMg aXMKICAgICBOYW1lX0lkIHJhbmdlIEZpcnN0Xzk1X1Jlc2VydmVkX1dvcmQgLi4gTGFzdF85NV9S ZXNlcnZlZF9Xb3JkOwoKICAgLS0gIE1pc2NlbGxhbmVvdXMgbmFtZXMgdXNlZCBpbiBzZW1hbnRp YyBjaGVja2luZwoKICAgTmFtZV9SYWlzZV9FeGNlcHRpb24gICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA1MjI7CgogICAtLSAgQWRkaXRpb25hbCByZXNlcnZlZCB3b3Jk cyBpbiBHTkFUIFByb2plY3QgRmlsZXMKICAgLS0gIE5vdGUgdGhhdCBOYW1lX0V4dGVybmFsIGlz IGFscmVhZHkgcHJldmlvdXNseSBkZWNsYXJlZAoKICAgTmFtZV9CaW5kZXIgICAgICAgICAgICAg ICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MjM7CiAgIE5hbWVfQnVpbGRl ciAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTI0Owog ICBOYW1lX0NvbXBpbGVyICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQg Oj0gTiArIDUyNTsKICAgTmFtZV9Dcm9zc19SZWZlcmVuY2UgICAgICAgICAgICAgICAgOiBjb25z dGFudCBOYW1lX0lkIDo9IE4gKyA1MjY7CiAgIE5hbWVfRGVmYXVsdF9Td2l0Y2hlcyAgICAgICAg ICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTI3OwogICBOYW1lX0V4ZWNfRGlyICAg ICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUyODsKICAgTmFt ZV9FeHRlbmRzICAgICAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4g KyA1Mjk7CiAgIE5hbWVfRmluZGVyICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQg TmFtZV9JZCA6PSBOICsgNTMwOwogICBOYW1lX0duYXRscyAgICAgICAgICAgICAgICAgICAgICAg ICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUzMTsKICAgTmFtZV9HbmF0c3R1YiAgICAgICAg ICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MzI7CiAgIE5hbWVfSW1w bGVtZW50YXRpb24gICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTMz OwogICBOYW1lX0ltcGxlbWVudGF0aW9uX0V4Y2VwdGlvbnMgICAgICA6IGNvbnN0YW50IE5hbWVf SWQgOj0gTiArIDUzNDsKICAgTmFtZV9JbXBsZW1lbnRhdGlvbl9TdWZmaXggICAgICAgICAgOiBj b25zdGFudCBOYW1lX0lkIDo9IE4gKyA1MzU7CiAgIE5hbWVfTGFuZ3VhZ2VzICAgICAgICAgICAg ICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTM2OwogICBOYW1lX0xpYnJhcnlf RGlyICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDUzNzsKICAg TmFtZV9MaWJyYXJ5X0VsYWJvcmF0aW9uICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9 IE4gKyA1Mzg7CiAgIE5hbWVfTGlicmFyeV9LaW5kICAgICAgICAgICAgICAgICAgIDogY29uc3Rh bnQgTmFtZV9JZCA6PSBOICsgNTM5OwogICBOYW1lX0xpYnJhcnlfTmFtZSAgICAgICAgICAgICAg ICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDU0MDsKICAgTmFtZV9MaWJyYXJ5X1ZlcnNp b24gICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1NDE7CiAgIE5hbWVf TGlua2VyICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsg NTQyOwogICBOYW1lX05hbWluZyAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5h bWVfSWQgOj0gTiArIDU0MzsKICAgTmFtZV9PYmplY3RfRGlyICAgICAgICAgICAgICAgICAgICAg OiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1NDQ7CiAgIE5hbWVfUHJvamVjdCAgICAgICAgICAg ICAgICAgICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBOICsgNTQ1OwogICBOYW1lX1NlcGFy YXRlX1N1ZmZpeCAgICAgICAgICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDU0NjsK ICAgTmFtZV9Tb3VyY2VfRGlycyAgICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lk IDo9IE4gKyA1NDc7CiAgIE5hbWVfU291cmNlX0ZpbGVzICAgICAgICAgICAgICAgICAgIDogY29u c3RhbnQgTmFtZV9JZCA6PSBOICsgNTQ4OwogICBOYW1lX1NvdXJjZV9MaXN0X0ZpbGUgICAgICAg ICAgICAgICA6IGNvbnN0YW50IE5hbWVfSWQgOj0gTiArIDU0OTsKICAgTmFtZV9TcGVjaWZpY2F0 aW9uICAgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1NTA7CiAgIE5h bWVfU3BlY2lmaWNhdGlvbl9FeGNlcHRpb25zICAgICAgIDogY29uc3RhbnQgTmFtZV9JZCA6PSBO ICsgNTUxOwogICBOYW1lX1NwZWNpZmljYXRpb25fU3VmZml4ICAgICAgICAgICA6IGNvbnN0YW50 IE5hbWVfSWQgOj0gTiArIDU1MjsKICAgTmFtZV9Td2l0Y2hlcyAgICAgICAgICAgICAgICAgICAg ICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1NTM7CiAgIC0tICBNYXJrIGxhc3QgZGVmaW5l ZCBuYW1lIGZvciBjb25zaXN0ZW5jeSBjaGVjayBpbiBTbmFtZXMgYm9keQoKICAgTGFzdF9QcmVk ZWZpbmVkX05hbWUgICAgICAgICAgICAgICAgOiBjb25zdGFudCBOYW1lX0lkIDo9IE4gKyA1NTM7 CgogICBzdWJ0eXBlIEFueV9PcGVyYXRvcl9OYW1lIGlzIE5hbWVfSWQgcmFuZ2UKICAgICBGaXJz dF9PcGVyYXRvcl9OYW1lIC4uIExhc3RfT3BlcmF0b3JfTmFtZTsKCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAtLSBBdHRyaWJ1dGUgSUQgRGVmaW5pdGlvbnMgLS0KICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIEF0dHJpYnV0ZV9JZCBpcyAoCiAg ICAgIEF0dHJpYnV0ZV9BYm9ydF9TaWduYWwsCiAgICAgIEF0dHJpYnV0ZV9BY2Nlc3MsCiAgICAg IEF0dHJpYnV0ZV9BZGRyZXNzLAogICAgICBBdHRyaWJ1dGVfQWRkcmVzc19TaXplLAogICAgICBB dHRyaWJ1dGVfQWZ0LAogICAgICBBdHRyaWJ1dGVfQWxpZ25tZW50LAogICAgICBBdHRyaWJ1dGVf QXNtX0lucHV0LAogICAgICBBdHRyaWJ1dGVfQXNtX091dHB1dCwKICAgICAgQXR0cmlidXRlX0FT VF9FbnRyeSwKICAgICAgQXR0cmlidXRlX0JpdCwKICAgICAgQXR0cmlidXRlX0JpdF9PcmRlciwK ICAgICAgQXR0cmlidXRlX0JpdF9Qb3NpdGlvbiwKICAgICAgQXR0cmlidXRlX0JvZHlfVmVyc2lv biwKICAgICAgQXR0cmlidXRlX0NhbGxhYmxlLAogICAgICBBdHRyaWJ1dGVfQ2FsbGVyLAogICAg ICBBdHRyaWJ1dGVfQ29kZV9BZGRyZXNzLAogICAgICBBdHRyaWJ1dGVfQ29tcG9uZW50X1NpemUs CiAgICAgIEF0dHJpYnV0ZV9Db21wb3NlLAogICAgICBBdHRyaWJ1dGVfQ29uc3RyYWluZWQsCiAg ICAgIEF0dHJpYnV0ZV9Db3VudCwKICAgICAgQXR0cmlidXRlX0RlZmF1bHRfQml0X09yZGVyLAog ICAgICBBdHRyaWJ1dGVfRGVmaW5pdGUsCiAgICAgIEF0dHJpYnV0ZV9EZWx0YSwKICAgICAgQXR0 cmlidXRlX0Rlbm9ybSwKICAgICAgQXR0cmlidXRlX0RpZ2l0cywKICAgICAgQXR0cmlidXRlX0Vs YWJvcmF0ZWQsCiAgICAgIEF0dHJpYnV0ZV9FbWF4LAogICAgICBBdHRyaWJ1dGVfRW51bV9SZXAs CiAgICAgIEF0dHJpYnV0ZV9FcHNpbG9uLAogICAgICBBdHRyaWJ1dGVfRXhwb25lbnQsCiAgICAg IEF0dHJpYnV0ZV9FeHRlcm5hbF9UYWcsCiAgICAgIEF0dHJpYnV0ZV9GaXJzdCwKICAgICAgQXR0 cmlidXRlX0ZpcnN0X0JpdCwKICAgICAgQXR0cmlidXRlX0ZpeGVkX1ZhbHVlLAogICAgICBBdHRy aWJ1dGVfRm9yZSwKICAgICAgQXR0cmlidXRlX0hhc19EaXNjcmltaW5hbnRzLAogICAgICBBdHRy aWJ1dGVfSWRlbnRpdHksCiAgICAgIEF0dHJpYnV0ZV9JbWcsCiAgICAgIEF0dHJpYnV0ZV9JbnRl Z2VyX1ZhbHVlLAogICAgICBBdHRyaWJ1dGVfTGFyZ2UsCiAgICAgIEF0dHJpYnV0ZV9MYXN0LAog ICAgICBBdHRyaWJ1dGVfTGFzdF9CaXQsCiAgICAgIEF0dHJpYnV0ZV9MZWFkaW5nX1BhcnQsCiAg ICAgIEF0dHJpYnV0ZV9MZW5ndGgsCiAgICAgIEF0dHJpYnV0ZV9NYWNoaW5lX0VtYXgsCiAgICAg IEF0dHJpYnV0ZV9NYWNoaW5lX0VtaW4sCiAgICAgIEF0dHJpYnV0ZV9NYWNoaW5lX01hbnRpc3Nh LAogICAgICBBdHRyaWJ1dGVfTWFjaGluZV9PdmVyZmxvd3MsCiAgICAgIEF0dHJpYnV0ZV9NYWNo aW5lX1JhZGl4LAogICAgICBBdHRyaWJ1dGVfTWFjaGluZV9Sb3VuZHMsCiAgICAgIEF0dHJpYnV0 ZV9NYWNoaW5lX1NpemUsCiAgICAgIEF0dHJpYnV0ZV9NYW50aXNzYSwKICAgICAgQXR0cmlidXRl X01heF9JbnRlcnJ1cHRfUHJpb3JpdHksCiAgICAgIEF0dHJpYnV0ZV9NYXhfUHJpb3JpdHksCiAg ICAgIEF0dHJpYnV0ZV9NYXhfU2l6ZV9Jbl9TdG9yYWdlX0VsZW1lbnRzLAogICAgICBBdHRyaWJ1 dGVfTWF4aW11bV9BbGlnbm1lbnQsCiAgICAgIEF0dHJpYnV0ZV9NZWNoYW5pc21fQ29kZSwKICAg ICAgQXR0cmlidXRlX01vZGVsX0VtaW4sCiAgICAgIEF0dHJpYnV0ZV9Nb2RlbF9FcHNpbG9uLAog ICAgICBBdHRyaWJ1dGVfTW9kZWxfTWFudGlzc2EsCiAgICAgIEF0dHJpYnV0ZV9Nb2RlbF9TbWFs bCwKICAgICAgQXR0cmlidXRlX01vZHVsdXMsCiAgICAgIEF0dHJpYnV0ZV9OdWxsX1BhcmFtZXRl ciwKICAgICAgQXR0cmlidXRlX09iamVjdF9TaXplLAogICAgICBBdHRyaWJ1dGVfUGFydGl0aW9u X0lELAogICAgICBBdHRyaWJ1dGVfUGFzc2VkX0J5X1JlZmVyZW5jZSwKICAgICAgQXR0cmlidXRl X1BvcywKICAgICAgQXR0cmlidXRlX1Bvc2l0aW9uLAogICAgICBBdHRyaWJ1dGVfUmFuZ2UsCiAg ICAgIEF0dHJpYnV0ZV9SYW5nZV9MZW5ndGgsCiAgICAgIEF0dHJpYnV0ZV9Sb3VuZCwKICAgICAg QXR0cmlidXRlX1NhZmVfRW1heCwKICAgICAgQXR0cmlidXRlX1NhZmVfRmlyc3QsCiAgICAgIEF0 dHJpYnV0ZV9TYWZlX0xhcmdlLAogICAgICBBdHRyaWJ1dGVfU2FmZV9MYXN0LAogICAgICBBdHRy aWJ1dGVfU2FmZV9TbWFsbCwKICAgICAgQXR0cmlidXRlX1NjYWxlLAogICAgICBBdHRyaWJ1dGVf U2NhbGluZywKICAgICAgQXR0cmlidXRlX1NpZ25lZF9aZXJvcywKICAgICAgQXR0cmlidXRlX1Np emUsCiAgICAgIEF0dHJpYnV0ZV9TbWFsbCwKICAgICAgQXR0cmlidXRlX1N0b3JhZ2VfU2l6ZSwK ICAgICAgQXR0cmlidXRlX1N0b3JhZ2VfVW5pdCwKICAgICAgQXR0cmlidXRlX1RhZywKICAgICAg QXR0cmlidXRlX1Rlcm1pbmF0ZWQsCiAgICAgIEF0dHJpYnV0ZV9UaWNrLAogICAgICBBdHRyaWJ1 dGVfVG9fQWRkcmVzcywKICAgICAgQXR0cmlidXRlX1R5cGVfQ2xhc3MsCiAgICAgIEF0dHJpYnV0 ZV9VRVRfQWRkcmVzcywKICAgICAgQXR0cmlidXRlX1VuYmlhc2VkX1JvdW5kaW5nLAogICAgICBB dHRyaWJ1dGVfVW5jaGVja2VkX0FjY2VzcywKICAgICAgQXR0cmlidXRlX1VuaXZlcnNhbF9MaXRl cmFsX1N0cmluZywKICAgICAgQXR0cmlidXRlX1VucmVzdHJpY3RlZF9BY2Nlc3MsCiAgICAgIEF0 dHJpYnV0ZV9WQURTX1NpemUsCiAgICAgIEF0dHJpYnV0ZV9WYWwsCiAgICAgIEF0dHJpYnV0ZV9W YWxpZCwKICAgICAgQXR0cmlidXRlX1ZhbHVlX1NpemUsCiAgICAgIEF0dHJpYnV0ZV9WZXJzaW9u LAogICAgICBBdHRyaWJ1dGVfV2NoYXJfVF9TaXplLAogICAgICBBdHRyaWJ1dGVfV2lkZV9XaWR0 aCwKICAgICAgQXR0cmlidXRlX1dpZHRoLAogICAgICBBdHRyaWJ1dGVfV29yZF9TaXplLAoKICAg ICAgLS0gIEF0dHJpYnV0ZXMgZGVzaWduYXRpbmcgcmVuYW1hYmxlIGZ1bmN0aW9ucwoKICAgICAg QXR0cmlidXRlX0FkamFjZW50LAogICAgICBBdHRyaWJ1dGVfQ2VpbGluZywKICAgICAgQXR0cmli dXRlX0NvcHlfU2lnbiwKICAgICAgQXR0cmlidXRlX0Zsb29yLAogICAgICBBdHRyaWJ1dGVfRnJh Y3Rpb24sCiAgICAgIEF0dHJpYnV0ZV9JbWFnZSwKICAgICAgQXR0cmlidXRlX0lucHV0LAogICAg ICBBdHRyaWJ1dGVfTWFjaGluZSwKICAgICAgQXR0cmlidXRlX01heCwKICAgICAgQXR0cmlidXRl X01pbiwKICAgICAgQXR0cmlidXRlX01vZGVsLAogICAgICBBdHRyaWJ1dGVfUHJlZCwKICAgICAg QXR0cmlidXRlX1JlbWFpbmRlciwKICAgICAgQXR0cmlidXRlX1JvdW5kaW5nLAogICAgICBBdHRy aWJ1dGVfU3VjYywKICAgICAgQXR0cmlidXRlX1RydW5jYXRpb24sCiAgICAgIEF0dHJpYnV0ZV9W YWx1ZSwKICAgICAgQXR0cmlidXRlX1dpZGVfSW1hZ2UsCiAgICAgIEF0dHJpYnV0ZV9XaWRlX1Zh bHVlLAoKICAgICAgLS0gIEF0dHJpYnV0ZXMgZGVzaWduYXRpbmcgcHJvY2VkdXJlcwoKICAgICAg QXR0cmlidXRlX091dHB1dCwKICAgICAgQXR0cmlidXRlX1JlYWQsCiAgICAgIEF0dHJpYnV0ZV9X cml0ZSwKCiAgICAgIC0tICBFbnRpdHkgYXR0cmlidXRlcyAoaW5jbHVkZXMgdHlwZSBhdHRyaWJ1 dGVzKQoKICAgICAgQXR0cmlidXRlX0VsYWJfQm9keSwKICAgICAgQXR0cmlidXRlX0VsYWJfU3Bl YywKICAgICAgQXR0cmlidXRlX1N0b3JhZ2VfUG9vbCwKCiAgICAgIC0tICBUeXBlIGF0dHJpYnV0 ZXMKCiAgICAgIEF0dHJpYnV0ZV9CYXNlLAogICAgICBBdHRyaWJ1dGVfQ2xhc3MpOwoKICAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBDaGVjayBOYW1lIElEIERlZmluaXRp b25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHR5cGUgQ2hlY2tf SWQgaXMgKAogICAgICBBY2Nlc3NfQ2hlY2ssCiAgICAgIEFjY2Vzc2liaWxpdHlfQ2hlY2ssCiAg ICAgIERpc2NyaW1pbmFudF9DaGVjaywKICAgICAgRGl2aXNpb25fQ2hlY2ssCiAgICAgIEVsYWJv cmF0aW9uX0NoZWNrLAogICAgICBJbmRleF9DaGVjaywKICAgICAgTGVuZ3RoX0NoZWNrLAogICAg ICBPdmVyZmxvd19DaGVjaywKICAgICAgUmFuZ2VfQ2hlY2ssCiAgICAgIFN0b3JhZ2VfQ2hlY2ss CiAgICAgIFRhZ19DaGVjaywKICAgICAgQWxsX0NoZWNrcyk7CgogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ29udmVudGlvbiBOYW1lIElEIERlZmluaXRpb25z IC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgdHlwZSBDb252 ZW50aW9uX0lkIGlzICgKCiAgICAgIC0tICBUaGUgY29udmVudGlvbnMgdGhhdCBhcmUgZGVmaW5l ZCBieSB0aGUgUk0gY29tZSBmaXJzdAoKICAgICAgQ29udmVudGlvbl9BZGEsCiAgICAgIENvbnZl bnRpb25fSW50cmluc2ljLAogICAgICBDb252ZW50aW9uX0VudHJ5LAogICAgICBDb252ZW50aW9u X1Byb3RlY3RlZCwKCiAgICAgIC0tICBUaGUgcmVtYWluaW5nIGNvbnZlbnRpb25zIGFyZSBmb3Jl aWduIGxhbmd1YWdlIGNvbnZlbnRpb25zCgogICAgICBDb252ZW50aW9uX0Fzc2VtYmxlciwKICAg ICAgQ29udmVudGlvbl9DLAogICAgICBDb252ZW50aW9uX0NPQk9MLAogICAgICBDb252ZW50aW9u X0NQUCwKICAgICAgQ29udmVudGlvbl9Gb3J0cmFuLAogICAgICBDb252ZW50aW9uX0phdmEsCiAg ICAgIENvbnZlbnRpb25fU3RkY2FsbCwKICAgICAgQ29udmVudGlvbl9TdHViYmVkKTsKCiAgICAg IC0tICBOb3RlOiBDb252ZW50aW9ucyBDX1Bhc3NfQnlfQ29weSwgRXh0ZXJuYWwsIGFuZCBEZWZh dWx0IGFyZSBhbGwKICAgICAgLS0gIHRyZWF0ZWQgYXMgc3lub255bXMgZm9yIGNvbnZlbnRpb24g QyAod2l0aCBhbiBhcHByb3ByaWF0ZSBmbGFnCiAgICAgIC0tICBiZWluZyBzZXQgaW4gYSByZWNv cmQgdHlwZSBpbiB0aGUgY2FzZSBvZiBDX1Bhc3NfQnlfQ29weSkuIFNlZQogICAgICAtLSAgcHJv Y2Vzc2luZyBpbiBTZW1fUHJhZyBmb3IgZGV0YWlscy4KCiAgICAgIC0tICBOb3RlOiBjb252ZW50 aW9uIFdpbjMyIGhhcyB0aGUgc2FtZSBlZmZlY3QgYXMgY29udmVudGlvbiBTdGRjYWxsCiAgICAg IC0tICBhbmQgYXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiB0byBub3JtYWwgcnVsZXMgaXMgY29uc2lk ZXJlZCB0byBiZQogICAgICAtLSAgY29uZm9ybWFudCB3aXRoIGNvbnZlbnRpb24gU3RkY2FsbC4g VGhlcmVmb3JlIGlmIHRoZSBjb252ZW50aW9uCiAgICAgIC0tICBXaW4zMiBpcyBlbmNvdW50ZXJl ZCwgaXQgaXMgdHJhbnNsYXRlZCBpbnRvIENvbnZlbnRpb25fU3RkY2FsbC4KCiAgIGZvciBDb252 ZW50aW9uX0lkJ1NpemUgdXNlIDg7CiAgIC0tICBQbGVudHkgb2Ygc3BhY2UgZm9yIGV4cGFuc2lv bgoKICAgc3VidHlwZSBGb3JlaWduX0NvbnZlbnRpb24gaXMKICAgICBDb252ZW50aW9uX0lkIHJh bmdlIENvbnZlbnRpb25fQXNzZW1ibGVyIC4uIENvbnZlbnRpb25fU3RkY2FsbDsKCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIExvY2tpbmcgUG9saWN5IElEIERl ZmluaXRpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0 eXBlIExvY2tpbmdfUG9saWN5X0lkIGlzICgKICAgICAgTG9ja2luZ19Qb2xpY3lfSW5oZXJpdGFu Y2VfTG9ja2luZywKICAgICAgTG9ja2luZ19Qb2xpY3lfQ2VpbGluZ19Mb2NraW5nKTsKCiAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAtLSBQcmFnbWEgSUQgRGVmaW5pdGlvbnMgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIFByYWdtYV9JZCBpcyAoCgog ICAgICAtLSAgQ29uZmlndXJhdGlvbiBwcmFnbWFzCgogICAgICBQcmFnbWFfQWRhXzgzLAogICAg ICBQcmFnbWFfQWRhXzk1LAogICAgICBQcmFnbWFfQ19QYXNzX0J5X0NvcHksCiAgICAgIFByYWdt YV9Db21wb25lbnRfQWxpZ25tZW50LAogICAgICBQcmFnbWFfRGlzY2FyZF9OYW1lcywKICAgICAg UHJhZ21hX0VsYWJvcmF0aW9uX0NoZWNrcywKICAgICAgUHJhZ21hX0VsaW1pbmF0ZSwKICAgICAg UHJhZ21hX0V4dGVuZF9TeXN0ZW0sCiAgICAgIFByYWdtYV9FeHRlbnNpb25zX0FsbG93ZWQsCiAg ICAgIFByYWdtYV9FeHRlcm5hbF9OYW1lX0Nhc2luZywKICAgICAgUHJhZ21hX0Zsb2F0X1JlcHJl c2VudGF0aW9uLAogICAgICBQcmFnbWFfSW5pdGlhbGl6ZV9TY2FsYXJzLAogICAgICBQcmFnbWFf TGljZW5zZSwKICAgICAgUHJhZ21hX0xvY2tpbmdfUG9saWN5LAogICAgICBQcmFnbWFfTG9uZ19G bG9hdCwKICAgICAgUHJhZ21hX05vX1J1bl9UaW1lLAogICAgICBQcmFnbWFfTm9ybWFsaXplX1Nj YWxhcnMsCiAgICAgIFByYWdtYV9Qb2xsaW5nLAogICAgICBQcmFnbWFfUHJvcGFnYXRlX0V4Y2Vw dGlvbnMsCiAgICAgIFByYWdtYV9RdWV1aW5nX1BvbGljeSwKICAgICAgUHJhZ21hX1JhdmVuc2Nh ciwKICAgICAgUHJhZ21hX1Jlc3RyaWN0ZWRfUnVuX1RpbWUsCiAgICAgIFByYWdtYV9SZXN0cmlj dGlvbnMsCiAgICAgIFByYWdtYV9SZXZpZXdhYmxlLAogICAgICBQcmFnbWFfU291cmNlX0ZpbGVf TmFtZSwKICAgICAgUHJhZ21hX1N0eWxlX0NoZWNrcywKICAgICAgUHJhZ21hX1N1cHByZXNzLAog ICAgICBQcmFnbWFfVGFza19EaXNwYXRjaGluZ19Qb2xpY3ksCiAgICAgIFByYWdtYV9VbnN1cHBy ZXNzLAogICAgICBQcmFnbWFfVXNlX1ZBRFNfU2l6ZSwKICAgICAgUHJhZ21hX1dhcm5pbmdzLAog ICAgICBQcmFnbWFfVmFsaWRpdHlfQ2hlY2tzLAoKICAgICAgLS0gIFJlbWFpbmluZyAobm9uLWNv bmZpZ3VyYXRpb24pIHByYWdtYXMKCiAgICAgIFByYWdtYV9BYm9ydF9EZWZlciwKICAgICAgUHJh Z21hX0FsbF9DYWxsc19SZW1vdGUsCiAgICAgIFByYWdtYV9Bbm5vdGF0ZSwKICAgICAgUHJhZ21h X0Fzc2VydCwKICAgICAgUHJhZ21hX0FzeW5jaHJvbm91cywKICAgICAgUHJhZ21hX0F0b21pYywK ICAgICAgUHJhZ21hX0F0b21pY19Db21wb25lbnRzLAogICAgICBQcmFnbWFfQXR0YWNoX0hhbmRs ZXIsCiAgICAgIFByYWdtYV9Db21tZW50LAogICAgICBQcmFnbWFfQ29tbW9uX09iamVjdCwKICAg ICAgUHJhZ21hX0NvbXBsZXhfUmVwcmVzZW50YXRpb24sCiAgICAgIFByYWdtYV9Db250cm9sbGVk LAogICAgICBQcmFnbWFfQ29udmVudGlvbiwKICAgICAgUHJhZ21hX0NQUF9DbGFzcywKICAgICAg UHJhZ21hX0NQUF9Db25zdHJ1Y3RvciwKICAgICAgUHJhZ21hX0NQUF9WaXJ0dWFsLAogICAgICBQ cmFnbWFfQ1BQX1Z0YWJsZSwKICAgICAgUHJhZ21hX0RlYnVnLAogICAgICBQcmFnbWFfRWxhYm9y YXRlLAogICAgICBQcmFnbWFfRWxhYm9yYXRlX0FsbCwKICAgICAgUHJhZ21hX0VsYWJvcmF0ZV9C b2R5LAogICAgICBQcmFnbWFfRXhwb3J0LAogICAgICBQcmFnbWFfRXhwb3J0X0V4Y2VwdGlvbiwK ICAgICAgUHJhZ21hX0V4cG9ydF9GdW5jdGlvbiwKICAgICAgUHJhZ21hX0V4cG9ydF9PYmplY3Qs CiAgICAgIFByYWdtYV9FeHBvcnRfUHJvY2VkdXJlLAogICAgICBQcmFnbWFfRXhwb3J0X1ZhbHVl ZF9Qcm9jZWR1cmUsCiAgICAgIFByYWdtYV9FeHRlcm5hbCwKICAgICAgUHJhZ21hX0ZpbmFsaXpl X1N0b3JhZ2VfT25seSwKICAgICAgUHJhZ21hX0lkZW50LAogICAgICBQcmFnbWFfSW1wb3J0LAog ICAgICBQcmFnbWFfSW1wb3J0X0V4Y2VwdGlvbiwKICAgICAgUHJhZ21hX0ltcG9ydF9GdW5jdGlv biwKICAgICAgUHJhZ21hX0ltcG9ydF9PYmplY3QsCiAgICAgIFByYWdtYV9JbXBvcnRfUHJvY2Vk dXJlLAogICAgICBQcmFnbWFfSW1wb3J0X1ZhbHVlZF9Qcm9jZWR1cmUsCiAgICAgIFByYWdtYV9J bmxpbmUsCiAgICAgIFByYWdtYV9JbmxpbmVfQWx3YXlzLAogICAgICBQcmFnbWFfSW5saW5lX0dl bmVyaWMsCiAgICAgIFByYWdtYV9JbnNwZWN0aW9uX1BvaW50LAogICAgICBQcmFnbWFfSW50ZXJm YWNlLAogICAgICBQcmFnbWFfSW50ZXJmYWNlX05hbWUsCiAgICAgIFByYWdtYV9JbnRlcnJ1cHRf SGFuZGxlciwKICAgICAgUHJhZ21hX0ludGVycnVwdF9Qcmlvcml0eSwKICAgICAgUHJhZ21hX0ph dmFfQ29uc3RydWN0b3IsCiAgICAgIFByYWdtYV9KYXZhX0ludGVyZmFjZSwKICAgICAgUHJhZ21h X0xpbmtfV2l0aCwKICAgICAgUHJhZ21hX0xpbmtlcl9BbGlhcywKICAgICAgUHJhZ21hX0xpbmtl cl9PcHRpb25zLAogICAgICBQcmFnbWFfTGlua2VyX1NlY3Rpb24sCiAgICAgIFByYWdtYV9MaXN0 LAogICAgICBQcmFnbWFfTWFjaGluZV9BdHRyaWJ1dGUsCiAgICAgIFByYWdtYV9NYWluLAogICAg ICBQcmFnbWFfTWFpbl9TdG9yYWdlLAogICAgICBQcmFnbWFfTWVtb3J5X1NpemUsCiAgICAgIFBy YWdtYV9Ob19SZXR1cm4sCiAgICAgIFByYWdtYV9PcHRpbWl6ZSwKICAgICAgUHJhZ21hX1BhY2ss CiAgICAgIFByYWdtYV9QYWdlLAogICAgICBQcmFnbWFfUGFzc2l2ZSwKICAgICAgUHJhZ21hX1By ZWVsYWJvcmF0ZSwKICAgICAgUHJhZ21hX1ByaW9yaXR5LAogICAgICBQcmFnbWFfUHNlY3RfT2Jq ZWN0LAogICAgICBQcmFnbWFfUHVyZSwKICAgICAgUHJhZ21hX1B1cmVfRnVuY3Rpb24sCiAgICAg IFByYWdtYV9SZW1vdGVfQ2FsbF9JbnRlcmZhY2UsCiAgICAgIFByYWdtYV9SZW1vdGVfVHlwZXMs CiAgICAgIFByYWdtYV9TaGFyZV9HZW5lcmljLAogICAgICBQcmFnbWFfU2hhcmVkLAogICAgICBQ cmFnbWFfU2hhcmVkX1Bhc3NpdmUsCiAgICAgIFByYWdtYV9Tb3VyY2VfUmVmZXJlbmNlLAogICAg ICBQcmFnbWFfU3RyZWFtX0NvbnZlcnQsCiAgICAgIFByYWdtYV9TdWJ0aXRsZSwKICAgICAgUHJh Z21hX1N1cHByZXNzX0FsbCwKICAgICAgUHJhZ21hX1N1cHByZXNzX0RlYnVnX0luZm8sCiAgICAg IFByYWdtYV9TdXBwcmVzc19Jbml0aWFsaXphdGlvbiwKICAgICAgUHJhZ21hX1N5c3RlbV9OYW1l LAogICAgICBQcmFnbWFfVGFza19JbmZvLAogICAgICBQcmFnbWFfVGFza19OYW1lLAogICAgICBQ cmFnbWFfVGFza19TdG9yYWdlLAogICAgICBQcmFnbWFfVGltZV9TbGljZSwKICAgICAgUHJhZ21h X1RpdGxlLAogICAgICBQcmFnbWFfVW5jaGVja2VkX1VuaW9uLAogICAgICBQcmFnbWFfVW5pbXBs ZW1lbnRlZF9Vbml0LAogICAgICBQcmFnbWFfVW5yZXNlcnZlX0FsbF9JbnRlcnJ1cHRzLAogICAg ICBQcmFnbWFfVm9sYXRpbGUsCiAgICAgIFByYWdtYV9Wb2xhdGlsZV9Db21wb25lbnRzLAogICAg ICBQcmFnbWFfV2Vha19FeHRlcm5hbCwKCiAgICAgIC0tICBUaGUgZm9sbG93aW5nIHByYWdtYXMg YXJlIG9uIHRoZWlyIG93biwgb3V0IG9mIG9yZGVyLCBiZWNhdXNlIG9mCiAgICAgIC0tICB0aGUg c3BlY2lhbCBwcm9jZXNzaW5nIHJlcXVpcmVkIHRvIGRlYWwgd2l0aCB0aGUgZmFjdCB0aGF0IHRo ZWlyCiAgICAgIC0tICBuYW1lcyBtYXRjaCBleGlzdGluZyBhdHRyaWJ1dGUgbmFtZXMuCgogICAg ICBQcmFnbWFfQVNUX0VudHJ5LAogICAgICBQcmFnbWFfU3RvcmFnZV9TaXplLAogICAgICBQcmFn bWFfU3RvcmFnZV9Vbml0KTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgIC0tIFF1ZXVpbmcgUG9saWN5IElEIGRlZmluaXRpb25zIC0tCiAgIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIFF1ZXVpbmdfUG9saWN5X0lkIGlzICgKICAg ICAgUXVldWluZ19Qb2xpY3lfRklGT19RdWV1aW5nLAogICAgICBRdWV1aW5nX1BvbGljeV9Qcmlv cml0eV9RdWV1aW5nKTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgIC0tIFRhc2sgRGlzcGF0Y2hpbmcgUG9saWN5IElEIGRlZmluaXRpb25zIC0tCiAg IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICB0eXBlIFRh c2tfRGlzcGF0Y2hpbmdfUG9saWN5X0lkIGlzICgKICAgICAgVGFza19EaXNwYXRjaGluZ19GSUZP X1dpdGhpbl9Qcmlvcml0aWVzKTsKICAgLS0gIElkIHZhbHVlcyB1c2VkIHRvIGlkZW50aWZ5IHRh c2sgZGlzcGF0Y2hpbmcgcG9saWNpZXMKCiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN1YnBy b2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZTsK ICAgLS0gIENhbGxlZCB0byBpbml0aWFsaXplIHRoZSBwcmVzZXQgbmFtZXMgaW4gdGhlIG5hbWVz IHRhYmxlLgoKICAgZnVuY3Rpb24gSXNfQXR0cmlidXRlX05hbWUgKE4gOiBOYW1lX0lkKSByZXR1 cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhlIG5hbWUg b2YgYSByZWNvZ25pemVkIGF0dHJpYnV0ZQoKICAgZnVuY3Rpb24gSXNfRW50aXR5X0F0dHJpYnV0 ZV9OYW1lIChOIDogTmFtZV9JZCkgcmV0dXJuIEJvb2xlYW47CiAgIC0tICBUZXN0IHRvIHNlZSBp ZiB0aGUgbmFtZSBOIGlzIHRoZSBuYW1lIG9mIGEgcmVjb2duaXplZCBlbnRpdHkgYXR0cmlidXRl LAogICAtLSAgaS5lLiBhbiBhdHRyaWJ1dGUgcmVmZXJlbmNlIHRoYXQgcmV0dXJucyBhbiBlbnRp dHkuCgogICBmdW5jdGlvbiBJc19Qcm9jZWR1cmVfQXR0cmlidXRlX05hbWUgKE4gOiBOYW1lX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhl IG5hbWUgb2YgYSByZWNvZ25pemVkIGF0dHJpYnV0ZSB0aGF0CiAgIC0tICBkZXNpZ25hdGVzIGEg cHJvY2VkdXJlIChhbmQgY2FuIHRoZXJlZm9yZSBhcHBlYXIgYXMgYSBzdGF0ZW1lbnQpLgoKICAg ZnVuY3Rpb24gSXNfRnVuY3Rpb25fQXR0cmlidXRlX05hbWUgKE4gOiBOYW1lX0lkKSByZXR1cm4g Qm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhlIG5hbWUgb2Yg YSByZWNvZ25pemVkIGF0dHJpYnV0ZQogICAtLSAgdGhhdCBkZXNpZ25hdGVzIGEgcmVuYW1lYWJs ZSBmdW5jdGlvbiwgYW5kIGNhbiB0aGVyZWZvcmUgYXBwZWFyIGluCiAgIC0tICBhIHJlbmFtaW5n IHN0YXRlbWVudC4gTm90ZSB0aGF0IG5vdCBhbGwgYXR0cmlidXRlcyBkZXNpZ25hdGluZwogICAt LSAgZnVuY3Rpb25zIGFyZSByZW5hbWFibGUsIGluIHBhcnRpY3VsYXIsIHRob3MgcmV0dXJuaW5n IGEgdW5pdmVyc2FsCiAgIC0tICB2YWx1ZSBjYW5ub3QgYmUgcmVuYW1lZC4KCiAgIGZ1bmN0aW9u IElzX1R5cGVfQXR0cmlidXRlX05hbWUgKE4gOiBOYW1lX0lkKSByZXR1cm4gQm9vbGVhbjsKICAg LS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhlIG5hbWUgb2YgYSByZWNvZ25pemVk IHR5cGUgYXR0cmlidXRlLAogICAtLSAgaS5lLiBhbiBhdHRyaWJ1dGUgcmVmZXJlbmNlIHRoYXQg cmV0dXJucyBhIHR5cGUKCiAgIGZ1bmN0aW9uIElzX0NoZWNrX05hbWUgKE4gOiBOYW1lX0lkKSBy ZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhlIG5h bWUgb2YgYSByZWNvZ25pemVkIHN1cHByZXNzIGNoZWNrCiAgIC0tICBhcyByZXF1aXJlZCBieSBw cmFnbWEgU3VwcHJlc3MuCgogICBmdW5jdGlvbiBJc19Db252ZW50aW9uX05hbWUgKE4gOiBOYW1l X0lkKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMg dGhlIG5hbWUgb2Ygb25lIG9mIHRoZSByZWNvZ25pemVkIGxhbmd1YWdlCiAgIC0tICBjb252ZW50 aW9ucywgYXMgcmVxdWlyZWQgYnkgcHJhZ21hIENvbnZlbnRpb24sIEltcG9ydCwgRXhwb3J0LCBJ bnRlcmZhY2UKCiAgIGZ1bmN0aW9uIElzX0xvY2tpbmdfUG9saWN5X05hbWUgKE4gOiBOYW1lX0lk KSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMgdGhl IG5hbWUgb2YgYSByZWNvZ25pemVkIGxvY2tpbmcgcG9saWN5CgogICBmdW5jdGlvbiBJc19PcGVy YXRvcl9TeW1ib2xfTmFtZSAoTiA6IE5hbWVfSWQpIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVz dCB0byBzZWUgaWYgdGhlIG5hbWUgTiBpcyB0aGUgbmFtZSBvZiBhbiBvcGVyYXRvciBzeW1ib2wK CiAgIGZ1bmN0aW9uIElzX1ByYWdtYV9OYW1lIChOIDogTmFtZV9JZCkgcmV0dXJuIEJvb2xlYW47 CiAgIC0tICBUZXN0IHRvIHNlZSBpZiB0aGUgbmFtZSBOIGlzIHRoZSBuYW1lIG9mIGEgcmVjb2du aXplZCBwcmFnbWEuIE5vdGUKICAgLS0gIHRoYXQgcHJhZ21hcyBBU1RfRW50cnksIFN0b3JhZ2Vf U2l6ZSwgYW5kIFN0b3JhZ2VfVW5pdCBhcmUgcmVjb2duaXplZAogICAtLSAgYXMgcHJhZ21hcyBi eSB0aGlzIGZ1bmN0aW9uIGV2ZW4gdGhvdWdoIHRoZWlyIG5hbWVzIGFyZSBzZXBhcmF0ZSBmcm9t CiAgIC0tICB0aGUgb3RoZXIgcHJhZ21hIG5hbWVzLgoKICAgZnVuY3Rpb24gSXNfUXVldWluZ19Q b2xpY3lfTmFtZSAoTiA6IE5hbWVfSWQpIHJldHVybiBCb29sZWFuOwogICAtLSAgVGVzdCB0byBz ZWUgaWYgdGhlIG5hbWUgTiBpcyB0aGUgbmFtZSBvZiBhIHJlY29nbml6ZWQgcXVldWluZyBwb2xp Y3kKCiAgIGZ1bmN0aW9uIElzX1Rhc2tfRGlzcGF0Y2hpbmdfUG9saWN5X05hbWUgKE4gOiBOYW1l X0lkKSByZXR1cm4gQm9vbGVhbjsKICAgLS0gIFRlc3QgdG8gc2VlIGlmIHRoZSBuYW1lIE4gaXMg dGhlIG5hbWUgb2YgYSByZWNvZ25pemVkCiAgIC0tICB0YXNrIGRpc3BhdGNoaW5nIHBvbGljeQoK ICAgZnVuY3Rpb24gR2V0X0F0dHJpYnV0ZV9JZCAoTiA6IE5hbWVfSWQpIHJldHVybiBBdHRyaWJ1 dGVfSWQ7CiAgIC0tICBSZXR1cm5zIElkIG9mIGF0dHJpYnV0ZSBjb3JyZXNwb25kaW5nIHRvIGdp dmVuIG5hbWUuIEl0IGlzIGFuIGVycm9yIHRvCiAgIC0tICBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0 aCBhIG5hbWUgdGhhdCBpcyBub3QgdGhlIG5hbWUgb2YgYSBhdHRyaWJ1dGUuCgogICBmdW5jdGlv biBHZXRfQ29udmVudGlvbl9JZCAoTiA6IE5hbWVfSWQpIHJldHVybiBDb252ZW50aW9uX0lkOwog ICAtLSAgUmV0dXJucyBJZCBvZiBsYW5ndWFnZSBjb252ZW50aW9uIGNvcnJlc3BvbmRpbmcgdG8g Z2l2ZW4gbmFtZS4gSXQgaXMgYW4KICAgLS0gIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3aXRoIGEg bmFtZSB0aGF0IGlzIG5vdCB0aGUgbmFtZSBvZiBhIGNoZWNrLgoKICAgZnVuY3Rpb24gR2V0X0No ZWNrX0lkIChOIDogTmFtZV9JZCkgcmV0dXJuIENoZWNrX0lkOwogICAtLSAgUmV0dXJucyBJZCBv ZiBzdXBwcmVzcyBjaGVjayBjb3JyZXNwb25kaW5nIHRvIGdpdmVuIG5hbWUuIEl0IGlzIGFuIGVy cm9yCiAgIC0tICB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2l0aCBhIG5hbWUgdGhhdCBpcyBub3Qg dGhlIG5hbWUgb2YgYSBjaGVjay4KCiAgIGZ1bmN0aW9uIEdldF9Mb2NraW5nX1BvbGljeV9JZCAo TiA6IE5hbWVfSWQpIHJldHVybiBMb2NraW5nX1BvbGljeV9JZDsKICAgLS0gIFJldHVybnMgSWQg b2YgbG9ja2luZyBwb2xpY3kgY29ycmVzcG9uZGluZyB0byBnaXZlbiBuYW1lLiBJdCBpcyBhbiBl cnJvcgogICAtLSAgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uIHdpdGggYSBuYW1lIHRoYXQgaXMgbm90 IHRoZSBuYW1lIG9mIGEgY2hlY2suCgogICBmdW5jdGlvbiBHZXRfUHJhZ21hX0lkIChOIDogTmFt ZV9JZCkgcmV0dXJuIFByYWdtYV9JZDsKICAgLS0gIFJldHVybnMgSWQgb2YgcHJhZ21hIGNvcnJl c3BvbmRpbmcgdG8gZ2l2ZW4gbmFtZS4gSXQgaXMgYW4gZXJyb3IgdG8KICAgLS0gIGNhbGwgdGhp cyBmdW5jdGlvbiB3aXRoIGEgbmFtZSB0aGF0IGlzIG5vdCB0aGUgbmFtZSBvZiBhIHByYWdtYS4g Tm90ZQogICAtLSAgdGhhdCB0aGUgZnVuY3Rpb24gYWxzbyB3b3JrcyBjb3JyZWN0bHkgZm9yIG5h bWVzIG9mIHByYWdtYXMgdGhhdCBhcmUKICAgLS0gIG5vdCBpbiB0aGUgbWFpbiBsaXN0IG9mIHBy YWdtYSBOYW1lcyAoQVNUX0VudHJ5LCBTdG9yYWdlX1NpemUsIGFuZAogICAtLSAgU3RvcmFnZV9V bml0IChlLmcuIE5hbWVfU3RvcmFnZV9TaXplIHJldHVybnMgUHJhZ21hX1N0b3JhZ2VfU2l6ZSku CgogICBmdW5jdGlvbiBHZXRfUXVldWluZ19Qb2xpY3lfSWQgKE4gOiBOYW1lX0lkKSByZXR1cm4g UXVldWluZ19Qb2xpY3lfSWQ7CiAgIC0tICBSZXR1cm5zIElkIG9mIHF1ZXVpbmcgcG9saWN5IGNv cnJlc3BvbmRpbmcgdG8gZ2l2ZW4gbmFtZS4gSXQgaXMgYW4gZXJyb3IKICAgLS0gIHRvIGNhbGwg dGhpcyBmdW5jdGlvbiB3aXRoIGEgbmFtZSB0aGF0IGlzIG5vdCB0aGUgbmFtZSBvZiBhIGNoZWNr LgoKICAgZnVuY3Rpb24gR2V0X1Rhc2tfRGlzcGF0Y2hpbmdfUG9saWN5X0lkCiAgICAgKE4gICAg OiBOYW1lX0lkKQogICAgICByZXR1cm4gVGFza19EaXNwYXRjaGluZ19Qb2xpY3lfSWQ7CiAgIC0t ICBSZXR1cm5zIElkIG9mIHRhc2sgZGlzcGF0Y2hpbmcgcG9saWN5IGNvcnJlc3BvbmRpbmcgdG8g Z2l2ZW4gbmFtZS4gSXQKICAgLS0gIGlzIGFuIGVycm9yIHRvIGNhbGwgdGhpcyBmdW5jdGlvbiB3 aXRoIGEgbmFtZSB0aGF0IGlzIG5vdCB0aGUgbmFtZQogICAtLSAgb2YgYSBjaGVjay4KCnByaXZh dGUKICAgcHJhZ21hIElubGluZSAoSXNfQXR0cmlidXRlX05hbWUpOwogICBwcmFnbWEgSW5saW5l IChJc19FbnRpdHlfQXR0cmlidXRlX05hbWUpOwogICBwcmFnbWEgSW5saW5lIChJc19UeXBlX0F0 dHJpYnV0ZV9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoSXNfQ2hlY2tfTmFtZSk7CiAgIHByYWdt YSBJbmxpbmUgKElzX0NvbnZlbnRpb25fTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX0xvY2tp bmdfUG9saWN5X05hbWUpOwogICBwcmFnbWEgSW5saW5lIChJc19PcGVyYXRvcl9TeW1ib2xfTmFt ZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1F1ZXVpbmdfUG9saWN5X05hbWUpOwogICBwcmFnbWEg SW5saW5lIChJc19QcmFnbWFfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUgKElzX1Rhc2tfRGlzcGF0 Y2hpbmdfUG9saWN5X05hbWUpOwoKZW5kIFNuYW1lczsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICBHTkFUIENPTVBJ TEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGIE4gQSBNIEUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAkUmV2aXNpb246IDEuMS4xNi4xICQKLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t ICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv biwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCBpcyBmcmVl IHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQvb3IgbW9kaWZ5IGl0IHVu ZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3VuZGF0aW9uOyAgZWl0aGVy IHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlci0gLS0KLS0gc2lv bi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1 bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0IGV2ZW4gdGhlICBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug LS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUgIHJlY2VpdmVkICBhIGNv cHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNlICBkaXN0cmlidXRlZCB3 aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSAtLQotLSB0byAgdGhl IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwg IEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQot LSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMgIGluc3RhbnRpYXRlICBn ZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsgIHRoaXMgdW5pdCB3aXRo IG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0tCi0tIHRoaXMgIHVuaXQg IGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIGV4ZWN1dGFibGUgIHRv ICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAgUHVibGljICBMaWNlbnNl LiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBpbnZhbGlkYXRlICBhbnkg b3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIC0tCi0tIGNv dmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCB3YXMgb3JpZ2lu YWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZb3JrIFVuaXZlcnNpdHku IC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlkZWQgYnkgQWRhIENvcmUg VGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCgotLSAgVGhpcyBwYWNrYWdlLCB0b2dldGhlciB3aXRoIGl0cyBjaGlsZCBw YWNrYWdlIEZuYW1lLlVGIGRlZmluZSB0aGUKLS0gIGFzc29jaWF0aW9uIGJldHdlZW4gc291cmNl IGZpbGUgbmFtZXMgYW5kIHVuaXQgbmFtZXMgYXMgZGVmaW5lZAotLSAgKHNlZSBwYWNrYWdlIFVu YW1lIGZvciBkZWZpbml0aW9uIG9mIGZvcm1hdCBvZiB1bml0IG5hbWVzKS4KCndpdGggVHlwZXM7 IHVzZSBUeXBlczsKCnBhY2thZ2UgRm5hbWUgaXMKCiAgIC0tICBOb3RlOiB0aGlzIHBhY2thZ2Ug c3BlYyBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIFVuYW1lIHNwZWMgaW4gdGhlIEFkYQogICAtLSAg c2Vuc2UsIGJ1dCB0aGUgY29tbWVudHMgYW5kIGRlc2NyaXB0aW9uIG9mIHRoZSBzZW1hbnRpY3Mg ZG8gZGVwZW5kIG9uCiAgIC0tICB0aGUgY29udmVudGlvbnMgZXN0YWJsaXNoZWQgYnkgVW5hbWUu CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gRmlsZSBOYW1lIENvbnZlbnRp b25zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIEdOQVQgcmVxdWly ZXMgdGhhdCB0aGVyZSBiZSBhIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2UgYmV0d2VlbiBzb3Vy Y2UKICAgLS0gIGZpbGUgbmFtZXMgKGFzIHVzZWQgaW4gdGhlIE9zaW50IHBhY2thZ2UgaW50ZXJm YWNlKSBhbmQgdW5pdCBuYW1lcyBhcwogICAtLSAgZGVmaW5lZCBieSB0aGUgVW5hbWUgcGFja2Fn ZS4gVGhpcyBjb3JyZXNwb25kZW5jZSBpcyBkZWZpbmVkIGJ5IHRoZQogICAtLSAgdHdvIHN1YnBy b2dyYW1zIGRlZmluZWQgaGVyZSBpbiB0aGUgRm5hbWUgcGFja2FnZS4KCiAgIC0tICAgRm9yIGZ1 bGwgcnVsZXMgb2YgZmlsZSBuYW1pbmcsIHNlZSBHTkFUIFVzZXIncyBHdWlkZS4gTm90ZSB0aGF0 IHRoZQogICAtLSAgIG5hbWluZyBydWxlcyBhcmUgYWZmZWN0ZWQgYnkgdGhlIHByZXNlbmNlIG9m IFNvdXJjZV9GaWxlX05hbWUgcHJhZ21hcwogICAtLSAgIHRoYXQgaGF2ZSBiZWVuIHByZXZpb3Vz bHkgcHJvY2Vzc2VkLgoKICAgLS0gIE5vdGUgdGhhdCB0aGUgZmlsZSBuYW1lIGRvZXMgKm5vdCog aW5jbHVkZSB0aGUgZGlyZWN0b3J5IG5hbWUuIFRoZQogICAtLSAgbWFuYWdlbWVudCBvZiBkaXJl Y3RvcmllcyBpcyBwcm92aWRlZCBieSBPc2ludCwgYW5kIGZ1bGwgZmlsZSBuYW1lcwogICAtLSAg YXJlIHVzZWQgb25seSBmb3IgZXJyb3IgbWVzc2FnZSBwdXJwb3NlcyB3aXRoaW4gR05BVCBpdHNl bGYuCgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0t LS0tLS0tLS0tLQoKICAgdHlwZSBFeHBlY3RlZF9Vbml0X1R5cGUgaXMgKEV4cGVjdF9Cb2R5LCBF eHBlY3RfU3BlYywgVW5rbm93bik7CiAgIC0tICBSZXR1cm4gdmFsdWUgZnJvbSBHZXRfRXhwZWN0 ZWRfVW5pdF9UeXBlCgogICBmdW5jdGlvbiBHZXRfRXhwZWN0ZWRfVW5pdF9UeXBlCiAgICAgKEZu YW1lIDogRmlsZV9OYW1lX1R5cGUpCiAgICAgIHJldHVybiAgRXhwZWN0ZWRfVW5pdF9UeXBlOwog ICAtLSAgSWYgcG9zc2libGUsIGRldGVybWluZSB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIG5hbWUg Y29ycmVzcG9uZHMgdG8gYSB1bml0CiAgIC0tICB0aGF0IGlzIGEgc3BlYyBvciBib2R5IChlLmcu IGJ5IGV4YW1pbmluZyB0aGUgZXh0ZW5zaW9uKS4gSWYgdGhpcyBjYW5ub3QKICAgLS0gIGJlIGRl dGVybWluZWQgd2l0aCB0aGUgZmlsZSBuYW1pbmcgY29udmVudGlvbnMgaW4gdXNlLCB0aGVuIHRo ZSByZXR1cm5lZAogICAtLSAgdmFsdWUgaXMgc2V0IHRvIFVua25vd24uCgogICBmdW5jdGlvbiBJ c19QcmVkZWZpbmVkX0ZpbGVfTmFtZQogICAgIChGbmFtZSAgICAgICAgICAgICAgOiBGaWxlX05h bWVfVHlwZTsKICAgICAgUmVuYW1pbmdzX0luY2x1ZGVkIDogQm9vbGVhbiA6PSBUcnVlKQogICAg ICByZXR1cm4gICAgICAgICAgICAgICBCb29sZWFuOwogICAtLSAgVGhpcyBmdW5jdGlvbiBkZXRl cm1pbmVzIGlmIHRoZSBnaXZlbiBmaWxlIG5hbWUgKHdoaWNoIG11c3QgYmUgYSBzaW1wbGUKICAg LS0gIGZpbGUgbmFtZSB3aXRoIG5vIGRpcmVjdG9yeSBpbmZvcm1hdGlvbikgaXMgdGhlIGZpbGUg bmFtZSBmb3Igb25lIG9mCiAgIC0tICB0aGUgcHJlZGVmaW5lZCBsaWJyYXJ5IHVuaXRzLiBPbiBy ZXR1cm4sIE5hbWVfQnVmZmVyIGNvbnRhaW5zIHRoZQogICAtLSAgZmlsZSBuYW1lLiBUaGUgUmVu YW1pbmdzX0luY2x1ZGVkIHBhcmFtZXRlciBpbmRpY2F0ZXMgd2hldGhlciBhbm5leAogICAtLSAg SiByZW5hbWluZ3Mgc3VjaCBhcyBUZXh0X0lPIGFyZSB0byBiZSBjb25zaWRlcmVkIGFzIHByZWRl ZmluZWQuIElmCiAgIC0tICBSZW5hbWluZ3NfSW5jbHVkZWQgaXMgVHJ1ZSwgdGhlbiBUZXh0X0lP IHdpbGwgcmV0dXJuIFRydWUsIG90aGVyd2lzZQogICAtLSAgb25seSBjaGlsZHJlbiBvZiBBZGEs IEludGVyZmFjZXMgYW5kIFN5c3RlbSByZXR1cm4gVHJ1ZS4KCiAgIGZ1bmN0aW9uIElzX0ludGVy bmFsX0ZpbGVfTmFtZQogICAgIChGbmFtZSAgICAgICAgICAgICAgOiBGaWxlX05hbWVfVHlwZTsK ICAgICAgUmVuYW1pbmdzX0luY2x1ZGVkIDogQm9vbGVhbiA6PSBUcnVlKQogICAgICByZXR1cm4g ICAgICAgICAgICAgICBCb29sZWFuOwogICAtLSAgU2ltaWxhciB0byBJc19QcmVkZWZpbmVkX0Zp bGVfTmFtZS4gVGhlIGludGVybmFsIGZpbGUgc2V0IGlzIGEKICAgLS0gIHN1cGVyc2V0IG9mIHRo ZSBwcmVkZWZpbmVkIGZpbGUgc2V0IGluY2x1ZGluZyBjaGlsZHJlbiBvZiBHTkFULAogICAtLSAg YW5kIGFsc28gY2hpbGRyZW4gb2YgREVDIGZvciB0aGUgVk1TIGNhc2UuCgogICBwcm9jZWR1cmUg VHJlZV9SZWFkOwogICAtLSAgRHVtbXkgcHJvY2VkdXJlIChyZWFkcyBkdW1teSB0YWJsZSB2YWx1 ZXMgZnJvbSB0cmVlIGZpbGUpCgogICBwcm9jZWR1cmUgVHJlZV9Xcml0ZTsKICAgLS0gIFdyaXRl cyBvdXQgaW50ZXJuYWwgdGFibGVzIHRvIGN1cnJlbnQgdHJlZSBmaWxlIHVzaW5nIFRyZWVfV3Jp dGUKICAgLS0gIFRoaXMgaXMgYWN0dWFsbHkgYSBkdW1teSByb3V0aW5lLCBzaW5jZSB0aGUgcmVs ZXZhbnQgdGFibGUgaXMKICAgLS0gIG5vIGxvbmdlciB1c2VkLCBidXQgd2UgcmV0YWluIGl0IGZv ciBub3csIHRvIGF2b2lkIGEgdHJlZSBmaWxlCiAgIC0tICBpbmNvbXBhdGliaWxpdHkgd2l0aCB0 aGUgMy4xMyBjb21waWxlci4gU2hvdWxkIGJlIHJlbW92ZWQgZm9yCiAgIC0tICB0aGUgMy4xNGEg cmVsZWFzZSA/Pz8KCmVuZCBGbmFtZTsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICBHTkFUIENPTVBJTEVSIENPTVBP TkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOIEEgTSBFIFQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAkUmV2aXNpb246IDEuMS4xNi4xICQKLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg IENvcHlyaWdodCAoQykgMTk5Mi0yMDAxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiAg ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCBpcyBmcmVlIHNvZnR3YXJl OyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyIC0tCi0t IHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkICBi eSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3VuZGF0aW9uOyAgZWl0aGVyIHZlcnNpb24g MiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlci0gLS0KLS0gc2lvbi4gIEdOQVQg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJ VEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0IGV2ZW4gdGhlICBpbXBsaWVkIHdh cnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgLS0KLS0gZm9y ICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUgIHJlY2VpdmVkICBhIGNvcHkgb2YgdGhl IEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNlICBkaXN0cmlidXRlZCB3aXRoIEdOQVQ7 ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSAtLQotLSB0byAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgIEJvc3Rvbiwg LS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBBcyBhIHNw ZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMgIGluc3RhbnRpYXRlICBnZW5lcmljcyBm cm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsgIHRoaXMgdW5pdCB3aXRoIG90aGVyIGZp bGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0tCi0tIHRoaXMgIHVuaXQgIGRvZXMgbm90 ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIGV4ZWN1dGFibGUgIHRvICBiZSAtLQot LSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAgUHVibGljICBMaWNlbnNlLiAgVGhpcyBl eGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBpbnZhbGlkYXRlICBhbnkgb3RoZXIgcmVh c29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJlIC0tCi0tIGNvdmVyZWQgYnkg dGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCB3YXMgb3JpZ2luYWxseSBkZXZl bG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZb3JrIFVuaXZlcnNpdHkuIC0tCi0tIEV4 dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlkZWQgYnkgQWRhIENvcmUgVGVjaG5vbG9n aWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCgp3aXRoIEFsbG9jOwp3aXRoIFRhYmxlOwp3aXRoIFN5c3RlbTsgICB1c2UgU3lzdGVtOwp3 aXRoIFR5cGVzOyAgICB1c2UgVHlwZXM7CgpwYWNrYWdlIE5hbWV0IGlzCgotLSAgV0FSTklORzog VGhlcmUgaXMgYSBDIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlLiBBbnkgY2hhbmdlcyB0byB0aGlz Ci0tICBzb3VyY2UgZmlsZSBtdXN0IGJlIHByb3Blcmx5IHJlZmxlY3RlZCBpbiB0aGUgQyBoZWFk ZXIgZmlsZSBuYW1ldC5oCi0tICB3aGljaCBpcyBjcmVhdGVkIG1hbnVhbGx5IGZyb20gbmFtZXQu YWRzIGFuZCBuYW1ldC5hZGIuCgotLSAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHJvdXRpbmVzIGZv ciBoYW5kbGluZyB0aGUgbmFtZXMgdGFibGUuIFRoZSB0YWJsZQotLSAgaXMgdXNlZCB0byBzdG9y ZSBjaGFyYWN0ZXIgc3RyaW5ncyBmb3IgaWRlbnRpZmllcnMgYW5kIG9wZXJhdG9yIHN5bWJvbHMs Ci0tICBhcyB3ZWxsIGFzIG90aGVyIHN0cmluZyB2YWx1ZXMgc3VjaCBhcyB1bml0IG5hbWVzIGFu ZCBmaWxlIG5hbWVzLgoKLS0gIFRoZSBmb3JtcyBvZiB0aGUgZW50cmllcyBhcmUgYXMgZm9sbG93 czoKCi0tICAgIElkZW50aWZpZXJzICAgICAgICBTdG9yZWQgd2l0aCB1cHBlciBjYXNlIGxldHRl cnMgZm9sZGVkIHRvIGxvd2VyIGNhc2UuCi0tICAgICAgICAgICAgICAgICAgICAgICBVcHBlciBo YWxmICgxNiM4MCMgYml0IHNldCkgYW5kIHdpZGUgY2hhcmFjdGVycyBhcmUKLS0gICAgICAgICAg ICAgICAgICAgICAgIHN0b3JlZCBpbiBhbiBlbmNvZGVkIGZvcm0gKFVoaCBmb3IgdXBwZXIgaGFs ZiBhbmQKLS0gICAgICAgICAgICAgICAgICAgICAgIFdoaGhoIGZvciB3aWRlIGNoYXJhY3RlcnMs IGFzIHByb3ZpZGVkIGJ5IHRoZSByb3V0aW5lCi0tICAgICAgICAgICAgICAgICAgICAgICBTdG9y ZV9FbmNvZGVkX0NoYXJhY3Rlciwgd2hlcmUgaGggYXJlIGhleCBkaWdpdHMgZm9yCi0tICAgICAg ICAgICAgICAgICAgICAgICB0aGUgY2hhcmFjdGVyIGNvZGUgdXNpbmcgbG93ZXIgY2FzZSBhLWYp LiBPdGhlcgotLSAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxseSBnZW5lcmF0ZWQgbmFt ZXMgdXNlIHVwcGVyIGNhc2UgbGV0dGVycwotLSAgICAgICAgICAgICAgICAgICAgICAgKG90aGVy IHRoYW4gTyxRLFUsVykgdG8gZW5zdXJlIHRoYXQgdGhleSBkbyBub3QgY2xhc2gKLS0gICAgICAg ICAgICAgICAgICAgICAgIHdpdGggaWRlbnRpZmllciBuYW1lcyBpbiB0aGUgc291cmNlIHByb2dy YW0uCgotLSAgICBPcGVyYXRvciBzeW1ib2xzICAgU3RvcmVkIHdpdGggYW4gaW5pdGlhbCBsZXR0 ZXIgTywgYW5kIHRoZSByZW1haW5kZXIKLS0gICAgICAgICAgICAgICAgICAgICAgIG9mIHRoZSBu YW1lIGlzIHRoZSBsb3dlciBjYXNlIGNoYXJhY3RlcnMgWFhYIHdoZXJlCi0tICAgICAgICAgICAg ICAgICAgICAgICB0aGUgbmFtZSBpcyBOYW1lX09wX1hYWCwgc2VlIFNuYW1lcyBzcGVjIGZvciBh IGZ1bGwKLS0gICAgICAgICAgICAgICAgICAgICAgIGxpc3Qgb2YgdGhlIG9wZXJhdG9yIG5hbWVz LgoKLS0gICAgQ2hhcmFjdGVyIGxpdGVyYWxzIENoYXJhY3RlciBsaXRlcmFscyBoYXZlIG5hbWVz IHRoYXQgYXJlIHVzZWQgb25seSBmb3IKLS0gICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2lu ZyBhbmQgZXJyb3IgbWVzc2FnZSBwdXJwb3Nlcy4gVGhlIGZvcm0gaXMgYQotLSAgICAgICAgICAg ICAgICAgICAgICAgdXBwZXIgY2FzZSBRIGZvbGxvd2VkIGJ5IGEgc2luZ2xlIGxldHRlciwgb3Ig YnkgYSBVeHgKLS0gICAgICAgICAgICAgICAgICAgICAgIG9yIFd4eHh4IGVuY29kaW5nIGFzIGRl c2NyaWJlZCBmb3IgaWRlbnRpZmllcnMuIFRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgU2V0 X0NoYXJhY3Rlcl9MaXRlcmFsX05hbWUgcHJvY2VkdXJlIHNob3VsZCBiZSB1c2VkCi0tICAgICAg ICAgICAgICAgICAgICAgICB0byBjb25zdHJ1Y3QgdGhlc2UgZW5jb2RpbmdzLgoKLS0gICAgVW5p dCBuYW1lcyAgICAgICAgIFN0b3JlZCB3aXRoIHVwcGVyIGNhc2UgbGV0dGVycyBmb2xkZWQgdG8g bG93ZXIgY2FzZSwKLS0gICAgICAgICAgICAgICAgICAgICAgIHVzaW5nIFVoaC9XaGhoaCBlbmNv ZGluZyBhcyBkZXNjcmliZWQgZm9yIGlkZW50aWZpZXJzLAotLSAgICAgICAgICAgICAgICAgICAg ICAgYW5kIGEgJXMgb3IgJWIgc3VmZml4IGZvciBzcGVjcy9ib2RpZXMuIFNlZSBwYWNrYWdlCi0t ICAgICAgICAgICAgICAgICAgICAgICBVbmFtZSBmb3IgZnVydGhlciBkZXRhaWxzLgoKLS0gICAg RmlsZSBuYW1lcyAgICAgICAgIEFyZSBzdG9yZWQgaW4gdGhlIGZvcm0gcHJvdmlkZWQgYnkgT3Np bnQuIFR5cGljYWxseQotLSAgICAgICAgICAgICAgICAgICAgICAgdGhleSBtYXkgaW5jbHVkZSB3 aWRlIGNoYXJhY3RlciBlc2NhcGUgc2VxdWVuY2VzIGFuZAotLSAgICAgICAgICAgICAgICAgICAg ICAgdXBwZXIgY2FzZSBjaGFyYWN0ZXJzIChpbiBub24tZW5jb2RlZCBmb3JtKS4gQ2FzaW5nCi0t ICAgICAgICAgICAgICAgICAgICAgICBpcyBhbHNvIGRlcml2ZWQgZnJvbSB0aGUgZXh0ZXJuYWwg ZW52aXJvbm1lbnQuIE5vdGUKLS0gICAgICAgICAgICAgICAgICAgICAgIHRoYXQgZmlsZSBuYW1l cyBwcm92aWRlZCBieSBPc2ludCBtdXN0IGdlbmVyYWxseSBiZQotLSAgICAgICAgICAgICAgICAg ICAgICAgY29uc2lzdGVudCB3aXRoIHRoZSBuYW1lcyBmcm9tIEZuYW1lLkdldF9GaWxlX05hbWUu CgotLSAgICBPdGhlciBzdHJpbmdzICAgICAgVGhlIG5hbWVzIHRhYmxlIGlzIGFsc28gdXNlZCBh cyBhIGNvbnZlbmllbnQgc3RvcmFnZQotLSAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24g Zm9yIG90aGVyIHZhcmlhYmxlIGxlbmd0aCBzdHJpbmdzIHN1Y2ggYXMKLS0gICAgICAgICAgICAg ICAgICAgICAgIGVycm9yIG1lc3NhZ2VzIGV0Yy4gVGhlcmUgYXJlIG5vIHJlc3RyaWN0aW9ucyBv biB3aGF0Ci0tICAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzIG1heSBhcHBlYXIgZm9y IHN1Y2ggZW50cmllcy4KCi0tICBOb3RlOiB0aGUgZW5jb2RpbmdzIFVoaCAodXBwZXIgaGFsZiBj aGFyYWN0ZXJzKSwgV2hoaGggKHdpZGUgY2hhcmFjdGVycyksCi0tICBhbmQgUXggKGNoYXJhY3Rl ciBsaXRlcmFsIG5hbWVzKSBhcmUgZGVzY3JpYmVkIGluIHRoZSBzcGVjLCBzaW5jZSB0aGV5Ci0t ICBhcmUgdmlzaWJsZSB0aHJvdWdob3V0IHRoZSBzeXN0ZW0gKGUuZy4gaW4gZGVidWdnaW5nIG91 dHB1dCkuIEhvd2V2ZXIsCi0tICBubyBjb2RlIHNob3VsZCBkZXBlbmQgb24gdGhlc2UgcGFydGlj dWxhciBlbmNvZGluZ3MsIHNvIGl0IHNob3VsZCBiZQotLSAgcG9zc2libGUgdG8gY2hhbmdlIHRo ZSBlbmNvZGluZ3MgYnkgbWFraW5nIGNoYW5nZXMgb25seSB0byB0aGUgTmFtZXQKLS0gIHNwZWNp ZmljYXRpb24gKHRvIGNoYW5nZSB0aGVzZSBjb21tZW50cykgYW5kIHRoZSBib2R5ICh3aGljaCBh Y3R1YWxseQotLSAgaW1wbGVtZW50cyB0aGUgZW5jb2RpbmdzKS4KCi0tICBUaGUgbmFtZXMgYXJl IGhhc2hlZCBzbyB0aGF0IGEgZ2l2ZW4gbmFtZSBhcHBlYXJzIG9ubHkgb25jZSBpbiB0aGUgdGFi bGUsCi0tICBleGNlcHQgdGhhdCBuYW1lcyBlbnRlcmVkIHdpdGggTmFtZV9FbnRlciBhcyBvcHBv c2VkIHRvIE5hbWVfRmluZCBhcmUKLS0gIG9taXR0ZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4KCi0t ICBUaGUgZmlyc3QgMjYgZW50cmllcyBpbiB0aGUgbmFtZXMgdGFibGUgKHdpdGggTmFtZV9JZCB2 YWx1ZXMgaW4gdGhlIHJhbmdlCi0tICBGaXJzdF9OYW1lX0lkIC4uIEZpcnN0X05hbWVfSWQgKyAy NSkgcmVwcmVzZW50IG5hbWVzIHdoaWNoIGFyZSB0aGUgb25lCi0tICBjaGFyYWN0ZXIgbG93ZXIg Y2FzZSBsZXR0ZXJzIGluIHRoZSByYW5nZSBhLXosIGFuZCB0aGVzZSBuYW1lcyBhcmUgY3JlYXRl ZAotLSAgYW5kIGluaXRpYWxpemVkIGJ5IHRoZSBJbml0aWFsaXplIHByb2NlZHVyZS4KCi0tICBU d28gdmFsdWVzLCBvbmUgb2YgdHlwZSBJbnQgYW5kIG9uZSBvZiB0eXBlIEJ5dGUsIGFyZSBzdG9y ZWQgd2l0aCBlYWNoCi0tICBuYW1lcyB0YWJsZSBlbnRyeSBhbmQgc3VicHJvZ3JhbXMgYXJlIHBy b3ZpZGVkIGZvciBzZXR0aW5nIGFuZCByZXRyaWV2aW5nCi0tICB0aGVzZSBhc3NvY2lhdGVkIHZh bHVlcy4gVGhlIHVzYWdlIG9mIHRoZXNlIHZhbHVlcyBpcyB1cCB0byB0aGUgY2xpZW50LgotLSAg SW4gdGhlIGNvbXBpbGVyLCB0aGUgSW50IGZpZWxkIGlzIHVzZWQgdG8gcG9pbnQgdG8gYSBjaGFp biBvZiBwb3RlbnRpYWxseQotLSAgdmlzaWJsZSBlbnRpdGllcyAoc2VlIFNlbS5DaDggZm9yIGRl dGFpbHMpLCBhbmQgdGhlIEJ5dGUgZmllbGQgaXMgdXNlZAotLSAgdG8gaG9sZCB0aGUgVG9rZW5f VHlwZSB2YWx1ZSBmb3IgcmVzZXJ2ZWQgd29yZHMgKHNlZSBTZW0gZm9yIGRldGFpbHMpLgotLSAg SW4gdGhlIGJpbmRlciwgdGhlIEJ5dGUgZmllbGQgaXMgdW51c2VkLCBhbmQgdGhlIEludCBmaWVs ZCBpcyB1c2VkIGluCi0tICB2YXJpb3VzIHdheXMgZGVwZW5kaW5nIG9uIHRoZSBuYW1lIGludm9s dmVkIChzZWUgYmluZGVyIGRvY3VtZW50YXRpb24pLgoKICAgTmFtZV9CdWZmZXIgOiBTdHJpbmcg KDEgLi4gMTYqMTAyNCk7CiAgIC0tICBUaGlzIGJ1ZmZlciBpcyB1c2VkIHRvIHNldCB0aGUgbmFt ZSB0byBiZSBzdG9yZWQgaW4gdGhlIHRhYmxlIGZvciB0aGUKICAgLS0gIE5hbWVfRmluZCBjYWxs LCBhbmQgdG8gcmV0cmlldmUgdGhlIG5hbWUgZm9yIHRoZSBHZXRfTmFtZV9TdHJpbmcgY2FsbC4K ICAgLS0gIFRoZSBwbHVzIDEgaW4gdGhlIGxlbmd0aCBhbGxvd3MgZm9yIGNhc2VzIG9mIGFkZGlu ZyBBU0NJSS5OVUwuIFRoZQogICAtLSAgMTZLIGhlcmUgaXMgaW50ZW5kZWQgdG8gYmUgYW4gaW5m aW5pdGUgdmFsdWUgdGhhdCBlbnN1cmVzIHRoYXQgd2UKICAgLS0gIG5ldmVyIG92ZXJmbG93IHRo ZSBidWZmZXIgKG5hbWVzIHRoaXMgbG9uZyBhcmUgdG9vIGFic3VyZCB0byB3b3JyeSEpCgogICBO YW1lX0xlbiA6IE5hdHVyYWw7CiAgIC0tICBMZW5ndGggb2YgbmFtZSBzdG9yZWQgaW4gTmFtZV9C dWZmZXIuIFVzZWQgYXMgYW4gaW5wdXQgcGFyYW1ldGVyIGZvcgogICAtLSAgTmFtZV9GaW5kLCBh bmQgYXMgYW4gb3V0cHV0IHZhbHVlIGJ5IEdldF9OYW1lX1N0cmluZywgb3IgV3JpdGVfTmFtZS4K CiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0t LS0tLS0tCgogICBwcm9jZWR1cmUgRmluYWxpemU7CiAgIC0tICBDYWxsZWQgYXQgdGhlIGVuZCBv ZiBhIHVzZSBvZiB0aGUgTmFtZXQgcGFja2FnZSAoYmVmb3JlIGEgc3Vic2VxdWVudAogICAtLSAg Y2FsbCB0byBJbml0aWFsaXplKS4gQ3VycmVudGx5IHRoaXMgcm91dGluZSBpcyBvbmx5IHVzZWQg dG8gZ2VuZXJhdGUKICAgLS0gIGRlYnVnZ2luZyBvdXRwdXQuCgogICBwcm9jZWR1cmUgR2V0X05h bWVfU3RyaW5nIChJZCA6IE5hbWVfSWQpOwogICAtLSAgR2V0X05hbWVfU3RyaW5nIGlzIHVzZWQg dG8gcmV0cmlldmUgdGhlIHN0cmluZyBhc3NvY2lhdGVkIHdpdGggYW4gZW50cnkKICAgLS0gIGlu IHRoZSBuYW1lcyB0YWJsZS4gVGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgc3RvcmVkIGluIE5hbWVf QnVmZmVyCiAgIC0tICBhbmQgTmFtZV9MZW4gaXMgc2V0LiBJdCBpcyBhbiBlcnJvciB0byBjYWxs IEdldF9OYW1lX1N0cmluZyB3aXRoIG9uZQogICAtLSAgb2YgdGhlIHNwZWNpYWwgbmFtZSBJZCB2 YWx1ZXMgKE5vX05hbWUgb3IgRXJyb3JfTmFtZSkuCgogICBmdW5jdGlvbiBHZXRfTmFtZV9TdHJp bmcgKElkIDogTmFtZV9JZCkgcmV0dXJuIFN0cmluZzsKICAgLS0gIFRoaXMgZnVuY3Rpb25hbCBm b3JtIHJldHVybnMgdGhlIHJlc3VsdCBhcyBhIHN0cmluZyB3aXRob3V0IGFmZmVjdGluZwogICAt LSAgdGhlIGNvbnRlbnRzIG9mIGVpdGhlciBOYW1lX0J1ZmZlciBvciBOYW1lX0xlbi4KCiAgIHBy b2NlZHVyZSBHZXRfVW5xdWFsaWZpZWRfTmFtZV9TdHJpbmcgKElkIDogTmFtZV9JZCk7CiAgIC0t ICBTaW1pbGFyIHRvIHRoZSBhYm92ZSBleGNlcHQgdGhhdCBxdWFsaWZpY2F0aW9uIChhcyBkZWZp bmVkIGluIHVuaXQKICAgLS0gIEV4cF9EYnVnKSBpcyByZW1vdmVkIChpbmNsdWRpbmcgYm90aCBw cmVjZWRpbmcgX18gZGVsaW1pdGVkIG5hbWVzLAogICAtLSAgYW5kIGFsc28gdGhlIHN1ZmZpeCB1 c2VkIHRvIGluZGljYXRlIHBhY2thZ2UgYm9keSBlbnRpdGllcykuIE5vdGUKICAgLS0gIHRoYXQg bmFtZXMgYXJlIG5vdCBxdWFsaWZpZWQgdW50aWwganVzdCBiZWZvcmUgdGhlIGNhbGwgdG8gZ2ln aSwgc28KICAgLS0gIHRoaXMgcm91dGluZSBpcyBvbmx5IG5lZWRlZCBieSBwcm9jZXNzaW5nIHRo YXQgb2NjdXJzIGFmdGVyIGdpZ2kgaGFzCiAgIC0tICBiZWVuIGNhbGxlZC4gVGhpcyBpbmNsdWRl cyBhbGwgQVNJUyBwcm9jZXNzaW5nLCBzaW5jZSBBU0lTIHdvcmtzIG9uCiAgIC0tICB0aGUgdHJl ZSB3cml0dGVuIGFmdGVyIGdpZ2kgaGFzIGJlZW4gY2FsbGVkLgoKICAgcHJvY2VkdXJlIEdldF9O YW1lX1N0cmluZ19BbmRfQXBwZW5kIChJZCA6IE5hbWVfSWQpOwogICAtLSAgTGlrZSBHZXRfTmFt ZV9TdHJpbmcgYnV0IHRoZSByZXN1bHRpbmcgY2hhcmFjdGVycyBhcmUgYXBwZW5kZWQgdG8KICAg LS0gIHRoZSBjdXJyZW50IGNvbnRlbnRzIG9mIHRoZSBlbnRyeSBzdG9yZWQgaW4gTmFtZV9CdWZm ZXIsIGFuZCBOYW1lX0xlbgogICAtLSAgaXMgaW5jcmVtZW50ZWQgdG8gaW5jbHVkZSB0aGUgYWRk ZWQgY2hhcmFjdGVycy4KCiAgIHByb2NlZHVyZSBHZXRfRGVjb2RlZF9OYW1lX1N0cmluZyAoSWQg OiBOYW1lX0lkKTsKICAgLS0gIFNhbWUgY2FsbGluZyBzZXF1ZW5jZSBhbiBpbnRlcmZhY2UgYXMg R2V0X05hbWVfU3RyaW5nLCBleGNlcHQgdGhhdCB0aGUKICAgLS0gIHJlc3VsdCBpcyBkZWNvZGVk LCBzbyB0aGF0IHVwcGVyIGhhbGYgY2hhcmFjdGVycyBhbmQgd2lkZSBjaGFyYWN0ZXJzCiAgIC0t ICBhcHBlYXIgYXMgb3JpZ2luYWxseSBmb3VuZCBpbiB0aGUgc291cmNlIHByb2dyYW0gdGV4dCwg b3BlcmF0b3JzIGhhdmUKICAgLS0gIHRoZWlyIHNvdXJjZSBmb3JtcyAoc3BlY2lhbCBjaGFyYWN0 ZXJzIGFuZCBlbmNsb3NlZCBpbiBxdW90ZXMpLCBhbmQKICAgLS0gIGNoYXJhY3RlciBsaXRlcmFs cyBhcHBlYXIgc3Vycm91bmRlZCBieSBhcG9zdHJvcGhlcy4KCiAgIHByb2NlZHVyZSBHZXRfVW5x dWFsaWZpZWRfRGVjb2RlZF9OYW1lX1N0cmluZyAoSWQgOiBOYW1lX0lkKTsKICAgLS0gIFNpbWls YXIgdG8gdGhlIGFib3ZlIGV4Y2VwdCB0aGF0IHF1YWxpZmljYXRpb24gKGFzIGRlZmluZWQgaW4g dW5pdAogICAtLSAgRXhwX0RidWcpIGlzIHJlbW92ZWQgKGluY2x1ZGluZyBib3RoIHByZWNlZGlu ZyBfXyBkZWxpbWl0ZWQgbmFtZXMsCiAgIC0tICBhbmQgYWxzbyB0aGUgc3VmZml4IHVzZWQgdG8g aW5kaWNhdGUgcGFja2FnZSBib2R5IGVudGl0aWVzKS4gTm90ZQogICAtLSAgdGhhdCBuYW1lcyBh cmUgbm90IHF1YWxpZmllZCB1bnRpbCBqdXN0IGJlZm9yZSB0aGUgY2FsbCB0byBnaWdpLCBzbwog ICAtLSAgdGhpcyByb3V0aW5lIGlzIG9ubHkgbmVlZGVkIGJ5IHByb2Nlc3NpbmcgdGhhdCBvY2N1 cnMgYWZ0ZXIgZ2lnaSBoYXMKICAgLS0gIGJlZW4gY2FsbGVkLiBUaGlzIGluY2x1ZGVzIGFsbCBB U0lTIHByb2Nlc3NpbmcsIHNpbmNlIEFTSVMgd29ya3Mgb24KICAgLS0gIHRoZSB0cmVlIHdyaXR0 ZW4gYWZ0ZXIgZ2lnaSBoYXMgYmVlbiBjYWxsZWQuCgogICBwcm9jZWR1cmUgR2V0X0RlY29kZWRf TmFtZV9TdHJpbmdfV2l0aF9CcmFja2V0cyAoSWQgOiBOYW1lX0lkKTsKICAgLS0gIFRoaXMgcm91 dGluZSBpcyBzaW1pbGFyIHRvIERlY29kZWRfTmFtZSwgZXhjZXB0IHRoYXQgdGhlIGJyYWNrZXRz CiAgIC0tICBub3RhdGlvbiAoVWhoIHJlcGxhY2VkIGJ5IFsiaGgiXSwgV2hoaGggcmVwbGFjZWQg YnkgWyJoaGhoIl0pIGlzCiAgIC0tICB1c2VkIGZvciBhbGwgbm9uLWxvd2VyIGhhbGYgY2hhcmFj dGVycywgcmVnYXJkbGVzcyBvZiB0aGUgc2V0dGluZwogICAtLSAgb2YgT3B0LldpZGVfQ2hhcmFj dGVyX0VuY29kaW5nX01ldGhvZCwgYW5kIGFsc28gaW4gdGhhdCBjaGFyYWN0ZXJzCiAgIC0tICBp biB0aGUgcmFuZ2UgMTYjODAjIC4uIDE2I0ZGIyBhcmUgY29udmVydGVkIHRvIGJyYWNrZXRzIG5v dGF0aW9uCiAgIC0tICBpbiBhbGwgY2FzZXMuIFRoaXMgcm91dGluZSBjYW4gYmUgdXNlZCB3aGVu IHRoZXJlIGlzIGEgcmVxdWlyZW1lbnQKICAgLS0gIGZvciBhIGNhbm9uaWNhbCByZXByZXNlbnRh dGlvbiBub3QgYWZmZWN0ZWQgYnkgdGhlIGNoYXJhY3RlciBzZXQKICAgLS0gIG9wdGlvbnMgKGUu Zy4gaW4gdGhlIGJpbmRlciBnZW5lcmF0aW9uIG9mIHN5bWJvbHMpLgoKICAgZnVuY3Rpb24gR2V0 X05hbWVfVGFibGVfQnl0ZSAoSWQgOiBOYW1lX0lkKSByZXR1cm4gQnl0ZTsKICAgcHJhZ21hIElu bGluZSAoR2V0X05hbWVfVGFibGVfQnl0ZSk7CiAgIC0tICBGZXRjaGVzIHRoZSBCeXRlIHZhbHVl IGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbmFtZQoKICAgZnVuY3Rpb24gR2V0X05hbWVfVGFi bGVfSW5mbyAoSWQgOiBOYW1lX0lkKSByZXR1cm4gSW50OwogICBwcmFnbWEgSW5saW5lIChHZXRf TmFtZV9UYWJsZV9JbmZvKTsKICAgLS0gIEZldGNoZXMgdGhlIEludCB2YWx1ZSBhc3NvY2lhdGVk IHdpdGggdGhlIGdpdmVuIG5hbWUKCiAgIHByb2NlZHVyZSBJbml0aWFsaXplOwogICAtLSAgSW5p dGlhbGl6ZXMgdGhlIG5hbWVzIHRhYmxlLCBpbmNsdWRpbmcgaW5pdGlhbGl6aW5nIHRoZSBmaXJz dCAyNgogICAtLSAgZW50cmllcyBpbiB0aGUgdGFibGUgKGZvciB0aGUgMS1jaGFyYWN0ZXIgbG93 ZXIgY2FzZSBuYW1lcyBhLXopCiAgIC0tICBOb3RlIHRoYXQgSW5pdGlhbGl6ZSBtdXN0IG5vdCBi ZSBjYWxsZWQgaWYgVHJlZV9SZWFkIGlzIHVzZWQuCgogICBwcm9jZWR1cmUgTG9jazsKICAgLS0g IExvY2sgbmFtZSB0YWJsZSBiZWZvcmUgY2FsbGluZyBiYWNrIGVuZC4gU3BhY2UgZm9yIHVwIHRv IDEwIGV4dHJhCiAgIC0tICBuYW1lcyBhbmQgMTAwMCBleHRyYSBjaGFyYWN0ZXJzIGlzIHJlc2Vy dmVkIGJlZm9yZSB0aGUgdGFibGUgaXMgbG9ja2VkLgoKICAgcHJvY2VkdXJlIFVubG9jazsKICAg LS0gIFVubG9ja3MgdGhlIG5hbWUgdGFibGUgdG8gYWxsb3cgdXNlIG9mIHRoZSAxMCBleHRyYSBu YW1lcyBhbmQgMTAwMAogICAtLSAgZXh0cmEgY2hhcmFjdGVycyByZXNlcnZlZCBieSB0aGUgTG9j ayBjYWxsLiBTZWUgZ25hdDFkcnYgZm9yIGRldGFpbHMKICAgLS0gIG9mIHRoZSBuZWVkIGZvciB0 aGlzLgoKICAgZnVuY3Rpb24gTGVuZ3RoX09mX05hbWUgKElkIDogTmFtZV9JZCkgcmV0dXJuIE5h dDsKICAgcHJhZ21hIElubGluZSAoTGVuZ3RoX09mX05hbWUpOwogICAtLSAgUmV0dXJucyBsZW5n dGggb2YgZ2l2ZW4gbmFtZSBpbiBjaGFyYWN0ZXJzLiBUaGlzIGlzIHRoZSBsZW5ndGggb2YgdGhl CiAgIC0tICBlbmNvZGVkIG5hbWUsIGFzIHN0b3JlZCBpbiB0aGUgbmFtZXMgdGFibGUsIHRoZSBy ZXN1bHQgaXMgZXF1aXZhbGVudCB0bwogICAtLSAgY2FsbGluZyBHZXRfTmFtZV9TdHJpbmcgYW5k IHJlYWRpbmcgTmFtZV9MZW4sIGV4Y2VwdCB0aGF0IGEgY2FsbCB0bwogICAtLSAgTGVuZ3RoX09m X05hbWUgZG9lcyBub3QgYWZmZWN0IHRoZSBjb250ZW50cyBvZiBOYW1lX0xlbiBhbmQgTmFtZV9C dWZmZXIuCgogICBmdW5jdGlvbiBOYW1lX0NoYXJzX0FkZHJlc3MgcmV0dXJuIFN5c3RlbS5BZGRy ZXNzOwogICAtLSAgUmV0dXJuIHN0YXJ0aW5nIGFkZHJlc3Mgb2YgbmFtZSBjaGFyYWN0ZXJzIHRh YmxlICh1c2VkIGluIEJhY2tfRW5kCiAgIC0tICBjYWxsIHRvIEdpZ2kpLgoKICAgZnVuY3Rpb24g TmFtZV9GaW5kIHJldHVybiBOYW1lX0lkOwogICAtLSAgTmFtZV9GaW5kIGlzIGNhbGxlZCB3aXRo IGEgc3RyaW5nIHN0b3JlZCBpbiBOYW1lX0J1ZmZlciB3aG9zZSBsZW5ndGgKICAgLS0gIGlzIGlu IE5hbWVfTGVuIChpLmUuIHRoZSBjaGFyYWN0ZXJzIG9mIHRoZSBuYW1lIGFyZSBpbiBzdWJzY3Jp cHQKICAgLS0gIHBvc2l0aW9ucyAxIHRvIE5hbWVfTGVuIGluIE5hbWVfQnVmZmVyKS4gSXQgc2Vh cmNoZXMgdGhlIG5hbWVzCiAgIC0tICB0YWJsZSB0byBzZWUgaWYgdGhlIHN0cmluZyBoYXMgYWxy ZWFkeSBiZWVuIHN0b3JlZC4gSWYgc28gdGhlIElkIG9mCiAgIC0tICB0aGUgZXhpc3RpbmcgZW50 cnkgaXMgcmV0dXJuZWQuIE90aGVyd2lzZSBhIG5ldyBlbnRyeSBpcyBjcmVhdGVkIHdpdGgKICAg LS0gIGl0cyBOYW1lX1RhYmxlX0luZm8gZmllbGQgc2V0IHRvIHplcm8uIFRoZSBjb250ZW50cyBv ZiBOYW1lX0J1ZmZlcgogICAtLSAgYW5kIE5hbWVfTGVuIGFyZSBub3QgbW9kaWZpZWQgYnkgdGhp cyBjYWxsLgoKICAgZnVuY3Rpb24gTmFtZV9FbnRlciByZXR1cm4gTmFtZV9JZDsKICAgLS0gIE5h bWVfRW50ZXIgaGFzIHRoZSBzYW1lIGNhbGxpbmcgaW50ZXJmYWNlIGFzIE5hbWVfRmluZC4gVGhl IGRpZmZlcmVuY2UKICAgLS0gIGlzIHRoYXQgaXQgZG9lcyBub3Qgc2VhcmNoIHRoZSB0YWJsZSBm b3IgYW4gZXhpc3RpbmcgbWF0Y2gsIGFuZCBhbHNvCiAgIC0tICBzdWJzZXF1ZW50IE5hbWVfRmlu ZCBjYWxscyB1c2luZyB0aGUgc2FtZSBuYW1lIHdpbGwgbm90IGxvY2F0ZSB0aGUKICAgLS0gIGVu dHJ5IGNyZWF0ZWQgYnkgdGhpcyBjYWxsLiBUaHVzIG11bHRpcGxlIGNhbGxzIHRvIE5hbWVfRW50 ZXIgd2l0aCB0aGUKICAgLS0gIHNhbWUgbmFtZSB3aWxsIGNyZWF0ZSBtdWx0aXBsZSBlbnRyaWVz IGluIHRoZSBuYW1lIHRhYmxlIHdpdGggZGlmZmVyZW50CiAgIC0tICBOYW1lX0lkIHZhbHVlcy4g VGhpcyBpcyB1c2VmdWwgaW4gdGhlIGNhc2Ugb2YgY3JlYXRlZCBuYW1lcywgd2hpY2ggYXJlCiAg IC0tICBuZXZlciBleHBlY3RlZCB0byBiZSBsb29rZWQgdXAuIE5vdGU6IE5hbWVfRW50ZXIgc2hv dWxkIG5ldmVyIGJlIHVzZWQKICAgLS0gIGZvciBvbmUgY2hhcmFjdGVyIG5hbWVzLCBzaW5jZSB0 aGVzZSBhcmUgZWZmaWNpZW50bHkgbG9jYXRlZCB3aXRob3V0CiAgIC0tICBoYXNoaW5nIGJ5IE5h bWVfRmluZCBpbiBhbnkgY2FzZS4KCiAgIGZ1bmN0aW9uIE5hbWVfRW50cmllc19BZGRyZXNzIHJl dHVybiBTeXN0ZW0uQWRkcmVzczsKICAgLS0gIFJldHVybiBzdGFydGluZyBhZGRyZXNzIG9mIE5h bWVzIHRhYmxlLiBVc2VkIGluIEJhY2tfRW5kIGNhbGwgdG8gR2lnaS4KCiAgIGZ1bmN0aW9uIE5h bWVfRW50cmllc19Db3VudCByZXR1cm4gTmF0OwogICAtLSAgUmV0dXJuIGN1cnJlbnQgbnVtYmVy IG9mIGVudHJpZXMgaW4gdGhlIG5hbWVzIHRhYmxlCgogICBmdW5jdGlvbiBJc19PS19JbnRlcm5h bF9MZXR0ZXIgKEMgOiBDaGFyYWN0ZXIpIHJldHVybiBCb29sZWFuOwogICBwcmFnbWEgSW5saW5l IChJc19PS19JbnRlcm5hbF9MZXR0ZXIpOwogICAtLSAgUmV0dXJucyB0cnVlIGlmIEMgaXMgYSBz dWl0YWJsZSBjaGFyYWN0ZXIgZm9yIHVzaW5nIGFzIGEgcHJlZml4IG9yIGEKICAgLS0gIHN1ZmZp eCBvZiBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBuYW1lLCBpLmUuIGl0IGlzIGFuIHVwcGVyIGNh c2UgbGV0dGVyCiAgIC0tICBvdGhlciB0aGFuIG9uZSBvZiB0aGUgb25lcyB1c2VkIGZvciBlbmNv ZGluZyBzb3VyY2UgbmFtZXMgKGN1cnJlbnRseQogICAtLSAgdGhlIHNldCBvZiByZXNlcnZlZCBs ZXR0ZXJzIGlzIE8sIFEsIFUsIFcpIGFuZCBhbHNvIHJldHVybnMgRmFsc2UgZm9yCiAgIC0tICB0 aGUgbGV0dGVyIFgsIHdoaWNoIGlzIHJlc2VydmVkIGZvciBkZWJ1ZyBvdXRwdXQgKHNlZSBFeHBf RGJ1ZykuCgogICBmdW5jdGlvbiBJc19JbnRlcm5hbF9OYW1lIChJZCA6IE5hbWVfSWQpIHJldHVy biBCb29sZWFuOwogICAtLSAgUmV0dXJucyBUcnVlIGlmIHRoZSBuYW1lIGlzIGFuIGludGVybmFs IG5hbWUgKGkuZS4gY29udGFpbnMgYSBjaGFyYWN0ZXIKICAgLS0gIGZvciB3aGljaCBJc19PS19J bnRlcm5hbF9MZXR0ZXIgaXMgdHJ1ZSwgb3IgaWYgdGhlIG5hbWUgc3RhcnRzIG9yIGVuZHMKICAg LS0gIHdpdGggYW4gdW5kZXJzY29yZS4gVGhpcyBjYWxsIGRlc3Ryb3lzIHRoZSB2YWx1ZSBvZiBO YW1lX0xlbiBhbmQKICAgLS0gIE5hbWVfQnVmZmVyIChpdCBsb2FkcyB0aGVzZSBhcyBmb3IgR2V0 X05hbWVfU3RyaW5nKS4KICAgLS0KICAgLS0gIE5vdGU6IGlmIHRoZSBuYW1lIGlzIHF1YWxpZmll ZCAoaGFzIGEgZG91YmxlIHVuZGVyc2NvcmUpLCB0aGVuCiAgIC0tICBvbmx5IHRoZSBmaW5hbCBl bnRpdHkgbmFtZSBpcyBjb25zaWRlcmVkLCBub3QgdGhlIHF1YWxpZnlpbmcKICAgLS0gIG5hbWVz LiBDb25zaWRlciBmb3IgZXhhbXBsZSB0aGF0IHRoZSBuYW1lOgogICAtLQogICAtLSAgICBwa2df X0JfMV9feHl6CiAgIC0tCiAgIC0tICBpcyBub3QgYW4gaW50ZXJuYWwgbmFtZSwgYmVjYXVzZSB0 aGUgQiBjb21lcyBmcm9tIHRoZSBpbnRlcm5hbAogICAtLSAgbmFtZSBvZiBhIHF1YWxpZnlpbmcg YmxvY2ssIGJ1dCB0aGUgeHl6IG1lYW5zIHRoYXQgdGhpcyB3YXMKICAgLS0gIGluZGVlZCBhIGRl Y2xhcmVkIGlkZW50aWZpZXIgY2FsbGVkICJ4eXoiIHdpdGhpbiB0aGlzIGJsb2NrCiAgIC0tICBh bmQgdGhlcmUgaXMgbm90aGluZyBpbnRlcm5hbCBhYm91dCB0aGF0IG5hbWUuCgogICBmdW5jdGlv biBJc19JbnRlcm5hbF9OYW1lIHJldHVybiBCb29sZWFuOwogICAtLSAgTGlrZSB0aGUgZm9ybSB3 aXRoIGFuIElkIGFyZ3VtZW50LCBleGNlcHQgdGhhdCB0aGUgbmFtZSB0byBiZSB0ZXN0ZWQgaXMK ICAgLS0gIHBhc3NlZCBpbiBOYW1lX0J1ZmZlciBhbmQgTmFtZV9MZW4gKHdoaWNoIGFyZSBub3Qg YWZmZWN0ZWQgYnkgdGhlIGNhbGwpLgogICAtLSAgTmFtZV9CdWZmZXIgKGl0IGxvYWRzIHRoZXNl IGFzIGZvciBHZXRfTmFtZV9TdHJpbmcpLgoKICAgcHJvY2VkdXJlIFJlc2V0X05hbWVfVGFibGU7 CiAgIC0tICBUaGlzIHByb2NlZHVyZSBpcyB1c2VkIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHNv dXJjZSBmaWxlcyB0byByZXNldAogICAtLSAgdGhlIG5hbWUgdGFibGUgaW5mbyBlbnRyaWVzIGFz c29jaWF0ZWQgd2l0aCBjdXJyZW50IGVudHJpZXMgaW4gdGhlCiAgIC0tICBuYW1lcyB0YWJsZS4g VGhlcmUgaXMgbm8gaGFybSBpbiBrZWVwaW5nIHRoZSBuYW1lcyBlbnRyaWVzIHRoZW1zZWx2ZXMK ICAgLS0gIGZyb20gb25lIGNvbXBpbGF0aW9uIHRvIGFub3RoZXIsIGJ1dCB3ZSBjYW4ndCBrZWVw IHRoZSBlbnRpdHkgaW5mbywKICAgLS0gIHNpbmNlIHRoaXMgcmVmZXJzIHRvIHRyZWUgbm9kZXMs IHdoaWNoIGFyZSBkZXN0cm95ZWQgYmV0d2VlbiBlYWNoCiAgIC0tICBtYWluIHNvdXJjZSBmaWxl LgoKICAgcHJvY2VkdXJlIEFkZF9DaGFyX1RvX05hbWVfQnVmZmVyIChDIDogQ2hhcmFjdGVyKTsK ICAgcHJhZ21hIElubGluZSAoQWRkX0NoYXJfVG9fTmFtZV9CdWZmZXIpOwogICAtLSAgQWRkIGdp dmVuIGNoYXJhY3RlciB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcgY3VycmVudGx5IHN0b3JlZCBp biB0aGUKICAgLS0gIE5hbWVfQnVmZmVyLCBpbmNyZW1lbnRpbmcgTmFtZV9MZW4uCgogICBwcm9j ZWR1cmUgQWRkX05hdF9Ub19OYW1lX0J1ZmZlciAoViA6IE5hdCk7CiAgIC0tICBBZGQgZGVjaW1h bCByZXByZXNlbnRhdGlvbiBvZiBnaXZlbiB2YWx1ZSB0byB0aGUgZW5kIG9mIHRoZSBzdHJpbmcK ICAgLS0gIGN1cnJlbnRseSBzdG9yZWQgaW4gTmFtZV9CdWZmZXIsIGluY3JlbWVudGluZyBOYW1l X0xlbiBhcyByZXF1aXJlZC4KCiAgIHByb2NlZHVyZSBBZGRfU3RyX1RvX05hbWVfQnVmZmVyIChT IDogU3RyaW5nKTsKICAgLS0gIEFkZCBjaGFyYWN0ZXJzIG9mIHN0cmluZyBTIHRvIHRoZSBlbmQg b2YgdGhlIHN0cmluZyBjdXJyZW50bHkgc3RvcmVkCiAgIC0tICBpbiB0aGUgTmFtZV9CdWZmZXIs IGluY3JlbWVudGluZyBOYW1lX0xlbiBieSB0aGUgbGVuZ3RoIG9mIHRoZSBzdHJpbmcuCgogICBw cm9jZWR1cmUgU2V0X0NoYXJhY3Rlcl9MaXRlcmFsX05hbWUgKEMgOiBDaGFyX0NvZGUpOwogICAt LSAgVGhpcyBwcm9jZWR1cmUgc2V0cyB0aGUgcHJvcGVyIGVuY29kZWQgbmFtZSBmb3IgdGhlIGNo YXJhY3RlciBsaXRlcmFsCiAgIC0tICBmb3IgdGhlIGdpdmVuIGNoYXJhY3RlciBjb2RlLiBPbiBy ZXR1cm4gTmFtZV9CdWZmZXIgYW5kIE5hbWVfTGVuIGFyZQogICAtLSAgc2V0IHRvIHJlZmxlY3Qg dGhlIHN0b3JlZCBuYW1lLgoKICAgcHJvY2VkdXJlIFNldF9OYW1lX1RhYmxlX0luZm8gKElkIDog TmFtZV9JZDsgVmFsIDogSW50KTsKICAgcHJhZ21hIElubGluZSAoU2V0X05hbWVfVGFibGVfSW5m byk7CiAgIC0tICBTZXRzIHRoZSBJbnQgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSBnaXZlbiBu YW1lCgogICBwcm9jZWR1cmUgU2V0X05hbWVfVGFibGVfQnl0ZSAoSWQgOiBOYW1lX0lkOyBWYWwg OiBCeXRlKTsKICAgcHJhZ21hIElubGluZSAoU2V0X05hbWVfVGFibGVfQnl0ZSk7CiAgIC0tICBT ZXRzIHRoZSBCeXRlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gbmFtZQoKICAgcHJv Y2VkdXJlIFN0b3JlX0VuY29kZWRfQ2hhcmFjdGVyIChDIDogQ2hhcl9Db2RlKTsKICAgLS0gIFN0 b3JlcyBnaXZlbiBjaGFyYWN0ZXIgY29kZSBhdCB0aGUgZW5kIG9mIE5hbWVfQnVmZmVyLCB1cGRh dGluZyB0aGUKICAgLS0gIHZhbHVlIGluIE5hbWVfTGVuIGFwcHJvcHJpYXRlbHkuIExvd2VyIGNh c2UgbGV0dGVycyBhbmQgZGlnaXRzIGFyZQogICAtLSAgc3RvcmVkIHVuY2hhbmdlZC4gT3RoZXIg OC1iaXQgY2hhcmFjdGVycyBhcmUgc3RvcmVkIHVzaW5nIHRoZSBVaGgKICAgLS0gIGVuY29kaW5n IChoaCA9IGhleCBjb2RlKSwgYW5kIG90aGVyIDE2LWJpdCB3aWRlLWNoYXJhY3RlciB2YWx1ZXMK ICAgLS0gIGFyZSBzdG9yZWQgdXNpbmcgdGhlIFdoaGhoIChoaGhoID0gaGV4IGNvZGUpIGVuY29k aW5nLiBOb3RlIHRoYXQKICAgLS0gIHRoaXMgcHJvY2VkdXJlIGRvZXMgbm90IGZvbGQgdXBwZXIg Y2FzZSBsZXR0ZXJzICh0aGV5IGFyZSBzdG9yZWQKICAgLS0gIHVzaW5nIHRoZSBVaGggZW5jb2Rp bmcpLiBJZiBmb2xkaW5nIGlzIHJlcXVpcmVkLCBpdCBtdXN0IGJlIGRvbmUKICAgLS0gIGJ5IHRo ZSBjYWxsZXIgcHJpb3IgdG8gdGhlIGNhbGwuCgogICBwcm9jZWR1cmUgVHJlZV9SZWFkOwogICAt LSAgSW5pdGlhbGl6ZXMgaW50ZXJuYWwgdGFibGVzIGZyb20gY3VycmVudCB0cmVlIGZpbGUgdXNp bmcgVHJlZV9SZWFkLgogICAtLSAgTm90ZSB0aGF0IEluaXRpYWxpemUgc2hvdWxkIG5vdCBiZSBj YWxsZWQgaWYgVHJlZV9SZWFkIGlzIHVzZWQuCiAgIC0tICBUcmVlX1JlYWQgaW5jbHVkZXMgYWxs IG5lY2Vzc2FyeSBpbml0aWFsaXphdGlvbi4KCiAgIHByb2NlZHVyZSBUcmVlX1dyaXRlOwogICAt LSAgV3JpdGVzIG91dCBpbnRlcm5hbCB0YWJsZXMgdG8gY3VycmVudCB0cmVlIGZpbGUgdXNpbmcg VHJlZV9Xcml0ZQoKICAgcHJvY2VkdXJlIFdyaXRlX05hbWUgKElkIDogTmFtZV9JZCk7CiAgIC0t ICBXcml0ZV9OYW1lIHdyaXRlcyB0aGUgY2hhcmFjdGVycyBvZiB0aGUgc3BlY2lmaWVkIG5hbWUg dXNpbmcgdGhlCiAgIC0tICBzdGFuZGFyZCBvdXRwdXQgcHJvY2VkdXJlcyBpbiBwYWNrYWdlIE91 dHB1dC4gTm8gZW5kIG9mIGxpbmUgaXMKICAgLS0gIHdyaXR0ZW4sIGp1c3QgdGhlIGNoYXJhY3Rl cnMgb2YgdGhlIG5hbWUuIE9uIHJldHVybiBOYW1lX0J1ZmZlciBhbmQKICAgLS0gIE5hbWVfTGVu IGFyZSBzZXQgYXMgZm9yIGEgY2FsbCB0byBHZXRfTmFtZV9TdHJpbmcuIFRoZSBuYW1lIGlzIHdy aXR0ZW4KICAgLS0gIGluIGVuY29kZWQgZm9ybSAoaS5lLiBpbmNsdWRpbmcgVWhoLCBXaGhoLCBR eCwgX29wIGFzIHRoZXkgYXBwZWFyIGluCiAgIC0tICB0aGUgbmFtZSB0YWJsZSkuIElmIElkIGlz IEVycm9yX05hbWUsIG9yIE5vX05hbWUsIG5vIHRleHQgaXMgb3V0cHV0LgoKICAgcHJvY2VkdXJl IHduIChJZCA6IE5hbWVfSWQpOwogICAtLSAgTGlrZSBXcml0ZV9OYW1lLCBidXQgaW5jbHVkZXMg bmV3IGxpbmUgYXQgZW5kLiBJbnRlbmRlZCBmb3IgdXNlCiAgIC0tICBmcm9tIHRoZSBkZWJ1Z2dl ciBvbmx5LgoKICAgcHJvY2VkdXJlIFdyaXRlX05hbWVfRGVjb2RlZCAoSWQgOiBOYW1lX0lkKTsK ICAgLS0gIExpa2UgV3JpdGVfTmFtZSwgZXhjZXB0IHRoYXQgdGhlIG5hbWUgd3JpdHRlbiBpcyB0 aGUgZGVjb2RlZCBuYW1lLCBhcwogICAtLSAgZGVzY3JpYmVkIGZvciBHZXRfTmFtZV9EZWNvZGVk LCBhbmQgdGhlIHJlc3VsdGluZyB2YWx1ZSBzdG9yZWQgaW4KICAgLS0gIE5hbWVfTGVuIGFuZCBO YW1lX0J1ZmZlciBpcyB0aGUgZGVjb2RlZCBuYW1lLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgIC0tIFRhYmxlIERhdGEgU3RydWN0dXJlcyAtLQogICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KCiAgIC0tICBUaGUgZm9sbG93aW5nIGRlY2xhcmF0aW9ucyBkZWZpbmUgdGhl IGRhdGEgc3RydWN0dXJlcyB1c2VkIHRvIHN0b3JlCiAgIC0tICBuYW1lcy4gVGhlIGRlZmluaXRp b25zIGFyZSBpbiB0aGUgcHJpdmF0ZSBwYXJ0IG9mIHRoZSBwYWNrYWdlIHNwZWMsCiAgIC0tICBy YXRoZXIgdGhhbiB0aGUgYm9keSwgc2luY2UgdGhleSBhcmUgcmVmZXJlbmNlZCBkaXJlY3RseSBi eSBnaWdpLgoKcHJpdmF0ZQoKICAgLS0gIFRoaXMgdGFibGUgc3RvcmVzIHRoZSBhY3R1YWwgc3Ry aW5nIG5hbWVzLiBBbHRob3VnaCBsb2dpY2FsbHkgdGhlcmUKICAgLS0gIGlzIG5vIG5lZWQgZm9y IGEgdGVybWluYXRpbmcgY2hhcmFjdGVyIChzaW5jZSB0aGUgbGVuZ3RoIGlzIHN0b3JlZAogICAt LSAgaW4gdGhlIG5hbWUgZW50cnkgdGFibGUpLCB3ZSBzdGlsbCBzdG9yZSBhIE5VTCBjaGFyYWN0 ZXIgYXQgdGhlIGVuZAogICAtLSAgb2YgZXZlcnkgbmFtZSAoZm9yIGNvbnZlbmllbmNlIGluIGlu dGVyZmFjaW5nIHRvIHRoZSBDIHdvcmxkKS4KCiAgIHBhY2thZ2UgTmFtZV9DaGFycyBpcyBuZXcg VGFibGUuVGFibGUgKAogICAgIFRhYmxlX0NvbXBvbmVudF9UeXBlID0+IENoYXJhY3RlciwKICAg ICBUYWJsZV9JbmRleF9UeXBlICAgICA9PiBJbnQsCiAgICAgVGFibGVfTG93X0JvdW5kICAgICAg PT4gMCwKICAgICBUYWJsZV9Jbml0aWFsICAgICAgICA9PiBBbGxvYy5OYW1lX0NoYXJzX0luaXRp YWwsCiAgICAgVGFibGVfSW5jcmVtZW50ICAgICAgPT4gQWxsb2MuTmFtZV9DaGFyc19JbmNyZW1l bnQsCiAgICAgVGFibGVfTmFtZSAgICAgICAgICAgPT4gIk5hbWVfQ2hhcnMiKTsKCiAgIHR5cGUg TmFtZV9FbnRyeSBpcyByZWNvcmQKICAgICAgTmFtZV9DaGFyc19JbmRleCA6IEludDsKICAgICAg LS0gIFN0YXJ0aW5nIGxvY2F0aW9uIG9mIGNoYXJhY3RlcnMgaW4gdGhlIE5hbWVfQ2hhcnMgdGFi bGUgbWludXMKICAgICAgLS0gIG9uZSAoaS5lLiBwb2ludGVyIHRvIGNoYXJhY3RlciBqdXN0IGJl Zm9yZSBmaXJzdCBjaGFyYWN0ZXIpLiBUaGUKICAgICAgLS0gIHJlYXNvbiBmb3IgdGhlIGJpYXMg b2Ygb25lIGlzIHRoYXQgaW5kZXhlcyBpbiBOYW1lX0J1ZmZlciBhcmUKICAgICAgLS0gIG9uZSdz IG9yaWdpbiwgc28gdGhpcyBhdm9pZHMgdW5uZWNlc3NhcnkgYWRkcyBhbmQgc3VidHJhY3RzIG9m IDEuCgogICAgICBOYW1lX0xlbiA6IFNob3J0OwogICAgICAtLSAgTGVuZ3RoIG9mIHRoaXMgbmFt ZSBpbiBjaGFyYWN0ZXJzCgogICAgICBCeXRlX0luZm8gOiBCeXRlOwogICAgICAtLSAgQnl0ZSB2 YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBuYW1lCgogICAgICBIYXNoX0xpbmsgOiBOYW1lX0lk OwogICAgICAtLSAgTGluayB0byBuZXh0IGVudHJ5IGluIG5hbWVzIHRhYmxlIGZvciBzYW1lIGhh c2ggY29kZQoKICAgICAgSW50X0luZm8gOiBJbnQ7CiAgICAgIC0tICBJbnQgVmFsdWUgYXNzb2Np YXRlZCB3aXRoIHRoaXMgbmFtZQogICBlbmQgcmVjb3JkOwoKICAgLS0gIFRoaXMgaXMgdGhlIHRh YmxlIHRoYXQgaXMgcmVmZXJlbmNlZCBieSBOYW1lX0lkIGVudHJpZXMuCiAgIC0tICBJdCBjb250 YWlucyBvbmUgZW50cnkgZm9yIGVhY2ggdW5pcXVlIG5hbWUgaW4gdGhlIHRhYmxlLgoKICAgcGFj a2FnZSBOYW1lX0VudHJpZXMgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAgICBUYWJsZV9Db21wb25l bnRfVHlwZSA9PiBOYW1lX0VudHJ5LAogICAgIFRhYmxlX0luZGV4X1R5cGUgICAgID0+IE5hbWVf SWQsCiAgICAgVGFibGVfTG93X0JvdW5kICAgICAgPT4gRmlyc3RfTmFtZV9JZCwKICAgICBUYWJs ZV9Jbml0aWFsICAgICAgICA9PiBBbGxvYy5OYW1lc19Jbml0aWFsLAogICAgIFRhYmxlX0luY3Jl bWVudCAgICAgID0+IEFsbG9jLk5hbWVzX0luY3JlbWVudCwKICAgICBUYWJsZV9OYW1lICAgICAg ICAgICA9PiAiTmFtZV9FbnRyaWVzIik7CgplbmQgTmFtZXQ7Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgR05BVCBD T01QSUxFUiBDT01QT05FTlRTICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPIFUgVCBQIFUgVCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0t ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyBwIGUgYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgJFJldmlzaW9uOiAxLjEuMTYuMSAkCi0tICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAt LQotLSAgICAgICAgICBDb3B5cmlnaHQgKEMpIDE5OTItMjAwMSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4gICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgaXMg ZnJlZSBzb2Z0d2FyZTsgIHlvdSBjYW4gIHJlZGlzdHJpYnV0ZSBpdCAgYW5kL29yIG1vZGlmeSBp dCB1bmRlciAtLQotLSB0ZXJtcyBvZiB0aGUgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCAgYnkgdGhlIEZyZWUgU29mdC0gLS0KLS0gd2FyZSAgRm91bmRhdGlvbjsgIGVp dGhlciB2ZXJzaW9uIDIsICBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXItIC0tCi0t IHNpb24uICBHTkFUIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dCBXSVRILSAtLQotLSBPVVQgQU5ZIFdBUlJBTlRZOyAgd2l0aG91dCBldmVuIHRo ZSAgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgLS0KLS0gb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIC0tCi0tIGZvciAgbW9yZSBkZXRhaWxzLiAgWW91IHNob3VsZCBoYXZlICByZWNlaXZlZCAg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCAtLQotLSBQdWJsaWMgTGljZW5zZSAgZGlzdHJpYnV0 ZWQgd2l0aCBHTkFUOyAgc2VlIGZpbGUgQ09QWUlORy4gIElmIG5vdCwgd3JpdGUgLS0KLS0gdG8g IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sICA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz MzAsICBCb3N0b24sIC0tCi0tIE1BIDAyMTExLTEzMDcsIFVTQS4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgIGlmIG90aGVyIGZpbGVzICBpbnN0YW50aWF0 ZSAgZ2VuZXJpY3MgZnJvbSB0aGlzIC0tCi0tIHVuaXQsIG9yIHlvdSBsaW5rICB0aGlzIHVuaXQg d2l0aCBvdGhlciBmaWxlcyAgdG8gcHJvZHVjZSBhbiBleGVjdXRhYmxlLCAtLQotLSB0aGlzICB1 bml0ICBkb2VzIG5vdCAgYnkgaXRzZWxmIGNhdXNlICB0aGUgcmVzdWx0aW5nICBleGVjdXRhYmxl ICB0byAgYmUgLS0KLS0gY292ZXJlZCAgYnkgdGhlICBHTlUgIEdlbmVyYWwgIFB1YmxpYyAgTGlj ZW5zZS4gIFRoaXMgZXhjZXB0aW9uIGRvZXMgbm90IC0tCi0tIGhvd2V2ZXIgaW52YWxpZGF0ZSAg YW55IG90aGVyIHJlYXNvbnMgd2h5ICB0aGUgZXhlY3V0YWJsZSBmaWxlICBtaWdodCBiZSAtLQot LSBjb3ZlcmVkIGJ5IHRoZSAgR05VIFB1YmxpYyBMaWNlbnNlLiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEdOQVQgd2FzIG9y aWdpbmFsbHkgZGV2ZWxvcGVkICBieSB0aGUgR05BVCB0ZWFtIGF0ICBOZXcgWW9yayBVbml2ZXJz aXR5LiAtLQotLSBFeHRlbnNpdmUgY29udHJpYnV0aW9ucyB3ZXJlIHByb3ZpZGVkIGJ5IEFkYSBD b3JlIFRlY2hub2xvZ2llcyBJbmMuICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQoKLS0gIFRoaXMgcGFja2FnZSBjb250YWlucyBsb3cgbGV2ZWwgb3V0 cHV0IHJvdXRpbmVzIHVzZWQgYnkgdGhlIGNvbXBpbGVyCi0tICBmb3Igd3JpdGluZyBlcnJvciBt ZXNzYWdlcyBhbmQgaW5mb3JtYXRpb25hbCBvdXRwdXQuIEl0IGlzIGFsc28gdXNlZAotLSAgYnkg dGhlIGRlYnVnIHNvdXJjZSBmaWxlIG91dHB1dCByb3V0aW5lcyAoc2VlIFNwcmludGYuUHJpbnRf RW9sKS4KCndpdGggVHlwZXM7IHVzZSBUeXBlczsKCnBhY2thZ2UgT3V0cHV0IGlzCnByYWdtYSBF bGFib3JhdGVfQm9keSAoT3V0cHV0KTsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAg LS0gTGluZSBCdWZmZXIgQ29udHJvbCAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgog ICAtLSAgTm90ZTogdGhlIGZvbGxvd2luZyBidWZmZXIgYW5kIGNvbHVtbiBwb3NpdGlvbiBhcmUg bWFpbnRhaW5lZCBieQogICAtLSAgdGhlIHN1YnByb2dyYW1zIGRlZmluZWQgaW4gdGhpcyBwYWNr YWdlLCBhbmQgYXJlIG5vdCBub3JtYWxseQogICAtLSAgZGlyZWN0bHkgbW9kaWZpZWQgb3IgYWNj ZXNzZWQgYnkgYSBjbGllbnQuIEhvd2V2ZXIsIGEgY2xpZW50IGlzCiAgIC0tICBwZXJtaXR0ZWQg dG8gbW9kaWZ5IHRoZXNlIHZhbHVlcywgdXNpbmcgdGhlIGtub3dsZWRnZSB0aGF0IG9ubHkKICAg LS0gIFdyaXRlX0VvbCBhY3R1YWxseSBnZW5lcmF0ZXMgYW55IG91dHB1dC4KCiAgIEJ1ZmZlcl9N YXggOiBjb25zdGFudCA6PSA4MTkyOwogICBCdWZmZXIgICAgIDogU3RyaW5nICgxIC4uIEJ1ZmZl cl9NYXggKyAxKTsKICAgLS0gIEJ1ZmZlciB1c2VkIHRvIGJ1aWxkIG91dHB1dCBsaW5lLiBXZSBk byBsaW5lIGJ1ZmZlcmluZyBiZWNhdXNlIGl0CiAgIC0tICBpcyBuZWVkZWQgZm9yIHRoZSBzdXBw b3J0IG9mIHRoZSBkZWJ1Zy1nZW5lcmF0ZWQtY29kZSBvcHRpb24gKC1nbmF0RCkuCiAgIC0tICBI aXN0b3JpY2FsbHkgaXQgd2FzIGZpcnN0IGFkZGVkIGJlY2F1c2Ugb24gVk1TLCBsaW5lIGJ1ZmZl cmluZyBpcwogICAtLSAgbmVlZGVkIHdpdGggY2VydGFpbiBmaWxlIGZvcm1hdHMuIFNvIGluIGFu eSBjYXNlIGxpbmUgYnVmZmVyaW5nIG11c3QKICAgLS0gIGJlIHJldGFpbmVkIGZvciB0aGlzIHB1 cnBvc2UsIGV2ZW4gaWYgb3RoZXIgcmVhc29ucyBkaXNhcHBlYXIuIE5vdGUKICAgLS0gIGFueSBh dHRlbXB0IHRvIHdyaXRlIG1vcmUgb3V0cHV0IHRvIGEgbGluZSB0aGFuIGNhbiBmaXQgaW4gdGhl IGJ1ZmZlcgogICAtLSAgd2lsbCBiZSBzaWxlbnRseSBpZ25vcmVkLgoKICAgQ29sdW1uIDogUG9z IHJhbmdlIDEgLi4gQnVmZmVyJ0xlbmd0aCArIDEgOj0gMTsKICAgLS0gIENvbHVtbiBhYm91dCB0 byBiZSB3cml0dGVuLgoKICAgLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU3VicHJvZ3JhbXMgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfU3RhbmRhcmRfRXJyb3I7CiAg IC0tICBTZXRzIHN1YnNlcXVlbnQgb3V0cHV0IHRvIGFwcGVhciBvbiB0aGUgc3RhbmRhcmQgZXJy b3IgZmlsZSAod2hhdGV2ZXIKICAgLS0gIHRoYXQgbWlnaHQgbWVhbiBmb3IgdGhlIGhvc3Qgb3Bl cmF0aW5nIHN5c3RlbSwgaWYgYW55dGhpbmcpLgoKICAgcHJvY2VkdXJlIFNldF9TdGFuZGFyZF9P dXRwdXQ7CiAgIC0tICBTZXRzIHN1YnNlcXVlbnQgb3V0cHV0IHRvIGFwcGVhciBvbiB0aGUgc3Rh bmRhcmQgb3V0cHV0IGZpbGUgKHdoYXRldmVyCiAgIC0tICB0aGF0IG1pZ2h0IG1lYW4gZm9yIHRo ZSBob3N0IG9wZXJhdGluZyBzeXN0ZW0sIGlmIGFueXRoaW5nKS4gVGhpcyBpcwogICAtLSAgdGhl IGRlZmF1bHQgbW9kZSBiZWZvcmUgYW55IGNhbGwgdG8gZWl0aGVyIG9mIHRoZSBTZXQgcHJvY2Vk dXJlcy4KCiAgIHByb2NlZHVyZSBXcml0ZV9DaGFyIChDIDogQ2hhcmFjdGVyKTsKICAgLS0gIFdy aXRlIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIHN0YW5kYXJkIG91dHB1dCBmaWxlLiBOb3RlIHRoYXQg dGhlCiAgIC0tICBjaGFyYWN0ZXIgc2hvdWxkIG5vdCBiZSBMRiBvciBDUiAodXNlIFdyaXRlX0Vv bCBmb3IgZW5kIG9mIGxpbmUpCgogICBwcm9jZWR1cmUgV3JpdGVfRW9sOwogICAtLSAgV3JpdGUg YW4gZW5kIG9mIGxpbmUgKHdoYXRldmVyIGlzIHJlcXVpcmVkIGJ5IHRoZSBzeXN0ZW0gaW4gdXNl LAogICAtLSAgZS5nLiBDUi9MRiBmb3IgRE9TLCBvciBMRiBmb3IgVW5peCkgdG8gdGhlIHN0YW5k YXJkIG91dHB1dCBmaWxlLgogICAtLSAgVGhpcyByb3V0aW5lIGFsc28gZW1wdGllcyB0aGUgbGlu ZSBidWZmZXIsIGFjdHVhbGx5IHdyaXRpbmcgaXQKICAgLS0gIHRvIHRoZSBmaWxlLiBOb3RlIHRo YXQgV3JpdGVfRW9sIGlzIHRoZSBvbmx5IHJvdXRpbmUgdGhhdCBjYXVzZXMKICAgLS0gIGFueSBh Y3R1YWwgb3V0cHV0IHRvIGJlIHdyaXR0ZW4uCgogICBwcm9jZWR1cmUgV3JpdGVfSW50IChWYWwg OiBJbnQpOwogICAtLSAgV3JpdGUgYW4gaW50ZWdlciB2YWx1ZSB3aXRoIG5vIGxlYWRpbmcgYmxh bmtzIG9yIHplcm9lcy4gTmVnYXRpdmUKICAgLS0gIHZhbHVlcyBhcmUgcHJlY2VkZWQgYnkgYSBt aW51cyBzaWduKS4KCiAgIHByb2NlZHVyZSBXcml0ZV9TdHIgKFMgOiBTdHJpbmcpOwogICAtLSAg V3JpdGUgYSBzdHJpbmcgb2YgY2hhcmFjdGVycyB0byB0aGUgc3RhbmRhcmQgb3V0cHV0IGZpbGUu IE5vdGUgdGhhdAogICAtLSAgZW5kIG9mIGxpbmUgaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IHVzaW5n IFdSSVRFX0VPTCwgc28gdGhlIHN0cmluZwogICAtLSAgc2hvdWxkIG5vdCBjb250YWluIGVpdGhl ciBvZiB0aGUgY2hhcmFjdGVycyBMRiBvciBDUiwgYnV0IGl0IG1heQogICAtLSAgY29udGFpbiBo b3Jpem9udGFsIHRhYiBjaGFyYWN0ZXJzLgoKICAgcHJvY2VkdXJlIFdyaXRlX0xpbmUgKFMgOiBT dHJpbmcpOwogICAtLSAgRXF1aXZhbGVudCB0byBXcml0ZV9TdHIgKFMpIGZvbGxvd2VkIGJ5IFdy aXRlX0VvbDsKCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIERlYnVnZ2luZyBQ cm9jZWR1cmVzIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhlIGZv bGxvd2luZyBwcm9jZWR1cmVzIGFyZSBpbnRlbmRlZCBvbmx5IGZvciBkZWJ1Z2dpbmcgcHVycG9z ZXMsCiAgIC0tICBmb3IgdGVtcG9yYXJ5IGluc2VydGlvbiBpbnRvIHRoZSB0ZXh0IGluIGVudmly b25tZW50cyB3aGVyZSBhIGRlYnVnZ2VyCiAgIC0tICBpcyBub3QgYXZhaWxhYmxlLiBUaGV5IGFs bCBoYXZlIG5vbi1zdGFuZGFyZCB2ZXJ5IHNob3J0IGxvd2VyIGNhc2UKICAgLS0gIG5hbWVzLCBw cmVjaXNlbHkgdG8gbWFrZSBzdXJlIHRoYXQgdGhleSBhcmUgb25seSB1c2VkIGZvciBkZWJ1Z2dp bmchCgogICBwcm9jZWR1cmUgdyAoQyA6IENoYXJhY3Rlcik7CiAgIC0tICBEdW1wIHF1b3RlLCBj aGFyYWN0ZXIgcXVvdGUsIGZvbGxvd2VkIGJ5IGxpbmUgcmV0dXJuCgogICBwcm9jZWR1cmUgdyAo UyA6IFN0cmluZyk7CiAgIC0tICBEdW1wIHN0cmluZyBmb2xsb3dlZCBieSBsaW5lIHJldHVybgoK ICAgcHJvY2VkdXJlIHcgKFYgOiBJbnQpOwogICAtLSAgRHVtcCBpbnRlZ2VyIGZvbGxvd2VkIGJ5 IGxpbmUgcmV0dXJuCgogICBwcm9jZWR1cmUgdyAoQiA6IEJvb2xlYW4pOwogICAtLSAgRHVtcCBC b29sZWFuIGZvbGxvd2VkIGJ5IGxpbmUgcmV0dXJuCgogICBwcm9jZWR1cmUgdyAoTCA6IFN0cmlu ZzsgQyA6IENoYXJhY3Rlcik7CiAgIC0tICBEdW1wIGNvbnRlbnRzIG9mIHN0cmluZyBmb2xsb3dl ZCBieSBibGFuaywgcXVvdGUsIGNoYXJhY3RlciwgcXVvdGUKCiAgIHByb2NlZHVyZSB3IChMIDog U3RyaW5nOyBTIDogU3RyaW5nKTsKICAgLS0gIER1bXAgdHdvIHN0cmluZ3Mgc2VwYXJhdGVkIGJ5 IGJsYW5rcywgZm9sbG93ZWQgYnkgbGluZSByZXR1cm4KCiAgIHByb2NlZHVyZSB3IChMIDogU3Ry aW5nOyBWIDogSW50KTsKICAgLS0gIER1bXAgY29udGVudHMgb2Ygc3RyaW5nIGZvbGxvd2VkIGJ5 IGJsYW5rLCBpbnRlZ2VyLCBsaW5lIHJldHVybgoKICAgcHJvY2VkdXJlIHcgKEwgOiBTdHJpbmc7 IEIgOiBCb29sZWFuKTsKICAgLS0gIER1bXAgY29udGVudHMgb2Ygc3RyaW5nIGZvbGxvd2VkIGJ5 IGJsYW5rLCBCb29sZWFuLCBsaW5lIHJldHVybgoKZW5kIE91dHB1dDsKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICBH TkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgSSBOIFAg VSBUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuMy4xMi4xICQKLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAxIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05B VCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQvb3IgbW9k aWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3VuZGF0aW9u OyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlci0g LS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0IGV2 ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUgIHJlY2Vp dmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNlICBkaXN0 cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSAtLQot LSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFjZSAtIFN1 aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMgIGluc3Rh bnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsgIHRoaXMg dW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0tCi0tIHRo aXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIGV4ZWN1 dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAgUHVibGlj ICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBpbnZhbGlk YXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0IGJl IC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05BVCB3 YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZb3JrIFVu aXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlkZWQgYnkg QWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCgotLSAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIHRoZSBpbnB1 dCByb3V0aW5lcyB1c2VkIGZvciByZWFkaW5nIHRoZQotLSAgaW5wdXQgc291cmNlIGZpbGUuIFRo ZSBhY3R1YWwgSS9PIHJvdXRpbmVzIGFyZSBpbiBPU19JbnRlcmZhY2UsCi0tICB3aXRoIHRoaXMg bW9kdWxlIGNvbnRhaW5pbmcgb25seSB0aGUgc3lzdGVtIGluZGVwZW5kZW50IHByb2Nlc3Npbmcu CgotLSAgR2VuZXJhbCBOb3RlOiB0aHJvdWdob3V0IHRoZSBjb21waWxlciwgd2UgdXNlIHRoZSB0 ZXJtIGxpbmUgb3Igc291cmNlCi0tICBsaW5lIHRvIHJlZmVyIHRvIGEgcGh5c2ljYWwgbGluZSBp biB0aGUgc291cmNlLCB0ZXJtaW5hdGVkIGJ5IHRoZSBlbmQgb2YKLS0gIHBoeXNpY2FsIGxpbmUg c2VxdWVuY2UuIFNlZSBTa2lwX0xpbmVfVGVybWluYXRvcnMgcHJvY2VkdXJlIGZvciBhIGZ1bGwK LS0gIGRlc2NyaXB0aW9uIG9mIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbG9naWNhbCBhbmQgcGh5 c2ljYWwgbGluZXMuCgp3aXRoIEFsbG9jOwp3aXRoIENhc2luZzsgdXNlIENhc2luZzsKd2l0aCBU YWJsZTsKd2l0aCBUeXBlczsgIHVzZSBUeXBlczsKCnBhY2thZ2UgU2lucHV0IGlzCgogICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNvdXJjZSBMaWNlbnNlIENvbnRyb2wgLS0K ICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgLS0gIFRoZSBmb2xsb3dpbmcgdHlw ZSBpbmRpY2F0ZXMgdGhlIGxpY2Vuc2Ugc3RhdGUgb2YgYSBzb3VyY2UgaWYgaXQKICAgLS0gIGlz IGtub3duLgoKICAgdHlwZSBMaWNlbnNlX1R5cGUgaXMKICAgICAoVW5rbm93biwKICAgICAgLS0g IExpY2Vuc2luZyBzdGF0dXMgb2YgdGhpcyBzb3VyY2UgdW5pdCBpcyB1bmtub3duCgogICAgICBS ZXN0cmljdGVkLAogICAgICAtLSAgVGhpcyBpcyBhIG5vbi1HUEwnZWQgdW5pdCB0aGF0IGlzIHJl c3RyaWN0ZWQgZnJvbSBkZXBlbmRpbmcKICAgICAgLS0gIG9uIEdQTCdlZCB1bml0cyAoZS5nLiBw cm9wcmlldGFyeSBjb2RlIGlzIGluIHRoaXMgY2F0ZWdvcnkpCgogICAgICBHUEwsCiAgICAgIC0t ICBUaGlzIGZpbGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIHVubW9kaWZpZWQgR1BMLiBJdCBpcyBu b3QgYWxsb3dlZAogICAgICAtLSAgdG8gZGVwZW5kIG9uIE5vbl9HUEwgdW5pdHMsIGFuZCBOb25f R1BMIHVuaXRzIG1heSBub3QgZGVwZW5kIG9uCiAgICAgIC0tICB0aGlzIHNvdXJjZSB1bml0LgoK ICAgICAgTW9kaWZpZWRfR1BMLAogICAgICAtLSAgVGhpcyBmaWxlIGlzIGxpY2Vuc2VkIHVuZGVy IHRoZSBHTkFUIG1vZGlmaWVkIEdQTCAoc2VlIGhlYWRlciBvZgogICAgICAtLSAgVGhpcyBmaWxl IGZvciB3b3JkaW5nIG9mIHRoZSBtb2RpZmljYXRpb24pLiBJdCBtYXkgZGVwZW5kIG9uIG90aGVy CiAgICAgIC0tICBNb2RpZmllZF9HUEwgdW5pdHMgb3Igb24gdW5yZXN0cmljdGVkIHVuaXRzLgoK ICAgICAgVW5yZXN0cmljdGVkKTsKICAgICAgLS0gIFRoZSBsaWNlbnNlIG9uIHRoaXMgZmlsZSBp cyBwZXJtaXR0ZWQgdG8gZGVwZW5kIG9uIGFueSBvdGhlcgogICAgICAtLSAgdW5pdHMsIG9yIGhh dmUgb3RoZXIgdW5pdHMgZGVwZW5kIG9uIGl0LCB3aXRob3V0IHZpb2xhdGluZyB0aGUKICAgICAg LS0gIGxpY2Vuc2Ugb2YgdGhpcyB1bml0LiBFeGFtcGxlcyBhcmUgcHVibGljIGRvbWFpbiB1bml0 cywgYW5kCiAgICAgIC0tICB1bml0cyBkZWZpbmVkIGluIHRoZSBSTSkuCgogICAtLSAgVGhlIGFi b3ZlIGxpY2Vuc2Ugc3RhdHVzIGlzIGNoZWNrZWQgd2hlbiB0aGUgYXBwcm9wcmlhdGUgY2hlY2sg aXMKICAgLS0gIGFjdGl2YXRlZCBhbmQgb25lIHNvdXJjZSBkZXBlbmRzIG9uIGFub3RoZXIsIGFu ZCB0aGUgbGljZW5zaW5nIHN0YXRlCiAgIC0tICBvZiBib3RoIGZpbGVzIGlzIGtub3duOgoKICAg LS0gIFRoZSBwcm9oaWJpdGVkIGNvbWJpbmF0aW9ucyBhcmU6CgogICAtLSAgICBSZXN0cmljdGVk IGZpbGUgbWF5IG5vdCBkZXBlbmQgb24gR1BMIGZpbGUKCiAgIC0tICAgIEdQTCBmaWxlIG1heSBu b3QgZGVwZW5kIG9uIFJlc3RyaWN0ZWQgZmlsZQoKICAgLS0gICAgTW9kaWZpZWQgR1BMIGZpbGUg bWF5IG5vdCBkZXBlbmQgb24gUmVzdHJpY3RlZCBmaWxlCiAgIC0tICAgIE1vZGlmaWVkX0dQTCBm aWxlIG1heSBub3QgZGVwZW5kIG9uIEdQTCBmaWxlCgogICAtLSAgVGhlIHJlYXNvbiBmb3IgdGhl IGxhc3QgcmVzdHJpY3Rpb24gaGVyZSBpcyB0aGF0IGEgY2xpZW50IGRlcGVuZGluZwogICAtLSAg b24gYSBtb2RpZmllZCBHUEwgZmlsZSBtdXN0IGJlIHN1cmUgdGhhdCB0aGUgbGljZW5zZSBjb25k aXRpb24gaXMKICAgLS0gIGNvcnJlY3QgY29uc2lkZXJlZCB0cmFuc2l0aXZlbHkuCgogICAtLSAg VGhlIGxpY2Vuc2luZyBzdGF0dXMgaXMgZGV0ZXJtaW5lZCBlaXRoZXIgYnkgdGhlIHByZXNlbmNl IG9mIGEKICAgLS0gIHNwZWNpZmljIHByYWdtYSBMaWNlbnNlLCBvciBieSBzY2FubmluZyB0aGUg aGVhZGVyIGZvciBhIHByZWRlZmluZWQKICAgLS0gIGZpbGUsIG9yIGFueSBmaWxlIGlmIGNvbXBp bGluZyBpbiAtZ25hdGcgbW9kZS4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFNv dXJjZSBGaWxlIFRhYmxlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAtLSAgVGhl IHNvdXJjZSBmaWxlIHRhYmxlIGhhcyBhbiBlbnRyeSBmb3IgZWFjaCBzb3VyY2UgZmlsZSByZWFk IGluIGZvcgogICAtLSAgdGhpcyBydW4gb2YgdGhlIGNvbXBpbGVyLiBUaGlzIHRhYmxlIGlzIChk ZWZhdWx0KSBpbml0aWFsaXplZCB3aGVuCiAgIC0tICB0aGUgY29tcGlsZXIgaXMgbG9hZGVkLCBh bmQgc2ltcGx5IGFjY3VtdWxhdGVzIGVudHJpZXMgYXMgY29tcGlsYXRpb24KICAgLS0gIHByb2Nl ZWRzIGFuZCB0aGUgU2lucHV0LkwuTG9hZF9Tb3VyY2VfRmlsZSBwcm9jZWR1cmUgaXMgY2FsbGVk IHRvIGxvYWQKICAgLS0gIHJlcXVpcmVkIHNvdXJjZSBmaWxlcy4KCiAgIC0tICBWaXJ0dWFsIGVu dHJpZXMgYXJlIGFsc28gY3JlYXRlZCBmb3IgZ2VuZXJpYyB0ZW1wbGF0ZXMgd2hlbiB0aGV5IGFy ZQogICAtLSAgaW5zdGFudGlhdGVkLCBhcyBkZXNjcmliZWQgaW4gYSBzZXBhcmF0ZSBzZWN0aW9u IGxhdGVyIG9uLgoKICAgLS0gIEluIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBt YWluIHVuaXRzIChlLmcuIGluIHRoZSBjYXNlIG9mCiAgIC0tICB0aGUgY3Jvc3MtcmVmZXJlbmNl IHRvb2wpLCB0aGlzIHRhYmxlIGlzIG5vdCByZXNldCBiZXR3ZWVuIHRoZXNlIHVuaXRzLAogICAt LSAgc28gdGhhdCBhIGdpdmVuIHNvdXJjZSBmaWxlIGlzIG9ubHkgcmVhZCBvbmNlIGlmIGl0IGlz IHVzZWQgYnkgdHdvCiAgIC0tICBzZXBhcmF0ZSBtYWluIHVuaXRzLgoKICAgLS0gIFRoZSBlbnRy aWVzIGluIHRoZSB0YWJsZSBhcmUgYWNjZXNzZWQgdXNpbmcgYSBTb3VyY2VfRmlsZV9JbmRleCB0 aGF0CiAgIC0tICByYW5nZXMgZnJvbSAxIHRvIExhc3RfU291cmNlX0ZpbGUuIEVhY2ggZW50cnkg aGFzIHRoZSBmb2xsb3dpbmcgZmllbGRzCgogICAtLSAgTm90ZSB0aGF0IGVudHJ5IDEgaXMgYWx3 YXlzIGZvciBzeXN0ZW0uYWRzIChzZWUgVGFyZ3Bhcm0gZm9yIGRldGFpbHMKICAgLS0gIG9mIHdo eSB3ZSBhbHdheXMgcmVhZCB0aGlzIHNvdXJjZSBmaWxlIGZpcnN0KSwgYW5kIHdlIGhhdmUgZGVm aW5lZCBhCiAgIC0tICBjb25zdGFudCBUeXBlcy5TeXN0ZW1fU291cmNlX0ZpbGVfSW5kZXggYXMg MSB0byByZWZsZWN0IHRoaXMgZmFjdC4KCiAgIC0tICBGaWxlX05hbWUgOiBGaWxlX05hbWVfVHlw ZQogICAtLSAgICBOYW1lIG9mIHRoZSBzb3VyY2UgZmlsZSAoc2ltcGxlIG5hbWUgd2l0aCBubyBk aXJlY3RvcnkgaW5mb3JtYXRpb24pLgogICAtLSAgICBTZXQgYnkgU2lucHV0LkwuTG9hZF9Tb3Vy Y2VfRmlsZSBhbmQgY2Fubm90IGJlIHN1YmVxdWVudGx5IGNoYW5nZWQuCgogICAtLSAgRnVsbF9G aWxlX05hbWUgOiBGaWxlX05hbWVfVHlwZQogICAtLSAgICBGdWxsIGZpbGUgbmFtZSAoZnVsbCBu YW1lIHdpdGggZGlyZWN0b3J5IGluZm8pLCB1c2VkIGZvciBnZW5lcmF0aW9uCiAgIC0tICAgIG9m IGVycm9yIG1lc3NhZ2VzLCBldGMuIFNldCBieSBTaW5wdXQuTC5Mb2FkX1NvdXJjZV9GaWxlIGFu ZCBjYW5ub3QKICAgLS0gICAgYmUgc3Vic2VxdWVudGx5IGNoYW5nZWQuCgogICAtLSAgUmVmZXJl bmNlX05hbWUgOiBGaWxlX05hbWVfVHlwZQogICAtLSAgICBOYW1lIHRvIGJlIHVzZWQgZm9yIHNv dXJjZSBmaWxlIHJlZmVyZW5jZXMgaW4gZXJyb3IgbWVzc2FnZXMgd2hlcmUKICAgLS0gICAgb25s eSB0aGUgc2ltcGxlIG5hbWUgb2YgdGhlIGZpbGUgaXMgcmVxdWlyZWQuIElkZW50aWNhbCB0byBG aWxlX05hbWUKICAgLS0gICAgdW5sZXNzIHByYWdtYSBTb3VyY2VfUmVmZXJlbmNlIGlzIHVzZWQg dG8gY2hhbmdlIGl0LiBPbmx5IHByb2Nlc3NpbmcKICAgLS0gICAgZm9yIHRoZSBTb3VyY2VfUmVm ZXJlbmNlIHByYWdtYSBjaXJjdWl0IG1heSBzZXQgdGhpcyBmaWVsZC4KCiAgIC0tICBGdWxsX1Jl Zl9OYW1lIDogRmlsZV9OYW1lX1R5cGUKICAgLS0gICAgTmFtZSB0byBiZSB1c2VkIGZvciBzb3Vy Y2UgZmlsZSByZWZlcmVuY2VzIGluIGVycm9yIG1lc3NhZ2VzIHdoZXJlCiAgIC0tICAgIHRoZSBm dWxsIG5hbWUgb2YgdGhlIGZpbGUgaXMgcmVxdWlyZWQuIElkZW50aWNhbCB0byBGdWxsX0ZpbGVf TmFtZQogICAtLSAgICB1bmxlc3MgcHJhZ21hIFNvdXJjZV9SZWZlcmVuY2UgaXMgdXNlZCB0byBj aGFuZ2UgaXQuIE9ubHkgcHJvY2Vzc2luZwogICAtLSAgICBmb3IgdGhlIFNvdXJjZV9SZWZlcmVu Y2UgcHJhZ21hIG1heSBzZXQgdGhpcyBmaWVsZC4KCiAgIC0tICBEZWJ1Z19Tb3VyY2VfTmFtZSA6 IEZpbGVfTmFtZV9UeXBlCiAgIC0tICAgIE5hbWUgdG8gYmUgdXNlZCBmb3Igc291cmNlIGZpbGUg cmVmZXJlbmNlcyBpbiBkZWJ1Z2dpbmcgaW5mb3JtYXRpb24KICAgLS0gICAgd2hlcmUgb25seSB0 aGUgc2ltcGxlIG5hbWUgb2YgdGhlIGZpbGUgaXMgcmVxdWlyZWQuIElkZW50aWNhbCB0bwogICAt LSAgICBGdWxsX1JlZl9OYW1lIHVubGVzcyB0aGUgLWduYXREIChkZWJ1ZyBzb3VyY2UgZmlsZSkg c3dpdGNoIGlzIHVzZWQuCiAgIC0tICAgIE9ubHkgcHJvY2Vzc2luZyBpbiBTcHJpbnQgdGhhdCBn ZW5lcmF0ZXMgdGhpcyBmaWxlIGlzIHBlcm1pdHRlZCB0bwogICAtLSAgICBzZXQgdGhpcyBmaWVs ZC4KCiAgIC0tICBMaWNlbnNlIDogTGljZW5zZV9UeXBlOwogICAtLSAgICBMaWNlbnNlIHN0YXR1 cyBvZiBzb3VyY2UgZmlsZQoKICAgLS0gIE51bV9TUmVmX1ByYWdtYXMgOiBOYXQ7CiAgIC0tICAg IE51bWJlciBvZiBzb3VyY2UgcmVmZXJlbmNlIHByYWdtYXMgcHJlc2VudCBpbiBzb3VyY2UgZmls ZQoKICAgLS0gIEZpcnN0X01hcHBlZF9MaW5lIDogTG9naWNhbF9MaW5lX051bWJlcjsKICAgLS0g ICAgVGhpcyBmaWVsZCBzdG9yZXMgbG9naWNhbCBsaW5lIG51bWJlciBvZiB0aGUgZmlyc3QgbGlu ZSBpbiB0aGUKICAgLS0gICAgZmlsZSB0aGF0IGlzIG5vdCBhIFNvdXJjZV9SZWZlcmVuY2UgcHJh Z21hLiBJZiBubyBzb3VyY2UgcmVmZXJlbmNlCiAgIC0tICAgIHByYWdtYXMgYXJlIHVzZWQsIHRo ZW4gdGhlIHZhbHVlIGlzIHNldCB0byBOb19MaW5lX051bWJlci4KCiAgIC0tICBTb3VyY2VfVGV4 dCA6IFNvdXJjZV9CdWZmZXJfUHRyCiAgIC0tICAgIFRleHQgb2Ygc291cmNlIGZpbGUuIE5vdGUg dGhhdCBldmVyeSBzb3VyY2UgZmlsZSBoYXMgYSBkaXN0aW5jdCBzZXQKICAgLS0gICAgb2Ygbm9u LW92ZXJsYXBwaW5nIGxvZ2ljYWwgYm91bmRzLCBzbyBpdCBpcyBwb3NzaWJsZSB0byBkZXRlcm1p bmUKICAgLS0gICAgd2hpY2ggZmlsZSBpcyByZWZlcmVuY2VkIGZyb20gYSBnaXZlbiBzdWJzY3Jp cHQgKFNvdXJjZV9QdHIpIHZhbHVlLgogICAtLSAgICBTZXQgYnkgU2lucHV0LkwuTG9hZF9Tb3Vy Y2VfRmlsZSBhbmQgY2Fubm90IGJlIHN1YnNlcXVlbnRseSBjaGFuZ2VkLgoKICAgLS0gIFNvdXJj ZV9GaXJzdCA6IFNvdXJjZV9QdHI7CiAgIC0tICAgIFN1YnNjcmlwdCBvZiBmaXJzdCBjaGFyYWN0 ZXIgaW4gU291cmNlX1RleHQuIE5vdGUgdGhhdCB0aGlzIGNhbm5vdAogICAtLSAgICBiZSBvYnRh aW5lZCBhcyBTb3VyY2VfVGV4dCdGaXJzdCwgYmVjYXVzZSB3ZSB1c2UgdmlydHVhbCBvcmlnaW4K ICAgLS0gICAgYWRkcmVzc2luZy4gU2V0IGJ5IFNpbnB1dC5MIHByb2NlZHVyZXMgd2hlbiB0aGUg ZW50cnkgaXMgZmlyc3QKICAgLS0gICAgY3JlYXRlZCBhbmQgbmV2ZXIgc3Vic2VxdWVudGx5IGNo YW5nZWQuCgogICAtLSAgU291cmNlX0xhc3QgOiBTb3VyY2VfUHRyOwogICAtLSAgICBTdWJzY3Jp cHQgb2YgbGFzdCBjaGFyYWN0ZXIgaW4gU291cmNlX1RleHQuIE5vdGUgdGhhdCB0aGlzIGNhbm5v dAogICAtLSAgICBiZSBvYnRhaW5lZCBhcyBTb3VyY2VfVGV4dCdMYXN0LCBiZWNhdXNlIHdlIHVz ZSB2aXJ0dWFsIG9yaWdpbgogICAtLSAgICBhZGRyZXNzaW5nLCBzbyB0aGlzIHZhbHVlIGlzIGFs d2F5cyBTb3VyY2VfUHRyJ0xhc3QuIFNldCBieQogICAtLSAgICBTaW5wdXQuTCBwcm9jZWR1cmVz IHdoZW4gdGhlIGVudHJ5IGlzIGZpcnN0IGNyZWF0ZWQgYW5kIG5ldmVyCiAgIC0tICAgIHN1YnNl cXVlbnRseSBjaGFuZ2VkLgoKICAgLS0gIFRpbWVfU3RhbXAgOiBUaW1lX1N0YW1wX1R5cGU7CiAg IC0tICAgIFRpbWUgc3RhbXAgb2YgdGhlIHNvdXJjZSBmaWxlLiBTZXQgYnkgU2lucHV0LkwuTG9h ZF9Tb3VyY2VfRmlsZSwKICAgLS0gICAgYW5kIGNhbm5vdCBiZSBzdWJzZXF1ZW50bHkgY2hhbmdl ZC4KCiAgIC0tICBTb3VyY2VfQ2hlY2tzdW0gOiBXb3JkOwogICAtLSAgICBDb21wdXRlZCBjaGVj a3N1bSBmb3IgY29udGVudHMgb2Ygc291cmNlIGZpbGUuIFNlZSBzZXBhcmF0ZSBzZWN0aW9uCiAg IC0tICAgIGxhdGVyIG9uIGluIHRoaXMgc3BlYyBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgY2hl Y2tzdW0gYWxnb3JpdGhtLgoKICAgLS0gIExhc3RfU291cmNlX0xpbmUgOiBQaHlzaWNhbF9MaW5l X051bWJlcjsKICAgLS0gICAgUGh5c2ljYWwgbGluZSBudW1iZXIgb2YgbGFzdCBzb3VyY2UgbGlu ZS4gV2hsaWUgYSBmaWxlIGlzIGJlaW5nCiAgIC0tICAgIHJlYWQsIHRoaXMgcmVmZXJzIHRvIHRo ZSBsYXN0IGxpbmUgc2Nhbm5lZC4gT25jZSBhIGZpbGUgaGFzIGJlZW4KICAgLS0gICAgY29tcGxl dGVseSBzY2FubmVkLCBpdCBpcyB0aGUgbnVtYmVyIG9mIHRoZSBsYXN0IGxpbmUgaW4gdGhlIGZp bGUsCiAgIC0tICAgIGFuZCBoZW5jZSBhbHNvIGdpdmVzIHRoZSBudW1iZXIgb2Ygc291cmNlIGxp bmVzIGluIHRoZSBmaWxlLgoKICAgLS0gIEtleXdvcmRfQ2FzaW5nIDogQ2FzaW5nX1R5cGU7CiAg IC0tICAgIENhc2luZyBzdHlsZSB1c2VkIGluIGZpbGUgZm9yIGtleXdvcmQgY2FzaW5nLiBUaGlz IGlzIGluaXRpYWxpemVkCiAgIC0tICAgIHRvIFVua25vd24sIGFuZCB0aGVuIHNldCBmcm9tIHRo ZSBmaXJzdCBvY2N1cnJlbmNlIG9mIGEga2V5d29yZC4KICAgLS0gICAgVGhpcyB2YWx1ZSBpcyB1 c2VkIG9ubHkgZm9yIGZvcm1hdHRpbmcgb2YgZXJyb3IgbWVzc2FnZXMuCgogICAtLSAgSWRlbnRp Zmllcl9DYXNpbmcgOiBDYXNpbmdfVHlwZTsKICAgLS0gICAgQ2FzaW5nIHN0eWxlIHVzZWQgaW4g ZmlsZSBmb3IgaWRlbnRpZmllciBjYXNpbmcuIFRoaXMgaXMgaW5pdGlhbGl6ZWQKICAgLS0gICAg dG8gVW5rbm93biwgYW5kIHRoZW4gc2V0IGZyb20gYW4gaWRlbnRpZmllciBpbiB0aGUgcHJvZ3Jh bSBhcyBzb29uIGFzCiAgIC0tICAgIG9uZSBpcyBmb3VuZCB3aG9zZSBjYXNpbmcgaXMgc3VmZmlj aWVudGx5IGNsZWFyIHRvIG1ha2UgYSBkZWNpc2lvbi4KICAgLS0gICAgVGhpcyB2YWx1ZSBpcyB1 c2VkIGZvciBmb3JtYXR0aW5nIG9mIGVycm9yIG1lc3NhZ2VzLCBhbmQgYWxzbyBpcyB1c2VkCiAg IC0tICAgIGluIHRoZSBkZXRlY3Rpb24gb2Yga2V5d29yZHMgbWlzdXNlZCBhcyBpZGVudGlmaWVy cy4KCiAgIC0tICBJbnN0YW50aWF0aW9uIDogU291cmNlX1B0cjsKICAgLS0gICAgU291cmNlIGZp bGUgbG9jYXRpb24gb2YgdGhlIGluc3RhbnRpYXRpb24gaWYgdGhpcyBzb3VyY2UgZmlsZSBlbnRy eQogICAtLSAgICByZXByZXNlbnRzIGEgZ2VuZXJpYyBpbnN0YW50aWF0aW9uLiBTZXQgdG8gTm9f TG9jYXRpb24gZm9yIHRoZSBjYXNlCiAgIC0tICAgIG9mIGEgbm9ybWFsIG5vbi1pbnN0YW50aWF0 aW9uIGVudHJ5LiBTZWUgc2VjdGlvbiBiZWxvdyBmb3IgZGV0YWlscy4KICAgLS0gICAgVGhpcyBm aWVsZCBpcyByZWFkLW9ubHkgZm9yIGNsaWVudHMuCgogICAtLSAgVGVtcGxhdGUgOiBTb3VyY2Vf RmlsZV9JbmRleDsKICAgLS0gICAgU291cmNlIGZpbGUgaW5kZXggb2YgdGhlIHNvdXJjZSBmaWxl IGNvbnRhaW5pbmcgdGhlIHRlbXBsYXRlIGlmIHRoaXMKICAgLS0gICAgaXMgYSBnZW5lcmljIGlu c3RhbnRpYXRpb24uIFNldCB0byBOb19Tb3VyY2VfRmlsZSBmb3IgdGhlIG5vcm1hbCBjYXNlCiAg IC0tICAgIG9mIGEgbm9uLWluc3RhbnRpYXRpb24gZW50cnkuIFNlZSBTaW5wdXQtTCBmb3IgZGV0 YWlscy4gVGhpcyBmaWVsZCBpcwogICAtLSAgICByZWFkLW9ubHkgZm9yIGNsaWVudHMuCgogICAt LSAgVGhlIHNvdXJjZSBmaWxlIHRhYmxlIGlzIGFjY2Vzc2VkIGJ5IGNsaWVudHMgdXNpbmcgdGhl IGZvbGxvd2luZwogICAtLSAgc3VicHJvZ3JhbSBpbnRlcmZhY2U6CgogICBzdWJ0eXBlIFNGSSBp cyBTb3VyY2VfRmlsZV9JbmRleDsKCiAgIGZ1bmN0aW9uIERlYnVnX1NvdXJjZV9OYW1lIChTIDog U0ZJKSByZXR1cm4gRmlsZV9OYW1lX1R5cGU7CiAgIGZ1bmN0aW9uIEZpbGVfTmFtZSAgICAgICAg IChTIDogU0ZJKSByZXR1cm4gRmlsZV9OYW1lX1R5cGU7CiAgIGZ1bmN0aW9uIEZpcnN0X01hcHBl ZF9MaW5lIChTIDogU0ZJKSByZXR1cm4gTG9naWNhbF9MaW5lX051bWJlcjsKICAgZnVuY3Rpb24g RnVsbF9GaWxlX05hbWUgICAgKFMgOiBTRkkpIHJldHVybiBGaWxlX05hbWVfVHlwZTsKICAgZnVu Y3Rpb24gRnVsbF9SZWZfTmFtZSAgICAgKFMgOiBTRkkpIHJldHVybiBGaWxlX05hbWVfVHlwZTsK ICAgZnVuY3Rpb24gSWRlbnRpZmllcl9DYXNpbmcgKFMgOiBTRkkpIHJldHVybiBDYXNpbmdfVHlw ZTsKICAgZnVuY3Rpb24gSW5zdGFudGlhdGlvbiAgICAgKFMgOiBTRkkpIHJldHVybiBTb3VyY2Vf UHRyOwogICBmdW5jdGlvbiBLZXl3b3JkX0Nhc2luZyAgICAoUyA6IFNGSSkgcmV0dXJuIENhc2lu Z19UeXBlOwogICBmdW5jdGlvbiBMYXN0X1NvdXJjZV9MaW5lICAoUyA6IFNGSSkgcmV0dXJuIFBo eXNpY2FsX0xpbmVfTnVtYmVyOwogICBmdW5jdGlvbiBMaWNlbnNlICAgICAgICAgICAoUyA6IFNG SSkgcmV0dXJuIExpY2Vuc2VfVHlwZTsKICAgZnVuY3Rpb24gTnVtX1NSZWZfUHJhZ21hcyAgKFMg OiBTRkkpIHJldHVybiBOYXQ7CiAgIGZ1bmN0aW9uIFJlZmVyZW5jZV9OYW1lICAgIChTIDogU0ZJ KSByZXR1cm4gRmlsZV9OYW1lX1R5cGU7CiAgIGZ1bmN0aW9uIFNvdXJjZV9DaGVja3N1bSAgIChT IDogU0ZJKSByZXR1cm4gV29yZDsKICAgZnVuY3Rpb24gU291cmNlX0ZpcnN0ICAgICAgKFMgOiBT RkkpIHJldHVybiBTb3VyY2VfUHRyOwogICBmdW5jdGlvbiBTb3VyY2VfTGFzdCAgICAgICAoUyA6 IFNGSSkgcmV0dXJuIFNvdXJjZV9QdHI7CiAgIGZ1bmN0aW9uIFNvdXJjZV9UZXh0ICAgICAgIChT IDogU0ZJKSByZXR1cm4gU291cmNlX0J1ZmZlcl9QdHI7CiAgIGZ1bmN0aW9uIFRlbXBsYXRlICAg ICAgICAgIChTIDogU0ZJKSByZXR1cm4gU291cmNlX0ZpbGVfSW5kZXg7CiAgIGZ1bmN0aW9uIFRp bWVfU3RhbXAgICAgICAgIChTIDogU0ZJKSByZXR1cm4gVGltZV9TdGFtcF9UeXBlOwoKICAgcHJv Y2VkdXJlIFNldF9LZXl3b3JkX0Nhc2luZyAgICAoUyA6IFNGSTsgQyA6IENhc2luZ19UeXBlKTsK ICAgcHJvY2VkdXJlIFNldF9JZGVudGlmaWVyX0Nhc2luZyAoUyA6IFNGSTsgQyA6IENhc2luZ19U eXBlKTsKICAgcHJvY2VkdXJlIFNldF9MaWNlbnNlICAgICAgICAgICAoUyA6IFNGSTsgTCA6IExp Y2Vuc2VfVHlwZSk7CgogICBmdW5jdGlvbiBMYXN0X1NvdXJjZV9GaWxlIHJldHVybiBTb3VyY2Vf RmlsZV9JbmRleDsKICAgLS0gIEluZGV4IG9mIGxhc3Qgc291cmNlIGZpbGUgdGFibGUgZW50cnkK CiAgIGZ1bmN0aW9uIE51bV9Tb3VyY2VfRmlsZXMgcmV0dXJuIE5hdDsKICAgLS0gIE51bWJlciBv ZiBzb3VyY2UgZmlsZSB0YWJsZSBlbnRyaWVzCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZTsKICAg LS0gIEluaXRpYWxpemUgaW50ZXJuYWwgdGFibGVzCgogICBwcm9jZWR1cmUgTG9jazsKICAgLS0g IExvY2sgaW50ZXJuYWwgdGFibGVzCgogICBNYWluX1NvdXJjZV9GaWxlIDogU291cmNlX0ZpbGVf SW5kZXg7CiAgIC0tICBUaGlzIGlzIHNldCB0byB0aGUgc291cmNlIGZpbGUgaW5kZXggb2YgdGhl IG1haW4gdW5pdAoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gQ2hlY2tzdW0gSGFu ZGxpbmcgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBBcyBhIHNvdXJjZSBm aWxlIGlzIHNjYW5uZWQsIGEgY2hlY2tzdW0gaXMgY29tcHV0ZWQgYnkgdGFraW5nIGFsbCB0aGUK ICAgLS0gIG5vbi1ibGFuayBjaGFyYWN0ZXJzIGluIHRoZSBmaWxlLCBleGNsdWRpbmcgY29tbWVu dCBjaGFyYWN0ZXJzLCB0aGUKICAgLS0gIG1pbnVzLW1pbnVzIHNlcXVlbmNlIHN0YXJ0aW5nIGEg Y29tbWVudCwgYW5kIGFsbCBjb250cm9sIGNoYXJhY3RlcnMKICAgLS0gIGV4Y2VwdCBFU0MuCgog ICAtLSAgVGhlIGNoZWNrc3VtIGFsZ29yaXRobSB1c2VkIGlzIHRoZSBzdGFuZGFyZCBDUkMtMzIg YWxnb3JpdGhtLCBhcwogICAtLSAgaW1wbGVtZW50ZWQgYnkgU3lzdGVtLkNSQzMyLCBleGNlcHQg dGhhdCB3ZSBkbyBub3QgYm90aGVyIHdpdGggdGhlCiAgIC0tICBmaW5hbCBYT1Igd2l0aCBhbGwg MSBiaXRzLgoKICAgLS0gIFRoaXMgYWxnb3JpdGhtIGVuc3VyZXMgdGhhdCB0aGUgY2hlY2tzdW0g aW5jbHVkZXMgYWxsIHNlbWFudGljYWxseQogICAtLSAgc2lnbmlmaWNhbnQgYXNwZWN0cyBvZiB0 aGUgcHJvZ3JhbSByZXByZXNlbnRlZCBieSB0aGUgc291cmNlIGZpbGUsCiAgIC0tICBidXQgaXMg aW5zZW5zaXRpdmUgdG8gbGF5b3V0LCBwcmVzZW5jZSBvciBjb250ZW50cyBvZiBjb21tZW50cywg d2lkZQogICAtLSAgY2hhcmFjdGVyIHJlcHJlc2VudGF0aW9uIG1ldGhvZCwgb3IgY2FzaW5nIGNv bnZlbnRpb25zIG91dHNpZGUgc3RyaW5ncy4KCiAgIC0tICBTY2Fucy5DaGVja3N1bSBpcyBpbml0 aWFsaXplZCBhcHByb3ByaWF0ZWx5IGF0IHRoZSBzdGFydCBvZiBzY2FubmluZwogICAtLSAgYSBm aWxlLCBhbmQgY29waWVkIGludG8gdGhlIFNvdXJjZV9DaGVja3N1bSBmaWVsZCBvZiB0aGUgZmls ZSB0YWJsZQogICAtLSAgZW50cnkgd2hlbiB0aGUgZW5kIG9mIGZpbGUgaXMgZW5jb3VudGVyZWQu CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIEhhbmRsaW5n IEdlbmVyaWMgSW5zdGFudGlhdGlvbnMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQoKICAgLS0gIEFzIGRlc2NyaWJlZCBpbiBTZW1fQ2gxMiwgYSBnZW5lcmljIGlu c3RhbnRpYXRpb24gaW52b2x2ZXMgbWFraW5nIGEKICAgLS0gIGNvcHkgb2YgdGhlIHRyZWUgb2Yg dGhlIGdlbmVyaWMgdGVtcGxhdGUuIFRoZSBzb3VyY2UgbG9jYXRpb25zIGluCiAgIC0tICB0aGlz IHRyZWUgZGlyZWN0bHkgcmVmZXJlbmNlIHRoZSBzb3VyY2Ugb2YgdGhlIHRlbXBsYXRlLiBIb3dl dmVyIGl0CiAgIC0tICBpcyBhbHNvIHBvc3NpYmxlIHRvIGZpbmQgdGhlIGxvY2F0aW9uIG9mIHRo ZSBpbnN0YW50aWF0aW9uLgoKICAgLS0gIFRoaXMgaXMgYWNoaWV2ZWQgYXMgZm9sbG93cy4gV2hl biBhbiBpbnN0YW50aWF0aW9uIG9jY3VycywgYSBuZXcgZW50cnkKICAgLS0gIGlzIG1hZGUgaW4g dGhlIHNvdXJjZSBmaWxlIHRhYmxlLiBUaGlzIGVudHJ5IHBvaW50cyB0byB0aGUgc2FtZSBzb3Vy Y2UKICAgLS0gIHRleHQsIGkuZS4gdGhlIGZpbGUgdGhhdCBjb250YWlucyB0aGUgaW5zdGFudGlh dGlvbiwgYnV0IGhhcyBhIGRpc3RpbmN0CiAgIC0tICBzZXQgb2YgU291cmNlX1B0ciBpbmRleCB2 YWx1ZXMuIFRoZSBzZXBhcmF0ZSByYW5nZSBvZiBTbG9jIHZhbHVlcyBhdm9pZHMKICAgLS0gIGNv bmZ1c2lvbiwgYW5kIG1lYW5zIHRoYXQgdGhlIFNsb2MgdmFsdWVzIGNhbiBzdGlsbCBiZSB1c2Vk IHRvIHVuaXF1ZWx5CiAgIC0tICBpZGVudGlmeSB0aGUgc291cmNlIGZpbGUgdGFibGUgZW50cnku IEl0IGlzIHBvc3NpYmxlIGZvciBib3RoIGVudHJpZXMKICAgLS0gIHRvIHBvaW50IHRvIHRoZSBz YW1lIHRleHQsIGJlY2F1c2Ugb2YgdGhlIHZpcnR1YWwgb3JpZ2luIHBvaW50ZXJzIHVzZWQKICAg LS0gIGluIHRoZSBzb3VyY2UgdGFibGUuCgogICAtLSAgVGhlIEluc3RhbnRpYXRpb24gZmllbGQg b2YgdGhpcyBzb3VyY2UgZmlsZSBpbmRleCBlbnRyeSwgdXN1YWxseSBzZXQKICAgLS0gIHRvIE5v X1NvdXJjZV9GaWxlLCBpbnN0ZWFkIGNvbnRhaW5zIHRoZSBTbG9jIG9mIHRoZSBpbnN0YW50aWF0 aW9uLiBJbgogICAtLSAgdGhlIGNhc2Ugb2YgbmVzdGVkIGluc3RhbnRpYXRpb25zLCB0aGlzIFNs b2MgbWF5IGl0c2VsZiByZWZlciB0byBhbgogICAtLSAgaW5zdGFudGlhdGlvbiwgc28gdGhlIGNv bXBsZXRlIGNoYWluIGNhbiBiZSB0cmFjZWQuCgogICAtLSAgVHdvIHJvdXRpbmVzIGFyZSB1c2Vk IHRvIGJ1aWxkIHRoZXNlIHNwZWNpYWwgZW50cmllcyBpbiB0aGUgc291cmNlCiAgIC0tICBmaWxl IHRhYmxlLiBDcmVhdGVfSW5zdGFudGlhdGlvbl9Tb3VyY2UgaXMgZmlyc3QgY2FsbGVkIHRvIGJ1 aWxkCiAgIC0tICB0aGUgdmlydHVhbCBzb3VyY2UgdGFibGUgZW50cnkgZm9yIHRoZSBpbnN0YW50 aWF0aW9uLCBhbmQgdGhlbiB0aGUKICAgLS0gIFNsb2MgdmFsdWVzIGluIHRoZSBjb3B5IGFyZSBh ZGp1c3RlZCB1c2luZyBBZGp1c3RfSW5zdGFudGlhdGlvbl9TbG9jLgogICAtLSAgU2VlIGNoaWxk IHVuaXQgU2lucHV0LkwgZm9yIGRldGFpbHMgb24gdGhlc2UgdHdvIHJvdXRpbmVzLgoKICAgLS0t LS0tLS0tLS0tLS0tLS0KICAgLS0gR2xvYmFsIERhdGEgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0K CiAgIEN1cnJlbnRfU291cmNlX0ZpbGUgOiBTb3VyY2VfRmlsZV9JbmRleDsKICAgLS0gIFNvdXJj ZV9GaWxlIHRhYmxlIGluZGV4IG9mIHNvdXJjZSBmaWxlIGN1cnJlbnRseSBiZWluZyBzY2FubmVk CgogICBDdXJyZW50X1NvdXJjZV9Vbml0IDogVW5pdF9OdW1iZXJfVHlwZTsKICAgLS0gIFVuaXQg bnVtYmVyIG9mIHNvdXJjZSBmaWxlIGN1cnJlbnRseSBiZWluZyBzY2FubmVkLiBUaGUgc3BlY2lh bCB2YWx1ZQogICAtLSAgb2YgTm9fVW5pdCBpbmRpY2F0ZXMgdGhhdCB0aGUgY29uZmlndXJhdGlv biBwcmFnbWEgZmlsZSBpcyBjdXJyZW50bHkKICAgLS0gIGJlaW5nIHNjYW5uZWQgKHRoaXMgaGFz IG5vIGVudHJ5IGluIHRoZSB1bml0IHRhYmxlKS4KCiAgIFNvdXJjZV9nbmF0X2FkYyA6IFNvdXJj ZV9GaWxlX0luZGV4IDo9IE5vX1NvdXJjZV9GaWxlOwogICAtLSAgVGhpcyBpcyBzZXQgaWYgYSBn bmF0LmFkYyBmaWxlIGlzIHByZXNlbnQgdG8gcmVmZXJlbmNlIHRoaXMgZmlsZQoKICAgU291cmNl IDogU291cmNlX0J1ZmZlcl9QdHI7CiAgIC0tICBDdXJyZW50IHNvdXJjZSAoY29weSBvZiBTb3Vy Y2VfRmlsZS5UYWJsZSAoQ3VycmVudF9Tb3VyY2VfVW5pdCkuU291cmNlKQoKICAgSW50ZXJuYWxf U291cmNlIDogYWxpYXNlZCBTb3VyY2VfQnVmZmVyICgxIC4uIDgxKTsKICAgLS0gIFRoaXMgYnVm ZmVyIGlzIHVzZWQgaW50ZXJuYWxseSBpbiB0aGUgY29tcGlsZXIgd2hlbiB0aGUgbGV4aWNhbCBh bmFseXplcgogICAtLSAgaXMgdXNlZCB0byBzY2FuIGEgc3RyaW5nIGZyb20gd2l0aGluIHRoZSBj b21waWxlci4gVGhlIHByb2NlZHVyZSBpcyB0bwogICAtLSAgZXN0YWJsaXNoIEludGVybmFsX1Nv dXJjZV9QdHIgYXMgdGhlIHZhbHVlIG9mIFNvdXJjZSwgc2V0IHRoZSBzdHJpbmcgdG8KICAgLS0g IGJlIHNjYW5uZWQsIGFwcHJvcHJpYXRlbHkgdGVybWluYXRlZCwgaW4gdGhpcyBidWZmZXIsIGFu ZCBzZXQgU2Nhbl9QdHIKICAgLS0gIHRvIHBvaW50IHRvIHRoZSBzdGFydCBvZiB0aGUgYnVmZmVy LiBJdCBpcyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzY2FubmVyCiAgIC0tICBzaWduYWxzIGFuIGVy cm9yIHdoaWxlIHNjYW5uaW5nIGEgdG9rZW4gaW4gdGhpcyBpbnRlcm5hbCBidWZmZXIuCgogICBJ bnRlcm5hbF9Tb3VyY2VfUHRyIDogY29uc3RhbnQgU291cmNlX0J1ZmZlcl9QdHIgOj0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgSW50ZXJuYWxfU291cmNlJ1VucmVzdHJpY3RlZF9BY2Nlc3M7 CiAgIC0tICBQb2ludGVyIHRvIGludGVybmFsIHNvdXJjZSBidWZmZXIKCiAgIC0tLS0tLS0tLS0t LS0tLS0tCiAgIC0tIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9j ZWR1cmUgQmFja3VwX0xpbmUgKFAgOiBpbiBvdXQgU291cmNlX1B0cik7CiAgIC0tICBCYWNrIHVw IHRoZSBhcmd1bWVudCBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgcHJldmlvdXMgbGluZS4g T24KICAgLS0gIGVudHJ5LCBQIHBvaW50cyB0byB0aGUgc3RhcnQgb2YgYSBwaHlzaWNhbCBsaW5l IGluIHRoZSBzb3VyY2UgYnVmZmVyLgogICAtLSAgT24gcmV0dXJuLCBQIGlzIHVwZGF0ZWQgdG8g cG9pbnQgdG8gdGhlIHN0YXJ0IG9mIHRoZSBwcmV2aW91cyBsaW5lLgogICAtLSAgVGhlIGNhbGxl ciBoYXMgY2hlY2tlZCB0aGF0IGEgTGluZV9UZXJtaW5hdG9yIGNoYXJhY3RlciBwcmVjZWRlcyBQ IHNvCiAgIC0tICB0aGF0IHRoZXJlIGRlZmluaXRlbHkgaXMgYSBwcmV2aW91cyBsaW5lIGluIHRo ZSBzb3VyY2UgYnVmZmVyLgoKICAgcHJvY2VkdXJlIEJ1aWxkX0xvY2F0aW9uX1N0cmluZyAoTG9j IDogU291cmNlX1B0cik7CiAgIC0tICBUaGlzIGZ1bmN0aW9uIGJ1aWxkcyBhIHN0cmluZyBsaXRl cmFsIG9mIHRoZSBmb3JtICJuYW1lOmxpbmUiLAogICAtLSAgd2hlcmUgbmFtZSBpcyB0aGUgZmls ZSBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gTG9jLCBhbmQgbGluZSBpcwogICAtLSAgdGhlIGxpbmUg bnVtYmVyLiBJbiB0aGUgZXZlbnQgdGhhdCBpbnN0YW50aWF0aW9ucyBhcmUgaW52b2x2ZWQsCiAg IC0tICBhZGRpdGlvbmFsIHN1ZmZpeGVzIG9mIHRoZSBzYW1lIGZvcm0gYXJlIGFwcGVuZGVkIGFm dGVyIHRoZQogICAtLSAgc2VwYXJhdGluZyBzdHJpbmcgIiBpbnN0YW50aWF0ZWQgYXQgIi4gVGhl IHJldHVybmVkIHN0cmluZyBpcwogICAtLSAgc3RvcmVkIGluIE5hbWVfQnVmZmVyLCB0ZXJtaW5h dGVkIGJ5IEFTQ0lJLk51bCwgd2l0aCBOYW1lX0xlbmd0aAogICAtLSAgaW5kaWNhdGluZyB0aGUg bGVuZ3RoIG5vdCBpbmNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIE51bC4KCiAgIGZ1bmN0aW9uIEdl dF9Db2x1bW5fTnVtYmVyIChQIDogU291cmNlX1B0cikgcmV0dXJuIENvbHVtbl9OdW1iZXI7CiAg IC0tICBUaGUgb25lcy1vcmlnaW4gY29sdW1uIG51bWJlciBvZiB0aGUgc3BlY2lmaWVkIFNvdXJj ZV9QdHIgdmFsdWUgaXMKICAgLS0gIGRldGVybWluZWQgYW5kIHJldHVybmVkLiBUYWIgY2hhcmFj dGVycyBpZiBwcmVzZW50IGFyZSBhc3N1bWVkIHRvCiAgIC0tICByZXByZXNlbnQgdGhlIHN0YW5k YXJkIDEsOSwxNy4uIHNwYWNpbmcgcGF0dGVybi4KCiAgIGZ1bmN0aW9uIEdldF9Mb2dpY2FsX0xp bmVfTnVtYmVyCiAgICAgKFAgICAgOiBTb3VyY2VfUHRyKQogICAgICByZXR1cm4gTG9naWNhbF9M aW5lX051bWJlcjsKICAgLS0gIFRoZSBsaW5lIG51bWJlciBvZiB0aGUgc3BlY2lmaWVkIHNvdXJj ZSBwb3NpdGlvbiBpcyBvYnRhaW5lZCBieQogICAtLSAgZG9pbmcgYSBiaW5hcnkgc2VhcmNoIG9u IHRoZSBzb3VyY2UgcG9zaXRpb25zIGluIHRoZSBsaW5lcyB0YWJsZQogICAtLSAgZm9yIHRoZSB1 bml0IGNvbnRhaW5pbmcgdGhlIGdpdmVuIHNvdXJjZSBwb3NpdGlvbi4gVGhlIHJldHVybmVkCiAg IC0tICB2YWx1ZSBpcyB0aGUgbG9naWNhbCBsaW5lIG51bWJlciwgYWxyZWFkeSBhZGp1c3RlZCBm b3IgdGhlIGVmZmVjdAogICAtLSAgb2Ygc291cmNlIHJlZmVyZW5jZSBwcmFnbWFzLiBJZiBQIHJl ZmVycyB0byB0aGUgbGluZSBvZiBhIHNvdXJjZQogICAtLSAgcmVmZXJlbmNlIHByYWdtYSBpdHNl bGYsIHRoZW4gTm9fTGluZSBpcyByZXR1cm5lZC4gSWYgbm8gc291cmNlCiAgIC0tICByZWZlcmVu Y2UgcHJhZ21hcyBoYXZlIGJlZW4gZW5jb3VudGVyZWQsIHRoZSB2YWx1ZSByZXR1cm5lZCBpcwog ICAtLSAgdGhlIHNhbWUgYXMgdGhlIHBoeXNpY2FsIGxpbmUgbnVtYmVyLgoKICAgZnVuY3Rpb24g R2V0X1BoeXNpY2FsX0xpbmVfTnVtYmVyCiAgICAgKFAgICAgOiBTb3VyY2VfUHRyKQogICAgICBy ZXR1cm4gUGh5c2ljYWxfTGluZV9OdW1iZXI7CiAgIC0tICBUaGUgbGluZSBudW1iZXIgb2YgdGhl IHNwZWNpZmllZCBzb3VyY2UgcG9zaXRpb24gaXMgb2J0YWluZWQgYnkKICAgLS0gIGRvaW5nIGEg YmluYXJ5IHNlYXJjaCBvbiB0aGUgc291cmNlIHBvc2l0aW9ucyBpbiB0aGUgbGluZXMgdGFibGUK ICAgLS0gIGZvciB0aGUgdW5pdCBjb250YWluaW5nIHRoZSBnaXZlbiBzb3VyY2UgcG9zaXRpb24u IFRoZSByZXR1cm5lZAogICAtLSAgdmFsdWUgaXMgdGhlIHBoeXNpY2FsIGxpbmUgbnVtYmVyIGlu IHRoZSBzb3VyY2UgYmVpbmcgY29tcGlsZWQuCgogICBmdW5jdGlvbiBHZXRfU291cmNlX0ZpbGVf SW5kZXggKFMgOiBTb3VyY2VfUHRyKSByZXR1cm4gU291cmNlX0ZpbGVfSW5kZXg7CiAgIC0tICBS ZXR1cm4gZmlsZSB0YWJsZSBpbmRleCBvZiBmaWxlIGlkZW50aWZpZWQgYnkgZ2l2ZW4gc291cmNl IHBvaW50ZXIKICAgLS0gIHZhbHVlLiBUaGlzIGNhbGwgbXVzdCBhbHdheXMgc3VjY2VlZCwgc2lu Y2UgYW55IHZhbGlkIHNvdXJjZSBwb2ludGVyCiAgIC0tICB2YWx1ZSBiZWxvbmdzIHRvIHNvbWUg cHJldmlvdXNseSBsb2FkZWQgc291cmNlIGZpbGUuCgogICBmdW5jdGlvbiBJbnN0YW50aWF0aW9u X0RlcHRoIChTIDogU291cmNlX1B0cikgcmV0dXJuIE5hdDsKICAgLS0gIERldGVybWluZSBpbnN0 YW50aWF0aW9uIGRlcHRoIGZvciBnaXZlbiBTbG9jIHZhbHVlLiBBIHZhbHVlIG9mCiAgIC0tICB6 ZXJvIG1lYW5zIHRoYXQgdGhlIGdpdmVuIFNsb2MgaXMgbm90IGluIGFuIGluc3RhbnRpYXRpb24u CgogICBmdW5jdGlvbiBMaW5lX1N0YXJ0IChQIDogU291cmNlX1B0cikgcmV0dXJuIFNvdXJjZV9Q dHI7CiAgIC0tICBGaW5kcyB0aGUgc291cmNlIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUg bGluZSBjb250YWluaW5nIHRoZQogICAtLSAgZ2l2ZW4gc291cmNlIGxvY2F0aW9uLgoKICAgZnVu Y3Rpb24gTGluZV9TdGFydAogICAgIChMICAgIDogUGh5c2ljYWxfTGluZV9OdW1iZXI7CiAgICAg IFMgICAgOiBTb3VyY2VfRmlsZV9JbmRleCkKICAgICAgcmV0dXJuIFNvdXJjZV9QdHI7CiAgIC0t ICBGaW5kcyB0aGUgc291cmNlIHBvc2l0aW9uIG9mIHRoZSBzdGFydCBvZiB0aGUgZ2l2ZW4gbGlu ZSBpbiB0aGUKICAgLS0gIGdpdmVuIHNvdXJjZSBmaWxlLCB1c2luZyBhIHBoeXNpY2FsIGxpbmUg bnVtYmVyIHRvIGlkZW50aWZ5IHRoZSBsaW5lLgoKICAgZnVuY3Rpb24gTnVtX1NvdXJjZV9MaW5l cyAoUyA6IFNvdXJjZV9GaWxlX0luZGV4KSByZXR1cm4gTmF0OwogICAtLSAgUmV0dXJucyB0aGUg bnVtYmVyIG9mIHNvdXJjZSBsaW5lcyAodGhpcyBpcyBlcXVpdmFsZW50IHRvIHJlYWRpbmcKICAg LS0gIHRoZSB2YWx1ZSBvZiBMYXN0X1NvdXJjZV9MaW5lLCBidXQgcmV0dXJucyBOYXQgcmF0aGVy biB0aGFuIGEKICAgLS0gIHBoeXNpY2FsIGxpbmUgbnVtYmVyLgoKICAgcHJvY2VkdXJlIFJlZ2lz dGVyX1NvdXJjZV9SZWZfUHJhZ21hCiAgICAgKEZpbGVfTmFtZSAgICAgICAgICA6IE5hbWVfSWQ7 CiAgICAgIFN0cmlwcGVkX0ZpbGVfTmFtZSA6IE5hbWVfSWQ7CiAgICAgIE1hcHBlZF9MaW5lICAg ICAgICA6IE5hdDsKICAgICAgTGluZV9BZnRlcl9QcmFnbWEgIDogUGh5c2ljYWxfTGluZV9OdW1i ZXIpOwogICAtLSAgUmVnaXN0ZXIgYSBzb3VyY2UgcmVmZXJlbmNlIHByYWdtYSwgdGhlIHBhcmFt ZXRlciBGaWxlX05hbWUgaXMgdGhlCiAgIC0tICBmaWxlIG5hbWUgZnJvbSB0aGUgcHJhZ21hLCBh bmQgU3RyaXBwZWRfRmlsZV9OYW1lIGlzIHRoaXMgbmFtZSB3aXRoCiAgIC0tICB0aGUgZGlyZWN0 b3J5IGluZm9ybWF0aW9uIHN0cmlwcGVkLiBCb3RoIHRoZXNlIHBhcmFtZXRlcnMgYXJlIHNldAog ICAtLSAgdG8gTm9fTmFtZSBpZiBubyBmaWxlIG5hbWUgcGFyYW1ldGVyIHdhcyBnaXZlbiBpbiB0 aGUgcHJhZ21hLgogICAtLSAgKHdoaWNoIGNhbiBvbmx5IGhhcHBlbiBmb3IgdGhlIHNlY29uZCBh bmQgc3Vic2VxdWVudCBwcmFnbWFzKS4KICAgLS0gIE1hcHBlZF9MaW5lIGlzIHRoZSBsaW5lIG51 bWJlciBwYXJhbWV0ZXIgZnJvbSB0aGUgcHJhZ21hLCBhbmQKICAgLS0gIExpbmVfQWZ0ZXJfUHJh Z21hIGlzIHRoZSBwaHlzaWNhbCBsaW5lIG51bWJlciBvZiB0aGUgbGluZSB0aGF0CiAgIC0tICBm b2xsb3dzIHRoZSBsaW5lIGNvbnRhaW5pbmcgdGhlIFNvdXJjZV9SZWZlcmVuY2UgcHJhZ21hLgoK ICAgZnVuY3Rpb24gT3JpZ2luYWxfTG9jYXRpb24gKFMgOiBTb3VyY2VfUHRyKSByZXR1cm4gU291 cmNlX1B0cjsKICAgLS0gIEdpdmVuIGEgc291cmNlIHBvaW50ZXIgUywgcmV0dXJucyB0aGUgY29y cmVzcG9uZGluZyBzb3VyY2UgcG9pbnRlcgogICAtLSAgdmFsdWUgaWdub3JpbmcgaW5zdGFudGlh dGlvbiBjb3BpZXMuIEZvciBsb2NhdGlvbnMgdGhhdCBkbyBub3QKICAgLS0gIGNvcnJlc3BvbmQg dG8gaW5zdGFudGlhdGlvbiBjb3BpZXMgb2YgdGVtcGxhdGVzLCB0aGUgYXJndW1lbnQgaXMKICAg LS0gIHJldHVybmVkIHVuY2hhbmdlZC4gRm9yIGxvY2F0aW9ucyB0aGF0IGRvIGNvcnJlc3BvbmQg dG8gY29waWVzIG9mCiAgIC0tICB0ZW1wbGF0ZXMgZnJvbSBpbnN0YW50aWF0aW9ucywgdGhlIGxv Y2F0aW9uIHdpdGhpbiB0aGUgb3JpZ2luYWwKICAgLS0gIHRlbXBsYXRlIGlzIHJldHVybmVkLiBU aGlzIGlzIHVzZWZ1bCBpbiBjYW5vbmljYWxpemluZyBsb2NhdGlvbnMuCgogICBmdW5jdGlvbiBJ bnN0YW50aWF0aW9uX0xvY2F0aW9uIChTIDogU291cmNlX1B0cikgcmV0dXJuIFNvdXJjZV9QdHI7 CiAgIHByYWdtYSBJbmxpbmUgKEluc3RhbnRpYXRpb25fTG9jYXRpb24pOwogICAtLSAgR2l2ZW4g YSBzb3VyY2UgcG9pbnRlciBTLCByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBwb2lu dGVyCiAgIC0tICB2YWx1ZSBvZiB0aGUgaW5zdGFudGlhdGlvbiBpZiB0aGlzIGxvY2F0aW9uIGlz IHdpdGhpbiBhbiBpbnN0YW5jZS4KICAgLS0gIElmIFMgaXMgbm90IHdpdGhpbiBhbiBpbnN0YW5j ZSwgdGhlbiB0aGlzIHJldHVybnMgTm9fTG9jYXRpb24uCgogICBmdW5jdGlvbiBUb3BfTGV2ZWxf TG9jYXRpb24gKFMgOiBTb3VyY2VfUHRyKSByZXR1cm4gU291cmNlX1B0cjsKICAgLS0gIEdpdmVu IGEgc291cmNlIHBvaW50ZXIgUywgcmV0dXJucyB0aGUgYXJndW1lbnQgdW5jaGFuZ2VkIGlmIGl0 IGlzCiAgIC0tICBub3QgaW4gYW4gaW5zdGFudGlhdGlvbi4gSWYgUyBpcyBpbiBhbiBpbnN0YW50 aWF0aW9uLCB0aGVuIGl0IHJldHVybnMKICAgLS0gIHRoZSBsb2NhdGlvbiBvZiB0aGUgdG9wIGxl dmVsIGluc3RhbnRpYXRpb24sIGkuZS4gdGhlIG91dGVyIGxldmVsCiAgIC0tICBpbnN0YW50aWF0 aW9uIGluIHRoZSBuZXN0ZWQgY2FzZS4KCiAgIGZ1bmN0aW9uIFBoeXNpY2FsX1RvX0xvZ2ljYWwK ICAgICAoTGluZSA6IFBoeXNpY2FsX0xpbmVfTnVtYmVyOwogICAgICBTICAgIDogU291cmNlX0Zp bGVfSW5kZXgpCiAgICAgIHJldHVybiBMb2dpY2FsX0xpbmVfTnVtYmVyOwogICAtLSAgR2l2ZW4g YSBwaHlzaWNhbCBsaW5lIG51bWJlciBpbiBzb3VyY2UgZmlsZSB3aG9zZSBzb3VyY2UgaW5kZXgg aXMgUywKICAgLS0gIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBsb2dpY2FsIGxpbmUgbnVtYmVy LiBJZiB0aGUgcGh5c2ljYWwgbGluZQogICAtLSAgbnVtYmVyIGlzIG9uZSBjb250YWluaW5nIGEg U291cmNlX1JlZmVyZW5jZSBwcmFnbWEsIHRoZSByZXN1bHQgd2lsbAogICAtLSAgYmUgTm9fTGlu ZV9OdW1iZXIuCgogICBwcm9jZWR1cmUgU2tpcF9MaW5lX1Rlcm1pbmF0b3JzCiAgICAgKFAgICAg ICAgIDogaW4gb3V0IFNvdXJjZV9QdHI7CiAgICAgIFBoeXNpY2FsIDogb3V0IEJvb2xlYW4pOwog ICAtLSAgT24gZW50cnksIFNvdXJjZSAoUCkgcG9pbnRzIHRvIHRoZSBsaW5lIHRlcm1pbmF0b3Ig Y2hhcmFjdGVyIHRoYXQKICAgLS0gIHRlcm1pbmF0ZXMgYSBsaW5lLiBUaGUgcmVzdWx0IHNldCBp biBQIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUgZmlyc3QKICAgLS0gIGNoYXJhY3RlciBvZiB0aGUg Zm9sbG93aW5nIGxpbmUgKGFmdGVyIHNraXBwaW5nIHRoZSBzZXF1ZW5jZSBvZiBsaW5lCiAgIC0t ICB0ZXJtaW5hdG9yIGNoYXJhY3RlcnMgdGVybWluYXRpbmcgdGhlIGN1cnJlbnQgbGluZSkuIElu IGFkZGl0aW9uLCBpZgogICAtLSAgdGhlIHRlcm1pbmF0b3Igc2VxdWVuY2UgZW5kcyBhIHBoeXNp Y2FsIGxpbmUgKHRoZSBkZWZpbml0aW9uIG9mIHdoYXQKICAgLS0gIGNvbnN0aXR1dGVzIGEgcGh5 c2ljYWwgbGluZSBpcyBlbWJvZGllZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhpcwogICAt LSAgZnVuY3Rpb24pLCBhbmQgaXQgaXMgdGhlIGZpcnN0IHRpbWUgdGhpcyBzZXF1ZW5jZSBpcyBl bmNvdW50ZXJlZCwgdGhlbgogICAtLSAgYW4gZW50cnkgaXMgbWFkZSBpbiB0aGUgbGluZXMgdGFi bGUgdG8gcmVjb3JkIHRoZSBsb2NhdGlvbiBmb3IgZnVydGhlcgogICAtLSAgdXNlIGJ5IGZ1bmN0 aW9ucyBzdWNoIGFzIEdldF9MaW5lX051bWJlci4gUGh5c2ljYWwgaXMgc2V0IHRvIFRydWUgaWYK ICAgLS0gIHRoZSBsaW5lIHRlcm1pbmF0b3Igd2FzIHRoZSBlbmQgb2YgYSBwaHlzaWNhbCBsaW5l LgoKICAgZnVuY3Rpb24gU291cmNlX09mZnNldCAoUyA6IFNvdXJjZV9QdHIpIHJldHVybiBOYXQ7 CiAgIC0tICBSZXR1cm5zIHRoZSB6ZXJvLW9yaWdpbiBvZmZzZXQgb2YgdGhlIGdpdmVuIHNvdXJj ZSBsb2NhdGlvbiBmcm9tIHRoZQogICAtLSAgc3RhcnQgb2YgaXRzIGNvcnJlc3BvbmRpbmcgdW5p dC4gVGhpcyBpcyB1c2VkIGZvciBjcmVhdGluZyBjYW5vbmljYWwKICAgLS0gIG5hbWVzIGluIHNv bWUgc2l0dWF0aW9ucy4KCiAgIHByb2NlZHVyZSBXcml0ZV9Mb2NhdGlvbiAoUCA6IFNvdXJjZV9Q dHIpOwogICAtLSAgV3JpdGVzIG91dCBhIHN0cmluZyBvZiB0aGUgZm9ybSBmZmY6bm46Y2MsIHdo ZXJlIGZmZiwgbm4sIGNjIGFyZSB0aGUKICAgLS0gIGZpbGUgbmFtZSwgbGluZSBudW1iZXIgYW5k IGNvbHVtbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBzb3VyY2UKICAgLS0gIGxvY2F0aW9u LiBOb19Mb2NhdGlvbiBhbmQgU3RhbmRhcmRfTG9jYXRpb24gYXBwZWFyIGFzIHRoZSBzdHJpbmdz CiAgIC0tICA8bm8gbG9jYXRpb24+IGFuZCA8c3RhbmRhcmQgbG9jYXRpb24+LiBJZiB0aGUgbG9j YXRpb24gaXMgd2l0aGluIGFuCiAgIC0tICBpbnN0YW50aWF0aW9uLCB0aGVuIHRoZSBpbnN0YW5j ZSBsb2NhdGlvbiBpcyBhcHBlbmRlZCwgZW5jbG9zZWQgaW4KICAgLS0gIHNxdWFyZSBicmFja2V0 cyAod2hpY2ggY2FuIG5lc3QgaWYgbmVjZXNzYXJ5KS4gTm90ZSB0aGF0IHRoaXMgcm91dGluZQog ICAtLSAgaXMgdXNlZCBvbmx5IGZvciBpbnRlcm5hbCBjb21waWxlciBkZWJ1Z2dpbmcgb3V0cHV0 IHB1cnBvc2VzICh3aGljaAogICAtLSAgaXMgd2h5IHRoZSBzb21ld2hhdCBjcnlwdGljIHVzZSBv ZiBicmFja2V0cyBpcyBhY2NlcHRhYmxlKS4KCiAgIHByb2NlZHVyZSB3bCAoUCA6IFNvdXJjZV9Q dHIpOwogICAtLSAgRXF1aXZhbGVudCB0byBXcml0ZV9Mb2NhdGlvbiAoUCk7IFdyaXRlX0VvbDsg Zm9yIGNhbGxzIGZyb20gR0RCCgogICBwcm9jZWR1cmUgV3JpdGVfVGltZV9TdGFtcCAoUyA6IFNv dXJjZV9GaWxlX0luZGV4KTsKICAgLS0gIFdyaXRlcyB0aW1lIHN0YW1wIG9mIHNwZWNpZmllZCBm aWxlIGluIFlZLU1NLUREIEhIOk1NLlNTIGZvcm1hdAoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGU7 CiAgIC0tICBXcml0ZXMgb3V0IGludGVybmFsIHRhYmxlcyB0byBjdXJyZW50IHRyZWUgZmlsZSB1 c2luZyBUcmVlX1dyaXRlCgogICBwcm9jZWR1cmUgVHJlZV9SZWFkOwogICAtLSAgSW5pdGlhbGl6 ZXMgaW50ZXJuYWwgdGFibGVzIGZyb20gY3VycmVudCB0cmVlIGZpbGUgdXNpbmcgVHJlZV9SZWFk Cgpwcml2YXRlCiAgIHByYWdtYSBJbmxpbmUgKEZpbGVfTmFtZSk7CiAgIHByYWdtYSBJbmxpbmUg KEZpcnN0X01hcHBlZF9MaW5lKTsKICAgcHJhZ21hIElubGluZSAoRnVsbF9GaWxlX05hbWUpOwog ICBwcmFnbWEgSW5saW5lIChJZGVudGlmaWVyX0Nhc2luZyk7CiAgIHByYWdtYSBJbmxpbmUgKElu c3RhbnRpYXRpb24pOwogICBwcmFnbWEgSW5saW5lIChLZXl3b3JkX0Nhc2luZyk7CiAgIHByYWdt YSBJbmxpbmUgKExhc3RfU291cmNlX0xpbmUpOwogICBwcmFnbWEgSW5saW5lIChMYXN0X1NvdXJj ZV9GaWxlKTsKICAgcHJhZ21hIElubGluZSAoTGljZW5zZSk7CiAgIHByYWdtYSBJbmxpbmUgKE51 bV9TUmVmX1ByYWdtYXMpOwogICBwcmFnbWEgSW5saW5lIChOdW1fU291cmNlX0ZpbGVzKTsKICAg cHJhZ21hIElubGluZSAoTnVtX1NvdXJjZV9MaW5lcyk7CiAgIHByYWdtYSBJbmxpbmUgKFJlZmVy ZW5jZV9OYW1lKTsKICAgcHJhZ21hIElubGluZSAoU2V0X0tleXdvcmRfQ2FzaW5nKTsKICAgcHJh Z21hIElubGluZSAoU2V0X0lkZW50aWZpZXJfQ2FzaW5nKTsKICAgcHJhZ21hIElubGluZSAoU291 cmNlX0ZpcnN0KTsKICAgcHJhZ21hIElubGluZSAoU291cmNlX0xhc3QpOwogICBwcmFnbWEgSW5s aW5lIChTb3VyY2VfVGV4dCk7CiAgIHByYWdtYSBJbmxpbmUgKFRlbXBsYXRlKTsKICAgcHJhZ21h IElubGluZSAoVGltZV9TdGFtcCk7CgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIC0t IFNvdXJjZV9MaW5lcyBUYWJsZXMgLS0KICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAg dHlwZSBMaW5lc19UYWJsZV9UeXBlIGlzCiAgICAgYXJyYXkgKFBoeXNpY2FsX0xpbmVfTnVtYmVy KSBvZiBTb3VyY2VfUHRyOwogICAtLSAgVHlwZSB1c2VkIGZvciBsaW5lcyB0YWJsZS4gVGhlIGVu dHJpZXMgYXJlIGluZGV4ZWQgYnkgcGh5c2ljYWwgbGluZQogICAtLSAgbnVtYmVycy4gVGhlIHZh bHVlcyBhcmUgdGhlIHN0YXJ0aW5nIFNvdXJjZV9QdHIgdmFsdWVzIGZvciB0aGUgc3RhcnQKICAg LS0gIG9mIHRoZSBjb3JyZXNwb25kaW5nIHBoeXNpY2FsIGxpbmUuIE5vdGUgdGhhdCB3ZSBtYWtl IHRoaXMgYSBib2d1cwogICAtLSAgYmlnIGFycmF5LCBzaXplZCBhcyByZXF1aXJlZCwgc28gdGhh dCB3ZSBhdm9pZCB0aGUgdXNlIG9mIGZhdCBwb2ludGVycy4KCiAgIHR5cGUgTGluZXNfVGFibGVf UHRyIGlzIGFjY2VzcyBhbGwgTGluZXNfVGFibGVfVHlwZTsKICAgLS0gIFR5cGUgdXNlZCBmb3Ig cG9pbnRlcnMgdG8gbGluZSB0YWJsZXMKCiAgIHR5cGUgTG9naWNhbF9MaW5lc19UYWJsZV9UeXBl IGlzCiAgICAgYXJyYXkgKFBoeXNpY2FsX0xpbmVfTnVtYmVyKSBvZiBMb2dpY2FsX0xpbmVfTnVt YmVyOwogICAtLSAgVHlwZSB1c2VkIGZvciBsb2dpY2FsIGxpbmVzIHRhYmxlLiBUaGlzIHRhYmxl IGlzIHVzZWQgaWYgYSBzb3VyY2UKICAgLS0gIHJlZmVyZW5jZSBwcmFnbWEgaXMgcHJlc2VudC4g SXQgaXMgaW5kZXhlZCBieSBwaHlzaWNhbCBsaW5lIG51bWJlcnMsCiAgIC0tICBhbmQgY29udGFp bnMgdGhlIGNvcnJlc3BvbmRpbmcgbG9naWNhbCBsaW5lIG51bWJlcnMuIEFuIGVudHJ5IHRoYXQK ICAgLS0gIGNvcnJlc3BvbmRzIHRvIGEgc291cmNlIHJlZmVyZW5jZSBwcmFnbWEgaXMgc2V0IHRv IE5vX0xpbmVfTnVtYmVyLgogICAtLSAgTm90ZSB0aGF0IHdlIG1ha2UgdGhpcyBhIGJvZ3VzIGJp ZyBhcnJheSwgc2l6ZWQgYXMgcmVxdWlyZWQsIHNvIHRoYXQKICAgLS0gIHdlIGF2b2lkIHRoZSB1 c2Ugb2YgZmF0IHBvaW50ZXJzLgoKICAgdHlwZSBMb2dpY2FsX0xpbmVzX1RhYmxlX1B0ciBpcyBh Y2Nlc3MgYWxsIExvZ2ljYWxfTGluZXNfVGFibGVfVHlwZTsKICAgLS0gIFR5cGUgdXNlZCBmb3Ig cG9pbnRlcnMgdG8gbG9naWNhbCBsaW5lIHRhYmxlcy4KCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgIC0tIFNvdXJjZV9GaWxlIFRhYmxlIC0tCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAtLSAgU2VlIGVhcmxpZXIgZGVzY3JpcHRpb25zIGZvciBtZWFuaW5ncyBvZiBwdWJsaWMg ZmllbGRzCgogICB0eXBlIFNvdXJjZV9GaWxlX1JlY29yZCBpcyByZWNvcmQKCiAgICAgIEZpbGVf TmFtZSAgICAgICAgIDogRmlsZV9OYW1lX1R5cGU7CiAgICAgIFJlZmVyZW5jZV9OYW1lICAgIDog RmlsZV9OYW1lX1R5cGU7CiAgICAgIERlYnVnX1NvdXJjZV9OYW1lIDogRmlsZV9OYW1lX1R5cGU7 CiAgICAgIEZ1bGxfRmlsZV9OYW1lICAgIDogRmlsZV9OYW1lX1R5cGU7CiAgICAgIEZ1bGxfUmVm X05hbWUgICAgIDogRmlsZV9OYW1lX1R5cGU7CiAgICAgIExpY2Vuc2UgICAgICAgICAgIDogTGlj ZW5zZV9UeXBlOwogICAgICBOdW1fU1JlZl9QcmFnbWFzICA6IE5hdDsKICAgICAgRmlyc3RfTWFw cGVkX0xpbmUgOiBMb2dpY2FsX0xpbmVfTnVtYmVyOwogICAgICBTb3VyY2VfVGV4dCAgICAgICA6 IFNvdXJjZV9CdWZmZXJfUHRyOwogICAgICBTb3VyY2VfRmlyc3QgICAgICA6IFNvdXJjZV9QdHI7 CiAgICAgIFNvdXJjZV9MYXN0ICAgICAgIDogU291cmNlX1B0cjsKICAgICAgVGltZV9TdGFtcCAg ICAgICAgOiBUaW1lX1N0YW1wX1R5cGU7CiAgICAgIFNvdXJjZV9DaGVja3N1bSAgIDogV29yZDsK ICAgICAgTGFzdF9Tb3VyY2VfTGluZSAgOiBQaHlzaWNhbF9MaW5lX051bWJlcjsKICAgICAgS2V5 d29yZF9DYXNpbmcgICAgOiBDYXNpbmdfVHlwZTsKICAgICAgSWRlbnRpZmllcl9DYXNpbmcgOiBD YXNpbmdfVHlwZTsKICAgICAgSW5zdGFudGlhdGlvbiAgICAgOiBTb3VyY2VfUHRyOwogICAgICBU ZW1wbGF0ZSAgICAgICAgICA6IFNvdXJjZV9GaWxlX0luZGV4OwoKICAgICAgLS0gIFRoZSBmb2xs b3dpbmcgZmllbGRzIGFyZSBmb3IgaW50ZXJuYWwgdXNlIG9ubHkgKGkuZS4gb25seSBpbiB0aGUK ICAgICAgLS0gIGJvZHkgb2YgU2lucHV0IG9yIGl0cyBjaGlsZHJlbiwgd2l0aCBubyBkaXJlY3Qg YWNjZXNzIGJ5IGNsaWVudHMpLgoKICAgICAgU2xvY19BZGp1c3QgOiBTb3VyY2VfUHRyOwogICAg ICAtLSAgQSB2YWx1ZSB0byBiZSBhZGRlZCB0byBTbG9jIHZhbHVlcyBmb3IgdGhpcyBmaWxlIHRv IHJlZmVyZW5jZSB0aGUKICAgICAgLS0gIGNvcnJlc3BvbmRpbmcgbGluZXMgdGFibGUuIFRoaXMg aXMgemVybyBmb3IgdGhlIG5vbi1pbnN0YW50aWF0aW9uCiAgICAgIC0tICBjYXNlLCBhbmQgc2V0 IHNvIHRoYXQgdGhlIGFkaXRpb24gcmVmZXJlbmNlcyB0aGUgdWx0aW1hdGUgdGVtcGxhdGUKICAg ICAgLS0gIGZvciB0aGUgaW5zdGFudGlhdGlvbiBjYXNlLiBTZWUgU2lucHV0LUwgZm9yIGZ1cnRo ZXIgZGV0YWlscy4KCiAgICAgIExpbmVzX1RhYmxlIDogTGluZXNfVGFibGVfUHRyOwogICAgICAt LSAgUG9pbnRlciB0byBsaW5lcyB0YWJsZSBmb3IgdGhpcyBzb3VyY2UuIFVwZGF0ZWQgYXMgYWRk aXRpb25hbAogICAgICAtLSAgbGluZXMgYXJlIGFjY2Vzc2VkIHVzaW5nIHRoZSBTa2lwX0xpbmVf VGVybWluYXRvcnMgcHJvY2VkdXJlLgogICAgICAtLSAgTm90ZTogdGhlIGxpbmVzIHRhYmxlIGZv ciBhbiBpbnN0YW50aWF0aW9uIGVudHJ5IHJlZmVycyB0byB0aGUKICAgICAgLS0gIG9yaWdpbmFs IGxpbmUgbnVtYmVycyBvZiB0aGUgdGVtcGxhdGUgc2VlIFNpbnB1dC1MIGZvciBkZXRhaWxzLgoK ICAgICAgTG9naWNhbF9MaW5lc19UYWJsZSA6IExvZ2ljYWxfTGluZXNfVGFibGVfUHRyOwogICAg ICAtLSAgUG9pbnRlciB0byBsb2dpY2FsIGxpbmVzIHRhYmxlIGZvciB0aGlzIHNvdXJjZS4gTm9u LW51bGwgb25seSBpZgogICAgICAtLSAgYSBzb3VyY2UgcmVmZXJlbmNlIHByYWdtYSBoYXMgYmVl biBwcm9jZXNzZWQuIFVwZGF0ZWQgYXMgbGluZXMKICAgICAgLS0gIGFyZSBhY2Nlc3NlZCB1c2lu ZyB0aGUgU2tpcF9MaW5lX1Rlcm1pbmF0b3JzIHByb2NlZHVyZS4KCiAgICAgIExpbmVzX1RhYmxl X01heCA6IFBoeXNpY2FsX0xpbmVfTnVtYmVyOwogICAgICAtLSAgTWF4aW11bSBzdWJzY3JpcHQg dmFsdWVzIGZvciBjdXJyZW50bHkgYWxsb2NhdGVkIExpbmVzX1RhYmxlCiAgICAgIC0tICBhbmQg KGlmIHByZXNlbnQpIHRoZSBhbGxvY2F0ZWQgTG9naWNhbF9MaW5lc19UYWJsZS4gVGhlIHZhbHVl CiAgICAgIC0tICBNYXhfU291cmNlX0xpbmUgZ2l2ZXMgdGhlIG1heGltdW0gdXNlZCB2YWx1ZSwg dGhpcyBnaXZlcyB0aGUKICAgICAgLS0gIG1heGltdW0gYWxsb2NhdGVkIHZhbHVlLgoKICAgZW5k IHJlY29yZDsKCiAgIHBhY2thZ2UgU291cmNlX0ZpbGUgaXMgbmV3IFRhYmxlLlRhYmxlICgKICAg ICBUYWJsZV9Db21wb25lbnRfVHlwZSA9PiBTb3VyY2VfRmlsZV9SZWNvcmQsCiAgICAgVGFibGVf SW5kZXhfVHlwZSAgICAgPT4gU291cmNlX0ZpbGVfSW5kZXgsCiAgICAgVGFibGVfTG93X0JvdW5k ICAgICAgPT4gMSwKICAgICBUYWJsZV9Jbml0aWFsICAgICAgICA9PiBBbGxvYy5Tb3VyY2VfRmls ZV9Jbml0aWFsLAogICAgIFRhYmxlX0luY3JlbWVudCAgICAgID0+IEFsbG9jLlNvdXJjZV9GaWxl X0luY3JlbWVudCwKICAgICBUYWJsZV9OYW1lICAgICAgICAgICA9PiAiU291cmNlX0ZpbGUiKTsK CiAgIC0tLS0tLS0tLS0tLS0tLS0tCiAgIC0tIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0tLS0t LS0tLS0tCgogICBwcm9jZWR1cmUgQWxsb2NfTGluZV9UYWJsZXMKICAgICAoUyAgICAgICA6IGlu IG91dCBTb3VyY2VfRmlsZV9SZWNvcmQ7CiAgICAgIE5ld19NYXggOiBOYXQpOwogICAtLSAgQWxs b2NhdGUgb3IgcmVhbGxvY2F0ZSB0aGUgbGluZXMgdGFibGUgZm9yIHRoZSBnaXZlbiBzb3VyY2Ug ZmlsZSBzbwogICAtLSAgdGhhdCBpdCBjYW4gYWNjb21tb2RhdGUgYXQgbGVhc3QgTmV3X01heCBs aW5lcy4gQWxzbyBhbGxvY2F0ZXMgb3IKICAgLS0gIHJlYWxsb2NhdGVzIGxvZ2ljYWwgbGluZXMg dGFibGUgaWYgc291cmNlIHJlZiBwcmFnbWFzIGFyZSBwcmVzZW50LgoKICAgcHJvY2VkdXJlIEFk ZF9MaW5lX1RhYmxlc19FbnRyeQogICAgIChTIDogaW4gb3V0IFNvdXJjZV9GaWxlX1JlY29yZDsK ICAgICAgUCA6IFNvdXJjZV9QdHIpOwogICAtLSAgSW5jcmVtZW50IGxpbmUgdGFibGUgc2l6ZSBi eSBvbmUgKHJlYWxsb2NhdGluZyB0aGUgbGluZXMgdGFibGUgaWYKICAgLS0gIG5lZWRlZCkgYW5k IHNldCB0aGUgbmV3IGVudHJ5IHRvIGNvbnRhaW4gdGhlIHZhbHVlIFAuIEFsc28gYnVtcHMKICAg LS0gIHRoZSBTb3VyY2VfTGluZV9Db3VudCBmaWVsZC4gSWYgc291cmNlIHJlZmVyZW5jZSBwcmFn bWFzIGFyZQogICAtLSAgcHJlc2VudCwgYWxzbyBpbmNyZW1lbnRzIGxvZ2ljYWwgbGluZXMgdGFi bGUgc2l6ZSBieSBvbmUsIGFuZAogICAtLSAgc2V0cyBuZXcgZW50cnkuCgplbmQgU2lucHV0Owot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgIEdOQVQgQ09NUElMRVIgQ09NUE9ORU5UUyAgICAgICAgICAgICAgICAgICAg ICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQyBBIFMgSSBOIEcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgcCBl IGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXZpc2lvbjogMS4xLjE2LjEgJAot LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgQ29weXJpZ2h0IChDKSAxOTkyLTIwMDAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAgIC0tCi0tICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAtLQotLSBHTkFUIGlzIGZyZWUgc29mdHdhcmU7ICB5b3UgY2FuICByZWRpc3RyaWJ1dGUg aXQgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgLS0KLS0gdGVybXMgb2YgdGhlICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgIGJ5IHRoZSBGcmVlIFNvZnQtIC0tCi0tIHdh cmUgIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyLCAgb3IgKGF0IHlvdXIgb3B0aW9uKSBh bnkgbGF0ZXIgdmVyLSAtLQotLSBzaW9uLiAgR05BVCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSC0gLS0KLS0gT1VUIEFOWSBXQVJSQU5U WTsgIHdpdGhvdXQgZXZlbiB0aGUgIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZ IC0tCi0tIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSAtLQotLSBmb3IgIG1vcmUgZGV0YWlscy4gIFlvdSBzaG91 bGQgaGF2ZSAgcmVjZWl2ZWQgIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgLS0KLS0gUHVibGlj IExpY2Vuc2UgIGRpc3RyaWJ1dGVkIHdpdGggR05BVDsgIHNlZSBmaWxlIENPUFlJTkcuICBJZiBu b3QsIHdyaXRlIC0tCi0tIHRvICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCAgNTkgVGVt cGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgQm9zdG9uLCAtLQotLSBNQSAwMjExMS0xMzA3LCBVU0Eu ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sICBpZiBvdGhl ciBmaWxlcyAgaW5zdGFudGlhdGUgIGdlbmVyaWNzIGZyb20gdGhpcyAtLQotLSB1bml0LCBvciB5 b3UgbGluayAgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgIHRvIHByb2R1Y2UgYW4gZXhlY3V0 YWJsZSwgLS0KLS0gdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0c2VsZiBjYXVzZSAgdGhlIHJl c3VsdGluZyAgZXhlY3V0YWJsZSAgdG8gIGJlIC0tCi0tIGNvdmVyZWQgIGJ5IHRoZSAgR05VICBH ZW5lcmFsICBQdWJsaWMgIExpY2Vuc2UuICBUaGlzIGV4Y2VwdGlvbiBkb2VzIG5vdCAtLQotLSBo b3dldmVyIGludmFsaWRhdGUgIGFueSBvdGhlciByZWFzb25zIHdoeSAgdGhlIGV4ZWN1dGFibGUg ZmlsZSAgbWlnaHQgYmUgLS0KLS0gY292ZXJlZCBieSB0aGUgIEdOVSBQdWJsaWMgTGljZW5zZS4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAtLQotLSBHTkFUIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCAgYnkgdGhlIEdOQVQgdGVhbSBh dCAgTmV3IFlvcmsgVW5pdmVyc2l0eS4gLS0KLS0gRXh0ZW5zaXZlIGNvbnRyaWJ1dGlvbnMgd2Vy ZSBwcm92aWRlZCBieSBBZGEgQ29yZSBUZWNobm9sb2dpZXMgSW5jLiAgICAgIC0tCi0tICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCndpdGggVHlwZXM7IHVzZSBUeXBl czsKCnBhY2thZ2UgQ2FzaW5nIGlzCgogICAtLSAgVGhpcyBwYWNrYWdlIGNvbnRhaW5zIGRhdGEg YW5kIHN1YnByb2dyYW1zIHRvIHN1cHBvcnQgdGhlIGZlYXR1cmUgdGhhdAogICAtLSAgcmVjb2du aXplcyB0aGUgbGV0dGVyIGNhc2Ugc3R5bGVzIHVzZWQgaW4gdGhlIHNvdXJjZSBwcm9ncmFtIGJl aW5nCiAgIC0tICBjb21waWxlZCwgYW5kIHVzZXMgdGhpcyBpbmZvcm1hdGlvbiBmb3IgZXJyb3Ig bWVzc2FnZSBmb3JtYXR0aW5nLCBhbmQKICAgLS0gIGZvciByZWNvZ25pemluZyByZXNlcnZlZCB3 b3JkcyB0aGF0IGFyZSBtaXN1c2VkIGFzIGlkZW50aWZpZXJzLgoKICAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICAtLSBDYXNlIENvbnRyb2wgRGVjbGFyYXRpb25zIC0tCiAgIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIC0tICBEZWNsYXJhdGlvbiBvZiB0eXBl IGZvciBkZXNjcmliaW5nIGNhc2luZyBjb252ZW50aW9uCgogICB0eXBlIENhc2luZ19UeXBlIGlz ICgKCiAgICAgIEFsbF9VcHBlcl9DYXNlLAogICAgICAtLSAgQWxsIGxldHRlcnMgYXJlIHVwcGVy IGNhc2UKCiAgICAgIEFsbF9Mb3dlcl9DYXNlLAogICAgICAtLSAgQWxsIGxldHRlcnMgYXJlIGxv d2VyIGNhc2UKCiAgICAgIE1peGVkX0Nhc2UsCiAgICAgIC0tICBUaGUgaW5pdGlhbCBsZXR0ZXIs IGFuZCBhbnkgbGV0dGVycyBhZnRlciB1bmRlcmxpbmVzIGFyZSB1cHBlciBjYXNlLgogICAgICAt LSAgQWxsIG90aGVyIGxldHRlcnMgYXJlIGxvd2VyIGNhc2UKCiAgICAgIFVua25vd24KICAgICAg LS0gIFVzZWQgaWYgYW4gaWRlbnRpZmllciBkb2VzIG5vdCBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRo ZSBhYm92ZSBjYXNlcywKICAgICAgLS0gIChlLmcuIFgsIFlfMywgTTQsIEFfQiwgb3IgaWYgaXQg aXMgaW5jb25zaXN0ZW50IEFCQ19kZWYpLgogICApOwoKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAgIC0tIENhc2UgQ29udHJvbCBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KCiAgIHByb2NlZHVyZSBTZXRfQ2FzaW5nIChDIDogQ2FzaW5n X1R5cGU7IEQgOiBDYXNpbmdfVHlwZSA6PSBNaXhlZF9DYXNlKTsKICAgLS0gIFRha2VzIHRoZSBu YW1lIHN0b3JlZCBpbiB0aGUgZmlyc3QgTmFtZV9MZW4gcG9zaXRpb25zIG9mIE5hbWVfQnVmZmVy CiAgIC0tICBhbmQgbW9kaWZpZXMgaXQgdG8gYmUgY29uc2lzdGVudCB3aXRoIHRoZSBjYXNpbmcg Z2l2ZW4gYnkgQywgb3IgaWYKICAgLS0gIEMgPSBVbmtub3duLCB0aGVuIHdpdGggdGhlIGNhc2lu ZyBnaXZlbiBieSBELiBUaGUgbmFtZSBpcyBiYXNpY2FsbHkKICAgLS0gIHRyZWF0ZWQgYXMgYW4g aWRlbnRpZmllciwgZXhjZXB0IHRoYXQgc3BlY2lhbCBzZXBhcmF0b3IgY2hhcmFjdGVycwogICAt LSAgb3RoZXIgdGhhbiB1bmRlcmxpbmUgYXJlIHBlcm1pdHRlZCBhbmQgdHJlYXRlZCBsaWtlIHVu ZGVybGluZXMgKHRoaXMKICAgLS0gIGhhbmRsZXMgY2FzZXMgbGlrZSBtaW51cyBhbmQgcGVyaW9k IGluIHVuaXQgbmFtZXMsIGFwb3N0cm9waGVzIGluIGVycm9yCiAgIC0tICBtZXNzYWdlcywgYW5n bGUgYnJhY2tldHMgaW4gbmFtZXMgbGlrZSA8YW55X3R5cGU+LCBldGMpLgoKICAgcHJvY2VkdXJl IFNldF9BbGxfVXBwZXJfQ2FzZTsKICAgcHJhZ21hIElubGluZSAoU2V0X0FsbF9VcHBlcl9DYXNl KTsKICAgLS0gIFRoaXMgcHJvY2VkdXJlIGlzIGNhbGxlZCB3aXRoIGFuIGlkZW50aWZpZXIgbmFt ZSBzdG9yZWQgaW4gTmFtZV9CdWZmZXIuCiAgIC0tICBPbiByZXR1cm4sIHRoZSBpZGVudGlmaWVy IGlzIGNvbnZlcnRlZCB0byBhbGwgdXBwZXIgY2FzZS4gVGhlIGNhbGwgaXMKICAgLS0gIGVxdWl2 YWxlbnQgdG8gU2V0X0Nhc2luZyAoQWxsX1VwcGVyX0Nhc2UpLgoKICAgZnVuY3Rpb24gRGV0ZXJt aW5lX0Nhc2luZyAoSWRlbnQgOiBUZXh0X0J1ZmZlcikgcmV0dXJuIENhc2luZ19UeXBlOwogICAt LSAgRGV0ZXJtaW5lcyB0aGUgY2FzaW5nIG9mIHRoZSBpZGVudGlmaWVyL2tleXdvcmQgc3RyaW5n IElkZW50CgplbmQgQ2FzaW5nOwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgIEdOQVQgQ09NUElMRVIgQ09NUE9ORU5U UyAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFMgVCBBIE4gRCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFMgcCBlIGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRS ZXZpc2lvbjogMS4xLjE2LjEgJAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgQ29w eXJpZ2h0IChDKSAxOTkyLTIwMDEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAg ICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIGlzIGZyZWUgc29mdHdhcmU7ICB5 b3UgY2FuICByZWRpc3RyaWJ1dGUgaXQgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgLS0KLS0gdGVy bXMgb2YgdGhlICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgIGJ5IHRo ZSBGcmVlIFNvZnQtIC0tCi0tIHdhcmUgIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyLCAg b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyLSAtLQotLSBzaW9uLiAgR05BVCBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSC0g LS0KLS0gT1VUIEFOWSBXQVJSQU5UWTsgIHdpdGhvdXQgZXZlbiB0aGUgIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIC0tCi0tIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAtLQotLSBmb3IgIG1v cmUgZGV0YWlscy4gIFlvdSBzaG91bGQgaGF2ZSAgcmVjZWl2ZWQgIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgLS0KLS0gUHVibGljIExpY2Vuc2UgIGRpc3RyaWJ1dGVkIHdpdGggR05BVDsgIHNl ZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIC0tCi0tIHRvICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCAgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgQm9zdG9uLCAtLQot LSBNQSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lh bCBleGNlcHRpb24sICBpZiBvdGhlciBmaWxlcyAgaW5zdGFudGlhdGUgIGdlbmVyaWNzIGZyb20g dGhpcyAtLQotLSB1bml0LCBvciB5b3UgbGluayAgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMg IHRvIHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgLS0KLS0gdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5 IGl0c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgZXhlY3V0YWJsZSAgdG8gIGJlIC0tCi0tIGNv dmVyZWQgIGJ5IHRoZSAgR05VICBHZW5lcmFsICBQdWJsaWMgIExpY2Vuc2UuICBUaGlzIGV4Y2Vw dGlvbiBkb2VzIG5vdCAtLQotLSBob3dldmVyIGludmFsaWRhdGUgIGFueSBvdGhlciByZWFzb25z IHdoeSAgdGhlIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgLS0KLS0gY292ZXJlZCBieSB0aGUg IEdOVSBQdWJsaWMgTGljZW5zZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIHdhcyBvcmlnaW5hbGx5IGRldmVsb3Bl ZCAgYnkgdGhlIEdOQVQgdGVhbSBhdCAgTmV3IFlvcmsgVW5pdmVyc2l0eS4gLS0KLS0gRXh0ZW5z aXZlIGNvbnRyaWJ1dGlvbnMgd2VyZSBwcm92aWRlZCBieSBBZGEgQ29yZSBUZWNobm9sb2dpZXMg SW5jLiAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K Ci0tICBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIGRlY2xhcmF0aW9ucyBvZiBlbnRpdGllcyBp biBwYWNrYWdlIFN0YW5kYXJkLAotLSAgVGhlc2UgdmFsdWVzIGFyZSBpbml0aWFsaXplZCBlaXRo ZXIgYnkgY2FsbGluZyBDU3RhbmQuQ3JlYXRlX1N0YW5kYXJkLAotLSAgb3IgYnkgY2FsbGluZyBT dGFuZC5UcmVlX1JlYWQuCgp3aXRoIFR5cGVzOyB1c2UgVHlwZXM7CgotLSAgRG8gd2UgcmVhbGx5 IG5lZWQgdGhlIHdpdGggb2YgTmFtZXQ/CgpwcmFnbWEgV2FybmluZ3MgKE9mZik7CndpdGggTmFt ZXQ7IHVzZSBOYW1ldDsKcHJhZ21hIEVsYWJvcmF0ZV9BbGwgKE5hbWV0KTsKcHJhZ21hIFdhcm5p bmdzIChPbik7CgpwYWNrYWdlIFN0YW5kIGlzCgogICB0eXBlIFN0YW5kYXJkX0VudGl0eV9UeXBl IGlzICgKICAgLS0gIFRoaXMgZW51bWVyYXRpb24gdHlwZSBjb250YWlucyBhbiBlbnRyeSBmb3Ig ZWFjaCBuYW1lIGluIFN0YW5kYXJkCgogICAgICAtLSAgUGFja2FnZSBuYW1lcwoKICAgICAgU19T dGFuZGFyZCwKICAgICAgU19BU0NJSSwKCiAgICAgIC0tICBUeXBlcyBkZWZpbmVkIGluIHBhY2th Z2UgU3RhbmRhcmQKCiAgICAgIFNfQm9vbGVhbiwKICAgICAgU19DaGFyYWN0ZXIsCiAgICAgIFNf V2lkZV9DaGFyYWN0ZXIsCiAgICAgIFNfU3RyaW5nLAogICAgICBTX1dpZGVfU3RyaW5nLAogICAg ICBTX0R1cmF0aW9uLAoKICAgICAgU19TaG9ydF9TaG9ydF9JbnRlZ2VyLAogICAgICBTX1Nob3J0 X0ludGVnZXIsCiAgICAgIFNfSW50ZWdlciwKICAgICAgU19Mb25nX0ludGVnZXIsCiAgICAgIFNf TG9uZ19Mb25nX0ludGVnZXIsCgogICAgICBTX1Nob3J0X0Zsb2F0LAogICAgICBTX0Zsb2F0LAog ICAgICBTX0xvbmdfRmxvYXQsCiAgICAgIFNfTG9uZ19Mb25nX0Zsb2F0LAoKICAgICAgLS0gIEVu dW1lcmF0aW9uIGxpdGVyYWxzIGZvciB0eXBlIEJvb2xlYW4KCiAgICAgIFNfRmFsc2UsCiAgICAg IFNfVHJ1ZSwKCiAgICAgIC0tICBTdWJ0eXBlcyBkZWNsYXJlZCBpbiBwYWNrYWdlIFN0YW5kYXJk CgogICAgICBTX05hdHVyYWwsCiAgICAgIFNfUG9zaXRpdmUsCgogICAgICAtLSAgRXhjZXB0aW9u cyBkZWNsYXJlZCBpbiBwYWNrYWdlIFN0YW5kYXJkCgogICAgICBTX0NvbnN0cmFpbnRfRXJyb3Is CiAgICAgIFNfTnVtZXJpY19FcnJvciwKICAgICAgU19Qcm9ncmFtX0Vycm9yLAogICAgICBTX1N0 b3JhZ2VfRXJyb3IsCiAgICAgIFNfVGFza2luZ19FcnJvciwKCiAgICAgIC0tICBCaW5hcnkgT3Bl cmF0b3JzIGRlY2xhcmVkIGluIHBhY2thZ2UgU3RhbmRhcmQuCgogICAgICBTX09wX0FkZCwKICAg ICAgU19PcF9BbmQsCiAgICAgIFNfT3BfQ29uY2F0LAogICAgICBTX09wX0NvbmNhdHcsCiAgICAg IFNfT3BfRGl2aWRlLAogICAgICBTX09wX0VxLAogICAgICBTX09wX0V4cG9uLAogICAgICBTX09w X0dlLAogICAgICBTX09wX0d0LAogICAgICBTX09wX0xlLAogICAgICBTX09wX0x0LAogICAgICBT X09wX01vZCwKICAgICAgU19PcF9NdWx0aXBseSwKICAgICAgU19PcF9OZSwKICAgICAgU19PcF9P ciwKICAgICAgU19PcF9SZW0sCiAgICAgIFNfT3BfU3VidHJhY3QsCiAgICAgIFNfT3BfWG9yLAoK ICAgICAgLS0gIFVuYXJ5IG9wZXJhdG9ycyBkZWNsYXJlZCBpbiBwYWNrYWdlIFN0YW5kYXJkCgog ICAgICBTX09wX0FicywKICAgICAgU19PcF9NaW51cywKICAgICAgU19PcF9Ob3QsCiAgICAgIFNf T3BfUGx1cywKCiAgICAgIC0tICBDb25zdGFudHMgZGVmaW5lZCBpbiBwYWNrYWdlIEFTQ0lJICh3 aXRoIHZhbHVlIGluIGhleCkuCiAgICAgIC0tICBGaXJzdCB0aGUgdGhpcnR5LXR3byBDMCBjb250 cm9sIGNoYXJhY3RlcnMpCgogICAgICBTX05VTCwgICAgICAgICAgICAtLSAxNiMwMCMKICAgICAg U19TT0gsICAgICAgICAgICAgLS0gMTYjMDEjCiAgICAgIFNfU1RYLCAgICAgICAgICAgIC0tIDE2 IzAyIwogICAgICBTX0VUWCwgICAgICAgICAgICAtLSAxNiMwMyMKICAgICAgU19FT1QsICAgICAg ICAgICAgLS0gMTYjMDQjCiAgICAgIFNfRU5RLCAgICAgICAgICAgIC0tIDE2IzA1IwogICAgICBT X0FDSywgICAgICAgICAgICAtLSAxNiMwNiMKICAgICAgU19CRUwsICAgICAgICAgICAgLS0gMTYj MDcjCiAgICAgIFNfQlMsICAgICAgICAgICAgIC0tIDE2IzA4IwogICAgICBTX0hULCAgICAgICAg ICAgICAtLSAxNiMwOSMKICAgICAgU19MRiwgICAgICAgICAgICAgLS0gMTYjMEEjCiAgICAgIFNf VlQsICAgICAgICAgICAgIC0tIDE2IzBCIwogICAgICBTX0ZGLCAgICAgICAgICAgICAtLSAxNiMw QyMKICAgICAgU19DUiwgICAgICAgICAgICAgLS0gMTYjMEQjCiAgICAgIFNfU08sICAgICAgICAg ICAgIC0tIDE2IzBFIwogICAgICBTX1NJLCAgICAgICAgICAgICAtLSAxNiMwRiMKICAgICAgU19E TEUsICAgICAgICAgICAgLS0gMTYjMTAjCiAgICAgIFNfREMxLCAgICAgICAgICAgIC0tIDE2IzEx IwogICAgICBTX0RDMiwgICAgICAgICAgICAtLSAxNiMxMiMKICAgICAgU19EQzMsICAgICAgICAg ICAgLS0gMTYjMTMjCiAgICAgIFNfREM0LCAgICAgICAgICAgIC0tIDE2IzE0IwogICAgICBTX05B SywgICAgICAgICAgICAtLSAxNiMxNSMKICAgICAgU19TWU4sICAgICAgICAgICAgLS0gMTYjMTYj CiAgICAgIFNfRVRCLCAgICAgICAgICAgIC0tIDE2IzE3IwogICAgICBTX0NBTiwgICAgICAgICAg ICAtLSAxNiMxOCMKICAgICAgU19FTSwgICAgICAgICAgICAgLS0gMTYjMTkjCiAgICAgIFNfU1VC LCAgICAgICAgICAgIC0tIDE2IzFBIwogICAgICBTX0VTQywgICAgICAgICAgICAtLSAxNiMxQiMK ICAgICAgU19GUywgICAgICAgICAgICAgLS0gMTYjMUMjCiAgICAgIFNfR1MsICAgICAgICAgICAg IC0tIDE2IzFEIwogICAgICBTX1JTLCAgICAgICAgICAgICAtLSAxNiMxRSMKICAgICAgU19VUywg ICAgICAgICAgICAgLS0gMTYjMUYjCgogICAgICAtLSAgSGVyZSBhcmUgdGhlIG9uZXMgZm9yIENv bG9uZWwgV2hpdGFrZXIncyBPMjYga2V5cHVuY2ghCgogICAgICBTX0V4Y2xhbSwgICAgICAgICAt LSAxNiMyMSMKICAgICAgU19RdW90YXRpb24sICAgICAgLS0gMTYjMjIjCiAgICAgIFNfU2hhcnAs ICAgICAgICAgIC0tIDE2IzIzIwogICAgICBTX0RvbGxhciwgICAgICAgICAtLSAxNiMyNCMKICAg ICAgU19QZXJjZW50LCAgICAgICAgLS0gMTYjMjUjCiAgICAgIFNfQW1wZXJzYW5kLCAgICAgIC0t IDE2IzI2IwoKICAgICAgU19Db2xvbiwgICAgICAgICAgLS0gMTYjM0EjCiAgICAgIFNfU2VtaWNv bG9uLCAgICAgIC0tIDE2IzNCIwoKICAgICAgU19RdWVyeSwgICAgICAgICAgLS0gMTYjM0YjCiAg ICAgIFNfQXRfU2lnbiwgICAgICAgIC0tIDE2IzQwIwoKICAgICAgU19MX0JyYWNrZXQsICAgICAg LS0gMTYjNUIjCiAgICAgIFNfQmFja19TbGFzaCwgICAgIC0tIDE2IzVDIwogICAgICBTX1JfQnJh Y2tldCwgICAgICAtLSAxNiM1RCMKICAgICAgU19DaXJjdW1mbGV4LCAgICAgLS0gMTYjNUUjCiAg ICAgIFNfVW5kZXJsaW5lLCAgICAgIC0tIDE2IzVGIwogICAgICBTX0dyYXZlLCAgICAgICAgICAt LSAxNiM2MCMKCiAgICAgIFNfTENfQSwgICAgICAgICAgIC0tIDE2IzYxIwogICAgICBTX0xDX0Is ICAgICAgICAgICAtLSAxNiM2MiMKICAgICAgU19MQ19DLCAgICAgICAgICAgLS0gMTYjNjMjCiAg ICAgIFNfTENfRCwgICAgICAgICAgIC0tIDE2IzY0IwogICAgICBTX0xDX0UsICAgICAgICAgICAt LSAxNiM2NSMKICAgICAgU19MQ19GLCAgICAgICAgICAgLS0gMTYjNjYjCiAgICAgIFNfTENfRywg ICAgICAgICAgIC0tIDE2IzY3IwogICAgICBTX0xDX0gsICAgICAgICAgICAtLSAxNiM2OCMKICAg ICAgU19MQ19JLCAgICAgICAgICAgLS0gMTYjNjkjCiAgICAgIFNfTENfSiwgICAgICAgICAgIC0t IDE2IzZBIwogICAgICBTX0xDX0ssICAgICAgICAgICAtLSAxNiM2QiMKICAgICAgU19MQ19MLCAg ICAgICAgICAgLS0gMTYjNkMjCiAgICAgIFNfTENfTSwgICAgICAgICAgIC0tIDE2IzZEIwogICAg ICBTX0xDX04sICAgICAgICAgICAtLSAxNiM2RSMKICAgICAgU19MQ19PLCAgICAgICAgICAgLS0g MTYjNkYjCiAgICAgIFNfTENfUCwgICAgICAgICAgIC0tIDE2IzcwIwogICAgICBTX0xDX1EsICAg ICAgICAgICAtLSAxNiM3MSMKICAgICAgU19MQ19SLCAgICAgICAgICAgLS0gMTYjNzIjCiAgICAg IFNfTENfUywgICAgICAgICAgIC0tIDE2IzczIwogICAgICBTX0xDX1QsICAgICAgICAgICAtLSAx NiM3NCMKICAgICAgU19MQ19VLCAgICAgICAgICAgLS0gMTYjNzUjCiAgICAgIFNfTENfViwgICAg ICAgICAgIC0tIDE2Izc2IwogICAgICBTX0xDX1csICAgICAgICAgICAtLSAxNiM3NyMKICAgICAg U19MQ19YLCAgICAgICAgICAgLS0gMTYjNzgjCiAgICAgIFNfTENfWSwgICAgICAgICAgIC0tIDE2 Izc5IwogICAgICBTX0xDX1osICAgICAgICAgICAtLSAxNiM3QSMKCiAgICAgIFNfTF9CUkFDRSwg ICAgICAgIC0tIDE2IzdCIwogICAgICBTX0JBUiwgICAgICAgICAgICAtLSAxNiM3QyMKICAgICAg U19SX0JSQUNFLCAgICAgICAgLS0gMTYjN0QjCiAgICAgIFNfVElMREUsICAgICAgICAgIC0tIDE2 IzdFIwoKICAgICAgLS0gIEFuZCBvbmUgbW9yZSBjb250cm9sIGNoYXJhY3RlciwgYWxsIG9uIGl0 cyBvd24KCiAgICAgIFNfREVMKTsgICAgICAgICAgIC0tIDE2IzdGIwoKICAgc3VidHlwZSBTX1R5 cGVzIGlzCiAgICAgU3RhbmRhcmRfRW50aXR5X1R5cGUgcmFuZ2UgU19Cb29sZWFuIC4uIFNfTG9u Z19Mb25nX0Zsb2F0OwoKICAgc3VidHlwZSBTX0V4Y2VwdGlvbnMgaXMKICAgICBTdGFuZGFyZF9F bnRpdHlfVHlwZSByYW5nZSBTX0NvbnN0cmFpbnRfRXJyb3IgLi4gU19UYXNraW5nX0Vycm9yOwoK ICAgc3VidHlwZSBTX0FTQ0lJX05hbWVzIGlzCiAgICAgU3RhbmRhcmRfRW50aXR5X1R5cGUgcmFu Z2UgU19OVUwgLi4gU19ERUw7CgogICBzdWJ0eXBlIFNfQmluYXJ5X09wcyBpcwogICAgICBTdGFu ZGFyZF9FbnRpdHlfVHlwZSByYW5nZSBTX09wX0FkZCAuLiBTX09wX1hvcjsKCiAgIHN1YnR5cGUg U19VbmFyeV9PcHMgaXMKICAgICAgU3RhbmRhcmRfRW50aXR5X1R5cGUgcmFuZ2UgU19PcF9BYnMg Li4gU19PcF9QbHVzOwoKICAgdHlwZSBTdGFuZGFyZF9FbnRpdHlfQXJyYXlfVHlwZSBpcyBhcnJh eSAoU3RhbmRhcmRfRW50aXR5X1R5cGUpIG9mIE5vZGVfSWQ7CgogICBTdGFuZGFyZF9FbnRpdHkg OiBTdGFuZGFyZF9FbnRpdHlfQXJyYXlfVHlwZTsKICAgLS0gIFRoaXMgYXJyYXkgY29udGFpbnMg cG9pbnRlcnMgdG8gdGhlIERlZmluaW5nIElkZW50aWZpZXIgbm9kZXMKICAgLS0gIGZvciBlYWNo IG9mIHRoZSBlbnRpdGllcyBkZWZpbmVkIGluIFN0YW5kYXJkX0VudGl0aWVzX1R5cGUuIEl0CiAg IC0tICBpcyBpbml0aWFsaXplZCBieSB0aGUgQ3JlYXRlX1N0YW5kYXJkIHByb2NlZHVyZS4KCiAg IFN0YW5kYXJkX1BhY2thZ2VfTm9kZSA6IE5vZGVfSWQ7CiAgIC0tICBQb2ludHMgdG8gdGhlIE5f UGFja2FnZV9EZWNsYXJhdGlvbiBub2RlIGZvciBzdGFuZGFyZC4gQWxzbwogICAtLSAgaW5pdGlh bGl6ZWQgYnkgdGhlIENyZWF0ZV9TdGFuZGFyZCBwcm9jZWR1cmUuCgogICAtLSAgVGhlIGZvbGxv d2luZyBFbnRpdGllcyBhcmUgdGhlIHBvaW50ZXJzIHRvIHRoZSBEZWZpbmluZyBJZGVudGlmaWVy CiAgIC0tICBub2RlcyBmb3Igc29tZSB2aXNpYmxlIGVudGl0aWVzIGRlZmluZWQgaW4gU3RhbmRh cmRfRW50aXRpZXNfVHlwZS4KCiAgIFNFIDogU3RhbmRhcmRfRW50aXR5X0FycmF5X1R5cGUgcmVu YW1lcyBTdGFuZGFyZF9FbnRpdHk7CgogICBTdGFuZGFyZF9TdGFuZGFyZCAgICAgICAgICAgIDog RW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfU3RhbmRhcmQpOwoKICAgU3RhbmRhcmRfQVNDSUkgICAg ICAgICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX0FTQ0lJKTsKICAgU3RhbmRhcmRf Q2hhcmFjdGVyICAgICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX0NoYXJhY3Rlcik7 CiAgIFN0YW5kYXJkX1dpZGVfQ2hhcmFjdGVyICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAo U19XaWRlX0NoYXJhY3Rlcik7CiAgIFN0YW5kYXJkX1N0cmluZyAgICAgICAgICAgICAgOiBFbnRp dHlfSWQgcmVuYW1lcyBTRSAoU19TdHJpbmcpOwogICBTdGFuZGFyZF9XaWRlX1N0cmluZyAgICAg ICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfV2lkZV9TdHJpbmcpOwoKICAgU3RhbmRhcmRf Qm9vbGVhbiAgICAgICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX0Jvb2xlYW4pOwog ICBTdGFuZGFyZF9GYWxzZSAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNf RmFsc2UpOwogICBTdGFuZGFyZF9UcnVlICAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFt ZXMgU0UgKFNfVHJ1ZSk7CgogICBTdGFuZGFyZF9EdXJhdGlvbiAgICAgICAgICAgIDogRW50aXR5 X0lkIHJlbmFtZXMgU0UgKFNfRHVyYXRpb24pOwoKICAgU3RhbmRhcmRfTmF0dXJhbCAgICAgICAg ICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX05hdHVyYWwpOwogICBTdGFuZGFyZF9Qb3Np dGl2ZSAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfUG9zaXRpdmUpOwoKICAg U3RhbmRhcmRfQ29uc3RyYWludF9FcnJvciAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX0Nv bnN0cmFpbnRfRXJyb3IpOwogICBTdGFuZGFyZF9OdW1lcmljX0Vycm9yICAgICAgIDogRW50aXR5 X0lkIHJlbmFtZXMgU0UgKFNfTnVtZXJpY19FcnJvcik7CiAgIFN0YW5kYXJkX1Byb2dyYW1fRXJy b3IgICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19Qcm9ncmFtX0Vycm9yKTsKICAgU3Rh bmRhcmRfU3RvcmFnZV9FcnJvciAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX1N0b3Jh Z2VfRXJyb3IpOwogICBTdGFuZGFyZF9UYXNraW5nX0Vycm9yICAgICAgIDogRW50aXR5X0lkIHJl bmFtZXMgU0UgKFNfVGFza2luZ19FcnJvcik7CgogICBTdGFuZGFyZF9TaG9ydF9GbG9hdCAgICAg ICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfU2hvcnRfRmxvYXQpOwogICBTdGFuZGFyZF9G bG9hdCAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfRmxvYXQpOwogICBT dGFuZGFyZF9Mb25nX0Zsb2F0ICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfTG9u Z19GbG9hdCk7CiAgIFN0YW5kYXJkX0xvbmdfTG9uZ19GbG9hdCAgICAgOiBFbnRpdHlfSWQgcmVu YW1lcyBTRSAoU19Mb25nX0xvbmdfRmxvYXQpOwoKICAgU3RhbmRhcmRfU2hvcnRfU2hvcnRfSW50 ZWdlciA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX1Nob3J0X1Nob3J0X0ludGVnZXIpOwogICBT dGFuZGFyZF9TaG9ydF9JbnRlZ2VyICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfU2hv cnRfSW50ZWdlcik7CiAgIFN0YW5kYXJkX0ludGVnZXIgICAgICAgICAgICAgOiBFbnRpdHlfSWQg cmVuYW1lcyBTRSAoU19JbnRlZ2VyKTsKICAgU3RhbmRhcmRfTG9uZ19JbnRlZ2VyICAgICAgICA6 IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX0xvbmdfSW50ZWdlcik7CiAgIFN0YW5kYXJkX0xvbmdf TG9uZ19JbnRlZ2VyICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19Mb25nX0xvbmdfSW50ZWdl cik7CgogICBTdGFuZGFyZF9PcF9BZGQgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMg U0UgKFNfT3BfQWRkKTsKICAgU3RhbmRhcmRfT3BfQW5kICAgICAgICAgICAgICA6IEVudGl0eV9J ZCByZW5hbWVzIFNFIChTX09wX0FuZCk7CiAgIFN0YW5kYXJkX09wX0NvbmNhdCAgICAgICAgICAg OiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19PcF9Db25jYXQpOwogICBTdGFuZGFyZF9PcF9Db25j YXR3ICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfT3BfQ29uY2F0dyk7CiAgIFN0 YW5kYXJkX09wX0RpdmlkZSAgICAgICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19PcF9E aXZpZGUpOwogICBTdGFuZGFyZF9PcF9FcSAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFt ZXMgU0UgKFNfT3BfRXEpOwogICBTdGFuZGFyZF9PcF9FeHBvbiAgICAgICAgICAgIDogRW50aXR5 X0lkIHJlbmFtZXMgU0UgKFNfT3BfRXhwb24pOwogICBTdGFuZGFyZF9PcF9HZSAgICAgICAgICAg ICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfT3BfR2UpOwogICBTdGFuZGFyZF9PcF9HdCAg ICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfT3BfR3QpOwogICBTdGFuZGFy ZF9PcF9MZSAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNfT3BfTGUpOwog ICBTdGFuZGFyZF9PcF9MdCAgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMgU0UgKFNf T3BfTHQpOwogICBTdGFuZGFyZF9PcF9Nb2QgICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFt ZXMgU0UgKFNfT3BfTW9kKTsKICAgU3RhbmRhcmRfT3BfTXVsdGlwbHkgICAgICAgICA6IEVudGl0 eV9JZCByZW5hbWVzIFNFIChTX09wX011bHRpcGx5KTsKICAgU3RhbmRhcmRfT3BfTmUgICAgICAg ICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX09wX05lKTsKICAgU3RhbmRhcmRfT3Bf T3IgICAgICAgICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX09wX09yKTsKICAgU3Rh bmRhcmRfT3BfUmVtICAgICAgICAgICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX09wX1Jl bSk7CiAgIFN0YW5kYXJkX09wX1N1YnRyYWN0ICAgICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBT RSAoU19PcF9TdWJ0cmFjdCk7CiAgIFN0YW5kYXJkX09wX1hvciAgICAgICAgICAgICAgOiBFbnRp dHlfSWQgcmVuYW1lcyBTRSAoU19PcF9Yb3IpOwoKICAgU3RhbmRhcmRfT3BfQWJzICAgICAgICAg ICAgICA6IEVudGl0eV9JZCByZW5hbWVzIFNFIChTX09wX0Ficyk7CiAgIFN0YW5kYXJkX09wX01p bnVzICAgICAgICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19PcF9NaW51cyk7CiAgIFN0 YW5kYXJkX09wX05vdCAgICAgICAgICAgICAgOiBFbnRpdHlfSWQgcmVuYW1lcyBTRSAoU19PcF9O b3QpOwogICBTdGFuZGFyZF9PcF9QbHVzICAgICAgICAgICAgIDogRW50aXR5X0lkIHJlbmFtZXMg U0UgKFNfT3BfUGx1cyk7CgogICBMYXN0X1N0YW5kYXJkX05vZGVfSWQgOiBOb2RlX0lkOwogICAt LSAgSGlnaGVzdCBOb2RlX0lkIHZhbHVlIHVzZWQgYnkgU3RhbmRhcmQKCiAgIExhc3RfU3RhbmRh cmRfTGlzdF9JZCA6IExpc3RfSWQ7CiAgIC0tICBIaWdoZXN0IExpc3RfSWQgdmFsdWUgdXNlZCBi eSBTdGFuZGFyZCAoaW5jbHVkaW5nIHRob3NlIHVzZWQgYnkKICAgLS0gIG5vcm1hbCBsaXN0IGhl YWRlcnMsIGVsZW1lbnQgbGlzdCBoZWFkZXJzLCBhbmQgbGlzdCBlbGVtZW50cykKCiAgIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgLS0gU2VtYW50aWMgUGhhc2UgU3Bl Y2lhbCBFbnRpdGllcyAtLQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CgogICAtLSAgVGhlIHNlbWFudGljIHBoYXNlIG5lZWRzIGEgbnVtYmVyIG9mIGVudGl0aWVzIGZv ciBpbnRlcm5hbCBwcm9jZXNzaW5nCiAgIC0tICB0aGF0IGFyZSBsb2dpY2FsbHkgYXQgdGhlIGxl dmVsIG9mIFN0YW5kYXJkLCBhbmQgaGVuY2UgZGVmaW5lZCBpbiB0aGlzCiAgIC0tICBwYWNrYWdl LiBIb3dldmVyLCB0aGV5IGFyZSBuZXZlciB2aXNpYmxlIHRvIGEgcHJvZ3JhbSwgYW5kIGFyZSBu b3QKICAgLS0gIGNoYWluZWQgb24gdG8gdGhlIERlY2xzIGxpc3Qgb2YgU3RhbmRhcmQuIFRoZSBu YW1lcyBvZiBhbGwgdGhlc2UKICAgLS0gIHR5cGVzIGFyZSByZWxldmFudCBvbmx5IGluIGNlcnRh aW4gZGVidWdnaW5nIGFuZCBlcnJvciBtZXNzYWdlCiAgIC0tICBzaXR1YXRpb25zLiBUaGV5IGhh dmUgbmFtZXMgdGhhdCBhcmUgc3VpdGFibGUgZm9yIHVzZSBpbiBzdWNoCiAgIC0tICBlcnJvciBt ZXNzYWdlcyAoc2VlIGJvZHkgZm9yIGFjdHVhbCBuYW1lcyB1c2VkKS4KCiAgIFN0YW5kYXJkX1Zv aWRfVHlwZSAgOiBFbnRpdHlfSWQ7CiAgIC0tICBUaGlzIGlzIGEgdHlwZSB1c2VkIHRvIHJlcHJl c2VudCB0aGUgcmV0dXJuIHR5cGUgb2YgcHJvY2VkdXJlcwoKICAgU3RhbmRhcmRfRXhjZXB0aW9u X1R5cGUgIDogRW50aXR5X0lkOwogICAtLSAgVGhpcyBpcyBhIHR5cGUgdXNlZCB0byByZXByZXNl bnQgdGhlIEV0eXBlIG9mIGV4Y2VwdGlvbnMuCgogICBTdGFuZGFyZF9BX1N0cmluZyAgIDogRW50 aXR5X0lkOwogICAtLSAgQW4gYWNjZXNzIHRvIFN0cmluZyB0eXBlIHVzZWQgZm9yIGJ1aWxkaW5n IGVsZW1lbnRzIG9mIHRhYmxlcwogICAtLSAgY2FycnlpbmcgdGhlIGVudW1lcmF0aW9uIGxpdGVy YWwgbmFtZXMuCgogICBTdGFuZGFyZF9BX0NoYXIgOiBFbnRpdHlfSWQ7CiAgIC0tICBBY2Nlc3Mg dG8gY2hhcmFjdGVyLCB1c2VkIGFzIGEgY29tcG9uZW50IG9mIHRoZSBleGNlcHRpb24gdHlwZSB0 bwogICAtLSAgZGVub3RlIGEgdGhpbiBwb2ludGVyIGNvbXBvbmVudC4KCiAgIC0tICBUaGUgZW50 aXRpZXMgbGFiZWxlZCBBbnlfeHh4IGFyZSB1c2VkIGluIHNpdHVhdGlvbnMgd2hlcmUgdGhlIGZ1 bGwKICAgLS0gIGNoYXJhY3RlcmlzdGljcyBvZiBhbiBlbnRpdHkgYXJlIG5vdCB5ZXQga25vd24s IGUuZy4gQW55X0NoYXJhY3RlcgogICAtLSAgaXMgdXNlZCB0byBsYWJlbCBhIGNoYXJhY3RlciBs aXRlcmFsIGJlZm9yZSByZXNvbHV0aW9uIGlzIGNvbXBsZXRlLgogICAtLSAgVGhlc2UgZW50aXRp ZXMgYXJlIGFsc28gdXNlZCB0byBjb25zdHJ1Y3QgYXBwcm9wcmlhdGUgcmVmZXJlbmNlcyBpbgog ICAtLSAgZXJyb3IgbWVzc2FnZXMgKCJleHBlY3RpbmcgYW4gaW50ZWdlciB0eXBlIikuCgogICBB bnlfSWQgOiBFbnRpdHlfSWQ7CiAgIC0tICBVc2VkIHRvIHJlcHJlc2VudCBzb21lIHVua25vd24g aWRlbnRpZmllci4gVXNlZCB0byBsYWJsZSB1bmRlZmluZWQKICAgLS0gIGlkZW50aWZpZXIgcmVm ZXJlbmNlcyB0byBwcmV2ZW50IGNhc2NhZGVkIGVycm9ycy4KCiAgIEFueV9UeXBlIDogRW50aXR5 X0lkOwogICAtLSAgVXNlZCB0byByZXByZXNlbnQgc29tZSB1bmtub3duIHR5cGUuIFBsYXlzIGFu IGltcG9ydGFudCByb2xlIGluCiAgIC0tICBhdm9pZGluZyBjYXNjYWRlZCBlcnJvcnMsIHNpbmNl IGFueSBub2RlIHRoYXQgcmVtYWlucyBsYWJhbGVkIHdpdGgKICAgLS0gIHRoaXMgdHlwZSBjb3Jy ZXNwb25kcyB0byBhbiBhbHJlYWR5IGlzc3VlZCBlcnJvciBtZXNzYWdlLiBBbnlfVHlwZQogICAt LSAgaXMgcHJvcGFnYXRlZCB0byBhdm9pZCBjYXNjYWRlZCBlcnJvcnMgZnJvbSBhIHNpbmdsZSB0 eXBlIGVycm9yLgoKICAgQW55X0FjY2VzcyA6IEVudGl0eV9JZDsKICAgLS0gIFVzZWQgdG8gcmVz b2x2ZSB0aGUgb3ZlcmxvYWRlZCBsaXRlcmFsIE5VTEwuCgogICBBbnlfQXJyYXkgOiBFbnRpdHlf SWQ7CiAgIC0tICBVc2VkIHRvIHJlcHJlc2VudCBzb21lIHVua25vd24gYXJyYXkgdHlwZQoKICAg QW55X0Jvb2xlYW4gOiBFbnRpdHlfSWQ7CiAgIC0tICBUaGUgY29udGV4dCB0eXBlIG9mIGNvbmRp dGlvbnMgaW4gSUYgYW5kIFdISUxFIHN0YXRlbWVudHMuCgogICBBbnlfQ2hhcmFjdGVyIDogRW50 aXR5X0lkOwogICAtLSAgQW55X0NoYXJhY3RlciBpcyB1c2VkIHRvIGxhYmVsIGNoYXJhY3RlciBs aXRlcmFscywgd2hpY2ggaW4gZ2VuZXJhbAogICAtLSAgd2lsbCBub3QgaGF2ZSBhbiBleHBsaWNp dCBkZWNsYXJhdGlvbiAodGhpcyBpcyB0cnVlIG9mIHRoZSBwcmVkZWZpbmVkCiAgIC0tICBjaGFy YWN0ZXIgdHlwZXMpLgoKICAgQW55X0NvbXBvc2l0ZSA6IEVudGl0eV9JZDsKICAgLS0gIFRoZSB0 eXBlIEFueV9Db21wb3NpdGUgaXMgdXNlZCBmb3IgYWdncmVnYXRlcyBiZWZvcmUgdHlwZSByZXNv bHV0aW9uLgogICAtLSAgSXQgaXMgY29tcGF0aWJsZSB3aXRoIGFueSBhcnJheSBvciBub24tbGlt aXRlZCByZWNvcmQgdHlwZS4KCiAgIEFueV9EaXNjcmV0ZSA6IEVudGl0eV9JZDsKICAgLS0gIFVz ZWQgdG8gcmVwcmVzZW50IHNvbWUgdW5rbm93biBkaXNjcmV0ZSB0eXBlCgogICBBbnlfRml4ZWQg OiBFbnRpdHlfSWQ7CiAgIC0tICBVc2VkIHRvIHJlcHJlc2VudCBzb21lIHVua25vd24gZml4ZWQt cG9pbnQgdHlwZQoKICAgQW55X0ludGVnZXIgOiBFbnRpdHlfSWQ7CiAgIC0tICBVc2VkIHRvIHJl cHJlc2VudCBzb21lIHVua25vd24gaW50ZWdlciB0eXBlLgoKICAgQW55X01vZHVsYXIgOiBFbnRp dHlfSWQ7CiAgIC0tICBVc2VkIHRvIHJlcHJlc2VudCB0aGUgcmVzdWx0IHR5cGUgb2YgYSBib29s ZWFuIG9wZXJhdGlvbiBvbiBhbgogICAtLSAgaW50ZWdlciBsaXRlcmFsLiBUaGUgcmVzdWx0IGlz IG5vdCBVbml2ZXJzYWxfSW50ZWdlciwgYmVjYXVzZSBpdCBpcwogICAtLSAgb25seSBsZWdhbCBp biBhIG1vZHVsYXIgY29udGV4dC4KCiAgIEFueV9OdW1lcmljIDogRW50aXR5X0lkOwogICAtLSAg VXNlZCB0byByZXByZXNlbnQgc29tZSB1bmtub3duIG51bWVyaWMgdHlwZS4KCiAgIEFueV9SZWFs IDogRW50aXR5X0lkOwogICAtLSAgVXNlZCB0byByZXByZXNlbnQgc29tZSB1bmtub3duIHJlYWwg dHlwZS4KCiAgIEFueV9TY2FsYXIgOiBFbnRpdHlfSWQ7CiAgIC0tICBVc2VkIHRvIHJlcHJlc2Vu dCBzb21lIHVua25vd24gc2NhbGFyIHR5cGUKCiAgIEFueV9TdHJpbmcgOiBFbnRpdHlfSWQ7CiAg IC0tICBUaGUgdHlwZSBBbnlfU3RyaW5nIGlzIHVzZWQgZm9yIHN0cmluZyBsaXRlcmFscyBiZWZv cmUgdHlwZQogICAtLSAgcmVzb2x1dGlvbi4gSXQgY29ycmVzcG9uZHMgdG8gYXJyYXkgKFBvc2l0 aXZlIHJhbmdlIDw+KSBvZiBjaGFyYWN0ZXIKICAgLS0gIHdoZXJlIHRoZSBjb21wb25lbnQgdHlw ZSBpcyBjb21wYXRpYmxlIHdpdGggYW55IGNoYXJhY3RlciB0eXBlLAogICAtLSAgbm90IGp1c3Qg U3RhbmRhcmRfQ2hhcmFjdGVyLgoKICAgVW5pdmVyc2FsX0ludGVnZXIgOiBFbnRpdHlfSWQ7CiAg IC0tICBFbnRpdHkgZm9yIHVuaXZlcnNhbCBpbnRlZ2VyIHR5cGUuIFRoZSBib3VuZHMgb2YgdGhp cyB0eXBlIGNvcnJlc3BvbmQKICAgLS0gIHRvIHRoZSBsYXJnZXN0IHN1cHBvcnRlZCBpbnRlZ2Vy IHR5cGUgKGkuZS4gTG9uZ19Mb25nX0ludGVnZXIpLiBJdCBpcwogICAtLSAgdGhlIHR5cGUgdXNl ZCBmb3IgcnVudGltZSBjYWxjdWxhdGlvbnMgaW4gdHlwZSB1bml2ZXJzYWwgaW50ZWdlci4KCiAg IFVuaXZlcnNhbF9SZWFsIDogRW50aXR5X0lkOwogICAtLSAgRW50aXR5IGZvciB1bml2ZXJzYWwg cmVhbCB0eXBlLiBUaGUgYm91bmRzIG9mIHRoaXMgdHlwZSBjb3JyZXNwb25kIHRvCiAgIC0tICB0 byB0aGUgbGFyZ2VzdCBzdXBwb3J0ZWQgcmVhbCB0eXBlIChpLmUuIExvbmdfTG9uZ19SZWFsKS4g SXQgaXMgdGhlCiAgIC0tICB0eXBlIHVzZWQgZm9yIHJ1bnRpbWUgY2FsY3VsYXRpb25zIGluIHR5 cGUgdW5pdmVyc2FsIHJlYWwuCgogICBVbml2ZXJzYWxfRml4ZWQgOiBFbnRpdHlfSWQ7CiAgIC0t ICBFbnRpdHkgZm9yIHVuaXZlcnNhbCBmaXhlZCB0eXBlLiBUaGlzIGlzIGEgdHlwZSB3aXRoICBh cmJpdHJhcnkKICAgLS0gIHByZWNpc2lvbiB0aGF0IGNhbiBvbmx5IGFwcGVhciBpbiAgYSBjb250 ZXh0IHdpdGggYSBzcGVjaWZpYyB0eXBlLgogICAtLSAgVW5pdmVyc2FsX0ZpeGVkIGxhYmVscyB0 aGUgcmVzdWx0IG9mIG11bHRpcGxpY2F0aW9uIG9yIGRpdmlzaW9uIG9mCiAgIC0tICB0d28gZml4 ZWQgcG9pbnQgbnVtYmVycywgYW5kIGhhcyBubyBzcGVjaWZpZWQgYm91bmRzIChzaW5jZSwgdW5s aWtlCiAgIC0tICB1bml2ZXJzYWwgaW50ZWdlciBhbmQgdW5pdmVyc2FsIHJlYWwsIGl0IGlzIG5l dmVyIHVzZWQgZm9yIHJ1bnRpbWUKICAgLS0gIGNhbGN1bGF0aW9ucykuCgogICBTdGFuZGFyZF9J bnRlZ2VyXzggIDogRW50aXR5X0lkOwogICBTdGFuZGFyZF9JbnRlZ2VyXzE2IDogRW50aXR5X0lk OwogICBTdGFuZGFyZF9JbnRlZ2VyXzMyIDogRW50aXR5X0lkOwogICBTdGFuZGFyZF9JbnRlZ2Vy XzY0IDogRW50aXR5X0lkOwogICAtLSAgVGhlc2UgYXJlIHNpZ25lZCBpbnRlZ2VyIHR5cGVzIHdp dGggdGhlIGluZGljYXRlZCBzaXplcywgVGhleSBhcmUKICAgLS0gIHVzZWQgZm9yIHRoZSB1bmRl cmx5aW5nIGltcGxlbWVudGF0aW9uIHR5cGVzIGZvciBmaXhlZC1wb2ludCBhbmQKICAgLS0gIGVu dW1lcmF0aW9uIHR5cGVzLgoKICAgU3RhbmRhcmRfVW5zaWduZWQgOiBFbnRpdHlfSWQ7CiAgIC0t ICBBbiB1bnNpZ25lZCB0eXBlIG9mIHRoZSBzYW1lIHNpemUgYXMgU3RhbmRhcmRfSW50ZWdlcgoK ICAgQWJvcnRfU2lnbmFsIDogRW50aXR5X0lkOwogICAtLSAgRW50aXR5IGZvciBhYm9ydCBzaWdu YWwgZXhjZXB0aW9uCgogICBTdGFuZGFyZF9PcF9Sb3RhdGVfTGVmdCAgICAgICAgICAgIDogRW50 aXR5X0lkOwogICBTdGFuZGFyZF9PcF9Sb3RhdGVfUmlnaHQgICAgICAgICAgIDogRW50aXR5X0lk OwogICBTdGFuZGFyZF9PcF9TaGlmdF9MZWZ0ICAgICAgICAgICAgIDogRW50aXR5X0lkOwogICBT dGFuZGFyZF9PcF9TaGlmdF9SaWdodCAgICAgICAgICAgIDogRW50aXR5X0lkOwogICBTdGFuZGFy ZF9PcF9TaGlmdF9SaWdodF9Bcml0aG1ldGljIDogRW50aXR5X0lkOwogICAtLSAgVGhlc2UgZW50 aXRpZXMgYXJlIHVzZWQgZm9yIHNoaWZ0IG9wZXJhdG9ycyBnZW5lcmF0ZWQgYnkgdGhlIGV4cGFu ZGVyCgogICAtLS0tLS0tLS0tLS0tLS0tLQogICAtLSBTdWJwcm9ncmFtcyAtLQogICAtLS0tLS0t LS0tLS0tLS0tLQoKICAgcHJvY2VkdXJlIFRyZWVfUmVhZDsKICAgLS0gIEluaXRpYWxpemVzIGVu dGl0eSB2YWx1ZXMgaW4gdGhpcyBwYWNrYWdlIGZyb20gdGhlIGN1cnJlbnQgdHJlZQogICAtLSAg ZmlsZSB1c2luZyBPc2ludC5UcmVlX1JlYWQuIE5vdGUgdGhhdCBUcmVlX1JlYWQgaW5jbHVkZXMg YWxsIHRoZQogICAtLSAgaW5pdGlhbGl6YXRpb24gdGhhdCBpcyBjYXJyaWVkIG91dCBieSBDcmVh dGVfU3RhbmRhcmQuCgogICBwcm9jZWR1cmUgVHJlZV9Xcml0ZTsKICAgLS0gIFdyaXRlcyBvdXQg dGhlIGVudGl0eSB2YWx1ZXMgaW4gdGhpcyBwYWNrYWdlIHRvIHRoZSBjdXJyZW50CiAgIC0tICB0 cmVlIGZpbGUgdXNpbmcgT3NpbnQuVHJlZV9Xcml0ZS4KCmVuZCBTdGFuZDsKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICBHTkFUIENPTVBJTEVSIENPTVBPTkVOVFMgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUyBUIFIg SSBOIEcgVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTIHAgZSBjICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAkUmV2aXNpb246IDEuMS4xNi4xICQKLS0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC0tCi0tICAgICAgICAgIENvcHlyaWdodCAoQykgMTk5Mi0yMDAxIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbiwgSW5jLiAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0g R05BVCBpcyBmcmVlIHNvZnR3YXJlOyAgeW91IGNhbiAgcmVkaXN0cmlidXRlIGl0ICBhbmQvb3Ig bW9kaWZ5IGl0IHVuZGVyIC0tCi0tIHRlcm1zIG9mIHRoZSAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkICBieSB0aGUgRnJlZSBTb2Z0LSAtLQotLSB3YXJlICBGb3VuZGF0 aW9uOyAgZWl0aGVyIHZlcnNpb24gMiwgIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl ci0gLS0KLS0gc2lvbi4gIEdOQVQgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3 aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEgtIC0tCi0tIE9VVCBBTlkgV0FSUkFOVFk7ICB3aXRob3V0 IGV2ZW4gdGhlICBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSAtLQotLSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgLS0KLS0gZm9yICBtb3JlIGRldGFpbHMuICBZb3Ugc2hvdWxkIGhhdmUgIHJl Y2VpdmVkICBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIC0tCi0tIFB1YmxpYyBMaWNlbnNlICBk aXN0cmlidXRlZCB3aXRoIEdOQVQ7ICBzZWUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCB3cml0ZSAt LQotLSB0byAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgIDU5IFRlbXBsZSBQbGFjZSAt IFN1aXRlIDMzMCwgIEJvc3RvbiwgLS0KLS0gTUEgMDIxMTEtMTMwNywgVVNBLiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAtLQotLSBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCAgaWYgb3RoZXIgZmlsZXMgIGlu c3RhbnRpYXRlICBnZW5lcmljcyBmcm9tIHRoaXMgLS0KLS0gdW5pdCwgb3IgeW91IGxpbmsgIHRo aXMgdW5pdCB3aXRoIG90aGVyIGZpbGVzICB0byBwcm9kdWNlIGFuIGV4ZWN1dGFibGUsIC0tCi0t IHRoaXMgIHVuaXQgIGRvZXMgbm90ICBieSBpdHNlbGYgY2F1c2UgIHRoZSByZXN1bHRpbmcgIGV4 ZWN1dGFibGUgIHRvICBiZSAtLQotLSBjb3ZlcmVkICBieSB0aGUgIEdOVSAgR2VuZXJhbCAgUHVi bGljICBMaWNlbnNlLiAgVGhpcyBleGNlcHRpb24gZG9lcyBub3QgLS0KLS0gaG93ZXZlciBpbnZh bGlkYXRlICBhbnkgb3RoZXIgcmVhc29ucyB3aHkgIHRoZSBleGVjdXRhYmxlIGZpbGUgIG1pZ2h0 IGJlIC0tCi0tIGNvdmVyZWQgYnkgdGhlICBHTlUgUHVibGljIExpY2Vuc2UuICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gR05B VCB3YXMgb3JpZ2luYWxseSBkZXZlbG9wZWQgIGJ5IHRoZSBHTkFUIHRlYW0gYXQgIE5ldyBZb3Jr IFVuaXZlcnNpdHkuIC0tCi0tIEV4dGVuc2l2ZSBjb250cmlidXRpb25zIHdlcmUgcHJvdmlkZWQg YnkgQWRhIENvcmUgVGVjaG5vbG9naWVzIEluYy4gICAgICAtLQotLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg LS0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgp3aXRoIFN5c3RlbTsgdXNlIFN5c3RlbTsKd2l0aCBU eXBlczsgIHVzZSBUeXBlczsKCnBhY2thZ2UgU3RyaW5ndCBpcwoKLS0gIFRoaXMgcGFja2FnZSBj b250YWlucyByb3V0aW5lcyBmb3IgaGFuZGxpbmcgdGhlIHN0cmluZ3MgdGFibGUgd2hpY2ggaXMK LS0gIHVzZWQgdG8gc3RvcmUgc3RyaW5nIGNvbnN0YW50cyBlbmNvdW50ZXJlZCBpbiB0aGUgc291 cmNlLCBhbmQgYWxzbyB0aG9zZQotLSAgYWRkaXRpb25hbCBzdHJpbmcgY29uc3RhbnRzIGdlbmVy YXRlZCBieSBjb21waWxlIHRpbWUgY29uY2F0ZW5hdGlvbiBhbmQKLS0gIG90aGVyIHNpbWlsYXIg cHJvY2Vzc2luZy4KCi0tICBBIHN0cmluZyBjb25zdGFudCBpbiB0aGlzIHRhYmxlIGNvbnNpc3Rz IG9mIGEgc2VyaWVzIG9mIENoYXJfQ29kZSB2YWx1ZXMsCi0tICBzbyB0aGF0IDE2LWJpdCBjaGFy YWN0ZXIgY29kZXMgY2FuIGJlIHByb3Blcmx5IGhhbmRsZWQgaWYgdGhpcyBmZWF0dXJlCi0tICBp cyBpbXBsZW1lbnRlZCBpbiB0aGUgc2Nhbm5lci4KCi0tICBUaGVyZSBpcyBubyBndWFyYW50ZWUg dGhhdCBoYXNoaW5nIGlzIHVzZWQgaW4gdGhlIGltcGxlbWVudGF0aW9uLCBhbHRob3VnaAotLSAg aXQgbWF5YmUuIFRoaXMgbWVhbnMgdGhhdCB0aGUgY2FsbGVyIGNhbm5vdCBjb3VudCBvbiBoYXZp bmcgdGhlIHNhbWUgSWQKLS0gIHZhbHVlIGZvciB0d28gaWRlbnRpY2FsIHN0cmluZ3Mgc3RvcmVk IHNlcGFyYXRlbHkgYW5kIGFsc28gY2Fubm90IGNvdW50IG9uCi0tICB0aGUgdHdvIElkIHZhbHVl cyBiZWluZyBkaWZmZXJlbnQuCgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogICAtLSBTdHJpbmcgVGFibGUgQWNjZXNzIFN1YnByb2dyYW1zIC0tCiAgIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICBwcm9jZWR1cmUgSW5pdGlhbGl6ZTsK ICAgLS0gIEluaXRpYWxpemVzIHRoZSBzdHJpbmdzIHRhYmxlIGZvciBhIG5ldyBjb21waWxhdGlv bi4gTm90ZSB0aGF0CiAgIC0tICBJbml0aWFsaXplIG11c3Qgbm90IGJlIGNhbGxlZCBpZiBUcmVl X1JlYWQgaXMgdXNlZC4KCiAgIHByb2NlZHVyZSBMb2NrOwogICAtLSAgTG9jayBpbnRlcm5hbCB0 YWJsZXMgYmVmb3JlIGNhbGxpbmcgYmFjayBlbmQKCiAgIHByb2NlZHVyZSBVbmxvY2s7CiAgIC0t ICBVbmxvY2sgaW50ZXJuYWwgdGFibGVzLCBpbiBjYXNlIGJhY2sgZW5kIG5lZWRzIHRvIG1vZGlm eSB0aGVtCgogICBwcm9jZWR1cmUgU3RhcnRfU3RyaW5nOwogICAtLSAgU2V0cyB1cCBmb3Igc3Rv cmluZyBhIG5ldyBzdHJpbmcgaW4gdGhlIHRhYmxlLiBUbyBzdG9yZSBhIHN0cmluZywgYQogICAt LSAgY2FsbCBpcyBmaXJzdCBtYWRlIHRvIFN0YXJ0X1N0cmluZywgdGhlbiBzdWNjZXNzaXZlIGNh bGxzIGFyZQogICAtLSAgbWFkZSB0byBTdG9yZV9TdHJpbmdfQ2hhcmFjdGVyIHRvIHN0b3JlIHRo ZSBjaGFyYWN0ZXJzIG9mIHRoZSBzdHJpbmcuCiAgIC0tICBGaW5hbGx5LCBhIGNhbGwgdG8gRW5k X1N0cmluZyB0ZXJtaW5hdGVzIHRoZSBlbnRyeSBhbmQgcmV0dXJucyBpdCBJZC4KCiAgIHByb2Nl ZHVyZSBTdGFydF9TdHJpbmcgKFMgOiBTdHJpbmdfSWQpOwogICAtLSAgTGlrZSBTdGFydF9TdHJp bmcgd2l0aCBubyBwYXJhbWV0ZXIsIGV4Y2VwdCB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUKICAg LS0gIG5ldyBzdHJpbmcgaXMgaW5pdGlhbGl6ZWQgdG8gYmUgYSBjb3B5IG9mIHRoZSBnaXZlbiBz dHJpbmcuIEEgdGVzdCBpcwogICAtLSAgbWFkZSB0byBzZWUgaWYgUyBpcyB0aGUgbGFzdCBjcmVh dGVkIHN0cmluZywgYW5kIGlmIHNvIGl0IGlzIHNoYXJlZCwKICAgLS0gIHJhdGhlciB0aGFuIGNv cGllZCwgdGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IGhlbHBmdWwgZm9yIHRoZSBjYXNlIG9mCiAg IC0tICBhIGNvbnRpbnVlZCBjb25jYXRlbmFpb24gb2Ygc3RyaW5nIGNvbnN0YW50cy4KCiAgIHBy b2NlZHVyZSBTdG9yZV9TdHJpbmdfQ2hhciAoQyA6IENoYXJfQ29kZSk7CiAgIHByb2NlZHVyZSBT dG9yZV9TdHJpbmdfQ2hhciAoQyA6IENoYXJhY3Rlcik7CiAgIC0tICBTdG9yZSBuZXh0IGNoYXJh Y3RlciBvZiBzdHJpbmcsIHNlZSBkZXNjcmlwdGlvbiBhYm92ZSBmb3IgU3RhcnRfU3RyaW5nCgog ICBwcm9jZWR1cmUgU3RvcmVfU3RyaW5nX0NoYXJzIChTIDogU3RyaW5nKTsKICAgcHJvY2VkdXJl IFN0b3JlX1N0cmluZ19DaGFycyAoUyA6IFN0cmluZ19JZCk7CiAgIC0tICBTdG9yZSBjaGFyYWN0 ZXIgY29kZXMgb2YgZ2l2ZW4gc3RyaW5nIGluIHNlcXVlbmNlCgogICBwcm9jZWR1cmUgU3RvcmVf U3RyaW5nX0ludCAoTiA6IEludCk7CiAgIC0tICBTdG9yZWQgZGVjaW1hbCByZXByZXNlbnRhdGlv biBvZiBpbnRlZ2VyIHdpdGggcG9zc2libGUgbGVhZGluZyBtaW51cwoKICAgcHJvY2VkdXJlIFVu c3RvcmVfU3RyaW5nX0NoYXI7CiAgIC0tICBVbmRvZXMgZWZmZWN0IG9mIHByZXZpb3VzIFN0b3Jl X1N0cmluZ19DaGFyIGNhbGwsIHVzZWQgaW4gc29tZSBlcnJvcgogICAtLSAgc2l0dWF0aW9ucyBv ZiB1bnRlcm1pbmF0ZWQgc3RyaW5nIGNvbnN0YW50cy4KCiAgIGZ1bmN0aW9uIEVuZF9TdHJpbmcg cmV0dXJuIFN0cmluZ19JZDsKICAgLS0gIFRlcm1pbmF0ZXMgY3VycmVudCBzdHJpbmcgYW5kIHJl dHVybnMgaXRzIElkCgogICBmdW5jdGlvbiBTdHJpbmdfTGVuZ3RoIChJZCA6IFN0cmluZ19JZCkg cmV0dXJuIE5hdDsKICAgLS0gIFJldHVybnMgbGVuZ3RoIG9mIHByZXZpb3VzbHkgc3RvcmVkIHN0 cmluZwoKICAgZnVuY3Rpb24gR2V0X1N0cmluZ19DaGFyIChJZCA6IFN0cmluZ19JZDsgSW5kZXgg OiBJbnQpIHJldHVybiBDaGFyX0NvZGU7CiAgIC0tICBPYnRhaW5zIHRoZSBzcGVjaWZpZWQgY2hh cmFjdGVyIGZyb20gYSBzdG9yZWQgc3RyaW5nLiBUaGUgbG93ZXIgYm91bmQKICAgLS0gIG9mIHN0 b3JlZCBzdHJpbmdzIGlzIGFsd2F5cyAxLCBzbyB0aGUgcmFuZ2UgaXMgMSAuLiBTdHJpbmdfTGVu Z3RoIChJZCkuCgogICBmdW5jdGlvbiBTdHJpbmdfRXF1YWwgKEwsIFIgOiBTdHJpbmdfSWQpIHJl dHVybiBCb29sZWFuOwogICAtLSAgRGV0ZXJtaW5lcyBpZiB0d28gc3RyaW5nIGxpdGVyYWxzIHJl cHJlc2VudCB0aGUgc2FtZSBzdHJpbmcKCiAgIHByb2NlZHVyZSBTdHJpbmdfVG9fTmFtZV9CdWZm ZXIgKFMgOiBTdHJpbmdfSWQpOwogICAtLSAgUGxhY2UgY2hhcmFjdGVycyBvZiBnaXZlbiBzdHJp bmcgaW4gTmFtZV9CdWZmZXIsIHNldHRpbmcgTmFtZV9MZW4KCiAgIHByb2NlZHVyZSBBZGRfU3Ry aW5nX1RvX05hbWVfQnVmZmVyIChTIDogU3RyaW5nX0lkKTsKICAgLS0gIEFwcGVuZCBjaGFyYWN0 ZXJzIG9mIGdpdmVuIHN0cmluZyB0byBOYW1lX0J1ZmZlciwgdXBkYXRpbmcgTmFtZV9MZW4KCiAg IGZ1bmN0aW9uIFN0cmluZ19DaGFyc19BZGRyZXNzIHJldHVybiBTeXN0ZW0uQWRkcmVzczsKICAg LS0gIFJldHVybiBhZGRyZXNzIG9mIFN0cmluZ19DaGFycyB0YWJsZSAodXNlZCBieSBCYWNrX0Vu ZCBjYWxsIHRvIEdpZ2kpCgogICBmdW5jdGlvbiBTdHJpbmdfRnJvbV9OYW1lX0J1ZmZlciByZXR1 cm4gU3RyaW5nX0lkOwogICAtLSAgR2l2ZW4gYSBuYW1lIHN0b3JlZCBpbiBOYW1ldC5OYW1lX0J1 ZmZlciAobGVuZ3RoIGluIE5hbWV0Lk5hbWVfTGVuKSwKICAgLS0gIHJldHVybnMgYSBzdHJpbmcg b2YgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUuIFRoZSB2YWx1ZSBpbiBOYW1lX0J1ZmZlcgogICAt LSAgaXMgdW5jaGFuZ2VkLCBhbmQgdGhlIGNhc2VzIG9mIGxldHRlcnMgYXJlIHVuY2hhbmdlZC4K CiAgIGZ1bmN0aW9uIFN0cmluZ3NfQWRkcmVzcyByZXR1cm4gU3lzdGVtLkFkZHJlc3M7CiAgIC0t ICBSZXR1cm4gYWRkcmVzcyBvZiBTdHJpbmdzIHRhYmxlICh1c2VkIGJ5IEJhY2tfRW5kIGNhbGwg dG8gR2lnaSkKCiAgIHByb2NlZHVyZSBUcmVlX1JlYWQ7CiAgIC0tICBJbml0aWFsaXplcyBpbnRl cm5hbCB0YWJsZXMgZnJvbSBjdXJyZW50IHRyZWUgZmlsZSB1c2luZyBUcmVlX1JlYWQuCiAgIC0t ICBOb3RlIHRoYXQgSW5pdGlhbGl6ZSBzaG91bGQgbm90IGJlIGNhbGxlZCBpZiBUcmVlX1JlYWQg aXMgdXNlZC4KICAgLS0gIFRyZWVfUmVhZCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IGluaXRpYWxp emF0aW9uLgoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGU7CiAgIC0tICBXcml0ZXMgb3V0IGludGVy bmFsIHRhYmxlcyB0byBjdXJyZW50IHRyZWUgZmlsZSB1c2luZyBUcmVlX1dyaXRlCgogICBwcm9j ZWR1cmUgV3JpdGVfQ2hhcl9Db2RlIChDb2RlIDogQ2hhcl9Db2RlKTsKICAgLS0gIFByb2NlZHVy ZSB0byB3cml0ZSBhIGNoYXJhY3RlciBjb2RlIHZhbHVlLCB1c2VkIGZvciBkZWJ1Z2dpbmcgcHVy cG9zZXMKICAgLS0gIGZvciB3cml0aW5nIGNoYXJhY3RlciBjb2Rlcy4gSWYgdGhlIGNoYXJhY3Rl ciBjb2RlIGlzIGluIHRoZSByYW5nZQogICAtLSAgMTYjMjAjIC4uIDE2IzdFIywgdGhlbiB0aGUg c2luZ2xlIGdyYXBoaWMgY2hhcmFjdGVyIGNvcnJlc3BvbmRpbmcgdG8KICAgLS0gIHRoZSBjb2Rl IGlzIG91dHB1dC4gRm9yIGFueSBvdGhlciBjb2RlcyBpbiB0aGUgcmFuZ2UgMTYjMDAjIC4uIDE2 I0ZGIywKICAgLS0gIHRoZSBjb2RlIGlzIG91dHB1dCBhcyBbImhoIl0gd2hlcmUgaGggaXMgdGhl IHR3byBkaWdpdCBoZXggdmFsdWUgZm9yCiAgIC0tICB0aGUgY29kZS4gQ29kZXMgZ3JlYXRlciB0 aGFuIDE2I0ZGIyBhcmUgb3V0cHV0IGFzIFsiaGhoaCJdIHdoZXJlIGhoaGgKICAgLS0gIGlzIHRo ZSBmb3VyIGRpZ2l0IGhleCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29kZSB2YWx1ZSAoaGlnaCBv cmRlcgogICAtLSAgYnl0ZSBmaXJzdCkuIEhleCBsZXR0ZXJzIGFyZSBhbHdheXMgaW4gdXBwZXIg Y2FzZS4KCiAgIHByb2NlZHVyZSBXcml0ZV9TdHJpbmdfVGFibGVfRW50cnkgKElkIDogU3RyaW5n X0lkKTsKICAgLS0gIFdyaXRlcyBhIHN0cmluZyB2YWx1ZSB3aXRoIGVuY2xvc2luZyBxdW90ZXMg dG8gdGhlIGN1cnJlbnQgZmlsZSB1c2luZwogICAtLSAgcm91dGluZXMgaW4gcGFja2FnZSBPdXRw dXQuIERvZXMgbm90IHdyaXRlIGFuIGVuZCBvZiBsaW5lIGNoYXJhY3Rlci4KICAgLS0gIFRoaXMg cHJvY2VkdXJlIGlzIHVzZWQgZm9yIGRlYnVnIG91dHB1dCBwdXJwb3NlcywgYW5kIGFsc28gZm9y IG91dHB1dAogICAtLSAgb2Ygc3RyaW5ncyBzcGVjaWZpZWQgYnkgcHJhZ21hIExpbmtlciBPcHRp b24gdG8gdGhlIGFsaSBmaWxlLiA3LWJpdAogICAtLSAgQVNDSUkgZ3JhcGhpY3MgKGV4Y2VwdCBm b3IgZG91YmxlIHF1b3RlIGFuZCBsZWZ0IGJyYWNlKSBhcmUgb3V0cHV0CiAgIC0tICBsaXRlcmFs bHkuIFRoZSBkb3VibGUgcXVvdGUgYXBwZWFycyBhcyB0d28gc3VjY2Vzc2l2ZSBkb3VibGUgcXVv dGVzLgogICAtLSAgQWxsIG90aGVyIGNvZGVzLCBhcmUgb3V0cHV0IGFzIGRlc2NyaWJlZCBmb3Ig V3JpdGVfQ2hhcl9Db2RlLiBGb3IKICAgLS0gIGV4YW1wbGUsIHRoZSBzdHJpbmcgY3JlYXRlZCBi eSBmb2xkaW5nICJBIiAmIEFTQ0lJLkxGICYgIkhlbGxvIiB3aWxsCiAgIC0tICBwcmludCBhcyAi QXswQX1IZWxsbyIuIEEgTm9fU3RyaW5nIHZhbHVlIHByaW50cyBzaW1wbHkgYXMgIm5vIHN0cmlu ZyIKICAgLS0gIHdpdGhvdXQgc3Vycm91bmRpbmcgcXVvdGUgbWFya3MuCgpwcml2YXRlCiAgIHBy YWdtYSBJbmxpbmUgKEVuZF9TdHJpbmcpOwogICBwcmFnbWEgSW5saW5lIChTdHJpbmdfTGVuZ3Ro KTsKCmVuZCBTdHJpbmd0OwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgIEdOQVQgQ09NUElMRVIgQ09NUE9ORU5UUyAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUIFIgRSBFIF8gSSBPICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFMgcCBlIGMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0K LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICRSZXZp c2lvbjogMS4xLjE2LjIgJAotLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgQ29weXJp Z2h0IChDKSAxOTkyLTE5OTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuICAgICAgICAg IC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIGlzIGZyZWUgc29mdHdhcmU7ICB5b3Ug Y2FuICByZWRpc3RyaWJ1dGUgaXQgIGFuZC9vciBtb2RpZnkgaXQgdW5kZXIgLS0KLS0gdGVybXMg b2YgdGhlICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgIGJ5IHRoZSBG cmVlIFNvZnQtIC0tCi0tIHdhcmUgIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyLCAgb3Ig KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyLSAtLQotLSBzaW9uLiAgR05BVCBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSC0gLS0K LS0gT1VUIEFOWSBXQVJSQU5UWTsgIHdpdGhvdXQgZXZlbiB0aGUgIGltcGxpZWQgd2FycmFudHkg b2YgTUVSQ0hBTlRBQklMSVRZIC0tCi0tIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAtLQotLSBmb3IgIG1vcmUg ZGV0YWlscy4gIFlvdSBzaG91bGQgaGF2ZSAgcmVjZWl2ZWQgIGEgY29weSBvZiB0aGUgR05VIEdl bmVyYWwgLS0KLS0gUHVibGljIExpY2Vuc2UgIGRpc3RyaWJ1dGVkIHdpdGggR05BVDsgIHNlZSBm aWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIC0tCi0tIHRvICB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCAgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLCAgQm9zdG9uLCAtLQotLSBN QSAwMjExMS0xMzA3LCBVU0EuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tCi0tIEFzIGEgc3BlY2lhbCBl eGNlcHRpb24sICBpZiBvdGhlciBmaWxlcyAgaW5zdGFudGlhdGUgIGdlbmVyaWNzIGZyb20gdGhp cyAtLQotLSB1bml0LCBvciB5b3UgbGluayAgdGhpcyB1bml0IHdpdGggb3RoZXIgZmlsZXMgIHRv IHByb2R1Y2UgYW4gZXhlY3V0YWJsZSwgLS0KLS0gdGhpcyAgdW5pdCAgZG9lcyBub3QgIGJ5IGl0 c2VsZiBjYXVzZSAgdGhlIHJlc3VsdGluZyAgZXhlY3V0YWJsZSAgdG8gIGJlIC0tCi0tIGNvdmVy ZWQgIGJ5IHRoZSAgR05VICBHZW5lcmFsICBQdWJsaWMgIExpY2Vuc2UuICBUaGlzIGV4Y2VwdGlv biBkb2VzIG5vdCAtLQotLSBob3dldmVyIGludmFsaWRhdGUgIGFueSBvdGhlciByZWFzb25zIHdo eSAgdGhlIGV4ZWN1dGFibGUgZmlsZSAgbWlnaHQgYmUgLS0KLS0gY292ZXJlZCBieSB0aGUgIEdO VSBQdWJsaWMgTGljZW5zZS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0t Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAtLQotLSBHTkFUIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCAg YnkgdGhlIEdOQVQgdGVhbSBhdCAgTmV3IFlvcmsgVW5pdmVyc2l0eS4gLS0KLS0gRXh0ZW5zaXZl IGNvbnRyaWJ1dGlvbnMgd2VyZSBwcm92aWRlZCBieSBBZGEgQ29yZSBUZWNobm9sb2dpZXMgSW5j LiAgICAgIC0tCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi0t ICBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGhlIHJvdXRpbmVzIHVzZWQgdG8gcmVhZCBhbmQgd3Jp dGUgdGhlIHRyZWUgZmlsZXMKLS0gIHVzZWQgYnkgQVNJUy4gT25seSB0aGUgYWN0dWFsIHJlYWQg YW5kIHdyaXRlIHJvdXRpbmVzIGFyZSBoZXJlLiBUaGUgb3BlbiwKLS0gIGNyZWF0ZSBhbmQgY2xv c2Ugcm91dGluZXMgYXJlIGVsc2V3aGVyZSAoaW4gT3NpbnQgaW4gdGhlIGNvbXBpbGVyLCBhbmQg aW4KLS0gIHRoZSB0cmVlIHJlYWQgZHJpdmVyIGZvciB0aGUgdHJlZSByZWFkIGludGVyZmFjZSku Cgp3aXRoIEdOQVQuT1NfTGliOyB1c2UgR05BVC5PU19MaWI7CndpdGggU3lzdGVtOyAgICAgIHVz ZSBTeXN0ZW07CndpdGggVHlwZXM7ICAgICAgIHVzZSBUeXBlczsKCnBhY2thZ2UgVHJlZV9JTyBp cwoKICAgVHJlZV9Gb3JtYXRfRXJyb3IgOiBleGNlcHRpb247CiAgIC0tICBSYWlzZWQgaWYgYSBm b3JtYXQgZXJyb3IgaXMgZGV0ZWN0ZWQgaW4gdGhlIGlucHV0IGZpbGUKCiAgIHByb2NlZHVyZSBU cmVlX1JlYWRfSW5pdGlhbGl6ZSAoRGVzYyA6IEZpbGVfRGVzY3JpcHRvcik7CiAgIC0tICBDYWxs ZWQgdG8gaW5pdGlhbGl6ZSByZWFkaW5nIG9mIGEgdHJlZSBmaWxlLiBUaGlzIGNhbGwgbXVzdCBi ZSBtYWRlCiAgIC0tICBiZWZvcmUgY2FsbHMgdG8gVHJlZV9SZWFkX3h4LiBObyBjYWxscyB0byBU cmVlX1dyaXRlX3h4IGFyZSBwZXJtaXR0ZWQKICAgLS0gIGFmdGVyIHRoaXMgY2FsbC4KCiAgIHBy b2NlZHVyZSBUcmVlX1JlYWRfRGF0YSAoQWRkciA6IEFkZHJlc3M7IExlbmd0aCA6IEludCk7CiAg IC0tICBDaGVja3MgdGhhdCB0aGUgTGVuZ3RoIHByb3ZpZGVkIGlzIHRoZSBzYW1lIGFzIHdoYXQg aGFzIGJlZW4gcHJvdmlkZWQKICAgLS0gIHRvIHRoZSBjb3JyZXNwb25kaW5nIFRyZWVfV3JpdGVf RGF0YSBmcm9tIHRoZSBjdXJyZW50IHRyZWUgZmlsZSwKICAgLS0gIFRyZWVfRm9ybWF0X0Vycm9y IGlzIHJhaXNlZCBpZiBpdCBpcyBub3QgdGhlIGNhc2UuIElmIExlbmd0aCBpcwogICAtLSAgY29y cmVjdCBhbmQgbm9uIHplcm8sIHJlYWRzIExlbmd0aCBieXRlcyBvZiBpbmZvcm1hdGlvbiBpbnRv IG1lbW9yeQogICAtLSAgc3RhcnRpbmcgYXQgQWRkciBmcm9tIHRoZSBjdXJyZW50IHRyZWUgZmls ZS4KCiAgIHByb2NlZHVyZSBUcmVlX1JlYWRfQm9vbCAoQiA6IG91dCBCb29sZWFuKTsKICAgLS0g IFJlYWRzIGEgc2luZ2xlIGJvb2xlYW4gdmFsdWUuIFRoZSBib29sZWFuIHZhbHVlIG11c3QgaGF2 ZSBiZWVuIHdyaXR0ZW4KICAgLS0gIHdpdGggYSBjYWxsIHRvIHRoZSBUcmVlX1dyaXRlX0Jvb2wg cHJvY2VkdXJlLgoKICAgcHJvY2VkdXJlIFRyZWVfUmVhZF9DaGFyIChDIDogb3V0IENoYXJhY3Rl cik7CiAgIC0tICBSZWFkcyBhIHNpbmdsZSBjaGFyYWN0ZXIuIFRoZSBjaGFyYWN0ZXIgbXVzdCBo YXZlIGJlZW4gd3JpdHRlbiB3aXRoIGEKICAgLS0gIGNhbGwgdG8gdGhlIFRyZWVfV3JpdGVfQ2hh ciBwcm9jZWR1cmUuCgogICBwcm9jZWR1cmUgVHJlZV9SZWFkX0ludCAoTiA6IG91dCBJbnQpOwog ICAtLSAgUmVhZHMgYSBzaW5nbGUgaW50ZWdlciB2YWx1ZS4gVGhlIGludGVnZXIgbXVzdCBoYXZl IGJlZW4gd3JpdHRlbiB3aXRoCiAgIC0tICBhIGNhbGwgdG8gdGhlIFRyZWVfV3JpdGVfSW50IHBy b2NlZHVyZS4KCiAgIHByb2NlZHVyZSBUcmVlX1JlYWRfU3RyIChTIDogb3V0IFN0cmluZ19QdHIp OwogICAtLSAgUmVhZCBzdHJpbmcsIGFsbG9jYXRlIG9uIGhlYXAsIGFuZCByZXR1cm4gcG9pbnRl ciB0byBhbGxvY2F0ZWQgc3RyaW5nCiAgIC0tICB3aGljaCBhbHdheXMgaGFzIGEgbG93ZXIgYm91 bmQgb2YgMS4KCiAgIHByb2NlZHVyZSBUcmVlX1JlYWRfVGVybWluYXRlOwogICAtLSAgQ2FsbGVk IGFmdGVyIHJlYWRpbmcgYWxsIGRhdGEsIGNoZWNrcyB0aGF0IHRoZSBidWZmZXIgcG9pbnRlcnMg aXMgYXQKICAgLS0gIHRoZSBlbmQgb2YgZmlsZSwgcmFpc2luZyBUcmVlX0Zvcm1hdF9FcnJvciBp ZiBub3QuCgogICBwcm9jZWR1cmUgVHJlZV9Xcml0ZV9Jbml0aWFsaXplIChEZXNjIDogRmlsZV9E ZXNjcmlwdG9yKTsKICAgLS0gIENhbGxlZCB0byBpbml0aWFsaXplIHdyaXRpbmcgb2YgYSB0cmVl IGZpbGUuIFRoaXMgY2FsbCBtdXN0IGJlIG1hZGUKICAgLS0gIGJlZm9yZSBjYWxscyB0byBUcmVl X1dyaXRlX3h4LiBObyBjYWxscyB0byBUcmVlX1JlYWRfeHggYXJlIHBlcm1pdHRlZAogICAtLSAg YWZ0ZXIgdGhpcyBjYWxsLgoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGVfRGF0YSAoQWRkciA6IEFk ZHJlc3M7IExlbmd0aCA6IEludCk7CiAgIC0tICBXcml0ZXMgTGVuZ3RoIHRoZW4sIGlmIExlbmd0 aCBpcyBub3QgbnVsbCwgTGVuZ3RoIGJ5dGVzIG9mIGRhdGEKICAgLS0gIHN0YXJ0aW5nIGF0IEFk ZHIgdG8gY3VycmVudCB0cmVlIGZpbGUKCiAgIHByb2NlZHVyZSBUcmVlX1dyaXRlX0Jvb2wgKEIg OiBCb29sZWFuKTsKICAgLS0gIFdyaXRlcyBhIHNpbmdsZSBib29sZWFuIHZhbHVlIHRvIHRoZSBj dXJyZW50IHRyZWUgZmlsZQoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGVfQ2hhciAoQyA6IENoYXJh Y3Rlcik7CiAgIC0tICBXcml0ZXMgYSBzaW5nbGUgY2hhcmFjdGVyIHRvIHRoZSBjdXJyZW50IHRy ZWUgZmlsZQoKICAgcHJvY2VkdXJlIFRyZWVfV3JpdGVfSW50IChOIDogSW50KTsKICAgLS0gIFdy aXRlcyBhIHNpbmdsZSBpbnRlZ2VyIHZhbHVlIHRvIHRoZSBjdXJyZW50IHRyZWUgZmlsZQoKICAg cHJvY2VkdXJlIFRyZWVfV3JpdGVfU3RyIChTIDogU3RyaW5nX1B0cik7CiAgIC0tICBXcml0ZSBv dXQgc3RyaW5nIHZhbHVlIHJlZmVyZW5jZWQgYnkgUy4gTG93IGJvdW5kIG11c3QgYmUgMS4KCiAg IHByb2NlZHVyZSBUcmVlX1dyaXRlX1Rlcm1pbmF0ZTsKICAgLS0gIFRlcm1pbmF0ZXMgd3JpdGlu ZyBvZiB0aGUgZmlsZSAoZmx1c2hpbmcgdGhlIGJ1ZmZlciksIGJ1dCBkb2VzIG5vdAogICAtLSAg Y2xvc2UgdGhlIGZpbGUgKHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNsb3NpbmcgdGhl IGZpbGUpLgoKZW5kIFRyZWVfSU87Cg==