<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>10738</bug_id>
          
          <creation_ts>2006-09-05 09:08:56 -0700</creation_ts>
          <short_desc>Consolidate the Objective-C DOM Bindings Internal files into DOMInternal.h</short_desc>
          <delta_ts>2006-09-05 10:01:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54822</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-05 09:08:56 -0700</bug_when>
    <thetext>Get rid of DOMHTMLInternal.h, DOMCSSInternal.h, DOMEventsInternal.h, DOMViewsInternal.h and DOMXPathInternal.h to make auto-generation easier.  Eventually, we will want to auto-generate DOMInternal,h as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54826</commentid>
    <comment_count>1</comment_count>
      <attachid>10401</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-05 09:31:06 -0700</bug_when>
    <thetext>Created attachment 10401
patch

- Consolidate DOMHTMLInternal.h, DOMCSSInternal.h, DOMEventsInternal.h, DOMViewsInternal.h and DOMXPathInternal.h into DOMInternal.h.

 - Rename the &quot;type-makers&quot; (used to make a binding from an implementation type) so that all the HTML ones begin with the prefix HTML.  Did the same for the CSS.

 - Auto-generate a couple more methods from DOMExtensions.h.

 - Various cleanups of the Objective-C auto-generation code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54827</commentid>
    <comment_count>2</comment_count>
      <attachid>10401</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-05 09:47:46 -0700</bug_when>
    <thetext>Comment on attachment 10401
patch

r=me, nice cleanup!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54829</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-05 10:01:26 -0700</bug_when>
    <thetext>Landed in r16229.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10401</attachid>
            <date>2006-09-05 09:31:06 -0700</date>
            <delta_ts>2006-09-05 09:47:46 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoCleanup3.diff</filename>
            <type>text/plain</type>
            <size>76690</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODMgQEAKKzIwMDYtMDktMDUgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDczOAorICAgICAgICBDb25zb2xpZGF0ZSB0aGUgT2JqZWN0aXZlLUMgRE9NIEJpbmRpbmdzIElu
dGVybmFsIGZpbGVzIGludG8gRE9NSW50ZXJuYWwuaAorCisgICAgICAgIC0gQ29uc29saWRhdGUg
RE9NSFRNTEludGVybmFsLmgsIERPTUNTU0ludGVybmFsLmgsIERPTUV2ZW50c0ludGVybmFsLmgs
CisgICAgICAgICAgRE9NVmlld3NJbnRlcm5hbC5oIGFuZCBET01YUGF0aEludGVybmFsLmggaW50
byBET01JbnRlcm5hbC5oLgorCisgICAgICAgIC0gUmVuYW1lIHRoZSAidHlwZS1tYWtlcnMiICh1
c2VkIHRvIG1ha2UgYSBiaW5kaW5nIGZyb20gYW4gaW1wbGVtZW50YXRpb24gCisgICAgICAgICAg
dHlwZSkgc28gdGhhdCBhbGwgdGhlIEhUTUwgb25lcyBiZWdpbiB3aXRoIHRoZSBwcmVmaXggSFRN
TC4gIERpZCB0aGUgc2FtZQorICAgICAgICAgIGZvciB0aGUgQ1NTLgorCisgICAgICAgIC0gQXV0
by1nZW5lcmF0ZSBhIGNvdXBsZSBtb3JlIG1ldGhvZHMgZnJvbSBET01FeHRlbnNpb25zLmguCisK
KyAgICAgICAgLSBWYXJpb3VzIGNsZWFudXBzIG9mIHRoZSBPYmplY3RpdmUtQyBhdXRvLWdlbmVy
YXRpb24gY29kZS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTS5tbToKKyAgICAgICAgKC1bRE9NRG9jdW1l
bnQgY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbl0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NQ1NTLm1tOgorICAgICAgICAoK1tET01DU1NSdWxlTGlzdCBfQ1NTUnVsZUxpc3RXaXRoOl0p
OgorICAgICAgICAoK1tET01DU1NSdWxlIF9DU1NSdWxlV2l0aDpdKToKKyAgICAgICAgKCtbRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiBfQ1NTU3R5bGVEZWNsYXJhdGlvbldpdGg6XSk6CisgICAgICAg
ICgrW0RPTUNTU1ZhbHVlIF9DU1NWYWx1ZVdpdGg6XSk6CisgICAgICAgICgrW0RPTUNTU1ByaW1p
dGl2ZVZhbHVlIF9DU1NQcmltaXRpdmVWYWx1ZVdpdGg6XSk6CisgICAgICAgICgtW0RPTURvY3Vt
ZW50IGdldENvbXB1dGVkU3R5bGU6Ol0pOgorICAgICAgICAoLVtET01Eb2N1bWVudCBnZXRNYXRj
aGVkQ1NTUnVsZXM6Ol0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTSW50ZXJuYWwu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50cy5tbToKKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50c0ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAg
ICogYmluZGluZ3Mvb2JqYy9ET01FdmVudHNOb25zdGFuZGFyZC5tbToKKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUV4dGVuc2lvbnMuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW06CisgICAgICAgICgrW0RPTUhUTUxDb2xsZWN0aW9uIF9IVE1MQ29sbGVjdGlvbldpdGg6
XSk6CisgICAgICAgICgrW0RPTUhUTUxPcHRpb25zQ29sbGVjdGlvbiBfSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uV2l0aDpdKToKKyAgICAgICAgKCtbRE9NSFRNTEVsZW1lbnQgX0hUTUxFbGVtZW50V2l0
aDpdKToKKyAgICAgICAgKCtbRE9NSFRNTEZvcm1FbGVtZW50IF9IVE1MRm9ybUVsZW1lbnRXaXRo
Ol0pOgorICAgICAgICAoK1tET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCBfSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnRXaXRoOl0pOgorICAgICAgICAoK1tET01IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCBfSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRXaXRoOl0pOgorICAgICAgICAoK1tET01IVE1MVGFi
bGVFbGVtZW50IF9IVE1MVGFibGVFbGVtZW50V2l0aDpdKToKKyAgICAgICAgKCtbRE9NSFRNTFRh
YmxlQ2VsbEVsZW1lbnQgX0hUTUxUYWJsZUNlbGxFbGVtZW50V2l0aDpdKToKKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUhUTUxBcHBsZXRFbGVtZW50Lm1tOgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NSFRNTERvY3VtZW50Lm1tOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgYm9k
eV0pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgaW1hZ2VzXSk6CisgICAgICAgICgtW0RP
TUhUTUxEb2N1bWVudCBhcHBsZXRzXSk6CisgICAgICAgICgtW0RPTUhUTUxEb2N1bWVudCBsaW5r
c10pOgorICAgICAgICAoLVtET01IVE1MRG9jdW1lbnQgZm9ybXNdKToKKyAgICAgICAgKC1bRE9N
SFRNTERvY3VtZW50IGFuY2hvcnNdKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxJ
bnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTE9wdGlv
bkVsZW1lbnQubW06CisgICAgICAgICgtW0RPTUhUTUxPcHRpb25FbGVtZW50IGZvcm1dKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUludGVybmFsLmg6CisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01SR0JDb2xvci5tbToKKyAgICAgICAgKHNldFdyYXBwZXJGb3JSR0IpOgorICAgICAg
ICAoLVtET01SR0JDb2xvciByZWRdKToKKyAgICAgICAgKC1bRE9NUkdCQ29sb3IgZ3JlZW5dKToK
KyAgICAgICAgKC1bRE9NUkdCQ29sb3IgYmx1ZV0pOgorICAgICAgICAoLVtET01SR0JDb2xvciBh
bHBoYV0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVXRpbGl0eS5tbToKKyAgICAgICAg
KEtKUzo6U2NyaXB0SW50ZXJwcmV0ZXI6OmNyZWF0ZU9iamNJbnN0YW5jZUZvclZhbHVlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVZpZXdzLm1tOgorICAgICAgICAoLVtET01BYnN0cmFj
dFZpZXcgV2ViQ29yZTo6XSk6CisgICAgICAgICgtW0RPTUFic3RyYWN0VmlldyBfaW5pdFdpdGhB
YnN0cmFjdFZpZXc6V2ViQ29yZTo6XSk6CisgICAgICAgICgrW0RPTUFic3RyYWN0VmlldyBfYWJz
dHJhY3RWaWV3V2l0aDpXZWJDb3JlOjpdKToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVZp
ZXdzSW50ZXJuYWwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVhQYXRo
Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NWFBhdGhJbnRlcm5hbC5oOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5oOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG06CisgICAgICAgICogYnJp
ZGdlL21hYy9XZWJDb3JlRnJhbWVCcmlkZ2UubW06CisgICAgICAgICgtW1dlYkNvcmVGcmFtZUJy
aWRnZSB0eXBpbmdTdHlsZV0pOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRs
OgorICAgICAgICAqIGh0bWwvSFRNTEFyZWFFbGVtZW50LmlkbDoKKyAgICAgICAgKiBodG1sL0hU
TUxJbWFnZUVsZW1lbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5pZGw6
CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaWRsOgorCiAyMDA2LTA5LTA1ICBTdGV2
ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQ29uZGl0aW9uYWxp
emUgbmV3IERPTSBoZWFkZXJzIGZvciBPYmpDIG9ubHkKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw3ICs0
Nyw2IEBACiAJCTFBMEQ1NzQxMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMEQ1NzNGMEE1
Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuaCAqLzsgfTsKIAkJMUExRDEzODAwQTUz
MjU1MjAwNjRCRjVGIC8qIERPTVhQYXRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQTFEMTM3RTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGguaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQTFEMTM4
MTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTFEMTM3RjBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBh
dGgubW0gKi87IH07Ci0JCTFBMUQxM0NBMEE1MzI5MDkwMDY0QkY1RiAvKiBET01YUGF0aEludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTFE
MTNDOTBBNTMyOTA5MDA2NEJGNUYgLyogRE9NWFBhdGhJbnRlcm5hbC5oICovOyB9OwogCQkxQTQ5
NEJGQTBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQ5NEJGODBBMTIyRjQ0MDBGREFGQzEg
LyogSlNIVE1MRWxlbWVudC5jcHAgKi87IH07CiAJCTFBNDk0QkZCMEExMjJGNDQwMEZEQUZDMSAv
KiBKU0hUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTQ5NEJGOTBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5oICovOyB9
OwogCQkxQTQ5NEUzNDBBMTIzNThCMDBGREFGQzEgLyogSlNIVE1MRG9jdW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE0OTRFMzIwQTEyMzU4
QTAwRkRBRkMxIC8qIEpTSFRNTERvY3VtZW50LmNwcCAqLzsgfTsKQEAgLTc2LDcgKzc1LDYgQEAK
IAkJMUE3NjJDNzgwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTc2MkM3MDBBMDc0RjI2
MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIuaCAqLzsgfTsKIAkJMUE3NjJDNzkwQTA3NEYy
NjAwOTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE3NjJDNzEwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhS
ZXN1bHQuY3BwICovOyB9OwogCQkxQTc2MkM3QTBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aFJl
c3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE3
NjJDNzIwQTA3NEYyNjAwOTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCAqLzsgfTsKLQkJMUE4MDg2
Q0MwQTREMDk3NjAwREZCNkE3IC8qIERPTUNTU0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTgwODM3MzBBNEM3Q0RBMDBERkI2QTcgLyog
RE9NQ1NTSW50ZXJuYWwuaCAqLzsgfTsKIAkJMUE4MjBEOTEwQTEzRUJBNjAwQUY4NDNDIC8qIElt
YWdlRG9jdW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUE4MjBEOEYwQTEzRUJBNjAwQUY4NDNDIC8qIEltYWdlRG9jdW1lbnQuY3BwICovOyB9
OwogCQkxQTgyMEQ5MjBBMTNFQkE2MDBBRjg0M0MgLyogSW1hZ2VEb2N1bWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE4MjBEOTAwQTEzRUJBNjAw
QUY4NDNDIC8qIEltYWdlRG9jdW1lbnQuaCAqLzsgfTsKIAkJMUE4NUIxOEYwQTFCMThBMjAwRDhD
ODdDIC8qIEpTSFRNTEh0bWxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBODVCMThEMEExQjE4QTIwMEQ4Qzg3QyAvKiBKU0hUTUxIdG1s
RWxlbWVudC5jcHAgKi87IH07CkBAIC0xNzY0LDExICsxNzYyLDkgQEAKIAkJQkMxQTM3QjEwOTdD
NzE1RjAwMTlGM0Q4IC8qIERPTUNTUy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMUEzNzlCMDk3QzcxNUYwMDE5RjNEOCAvKiBET01DU1MubW0gKi87
IH07CiAJCUJDMUEzN0IyMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FdmVudHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzNzlDMDk3QzcxNUYwMDE5
RjNEOCAvKiBET01FdmVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzFBMzdCMzA5N0M3MTVGMDAxOUYzRDggLyogRE9NRXZlbnRzLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3OUQwOTdD
NzE1RjAwMTlGM0Q4IC8qIERPTUV2ZW50cy5tbSAqLzsgfTsKLQkJQkMxQTM3QjQwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTUV2ZW50c0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzc5RTA5N0M3MTVGMDAxOUYzRDggLyogRE9NRXZlbnRz
SW50ZXJuYWwuaCAqLzsgfTsKIAkJQkMxQTM3QjUwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUV4dGVu
c2lvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MUEzNzlGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FeHRlbnNpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxQTM3QjYwOTdDNzE1RjAwMTlG
M0Q4IC8qIERPTUhUTUwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMUEzN0EwMDk3QzcxNUYwMDE5RjNEOCAvKiBET01IVE1MLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxQTM3QjcwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTUhUTUwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzFBMzdBMTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5tbSAqLzsgfTsK
LQkJQkMxQTM3QjgwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUhUTUxJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTM3QTIwOTdDNzE1RjAw
MTlGM0Q4IC8qIERPTUhUTUxJbnRlcm5hbC5oICovOyB9OwogCQlCQzFBMzdCOTA5N0M3MTVGMDAx
OUYzRDggLyogRE9NSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMUEzN0EzMDk3QzcxNUYwMDE5RjNEOCAvKiBET01JbnRlcm5hbC5oICov
OyB9OwogCQlCQzFBMzdCQTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSW50ZXJuYWwubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBMzdBNDA5N0M3MTVG
MDAxOUYzRDggLyogRE9NSW50ZXJuYWwubW0gKi87IH07CiAJCUJDMUEzN0JCMDk3QzcxNUYwMDE5
RjNEOCAvKiBET01Qcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzFBMzdBNTA5N0M3MTVGMDAxOUYzRDggLyogRE9NUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNzc4LDcgKzE3
NzQsNiBAQAogCQlCQzFBMzdCRjA5N0M3MTVGMDAxOUYzRDggLyogRE9NVXRpbGl0eS5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0E5MDk3Qzcx
NUYwMDE5RjNEOCAvKiBET01VdGlsaXR5Lm1tICovOyB9OwogCQlCQzFBMzdDMDA5N0M3MTVGMDAx
OUYzRDggLyogRE9NVmlld3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMUEzN0FBMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMUEzN0MxMDk3Qzcx
NUYwMDE5RjNEOCAvKiBET01WaWV3cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMUEzN0FCMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5tbSAq
LzsgfTsKLQkJQkMxQTM3QzIwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUEzN0FDMDk3
QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3c0ludGVybmFsLmggKi87IH07CiAJCUJDNkI3QkFGMDk5
MzYwM0MwMDUyODY3QiAvKiBJbWFnZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzZCN0JBRTA5OTM2MDNDMDA1Mjg2N0IgLyogSW1hZ2UuY3BwICov
OyB9OwogCQlCQzZCN0VDRjA5OThBQzdGMDA1Mjg2N0IgLyogSW1hZ2VTb3VyY2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNkI3RUNFMDk5OEFDN0Yw
MDUyODY3QiAvKiBJbWFnZVNvdXJjZS5oICovOyB9OwogCQlCQzZENkREMjA5QUY5MDY2MDBGNTk3
NTkgLyogRm9udC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzZENkREMDA5QUY5MDY2MDBGNTk3NTkgLyogRm9udC5jcHAgKi87IH07CkBAIC0yMTMx
LDcgKzIxMjYsNiBAQAogCQkxQTBENTczRjBBNUM3ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU092ZXJmbG93RXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUExRDEzN0UwQTUzMjU1MjAwNjRCRjVG
IC8qIERPTVhQYXRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVhQYXRo
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMUQxMzdGMEE1MzI1NTIwMDY0QkY1
RiAvKiBET01YUGF0aC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERPTVhQYXRoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQTFEMTNDOTBBNTMy
OTA5MDA2NEJGNUYgLyogRE9NWFBhdGhJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01YUGF0aEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBNDk0QkJCMEExMjJEQ0QwMEZEQUZDMSAvKiBIVE1MRWxlbWVudC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gSFRNTEVsZW1lbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkxQTQ5NEJGODBBMTIyRjQ0MDBGREFGQzEgLyogSlNIVE1MRWxlbWVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNDk0QkY5MEExMjJGNDQwMEZEQUZDMSAvKiBKU0hU
TUxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxFbGVt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTY3LDcgKzIxNjEsNiBAQAog
CQkxQTc2MkM3MDBBMDc0RjI2MDA5ODlGNUIgLyogSlNYUGF0aE5TUmVzb2x2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWFBhdGhOU1Jlc29sdmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNzYyQzcxMEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRo
UmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hQYXRo
UmVzdWx0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3NjJDNzIwQTA3NEYy
NjAwOTg5RjVCIC8qIEpTWFBhdGhSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTWFBhdGhSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUE4
MDgzNzMwQTRDN0NEQTAwREZCNkE3IC8qIERPTUNTU0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTgyMEQ4RjBBMTNFQkE2MDBBRjg0M0MgLyogSW1hZ2VEb2N1bWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VEb2N1bWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBODIwRDkwMEExM0VCQTYwMEFGODQzQyAv
KiBJbWFnZURvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZURvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBODVCMTdEMEExQjE4
MzYwMEQ4Qzg3QyAvKiBIVE1MSHRtbEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEhUTUxIdG1sRWxlbWVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zOTU0
LDExICszOTQ3LDkgQEAKIAkJQkMxQTM3OUIwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUNTUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUEzNzlDMDk3QzcxNUYwMDE5RjNEOCAvKiBET01F
dmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50cy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFBMzc5RDA5N0M3MTVGMDAxOUYzRDggLyog
RE9NRXZlbnRzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUV2ZW50cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxQTM3OUUwOTdDNzE1
RjAwMTlGM0Q4IC8qIERPTUV2ZW50c0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01FdmVudHNJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzFBMzc5RjA5N0M3MTVGMDAxOUYzRDggLyogRE9NRXh0ZW5zaW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXh0ZW5zaW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzFBMzdBMDA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzFBMzdBMTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzFBMzdBMjA5N0M3MTVGMDAxOUYzRDggLyogRE9N
SFRNTEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1M
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxQTM3QTMwOTdDNzE1
RjAwMTlGM0Q4IC8qIERPTUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFBMzdB
NDA5N0M3MTVGMDAxOUYzRDggLyogRE9NSW50ZXJuYWwubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSW50ZXJuYWwubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMUEzN0E1MDk3QzcxNUYwMDE5RjNEOCAvKiBET01Qcml2YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01Qcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0zOTY4LDcgKzM5NTksNiBAQAogCQlCQzFBMzdBOTA5N0M3MTVGMDAx
OUYzRDggLyogRE9NVXRpbGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01VdGlsaXR5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFB
MzdBQTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTVZpZXdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MUEzN0FCMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01WaWV3cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQkMxQTM3QUMwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzSW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVZpZXdzSW50ZXJuYWwuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMzQjM2NDcwNUM5RDVFMjAwRTQyOTAyIC8qIEF0
b21pY1N0cmluZ0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXRvbWljU3RyaW5nTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJQkM1RUMxNzYwQTUwN0UzRTAwNjAwN0Y1
IC8qIHZpZXctc291cmNlLmNzcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gInZpZXctc291cmNl
LmNzcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNkI3QkFFMDk5MzYwM0MwMDUy
ODY3QiAvKiBJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjEwMywxNSArNjA5Mywx
MiBAQAogCQkJCUJDMUEzNzk5MDk3QzcxNUYwMDE5RjNEOCAvKiBET01Db3JlLmggKi8sCiAJCQkJ
QkMxQTM3OUEwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUNTUy5oICovLAogCQkJCUJDMUEzNzlCMDk3
QzcxNUYwMDE5RjNEOCAvKiBET01DU1MubW0gKi8sCi0JCQkJMUE4MDgzNzMwQTRDN0NEQTAwREZC
NkE3IC8qIERPTUNTU0ludGVybmFsLmggKi8sCiAJCQkJQkMxQTM3OUMwOTdDNzE1RjAwMTlGM0Q4
IC8qIERPTUV2ZW50cy5oICovLAogCQkJCUJDMUEzNzlEMDk3QzcxNUYwMDE5RjNEOCAvKiBET01F
dmVudHMubW0gKi8sCiAJCQkJRTEwNTJDMzEwQTRENzAwMTAwNzJEOTlCIC8qIERPTUV2ZW50c05v
bnN0YW5kYXJkLm1tICovLAotCQkJCUJDMUEzNzlFMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FdmVu
dHNJbnRlcm5hbC5oICovLAogCQkJCUJDMUEzNzlGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01FeHRl
bnNpb25zLmggKi8sCiAJCQkJQkMxQTM3QTAwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUhUTUwuaCAq
LywKIAkJCQlCQzFBMzdBMTA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTC5tbSAqLywKLQkJCQlC
QzFBMzdBMjA5N0M3MTVGMDAxOUYzRDggLyogRE9NSFRNTEludGVybmFsLmggKi8sCiAJCQkJOTND
ODQxRkUwOUNFODU4MzAwREZGNUU1IC8qIERPTUltcGxlbWVudGF0aW9uRnJvbnQuY3BwICovLAog
CQkJCTkzQzg0MUY3MDlDRTg1NUMwMERGRjVFNSAvKiBET01JbXBsZW1lbnRhdGlvbkZyb250Lmgg
Ki8sCiAJCQkJQkMxQTM3QTMwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTUludGVybmFsLmggKi8sCkBA
IC02MTIzLDEwICs2MTEwLDggQEAKIAkJCQlCQzFBMzdBOTA5N0M3MTVGMDAxOUYzRDggLyogRE9N
VXRpbGl0eS5tbSAqLywKIAkJCQlCQzFBMzdBQTA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3Mu
aCAqLywKIAkJCQlCQzFBMzdBQjA5N0M3MTVGMDAxOUYzRDggLyogRE9NVmlld3MubW0gKi8sCi0J
CQkJQkMxQTM3QUMwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzSW50ZXJuYWwuaCAqLywKIAkJ
CQkxQTFEMTM3RTBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGguaCAqLywKIAkJCQkxQTFEMTM3
RjBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gKi8sCi0JCQkJMUExRDEzQzkwQTUzMjkw
OTAwNjRCRjVGIC8qIERPTVhQYXRoSW50ZXJuYWwuaCAqLywKIAkJCQkxQ0FGMzQ3RTBBNkM0MDUy
MDBBQkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0LmggKi8sCiAJCQkJMUNBRjM0N0YwQTZDNDA1MjAw
QUJFMDZFIC8qIFdlYlNjcmlwdE9iamVjdC5tbSAqLywKIAkJCQkxQ0FGMzQ4MDBBNkM0MDUyMDBB
QkUwNkUgLyogV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oICovLApAQCAtNzA1NCwxNyArNzAzOSwx
NCBAQAogCQkJCUJDMUEzN0FGMDk3QzcxNUYwMDE5RjNEOCAvKiBET01Db3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzFBMzdCMDA5N0M3MTVGMDAxOUYzRDggLyogRE9NQ1NTLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzFBMzdCMjA5N0M3MTVGMDAxOUYzRDggLyogRE9NRXZlbnRzLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzFBMzdCNDA5N0M3MTVGMDAxOUYzRDggLyogRE9NRXZlbnRzSW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUEzN0I1MDk3QzcxNUYwMDE5RjNEOCAvKiBET01F
eHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBMzdCNjA5N0M3MTVGMDAxOUYzRDgg
LyogRE9NSFRNTC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxQTM3QjgwOTdDNzE1RjAwMTlGM0Q4
IC8qIERPTUhUTUxJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTM3QjkwOTdDNzE1
RjAwMTlGM0Q4IC8qIERPTUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBMzdCQjA5
N0M3MTVGMDAxOUYzRDggLyogRE9NUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTM3
QkMwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVJhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFB
MzdCRDA5N0M3MTVGMDAxOUYzRDggLyogRE9NU3R5bGVzaGVldHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMUEzN0JFMDk3QzcxNUYwMDE5RjNEOCAvKiBET01UcmF2ZXJzYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMUEzN0MwMDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJQkMxQTM3QzIwOTdDNzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0NzkwMDk3Q0FBQzgwMDk0QzlFNCAvKiBDU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0NzlCMDk3Q0FB
QzgwMDk0QzlFNCAvKiBjc3NwYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0NzlFMDk3
Q0FBQzgwMDk0QzlFNCAvKiBjc3NzdHlsZXNlbGVjdG9yLmggaW4gSGVhZGVycyAqLywKQEAgLTc1
MTQsOSArNzQ5Niw3IEBACiAJCQkJREIyM0MyQ0MwQTUwOEQyOTAwMjQ4OUVCIC8qIEluZGVudE91
dGRlbnRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0NENzREQzBBNEM4RDM1MDA1RkRB
NkQgLyogSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQ4QTI5
QkYwQTQ2RDlDQjAwMzA3NTlGIC8qIEpTSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQkxQTgwODZDQzBBNEQwOTc2MDBERkI2QTcgLyogRE9NQ1NTSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMUQxMzgwMEE1MzI1NTIwMDY0QkY1RiAvKiBET01YUGF0aC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMUExRDEzQ0EwQTUzMjkwOTAwNjRCRjVGIC8qIERPTVhQYXRo
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQTFFQUE4MEE1NjM1MDgwMDY5NjBBMCAv
KiBJbWFnZURvY3VtZW50TWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBENTczNzBBNUM3N0ZF
MDA3RURENEMgLyogT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRDU3NDEw
QTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC03
NzA5LDcgKzc2ODksNiBAQAogCQkwODY3RDY5MEZFODQwMjhGQzAyQUFDMDcgLyogUHJvamVjdCBv
YmplY3QgKi8gPSB7CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9u
TGlzdCA9IDE0OUMyODQzMDg5MDJCMTEwMDhBOUVGQyAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxp
c3QgZm9yIFBCWFByb2plY3QgIldlYkNvcmUiICovOwotCQkJY29tcGF0aWJpbGl0eVZlcnNpb24g
PSAiWGNvZGUgMi40IjsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25S
ZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC03NzI0LDcgKzc3MDMsNiBAQAogCQkJcHJvZHVj
dFJlZkdyb3VwID0gMDM0NzY4REZGRjM4QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovOwogCQkJ
cHJvamVjdERpclBhdGggPSAiIjsKIAkJCXByb2plY3RSb290ID0gIiI7Ci0JCQlzaG91bGRDaGVj
a0NvbXBhdGliaWxpdHkgPSAxOwogCQkJdGFyZ2V0cyA9ICgKIAkJCQk5M0YxOThBNTA4MjQ1RTU5
MDAxRTlBQkMgLyogV2ViQ29yZSAqLywKIAkJCQlERDA0MUZCRTA5RDlEREJFMDAxMEFGMkEgLyog
RGVyaXZlZCBTb3VyY2VzICovLApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NLm1tCShyZXZpc2lvbiAxNjIy
OCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0JKHdvcmtpbmcgY29weSkKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbXBvcnQgIkNEQVRBU2VjdGlvbi5oIgogI2ltcG9ydCAiQ1NTU3R5bGVT
aGVldC5oIgogI2ltcG9ydCAiQ29tbWVudC5oIgotI2ltcG9ydCAiRE9NRXZlbnRzSW50ZXJuYWwu
aCIKICNpbXBvcnQgIkRPTUhUTUwuaCIKICNpbXBvcnQgIkRPTUltcGxlbWVudGF0aW9uRnJvbnQu
aCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCkBAIC01NzcsNyArNTc2LDcgQEAgc3RhdGljIENs
YXNzIGVsZW1lbnRDbGFzcyhjb25zdCBBdG9taWNTdAogCiAtIChET01DU1NTdHlsZURlY2xhcmF0
aW9uICopY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbgogewotICAgIHJldHVybiBbRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbiBfc3R5bGVEZWNsYXJhdGlvbldpdGg6W3NlbGYgX2RvY3VtZW50XS0+Y3Jl
YXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpLmdldCgpXTsKKyAgICByZXR1cm4gW0RPTUNTU1N0eWxl
RGVjbGFyYXRpb24gX0NTU1N0eWxlRGVjbGFyYXRpb25XaXRoOltzZWxmIF9kb2N1bWVudF0tPmNy
ZWF0ZUNTU1N0eWxlRGVjbGFyYXRpb24oKS5nZXQoKV07CiB9CiAKIEBlbmQKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01DU1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTUy5tbQkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ1NTLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIkRPTUNTUy5oIgogCi0jaW1wb3J0ICJET01DU1NJbnRlcm5hbC5o
IgogI2ltcG9ydCAiRE9NUHJpdmF0ZS5oIgogI2ltcG9ydCAiQ1NTQ2hhcnNldFJ1bGUuaCIKICNp
bXBvcnQgIkNTU0ZvbnRGYWNlUnVsZS5oIgpAQCAtNTUsOSArNTQsMTEgQEAKIAogI2ltcG9ydCA8
b2JqYy9vYmpjLWNsYXNzLmg+CiAKLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworbmFtZXNwYWNl
IFdlYkNvcmUgeworICAgIHR5cGVkZWYgRE9NV2luZG93IEFic3RyYWN0VmlldzsKK30KIAotdHlw
ZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBET01TdHlsZVNoZWV0CkBA
IC0xODEsNyArMTgyLDcgQEAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwogICAgIHJl
dHVybiBzZWxmOwogfQogCi0rIChET01DU1NSdWxlTGlzdCAqKV9ydWxlTGlzdFdpdGg6KENTU1J1
bGVMaXN0ICopaW1wbAorKyAoRE9NQ1NTUnVsZUxpc3QgKilfQ1NTUnVsZUxpc3RXaXRoOihDU1NS
dWxlTGlzdCAqKWltcGwKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBuaWw7CkBA
IC0yMTEsNyArMjEyLDcgQEAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwogICAgIHJl
dHVybiBzZWxmOwogfQogCi0rIChET01DU1NSdWxlICopX3J1bGVXaXRoOihDU1NSdWxlICopaW1w
bAorKyAoRE9NQ1NTUnVsZSAqKV9DU1NSdWxlV2l0aDooQ1NTUnVsZSAqKWltcGwKIHsKICAgICBp
ZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0yNzksNyArMjgwLDcgQEAgdHlwZWRl
ZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwogICAgIHJldHVybiBzZWxmOwogfQogCi0rIChET01D
U1NTdHlsZURlY2xhcmF0aW9uICopX3N0eWxlRGVjbGFyYXRpb25XaXRoOihDU1NTdHlsZURlY2xh
cmF0aW9uICopaW1wbAorKyAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKV9DU1NTdHlsZURlY2xh
cmF0aW9uV2l0aDooQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKWltcGwKIHsKICAgICBpZiAoIWltcGwp
CiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0zMTMsNyArMzE0LDcgQEAgdHlwZWRlZiBET01XaW5k
b3cgQWJzdHJhY3RWaWV3OwogICAgIHJldHVybiBzZWxmOwogfQogCi0rIChET01DU1NWYWx1ZSAq
KV92YWx1ZVdpdGg6KENTU1ZhbHVlICopaW1wbAorKyAoRE9NQ1NTVmFsdWUgKilfQ1NTVmFsdWVX
aXRoOihDU1NWYWx1ZSAqKWltcGwKIHsKICAgICBpZiAoIWltcGwpCiAgICAgICAgIHJldHVybiBu
aWw7CkBAIC0zNDksOSArMzUwLDkgQEAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3Owog
CiBAaW1wbGVtZW50YXRpb24gRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKFdlYkNvcmVJbnRlcm5hbCkK
IAotKyAoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilfdmFsdWVXaXRoOihDU1NWYWx1ZSAqKWltcGwK
KysgKERPTUNTU1ByaW1pdGl2ZVZhbHVlICopX0NTU1ByaW1pdGl2ZVZhbHVlV2l0aDooQ1NTVmFs
dWUgKilpbXBsCiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1pdGl2ZVZhbHVl
Kj4oW0RPTUNTU1ZhbHVlIF92YWx1ZVdpdGg6aW1wbF0pOworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxET01DU1NQcmltaXRpdmVWYWx1ZSo+KFtET01DU1NWYWx1ZSBfQ1NTVmFsdWVXaXRoOmltcGxd
KTsKIH0KIAogQGVuZApAQCAtMTY3Nyw3ICsxNjc4LDcgQEAgdHlwZWRlZiBET01XaW5kb3cgQWJz
dHJhY3RWaWV3OwogICAgIGlmICghZHYpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgCi0gICAg
cmV0dXJuIFtET01DU1NTdHlsZURlY2xhcmF0aW9uIF9zdHlsZURlY2xhcmF0aW9uV2l0aDpkdi0+
Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBwc2V1ZG9FbHRTdHJpbmcuaW1wbCgpKS5nZXQoKV07
CisgICAgcmV0dXJuIFtET01DU1NTdHlsZURlY2xhcmF0aW9uIF9DU1NTdHlsZURlY2xhcmF0aW9u
V2l0aDpkdi0+Z2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50LCBwc2V1ZG9FbHRTdHJpbmcuaW1wbCgp
KS5nZXQoKV07CiB9CiAKIC0gKERPTUNTU1J1bGVMaXN0ICopZ2V0TWF0Y2hlZENTU1J1bGVzOihE
T01FbGVtZW50ICopZWx0IDooTlNTdHJpbmcgKilwc2V1ZG9FbHQKQEAgLTE2ODgsNyArMTY4OSw3
IEBAIHR5cGVkZWYgRE9NV2luZG93IEFic3RyYWN0VmlldzsKICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICAKICAgICAvLyBUaGUgcGFyYW1ldGVyIG9mICJmYWxzZSIgaXMgaGFuZHkgZm9yIHRoZSBE
T00gaW5zcGVjdG9yIGFuZCBsZXRzIHVzIHNlZSB1c2VyIGFnZW50IGFuZCB1c2VyIHJ1bGVzLgot
ICAgIHJldHVybiBbRE9NQ1NTUnVsZUxpc3QgX3J1bGVMaXN0V2l0aDpkdi0+Z2V0TWF0Y2hlZENT
U1J1bGVzKFtlbHQgX2VsZW1lbnRdLCBTdHJpbmcocHNldWRvRWx0KS5pbXBsKCksIGZhbHNlKS5n
ZXQoKV07CisgICAgcmV0dXJuIFtET01DU1NSdWxlTGlzdCBfQ1NTUnVsZUxpc3RXaXRoOmR2LT5n
ZXRNYXRjaGVkQ1NTUnVsZXMoW2VsdCBfZWxlbWVudF0sIFN0cmluZyhwc2V1ZG9FbHQpLmltcGwo
KSwgZmFsc2UpLmdldCgpXTsKIH0KIAogQGVuZApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUNTU0ludGVybmFsLmgJKHJldmlzaW9uIDE2MjI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBKYW1lcyBHLiBTcGV0aCAoc3BldGhAZW5kLmNv
bSkKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgZWMgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAotICovCi0KLSNpbXBvcnQgIkRPTUNTUy5oIgotI2ltcG9ydCAiQ29sb3IuaCIKLQotI2ltcG9y
dCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCIKLSNpbXBvcnQgIkRPTUNTU1J1bGUuaCIKLSNpbXBv
cnQgIkRPTUNTU1J1bGVMaXN0LmgiCi0jaW1wb3J0ICJET01DU1NTdHlsZURlY2xhcmF0aW9uLmgi
Ci0jaW1wb3J0ICJET01DU1NTdHlsZVNoZWV0LmgiCi0jaW1wb3J0ICJET01DU1NWYWx1ZS5oIgot
I2ltcG9ydCAiRE9NQ291bnRlci5oIgotI2ltcG9ydCAiRE9NUkdCQ29sb3IuaCIKLSNpbXBvcnQg
IkRPTVJlY3QuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIENTU1J1bGU7Ci0g
ICAgY2xhc3MgQ1NTUnVsZUxpc3Q7Ci0gICAgY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKLSAg
ICBjbGFzcyBDU1NTdHlsZVNoZWV0OwotICAgIGNsYXNzIENTU1ZhbHVlOwotICAgIGNsYXNzIENv
dW50ZXI7Ci0gICAgY2xhc3MgUmVjdEltcGw7Ci19Ci0KLUBpbnRlcmZhY2UgRE9NQ1NTUnVsZUxp
c3QgKFdlYkNvcmVJbnRlcm5hbCkKLSsgKERPTUNTU1J1bGVMaXN0ICopX3J1bGVMaXN0V2l0aDoo
V2ViQ29yZTo6Q1NTUnVsZUxpc3QgKilpbXBsOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUNTU1J1
bGUgKFdlYkNvcmVJbnRlcm5hbCkKLSsgKERPTUNTU1J1bGUgKilfcnVsZVdpdGg6KFdlYkNvcmU6
OkNTU1J1bGUgKilpbXBsOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUNTU1ZhbHVlIChXZWJDb3Jl
SW50ZXJuYWwpCi0rIChET01DU1NWYWx1ZSAqKV92YWx1ZVdpdGg6KFdlYkNvcmU6OkNTU1ZhbHVl
ICopaW1wbDsKLUBlbmQKLQotQGludGVyZmFjZSBET01DU1NQcmltaXRpdmVWYWx1ZSAoV2ViQ29y
ZUludGVybmFsKQotKyAoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilfdmFsdWVXaXRoOihXZWJDb3Jl
OjpDU1NWYWx1ZSAqKWltcGw7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NUkdCQ29sb3IgKFdlYkNv
cmVJbnRlcm5hbCkKLSsgKERPTVJHQkNvbG9yICopX1JHQkNvbG9yV2l0aFJHQjooV2ViQ29yZTo6
UkdCQTMyKXZhbHVlOwotQGVuZAotCi1AaW50ZXJmYWNlIERPTVJlY3QgKFdlYkNvcmVJbnRlcm5h
bCkKLSsgKERPTVJlY3QgKilfcmVjdFdpdGg6KFdlYkNvcmU6OlJlY3RJbXBsICopaW1wbDsKLUBl
bmQKLQotQGludGVyZmFjZSBET01Db3VudGVyIChXZWJDb3JlSW50ZXJuYWwpCi0rIChET01Db3Vu
dGVyICopX2NvdW50ZXJXaXRoOihXZWJDb3JlOjpDb3VudGVyICopaW1wbDsKLUBlbmQKLQotQGlu
dGVyZmFjZSBET01DU1NTdHlsZURlY2xhcmF0aW9uIChXZWJDb3JlSW50ZXJuYWwpCi0rIChET01D
U1NTdHlsZURlY2xhcmF0aW9uICopX3N0eWxlRGVjbGFyYXRpb25XaXRoOihXZWJDb3JlOjpDU1NT
dHlsZURlY2xhcmF0aW9uICopaW1wbDsKLS0gKFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24g
Kilfc3R5bGVEZWNsYXJhdGlvbjsKLUBlbmQKLQotQGludGVyZmFjZSBET01DU1NTdHlsZVNoZWV0
IChXZWJDb3JlSW50ZXJuYWwpCi0rIChET01DU1NTdHlsZVNoZWV0ICopX0NTU1N0eWxlU2hlZXRX
aXRoOihXZWJDb3JlOjpDU1NTdHlsZVNoZWV0ICopaW1wbDsKLUBlbmQKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01FdmVudHMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUV2ZW50cy5tbQkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NRXZlbnRzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsOCBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJET01FdmVudHMuaCIKIAotI2ltcG9ydCAiRE9NRXZl
bnRzSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Qcml2
YXRlLmgiCi0jaW1wb3J0ICJET01WaWV3c0ludGVybmFsLmgiCiAjaW1wb3J0ICJEb2N1bWVudC5o
IgogI2ltcG9ydCAiRXZlbnQuaCIKICNpbXBvcnQgIk1vdXNlRXZlbnQuaCIKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHNJbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHNJbnRlcm5hbC5oCShyZXZpc2lvbiAxNjIyOCkKKysr
IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHNJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDM1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGVjIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJET01FdmVudHMu
aCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIGNsYXNzIEV2ZW50OwotfQotCi1AaW50ZXJm
YWNlIERPTUV2ZW50IChXZWJDb3JlSW50ZXJuYWwpCi0rIChET01FdmVudCAqKV9ldmVudFdpdGg6
KFdlYkNvcmU6OkV2ZW50ICopaW1wbDsKLS0gKFdlYkNvcmU6OkV2ZW50ICopX2V2ZW50OwotQGVu
ZApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50c05vbnN0YW5kYXJkLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudHNOb25zdGFuZGFyZC5t
bQkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRzTm9u
c3RhbmRhcmQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDYgQEAKICNpbXBvcnQgImNv
bmZpZy5oIgogI2ltcG9ydCAiRE9NUHJpdmF0ZS5oIgogCi0jaW1wb3J0ICJET01FdmVudHNJbnRl
cm5hbC5oIgotI2ltcG9ydCAiRE9NVmlld3NJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NSW50ZXJu
YWwuaCIKICNpbXBvcnQgIktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIldoZWVsRXZlbnQuaCIK
SW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FeHRlbnNpb25zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV4dGVuc2lvbnMuaAkocmV2aXNpb24gMTYyMjgp
CisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NCwxMiArNTQsNiBAQAogQGVuZAogCiBAaW50ZXJmYWNlIERPTUhUTUxJbnB1dEVsZW1l
bnQgKERPTUhUTUxJbnB1dEVsZW1lbnRFeHRlbnNpb25zKQotLSAoTlNTdHJpbmcgKilhbHREaXNw
bGF5U3RyaW5nOwotLSAoTlNVUkwgKilhYnNvbHV0ZUltYWdlVVJMOwotQGVuZAotCi1AaW50ZXJm
YWNlIERPTUhUTUxJbWFnZUVsZW1lbnQgKERPTUhUTUxJbWFnZUVsZW1lbnRFeHRlbnNpb25zKQot
LSAoTlNTdHJpbmcgKilhbHREaXNwbGF5U3RyaW5nOwogLSAoTlNVUkwgKilhYnNvbHV0ZUltYWdl
VVJMOwogQGVuZAogCkBAIC02NywxOCArNjEsNiBAQAogLSAoTlNVUkwgKilhYnNvbHV0ZUltYWdl
VVJMOwogQGVuZAogCi1AaW50ZXJmYWNlIERPTUhUTUxBbmNob3JFbGVtZW50IChET01IVE1MQW5j
aG9yRWxlbWVudEV4dGVuc2lvbnMpCi0tIChOU1VSTCAqKWFic29sdXRlTGlua1VSTDsKLUBlbmQK
LQotQGludGVyZmFjZSBET01IVE1MQXJlYUVsZW1lbnQgKERPTUhUTUxBcmVhRWxlbWVudEV4dGVu
c2lvbnMpCi0tIChOU1VSTCAqKWFic29sdXRlTGlua1VSTDsKLUBlbmQKLQotQGludGVyZmFjZSBE
T01IVE1MTGlua0VsZW1lbnQgKERPTUhUTUxMaW5rRWxlbWVudEV4dGVuc2lvbnMpCi0tIChOU1VS
TCAqKWFic29sdXRlTGlua1VSTDsKLUBlbmQKLQogQGludGVyZmFjZSBET01IVE1MRW1iZWRFbGVt
ZW50IDogRE9NSFRNTEVsZW1lbnQKIC0gKE5TU3RyaW5nICopYWxpZ247CiAtICh2b2lkKXNldEFs
aWduOihOU1N0cmluZyAqKWFsaWduOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0JKHJl
dmlzaW9uIDE2MjI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwubW0JKHdvcmtp
bmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKICNpbXBvcnQgIkRPTUhUTUwuaCIKIAogI2ltcG9y
dCAiRE9NRXh0ZW5zaW9ucy5oIgotI2ltcG9ydCAiRE9NSFRNTEludGVybmFsLmgiCiAjaW1wb3J0
ICJET01JbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NUHJpdmF0ZS5oIgogI2ltcG9ydCAiRG9jdW1l
bnRGcmFnbWVudC5oIgpAQCAtNzQsNyArNzMsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVz
OwogICAgIHJldHVybiBzZWxmOwogfQogCi0rIChET01IVE1MQ29sbGVjdGlvbiAqKV9jb2xsZWN0
aW9uV2l0aDooSFRNTENvbGxlY3Rpb24gKilpbXBsCisrIChET01IVE1MQ29sbGVjdGlvbiAqKV9I
VE1MQ29sbGVjdGlvbldpdGg6KEhUTUxDb2xsZWN0aW9uICopaW1wbAogewogICAgIGlmICghaW1w
bCkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTEwNiw3ICsxMDUsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSFRNTE5hbWVzOwogICAgIHJldHVybiBzZWxmOwogfQogCi0rIChET01IVE1MT3B0aW9uc0Nv
bGxlY3Rpb24gKilfb3B0aW9uc0NvbGxlY3Rpb25XaXRoOihIVE1MT3B0aW9uc0NvbGxlY3Rpb24g
KilpbXBsCisrIChET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24gKilfSFRNTE9wdGlvbnNDb2xsZWN0
aW9uV2l0aDooSFRNTE9wdGlvbnNDb2xsZWN0aW9uICopaW1wbAogewogICAgIGlmICghaW1wbCkK
ICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTEyNyw3ICsxMjYsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogCiBAaW1wbGVtZW50YXRpb24gRE9NSFRNTEVsZW1lbnQgKFdlYkNvcmVJbnRl
cm5hbCkKIAotKyAoRE9NSFRNTEVsZW1lbnQgKilfZWxlbWVudFdpdGg6KEhUTUxFbGVtZW50ICop
aW1wbAorKyAoRE9NSFRNTEVsZW1lbnQgKilfSFRNTEVsZW1lbnRXaXRoOihIVE1MRWxlbWVudCAq
KWltcGwKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTEVsZW1lbnQqPihbRE9NTm9k
ZSBfbm9kZVdpdGg6aW1wbF0pOwogfQpAQCAtMTY5LDI0ICsxNjgsMTEgQEAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKIAogCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ly8gRE9NSFRNTExpbmtFbGVtZW50Ci0KLUBpbXBsZW1lbnRhdGlvbiBET01IVE1MTGlua0VsZW1l
bnQgKERPTUhUTUxMaW5rRWxlbWVudEV4dGVuc2lvbnMpCi0KLS0gKE5TVVJMICopYWJzb2x1dGVM
aW5rVVJMCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9nZXRVUkxBdHRyaWJ1dGU6QCJocmVmIl07Ci19
Ci0KLUBlbmQKLQotCi0vLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9N
SFRNTEZvcm1FbGVtZW50CiAKIEBpbXBsZW1lbnRhdGlvbiBET01IVE1MRm9ybUVsZW1lbnQgKFdl
YkNvcmVJbnRlcm5hbCkKIAotKyAoRE9NSFRNTEZvcm1FbGVtZW50ICopX2Zvcm1FbGVtZW50V2l0
aDooSFRNTEZvcm1FbGVtZW50ICopaW1wbAorKyAoRE9NSFRNTEZvcm1FbGVtZW50ICopX0hUTUxG
b3JtRWxlbWVudFdpdGg6KEhUTUxGb3JtRWxlbWVudCAqKWltcGwKIHsKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NSFRNTEZvcm1FbGVtZW50Kj4oW0RPTU5vZGUgX25vZGVXaXRoOmltcGxdKTsK
IH0KQEAgLTE5OSwxMSArMTg1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogQGlt
cGxlbWVudGF0aW9uIERPTUhUTUxJbnB1dEVsZW1lbnQgKERPTUhUTUxJbnB1dEVsZW1lbnRFeHRl
bnNpb25zKQogCi0tIChOU1N0cmluZyAqKWFsdERpc3BsYXlTdHJpbmcKLXsKLSAgICByZXR1cm4g
W3NlbGYgX0hUTUxJbnB1dEVsZW1lbnRdLT5hbHQoKS5yZXBsYWNlKCdcXCcsIFtzZWxmIF9lbGVt
ZW50XS0+ZG9jdW1lbnQoKS0+YmFja3NsYXNoQXNDdXJyZW5jeVN5bWJvbCgpKTsKLX0KLQogLSAo
TlNVUkwgKilhYnNvbHV0ZUltYWdlVVJMCiB7CiAgICAgaWYgKCFbc2VsZiBfSFRNTElucHV0RWxl
bWVudF0tPnJlbmRlcmVyKCkgfHwgIVtzZWxmIF9IVE1MSW5wdXRFbGVtZW50XS0+cmVuZGVyZXIo
KS0+aXNJbWFnZSgpKQpAQCAtMjI0LDM2ICsyMDUsOCBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwogCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBET01IVE1M
QW5jaG9yRWxlbWVudAotCi1AaW1wbGVtZW50YXRpb24gRE9NSFRNTEFuY2hvckVsZW1lbnQgKERP
TUhUTUxBbmNob3JFbGVtZW50RXh0ZW5zaW9ucykKLQotLSAoTlNVUkwgKilhYnNvbHV0ZUxpbmtV
UkwKLXsKLSAgICByZXR1cm4gW3NlbGYgX2dldFVSTEF0dHJpYnV0ZTpAImhyZWYiXTsKLX0KLQot
QGVuZAotCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBET01IVE1M
SW1hZ2VFbGVtZW50CiAKLUBpbXBsZW1lbnRhdGlvbiBET01IVE1MSW1hZ2VFbGVtZW50IChET01I
VE1MSW1hZ2VFbGVtZW50RXh0ZW5zaW9ucykKLQotLSAoTlNTdHJpbmcgKilhbHREaXNwbGF5U3Ry
aW5nCi17Ci0gICAgU3RyaW5nIGFsdFN0ciA9IFtzZWxmIF9IVE1MSW1hZ2VFbGVtZW50XS0+Z2V0
QXR0cmlidXRlKGFsdEF0dHIpOwotICAgIHJldHVybiBhbHRTdHIucmVwbGFjZSgnXFwnLCBbc2Vs
ZiBfZWxlbWVudF0tPmRvY3VtZW50KCktPmJhY2tzbGFzaEFzQ3VycmVuY3lTeW1ib2woKSk7Ci19
Ci0KLS0gKE5TVVJMICopYWJzb2x1dGVJbWFnZVVSTAotewotICAgIHJldHVybiBbc2VsZiBfZ2V0
VVJMQXR0cmlidXRlOkAic3JjIl07Ci19Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9uIERPTUhU
TUxJbWFnZUVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKIAogLSAoV2ViQ29yZTo6SFRNTEltYWdl
RWxlbWVudCAqKV9IVE1MSW1hZ2VFbGVtZW50CkBAIC0yODksMjQgKzI0MiwxMSBAQCB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiAKIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0vLyBET01IVE1MQXJlYUVsZW1lbnQKLQotQGltcGxlbWVudGF0aW9uIERPTUhUTUxBcmVh
RWxlbWVudCAoRE9NSFRNTEFyZWFFbGVtZW50RXh0ZW5zaW9ucykKLQotLSAoTlNVUkwgKilhYnNv
bHV0ZUxpbmtVUkwKLXsKLSAgICByZXR1cm4gW3NlbGYgX2dldFVSTEF0dHJpYnV0ZTpAImhyZWYi
XTsKLX0KLQotQGVuZAotCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudAogCiBAaW1wbGVtZW50YXRpb24gRE9NSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKIAotKyAoRE9NSFRNTFRhYmxlQ2Fw
dGlvbkVsZW1lbnQgKilfdGFibGVDYXB0aW9uRWxlbWVudFdpdGg6KEhUTUxUYWJsZUNhcHRpb25F
bGVtZW50ICopaW1wbAorKyAoRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgKilfSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnRXaXRoOihIVE1MVGFibGVDYXB0aW9uRWxlbWVudCAqKWltcGwKIHsKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQqPihbRE9NTm9k
ZSBfbm9kZVdpdGg6aW1wbF0pOwogfQpAQCAtMzI0LDcgKzI2NCw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKIEBpbXBsZW1lbnRhdGlvbiBET01IVE1MVGFibGVTZWN0aW9uRWxlbWVu
dCAoV2ViQ29yZUludGVybmFsKQogCi0rIChET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqKV90
YWJsZVNlY3Rpb25FbGVtZW50V2l0aDooSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgKilpbXBsCisr
IChET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqKV9IVE1MVGFibGVTZWN0aW9uRWxlbWVudFdp
dGg6KEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50ICopaW1wbAogewogICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01IVE1MVGFibGVTZWN0aW9uRWxlbWVudCo+KFtET01Ob2RlIF9ub2RlV2l0aDppbXBs
XSk7CiB9CkBAIC0zNDIsNyArMjgyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAog
QGltcGxlbWVudGF0aW9uIERPTUhUTUxUYWJsZUVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKIAot
KyAoRE9NSFRNTFRhYmxlRWxlbWVudCAqKV90YWJsZUVsZW1lbnRXaXRoOihIVE1MVGFibGVFbGVt
ZW50ICopaW1wbAorKyAoRE9NSFRNTFRhYmxlRWxlbWVudCAqKV9IVE1MVGFibGVFbGVtZW50V2l0
aDooSFRNTFRhYmxlRWxlbWVudCAqKWltcGwKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
SFRNTFRhYmxlRWxlbWVudCo+KFtET01Ob2RlIF9ub2RlV2l0aDppbXBsXSk7CiB9CkBAIC0zNjAs
NyArMzAwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogQGltcGxlbWVudGF0aW9u
IERPTUhUTUxUYWJsZUNlbGxFbGVtZW50IChXZWJDb3JlSW50ZXJuYWwpCiAKLSsgKERPTUhUTUxU
YWJsZUNlbGxFbGVtZW50ICopX3RhYmxlQ2VsbEVsZW1lbnRXaXRoOihIVE1MVGFibGVDZWxsRWxl
bWVudCAqKWltcGwKKysgKERPTUhUTUxUYWJsZUNlbGxFbGVtZW50ICopX0hUTUxUYWJsZUNlbGxF
bGVtZW50V2l0aDooSFRNTFRhYmxlQ2VsbEVsZW1lbnQgKilpbXBsCiB7CiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PERPTUhUTUxUYWJsZUNlbGxFbGVtZW50Kj4oW0RPTU5vZGUgX25vZGVXaXRoOmlt
cGxdKTsKIH0KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MQXBwbGV0RWxlbWVu
dC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEFwcGxldEVs
ZW1lbnQubW0JKHJldmlzaW9uIDE2MjI4KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhU
TUxBcHBsZXRFbGVtZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW1w
b3J0ICJET01IVE1MQXBwbGV0RWxlbWVudC5oIgogCiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgot
I2ltcG9ydCAiRE9NSFRNTEludGVybmFsLmgiCiAjaW1wb3J0ICJIVE1MQXBwbGV0RWxlbWVudC5o
IgogI2ltcG9ydCAiUGxhdGZvcm1TdHJpbmcuaCIKIApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxEb2N1bWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NSFRNTERvY3VtZW50Lm1tCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MRG9jdW1lbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYg
QEAKIAogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNpbXBvcnQgIkhUTUxEb2N1bWVudC5oIiAv
LyBpbXBsZW1lbnRhdGlvbiBjbGFzcwotI2ltcG9ydCAiRE9NSFRNTEludGVybmFsLmgiCiAKICNp
bXBvcnQgIkRPTURvY3VtZW50RnJhZ21lbnQuaCIKICNpbXBvcnQgIkRPTUhUTUxDb2xsZWN0aW9u
LmgiCkBAIC03NSw3ICs3NCw3IEBACiAKIC0gKERPTUhUTUxFbGVtZW50ICopYm9keQogewotICAg
IHJldHVybiBbRE9NSFRNTEVsZW1lbnQgX2VsZW1lbnRXaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRd
LT5ib2R5KCldOworICAgIHJldHVybiBbRE9NSFRNTEVsZW1lbnQgX0hUTUxFbGVtZW50V2l0aDpb
c2VsZiBfSFRNTERvY3VtZW50XS0+Ym9keSgpXTsKIH0KIAogLSAodm9pZClzZXRCb2R5OihET01I
VE1MRWxlbWVudCAqKWJvZHkKQEAgLTg3LDI3ICs4NiwyNyBAQAogCiAtIChET01IVE1MQ29sbGVj
dGlvbiAqKWltYWdlcwogewotICAgIHJldHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX2NvbGxlY3Rp
b25XaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5pbWFnZXMoKS5nZXQoKV07CisgICAgcmV0dXJu
IFtET01IVE1MQ29sbGVjdGlvbiBfSFRNTENvbGxlY3Rpb25XaXRoOltzZWxmIF9IVE1MRG9jdW1l
bnRdLT5pbWFnZXMoKS5nZXQoKV07CiB9CiAKIC0gKERPTUhUTUxDb2xsZWN0aW9uICopYXBwbGV0
cwogewotICAgIHJldHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX2NvbGxlY3Rpb25XaXRoOltzZWxm
IF9IVE1MRG9jdW1lbnRdLT5hcHBsZXRzKCkuZ2V0KCldOworICAgIHJldHVybiBbRE9NSFRNTENv
bGxlY3Rpb24gX0hUTUxDb2xsZWN0aW9uV2l0aDpbc2VsZiBfSFRNTERvY3VtZW50XS0+YXBwbGV0
cygpLmdldCgpXTsKIH0KIAogLSAoRE9NSFRNTENvbGxlY3Rpb24gKilsaW5rcwogewotICAgIHJl
dHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX2NvbGxlY3Rpb25XaXRoOltzZWxmIF9IVE1MRG9jdW1l
bnRdLT5saW5rcygpLmdldCgpXTsKKyAgICByZXR1cm4gW0RPTUhUTUxDb2xsZWN0aW9uIF9IVE1M
Q29sbGVjdGlvbldpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmxpbmtzKCkuZ2V0KCldOwogfQog
CiAtIChET01IVE1MQ29sbGVjdGlvbiAqKWZvcm1zCiB7Ci0gICAgcmV0dXJuIFtET01IVE1MQ29s
bGVjdGlvbiBfY29sbGVjdGlvbldpdGg6W3NlbGYgX0hUTUxEb2N1bWVudF0tPmZvcm1zKCkuZ2V0
KCldOworICAgIHJldHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX0hUTUxDb2xsZWN0aW9uV2l0aDpb
c2VsZiBfSFRNTERvY3VtZW50XS0+Zm9ybXMoKS5nZXQoKV07CiB9CiAKIC0gKERPTUhUTUxDb2xs
ZWN0aW9uICopYW5jaG9ycwogewotICAgIHJldHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX2NvbGxl
Y3Rpb25XaXRoOltzZWxmIF9IVE1MRG9jdW1lbnRdLT5hbmNob3JzKCkuZ2V0KCldOworICAgIHJl
dHVybiBbRE9NSFRNTENvbGxlY3Rpb24gX0hUTUxDb2xsZWN0aW9uV2l0aDpbc2VsZiBfSFRNTERv
Y3VtZW50XS0+YW5jaG9ycygpLmdldCgpXTsKIH0KIAogLSAoTlNTdHJpbmcgKiljb29raWUKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW50ZXJuYWwuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEludGVybmFsLmgJKHJldmlzaW9uIDE2MjI4
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnRlcm5hbC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDExMyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA0IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDA2
IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBlYyBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9ydCAiRE9N
SFRNTC5oIgotCi0jaW1wb3J0ICJET01IVE1MQ29sbGVjdGlvbi5oIgotI2ltcG9ydCAiRE9NSFRN
TERvY3VtZW50LmgiCi0jaW1wb3J0ICJET01IVE1MRWxlbWVudC5oIgotI2ltcG9ydCAiRE9NSFRN
TEZvcm1FbGVtZW50LmgiCi0jaW1wb3J0ICJET01IVE1MSW1hZ2VFbGVtZW50LmgiCi0jaW1wb3J0
ICJET01IVE1MSW5wdXRFbGVtZW50LmgiCi0jaW1wb3J0ICJET01IVE1MT2JqZWN0RWxlbWVudC5o
IgotI2ltcG9ydCAiRE9NSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCi0jaW1wb3J0ICJET01IVE1M
VGFibGVDYXB0aW9uRWxlbWVudC5oIgotI2ltcG9ydCAiRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
aCIKLSNpbXBvcnQgIkRPTUhUTUxUYWJsZUVsZW1lbnQuaCIKLSNpbXBvcnQgIkRPTUhUTUxUYWJs
ZVNlY3Rpb25FbGVtZW50LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAgICBjbGFzcyBIVE1M
Q29sbGVjdGlvbjsKLSAgICBjbGFzcyBIVE1MRG9jdW1lbnQ7Ci0gICAgY2xhc3MgSFRNTEVsZW1l
bnQ7Ci0gICAgY2xhc3MgSFRNTEZvcm1FbGVtZW50OwotICAgIGNsYXNzIEhUTUxJbWFnZUVsZW1l
bnQ7Ci0gICAgY2xhc3MgSFRNTElucHV0RWxlbWVudDsKLSAgICBjbGFzcyBIVE1MT2JqZWN0RWxl
bWVudDsKLSAgICBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsKLSAgICBjbGFzcyBIVE1MT3B0aW9u
c0NvbGxlY3Rpb247Ci0gICAgY2xhc3MgSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ7Ci0gICAgY2xh
c3MgSFRNTFRhYmxlQ2VsbEVsZW1lbnQ7Ci0gICAgY2xhc3MgSFRNTFRhYmxlRWxlbWVudDsKLSAg
ICBjbGFzcyBIVE1MVGFibGVTZWN0aW9uRWxlbWVudDsKLX0KLQotQGludGVyZmFjZSBET01IVE1M
T3B0aW9uc0NvbGxlY3Rpb24gKFdlYkNvcmVJbnRlcm5hbCkKLSsgKERPTUhUTUxPcHRpb25zQ29s
bGVjdGlvbiAqKV9vcHRpb25zQ29sbGVjdGlvbldpdGg6KFdlYkNvcmU6OkhUTUxPcHRpb25zQ29s
bGVjdGlvbiAqKWltcGw7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NSFRNTERvY3VtZW50IChXZWJD
b3JlSW50ZXJuYWwpCi0rIChET01IVE1MRG9jdW1lbnQgKilfSFRNTERvY3VtZW50V2l0aDooV2Vi
Q29yZTo6SFRNTERvY3VtZW50ICopaW1wbDsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MQ29s
bGVjdGlvbiAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NSFRNTENvbGxlY3Rpb24gKilfY29sbGVj
dGlvbldpdGg6KFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uICopaW1wbDsKLUBlbmQKLQotQGludGVy
ZmFjZSBET01IVE1MRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NSFRNTEVsZW1lbnQg
KilfZWxlbWVudFdpdGg6KFdlYkNvcmU6OkhUTUxFbGVtZW50ICopaW1wbDsKLS0gKFdlYkNvcmU6
OkhUTUxFbGVtZW50ICopX0hUTUxFbGVtZW50OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhUTUxG
b3JtRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NSFRNTEZvcm1FbGVtZW50ICopX2Zv
cm1FbGVtZW50V2l0aDooV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50ICopaW1wbDsKLUBlbmQKLQot
QGludGVyZmFjZSBET01IVE1MVGFibGVDYXB0aW9uRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQot
KyAoRE9NSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQgKilfdGFibGVDYXB0aW9uRWxlbWVudFdpdGg6
KFdlYkNvcmU6OkhUTUxUYWJsZUNhcHRpb25FbGVtZW50ICopaW1wbDsKLS0gKFdlYkNvcmU6OkhU
TUxUYWJsZUNhcHRpb25FbGVtZW50ICopX3RhYmxlQ2FwdGlvbkVsZW1lbnQ7Ci1AZW5kCi0KLUBp
bnRlcmZhY2UgRE9NSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKLSsg
KERPTUhUTUxUYWJsZVNlY3Rpb25FbGVtZW50ICopX3RhYmxlU2VjdGlvbkVsZW1lbnRXaXRoOihX
ZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9uRWxlbWVudCAqKWltcGw7Ci0tIChXZWJDb3JlOjpIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCAqKV90YWJsZVNlY3Rpb25FbGVtZW50OwotQGVuZAotCi1AaW50
ZXJmYWNlIERPTUhUTUxUYWJsZUVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKLSsgKERPTUhUTUxU
YWJsZUVsZW1lbnQgKilfdGFibGVFbGVtZW50V2l0aDooV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVu
dCAqKWltcGw7Ci0tIChXZWJDb3JlOjpIVE1MVGFibGVFbGVtZW50ICopX3RhYmxlRWxlbWVudDsK
LUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MVGFibGVDZWxsRWxlbWVudCAoV2ViQ29yZUludGVy
bmFsKQotKyAoRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQgKilfdGFibGVDZWxsRWxlbWVudFdpdGg6
KFdlYkNvcmU6OkhUTUxUYWJsZUNlbGxFbGVtZW50ICopaW1wbDsKLS0gKFdlYkNvcmU6OkhUTUxU
YWJsZUNlbGxFbGVtZW50ICopX3RhYmxlQ2VsbEVsZW1lbnQ7Ci1AZW5kCi0KLUBpbnRlcmZhY2Ug
RE9NSFRNTEltYWdlRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQotLSAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudCAqKV9IVE1MSW1hZ2VFbGVtZW50OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTUhU
TUxPYmplY3RFbGVtZW50IChXZWJDb3JlSW50ZXJuYWwpCi0tIChXZWJDb3JlOjpIVE1MT2JqZWN0
RWxlbWVudCAqKV9IVE1MT2JqZWN0RWxlbWVudDsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1M
T3B0aW9uRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQotLSAoV2ViQ29yZTo6SFRNTE9wdGlvbkVs
ZW1lbnQgKilfb3B0aW9uRWxlbWVudDsKLUBlbmQKLQotQGludGVyZmFjZSBET01IVE1MSW5wdXRF
bGVtZW50IChXZWJDb3JlSW50ZXJuYWwpCi0tIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50ICop
X0hUTUxJbnB1dEVsZW1lbnQ7Ci1AZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
SFRNTE9wdGlvbkVsZW1lbnQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUhUTUxPcHRpb25FbGVtZW50Lm1tCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MT3B0aW9uRWxlbWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgs
NyArMjgsNiBAQAogI2ltcG9ydCAiRE9NSFRNTE9wdGlvbkVsZW1lbnQuaCIKIAogI2ltcG9ydCAi
RE9NSW50ZXJuYWwuaCIKLSNpbXBvcnQgIkRPTUhUTUxJbnRlcm5hbC5oIgogI2ltcG9ydCAiSFRN
TE9wdGlvbkVsZW1lbnQuaCIKICNpbXBvcnQgIkRPTUhUTUxGb3JtRWxlbWVudC5oIgogI2ltcG9y
dCAiUGxhdGZvcm1TdHJpbmcuaCIKQEAgLTQ1LDcgKzQ0LDcgQEAKIAogLSAoRE9NSFRNTEZvcm1F
bGVtZW50ICopZm9ybQogewotICAgIHJldHVybiBbRE9NSFRNTEZvcm1FbGVtZW50IF9mb3JtRWxl
bWVudFdpdGg6W3NlbGYgX29wdGlvbkVsZW1lbnRdLT5mb3JtKCldOworICAgIHJldHVybiBbRE9N
SFRNTEZvcm1FbGVtZW50IF9IVE1MRm9ybUVsZW1lbnRXaXRoOltzZWxmIF9vcHRpb25FbGVtZW50
XS0+Zm9ybSgpXTsKIH0KIAogLSAoQk9PTClkZWZhdWx0U2VsZWN0ZWQKSW5kZXg6IFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01JbnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01JbnRlcm5hbC5oCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01JbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzNyArMjYsODYgQEAK
ICAqLwogCiAjaW1wb3J0ICJET00uaCIKLSNpbXBvcnQgIkRPTUNTU0ludGVybmFsLmgiCiAKKyNp
bXBvcnQgIkNvbG9yLmgiCiAjaW1wb3J0ICJET01BdHRyLmgiCiAjaW1wb3J0ICJET01DREFUQVNl
Y3Rpb24uaCIKKyNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW1wb3J0ICJET01D
U1NSdWxlLmgiCisjaW1wb3J0ICJET01DU1NSdWxlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAi
RE9NQ1NTVmFsdWUuaCIKICNpbXBvcnQgIkRPTUNvbW1lbnQuaCIKKyNpbXBvcnQgIkRPTUNvdW50
ZXIuaCIKICNpbXBvcnQgIkRPTURPTUltcGxlbWVudGF0aW9uLmgiCiAjaW1wb3J0ICJET01Eb2N1
bWVudC5oIgogI2ltcG9ydCAiRE9NRG9jdW1lbnRGcmFnbWVudC5oIgogI2ltcG9ydCAiRE9NRG9j
dW1lbnRUeXBlLmgiCiAjaW1wb3J0ICJET01FbGVtZW50LmgiCiAjaW1wb3J0ICJET01FbnRpdHlS
ZWZlcmVuY2UuaCIKKyNpbXBvcnQgIkRPTUV2ZW50cy5oIgorI2ltcG9ydCAiRE9NSFRNTENvbGxl
Y3Rpb24uaCIKKyNpbXBvcnQgIkRPTUhUTUxEb2N1bWVudC5oIgorI2ltcG9ydCAiRE9NSFRNTEVs
ZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxGb3JtRWxlbWVudC5oIgorI2ltcG9ydCAiRE9NSFRN
TEltYWdlRWxlbWVudC5oIgorI2ltcG9ydCAiRE9NSFRNTElucHV0RWxlbWVudC5oIgorI2ltcG9y
dCAiRE9NSFRNTE9iamVjdEVsZW1lbnQuaCIKKyNpbXBvcnQgIkRPTUhUTUxPcHRpb25FbGVtZW50
LmgiCisjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24uaCIKKyNpbXBvcnQgIkRPTUhU
TUxUYWJsZUNhcHRpb25FbGVtZW50LmgiCisjaW1wb3J0ICJET01IVE1MVGFibGVDZWxsRWxlbWVu
dC5oIgorI2ltcG9ydCAiRE9NSFRNTFRhYmxlRWxlbWVudC5oIgorI2ltcG9ydCAiRE9NSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQuaCIKICNpbXBvcnQgIkRPTU1lZGlhTGlzdC5oIgogI2ltcG9ydCAi
RE9NTmFtZWROb2RlTWFwLmgiCiAjaW1wb3J0ICJET01Ob2RlLmgiCiAjaW1wb3J0ICJET01Ob2Rl
TGlzdC5oIgogI2ltcG9ydCAiRE9NT2JqZWN0LmgiCiAjaW1wb3J0ICJET01Qcm9jZXNzaW5nSW5z
dHJ1Y3Rpb24uaCIKKyNpbXBvcnQgIkRPTVJHQkNvbG9yLmgiCisjaW1wb3J0ICJET01SZWN0Lmgi
CiAjaW1wb3J0ICJET01TdHlsZVNoZWV0LmgiCiAjaW1wb3J0ICJET01TdHlsZVNoZWV0TGlzdC5o
IgogI2ltcG9ydCAiRE9NVGV4dC5oIgorI2ltcG9ydCAiRE9NVmlld3MuaCIKKworI2lmZGVmIFhQ
QVRIX1NVUFBPUlQKKyNpbXBvcnQgIkRPTVhQYXRoLmgiCisjZW5kaWYgLy8gWFBBVEhfU1VQUE9S
VAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgQXR0cjsKICAgICBjbGFzcyBDREFU
QVNlY3Rpb247CisgICAgY2xhc3MgQ1NTUnVsZTsKKyAgICBjbGFzcyBDU1NSdWxlTGlzdDsKKyAg
ICBjbGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOworICAgIGNsYXNzIENTU1N0eWxlU2hlZXQ7Cisg
ICAgY2xhc3MgQ1NTVmFsdWU7CiAgICAgY2xhc3MgQ29tbWVudDsKKyAgICBjbGFzcyBDb3VudGVy
OwogICAgIGNsYXNzIERPTUltcGxlbWVudGF0aW9uRnJvbnQ7CisgICAgY2xhc3MgRE9NV2luZG93
OwogICAgIGNsYXNzIERvY3VtZW50OwogICAgIGNsYXNzIERvY3VtZW50RnJhZ21lbnQ7CiAgICAg
Y2xhc3MgRG9jdW1lbnRUeXBlOwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRW50aXR5
UmVmZXJlbmNlOworICAgIGNsYXNzIEV2ZW50OworICAgIGNsYXNzIEhUTUxDb2xsZWN0aW9uOwor
ICAgIGNsYXNzIEhUTUxEb2N1bWVudDsKKyAgICBjbGFzcyBIVE1MRWxlbWVudDsKKyAgICBjbGFz
cyBIVE1MRm9ybUVsZW1lbnQ7CisgICAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKKyAgICBjbGFz
cyBIVE1MSW5wdXRFbGVtZW50OworICAgIGNsYXNzIEhUTUxPYmplY3RFbGVtZW50OworICAgIGNs
YXNzIEhUTUxPcHRpb25FbGVtZW50OworICAgIGNsYXNzIEhUTUxPcHRpb25zQ29sbGVjdGlvbjsK
KyAgICBjbGFzcyBIVE1MVGFibGVDYXB0aW9uRWxlbWVudDsKKyAgICBjbGFzcyBIVE1MVGFibGVD
ZWxsRWxlbWVudDsKKyAgICBjbGFzcyBIVE1MVGFibGVFbGVtZW50OworICAgIGNsYXNzIEhUTUxU
YWJsZVNlY3Rpb25FbGVtZW50OwogICAgIGNsYXNzIE1lZGlhTGlzdDsKICAgICBjbGFzcyBOYW1l
ZE5vZGVNYXA7CiAgICAgY2xhc3MgTm9kZTsKQEAgLTY1LDE0ICsxMTQsMjQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGVMaXN0OwogICAgIGNsYXNzIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjsKICAgICBjbGFzcyBSYW5nZTsKKyAgICBjbGFzcyBSZWN0SW1wbDsKICAgICBjbGFz
cyBTdHlsZVNoZWV0OwogICAgIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogICAgIGNsYXNzIFRleHQ7
CiAgICAgY2xhc3MgVHJlZVdhbGtlcjsKIAorI2lmZGVmIFhQQVRIX1NVUFBPUlQKKyAgICBjbGFz
cyBYUGF0aEV4cHJlc3Npb247CisgICAgY2xhc3MgWFBhdGhOU1Jlc29sdmVyOworICAgIGNsYXNz
IFhQYXRoUmVzdWx0OworI2VuZGlmIC8vIFhQQVRIX1NVUFBPUlQKKwogICAgIHR5cGVkZWYgaW50
IEV4Y2VwdGlvbkNvZGU7CisgICAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwogfQog
CisvLyBDb3JlIEludGVybmFsIEludGVyZmFjZXMKKwogQGludGVyZmFjZSBET01PYmplY3QgKFdl
YkNvcmVJbnRlcm5hbCkKIC0gKGlkKV9pbml0OwogQGVuZApAQCAtMTQxLDE5ICsyMDAsMTA2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIC0gKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQgKilfZnJh
Z21lbnQ7CiBAZW5kCiAKLUBpbnRlcmZhY2UgRE9NUmFuZ2UgKFdlYkNvcmVJbnRlcm5hbCkKLSsg
KERPTVJhbmdlICopX3JhbmdlV2l0aDooV2ViQ29yZTo6UmFuZ2UgKilpbXBsOwotLSAoV2ViQ29y
ZTo6UmFuZ2UgKilfcmFuZ2U7CisvLyBIVE1MIEludGVybmFsIEludGVyZmFjZXMKKworQGludGVy
ZmFjZSBET01IVE1MT3B0aW9uc0NvbGxlY3Rpb24gKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUhU
TUxPcHRpb25zQ29sbGVjdGlvbiAqKV9IVE1MT3B0aW9uc0NvbGxlY3Rpb25XaXRoOihXZWJDb3Jl
OjpIVE1MT3B0aW9uc0NvbGxlY3Rpb24gKilpbXBsOwogQGVuZAogCi1AaW50ZXJmYWNlIERPTU5v
ZGVJdGVyYXRvciAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NTm9kZUl0ZXJhdG9yICopX25vZGVJ
dGVyYXRvcldpdGg6KFdlYkNvcmU6Ok5vZGVJdGVyYXRvciAqKWltcGwgZmlsdGVyOihpZCA8RE9N
Tm9kZUZpbHRlcj4pZmlsdGVyOworQGludGVyZmFjZSBET01IVE1MRG9jdW1lbnQgKFdlYkNvcmVJ
bnRlcm5hbCkKKysgKERPTUhUTUxEb2N1bWVudCAqKV9IVE1MRG9jdW1lbnRXaXRoOihXZWJDb3Jl
OjpIVE1MRG9jdW1lbnQgKilpbXBsOwogQGVuZAogCi1AaW50ZXJmYWNlIERPTVRyZWVXYWxrZXIg
KFdlYkNvcmVJbnRlcm5hbCkKLSsgKERPTVRyZWVXYWxrZXIgKilfdHJlZVdhbGtlcldpdGg6KFdl
YkNvcmU6OlRyZWVXYWxrZXIgKilpbXBsIGZpbHRlcjooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRl
cjsKK0BpbnRlcmZhY2UgRE9NSFRNTENvbGxlY3Rpb24gKFdlYkNvcmVJbnRlcm5hbCkKKysgKERP
TUhUTUxDb2xsZWN0aW9uICopX0hUTUxDb2xsZWN0aW9uV2l0aDooV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb24gKilpbXBsOworQGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxFbGVtZW50IChXZWJDb3Jl
SW50ZXJuYWwpCisrIChET01IVE1MRWxlbWVudCAqKV9IVE1MRWxlbWVudFdpdGg6KFdlYkNvcmU6
OkhUTUxFbGVtZW50ICopaW1wbDsKKy0gKFdlYkNvcmU6OkhUTUxFbGVtZW50ICopX0hUTUxFbGVt
ZW50OworQGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxGb3JtRWxlbWVudCAoV2ViQ29yZUludGVy
bmFsKQorKyAoRE9NSFRNTEZvcm1FbGVtZW50ICopX0hUTUxGb3JtRWxlbWVudFdpdGg6KFdlYkNv
cmU6OkhUTUxGb3JtRWxlbWVudCAqKWltcGw7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUhUTUxUYWJsZUNhcHRp
b25FbGVtZW50ICopX0hUTUxUYWJsZUNhcHRpb25FbGVtZW50V2l0aDooV2ViQ29yZTo6SFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQgKilpbXBsOworLSAoV2ViQ29yZTo6SFRNTFRhYmxlQ2FwdGlvbkVs
ZW1lbnQgKilfdGFibGVDYXB0aW9uRWxlbWVudDsKK0BlbmQKKworQGludGVyZmFjZSBET01IVE1M
VGFibGVTZWN0aW9uRWxlbWVudCAoV2ViQ29yZUludGVybmFsKQorKyAoRE9NSFRNTFRhYmxlU2Vj
dGlvbkVsZW1lbnQgKilfSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnRXaXRoOihXZWJDb3JlOjpIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCAqKWltcGw7CistIChXZWJDb3JlOjpIVE1MVGFibGVTZWN0aW9u
RWxlbWVudCAqKV90YWJsZVNlY3Rpb25FbGVtZW50OworQGVuZAorCitAaW50ZXJmYWNlIERPTUhU
TUxUYWJsZUVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUhUTUxUYWJsZUVsZW1lbnQg
KilfSFRNTFRhYmxlRWxlbWVudFdpdGg6KFdlYkNvcmU6OkhUTUxUYWJsZUVsZW1lbnQgKilpbXBs
OworLSAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudCAqKV90YWJsZUVsZW1lbnQ7CitAZW5kCisK
K0BpbnRlcmZhY2UgRE9NSFRNTFRhYmxlQ2VsbEVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKKysg
KERPTUhUTUxUYWJsZUNlbGxFbGVtZW50ICopX0hUTUxUYWJsZUNlbGxFbGVtZW50V2l0aDooV2Vi
Q29yZTo6SFRNTFRhYmxlQ2VsbEVsZW1lbnQgKilpbXBsOworLSAoV2ViQ29yZTo6SFRNTFRhYmxl
Q2VsbEVsZW1lbnQgKilfdGFibGVDZWxsRWxlbWVudDsKK0BlbmQKKworQGludGVyZmFjZSBET01I
VE1MSW1hZ2VFbGVtZW50IChXZWJDb3JlSW50ZXJuYWwpCistIChXZWJDb3JlOjpIVE1MSW1hZ2VF
bGVtZW50ICopX0hUTUxJbWFnZUVsZW1lbnQ7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NSFRNTE9i
amVjdEVsZW1lbnQgKFdlYkNvcmVJbnRlcm5hbCkKKy0gKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVt
ZW50ICopX0hUTUxPYmplY3RFbGVtZW50OworQGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxPcHRp
b25FbGVtZW50IChXZWJDb3JlSW50ZXJuYWwpCistIChXZWJDb3JlOjpIVE1MT3B0aW9uRWxlbWVu
dCAqKV9vcHRpb25FbGVtZW50OworQGVuZAorCitAaW50ZXJmYWNlIERPTUhUTUxJbnB1dEVsZW1l
bnQgKFdlYkNvcmVJbnRlcm5hbCkKKy0gKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQgKilfSFRN
TElucHV0RWxlbWVudDsKK0BlbmQKKworLy8gQ1NTIEludGVybmFsIEludGVyZmFjZXMKKworQGlu
dGVyZmFjZSBET01DU1NSdWxlTGlzdCAoV2ViQ29yZUludGVybmFsKQorKyAoRE9NQ1NTUnVsZUxp
c3QgKilfQ1NTUnVsZUxpc3RXaXRoOihXZWJDb3JlOjpDU1NSdWxlTGlzdCAqKWltcGw7CitAZW5k
CisKK0BpbnRlcmZhY2UgRE9NQ1NTUnVsZSAoV2ViQ29yZUludGVybmFsKQorKyAoRE9NQ1NTUnVs
ZSAqKV9DU1NSdWxlV2l0aDooV2ViQ29yZTo6Q1NTUnVsZSAqKWltcGw7CitAZW5kCisKK0BpbnRl
cmZhY2UgRE9NQ1NTVmFsdWUgKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUNTU1ZhbHVlICopX0NT
U1ZhbHVlV2l0aDooV2ViQ29yZTo6Q1NTVmFsdWUgKilpbXBsOworQGVuZAorCitAaW50ZXJmYWNl
IERPTUNTU1ByaW1pdGl2ZVZhbHVlIChXZWJDb3JlSW50ZXJuYWwpCisrIChET01DU1NQcmltaXRp
dmVWYWx1ZSAqKV9DU1NQcmltaXRpdmVWYWx1ZVdpdGg6KFdlYkNvcmU6OkNTU1ZhbHVlICopaW1w
bDsKIEBlbmQKIAorQGludGVyZmFjZSBET01SR0JDb2xvciAoV2ViQ29yZUludGVybmFsKQorKyAo
RE9NUkdCQ29sb3IgKilfUkdCQ29sb3JXaXRoUkdCOihXZWJDb3JlOjpSR0JBMzIpdmFsdWU7CitA
ZW5kCisKK0BpbnRlcmZhY2UgRE9NUmVjdCAoV2ViQ29yZUludGVybmFsKQorKyAoRE9NUmVjdCAq
KV9yZWN0V2l0aDooV2ViQ29yZTo6UmVjdEltcGwgKilpbXBsOworQGVuZAorCitAaW50ZXJmYWNl
IERPTUNvdW50ZXIgKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUNvdW50ZXIgKilfY291bnRlcldp
dGg6KFdlYkNvcmU6OkNvdW50ZXIgKilpbXBsOworQGVuZAorCitAaW50ZXJmYWNlIERPTUNTU1N0
eWxlRGVjbGFyYXRpb24gKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUNTU1N0eWxlRGVjbGFyYXRp
b24gKilfQ1NTU3R5bGVEZWNsYXJhdGlvbldpdGg6KFdlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRp
b24gKilpbXBsOworLSAoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiAqKV9zdHlsZURlY2xh
cmF0aW9uOworQGVuZAorCitAaW50ZXJmYWNlIERPTUNTU1N0eWxlU2hlZXQgKFdlYkNvcmVJbnRl
cm5hbCkKKysgKERPTUNTU1N0eWxlU2hlZXQgKilfQ1NTU3R5bGVTaGVldFdpdGg6KFdlYkNvcmU6
OkNTU1N0eWxlU2hlZXQgKilpbXBsOworQGVuZAorCisvLyBTdHlsZVNoZWV0cyBJbnRlcm5hbCBJ
bnRlcmZhY2VzCisKIEBpbnRlcmZhY2UgRE9NU3R5bGVTaGVldCAoV2ViQ29yZUludGVybmFsKQog
KyAoRE9NU3R5bGVTaGVldCAqKV9zdHlsZVNoZWV0V2l0aDooV2ViQ29yZTo6U3R5bGVTaGVldCAq
KWltcGw7CiBAZW5kCkBAIC0xNjYsMTAgKzMxMiw2MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAr
IChET01NZWRpYUxpc3QgKilfbWVkaWFMaXN0V2l0aDooV2ViQ29yZTo6TWVkaWFMaXN0ICopaW1w
bDsKIEBlbmQKIAorLy8gRXZlbnRzIEludGVybmFsIEludGVyZmFjZXMKKworQGludGVyZmFjZSBE
T01FdmVudCAoV2ViQ29yZUludGVybmFsKQorKyAoRE9NRXZlbnQgKilfZXZlbnRXaXRoOihXZWJD
b3JlOjpFdmVudCAqKWltcGw7CistIChXZWJDb3JlOjpFdmVudCAqKV9ldmVudDsKK0BlbmQKKwor
Ly8gUmFuZ2UgSW50ZXJuYWwgSW50ZXJmYWNlcworCitAaW50ZXJmYWNlIERPTVJhbmdlIChXZWJD
b3JlSW50ZXJuYWwpCisrIChET01SYW5nZSAqKV9yYW5nZVdpdGg6KFdlYkNvcmU6OlJhbmdlICop
aW1wbDsKKy0gKFdlYkNvcmU6OlJhbmdlICopX3JhbmdlOworQGVuZAorCisvLyBUcmF2ZXJzYWwg
SW50ZXJuYWwgSW50ZXJmYWNlcworCitAaW50ZXJmYWNlIERPTU5vZGVJdGVyYXRvciAoV2ViQ29y
ZUludGVybmFsKQorKyAoRE9NTm9kZUl0ZXJhdG9yICopX25vZGVJdGVyYXRvcldpdGg6KFdlYkNv
cmU6Ok5vZGVJdGVyYXRvciAqKWltcGwgZmlsdGVyOihpZCA8RE9NTm9kZUZpbHRlcj4pZmlsdGVy
OworQGVuZAorCitAaW50ZXJmYWNlIERPTVRyZWVXYWxrZXIgKFdlYkNvcmVJbnRlcm5hbCkKKysg
KERPTVRyZWVXYWxrZXIgKilfdHJlZVdhbGtlcldpdGg6KFdlYkNvcmU6OlRyZWVXYWxrZXIgKilp
bXBsIGZpbHRlcjooaWQgPERPTU5vZGVGaWx0ZXI+KWZpbHRlcjsKK0BlbmQKKwogQGludGVyZmFj
ZSBET01Ob2RlRmlsdGVyIDogRE9NT2JqZWN0IDxET01Ob2RlRmlsdGVyPgogKyAoRE9NTm9kZUZp
bHRlciAqKV9ub2RlRmlsdGVyV2l0aDooV2ViQ29yZTo6Tm9kZUZpbHRlciAqKWltcGw7CiBAZW5k
CiAKKy8vIFZpZXdzIEludGVybmFsIEludGVyZmFjZXMKKworQGludGVyZmFjZSBET01BYnN0cmFj
dFZpZXcgKFdlYkNvcmVJbnRlcm5hbCkKKysgKERPTUFic3RyYWN0VmlldyAqKV9hYnN0cmFjdFZp
ZXdXaXRoOihXZWJDb3JlOjpBYnN0cmFjdFZpZXcgKilpbXBsOworLSAoV2ViQ29yZTo6QWJzdHJh
Y3RWaWV3ICopX2Fic3RyYWN0VmlldzsKK0BlbmQKKworI2lmZGVmIFhQQVRIX1NVUFBPUlQKKy8v
IFhQYXRoIEludGVybmFsIEludGVyZmFjZXMKKworQGludGVyZmFjZSBET01YUGF0aFJlc3VsdCAo
V2ViQ29yZUludGVybmFsKQorKyAoRE9NWFBhdGhSZXN1bHQgKilfeHBhdGhSZXN1bHRXaXRoOihX
ZWJDb3JlOjpYUGF0aFJlc3VsdCAqKWltcGw7CistIChXZWJDb3JlOjpYUGF0aFJlc3VsdCAqKV94
cGF0aFJlc3VsdDsKK0BlbmQKKworQGludGVyZmFjZSBET01YUGF0aEV4cHJlc3Npb24gKFdlYkNv
cmVJbnRlcm5hbCkKKysgKERPTVhQYXRoRXhwcmVzc2lvbiAqKV94cGF0aEV4cHJlc3Npb25XaXRo
OihXZWJDb3JlOjpYUGF0aEV4cHJlc3Npb24gKilpbXBsOworLSAoV2ViQ29yZTo6WFBhdGhFeHBy
ZXNzaW9uICopX3hwYXRoRXhwcmVzc2lvbjsKK0BlbmQKKworQGludGVyZmFjZSBET01OYXRpdmVY
UGF0aE5TUmVzb2x2ZXIgOiBET01PYmplY3QgPERPTVhQYXRoTlNSZXNvbHZlcj4KKysgKERPTU5h
dGl2ZVhQYXRoTlNSZXNvbHZlciAqKV94cGF0aE5TUmVzb2x2ZXJXaXRoOihXZWJDb3JlOjpYUGF0
aE5TUmVzb2x2ZXIgKilpbXBsOworLSAoV2ViQ29yZTo6WFBhdGhOU1Jlc29sdmVyICopX3hwYXRo
TlNSZXNvbHZlcjsKK0BlbmQKKworI2VuZGlmIC8vIFhQQVRIX1NVUFBPUlQKKworCiAvLyBIZWxw
ZXIgZnVuY3Rpb25zIGZvciBET00gd3JhcHBlcnMgYW5kIGdsdWluZyB0byBPYmplY3RpdmUtQwog
CiAvLyBMaWtlIHJlaW50ZXJwcmV0X2Nhc3QsIGJ1dCBhIGNvbXBpbGVyIGVycm9yIGlmIHlvdSB1
c2UgaXQgb24gdGhlIHdyb25nIHR5cGUuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
UkdCQ29sb3IubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJHQkNv
bG9yLm1tCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SR0JD
b2xvci5tbQkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2ltcG9ydCAiRE9NUkdC
Q29sb3IuaCIKIAogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKLSNpbXBvcnQgIkRPTUNTU0ludGVy
bmFsLmgiCiAjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CiAjaW1wb3J0ICJDb2xvci5oIgogI2ltcG9y
dCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCIKQEAgLTQ1LDExICs0NCwxMCBAQCBpZCBnZXRXcmFw
cGVyRm9yUkdCKFdlYkNvcmU6OlJHQkEzMiB2YWx1CiAKIHZvaWQgc2V0V3JhcHBlckZvclJHQihp
ZCB3cmFwcGVyLCBXZWJDb3JlOjpSR0JBMzIgdmFsdWUpCiB7Ci0gICAgaWYgKCF3cmFwcGVyQ2Fj
aGUpIHsKKyAgICBpZiAoIXdyYXBwZXJDYWNoZSkKICAgICAgICAgLy8gTm8gbmVlZCB0byByZXRh
aW4vZnJlZSBlaXRoZXIgaW1wbCBrZXksIG9yIGlkIHZhbHVlLiAgSXRlbXMgd2lsbCBiZSByZW1v
dmVkCiAgICAgICAgIC8vIGZyb20gdGhlIGNhY2hlIGluIGRlYWxsb2MgbWV0aG9kcy4KICAgICAg
ICAgd3JhcHBlckNhY2hlID0gQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShOVUxMLCAwLCBOVUxM
LCBOVUxMKTsKLSAgICB9CiAgICAgQ0ZEaWN0aW9uYXJ5U2V0VmFsdWUod3JhcHBlckNhY2hlLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IHZvaWQqPih2YWx1ZSksIHdyYXBwZXIpOwogfQogCkBAIC03
OSwyMSArNzcsMjEgQEAgdm9pZCByZW1vdmVXcmFwcGVyRm9yUkdCKFdlYkNvcmU6OlJHQkEzMgog
ewogICAgIFdlYkNvcmU6OlJHQkEzMiByZ2IgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4o
X2ludGVybmFsKTsKICAgICBpbnQgdmFsdWUgPSAocmdiID4+IDE2KSAmIDB4RkY7Ci0gICAgcmV0
dXJuIFtET01DU1NQcmltaXRpdmVWYWx1ZSBfdmFsdWVXaXRoOm5ldyBXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZSh2YWx1ZSwgV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIp
XTsKKyAgICByZXR1cm4gW0RPTUNTU1ByaW1pdGl2ZVZhbHVlIF9DU1NQcmltaXRpdmVWYWx1ZVdp
dGg6bmV3IFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCBXZWJDb3JlOjpDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX05VTUJFUildOwogfQogCiAtIChET01DU1NQcmltaXRpdmVWYWx1ZSAq
KWdyZWVuCiB7CiAgICAgV2ViQ29yZTo6UkdCQTMyIHJnYiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWlu
dHB0cl90PihfaW50ZXJuYWwpOwogICAgIGludCB2YWx1ZSA9IChyZ2IgPj4gOCkgJiAweEZGOwot
ICAgIHJldHVybiBbRE9NQ1NTUHJpbWl0aXZlVmFsdWUgX3ZhbHVlV2l0aDpuZXcgV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWUodmFsdWUsIFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
TlVNQkVSKV07CisgICAgcmV0dXJuIFtET01DU1NQcmltaXRpdmVWYWx1ZSBfQ1NTUHJpbWl0aXZl
VmFsdWVXaXRoOm5ldyBXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZSh2YWx1ZSwgV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19OVU1CRVIpXTsKIH0KIAogLSAoRE9NQ1NTUHJpbWl0aXZl
VmFsdWUgKilibHVlCiB7CiAgICAgV2ViQ29yZTo6UkdCQTMyIHJnYiA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludHB0cl90PihfaW50ZXJuYWwpOwogICAgIGludCB2YWx1ZSA9IHJnYiAmIDB4RkY7Ci0g
ICAgcmV0dXJuIFtET01DU1NQcmltaXRpdmVWYWx1ZSBfdmFsdWVXaXRoOm5ldyBXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZSh2YWx1ZSwgV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU19O
VU1CRVIpXTsKKyAgICByZXR1cm4gW0RPTUNTU1ByaW1pdGl2ZVZhbHVlIF9DU1NQcmltaXRpdmVW
YWx1ZVdpdGg6bmV3IFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCBXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUildOwogfQogCiBAZW5kCkBAIC0xMDQsNyArMTAy
LDcgQEAgdm9pZCByZW1vdmVXcmFwcGVyRm9yUkdCKFdlYkNvcmU6OlJHQkEzMgogewogICAgIFdl
YkNvcmU6OlJHQkEzMiByZ2IgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oX2ludGVybmFs
KTsKICAgICBmbG9hdCB2YWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0PihXZWJDb3JlOjpDb2xvcihy
Z2IpLmFscGhhKCkpIC8gMHhGRjsKLSAgICByZXR1cm4gW0RPTUNTU1ByaW1pdGl2ZVZhbHVlIF92
YWx1ZVdpdGg6bmV3IFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKHZhbHVlLCBXZWJDb3JlOjpD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUildOworICAgIHJldHVybiBbRE9NQ1NTUHJpbWl0
aXZlVmFsdWUgX0NTU1ByaW1pdGl2ZVZhbHVlV2l0aDpuZXcgV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWUodmFsdWUsIFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfTlVNQkVSKV07CiAg
ICAgCiB9CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCShyZXZpc2lvbiAx
NjIyOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VdGlsaXR5Lm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJKU0NTU1J1bGVMaXN0LmgiCiAKICNpbXBv
cnQgIkRPTUludGVybmFsLmgiCi0jaW1wb3J0ICJET01DU1NJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgogCiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5o
PgpAQCAtNTgsMTMgKzU3LDEzIEBAIHZvaWQgKlNjcmlwdEludGVycHJldGVyOjpjcmVhdGVPYmpj
SW5zdGEKICAgICBlbHNlIGlmICh2YWx1ZS0+aW5oZXJpdHMoJkRPTU1lZGlhTGlzdDo6aW5mbykp
CiAgICAgICAgIG5ld09iaiA9IFtvYmpjX2dldENsYXNzKCJET01NZWRpYUxpc3QiKSBfbWVkaWFM
aXN0V2l0aDpzdGF0aWNfY2FzdDxET01NZWRpYUxpc3QgKj4odmFsdWUpLT5pbXBsKCldOwogICAg
IGVsc2UgaWYgKHZhbHVlLT5pbmhlcml0cygmV2ViQ29yZTo6SlNDU1NSdWxlTGlzdDo6aW5mbykp
Ci0gICAgICAgIG5ld09iaiA9IFtvYmpjX2dldENsYXNzKCJET01DU1NSdWxlTGlzdCIpIF9ydWxl
TGlzdFdpdGg6c3RhdGljX2Nhc3Q8V2ViQ29yZTo6SlNDU1NSdWxlTGlzdCAqPih2YWx1ZSktPmlt
cGwoKV07CisgICAgICAgIG5ld09iaiA9IFtvYmpjX2dldENsYXNzKCJET01DU1NSdWxlTGlzdCIp
IF9DU1NSdWxlTGlzdFdpdGg6c3RhdGljX2Nhc3Q8V2ViQ29yZTo6SlNDU1NSdWxlTGlzdCAqPih2
YWx1ZSktPmltcGwoKV07CiAgICAgZWxzZSBpZiAodmFsdWUtPmluaGVyaXRzKCZET01DU1NSdWxl
OjppbmZvKSkKLSAgICAgICAgbmV3T2JqID0gW29iamNfZ2V0Q2xhc3MoIkRPTUNTU1J1bGUiKSBf
cnVsZVdpdGg6c3RhdGljX2Nhc3Q8RE9NQ1NTUnVsZSAqPih2YWx1ZSktPmltcGwoKV07CisgICAg
ICAgIG5ld09iaiA9IFtvYmpjX2dldENsYXNzKCJET01DU1NSdWxlIikgX0NTU1J1bGVXaXRoOnN0
YXRpY19jYXN0PERPTUNTU1J1bGUgKj4odmFsdWUpLT5pbXBsKCldOwogICAgIGVsc2UgaWYgKHZh
bHVlLT5pbmhlcml0cygmRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjo6aW5mbykpCi0gICAgICAgIG5l
d09iaiA9IFtvYmpjX2dldENsYXNzKCJET01DU1NTdHlsZURlY2xhcmF0aW9uIikgX3N0eWxlRGVj
bGFyYXRpb25XaXRoOnN0YXRpY19jYXN0PERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKj4odmFsdWUp
LT5pbXBsKCldOworICAgICAgICBuZXdPYmogPSBbb2JqY19nZXRDbGFzcygiRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbiIpIF9DU1NTdHlsZURlY2xhcmF0aW9uV2l0aDpzdGF0aWNfY2FzdDxET01DU1NT
dHlsZURlY2xhcmF0aW9uICo+KHZhbHVlKS0+aW1wbCgpXTsKICAgICBlbHNlIGlmICh2YWx1ZS0+
aW5oZXJpdHMoJkRPTUNTU1ZhbHVlOjppbmZvKSkKLSAgICAgICAgbmV3T2JqID0gW29iamNfZ2V0
Q2xhc3MoIkRPTUNTU1ZhbHVlIikgX3ZhbHVlV2l0aDpzdGF0aWNfY2FzdDxET01DU1NWYWx1ZSAq
Pih2YWx1ZSktPmltcGwoKV07CisgICAgICAgIG5ld09iaiA9IFtvYmpjX2dldENsYXNzKCJET01D
U1NWYWx1ZSIpIF9DU1NWYWx1ZVdpdGg6c3RhdGljX2Nhc3Q8RE9NQ1NTVmFsdWUgKj4odmFsdWUp
LT5pbXBsKCldOwogICAgIAogICAgIGlmIChuZXdPYmopCiAgICAgICAgIFtuZXdPYmogX2luaXRp
YWxpemVXaXRoT2JqZWN0SW1wOnZhbHVlIG9yaWdpbkV4ZWN1dGlvbkNvbnRleHQ6b3JpZ2luIGV4
ZWN1dGlvbkNvbnRleHQ6Y3VycmVudF07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Vmlld3MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVZpZXdzLm1t
CShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01WaWV3cy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMjcsMTQgKzI3LDEyIEBACiAjaW1wb3J0ICJET01WaWV3cy5oIgog
CiAjaW1wb3J0ICJET01JbnRlcm5hbC5oIgotI2ltcG9ydCAiRE9NVmlld3NJbnRlcm5hbC5oIgog
I2ltcG9ydCAiRG9jdW1lbnQuaCIKKyNpbXBvcnQgIkRPTVdpbmRvdy5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwogfQotdXNpbmcg
V2ViQ29yZTo6QWJzdHJhY3RWaWV3OwotdXNpbmcgV2ViQ29yZTo6RE9NV2luZG93OwogCiBBTExP
V19ET01fQ0FTVChET01XaW5kb3cpCiAKQEAgLTQ5LDEyICs0NywxMiBAQCBBTExPV19ET01fQ0FT
VChET01XaW5kb3cpCiAKIEBpbXBsZW1lbnRhdGlvbiBET01BYnN0cmFjdFZpZXcgKFdlYkNvcmVJ
bnRlcm5hbCkKIAotLSAoQWJzdHJhY3RWaWV3ICopX2Fic3RyYWN0VmlldworLSAoV2ViQ29yZTo6
QWJzdHJhY3RWaWV3ICopX2Fic3RyYWN0VmlldwogewotICAgIHJldHVybiBET01fY2FzdDxBYnN0
cmFjdFZpZXcgKj4oX2ludGVybmFsKTsKKyAgICByZXR1cm4gRE9NX2Nhc3Q8V2ViQ29yZTo6QWJz
dHJhY3RWaWV3ICo+KF9pbnRlcm5hbCk7CiB9CiAKLS0gKGlkKV9pbml0V2l0aEFic3RyYWN0Vmll
dzooQWJzdHJhY3RWaWV3ICopaW1wbAorLSAoaWQpX2luaXRXaXRoQWJzdHJhY3RWaWV3OihXZWJD
b3JlOjpBYnN0cmFjdFZpZXcgKilpbXBsCiB7CiAgICAgQVNTRVJUKGltcGwpOwogCkBAIC02NSw3
ICs2Myw3IEBAIEFMTE9XX0RPTV9DQVNUKERPTVdpbmRvdykKICAgICByZXR1cm4gc2VsZjsKIH0K
IAotKyAoRE9NQWJzdHJhY3RWaWV3ICopX2Fic3RyYWN0Vmlld1dpdGg6KEFic3RyYWN0VmlldyAq
KWltcGwKKysgKERPTUFic3RyYWN0VmlldyAqKV9hYnN0cmFjdFZpZXdXaXRoOihXZWJDb3JlOjpB
YnN0cmFjdFZpZXcgKilpbXBsCiB7CiAgICAgaWYgKCFpbXBsKQogICAgICAgICByZXR1cm4gbmls
OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVZpZXdzSW50ZXJuYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVmlld3NJbnRlcm5hbC5oCShyZXZpc2lv
biAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01WaWV3c0ludGVybmFsLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCBB
cHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2ltcG9y
dCAiRE9NVmlld3MuaCIKLSNpbXBvcnQgIkRPTVdpbmRvdy5oIgotCi1uYW1lc3BhY2UgV2ViQ29y
ZSB7Ci0gICAgdHlwZWRlZiBET01XaW5kb3cgQWJzdHJhY3RWaWV3OwotfQotCi1AaW50ZXJmYWNl
IERPTUFic3RyYWN0VmlldyAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NQWJzdHJhY3RWaWV3ICop
X2Fic3RyYWN0Vmlld1dpdGg6KFdlYkNvcmU6OkFic3RyYWN0VmlldyAqKWltcGw7Ci0tIChXZWJD
b3JlOjpBYnN0cmFjdFZpZXcgKilfYWJzdHJhY3RWaWV3OwotQGVuZApJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVhQYXRoLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01YUGF0aC5tbQkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NWFBhdGgubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDEyIEBACiAjaWZkZWYg
WFBBVEhfU1VQUE9SVAogCiAjaW1wb3J0ICJET01YUGF0aC5oIgorCiAjaW1wb3J0ICJET01JbnRl
cm5hbC5oIgotI2ltcG9ydCAiRE9NWFBhdGhJbnRlcm5hbC5oIgogI2ltcG9ydCAiRG9jdW1lbnQu
aCIKKyNpbXBvcnQgIlhQYXRoRXhwcmVzc2lvbi5oIgorI2ltcG9ydCAiWFBhdGhOU1Jlc29sdmVy
LmgiCisjaW1wb3J0ICJYUGF0aFJlc3VsdC5oIgogCiB1c2luZyBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlOwogdXNpbmcgV2ViQ29yZTo6WFBhdGhFeHByZXNzaW9uOwpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVhQYXRoSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NWFBhdGhJbnRlcm5hbC5oCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01YUGF0aEludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDgg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lmZGVmIFhQQVRIX1NVUFBPUlQKLQotI2lt
cG9ydCAiRE9NWFBhdGguaCIKLSNpbXBvcnQgIlhQYXRoRXhwcmVzc2lvbi5oIgotI2ltcG9ydCAi
WFBhdGhOU1Jlc29sdmVyLmgiCi0jaW1wb3J0ICJYUGF0aFJlc3VsdC5oIgotCi1AaW50ZXJmYWNl
IERPTVhQYXRoUmVzdWx0IChXZWJDb3JlSW50ZXJuYWwpCi0rIChET01YUGF0aFJlc3VsdCAqKV94
cGF0aFJlc3VsdFdpdGg6KFdlYkNvcmU6OlhQYXRoUmVzdWx0ICopaW1wbDsKLS0gKFdlYkNvcmU6
OlhQYXRoUmVzdWx0ICopX3hwYXRoUmVzdWx0OwotQGVuZAotCi1AaW50ZXJmYWNlIERPTVhQYXRo
RXhwcmVzc2lvbiAoV2ViQ29yZUludGVybmFsKQotKyAoRE9NWFBhdGhFeHByZXNzaW9uICopX3hw
YXRoRXhwcmVzc2lvbldpdGg6KFdlYkNvcmU6OlhQYXRoRXhwcmVzc2lvbiAqKWltcGw7Ci0tIChX
ZWJDb3JlOjpYUGF0aEV4cHJlc3Npb24gKilfeHBhdGhFeHByZXNzaW9uOwotQGVuZAotCi1AaW50
ZXJmYWNlIERPTU5hdGl2ZVhQYXRoTlNSZXNvbHZlciA6IERPTU9iamVjdCA8RE9NWFBhdGhOU1Jl
c29sdmVyPgotKyAoRE9NTmF0aXZlWFBhdGhOU1Jlc29sdmVyICopX3hwYXRoTlNSZXNvbHZlcldp
dGg6KFdlYkNvcmU6OlhQYXRoTlNSZXNvbHZlciAqKWltcGw7Ci0tIChXZWJDb3JlOjpYUGF0aE5T
UmVzb2x2ZXIgKilfeHBhdGhOU1Jlc29sdmVyOwotQGVuZAotCi0jZW5kaWYgLy8gWFBBVEhfU1VQ
UE9SVApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJmYWNlcy5o
CShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxMiw2ICsyMTIsNyBAQAogQHByb3BlcnR5IGlu
dCB0YWJJbmRleDsKIEBwcm9wZXJ0eSBOU1N0cmluZyAqdGFyZ2V0OwogQHByb3BlcnR5IE5TU3Ry
aW5nICp0eXBlOworQHByb3BlcnR5KHJlYWRvbmx5KSBOU1VSTCAqYWJzb2x1dGVMaW5rVVJMOwog
LSAodm9pZClibHVyOwogLSAodm9pZClmb2N1czsKIEBlbmQKQEAgLTIyNSw2ICsyMjYsNyBAQAog
QHByb3BlcnR5IE5TU3RyaW5nICpzaGFwZTsKIEBwcm9wZXJ0eSBpbnQgdGFiSW5kZXg7CiBAcHJv
cGVydHkgTlNTdHJpbmcgKnRhcmdldDsKK0Bwcm9wZXJ0eShyZWFkb25seSkgTlNVUkwgKmFic29s
dXRlTGlua1VSTDsKIEBlbmQKIAogQGludGVyZmFjZSBET01IVE1MQlJFbGVtZW50IDogRE9NSFRN
TEVsZW1lbnQKQEAgLTM4MSw2ICszODMsOCBAQAogQHByb3BlcnR5IE5TU3RyaW5nICp1c2VNYXA7
CiBAcHJvcGVydHkgaW50IHZzcGFjZTsKIEBwcm9wZXJ0eSBpbnQgd2lkdGg7CitAcHJvcGVydHko
cmVhZG9ubHkpIE5TU3RyaW5nICphbHREaXNwbGF5U3RyaW5nOworQHByb3BlcnR5KHJlYWRvbmx5
KSBOU1VSTCAqYWJzb2x1dGVJbWFnZVVSTDsKIEBlbmQKIAogQGludGVyZmFjZSBET01IVE1MSW5w
dXRFbGVtZW50IDogRE9NSFRNTEVsZW1lbnQKQEAgLTQwMiw2ICs0MDYsNyBAQAogQHByb3BlcnR5
IE5TU3RyaW5nICp0eXBlOwogQHByb3BlcnR5IE5TU3RyaW5nICp1c2VNYXA7CiBAcHJvcGVydHkg
TlNTdHJpbmcgKnZhbHVlOworQHByb3BlcnR5KHJlYWRvbmx5KSBOU1N0cmluZyAqYWx0RGlzcGxh
eVN0cmluZzsKIC0gKHZvaWQpYmx1cjsKIC0gKHZvaWQpZm9jdXM7CiAtICh2b2lkKXNlbGVjdDsK
QEAgLTQ0MCw2ICs0NDUsNyBAQAogQHByb3BlcnR5IE5TU3RyaW5nICpyZXY7CiBAcHJvcGVydHkg
TlNTdHJpbmcgKnRhcmdldDsKIEBwcm9wZXJ0eSBOU1N0cmluZyAqdHlwZTsKK0Bwcm9wZXJ0eShy
ZWFkb25seSkgTlNVUkwgKmFic29sdXRlTGlua1VSTDsKIEBlbmQKIAogQGludGVyZmFjZSBET01I
VE1MTWFwRWxlbWVudCA6IERPTUhUTUxFbGVtZW50CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiAxNjIyOCkKKysrIFdlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29ya2luZyBjb3B5KQpA
QCAtMTk5LDYgKzE5OSw4IEBAIHN1YiBHZXRDbGFzc05hbWUKICAgICAgICAgcmV0dXJuICJpbnQi
OwogICAgIH0gZWxzaWYgKCRuYW1lIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgIHJldHVybiAi
TlNTdHJpbmciOworICAgIH0gZWxzaWYgKCRuYW1lIGVxICJVUkwiKSB7CisgICAgICAgIHJldHVy
biAiTlNVUkwiOwogICAgIH0gZWxzaWYgKCRuYW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAg
IHJldHVybiAiRE9NQWJzdHJhY3RWaWV3IjsKICAgICB9IGVsc2lmICgkbmFtZSBlcSAiWFBhdGhO
U1Jlc29sdmVyIikgewpAQCAtMjI3LDEzICsyMjksOCBAQCBzdWIgR2V0SW1wbENsYXNzTmFtZQog
ICAgIG15ICRuYW1lID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKIAogICAg
ICMgc3BlY2lhbCBjYXNlcwotICAgIGlmICgkbmFtZSBlcSAiRE9NSW1wbGVtZW50YXRpb24iKSB7
Ci0gICAgICAgIHJldHVybiAiRE9NSW1wbGVtZW50YXRpb25Gcm9udCI7Ci0gICAgfQotCi0gICAg
aWYgKCRuYW1lIGVxICJSZWN0IikgewotICAgICAgICByZXR1cm4gIlJlY3RJbXBsIjsKLSAgICB9
CisgICAgcmV0dXJuICJET01JbXBsZW1lbnRhdGlvbkZyb250IiBpZiAkbmFtZSBlcSAiRE9NSW1w
bGVtZW50YXRpb24iOworICAgIHJldHVybiAiUmVjdEltcGwiIGlmICRuYW1lIGVxICJSZWN0IjsK
IAogICAgIHJldHVybiAkbmFtZTsKIH0KQEAgLTI0NywxMSArMjQ0LDggQEAgc3ViIEdldFBhcmVu
dEltcGxDbGFzc05hbWUKICAgICBteSAkcGFyZW50ID0gJGNvZGVHZW5lcmF0b3ItPlN0cmlwTW9k
dWxlKCRkYXRhTm9kZS0+cGFyZW50cygwKSk7CiAKICAgICAjIHNwZWNpYWwgY2FzZXMKLSAgICBp
ZiAoJHBhcmVudCBlcSAiRXZlbnRUYXJnZXROb2RlIikgewotICAgICAgICAkcGFyZW50ID0gIk5v
ZGUiOwotICAgIH0gZWxzaWYgKCRwYXJlbnQgZXEgIkhUTUxDb2xsZWN0aW9uIikgewotICAgICAg
ICAkcGFyZW50ID0gIk9iamVjdCI7Ci0gICAgfQorICAgIHJldHVybiAiTm9kZSIgaWYgJHBhcmVu
dCBlcSAiRXZlbnRUYXJnZXROb2RlIjsKKyAgICByZXR1cm4gIk9iamVjdCIgaWYgJHBhcmVudCBl
cSAiSFRNTENvbGxlY3Rpb24iOwogCiAgICAgcmV0dXJuICRwYXJlbnQ7CiB9CkBAIC0yNzYsNDIg
KzI3MCwxMiBAQCBzdWIgR2V0T2JqQ1R5cGVNYWtlcgogewogICAgIG15ICR0eXBlID0gJGNvZGVH
ZW5lcmF0b3ItPlN0cmlwTW9kdWxlKHNoaWZ0KTsKIAotICAgIGlmICgkY29kZUdlbmVyYXRvci0+
SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvciAkdHlwZSBlcSAiRE9NU3RyaW5nIikgewotICAgICAg
ICByZXR1cm4gIiI7Ci0gICAgfQotCi0gICAgaWYgKCR0eXBlIGVxICJSR0JDb2xvciIpIHsKLSAg
ICAgICAgcmV0dXJuICJfUkdCQ29sb3JXaXRoUkdCIjsKLSAgICB9CisgICAgcmV0dXJuICIiIGlm
ICRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJET01T
dHJpbmciIG9yICR0eXBlIGVxICJVUkwiOworICAgIHJldHVybiAiX1JHQkNvbG9yV2l0aFJHQiIg
aWYgJHR5cGUgZXEgIlJHQkNvbG9yIjsKIAogICAgIG15ICR0eXBlTWFrZXIgPSAiIjsKLQotICAg
IGlmICgkdHlwZSBlcSAiSFRNTENvbGxlY3Rpb24iKSB7Ci0gICAgICAgICR0eXBlTWFrZXIgPSAi
Y29sbGVjdGlvbiI7Ci0gICAgfSBlbHNpZiAoJHR5cGUgZXEgIkhUTUxGb3JtRWxlbWVudCIpIHsK
LSAgICAgICAgJHR5cGVNYWtlciA9ICJmb3JtRWxlbWVudCI7Ci0gICAgfSBlbHNpZiAoJHR5cGUg
ZXEgIkhUTUxFbGVtZW50IikgewotICAgICAgICAkdHlwZU1ha2VyID0gImVsZW1lbnQiOwotICAg
IH0gZWxzaWYgKCR0eXBlIGVxICJIVE1MT3B0aW9uc0NvbGxlY3Rpb24iKSB7Ci0gICAgICAgICR0
eXBlTWFrZXIgPSAib3B0aW9uc0NvbGxlY3Rpb24iOwotICAgIH0gZWxzaWYgKCR0eXBlIGVxICJI
VE1MRG9jdW1lbnQiKSB7Ci0gICAgICAgICR0eXBlTWFrZXIgPSAiSFRNTERvY3VtZW50IjsKLSAg
ICB9IGVsc2lmICgkdHlwZSBlcSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQiKSB7Ci0gICAgICAg
ICR0eXBlTWFrZXIgPSAidGFibGVDYXB0aW9uRWxlbWVudCI7Ci0gICAgfSBlbHNpZiAoJHR5cGUg
ZXEgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50IikgewotICAgICAgICAkdHlwZU1ha2VyID0gInRh
YmxlU2VjdGlvbkVsZW1lbnQiOwotICAgIH0gZWxzaWYgKCR0eXBlIGVxICJDU1NTdHlsZURlY2xh
cmF0aW9uIikgewotICAgICAgICAkdHlwZU1ha2VyID0gInN0eWxlRGVjbGFyYXRpb24iOwotICAg
IH0gZWxzaWYgKCR0eXBlIGVxICJDU1NTdHlsZVNoZWV0IikgewotICAgICAgICAkdHlwZU1ha2Vy
ID0gIkNTU1N0eWxlU2hlZXQiOwotICAgIH0gZWxzaWYgKCR0eXBlIGVxICJDU1NSdWxlIikgewot
ICAgICAgICAkdHlwZU1ha2VyID0gInJ1bGUiOwotICAgIH0gZWxzaWYgKCR0eXBlIGVxICJDU1NS
dWxlTGlzdCIpIHsKLSAgICAgICAgJHR5cGVNYWtlciA9ICJydWxlTGlzdCI7Ci0gICAgfSBlbHNp
ZiAoJHR5cGUgZXEgIkNTU1ZhbHVlIikgewotICAgICAgICAkdHlwZU1ha2VyID0gInZhbHVlIjsK
LSAgICB9IGVsc2lmICgkdHlwZSBlcSAiQ1NTUHJpbWl0aXZlVmFsdWUiKSB7Ci0gICAgICAgICR0
eXBlTWFrZXIgPSAidmFsdWUiOworICAgIGlmICgkdHlwZSA9fiAvXihIVE1MfENTUykvKSB7Cisg
ICAgICAgICR0eXBlTWFrZXIgPSAkdHlwZTsgCiAgICAgfSBlbHNpZiAoJHR5cGUgZXEgIkRPTUlt
cGxlbWVudGF0aW9uIikgewogICAgICAgICAkdHlwZU1ha2VyID0gIkRPTUltcGxlbWVudGF0aW9u
IjsKICAgICB9IGVsc2lmICgkdHlwZSBlcSAiQ0RBVEFTZWN0aW9uIikgewpAQCAtMzY1LDcgKzMy
OSw3IEBAIHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKIHsKICAgICBteSAkdHlwZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5TdHJpcE1vZHVsZShzaGlmdCk7CiAKLSAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0
b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9y
LT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUpIG9yICR0eXBlIGVxICJVUkwiOwogCiAgICAgaWYgKCR0
eXBlIGVxICJET01TdHJpbmciKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IlBsYXRmb3JtU3Ry
aW5nLmgifSA9IDE7CkBAIC0zODgsNyArMzUyLDYgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQog
ICAgICMgVGVtcCBET01FdmVudHMuaAogICAgIGlmICgkdHlwZSBlcSAiRXZlbnQiKSB7CiAgICAg
ICAgICRpbXBsSW5jbHVkZXN7IkRPTUV2ZW50cy5oIn0gPSAxOwotICAgICAgICAkaW1wbEluY2x1
ZGVzeyJET01FdmVudHNJbnRlcm5hbC5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
dHlwZS5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzk2LDcgKzM1OSw2IEBA
IHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAjIFRlbXAgRE9NVmlld3MuaAogICAgIGlmICgk
dHlwZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01WaWV3cy5o
In0gPSAxOwotICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01WaWV3c0ludGVybmFsLmgifSA9IDE7
CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IiR0eXBlLmgifSA9IDE7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CkBAIC00MDQsNyArMzY2LDYgQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICMg
VGVtcCBET01YUGF0aC5oCiAgICAgaWYgKCR0eXBlIGVxICJYUGF0aEV4cHJlc3Npb24iIG9yICR0
eXBlIGVxICJYUGF0aE5TUmVzb2x2ZXIiIG9yICR0eXBlIGVxICJYUGF0aFJlc3VsdCIpIHsKICAg
ICAgICAgJGltcGxJbmNsdWRlc3siRE9NWFBhdGguaCJ9ID0gMTsKLSAgICAgICAgJGltcGxJbmNs
dWRlc3siRE9NWFBhdGhJbnRlcm5hbC5oIn0gPSAxOwogICAgICAgICAkaW1wbEluY2x1ZGVzeyIk
dHlwZS5oIn0gPSAxOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDIyLDkgKzM4Myw2IEBA
IHN1YiBBZGRJbmNsdWRlc0ZvclR5cGUKICAgICAgICAgJGltcGxJbmNsdWRlc3siQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24uaCJ9ID0gMTsKICAgICB9CiAKLSAgICAjIEFkZCB0eXBlIHNwZWNp
ZmljIGludGVybmFsIHR5cGVzLgotICAgICRpbXBsSW5jbHVkZXN7IkRPTUhUTUxJbnRlcm5hbC5o
In0gPSAxIGlmICR0eXBlID1+IC9eSFRNTC87Ci0KICAgICAjIERlZmF1bHQsIGluY2x1ZGUgdGhl
IHNhbWUgbmFtZWQgZmlsZSAodGhlIGltcGxlbWVudGF0aW9uKSBhbmQgdGhlIHNhbWUgbmFtZSBw
cmVmaXhlZCB3aXRoICJET00iLiAKICAgICAkaW1wbEluY2x1ZGVzeyIkdHlwZS5oIn0gPSAxOwog
ICAgICRpbXBsSW5jbHVkZXN7IkRPTSR0eXBlLmgifSA9IDE7CkBAIC02NDUsMjEgKzYwMyw2IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgJGltcGxJbmNsdWRlc3siJGlt
cGxDbGFzc05hbWUuaCJ9ID0gMTsKICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NSW50ZXJuYWwu
aCJ9ID0gMTsKLQotICAgICAgICAjIGluY2x1ZGUgbW9kdWxlLWRlcGVuZGVudCBpbnRlcm5hbCBp
bnRlcmZhY2VzLgotICAgICAgICBpZiAoJG1vZHVsZSBlcSAiaHRtbCIpIHsKLSAgICAgICAgICAg
ICMgSFRNTCBtb2R1bGUgaW50ZXJuYWwgaW50ZXJmYWNlcwotICAgICAgICAgICAgJGltcGxJbmNs
dWRlc3siRE9NSFRNTEludGVybmFsLmgifSA9IDE7Ci0gICAgICAgIH0gZWxzaWYgKCRtb2R1bGUg
ZXEgImNzcyIpIHsKLSAgICAgICAgICAgICMgQ1NTIG1vZHVsZSBpbnRlcm5hbCBpbnRlcmZhY2Vz
Ci0gICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01DU1NJbnRlcm5hbC5oIn0gPSAxOwotICAg
ICAgICB9IGVsc2lmICgkbW9kdWxlIGVxICJldmVudHMiKSB7Ci0gICAgICAgICAgICAjIEV2ZW50
cyBtb2R1bGUgaW50ZXJuYWwgaW50ZXJmYWNlcwotICAgICAgICAgICAgJGltcGxJbmNsdWRlc3si
RE9NRXZlbnRzSW50ZXJuYWwuaCJ9ID0gMTsKLSAgICAgICAgfSBlbHNpZiAoJG1vZHVsZSBlcSAi
eHBhdGgiKSB7Ci0gICAgICAgICAgICAjIFhQYXRoIG1vZHVsZSBpbnRlcm5hbCBpbnRlcmZhY2Vz
Ci0gICAgICAgICAgICAkaW1wbEluY2x1ZGVzeyJET01YUGF0aEludGVybmFsLmgifSA9IDE7Ci0g
ICAgICAgIH0KICAgICB9CiAKICAgICBAaW1wbENvbnRlbnQgPSAoKTsKQEAgLTY2OSwxMiArNjEy
LDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICBpZiAoJGhhc0Z1bmN0aW9u
c09yQXR0cmlidXRlcykgewogICAgICAgICAjIEFkZCBuYW1lc3BhY2UgdG8gaW1wbGVtZW50YXRp
b24gY2xhc3MgbmFtZSAKLSAgICAgICAgJGltcGxDbGFzc05hbWUgPSAiV2ViQ29yZTo6IiAuICRp
bXBsQ2xhc3NOYW1lOworICAgICAgICBteSAkaW1wbENsYXNzTmFtZVdpdGhOYW1lc3BhY2UgPSAi
V2ViQ29yZTo6IiAuICRpbXBsQ2xhc3NOYW1lOwogCiAgICAgICAgIGlmICgkcGFyZW50SW1wbENs
YXNzTmFtZSBlcSAiT2JqZWN0IikgewogICAgICAgICAgICAgIyBPbmx5IGdlbmVyYXRlICdkZWFs
bG9jJyBhbmQgJ2ZpbmFsaXplJyBtZXRob2RzIGZvciBkaXJlY3Qgc3ViY2xhc3NlcyBvZiBET01P
YmplY3QuCiAKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2RlZmluZSBJTVBMIHJl
aW50ZXJwcmV0X2Nhc3Q8JGltcGxDbGFzc05hbWUqPihfaW50ZXJuYWwpXG5cbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDwk
aW1wbENsYXNzTmFtZVdpdGhOYW1lc3BhY2UqPihfaW50ZXJuYWwpXG5cbiIpOwogCiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIi0gKHZvaWQpZGVhbGxvY1xuIik7CiAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIntcbiIpOwpAQCAtNjkxLDcgKzYzNCw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cblxu
Iik7CiAgICAgICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJDU1NTdHlsZVNoZWV0Iikg
ewogICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgZm9yIENTU1N0eWxlU2hlZXQKLSAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6Q1NTU3R5bGVTaGVldCo+KF9pbnRlcm5hbClcblxuIik7CisgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PCRpbXBsQ2xhc3NO
YW1lV2l0aE5hbWVzcGFjZSo+KF9pbnRlcm5hbClcblxuIik7CiAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICBteSAkaW50ZXJuYWxCYXNlVHlwZTsKICAgICAgICAgICAgIGlmICgkcGFyZW50
SW1wbENsYXNzTmFtZSBlcSAiQ1NTVmFsdWUiKSB7CkBAIC03MDIsNyArNjQ1LDcgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkaW50ZXJuYWxCYXNlVHlwZSA9
ICJXZWJDb3JlOjpOb2RlIgogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDwkaW1wbENsYXNzTmFtZSo+KHJlaW50
ZXJwcmV0X2Nhc3Q8JGludGVybmFsQmFzZVR5cGUqPihfaW50ZXJuYWwpKVxuXG4iKTsKKyAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PCRpbXBs
Q2xhc3NOYW1lV2l0aE5hbWVzcGFjZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8JGludGVybmFsQmFzZVR5
cGUqPihfaW50ZXJuYWwpKVxuXG4iKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNzE5LDE5ICs2
NjIsMTkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRhdHRy
aWJ1dGVUeXBlID0gR2V0T2JqQ1R5cGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAg
ICAgICAgICAgIG15ICRhdHRyaWJ1dGVJc1JlYWRvbmx5ID0gKCRhdHRyaWJ1dGUtPnR5cGUgPX4g
L15yZWFkb25seS8pOwogCi0gICAgICAgICAgICBteSAkaW50ZXJmYWNlTmFtZSA9ICRhdHRyaWJ1
dGVOYW1lOworICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZUludGVyZmFjZU5hbWUgPSAkYXR0cmli
dXRlTmFtZTsKICAgICAgICAgICAgIGlmICgkYXR0cmlidXRlTmFtZSBlcSAiaWQiKSB7CiAgICAg
ICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgYXR0cmlidXRlIGlkIHRvIGJlIGlkTmFtZSB0byBh
dm9pZCBPYmotQyBuYW1laW5nIGNvbmZsaWN0LgotICAgICAgICAgICAgICAgICRpbnRlcmZhY2VO
YW1lIC49ICJOYW1lIjsKKyAgICAgICAgICAgICAgICAkYXR0cmlidXRlSW50ZXJmYWNlTmFtZSAu
PSAiTmFtZSI7CiAgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlTmFtZSBlcSAiZnJhbWUi
KSB7CiAgICAgICAgICAgICAgICAgIyBTcGVjaWFsIGNhc2UgYXR0cmlidXRlIGZyYW1lIHRvIGJl
IGZyYW1lQm9yZGVycy4KLSAgICAgICAgICAgICAgICAkaW50ZXJmYWNlTmFtZSAuPSAiQm9yZGVy
cyI7CisgICAgICAgICAgICAgICAgJGF0dHJpYnV0ZUludGVyZmFjZU5hbWUgLj0gIkJvcmRlcnMi
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAkYXR0cmlidXRlTmFtZXN7JGludGVyZmFj
ZU5hbWV9ID0gMTsKKyAgICAgICAgICAgICRhdHRyaWJ1dGVOYW1lc3skYXR0cmlidXRlSW50ZXJm
YWNlTmFtZX0gPSAxOwogCiAgICAgICAgICAgICAjIC0gR0VUVEVSCi0gICAgICAgICAgICBteSAk
Z2V0dGVyU2lnID0gIi0gKCRhdHRyaWJ1dGVUeXBlKSRpbnRlcmZhY2VOYW1lXG4iOworICAgICAg
ICAgICAgbXkgJGdldHRlclNpZyA9ICItICgkYXR0cmlidXRlVHlwZSkkYXR0cmlidXRlSW50ZXJm
YWNlTmFtZVxuIjsKICAgICAgICAgICAgIG15ICRoYXNHZXR0ZXJFeGNlcHRpb24gPSBAeyRhdHRy
aWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9OwogICAgICAgICAgICAgbXkgJGdldHRlckNvbnRlbnRI
ZWFkID0gIklNUEwtPiRhdHRyaWJ1dGVOYW1lKCI7CiAgICAgICAgICAgICBteSAkZ2V0dGVyQ29u
dGVudFRhaWwgPSAiKSI7CkBAIC03NDksNiArNjkyLDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZVRvRGlzcGxheSA9ICQxOwogICAg
ICAgICAgICAgICAgICRnZXR0ZXJDb250ZW50SGVhZCA9ICJJTVBMLT4kYXR0cmlidXRlVG9EaXNw
bGF5KCkucmVwbGFjZShcJ1xcXFxcJywgW3NlbGYgX2VsZW1lbnRdLT5kb2N1bWVudCgpLT5iYWNr
c2xhc2hBc0N1cnJlbmN5U3ltYm9sKCkiOwogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7
IkRvY3VtZW50LmgifSA9IDE7CisgICAgICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlTmFtZSA9
fiAvXmFic29sdXRlKFx3KylVUkwkLykgeworICAgICAgICAgICAgICAgIG15ICR0eXBlT2ZVUkwg
PSAkMTsKKyAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudEhlYWQgPSAiW3NlbGYgX2dldFVS
TEF0dHJpYnV0ZToiOworICAgICAgICAgICAgICAgIGlmICgkdHlwZU9mVVJMIGVxICJMaW5rIikg
eworICAgICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudFRhaWwgPSAiXEBcImhyZWZcIl0i
OworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCR0eXBlT2ZVUkwgZXEgIkltYWdlIiBhbmQgJGlu
dGVyZmFjZU5hbWUgZXEgIkhUTUxJbWFnZUVsZW1lbnQiKSB7CisgICAgICAgICAgICAgICAgICAg
ICRnZXR0ZXJDb250ZW50VGFpbCA9ICJcQFwic3JjXCJdIjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRE9NUHJpdmF0ZS5oIn0gPSAxOwogICAgICAg
ICAgICAgfSBlbHNpZiAoJHR5cGVNYWtlciBuZSAiIikgewogICAgICAgICAgICAgICAgICMgU3Vy
cm91bmQgZ2V0dGVyIHdpdGggVHlwZU1ha2VyCiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRl
bnRIZWFkID0gIlskYXR0cmlidXRlVHlwZVNhbnNQdHIgJHR5cGVNYWtlcjpXVEY6OmdldFB0cigi
IC4gJGdldHRlckNvbnRlbnRIZWFkOwpAQCAtNzg4LDggKzc0MCw4IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJGhhc1NldHRlckV4Y2VwdGlvbiA9IEB7
JGF0dHJpYnV0ZS0+c2V0dGVyRXhjZXB0aW9uc307CiAKICAgICAgICAgICAgICAgICAkYXR0cmli
dXRlTmFtZSA9ICJzZXQiIC4gdWNmaXJzdCgkYXR0cmlidXRlTmFtZSk7Ci0gICAgICAgICAgICAg
ICAgbXkgJHNldHRlck5hbWUgPSAic2V0IiAuIHVjZmlyc3QoJGludGVyZmFjZU5hbWUpOwotICAg
ICAgICAgICAgICAgIG15ICRhcmdOYW1lID0gIm5ldyIgLiB1Y2ZpcnN0KCRpbnRlcmZhY2VOYW1l
KTsKKyAgICAgICAgICAgICAgICBteSAkc2V0dGVyTmFtZSA9ICJzZXQiIC4gdWNmaXJzdCgkYXR0
cmlidXRlSW50ZXJmYWNlTmFtZSk7CisgICAgICAgICAgICAgICAgbXkgJGFyZ05hbWUgPSAibmV3
IiAuIHVjZmlyc3QoJGF0dHJpYnV0ZUludGVyZmFjZU5hbWUpOwogCiAgICAgICAgICAgICAgICAg
IyBGSVhNRTogc2hvdWxkIG1vdmUgdGhpcyBvdXQgaW50byBpdCdzIG93biBmdWN0aW9uIHRvIHNo
YXJlIHdpdGgKICAgICAgICAgICAgICAgICAjIHRoZSBzaW1pbGFyIGZ1bmN0aW9uIHBhcmFtZXRl
ciBjb2RlIGJlbG93LgpAQCAtODQwLDcgKzc5Miw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAKICAgICAgICAgICAgIG15IEBwYXJhbWV0ZXJOYW1lcyA9ICgpOwogICAgICAgICAgICAg
bXkgQG5lZWRzQXNzZXJ0ID0gKCk7Ci0gICAgICAgICAgICBteSAlY3VzdG9tID0gKCk7CisgICAg
ICAgICAgICBteSAlbmVlZHNDdXN0b20gPSAoKTsKIAogICAgICAgICAgICAgbXkgJHBhcmFtZXRl
ckluZGV4ID0gMDsKICAgICAgICAgICAgIG15ICRmdW5jdGlvblNpZyA9ICItICgkcmV0dXJuVHlw
ZSkkZnVuY3Rpb25OYW1lIjsKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9XZWJDb3JlRnJhbWVC
cmlkZ2UubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvbWFjL1dlYkNvcmVGcmFtZUJy
aWRnZS5tbQkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvV2ViQ29yZUZy
YW1lQnJpZGdlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjIxLDcgKzIyMjEsNyBAQCBzdGF0aWMg
SFRNTEZvcm1FbGVtZW50ICpmb3JtRWxlbWVudEZyb21ECiB7CiAgICAgaWYgKCFtX2ZyYW1lIHx8
ICFtX2ZyYW1lLT50eXBpbmdTdHlsZSgpKQogICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVy
biBbRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBfc3R5bGVEZWNsYXJhdGlvbldpdGg6bV9mcmFtZS0+
dHlwaW5nU3R5bGUoKS0+Y29weSgpLmdldCgpXTsKKyAgICByZXR1cm4gW0RPTUNTU1N0eWxlRGVj
bGFyYXRpb24gX0NTU1N0eWxlRGVjbGFyYXRpb25XaXRoOm1fZnJhbWUtPnR5cGluZ1N0eWxlKCkt
PmNvcHkoKS5nZXQoKV07CiB9CiAKIC0gKHZvaWQpc2V0VHlwaW5nU3R5bGU6KERPTUNTU1N0eWxl
RGVjbGFyYXRpb24gKilzdHlsZSB3aXRoVW5kb0FjdGlvbjooV2ViVW5kb0FjdGlvbil1bmRvQWN0
aW9uCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwJKHJldmlzaW9uIDE2MjI4KQor
KysgV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
NDYsNiArNDYsOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBE
T01TdHJpbmcgcHJvdG9jb2w7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
c2VhcmNoOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRleHQ7CisgICAg
ICAgIAorICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb246CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gVVJMIGFic29sdXRlTGlua1VSTDsKICAgICB9OwogCiB9
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbAkocmV2aXNpb24gMTYyMjgpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEFyZWFFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjks
NyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgc2hhcGU7CiAg
ICAgICAgIGF0dHJpYnV0ZSBsb25nIHRhYkluZGV4OwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIHRhcmdldDsKLSAgICAgICAgCisKICAgICAgICAgLy8gSUUgRXh0ZW5zaW9ucwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGhhc2g7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaG9zdDsKQEAgLTM4LDYgKzM4LDkgQEAgbW9kdWxlIGh0bWwgewog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBvcnQ7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgcHJvdG9jb2w7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgc2VhcmNoOworCisgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lv
bjoKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFeGNsdWRlPUpTXSBVUkwgYWJzb2x1dGVM
aW5rVVJMOwogICAgIH07CiAKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5pZGwJKHJl
dmlzaW9uIDE2MjI4KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNyw1ICszNyw5IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGJvb2xlYW4gY29tcGxldGU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nIHg7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIHk7CisgICAgICAgIAor
ICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRlbnNpb246CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbRXhjbHVkZT1KU10gRE9NU3RyaW5nIGFsdERpc3BsYXlTdHJpbmc7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gVVJMIGFic29sdXRlSW1hZ2VVUkw7CiAgICAg
fTsKIH0KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlzaW9uIDE2MjI4KQor
KysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC00
NSwxNCArNDUsMTggQEAgbW9kdWxlIGh0bWwgewogICAgICAgICB2b2lkICAgIHNlbGVjdCgpOwog
ICAgICAgICB2b2lkICAgIGNsaWNrKCk7CiAgICAgICAgIAotICAgICAgICAgICAgICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiBpbmRldGVybWluYXRlOyAvLyBXaW5JRSBleHRlbnNpb24KKyAgICAgICAg
Ly8gV2luSUUgZXh0ZW5zaW9uOgorICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBp
bmRldGVybWluYXRlOwogICAgICAgICAKICAgICAgICAgLy8gV2luSUUgJiBGaXJlRm94IGV4dGVu
c2lvbjoKICAgICAgICAgCiAgICAgICAgIC8vIEhhbmRsZWQgYnkgSlNIVE1MSW5wdXRFbGVtZW50
QmFzZSB0byBhbGxvdyBoaWRpbmcgYmFzZWQgb24gaW5wdXQgdHlwZQotICAgICAgICBhdHRyaWJ1
dGUgW0V4Y2x1ZGU9SlNdIGxvbmcgc2VsZWN0aW9uU3RhcnQ7Ci0gICAgICAgIGF0dHJpYnV0ZSBb
RXhjbHVkZT1KU10gbG9uZyBzZWxlY3Rpb25FbmQ7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBbRXhjbHVkZT1KU10gbG9uZyBzZWxlY3Rpb25TdGFydDsKKyAgICAgICAgICAgICAgICAgYXR0
cmlidXRlIFtFeGNsdWRlPUpTXSBsb25nIHNlbGVjdGlvbkVuZDsKICAgICAgICAgW0V4Y2x1ZGU9
SlNdIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gbG9uZyBzdGFydCwgaW4gbG9uZyBlbmQpOwor
CisgICAgICAgIC8vIE9iamVjdGl2ZS1DIGV4dGVuc2lvbjoKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtFeGNsdWRlPUpTXSBET01TdHJpbmcgYWx0RGlzcGxheVN0cmluZzsKICAgICB9Owog
CiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAkocmV2aXNpb24gMTYyMjgpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSAr
MzAsMTIgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBhdHRyaWJ1dGUgIERPTVN0cmluZyAgICAg
ICAgICAgIHJldjsKICAgICAgICAgYXR0cmlidXRlICBET01TdHJpbmcgICAgICAgICAgICB0YXJn
ZXQ7CiAgICAgICAgIGF0dHJpYnV0ZSAgRE9NU3RyaW5nICAgICAgICAgICAgdHlwZTsKLSAgICAg
ICAgCisKICAgICAgICAgLy8gRE9NIExldmVsIDIgU3R5bGUKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFN0eWxlU2hlZXQgICBzaGVldDsKKworICAgICAgICAvLyBPYmplY3RpdmUtQyBleHRl
bnNpb246CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gVVJMIGFic29s
dXRlTGlua1VSTDsKICAgICB9OwogCiB9Cg==
</data>
<flag name="review"
          id="3322"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>