<?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>227735</bug_id>
          
          <creation_ts>2021-07-06 21:45:20 -0700</creation_ts>
          <short_desc>Add WKHoverPlatter and some knobs to tweak its appearance</short_desc>
          <delta_ts>2021-07-07 23:46:59 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775206</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 21:45:20 -0700</bug_when>
    <thetext>Add WKHoverPlatter and some knobs to tweak its appearance</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775207</commentid>
    <comment_count>1</comment_count>
      <attachid>433008</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 21:46:37 -0700</bug_when>
    <thetext>Created attachment 433008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775208</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 21:46:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/79198262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775209</commentid>
    <comment_count>3</comment_count>
      <attachid>433009</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 22:05:00 -0700</bug_when>
    <thetext>Created attachment 433009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775213</commentid>
    <comment_count>4</comment_count>
      <attachid>433012</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 22:30:10 -0700</bug_when>
    <thetext>Created attachment 433012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775214</commentid>
    <comment_count>5</comment_count>
      <attachid>433013</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 23:01:15 -0700</bug_when>
    <thetext>Created attachment 433013
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775228</commentid>
    <comment_count>6</comment_count>
      <attachid>433018</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-06 23:59:01 -0700</bug_when>
    <thetext>Created attachment 433018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775229</commentid>
    <comment_count>7</comment_count>
      <attachid>433019</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-07 00:23:13 -0700</bug_when>
    <thetext>Created attachment 433019
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775426</commentid>
    <comment_count>8</comment_count>
      <attachid>433019</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-07-07 13:36:48 -0700</bug_when>
    <thetext>Comment on attachment 433019
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=433019&amp;action=review

&gt; Source/WebKit/UIProcess/ios/WKHoverPlatter.mm:40
&gt; +        RetainPtr&lt;CASpringAnimation&gt; spring = adoptNS([[CASpringAnimation alloc] init]);

auto?

&gt; Source/WebKit/UIProcess/ios/WKHoverPlatter.mm:49
&gt; +    RetainPtr&lt;CABasicAnimation&gt; ease = adoptNS([[CABasicAnimation alloc] init]);

auto?

&gt; Source/WebKit/UIProcess/ios/WKHoverPlatter.mm:58
&gt; +    RetainPtr&lt;CABasicAnimation&gt; animation = createBaseAnimation();

auto?

&gt; Source/WebKit/UIProcess/ios/WKHoverPlatter.mm:189
&gt; +    RetainPtr&lt;CGPathRef&gt; inflatedPath = WebCore::PathUtilities::pathWithShrinkWrappedRects(inflatedIndicatedRects, parameters.platterCornerRadius).platformPath();

auto?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775539</commentid>
    <comment_count>9</comment_count>
      <attachid>433096</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-07 17:24:06 -0700</bug_when>
    <thetext>Created attachment 433096
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775607</commentid>
    <comment_count>10</comment_count>
      <attachid>433117</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-07-07 21:49:30 -0700</bug_when>
    <thetext>Created attachment 433117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775620</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-07 23:46:57 -0700</bug_when>
    <thetext>Committed r279711 (239503@main): &lt;https://commits.webkit.org/239503@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433117.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433008</attachid>
            <date>2021-07-06 21:46:37 -0700</date>
            <delta_ts>2021-07-06 22:08:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210706214635.patch</filename>
            <type>text/plain</type>
            <size>51122</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2Qy
ZmMwZTM0ZDZiMjI0ZmY5YjVhNjk5NDMuLmI1MWJkNTZhZTc1ZGNhZTBkMTYwZGYxMTUyMGI1NGJl
NjYzNTFlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0
dGVyIGFuZCBzb21lIGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc5MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaDogQWRkZWQuCisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcm9vdENvbnRlbnRWaWV3XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRV
cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0
aW9uXSk6CisgICAgICAgIEluc3RhbGwgYW5kIHVuaW5zdGFsbCB0aGUgcGxhdHRlciBhbG9uZ3Np
ZGUgdGhlIGdlc3R1cmVzIHRoYXQgZHJpdmUgaXQuCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBtb3VzZUdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBob3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDpdKToKKyAgICAgICAgV2hlbiB0aGUg
Z2VzdHVyZSByZWNvZ25pemVycyBmaXJlLCBhbHNvIHVwZGF0ZSB0aGUgaG92ZXIgcG9pbnQuCisK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb3NpdGlvbkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0
dGVyOndpdGhSZXF1ZXN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0hvdmVyUGxhdHRlci5tbTogQWRkZWQuCisgICAgICAgIChjcmVhdGVCYXNlQW5pbWF0aW9uKToK
KyAgICAgICAgKGFkZEFuaW1hdGlvbik6CisgICAgICAgIChzZXRBZGRpdGlvbmFsUGxhdHRlckxh
eWVyUHJvcGVydGllcyk6CisgICAgICAgIChhZGRBZGRpdGlvbmFsSW5jb21pbmdBbmltYXRpb25z
KToKKyAgICAgICAgKGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKToKKyAgICAgICAg
KC1bV0tIb3ZlclBsYXR0ZXIgaW5pdFdpdGhWaWV3OmRlbGVnYXRlOl0pOgorICAgICAgICAoLVtX
S0hvdmVyUGxhdHRlciBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgc2V0SG92ZXJQb2ludDpdKToK
KyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb25Gb3JD
dXJyZW50SG92ZXJQb2ludF0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaWRSZWNlaXZl
UG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlzbWlz
c1BsYXR0ZXJXaXRoQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaWRG
aW5pc2hBbmltYXRpb25Gb3JTaGFkb3c6XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGNs
ZWFyTGF5ZXJzXSk6CisgICAgICAgIEFuaW1hdGUgdGhlIHBsYXR0ZXIgaW4gYW5kIG91dCwgYW5k
IG9wdGlvbmFsbHkgYmV0d2VlbiBzdGF0ZXMsIGFzIHRoZSBob3ZlciBwb2ludCBtb3Zlcy4KKyAg
ICAgICAgVXNlIHRoZSBUZXh0SW5kaWNhdG9yJ3MgZ2VvbWV0cnkgaW5mb3JtYXRpb24sIGJ1dCBu
b3QgaXRzIHNuYXBzaG90OyB3ZSB1c2UgYQorICAgICAgICBDQVBvcnRhbExheWVyIGZvciB0aGUg
cGxhdHRlciBpbnN0ZWFkLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGF2b2lkIHRha2luZyB0aGUgc25h
cHNob3QKKyAgICAgICAgZW50aXJlbHksIHNpbmNlIHdlIGNhbGwgc2V0SG92ZXJQb2ludCAoYW5k
IHRodXMgZ2VuZXJhdGUgYSBUZXh0SW5kaWNhdG9yKSBhICpsb3QqCisgICAgICAgIHdoZW4gbW92
aW5nIHRoZSBtb3VzZSBhcm91bmQsIGFuZCBhbGwgdGhvc2Ugc25hcHNob3RzIGFkZCB1cC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bUFRTbGlkZXJSb3cgaW50ZWdlck1pblZhbHVlOm1heFZhbHVlOl0p
OgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgc2V0RGVmYXVsdFZhbHVlc10p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgc2V0dGluZ3NDb250cm9sbGVy
TW9kdWxlXSk6CisgICAgICAgICgrW1dLSG92ZXJQbGF0dGVyRG9tYWluIHJvb3RTZXR0aW5nc10p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiBkb21haW5Hcm91cE5hbWVdKToKKyAg
ICAgICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluTmFtZV0pOgorICAgICAgICAoK1tX
S0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NDbGFzc10pOgorICAgICAgICBBZGQgc29t
ZSBrbm9icywgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLCBmb3IgZXhwZXJpbWVudGF0aW9uLgor
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDct
MDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBUYWtlIGEgcHJv
Y2VzcyBhc3NlcnRpb24gaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGhvbGRpbmcgbG9ja2Vk
IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmlu
ZGV4IDlmN2NjZTUxMzdjZTZmZmYyNGMwNWI2NzYxNmMwZDYwZjNmMWVhNTEuLmRkZjgwYjYyNDZl
ODcwZjQ2NjdmMDQyMDczOTRjZTA3NTMyNjY0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC05Myw2ICs5Myw5IEBAIFdLX1BERktJVF9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvcltzZGs9aXBob25lKjExLipdID0gOwogV0tfUERGS0lUX0xERkxB
R1NfbWFjY2F0YWx5c3QgPSAkKFdLX1BERktJVF9MREZMQUdTX21hY2NhdGFseXN0JChXS19NQUNP
U18xMTAwKSk7CiBXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdF9NQUNPU19TSU5DRV8xMTAw
ID0gJChXS19QREZLSVRfTERGTEFHU19pcGhvbmVvcyk7CiAKK1dLX1BST1RPVFlQRV9UT09MU19M
REZMQUdTID0gJChXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7
CitXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBQcm90
b3R5cGVUb29sczsKKwogV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTID0gJChXS19TQUZFX0JST1dT
SU5HX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TQUZFX0JST1dTSU5HX0xERkxB
R1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKIFdLX1NBRkVfQlJP
V1NJTkdfTERGTEFHU19pcGhvbmVvc1tzZGs9aXBob25lKjEwLipdID0gOwpAQCAtMTQzLDcgKzE0
Niw3IEBAIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNjYXRhbHlzdCA9IC1sbmV0
d29ya2V4dGVuc2lvbjsKIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNvc3ggPSAt
d2Vha19saWJyYXJ5IC91c3IvbGliL2xpYm5ldHdvcmtleHRlbnNpb24uZHlsaWI7CiBXS19MSUJO
RVRXT1JLRVhURU5TSU9OX0xERkxBR1NfdHZvcyA9IDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZ
X0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVk
aW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJh
bWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8g
LWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExl
Z2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFH
UykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykg
JChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1Mp
ICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BS
RURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJ
Q1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQo
V0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklM
RV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChX
S19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdL
X1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CitGUkFN
RVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAt
ZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsg
Q29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1m
cmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1m
cmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUND
RVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9T
RVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZM
QUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERG
TEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRF
TlNJT05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xE
RkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VT
VEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19M
REZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZB
Q0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElG
SUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVD
VE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBD
Kysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVs
ZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVk
IGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0
OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVh
bUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19z
dHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNf
MTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Vk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1J
Y05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3Ry
ZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Q
cm90b3R5cGVUb29sc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1Byb3Rv
dHlwZVRvb2xzU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk4OWUxODZiMmQ2MjU5MGI3MGRlN2JmNGQ5NTY1
NzIwYzJjMmMwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9Qcm90b3R5cGVUb29sc1NQSS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8UHJvdG90eXBlVG9vbHMvUHJv
dG90eXBlVG9vbHMuaD4KKworI2Vsc2UKKworQGludGVyZmFjZSBQVFNldHRpbmdzIDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KK0BlbmQKKworQGludGVyZmFjZSBQVERvbWFpbiA6IE5TT2JqZWN0Cisr
IChfX2tpbmRvZiBQVFNldHRpbmdzICopcm9vdFNldHRpbmdzOworQGVuZAorCitAaW50ZXJmYWNl
IFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsKKysgKFBUU2VjdGlv
biAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGU7CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSb3cgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1Nl
Y3VyZUNvZGluZz4KKysgKGluc3RhbmNldHlwZSlyb3dXaXRoVGl0bGU6KE5TU3RyaW5nICopc3Rh
dGljVGl0bGUgdmFsdWVLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGg7CistIChpZCl2YWx1ZVZh
bGlkYXRvcjooaWQoXikoaWQgcHJvcG9zZWRWYWx1ZSwgaWQgc2V0dGluZ3MpKXZhbGlkYXRvcjsK
Ky0gKGlkKWNvbmRpdGlvbjooTlNQcmVkaWNhdGUgKiljb25kaXRpb247CitAZW5kCisKK0BpbnRl
cmZhY2UgUFRTUm93IDogUFRSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFN3aXRjaFJvdyA6IFBU
U1JvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IDogUFRTUm93CistIChpZCltaW5W
YWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZTsKK0BlbmQK
KworQGludGVyZmFjZSBQVEJ1dHRvblJvdyA6IFBUU1JvdworKyAoaW5zdGFuY2V0eXBlKXJvd1dp
dGhUaXRsZTooTlNTdHJpbmcgKilzdGF0aWNUaXRsZSBhY3Rpb246KFBUUm93QWN0aW9uICopYWN0
aW9uOworQGVuZAorCitAaW50ZXJmYWNlIFBUUm93QWN0aW9uIDogTlNPYmplY3QKK0BlbmQKKwor
QGludGVyZmFjZSBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gOiBQVFJvd0FjdGlv
bgorKyAoaW5zdGFuY2V0eXBlKWFjdGlvbjsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggNDA1MGM0MDNjNDZkNTY0YzJlOTgzYzVmMjY1NTUxYzY5NzVjZThmZC4uZTZm
NmMwZGI3ZDJhNjE5MDA5OGNkZjg5NzFmMmJjMDIzYjJmZjgzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNDg5LDYgKzQ4OSw4IEBAIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
IFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2lu
Lm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
bW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzLm1tCiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRv
ci5tbQogVUlQcm9jZXNzL2lvcy9XS01vZGVsSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5t
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggMDk1
MDg2Y2QxZjlkNWY2OWY3YTdhZTE5OGVmOWE5ZmNlMGM0YmZmMC4uNzYwNjU5MDQ3ZDFhYTJiNWRm
N2FlZTQwZDE0MTRkYTM5YTQxNmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5oCkBAIC05NCw2ICs5NCw3IEBAIGVudW0gY2xhc3MgVmlld1N0YWJpbGl0
eUZsYWcgOiB1aW50OF90OwogLSAodm9pZClfd2ViVmlld0Rlc3Ryb3llZDsKIAogLSAoV0tXZWJW
aWV3ICopd2ViVmlldzsKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldzsKIAogLSAoc3RkOjp1
bmlxdWVfcHRyPFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURyYXdpbmdBcmVhUHJv
eHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jilwcm9jZXNzOwogLSAodm9pZClfcHJvY2Vzc0Rp
ZEV4aXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmlu
ZGV4IDZiMDQ5YjQwN2IxMjFlODkzMDQyZGYzOWExNTFmYzk2MjkxMGVhMmQuLjljOTYzMWIxODBm
NmQ1MjNhMzk3MDVjNzNlNDBlMjA4ZjZmZGQxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0zMjYsNiArMzI2LDExIEBAIC0gKFdLV2ViVmll
dyAqKXdlYlZpZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7CiB9CiAK
Ky0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldworeworICAgIHJldHVybiBfcm9vdENvbnRlbnRW
aWV3LmdldCgpOworfQorCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3
V2luZG93CiB7CiAgICAgW3N1cGVyIHdpbGxNb3ZlVG9XaW5kb3c6bmV3V2luZG93XTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCAzNTZiMzMzMjYyOGVlMWM1MmVhZjZhY2UwZDAwM2M4MGM1YjYxOWI0Li4wNWJh
ZjY2MWYwZjVkNDcxZTkzOGJjZDQwMjRmNTI0OGExM2ZmMDMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0z
OSw2ICszOSw3IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgiCiAjaW1wb3J0
ICJUcmFuc2FjdGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tIb3Zl
clBsYXR0ZXIuaCIKICNpbXBvcnQgPFdlYktpdC9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tBaXJQbGF5Um91dGVQaWNrZXIuaD4KICNpbXBvcnQgPFdlYktpdC9X
S0NvbnRhY3RQaWNrZXIuaD4KQEAgLTI5NSw2ICsyOTYsMTAgQEAgdXNpbmcgSW1hZ2VBbmFseXNp
c1JlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVz
dElkZW4KICAgICBSZXRhaW5QdHI8V0tIb3Zlckdlc3R1cmVSZWNvZ25pemVyPiBfaG92ZXJHZXN0
dXJlUmVjb2duaXplcjsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBP
UlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgUmV0YWluUHRyPFdL
SG92ZXJQbGF0dGVyPiBfaG92ZXJQbGF0dGVyOworI2VuZGlmCisKICNpZiBIQVZFKFBFTkNJTEtJ
VF9URVhUX0lOUFVUKQogICAgIFJldGFpblB0cjxVSUluZGlyZWN0U2NyaWJibGVJbnRlcmFjdGlv
bj4gX3NjcmliYmxlSW50ZXJhY3Rpb247CiAjZW5kaWYKQEAgLTUyNiw2ICs1MzEsNyBAQCB1c2lu
ZyBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdl
QW5hbHlzaXNSZXF1ZXN0SWRlbgogICAgICwgVUlEcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZSwgVUlE
cm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZQogI2VuZGlmCiAgICAgLCBXS1RvdWNoQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXJEZWxlZ2F0ZQorICAgICwgV0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZQogPgogCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQgbGFzdEludGVyYWN0aW9uTG9j
YXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAzN2U2YjM3OWNiZjJjN2ZkNGI5MmU4YWViMjc1NDM1
ZjM3NDg4ZjQwLi4xZDdjYTU5NDRmOGZmNGM5MTdmZjhkOGM1ZjU5ZWNmMjliZDhkYjNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTU2LDYgKzU2LDggQEAKICNpbXBvcnQgIldLRm9ybVNlbGVjdENvbnRy
b2wuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSGlnaGxp
Z2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVy
LmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLSW1h
Z2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS0ltYWdlUHJldmlld1Zp
ZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVj
b2duaXplci5oIgpAQCAtMTI4LDYgKzEzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VUSVV0aWxp
dGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJF
eHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V2ViVGV4dEluZGljYXRvckxheWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdEaXJlY3Rp
b24uaD4KQEAgLTEzNiw2ICsxMzksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9EYXRhRGV0
ZWN0b3JzQ29yZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2aWNlc1NQ
SS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdTUEkuaD4KKyNp
bXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9p
b3MvRGF0YURldGVjdG9yc1VJU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFwaGljc1Nl
cnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJhdGlvblNQ
SS5oPgpAQCAtODk0LDYgKzg5OCwxMCBAQCAtICh2b2lkKXNldFVwSW50ZXJhY3Rpb24KICAgICBb
c2VsZiBzZXRVcEhvdmVyR2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpF
UikKKyAgICBfaG92ZXJQbGF0dGVyID0gYWRvcHROUyhbW1dLSG92ZXJQbGF0dGVyIGFsbG9jXSBp
bml0V2l0aFZpZXc6c2VsZi5yb290Q29udGVudFZpZXcgZGVsZWdhdGU6c2VsZl0pOworI2VuZGlm
CisKICNpZiBIQVZFKExPT0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgX2xvb2t1cEdlc3R1
cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW19VSUxvb2t1cEdlc3R1cmVSZWNvZ25pemVyIGFsbG9j
XSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2xvb2t1cEdlc3R1cmVSZWNv
Z25pemVkOildKTsKICAgICBbX2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNl
bGZdOwpAQCAtMTA4MSw2ICsxMDg5LDExIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0aW9uCiAg
ICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2hvdmVyR2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCldOwogI2VuZGlmCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwg
RU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hvdmVyUGxhdHRlciBpbnZh
bGlkYXRlXTsKKyAgICBfaG92ZXJQbGF0dGVyID0gbmlsOworI2VuZGlmCisKICNpZiBIQVZFKExP
T0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgW19sb29rdXBHZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9sb29r
dXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC00NzQwLDYgKzQ3NTMsMTAgQEAgLSAodm9p
ZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogICAgIF9hY3RpdmVUZXh0SW50ZXJhY3Rpb25D
b3VudCA9IDA7CiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0b3JTdGF0
ZVVwZGF0ZSA9IE5POwogICAgIFtzZWxmIF9pbnZhbGlkYXRlQ3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb25dOworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShI
T1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgW19ob3ZlclBsYXR0ZXIgZGlzbWlzc1BsYXR0
ZXJXaXRoQW5pbWF0aW9uOk5PXTsKKyNlbmRpZgogfQogCiAjaWYgIVVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpCkBAIC05NTAyLDYgKzk1MTksOCBAQCAtICh2b2lkKW1vdXNlR2VzdHVyZVJl
Y29nbml6ZXJDaGFuZ2VkOihXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2du
aQogICAgICAgICBbc2VsZi53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICAgICBfcGFnZS0+aGFu
ZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290
U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JNb3VzZSkKKyAgICAgICAgW19ob3ZlclBsYXR0ZXIg
c2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKIC0gKHZvaWQpX2NvbmZpZ3Vy
ZU1vdXNlR2VzdHVyZVJlY29nbml6ZXIKQEAgLTk1MzYsMTAgKzk1NTUsMjEgQEAgLSAodm9pZClo
b3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDooV0tIb3Zlckdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbmkKICAgICAgICAgcmV0dXJuOwogCiAgICAgX3BhZ2UtPmhhbmRsZU1vdXNl
RXZlbnQoKmV2ZW50KTsKKyAgICBpZiAoV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdz
LnBsYXR0ZXJFbmFibGVkRm9ySG92ZXIpCisgICAgICAgIFtfaG92ZXJQbGF0dGVyIHNldEhvdmVy
UG9pbnQ6ZXZlbnQtPnBvc2l0aW9uKCldOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEhPVkVSX0dF
U1RVUkVfUkVDT0dOSVpFUikKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8
fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCistICh2b2lkKXBvc2l0aW9uSW5m
b3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92ZXJQbGF0dGVyICopaG92ZXJQbGF0dGVyIHdp
dGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JilyZXF1ZXN0
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtzZWxmIGRvQWZ0ZXJQb3Np
dGlvbkluZm9ybWF0aW9uVXBkYXRlOmNvbXBsZXRpb25IYW5kbGVyIGZvclJlcXVlc3Q6cmVxdWVz
dF07Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRFWFRfTUVO
VVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKV9zaG93TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczooVmVjdG9y
PFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29tcGxldGlv
bkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250cm9sc0Nv
bnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5Y2Q2YmY0ZjJjMjJh
MTAwZjQxMjM0MGM1ZmM2YTMwNzQ1ZWNmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9W
RVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCitAY2xhc3MgV0tIb3ZlclBsYXR0ZXI7CisKK0Bwcm90
b2NvbCBXS0hvdmVyUGxhdHRlckRlbGVnYXRlCisKK0ByZXF1aXJlZAorLSAodm9pZClwb3NpdGlv
bkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0dGVyOihXS0hvdmVyUGxhdHRlciAqKWhvdmVyUGxhdHRl
ciB3aXRoUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYpcmVx
dWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworQGludGVyZmFj
ZSBXS0hvdmVyUGxhdHRlciA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZp
ZXc6KFVJVmlldyAqKXZpZXcgZGVsZWdhdGU6KGlkIDxXS0hvdmVyUGxhdHRlckRlbGVnYXRlPilk
ZWxlZ2F0ZTsKKworLSAodm9pZClkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246KEJPT0wpd2l0
aEFuaW1hdGlvbjsKKworLSAodm9pZClpbnZhbGlkYXRlOworCitAcHJvcGVydHkgKG5vbmF0b21p
YywgYXNzaWduKSBXZWJDb3JlOjpGbG9hdFBvaW50IGhvdmVyUG9pbnQ7CisKK0BlbmQKKworI2Vu
ZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VT
VFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLSG92ZXJQbGF0dGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQ
bGF0dGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU0NzViMGM1YzAwMTRjZjA5MTRhZWEyZTY4NzBjZTMxNGI3
ODk2ZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tI
b3ZlclBsYXR0ZXIubW0KQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyLmgiCisKKyNpZiBIQVZFKFVJS0lUX1dJ
VEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKwor
I2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxXZWJDb3JlL1Bh
dGhVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4K
KyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorCitzdGF0aWMgUmV0YWlu
UHRyPENBQmFzaWNBbmltYXRpb24+IGNyZWF0ZUJhc2VBbmltYXRpb24oKQoreworICAgIGF1dG8g
cGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBpZiAo
cGFyYW1ldGVycy51c2VTcHJpbmcpIHsKKyAgICAgICAgUmV0YWluUHRyPENBU3ByaW5nQW5pbWF0
aW9uPiBzcHJpbmcgPSBhZG9wdE5TKFtbQ0FTcHJpbmdBbmltYXRpb24gYWxsb2NdIGluaXRdKTsK
KyAgICAgICAgW3NwcmluZyBzZXRNYXNzOnBhcmFtZXRlcnMuc3ByaW5nTWFzc107CisgICAgICAg
IFtzcHJpbmcgc2V0U3RpZmZuZXNzOnBhcmFtZXRlcnMuc3ByaW5nU3RpZmZuZXNzXTsKKyAgICAg
ICAgW3NwcmluZyBzZXREYW1waW5nOnBhcmFtZXRlcnMuc3ByaW5nRGFtcGluZ107CisgICAgICAg
IFtzcHJpbmcgc2V0RmlsbE1vZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOworICAgICAgICBbc3By
aW5nIHNldER1cmF0aW9uOltzcHJpbmcgc2V0dGxpbmdEdXJhdGlvbl1dOworICAgICAgICByZXR1
cm4gc3ByaW5nOworICAgIH0KKworICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiBlYXNl
ID0gYWRvcHROUyhbW0NBQmFzaWNBbmltYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbZWFzZSBz
ZXRGaWxsTW9kZTprQ0FGaWxsTW9kZUJhY2t3YXJkc107CisgICAgW2Vhc2Ugc2V0RHVyYXRpb246
cGFyYW1ldGVycy5kdXJhdGlvbl07CisgICAgW2Vhc2Ugc2V0VGltaW5nRnVuY3Rpb246W0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25F
YXNlSW5dXTsKKyAgICByZXR1cm4gZWFzZTsKK30KKworc3RhdGljIHZvaWQgYWRkQW5pbWF0aW9u
KENBTGF5ZXIgKmxheWVyLCBOU1N0cmluZyAqa2V5LCBpZCBmcm9tVmFsdWUsIGlkIHRvVmFsdWUp
Cit7CisgICAgUmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IGFuaW1hdGlvbiA9IGNyZWF0ZUJh
c2VBbmltYXRpb24oKTsKKyAgICBbYW5pbWF0aW9uIHNldEtleVBhdGg6a2V5XTsKKyAgICBbYW5p
bWF0aW9uIHNldEZyb21WYWx1ZTpmcm9tVmFsdWVdOworICAgIFthbmltYXRpb24gc2V0VG9WYWx1
ZTp0b1ZhbHVlXTsKKyAgICBbbGF5ZXIgc2V0VmFsdWU6dG9WYWx1ZSBmb3JLZXk6a2V5XTsKKyAg
ICBbbGF5ZXIgYWRkQW5pbWF0aW9uOmFuaW1hdGlvbi5nZXQoKSBmb3JLZXk6a2V5XTsKK307CisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dL
SG92ZXJQbGF0dGVyQWRkaXRpb25zLm1tPgorI2Vsc2UKK3N0YXRpYyBDR0Zsb2F0IHNldEFkZGl0
aW9uYWxQbGF0dGVyTGF5ZXJQcm9wZXJ0aWVzKENBTGF5ZXIgKikgeyByZXR1cm4gMDsgfQorc3Rh
dGljIHZvaWQgYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyhDQUxheWVyICosIENHRmxv
YXQpIHsgfQorc3RhdGljIHZvaWQgYWRkQWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMoQ0FM
YXllciAqKSB7IH0KKyNlbmRpZgorCitAaW1wbGVtZW50YXRpb24gV0tIb3ZlclBsYXR0ZXIgewor
ICAgIF9fd2VhayBVSVZpZXcgKl92aWV3OworICAgIF9fd2VhayBpZCA8V0tIb3ZlclBsYXR0ZXJE
ZWxlZ2F0ZT4gX2RlbGVnYXRlOworICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgX2hvdmVyUG9pbnQ7
CisKKyAgICBCT09MIF9oYXNPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Owor
ICAgIEJPT0wgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7CisKKyAgICBC
T09MIF9pc1NpdHRpbmdEb3duOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IF9sYXN0SG92ZXJC
b3VuZHM7CisKKyAgICBSZXRhaW5QdHI8Q0FTaGFwZUxheWVyPiBfbGFzdE1hc2tMYXllcjsKKyAg
ICBSZXRhaW5QdHI8Q0FMYXllcj4gX2xhc3RTaGFkb3dMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gX2xhc3RQbGF0dGVyTGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0QmFj
a2dyb3VuZExheWVyOworICAgIFJldGFpblB0cjxDQVBvcnRhbExheWVyPiBfbGFzdFNuYXBzaG90
TGF5ZXI7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXcg
ZGVsZWdhdGU6KGlkIDxXS0hvdmVyUGxhdHRlckRlbGVnYXRlPilkZWxlZ2F0ZQoreworICAgIGF1
dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBp
ZiAoIXBhcmFtZXRlcnMucGxhdHRlckVuYWJsZWRGb3JNb3VzZSAmJiAhcGFyYW1ldGVycy5wbGF0
dGVyRW5hYmxlZEZvckhvdmVyKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBf
dmlldyA9IHZpZXc7CisgICAgX2RlbGVnYXRlID0gZGVsZWdhdGU7CisKKyAgICByZXR1cm4gc2Vs
ZjsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJX
aXRoQW5pbWF0aW9uOk5PXTsKKyAgICBfdmlldyA9IG5pbDsKKyAgICBfZGVsZWdhdGUgPSBuaWw7
Cit9CisKKy0gKFdlYkNvcmU6OkZsb2F0UG9pbnQpaG92ZXJQb2ludAoreworICAgIHJldHVybiBf
aG92ZXJQb2ludDsKK30KKworLSAodm9pZClzZXRIb3ZlclBvaW50OihXZWJDb3JlOjpGbG9hdFBv
aW50KXBvaW50Cit7CisgICAgX2hvdmVyUG9pbnQgPSBwb2ludDsKKworICAgIGlmIChfaGFzT3V0
c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCkgeworICAgICAgICBfaGFzRGVmZXJy
ZWRQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IFlFUzsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFtzZWxmIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVy
UG9pbnRdOworfQorCistICh2b2lkKXJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVu
dEhvdmVyUG9pbnQKK3sKKyAgICBfaGFzRGVmZXJyZWRQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCA9IE5POworICAgIF9oYXNPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ID0g
WUVTOworICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3QgeyBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoX2hvdmVyUG9pbnQp
IH07CisgICAgLy8gRklYTUU6IFRoaXMgVGV4dEluZGljYXRvciBkb2Vzbid0IG5lZWQgYSBzbmFw
c2hvdCAoYW5kIGF2b2lkaW5nIGl0IHdvdWxkIGJlIGEgc2l6YWJsZSBwZXJmb3JtYW5jZSB3aW4p
LgorICAgIHBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNhdG9yID0g
WUVTOworICAgIFtfZGVsZWdhdGUgcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjpz
ZWxmIHdpdGhSZXF1ZXN0OnBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IGNvbXBsZXRpb25IYW5k
bGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLSG92ZXJQbGF0dGVyPihzZWxmKV0gKFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKKyAgICAg
ICAgW3dlYWtTZWxmIGRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0aW9uOmluZm9ybWF0aW9uXTsK
KyAgICB9XTsKK30KKworLSAodm9pZClkaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbjooY29u
c3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24K
K3sKKyAgICBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IE5POwor
ICAgIGlmIChfaGFzRGVmZXJyZWRQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCkKKyAgICAgICAg
W3NlbGYgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb25Gb3JDdXJyZW50SG92ZXJQb2ludF07CisK
KyAgICBhdXRvIHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmxpbmtJbmRp
Y2F0b3IudGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlczsKKyAgICBpZiAocHJl
SW5mbGF0aW9uQm91bmRpbmdSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcHJlSW5mbGF0aW9uQm91
bmRpbmdSZWN0ID0gaW5mb3JtYXRpb24uYm91bmRzOworCisgICAgaWYgKCFpbmZvcm1hdGlvbi5p
c0xpbmsgfHwgcHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBf
bGFzdEhvdmVyQm91bmRzID0geyB9OworICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhB
bmltYXRpb246WUVTXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChfbGFzdEhv
dmVyQm91bmRzID09IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCAmJiAhX2lzU2l0dGluZ0Rvd24p
CisgICAgICAgIHJldHVybjsKKyAgICBfbGFzdEhvdmVyQm91bmRzID0gcHJlSW5mbGF0aW9uQm91
bmRpbmdSZWN0OworCisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4u
cm9vdFNldHRpbmdzOworICAgIGF1dG8gYW5pbWF0ZUJldHdlZW5QbGF0dGVycyA9IHBhcmFtZXRl
cnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVyczsKKyAgICBpZiAoIWFuaW1hdGVCZXR3ZWVuUGxhdHRl
cnMpCisgICAgICAgIFtzZWxmIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpZRVNdOworCisg
ICAgX2lzU2l0dGluZ0Rvd24gPSBmYWxzZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZGluZ1JlY3Q7CisgICAgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4gaW5mbGF0ZWRJbmRpY2F0
ZWRSZWN0czsKKyAgICBhdXRvIGluZGljYXRlZFJlY3RzID0gaW5mb3JtYXRpb24ubGlua0luZGlj
YXRvci50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzOworICAgIGF1dG8gcGxhdHRl
clBhZGRpbmcgPSBwYXJhbWV0ZXJzLnBsYXR0ZXJQYWRkaW5nOworICAgIGlmIChpbmRpY2F0ZWRS
ZWN0cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgYm91bmRpbmdSZWN0ID0gcHJlSW5mbGF0aW9uQm91
bmRpbmdSZWN0OworICAgICAgICBib3VuZGluZ1JlY3QuaW5mbGF0ZShwbGF0dGVyUGFkZGluZyk7
CisgICAgICAgIGluZmxhdGVkSW5kaWNhdGVkUmVjdHMuYXBwZW5kKHByZUluZmxhdGlvbkJvdW5k
aW5nUmVjdCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBpbmRpY2F0
ZWRSZWN0cykgeworICAgICAgICAgICAgcmVjdC5pbmZsYXRlKHBsYXR0ZXJQYWRkaW5nKTsKKyAg
ICAgICAgICAgIGluZmxhdGVkSW5kaWNhdGVkUmVjdHMuYXBwZW5kKHJlY3QpOworICAgICAgICAg
ICAgYm91bmRpbmdSZWN0LnVuaXRlKHJlY3QpOworICAgICAgICB9CisgICAgICAgIGJvdW5kaW5n
UmVjdC5tb3ZlQnkocHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0LmxvY2F0aW9uKCkpOworICAgIH0K
KworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IGluZmxhdGVkUGF0aCA9IFdlYkNvcmU6OlBhdGhV
dGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzKGluZmxhdGVkSW5kaWNhdGVkUmVj
dHMsIHBhcmFtZXRlcnMucGxhdHRlckNvcm5lclJhZGl1cykucGxhdGZvcm1QYXRoKCk7CisgICAg
YXV0byBwbGF0dGVySW5mbGF0aW9uU2l6ZSA9IHBhcmFtZXRlcnMucGxhdHRlckluZmxhdGlvblNp
emU7CisgICAgQ0dGbG9hdCBwbGF0dGVyU2NhbGUgPSBDR0Zsb2F0TWluKChib3VuZGluZ1JlY3Qu
d2lkdGgoKSArIHBsYXR0ZXJJbmZsYXRpb25TaXplKSAvIGJvdW5kaW5nUmVjdC53aWR0aCgpLCAo
Ym91bmRpbmdSZWN0LmhlaWdodCgpICsgcGxhdHRlckluZmxhdGlvblNpemUpIC8gYm91bmRpbmdS
ZWN0LmhlaWdodCgpKTsKKworICAgIC8vIEZJWE1FOiBDb25zaWRlciB1c2luZyBVSUtpdCdzIGlu
LXByb2Nlc3MgcmV0YXJnZXRhYmxlIGFuaW1hdGlvbnMsIGJlY2F1c2UgcmVhZGluZyBhbmltYXRp
b24gc3RhdGUgZnJvbSB0aGUgcHJlc2VudGF0aW9uIGxheWVyIGlzIHJhY3kuCisgICAgYm9vbCBo
YWRPbGRMYXllcnMgPSAhIV9sYXN0U2hhZG93TGF5ZXI7CisgICAgQ0dSZWN0IG9sZFNoYWRvd0Jv
dW5kcyA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAg
Q0dQb2ludCBvbGRTaGFkb3dQb3NpdGlvbiA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlv
bkxheWVyXS5wb3NpdGlvbjsKKyAgICBDR0Zsb2F0IG9sZFNoYWRvd09wYWNpdHkgPSBbX2xhc3RT
aGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93T3BhY2l0eTsKKyAgICBDR0Zsb2F0
IG9sZFNoYWRvd1JhZGl1cyA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5z
aGFkb3dSYWRpdXM7CisgICAgQ0FUcmFuc2Zvcm0zRCBvbGRTaGFkb3dTdWJsYXllclRyYW5zZm9y
bSA9IF9sYXN0U2hhZG93TGF5ZXIgPyBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXll
cl0uc3VibGF5ZXJUcmFuc2Zvcm0gOiBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CisgICAgUmV0YWlu
UHRyPENHUGF0aFJlZj4gb2xkU2hhZG93UGF0aCA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRh
dGlvbkxheWVyXS5zaGFkb3dQYXRoOworICAgIFJldGFpblB0cjxDQUxheWVyPiBzaGFkb3cgPSBf
bGFzdFNoYWRvd0xheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAg
YXV0byBzaGFkb3dGcmFtZSA9IENHUmVjdE9mZnNldChib3VuZGluZ1JlY3QsIHBsYXR0ZXJQYWRk
aW5nLCBwbGF0dGVyUGFkZGluZyk7CisgICAgW3NoYWRvdyBzZXRGcmFtZTpzaGFkb3dGcmFtZV07
CisgICAgW3NoYWRvdyBzZXRTaGFkb3dDb2xvcjpVSUNvbG9yLmJsYWNrQ29sb3IuQ0dDb2xvcl07
CisgICAgW3NoYWRvdyBzZXRTaGFkb3dSYWRpdXM6cGFyYW1ldGVycy5wbGF0dGVyU2hhZG93UmFk
aXVzXTsKKyAgICBbc2hhZG93IHNldFNoYWRvd09mZnNldDpDR1NpemVaZXJvXTsKKyAgICBbc2hh
ZG93IHNldFNoYWRvd09wYWNpdHk6cGFyYW1ldGVycy5wbGF0dGVyU2hhZG93T3BhY2l0eV07Cisg
ICAgW3NoYWRvdyBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHBs
YXR0ZXJTY2FsZSwgcGxhdHRlclNjYWxlLCAxKV07CisgICAgW3NoYWRvdyBzZXRTaGFkb3dQYXRo
OmluZmxhdGVkUGF0aC5nZXQoKV07CisgICAgW3NoYWRvdyB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNd
OworICAgIFtbW192aWV3IHN1cGVydmlld10gbGF5ZXJdIGFkZFN1YmxheWVyOnNoYWRvdy5nZXQo
KV07CisKKyAgICBDR1JlY3Qgb2xkUGxhdHRlckJvdW5kcyA9IFtfbGFzdFBsYXR0ZXJMYXllciBw
cmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkUGxhdHRlclBvc2l0aW9u
ID0gW19sYXN0UGxhdHRlckxheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gcGxhdHRlciA9IF9sYXN0UGxhdHRlckxheWVyID86IGFkb3B0TlMo
W1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgW3BsYXR0ZXIgc2V0Qm91bmRzOkNHUmVjdE1h
a2UoMCwgMCwgYm91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOwor
ICAgIFtwbGF0dGVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHNoYWRvd0ZyYW1lLnNpemUud2lk
dGggLyAyIC0gcGxhdHRlclBhZGRpbmcsIHNoYWRvd0ZyYW1lLnNpemUuaGVpZ2h0IC8gMiAtIHBs
YXR0ZXJQYWRkaW5nKV07CisgICAgYXV0byBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZh
bHVlID0gc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3BlcnRpZXMocGxhdHRlci5nZXQoKSwg
W19sYXN0UGxhdHRlckxheWVyIHByZXNlbnRhdGlvbkxheWVyXSk7CisgICAgW3BsYXR0ZXIgd2Vi
X2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbc2hhZG93IGFkZFN1YmxheWVyOnBsYXR0ZXIuZ2V0
KCldOworCisgICAgQ0dSZWN0IG9sZE1hc2tCb3VuZHMgPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2Vu
dGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBDR1BvaW50IG9sZE1hc2tQb3NpdGlvbiA9IFtfbGFz
dE1hc2tMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENH
UGF0aFJlZj4gb2xkTWFza1BhdGggPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJd
LnBhdGg7CisgICAgUmV0YWluUHRyPENBU2hhcGVMYXllcj4gbWFzayA9IF9sYXN0TWFza0xheWVy
ID86IGFkb3B0TlMoW1tDQVNoYXBlTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbbWFzayBzZXRG
aWxsQ29sb3I6W1VJQ29sb3IgYmxhY2tDb2xvcl0uQ0dDb2xvcl07CisgICAgW21hc2sgc2V0Qm91
bmRzOkNHUmVjdE1ha2UoMCwgMCwgYm91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5o
ZWlnaHQoKSldOworICAgIFttYXNrIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKGJvdW5kaW5nUmVj
dC53aWR0aCgpIC8gMiArIHBsYXR0ZXJQYWRkaW5nLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkgLyAy
ICsgcGxhdHRlclBhZGRpbmcpXTsKKyAgICBbbWFzayBzZXRQYXRoOmluZmxhdGVkUGF0aC5nZXQo
KV07CisgICAgW21hc2sgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKworICAgIENHUmVjdCBvbGRC
YWNrZ3JvdW5kQm91bmRzID0gW19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVy
XS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRCYWNrZ3JvdW5kUG9zaXRpb24gPSBbX2xhc3RCYWNr
Z3JvdW5kTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0cjxD
R0NvbG9yUmVmPiBvbGRCYWNrZ3JvdW5kQ29sb3IgPSBbX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgcHJl
c2VudGF0aW9uTGF5ZXJdLmJhY2tncm91bmRDb2xvcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4g
YmFja2dyb3VuZCA9IF9sYXN0QmFja2dyb3VuZExheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFs
bG9jXSBpbml0XSk7CisgICAgW2JhY2tncm91bmQgc2V0RnJhbWU6W3BsYXR0ZXIgYm91bmRzXV07
CisgICAgW2JhY2tncm91bmQgc2V0QmFja2dyb3VuZENvbG9yOmNhY2hlZENHQ29sb3IoaW5mb3Jt
YXRpb24ubGlua0luZGljYXRvci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXTsKKyAgICBbYmFj
a2dyb3VuZCBzZXRNYXNrOm1hc2suZ2V0KCldOworICAgIFtiYWNrZ3JvdW5kIHdlYl9kaXNhYmxl
QWxsQWN0aW9uc107CisgICAgW3BsYXR0ZXIgYWRkU3VibGF5ZXI6YmFja2dyb3VuZC5nZXQoKV07
CisKKyAgICBDR1JlY3Qgb2xkU25hcHNob3RCb3VuZHMgPSBbX2xhc3RTbmFwc2hvdExheWVyIHBy
ZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRTbmFwc2hvdFBvc2l0aW9u
ID0gW19sYXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAg
Q0FUcmFuc2Zvcm0zRCBvbGRTbmFwc2hvdFN1YmxheWVyVHJhbnNmb3JtID0gX2xhc3RTbmFwc2hv
dExheWVyID8gW19sYXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0uc3VibGF5ZXJU
cmFuc2Zvcm0gOiBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CisgICAgUmV0YWluUHRyPENBUG9ydGFs
TGF5ZXI+IHNuYXBzaG90ID0gX2xhc3RTbmFwc2hvdExheWVyID86IGFkb3B0TlMoW1tDQVBvcnRh
bExheWVyIGFsbG9jXSBpbml0XSk7CisgICAgW3NuYXBzaG90IHNldFNvdXJjZUxheWVyOltfdmll
dyBsYXllcl1dOworICAgIFtzbmFwc2hvdCBzZXRNYXRjaGVzUG9zaXRpb246WUVTXTsKKyAgICBb
c25hcHNob3Qgc2V0TWF0Y2hlc1RyYW5zZm9ybTpZRVNdOworICAgIFtzbmFwc2hvdCBzZXRBbmNo
b3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSldOworICAgIFtzbmFwc2hvdCBzZXRTdWJsYXll
clRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHBsYXR0ZXJTY2FsZSwgcGxhdHRlclNj
YWxlLCAxKV07CisgICAgW3NuYXBzaG90IHNldE1hc2tzVG9Cb3VuZHM6WUVTXTsKKyAgICBbc25h
cHNob3Qgc2V0RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCBib3VuZGluZ1JlY3Qud2lkdGgoKSwgYm91
bmRpbmdSZWN0LmhlaWdodCgpKV07CisgICAgW3NuYXBzaG90IHdlYl9kaXNhYmxlQWxsQWN0aW9u
c107CisgICAgW2JhY2tncm91bmQgYWRkU3VibGF5ZXI6c25hcHNob3QuZ2V0KCldOworCisgICAg
Qk9PTCBuZWVkc0FuaW1hdGVJbiA9ICFfbGFzdFBsYXR0ZXJMYXllciB8fCBfaXNTaXR0aW5nRG93
bjsKKyAgICBpZiAobmVlZHNBbmltYXRlSW4pIHsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRv
dy5nZXQoKSwgQCJzaGFkb3dPcGFjaXR5IiwgQChvbGRTaGFkb3dPcGFjaXR5KSwgQChbc2hhZG93
IHNoYWRvd09wYWNpdHldKSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAi
c2hhZG93UmFkaXVzIiwgQChvbGRTaGFkb3dSYWRpdXMpLCBAKFtzaGFkb3cgc2hhZG93UmFkaXVz
XSkpOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInN1YmxheWVyVHJhbnNm
b3JtIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpvbGRTaGFkb3dTdWJsYXllclRy
YW5zZm9ybV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W3NoYWRvdyBzdWJsYXll
clRyYW5zZm9ybV1dKTsKKworICAgICAgICBhZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAi
c3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOm9sZFNu
YXBzaG90U3VibGF5ZXJUcmFuc2Zvcm1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNE
OltzbmFwc2hvdCBzdWJsYXllclRyYW5zZm9ybV1dKTsKKworICAgICAgICBhZGRBZGRpdGlvbmFs
SW5jb21pbmdBbmltYXRpb25zKHBsYXR0ZXIuZ2V0KCksIG9sZFBsYXR0ZXJBZGRpdGlvbmFsQW5p
bWF0aW9uVmFsdWUpOworICAgIH0KKworICAgIGlmIChhbmltYXRlQmV0d2VlblBsYXR0ZXJzICYm
IGhhZE9sZExheWVycykgeworICAgICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJib3Vu
ZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkTWFza0JvdW5kc10sIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUmVjdDpbbWFzayBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihtYXNr
LmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRNYXNrUG9z
aXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OlttYXNrIHBvc2l0aW9uXV0pOworICAg
ICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJwYXRoIiwgKGlkKW9sZE1hc2tQYXRoLmdl
dCgpLCAoaWQpW21hc2sgcGF0aF0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0
KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZFNoYWRvd0JvdW5kc10s
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpbc2hhZG93IGJvdW5kc11dKTsKKyAgICAgICAgYWRk
QW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UG9pbnQ6b2xkU2hhZG93UG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltzaGFk
b3cgcG9zaXRpb25dXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hh
ZG93UGF0aCIsIChpZClvbGRTaGFkb3dQYXRoLmdldCgpLCAoaWQpW3NoYWRvdyBzaGFkb3dQYXRo
XSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKHBsYXR0ZXIuZ2V0KCksIEAiYm91bmRzIiwgW05T
VmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZFBsYXR0ZXJCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdp
dGhDR1JlY3Q6W3BsYXR0ZXIgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24ocGxhdHRl
ci5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkUGxhdHRl
clBvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbcGxhdHRlciBwb3NpdGlvbl1d
KTsKKworICAgICAgICBhZGRBbmltYXRpb24oYmFja2dyb3VuZC5nZXQoKSwgQCJib3VuZHMiLCBb
TlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkQmFja2dyb3VuZEJvdW5kc10sIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUmVjdDpbYmFja2dyb3VuZCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlv
bihiYWNrZ3JvdW5kLmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2lu
dDpvbGRCYWNrZ3JvdW5kUG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltiYWNr
Z3JvdW5kIHBvc2l0aW9uXV0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQo
KSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkU25hcHNob3RCb3VuZHNd
LCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3NuYXBzaG90IGJvdW5kc11dKTsKKyAgICAgICAg
YWRkQW5pbWF0aW9uKHNuYXBzaG90LmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVX
aXRoQ0dQb2ludDpvbGRTbmFwc2hvdFBvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2lu
dDpbc25hcHNob3QgcG9zaXRpb25dXSk7CisgICAgfQorCisgICAgX2xhc3RNYXNrTGF5ZXIgPSBt
YXNrOworICAgIF9sYXN0U2hhZG93TGF5ZXIgPSBzaGFkb3c7CisgICAgX2xhc3RQbGF0dGVyTGF5
ZXIgPSBwbGF0dGVyOworICAgIF9sYXN0QmFja2dyb3VuZExheWVyID0gYmFja2dyb3VuZDsKKyAg
ICBfbGFzdFNuYXBzaG90TGF5ZXIgPSBzbmFwc2hvdDsKK30KKworLSAodm9pZClkaXNtaXNzUGxh
dHRlcldpdGhBbmltYXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgoreworICAgIGlmIChfaXNTaXR0
aW5nRG93bikKKyAgICAgICAgcmV0dXJuOworICAgIF9pc1NpdHRpbmdEb3duID0gdHJ1ZTsKKwor
ICAgIGlmICghd2l0aEFuaW1hdGlvbikgeworICAgICAgICBbX2xhc3RTaGFkb3dMYXllciByZW1v
dmVGcm9tU3VwZXJsYXllcl07CisgICAgICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFu
c2FjdGlvbiBzZXRDb21wbGV0aW9uQmxvY2s6W3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2Vs
ZiksIHNoYWRvd0xheWVyID0gX2xhc3RTaGFkb3dMYXllcl0geworICAgICAgICBbcHJvdGVjdGVk
U2VsZiBkaWRGaW5pc2hBbmltYXRpb25Gb3JTaGFkb3c6c2hhZG93TGF5ZXIuZ2V0KCldOworICAg
IH1dOworCisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNl
dHRpbmdzOworICAgIGFkZEFuaW1hdGlvbihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInNoYWRv
d09wYWNpdHkiLCBAKFtfbGFzdFNoYWRvd0xheWVyIHNoYWRvd09wYWNpdHldKSwgQDApOworICAg
IGFkZEFuaW1hdGlvbihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInNoYWRvd1JhZGl1cyIsIEAo
W19sYXN0U2hhZG93TGF5ZXIgc2hhZG93UmFkaXVzXSksIEAwKTsKKyAgICBhZGRBbmltYXRpb24o
X2xhc3RTaGFkb3dMYXllci5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZh
bHVlV2l0aENBVHJhbnNmb3JtM0Q6W19sYXN0U2hhZG93TGF5ZXIgc3VibGF5ZXJUcmFuc2Zvcm1d
XSwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHld
KTsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTbmFwc2hvdExheWVyLmdldCgpLCBAInN1YmxheWVy
VHJhbnNmb3JtIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbX2xhc3RTbmFwc2hv
dExheWVyIHN1YmxheWVyVHJhbnNmb3JtXV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSk7CisgICAgYWRkQWRkaXRpb25hbERpc21pc3NhbEFu
aW1hdGlvbnMoX2xhc3RQbGF0dGVyTGF5ZXIuZ2V0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKKworICAgIGlmICghcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQor
ICAgICAgICBbc2VsZiBjbGVhckxheWVyc107Cit9CisKKy0gKHZvaWQpZGlkRmluaXNoQW5pbWF0
aW9uRm9yU2hhZG93OihDQUxheWVyICopc2hhZG93TGF5ZXIKK3sKKyAgICBhdXRvIHBhcmFtZXRl
cnMgPSBXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0
ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMpCisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CisKKyAgICBpZiAoX2lzU2l0dGluZ0Rvd24gJiYgcGFyYW1ldGVycy5h
bmltYXRlQmV0d2VlblBsYXR0ZXJzICYmIHNoYWRvd0xheWVyID09IF9sYXN0U2hhZG93TGF5ZXIp
IHsKKyAgICAgICAgW3NoYWRvd0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAg
W3NlbGYgY2xlYXJMYXllcnNdOworICAgIH0KK30KKworLSAodm9pZCljbGVhckxheWVycworewor
ICAgIF9sYXN0TWFza0xheWVyID0gbmlsOworICAgIF9sYXN0U2hhZG93TGF5ZXIgPSBuaWw7Cisg
ICAgX2xhc3RQbGF0dGVyTGF5ZXIgPSBuaWw7CisgICAgX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgPSBu
aWw7CisgICAgX2xhc3RTbmFwc2hvdExheWVyID0gbmlsOworfQorCitAZW5kCisKKyNlbmRpZiAv
LyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVf
UkVDT0dOSVpFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hv
dmVyUGxhdHRlclBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hv
dmVyUGxhdHRlclBhcmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGM0OGY0NTkxNmEzNWQwNzg0YTA3
YWU0YmE4ZWUxOGZhNzY5YThhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShI
T1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKKyNpbXBvcnQgIlByb3RvdHlwZVRvb2xzU1BJLmgi
CisKK0BpbnRlcmZhY2UgV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIDogUFRTZXR0aW5ncworCitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwbGF0dGVyRW5hYmxlZEZvck1vdXNlOworQHByb3Bl
cnR5IChub25hdG9taWMpIEJPT0wgcGxhdHRlckVuYWJsZWRGb3JIb3ZlcjsKKworQHByb3BlcnR5
IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlckNvcm5lclJhZGl1czsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJQYWRkaW5nOworQHByb3BlcnR5IChub25hdG9taWMpIENH
RmxvYXQgcGxhdHRlclNoYWRvd09wYWNpdHk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9h
dCBwbGF0dGVyU2hhZG93UmFkaXVzOworQHByb3BlcnR5IChub25hdG9taWMpIHVuc2lnbmVkIHBs
YXR0ZXJJbmZsYXRpb25TaXplOworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRl
QmV0d2VlblBsYXR0ZXJzOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgc3ByaW5nTWFz
czsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHNwcmluZ1N0aWZmbmVzczsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHNwcmluZ0RhbXBpbmc7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgTlNUaW1lSW50ZXJ2YWwgZHVyYXRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dG
bG9hdCB1c2VTcHJpbmc7CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8
V2ViS2l0QWRkaXRpb25zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVyc0FkZGl0aW9ucy5oPgorI2Vu
ZGlmCisKK0BlbmQKKworQGludGVyZmFjZSBXS0hvdmVyUGxhdHRlckRvbWFpbiA6IFBURG9tYWlu
CisrIChXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgKilyb290U2V0dGluZ3M7CitAZW5kCisKKyNl
bmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dF
U1RVUkVfUkVDT0dOSVpFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNDlhODQ1Y2QxZjVi
OTRlZDY4MmZjZDI4NzI1ZjM4MTA1ZjExMTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tCkBAIC0wLDAgKzEs
MTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMuaCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JU
KSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJQcm90b3R5
cGVUb29sc1NQSS5oIgorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlk
KWludGVnZXJNaW5WYWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhW
YWx1ZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gUFRTbGlkZXJSb3cgKFdlYktpdCkKKwor
LSAoaWQpaW50ZWdlck1pblZhbHVlOihDR0Zsb2F0KW1pblZhbHVlIG1heFZhbHVlOihDR0Zsb2F0
KW1heFZhbHVlCit7CisgICAgcmV0dXJuIFtbc2VsZiBtaW5WYWx1ZTptaW5WYWx1ZSBtYXhWYWx1
ZTptYXhWYWx1ZV0gdmFsdWVWYWxpZGF0b3I6XmlkKGlkIHByb3Bvc2VkVmFsdWUsIGlkIHNldHRp
bmdzKSB7CisgICAgICAgIHJldHVybiBAKENHUm91bmQoW3Byb3Bvc2VkVmFsdWUgZmxvYXRWYWx1
ZV0pKTsKKyAgICB9XTsKK30KKworQGVuZAorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnNBZGRpdGlv
bnMubW0+CisjZWxzZQorc3RhdGljIHZvaWQgYWRkQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJh
bWV0ZXJzKE5TTXV0YWJsZUFycmF5ICpyb3dzKTsKK3N0YXRpYyB2b2lkIHNldERlZmF1bHRWYWx1
ZXNGb3JBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMoV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzICopOworI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBXS0hvdmVyUGxhdHRlclBhcmFt
ZXRlcnMKKworLSAodm9pZClzZXREZWZhdWx0VmFsdWVzCit7CisgICAgW3N1cGVyIHNldERlZmF1
bHRWYWx1ZXNdOworCisgICAgX3BsYXR0ZXJFbmFibGVkRm9yTW91c2UgPSBOTzsKKyAgICBfcGxh
dHRlckVuYWJsZWRGb3JIb3ZlciA9IFlFUzsKKworICAgIF9wbGF0dGVyQ29ybmVyUmFkaXVzID0g
NjsKKyAgICBfcGxhdHRlclBhZGRpbmcgPSA1OworICAgIF9wbGF0dGVyU2hhZG93T3BhY2l0eSA9
IDAuNjsKKyAgICBfcGxhdHRlclNoYWRvd1JhZGl1cyA9IDEwOworICAgIF9wbGF0dGVySW5mbGF0
aW9uU2l6ZSA9IDg7CisKKyAgICBfYW5pbWF0ZUJldHdlZW5QbGF0dGVycyA9IFlFUzsKKyAgICBf
c3ByaW5nTWFzcyA9IDI7CisgICAgX3NwcmluZ1N0aWZmbmVzcyA9IDEwMDsKKyAgICBfc3ByaW5n
RGFtcGluZyA9IDUwOworICAgIF9kdXJhdGlvbiA9IDAuMzsKKyAgICBfdXNlU3ByaW5nID0gWUVT
OworCisgICAgc2V0RGVmYXVsdFZhbHVlc0ZvckFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1l
dGVycyhzZWxmKTsKK30KKworKyAoUFRNb2R1bGUgKilzZXR0aW5nc0NvbnRyb2xsZXJNb2R1bGUK
K3sKKyAgICBQVFNlY3Rpb24gKmVuYWJsZW1lbnRTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25X
aXRoUm93czpAWworICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiRW5hYmxlIFBs
YXR0ZXIgRm9yIE1vdXNlIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyRW5hYmxlZEZvck1vdXNlIl0s
CisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJFbmFibGUgUGxhdHRlciBGb3Ig
SG92ZXIiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJFbmFibGVkRm9ySG92ZXIiXSwKKyAgICBdIHRp
dGxlOkAiUGxhdHRlciJdOworCisgICAgUFRTZWN0aW9uICphbmltYXRpb25TZWN0aW9uID0gW1BU
TW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRp
dGxlOkAiQW5pbWF0ZSBCZXR3ZWVuIFBsYXR0ZXJzIiB2YWx1ZUtleVBhdGg6QCJhbmltYXRlQmV0
d2VlblBsYXR0ZXJzIl0sCisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJVc2Ug
U3ByaW5nIiB2YWx1ZUtleVBhdGg6QCJ1c2VTcHJpbmciXSwKKyAgICAgICAgW1tbUFRTbGlkZXJS
b3cgcm93V2l0aFRpdGxlOkAiRHVyYXRpb24iIHZhbHVlS2V5UGF0aDpAImR1cmF0aW9uIl0gbWlu
VmFsdWU6MCBtYXhWYWx1ZToxXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhG
b3JtYXQ6QCJ1c2VTcHJpbmcgPT0gRkFMU0UiXV0sCisgICAgICAgIFtbUFRFZGl0RmxvYXRSb3cg
cm93V2l0aFRpdGxlOkAiU3ByaW5nIE1hc3MiIHZhbHVlS2V5UGF0aDpAInNwcmluZ01hc3MiXSBj
b25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0g
VFJVRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcg
U3RpZmZuZXNzIiB2YWx1ZUtleVBhdGg6QCJzcHJpbmdTdGlmZm5lc3MiXSBjb25kaXRpb246W05T
UHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAg
ICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcgRGFtcGluZyIgdmFs
dWVLZXlQYXRoOkAic3ByaW5nRGFtcGluZyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGlj
YXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBUUlVFIl1dLAorICAgIF0gdGl0bGU6QCJBbmlt
YXRpb24iXTsKKworICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gcGxhdHRlckxheW91dFJv
d3MgPSBhZG9wdE5TKFtAWworICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkNv
cm5lciBSYWRpdXMiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJDb3JuZXJSYWRpdXMiXSBpbnRlZ2Vy
TWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRp
dGxlOkAiUGFkZGluZyIgdmFsdWVLZXlQYXRoOkAicGxhdHRlclBhZGRpbmciXSBpbnRlZ2VyTWlu
VmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxl
OkAiU2hhZG93IE9wYWNpdHkiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJTaGFkb3dPcGFjaXR5Il0g
bWluVmFsdWU6MCBtYXhWYWx1ZToxXSwKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0
bGU6QCJTaGFkb3cgUmFkaXVzIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyU2hhZG93UmFkaXVzIl0g
aW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MjBdLAorICAgICAgICBbW1BUU2xpZGVyUm93IHJv
d1dpdGhUaXRsZTpAIkluZmxhdGlvbiBTaXplIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVySW5mbGF0
aW9uU2l6ZSJdIGludGVnZXJNaW5WYWx1ZTowIG1heFZhbHVlOjMwXQorICAgIF0gbXV0YWJsZUNv
cHldKTsKKyAgICBhZGRBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMocGxhdHRlckxh
eW91dFJvd3MuZ2V0KCkpOworCisgICAgUFRTZWN0aW9uICpwbGF0dGVyTGF5b3V0U2VjdGlvbiA9
IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6cGxhdHRlckxheW91dFJvd3MuZ2V0KCkgdGl0bGU6
QCJQbGF0dGVyIExheW91dCJdOworCisgICAgUFRTZWN0aW9uICpyZXN0b3JlRGVmYXVsdHNTZWN0
aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRCdXR0b25Sb3cg
cm93V2l0aFRpdGxlOkAiUmVzdG9yZSBEZWZhdWx0cyIgYWN0aW9uOltQVFJlc3RvcmVEZWZhdWx0
U2V0dGluZ3NSb3dBY3Rpb24gYWN0aW9uXV0KKyAgICBdXTsKKworICAgIHJldHVybiBbUFRNb2R1
bGUgbW9kdWxlV2l0aFRpdGxlOm5pbCBjb250ZW50czpAWyBlbmFibGVtZW50U2VjdGlvbiwgYW5p
bWF0aW9uU2VjdGlvbiwgcGxhdHRlckxheW91dFNlY3Rpb24sIHJlc3RvcmVEZWZhdWx0c1NlY3Rp
b24gXV07Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVyRG9tYWlu
CisKKysgKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyAqKXJvb3RTZXR0aW5ncworeworICAgIHJl
dHVybiBbc3VwZXIgcm9vdFNldHRpbmdzXTsKK30KKworKyAoTlNTdHJpbmcgKilkb21haW5Hcm91
cE5hbWUKK3sKKyAgICByZXR1cm4gQCJXZWJLaXQiOworfQorCisrIChOU1N0cmluZyAqKWRvbWFp
bk5hbWUKK3sKKyAgICByZXR1cm4gQCJIb3ZlciBQbGF0dGVyIjsKK30KKworKyAoQ2xhc3Mpcm9v
dFNldHRpbmdzQ2xhc3MKK3sKKyAgICByZXR1cm4gW1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyBj
bGFzc107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOThjZTRkODM5ZTQwOGMy
Y2ZlMTJjOGVmNzg4Y2Q0MTZhMjYwZGI5MS4uMGJhNjNhZDkzMDk4MzM2MWJhZjU3OWRkODg1MTUw
OThkOGQwM2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC02MzQsNiArNjM0LDcgQEAKIAkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1
OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJ
MkQxQjVENUUxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFCNUQ1
QzE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLzsg
fTsKIAkJMkQxRTgyMjMyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2ViRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUU4MjIxMjE2RkZGNTAwMEEx
NTI2NSAvKiBXS1dlYkV2ZW50LmggKi87IH07CisJCTJEMjc5RTE5MjY5NTU3NjgwMDRCM0VFQiAv
KiBQcm90b3R5cGVUb29sc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQyNzlFMTgyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJ
LmggKi87IH07CiAJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJh
dGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQy
OEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi87IH07CiAJ
CTJEMjlFQ0QwMTkyRjJDMkUwMDk4NEI3OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEMjlFQ0NFMTkyRjJDMkUwMDk4NEI3OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVz
aE1vbml0b3IuaCAqLzsgfTsKIAkJMkQzQTY1REIxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdh
dGlvbkFjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMTcx
LDYgKzMxNzIsMTEgQEAKIAkJMkQxRTgyMjIyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2ViRXZlbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1dlYkV2ZW50Lm1t
OyBwYXRoID0gaW9zL1dLV2ViRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFj
ZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VC
YWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjVGMzI5MjU3NThFOTEw
MDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8q
IFdLSG92ZXJQbGF0dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLmg7IHBhdGgg
PSBpb3MvV0tIb3ZlclBsYXR0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQy
NzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tIb3ZlclBsYXR0ZXIubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAv
KiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0
ZXJQYXJhbWV0ZXJzLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTExMjY5NEMyRDEwMDRCM0VFQiAvKiBX
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUxODI2OTU1NzY4MDA0QjNF
RUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUHJvdG90eXBlVG9vbHNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQy
OEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk2MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdM
YXlvdXRTdHJhdGVneS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBw
YXRoID0gaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc3OTIsNiArNzc5OCwxMCBAQAogCQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAv
KiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJ
RjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXIuaCAqLywKIAkJCQlGNERCNTRFNTIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGln
aHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbSAqLywKKwkJCQkyRDI3OUUwRTI2OTRDMjI2
MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIuaCAqLywKKwkJCQkyRDI3OUUwRjI2OTRDMjI3MDA0
QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIubW0gKi8sCisJCQkJMkQyNzlFMTAyNjk0QzJEMTAwNEIz
RUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oICovLAorCQkJCTJEMjc5RTExMjY5NEMy
RDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gKi8sCiAJCQkJRjRCQTMz
RjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgg
Ki8sCiAJCQkJRjRCQTMzRjEyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTkzM0RGODJEMUIzQkMwOTAwMEFFQTlFMyAvKiBXS0lt
YWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi8sCkBAIC0xMTUyOSw2ICsxMTUzOSw3IEBACiAJ
CQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8qIEZyb250Qm9hcmRTZXJ2aWNlc1NQSS5oICov
LAogCQkJCUExM0IzREExMjA3RjM5REUwMDkwQzU4RCAvKiBNb2JpbGVXaUZpU1BJLmggKi8sCiAJ
CQkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8qIFBERktpdFNQSS5oICovLAorCQkJCTJEMjc5
RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovLAogCQkJCTQ2RjM4
RThCMjQxNkU2NkQwMDU5Mzc1QSAvKiBSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJ
CUNFMUEwQkQwMUE0OEU2QzYwMDU0RUY3NCAvKiBUQ0NTUEkuaCAqLywKIAkJCQlDRTFBMEJEMTFB
NDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJLmggKi8sCkBAIC0xMjIzNiw2ICsxMjI0Nyw3
IEBACiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJl
YXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFBy
b2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgy
QzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDI3
OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJu
YWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRUU1NzI1MjQwOUYxNDIwMDIw
MDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIuaCBpbiBIZWFkZXJzICovLAo=
</data>
<flag name="commit-queue"
          id="455114"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433009</attachid>
            <date>2021-07-06 22:05:00 -0700</date>
            <delta_ts>2021-07-06 22:32:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210706220459.patch</filename>
            <type>text/plain</type>
            <size>51202</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2Qy
ZmMwZTM0ZDZiMjI0ZmY5YjVhNjk5NDMuLmI1MWJkNTZhZTc1ZGNhZTBkMTYwZGYxMTUyMGI1NGJl
NjYzNTFlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0
dGVyIGFuZCBzb21lIGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc5MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaDogQWRkZWQuCisgICAgICAgICog
U291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgt
W1dLQ29udGVudFZpZXcgcm9vdENvbnRlbnRWaWV3XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXRV
cEludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xlYW5VcEludGVyYWN0
aW9uXSk6CisgICAgICAgIEluc3RhbGwgYW5kIHVuaW5zdGFsbCB0aGUgcGxhdHRlciBhbG9uZ3Np
ZGUgdGhlIGdlc3R1cmVzIHRoYXQgZHJpdmUgaXQuCisKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBtb3VzZUdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBob3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDpdKToKKyAgICAgICAgV2hlbiB0aGUg
Z2VzdHVyZSByZWNvZ25pemVycyBmaXJlLCBhbHNvIHVwZGF0ZSB0aGUgaG92ZXIgcG9pbnQuCisK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb3NpdGlvbkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0
dGVyOndpdGhSZXF1ZXN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0hvdmVyUGxhdHRlci5tbTogQWRkZWQuCisgICAgICAgIChjcmVhdGVCYXNlQW5pbWF0aW9uKToK
KyAgICAgICAgKGFkZEFuaW1hdGlvbik6CisgICAgICAgIChzZXRBZGRpdGlvbmFsUGxhdHRlckxh
eWVyUHJvcGVydGllcyk6CisgICAgICAgIChhZGRBZGRpdGlvbmFsSW5jb21pbmdBbmltYXRpb25z
KToKKyAgICAgICAgKGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKToKKyAgICAgICAg
KC1bV0tIb3ZlclBsYXR0ZXIgaW5pdFdpdGhWaWV3OmRlbGVnYXRlOl0pOgorICAgICAgICAoLVtX
S0hvdmVyUGxhdHRlciBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgc2V0SG92ZXJQb2ludDpdKToK
KyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgcmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb25Gb3JD
dXJyZW50SG92ZXJQb2ludF0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaWRSZWNlaXZl
UG9zaXRpb25JbmZvcm1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlzbWlz
c1BsYXR0ZXJXaXRoQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaWRG
aW5pc2hBbmltYXRpb25Gb3JTaGFkb3c6XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGNs
ZWFyTGF5ZXJzXSk6CisgICAgICAgIEFuaW1hdGUgdGhlIHBsYXR0ZXIgaW4gYW5kIG91dCwgYW5k
IG9wdGlvbmFsbHkgYmV0d2VlbiBzdGF0ZXMsIGFzIHRoZSBob3ZlciBwb2ludCBtb3Zlcy4KKyAg
ICAgICAgVXNlIHRoZSBUZXh0SW5kaWNhdG9yJ3MgZ2VvbWV0cnkgaW5mb3JtYXRpb24sIGJ1dCBu
b3QgaXRzIHNuYXBzaG90OyB3ZSB1c2UgYQorICAgICAgICBDQVBvcnRhbExheWVyIGZvciB0aGUg
cGxhdHRlciBpbnN0ZWFkLiBBIGZ1dHVyZSBwYXRjaCB3aWxsIGF2b2lkIHRha2luZyB0aGUgc25h
cHNob3QKKyAgICAgICAgZW50aXJlbHksIHNpbmNlIHdlIGNhbGwgc2V0SG92ZXJQb2ludCAoYW5k
IHRodXMgZ2VuZXJhdGUgYSBUZXh0SW5kaWNhdG9yKSBhICpsb3QqCisgICAgICAgIHdoZW4gbW92
aW5nIHRoZSBtb3VzZSBhcm91bmQsIGFuZCBhbGwgdGhvc2Ugc25hcHNob3RzIGFkZCB1cC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tOiBB
ZGRlZC4KKyAgICAgICAgKC1bUFRTbGlkZXJSb3cgaW50ZWdlck1pblZhbHVlOm1heFZhbHVlOl0p
OgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgc2V0RGVmYXVsdFZhbHVlc10p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgc2V0dGluZ3NDb250cm9sbGVy
TW9kdWxlXSk6CisgICAgICAgICgrW1dLSG92ZXJQbGF0dGVyRG9tYWluIHJvb3RTZXR0aW5nc10p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiBkb21haW5Hcm91cE5hbWVdKToKKyAg
ICAgICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluTmFtZV0pOgorICAgICAgICAoK1tX
S0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NDbGFzc10pOgorICAgICAgICBBZGQgc29t
ZSBrbm9icywgd2l0aCByZWFzb25hYmxlIGRlZmF1bHRzLCBmb3IgZXhwZXJpbWVudGF0aW9uLgor
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDct
MDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBUYWtlIGEgcHJv
Y2VzcyBhc3NlcnRpb24gaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyB3aGVuIGhvbGRpbmcgbG9ja2Vk
IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54
Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCmlu
ZGV4IDlmN2NjZTUxMzdjZTZmZmYyNGMwNWI2NzYxNmMwZDYwZjNmMWVhNTEuLmRkZjgwYjYyNDZl
ODcwZjQ2NjdmMDQyMDczOTRjZTA3NTMyNjY0YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJjZS9XZWJLaXQvQ29uZmln
dXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC05Myw2ICs5Myw5IEBAIFdLX1BERktJVF9MREZM
QUdTX2lwaG9uZXNpbXVsYXRvcltzZGs9aXBob25lKjExLipdID0gOwogV0tfUERGS0lUX0xERkxB
R1NfbWFjY2F0YWx5c3QgPSAkKFdLX1BERktJVF9MREZMQUdTX21hY2NhdGFseXN0JChXS19NQUNP
U18xMTAwKSk7CiBXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdF9NQUNPU19TSU5DRV8xMTAw
ID0gJChXS19QREZLSVRfTERGTEFHU19pcGhvbmVvcyk7CiAKK1dLX1BST1RPVFlQRV9UT09MU19M
REZMQUdTID0gJChXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFHU18kKFdLX0NPQ09BX1RPVUNIKSk7
CitXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFHU19jb2NvYXRvdWNoID0gLWZyYW1ld29yayBQcm90
b3R5cGVUb29sczsKKwogV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTID0gJChXS19TQUZFX0JST1dT
SU5HX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19TQUZFX0JST1dTSU5HX0xERkxB
R1NfaXBob25lb3MgPSAtZnJhbWV3b3JrIFNhZmFyaVNhZmVCcm93c2luZzsKIFdLX1NBRkVfQlJP
V1NJTkdfTERGTEFHU19pcGhvbmVvc1tzZGs9aXBob25lKjEwLipdID0gOwpAQCAtMTQzLDcgKzE0
Niw3IEBAIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNjYXRhbHlzdCA9IC1sbmV0
d29ya2V4dGVuc2lvbjsKIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNvc3ggPSAt
d2Vha19saWJyYXJ5IC91c3IvbGliL2xpYm5ldHdvcmtleHRlbnNpb24uZHlsaWI7CiBXS19MSUJO
RVRXT1JLRVhURU5TSU9OX0xERkxBR1NfdHZvcyA9IDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZ
X0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVk
aW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJh
bWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8g
LWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExl
Z2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFH
UykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykg
JChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1Mp
ICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BS
RURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJ
Q1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQo
V0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklM
RV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChX
S19QREZLSVRfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdL
X1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CitGUkFN
RVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAt
ZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsg
Q29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1m
cmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1m
cmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUND
RVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9T
RVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZM
QUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERG
TEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRF
TlNJT05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xE
RkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VT
VEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19M
REZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZB
Q0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElG
SUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVD
VE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBD
Kysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVs
ZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVk
IGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0
OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVh
bUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19z
dHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNf
MTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Vk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2Nh
dG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1J
Y05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3Ry
ZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Q
cm90b3R5cGVUb29sc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1Byb3Rv
dHlwZVRvb2xzU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzk4OWUxODZiMmQ2MjU5MGI3MGRlN2JmNGQ5NTY1
NzIwYzJjMmMwZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9Qcm90b3R5cGVUb29sc1NQSS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8UHJvdG90eXBlVG9vbHMvUHJv
dG90eXBlVG9vbHMuaD4KKworI2Vsc2UKKworQGludGVyZmFjZSBQVFNldHRpbmdzIDogTlNPYmpl
Y3QgPE5TQ29weWluZz4KK0BlbmQKKworQGludGVyZmFjZSBQVERvbWFpbiA6IE5TT2JqZWN0Cisr
IChfX2tpbmRvZiBQVFNldHRpbmdzICopcm9vdFNldHRpbmdzOworQGVuZAorCitAaW50ZXJmYWNl
IFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVXaXRoVGl0bGU6KE5T
U3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsKKysgKFBUU2VjdGlv
biAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5TU3RyaW5nICopdGl0
bGU7CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSb3cgOiBOU09iamVjdCA8TlNDb3B5aW5nLCBOU1Nl
Y3VyZUNvZGluZz4KKysgKGluc3RhbmNldHlwZSlyb3dXaXRoVGl0bGU6KE5TU3RyaW5nICopc3Rh
dGljVGl0bGUgdmFsdWVLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGg7CistIChpZCl2YWx1ZVZh
bGlkYXRvcjooaWQoXikoaWQgcHJvcG9zZWRWYWx1ZSwgaWQgc2V0dGluZ3MpKXZhbGlkYXRvcjsK
Ky0gKGlkKWNvbmRpdGlvbjooTlNQcmVkaWNhdGUgKiljb25kaXRpb247CitAZW5kCisKK0BpbnRl
cmZhY2UgUFRTUm93IDogUFRSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFN3aXRjaFJvdyA6IFBU
U1JvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IDogUFRTUm93CistIChpZCltaW5W
YWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZTsKK0BlbmQK
KworQGludGVyZmFjZSBQVEJ1dHRvblJvdyA6IFBUU1JvdworKyAoaW5zdGFuY2V0eXBlKXJvd1dp
dGhUaXRsZTooTlNTdHJpbmcgKilzdGF0aWNUaXRsZSBhY3Rpb246KFBUUm93QWN0aW9uICopYWN0
aW9uOworQGVuZAorCitAaW50ZXJmYWNlIFBUUm93QWN0aW9uIDogTlNPYmplY3QKK0BlbmQKKwor
QGludGVyZmFjZSBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gOiBQVFJvd0FjdGlv
bgorKyAoaW5zdGFuY2V0eXBlKWFjdGlvbjsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKaW5kZXggNDA1MGM0MDNjNDZkNTY0YzJlOTgzYzVmMjY1NTUxYzY5NzVjZThmZC4uZTZm
NmMwZGI3ZDJhNjE5MDA5OGNkZjg5NzFmMmJjMDIzYjJmZjgzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dApAQCAtNDg5LDYgKzQ4OSw4IEBAIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJl
UmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0K
IFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2lu
Lm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIu
bW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzLm1tCiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1
cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRv
ci5tbQogVUlQcm9jZXNzL2lvcy9XS01vZGVsSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5t
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggMDk1
MDg2Y2QxZjlkNWY2OWY3YTdhZTE5OGVmOWE5ZmNlMGM0YmZmMC4uNzYwNjU5MDQ3ZDFhYTJiNWRm
N2FlZTQwZDE0MTRkYTM5YTQxNmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5oCkBAIC05NCw2ICs5NCw3IEBAIGVudW0gY2xhc3MgVmlld1N0YWJpbGl0
eUZsYWcgOiB1aW50OF90OwogLSAodm9pZClfd2ViVmlld0Rlc3Ryb3llZDsKIAogLSAoV0tXZWJW
aWV3ICopd2ViVmlldzsKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldzsKIAogLSAoc3RkOjp1
bmlxdWVfcHRyPFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURyYXdpbmdBcmVhUHJv
eHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jilwcm9jZXNzOwogLSAodm9pZClfcHJvY2Vzc0Rp
ZEV4aXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmlu
ZGV4IDZiMDQ5YjQwN2IxMjFlODkzMDQyZGYzOWExNTFmYzk2MjkxMGVhMmQuLjljOTYzMWIxODBm
NmQ1MjNhMzk3MDVjNzNlNDBlMjA4ZjZmZGQxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0zMjYsNiArMzI2LDExIEBAIC0gKFdLV2ViVmll
dyAqKXdlYlZpZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7CiB9CiAK
Ky0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldworeworICAgIHJldHVybiBfcm9vdENvbnRlbnRW
aWV3LmdldCgpOworfQorCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3
V2luZG93CiB7CiAgICAgW3N1cGVyIHdpbGxNb3ZlVG9XaW5kb3c6bmV3V2luZG93XTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAppbmRleCAzNTZiMzMzMjYyOGVlMWM1MmVhZjZhY2UwZDAwM2M4MGM1YjYxOWI0Li4yNmEx
ZTJkZWZhMTE1MTQzNTUxNDhkZWU1ZGFkY2Q5YzE3YTQyMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0z
OSw2ICszOSw3IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgiCiAjaW1wb3J0
ICJUcmFuc2FjdGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tIb3Zl
clBsYXR0ZXIuaCIKICNpbXBvcnQgPFdlYktpdC9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tBaXJQbGF5Um91dGVQaWNrZXIuaD4KICNpbXBvcnQgPFdlYktpdC9X
S0NvbnRhY3RQaWNrZXIuaD4KQEAgLTI5NSw2ICsyOTYsMTAgQEAgdXNpbmcgSW1hZ2VBbmFseXNp
c1JlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVz
dElkZW4KICAgICBSZXRhaW5QdHI8V0tIb3Zlckdlc3R1cmVSZWNvZ25pemVyPiBfaG92ZXJHZXN0
dXJlUmVjb2duaXplcjsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBP
UlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgUmV0YWluUHRyPFdL
SG92ZXJQbGF0dGVyPiBfaG92ZXJQbGF0dGVyOworI2VuZGlmCisKICNpZiBIQVZFKFBFTkNJTEtJ
VF9URVhUX0lOUFVUKQogICAgIFJldGFpblB0cjxVSUluZGlyZWN0U2NyaWJibGVJbnRlcmFjdGlv
bj4gX3NjcmliYmxlSW50ZXJhY3Rpb247CiAjZW5kaWYKQEAgLTUyNiw2ICs1MzEsOSBAQCB1c2lu
ZyBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdl
QW5hbHlzaXNSZXF1ZXN0SWRlbgogICAgICwgVUlEcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZSwgVUlE
cm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZQogI2VuZGlmCiAgICAgLCBXS1RvdWNoQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8
fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgICwgV0tIb3ZlclBsYXR0ZXJE
ZWxlZ2F0ZQorI2VuZGlmCiA+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQ
b2ludCBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDM3ZTZiMzc5
Y2JmMmM3ZmQ0YjkyZThhZWIyNzU0MzVmMzc0ODhmNDAuLjFkN2NhNTk0NGY4ZmY0YzkxN2ZmOGQ4
YzVmNTllY2YyOWJkOGRiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTYsNiArNTYsOCBAQAogI2lt
cG9ydCAiV0tGb3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5h
bC5oIgogI2ltcG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIgor
I2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyUGFyYW1l
dGVycy5oIgogI2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCIKICNp
bXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW5zcGVj
dG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCkBAIC0xMjgsNiArMTMwLDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25D
aGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgorI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtMTM2LDYgKzEzOSw3IEBACiAjaW1wb3J0
IDxwYWwvc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0
cmlidXRlZFN0cmluZ1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9z
L01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmg+CkBAIC04OTQsNiArODk4LDEwIEBAIC0gKHZvaWQp
c2V0VXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIHNldFVwSG92ZXJHZXN0dXJlUmVjb2duaXplcl07
CiAjZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUo
SE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIF9ob3ZlclBsYXR0ZXIgPSBhZG9wdE5TKFtb
V0tIb3ZlclBsYXR0ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLnJvb3RDb250ZW50VmlldyBk
ZWxlZ2F0ZTpzZWxmXSk7CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dO
SVpFUikKICAgICBfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbX1VJTG9va3Vw
R2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxl
Y3RvcihfbG9va3VwR2VzdHVyZVJlY29nbml6ZWQ6KV0pOwogICAgIFtfbG9va3VwR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CkBAIC0xMDgxLDYgKzEwODksMTEgQEAgLSAodm9p
ZCljbGVhblVwSW50ZXJhY3Rpb24KICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpf
aG92ZXJHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRf
V0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQor
ICAgIFtfaG92ZXJQbGF0dGVyIGludmFsaWRhdGVdOworICAgIF9ob3ZlclBsYXR0ZXIgPSBuaWw7
CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpFUikKICAgICBbX2xv
b2t1cEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW3NlbGYgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6X2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTQ3
NDAsNiArNDc1MywxMCBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAgICAg
X2FjdGl2ZVRleHRJbnRlcmFjdGlvbkNvdW50ID0gMDsKICAgICBfdHJlYXRBc0NvbnRlbnRFZGl0
YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87CiAgICAgW3NlbGYgX2ludmFsaWRh
dGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl07CisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hv
dmVyUGxhdHRlciBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246Tk9dOworI2VuZGlmCiB9CiAK
ICNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk1MDIsNiArOTUxOSw4IEBA
IC0gKHZvaWQpbW91c2VHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLTW91c2VHZXN0dXJlUmVj
b2duaXplciAqKWdlc3R1cmVSZWNvZ25pCiAgICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2lu
ZG93XTsKIAogICAgIF9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KCpldmVudCk7CisgICAgaWYgKFdL
SG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5ncy5wbGF0dGVyRW5hYmxlZEZvck1vdXNlKQor
ICAgICAgICBbX2hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50OmV2ZW50LT5wb3NpdGlvbigpXTsK
IH0KIAogLSAodm9pZClfY29uZmlndXJlTW91c2VHZXN0dXJlUmVjb2duaXplcgpAQCAtOTUzNiwx
MCArOTU1NSwyMSBAQCAtICh2b2lkKWhvdmVyR2VzdHVyZVJlY29nbml6ZXJDaGFuZ2VkOihXS0hv
dmVyR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaQogICAgICAgICByZXR1cm47CiAK
ICAgICBfcGFnZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxh
dHRlckRvbWFpbi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAg
W19ob3ZlclBsYXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQogCisjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIp
CisKKy0gKHZvaWQpcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjooV0tIb3ZlclBs
YXR0ZXIgKilob3ZlclBsYXR0ZXIgd2l0aFJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCit7
CisgICAgW3NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Y29tcGxldGlvbkhh
bmRsZXIgZm9yUmVxdWVzdDpyZXF1ZXN0XTsKK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoTUVE
SUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZv
aWQpX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRh
cmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51
SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhh
bmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxh
dHRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNDljZDZiZjRmMmMyMmExMDBmNDEyMzQwYzVmYzZhMzA3NDVlY2Y3YwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5o
CkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNF
X1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKK0BjbGFzcyBX
S0hvdmVyUGxhdHRlcjsKKworQHByb3RvY29sIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKKworQHJl
cXVpcmVkCistICh2b2lkKXBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92
ZXJQbGF0dGVyICopaG92ZXJQbGF0dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0JilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxl
cjsKKworQGVuZAorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyIDogTlNPYmplY3QKKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldyBkZWxlZ2F0ZTooaWQgPFdL
SG92ZXJQbGF0dGVyRGVsZWdhdGU+KWRlbGVnYXRlOworCistICh2b2lkKWRpc21pc3NQbGF0dGVy
V2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uOworCistICh2b2lkKWludmFsaWRhdGU7
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYkNvcmU6OkZsb2F0UG9pbnQgaG92
ZXJQb2ludDsKKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBP
UlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTQ3NWIwYzVjMDAx
NGNmMDkxNGFlYTJlNjg3MGNlMzE0Yjc4OTZmMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpAQCAtMCwwICsxLDM0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIu
aCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJf
R0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlQ0FMYXllckV4dHJhcy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3Jl
U1BJLmg+CisKK3N0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gY3JlYXRlQmFzZUFu
aW1hdGlvbigpCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4u
cm9vdFNldHRpbmdzOworICAgIGlmIChwYXJhbWV0ZXJzLnVzZVNwcmluZykgeworICAgICAgICBS
ZXRhaW5QdHI8Q0FTcHJpbmdBbmltYXRpb24+IHNwcmluZyA9IGFkb3B0TlMoW1tDQVNwcmluZ0Fu
aW1hdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBbc3ByaW5nIHNldE1hc3M6cGFyYW1ldGVy
cy5zcHJpbmdNYXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXRTdGlmZm5lc3M6cGFyYW1ldGVycy5z
cHJpbmdTdGlmZm5lc3NdOworICAgICAgICBbc3ByaW5nIHNldERhbXBpbmc6cGFyYW1ldGVycy5z
cHJpbmdEYW1waW5nXTsKKyAgICAgICAgW3NwcmluZyBzZXRGaWxsTW9kZTprQ0FGaWxsTW9kZUJh
Y2t3YXJkc107CisgICAgICAgIFtzcHJpbmcgc2V0RHVyYXRpb246W3NwcmluZyBzZXR0bGluZ0R1
cmF0aW9uXV07CisgICAgICAgIHJldHVybiBzcHJpbmc7CisgICAgfQorCisgICAgUmV0YWluUHRy
PENBQmFzaWNBbmltYXRpb24+IGVhc2UgPSBhZG9wdE5TKFtbQ0FCYXNpY0FuaW1hdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgIFtlYXNlIHNldEZpbGxNb2RlOmtDQUZpbGxNb2RlQmFja3dhcmRzXTsK
KyAgICBbZWFzZSBzZXREdXJhdGlvbjpwYXJhbWV0ZXJzLmR1cmF0aW9uXTsKKyAgICBbZWFzZSBz
ZXRUaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6
a0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVhc2VJbl1dOworICAgIHJldHVybiBlYXNlOworfQorCitz
dGF0aWMgdm9pZCBhZGRBbmltYXRpb24oQ0FMYXllciAqbGF5ZXIsIE5TU3RyaW5nICprZXksIGlk
IGZyb21WYWx1ZSwgaWQgdG9WYWx1ZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlv
bj4gYW5pbWF0aW9uID0gY3JlYXRlQmFzZUFuaW1hdGlvbigpOworICAgIFthbmltYXRpb24gc2V0
S2V5UGF0aDprZXldOworICAgIFthbmltYXRpb24gc2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07Cisg
ICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOnRvVmFsdWVdOworICAgIFtsYXllciBzZXRWYWx1ZTp0
b1ZhbHVlIGZvcktleTprZXldOworICAgIFtsYXllciBhZGRBbmltYXRpb246YW5pbWF0aW9uLmdl
dCgpIGZvcktleTprZXldOworfTsKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1w
b3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJBZGRpdGlvbnMubW0+CisjZWxzZQor
c3RhdGljIENHRmxvYXQgc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3BlcnRpZXMoQ0FMYXll
ciAqKSB7IHJldHVybiAwOyB9CitzdGF0aWMgdm9pZCBhZGRBZGRpdGlvbmFsSW5jb21pbmdBbmlt
YXRpb25zKENBTGF5ZXIgKiwgQ0dGbG9hdCkgeyB9CitzdGF0aWMgdm9pZCBhZGRBZGRpdGlvbmFs
RGlzbWlzc2FsQW5pbWF0aW9ucyhDQUxheWVyICopIHsgfQorI2VuZGlmCisKK0BpbXBsZW1lbnRh
dGlvbiBXS0hvdmVyUGxhdHRlciB7CisgICAgX193ZWFrIFVJVmlldyAqX3ZpZXc7CisgICAgX193
ZWFrIGlkIDxXS0hvdmVyUGxhdHRlckRlbGVnYXRlPiBfZGVsZWdhdGU7CisgICAgV2ViQ29yZTo6
RmxvYXRQb2ludCBfaG92ZXJQb2ludDsKKworICAgIEJPT0wgX2hhc091dHN0YW5kaW5nUG9zaXRp
b25JbmZvcm1hdGlvblJlcXVlc3Q7CisgICAgQk9PTCBfaGFzRGVmZXJyZWRQb3NpdGlvbkluZm9y
bWF0aW9uUmVxdWVzdDsKKworICAgIEJPT0wgX2lzU2l0dGluZ0Rvd247CisKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgX2xhc3RIb3ZlckJvdW5kczsKKworICAgIFJldGFpblB0cjxDQVNoYXBlTGF5
ZXI+IF9sYXN0TWFza0xheWVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfbGFzdFNoYWRvd0xh
eWVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfbGFzdFBsYXR0ZXJMYXllcjsKKyAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gX2xhc3RCYWNrZ3JvdW5kTGF5ZXI7CisgICAgUmV0YWluUHRyPENBUG9y
dGFsTGF5ZXI+IF9sYXN0U25hcHNob3RMYXllcjsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoVmlldzooVUlWaWV3ICopdmlldyBkZWxlZ2F0ZTooaWQgPFdLSG92ZXJQbGF0dGVyRGVsZWdh
dGU+KWRlbGVnYXRlCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21h
aW4ucm9vdFNldHRpbmdzOworICAgIGlmICghcGFyYW1ldGVycy5wbGF0dGVyRW5hYmxlZEZvck1v
dXNlICYmICFwYXJhbWV0ZXJzLnBsYXR0ZXJFbmFibGVkRm9ySG92ZXIpCisgICAgICAgIHJldHVy
biBuaWw7CisKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKworICAgIF92aWV3ID0gdmlldzsKKyAgICBfZGVsZWdhdGUgPSBkZWxl
Z2F0ZTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAg
ICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246Tk9dOworICAgIF92aWV3ID0gbmls
OworICAgIF9kZWxlZ2F0ZSA9IG5pbDsKK30KKworLSAoV2ViQ29yZTo6RmxvYXRQb2ludClob3Zl
clBvaW50Cit7CisgICAgcmV0dXJuIF9ob3ZlclBvaW50OworfQorCistICh2b2lkKXNldEhvdmVy
UG9pbnQ6KFdlYkNvcmU6OkZsb2F0UG9pbnQpcG9pbnQKK3sKKyAgICBfaG92ZXJQb2ludCA9IHBv
aW50OworCisgICAgaWYgKF9oYXNPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KSB7CisgICAgICAgIF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ID0gWUVT
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW3NlbGYgcmVxdWVzdFBvc2l0aW9uSW5m
b3JtYXRpb25Gb3JDdXJyZW50SG92ZXJQb2ludF07Cit9CisKKy0gKHZvaWQpcmVxdWVzdFBvc2l0
aW9uSW5mb3JtYXRpb25Gb3JDdXJyZW50SG92ZXJQb2ludAoreworICAgIF9oYXNEZWZlcnJlZFBv
c2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ID0gTk87CisgICAgX2hhc091dHN0YW5kaW5nUG9zaXRp
b25JbmZvcm1hdGlvblJlcXVlc3QgPSBZRVM7CisgICAgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdCBwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCB7IFdlYkNvcmU6OnJvdW5k
ZWRJbnRQb2ludChfaG92ZXJQb2ludCkgfTsKKyAgICAvLyBGSVhNRTogVGhpcyBUZXh0SW5kaWNh
dG9yIGRvZXNuJ3QgbmVlZCBhIHNuYXBzaG90IChhbmQgYXZvaWRpbmcgaXQgd291bGQgYmUgYSBz
aXphYmxlIHBlcmZvcm1hbmNlIHdpbikuCisgICAgcG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Qu
aW5jbHVkZUxpbmtJbmRpY2F0b3IgPSBZRVM7CisgICAgW19kZWxlZ2F0ZSBwb3NpdGlvbkluZm9y
bWF0aW9uRm9ySG92ZXJQbGF0dGVyOnNlbGYgd2l0aFJlcXVlc3Q6cG9zaXRpb25JbmZvcm1hdGlv
blJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6W3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tIb3Zl
clBsYXR0ZXI+KHNlbGYpXSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biBpbmZvcm1hdGlvbikgeworICAgICAgICBbd2Vha1NlbGYgZGlkUmVjZWl2ZVBvc2l0aW9uSW5m
b3JtYXRpb246aW5mb3JtYXRpb25dOworICAgIH1dOworfQorCistICh2b2lkKWRpZFJlY2VpdmVQ
b3NpdGlvbkluZm9ybWF0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uJilpbmZvcm1hdGlvbgoreworICAgIF9oYXNPdXRzdGFuZGluZ1Bvc2l0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0ID0gTk87CisgICAgaWYgKF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0KQorICAgICAgICBbc2VsZiByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZv
ckN1cnJlbnRIb3ZlclBvaW50XTsKKworICAgIGF1dG8gcHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0
ID0gaW5mb3JtYXRpb24ubGlua0luZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzOworICAgIGlmIChwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QuaXNFbXB0eSgpKQor
ICAgICAgICBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgPSBpbmZvcm1hdGlvbi5ib3VuZHM7CisK
KyAgICBpZiAoIWluZm9ybWF0aW9uLmlzTGluayB8fCBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3Qu
aXNFbXB0eSgpKSB7CisgICAgICAgIF9sYXN0SG92ZXJCb3VuZHMgPSB7IH07CisgICAgICAgIFtz
ZWxmIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpZRVNdOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKF9sYXN0SG92ZXJCb3VuZHMgPT0gcHJlSW5mbGF0aW9uQm91bmRpbmdS
ZWN0ICYmICFfaXNTaXR0aW5nRG93bikKKyAgICAgICAgcmV0dXJuOworICAgIF9sYXN0SG92ZXJC
b3VuZHMgPSBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3Q7CisKKyAgICBhdXRvIHBhcmFtZXRlcnMg
PSBXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7CisgICAgYXV0byBhbmltYXRlQmV0
d2VlblBsYXR0ZXJzID0gcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzOworICAgIGlm
ICghYW5pbWF0ZUJldHdlZW5QbGF0dGVycykKKyAgICAgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJX
aXRoQW5pbWF0aW9uOllFU107CisKKyAgICBfaXNTaXR0aW5nRG93biA9IGZhbHNlOworCisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kaW5nUmVjdDsKKyAgICBWZWN0b3I8V2ViQ29yZTo6Rmxv
YXRSZWN0PiBpbmZsYXRlZEluZGljYXRlZFJlY3RzOworICAgIGF1dG8gaW5kaWNhdGVkUmVjdHMg
PSBpbmZvcm1hdGlvbi5saW5rSW5kaWNhdG9yLnRleHRSZWN0c0luQm91bmRpbmdSZWN0Q29vcmRp
bmF0ZXM7CisgICAgYXV0byBwbGF0dGVyUGFkZGluZyA9IHBhcmFtZXRlcnMucGxhdHRlclBhZGRp
bmc7CisgICAgaWYgKGluZGljYXRlZFJlY3RzLmlzRW1wdHkoKSkgeworICAgICAgICBib3VuZGlu
Z1JlY3QgPSBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3Q7CisgICAgICAgIGJvdW5kaW5nUmVjdC5p
bmZsYXRlKHBsYXR0ZXJQYWRkaW5nKTsKKyAgICAgICAgaW5mbGF0ZWRJbmRpY2F0ZWRSZWN0cy5h
cHBlbmQocHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0KTsKKyAgICB9IGVsc2UgeworICAgICAgICBm
b3IgKGF1dG8gcmVjdCA6IGluZGljYXRlZFJlY3RzKSB7CisgICAgICAgICAgICByZWN0LmluZmxh
dGUocGxhdHRlclBhZGRpbmcpOworICAgICAgICAgICAgaW5mbGF0ZWRJbmRpY2F0ZWRSZWN0cy5h
cHBlbmQocmVjdCk7CisgICAgICAgICAgICBib3VuZGluZ1JlY3QudW5pdGUocmVjdCk7CisgICAg
ICAgIH0KKyAgICAgICAgYm91bmRpbmdSZWN0Lm1vdmVCeShwcmVJbmZsYXRpb25Cb3VuZGluZ1Jl
Y3QubG9jYXRpb24oKSk7CisgICAgfQorCisgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gaW5mbGF0
ZWRQYXRoID0gV2ViQ29yZTo6UGF0aFV0aWxpdGllczo6cGF0aFdpdGhTaHJpbmtXcmFwcGVkUmVj
dHMoaW5mbGF0ZWRJbmRpY2F0ZWRSZWN0cywgcGFyYW1ldGVycy5wbGF0dGVyQ29ybmVyUmFkaXVz
KS5wbGF0Zm9ybVBhdGgoKTsKKyAgICBhdXRvIHBsYXR0ZXJJbmZsYXRpb25TaXplID0gcGFyYW1l
dGVycy5wbGF0dGVySW5mbGF0aW9uU2l6ZTsKKyAgICBDR0Zsb2F0IHBsYXR0ZXJTY2FsZSA9IENH
RmxvYXRNaW4oKGJvdW5kaW5nUmVjdC53aWR0aCgpICsgcGxhdHRlckluZmxhdGlvblNpemUpIC8g
Ym91bmRpbmdSZWN0LndpZHRoKCksIChib3VuZGluZ1JlY3QuaGVpZ2h0KCkgKyBwbGF0dGVySW5m
bGF0aW9uU2l6ZSkgLyBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpOworCisgICAgLy8gRklYTUU6IENv
bnNpZGVyIHVzaW5nIFVJS2l0J3MgaW4tcHJvY2VzcyByZXRhcmdldGFibGUgYW5pbWF0aW9ucywg
YmVjYXVzZSByZWFkaW5nIGFuaW1hdGlvbiBzdGF0ZSBmcm9tIHRoZSBwcmVzZW50YXRpb24gbGF5
ZXIgaXMgcmFjeS4KKyAgICBib29sIGhhZE9sZExheWVycyA9ICEhX2xhc3RTaGFkb3dMYXllcjsK
KyAgICBDR1JlY3Qgb2xkU2hhZG93Qm91bmRzID0gW19sYXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0
aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBDR1BvaW50IG9sZFNoYWRvd1Bvc2l0aW9uID0gW19sYXN0
U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIENHRmxvYXQgb2xk
U2hhZG93T3BhY2l0eSA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5zaGFk
b3dPcGFjaXR5OworICAgIENHRmxvYXQgb2xkU2hhZG93UmFkaXVzID0gW19sYXN0U2hhZG93TGF5
ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnNoYWRvd1JhZGl1czsKKyAgICBDQVRyYW5zZm9ybTNEIG9s
ZFNoYWRvd1N1YmxheWVyVHJhbnNmb3JtID0gX2xhc3RTaGFkb3dMYXllciA/IFtfbGFzdFNoYWRv
d0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5zdWJsYXllclRyYW5zZm9ybSA6IENBVHJhbnNmb3Jt
M0RJZGVudGl0eTsKKyAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBvbGRTaGFkb3dQYXRoID0gW19s
YXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnNoYWRvd1BhdGg7CisgICAgUmV0YWlu
UHRyPENBTGF5ZXI+IHNoYWRvdyA9IF9sYXN0U2hhZG93TGF5ZXIgPzogYWRvcHROUyhbW0NBTGF5
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIHNoYWRvd0ZyYW1lID0gQ0dSZWN0T2Zmc2V0KGJv
dW5kaW5nUmVjdCwgcGxhdHRlclBhZGRpbmcsIHBsYXR0ZXJQYWRkaW5nKTsKKyAgICBbc2hhZG93
IHNldEZyYW1lOnNoYWRvd0ZyYW1lXTsKKyAgICBbc2hhZG93IHNldFNoYWRvd0NvbG9yOlVJQ29s
b3IuYmxhY2tDb2xvci5DR0NvbG9yXTsKKyAgICBbc2hhZG93IHNldFNoYWRvd1JhZGl1czpwYXJh
bWV0ZXJzLnBsYXR0ZXJTaGFkb3dSYWRpdXNdOworICAgIFtzaGFkb3cgc2V0U2hhZG93T2Zmc2V0
OkNHU2l6ZVplcm9dOworICAgIFtzaGFkb3cgc2V0U2hhZG93T3BhY2l0eTpwYXJhbWV0ZXJzLnBs
YXR0ZXJTaGFkb3dPcGFjaXR5XTsKKyAgICBbc2hhZG93IHNldFN1YmxheWVyVHJhbnNmb3JtOkNB
VHJhbnNmb3JtM0RNYWtlU2NhbGUocGxhdHRlclNjYWxlLCBwbGF0dGVyU2NhbGUsIDEpXTsKKyAg
ICBbc2hhZG93IHNldFNoYWRvd1BhdGg6aW5mbGF0ZWRQYXRoLmdldCgpXTsKKyAgICBbc2hhZG93
IHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW1tbX3ZpZXcgc3VwZXJ2aWV3XSBsYXllcl0g
YWRkU3VibGF5ZXI6c2hhZG93LmdldCgpXTsKKworICAgIENHUmVjdCBvbGRQbGF0dGVyQm91bmRz
ID0gW19sYXN0UGxhdHRlckxheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQ
b2ludCBvbGRQbGF0dGVyUG9zaXRpb24gPSBbX2xhc3RQbGF0dGVyTGF5ZXIgcHJlc2VudGF0aW9u
TGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0cjxDQUxheWVyPiBwbGF0dGVyID0gX2xhc3RQ
bGF0dGVyTGF5ZXIgPzogYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbcGxh
dHRlciBzZXRCb3VuZHM6Q0dSZWN0TWFrZSgwLCAwLCBib3VuZGluZ1JlY3Qud2lkdGgoKSwgYm91
bmRpbmdSZWN0LmhlaWdodCgpKV07CisgICAgW3BsYXR0ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1h
a2Uoc2hhZG93RnJhbWUuc2l6ZS53aWR0aCAvIDIgLSBwbGF0dGVyUGFkZGluZywgc2hhZG93RnJh
bWUuc2l6ZS5oZWlnaHQgLyAyIC0gcGxhdHRlclBhZGRpbmcpXTsKKyAgICBhdXRvIG9sZFBsYXR0
ZXJBZGRpdGlvbmFsQW5pbWF0aW9uVmFsdWUgPSBzZXRBZGRpdGlvbmFsUGxhdHRlckxheWVyUHJv
cGVydGllcyhwbGF0dGVyLmdldCgpLCBbX2xhc3RQbGF0dGVyTGF5ZXIgcHJlc2VudGF0aW9uTGF5
ZXJdKTsKKyAgICBbcGxhdHRlciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtzaGFkb3cg
YWRkU3VibGF5ZXI6cGxhdHRlci5nZXQoKV07CisKKyAgICBDR1JlY3Qgb2xkTWFza0JvdW5kcyA9
IFtfbGFzdE1hc2tMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQg
b2xkTWFza1Bvc2l0aW9uID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3Np
dGlvbjsKKyAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBvbGRNYXNrUGF0aCA9IFtfbGFzdE1hc2tM
YXllciBwcmVzZW50YXRpb25MYXllcl0ucGF0aDsKKyAgICBSZXRhaW5QdHI8Q0FTaGFwZUxheWVy
PiBtYXNrID0gX2xhc3RNYXNrTGF5ZXIgPzogYWRvcHROUyhbW0NBU2hhcGVMYXllciBhbGxvY10g
aW5pdF0pOworICAgIFttYXNrIHNldEZpbGxDb2xvcjpbVUlDb2xvciBibGFja0NvbG9yXS5DR0Nv
bG9yXTsKKyAgICBbbWFzayBzZXRCb3VuZHM6Q0dSZWN0TWFrZSgwLCAwLCBib3VuZGluZ1JlY3Qu
d2lkdGgoKSwgYm91bmRpbmdSZWN0LmhlaWdodCgpKV07CisgICAgW21hc2sgc2V0UG9zaXRpb246
Q0dQb2ludE1ha2UoYm91bmRpbmdSZWN0LndpZHRoKCkgLyAyICsgcGxhdHRlclBhZGRpbmcsIGJv
dW5kaW5nUmVjdC5oZWlnaHQoKSAvIDIgKyBwbGF0dGVyUGFkZGluZyldOworICAgIFttYXNrIHNl
dFBhdGg6aW5mbGF0ZWRQYXRoLmdldCgpXTsKKyAgICBbbWFzayB3ZWJfZGlzYWJsZUFsbEFjdGlv
bnNdOworCisgICAgQ0dSZWN0IG9sZEJhY2tncm91bmRCb3VuZHMgPSBbX2xhc3RCYWNrZ3JvdW5k
TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBDR1BvaW50IG9sZEJhY2tncm91
bmRQb3NpdGlvbiA9IFtfbGFzdEJhY2tncm91bmRMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9z
aXRpb247CisgICAgUmV0YWluUHRyPENHQ29sb3JSZWY+IG9sZEJhY2tncm91bmRDb2xvciA9IFtf
bGFzdEJhY2tncm91bmRMYXllciBwcmVzZW50YXRpb25MYXllcl0uYmFja2dyb3VuZENvbG9yOwor
ICAgIFJldGFpblB0cjxDQUxheWVyPiBiYWNrZ3JvdW5kID0gX2xhc3RCYWNrZ3JvdW5kTGF5ZXIg
PzogYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbYmFja2dyb3VuZCBzZXRG
cmFtZTpbcGxhdHRlciBib3VuZHNdXTsKKyAgICBbYmFja2dyb3VuZCBzZXRCYWNrZ3JvdW5kQ29s
b3I6Y2FjaGVkQ0dDb2xvcihpbmZvcm1hdGlvbi5saW5rSW5kaWNhdG9yLmVzdGltYXRlZEJhY2tn
cm91bmRDb2xvcildOworICAgIFtiYWNrZ3JvdW5kIHNldE1hc2s6bWFzay5nZXQoKV07CisgICAg
W2JhY2tncm91bmQgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbcGxhdHRlciBhZGRTdWJs
YXllcjpiYWNrZ3JvdW5kLmdldCgpXTsKKworICAgIENHUmVjdCBvbGRTbmFwc2hvdEJvdW5kcyA9
IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBDR1Bv
aW50IG9sZFNuYXBzaG90UG9zaXRpb24gPSBbX2xhc3RTbmFwc2hvdExheWVyIHByZXNlbnRhdGlv
bkxheWVyXS5wb3NpdGlvbjsKKyAgICBDQVRyYW5zZm9ybTNEIG9sZFNuYXBzaG90U3VibGF5ZXJU
cmFuc2Zvcm0gPSBfbGFzdFNuYXBzaG90TGF5ZXIgPyBbX2xhc3RTbmFwc2hvdExheWVyIHByZXNl
bnRhdGlvbkxheWVyXS5zdWJsYXllclRyYW5zZm9ybSA6IENBVHJhbnNmb3JtM0RJZGVudGl0eTsK
KyAgICBSZXRhaW5QdHI8Q0FQb3J0YWxMYXllcj4gc25hcHNob3QgPSBfbGFzdFNuYXBzaG90TGF5
ZXIgPzogYWRvcHROUyhbW0NBUG9ydGFsTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc25hcHNo
b3Qgc2V0U291cmNlTGF5ZXI6W192aWV3IGxheWVyXV07CisgICAgW3NuYXBzaG90IHNldE1hdGNo
ZXNQb3NpdGlvbjpZRVNdOworICAgIFtzbmFwc2hvdCBzZXRNYXRjaGVzVHJhbnNmb3JtOllFU107
CisgICAgW3NuYXBzaG90IHNldEFuY2hvclBvaW50OkNHUG9pbnRNYWtlKDAuNSwgMC41KV07Cisg
ICAgW3NuYXBzaG90IHNldFN1YmxheWVyVHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUo
cGxhdHRlclNjYWxlLCBwbGF0dGVyU2NhbGUsIDEpXTsKKyAgICBbc25hcHNob3Qgc2V0TWFza3NU
b0JvdW5kczpZRVNdOworICAgIFtzbmFwc2hvdCBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIGJv
dW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbc25hcHNo
b3Qgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbYmFja2dyb3VuZCBhZGRTdWJsYXllcjpz
bmFwc2hvdC5nZXQoKV07CisKKyAgICBCT09MIG5lZWRzQW5pbWF0ZUluID0gIV9sYXN0UGxhdHRl
ckxheWVyIHx8IF9pc1NpdHRpbmdEb3duOworICAgIGlmIChuZWVkc0FuaW1hdGVJbikgeworICAg
ICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd09wYWNpdHkiLCBAKG9sZFNo
YWRvd09wYWNpdHkpLCBAKFtzaGFkb3cgc2hhZG93T3BhY2l0eV0pKTsKKyAgICAgICAgYWRkQW5p
bWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJzaGFkb3dSYWRpdXMiLCBAKG9sZFNoYWRvd1JhZGl1cyks
IEAoW3NoYWRvdyBzaGFkb3dSYWRpdXNdKSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cu
Z2V0KCksIEAic3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9y
bTNEOm9sZFNoYWRvd1N1YmxheWVyVHJhbnNmb3JtXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFu
c2Zvcm0zRDpbc2hhZG93IHN1YmxheWVyVHJhbnNmb3JtXV0pOworCisgICAgICAgIGFkZEFuaW1h
dGlvbihzbmFwc2hvdC5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVl
V2l0aENBVHJhbnNmb3JtM0Q6b2xkU25hcHNob3RTdWJsYXllclRyYW5zZm9ybV0sIFtOU1ZhbHVl
IHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W3NuYXBzaG90IHN1YmxheWVyVHJhbnNmb3JtXV0pOwor
CisgICAgICAgIGFkZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMocGxhdHRlci5nZXQoKSwg
b2xkUGxhdHRlckFkZGl0aW9uYWxBbmltYXRpb25WYWx1ZSk7CisgICAgfQorCisgICAgaWYgKGFu
aW1hdGVCZXR3ZWVuUGxhdHRlcnMgJiYgaGFkT2xkTGF5ZXJzKSB7CisgICAgICAgIGFkZEFuaW1h
dGlvbihtYXNrLmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRN
YXNrQm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OlttYXNrIGJvdW5kc11dKTsKKyAg
ICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2YWx1
ZVdpdGhDR1BvaW50Om9sZE1hc2tQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6
W21hc2sgcG9zaXRpb25dXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihtYXNrLmdldCgpLCBAInBh
dGgiLCAoaWQpb2xkTWFza1BhdGguZ2V0KCksIChpZClbbWFzayBwYXRoXSk7CisKKyAgICAgICAg
YWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhD
R1JlY3Q6b2xkU2hhZG93Qm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltzaGFkb3cg
Ym91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInBvc2l0aW9u
IiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRTaGFkb3dQb3NpdGlvbl0sIFtOU1ZhbHVl
IHZhbHVlV2l0aENHUG9pbnQ6W3NoYWRvdyBwb3NpdGlvbl1dKTsKKyAgICAgICAgYWRkQW5pbWF0
aW9uKHNoYWRvdy5nZXQoKSwgQCJzaGFkb3dQYXRoIiwgKGlkKW9sZFNoYWRvd1BhdGguZ2V0KCks
IChpZClbc2hhZG93IHNoYWRvd1BhdGhdKTsKKworICAgICAgICBhZGRBbmltYXRpb24ocGxhdHRl
ci5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkUGxhdHRlckJv
dW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpbcGxhdHRlciBib3VuZHNdXSk7CisgICAg
ICAgIGFkZEFuaW1hdGlvbihwbGF0dGVyLmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFs
dWVXaXRoQ0dQb2ludDpvbGRQbGF0dGVyUG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1Bv
aW50OltwbGF0dGVyIHBvc2l0aW9uXV0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihiYWNrZ3Jv
dW5kLmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRCYWNrZ3Jv
dW5kQm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltiYWNrZ3JvdW5kIGJvdW5kc11d
KTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKGJhY2tncm91bmQuZ2V0KCksIEAicG9zaXRpb24iLCBb
TlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZEJhY2tncm91bmRQb3NpdGlvbl0sIFtOU1ZhbHVl
IHZhbHVlV2l0aENHUG9pbnQ6W2JhY2tncm91bmQgcG9zaXRpb25dXSk7CisKKyAgICAgICAgYWRk
QW5pbWF0aW9uKHNuYXBzaG90LmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UmVjdDpvbGRTbmFwc2hvdEJvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpbc25hcHNo
b3QgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAicG9z
aXRpb24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFNuYXBzaG90UG9zaXRpb25dLCBb
TlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltzbmFwc2hvdCBwb3NpdGlvbl1dKTsKKyAgICB9CisK
KyAgICBfbGFzdE1hc2tMYXllciA9IG1hc2s7CisgICAgX2xhc3RTaGFkb3dMYXllciA9IHNoYWRv
dzsKKyAgICBfbGFzdFBsYXR0ZXJMYXllciA9IHBsYXR0ZXI7CisgICAgX2xhc3RCYWNrZ3JvdW5k
TGF5ZXIgPSBiYWNrZ3JvdW5kOworICAgIF9sYXN0U25hcHNob3RMYXllciA9IHNuYXBzaG90Owor
fQorCistICh2b2lkKWRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0
aW9uCit7CisgICAgaWYgKF9pc1NpdHRpbmdEb3duKQorICAgICAgICByZXR1cm47CisgICAgX2lz
U2l0dGluZ0Rvd24gPSB0cnVlOworCisgICAgaWYgKCF3aXRoQW5pbWF0aW9uKSB7CisgICAgICAg
IFtfbGFzdFNoYWRvd0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAgW3NlbGYg
Y2xlYXJMYXllcnNdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgW0NBVHJhbnNhY3Rp
b24gYmVnaW5dOworICAgIFtDQVRyYW5zYWN0aW9uIHNldENvbXBsZXRpb25CbG9jazpbcHJvdGVj
dGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgc2hhZG93TGF5ZXIgPSBfbGFzdFNoYWRvd0xheWVy
XSB7CisgICAgICAgIFtwcm90ZWN0ZWRTZWxmIGRpZEZpbmlzaEFuaW1hdGlvbkZvclNoYWRvdzpz
aGFkb3dMYXllci5nZXQoKV07CisgICAgfV07CisKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hv
dmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U2hh
ZG93TGF5ZXIuZ2V0KCksIEAic2hhZG93T3BhY2l0eSIsIEAoW19sYXN0U2hhZG93TGF5ZXIgc2hh
ZG93T3BhY2l0eV0pLCBAMCk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U2hhZG93TGF5ZXIuZ2V0
KCksIEAic2hhZG93UmFkaXVzIiwgQChbX2xhc3RTaGFkb3dMYXllciBzaGFkb3dSYWRpdXNdKSwg
QDApOworICAgIGFkZEFuaW1hdGlvbihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInN1YmxheWVy
VHJhbnNmb3JtIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbX2xhc3RTaGFkb3dM
YXllciBzdWJsYXllclRyYW5zZm9ybV1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNE
OkNBVHJhbnNmb3JtM0RJZGVudGl0eV0pOworICAgIGFkZEFuaW1hdGlvbihfbGFzdFNuYXBzaG90
TGF5ZXIuZ2V0KCksIEAic3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOltfbGFzdFNuYXBzaG90TGF5ZXIgc3VibGF5ZXJUcmFuc2Zvcm1dXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldKTsKKyAgICBh
ZGRBZGRpdGlvbmFsRGlzbWlzc2FsQW5pbWF0aW9ucyhfbGFzdFBsYXR0ZXJMYXllci5nZXQoKSk7
CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworCisgICAgaWYgKCFwYXJhbWV0ZXJzLmFu
aW1hdGVCZXR3ZWVuUGxhdHRlcnMpCisgICAgICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKK30KKwor
LSAodm9pZClkaWRGaW5pc2hBbmltYXRpb25Gb3JTaGFkb3c6KENBTGF5ZXIgKilzaGFkb3dMYXll
cgoreworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0
aW5nczsKKyAgICBpZiAoIXBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVycykKKyAgICAg
ICAgW3NoYWRvd0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKworICAgIGlmIChfaXNTaXR0
aW5nRG93biAmJiBwYXJhbWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMgJiYgc2hhZG93TGF5
ZXIgPT0gX2xhc3RTaGFkb3dMYXllcikgeworICAgICAgICBbc2hhZG93TGF5ZXIgcmVtb3ZlRnJv
bVN1cGVybGF5ZXJdOworICAgICAgICBbc2VsZiBjbGVhckxheWVyc107CisgICAgfQorfQorCist
ICh2b2lkKWNsZWFyTGF5ZXJzCit7CisgICAgX2xhc3RNYXNrTGF5ZXIgPSBuaWw7CisgICAgX2xh
c3RTaGFkb3dMYXllciA9IG5pbDsKKyAgICBfbGFzdFBsYXR0ZXJMYXllciA9IG5pbDsKKyAgICBf
bGFzdEJhY2tncm91bmRMYXllciA9IG5pbDsKKyAgICBfbGFzdFNuYXBzaG90TGF5ZXIgPSBuaWw7
Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8
fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmI4YzQ4ZjQ1OTE2YTM1ZDA3ODRhMDdhZTRiYThlZTE4ZmE3NjlhOGEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJz
LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9V
U0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKworI2ltcG9y
dCAiUHJvdG90eXBlVG9vbHNTUEkuaCIKKworQGludGVyZmFjZSBXS0hvdmVyUGxhdHRlclBhcmFt
ZXRlcnMgOiBQVFNldHRpbmdzCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBsYXR0ZXJF
bmFibGVkRm9yTW91c2U7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBwbGF0dGVyRW5hYmxl
ZEZvckhvdmVyOworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyQ29ybmVy
UmFkaXVzOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlclBhZGRpbmc7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyU2hhZG93T3BhY2l0eTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJTaGFkb3dSYWRpdXM7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgdW5zaWduZWQgcGxhdHRlckluZmxhdGlvblNpemU7CisKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljKSBCT09MIGFuaW1hdGVCZXR3ZWVuUGxhdHRlcnM7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQ0dGbG9hdCBzcHJpbmdNYXNzOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQg
c3ByaW5nU3RpZmZuZXNzOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgc3ByaW5nRGFt
cGluZzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBOU1RpbWVJbnRlcnZhbCBkdXJhdGlvbjsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHVzZVNwcmluZzsKKworI2lmIFVTRShBUFBMRV9J
TlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzQWRkaXRpb25zLmg+CisjZW5kaWYKKworQGVuZAorCitAaW50ZXJmYWNlIFdLSG92ZXJQ
bGF0dGVyRG9tYWluIDogUFREb21haW4KKysgKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyAqKXJv
b3RTZXR0aW5nczsKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzE0OWE4NDVjZDFmNWI5NGVkNjgyZmNkMjg3MjVmMzgxMDVmMTExMAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnMubW0KQEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oIgorCisjaWYgSEFWRShV
SUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTkla
RVIpCisKKyNpbXBvcnQgIlByb3RvdHlwZVRvb2xzU1BJLmgiCisKK0BpbnRlcmZhY2UgUFRTbGlk
ZXJSb3cgKFdlYktpdCkKKworLSAoaWQpaW50ZWdlck1pblZhbHVlOihDR0Zsb2F0KW1pblZhbHVl
IG1heFZhbHVlOihDR0Zsb2F0KW1heFZhbHVlOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQ
VFNsaWRlclJvdyAoV2ViS2l0KQorCistIChpZClpbnRlZ2VyTWluVmFsdWU6KENHRmxvYXQpbWlu
VmFsdWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWUKK3sKKyAgICByZXR1cm4gW1tzZWxmIG1p
blZhbHVlOm1pblZhbHVlIG1heFZhbHVlOm1heFZhbHVlXSB2YWx1ZVZhbGlkYXRvcjpeaWQoaWQg
cHJvcG9zZWRWYWx1ZSwgaWQgc2V0dGluZ3MpIHsKKyAgICAgICAgcmV0dXJuIEAoQ0dSb3VuZChb
cHJvcG9zZWRWYWx1ZSBmbG9hdFZhbHVlXSkpOworICAgIH1dOworfQorCitAZW5kCisKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLSG92ZXJQ
bGF0dGVyUGFyYW1ldGVyc0FkZGl0aW9ucy5tbT4KKyNlbHNlCitzdGF0aWMgdm9pZCBhZGRBZGRp
dGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMoTlNNdXRhYmxlQXJyYXkgKnJvd3MpOworc3Rh
dGljIHZvaWQgc2V0RGVmYXVsdFZhbHVlc0ZvckFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1l
dGVycyhXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgKik7CisjZW5kaWYKKworQGltcGxlbWVudGF0
aW9uIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycworCistICh2b2lkKXNldERlZmF1bHRWYWx1ZXMK
K3sKKyAgICBbc3VwZXIgc2V0RGVmYXVsdFZhbHVlc107CisKKyAgICBfcGxhdHRlckVuYWJsZWRG
b3JNb3VzZSA9IE5POworICAgIF9wbGF0dGVyRW5hYmxlZEZvckhvdmVyID0gWUVTOworCisgICAg
X3BsYXR0ZXJDb3JuZXJSYWRpdXMgPSA2OworICAgIF9wbGF0dGVyUGFkZGluZyA9IDU7CisgICAg
X3BsYXR0ZXJTaGFkb3dPcGFjaXR5ID0gMC42OworICAgIF9wbGF0dGVyU2hhZG93UmFkaXVzID0g
MTA7CisgICAgX3BsYXR0ZXJJbmZsYXRpb25TaXplID0gODsKKworICAgIF9hbmltYXRlQmV0d2Vl
blBsYXR0ZXJzID0gWUVTOworICAgIF9zcHJpbmdNYXNzID0gMjsKKyAgICBfc3ByaW5nU3RpZmZu
ZXNzID0gMTAwOworICAgIF9zcHJpbmdEYW1waW5nID0gNTA7CisgICAgX2R1cmF0aW9uID0gMC4z
OworICAgIF91c2VTcHJpbmcgPSBZRVM7CisKKyAgICBzZXREZWZhdWx0VmFsdWVzRm9yQWRkaXRp
b25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKHNlbGYpOworfQorCisrIChQVE1vZHVsZSAqKXNl
dHRpbmdzQ29udHJvbGxlck1vZHVsZQoreworICAgIFBUU2VjdGlvbiAqZW5hYmxlbWVudFNlY3Rp
b24gPSBbUFRNb2R1bGUgc2VjdGlvbldpdGhSb3dzOkBbCisgICAgICAgIFtQVFN3aXRjaFJvdyBy
b3dXaXRoVGl0bGU6QCJFbmFibGUgUGxhdHRlciBGb3IgTW91c2UiIHZhbHVlS2V5UGF0aDpAInBs
YXR0ZXJFbmFibGVkRm9yTW91c2UiXSwKKyAgICAgICAgW1BUU3dpdGNoUm93IHJvd1dpdGhUaXRs
ZTpAIkVuYWJsZSBQbGF0dGVyIEZvciBIb3ZlciIgdmFsdWVLZXlQYXRoOkAicGxhdHRlckVuYWJs
ZWRGb3JIb3ZlciJdLAorICAgIF0gdGl0bGU6QCJQbGF0dGVyIl07CisKKyAgICBQVFNlY3Rpb24g
KmFuaW1hdGlvblNlY3Rpb24gPSBbUFRNb2R1bGUgc2VjdGlvbldpdGhSb3dzOkBbCisgICAgICAg
IFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJBbmltYXRlIEJldHdlZW4gUGxhdHRlcnMiIHZh
bHVlS2V5UGF0aDpAImFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMiXSwKKyAgICAgICAgW1BUU3dpdGNo
Um93IHJvd1dpdGhUaXRsZTpAIlVzZSBTcHJpbmciIHZhbHVlS2V5UGF0aDpAInVzZVNwcmluZyJd
LAorICAgICAgICBbW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJEdXJhdGlvbiIgdmFsdWVL
ZXlQYXRoOkAiZHVyYXRpb24iXSBtaW5WYWx1ZTowIG1heFZhbHVlOjFdIGNvbmRpdGlvbjpbTlNQ
cmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBGQUxTRSJdXSwKKyAg
ICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcgTWFzcyIgdmFsdWVL
ZXlQYXRoOkAic3ByaW5nTWFzcyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0
aEZvcm1hdDpAInVzZVNwcmluZyA9PSBUUlVFIl1dLAorICAgICAgICBbW1BURWRpdEZsb2F0Um93
IHJvd1dpdGhUaXRsZTpAIlNwcmluZyBTdGlmZm5lc3MiIHZhbHVlS2V5UGF0aDpAInNwcmluZ1N0
aWZmbmVzcyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVz
ZVNwcmluZyA9PSBUUlVFIl1dLAorICAgICAgICBbW1BURWRpdEZsb2F0Um93IHJvd1dpdGhUaXRs
ZTpAIlNwcmluZyBEYW1waW5nIiB2YWx1ZUtleVBhdGg6QCJzcHJpbmdEYW1waW5nIl0gY29uZGl0
aW9uOltOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAidXNlU3ByaW5nID09IFRSVUUi
XV0sCisgICAgXSB0aXRsZTpAIkFuaW1hdGlvbiJdOworCisgICAgUmV0YWluUHRyPE5TTXV0YWJs
ZUFycmF5PiBwbGF0dGVyTGF5b3V0Um93cyA9IGFkb3B0TlMoW0BbCisgICAgICAgIFtbUFRTbGlk
ZXJSb3cgcm93V2l0aFRpdGxlOkAiQ29ybmVyIFJhZGl1cyIgdmFsdWVLZXlQYXRoOkAicGxhdHRl
ckNvcm5lclJhZGl1cyJdIGludGVnZXJNaW5WYWx1ZTowIG1heFZhbHVlOjIwXSwKKyAgICAgICAg
W1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJQYWRkaW5nIiB2YWx1ZUtleVBhdGg6QCJwbGF0
dGVyUGFkZGluZyJdIGludGVnZXJNaW5WYWx1ZTowIG1heFZhbHVlOjIwXSwKKyAgICAgICAgW1tQ
VFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJTaGFkb3cgT3BhY2l0eSIgdmFsdWVLZXlQYXRoOkAi
cGxhdHRlclNoYWRvd09wYWNpdHkiXSBtaW5WYWx1ZTowIG1heFZhbHVlOjFdLAorICAgICAgICBb
W1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlNoYWRvdyBSYWRpdXMiIHZhbHVlS2V5UGF0aDpA
InBsYXR0ZXJTaGFkb3dSYWRpdXMiXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisg
ICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiSW5mbGF0aW9uIFNpemUiIHZhbHVl
S2V5UGF0aDpAInBsYXR0ZXJJbmZsYXRpb25TaXplIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFs
dWU6MzBdCisgICAgXSBtdXRhYmxlQ29weV0pOworICAgIGFkZEFkZGl0aW9uYWxQbGF0dGVyTGF5
b3V0UGFyYW1ldGVycyhwbGF0dGVyTGF5b3V0Um93cy5nZXQoKSk7CisKKyAgICBQVFNlY3Rpb24g
KnBsYXR0ZXJMYXlvdXRTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpwbGF0dGVy
TGF5b3V0Um93cy5nZXQoKSB0aXRsZTpAIlBsYXR0ZXIgTGF5b3V0Il07CisKKyAgICBQVFNlY3Rp
b24gKnJlc3RvcmVEZWZhdWx0c1NlY3Rpb24gPSBbUFRNb2R1bGUgc2VjdGlvbldpdGhSb3dzOkBb
CisgICAgICAgIFtQVEJ1dHRvblJvdyByb3dXaXRoVGl0bGU6QCJSZXN0b3JlIERlZmF1bHRzIiBh
Y3Rpb246W1BUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiBhY3Rpb25dXQorICAgIF1d
OworCisgICAgcmV0dXJuIFtQVE1vZHVsZSBtb2R1bGVXaXRoVGl0bGU6bmlsIGNvbnRlbnRzOkBb
IGVuYWJsZW1lbnRTZWN0aW9uLCBhbmltYXRpb25TZWN0aW9uLCBwbGF0dGVyTGF5b3V0U2VjdGlv
biwgcmVzdG9yZURlZmF1bHRzU2VjdGlvbiBdXTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV0tIb3ZlclBsYXR0ZXJEb21haW4KKworKyAoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICop
cm9vdFNldHRpbmdzCit7CisgICAgcmV0dXJuIFtzdXBlciByb290U2V0dGluZ3NdOworfQorCisr
IChOU1N0cmluZyAqKWRvbWFpbkdyb3VwTmFtZQoreworICAgIHJldHVybiBAIldlYktpdCI7Cit9
CisKKysgKE5TU3RyaW5nICopZG9tYWluTmFtZQoreworICAgIHJldHVybiBAIkhvdmVyIFBsYXR0
ZXIiOworfQorCisrIChDbGFzcylyb290U2V0dGluZ3NDbGFzcworeworICAgIHJldHVybiBbV0tI
b3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIGNsYXNzXTsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFW
RShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09H
TklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA5OGNlNGQ4MzllNDA4YzJjZmUxMmM4ZWY3ODhjZDQxNmEyNjBkYjkxLi4wYmE2M2Fk
OTMwOTgzMzYxYmFmNTc5ZGQ4ODUxNTA5OGQ4ZDAzZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzNCw2ICs2MzQsNyBAQAogCQky
RDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkyRDFCNUQ1RTE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJEMUI1RDVDMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNv
bnRyb2xsZXJNZXNzYWdlcy5oICovOyB9OwogCQkyRDFFODIyMzIxNkZGRjUxMDBBMTUyNjUgLyog
V0tXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQxRTgyMjEyMTZGRkY1MDAwQTE1MjY1IC8qIFdLV2ViRXZlbnQuaCAqLzsgfTsKKwkJMkQy
NzlFMTkyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI3OUUxODI2OTU1NzY4MDA0QjNF
RUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLzsgfTsKIAkJMkQyOEE0OTcxQUY5NjVBMTAwRjE5
MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5
b3V0U3RyYXRlZ3kuaCAqLzsgfTsKIAkJMkQyOUVDRDAxOTJGMkMyRTAwOTg0Qjc4IC8qIFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOUVDQ0UxOTJGMkMyRTAwOTg0Qjc4IC8qIFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5oICovOyB9OwogCQkyRDNBNjVEQjFBN0Mz
QTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDNBNjVEOTFBN0MzQTFGMDBDQUM2MzcgLyog
V0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTMxNzEsNiArMzE3MiwxMSBAQAogCQkyRDFFODIyMjIxNkZGRjUx
MDBBMTUyNjUgLyogV0tXZWJFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgbmFtZSA9IFdLV2ViRXZlbnQubW07IHBhdGggPSBpb3MvV0tXZWJFdmVudC5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNUYzMjgyNTc1OEU5MDAwMjMxQThCIC8qIEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1
ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9T
dXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI3
OUUwRTI2OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
V0tIb3ZlclBsYXR0ZXIuaDsgcGF0aCA9IGlvcy9XS0hvdmVyUGxhdHRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUwRjI2OTRDMjI3MDA0QjNFRUIgLyogV0tIb3ZlclBs
YXR0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hvdmVyUGxhdHRlci5tbTsgcGF0aCA9
IGlvcy9XS0hvdmVyUGxhdHRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQy
NzlFMTAyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaDsgcGF0aCA9IGlvcy9XS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlF
MTEyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTsgcGF0aCA9IGlvcy9X
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm90b3R5cGVUb29sc1NQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyRDI4QTQ5NTFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5
b3V0U3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tWaWV3TGF5
b3V0U3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTYxQUY5
NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhGM0UwMTg4NUNDQzEwMDRCOUVBRSAvKiBXZWJDaHJv
bWVDbGllbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBX
ZWJDaHJvbWVDbGllbnRJT1MubW07IHBhdGggPSBpb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc5Miw2ICs3Nzk4LDEwIEBACiAJCQkJMEZD
QjRFNDExOEJCRTA0NDAwMEZDRkM5IC8qIFdLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1
cml0eU9yaWdpbi5tbSAqLywKIAkJCQlGNERCNTRFNDIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdo
bGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCUY0REI1NEU1MjMxOUU3
MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tICov
LAorCQkJCTJEMjc5RTBFMjY5NEMyMjYwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlci5oICovLAor
CQkJCTJEMjc5RTBGMjY5NEMyMjcwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlci5tbSAqLywKKwkJ
CQkyRDI3OUUxMDI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgg
Ki8sCisJCQkJMkQyNzlFMTEyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1l
dGVycy5tbSAqLywKIAkJCQlGNEJBMzNGMDI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5
c2lzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNEJBMzNGMTI1NzU3RTg5MDAwQTNDRTgg
LyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCiAJCQkJOTMzREY4MkQx
QjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCAqLywKQEAg
LTExNTI5LDYgKzExNTM5LDcgQEAKIAkJCQkyRDRBRjA4ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJv
bnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQTEzQjNEQTEyMDdGMzlERTAwOTBDNThEIC8q
IE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkzMTc4QUY5NzIwRTJBN0Y4MDA3NERFOTQgLyogUERG
S2l0U1BJLmggKi8sCisJCQkJMkQyNzlFMTgyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRv
b2xzU1BJLmggKi8sCiAJCQkJNDZGMzhFOEIyNDE2RTY2RDAwNTkzNzVBIC8qIFJ1bm5pbmdCb2Fy
ZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQ0UxQTBCRDAxQTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQ
SS5oICovLAogCQkJCUNFMUEwQkQxMUE0OEU2QzYwMDU0RUY3NCAvKiBUZXh0SW5wdXRTUEkuaCAq
LywKQEAgLTEyMjM2LDYgKzEyMjQ3LDcgQEAKIAkJCQk0NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMg
LyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkU2N0Ey
NTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTJEMjc5RTE5MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVU
b29sc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAwNzAwNkE2IC8q
IFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1MTEzMEEwMEVE
NjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5o
IGluIEhlYWRlcnMgKi8sCg==
</data>
<flag name="commit-queue"
          id="455118"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433012</attachid>
            <date>2021-07-06 22:30:10 -0700</date>
            <delta_ts>2021-07-06 23:16:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210706223008.patch</filename>
            <type>text/plain</type>
            <size>52536</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5hNWNlYjM3NjZlYmQ4NmMwZDQxZjNm
OTI0ZjY1MmRiMTAyYTg2ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaDoKKwogMjAyMS0wNy0wMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQQ006IENoYW5nZSBpbXBvcnQgZnJvbSBDcnlwdG9LaXRDQnJpZGdpbmcg
dG8gQ3J5cHRvS2l0UHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlY2YwZDhiYjkwYTUwMTdkMmZjMGUzNGQ2
YjIyNGZmOWI1YTY5OTQzLi5iNTFiZDU2YWU3NWRjYWUwZDE2MGRmMTE1MjBiNTRiZTY2MzUxZTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA3LTA2ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS0hvdmVyUGxhdHRlciBhbmQg
c29tZSBrbm9icyB0byB0d2VhayBpdHMgYXBwZWFyYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTE5ODI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL1Byb3RvdHlwZVRvb2xzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHJvb3RDb250ZW50Vmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFj
dGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgor
ICAgICAgICBJbnN0YWxsIGFuZCB1bmluc3RhbGwgdGhlIHBsYXR0ZXIgYWxvbmdzaWRlIHRoZSBn
ZXN0dXJlcyB0aGF0IGRyaXZlIGl0LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbW91c2VH
ZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaG92
ZXJHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgIFdoZW4gdGhlIGdlc3R1cmUg
cmVjb2duaXplcnMgZmlyZSwgYWxzbyB1cGRhdGUgdGhlIGhvdmVyIHBvaW50LgorCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjp3aXRo
UmVxdWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXIubW06IEFkZGVkLgorICAgICAgICAoY3JlYXRlQmFzZUFuaW1hdGlvbik6CisgICAgICAg
IChhZGRBbmltYXRpb24pOgorICAgICAgICAoc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyk6CisgICAg
ICAgIChhZGRBZGRpdGlvbmFsRGlzbWlzc2FsQW5pbWF0aW9ucyk6CisgICAgICAgICgtW1dLSG92
ZXJQbGF0dGVyIGluaXRXaXRoVmlldzpkZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBs
YXR0ZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBob3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIHNldEhvdmVyUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSG92ZXJQbGF0dGVyIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkUmVjZWl2ZVBvc2l0aW9u
SW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpc21pc3NQbGF0dGVy
V2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkRmluaXNoQW5p
bWF0aW9uRm9yU2hhZG93Ol0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBjbGVhckxheWVy
c10pOgorICAgICAgICBBbmltYXRlIHRoZSBwbGF0dGVyIGluIGFuZCBvdXQsIGFuZCBvcHRpb25h
bGx5IGJldHdlZW4gc3RhdGVzLCBhcyB0aGUgaG92ZXIgcG9pbnQgbW92ZXMuCisgICAgICAgIFVz
ZSB0aGUgVGV4dEluZGljYXRvcidzIGdlb21ldHJ5IGluZm9ybWF0aW9uLCBidXQgbm90IGl0cyBz
bmFwc2hvdDsgd2UgdXNlIGEKKyAgICAgICAgQ0FQb3J0YWxMYXllciBmb3IgdGhlIHBsYXR0ZXIg
aW5zdGVhZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBhdm9pZCB0YWtpbmcgdGhlIHNuYXBzaG90Cisg
ICAgICAgIGVudGlyZWx5LCBzaW5jZSB3ZSBjYWxsIHNldEhvdmVyUG9pbnQgKGFuZCB0aHVzIGdl
bmVyYXRlIGEgVGV4dEluZGljYXRvcikgYSAqbG90KgorICAgICAgICB3aGVuIG1vdmluZyB0aGUg
bW91c2UgYXJvdW5kLCBhbmQgYWxsIHRob3NlIHNuYXBzaG90cyBhZGQgdXAuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTogQWRkZWQuCisg
ICAgICAgICgtW1BUU2xpZGVyUm93IGludGVnZXJNaW5WYWx1ZTptYXhWYWx1ZTpdKToKKyAgICAg
ICAgKC1bV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldERlZmF1bHRWYWx1ZXNdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldHRpbmdzQ29udHJvbGxlck1vZHVsZV0p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluR3JvdXBOYW1lXSk6CisgICAgICAgICgr
W1dLSG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbk5hbWVdKToKKyAgICAgICAgKCtbV0tIb3ZlclBs
YXR0ZXJEb21haW4gcm9vdFNldHRpbmdzQ2xhc3NdKToKKyAgICAgICAgQWRkIHNvbWUga25vYnMs
IHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cywgZm9yIGV4cGVyaW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGFrZSBhIHByb2Nlc3MgYXNz
ZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xkaW5nIGxvY2tlZCBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmlu
ZGV4IDBiMGIwNWY4NmZkNDAzZDFjODdhNjQwMGY3YWI0ODllMDEyZGMyZmIuLmNhOTZiYWE2N2Y2
NGY2NmJlYjQwOTMyNGJkZTM1ZTQzNDM1MmE3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTE2Myw2ICsxNjMsMTIgQEAgdHlw
ZWRlZiBlbnVtIHsKIC0gKGZsb2F0KV9zb2x2ZUZvcklucHV0OihmbG9hdCl0OwogQGVuZAogCitA
aW50ZXJmYWNlIENBUG9ydGFsTGF5ZXIgOiBDQUxheWVyCitAcHJvcGVydHkgKHdlYWspIENBTGF5
ZXIgKnNvdXJjZUxheWVyOworQHByb3BlcnR5IEJPT0wgbWF0Y2hlc1Bvc2l0aW9uOworQHByb3Bl
cnR5IEJPT0wgbWF0Y2hlc1RyYW5zZm9ybTsKK0BlbmQKKwogI2VuZGlmIC8vIF9fT0JKQ19fCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpp
bmRleCA5ZjdjY2U1MTM3Y2U2ZmZmMjRjMDViNjc2MTZjMGQ2MGYzZjFlYTUxLi5kZGY4MGI2MjQ2
ZTg3MGY0NjY3ZjA0MjA3Mzk0Y2UwNzUzMjY2NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtOTMsNiArOTMsOSBAQCBXS19QREZLSVRfTERG
TEFHU19pcGhvbmVzaW11bGF0b3Jbc2RrPWlwaG9uZSoxMS4qXSA9IDsKIFdLX1BERktJVF9MREZM
QUdTX21hY2NhdGFseXN0ID0gJChXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdCQoV0tfTUFD
T1NfMTEwMCkpOwogV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3RfTUFDT1NfU0lOQ0VfMTEw
MCA9ICQoV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MpOwogCitXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUyA9ICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkp
OworV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUHJv
dG90eXBlVG9vbHM7CisKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUyA9ICQoV0tfU0FGRV9CUk9X
U0lOR19MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBTYWZhcmlTYWZlQnJvd3Npbmc7CiBXS19TQUZFX0JS
T1dTSU5HX0xERkxBR1NfaXBob25lb3Nbc2RrPWlwaG9uZSoxMC4qXSA9IDsKQEAgLTE0Myw3ICsx
NDYsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtbG5l
dHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4ID0g
LXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tfTElC
TkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAk
KFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJ
TEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQo
V0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VS
SVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FD
Q0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChX
S19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhU
RU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19M
REZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dF
U1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJG
QUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZUEVfSURFTlRJ
RklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BF
Q1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQg
QysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRl
bGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRl
ZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNT
dDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0
cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
UHJvdG90eXBlVG9vbHNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Qcm90
b3R5cGVUb29sc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI2YjQ0YjhjYjI1NjY5Mzc3MzFjZGQ4NDAyYWY2
Y2VjNjdhZDhjM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPFByb3RvdHlwZVRvb2xzL1By
b3RvdHlwZVRvb2xzLmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgUFRTZXR0aW5ncyA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CistICh2b2lkKXNldERlZmF1bHRWYWx1ZXM7CitAZW5kCisKK0BpbnRl
cmZhY2UgUFREb21haW4gOiBOU09iamVjdAorKyAoX19raW5kb2YgUFRTZXR0aW5ncyAqKXJvb3RT
ZXR0aW5nczsKK0BlbmQKKworQGludGVyZmFjZSBQVFNlY3Rpb24gOiBOU09iamVjdAorQGVuZAor
CitAaW50ZXJmYWNlIFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVX
aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsK
KysgKFBUU2VjdGlvbiAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSb3cgOiBOU09iamVjdCA8TlND
b3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KKysgKGluc3RhbmNldHlwZSlyb3dXaXRoVGl0bGU6KE5T
U3RyaW5nICopc3RhdGljVGl0bGUgdmFsdWVLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGg7Cist
IChpZCl2YWx1ZVZhbGlkYXRvcjooaWQoXikoaWQgcHJvcG9zZWRWYWx1ZSwgaWQgc2V0dGluZ3Mp
KXZhbGlkYXRvcjsKKy0gKGlkKWNvbmRpdGlvbjooTlNQcmVkaWNhdGUgKiljb25kaXRpb247CitA
ZW5kCisKK0BpbnRlcmZhY2UgUFRTUm93IDogUFRSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFN3
aXRjaFJvdyA6IFBUU1JvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IDogUFRTUm93
CistIChpZCltaW5WYWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhW
YWx1ZTsKK0BlbmQKKworQGludGVyZmFjZSBQVFJvd0FjdGlvbiA6IE5TT2JqZWN0CitAZW5kCisK
K0BpbnRlcmZhY2UgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uIDogUFRSb3dBY3Rp
b24KKysgKGluc3RhbmNldHlwZSlhY3Rpb247CitAZW5kCisKK0BpbnRlcmZhY2UgUFRCdXR0b25S
b3cgOiBQVFNSb3cKKysgKGluc3RhbmNldHlwZSlyb3dXaXRoVGl0bGU6KE5TU3RyaW5nICopc3Rh
dGljVGl0bGUgYWN0aW9uOihQVFJvd0FjdGlvbiAqKWFjdGlvbjsKK0BlbmQKKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNDA1MGM0MDNjNDZkNTY0YzJlOTgzYzVmMjY1NTUxYzY5
NzVjZThmZC4uZTZmNmMwZGI3ZDJhNjE5MDA5OGNkZjg5NzFmMmJjMDIzYjJmZjgzOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtNDg5LDYgKzQ4OSw4IEBAIFVJUHJvY2Vzcy9pb3MvV0tEZWZl
cnJpbmdHZXN0dXJlUmVjb2duaXplci5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJv
dmlkZXJJT1MubW0KIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1Nl
Y3VyaXR5T3JpZ2luLm1tCiBVSVByb2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVy
ZVJlY29nbml6ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KK1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tCiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VB
bmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRTY3Jv
bGxpbmdBbmltYXRvci5tbQogVUlQcm9jZXNzL2lvcy9XS01vZGVsSW50ZXJhY3Rpb25HZXN0dXJl
UmVjb2duaXplci5tbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
LmgKaW5kZXggMDk1MDg2Y2QxZjlkNWY2OWY3YTdhZTE5OGVmOWE5ZmNlMGM0YmZmMC4uNzYwNjU5
MDQ3ZDFhYTJiNWRmN2FlZTQwZDE0MTRkYTM5YTQxNmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC05NCw2ICs5NCw3IEBAIGVudW0gY2xhc3Mg
Vmlld1N0YWJpbGl0eUZsYWcgOiB1aW50OF90OwogLSAodm9pZClfd2ViVmlld0Rlc3Ryb3llZDsK
IAogLSAoV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldzsK
IAogLSAoc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURy
YXdpbmdBcmVhUHJveHk6KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Jilwcm9jZXNzOwogLSAodm9p
ZClfcHJvY2Vzc0RpZEV4aXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCmluZGV4IDZiMDQ5YjQwN2IxMjFlODkzMDQyZGYzOWExNTFmYzk2MjkxMGVhMmQu
LjljOTYzMWIxODBmNmQ1MjNhMzk3MDVjNzNlNDBlMjA4ZjZmZGQxOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0zMjYsNiArMzI2LDExIEBA
IC0gKFdLV2ViVmlldyAqKXdlYlZpZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0QXV0b3JlbGVh
c2VkKCk7CiB9CiAKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldworeworICAgIHJldHVybiBf
cm9vdENvbnRlbnRWaWV3LmdldCgpOworfQorCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJ
V2luZG93ICopbmV3V2luZG93CiB7CiAgICAgW3N1cGVyIHdpbGxNb3ZlVG9XaW5kb3c6bmV3V2lu
ZG93XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaAppbmRleCAzNTZiMzMzMjYyOGVlMWM1MmVhZjZhY2UwZDAwM2M4MGM1
YjYxOWI0Li4yNmExZTJkZWZhMTE1MTQzNTUxNDhkZWU1ZGFkY2Q5YzE3YTQyMDhkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVy
LmgiCiAjaW1wb3J0ICJUcmFuc2FjdGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2lt
cG9ydCAiV0tIb3ZlclBsYXR0ZXIuaCIKICNpbXBvcnQgPFdlYktpdC9XS0FjdGlvblNoZWV0QXNz
aXN0YW50Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tBaXJQbGF5Um91dGVQaWNrZXIuaD4KICNpbXBv
cnQgPFdlYktpdC9XS0NvbnRhY3RQaWNrZXIuaD4KQEAgLTI5NSw2ICsyOTYsMTAgQEAgdXNpbmcg
SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW4KICAgICBSZXRhaW5QdHI8V0tIb3Zlckdlc3R1cmVSZWNvZ25pemVy
PiBfaG92ZXJHZXN0dXJlUmVjb2duaXplcjsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAg
UmV0YWluUHRyPFdLSG92ZXJQbGF0dGVyPiBfaG92ZXJQbGF0dGVyOworI2VuZGlmCisKICNpZiBI
QVZFKFBFTkNJTEtJVF9URVhUX0lOUFVUKQogICAgIFJldGFpblB0cjxVSUluZGlyZWN0U2NyaWJi
bGVJbnRlcmFjdGlvbj4gX3NjcmliYmxlSW50ZXJhY3Rpb247CiAjZW5kaWYKQEAgLTUyNiw2ICs1
MzEsOSBAQCB1c2luZyBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbgogICAgICwgVUlEcmFnSW50ZXJhY3Rpb25E
ZWxlZ2F0ZSwgVUlEcm9wSW50ZXJhY3Rpb25EZWxlZ2F0ZQogI2VuZGlmCiAgICAgLCBXS1RvdWNo
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgICwgV0tI
b3ZlclBsYXR0ZXJEZWxlZ2F0ZQorI2VuZGlmCiA+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQ0dQb2ludCBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmlu
ZGV4IDM3ZTZiMzc5Y2JmMmM3ZmQ0YjkyZThhZWIyNzU0MzVmMzc0ODhmNDAuLjFkN2NhNTk0NGY4
ZmY0YzkxN2ZmOGQ4YzVmNTllY2YyOWJkOGRiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTYsNiAr
NTYsOCBAQAogI2ltcG9ydCAiV0tGb3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFt
ZUluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVj
b2duaXplci5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQ
bGF0dGVyUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29n
bml6ZXIuaCIKICNpbXBvcnQgIldLSW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIldLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCkBAIC0xMjgsNiAr
MTMwLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1ZlcnNpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5o
PgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9XZWJFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIu
aD4KICNpbXBvcnQgPFdlYkNvcmUvV3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtMTM2LDYgKzEzOSw3
IEBACiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2NvY29hL0xhdW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL05TQXR0cmlidXRlZFN0cmluZ1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9R
dWFydHpDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEku
aD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQg
PHBhbC9zcGkvaW9zL01hbmFnZWRDb25maWd1cmF0aW9uU1BJLmg+CkBAIC04OTQsNiArODk4LDEw
IEBAIC0gKHZvaWQpc2V0VXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIHNldFVwSG92ZXJHZXN0dXJl
UmVjb2duaXplcl07CiAjZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JU
KSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIF9ob3ZlclBsYXR0ZXIg
PSBhZG9wdE5TKFtbV0tIb3ZlclBsYXR0ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLnJvb3RD
b250ZW50VmlldyBkZWxlZ2F0ZTpzZWxmXSk7CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dF
U1RVUkVfUkVDT0dOSVpFUikKICAgICBfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5T
KFtbX1VJTG9va3VwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYg
YWN0aW9uOkBzZWxlY3RvcihfbG9va3VwR2VzdHVyZVJlY29nbml6ZWQ6KV0pOwogICAgIFtfbG9v
a3VwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CkBAIC0xMDgxLDYgKzEwODks
MTEgQEAgLSAodm9pZCljbGVhblVwSW50ZXJhY3Rpb24KICAgICBbc2VsZiByZW1vdmVHZXN0dXJl
UmVjb2duaXplcjpfaG92ZXJHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKIAorI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9S
RUNPR05JWkVSKQorICAgIFtfaG92ZXJQbGF0dGVyIGludmFsaWRhdGVdOworICAgIF9ob3ZlclBs
YXR0ZXIgPSBuaWw7CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpF
UikKICAgICBbX2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CiAgICAg
W3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyLmdl
dCgpXTsKQEAgLTQ3NDAsNiArNDc1MywxMCBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFp
bkZyYW1lCiAgICAgX2FjdGl2ZVRleHRJbnRlcmFjdGlvbkNvdW50ID0gMDsKICAgICBfdHJlYXRB
c0NvbnRlbnRFZGl0YWJsZVVudGlsTmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87CiAgICAgW3Nl
bGYgX2ludmFsaWRhdGVDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl07CisKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpF
UikKKyAgICBbX2hvdmVyUGxhdHRlciBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246Tk9dOwor
I2VuZGlmCiB9CiAKICNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk1MDIs
NiArOTUxOSw4IEBAIC0gKHZvaWQpbW91c2VHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLTW91
c2VHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pCiAgICAgICAgIFtzZWxmLndpbmRv
dyBtYWtlS2V5V2luZG93XTsKIAogICAgIF9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KCpldmVudCk7
CisgICAgaWYgKFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5ncy5wbGF0dGVyRW5hYmxl
ZEZvck1vdXNlKQorICAgICAgICBbX2hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50OmV2ZW50LT5w
b3NpdGlvbigpXTsKIH0KIAogLSAodm9pZClfY29uZmlndXJlTW91c2VHZXN0dXJlUmVjb2duaXpl
cgpAQCAtOTUzNiwxMCArOTU1NSwyMSBAQCAtICh2b2lkKWhvdmVyR2VzdHVyZVJlY29nbml6ZXJD
aGFuZ2VkOihXS0hvdmVyR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaQogICAgICAg
ICByZXR1cm47CiAKICAgICBfcGFnZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlm
IChXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JIb3Zl
cikKKyAgICAgICAgW19ob3ZlclBsYXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24o
KV07CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQogCisj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJF
X1JFQ09HTklaRVIpCisKKy0gKHZvaWQpcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRl
cjooV0tIb3ZlclBsYXR0ZXIgKilob3ZlclBsYXR0ZXIgd2l0aFJlcXVlc3Q6KFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWNvbXBsZXRp
b25IYW5kbGVyCit7CisgICAgW3NlbGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6
Y29tcGxldGlvbkhhbmRsZXIgZm9yUmVxdWVzdDpyZXF1ZXN0XTsKK30KKworI2VuZGlmCisKICNp
ZiBFTkFCTEUoTUVESUFfQ09OVFJPTFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1F
TlUpCiAKIC0gKHZvaWQpX3Nob3dNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZs
b2F0UmVjdCYmKXRhcmdldEZyYW1lIGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbT4mJilpdGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYp
Y29tcGxldGlvbkhhbmRsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0hvdmVyUGxhdHRlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQ
bGF0dGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDljZDZiZjRmMmMyMmExMDBmNDEyMzQwYzVmYzZhMzA3NDVl
Y2Y3YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hv
dmVyUGxhdHRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIp
CisKK0BjbGFzcyBXS0hvdmVyUGxhdHRlcjsKKworQHByb3RvY29sIFdLSG92ZXJQbGF0dGVyRGVs
ZWdhdGUKKworQHJlcXVpcmVkCistICh2b2lkKXBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBs
YXR0ZXI6KFdLSG92ZXJQbGF0dGVyICopaG92ZXJQbGF0dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0JilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSljb21w
bGV0aW9uSGFuZGxlcjsKKworQGVuZAorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyIDogTlNP
YmplY3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldyBkZWxl
Z2F0ZTooaWQgPFdLSG92ZXJQbGF0dGVyRGVsZWdhdGU+KWRlbGVnYXRlOworCistICh2b2lkKWRp
c21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uOworCistICh2b2lk
KWludmFsaWRhdGU7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYkNvcmU6OkZs
b2F0UG9pbnQgaG92ZXJQb2ludDsKKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRI
X01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDc2YWM3NjBlZjU4NTk1YzM0YmJkOGUyOGZhZTJkZmNlZWY3NWVjYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpAQCAtMCww
ICsxLDM0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tI
b3ZlclBsYXR0ZXIuaCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBF
TkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRl
clBhcmFtZXRlcnMuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9y
dCA8V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2Nv
YS9RdWFydHpDb3JlU1BJLmg+CisKK3N0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4g
Y3JlYXRlQmFzZUFuaW1hdGlvbigpCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBs
YXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAgIGlmIChwYXJhbWV0ZXJzLnVzZVNwcmluZykg
eworICAgICAgICBSZXRhaW5QdHI8Q0FTcHJpbmdBbmltYXRpb24+IHNwcmluZyA9IGFkb3B0TlMo
W1tDQVNwcmluZ0FuaW1hdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBbc3ByaW5nIHNldE1h
c3M6cGFyYW1ldGVycy5zcHJpbmdNYXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXRTdGlmZm5lc3M6
cGFyYW1ldGVycy5zcHJpbmdTdGlmZm5lc3NdOworICAgICAgICBbc3ByaW5nIHNldERhbXBpbmc6
cGFyYW1ldGVycy5zcHJpbmdEYW1waW5nXTsKKyAgICAgICAgW3NwcmluZyBzZXRGaWxsTW9kZTpr
Q0FGaWxsTW9kZUJhY2t3YXJkc107CisgICAgICAgIFtzcHJpbmcgc2V0RHVyYXRpb246W3Nwcmlu
ZyBzZXR0bGluZ0R1cmF0aW9uXV07CisgICAgICAgIHJldHVybiBzcHJpbmc7CisgICAgfQorCisg
ICAgUmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IGVhc2UgPSBhZG9wdE5TKFtbQ0FCYXNpY0Fu
aW1hdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtlYXNlIHNldEZpbGxNb2RlOmtDQUZpbGxNb2Rl
QmFja3dhcmRzXTsKKyAgICBbZWFzZSBzZXREdXJhdGlvbjpwYXJhbWV0ZXJzLmR1cmF0aW9uXTsK
KyAgICBbZWFzZSBzZXRUaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0
aW9uV2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVhc2VJbl1dOworICAgIHJldHVybiBl
YXNlOworfQorCitzdGF0aWMgdm9pZCBhZGRBbmltYXRpb24oQ0FMYXllciAqbGF5ZXIsIE5TU3Ry
aW5nICprZXksIGlkIGZyb21WYWx1ZSwgaWQgdG9WYWx1ZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0FC
YXNpY0FuaW1hdGlvbj4gYW5pbWF0aW9uID0gY3JlYXRlQmFzZUFuaW1hdGlvbigpOworICAgIFth
bmltYXRpb24gc2V0S2V5UGF0aDprZXldOworICAgIFthbmltYXRpb24gc2V0RnJvbVZhbHVlOmZy
b21WYWx1ZV07CisgICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOnRvVmFsdWVdOworICAgIFtsYXll
ciBzZXRWYWx1ZTp0b1ZhbHVlIGZvcktleTprZXldOworICAgIFtsYXllciBhZGRBbmltYXRpb246
YW5pbWF0aW9uLmdldCgpIGZvcktleTprZXldOworfTsKKworI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJBZGRpdGlvbnMu
bW0+CisjZWxzZQorc3RhdGljIENHRmxvYXQgc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3Bl
cnRpZXMoQ0FMYXllciAqLCBDQUxheWVyICopIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyB2b2lkIGFk
ZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMoQ0FMYXllciAqLCBDR0Zsb2F0KSB7IH0KK3N0
YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKENBTGF5ZXIgKikgeyB9
CisjZW5kaWYKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVyIHsKKyAgICBfX3dlYWsg
VUlWaWV3ICpfdmlldzsKKyAgICBfX3dlYWsgaWQgPFdLSG92ZXJQbGF0dGVyRGVsZWdhdGU+IF9k
ZWxlZ2F0ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IF9ob3ZlclBvaW50OworCisgICAgQk9P
TCBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKKyAgICBCT09MIF9o
YXNEZWZlcnJlZFBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OworCisgICAgQk9PTCBfaXNTaXR0
aW5nRG93bjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBfbGFzdEhvdmVyQm91bmRzOworCisg
ICAgUmV0YWluUHRyPENBU2hhcGVMYXllcj4gX2xhc3RNYXNrTGF5ZXI7CisgICAgUmV0YWluUHRy
PENBTGF5ZXI+IF9sYXN0U2hhZG93TGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0
UGxhdHRlckxheWVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfbGFzdEJhY2tncm91bmRMYXll
cjsKKyAgICBSZXRhaW5QdHI8Q0FQb3J0YWxMYXllcj4gX2xhc3RTbmFwc2hvdExheWVyOworfQor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGRlbGVnYXRlOihp
ZCA8V0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBhdXRvIHBhcmFtZXRl
cnMgPSBXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0
ZXJzLnBsYXR0ZXJFbmFibGVkRm9yTW91c2UgJiYgIXBhcmFtZXRlcnMucGxhdHRlckVuYWJsZWRG
b3JIb3ZlcikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07
CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3ZpZXcgPSB2aWV3
OworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0g
KHZvaWQpaW52YWxpZGF0ZQoreworICAgIFtzZWxmIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlv
bjpOT107CisgICAgX3ZpZXcgPSBuaWw7CisgICAgX2RlbGVnYXRlID0gbmlsOworfQorCistIChX
ZWJDb3JlOjpGbG9hdFBvaW50KWhvdmVyUG9pbnQKK3sKKyAgICByZXR1cm4gX2hvdmVyUG9pbnQ7
Cit9CisKKy0gKHZvaWQpc2V0SG92ZXJQb2ludDooV2ViQ29yZTo6RmxvYXRQb2ludClwb2ludAor
eworICAgIF9ob3ZlclBvaW50ID0gcG9pbnQ7CisKKyAgICBpZiAoX2hhc091dHN0YW5kaW5nUG9z
aXRpb25JbmZvcm1hdGlvblJlcXVlc3QpIHsKKyAgICAgICAgX2hhc0RlZmVycmVkUG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3QgPSBZRVM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBb
c2VsZiByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50XTsKK30K
KworLSAodm9pZClyZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50
Cit7CisgICAgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAg
ICBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IFlFUzsKKyAgICBX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHBvc2l0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KF9ob3ZlclBvaW50KSB9OworICAgIC8v
IEZJWE1FOiBUaGlzIFRleHRJbmRpY2F0b3IgZG9lc24ndCBuZWVkIGEgc25hcHNob3QgKGFuZCBh
dm9pZGluZyBpdCB3b3VsZCBiZSBhIHNpemFibGUgcGVyZm9ybWFuY2Ugd2luKS4KKyAgICBwb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdC5pbmNsdWRlTGlua0luZGljYXRvciA9IFlFUzsKKyAgICBb
X2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6c2VsZiB3aXRoUmVx
dWVzdDpwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1Nl
bGYgPSBXZWFrT2JqQ1B0cjxXS0hvdmVyUGxhdHRlcj4oc2VsZildIChXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIFt3ZWFrU2Vs
ZiBkaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbjppbmZvcm1hdGlvbl07CisgICAgfV07Cit9
CisKKy0gKHZvaWQpZGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uCit7CisgICAgX2hh
c091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAgICBpZiAoX2hh
c0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpCisgICAgICAgIFtzZWxmIHJlcXVl
c3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVyUG9pbnRdOworCisgICAgYXV0byBw
cmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgPSBpbmZvcm1hdGlvbi5saW5rSW5kaWNhdG9yLnRleHRC
b3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgaWYgKHByZUluZmxhdGlvbkJv
dW5kaW5nUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCA9
IGluZm9ybWF0aW9uLmJvdW5kczsKKworICAgIGlmICghaW5mb3JtYXRpb24uaXNMaW5rIHx8IHBy
ZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAgICAgX2xhc3RIb3ZlckJv
dW5kcyA9IHsgfTsKKyAgICAgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOllF
U107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoX2xhc3RIb3ZlckJvdW5kcyA9
PSBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgJiYgIV9pc1NpdHRpbmdEb3duKQorICAgICAgICBy
ZXR1cm47CisgICAgX2xhc3RIb3ZlckJvdW5kcyA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsK
KworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5n
czsKKyAgICBhdXRvIGFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMgPSBwYXJhbWV0ZXJzLmFuaW1hdGVC
ZXR3ZWVuUGxhdHRlcnM7CisgICAgaWYgKCFhbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAg
ICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246WUVTXTsKKworICAgIF9pc1NpdHRp
bmdEb3duID0gZmFsc2U7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRpbmdSZWN0Owor
ICAgIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IGluZmxhdGVkSW5kaWNhdGVkUmVjdHM7Cisg
ICAgYXV0byBpbmRpY2F0ZWRSZWN0cyA9IGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IudGV4dFJl
Y3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKKyAgICBhdXRvIHBsYXR0ZXJQYWRkaW5nID0g
cGFyYW1ldGVycy5wbGF0dGVyUGFkZGluZzsKKyAgICBpZiAoaW5kaWNhdGVkUmVjdHMuaXNFbXB0
eSgpKSB7CisgICAgICAgIGJvdW5kaW5nUmVjdCA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsK
KyAgICAgICAgYm91bmRpbmdSZWN0LmluZmxhdGUocGxhdHRlclBhZGRpbmcpOworICAgICAgICBp
bmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoYXV0byByZWN0IDogaW5kaWNhdGVkUmVjdHMpIHsK
KyAgICAgICAgICAgIHJlY3QuaW5mbGF0ZShwbGF0dGVyUGFkZGluZyk7CisgICAgICAgICAgICBp
bmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChyZWN0KTsKKyAgICAgICAgICAgIGJvdW5kaW5n
UmVjdC51bml0ZShyZWN0KTsKKyAgICAgICAgfQorICAgICAgICBib3VuZGluZ1JlY3QubW92ZUJ5
KHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5sb2NhdGlvbigpKTsKKyAgICB9CisKKyAgICBSZXRh
aW5QdHI8Q0dQYXRoUmVmPiBpbmZsYXRlZFBhdGggPSBXZWJDb3JlOjpQYXRoVXRpbGl0aWVzOjpw
YXRoV2l0aFNocmlua1dyYXBwZWRSZWN0cyhpbmZsYXRlZEluZGljYXRlZFJlY3RzLCBwYXJhbWV0
ZXJzLnBsYXR0ZXJDb3JuZXJSYWRpdXMpLnBsYXRmb3JtUGF0aCgpOworICAgIGF1dG8gcGxhdHRl
ckluZmxhdGlvblNpemUgPSBwYXJhbWV0ZXJzLnBsYXR0ZXJJbmZsYXRpb25TaXplOworICAgIENH
RmxvYXQgcGxhdHRlclNjYWxlID0gQ0dGbG9hdE1pbigoYm91bmRpbmdSZWN0LndpZHRoKCkgKyBw
bGF0dGVySW5mbGF0aW9uU2l6ZSkgLyBib3VuZGluZ1JlY3Qud2lkdGgoKSwgKGJvdW5kaW5nUmVj
dC5oZWlnaHQoKSArIHBsYXR0ZXJJbmZsYXRpb25TaXplKSAvIGJvdW5kaW5nUmVjdC5oZWlnaHQo
KSk7CisKKyAgICAvLyBGSVhNRTogQ29uc2lkZXIgdXNpbmcgVUlLaXQncyBpbi1wcm9jZXNzIHJl
dGFyZ2V0YWJsZSBhbmltYXRpb25zLCBiZWNhdXNlIHJlYWRpbmcgYW5pbWF0aW9uIHN0YXRlIGZy
b20gdGhlIHByZXNlbnRhdGlvbiBsYXllciBpcyByYWN5LgorICAgIGJvb2wgaGFkT2xkTGF5ZXJz
ID0gISFfbGFzdFNoYWRvd0xheWVyOworICAgIENHUmVjdCBvbGRTaGFkb3dCb3VuZHMgPSBbX2xh
c3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xk
U2hhZG93UG9zaXRpb24gPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9z
aXRpb247CisgICAgQ0dGbG9hdCBvbGRTaGFkb3dPcGFjaXR5ID0gW19sYXN0U2hhZG93TGF5ZXIg
cHJlc2VudGF0aW9uTGF5ZXJdLnNoYWRvd09wYWNpdHk7CisgICAgQ0dGbG9hdCBvbGRTaGFkb3dS
YWRpdXMgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93UmFkaXVz
OworICAgIENBVHJhbnNmb3JtM0Qgb2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm0gPSBfbGFzdFNo
YWRvd0xheWVyID8gW19sYXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnN1YmxheWVy
VHJhbnNmb3JtIDogQ0FUcmFuc2Zvcm0zRElkZW50aXR5OworICAgIFJldGFpblB0cjxDR1BhdGhS
ZWY+IG9sZFNoYWRvd1BhdGggPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0u
c2hhZG93UGF0aDsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gc2hhZG93ID0gX2xhc3RTaGFkb3dM
YXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gc2hhZG93
RnJhbWUgPSBDR1JlY3RPZmZzZXQoYm91bmRpbmdSZWN0LCBwbGF0dGVyUGFkZGluZywgcGxhdHRl
clBhZGRpbmcpOworICAgIFtzaGFkb3cgc2V0RnJhbWU6c2hhZG93RnJhbWVdOworICAgIFtzaGFk
b3cgc2V0U2hhZG93Q29sb3I6VUlDb2xvci5ibGFja0NvbG9yLkNHQ29sb3JdOworICAgIFtzaGFk
b3cgc2V0U2hhZG93UmFkaXVzOnBhcmFtZXRlcnMucGxhdHRlclNoYWRvd1JhZGl1c107CisgICAg
W3NoYWRvdyBzZXRTaGFkb3dPZmZzZXQ6Q0dTaXplWmVyb107CisgICAgW3NoYWRvdyBzZXRTaGFk
b3dPcGFjaXR5OnBhcmFtZXRlcnMucGxhdHRlclNoYWRvd09wYWNpdHldOworICAgIFtzaGFkb3cg
c2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShwbGF0dGVyU2NhbGUs
IHBsYXR0ZXJTY2FsZSwgMSldOworICAgIFtzaGFkb3cgc2V0U2hhZG93UGF0aDppbmZsYXRlZFBh
dGguZ2V0KCldOworICAgIFtzaGFkb3cgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbW1tf
dmlldyBzdXBlcnZpZXddIGxheWVyXSBhZGRTdWJsYXllcjpzaGFkb3cuZ2V0KCldOworCisgICAg
Q0dSZWN0IG9sZFBsYXR0ZXJCb3VuZHMgPSBbX2xhc3RQbGF0dGVyTGF5ZXIgcHJlc2VudGF0aW9u
TGF5ZXJdLmJvdW5kczsKKyAgICBDR1BvaW50IG9sZFBsYXR0ZXJQb3NpdGlvbiA9IFtfbGFzdFBs
YXR0ZXJMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENB
TGF5ZXI+IHBsYXR0ZXIgPSBfbGFzdFBsYXR0ZXJMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBh
bGxvY10gaW5pdF0pOworICAgIFtwbGF0dGVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJv
dW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbcGxhdHRl
ciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzaGFkb3dGcmFtZS5zaXplLndpZHRoIC8gMiAtIHBs
YXR0ZXJQYWRkaW5nLCBzaGFkb3dGcmFtZS5zaXplLmhlaWdodCAvIDIgLSBwbGF0dGVyUGFkZGlu
ZyldOworICAgIGF1dG8gb2xkUGxhdHRlckFkZGl0aW9uYWxBbmltYXRpb25WYWx1ZSA9IHNldEFk
ZGl0aW9uYWxQbGF0dGVyTGF5ZXJQcm9wZXJ0aWVzKHBsYXR0ZXIuZ2V0KCksIFtfbGFzdFBsYXR0
ZXJMYXllciBwcmVzZW50YXRpb25MYXllcl0pOworICAgIFtwbGF0dGVyIHdlYl9kaXNhYmxlQWxs
QWN0aW9uc107CisgICAgW3NoYWRvdyBhZGRTdWJsYXllcjpwbGF0dGVyLmdldCgpXTsKKworICAg
IENHUmVjdCBvbGRNYXNrQm91bmRzID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxheWVy
XS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRNYXNrUG9zaXRpb24gPSBbX2xhc3RNYXNrTGF5ZXIg
cHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IG9s
ZE1hc2tQYXRoID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wYXRoOworICAg
IFJldGFpblB0cjxDQVNoYXBlTGF5ZXI+IG1hc2sgPSBfbGFzdE1hc2tMYXllciA/OiBhZG9wdE5T
KFtbQ0FTaGFwZUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgW21hc2sgc2V0RmlsbENvbG9yOltV
SUNvbG9yIGJsYWNrQ29sb3JdLkNHQ29sb3JdOworICAgIFttYXNrIHNldEJvdW5kczpDR1JlY3RN
YWtlKDAsIDAsIGJvdW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsK
KyAgICBbbWFzayBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShib3VuZGluZ1JlY3Qud2lkdGgoKSAv
IDIgKyBwbGF0dGVyUGFkZGluZywgYm91bmRpbmdSZWN0LmhlaWdodCgpIC8gMiArIHBsYXR0ZXJQ
YWRkaW5nKV07CisgICAgW21hc2sgc2V0UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFtt
YXNrIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisKKyAgICBDR1JlY3Qgb2xkQmFja2dyb3VuZEJv
dW5kcyA9IFtfbGFzdEJhY2tncm91bmRMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOwor
ICAgIENHUG9pbnQgb2xkQmFja2dyb3VuZFBvc2l0aW9uID0gW19sYXN0QmFja2dyb3VuZExheWVy
IHByZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4g
b2xkQmFja2dyb3VuZENvbG9yID0gW19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxh
eWVyXS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IGJhY2tncm91bmQg
PSBfbGFzdEJhY2tncm91bmRMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0p
OworICAgIFtiYWNrZ3JvdW5kIHNldEZyYW1lOltwbGF0dGVyIGJvdW5kc11dOworICAgIFtiYWNr
Z3JvdW5kIHNldEJhY2tncm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKGluZm9ybWF0aW9uLmxpbmtJ
bmRpY2F0b3IuZXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKV07CisgICAgW2JhY2tncm91bmQgc2V0
TWFzazptYXNrLmdldCgpXTsKKyAgICBbYmFja2dyb3VuZCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNd
OworICAgIFtwbGF0dGVyIGFkZFN1YmxheWVyOmJhY2tncm91bmQuZ2V0KCldOworCisgICAgQ0dS
ZWN0IG9sZFNuYXBzaG90Qm91bmRzID0gW19sYXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25M
YXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkU25hcHNob3RQb3NpdGlvbiA9IFtfbGFzdFNu
YXBzaG90TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIENBVHJhbnNmb3Jt
M0Qgb2xkU25hcHNob3RTdWJsYXllclRyYW5zZm9ybSA9IF9sYXN0U25hcHNob3RMYXllciA/IFtf
bGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDog
Q0FUcmFuc2Zvcm0zRElkZW50aXR5OworICAgIFJldGFpblB0cjxDQVBvcnRhbExheWVyPiBzbmFw
c2hvdCA9IF9sYXN0U25hcHNob3RMYXllciA/OiBhZG9wdE5TKFtbQ0FQb3J0YWxMYXllciBhbGxv
Y10gaW5pdF0pOworICAgIFtzbmFwc2hvdCBzZXRTb3VyY2VMYXllcjpbX3ZpZXcgbGF5ZXJdXTsK
KyAgICBbc25hcHNob3Qgc2V0TWF0Y2hlc1Bvc2l0aW9uOllFU107CisgICAgW3NuYXBzaG90IHNl
dE1hdGNoZXNUcmFuc2Zvcm06WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0QW5jaG9yUG9pbnQ6Q0dQ
b2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbc25hcHNob3Qgc2V0U3VibGF5ZXJUcmFuc2Zvcm06
Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOwor
ICAgIFtzbmFwc2hvdCBzZXRNYXNrc1RvQm91bmRzOllFU107CisgICAgW3NuYXBzaG90IHNldEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgYm91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5o
ZWlnaHQoKSldOworICAgIFtzbmFwc2hvdCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFti
YWNrZ3JvdW5kIGFkZFN1YmxheWVyOnNuYXBzaG90LmdldCgpXTsKKworICAgIEJPT0wgbmVlZHNB
bmltYXRlSW4gPSAhX2xhc3RQbGF0dGVyTGF5ZXIgfHwgX2lzU2l0dGluZ0Rvd247CisgICAgaWYg
KG5lZWRzQW5pbWF0ZUluKSB7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAi
c2hhZG93T3BhY2l0eSIsIEAob2xkU2hhZG93T3BhY2l0eSksIEAoW3NoYWRvdyBzaGFkb3dPcGFj
aXR5XSkpOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1JhZGl1
cyIsIEAob2xkU2hhZG93UmFkaXVzKSwgQChbc2hhZG93IHNoYWRvd1JhZGl1c10pKTsKKyAgICAg
ICAgYWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1Zh
bHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6b2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm1dLCBb
TlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltzaGFkb3cgc3VibGF5ZXJUcmFuc2Zvcm1d
XSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNuYXBzaG90LmdldCgpLCBAInN1YmxheWVyVHJh
bnNmb3JtIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpvbGRTbmFwc2hvdFN1Ymxh
eWVyVHJhbnNmb3JtXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbc25hcHNob3Qg
c3VibGF5ZXJUcmFuc2Zvcm1dXSk7CisKKyAgICAgICAgYWRkQWRkaXRpb25hbEluY29taW5nQW5p
bWF0aW9ucyhwbGF0dGVyLmdldCgpLCBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZhbHVl
KTsKKyAgICB9CisKKyAgICBpZiAoYW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBoYWRPbGRMYXll
cnMpIHsKKyAgICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAiYm91bmRzIiwgW05TVmFs
dWUgdmFsdWVXaXRoQ0dSZWN0Om9sZE1hc2tCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1Jl
Y3Q6W21hc2sgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJw
b3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkTWFza1Bvc2l0aW9uXSwgW05T
VmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbbWFzayBwb3NpdGlvbl1dKTsKKyAgICAgICAgYWRkQW5p
bWF0aW9uKG1hc2suZ2V0KCksIEAicGF0aCIsIChpZClvbGRNYXNrUGF0aC5nZXQoKSwgKGlkKVtt
YXNrIHBhdGhdKTsKKworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAImJvdW5k
cyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRTaGFkb3dCb3VuZHNdLCBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1JlY3Q6W3NoYWRvdyBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihz
aGFkb3cuZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFNo
YWRvd1Bvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbc2hhZG93IHBvc2l0aW9u
XV0pOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1BhdGgiLCAo
aWQpb2xkU2hhZG93UGF0aC5nZXQoKSwgKGlkKVtzaGFkb3cgc2hhZG93UGF0aF0pOworCisgICAg
ICAgIGFkZEFuaW1hdGlvbihwbGF0dGVyLmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVl
V2l0aENHUmVjdDpvbGRQbGF0dGVyQm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Oltw
bGF0dGVyIGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHBsYXR0ZXIuZ2V0KCksIEAi
cG9zaXRpb24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFBsYXR0ZXJQb3NpdGlvbl0s
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6W3BsYXR0ZXIgcG9zaXRpb25dXSk7CisKKyAgICAg
ICAgYWRkQW5pbWF0aW9uKGJhY2tncm91bmQuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFs
dWVXaXRoQ0dSZWN0Om9sZEJhY2tncm91bmRCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1Jl
Y3Q6W2JhY2tncm91bmQgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24oYmFja2dyb3Vu
ZC5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkQmFja2dy
b3VuZFBvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbYmFja2dyb3VuZCBwb3Np
dGlvbl1dKTsKKworICAgICAgICBhZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAiYm91bmRz
IiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZFNuYXBzaG90Qm91bmRzXSwgW05TVmFsdWUg
dmFsdWVXaXRoQ0dSZWN0OltzbmFwc2hvdCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlv
bihzbmFwc2hvdC5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6
b2xkU25hcHNob3RQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6W3NuYXBzaG90
IHBvc2l0aW9uXV0pOworICAgIH0KKworICAgIF9sYXN0TWFza0xheWVyID0gbWFzazsKKyAgICBf
bGFzdFNoYWRvd0xheWVyID0gc2hhZG93OworICAgIF9sYXN0UGxhdHRlckxheWVyID0gcGxhdHRl
cjsKKyAgICBfbGFzdEJhY2tncm91bmRMYXllciA9IGJhY2tncm91bmQ7CisgICAgX2xhc3RTbmFw
c2hvdExheWVyID0gc25hcHNob3Q7Cit9CisKKy0gKHZvaWQpZGlzbWlzc1BsYXR0ZXJXaXRoQW5p
bWF0aW9uOihCT09MKXdpdGhBbmltYXRpb24KK3sKKyAgICBpZiAoX2lzU2l0dGluZ0Rvd24pCisg
ICAgICAgIHJldHVybjsKKyAgICBfaXNTaXR0aW5nRG93biA9IHRydWU7CisKKyAgICBpZiAoIXdp
dGhBbmltYXRpb24pIHsKKyAgICAgICAgW19sYXN0U2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVy
bGF5ZXJdOworICAgICAgICBbc2VsZiBjbGVhckxheWVyc107CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0
Q29tcGxldGlvbkJsb2NrOltwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaGFkb3dM
YXllciA9IF9sYXN0U2hhZG93TGF5ZXJdIHsKKyAgICAgICAgW3Byb3RlY3RlZFNlbGYgZGlkRmlu
aXNoQW5pbWF0aW9uRm9yU2hhZG93OnNoYWRvd0xheWVyLmdldCgpXTsKKyAgICB9XTsKKworICAg
IGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAg
ICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5nZXQoKSwgQCJzaGFkb3dPcGFjaXR5Iiwg
QChbX2xhc3RTaGFkb3dMYXllciBzaGFkb3dPcGFjaXR5XSksIEAwKTsKKyAgICBhZGRBbmltYXRp
b24oX2xhc3RTaGFkb3dMYXllci5nZXQoKSwgQCJzaGFkb3dSYWRpdXMiLCBAKFtfbGFzdFNoYWRv
d0xheWVyIHNoYWRvd1JhZGl1c10pLCBAMCk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U2hhZG93
TGF5ZXIuZ2V0KCksIEAic3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOltfbGFzdFNoYWRvd0xheWVyIHN1YmxheWVyVHJhbnNmb3JtXV0sIFtOU1ZhbHVl
IHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSk7CisgICAgYWRk
QW5pbWF0aW9uKF9sYXN0U25hcHNob3RMYXllci5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIs
IFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W19sYXN0U25hcHNob3RMYXllciBzdWJs
YXllclRyYW5zZm9ybV1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNm
b3JtM0RJZGVudGl0eV0pOworICAgIGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKF9s
YXN0UGxhdHRlckxheWVyLmdldCgpKTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisK
KyAgICBpZiAoIXBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVycykKKyAgICAgICAgW3Nl
bGYgY2xlYXJMYXllcnNdOworfQorCistICh2b2lkKWRpZEZpbmlzaEFuaW1hdGlvbkZvclNoYWRv
dzooQ0FMYXllciAqKXNoYWRvd0xheWVyCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3Zl
clBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAgIGlmICghcGFyYW1ldGVycy5hbmltYXRl
QmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5
ZXJdOworCisgICAgaWYgKF9pc1NpdHRpbmdEb3duICYmIHBhcmFtZXRlcnMuYW5pbWF0ZUJldHdl
ZW5QbGF0dGVycyAmJiBzaGFkb3dMYXllciA9PSBfbGFzdFNoYWRvd0xheWVyKSB7CisgICAgICAg
IFtzaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgICAgIFtzZWxmIGNsZWFy
TGF5ZXJzXTsKKyAgICB9Cit9CisKKy0gKHZvaWQpY2xlYXJMYXllcnMKK3sKKyAgICBfbGFzdE1h
c2tMYXllciA9IG5pbDsKKyAgICBfbGFzdFNoYWRvd0xheWVyID0gbmlsOworICAgIF9sYXN0UGxh
dHRlckxheWVyID0gbmlsOworICAgIF9sYXN0QmFja2dyb3VuZExheWVyID0gbmlsOworICAgIF9s
YXN0U25hcHNob3RMYXllciA9IG5pbDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhjNDhmNDU5MTZhMzVkMDc4NGEwN2FlNGJhOGVlMThm
YTc2OWE4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVS
RV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJQcm90b3R5cGVUb29sc1NQSS5oIgorCitAaW50ZXJm
YWNlIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyA6IFBUU2V0dGluZ3MKKworQHByb3BlcnR5IChu
b25hdG9taWMpIEJPT0wgcGxhdHRlckVuYWJsZWRGb3JNb3VzZTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHBsYXR0ZXJFbmFibGVkRm9ySG92ZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBDR0Zsb2F0IHBsYXR0ZXJDb3JuZXJSYWRpdXM7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dG
bG9hdCBwbGF0dGVyUGFkZGluZzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0
ZXJTaGFkb3dPcGFjaXR5OworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlclNo
YWRvd1JhZGl1czsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSB1bnNpZ25lZCBwbGF0dGVySW5mbGF0
aW9uU2l6ZTsKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZUJldHdlZW5QbGF0
dGVyczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHNwcmluZ01hc3M7CitAcHJvcGVy
dHkgKG5vbmF0b21pYykgQ0dGbG9hdCBzcHJpbmdTdGlmZm5lc3M7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQ0dGbG9hdCBzcHJpbmdEYW1waW5nOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVGlt
ZUludGVydmFsIGR1cmF0aW9uOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgdXNlU3By
aW5nOworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0
aW9ucy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnNBZGRpdGlvbnMuaD4KKyNlbmRpZgorCitAZW5k
CisKK0BpbnRlcmZhY2UgV0tIb3ZlclBsYXR0ZXJEb21haW4gOiBQVERvbWFpbgorKyAoV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzICopcm9vdFNldHRpbmdzOworQGVuZAorCisjZW5kaWYgLy8gSEFW
RShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09H
TklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXJQYXJhbWV0ZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQ
bGF0dGVyUGFyYW1ldGVycy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTQ5YTg0NWNkMWY1Yjk0ZWQ2ODJmY2Qy
ODcyNWYzODEwNWYxMTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbQpAQCAtMCwwICsxLDE0MiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzLmgiCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxF
KEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKworI2ltcG9ydCAiUHJvdG90eXBlVG9vbHNTUEku
aCIKKworQGludGVyZmFjZSBQVFNsaWRlclJvdyAoV2ViS2l0KQorCistIChpZClpbnRlZ2VyTWlu
VmFsdWU6KENHRmxvYXQpbWluVmFsdWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWU7CisKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlkKWludGVn
ZXJNaW5WYWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZQor
eworICAgIHJldHVybiBbW3NlbGYgbWluVmFsdWU6bWluVmFsdWUgbWF4VmFsdWU6bWF4VmFsdWVd
IHZhbHVlVmFsaWRhdG9yOl5pZChpZCBwcm9wb3NlZFZhbHVlLCBpZCBzZXR0aW5ncykgeworICAg
ICAgICByZXR1cm4gQChDR1JvdW5kKFtwcm9wb3NlZFZhbHVlIGZsb2F0VmFsdWVdKSk7CisgICAg
fV07Cit9CisKK0BlbmQKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxX
ZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzQWRkaXRpb25zLm1tPgorI2Vs
c2UKK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhOU011
dGFibGVBcnJheSAqcm93cyk7CitzdGF0aWMgdm9pZCBzZXREZWZhdWx0VmFsdWVzRm9yQWRkaXRp
b25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyAqKTsK
KyNlbmRpZgorCitAaW1wbGVtZW50YXRpb24gV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzCisKKy0g
KHZvaWQpc2V0RGVmYXVsdFZhbHVlcworeworICAgIFtzdXBlciBzZXREZWZhdWx0VmFsdWVzXTsK
KworICAgIF9wbGF0dGVyRW5hYmxlZEZvck1vdXNlID0gTk87CisgICAgX3BsYXR0ZXJFbmFibGVk
Rm9ySG92ZXIgPSBZRVM7CisKKyAgICBfcGxhdHRlckNvcm5lclJhZGl1cyA9IDY7CisgICAgX3Bs
YXR0ZXJQYWRkaW5nID0gNTsKKyAgICBfcGxhdHRlclNoYWRvd09wYWNpdHkgPSAwLjY7CisgICAg
X3BsYXR0ZXJTaGFkb3dSYWRpdXMgPSAxMDsKKyAgICBfcGxhdHRlckluZmxhdGlvblNpemUgPSA4
OworCisgICAgX2FuaW1hdGVCZXR3ZWVuUGxhdHRlcnMgPSBZRVM7CisgICAgX3NwcmluZ01hc3Mg
PSAyOworICAgIF9zcHJpbmdTdGlmZm5lc3MgPSAxMDA7CisgICAgX3NwcmluZ0RhbXBpbmcgPSA1
MDsKKyAgICBfZHVyYXRpb24gPSAwLjM7CisgICAgX3VzZVNwcmluZyA9IFlFUzsKKworICAgIHNl
dERlZmF1bHRWYWx1ZXNGb3JBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMoc2VsZik7
Cit9CisKKysgKFBUTW9kdWxlICopc2V0dGluZ3NDb250cm9sbGVyTW9kdWxlCit7CisgICAgUFRT
ZWN0aW9uICplbmFibGVtZW50U2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6QFsK
KyAgICAgICAgW1BUU3dpdGNoUm93IHJvd1dpdGhUaXRsZTpAIkVuYWJsZSBQbGF0dGVyIEZvciBN
b3VzZSIgdmFsdWVLZXlQYXRoOkAicGxhdHRlckVuYWJsZWRGb3JNb3VzZSJdLAorICAgICAgICBb
UFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiRW5hYmxlIFBsYXR0ZXIgRm9yIEhvdmVyIiB2YWx1
ZUtleVBhdGg6QCJwbGF0dGVyRW5hYmxlZEZvckhvdmVyIl0sCisgICAgXSB0aXRsZTpAIlBsYXR0
ZXIiXTsKKworICAgIFBUU2VjdGlvbiAqYW5pbWF0aW9uU2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0
aW9uV2l0aFJvd3M6QFsKKyAgICAgICAgW1BUU3dpdGNoUm93IHJvd1dpdGhUaXRsZTpAIkFuaW1h
dGUgQmV0d2VlbiBQbGF0dGVycyIgdmFsdWVLZXlQYXRoOkAiYW5pbWF0ZUJldHdlZW5QbGF0dGVy
cyJdLAorICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiVXNlIFNwcmluZyIgdmFs
dWVLZXlQYXRoOkAidXNlU3ByaW5nIl0sCisgICAgICAgIFtbW1BUU2xpZGVyUm93IHJvd1dpdGhU
aXRsZTpAIkR1cmF0aW9uIiB2YWx1ZUtleVBhdGg6QCJkdXJhdGlvbiJdIG1pblZhbHVlOjAgbWF4
VmFsdWU6MV0gY29uZGl0aW9uOltOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAidXNl
U3ByaW5nID09IEZBTFNFIl1dLAorICAgICAgICBbW1BURWRpdEZsb2F0Um93IHJvd1dpdGhUaXRs
ZTpAIlNwcmluZyBNYXNzIiB2YWx1ZUtleVBhdGg6QCJzcHJpbmdNYXNzIl0gY29uZGl0aW9uOltO
U1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAidXNlU3ByaW5nID09IFRSVUUiXV0sCisg
ICAgICAgIFtbUFRFZGl0RmxvYXRSb3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIFN0aWZmbmVzcyIg
dmFsdWVLZXlQYXRoOkAic3ByaW5nU3RpZmZuZXNzIl0gY29uZGl0aW9uOltOU1ByZWRpY2F0ZSBw
cmVkaWNhdGVXaXRoRm9ybWF0OkAidXNlU3ByaW5nID09IFRSVUUiXV0sCisgICAgICAgIFtbUFRF
ZGl0RmxvYXRSb3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIERhbXBpbmciIHZhbHVlS2V5UGF0aDpA
InNwcmluZ0RhbXBpbmciXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3Jt
YXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAgICBdIHRpdGxlOkAiQW5pbWF0aW9uIl07CisK
KyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHBsYXR0ZXJMYXlvdXRSb3dzID0gYWRvcHRO
UyhbQFsKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJDb3JuZXIgUmFkaXVz
IiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyQ29ybmVyUmFkaXVzIl0gaW50ZWdlck1pblZhbHVlOjAg
bWF4VmFsdWU6MjBdLAorICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlBhZGRp
bmciIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJQYWRkaW5nIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4
VmFsdWU6MjBdLAorICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlNoYWRvdyBP
cGFjaXR5IiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyU2hhZG93T3BhY2l0eSJdIG1pblZhbHVlOjAg
bWF4VmFsdWU6MV0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiU2hhZG93
IFJhZGl1cyIgdmFsdWVLZXlQYXRoOkAicGxhdHRlclNoYWRvd1JhZGl1cyJdIGludGVnZXJNaW5W
YWx1ZTowIG1heFZhbHVlOjIwXSwKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6
QCJJbmZsYXRpb24gU2l6ZSIgdmFsdWVLZXlQYXRoOkAicGxhdHRlckluZmxhdGlvblNpemUiXSBp
bnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZTozMF0KKyAgICBdIG11dGFibGVDb3B5XSk7CisgICAg
YWRkQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKHBsYXR0ZXJMYXlvdXRSb3dzLmdl
dCgpKTsKKworICAgIFBUU2VjdGlvbiAqcGxhdHRlckxheW91dFNlY3Rpb24gPSBbUFRNb2R1bGUg
c2VjdGlvbldpdGhSb3dzOnBsYXR0ZXJMYXlvdXRSb3dzLmdldCgpIHRpdGxlOkAiUGxhdHRlciBM
YXlvdXQiXTsKKworICAgIFBUU2VjdGlvbiAqcmVzdG9yZURlZmF1bHRzU2VjdGlvbiA9IFtQVE1v
ZHVsZSBzZWN0aW9uV2l0aFJvd3M6QFsKKyAgICAgICAgW1BUQnV0dG9uUm93IHJvd1dpdGhUaXRs
ZTpAIlJlc3RvcmUgRGVmYXVsdHMiIGFjdGlvbjpbUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93
QWN0aW9uIGFjdGlvbl1dCisgICAgXV07CisKKyAgICByZXR1cm4gW1BUTW9kdWxlIG1vZHVsZVdp
dGhUaXRsZTpuaWwgY29udGVudHM6QFsgZW5hYmxlbWVudFNlY3Rpb24sIGFuaW1hdGlvblNlY3Rp
b24sIHBsYXR0ZXJMYXlvdXRTZWN0aW9uLCByZXN0b3JlRGVmYXVsdHNTZWN0aW9uIF1dOworfQor
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0hvdmVyUGxhdHRlckRvbWFpbgorCisrIChXS0hv
dmVyUGxhdHRlclBhcmFtZXRlcnMgKilyb290U2V0dGluZ3MKK3sKKyAgICByZXR1cm4gW3N1cGVy
IHJvb3RTZXR0aW5nc107Cit9CisKKysgKE5TU3RyaW5nICopZG9tYWluR3JvdXBOYW1lCit7Cisg
ICAgcmV0dXJuIEAiV2ViS2l0IjsKK30KKworKyAoTlNTdHJpbmcgKilkb21haW5OYW1lCit7Cisg
ICAgcmV0dXJuIEAiSG92ZXIgUGxhdHRlciI7Cit9CisKKysgKENsYXNzKXJvb3RTZXR0aW5nc0Ns
YXNzCit7CisgICAgcmV0dXJuIFtXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgY2xhc3NdOworfQor
CitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5B
QkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk4Y2U0ZDgzOWU0MDhjMmNmZTEyYzhlZjc4
OGNkNDE2YTI2MGRiOTEuLjBiYTYzYWQ5MzA5ODMzNjFiYWY1NzlkZDg4NTE1MDk4ZDhkMDNlYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNjM0LDYgKzYzNCw3IEBACiAJCTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdH
ZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTJEMUI1RDVFMTg1
ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQxQjVENUMxODU4NjlDODAw
NkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggKi87IH07CiAJCTJEMUU4
MjIzMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFFODIyMTIxNkZGRjUwMDBBMTUyNjUgLyogV0tX
ZWJFdmVudC5oICovOyB9OworCQkyRDI3OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBl
VG9vbHNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovOyB9Owog
CQkyRDI4QTQ5NzFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjhBNDk1MUFGOTY1
QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oICovOyB9OwogCQkyRDI5RUNEMDE5
MkYyQzJFMDA5ODRCNzggLyogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDRTE5
MkYyQzJFMDA5ODRCNzggLyogUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmgg
Ki87IH07CiAJCTJEM0E2NURCMUE3QzNBMUYwMENBQzYzNyAvKiBXS05hdmlnYXRpb25BY3Rpb25S
ZWYuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0E2
NUQ5MUE3QzNBMUYwMENBQzYzNyAvKiBXS05hdmlnYXRpb25BY3Rpb25SZWYuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzE3MSw2ICszMTcyLDEx
IEBACiAJCTJEMUU4MjIyMjE2RkZGNTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlv
cy9XS1dlYkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1RjMyODI1
NzU4RTkwMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyog
SW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTBFMjY5NEMyMjYwMDRCM0VFQiAvKiBXS0hvdmVyUGxh
dHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0hvdmVyUGxhdHRlci5oOyBwYXRoID0gaW9zL1dLSG92
ZXJQbGF0dGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTBGMjY5NEMy
MjcwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdL
SG92ZXJQbGF0dGVyLm1tOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0dGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUxMDI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBs
YXR0ZXJQYXJhbWV0ZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVy
cy5oOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyRDI3OUUxMTI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0
ZXJQYXJhbWV0ZXJzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzLm1tOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMTgyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3Rv
dHlwZVRvb2xzU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3RvdHlw
ZVRvb2xzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk1MUFGOTY1
QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDI4QTQ5NjFBRjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRl
Z3kubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1ZpZXdMYXlv
dXRTdHJhdGVneS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEYzRTAxODg1
Q0NDMTAwNEI5RUFFIC8qIFdlYkNocm9tZUNsaWVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkNocm9tZUNsaWVudElPUy5tbTsgcGF0aCA9IGlvcy9X
ZWJDaHJvbWVDbGllbnRJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03Nzky
LDYgKzc3OTgsMTAgQEAKIAkJCQkwRkNCNEU0MTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tICovLAogCQkJCUY0REI1NEU0MjMx
OUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmgg
Ki8sCiAJCQkJRjREQjU0RTUyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNz
R2VzdHVyZVJlY29nbml6ZXIubW0gKi8sCisJCQkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8q
IFdLSG92ZXJQbGF0dGVyLmggKi8sCisJCQkJMkQyNzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdL
SG92ZXJQbGF0dGVyLm1tICovLAorCQkJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hv
dmVyUGxhdHRlclBhcmFtZXRlcnMuaCAqLywKKwkJCQkyRDI3OUUxMTI2OTRDMkQxMDA0QjNFRUIg
LyogV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tICovLAogCQkJCUY0QkEzM0YwMjU3NTdFODkw
MDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCUY0
QkEzM0YxMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXpl
ci5tbSAqLywKIAkJCQk5MzNERjgyRDFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdW
aWV3Q29udHJvbGxlci5oICovLApAQCAtMTE1MjksNiArMTE1MzksNyBAQAogCQkJCTJENEFGMDg4
MjA0NEMzQzQwMDZDODgxNyAvKiBGcm9udEJvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlBMTNC
M0RBMTIwN0YzOURFMDA5MEM1OEQgLyogTW9iaWxlV2lGaVNQSS5oICovLAogCQkJCTMxNzhBRjk3
MjBFMkE3RjgwMDc0REU5NCAvKiBQREZLaXRTUEkuaCAqLywKKwkJCQkyRDI3OUUxODI2OTU1NzY4
MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLywKIAkJCQk0NkYzOEU4QjI0MTZFNjZE
MDA1OTM3NUEgLyogUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlDRTFBMEJEMDFB
NDhFNkM2MDA1NEVGNzQgLyogVENDU1BJLmggKi8sCiAJCQkJQ0UxQTBCRDExQTQ4RTZDNjAwNTRF
Rjc0IC8qIFRleHRJbnB1dFNQSS5oICovLApAQCAtMTIyMzYsNiArMTIyNDcsNyBAQAogCQkJCTQ2
M0ZENDgyMUVCOTRFQzAwMEEyOTgyQyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2RTY3QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0
bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyogUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkQyNzlFMTkyNjk1NTc2
ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUU2
ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRM
aW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVp
Y2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
</data>
<flag name="commit-queue"
          id="455125"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433013</attachid>
            <date>2021-07-06 23:01:15 -0700</date>
            <delta_ts>2021-07-07 00:21:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210706230114.patch</filename>
            <type>text/plain</type>
            <size>59283</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5hNWNlYjM3NjZlYmQ4NmMwZDQxZjNm
OTI0ZjY1MmRiMTAyYTg2ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaDoKKwogMjAyMS0wNy0wMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQQ006IENoYW5nZSBpbXBvcnQgZnJvbSBDcnlwdG9LaXRDQnJpZGdpbmcg
dG8gQ3J5cHRvS2l0UHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlY2YwZDhiYjkwYTUwMTdkMmZjMGUzNGQ2
YjIyNGZmOWI1YTY5OTQzLi5iNTFiZDU2YWU3NWRjYWUwZDE2MGRmMTE1MjBiNTRiZTY2MzUxZTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA3LTA2ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS0hvdmVyUGxhdHRlciBhbmQg
c29tZSBrbm9icyB0byB0d2VhayBpdHMgYXBwZWFyYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTE5ODI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL1Byb3RvdHlwZVRvb2xzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHJvb3RDb250ZW50Vmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFj
dGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgor
ICAgICAgICBJbnN0YWxsIGFuZCB1bmluc3RhbGwgdGhlIHBsYXR0ZXIgYWxvbmdzaWRlIHRoZSBn
ZXN0dXJlcyB0aGF0IGRyaXZlIGl0LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbW91c2VH
ZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaG92
ZXJHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgIFdoZW4gdGhlIGdlc3R1cmUg
cmVjb2duaXplcnMgZmlyZSwgYWxzbyB1cGRhdGUgdGhlIGhvdmVyIHBvaW50LgorCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjp3aXRo
UmVxdWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXIubW06IEFkZGVkLgorICAgICAgICAoY3JlYXRlQmFzZUFuaW1hdGlvbik6CisgICAgICAg
IChhZGRBbmltYXRpb24pOgorICAgICAgICAoc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyk6CisgICAg
ICAgIChhZGRBZGRpdGlvbmFsRGlzbWlzc2FsQW5pbWF0aW9ucyk6CisgICAgICAgICgtW1dLSG92
ZXJQbGF0dGVyIGluaXRXaXRoVmlldzpkZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBs
YXR0ZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBob3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIHNldEhvdmVyUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSG92ZXJQbGF0dGVyIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkUmVjZWl2ZVBvc2l0aW9u
SW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpc21pc3NQbGF0dGVy
V2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkRmluaXNoQW5p
bWF0aW9uRm9yU2hhZG93Ol0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBjbGVhckxheWVy
c10pOgorICAgICAgICBBbmltYXRlIHRoZSBwbGF0dGVyIGluIGFuZCBvdXQsIGFuZCBvcHRpb25h
bGx5IGJldHdlZW4gc3RhdGVzLCBhcyB0aGUgaG92ZXIgcG9pbnQgbW92ZXMuCisgICAgICAgIFVz
ZSB0aGUgVGV4dEluZGljYXRvcidzIGdlb21ldHJ5IGluZm9ybWF0aW9uLCBidXQgbm90IGl0cyBz
bmFwc2hvdDsgd2UgdXNlIGEKKyAgICAgICAgQ0FQb3J0YWxMYXllciBmb3IgdGhlIHBsYXR0ZXIg
aW5zdGVhZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBhdm9pZCB0YWtpbmcgdGhlIHNuYXBzaG90Cisg
ICAgICAgIGVudGlyZWx5LCBzaW5jZSB3ZSBjYWxsIHNldEhvdmVyUG9pbnQgKGFuZCB0aHVzIGdl
bmVyYXRlIGEgVGV4dEluZGljYXRvcikgYSAqbG90KgorICAgICAgICB3aGVuIG1vdmluZyB0aGUg
bW91c2UgYXJvdW5kLCBhbmQgYWxsIHRob3NlIHNuYXBzaG90cyBhZGQgdXAuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTogQWRkZWQuCisg
ICAgICAgICgtW1BUU2xpZGVyUm93IGludGVnZXJNaW5WYWx1ZTptYXhWYWx1ZTpdKToKKyAgICAg
ICAgKC1bV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldERlZmF1bHRWYWx1ZXNdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldHRpbmdzQ29udHJvbGxlck1vZHVsZV0p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluR3JvdXBOYW1lXSk6CisgICAgICAgICgr
W1dLSG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbk5hbWVdKToKKyAgICAgICAgKCtbV0tIb3ZlclBs
YXR0ZXJEb21haW4gcm9vdFNldHRpbmdzQ2xhc3NdKToKKyAgICAgICAgQWRkIHNvbWUga25vYnMs
IHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cywgZm9yIGV4cGVyaW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGFrZSBhIHByb2Nlc3MgYXNz
ZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xkaW5nIGxvY2tlZCBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmlu
ZGV4IDBiMGIwNWY4NmZkNDAzZDFjODdhNjQwMGY3YWI0ODllMDEyZGMyZmIuLmNhOTZiYWE2N2Y2
NGY2NmJlYjQwOTMyNGJkZTM1ZTQzNDM1MmE3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTE2Myw2ICsxNjMsMTIgQEAgdHlw
ZWRlZiBlbnVtIHsKIC0gKGZsb2F0KV9zb2x2ZUZvcklucHV0OihmbG9hdCl0OwogQGVuZAogCitA
aW50ZXJmYWNlIENBUG9ydGFsTGF5ZXIgOiBDQUxheWVyCitAcHJvcGVydHkgKHdlYWspIENBTGF5
ZXIgKnNvdXJjZUxheWVyOworQHByb3BlcnR5IEJPT0wgbWF0Y2hlc1Bvc2l0aW9uOworQHByb3Bl
cnR5IEJPT0wgbWF0Y2hlc1RyYW5zZm9ybTsKK0BlbmQKKwogI2VuZGlmIC8vIF9fT0JKQ19fCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpp
bmRleCA5ZjdjY2U1MTM3Y2U2ZmZmMjRjMDViNjc2MTZjMGQ2MGYzZjFlYTUxLi5kZGY4MGI2MjQ2
ZTg3MGY0NjY3ZjA0MjA3Mzk0Y2UwNzUzMjY2NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtOTMsNiArOTMsOSBAQCBXS19QREZLSVRfTERG
TEFHU19pcGhvbmVzaW11bGF0b3Jbc2RrPWlwaG9uZSoxMS4qXSA9IDsKIFdLX1BERktJVF9MREZM
QUdTX21hY2NhdGFseXN0ID0gJChXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdCQoV0tfTUFD
T1NfMTEwMCkpOwogV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3RfTUFDT1NfU0lOQ0VfMTEw
MCA9ICQoV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MpOwogCitXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUyA9ICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkp
OworV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUHJv
dG90eXBlVG9vbHM7CisKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUyA9ICQoV0tfU0FGRV9CUk9X
U0lOR19MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBTYWZhcmlTYWZlQnJvd3Npbmc7CiBXS19TQUZFX0JS
T1dTSU5HX0xERkxBR1NfaXBob25lb3Nbc2RrPWlwaG9uZSoxMC4qXSA9IDsKQEAgLTE0Myw3ICsx
NDYsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtbG5l
dHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4ID0g
LXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tfTElC
TkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAk
KFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJ
TEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQo
V0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VS
SVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FD
Q0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChX
S19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhU
RU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19M
REZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dF
U1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJG
QUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZUEVfSURFTlRJ
RklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BF
Q1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQg
QysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRl
bGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRl
ZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNT
dDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0
cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
UHJvdG90eXBlVG9vbHNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Qcm90
b3R5cGVUb29sc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4OTAwYTI0ZGRhMjEyN2ZkZGFhOTIwYjQ5MGQw
ZmFhZWU2MWNkYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPFByb3RvdHlwZVRvb2xzL1By
b3RvdHlwZVRvb2xzLmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgUFRTZXR0aW5ncyA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CistICh2b2lkKXNldERlZmF1bHRWYWx1ZXM7CitAZW5kCisKK0BpbnRl
cmZhY2UgUFREb21haW4gOiBOU09iamVjdAorKyAoX19raW5kb2YgUFRTZXR0aW5ncyAqKXJvb3RT
ZXR0aW5nczsKK0BlbmQKKworQGludGVyZmFjZSBQVFNlY3Rpb24gOiBOU09iamVjdAorQGVuZAor
CitAaW50ZXJmYWNlIFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVX
aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsK
KysgKFBUU2VjdGlvbiAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSb3cgOiBOU09iamVjdCA8TlND
b3B5aW5nLCBOU1NlY3VyZUNvZGluZz4KKysgKGluc3RhbmNldHlwZSlyb3dXaXRoVGl0bGU6KE5T
U3RyaW5nICopc3RhdGljVGl0bGUgdmFsdWVLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGg7Cist
IChpZCl2YWx1ZVZhbGlkYXRvcjooaWQoXikoaWQgcHJvcG9zZWRWYWx1ZSwgaWQgc2V0dGluZ3Mp
KXZhbGlkYXRvcjsKKy0gKGlkKWNvbmRpdGlvbjooTlNQcmVkaWNhdGUgKiljb25kaXRpb247CitA
ZW5kCisKK0BpbnRlcmZhY2UgUFRTUm93IDogUFRSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFN3
aXRjaFJvdyA6IFBUU1JvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IDogUFRTUm93
CistIChpZCltaW5WYWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhW
YWx1ZTsKK0BlbmQKKworQGludGVyZmFjZSBQVEVkaXRGbG9hdFJvdyA6IFBUU1JvdworQGVuZAor
CitAaW50ZXJmYWNlIFBUUm93QWN0aW9uIDogTlNPYmplY3QKK0BlbmQKKworQGludGVyZmFjZSBQ
VFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gOiBQVFJvd0FjdGlvbgorKyAoaW5zdGFu
Y2V0eXBlKWFjdGlvbjsKK0BlbmQKKworQGludGVyZmFjZSBQVEJ1dHRvblJvdyA6IFBUU1Jvdwor
KyAoaW5zdGFuY2V0eXBlKXJvd1dpdGhUaXRsZTooTlNTdHJpbmcgKilzdGF0aWNUaXRsZSBhY3Rp
b246KFBUUm93QWN0aW9uICopYWN0aW9uOworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCA0MDUwYzQwM2M0NmQ1NjRjMmU5ODNjNWYyNjU1NTFjNjk3NWNlOGZkLi5lNmY2
YzBkYjdkMmE2MTkwMDk4Y2RmODk3MWYyYmMwMjNiMmZmODM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC00ODksNiArNDg5LDggQEAgVUlQcm9jZXNzL2lvcy9XS0RlZmVycmluZ0dlc3R1cmVS
ZWNvZ25pemVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQog
VUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4u
bW0KIFVJUHJvY2Vzcy9pb3MvV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5t
bQorVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQorVUlQcm9jZXNzL2lvcy9XS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMubW0KIFVJUHJvY2Vzcy9pb3MvV0tJbWFnZUFuYWx5c2lzR2VzdHVy
ZVJlY29nbml6ZXIubW0KIFVJUHJvY2Vzcy9pb3MvV0tLZXlib2FyZFNjcm9sbGluZ0FuaW1hdG9y
Lm1tCiBVSVByb2Nlc3MvaW9zL1dLTW9kZWxJbnRlcmFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLm1t
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAppbmRleCAwOTUw
ODZjZDFmOWQ1ZjY5ZjdhN2FlMTk4ZWY5YTlmY2UwYzRiZmYwLi43NjA2NTkwNDdkMWFhMmI1ZGY3
YWVlNDBkMTQxNGRhMzlhNDE2YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3LmgKQEAgLTk0LDYgKzk0LDcgQEAgZW51bSBjbGFzcyBWaWV3U3RhYmlsaXR5
RmxhZyA6IHVpbnQ4X3Q7CiAtICh2b2lkKV93ZWJWaWV3RGVzdHJveWVkOwogCiAtIChXS1dlYlZp
ZXcgKil3ZWJWaWV3OworLSAoVUlWaWV3ICopcm9vdENvbnRlbnRWaWV3OwogCiAtIChzdGQ6OnVu
aXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PilfY3JlYXRlRHJhd2luZ0FyZWFQcm94
eTooV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkmKXByb2Nlc3M7CiAtICh2b2lkKV9wcm9jZXNzRGlk
RXhpdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5k
ZXggNmIwNDliNDA3YjEyMWU4OTMwNDJkZjM5YTE1MWZjOTYyOTEwZWEyZC4uOWM5NjMxYjE4MGY2
ZDUyM2EzOTcwNWM3M2U0MGUyMDhmNmZkZDE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTMyNiw2ICszMjYsMTEgQEAgLSAoV0tXZWJWaWV3
ICopd2ViVmlldwogICAgIHJldHVybiBfd2ViVmlldy5nZXRBdXRvcmVsZWFzZWQoKTsKIH0KIAor
LSAoVUlWaWV3ICopcm9vdENvbnRlbnRWaWV3Cit7CisgICAgcmV0dXJuIF9yb290Q29udGVudFZp
ZXcuZ2V0KCk7Cit9CisKIC0gKHZvaWQpd2lsbE1vdmVUb1dpbmRvdzooVUlXaW5kb3cgKiluZXdX
aW5kb3cKIHsKICAgICBbc3VwZXIgd2lsbE1vdmVUb1dpbmRvdzpuZXdXaW5kb3ddOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCmluZGV4IDM1NmIzMzMyNjI4ZWUxYzUyZWFmNmFjZTBkMDAzYzgwYzViNjE5YjQuLjI2YTFl
MmRlZmExMTUxNDM1NTE0OGRlZTVkYWRjZDljMTdhNDIwOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM5
LDYgKzM5LDcgQEAKICNpbXBvcnQgIlRleHRDaGVja2luZ0NvbnRyb2xsZXIuaCIKICNpbXBvcnQg
IlRyYW5zYWN0aW9uSUQuaCIKICNpbXBvcnQgIlVJS2l0U1BJLmgiCisjaW1wb3J0ICJXS0hvdmVy
UGxhdHRlci5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaD4KICNp
bXBvcnQgPFdlYktpdC9XS0FpclBsYXlSb3V0ZVBpY2tlci5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
Q29udGFjdFBpY2tlci5oPgpAQCAtMjk1LDYgKzI5NiwxMCBAQCB1c2luZyBJbWFnZUFuYWx5c2lz
UmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1ZXN0
SWRlbgogICAgIFJldGFpblB0cjxXS0hvdmVyR2VzdHVyZVJlY29nbml6ZXI+IF9ob3Zlckdlc3R1
cmVSZWNvZ25pemVyOwogI2VuZGlmCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBSZXRhaW5QdHI8V0tI
b3ZlclBsYXR0ZXI+IF9ob3ZlclBsYXR0ZXI7CisjZW5kaWYKKwogI2lmIEhBVkUoUEVOQ0lMS0lU
X1RFWFRfSU5QVVQpCiAgICAgUmV0YWluUHRyPFVJSW5kaXJlY3RTY3JpYmJsZUludGVyYWN0aW9u
PiBfc2NyaWJibGVJbnRlcmFjdGlvbjsKICNlbmRpZgpAQCAtNTI2LDYgKzUzMSw5IEBAIHVzaW5n
IEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VB
bmFseXNpc1JlcXVlc3RJZGVuCiAgICAgLCBVSURyYWdJbnRlcmFjdGlvbkRlbGVnYXRlLCBVSURy
b3BJbnRlcmFjdGlvbkRlbGVnYXRlCiAjZW5kaWYKICAgICAsIFdLVG91Y2hBY3Rpb25HZXN0dXJl
UmVjb2duaXplckRlbGVnYXRlCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8
IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgLCBXS0hvdmVyUGxhdHRlckRl
bGVnYXRlCisjZW5kaWYKID4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1Bv
aW50IGxhc3RJbnRlcmFjdGlvbkxvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMzdlNmIzNzlj
YmYyYzdmZDRiOTJlOGFlYjI3NTQzNWYzNzQ4OGY0MC4uMWQ3Y2E1OTQ0ZjhmZjRjOTE3ZmY4ZDhj
NWY1OWVjZjI5YmQ4ZGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC01Niw2ICs1Niw4IEBACiAjaW1w
b3J0ICJXS0Zvcm1TZWxlY3RDb250cm9sLmgiCiAjaW1wb3J0ICJXS0ZyYW1lSW5mb0ludGVybmFs
LmgiCiAjaW1wb3J0ICJXS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmgiCisj
aW1wb3J0ICJXS0hvdmVyUGxhdHRlci5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0
ZXJzLmgiCiAjaW1wb3J0ICJXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5oIgogI2lt
cG9ydCAiV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbnNwZWN0
b3JOb2RlU2VhcmNoR2VzdHVyZVJlY29nbml6ZXIuaCIKQEAgLTEyOCw2ICsxMzAsNyBAQAogI2lt
cG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkV2ZW50
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYlRleHRJbmRpY2F0b3JMYXllci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9Xcml0aW5nRGlyZWN0aW9uLmg+CkBAIC0xMzYsNiArMTM5LDcgQEAKICNpbXBvcnQg
PHBhbC9zcGkvY29jb2EvRGF0YURldGVjdG9yc0NvcmVTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
Y29jb2EvTGF1bmNoU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBdHRy
aWJ1dGVkU3RyaW5nU1BJLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEku
aD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL0RhdGFEZXRlY3RvcnNVSVNQSS5oPgogI2ltcG9ydCA8
cGFsL3NwaS9pb3MvR3JhcGhpY3NTZXJ2aWNlc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9pb3Mv
TWFuYWdlZENvbmZpZ3VyYXRpb25TUEkuaD4KQEAgLTg5NCw2ICs4OTgsMTAgQEAgLSAodm9pZClz
ZXRVcEludGVyYWN0aW9uCiAgICAgW3NlbGYgc2V0VXBIb3Zlckdlc3R1cmVSZWNvZ25pemVyXTsK
ICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShI
T1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgX2hvdmVyUGxhdHRlciA9IGFkb3B0TlMoW1tX
S0hvdmVyUGxhdHRlciBhbGxvY10gaW5pdFdpdGhWaWV3OnNlbGYucm9vdENvbnRlbnRWaWV3IGRl
bGVnYXRlOnNlbGZdKTsKKyNlbmRpZgorCiAjaWYgSEFWRShMT09LVVBfR0VTVFVSRV9SRUNPR05J
WkVSKQogICAgIF9sb29rdXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tfVUlMb29rdXBH
ZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVj
dG9yKF9sb29rdXBHZXN0dXJlUmVjb2duaXplZDopXSk7CiAgICAgW19sb29rdXBHZXN0dXJlUmVj
b2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKQEAgLTEwODEsNiArMTA4OSwxMSBAQCAtICh2b2lk
KWNsZWFuVXBJbnRlcmFjdGlvbgogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9o
b3Zlckdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9X
SVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisg
ICAgW19ob3ZlclBsYXR0ZXIgaW52YWxpZGF0ZV07CisgICAgX2hvdmVyUGxhdHRlciA9IG5pbDsK
KyNlbmRpZgorCiAjaWYgSEFWRShMT09LVVBfR0VTVFVSRV9SRUNPR05JWkVSKQogICAgIFtfbG9v
a3VwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKICAgICBbc2VsZiByZW1vdmVH
ZXN0dXJlUmVjb2duaXplcjpfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwpAQCAtNDc0
MCw2ICs0NzUzLDEwIEBAIC0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWUKICAgICBf
YWN0aXZlVGV4dEludGVyYWN0aW9uQ291bnQgPSAwOwogICAgIF90cmVhdEFzQ29udGVudEVkaXRh
YmxlVW50aWxOZXh0RWRpdG9yU3RhdGVVcGRhdGUgPSBOTzsKICAgICBbc2VsZiBfaW52YWxpZGF0
ZUN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXTsKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIFtfaG92
ZXJQbGF0dGVyIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpOT107CisjZW5kaWYKIH0KIAog
I2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQpAQCAtOTUwMiw2ICs5NTE5LDggQEAg
LSAodm9pZCltb3VzZUdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDooV0tNb3VzZUdlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbmkKICAgICAgICAgW3NlbGYud2luZG93IG1ha2VLZXlXaW5k
b3ddOwogCiAgICAgX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQoKmV2ZW50KTsKKyAgICBpZiAoV0tI
b3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzLnBsYXR0ZXJFbmFibGVkRm9yTW91c2UpCisg
ICAgICAgIFtfaG92ZXJQbGF0dGVyIHNldEhvdmVyUG9pbnQ6ZXZlbnQtPnBvc2l0aW9uKCldOwog
fQogCiAtICh2b2lkKV9jb25maWd1cmVNb3VzZUdlc3R1cmVSZWNvZ25pemVyCkBAIC05NTM2LDEw
ICs5NTU1LDIxIEBAIC0gKHZvaWQpaG92ZXJHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLSG92
ZXJHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pCiAgICAgICAgIHJldHVybjsKIAog
ICAgIF9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KCpldmVudCk7CisgICAgaWYgKFdLSG92ZXJQbGF0
dGVyRG9tYWluLnJvb3RTZXR0aW5ncy5wbGF0dGVyRW5hYmxlZEZvckhvdmVyKQorICAgICAgICBb
X2hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50OmV2ZW50LT5wb3NpdGlvbigpXTsKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCiAKKyNpZiBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikK
KworLSAodm9pZClwb3NpdGlvbkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0dGVyOihXS0hvdmVyUGxh
dHRlciAqKWhvdmVyUGxhdHRlciB3aXRoUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdCYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpY29tcGxldGlvbkhhbmRsZXIKK3sK
KyAgICBbc2VsZiBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpjb21wbGV0aW9uSGFu
ZGxlciBmb3JSZXF1ZXN0OnJlcXVlc3RdOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShNRURJ
QV9DT05UUk9MU19DT05URVhUX01FTlVTKSAmJiBVU0UoVUlDT05URVhUTUVOVSkKIAogLSAodm9p
ZClfc2hvd01lZGlhQ29udHJvbHNDb250ZXh0TWVudTooV2ViQ29yZTo6RmxvYXRSZWN0JiYpdGFy
Z2V0RnJhbWUgaXRlbXM6KFZlY3RvcjxXZWJDb3JlOjpNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtPiYmKWl0ZW1zIGNvbXBsZXRpb25IYW5kbGVyOihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW06OklEKT4mJiljb21wbGV0aW9uSGFu
ZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0
dGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OWNkNmJmNGYyYzIyYTEwMGY0MTIzNDBjNWZjNmEzMDc0NWVjZjdjCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLmgK
QEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKworQGNsYXNzIFdL
SG92ZXJQbGF0dGVyOworCitAcHJvdG9jb2wgV0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZQorCitAcmVx
dWlyZWQKKy0gKHZvaWQpcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjooV0tIb3Zl
clBsYXR0ZXIgKilob3ZlclBsYXR0ZXIgd2l0aFJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVy
OworCitAZW5kCisKK0BpbnRlcmZhY2UgV0tIb3ZlclBsYXR0ZXIgOiBOU09iamVjdAorCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGRlbGVnYXRlOihpZCA8V0tI
b3ZlclBsYXR0ZXJEZWxlZ2F0ZT4pZGVsZWdhdGU7CisKKy0gKHZvaWQpZGlzbWlzc1BsYXR0ZXJX
aXRoQW5pbWF0aW9uOihCT09MKXdpdGhBbmltYXRpb247CisKKy0gKHZvaWQpaW52YWxpZGF0ZTsK
KworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViQ29yZTo6RmxvYXRQb2ludCBob3Zl
clBvaW50OworCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzZhYzc2MGVmNTg1
OTVjMzRiYmQ4ZTI4ZmFlMmRmY2VlZjc1ZWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLm1tCkBAIC0wLDAgKzEsMzQ2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlci5o
IgorCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9H
RVNUVVJFX1JFQ09HTklaRVIpCisKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5o
IgorI2ltcG9ydCA8V2ViQ29yZS9QYXRoVXRpbGl0aWVzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVDQUxheWVyRXh0cmFzLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVT
UEkuaD4KKworc3RhdGljIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9uPiBjcmVhdGVCYXNlQW5p
bWF0aW9uKCkKK3sKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRvbWFpbi5y
b290U2V0dGluZ3M7CisgICAgaWYgKHBhcmFtZXRlcnMudXNlU3ByaW5nKSB7CisgICAgICAgIFJl
dGFpblB0cjxDQVNwcmluZ0FuaW1hdGlvbj4gc3ByaW5nID0gYWRvcHROUyhbW0NBU3ByaW5nQW5p
bWF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFtzcHJpbmcgc2V0TWFzczpwYXJhbWV0ZXJz
LnNwcmluZ01hc3NdOworICAgICAgICBbc3ByaW5nIHNldFN0aWZmbmVzczpwYXJhbWV0ZXJzLnNw
cmluZ1N0aWZmbmVzc107CisgICAgICAgIFtzcHJpbmcgc2V0RGFtcGluZzpwYXJhbWV0ZXJzLnNw
cmluZ0RhbXBpbmddOworICAgICAgICBbc3ByaW5nIHNldEZpbGxNb2RlOmtDQUZpbGxNb2RlQmFj
a3dhcmRzXTsKKyAgICAgICAgW3NwcmluZyBzZXREdXJhdGlvbjpbc3ByaW5nIHNldHRsaW5nRHVy
YXRpb25dXTsKKyAgICAgICAgcmV0dXJuIHNwcmluZzsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8
Q0FCYXNpY0FuaW1hdGlvbj4gZWFzZSA9IGFkb3B0TlMoW1tDQUJhc2ljQW5pbWF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgW2Vhc2Ugc2V0RmlsbE1vZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOwor
ICAgIFtlYXNlIHNldER1cmF0aW9uOnBhcmFtZXRlcnMuZHVyYXRpb25dOworICAgIFtlYXNlIHNl
dFRpbWluZ0Z1bmN0aW9uOltDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTpr
Q0FNZWRpYVRpbWluZ0Z1bmN0aW9uRWFzZUluXV07CisgICAgcmV0dXJuIGVhc2U7Cit9CisKK3N0
YXRpYyB2b2lkIGFkZEFuaW1hdGlvbihDQUxheWVyICpsYXllciwgTlNTdHJpbmcgKmtleSwgaWQg
ZnJvbVZhbHVlLCBpZCB0b1ZhbHVlKQoreworICAgIFJldGFpblB0cjxDQUJhc2ljQW5pbWF0aW9u
PiBhbmltYXRpb24gPSBjcmVhdGVCYXNlQW5pbWF0aW9uKCk7CisgICAgW2FuaW1hdGlvbiBzZXRL
ZXlQYXRoOmtleV07CisgICAgW2FuaW1hdGlvbiBzZXRGcm9tVmFsdWU6ZnJvbVZhbHVlXTsKKyAg
ICBbYW5pbWF0aW9uIHNldFRvVmFsdWU6dG9WYWx1ZV07CisgICAgW2xheWVyIHNldFZhbHVlOnRv
VmFsdWUgZm9yS2V5OmtleV07CisgICAgW2xheWVyIGFkZEFuaW1hdGlvbjphbmltYXRpb24uZ2V0
KCkgZm9yS2V5OmtleV07Cit9OworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlckFkZGl0aW9ucy5tbT4KKyNlbHNlCitz
dGF0aWMgQ0dGbG9hdCBzZXRBZGRpdGlvbmFsUGxhdHRlckxheWVyUHJvcGVydGllcyhDQUxheWVy
ICosIENBTGF5ZXIgKikgeyByZXR1cm4gMDsgfQorc3RhdGljIHZvaWQgYWRkQWRkaXRpb25hbElu
Y29taW5nQW5pbWF0aW9ucyhDQUxheWVyICosIENHRmxvYXQpIHsgfQorc3RhdGljIHZvaWQgYWRk
QWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMoQ0FMYXllciAqKSB7IH0KKyNlbmRpZgorCitA
aW1wbGVtZW50YXRpb24gV0tIb3ZlclBsYXR0ZXIgeworICAgIF9fd2VhayBVSVZpZXcgKl92aWV3
OworICAgIF9fd2VhayBpZCA8V0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZT4gX2RlbGVnYXRlOworICAg
IFdlYkNvcmU6OkZsb2F0UG9pbnQgX2hvdmVyUG9pbnQ7CisKKyAgICBCT09MIF9oYXNPdXRzdGFu
ZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OworICAgIEJPT0wgX2hhc0RlZmVycmVkUG9z
aXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7CisKKyAgICBCT09MIF9pc1NpdHRpbmdEb3duOworCisg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IF9sYXN0SG92ZXJCb3VuZHM7CisKKyAgICBSZXRhaW5QdHI8
Q0FTaGFwZUxheWVyPiBfbGFzdE1hc2tMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gX2xh
c3RTaGFkb3dMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gX2xhc3RQbGF0dGVyTGF5ZXI7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0QmFja2dyb3VuZExheWVyOworICAgIFJldGFp
blB0cjxDQVBvcnRhbExheWVyPiBfbGFzdFNuYXBzaG90TGF5ZXI7Cit9CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXcgZGVsZWdhdGU6KGlkIDxXS0hvdmVyUGxh
dHRlckRlbGVnYXRlPilkZWxlZ2F0ZQoreworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQ
bGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBpZiAoIXBhcmFtZXRlcnMucGxhdHRlckVu
YWJsZWRGb3JNb3VzZSAmJiAhcGFyYW1ldGVycy5wbGF0dGVyRW5hYmxlZEZvckhvdmVyKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNl
bGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfdmlldyA9IHZpZXc7CisgICAgX2RlbGVn
YXRlID0gZGVsZWdhdGU7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClpbnZhbGlk
YXRlCit7CisgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOk5PXTsKKyAgICBf
dmlldyA9IG5pbDsKKyAgICBfZGVsZWdhdGUgPSBuaWw7Cit9CisKKy0gKFdlYkNvcmU6OkZsb2F0
UG9pbnQpaG92ZXJQb2ludAoreworICAgIHJldHVybiBfaG92ZXJQb2ludDsKK30KKworLSAodm9p
ZClzZXRIb3ZlclBvaW50OihXZWJDb3JlOjpGbG9hdFBvaW50KXBvaW50Cit7CisgICAgX2hvdmVy
UG9pbnQgPSBwb2ludDsKKworICAgIGlmIChfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCkgeworICAgICAgICBfaGFzRGVmZXJyZWRQb3NpdGlvbkluZm9ybWF0aW9uUmVx
dWVzdCA9IFlFUzsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtzZWxmIHJlcXVlc3RQ
b3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVyUG9pbnRdOworfQorCistICh2b2lkKXJl
cXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVyUG9pbnQKK3sKKyAgICBfaGFz
RGVmZXJyZWRQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IE5POworICAgIF9oYXNPdXRzdGFu
ZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0ID0gWUVTOworICAgIFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgeyBXZWJD
b3JlOjpyb3VuZGVkSW50UG9pbnQoX2hvdmVyUG9pbnQpIH07CisgICAgLy8gRklYTUU6IFRoaXMg
VGV4dEluZGljYXRvciBkb2Vzbid0IG5lZWQgYSBzbmFwc2hvdCAoYW5kIGF2b2lkaW5nIGl0IHdv
dWxkIGJlIGEgc2l6YWJsZSBwZXJmb3JtYW5jZSB3aW4pLgorICAgIHBvc2l0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNhdG9yID0gWUVTOworICAgIFtfZGVsZWdhdGUgcG9z
aXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjpzZWxmIHdpdGhSZXF1ZXN0OnBvc2l0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOlt3ZWFrU2VsZiA9IFdlYWtPYmpD
UHRyPFdLSG92ZXJQbGF0dGVyPihzZWxmKV0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24gaW5mb3JtYXRpb24pIHsKKyAgICAgICAgW3dlYWtTZWxmIGRpZFJlY2VpdmVQ
b3NpdGlvbkluZm9ybWF0aW9uOmluZm9ybWF0aW9uXTsKKyAgICB9XTsKK30KKworLSAodm9pZClk
aWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAgICBfaGFzT3V0c3RhbmRpbmdQ
b3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IE5POworICAgIGlmIChfaGFzRGVmZXJyZWRQb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCkKKyAgICAgICAgW3NlbGYgcmVxdWVzdFBvc2l0aW9uSW5m
b3JtYXRpb25Gb3JDdXJyZW50SG92ZXJQb2ludF07CisKKyAgICBhdXRvIHByZUluZmxhdGlvbkJv
dW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IudGV4dEJvdW5kaW5nUmVjdElu
Um9vdFZpZXdDb29yZGluYXRlczsKKyAgICBpZiAocHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0Lmlz
RW1wdHkoKSkKKyAgICAgICAgcHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0ID0gaW5mb3JtYXRpb24u
Ym91bmRzOworCisgICAgaWYgKCFpbmZvcm1hdGlvbi5pc0xpbmsgfHwgcHJlSW5mbGF0aW9uQm91
bmRpbmdSZWN0LmlzRW1wdHkoKSkgeworICAgICAgICBfbGFzdEhvdmVyQm91bmRzID0geyB9Owor
ICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246WUVTXTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChfbGFzdEhvdmVyQm91bmRzID09IHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdCAmJiAhX2lzU2l0dGluZ0Rvd24pCisgICAgICAgIHJldHVybjsKKyAgICBf
bGFzdEhvdmVyQm91bmRzID0gcHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0OworCisgICAgYXV0byBw
YXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAgIGF1dG8g
YW5pbWF0ZUJldHdlZW5QbGF0dGVycyA9IHBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVy
czsKKyAgICBpZiAoIWFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMpCisgICAgICAgIFtzZWxmIGRpc21p
c3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpZRVNdOworCisgICAgX2lzU2l0dGluZ0Rvd24gPSBmYWxz
ZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZGluZ1JlY3Q7CisgICAgVmVjdG9yPFdl
YkNvcmU6OkZsb2F0UmVjdD4gaW5mbGF0ZWRJbmRpY2F0ZWRSZWN0czsKKyAgICBhdXRvIGluZGlj
YXRlZFJlY3RzID0gaW5mb3JtYXRpb24ubGlua0luZGljYXRvci50ZXh0UmVjdHNJbkJvdW5kaW5n
UmVjdENvb3JkaW5hdGVzOworICAgIGF1dG8gcGxhdHRlclBhZGRpbmcgPSBwYXJhbWV0ZXJzLnBs
YXR0ZXJQYWRkaW5nOworICAgIGlmIChpbmRpY2F0ZWRSZWN0cy5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgYm91bmRpbmdSZWN0ID0gcHJlSW5mbGF0aW9uQm91bmRpbmdSZWN0OworICAgICAgICBib3Vu
ZGluZ1JlY3QuaW5mbGF0ZShwbGF0dGVyUGFkZGluZyk7CisgICAgICAgIGluZmxhdGVkSW5kaWNh
dGVkUmVjdHMuYXBwZW5kKHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZm9yIChhdXRvIHJlY3QgOiBpbmRpY2F0ZWRSZWN0cykgeworICAgICAgICAgICAg
cmVjdC5pbmZsYXRlKHBsYXR0ZXJQYWRkaW5nKTsKKyAgICAgICAgICAgIGluZmxhdGVkSW5kaWNh
dGVkUmVjdHMuYXBwZW5kKHJlY3QpOworICAgICAgICAgICAgYm91bmRpbmdSZWN0LnVuaXRlKHJl
Y3QpOworICAgICAgICB9CisgICAgICAgIGJvdW5kaW5nUmVjdC5tb3ZlQnkocHJlSW5mbGF0aW9u
Qm91bmRpbmdSZWN0LmxvY2F0aW9uKCkpOworICAgIH0KKworICAgIFJldGFpblB0cjxDR1BhdGhS
ZWY+IGluZmxhdGVkUGF0aCA9IFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBhdGhXaXRoU2hyaW5r
V3JhcHBlZFJlY3RzKGluZmxhdGVkSW5kaWNhdGVkUmVjdHMsIHBhcmFtZXRlcnMucGxhdHRlckNv
cm5lclJhZGl1cykucGxhdGZvcm1QYXRoKCk7CisgICAgYXV0byBwbGF0dGVySW5mbGF0aW9uU2l6
ZSA9IHBhcmFtZXRlcnMucGxhdHRlckluZmxhdGlvblNpemU7CisgICAgQ0dGbG9hdCBwbGF0dGVy
U2NhbGUgPSBDR0Zsb2F0TWluKChib3VuZGluZ1JlY3Qud2lkdGgoKSArIHBsYXR0ZXJJbmZsYXRp
b25TaXplKSAvIGJvdW5kaW5nUmVjdC53aWR0aCgpLCAoYm91bmRpbmdSZWN0LmhlaWdodCgpICsg
cGxhdHRlckluZmxhdGlvblNpemUpIC8gYm91bmRpbmdSZWN0LmhlaWdodCgpKTsKKworICAgIC8v
IEZJWE1FOiBDb25zaWRlciB1c2luZyBVSUtpdCdzIGluLXByb2Nlc3MgcmV0YXJnZXRhYmxlIGFu
aW1hdGlvbnMsIGJlY2F1c2UgcmVhZGluZyBhbmltYXRpb24gc3RhdGUgZnJvbSB0aGUgcHJlc2Vu
dGF0aW9uIGxheWVyIGlzIHJhY3kuCisgICAgYm9vbCBoYWRPbGRMYXllcnMgPSAhIV9sYXN0U2hh
ZG93TGF5ZXI7CisgICAgQ0dSZWN0IG9sZFNoYWRvd0JvdW5kcyA9IFtfbGFzdFNoYWRvd0xheWVy
IHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRTaGFkb3dQb3NpdGlv
biA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBD
R0Zsb2F0IG9sZFNoYWRvd09wYWNpdHkgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25M
YXllcl0uc2hhZG93T3BhY2l0eTsKKyAgICBDR0Zsb2F0IG9sZFNoYWRvd1JhZGl1cyA9IFtfbGFz
dFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5zaGFkb3dSYWRpdXM7CisgICAgQ0FUcmFu
c2Zvcm0zRCBvbGRTaGFkb3dTdWJsYXllclRyYW5zZm9ybSA9IF9sYXN0U2hhZG93TGF5ZXIgPyBb
X2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc3VibGF5ZXJUcmFuc2Zvcm0gOiBD
QVRyYW5zZm9ybTNESWRlbnRpdHk7CisgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gb2xkU2hhZG93
UGF0aCA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5zaGFkb3dQYXRoOwor
ICAgIFJldGFpblB0cjxDQUxheWVyPiBzaGFkb3cgPSBfbGFzdFNoYWRvd0xheWVyID86IGFkb3B0
TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBzaGFkb3dGcmFtZSA9IENHUmVj
dE9mZnNldChib3VuZGluZ1JlY3QsIHBsYXR0ZXJQYWRkaW5nLCBwbGF0dGVyUGFkZGluZyk7Cisg
ICAgW3NoYWRvdyBzZXRGcmFtZTpzaGFkb3dGcmFtZV07CisgICAgW3NoYWRvdyBzZXRTaGFkb3dD
b2xvcjpVSUNvbG9yLmJsYWNrQ29sb3IuQ0dDb2xvcl07CisgICAgW3NoYWRvdyBzZXRTaGFkb3dS
YWRpdXM6cGFyYW1ldGVycy5wbGF0dGVyU2hhZG93UmFkaXVzXTsKKyAgICBbc2hhZG93IHNldFNo
YWRvd09mZnNldDpDR1NpemVaZXJvXTsKKyAgICBbc2hhZG93IHNldFNoYWRvd09wYWNpdHk6cGFy
YW1ldGVycy5wbGF0dGVyU2hhZG93T3BhY2l0eV07CisgICAgW3NoYWRvdyBzZXRTdWJsYXllclRy
YW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHBsYXR0ZXJTY2FsZSwgcGxhdHRlclNjYWxl
LCAxKV07CisgICAgW3NoYWRvdyBzZXRTaGFkb3dQYXRoOmluZmxhdGVkUGF0aC5nZXQoKV07Cisg
ICAgW3NoYWRvdyB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtbW192aWV3IHN1cGVydmll
d10gbGF5ZXJdIGFkZFN1YmxheWVyOnNoYWRvdy5nZXQoKV07CisKKyAgICBDR1JlY3Qgb2xkUGxh
dHRlckJvdW5kcyA9IFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRz
OworICAgIENHUG9pbnQgb2xkUGxhdHRlclBvc2l0aW9uID0gW19sYXN0UGxhdHRlckxheWVyIHBy
ZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gcGxhdHRl
ciA9IF9sYXN0UGxhdHRlckxheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7
CisgICAgW3BsYXR0ZXIgc2V0Qm91bmRzOkNHUmVjdE1ha2UoMCwgMCwgYm91bmRpbmdSZWN0Lndp
ZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFtwbGF0dGVyIHNldFBvc2l0aW9u
OkNHUG9pbnRNYWtlKHNoYWRvd0ZyYW1lLnNpemUud2lkdGggLyAyIC0gcGxhdHRlclBhZGRpbmcs
IHNoYWRvd0ZyYW1lLnNpemUuaGVpZ2h0IC8gMiAtIHBsYXR0ZXJQYWRkaW5nKV07CisgICAgYXV0
byBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZhbHVlID0gc2V0QWRkaXRpb25hbFBsYXR0
ZXJMYXllclByb3BlcnRpZXMocGxhdHRlci5nZXQoKSwgW19sYXN0UGxhdHRlckxheWVyIHByZXNl
bnRhdGlvbkxheWVyXSk7CisgICAgW3BsYXR0ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAg
ICBbc2hhZG93IGFkZFN1YmxheWVyOnBsYXR0ZXIuZ2V0KCldOworCisgICAgQ0dSZWN0IG9sZE1h
c2tCb3VuZHMgPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAg
ICBDR1BvaW50IG9sZE1hc2tQb3NpdGlvbiA9IFtfbGFzdE1hc2tMYXllciBwcmVzZW50YXRpb25M
YXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gb2xkTWFza1BhdGggPSBb
X2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBhdGg7CisgICAgUmV0YWluUHRyPENB
U2hhcGVMYXllcj4gbWFzayA9IF9sYXN0TWFza0xheWVyID86IGFkb3B0TlMoW1tDQVNoYXBlTGF5
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbbWFzayBzZXRGaWxsQ29sb3I6W1VJQ29sb3IgYmxhY2tD
b2xvcl0uQ0dDb2xvcl07CisgICAgW21hc2sgc2V0Qm91bmRzOkNHUmVjdE1ha2UoMCwgMCwgYm91
bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFttYXNrIHNl
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKGJvdW5kaW5nUmVjdC53aWR0aCgpIC8gMiArIHBsYXR0ZXJQ
YWRkaW5nLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkgLyAyICsgcGxhdHRlclBhZGRpbmcpXTsKKyAg
ICBbbWFzayBzZXRQYXRoOmluZmxhdGVkUGF0aC5nZXQoKV07CisgICAgW21hc2sgd2ViX2Rpc2Fi
bGVBbGxBY3Rpb25zXTsKKworICAgIENHUmVjdCBvbGRCYWNrZ3JvdW5kQm91bmRzID0gW19sYXN0
QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBv
bGRCYWNrZ3JvdW5kUG9zaXRpb24gPSBbX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgcHJlc2VudGF0aW9u
TGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBvbGRCYWNrZ3JvdW5k
Q29sb3IgPSBbX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJhY2tncm91
bmRDb2xvcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gYmFja2dyb3VuZCA9IF9sYXN0QmFja2dy
b3VuZExheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgW2JhY2tn
cm91bmQgc2V0RnJhbWU6W3BsYXR0ZXIgYm91bmRzXV07CisgICAgW2JhY2tncm91bmQgc2V0QmFj
a2dyb3VuZENvbG9yOmNhY2hlZENHQ29sb3IoaW5mb3JtYXRpb24ubGlua0luZGljYXRvci5lc3Rp
bWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXTsKKyAgICBbYmFja2dyb3VuZCBzZXRNYXNrOm1hc2suZ2V0
KCldOworICAgIFtiYWNrZ3JvdW5kIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW3BsYXR0
ZXIgYWRkU3VibGF5ZXI6YmFja2dyb3VuZC5nZXQoKV07CisKKyAgICBDR1JlY3Qgb2xkU25hcHNo
b3RCb3VuZHMgPSBbX2xhc3RTbmFwc2hvdExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7
CisgICAgQ0dQb2ludCBvbGRTbmFwc2hvdFBvc2l0aW9uID0gW19sYXN0U25hcHNob3RMYXllciBw
cmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgQ0FUcmFuc2Zvcm0zRCBvbGRTbmFwc2hv
dFN1YmxheWVyVHJhbnNmb3JtID0gX2xhc3RTbmFwc2hvdExheWVyID8gW19sYXN0U25hcHNob3RM
YXllciBwcmVzZW50YXRpb25MYXllcl0uc3VibGF5ZXJUcmFuc2Zvcm0gOiBDQVRyYW5zZm9ybTNE
SWRlbnRpdHk7CisgICAgUmV0YWluUHRyPENBUG9ydGFsTGF5ZXI+IHNuYXBzaG90ID0gX2xhc3RT
bmFwc2hvdExheWVyID86IGFkb3B0TlMoW1tDQVBvcnRhbExheWVyIGFsbG9jXSBpbml0XSk7Cisg
ICAgW3NuYXBzaG90IHNldFNvdXJjZUxheWVyOltfdmlldyBsYXllcl1dOworICAgIFtzbmFwc2hv
dCBzZXRNYXRjaGVzUG9zaXRpb246WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0TWF0Y2hlc1RyYW5z
Zm9ybTpZRVNdOworICAgIFtzbmFwc2hvdCBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUs
IDAuNSldOworICAgIFtzbmFwc2hvdCBzZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNE
TWFrZVNjYWxlKHBsYXR0ZXJTY2FsZSwgcGxhdHRlclNjYWxlLCAxKV07CisgICAgW3NuYXBzaG90
IHNldE1hc2tzVG9Cb3VuZHM6WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0RnJhbWU6Q0dSZWN0TWFr
ZSgwLCAwLCBib3VuZGluZ1JlY3Qud2lkdGgoKSwgYm91bmRpbmdSZWN0LmhlaWdodCgpKV07Cisg
ICAgW3NuYXBzaG90IHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW2JhY2tncm91bmQgYWRk
U3VibGF5ZXI6c25hcHNob3QuZ2V0KCldOworCisgICAgQk9PTCBuZWVkc0FuaW1hdGVJbiA9ICFf
bGFzdFBsYXR0ZXJMYXllciB8fCBfaXNTaXR0aW5nRG93bjsKKyAgICBpZiAobmVlZHNBbmltYXRl
SW4pIHsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJzaGFkb3dPcGFjaXR5
IiwgQChvbGRTaGFkb3dPcGFjaXR5KSwgQChbc2hhZG93IHNoYWRvd09wYWNpdHldKSk7CisgICAg
ICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93UmFkaXVzIiwgQChvbGRTaGFk
b3dSYWRpdXMpLCBAKFtzaGFkb3cgc2hhZG93UmFkaXVzXSkpOworICAgICAgICBhZGRBbmltYXRp
b24oc2hhZG93LmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFsdWUgdmFsdWVXaXRo
Q0FUcmFuc2Zvcm0zRDpvbGRTaGFkb3dTdWJsYXllclRyYW5zZm9ybV0sIFtOU1ZhbHVlIHZhbHVl
V2l0aENBVHJhbnNmb3JtM0Q6W3NoYWRvdyBzdWJsYXllclRyYW5zZm9ybV1dKTsKKworICAgICAg
ICBhZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAic3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNW
YWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOm9sZFNuYXBzaG90U3VibGF5ZXJUcmFuc2Zvcm1d
LCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltzbmFwc2hvdCBzdWJsYXllclRyYW5z
Zm9ybV1dKTsKKworICAgICAgICBhZGRBZGRpdGlvbmFsSW5jb21pbmdBbmltYXRpb25zKHBsYXR0
ZXIuZ2V0KCksIG9sZFBsYXR0ZXJBZGRpdGlvbmFsQW5pbWF0aW9uVmFsdWUpOworICAgIH0KKwor
ICAgIGlmIChhbmltYXRlQmV0d2VlblBsYXR0ZXJzICYmIGhhZE9sZExheWVycykgeworICAgICAg
ICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhD
R1JlY3Q6b2xkTWFza0JvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpbbWFzayBib3Vu
ZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihtYXNrLmdldCgpLCBAInBvc2l0aW9uIiwgW05T
VmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRNYXNrUG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdp
dGhDR1BvaW50OlttYXNrIHBvc2l0aW9uXV0pOworICAgICAgICBhZGRBbmltYXRpb24obWFzay5n
ZXQoKSwgQCJwYXRoIiwgKGlkKW9sZE1hc2tQYXRoLmdldCgpLCAoaWQpW21hc2sgcGF0aF0pOwor
CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUg
dmFsdWVXaXRoQ0dSZWN0Om9sZFNoYWRvd0JvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVj
dDpbc2hhZG93IGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwg
QCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkU2hhZG93UG9zaXRpb25d
LCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltzaGFkb3cgcG9zaXRpb25dXSk7CisgICAgICAg
IGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93UGF0aCIsIChpZClvbGRTaGFkb3dQ
YXRoLmdldCgpLCAoaWQpW3NoYWRvdyBzaGFkb3dQYXRoXSk7CisKKyAgICAgICAgYWRkQW5pbWF0
aW9uKHBsYXR0ZXIuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9s
ZFBsYXR0ZXJCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3BsYXR0ZXIgYm91bmRz
XV0pOworICAgICAgICBhZGRBbmltYXRpb24ocGxhdHRlci5nZXQoKSwgQCJwb3NpdGlvbiIsIFtO
U1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkUGxhdHRlclBvc2l0aW9uXSwgW05TVmFsdWUgdmFs
dWVXaXRoQ0dQb2ludDpbcGxhdHRlciBwb3NpdGlvbl1dKTsKKworICAgICAgICBhZGRBbmltYXRp
b24oYmFja2dyb3VuZC5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6
b2xkQmFja2dyb3VuZEJvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpbYmFja2dyb3Vu
ZCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihiYWNrZ3JvdW5kLmdldCgpLCBAInBv
c2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRCYWNrZ3JvdW5kUG9zaXRpb25d
LCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltiYWNrZ3JvdW5kIHBvc2l0aW9uXV0pOworCisg
ICAgICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1JlY3Q6b2xkU25hcHNob3RCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1Jl
Y3Q6W3NuYXBzaG90IGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNuYXBzaG90Lmdl
dCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRTbmFwc2hvdFBv
c2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbc25hcHNob3QgcG9zaXRpb25dXSk7
CisgICAgfQorCisgICAgX2xhc3RNYXNrTGF5ZXIgPSBtYXNrOworICAgIF9sYXN0U2hhZG93TGF5
ZXIgPSBzaGFkb3c7CisgICAgX2xhc3RQbGF0dGVyTGF5ZXIgPSBwbGF0dGVyOworICAgIF9sYXN0
QmFja2dyb3VuZExheWVyID0gYmFja2dyb3VuZDsKKyAgICBfbGFzdFNuYXBzaG90TGF5ZXIgPSBz
bmFwc2hvdDsKK30KKworLSAodm9pZClkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246KEJPT0wp
d2l0aEFuaW1hdGlvbgoreworICAgIGlmIChfaXNTaXR0aW5nRG93bikKKyAgICAgICAgcmV0dXJu
OworICAgIF9pc1NpdHRpbmdEb3duID0gdHJ1ZTsKKworICAgIGlmICghd2l0aEFuaW1hdGlvbikg
eworICAgICAgICBbX2xhc3RTaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAg
ICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFtD
QVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRDb21wbGV0aW9uQmxv
Y2s6W3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIHNoYWRvd0xheWVyID0gX2xhc3RT
aGFkb3dMYXllcl0geworICAgICAgICBbcHJvdGVjdGVkU2VsZiBkaWRGaW5pc2hBbmltYXRpb25G
b3JTaGFkb3c6c2hhZG93TGF5ZXIuZ2V0KCldOworICAgIH1dOworCisgICAgYXV0byBwYXJhbWV0
ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAgIGFkZEFuaW1hdGlv
bihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInNoYWRvd09wYWNpdHkiLCBAKFtfbGFzdFNoYWRv
d0xheWVyIHNoYWRvd09wYWNpdHldKSwgQDApOworICAgIGFkZEFuaW1hdGlvbihfbGFzdFNoYWRv
d0xheWVyLmdldCgpLCBAInNoYWRvd1JhZGl1cyIsIEAoW19sYXN0U2hhZG93TGF5ZXIgc2hhZG93
UmFkaXVzXSksIEAwKTsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5nZXQoKSwg
QCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W19s
YXN0U2hhZG93TGF5ZXIgc3VibGF5ZXJUcmFuc2Zvcm1dXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0FU
cmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldKTsKKyAgICBhZGRBbmltYXRpb24oX2xh
c3RTbmFwc2hvdExheWVyLmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFsdWUgdmFs
dWVXaXRoQ0FUcmFuc2Zvcm0zRDpbX2xhc3RTbmFwc2hvdExheWVyIHN1YmxheWVyVHJhbnNmb3Jt
XV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5
XSk7CisgICAgYWRkQWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMoX2xhc3RQbGF0dGVyTGF5
ZXIuZ2V0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKworICAgIGlmICghcGFy
YW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2VsZiBjbGVhckxheWVy
c107Cit9CisKKy0gKHZvaWQpZGlkRmluaXNoQW5pbWF0aW9uRm9yU2hhZG93OihDQUxheWVyICop
c2hhZG93TGF5ZXIKK3sKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRvbWFp
bi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRl
cnMpCisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisKKyAgICBp
ZiAoX2lzU2l0dGluZ0Rvd24gJiYgcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzICYm
IHNoYWRvd0xheWVyID09IF9sYXN0U2hhZG93TGF5ZXIpIHsKKyAgICAgICAgW3NoYWRvd0xheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAgW3NlbGYgY2xlYXJMYXllcnNdOworICAg
IH0KK30KKworLSAodm9pZCljbGVhckxheWVycworeworICAgIF9sYXN0TWFza0xheWVyID0gbmls
OworICAgIF9sYXN0U2hhZG93TGF5ZXIgPSBuaWw7CisgICAgX2xhc3RQbGF0dGVyTGF5ZXIgPSBu
aWw7CisgICAgX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgPSBuaWw7CisgICAgX2xhc3RTbmFwc2hvdExh
eWVyID0gbmlsOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhfTU9VU0Vf
U1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iOGM0OGY0NTkxNmEzNWQwNzg0YTA3YWU0YmE4ZWUxOGZhNzY5YThhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVy
UGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJ
VF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIp
CisKKyNpbXBvcnQgIlByb3RvdHlwZVRvb2xzU1BJLmgiCisKK0BpbnRlcmZhY2UgV0tIb3ZlclBs
YXR0ZXJQYXJhbWV0ZXJzIDogUFRTZXR0aW5ncworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBwbGF0dGVyRW5hYmxlZEZvck1vdXNlOworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGxh
dHRlckVuYWJsZWRGb3JIb3ZlcjsKKworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxh
dHRlckNvcm5lclJhZGl1czsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJQ
YWRkaW5nOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlclNoYWRvd09wYWNp
dHk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyU2hhZG93UmFkaXVzOwor
QHByb3BlcnR5IChub25hdG9taWMpIHVuc2lnbmVkIHBsYXR0ZXJJbmZsYXRpb25TaXplOworCitA
cHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlQmV0d2VlblBsYXR0ZXJzOworQHByb3Bl
cnR5IChub25hdG9taWMpIENHRmxvYXQgc3ByaW5nTWFzczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBDR0Zsb2F0IHNwcmluZ1N0aWZmbmVzczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0
IHNwcmluZ0RhbXBpbmc7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNUaW1lSW50ZXJ2YWwgZHVy
YXRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCB1c2VTcHJpbmc7CisKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRpb25zL1dLSG92ZXJQ
bGF0dGVyUGFyYW1ldGVyc0FkZGl0aW9ucy5oPgorI2VuZGlmCisKK0BlbmQKKworQGludGVyZmFj
ZSBXS0hvdmVyUGxhdHRlckRvbWFpbiA6IFBURG9tYWluCisrIChXS0hvdmVyUGxhdHRlclBhcmFt
ZXRlcnMgKilyb290U2V0dGluZ3M7CitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lUX1dJVEhf
TU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRl
cnMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0
ZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxNDlhODQ1Y2QxZjViOTRlZDY4MmZjZDI4NzI1ZjM4MTA1ZjEx
MTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzLm1tCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKKwor
I2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVS
RV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJQcm90b3R5cGVUb29sc1NQSS5oIgorCitAaW50ZXJm
YWNlIFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlkKWludGVnZXJNaW5WYWx1ZTooQ0dGbG9h
dCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZTsKKworQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gUFRTbGlkZXJSb3cgKFdlYktpdCkKKworLSAoaWQpaW50ZWdlck1pblZhbHVlOihD
R0Zsb2F0KW1pblZhbHVlIG1heFZhbHVlOihDR0Zsb2F0KW1heFZhbHVlCit7CisgICAgcmV0dXJu
IFtbc2VsZiBtaW5WYWx1ZTptaW5WYWx1ZSBtYXhWYWx1ZTptYXhWYWx1ZV0gdmFsdWVWYWxpZGF0
b3I6XmlkKGlkIHByb3Bvc2VkVmFsdWUsIGlkIHNldHRpbmdzKSB7CisgICAgICAgIHJldHVybiBA
KENHUm91bmQoW3Byb3Bvc2VkVmFsdWUgZmxvYXRWYWx1ZV0pKTsKKyAgICB9XTsKK30KKworQGVu
ZAorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9u
cy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnNBZGRpdGlvbnMubW0+CisjZWxzZQorc3RhdGljIHZv
aWQgYWRkQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKE5TTXV0YWJsZUFycmF5ICpy
b3dzKTsKK3N0YXRpYyB2b2lkIHNldERlZmF1bHRWYWx1ZXNGb3JBZGRpdGlvbmFsUGxhdHRlckxh
eW91dFBhcmFtZXRlcnMoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICopOworI2VuZGlmCisKK0Bp
bXBsZW1lbnRhdGlvbiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMKKworLSAodm9pZClzZXREZWZh
dWx0VmFsdWVzCit7CisgICAgW3N1cGVyIHNldERlZmF1bHRWYWx1ZXNdOworCisgICAgX3BsYXR0
ZXJFbmFibGVkRm9yTW91c2UgPSBOTzsKKyAgICBfcGxhdHRlckVuYWJsZWRGb3JIb3ZlciA9IFlF
UzsKKworICAgIF9wbGF0dGVyQ29ybmVyUmFkaXVzID0gNjsKKyAgICBfcGxhdHRlclBhZGRpbmcg
PSA1OworICAgIF9wbGF0dGVyU2hhZG93T3BhY2l0eSA9IDAuNjsKKyAgICBfcGxhdHRlclNoYWRv
d1JhZGl1cyA9IDEwOworICAgIF9wbGF0dGVySW5mbGF0aW9uU2l6ZSA9IDg7CisKKyAgICBfYW5p
bWF0ZUJldHdlZW5QbGF0dGVycyA9IFlFUzsKKyAgICBfc3ByaW5nTWFzcyA9IDI7CisgICAgX3Nw
cmluZ1N0aWZmbmVzcyA9IDEwMDsKKyAgICBfc3ByaW5nRGFtcGluZyA9IDUwOworICAgIF9kdXJh
dGlvbiA9IDAuMzsKKyAgICBfdXNlU3ByaW5nID0gWUVTOworCisgICAgc2V0RGVmYXVsdFZhbHVl
c0ZvckFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhzZWxmKTsKK30KKworKyAoUFRN
b2R1bGUgKilzZXR0aW5nc0NvbnRyb2xsZXJNb2R1bGUKK3sKKyAgICBQVFNlY3Rpb24gKmVuYWJs
ZW1lbnRTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRT
d2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiRW5hYmxlIFBsYXR0ZXIgRm9yIE1vdXNlIiB2YWx1ZUtl
eVBhdGg6QCJwbGF0dGVyRW5hYmxlZEZvck1vdXNlIl0sCisgICAgICAgIFtQVFN3aXRjaFJvdyBy
b3dXaXRoVGl0bGU6QCJFbmFibGUgUGxhdHRlciBGb3IgSG92ZXIiIHZhbHVlS2V5UGF0aDpAInBs
YXR0ZXJFbmFibGVkRm9ySG92ZXIiXSwKKyAgICBdIHRpdGxlOkAiUGxhdHRlciJdOworCisgICAg
UFRTZWN0aW9uICphbmltYXRpb25TZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpA
WworICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiQW5pbWF0ZSBCZXR3ZWVuIFBs
YXR0ZXJzIiB2YWx1ZUtleVBhdGg6QCJhbmltYXRlQmV0d2VlblBsYXR0ZXJzIl0sCisgICAgICAg
IFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJVc2UgU3ByaW5nIiB2YWx1ZUtleVBhdGg6QCJ1
c2VTcHJpbmciXSwKKyAgICAgICAgW1tbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiRHVyYXRp
b24iIHZhbHVlS2V5UGF0aDpAImR1cmF0aW9uIl0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSBjb25k
aXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gRkFM
U0UiXV0sCisgICAgICAgIFtbUFRFZGl0RmxvYXRSb3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIE1h
c3MiIHZhbHVlS2V5UGF0aDpAInNwcmluZ01hc3MiXSBjb25kaXRpb246W05TUHJlZGljYXRlIHBy
ZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAgICAgICAgW1tQVEVk
aXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcgU3RpZmZuZXNzIiB2YWx1ZUtleVBhdGg6
QCJzcHJpbmdTdGlmZm5lc3MiXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhG
b3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyBy
b3dXaXRoVGl0bGU6QCJTcHJpbmcgRGFtcGluZyIgdmFsdWVLZXlQYXRoOkAic3ByaW5nRGFtcGlu
ZyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmlu
ZyA9PSBUUlVFIl1dLAorICAgIF0gdGl0bGU6QCJBbmltYXRpb24iXTsKKworICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gcGxhdHRlckxheW91dFJvd3MgPSBhZG9wdE5TKFtAWworICAgICAg
ICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkNvcm5lciBSYWRpdXMiIHZhbHVlS2V5UGF0
aDpAInBsYXR0ZXJDb3JuZXJSYWRpdXMiXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0s
CisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiUGFkZGluZyIgdmFsdWVLZXlQ
YXRoOkAicGxhdHRlclBhZGRpbmciXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisg
ICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiU2hhZG93IE9wYWNpdHkiIHZhbHVl
S2V5UGF0aDpAInBsYXR0ZXJTaGFkb3dPcGFjaXR5Il0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSwK
KyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJTaGFkb3cgUmFkaXVzIiB2YWx1
ZUtleVBhdGg6QCJwbGF0dGVyU2hhZG93UmFkaXVzIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFs
dWU6MjBdLAorICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkluZmxhdGlvbiBT
aXplIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVySW5mbGF0aW9uU2l6ZSJdIGludGVnZXJNaW5WYWx1
ZTowIG1heFZhbHVlOjMwXQorICAgIF0gbXV0YWJsZUNvcHldKTsKKyAgICBhZGRBZGRpdGlvbmFs
UGxhdHRlckxheW91dFBhcmFtZXRlcnMocGxhdHRlckxheW91dFJvd3MuZ2V0KCkpOworCisgICAg
UFRTZWN0aW9uICpwbGF0dGVyTGF5b3V0U2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJv
d3M6cGxhdHRlckxheW91dFJvd3MuZ2V0KCkgdGl0bGU6QCJQbGF0dGVyIExheW91dCJdOworCisg
ICAgUFRTZWN0aW9uICpyZXN0b3JlRGVmYXVsdHNTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25X
aXRoUm93czpAWworICAgICAgICBbUFRCdXR0b25Sb3cgcm93V2l0aFRpdGxlOkAiUmVzdG9yZSBE
ZWZhdWx0cyIgYWN0aW9uOltQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gYWN0aW9u
XV0KKyAgICBdXTsKKworICAgIHJldHVybiBbUFRNb2R1bGUgbW9kdWxlV2l0aFRpdGxlOm5pbCBj
b250ZW50czpAWyBlbmFibGVtZW50U2VjdGlvbiwgYW5pbWF0aW9uU2VjdGlvbiwgcGxhdHRlckxh
eW91dFNlY3Rpb24sIHJlc3RvcmVEZWZhdWx0c1NlY3Rpb24gXV07Cit9CisKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVyRG9tYWluCisKKysgKFdLSG92ZXJQbGF0dGVyUGFy
YW1ldGVycyAqKXJvb3RTZXR0aW5ncworeworICAgIHJldHVybiBbc3VwZXIgcm9vdFNldHRpbmdz
XTsKK30KKworKyAoTlNTdHJpbmcgKilkb21haW5Hcm91cE5hbWUKK3sKKyAgICByZXR1cm4gQCJX
ZWJLaXQiOworfQorCisrIChOU1N0cmluZyAqKWRvbWFpbk5hbWUKK3sKKyAgICByZXR1cm4gQCJI
b3ZlciBQbGF0dGVyIjsKK30KKworKyAoQ2xhc3Mpcm9vdFNldHRpbmdzQ2xhc3MKK3sKKyAgICBy
ZXR1cm4gW1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyBjbGFzc107Cit9CisKK0BlbmQKKworI2Vu
ZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VT
VFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggOThjZTRkODM5ZTQwOGMyY2ZlMTJjOGVmNzg4Y2Q0MTZhMjYwZGI5
MS4uMGJhNjNhZDkzMDk4MzM2MWJhZjU3OWRkODg1MTUwOThkOGQwM2VjMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzQsNiArNjM0
LDcgQEAKIAkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxl
ck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMkQxQjVENUUxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFCNUQ1QzE4NTg2OUM4MDA2QzY1OTYgLyogVmll
d0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMkQxRTgyMjMyMTZGRkY1MTAw
QTE1MjY1IC8qIFdLV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggKi87
IH07CisJCTJEMjc5RTE5MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyNzlFMTgyNjk1
NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggKi87IH07CiAJCTJEMjhBNDk3MUFG
OTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8q
IFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi87IH07CiAJCTJEMjlFQ0QwMTkyRjJDMkUwMDk4NEI3
OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjlFQ0NFMTkyRjJDMkUwMDk4NEI3
OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCAqLzsgfTsKIAkJMkQz
QTY1REIxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTY1RDkxQTdDM0ExRjAw
Q0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMTcxLDYgKzMxNzIsMTEgQEAKIAkJMkQxRTgy
MjIyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2ViRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS1dlYkV2ZW50Lm1tOyBwYXRoID0gaW9zL1dLV2ViRXZlbnQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4
QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNo
YXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZm
ZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8q
IFdLSG92ZXJQbGF0dGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXIu
bW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRl
cnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHBhdGggPSBp
b3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEMjc5RTExMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW07IHBh
dGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRDI3OUUxODI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdG90eXBlVG9vbHNTUEkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8q
IFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLVmlld0xheW91dFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
MjhBNDk2MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUg
LyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNsaWVu
dElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3OTIsNiArNzc5OCwxMCBA
QAogCQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJ
T1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1
IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNERC
NTRFNTIzMTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2du
aXplci5tbSAqLywKKwkJCQkyRDI3OUUwRTI2OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0
ZXIuaCAqLywKKwkJCQkyRDI3OUUwRjI2OTRDMjI3MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIu
bW0gKi8sCisJCQkJMkQyNzlFMTAyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFy
YW1ldGVycy5oICovLAorCQkJCTJEMjc5RTExMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxh
dHRlclBhcmFtZXRlcnMubW0gKi8sCiAJCQkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdL
SW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJRjRCQTMzRjEyNTc1N0U4
OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJ
CTkzM0RGODJEMUIzQkMwOTAwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVy
LmggKi8sCkBAIC0xMTUyOSw2ICsxMTUzOSw3IEBACiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4
ODE3IC8qIEZyb250Qm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUExM0IzREExMjA3RjM5REUw
MDkwQzU4RCAvKiBNb2JpbGVXaUZpU1BJLmggKi8sCiAJCQkJMzE3OEFGOTcyMEUyQTdGODAwNzRE
RTk0IC8qIFBERktpdFNQSS5oICovLAorCQkJCTJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQ
cm90b3R5cGVUb29sc1NQSS5oICovLAogCQkJCTQ2RjM4RThCMjQxNkU2NkQwMDU5Mzc1QSAvKiBS
dW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUNFMUEwQkQwMUE0OEU2QzYwMDU0RUY3
NCAvKiBUQ0NTUEkuaCAqLywKIAkJCQlDRTFBMEJEMTFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElu
cHV0U1BJLmggKi8sCkBAIC0xMjIzNiw2ICsxMjI0Nyw3IEBACiAJCQkJNDYzRkQ0ODIxRUI5NEVD
MDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDI3OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyog
UHJvdG90eXBlVG9vbHNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIw
MDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0
NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBRUU1NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5h
aWxMb2FkZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0No
YW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMTBlNzZjZDI1Yjk3ZTgw
ZjhhY2MwNjEyMzFhZTI1M2RhNTlhMjk1YS4uZjY3MmE3ZjQ0MDgwN2E0ZDNhMDM5ZTQyMDhmMDc4
MTBkMWFkMTNmNyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9X
ZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDYgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92
ZXJQbGF0dGVyIGFuZCBzb21lIGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzc5MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZv
cy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1Byb3Rv
dHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3
b3JrL1Byb3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0
Y2hvcy83L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVk
LgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzgvUHJvdG90
eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisKIDIwMjEtMDYt
MTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dh
dGNoT1NdIFJlZW5hYmxlIG1vZGVybiB0ZXh0IGlucHV0IFVJIGZvciBub24tbnVtZXJpYyB0ZXh0
IGlucHV0IHR5cGVzCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90
eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9hcHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYThiMTQyZjg3ZDY3ODk0NWVlZmJkYWNjNmEyN2IxNGIyNWUyNGNkCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9hcHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xz
LnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAg
WyB4ODZfNjQsIGFybTY0IF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2
YXRlRnJhbWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitv
YmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB0dm9zCitleHBvcnRzOgorICAtIGFyY2hz
OiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0IF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRC
dXR0b25Sb3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURl
ZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBU
U2V0dGluZ3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2
b3MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1Byb3Rv
dHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE4YjE0
MmY4N2Q2Nzg5NDVlZWZiZGFjYzZhMjdiMTRiMjVlMjRjZAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1By
b3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBA
CistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCBdCitp
bnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90
eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJworb2JqYy1jb25zdHJhaW50OiBub25l
CitwbGF0Zm9ybTogdHZvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0
LCBhcm02NCBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFpbiwg
UFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rp
b24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRlclJv
dywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmll
cy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1l
d29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjdlZWI0MmY2YzFjODQ3NmY5ZjAxOWRjMjczZGI1MWE4YTAzZGE4
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL2lPUy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMu
dGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBb
IHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJh
cnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRv
b2xzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgorICAt
IGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAgIG9iamMtY2xh
c3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQVE1vZHVs
ZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dBY3Rpb24s
IFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0Y2hSb3cg
XQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJk
IGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJv
dG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWVi
NDJmNmMxYzg0NzZmOWYwMTlkYzI3M2RiNTFhOGEwM2RhODM0Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJvdG90
eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0t
LSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUg
XQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1By
b3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDog
bm9uZQorcGxhdGZvcm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2
XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3cs
IFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0
aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3Ms
IFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzcvUHJvdG90
eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L1Byb3RvdHlwZVRvb2xzLmZyYW1l
d29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3ZjdlZGI0MDdiZTJlYmI3MjRj
MzYzMmU5OWIyODY0NGYxNGNjNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9X
ZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L1Byb3RvdHlwZVRvb2xzLmZyYW1l
d29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYz
CithcmNoczogICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8z
MiwgYXJtdjdrIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNv
bnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB3YXRjaG9zCitleHBvcnRzOgorICAtIGFyY2hzOiAg
ICAgICAgICAgWyBpMzg2LCB4ODZfNjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sg
XQorICAgIG9iamMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZs
b2F0Um93LCBQVE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJv
dywgUFRSb3dBY3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1Jv
dywgUFRTd2l0Y2hSb3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvOC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsv
UHJvdG90eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xz
LnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lZDdmN2VkYjQwN2JlMmViYjcyNGMzNjMyZTk5YjI4NjQ0ZjE0Y2M0
Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xz
LnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAg
WyBpMzg2LCB4ODZfNjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQoraW5zdGFs
bC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxh
dGZvcm06IHdhdGNob3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4
Nl82NCwgYXJtNjQsIGFybTY0ZSwgYXJtNjRfMzIsIGFybXY3ayBdCisgICAgb2JqYy1jbGFzc2Vz
OiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQ
VFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRT
ZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisu
Li4K
</data>
<flag name="commit-queue"
          id="455129"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433018</attachid>
            <date>2021-07-06 23:59:01 -0700</date>
            <delta_ts>2021-07-07 00:54:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210706235900.patch</filename>
            <type>text/plain</type>
            <size>59332</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5hNWNlYjM3NjZlYmQ4NmMwZDQxZjNm
OTI0ZjY1MmRiMTAyYTg2ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaDoKKwogMjAyMS0wNy0wMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQQ006IENoYW5nZSBpbXBvcnQgZnJvbSBDcnlwdG9LaXRDQnJpZGdpbmcg
dG8gQ3J5cHRvS2l0UHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlY2YwZDhiYjkwYTUwMTdkMmZjMGUzNGQ2
YjIyNGZmOWI1YTY5OTQzLi5iNTFiZDU2YWU3NWRjYWUwZDE2MGRmMTE1MjBiNTRiZTY2MzUxZTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA3LTA2ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS0hvdmVyUGxhdHRlciBhbmQg
c29tZSBrbm9icyB0byB0d2VhayBpdHMgYXBwZWFyYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTE5ODI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL1Byb3RvdHlwZVRvb2xzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHJvb3RDb250ZW50Vmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFj
dGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgor
ICAgICAgICBJbnN0YWxsIGFuZCB1bmluc3RhbGwgdGhlIHBsYXR0ZXIgYWxvbmdzaWRlIHRoZSBn
ZXN0dXJlcyB0aGF0IGRyaXZlIGl0LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbW91c2VH
ZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaG92
ZXJHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgIFdoZW4gdGhlIGdlc3R1cmUg
cmVjb2duaXplcnMgZmlyZSwgYWxzbyB1cGRhdGUgdGhlIGhvdmVyIHBvaW50LgorCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjp3aXRo
UmVxdWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXIubW06IEFkZGVkLgorICAgICAgICAoY3JlYXRlQmFzZUFuaW1hdGlvbik6CisgICAgICAg
IChhZGRBbmltYXRpb24pOgorICAgICAgICAoc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyk6CisgICAg
ICAgIChhZGRBZGRpdGlvbmFsRGlzbWlzc2FsQW5pbWF0aW9ucyk6CisgICAgICAgICgtW1dLSG92
ZXJQbGF0dGVyIGluaXRXaXRoVmlldzpkZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBs
YXR0ZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBob3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIHNldEhvdmVyUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSG92ZXJQbGF0dGVyIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkUmVjZWl2ZVBvc2l0aW9u
SW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpc21pc3NQbGF0dGVy
V2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkRmluaXNoQW5p
bWF0aW9uRm9yU2hhZG93Ol0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBjbGVhckxheWVy
c10pOgorICAgICAgICBBbmltYXRlIHRoZSBwbGF0dGVyIGluIGFuZCBvdXQsIGFuZCBvcHRpb25h
bGx5IGJldHdlZW4gc3RhdGVzLCBhcyB0aGUgaG92ZXIgcG9pbnQgbW92ZXMuCisgICAgICAgIFVz
ZSB0aGUgVGV4dEluZGljYXRvcidzIGdlb21ldHJ5IGluZm9ybWF0aW9uLCBidXQgbm90IGl0cyBz
bmFwc2hvdDsgd2UgdXNlIGEKKyAgICAgICAgQ0FQb3J0YWxMYXllciBmb3IgdGhlIHBsYXR0ZXIg
aW5zdGVhZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBhdm9pZCB0YWtpbmcgdGhlIHNuYXBzaG90Cisg
ICAgICAgIGVudGlyZWx5LCBzaW5jZSB3ZSBjYWxsIHNldEhvdmVyUG9pbnQgKGFuZCB0aHVzIGdl
bmVyYXRlIGEgVGV4dEluZGljYXRvcikgYSAqbG90KgorICAgICAgICB3aGVuIG1vdmluZyB0aGUg
bW91c2UgYXJvdW5kLCBhbmQgYWxsIHRob3NlIHNuYXBzaG90cyBhZGQgdXAuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTogQWRkZWQuCisg
ICAgICAgICgtW1BUU2xpZGVyUm93IGludGVnZXJNaW5WYWx1ZTptYXhWYWx1ZTpdKToKKyAgICAg
ICAgKC1bV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldERlZmF1bHRWYWx1ZXNdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldHRpbmdzQ29udHJvbGxlck1vZHVsZV0p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluR3JvdXBOYW1lXSk6CisgICAgICAgICgr
W1dLSG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbk5hbWVdKToKKyAgICAgICAgKCtbV0tIb3ZlclBs
YXR0ZXJEb21haW4gcm9vdFNldHRpbmdzQ2xhc3NdKToKKyAgICAgICAgQWRkIHNvbWUga25vYnMs
IHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cywgZm9yIGV4cGVyaW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGFrZSBhIHByb2Nlc3MgYXNz
ZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xkaW5nIGxvY2tlZCBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmlu
ZGV4IDBiMGIwNWY4NmZkNDAzZDFjODdhNjQwMGY3YWI0ODllMDEyZGMyZmIuLmNhOTZiYWE2N2Y2
NGY2NmJlYjQwOTMyNGJkZTM1ZTQzNDM1MmE3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTE2Myw2ICsxNjMsMTIgQEAgdHlw
ZWRlZiBlbnVtIHsKIC0gKGZsb2F0KV9zb2x2ZUZvcklucHV0OihmbG9hdCl0OwogQGVuZAogCitA
aW50ZXJmYWNlIENBUG9ydGFsTGF5ZXIgOiBDQUxheWVyCitAcHJvcGVydHkgKHdlYWspIENBTGF5
ZXIgKnNvdXJjZUxheWVyOworQHByb3BlcnR5IEJPT0wgbWF0Y2hlc1Bvc2l0aW9uOworQHByb3Bl
cnR5IEJPT0wgbWF0Y2hlc1RyYW5zZm9ybTsKK0BlbmQKKwogI2VuZGlmIC8vIF9fT0JKQ19fCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpp
bmRleCA5ZjdjY2U1MTM3Y2U2ZmZmMjRjMDViNjc2MTZjMGQ2MGYzZjFlYTUxLi5kZGY4MGI2MjQ2
ZTg3MGY0NjY3ZjA0MjA3Mzk0Y2UwNzUzMjY2NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtOTMsNiArOTMsOSBAQCBXS19QREZLSVRfTERG
TEFHU19pcGhvbmVzaW11bGF0b3Jbc2RrPWlwaG9uZSoxMS4qXSA9IDsKIFdLX1BERktJVF9MREZM
QUdTX21hY2NhdGFseXN0ID0gJChXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdCQoV0tfTUFD
T1NfMTEwMCkpOwogV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3RfTUFDT1NfU0lOQ0VfMTEw
MCA9ICQoV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MpOwogCitXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUyA9ICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkp
OworV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUHJv
dG90eXBlVG9vbHM7CisKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUyA9ICQoV0tfU0FGRV9CUk9X
U0lOR19MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBTYWZhcmlTYWZlQnJvd3Npbmc7CiBXS19TQUZFX0JS
T1dTSU5HX0xERkxBR1NfaXBob25lb3Nbc2RrPWlwaG9uZSoxMC4qXSA9IDsKQEAgLTE0Myw3ICsx
NDYsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtbG5l
dHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4ID0g
LXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tfTElC
TkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAk
KFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJ
TEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQo
V0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VS
SVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FD
Q0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChX
S19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhU
RU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19M
REZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dF
U1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJG
QUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZUEVfSURFTlRJ
RklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BF
Q1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQg
QysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRl
bGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRl
ZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNT
dDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0
cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
UHJvdG90eXBlVG9vbHNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Qcm90
b3R5cGVUb29sc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMzA0MDhkOTIyMGJjZjU3ZTY4MTNlYzg1ZGZj
ZDVjOWVjZmZlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPFByb3RvdHlwZVRvb2xzL1By
b3RvdHlwZVRvb2xzLmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgUFRTZXR0aW5ncyA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CistICh2b2lkKXNldERlZmF1bHRWYWx1ZXM7CitAZW5kCisKK0BpbnRl
cmZhY2UgUFREb21haW4gOiBOU09iamVjdAorKyAoX19raW5kb2YgUFRTZXR0aW5ncyAqKXJvb3RT
ZXR0aW5nczsKK0BlbmQKKworQGludGVyZmFjZSBQVFNlY3Rpb24gOiBOU09iamVjdAorQGVuZAor
CitAaW50ZXJmYWNlIFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVX
aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsK
KysgKFBUU2VjdGlvbiAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CisrIChQVFNlY3Rpb24gKilzZWN0aW9uV2l0aFJvd3M6KE5TQXJyYXkg
Kilyb3dzOworQGVuZAorCitAaW50ZXJmYWNlIFBUUm93IDogTlNPYmplY3QgPE5TQ29weWluZywg
TlNTZWN1cmVDb2Rpbmc+CisrIChpbnN0YW5jZXR5cGUpcm93V2l0aFRpdGxlOihOU1N0cmluZyAq
KXN0YXRpY1RpdGxlIHZhbHVlS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoOworLSAoaWQpdmFs
dWVWYWxpZGF0b3I6KGlkKF4pKGlkIHByb3Bvc2VkVmFsdWUsIGlkIHNldHRpbmdzKSl2YWxpZGF0
b3I7CistIChpZCljb25kaXRpb246KE5TUHJlZGljYXRlICopY29uZGl0aW9uOworQGVuZAorCitA
aW50ZXJmYWNlIFBUU1JvdyA6IFBUUm93CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTd2l0Y2hSb3cg
OiBQVFNSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFNsaWRlclJvdyA6IFBUU1JvdworLSAoaWQp
bWluVmFsdWU6KENHRmxvYXQpbWluVmFsdWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWU7CitA
ZW5kCisKK0BpbnRlcmZhY2UgUFRFZGl0RmxvYXRSb3cgOiBQVFNSb3cKK0BlbmQKKworQGludGVy
ZmFjZSBQVFJvd0FjdGlvbiA6IE5TT2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSZXN0b3Jl
RGVmYXVsdFNldHRpbmdzUm93QWN0aW9uIDogUFRSb3dBY3Rpb24KKysgKGluc3RhbmNldHlwZSlh
Y3Rpb247CitAZW5kCisKK0BpbnRlcmZhY2UgUFRCdXR0b25Sb3cgOiBQVFNSb3cKKysgKGluc3Rh
bmNldHlwZSlyb3dXaXRoVGl0bGU6KE5TU3RyaW5nICopc3RhdGljVGl0bGUgYWN0aW9uOihQVFJv
d0FjdGlvbiAqKWFjdGlvbjsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggNDA1MGM0MDNjNDZkNTY0YzJlOTgzYzVmMjY1NTUxYzY5NzVjZThmZC4uZTZmNmMwZGI3ZDJh
NjE5MDA5OGNkZjg5NzFmMmJjMDIzYjJmZjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NDg5LDYgKzQ4OSw4IEBAIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vz
cy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVBy
b2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KK1VJUHJv
Y2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLm1tCiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbQogVUlQ
cm9jZXNzL2lvcy9XS01vZGVsSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggMDk1MDg2Y2QxZjlk
NWY2OWY3YTdhZTE5OGVmOWE5ZmNlMGM0YmZmMC4uNzYwNjU5MDQ3ZDFhYTJiNWRmN2FlZTQwZDE0
MTRkYTM5YTQxNmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5oCkBAIC05NCw2ICs5NCw3IEBAIGVudW0gY2xhc3MgVmlld1N0YWJpbGl0eUZsYWcgOiB1
aW50OF90OwogLSAodm9pZClfd2ViVmlld0Rlc3Ryb3llZDsKIAogLSAoV0tXZWJWaWV3ICopd2Vi
VmlldzsKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldzsKIAogLSAoc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURyYXdpbmdBcmVhUHJveHk6KFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5Jilwcm9jZXNzOwogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDZiMDQ5
YjQwN2IxMjFlODkzMDQyZGYzOWExNTFmYzk2MjkxMGVhMmQuLjljOTYzMWIxODBmNmQ1MjNhMzk3
MDVjNzNlNDBlMjA4ZjZmZGQxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCkBAIC0zMjYsNiArMzI2LDExIEBAIC0gKFdLV2ViVmlldyAqKXdlYlZp
ZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7CiB9CiAKKy0gKFVJVmll
dyAqKXJvb3RDb250ZW50VmlldworeworICAgIHJldHVybiBfcm9vdENvbnRlbnRWaWV3LmdldCgp
OworfQorCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3V2luZG93CiB7
CiAgICAgW3N1cGVyIHdpbGxNb3ZlVG9XaW5kb3c6bmV3V2luZG93XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCAzNTZiMzMzMjYyOGVlMWM1MmVhZjZhY2UwZDAwM2M4MGM1YjYxOWI0Li4yNmExZTJkZWZhMTE1
MTQzNTUxNDhkZWU1ZGFkY2Q5YzE3YTQyMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zOSw2ICszOSw3
IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJUcmFuc2Fj
dGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIu
aCIKICNpbXBvcnQgPFdlYktpdC9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tBaXJQbGF5Um91dGVQaWNrZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRhY3RQ
aWNrZXIuaD4KQEAgLTI5NSw2ICsyOTYsMTAgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAg
ICBSZXRhaW5QdHI8V0tIb3Zlckdlc3R1cmVSZWNvZ25pemVyPiBfaG92ZXJHZXN0dXJlUmVjb2du
aXplcjsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgUmV0YWluUHRyPFdLSG92ZXJQbGF0
dGVyPiBfaG92ZXJQbGF0dGVyOworI2VuZGlmCisKICNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lO
UFVUKQogICAgIFJldGFpblB0cjxVSUluZGlyZWN0U2NyaWJibGVJbnRlcmFjdGlvbj4gX3Njcmli
YmxlSW50ZXJhY3Rpb247CiAjZW5kaWYKQEAgLTUyNiw2ICs1MzEsOSBAQCB1c2luZyBJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNS
ZXF1ZXN0SWRlbgogICAgICwgVUlEcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZSwgVUlEcm9wSW50ZXJh
Y3Rpb25EZWxlZ2F0ZQogI2VuZGlmCiAgICAgLCBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUo
SE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgICwgV0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZQor
I2VuZGlmCiA+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCBsYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDM3ZTZiMzc5Y2JmMmM3ZmQ0
YjkyZThhZWIyNzU0MzVmMzc0ODhmNDAuLjFkN2NhNTk0NGY4ZmY0YzkxN2ZmOGQ4YzVmNTllY2Yy
OWJkOGRiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTYsNiArNTYsOCBAQAogI2ltcG9ydCAiV0tG
b3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAi
V0tIb3ZlclBsYXR0ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oIgog
I2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldL
SW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yTm9kZVNl
YXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCkBAIC0xMjgsNiArMTMwLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtMTM2LDYgKzEzOSw3IEBACiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0cmlidXRlZFN0
cmluZ1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
aW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmg+CkBAIC04OTQsNiArODk4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRl
cmFjdGlvbgogICAgIFtzZWxmIHNldFVwSG92ZXJHZXN0dXJlUmVjb2duaXplcl07CiAjZW5kaWYK
IAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VT
VFVSRV9SRUNPR05JWkVSKQorICAgIF9ob3ZlclBsYXR0ZXIgPSBhZG9wdE5TKFtbV0tIb3ZlclBs
YXR0ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLnJvb3RDb250ZW50VmlldyBkZWxlZ2F0ZTpz
ZWxmXSk7CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpFUikKICAg
ICBfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbX1VJTG9va3VwR2VzdHVyZVJl
Y29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfbG9v
a3VwR2VzdHVyZVJlY29nbml6ZWQ6KV0pOwogICAgIFtfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIg
c2V0RGVsZWdhdGU6c2VsZl07CkBAIC0xMDgxLDYgKzEwODksMTEgQEAgLSAodm9pZCljbGVhblVw
SW50ZXJhY3Rpb24KICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaG92ZXJHZXN0
dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIFtfaG92
ZXJQbGF0dGVyIGludmFsaWRhdGVdOworICAgIF9ob3ZlclBsYXR0ZXIgPSBuaWw7CisjZW5kaWYK
KwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpFUikKICAgICBbX2xvb2t1cEdlc3R1
cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTQ3NDAsNiArNDc1
MywxMCBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAgICAgX2FjdGl2ZVRl
eHRJbnRlcmFjdGlvbkNvdW50ID0gMDsKICAgICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGls
TmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87CiAgICAgW3NlbGYgX2ludmFsaWRhdGVDdXJyZW50
UG9zaXRpb25JbmZvcm1hdGlvbl07CisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hvdmVyUGxhdHRl
ciBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246Tk9dOworI2VuZGlmCiB9CiAKICNpZiAhVVNF
KFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk1MDIsNiArOTUxOSw4IEBAIC0gKHZvaWQp
bW91c2VHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLTW91c2VHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZWNvZ25pCiAgICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2luZG93XTsKIAog
ICAgIF9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KCpldmVudCk7CisgICAgaWYgKFdLSG92ZXJQbGF0
dGVyRG9tYWluLnJvb3RTZXR0aW5ncy5wbGF0dGVyRW5hYmxlZEZvck1vdXNlKQorICAgICAgICBb
X2hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50OmV2ZW50LT5wb3NpdGlvbigpXTsKIH0KIAogLSAo
dm9pZClfY29uZmlndXJlTW91c2VHZXN0dXJlUmVjb2duaXplcgpAQCAtOTUzNiwxMCArOTU1NSwy
MSBAQCAtICh2b2lkKWhvdmVyR2VzdHVyZVJlY29nbml6ZXJDaGFuZ2VkOihXS0hvdmVyR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaQogICAgICAgICByZXR1cm47CiAKICAgICBfcGFn
ZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxhdHRlckRvbWFp
bi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgW19ob3ZlclBs
YXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKKy0gKHZv
aWQpcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjooV0tIb3ZlclBsYXR0ZXIgKilo
b3ZlclBsYXR0ZXIgd2l0aFJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJl
cXVlc3QmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgW3Nl
bGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Y29tcGxldGlvbkhhbmRsZXIgZm9y
UmVxdWVzdDpyZXF1ZXN0XTsKK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZvaWQpX3Nob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1l
IGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJilp
dGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhhbmRsZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDljZDZiZjRmMmMyMmExMDBmNDEyMzQwYzVmYzZhMzA3NDVlY2Y3YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
IHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKK0BjbGFzcyBXS0hvdmVyUGxh
dHRlcjsKKworQHByb3RvY29sIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKKworQHJlcXVpcmVkCist
ICh2b2lkKXBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92ZXJQbGF0dGVy
ICopaG92ZXJQbGF0dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0JilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcjsKKworQGVu
ZAorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldyBkZWxlZ2F0ZTooaWQgPFdLSG92ZXJQbGF0
dGVyRGVsZWdhdGU+KWRlbGVnYXRlOworCistICh2b2lkKWRpc21pc3NQbGF0dGVyV2l0aEFuaW1h
dGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uOworCistICh2b2lkKWludmFsaWRhdGU7CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYkNvcmU6OkZsb2F0UG9pbnQgaG92ZXJQb2ludDsK
KworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2YWM3NjBlZjU4NTk1YzM0YmJk
OGUyOGZhZTJkZmNlZWY3NWVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIuaCIKKworI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9S
RUNPR05JWkVSKQorCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FM
YXllckV4dHJhcy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gY3JlYXRlQmFzZUFuaW1hdGlvbigp
Cit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRp
bmdzOworICAgIGlmIChwYXJhbWV0ZXJzLnVzZVNwcmluZykgeworICAgICAgICBSZXRhaW5QdHI8
Q0FTcHJpbmdBbmltYXRpb24+IHNwcmluZyA9IGFkb3B0TlMoW1tDQVNwcmluZ0FuaW1hdGlvbiBh
bGxvY10gaW5pdF0pOworICAgICAgICBbc3ByaW5nIHNldE1hc3M6cGFyYW1ldGVycy5zcHJpbmdN
YXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXRTdGlmZm5lc3M6cGFyYW1ldGVycy5zcHJpbmdTdGlm
Zm5lc3NdOworICAgICAgICBbc3ByaW5nIHNldERhbXBpbmc6cGFyYW1ldGVycy5zcHJpbmdEYW1w
aW5nXTsKKyAgICAgICAgW3NwcmluZyBzZXRGaWxsTW9kZTprQ0FGaWxsTW9kZUJhY2t3YXJkc107
CisgICAgICAgIFtzcHJpbmcgc2V0RHVyYXRpb246W3NwcmluZyBzZXR0bGluZ0R1cmF0aW9uXV07
CisgICAgICAgIHJldHVybiBzcHJpbmc7CisgICAgfQorCisgICAgUmV0YWluUHRyPENBQmFzaWNB
bmltYXRpb24+IGVhc2UgPSBhZG9wdE5TKFtbQ0FCYXNpY0FuaW1hdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIFtlYXNlIHNldEZpbGxNb2RlOmtDQUZpbGxNb2RlQmFja3dhcmRzXTsKKyAgICBbZWFz
ZSBzZXREdXJhdGlvbjpwYXJhbWV0ZXJzLmR1cmF0aW9uXTsKKyAgICBbZWFzZSBzZXRUaW1pbmdG
dW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFU
aW1pbmdGdW5jdGlvbkVhc2VJbl1dOworICAgIHJldHVybiBlYXNlOworfQorCitzdGF0aWMgdm9p
ZCBhZGRBbmltYXRpb24oQ0FMYXllciAqbGF5ZXIsIE5TU3RyaW5nICprZXksIGlkIGZyb21WYWx1
ZSwgaWQgdG9WYWx1ZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gYW5pbWF0
aW9uID0gY3JlYXRlQmFzZUFuaW1hdGlvbigpOworICAgIFthbmltYXRpb24gc2V0S2V5UGF0aDpr
ZXldOworICAgIFthbmltYXRpb24gc2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07CisgICAgW2FuaW1h
dGlvbiBzZXRUb1ZhbHVlOnRvVmFsdWVdOworICAgIFtsYXllciBzZXRWYWx1ZTp0b1ZhbHVlIGZv
cktleTprZXldOworICAgIFtsYXllciBhZGRBbmltYXRpb246YW5pbWF0aW9uLmdldCgpIGZvcktl
eTprZXldOworfTsKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJBZGRpdGlvbnMubW0+CisjZWxzZQorc3RhdGljIENH
RmxvYXQgc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3BlcnRpZXMoQ0FMYXllciAqLCBDQUxh
eWVyICopIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxJbmNvbWluZ0Fu
aW1hdGlvbnMoQ0FMYXllciAqLCBDR0Zsb2F0KSB7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9u
YWxEaXNtaXNzYWxBbmltYXRpb25zKENBTGF5ZXIgKikgeyB9CisjZW5kaWYKKworQGltcGxlbWVu
dGF0aW9uIFdLSG92ZXJQbGF0dGVyIHsKKyAgICBfX3dlYWsgVUlWaWV3ICpfdmlldzsKKyAgICBf
X3dlYWsgaWQgPFdLSG92ZXJQbGF0dGVyRGVsZWdhdGU+IF9kZWxlZ2F0ZTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IF9ob3ZlclBvaW50OworCisgICAgQk9PTCBfaGFzT3V0c3RhbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKKyAgICBCT09MIF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0OworCisgICAgQk9PTCBfaXNTaXR0aW5nRG93bjsKKworICAgIFdlYkNv
cmU6OkZsb2F0UmVjdCBfbGFzdEhvdmVyQm91bmRzOworCisgICAgUmV0YWluUHRyPENBU2hhcGVM
YXllcj4gX2xhc3RNYXNrTGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0U2hhZG93
TGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0UGxhdHRlckxheWVyOworICAgIFJl
dGFpblB0cjxDQUxheWVyPiBfbGFzdEJhY2tncm91bmRMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FQ
b3J0YWxMYXllcj4gX2xhc3RTbmFwc2hvdExheWVyOworfQorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGRlbGVnYXRlOihpZCA8V0tIb3ZlclBsYXR0ZXJEZWxl
Z2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRv
bWFpbi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0ZXJzLnBsYXR0ZXJFbmFibGVkRm9y
TW91c2UgJiYgIXBhcmFtZXRlcnMucGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgX3ZpZXcgPSB2aWV3OworICAgIF9kZWxlZ2F0ZSA9IGRl
bGVnYXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQorewor
ICAgIFtzZWxmIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpOT107CisgICAgX3ZpZXcgPSBu
aWw7CisgICAgX2RlbGVnYXRlID0gbmlsOworfQorCistIChXZWJDb3JlOjpGbG9hdFBvaW50KWhv
dmVyUG9pbnQKK3sKKyAgICByZXR1cm4gX2hvdmVyUG9pbnQ7Cit9CisKKy0gKHZvaWQpc2V0SG92
ZXJQb2ludDooV2ViQ29yZTo6RmxvYXRQb2ludClwb2ludAoreworICAgIF9ob3ZlclBvaW50ID0g
cG9pbnQ7CisKKyAgICBpZiAoX2hhc091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVl
c3QpIHsKKyAgICAgICAgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBZ
RVM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiByZXF1ZXN0UG9zaXRpb25J
bmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50XTsKK30KKworLSAodm9pZClyZXF1ZXN0UG9z
aXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50Cit7CisgICAgX2hhc0RlZmVycmVk
UG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAgICBfaGFzT3V0c3RhbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IFlFUzsKKyAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0IHBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgV2ViQ29yZTo6cm91
bmRlZEludFBvaW50KF9ob3ZlclBvaW50KSB9OworICAgIC8vIEZJWE1FOiBUaGlzIFRleHRJbmRp
Y2F0b3IgZG9lc24ndCBuZWVkIGEgc25hcHNob3QgKGFuZCBhdm9pZGluZyBpdCB3b3VsZCBiZSBh
IHNpemFibGUgcGVyZm9ybWFuY2Ugd2luKS4KKyAgICBwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5pbmNsdWRlTGlua0luZGljYXRvciA9IFlFUzsKKyAgICBbX2RlbGVnYXRlIHBvc2l0aW9uSW5m
b3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6c2VsZiB3aXRoUmVxdWVzdDpwb3NpdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0hv
dmVyUGxhdHRlcj4oc2VsZildIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIFt3ZWFrU2VsZiBkaWRSZWNlaXZlUG9zaXRpb25J
bmZvcm1hdGlvbjppbmZvcm1hdGlvbl07CisgICAgfV07Cit9CisKKy0gKHZvaWQpZGlkUmVjZWl2
ZVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mKWluZm9ybWF0aW9uCit7CisgICAgX2hhc091dHN0YW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAgICBpZiAoX2hhc0RlZmVycmVkUG9zaXRpb25JbmZv
cm1hdGlvblJlcXVlc3QpCisgICAgICAgIFtzZWxmIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9u
Rm9yQ3VycmVudEhvdmVyUG9pbnRdOworCisgICAgYXV0byBwcmVJbmZsYXRpb25Cb3VuZGluZ1Jl
Y3QgPSBpbmZvcm1hdGlvbi5saW5rSW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXM7CisgICAgaWYgKHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkp
CisgICAgICAgIHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJvdW5kczsK
KworICAgIGlmICghaW5mb3JtYXRpb24uaXNMaW5rIHx8IHByZUluZmxhdGlvbkJvdW5kaW5nUmVj
dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgX2xhc3RIb3ZlckJvdW5kcyA9IHsgfTsKKyAgICAgICAg
W3NlbGYgZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOllFU107CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoX2xhc3RIb3ZlckJvdW5kcyA9PSBwcmVJbmZsYXRpb25Cb3VuZGlu
Z1JlY3QgJiYgIV9pc1NpdHRpbmdEb3duKQorICAgICAgICByZXR1cm47CisgICAgX2xhc3RIb3Zl
ckJvdW5kcyA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsKKworICAgIGF1dG8gcGFyYW1ldGVy
cyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBhdXRvIGFuaW1hdGVC
ZXR3ZWVuUGxhdHRlcnMgPSBwYXJhbWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnM7CisgICAg
aWYgKCFhbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRl
cldpdGhBbmltYXRpb246WUVTXTsKKworICAgIF9pc1NpdHRpbmdEb3duID0gZmFsc2U7CisKKyAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRpbmdSZWN0OworICAgIFZlY3RvcjxXZWJDb3JlOjpG
bG9hdFJlY3Q+IGluZmxhdGVkSW5kaWNhdGVkUmVjdHM7CisgICAgYXV0byBpbmRpY2F0ZWRSZWN0
cyA9IGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29y
ZGluYXRlczsKKyAgICBhdXRvIHBsYXR0ZXJQYWRkaW5nID0gcGFyYW1ldGVycy5wbGF0dGVyUGFk
ZGluZzsKKyAgICBpZiAoaW5kaWNhdGVkUmVjdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGJvdW5k
aW5nUmVjdCA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsKKyAgICAgICAgYm91bmRpbmdSZWN0
LmluZmxhdGUocGxhdHRlclBhZGRpbmcpOworICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3Rz
LmFwcGVuZChwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGZvciAoYXV0byByZWN0IDogaW5kaWNhdGVkUmVjdHMpIHsKKyAgICAgICAgICAgIHJlY3QuaW5m
bGF0ZShwbGF0dGVyUGFkZGluZyk7CisgICAgICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3Rz
LmFwcGVuZChyZWN0KTsKKyAgICAgICAgICAgIGJvdW5kaW5nUmVjdC51bml0ZShyZWN0KTsKKyAg
ICAgICAgfQorICAgICAgICBib3VuZGluZ1JlY3QubW92ZUJ5KHByZUluZmxhdGlvbkJvdW5kaW5n
UmVjdC5sb2NhdGlvbigpKTsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBpbmZs
YXRlZFBhdGggPSBXZWJDb3JlOjpQYXRoVXRpbGl0aWVzOjpwYXRoV2l0aFNocmlua1dyYXBwZWRS
ZWN0cyhpbmZsYXRlZEluZGljYXRlZFJlY3RzLCBwYXJhbWV0ZXJzLnBsYXR0ZXJDb3JuZXJSYWRp
dXMpLnBsYXRmb3JtUGF0aCgpOworICAgIGF1dG8gcGxhdHRlckluZmxhdGlvblNpemUgPSBwYXJh
bWV0ZXJzLnBsYXR0ZXJJbmZsYXRpb25TaXplOworICAgIENHRmxvYXQgcGxhdHRlclNjYWxlID0g
Q0dGbG9hdE1pbigoYm91bmRpbmdSZWN0LndpZHRoKCkgKyBwbGF0dGVySW5mbGF0aW9uU2l6ZSkg
LyBib3VuZGluZ1JlY3Qud2lkdGgoKSwgKGJvdW5kaW5nUmVjdC5oZWlnaHQoKSArIHBsYXR0ZXJJ
bmZsYXRpb25TaXplKSAvIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSk7CisKKyAgICAvLyBGSVhNRTog
Q29uc2lkZXIgdXNpbmcgVUlLaXQncyBpbi1wcm9jZXNzIHJldGFyZ2V0YWJsZSBhbmltYXRpb25z
LCBiZWNhdXNlIHJlYWRpbmcgYW5pbWF0aW9uIHN0YXRlIGZyb20gdGhlIHByZXNlbnRhdGlvbiBs
YXllciBpcyByYWN5LgorICAgIGJvb2wgaGFkT2xkTGF5ZXJzID0gISFfbGFzdFNoYWRvd0xheWVy
OworICAgIENHUmVjdCBvbGRTaGFkb3dCb3VuZHMgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50
YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkU2hhZG93UG9zaXRpb24gPSBbX2xh
c3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgQ0dGbG9hdCBv
bGRTaGFkb3dPcGFjaXR5ID0gW19sYXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnNo
YWRvd09wYWNpdHk7CisgICAgQ0dGbG9hdCBvbGRTaGFkb3dSYWRpdXMgPSBbX2xhc3RTaGFkb3dM
YXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93UmFkaXVzOworICAgIENBVHJhbnNmb3JtM0Qg
b2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm0gPSBfbGFzdFNoYWRvd0xheWVyID8gW19sYXN0U2hh
ZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zv
cm0zRElkZW50aXR5OworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IG9sZFNoYWRvd1BhdGggPSBb
X2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93UGF0aDsKKyAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gc2hhZG93ID0gX2xhc3RTaGFkb3dMYXllciA/OiBhZG9wdE5TKFtbQ0FM
YXllciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gc2hhZG93RnJhbWUgPSBDR1JlY3RPZmZzZXQo
Ym91bmRpbmdSZWN0LCBwbGF0dGVyUGFkZGluZywgcGxhdHRlclBhZGRpbmcpOworICAgIFtzaGFk
b3cgc2V0RnJhbWU6c2hhZG93RnJhbWVdOworICAgIFtzaGFkb3cgc2V0U2hhZG93Q29sb3I6VUlD
b2xvci5ibGFja0NvbG9yLkNHQ29sb3JdOworICAgIFtzaGFkb3cgc2V0U2hhZG93UmFkaXVzOnBh
cmFtZXRlcnMucGxhdHRlclNoYWRvd1JhZGl1c107CisgICAgW3NoYWRvdyBzZXRTaGFkb3dPZmZz
ZXQ6Q0dTaXplWmVyb107CisgICAgW3NoYWRvdyBzZXRTaGFkb3dPcGFjaXR5OnBhcmFtZXRlcnMu
cGxhdHRlclNoYWRvd09wYWNpdHldOworICAgIFtzaGFkb3cgc2V0U3VibGF5ZXJUcmFuc2Zvcm06
Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOwor
ICAgIFtzaGFkb3cgc2V0U2hhZG93UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFtzaGFk
b3cgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbW1tfdmlldyBzdXBlcnZpZXddIGxheWVy
XSBhZGRTdWJsYXllcjpzaGFkb3cuZ2V0KCldOworCisgICAgQ0dSZWN0IG9sZFBsYXR0ZXJCb3Vu
ZHMgPSBbX2xhc3RQbGF0dGVyTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBD
R1BvaW50IG9sZFBsYXR0ZXJQb3NpdGlvbiA9IFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRp
b25MYXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IHBsYXR0ZXIgPSBfbGFz
dFBsYXR0ZXJMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtw
bGF0dGVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVjdC53aWR0aCgpLCBi
b3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbcGxhdHRlciBzZXRQb3NpdGlvbjpDR1BvaW50
TWFrZShzaGFkb3dGcmFtZS5zaXplLndpZHRoIC8gMiAtIHBsYXR0ZXJQYWRkaW5nLCBzaGFkb3dG
cmFtZS5zaXplLmhlaWdodCAvIDIgLSBwbGF0dGVyUGFkZGluZyldOworICAgIGF1dG8gb2xkUGxh
dHRlckFkZGl0aW9uYWxBbmltYXRpb25WYWx1ZSA9IHNldEFkZGl0aW9uYWxQbGF0dGVyTGF5ZXJQ
cm9wZXJ0aWVzKHBsYXR0ZXIuZ2V0KCksIFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25M
YXllcl0pOworICAgIFtwbGF0dGVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW3NoYWRv
dyBhZGRTdWJsYXllcjpwbGF0dGVyLmdldCgpXTsKKworICAgIENHUmVjdCBvbGRNYXNrQm91bmRz
ID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2lu
dCBvbGRNYXNrUG9zaXRpb24gPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBv
c2l0aW9uOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IG9sZE1hc2tQYXRoID0gW19sYXN0TWFz
a0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wYXRoOworICAgIFJldGFpblB0cjxDQVNoYXBlTGF5
ZXI+IG1hc2sgPSBfbGFzdE1hc2tMYXllciA/OiBhZG9wdE5TKFtbQ0FTaGFwZUxheWVyIGFsbG9j
XSBpbml0XSk7CisgICAgW21hc2sgc2V0RmlsbENvbG9yOltVSUNvbG9yIGJsYWNrQ29sb3JdLkNH
Q29sb3JdOworICAgIFttYXNrIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVj
dC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbbWFzayBzZXRQb3NpdGlv
bjpDR1BvaW50TWFrZShib3VuZGluZ1JlY3Qud2lkdGgoKSAvIDIgKyBwbGF0dGVyUGFkZGluZywg
Ym91bmRpbmdSZWN0LmhlaWdodCgpIC8gMiArIHBsYXR0ZXJQYWRkaW5nKV07CisgICAgW21hc2sg
c2V0UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFttYXNrIHdlYl9kaXNhYmxlQWxsQWN0
aW9uc107CisKKyAgICBDR1JlY3Qgb2xkQmFja2dyb3VuZEJvdW5kcyA9IFtfbGFzdEJhY2tncm91
bmRMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkQmFja2dy
b3VuZFBvc2l0aW9uID0gW19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5w
b3NpdGlvbjsKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gb2xkQmFja2dyb3VuZENvbG9yID0g
W19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5iYWNrZ3JvdW5kQ29sb3I7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IGJhY2tncm91bmQgPSBfbGFzdEJhY2tncm91bmRMYXll
ciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtiYWNrZ3JvdW5kIHNl
dEZyYW1lOltwbGF0dGVyIGJvdW5kc11dOworICAgIFtiYWNrZ3JvdW5kIHNldEJhY2tncm91bmRD
b2xvcjpjYWNoZWRDR0NvbG9yKGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IuZXN0aW1hdGVkQmFj
a2dyb3VuZENvbG9yKV07CisgICAgW2JhY2tncm91bmQgc2V0TWFzazptYXNrLmdldCgpXTsKKyAg
ICBbYmFja2dyb3VuZCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtwbGF0dGVyIGFkZFN1
YmxheWVyOmJhY2tncm91bmQuZ2V0KCldOworCisgICAgQ0dSZWN0IG9sZFNuYXBzaG90Qm91bmRz
ID0gW19sYXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENH
UG9pbnQgb2xkU25hcHNob3RQb3NpdGlvbiA9IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0
aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIENBVHJhbnNmb3JtM0Qgb2xkU25hcHNob3RTdWJsYXll
clRyYW5zZm9ybSA9IF9sYXN0U25hcHNob3RMYXllciA/IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJl
c2VudGF0aW9uTGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zvcm0zRElkZW50aXR5
OworICAgIFJldGFpblB0cjxDQVBvcnRhbExheWVyPiBzbmFwc2hvdCA9IF9sYXN0U25hcHNob3RM
YXllciA/OiBhZG9wdE5TKFtbQ0FQb3J0YWxMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtzbmFw
c2hvdCBzZXRTb3VyY2VMYXllcjpbX3ZpZXcgbGF5ZXJdXTsKKyAgICBbc25hcHNob3Qgc2V0TWF0
Y2hlc1Bvc2l0aW9uOllFU107CisgICAgW3NuYXBzaG90IHNldE1hdGNoZXNUcmFuc2Zvcm06WUVT
XTsKKyAgICBbc25hcHNob3Qgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsK
KyAgICBbc25hcHNob3Qgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2Fs
ZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOworICAgIFtzbmFwc2hvdCBzZXRNYXNr
c1RvQm91bmRzOllFU107CisgICAgW3NuYXBzaG90IHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
Ym91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFtzbmFw
c2hvdCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtiYWNrZ3JvdW5kIGFkZFN1YmxheWVy
OnNuYXBzaG90LmdldCgpXTsKKworICAgIEJPT0wgbmVlZHNBbmltYXRlSW4gPSAhX2xhc3RQbGF0
dGVyTGF5ZXIgfHwgX2lzU2l0dGluZ0Rvd247CisgICAgaWYgKG5lZWRzQW5pbWF0ZUluKSB7Cisg
ICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93T3BhY2l0eSIsIEAob2xk
U2hhZG93T3BhY2l0eSksIEAoW3NoYWRvdyBzaGFkb3dPcGFjaXR5XSkpOworICAgICAgICBhZGRB
bmltYXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1JhZGl1cyIsIEAob2xkU2hhZG93UmFkaXVz
KSwgQChbc2hhZG93IHNoYWRvd1JhZGl1c10pKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRv
dy5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNm
b3JtM0Q6b2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOltzaGFkb3cgc3VibGF5ZXJUcmFuc2Zvcm1dXSk7CisKKyAgICAgICAgYWRkQW5p
bWF0aW9uKHNuYXBzaG90LmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFsdWUgdmFs
dWVXaXRoQ0FUcmFuc2Zvcm0zRDpvbGRTbmFwc2hvdFN1YmxheWVyVHJhbnNmb3JtXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbc25hcHNob3Qgc3VibGF5ZXJUcmFuc2Zvcm1dXSk7
CisKKyAgICAgICAgYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyhwbGF0dGVyLmdldCgp
LCBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAo
YW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBoYWRPbGRMYXllcnMpIHsKKyAgICAgICAgYWRkQW5p
bWF0aW9uKG1hc2suZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9s
ZE1hc2tCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W21hc2sgYm91bmRzXV0pOwor
ICAgICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUG9pbnQ6b2xkTWFza1Bvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2lu
dDpbbWFzayBwb3NpdGlvbl1dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAi
cGF0aCIsIChpZClvbGRNYXNrUGF0aC5nZXQoKSwgKGlkKVttYXNrIHBhdGhdKTsKKworICAgICAg
ICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0
aENHUmVjdDpvbGRTaGFkb3dCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3NoYWRv
dyBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAicG9zaXRp
b24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFNoYWRvd1Bvc2l0aW9uXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0dQb2ludDpbc2hhZG93IHBvc2l0aW9uXV0pOworICAgICAgICBhZGRBbmlt
YXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1BhdGgiLCAoaWQpb2xkU2hhZG93UGF0aC5nZXQo
KSwgKGlkKVtzaGFkb3cgc2hhZG93UGF0aF0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihwbGF0
dGVyLmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRQbGF0dGVy
Qm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltwbGF0dGVyIGJvdW5kc11dKTsKKyAg
ICAgICAgYWRkQW5pbWF0aW9uKHBsYXR0ZXIuZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1BvaW50Om9sZFBsYXR0ZXJQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UG9pbnQ6W3BsYXR0ZXIgcG9zaXRpb25dXSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKGJhY2tn
cm91bmQuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZEJhY2tn
cm91bmRCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W2JhY2tncm91bmQgYm91bmRz
XV0pOworICAgICAgICBhZGRBbmltYXRpb24oYmFja2dyb3VuZC5nZXQoKSwgQCJwb3NpdGlvbiIs
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkQmFja2dyb3VuZFBvc2l0aW9uXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0dQb2ludDpbYmFja2dyb3VuZCBwb3NpdGlvbl1dKTsKKworICAgICAgICBh
ZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRo
Q0dSZWN0Om9sZFNuYXBzaG90Qm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltzbmFw
c2hvdCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQoKSwgQCJw
b3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkU25hcHNob3RQb3NpdGlvbl0s
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6W3NuYXBzaG90IHBvc2l0aW9uXV0pOworICAgIH0K
KworICAgIF9sYXN0TWFza0xheWVyID0gbWFzazsKKyAgICBfbGFzdFNoYWRvd0xheWVyID0gc2hh
ZG93OworICAgIF9sYXN0UGxhdHRlckxheWVyID0gcGxhdHRlcjsKKyAgICBfbGFzdEJhY2tncm91
bmRMYXllciA9IGJhY2tncm91bmQ7CisgICAgX2xhc3RTbmFwc2hvdExheWVyID0gc25hcHNob3Q7
Cit9CisKKy0gKHZvaWQpZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOihCT09MKXdpdGhBbmlt
YXRpb24KK3sKKyAgICBpZiAoX2lzU2l0dGluZ0Rvd24pCisgICAgICAgIHJldHVybjsKKyAgICBf
aXNTaXR0aW5nRG93biA9IHRydWU7CisKKyAgICBpZiAoIXdpdGhBbmltYXRpb24pIHsKKyAgICAg
ICAgW19sYXN0U2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbc2Vs
ZiBjbGVhckxheWVyc107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0Q29tcGxldGlvbkJsb2NrOltwcm90
ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaGFkb3dMYXllciA9IF9sYXN0U2hhZG93TGF5
ZXJdIHsKKyAgICAgICAgW3Byb3RlY3RlZFNlbGYgZGlkRmluaXNoQW5pbWF0aW9uRm9yU2hhZG93
OnNoYWRvd0xheWVyLmdldCgpXTsKKyAgICB9XTsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdL
SG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RT
aGFkb3dMYXllci5nZXQoKSwgQCJzaGFkb3dPcGFjaXR5IiwgQChbX2xhc3RTaGFkb3dMYXllciBz
aGFkb3dPcGFjaXR5XSksIEAwKTsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5n
ZXQoKSwgQCJzaGFkb3dSYWRpdXMiLCBAKFtfbGFzdFNoYWRvd0xheWVyIHNoYWRvd1JhZGl1c10p
LCBAMCk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U2hhZG93TGF5ZXIuZ2V0KCksIEAic3VibGF5
ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltfbGFzdFNoYWRv
d0xheWVyIHN1YmxheWVyVHJhbnNmb3JtXV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U25hcHNo
b3RMYXllci5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6W19sYXN0U25hcHNob3RMYXllciBzdWJsYXllclRyYW5zZm9ybV1dLCBbTlNW
YWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RJZGVudGl0eV0pOworICAg
IGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKF9sYXN0UGxhdHRlckxheWVyLmdldCgp
KTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKKyAgICBpZiAoIXBhcmFtZXRlcnMu
YW5pbWF0ZUJldHdlZW5QbGF0dGVycykKKyAgICAgICAgW3NlbGYgY2xlYXJMYXllcnNdOworfQor
CistICh2b2lkKWRpZEZpbmlzaEFuaW1hdGlvbkZvclNoYWRvdzooQ0FMYXllciAqKXNoYWRvd0xh
eWVyCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNl
dHRpbmdzOworICAgIGlmICghcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAg
ICAgICBbc2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworCisgICAgaWYgKF9pc1Np
dHRpbmdEb3duICYmIHBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBzaGFkb3dM
YXllciA9PSBfbGFzdFNoYWRvd0xheWVyKSB7CisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CisgICAgICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICB9Cit9CisK
Ky0gKHZvaWQpY2xlYXJMYXllcnMKK3sKKyAgICBfbGFzdE1hc2tMYXllciA9IG5pbDsKKyAgICBf
bGFzdFNoYWRvd0xheWVyID0gbmlsOworICAgIF9sYXN0UGxhdHRlckxheWVyID0gbmlsOworICAg
IF9sYXN0QmFja2dyb3VuZExheWVyID0gbmlsOworICAgIF9sYXN0U25hcHNob3RMYXllciA9IG5p
bDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
IHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjhjNDhmNDU5MTZhMzVkMDc4NGEwN2FlNGJhOGVlMThmYTc2OWE4YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRl
cnMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1w
b3J0ICJQcm90b3R5cGVUb29sc1NQSS5oIgorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyUGFy
YW1ldGVycyA6IFBUU2V0dGluZ3MKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGxhdHRl
ckVuYWJsZWRGb3JNb3VzZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBsYXR0ZXJFbmFi
bGVkRm9ySG92ZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJDb3Ju
ZXJSYWRpdXM7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyUGFkZGluZzsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJTaGFkb3dPcGFjaXR5OworQHBy
b3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlclNoYWRvd1JhZGl1czsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSB1bnNpZ25lZCBwbGF0dGVySW5mbGF0aW9uU2l6ZTsKKworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZUJldHdlZW5QbGF0dGVyczsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBDR0Zsb2F0IHNwcmluZ01hc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9h
dCBzcHJpbmdTdGlmZm5lc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBzcHJpbmdE
YW1waW5nOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVGltZUludGVydmFsIGR1cmF0aW9uOwor
QHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgdXNlU3ByaW5nOworCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnNBZGRpdGlvbnMuaD4KKyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tIb3Zl
clBsYXR0ZXJEb21haW4gOiBQVERvbWFpbgorKyAoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICop
cm9vdFNldHRpbmdzOworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43MTQ5YTg0NWNkMWY1Yjk0ZWQ2ODJmY2QyODcyNWYzODEwNWYxMTEwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVy
UGFyYW1ldGVycy5tbQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisKKyNpZiBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dO
SVpFUikKKworI2ltcG9ydCAiUHJvdG90eXBlVG9vbHNTUEkuaCIKKworQGludGVyZmFjZSBQVFNs
aWRlclJvdyAoV2ViS2l0KQorCistIChpZClpbnRlZ2VyTWluVmFsdWU6KENHRmxvYXQpbWluVmFs
dWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlkKWludGVnZXJNaW5WYWx1ZTooQ0dGbG9hdClt
aW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZQoreworICAgIHJldHVybiBbW3NlbGYg
bWluVmFsdWU6bWluVmFsdWUgbWF4VmFsdWU6bWF4VmFsdWVdIHZhbHVlVmFsaWRhdG9yOl5pZChp
ZCBwcm9wb3NlZFZhbHVlLCBpZCBzZXR0aW5ncykgeworICAgICAgICByZXR1cm4gQChDR1JvdW5k
KFtwcm9wb3NlZFZhbHVlIGZsb2F0VmFsdWVdKSk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzQWRkaXRpb25zLm1tPgorI2Vsc2UKK3N0YXRpYyB2b2lkIGFkZEFk
ZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhOU011dGFibGVBcnJheSAqcm93cyk7Citz
dGF0aWMgdm9pZCBzZXREZWZhdWx0VmFsdWVzRm9yQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJh
bWV0ZXJzKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyAqKTsKKyNlbmRpZgorCitAaW1wbGVtZW50
YXRpb24gV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzCisKKy0gKHZvaWQpc2V0RGVmYXVsdFZhbHVl
cworeworICAgIFtzdXBlciBzZXREZWZhdWx0VmFsdWVzXTsKKworICAgIF9wbGF0dGVyRW5hYmxl
ZEZvck1vdXNlID0gTk87CisgICAgX3BsYXR0ZXJFbmFibGVkRm9ySG92ZXIgPSBZRVM7CisKKyAg
ICBfcGxhdHRlckNvcm5lclJhZGl1cyA9IDY7CisgICAgX3BsYXR0ZXJQYWRkaW5nID0gNTsKKyAg
ICBfcGxhdHRlclNoYWRvd09wYWNpdHkgPSAwLjY7CisgICAgX3BsYXR0ZXJTaGFkb3dSYWRpdXMg
PSAxMDsKKyAgICBfcGxhdHRlckluZmxhdGlvblNpemUgPSA4OworCisgICAgX2FuaW1hdGVCZXR3
ZWVuUGxhdHRlcnMgPSBZRVM7CisgICAgX3NwcmluZ01hc3MgPSAyOworICAgIF9zcHJpbmdTdGlm
Zm5lc3MgPSAxMDA7CisgICAgX3NwcmluZ0RhbXBpbmcgPSA1MDsKKyAgICBfZHVyYXRpb24gPSAw
LjM7CisgICAgX3VzZVNwcmluZyA9IFlFUzsKKworICAgIHNldERlZmF1bHRWYWx1ZXNGb3JBZGRp
dGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMoc2VsZik7Cit9CisKKysgKFBUTW9kdWxlICop
c2V0dGluZ3NDb250cm9sbGVyTW9kdWxlCit7CisgICAgUFRTZWN0aW9uICplbmFibGVtZW50U2Vj
dGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6QFsKKyAgICAgICAgW1BUU3dpdGNoUm93
IHJvd1dpdGhUaXRsZTpAIkVuYWJsZSBQbGF0dGVyIEZvciBNb3VzZSIgdmFsdWVLZXlQYXRoOkAi
cGxhdHRlckVuYWJsZWRGb3JNb3VzZSJdLAorICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRp
dGxlOkAiRW5hYmxlIFBsYXR0ZXIgRm9yIEhvdmVyIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyRW5h
YmxlZEZvckhvdmVyIl0sCisgICAgXSB0aXRsZTpAIlBsYXR0ZXIiXTsKKworICAgIFBUU2VjdGlv
biAqYW5pbWF0aW9uU2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6QFsKKyAgICAg
ICAgW1BUU3dpdGNoUm93IHJvd1dpdGhUaXRsZTpAIkFuaW1hdGUgQmV0d2VlbiBQbGF0dGVycyIg
dmFsdWVLZXlQYXRoOkAiYW5pbWF0ZUJldHdlZW5QbGF0dGVycyJdLAorICAgICAgICBbUFRTd2l0
Y2hSb3cgcm93V2l0aFRpdGxlOkAiVXNlIFNwcmluZyIgdmFsdWVLZXlQYXRoOkAidXNlU3ByaW5n
Il0sCisgICAgICAgIFtbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkR1cmF0aW9uIiB2YWx1
ZUtleVBhdGg6QCJkdXJhdGlvbiJdIG1pblZhbHVlOjAgbWF4VmFsdWU6MV0gY29uZGl0aW9uOltO
U1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAidXNlU3ByaW5nID09IEZBTFNFIl1dLAor
ICAgICAgICBbW1BURWRpdEZsb2F0Um93IHJvd1dpdGhUaXRsZTpAIlNwcmluZyBNYXNzIiB2YWx1
ZUtleVBhdGg6QCJzcHJpbmdNYXNzIl0gY29uZGl0aW9uOltOU1ByZWRpY2F0ZSBwcmVkaWNhdGVX
aXRoRm9ybWF0OkAidXNlU3ByaW5nID09IFRSVUUiXV0sCisgICAgICAgIFtbUFRFZGl0RmxvYXRS
b3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIFN0aWZmbmVzcyIgdmFsdWVLZXlQYXRoOkAic3ByaW5n
U3RpZmZuZXNzIl0gY29uZGl0aW9uOltOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9ybWF0OkAi
dXNlU3ByaW5nID09IFRSVUUiXV0sCisgICAgICAgIFtbUFRFZGl0RmxvYXRSb3cgcm93V2l0aFRp
dGxlOkAiU3ByaW5nIERhbXBpbmciIHZhbHVlS2V5UGF0aDpAInNwcmluZ0RhbXBpbmciXSBjb25k
aXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJV
RSJdXSwKKyAgICBdIHRpdGxlOkAiQW5pbWF0aW9uIl07CisKKyAgICBSZXRhaW5QdHI8TlNNdXRh
YmxlQXJyYXk+IHBsYXR0ZXJMYXlvdXRSb3dzID0gYWRvcHROUyhbQFsKKyAgICAgICAgW1tQVFNs
aWRlclJvdyByb3dXaXRoVGl0bGU6QCJDb3JuZXIgUmFkaXVzIiB2YWx1ZUtleVBhdGg6QCJwbGF0
dGVyQ29ybmVyUmFkaXVzIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MjBdLAorICAgICAg
ICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlBhZGRpbmciIHZhbHVlS2V5UGF0aDpAInBs
YXR0ZXJQYWRkaW5nIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MjBdLAorICAgICAgICBb
W1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlNoYWRvdyBPcGFjaXR5IiB2YWx1ZUtleVBhdGg6
QCJwbGF0dGVyU2hhZG93T3BhY2l0eSJdIG1pblZhbHVlOjAgbWF4VmFsdWU6MV0sCisgICAgICAg
IFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiU2hhZG93IFJhZGl1cyIgdmFsdWVLZXlQYXRo
OkAicGxhdHRlclNoYWRvd1JhZGl1cyJdIGludGVnZXJNaW5WYWx1ZTowIG1heFZhbHVlOjIwXSwK
KyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJJbmZsYXRpb24gU2l6ZSIgdmFs
dWVLZXlQYXRoOkAicGxhdHRlckluZmxhdGlvblNpemUiXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhW
YWx1ZTozMF0KKyAgICBdIG11dGFibGVDb3B5XSk7CisgICAgYWRkQWRkaXRpb25hbFBsYXR0ZXJM
YXlvdXRQYXJhbWV0ZXJzKHBsYXR0ZXJMYXlvdXRSb3dzLmdldCgpKTsKKworICAgIFBUU2VjdGlv
biAqcGxhdHRlckxheW91dFNlY3Rpb24gPSBbUFRNb2R1bGUgc2VjdGlvbldpdGhSb3dzOnBsYXR0
ZXJMYXlvdXRSb3dzLmdldCgpIHRpdGxlOkAiUGxhdHRlciBMYXlvdXQiXTsKKworICAgIFBUU2Vj
dGlvbiAqcmVzdG9yZURlZmF1bHRzU2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6
QFsKKyAgICAgICAgW1BUQnV0dG9uUm93IHJvd1dpdGhUaXRsZTpAIlJlc3RvcmUgRGVmYXVsdHMi
IGFjdGlvbjpbUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uIGFjdGlvbl1dCisgICAg
XV07CisKKyAgICByZXR1cm4gW1BUTW9kdWxlIG1vZHVsZVdpdGhUaXRsZTpuaWwgY29udGVudHM6
QFsgZW5hYmxlbWVudFNlY3Rpb24sIGFuaW1hdGlvblNlY3Rpb24sIHBsYXR0ZXJMYXlvdXRTZWN0
aW9uLCByZXN0b3JlRGVmYXVsdHNTZWN0aW9uIF1dOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXS0hvdmVyUGxhdHRlckRvbWFpbgorCisrIChXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMg
Kilyb290U2V0dGluZ3MKK3sKKyAgICByZXR1cm4gW3N1cGVyIHJvb3RTZXR0aW5nc107Cit9CisK
KysgKE5TU3RyaW5nICopZG9tYWluR3JvdXBOYW1lCit7CisgICAgcmV0dXJuIEAiV2ViS2l0IjsK
K30KKworKyAoTlNTdHJpbmcgKilkb21haW5OYW1lCit7CisgICAgcmV0dXJuIEAiSG92ZXIgUGxh
dHRlciI7Cit9CisKKysgKENsYXNzKXJvb3RTZXR0aW5nc0NsYXNzCit7CisgICAgcmV0dXJuIFtX
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgY2xhc3NdOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVD
T0dOSVpFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDk4Y2U0ZDgzOWU0MDhjMmNmZTEyYzhlZjc4OGNkNDE2YTI2MGRiOTEuLjBiYTYz
YWQ5MzA5ODMzNjFiYWY1NzlkZDg4NTE1MDk4ZDhkMDNlYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjM0LDYgKzYzNCw3IEBACiAJ
CTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQxQjVENUIxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTJEMUI1RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQxQjVENUMxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJl
Q29udHJvbGxlck1lc3NhZ2VzLmggKi87IH07CiAJCTJEMUU4MjIzMjE2RkZGNTEwMEExNTI2NSAv
KiBXS1dlYkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDFFODIyMTIxNkZGRjUwMDBBMTUyNjUgLyogV0tXZWJFdmVudC5oICovOyB9OworCQky
RDI3OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjc5RTE4MjY5NTU3NjgwMDRC
M0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovOyB9OwogCQkyRDI4QTQ5NzFBRjk2NUExMDBG
MTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjhBNDk1MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdM
YXlvdXRTdHJhdGVneS5oICovOyB9OwogCQkyRDI5RUNEMDE5MkYyQzJFMDA5ODRCNzggLyogUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI5RUNDRTE5MkYyQzJFMDA5ODRCNzggLyogUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLmggKi87IH07CiAJCTJEM0E2NURCMUE3
QzNBMUYwMENBQzYzNyAvKiBXS05hdmlnYXRpb25BY3Rpb25SZWYuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEM0E2NUQ5MUE3QzNBMUYwMENBQzYzNyAv
KiBXS05hdmlnYXRpb25BY3Rpb25SZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMzE3MSw2ICszMTcyLDExIEBACiAJCTJEMUU4MjIyMjE2RkZG
NTEwMEExNTI2NSAvKiBXS1dlYkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV0tXZWJFdmVudC5tbTsgcGF0aCA9IGlvcy9XS1dlYkV2ZW50Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1RjMyODI1NzU4RTkwMDAyMzFBOEIgLyogSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdl
QnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkyRDI1RjMyOTI1NzU4RTkxMDAyMzFBOEIgLyogSW1hZ2VCdWZmZXJTaGFyZWFibGVJ
T1N1cmZhY2VCYWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQnVmZmVyU2hhcmVh
YmxlSU9TdXJmYWNlQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
Mjc5RTBFMjY5NEMyMjYwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXS0hvdmVyUGxhdHRlci5oOyBwYXRoID0gaW9zL1dLSG92ZXJQbGF0dGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTBGMjY5NEMyMjcwMDRCM0VFQiAvKiBXS0hvdmVy
UGxhdHRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLm1tOyBwYXRo
ID0gaW9zL1dLSG92ZXJQbGF0dGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQky
RDI3OUUxMDI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOyBwYXRoID0gaW9zL1dLSG92
ZXJQbGF0dGVyUGFyYW1ldGVycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI3
OUUxMTI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tOyBwYXRoID0gaW9z
L1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkQyNzlFMTgyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3RvdHlwZVRvb2xzU1BJLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk1MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdM
YXlvdXRTdHJhdGVneS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1ZpZXdM
YXlvdXRTdHJhdGVneS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4QTQ5NjFB
Rjk2NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEYzRTAxODg1Q0NDMTAwNEI5RUFFIC8qIFdlYkNo
cm9tZUNsaWVudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdlYkNocm9tZUNsaWVudElPUy5tbTsgcGF0aCA9IGlvcy9XZWJDaHJvbWVDbGllbnRJT1MubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzkyLDYgKzc3OTgsMTAgQEAKIAkJCQkw
RkNCNEU0MTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1Nl
Y3VyaXR5T3JpZ2luLm1tICovLAogCQkJCUY0REI1NEU0MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hp
Z2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJRjREQjU0RTUyMzE5
RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0g
Ki8sCisJCQkJMkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLmggKi8s
CisJCQkJMkQyNzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLm1tICovLAor
CQkJCTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMu
aCAqLywKKwkJCQkyRDI3OUUxMTI2OTRDMkQxMDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzLm1tICovLAogCQkJCUY0QkEzM0YwMjU3NTdFODkwMDBBM0NFOCAvKiBXS0ltYWdlQW5h
bHlzaXNHZXN0dXJlUmVjb2duaXplci5oICovLAogCQkJCUY0QkEzM0YxMjU3NTdFODkwMDBBM0NF
OCAvKiBXS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbSAqLywKIAkJCQk5MzNERjgy
RDFCM0JDMDkwMDBBRUE5RTMgLyogV0tJbWFnZVByZXZpZXdWaWV3Q29udHJvbGxlci5oICovLApA
QCAtMTE1MjksNiArMTE1MzksNyBAQAogCQkJCTJENEFGMDg4MjA0NEMzQzQwMDZDODgxNyAvKiBG
cm9udEJvYXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlBMTNCM0RBMTIwN0YzOURFMDA5MEM1OEQg
LyogTW9iaWxlV2lGaVNQSS5oICovLAogCQkJCTMxNzhBRjk3MjBFMkE3RjgwMDc0REU5NCAvKiBQ
REZLaXRTUEkuaCAqLywKKwkJCQkyRDI3OUUxODI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBl
VG9vbHNTUEkuaCAqLywKIAkJCQk0NkYzOEU4QjI0MTZFNjZEMDA1OTM3NUEgLyogUnVubmluZ0Jv
YXJkU2VydmljZXNTUEkuaCAqLywKIAkJCQlDRTFBMEJEMDFBNDhFNkM2MDA1NEVGNzQgLyogVEND
U1BJLmggKi8sCiAJCQkJQ0UxQTBCRDExQTQ4RTZDNjAwNTRFRjc0IC8qIFRleHRJbnB1dFNQSS5o
ICovLApAQCAtMTIyMzYsNiArMTIyNDcsNyBAQAogCQkJCTQ2M0ZENDgyMUVCOTRFQzAwMEEyOTgy
QyAvKiBQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTY3
QTI1MTkxMEI5RDEwMDAwNEFCNyAvKiBQcm9jZXNzVGhyb3R0bGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzA0OEFFNjFBQ0E0NURDMDA4MkM4MzIgLyogUHJvY2Vzc1Rocm90dGxlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkQyNzlFMTkyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlw
ZVRvb2xzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYg
LyogUXVhcmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAw
RUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVy
LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cg
Yi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDEwZTc2Y2QyNWI5N2U4MGY4YWNjMDYx
MjMxYWUyNTNkYTU5YTI5NWEuLmY2NzJhN2Y0NDA4MDdhNGQzYTAzOWU0MjA4ZjA3ODEwZDFhZDEz
ZjcgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGli
cmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTA3LTA2ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS0hvdmVyUGxhdHRl
ciBhbmQgc29tZSBrbm9icyB0byB0d2VhayBpdHMgYXBwZWFyYW5jZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzM1CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTE5ODI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvUHJv
dG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNS9Qcm90b3R5cGVUb29s
cy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90
b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZDog
QWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9Q
cm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy84L1Byb3RvdHlwZVRvb2xz
LmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorCiAyMDIxLTA2LTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBS
ZWVuYWJsZSBtb2Rlcm4gdGV4dCBpbnB1dCBVSSBmb3Igbm9uLW51bWVyaWMgdGV4dCBpbnB1dCB0
eXBlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9hcHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xz
LnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0
dm9zLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGE4YjE0MmY4N2Q2Nzg5NDVlZWZiZGFjYzZhMjdiMTRiMjVlMjRjZAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBw
bGV0dm9zLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAg
LTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0
LCBhcm02NCBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1l
d29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJworb2JqYy1jb25z
dHJhaW50OiBub25lCitwbGF0Zm9ybTogdHZvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAg
ICAgIFsgeDg2XzY0LCBhcm02NCBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0dG9uUm93
LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZhdWx0U2V0
dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNldHRpbmdz
LCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdpdCBhL1dl
YktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1By
b3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNS9Qcm90b3R5cGVUb29s
cy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhOGIxNDJmODdkNjc4
OTQ1ZWVmYmRhY2M2YTI3YjE0YjI1ZTI0Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNS9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0
YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQgXQoraW5zdGFsbC1u
YW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xz
LmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZv
cm06IHR2b3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQg
XQorICAgIG9iamMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZs
b2F0Um93LCBQVE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJv
dywgUFRSb3dBY3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1Jv
dywgUFRTd2l0Y2hSb3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0
UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJv
dG90eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43ZWViNDJmNmMxYzg0NzZmOWYwMTlkYzI3M2RiNTFhOGEwM2RhODM0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApAQCAt
MCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQs
IGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29i
amMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczog
ICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAg
IFsgUFRCdXR0b25Sb3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVz
dG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rp
b24sIFBUU2V0dGluZ3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE1L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VlYjQyZjZjMWM4
NDc2ZjlmMDE5ZGMyNzNkYjUxYThhMDNkYTgzNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE1L1Byb3RvdHlwZVRvb2xz
LmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGkt
dGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3Rh
bGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3Bs
YXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJt
NjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFp
biwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dB
Y3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRl
clJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L1Byb3RvdHlwZVRvb2xz
LmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJv
dG90eXBlVG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkN2Y3ZWRiNDA3YmUyZWJiNzI0YzM2MzJlOTli
Mjg2NDRmMTRjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJv
dG90eXBlVG9vbHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6
ICAgICAgICAgICBbIGkzODYsIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSwgYXJtNjRfMzIsIGFybXY3
ayBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
UHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJworb2JqYy1jb25zdHJhaW50
OiBub25lCitwbGF0Zm9ybTogd2F0Y2hvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAg
IFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwgYXJtdjdrIF0KKyAgICBv
YmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywg
UFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93
QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dp
dGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlw
ZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
d2F0Y2hvcy84L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWQ3ZjdlZGI0MDdiZTJlYmI3MjRjMzYzMmU5OWIyODY0NGYxNGNjNAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
d2F0Y2hvcy84L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAg
LTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgaTM4Niwg
eDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwgYXJtdjdrIF0KK2luc3RhbGwtbmFtZTog
ICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFt
ZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB3
YXRjaG9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAgWyBpMzg2LCB4ODZfNjQsIGFy
bTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBQ
VEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQVE1vZHVsZSwgUFRSZXN0b3Jl
RGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dBY3Rpb24sIFBUU2VjdGlvbiwg
UFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0Y2hSb3cgXQorLi4uCg==
</data>
<flag name="commit-queue"
          id="455133"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433019</attachid>
            <date>2021-07-07 00:23:13 -0700</date>
            <delta_ts>2021-07-07 17:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210707002312.patch</filename>
            <type>text/plain</type>
            <size>59334</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5hNWNlYjM3NjZlYmQ4NmMwZDQxZjNm
OTI0ZjY1MmRiMTAyYTg2ZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL1F1YXJ0ekNv
cmVTUEkuaDoKKwogMjAyMS0wNy0wMSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQQ006IENoYW5nZSBpbXBvcnQgZnJvbSBDcnlwdG9LaXRDQnJpZGdpbmcg
dG8gQ3J5cHRvS2l0UHJpdmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlY2YwZDhiYjkwYTUwMTdkMmZjMGUzNGQ2
YjIyNGZmOWI1YTY5OTQzLi5iNTFiZDU2YWU3NWRjYWUwZDE2MGRmMTE1MjBiNTRiZTY2MzUxZTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTA3LTA2ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS0hvdmVyUGxhdHRlciBhbmQg
c29tZSBrbm9icyB0byB0d2VhayBpdHMgYXBwZWFyYW5jZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NzM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83OTE5ODI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9y
bS9zcGkvaW9zL1Byb3RvdHlwZVRvb2xzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZXND
b2NvYS50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHJvb3RDb250ZW50Vmlld10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0VXBJbnRlcmFj
dGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGNsZWFuVXBJbnRlcmFjdGlvbl0pOgor
ICAgICAgICBJbnN0YWxsIGFuZCB1bmluc3RhbGwgdGhlIHBsYXR0ZXIgYWxvbmdzaWRlIHRoZSBn
ZXN0dXJlcyB0aGF0IGRyaXZlIGl0LgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbW91c2VH
ZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgaG92
ZXJHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6XSk6CisgICAgICAgIFdoZW4gdGhlIGdlc3R1cmUg
cmVjb2duaXplcnMgZmlyZSwgYWxzbyB1cGRhdGUgdGhlIGhvdmVyIHBvaW50LgorCisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjp3aXRo
UmVxdWVzdDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXIubW06IEFkZGVkLgorICAgICAgICAoY3JlYXRlQmFzZUFuaW1hdGlvbik6CisgICAgICAg
IChhZGRBbmltYXRpb24pOgorICAgICAgICAoc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3Bl
cnRpZXMpOgorICAgICAgICAoYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyk6CisgICAg
ICAgIChhZGRBZGRpdGlvbmFsRGlzbWlzc2FsQW5pbWF0aW9ucyk6CisgICAgICAgICgtW1dLSG92
ZXJQbGF0dGVyIGluaXRXaXRoVmlldzpkZWxlZ2F0ZTpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBs
YXR0ZXIgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBob3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIHNldEhvdmVyUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSG92ZXJQbGF0dGVyIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhv
dmVyUG9pbnRdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkUmVjZWl2ZVBvc2l0aW9u
SW5mb3JtYXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpc21pc3NQbGF0dGVy
V2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgZGlkRmluaXNoQW5p
bWF0aW9uRm9yU2hhZG93Ol0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBjbGVhckxheWVy
c10pOgorICAgICAgICBBbmltYXRlIHRoZSBwbGF0dGVyIGluIGFuZCBvdXQsIGFuZCBvcHRpb25h
bGx5IGJldHdlZW4gc3RhdGVzLCBhcyB0aGUgaG92ZXIgcG9pbnQgbW92ZXMuCisgICAgICAgIFVz
ZSB0aGUgVGV4dEluZGljYXRvcidzIGdlb21ldHJ5IGluZm9ybWF0aW9uLCBidXQgbm90IGl0cyBz
bmFwc2hvdDsgd2UgdXNlIGEKKyAgICAgICAgQ0FQb3J0YWxMYXllciBmb3IgdGhlIHBsYXR0ZXIg
aW5zdGVhZC4gQSBmdXR1cmUgcGF0Y2ggd2lsbCBhdm9pZCB0YWtpbmcgdGhlIHNuYXBzaG90Cisg
ICAgICAgIGVudGlyZWx5LCBzaW5jZSB3ZSBjYWxsIHNldEhvdmVyUG9pbnQgKGFuZCB0aHVzIGdl
bmVyYXRlIGEgVGV4dEluZGljYXRvcikgYSAqbG90KgorICAgICAgICB3aGVuIG1vdmluZyB0aGUg
bW91c2UgYXJvdW5kLCBhbmQgYWxsIHRob3NlIHNuYXBzaG90cyBhZGQgdXAuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbTogQWRkZWQuCisg
ICAgICAgICgtW1BUU2xpZGVyUm93IGludGVnZXJNaW5WYWx1ZTptYXhWYWx1ZTpdKToKKyAgICAg
ICAgKC1bV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldERlZmF1bHRWYWx1ZXNdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIHNldHRpbmdzQ29udHJvbGxlck1vZHVsZV0p
OgorICAgICAgICAoK1tXS0hvdmVyUGxhdHRlckRvbWFpbiByb290U2V0dGluZ3NdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gZG9tYWluR3JvdXBOYW1lXSk6CisgICAgICAgICgr
W1dLSG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbk5hbWVdKToKKyAgICAgICAgKCtbV0tIb3ZlclBs
YXR0ZXJEb21haW4gcm9vdFNldHRpbmdzQ2xhc3NdKToKKyAgICAgICAgQWRkIHNvbWUga25vYnMs
IHdpdGggcmVhc29uYWJsZSBkZWZhdWx0cywgZm9yIGV4cGVyaW1lbnRhdGlvbi4KKworICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTA3LTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVGFrZSBhIHByb2Nlc3MgYXNz
ZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xkaW5nIGxvY2tlZCBmaWxlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCmlu
ZGV4IDBiMGIwNWY4NmZkNDAzZDFjODdhNjQwMGY3YWI0ODllMDEyZGMyZmIuLmNhOTZiYWE2N2Y2
NGY2NmJlYjQwOTMyNGJkZTM1ZTQzNDM1MmE3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKQEAgLTE2Myw2ICsxNjMsMTIgQEAgdHlw
ZWRlZiBlbnVtIHsKIC0gKGZsb2F0KV9zb2x2ZUZvcklucHV0OihmbG9hdCl0OwogQGVuZAogCitA
aW50ZXJmYWNlIENBUG9ydGFsTGF5ZXIgOiBDQUxheWVyCitAcHJvcGVydHkgKHdlYWspIENBTGF5
ZXIgKnNvdXJjZUxheWVyOworQHByb3BlcnR5IEJPT0wgbWF0Y2hlc1Bvc2l0aW9uOworQHByb3Bl
cnR5IEJPT0wgbWF0Y2hlc1RyYW5zZm9ybTsKK0BlbmQKKwogI2VuZGlmIC8vIF9fT0JKQ19fCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpp
bmRleCA5ZjdjY2U1MTM3Y2U2ZmZmMjRjMDViNjc2MTZjMGQ2MGYzZjFlYTUxLi5kZGY4MGI2MjQ2
ZTg3MGY0NjY3ZjA0MjA3Mzk0Y2UwNzUzMjY2NGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtOTMsNiArOTMsOSBAQCBXS19QREZLSVRfTERG
TEFHU19pcGhvbmVzaW11bGF0b3Jbc2RrPWlwaG9uZSoxMS4qXSA9IDsKIFdLX1BERktJVF9MREZM
QUdTX21hY2NhdGFseXN0ID0gJChXS19QREZLSVRfTERGTEFHU19tYWNjYXRhbHlzdCQoV0tfTUFD
T1NfMTEwMCkpOwogV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3RfTUFDT1NfU0lOQ0VfMTEw
MCA9ICQoV0tfUERGS0lUX0xERkxBR1NfaXBob25lb3MpOwogCitXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUyA9ICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfJChXS19DT0NPQV9UT1VDSCkp
OworV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1NfY29jb2F0b3VjaCA9IC1mcmFtZXdvcmsgUHJv
dG90eXBlVG9vbHM7CisKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUyA9ICQoV0tfU0FGRV9CUk9X
U0lOR19MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfU0FGRV9CUk9XU0lOR19MREZM
QUdTX2lwaG9uZW9zID0gLWZyYW1ld29yayBTYWZhcmlTYWZlQnJvd3Npbmc7CiBXS19TQUZFX0JS
T1dTSU5HX0xERkxBR1NfaXBob25lb3Nbc2RrPWlwaG9uZSoxMC4qXSA9IDsKQEAgLTE0Myw3ICsx
NDYsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtbG5l
dHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4ID0g
LXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tfTElC
TkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElCUkFS
WV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1
ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZy
YW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlP
IC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRM
ZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxB
R1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdT
KSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9Q
UkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBI
SUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAk
KFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJ
TEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQo
V0tfUERGS0lUX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VS
SVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9U
WVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChX
S19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJB
TUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsg
LWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3Jr
IENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAt
ZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAt
ZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FD
Q0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRf
U0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChX
S19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERG
TEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xE
RkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhU
RU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19M
REZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dF
U1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZUEVfVE9PTFNf
TERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJG
QUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZUEVfSURFTlRJ
RklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BF
Q1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8vIFByZXZlbnQg
QysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRvciBuZXcsIGRl
bGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWluZyBleHBvcnRl
ZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0gLVdsLC11bmV4
cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNT
dDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDlleGNlcHRpb24g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBvcnRlZF9zeW1i
b2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53bSAtV2wsLXVu
ZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9jYWxsRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jhc2ljX2lzdHJl
YW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNf
c3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05T
XzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRD
TlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxv
Y2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFt
SWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEzYmFzaWNfb3N0
cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
UHJvdG90eXBlVG9vbHNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Qcm90
b3R5cGVUb29sc1NQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMzA0MDhkOTIyMGJjZjU3ZTY4MTNlYzg1ZGZj
ZDVjOWVjZmZlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9pb3MvUHJvdG90eXBlVG9vbHNTUEkuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPFByb3RvdHlwZVRvb2xzL1By
b3RvdHlwZVRvb2xzLmg+CisKKyNlbHNlCisKK0BpbnRlcmZhY2UgUFRTZXR0aW5ncyA6IE5TT2Jq
ZWN0IDxOU0NvcHlpbmc+CistICh2b2lkKXNldERlZmF1bHRWYWx1ZXM7CitAZW5kCisKK0BpbnRl
cmZhY2UgUFREb21haW4gOiBOU09iamVjdAorKyAoX19raW5kb2YgUFRTZXR0aW5ncyAqKXJvb3RT
ZXR0aW5nczsKK0BlbmQKKworQGludGVyZmFjZSBQVFNlY3Rpb24gOiBOU09iamVjdAorQGVuZAor
CitAaW50ZXJmYWNlIFBUTW9kdWxlIDogTlNPYmplY3QKKysgKGluc3RhbmNldHlwZSltb2R1bGVX
aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgY29udGVudHM6KE5TQXJyYXkgKiljb250ZW50czsK
KysgKFBUU2VjdGlvbiAqKXNlY3Rpb25XaXRoUm93czooTlNBcnJheSAqKXJvd3MgdGl0bGU6KE5T
U3RyaW5nICopdGl0bGU7CisrIChQVFNlY3Rpb24gKilzZWN0aW9uV2l0aFJvd3M6KE5TQXJyYXkg
Kilyb3dzOworQGVuZAorCitAaW50ZXJmYWNlIFBUUm93IDogTlNPYmplY3QgPE5TQ29weWluZywg
TlNTZWN1cmVDb2Rpbmc+CisrIChpbnN0YW5jZXR5cGUpcm93V2l0aFRpdGxlOihOU1N0cmluZyAq
KXN0YXRpY1RpdGxlIHZhbHVlS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoOworLSAoaWQpdmFs
dWVWYWxpZGF0b3I6KGlkKF4pKGlkIHByb3Bvc2VkVmFsdWUsIGlkIHNldHRpbmdzKSl2YWxpZGF0
b3I7CistIChpZCljb25kaXRpb246KE5TUHJlZGljYXRlICopY29uZGl0aW9uOworQGVuZAorCitA
aW50ZXJmYWNlIFBUU1JvdyA6IFBUUm93CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTd2l0Y2hSb3cg
OiBQVFNSb3cKK0BlbmQKKworQGludGVyZmFjZSBQVFNsaWRlclJvdyA6IFBUU1JvdworLSAoaWQp
bWluVmFsdWU6KENHRmxvYXQpbWluVmFsdWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWU7CitA
ZW5kCisKK0BpbnRlcmZhY2UgUFRFZGl0RmxvYXRSb3cgOiBQVFNSb3cKK0BlbmQKKworQGludGVy
ZmFjZSBQVFJvd0FjdGlvbiA6IE5TT2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgUFRSZXN0b3Jl
RGVmYXVsdFNldHRpbmdzUm93QWN0aW9uIDogUFRSb3dBY3Rpb24KKysgKGluc3RhbmNldHlwZSlh
Y3Rpb247CitAZW5kCisKK0BpbnRlcmZhY2UgUFRCdXR0b25Sb3cgOiBQVFNSb3cKKysgKGluc3Rh
bmNldHlwZSlyb3dXaXRoVGl0bGU6KE5TU3RyaW5nICopc3RhdGljVGl0bGUgYWN0aW9uOihQVFJv
d0FjdGlvbiAqKWFjdGlvbjsKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5k
ZXggNDA1MGM0MDNjNDZkNTY0YzJlOTgzYzVmMjY1NTUxYzY5NzVjZThmZC4uZTZmNmMwZGI3ZDJh
NjE5MDA5OGNkZjg5NzFmMmJjMDIzYjJmZjgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAt
NDg5LDYgKzQ4OSw4IEBAIFVJUHJvY2Vzcy9pb3MvV0tEZWZlcnJpbmdHZXN0dXJlUmVjb2duaXpl
ci5tbQogVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KIFVJUHJvY2Vz
cy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tCiBVSVBy
b2Nlc3MvaW9zL1dLSGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIubW0KK1VJUHJv
Y2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KK1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzLm1tCiBVSVByb2Nlc3MvaW9zL1dLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyLm1tCiBVSVByb2Nlc3MvaW9zL1dLS2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvci5tbQogVUlQ
cm9jZXNzL2lvcy9XS01vZGVsSW50ZXJhY3Rpb25HZXN0dXJlUmVjb2duaXplci5tbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggMDk1MDg2Y2QxZjlk
NWY2OWY3YTdhZTE5OGVmOWE5ZmNlMGM0YmZmMC4uNzYwNjU5MDQ3ZDFhYTJiNWRmN2FlZTQwZDE0
MTRkYTM5YTQxNmM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5oCkBAIC05NCw2ICs5NCw3IEBAIGVudW0gY2xhc3MgVmlld1N0YWJpbGl0eUZsYWcgOiB1
aW50OF90OwogLSAodm9pZClfd2ViVmlld0Rlc3Ryb3llZDsKIAogLSAoV0tXZWJWaWV3ICopd2Vi
VmlldzsKKy0gKFVJVmlldyAqKXJvb3RDb250ZW50VmlldzsKIAogLSAoc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4pX2NyZWF0ZURyYXdpbmdBcmVhUHJveHk6KFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5Jilwcm9jZXNzOwogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDZiMDQ5
YjQwN2IxMjFlODkzMDQyZGYzOWExNTFmYzk2MjkxMGVhMmQuLjljOTYzMWIxODBmNmQ1MjNhMzk3
MDVjNzNlNDBlMjA4ZjZmZGQxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCkBAIC0zMjYsNiArMzI2LDExIEBAIC0gKFdLV2ViVmlldyAqKXdlYlZp
ZXcKICAgICByZXR1cm4gX3dlYlZpZXcuZ2V0QXV0b3JlbGVhc2VkKCk7CiB9CiAKKy0gKFVJVmll
dyAqKXJvb3RDb250ZW50VmlldworeworICAgIHJldHVybiBfcm9vdENvbnRlbnRWaWV3LmdldCgp
OworfQorCiAtICh2b2lkKXdpbGxNb3ZlVG9XaW5kb3c6KFVJV2luZG93ICopbmV3V2luZG93CiB7
CiAgICAgW3N1cGVyIHdpbGxNb3ZlVG9XaW5kb3c6bmV3V2luZG93XTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCAzNTZiMzMzMjYyOGVlMWM1MmVhZjZhY2UwZDAwM2M4MGM1YjYxOWI0Li4yNmExZTJkZWZhMTE1
MTQzNTUxNDhkZWU1ZGFkY2Q5YzE3YTQyMDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zOSw2ICszOSw3
IEBACiAjaW1wb3J0ICJUZXh0Q2hlY2tpbmdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJUcmFuc2Fj
dGlvbklELmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIu
aCIKICNpbXBvcnQgPFdlYktpdC9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tBaXJQbGF5Um91dGVQaWNrZXIuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRhY3RQ
aWNrZXIuaD4KQEAgLTI5NSw2ICsyOTYsMTAgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1JlcXVlc3RJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW4KICAg
ICBSZXRhaW5QdHI8V0tIb3Zlckdlc3R1cmVSZWNvZ25pemVyPiBfaG92ZXJHZXN0dXJlUmVjb2du
aXplcjsKICNlbmRpZgogCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgUmV0YWluUHRyPFdLSG92ZXJQbGF0
dGVyPiBfaG92ZXJQbGF0dGVyOworI2VuZGlmCisKICNpZiBIQVZFKFBFTkNJTEtJVF9URVhUX0lO
UFVUKQogICAgIFJldGFpblB0cjxVSUluZGlyZWN0U2NyaWJibGVJbnRlcmFjdGlvbj4gX3Njcmli
YmxlSW50ZXJhY3Rpb247CiAjZW5kaWYKQEAgLTUyNiw2ICs1MzEsOSBAQCB1c2luZyBJbWFnZUFu
YWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNS
ZXF1ZXN0SWRlbgogICAgICwgVUlEcmFnSW50ZXJhY3Rpb25EZWxlZ2F0ZSwgVUlEcm9wSW50ZXJh
Y3Rpb25EZWxlZ2F0ZQogI2VuZGlmCiAgICAgLCBXS1RvdWNoQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZQorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUo
SE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgICwgV0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZQor
I2VuZGlmCiA+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCBsYXN0
SW50ZXJhY3Rpb25Mb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDM3ZTZiMzc5Y2JmMmM3ZmQ0
YjkyZThhZWIyNzU0MzVmMzc0ODhmNDAuLjFkN2NhNTk0NGY4ZmY0YzkxN2ZmOGQ4YzVmNTllY2Yy
OWJkOGRiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTYsNiArNTYsOCBAQAogI2ltcG9ydCAiV0tG
b3JtU2VsZWN0Q29udHJvbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5oIgorI2ltcG9ydCAi
V0tIb3ZlclBsYXR0ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oIgog
I2ltcG9ydCAiV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgIldL
SW1hZ2VQcmV2aWV3Vmlld0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yTm9kZVNl
YXJjaEdlc3R1cmVSZWNvZ25pemVyLmgiCkBAIC0xMjgsNiArMTMwLDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvVVRJVXRpbGl0aWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9X
ZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJFdmVudC5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJUZXh0SW5kaWNhdG9yTGF5ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUv
V3JpdGluZ0RpcmVjdGlvbi5oPgpAQCAtMTM2LDYgKzEzOSw3IEBACiAjaW1wb3J0IDxwYWwvc3Bp
L2NvY29hL0RhdGFEZXRlY3RvcnNDb3JlU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0xh
dW5jaFNlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TQXR0cmlidXRlZFN0
cmluZ1NQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAjaW1w
b3J0IDxwYWwvc3BpL2lvcy9EYXRhRGV0ZWN0b3JzVUlTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkv
aW9zL0dyYXBoaWNzU2VydmljZXNTUEkuaD4KICNpbXBvcnQgPHBhbC9zcGkvaW9zL01hbmFnZWRD
b25maWd1cmF0aW9uU1BJLmg+CkBAIC04OTQsNiArODk4LDEwIEBAIC0gKHZvaWQpc2V0VXBJbnRl
cmFjdGlvbgogICAgIFtzZWxmIHNldFVwSG92ZXJHZXN0dXJlUmVjb2duaXplcl07CiAjZW5kaWYK
IAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VT
VFVSRV9SRUNPR05JWkVSKQorICAgIF9ob3ZlclBsYXR0ZXIgPSBhZG9wdE5TKFtbV0tIb3ZlclBs
YXR0ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmLnJvb3RDb250ZW50VmlldyBkZWxlZ2F0ZTpz
ZWxmXSk7CisjZW5kaWYKKwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpFUikKICAg
ICBfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbX1VJTG9va3VwR2VzdHVyZVJl
Y29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfbG9v
a3VwR2VzdHVyZVJlY29nbml6ZWQ6KV0pOwogICAgIFtfbG9va3VwR2VzdHVyZVJlY29nbml6ZXIg
c2V0RGVsZWdhdGU6c2VsZl07CkBAIC0xMDgxLDYgKzEwODksMTEgQEAgLSAodm9pZCljbGVhblVw
SW50ZXJhY3Rpb24KICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfaG92ZXJHZXN0
dXJlUmVjb2duaXplci5nZXQoKV07CiAjZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIFtfaG92
ZXJQbGF0dGVyIGludmFsaWRhdGVdOworICAgIF9ob3ZlclBsYXR0ZXIgPSBuaWw7CisjZW5kaWYK
KwogI2lmIEhBVkUoTE9PS1VQX0dFU1RVUkVfUkVDT0dOSVpFUikKICAgICBbX2xvb2t1cEdlc3R1
cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJl
Y29nbml6ZXI6X2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKQEAgLTQ3NDAsNiArNDc1
MywxMCBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAgICAgX2FjdGl2ZVRl
eHRJbnRlcmFjdGlvbkNvdW50ID0gMDsKICAgICBfdHJlYXRBc0NvbnRlbnRFZGl0YWJsZVVudGls
TmV4dEVkaXRvclN0YXRlVXBkYXRlID0gTk87CiAgICAgW3NlbGYgX2ludmFsaWRhdGVDdXJyZW50
UG9zaXRpb25JbmZvcm1hdGlvbl07CisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hvdmVyUGxhdHRl
ciBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246Tk9dOworI2VuZGlmCiB9CiAKICNpZiAhVVNF
KFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKQEAgLTk1MDIsNiArOTUxOSw4IEBAIC0gKHZvaWQp
bW91c2VHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLTW91c2VHZXN0dXJlUmVjb2duaXplciAq
KWdlc3R1cmVSZWNvZ25pCiAgICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2luZG93XTsKIAog
ICAgIF9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KCpldmVudCk7CisgICAgaWYgKFdLSG92ZXJQbGF0
dGVyRG9tYWluLnJvb3RTZXR0aW5ncy5wbGF0dGVyRW5hYmxlZEZvck1vdXNlKQorICAgICAgICBb
X2hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50OmV2ZW50LT5wb3NpdGlvbigpXTsKIH0KIAogLSAo
dm9pZClfY29uZmlndXJlTW91c2VHZXN0dXJlUmVjb2duaXplcgpAQCAtOTUzNiwxMCArOTU1NSwy
MSBAQCAtICh2b2lkKWhvdmVyR2VzdHVyZVJlY29nbml6ZXJDaGFuZ2VkOihXS0hvdmVyR2VzdHVy
ZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaQogICAgICAgICByZXR1cm47CiAKICAgICBfcGFn
ZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxhdHRlckRvbWFp
bi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgW19ob3ZlclBs
YXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQogCisjaWYgSEFWRShVSUtJVF9XSVRIX01P
VVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKKy0gKHZv
aWQpcG9zaXRpb25JbmZvcm1hdGlvbkZvckhvdmVyUGxhdHRlcjooV0tIb3ZlclBsYXR0ZXIgKilo
b3ZlclBsYXR0ZXIgd2l0aFJlcXVlc3Q6KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJl
cXVlc3QmKXJlcXVlc3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgW3Nl
bGYgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Y29tcGxldGlvbkhhbmRsZXIgZm9y
UmVxdWVzdDpyZXF1ZXN0XTsKK30KKworI2VuZGlmCisKICNpZiBFTkFCTEUoTUVESUFfQ09OVFJP
TFNfQ09OVEVYVF9NRU5VUykgJiYgVVNFKFVJQ09OVEVYVE1FTlUpCiAKIC0gKHZvaWQpX3Nob3dN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnU6KFdlYkNvcmU6OkZsb2F0UmVjdCYmKXRhcmdldEZyYW1l
IGl0ZW1zOihWZWN0b3I8V2ViQ29yZTo6TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbT4mJilp
dGVtcyBjb21wbGV0aW9uSGFuZGxlcjooQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtOjpJRCk+JiYpY29tcGxldGlvbkhhbmRsZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDljZDZiZjRmMmMyMmExMDBmNDEyMzQwYzVmYzZhMzA3NDVlY2Y3YwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCkBAIC0wLDAg
KzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
IHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisKK0BjbGFzcyBXS0hvdmVyUGxh
dHRlcjsKKworQHByb3RvY29sIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKKworQHJlcXVpcmVkCist
ICh2b2lkKXBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92ZXJQbGF0dGVy
ICopaG92ZXJQbGF0dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0JilyZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcjsKKworQGVu
ZAorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyIDogTlNPYmplY3QKKworLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldyBkZWxlZ2F0ZTooaWQgPFdLSG92ZXJQbGF0
dGVyRGVsZWdhdGU+KWRlbGVnYXRlOworCistICh2b2lkKWRpc21pc3NQbGF0dGVyV2l0aEFuaW1h
dGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uOworCistICh2b2lkKWludmFsaWRhdGU7CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdlYkNvcmU6OkZsb2F0UG9pbnQgaG92ZXJQb2ludDsK
KworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc2YWM3NjBlZjU4NTk1YzM0YmJk
OGUyOGZhZTJkZmNlZWY3NWVjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5tbQpAQCAtMCwwICsxLDM0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXIuaCIKKworI2lm
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9S
RUNPR05JWkVSKQorCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FM
YXllckV4dHJhcy5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisK
K3N0YXRpYyBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gY3JlYXRlQmFzZUFuaW1hdGlvbigp
Cit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRp
bmdzOworICAgIGlmIChwYXJhbWV0ZXJzLnVzZVNwcmluZykgeworICAgICAgICBSZXRhaW5QdHI8
Q0FTcHJpbmdBbmltYXRpb24+IHNwcmluZyA9IGFkb3B0TlMoW1tDQVNwcmluZ0FuaW1hdGlvbiBh
bGxvY10gaW5pdF0pOworICAgICAgICBbc3ByaW5nIHNldE1hc3M6cGFyYW1ldGVycy5zcHJpbmdN
YXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXRTdGlmZm5lc3M6cGFyYW1ldGVycy5zcHJpbmdTdGlm
Zm5lc3NdOworICAgICAgICBbc3ByaW5nIHNldERhbXBpbmc6cGFyYW1ldGVycy5zcHJpbmdEYW1w
aW5nXTsKKyAgICAgICAgW3NwcmluZyBzZXRGaWxsTW9kZTprQ0FGaWxsTW9kZUJhY2t3YXJkc107
CisgICAgICAgIFtzcHJpbmcgc2V0RHVyYXRpb246W3NwcmluZyBzZXR0bGluZ0R1cmF0aW9uXV07
CisgICAgICAgIHJldHVybiBzcHJpbmc7CisgICAgfQorCisgICAgUmV0YWluUHRyPENBQmFzaWNB
bmltYXRpb24+IGVhc2UgPSBhZG9wdE5TKFtbQ0FCYXNpY0FuaW1hdGlvbiBhbGxvY10gaW5pdF0p
OworICAgIFtlYXNlIHNldEZpbGxNb2RlOmtDQUZpbGxNb2RlQmFja3dhcmRzXTsKKyAgICBbZWFz
ZSBzZXREdXJhdGlvbjpwYXJhbWV0ZXJzLmR1cmF0aW9uXTsKKyAgICBbZWFzZSBzZXRUaW1pbmdG
dW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFU
aW1pbmdGdW5jdGlvbkVhc2VJbl1dOworICAgIHJldHVybiBlYXNlOworfQorCitzdGF0aWMgdm9p
ZCBhZGRBbmltYXRpb24oQ0FMYXllciAqbGF5ZXIsIE5TU3RyaW5nICprZXksIGlkIGZyb21WYWx1
ZSwgaWQgdG9WYWx1ZSkKK3sKKyAgICBSZXRhaW5QdHI8Q0FCYXNpY0FuaW1hdGlvbj4gYW5pbWF0
aW9uID0gY3JlYXRlQmFzZUFuaW1hdGlvbigpOworICAgIFthbmltYXRpb24gc2V0S2V5UGF0aDpr
ZXldOworICAgIFthbmltYXRpb24gc2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07CisgICAgW2FuaW1h
dGlvbiBzZXRUb1ZhbHVlOnRvVmFsdWVdOworICAgIFtsYXllciBzZXRWYWx1ZTp0b1ZhbHVlIGZv
cktleTprZXldOworICAgIFtsYXllciBhZGRBbmltYXRpb246YW5pbWF0aW9uLmdldCgpIGZvcktl
eTprZXldOworfTsKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJL
aXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJBZGRpdGlvbnMubW0+CisjZWxzZQorc3RhdGljIENH
RmxvYXQgc2V0QWRkaXRpb25hbFBsYXR0ZXJMYXllclByb3BlcnRpZXMoQ0FMYXllciAqLCBDQUxh
eWVyICopIHsgcmV0dXJuIDA7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxJbmNvbWluZ0Fu
aW1hdGlvbnMoQ0FMYXllciAqLCBDR0Zsb2F0KSB7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9u
YWxEaXNtaXNzYWxBbmltYXRpb25zKENBTGF5ZXIgKikgeyB9CisjZW5kaWYKKworQGltcGxlbWVu
dGF0aW9uIFdLSG92ZXJQbGF0dGVyIHsKKyAgICBfX3dlYWsgVUlWaWV3ICpfdmlldzsKKyAgICBf
X3dlYWsgaWQgPFdLSG92ZXJQbGF0dGVyRGVsZWdhdGU+IF9kZWxlZ2F0ZTsKKyAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IF9ob3ZlclBvaW50OworCisgICAgQk9PTCBfaGFzT3V0c3RhbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKKyAgICBCT09MIF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0OworCisgICAgQk9PTCBfaXNTaXR0aW5nRG93bjsKKworICAgIFdlYkNv
cmU6OkZsb2F0UmVjdCBfbGFzdEhvdmVyQm91bmRzOworCisgICAgUmV0YWluUHRyPENBU2hhcGVM
YXllcj4gX2xhc3RNYXNrTGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0U2hhZG93
TGF5ZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0UGxhdHRlckxheWVyOworICAgIFJl
dGFpblB0cjxDQUxheWVyPiBfbGFzdEJhY2tncm91bmRMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FQ
b3J0YWxMYXllcj4gX2xhc3RTbmFwc2hvdExheWVyOworfQorCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhWaWV3OihVSVZpZXcgKil2aWV3IGRlbGVnYXRlOihpZCA8V0tIb3ZlclBsYXR0ZXJEZWxl
Z2F0ZT4pZGVsZWdhdGUKK3sKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRv
bWFpbi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0ZXJzLnBsYXR0ZXJFbmFibGVkRm9y
TW91c2UgJiYgIXBhcmFtZXRlcnMucGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgcmV0
dXJuIG5pbDsKKworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgX3ZpZXcgPSB2aWV3OworICAgIF9kZWxlZ2F0ZSA9IGRl
bGVnYXRlOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQorewor
ICAgIFtzZWxmIGRpc21pc3NQbGF0dGVyV2l0aEFuaW1hdGlvbjpOT107CisgICAgX3ZpZXcgPSBu
aWw7CisgICAgX2RlbGVnYXRlID0gbmlsOworfQorCistIChXZWJDb3JlOjpGbG9hdFBvaW50KWhv
dmVyUG9pbnQKK3sKKyAgICByZXR1cm4gX2hvdmVyUG9pbnQ7Cit9CisKKy0gKHZvaWQpc2V0SG92
ZXJQb2ludDooV2ViQ29yZTo6RmxvYXRQb2ludClwb2ludAoreworICAgIF9ob3ZlclBvaW50ID0g
cG9pbnQ7CisKKyAgICBpZiAoX2hhc091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVl
c3QpIHsKKyAgICAgICAgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBZ
RVM7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbc2VsZiByZXF1ZXN0UG9zaXRpb25J
bmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50XTsKK30KKworLSAodm9pZClyZXF1ZXN0UG9z
aXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50Cit7CisgICAgX2hhc0RlZmVycmVk
UG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAgICBfaGFzT3V0c3RhbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uUmVxdWVzdCA9IFlFUzsKKyAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0IHBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgV2ViQ29yZTo6cm91
bmRlZEludFBvaW50KF9ob3ZlclBvaW50KSB9OworICAgIC8vIEZJWE1FOiBUaGlzIFRleHRJbmRp
Y2F0b3IgZG9lc24ndCBuZWVkIGEgc25hcHNob3QgKGFuZCBhdm9pZGluZyBpdCB3b3VsZCBiZSBh
IHNpemFibGUgcGVyZm9ybWFuY2Ugd2luKS4KKyAgICBwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dC5pbmNsdWRlTGlua0luZGljYXRvciA9IFlFUzsKKyAgICBbX2RlbGVnYXRlIHBvc2l0aW9uSW5m
b3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6c2VsZiB3aXRoUmVxdWVzdDpwb3NpdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0hv
dmVyUGxhdHRlcj4oc2VsZildIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIFt3ZWFrU2VsZiBkaWRSZWNlaXZlUG9zaXRpb25J
bmZvcm1hdGlvbjppbmZvcm1hdGlvbl07CisgICAgfV07Cit9CisKKy0gKHZvaWQpZGlkUmVjZWl2
ZVBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mKWluZm9ybWF0aW9uCit7CisgICAgX2hhc091dHN0YW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvblJlcXVlc3QgPSBOTzsKKyAgICBpZiAoX2hhc0RlZmVycmVkUG9zaXRpb25JbmZv
cm1hdGlvblJlcXVlc3QpCisgICAgICAgIFtzZWxmIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9u
Rm9yQ3VycmVudEhvdmVyUG9pbnRdOworCisgICAgYXV0byBwcmVJbmZsYXRpb25Cb3VuZGluZ1Jl
Y3QgPSBpbmZvcm1hdGlvbi5saW5rSW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXM7CisgICAgaWYgKHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkp
CisgICAgICAgIHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJvdW5kczsK
KworICAgIGlmICghaW5mb3JtYXRpb24uaXNMaW5rIHx8IHByZUluZmxhdGlvbkJvdW5kaW5nUmVj
dC5pc0VtcHR5KCkpIHsKKyAgICAgICAgX2xhc3RIb3ZlckJvdW5kcyA9IHsgfTsKKyAgICAgICAg
W3NlbGYgZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOllFU107CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoX2xhc3RIb3ZlckJvdW5kcyA9PSBwcmVJbmZsYXRpb25Cb3VuZGlu
Z1JlY3QgJiYgIV9pc1NpdHRpbmdEb3duKQorICAgICAgICByZXR1cm47CisgICAgX2xhc3RIb3Zl
ckJvdW5kcyA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsKKworICAgIGF1dG8gcGFyYW1ldGVy
cyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBhdXRvIGFuaW1hdGVC
ZXR3ZWVuUGxhdHRlcnMgPSBwYXJhbWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnM7CisgICAg
aWYgKCFhbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRl
cldpdGhBbmltYXRpb246WUVTXTsKKworICAgIF9pc1NpdHRpbmdEb3duID0gZmFsc2U7CisKKyAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRpbmdSZWN0OworICAgIFZlY3RvcjxXZWJDb3JlOjpG
bG9hdFJlY3Q+IGluZmxhdGVkSW5kaWNhdGVkUmVjdHM7CisgICAgYXV0byBpbmRpY2F0ZWRSZWN0
cyA9IGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29y
ZGluYXRlczsKKyAgICBhdXRvIHBsYXR0ZXJQYWRkaW5nID0gcGFyYW1ldGVycy5wbGF0dGVyUGFk
ZGluZzsKKyAgICBpZiAoaW5kaWNhdGVkUmVjdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGJvdW5k
aW5nUmVjdCA9IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdDsKKyAgICAgICAgYm91bmRpbmdSZWN0
LmluZmxhdGUocGxhdHRlclBhZGRpbmcpOworICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3Rz
LmFwcGVuZChwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGZvciAoYXV0byByZWN0IDogaW5kaWNhdGVkUmVjdHMpIHsKKyAgICAgICAgICAgIHJlY3QuaW5m
bGF0ZShwbGF0dGVyUGFkZGluZyk7CisgICAgICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3Rz
LmFwcGVuZChyZWN0KTsKKyAgICAgICAgICAgIGJvdW5kaW5nUmVjdC51bml0ZShyZWN0KTsKKyAg
ICAgICAgfQorICAgICAgICBib3VuZGluZ1JlY3QubW92ZUJ5KHByZUluZmxhdGlvbkJvdW5kaW5n
UmVjdC5sb2NhdGlvbigpKTsKKyAgICB9CisKKyAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBpbmZs
YXRlZFBhdGggPSBXZWJDb3JlOjpQYXRoVXRpbGl0aWVzOjpwYXRoV2l0aFNocmlua1dyYXBwZWRS
ZWN0cyhpbmZsYXRlZEluZGljYXRlZFJlY3RzLCBwYXJhbWV0ZXJzLnBsYXR0ZXJDb3JuZXJSYWRp
dXMpLnBsYXRmb3JtUGF0aCgpOworICAgIGF1dG8gcGxhdHRlckluZmxhdGlvblNpemUgPSBwYXJh
bWV0ZXJzLnBsYXR0ZXJJbmZsYXRpb25TaXplOworICAgIENHRmxvYXQgcGxhdHRlclNjYWxlID0g
Q0dGbG9hdE1pbigoYm91bmRpbmdSZWN0LndpZHRoKCkgKyBwbGF0dGVySW5mbGF0aW9uU2l6ZSkg
LyBib3VuZGluZ1JlY3Qud2lkdGgoKSwgKGJvdW5kaW5nUmVjdC5oZWlnaHQoKSArIHBsYXR0ZXJJ
bmZsYXRpb25TaXplKSAvIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSk7CisKKyAgICAvLyBGSVhNRTog
Q29uc2lkZXIgdXNpbmcgVUlLaXQncyBpbi1wcm9jZXNzIHJldGFyZ2V0YWJsZSBhbmltYXRpb25z
LCBiZWNhdXNlIHJlYWRpbmcgYW5pbWF0aW9uIHN0YXRlIGZyb20gdGhlIHByZXNlbnRhdGlvbiBs
YXllciBpcyByYWN5LgorICAgIGJvb2wgaGFkT2xkTGF5ZXJzID0gISFfbGFzdFNoYWRvd0xheWVy
OworICAgIENHUmVjdCBvbGRTaGFkb3dCb3VuZHMgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50
YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkU2hhZG93UG9zaXRpb24gPSBbX2xh
c3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgQ0dGbG9hdCBv
bGRTaGFkb3dPcGFjaXR5ID0gW19sYXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnNo
YWRvd09wYWNpdHk7CisgICAgQ0dGbG9hdCBvbGRTaGFkb3dSYWRpdXMgPSBbX2xhc3RTaGFkb3dM
YXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93UmFkaXVzOworICAgIENBVHJhbnNmb3JtM0Qg
b2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm0gPSBfbGFzdFNoYWRvd0xheWVyID8gW19sYXN0U2hh
ZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zv
cm0zRElkZW50aXR5OworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IG9sZFNoYWRvd1BhdGggPSBb
X2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc2hhZG93UGF0aDsKKyAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gc2hhZG93ID0gX2xhc3RTaGFkb3dMYXllciA/OiBhZG9wdE5TKFtbQ0FM
YXllciBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gc2hhZG93RnJhbWUgPSBDR1JlY3RPZmZzZXQo
Ym91bmRpbmdSZWN0LCBwbGF0dGVyUGFkZGluZywgcGxhdHRlclBhZGRpbmcpOworICAgIFtzaGFk
b3cgc2V0RnJhbWU6c2hhZG93RnJhbWVdOworICAgIFtzaGFkb3cgc2V0U2hhZG93Q29sb3I6VUlD
b2xvci5ibGFja0NvbG9yLkNHQ29sb3JdOworICAgIFtzaGFkb3cgc2V0U2hhZG93UmFkaXVzOnBh
cmFtZXRlcnMucGxhdHRlclNoYWRvd1JhZGl1c107CisgICAgW3NoYWRvdyBzZXRTaGFkb3dPZmZz
ZXQ6Q0dTaXplWmVyb107CisgICAgW3NoYWRvdyBzZXRTaGFkb3dPcGFjaXR5OnBhcmFtZXRlcnMu
cGxhdHRlclNoYWRvd09wYWNpdHldOworICAgIFtzaGFkb3cgc2V0U3VibGF5ZXJUcmFuc2Zvcm06
Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOwor
ICAgIFtzaGFkb3cgc2V0U2hhZG93UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFtzaGFk
b3cgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKyAgICBbW1tfdmlldyBzdXBlcnZpZXddIGxheWVy
XSBhZGRTdWJsYXllcjpzaGFkb3cuZ2V0KCldOworCisgICAgQ0dSZWN0IG9sZFBsYXR0ZXJCb3Vu
ZHMgPSBbX2xhc3RQbGF0dGVyTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBD
R1BvaW50IG9sZFBsYXR0ZXJQb3NpdGlvbiA9IFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRp
b25MYXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IHBsYXR0ZXIgPSBfbGFz
dFBsYXR0ZXJMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtw
bGF0dGVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVjdC53aWR0aCgpLCBi
b3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbcGxhdHRlciBzZXRQb3NpdGlvbjpDR1BvaW50
TWFrZShzaGFkb3dGcmFtZS5zaXplLndpZHRoIC8gMiAtIHBsYXR0ZXJQYWRkaW5nLCBzaGFkb3dG
cmFtZS5zaXplLmhlaWdodCAvIDIgLSBwbGF0dGVyUGFkZGluZyldOworICAgIGF1dG8gb2xkUGxh
dHRlckFkZGl0aW9uYWxBbmltYXRpb25WYWx1ZSA9IHNldEFkZGl0aW9uYWxQbGF0dGVyTGF5ZXJQ
cm9wZXJ0aWVzKHBsYXR0ZXIuZ2V0KCksIFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25M
YXllcl0pOworICAgIFtwbGF0dGVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW3NoYWRv
dyBhZGRTdWJsYXllcjpwbGF0dGVyLmdldCgpXTsKKworICAgIENHUmVjdCBvbGRNYXNrQm91bmRz
ID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2lu
dCBvbGRNYXNrUG9zaXRpb24gPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBv
c2l0aW9uOworICAgIFJldGFpblB0cjxDR1BhdGhSZWY+IG9sZE1hc2tQYXRoID0gW19sYXN0TWFz
a0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wYXRoOworICAgIFJldGFpblB0cjxDQVNoYXBlTGF5
ZXI+IG1hc2sgPSBfbGFzdE1hc2tMYXllciA/OiBhZG9wdE5TKFtbQ0FTaGFwZUxheWVyIGFsbG9j
XSBpbml0XSk7CisgICAgW21hc2sgc2V0RmlsbENvbG9yOltVSUNvbG9yIGJsYWNrQ29sb3JdLkNH
Q29sb3JdOworICAgIFttYXNrIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVj
dC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkpXTsKKyAgICBbbWFzayBzZXRQb3NpdGlv
bjpDR1BvaW50TWFrZShib3VuZGluZ1JlY3Qud2lkdGgoKSAvIDIgKyBwbGF0dGVyUGFkZGluZywg
Ym91bmRpbmdSZWN0LmhlaWdodCgpIC8gMiArIHBsYXR0ZXJQYWRkaW5nKV07CisgICAgW21hc2sg
c2V0UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFttYXNrIHdlYl9kaXNhYmxlQWxsQWN0
aW9uc107CisKKyAgICBDR1JlY3Qgb2xkQmFja2dyb3VuZEJvdW5kcyA9IFtfbGFzdEJhY2tncm91
bmRMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkQmFja2dy
b3VuZFBvc2l0aW9uID0gW19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5w
b3NpdGlvbjsKKyAgICBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gb2xkQmFja2dyb3VuZENvbG9yID0g
W19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5iYWNrZ3JvdW5kQ29sb3I7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IGJhY2tncm91bmQgPSBfbGFzdEJhY2tncm91bmRMYXll
ciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtiYWNrZ3JvdW5kIHNl
dEZyYW1lOltwbGF0dGVyIGJvdW5kc11dOworICAgIFtiYWNrZ3JvdW5kIHNldEJhY2tncm91bmRD
b2xvcjpjYWNoZWRDR0NvbG9yKGluZm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IuZXN0aW1hdGVkQmFj
a2dyb3VuZENvbG9yKV07CisgICAgW2JhY2tncm91bmQgc2V0TWFzazptYXNrLmdldCgpXTsKKyAg
ICBbYmFja2dyb3VuZCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtwbGF0dGVyIGFkZFN1
YmxheWVyOmJhY2tncm91bmQuZ2V0KCldOworCisgICAgQ0dSZWN0IG9sZFNuYXBzaG90Qm91bmRz
ID0gW19sYXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENH
UG9pbnQgb2xkU25hcHNob3RQb3NpdGlvbiA9IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0
aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIENBVHJhbnNmb3JtM0Qgb2xkU25hcHNob3RTdWJsYXll
clRyYW5zZm9ybSA9IF9sYXN0U25hcHNob3RMYXllciA/IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJl
c2VudGF0aW9uTGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zvcm0zRElkZW50aXR5
OworICAgIFJldGFpblB0cjxDQVBvcnRhbExheWVyPiBzbmFwc2hvdCA9IF9sYXN0U25hcHNob3RM
YXllciA/OiBhZG9wdE5TKFtbQ0FQb3J0YWxMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtzbmFw
c2hvdCBzZXRTb3VyY2VMYXllcjpbX3ZpZXcgbGF5ZXJdXTsKKyAgICBbc25hcHNob3Qgc2V0TWF0
Y2hlc1Bvc2l0aW9uOllFU107CisgICAgW3NuYXBzaG90IHNldE1hdGNoZXNUcmFuc2Zvcm06WUVT
XTsKKyAgICBbc25hcHNob3Qgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsK
KyAgICBbc25hcHNob3Qgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2Fs
ZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOworICAgIFtzbmFwc2hvdCBzZXRNYXNr
c1RvQm91bmRzOllFU107CisgICAgW3NuYXBzaG90IHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
Ym91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFtzbmFw
c2hvdCB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtiYWNrZ3JvdW5kIGFkZFN1YmxheWVy
OnNuYXBzaG90LmdldCgpXTsKKworICAgIEJPT0wgbmVlZHNBbmltYXRlSW4gPSAhX2xhc3RQbGF0
dGVyTGF5ZXIgfHwgX2lzU2l0dGluZ0Rvd247CisgICAgaWYgKG5lZWRzQW5pbWF0ZUluKSB7Cisg
ICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93T3BhY2l0eSIsIEAob2xk
U2hhZG93T3BhY2l0eSksIEAoW3NoYWRvdyBzaGFkb3dPcGFjaXR5XSkpOworICAgICAgICBhZGRB
bmltYXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1JhZGl1cyIsIEAob2xkU2hhZG93UmFkaXVz
KSwgQChbc2hhZG93IHNoYWRvd1JhZGl1c10pKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRv
dy5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNm
b3JtM0Q6b2xkU2hhZG93U3VibGF5ZXJUcmFuc2Zvcm1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRy
YW5zZm9ybTNEOltzaGFkb3cgc3VibGF5ZXJUcmFuc2Zvcm1dXSk7CisKKyAgICAgICAgYWRkQW5p
bWF0aW9uKHNuYXBzaG90LmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFsdWUgdmFs
dWVXaXRoQ0FUcmFuc2Zvcm0zRDpvbGRTbmFwc2hvdFN1YmxheWVyVHJhbnNmb3JtXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbc25hcHNob3Qgc3VibGF5ZXJUcmFuc2Zvcm1dXSk7
CisKKyAgICAgICAgYWRkQWRkaXRpb25hbEluY29taW5nQW5pbWF0aW9ucyhwbGF0dGVyLmdldCgp
LCBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAo
YW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBoYWRPbGRMYXllcnMpIHsKKyAgICAgICAgYWRkQW5p
bWF0aW9uKG1hc2suZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9s
ZE1hc2tCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W21hc2sgYm91bmRzXV0pOwor
ICAgICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUG9pbnQ6b2xkTWFza1Bvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2lu
dDpbbWFzayBwb3NpdGlvbl1dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAi
cGF0aCIsIChpZClvbGRNYXNrUGF0aC5nZXQoKSwgKGlkKVttYXNrIHBhdGhdKTsKKworICAgICAg
ICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0
aENHUmVjdDpvbGRTaGFkb3dCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3NoYWRv
dyBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAicG9zaXRp
b24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFNoYWRvd1Bvc2l0aW9uXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0dQb2ludDpbc2hhZG93IHBvc2l0aW9uXV0pOworICAgICAgICBhZGRBbmlt
YXRpb24oc2hhZG93LmdldCgpLCBAInNoYWRvd1BhdGgiLCAoaWQpb2xkU2hhZG93UGF0aC5nZXQo
KSwgKGlkKVtzaGFkb3cgc2hhZG93UGF0aF0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihwbGF0
dGVyLmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRQbGF0dGVy
Qm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltwbGF0dGVyIGJvdW5kc11dKTsKKyAg
ICAgICAgYWRkQW5pbWF0aW9uKHBsYXR0ZXIuZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1BvaW50Om9sZFBsYXR0ZXJQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UG9pbnQ6W3BsYXR0ZXIgcG9zaXRpb25dXSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKGJhY2tn
cm91bmQuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZEJhY2tn
cm91bmRCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W2JhY2tncm91bmQgYm91bmRz
XV0pOworICAgICAgICBhZGRBbmltYXRpb24oYmFja2dyb3VuZC5nZXQoKSwgQCJwb3NpdGlvbiIs
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkQmFja2dyb3VuZFBvc2l0aW9uXSwgW05TVmFs
dWUgdmFsdWVXaXRoQ0dQb2ludDpbYmFja2dyb3VuZCBwb3NpdGlvbl1dKTsKKworICAgICAgICBh
ZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRo
Q0dSZWN0Om9sZFNuYXBzaG90Qm91bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltzbmFw
c2hvdCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQoKSwgQCJw
b3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkU25hcHNob3RQb3NpdGlvbl0s
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6W3NuYXBzaG90IHBvc2l0aW9uXV0pOworICAgIH0K
KworICAgIF9sYXN0TWFza0xheWVyID0gbWFzazsKKyAgICBfbGFzdFNoYWRvd0xheWVyID0gc2hh
ZG93OworICAgIF9sYXN0UGxhdHRlckxheWVyID0gcGxhdHRlcjsKKyAgICBfbGFzdEJhY2tncm91
bmRMYXllciA9IGJhY2tncm91bmQ7CisgICAgX2xhc3RTbmFwc2hvdExheWVyID0gc25hcHNob3Q7
Cit9CisKKy0gKHZvaWQpZGlzbWlzc1BsYXR0ZXJXaXRoQW5pbWF0aW9uOihCT09MKXdpdGhBbmlt
YXRpb24KK3sKKyAgICBpZiAoX2lzU2l0dGluZ0Rvd24pCisgICAgICAgIHJldHVybjsKKyAgICBf
aXNTaXR0aW5nRG93biA9IHRydWU7CisKKyAgICBpZiAoIXdpdGhBbmltYXRpb24pIHsKKyAgICAg
ICAgW19sYXN0U2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbc2Vs
ZiBjbGVhckxheWVyc107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbQ0FUcmFuc2Fj
dGlvbiBiZWdpbl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0Q29tcGxldGlvbkJsb2NrOltwcm90
ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaGFkb3dMYXllciA9IF9sYXN0U2hhZG93TGF5
ZXJdIHsKKyAgICAgICAgW3Byb3RlY3RlZFNlbGYgZGlkRmluaXNoQW5pbWF0aW9uRm9yU2hhZG93
OnNoYWRvd0xheWVyLmdldCgpXTsKKyAgICB9XTsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdL
SG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RT
aGFkb3dMYXllci5nZXQoKSwgQCJzaGFkb3dPcGFjaXR5IiwgQChbX2xhc3RTaGFkb3dMYXllciBz
aGFkb3dPcGFjaXR5XSksIEAwKTsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5n
ZXQoKSwgQCJzaGFkb3dSYWRpdXMiLCBAKFtfbGFzdFNoYWRvd0xheWVyIHNoYWRvd1JhZGl1c10p
LCBAMCk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U2hhZG93TGF5ZXIuZ2V0KCksIEAic3VibGF5
ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltfbGFzdFNoYWRv
d0xheWVyIHN1YmxheWVyVHJhbnNmb3JtXV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3Jt
M0Q6Q0FUcmFuc2Zvcm0zRElkZW50aXR5XSk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U25hcHNo
b3RMYXllci5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENB
VHJhbnNmb3JtM0Q6W19sYXN0U25hcHNob3RMYXllciBzdWJsYXllclRyYW5zZm9ybV1dLCBbTlNW
YWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOkNBVHJhbnNmb3JtM0RJZGVudGl0eV0pOworICAg
IGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25zKF9sYXN0UGxhdHRlckxheWVyLmdldCgp
KTsKKworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CisKKyAgICBpZiAoIXBhcmFtZXRlcnMu
YW5pbWF0ZUJldHdlZW5QbGF0dGVycykKKyAgICAgICAgW3NlbGYgY2xlYXJMYXllcnNdOworfQor
CistICh2b2lkKWRpZEZpbmlzaEFuaW1hdGlvbkZvclNoYWRvdzooQ0FMYXllciAqKXNoYWRvd0xh
eWVyCit7CisgICAgYXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNl
dHRpbmdzOworICAgIGlmICghcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAg
ICAgICBbc2hhZG93TGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworCisgICAgaWYgKF9pc1Np
dHRpbmdEb3duICYmIHBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBzaGFkb3dM
YXllciA9PSBfbGFzdFNoYWRvd0xheWVyKSB7CisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CisgICAgICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICB9Cit9CisK
Ky0gKHZvaWQpY2xlYXJMYXllcnMKK3sKKyAgICBfbGFzdE1hc2tMYXllciA9IG5pbDsKKyAgICBf
bGFzdFNoYWRvd0xheWVyID0gbmlsOworICAgIF9sYXN0UGxhdHRlckxheWVyID0gbmlsOworICAg
IF9sYXN0QmFja2dyb3VuZExheWVyID0gbmlsOworICAgIF9sYXN0U25hcHNob3RMYXllciA9IG5p
bDsKK30KKworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQp
IHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjhjNDhmNDU5MTZhMzVkMDc4NGEwN2FlNGJhOGVlMThmYTc2OWE4YQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRl
cnMuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9N
T1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1w
b3J0ICJQcm90b3R5cGVUb29sc1NQSS5oIgorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyUGFy
YW1ldGVycyA6IFBUU2V0dGluZ3MKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGxhdHRl
ckVuYWJsZWRGb3JNb3VzZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBsYXR0ZXJFbmFi
bGVkRm9ySG92ZXI7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJDb3Ju
ZXJSYWRpdXM7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyUGFkZGluZzsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJTaGFkb3dPcGFjaXR5OworQHBy
b3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRlclNoYWRvd1JhZGl1czsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSB1bnNpZ25lZCBwbGF0dGVySW5mbGF0aW9uU2l6ZTsKKworQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgYW5pbWF0ZUJldHdlZW5QbGF0dGVyczsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljKSBDR0Zsb2F0IHNwcmluZ01hc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9h
dCBzcHJpbmdTdGlmZm5lc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBzcHJpbmdE
YW1waW5nOworQHByb3BlcnR5IChub25hdG9taWMpIE5TVGltZUludGVydmFsIGR1cmF0aW9uOwor
QHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgdXNlU3ByaW5nOworCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnNBZGRpdGlvbnMuaD4KKyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tIb3Zl
clBsYXR0ZXJEb21haW4gOiBQVERvbWFpbgorKyAoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICop
cm9vdFNldHRpbmdzOworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NV
UFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41NDJhZWQ2YTEzNzJmZDAyN2M1OTAwN2U2ZTk3NjU2MzJkMTIzNGM5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVy
UGFyYW1ldGVycy5tbQpAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisKKyNpZiBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dO
SVpFUikKKworI2ltcG9ydCAiUHJvdG90eXBlVG9vbHNTUEkuaCIKKworQGludGVyZmFjZSBQVFNs
aWRlclJvdyAoV2ViS2l0KQorCistIChpZClpbnRlZ2VyTWluVmFsdWU6KENHRmxvYXQpbWluVmFs
dWUgbWF4VmFsdWU6KENHRmxvYXQpbWF4VmFsdWU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9u
IFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlkKWludGVnZXJNaW5WYWx1ZTooQ0dGbG9hdClt
aW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZQoreworICAgIHJldHVybiBbW3NlbGYg
bWluVmFsdWU6bWluVmFsdWUgbWF4VmFsdWU6bWF4VmFsdWVdIHZhbHVlVmFsaWRhdG9yOl5pZChp
ZCBwcm9wb3NlZFZhbHVlLCBpZCBzZXR0aW5ncykgeworICAgICAgICByZXR1cm4gQChDR1JvdW5k
KFtwcm9wb3NlZFZhbHVlIGZsb2F0VmFsdWVdKSk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzQWRkaXRpb25zLm1tPgorI2Vsc2UKK3N0YXRpYyB2b2lkIGFkZEFk
ZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhOU011dGFibGVBcnJheSAqKSB7IH0KK3N0
YXRpYyB2b2lkIHNldERlZmF1bHRWYWx1ZXNGb3JBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFt
ZXRlcnMoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICopIHsgfQorI2VuZGlmCisKK0BpbXBsZW1l
bnRhdGlvbiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMKKworLSAodm9pZClzZXREZWZhdWx0VmFs
dWVzCit7CisgICAgW3N1cGVyIHNldERlZmF1bHRWYWx1ZXNdOworCisgICAgX3BsYXR0ZXJFbmFi
bGVkRm9yTW91c2UgPSBOTzsKKyAgICBfcGxhdHRlckVuYWJsZWRGb3JIb3ZlciA9IFlFUzsKKwor
ICAgIF9wbGF0dGVyQ29ybmVyUmFkaXVzID0gNjsKKyAgICBfcGxhdHRlclBhZGRpbmcgPSA1Owor
ICAgIF9wbGF0dGVyU2hhZG93T3BhY2l0eSA9IDAuNjsKKyAgICBfcGxhdHRlclNoYWRvd1JhZGl1
cyA9IDEwOworICAgIF9wbGF0dGVySW5mbGF0aW9uU2l6ZSA9IDg7CisKKyAgICBfYW5pbWF0ZUJl
dHdlZW5QbGF0dGVycyA9IFlFUzsKKyAgICBfc3ByaW5nTWFzcyA9IDI7CisgICAgX3NwcmluZ1N0
aWZmbmVzcyA9IDEwMDsKKyAgICBfc3ByaW5nRGFtcGluZyA9IDUwOworICAgIF9kdXJhdGlvbiA9
IDAuMzsKKyAgICBfdXNlU3ByaW5nID0gWUVTOworCisgICAgc2V0RGVmYXVsdFZhbHVlc0ZvckFk
ZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhzZWxmKTsKK30KKworKyAoUFRNb2R1bGUg
KilzZXR0aW5nc0NvbnRyb2xsZXJNb2R1bGUKK3sKKyAgICBQVFNlY3Rpb24gKmVuYWJsZW1lbnRT
ZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRTd2l0Y2hS
b3cgcm93V2l0aFRpdGxlOkAiRW5hYmxlIFBsYXR0ZXIgRm9yIE1vdXNlIiB2YWx1ZUtleVBhdGg6
QCJwbGF0dGVyRW5hYmxlZEZvck1vdXNlIl0sCisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRo
VGl0bGU6QCJFbmFibGUgUGxhdHRlciBGb3IgSG92ZXIiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJF
bmFibGVkRm9ySG92ZXIiXSwKKyAgICBdIHRpdGxlOkAiUGxhdHRlciJdOworCisgICAgUFRTZWN0
aW9uICphbmltYXRpb25TZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAg
ICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiQW5pbWF0ZSBCZXR3ZWVuIFBsYXR0ZXJz
IiB2YWx1ZUtleVBhdGg6QCJhbmltYXRlQmV0d2VlblBsYXR0ZXJzIl0sCisgICAgICAgIFtQVFN3
aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJVc2UgU3ByaW5nIiB2YWx1ZUtleVBhdGg6QCJ1c2VTcHJp
bmciXSwKKyAgICAgICAgW1tbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiRHVyYXRpb24iIHZh
bHVlS2V5UGF0aDpAImR1cmF0aW9uIl0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSBjb25kaXRpb246
W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gRkFMU0UiXV0s
CisgICAgICAgIFtbUFRFZGl0RmxvYXRSb3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIE1hc3MiIHZh
bHVlS2V5UGF0aDpAInNwcmluZ01hc3MiXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0
ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9h
dFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcgU3RpZmZuZXNzIiB2YWx1ZUtleVBhdGg6QCJzcHJp
bmdTdGlmZm5lc3MiXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6
QCJ1c2VTcHJpbmcgPT0gVFJVRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRo
VGl0bGU6QCJTcHJpbmcgRGFtcGluZyIgdmFsdWVLZXlQYXRoOkAic3ByaW5nRGFtcGluZyJdIGNv
bmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBU
UlVFIl1dLAorICAgIF0gdGl0bGU6QCJBbmltYXRpb24iXTsKKworICAgIFJldGFpblB0cjxOU011
dGFibGVBcnJheT4gcGxhdHRlckxheW91dFJvd3MgPSBhZG9wdE5TKFtAWworICAgICAgICBbW1BU
U2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkNvcm5lciBSYWRpdXMiIHZhbHVlS2V5UGF0aDpAInBs
YXR0ZXJDb3JuZXJSYWRpdXMiXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAg
ICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiUGFkZGluZyIgdmFsdWVLZXlQYXRoOkAi
cGxhdHRlclBhZGRpbmciXSBpbnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAg
IFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiU2hhZG93IE9wYWNpdHkiIHZhbHVlS2V5UGF0
aDpAInBsYXR0ZXJTaGFkb3dPcGFjaXR5Il0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSwKKyAgICAg
ICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJTaGFkb3cgUmFkaXVzIiB2YWx1ZUtleVBh
dGg6QCJwbGF0dGVyU2hhZG93UmFkaXVzIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MjBd
LAorICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIkluZmxhdGlvbiBTaXplIiB2
YWx1ZUtleVBhdGg6QCJwbGF0dGVySW5mbGF0aW9uU2l6ZSJdIGludGVnZXJNaW5WYWx1ZTowIG1h
eFZhbHVlOjMwXQorICAgIF0gbXV0YWJsZUNvcHldKTsKKyAgICBhZGRBZGRpdGlvbmFsUGxhdHRl
ckxheW91dFBhcmFtZXRlcnMocGxhdHRlckxheW91dFJvd3MuZ2V0KCkpOworCisgICAgUFRTZWN0
aW9uICpwbGF0dGVyTGF5b3V0U2VjdGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6cGxh
dHRlckxheW91dFJvd3MuZ2V0KCkgdGl0bGU6QCJQbGF0dGVyIExheW91dCJdOworCisgICAgUFRT
ZWN0aW9uICpyZXN0b3JlRGVmYXVsdHNTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93
czpAWworICAgICAgICBbUFRCdXR0b25Sb3cgcm93V2l0aFRpdGxlOkAiUmVzdG9yZSBEZWZhdWx0
cyIgYWN0aW9uOltQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gYWN0aW9uXV0KKyAg
ICBdXTsKKworICAgIHJldHVybiBbUFRNb2R1bGUgbW9kdWxlV2l0aFRpdGxlOm5pbCBjb250ZW50
czpAWyBlbmFibGVtZW50U2VjdGlvbiwgYW5pbWF0aW9uU2VjdGlvbiwgcGxhdHRlckxheW91dFNl
Y3Rpb24sIHJlc3RvcmVEZWZhdWx0c1NlY3Rpb24gXV07Cit9CisKK0BlbmQKKworQGltcGxlbWVu
dGF0aW9uIFdLSG92ZXJQbGF0dGVyRG9tYWluCisKKysgKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVy
cyAqKXJvb3RTZXR0aW5ncworeworICAgIHJldHVybiBbc3VwZXIgcm9vdFNldHRpbmdzXTsKK30K
KworKyAoTlNTdHJpbmcgKilkb21haW5Hcm91cE5hbWUKK3sKKyAgICByZXR1cm4gQCJXZWJLaXQi
OworfQorCisrIChOU1N0cmluZyAqKWRvbWFpbk5hbWUKK3sKKyAgICByZXR1cm4gQCJIb3ZlciBQ
bGF0dGVyIjsKK30KKworKyAoQ2xhc3Mpcm9vdFNldHRpbmdzQ2xhc3MKK3sKKyAgICByZXR1cm4g
W1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyBjbGFzc107Cit9CisKK0BlbmQKKworI2VuZGlmIC8v
IEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9S
RUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggOThjZTRkODM5ZTQwOGMyY2ZlMTJjOGVmNzg4Y2Q0MTZhMjYwZGI5MS4uMGJh
NjNhZDkzMDk4MzM2MWJhZjU3OWRkODg1MTUwOThkOGQwM2VjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC02MzQsNiArNjM0LDcgQEAK
IAkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDFCNUQ1QjE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJMkQxQjVENUUxODU4NjlDODAwNkM2NTk2IC8qIFZp
ZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFCNUQ1QzE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1
cmVDb250cm9sbGVyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMkQxRTgyMjMyMTZGRkY1MTAwQTE1MjY1
IC8qIFdLV2ViRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEMUU4MjIxMjE2RkZGNTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggKi87IH07CisJ
CTJEMjc5RTE5MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyNzlFMTgyNjk1NTc2ODAw
NEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggKi87IH07CiAJCTJEMjhBNDk3MUFGOTY1QTEw
MEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmll
d0xheW91dFN0cmF0ZWd5LmggKi87IH07CiAJCTJEMjlFQ0QwMTkyRjJDMkUwMDk4NEI3OCAvKiBS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjlFQ0NFMTkyRjJDMkUwMDk4NEI3OCAvKiBS
ZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IuaCAqLzsgfTsKIAkJMkQzQTY1REIx
QTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3
IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0zMTcxLDYgKzMxNzIsMTEgQEAKIAkJMkQxRTgyMjIyMTZG
RkY1MTAwQTE1MjY1IC8qIFdLV2ViRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS1dlYkV2ZW50Lm1tOyBwYXRoID0gaW9zL1dLV2ViRXZlbnQubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJ
bWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1h
Z2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJEMjVGMzI5MjU3NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJs
ZUlPU3VyZmFjZUJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFy
ZWFibGVJT1N1cmZhY2VCYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkQyNzlFMEUyNjk0QzIyNjAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLSG92ZXJQbGF0dGVyLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92
ZXJQbGF0dGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXIubW07IHBh
dGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJEMjc5RTEwMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHBhdGggPSBpb3MvV0tI
b3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJE
Mjc5RTExMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW07IHBhdGggPSBp
b3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyRDI3OUUxODI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvdG90eXBlVG9vbHNTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmll
d0xheW91dFN0cmF0ZWd5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmll
d0xheW91dFN0cmF0ZWd5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk2
MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2Vi
Q2hyb21lQ2xpZW50SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gV2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNsaWVudElPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTc3OTIsNiArNzc5OCwxMCBAQAogCQkJ
CTBGQ0I0RTQxMThCQkUwNDQwMDBGQ0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpD
U2VjdXJpdHlPcmlnaW4ubW0gKi8sCiAJCQkJRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdL
SGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNERCNTRFNTIz
MTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5t
bSAqLywKKwkJCQkyRDI3OUUwRTI2OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIuaCAq
LywKKwkJCQkyRDI3OUUwRjI2OTRDMjI3MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIubW0gKi8s
CisJCQkJMkQyNzlFMTAyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVy
cy5oICovLAorCQkJCTJEMjc5RTExMjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnMubW0gKi8sCiAJCQkJRjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VB
bmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmggKi8sCiAJCQkJRjRCQTMzRjEyNTc1N0U4OTAwMEEz
Q0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTkzM0RG
ODJEMUIzQkMwOTAwMEFFQTlFMyAvKiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi8s
CkBAIC0xMTUyOSw2ICsxMTUzOSw3IEBACiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8q
IEZyb250Qm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUExM0IzREExMjA3RjM5REUwMDkwQzU4
RCAvKiBNb2JpbGVXaUZpU1BJLmggKi8sCiAJCQkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8q
IFBERktpdFNQSS5oICovLAorCQkJCTJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5
cGVUb29sc1NQSS5oICovLAogCQkJCTQ2RjM4RThCMjQxNkU2NkQwMDU5Mzc1QSAvKiBSdW5uaW5n
Qm9hcmRTZXJ2aWNlc1NQSS5oICovLAogCQkJCUNFMUEwQkQwMUE0OEU2QzYwMDU0RUY3NCAvKiBU
Q0NTUEkuaCAqLywKIAkJCQlDRTFBMEJEMTFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJ
LmggKi8sCkBAIC0xMjIzNiw2ICsxMjI0Nyw3IEBACiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5
ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZF
NjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRDI3OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90
eXBlVG9vbHNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZB
NiAvKiBRdWFyYW50aW5lU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBB
MDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBRUU1NzI1MjQwOUYxNDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxv
ZyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKaW5kZXggMTBlNzZjZDI1Yjk3ZTgwZjhhY2Mw
NjEyMzFhZTI1M2RhNTlhMjk1YS4uZjY3MmE3ZjQ0MDgwN2E0ZDNhMDM5ZTQyMDhmMDc4MTBkMWFk
MTNmNyAxMDA2NDQKLS0tIGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0
dGVyIGFuZCBzb21lIGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzc5MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9Q
cm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4KKyAgICAg
ICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1By
b3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJk
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83
L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAg
ICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzgvUHJvdG90eXBlVG9v
bHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisKIDIwMjEtMDYtMTYgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1Nd
IFJlZW5hYmxlIG1vZGVybiB0ZXh0IGlucHV0IFVJIGZvciBub24tbnVtZXJpYyB0ZXh0IGlucHV0
IHR5cGVzCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2FwcGxldHZvcy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBs
ZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wYThiMTQyZjg3ZDY3ODk0NWVlZmJkYWNjNmEyN2IxNGIyNWUyNGNkCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9h
cHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApA
QCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZf
NjQsIGFybTY0IF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNv
bnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB0dm9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAg
ICAgICAgWyB4ODZfNjQsIGFybTY0IF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25S
b3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRT
ZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGlu
Z3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEv
V2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTUv
UHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE4YjE0MmY4N2Q2
Nzg5NDVlZWZiZGFjYzZhMjdiMTRiMjVlMjRjZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE1L1Byb3RvdHlw
ZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0g
IXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCBdCitpbnN0YWxs
LW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9v
bHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0
Zm9ybTogdHZvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02
NCBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0
RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBU
Um93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRlclJvdywgUFRT
Um93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJL
aXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Q
cm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL2lPUy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJk
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdlZWI0MmY2YzFjODQ3NmY5ZjAxOWRjMjczZGI1MWE4YTAzZGE4MzQKLS0t
IC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBA
IC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82
NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJwor
b2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgorICAtIGFyY2hz
OiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAgIG9iamMtY2xhc3Nlczog
ICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQVE1vZHVsZSwgUFRS
ZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dBY3Rpb24sIFBUU2Vj
dGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0Y2hSb3cgXQorLi4u
CmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkIGIvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJvdG90eXBl
VG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWViNDJmNmMx
Yzg0NzZmOWYwMTlkYzI3M2RiNTFhOGEwM2RhODM0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0
TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJvdG90eXBlVG9v
bHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFw
aS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5z
dGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlw
ZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQor
cGxhdGZvcm06IGlvcworZXhwb3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBh
cm02NCwgYXJtNjRlIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3csIFBURG9t
YWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jv
d0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3MsIFBUU2xp
ZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGli
cmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzcvUHJvdG90eXBlVG9v
bHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Q
cm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3ZjdlZGI0MDdiZTJlYmI3MjRjMzYzMmU5
OWIyODY0NGYxNGNjNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQ
cml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy83L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Q
cm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNo
czogICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwgYXJt
djdrIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNvbnN0cmFp
bnQ6IG5vbmUKK3BsYXRmb3JtOiB3YXRjaG9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAg
ICAgWyBpMzg2LCB4ODZfNjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQorICAg
IG9iamMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93
LCBQVE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRS
b3dBY3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRT
d2l0Y2hSb3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvOC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90
eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lZDdmN2VkYjQwN2JlMmViYjcyNGMzNjMyZTk5YjI4NjQ0ZjE0Y2M0Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApA
QCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyBpMzg2
LCB4ODZfNjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQoraW5zdGFsbC1uYW1l
OiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xzLmZy
YW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06
IHdhdGNob3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4Nl82NCwg
YXJtNjQsIGFybTY0ZSwgYXJtNjRfMzIsIGFybXY3ayBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBb
IFBUQnV0dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3Rv
cmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9u
LCBQVFNldHRpbmdzLCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433096</attachid>
            <date>2021-07-07 17:24:06 -0700</date>
            <delta_ts>2021-07-07 21:49:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210707172405.patch</filename>
            <type>text/plain</type>
            <size>59236</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5jNTQyNWMzNzIyZTc0NGEyNGQ4NjJj
ODZjZmMzNGQ0MTg4ODI5N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oOgorCiAyMDIxLTA3LTAxICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFBDTTogQ2hhbmdlIGltcG9ydCBmcm9tIENyeXB0b0tpdENCcmlkZ2luZyB0byBD
cnlwdG9LaXRQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2QyZmMwZTM0ZDZiMjI0
ZmY5YjVhNjk5NDMuLjU3MDNjZWI1NzJlYTJiNjY0MzJlNGY2Y2MxMWExMzJlZDA0ZWYyMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0dGVyIGFuZCBzb21l
IGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5
MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAgICogUGxhdGZvcm0vc3BpL2lv
cy9Qcm90b3R5cGVUb29sc1NQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBy
b290Q29udGVudFZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAg
SW5zdGFsbCBhbmQgdW5pbnN0YWxsIHRoZSBwbGF0dGVyIGFsb25nc2lkZSB0aGUgZ2VzdHVyZXMg
dGhhdCBkcml2ZSBpdC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG1vdXNlR2VzdHVyZVJl
Y29nbml6ZXJDaGFuZ2VkOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhvdmVyR2VzdHVy
ZVJlY29nbml6ZXJDaGFuZ2VkOl0pOgorICAgICAgICBXaGVuIHRoZSBnZXN0dXJlIHJlY29nbml6
ZXJzIGZpcmUsIGFsc28gdXBkYXRlIHRoZSBob3ZlciBwb2ludC4KKworICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6d2l0aFJlcXVlc3Q6
Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxh
dHRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLm1t
OiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZUJhc2VBbmltYXRpb24pOgorICAgICAgICAoYWRkQW5p
bWF0aW9uKToKKyAgICAgICAgKHNldEFkZGl0aW9uYWxQbGF0dGVyTGF5ZXJQcm9wZXJ0aWVzKToK
KyAgICAgICAgKGFkZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMpOgorICAgICAgICAoYWRk
QWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMpOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRl
ciBpbml0V2l0aFZpZXc6ZGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGlu
dmFsaWRhdGVdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgaG92ZXJQb2ludF0pOgorICAg
ICAgICAoLVtXS0hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50Ol0pOgorICAgICAgICAoLVtXS0hv
dmVyUGxhdHRlciByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaXNtaXNzUGxhdHRlcldpdGhBbmlt
YXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpZEZpbmlzaEFuaW1hdGlvbkZv
clNoYWRvdzpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgY2xlYXJMYXllcnNdKToKKyAg
ICAgICAgQW5pbWF0ZSB0aGUgcGxhdHRlciBpbiBhbmQgb3V0LCBhbmQgb3B0aW9uYWxseSBiZXR3
ZWVuIHN0YXRlcywgYXMgdGhlIGhvdmVyIHBvaW50IG1vdmVzLgorICAgICAgICBVc2UgdGhlIFRl
eHRJbmRpY2F0b3IncyBnZW9tZXRyeSBpbmZvcm1hdGlvbiwgYnV0IG5vdCBpdHMgc25hcHNob3Q7
IHdlIHVzZSBhCisgICAgICAgIENBUG9ydGFsTGF5ZXIgZm9yIHRoZSBwbGF0dGVyIGluc3RlYWQu
IEEgZnV0dXJlIHBhdGNoIHdpbGwgYXZvaWQgdGFraW5nIHRoZSBzbmFwc2hvdAorICAgICAgICBl
bnRpcmVseSwgc2luY2Ugd2UgY2FsbCBzZXRIb3ZlclBvaW50IChhbmQgdGh1cyBnZW5lcmF0ZSBh
IFRleHRJbmRpY2F0b3IpIGEgKmxvdCoKKyAgICAgICAgd2hlbiBtb3ZpbmcgdGhlIG1vdXNlIGFy
b3VuZCwgYW5kIGFsbCB0aG9zZSBzbmFwc2hvdHMgYWRkIHVwLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW06IEFkZGVkLgorICAgICAgICAo
LVtQVFNsaWRlclJvdyBpbnRlZ2VyTWluVmFsdWU6bWF4VmFsdWU6XSk6CisgICAgICAgICgtW1dL
SG92ZXJQbGF0dGVyUGFyYW1ldGVycyBzZXREZWZhdWx0VmFsdWVzXSk6CisgICAgICAgICgrW1dL
SG92ZXJQbGF0dGVyUGFyYW1ldGVycyBzZXR0aW5nc0NvbnRyb2xsZXJNb2R1bGVdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gcm9vdFNldHRpbmdzXSk6CisgICAgICAgICgrW1dL
SG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbkdyb3VwTmFtZV0pOgorICAgICAgICAoK1tXS0hvdmVy
UGxhdHRlckRvbWFpbiBkb21haW5OYW1lXSk6CisgICAgICAgICgrW1dLSG92ZXJQbGF0dGVyRG9t
YWluIHJvb3RTZXR0aW5nc0NsYXNzXSk6CisgICAgICAgIEFkZCBzb21lIGtub2JzLCB3aXRoIHJl
YXNvbmFibGUgZGVmYXVsdHMsIGZvciBleHBlcmltZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNy0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiBp
biB0aGUgbmV0d29yayBwcm9jZXNzIHdoZW4gaG9sZGluZyBsb2NrZWQgZmlsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCAwYjBi
MDVmODZmZDQwM2QxYzg3YTY0MDBmN2FiNDg5ZTAxMmRjMmZiLi5jYTk2YmFhNjdmNjRmNjZiZWI0
MDkzMjRiZGUzNWU0MzQzNTJhN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC0xNjMsNiArMTYzLDEyIEBAIHR5cGVkZWYgZW51
bSB7CiAtIChmbG9hdClfc29sdmVGb3JJbnB1dDooZmxvYXQpdDsKIEBlbmQKIAorQGludGVyZmFj
ZSBDQVBvcnRhbExheWVyIDogQ0FMYXllcgorQHByb3BlcnR5ICh3ZWFrKSBDQUxheWVyICpzb3Vy
Y2VMYXllcjsKK0Bwcm9wZXJ0eSBCT09MIG1hdGNoZXNQb3NpdGlvbjsKK0Bwcm9wZXJ0eSBCT09M
IG1hdGNoZXNUcmFuc2Zvcm07CitAZW5kCisKICNlbmRpZiAvLyBfX09CSkNfXwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
IGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXggOWY3
Y2NlNTEzN2NlNmZmZjI0YzA1YjY3NjE2YzBkNjBmM2YxZWE1MS4uZGRmODBiNjI0NmU4NzBmNDY2
N2YwNDIwNzM5NGNlMDc1MzI2NjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9XZWJLaXQueGNjb25maWcKQEAgLTkzLDYgKzkzLDkgQEAgV0tfUERGS0lUX0xERkxBR1NfaXBo
b25lc2ltdWxhdG9yW3Nkaz1pcGhvbmUqMTEuKl0gPSA7CiBXS19QREZLSVRfTERGTEFHU19tYWNj
YXRhbHlzdCA9ICQoV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3QkKFdLX01BQ09TXzExMDAp
KTsKIFdLX1BERktJVF9MREZMQUdTX21hY2NhdGFseXN0X01BQ09TX1NJTkNFXzExMDAgPSAkKFdL
X1BERktJVF9MREZMQUdTX2lwaG9uZW9zKTsKIAorV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1Mg
PSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK1dLX1BS
T1RPVFlQRV9UT09MU19MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFByb3RvdHlwZVRv
b2xzOworCiBXS19TQUZFX0JST1dTSU5HX0xERkxBR1MgPSAkKFdLX1NBRkVfQlJPV1NJTkdfTERG
TEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19pcGhv
bmVvcyA9IC1mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOwogV0tfU0FGRV9CUk9XU0lOR19M
REZMQUdTX2lwaG9uZW9zW3Nkaz1pcGhvbmUqMTAuKl0gPSA7CkBAIC0xNDMsNyArMTQ2LDcgQEAg
V0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWxuZXR3b3JrZXh0
ZW5zaW9uOwogV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY29zeCA9IC13ZWFrX2xp
YnJhcnkgL3Vzci9saWIvbGlibmV0d29ya2V4dGVuc2lvbi5keWxpYjsKIFdLX0xJQk5FVFdPUktF
WFRFTlNJT05fTERGTEFHU190dm9zID0gOwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1s
bmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdL
X0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JV
Tk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19D
QVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19MSUJT
QU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVf
U0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJ
VF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRF
UkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVO
VElGSUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5T
UEVDVE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKK0ZSQU1FV09SS19B
TkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3Jh
cGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29y
ayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29y
ayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklM
SVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJ
VF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQo
V0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9M
REZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykg
JChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xE
RkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1Mp
ICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZM
QUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xE
RkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9M
REZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOwogCiAvLyBQcmV2ZW50IEMrKyBzdGFu
ZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5k
IHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2Vh
ayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2Fs
bG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hh
cl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9F
RSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0
cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2lj
X2lvc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzEx
OGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNF
RUVFMTZfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUVE5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVO
U185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19f
MTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VF
RUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdz
dHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFj
aGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1My
X0VFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1Byb3RvdHlw
ZVRvb2xzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUHJvdG90eXBlVG9v
bHNTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMzMwNDA4ZDkyMjBiY2Y1N2U2ODEzZWM4NWRmY2Q1YzllY2Zm
ZWY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1By
b3RvdHlwZVRvb2xzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxQcm90b3R5cGVUb29scy9Qcm90b3R5cGVU
b29scy5oPgorCisjZWxzZQorCitAaW50ZXJmYWNlIFBUU2V0dGluZ3MgOiBOU09iamVjdCA8TlND
b3B5aW5nPgorLSAodm9pZClzZXREZWZhdWx0VmFsdWVzOworQGVuZAorCitAaW50ZXJmYWNlIFBU
RG9tYWluIDogTlNPYmplY3QKKysgKF9fa2luZG9mIFBUU2V0dGluZ3MgKilyb290U2V0dGluZ3M7
CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTZWN0aW9uIDogTlNPYmplY3QKK0BlbmQKKworQGludGVy
ZmFjZSBQVE1vZHVsZSA6IE5TT2JqZWN0CisrIChpbnN0YW5jZXR5cGUpbW9kdWxlV2l0aFRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIGNvbnRlbnRzOihOU0FycmF5ICopY29udGVudHM7CisrIChQVFNl
Y3Rpb24gKilzZWN0aW9uV2l0aFJvd3M6KE5TQXJyYXkgKilyb3dzIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlOworKyAoUFRTZWN0aW9uICopc2VjdGlvbldpdGhSb3dzOihOU0FycmF5ICopcm93czsK
K0BlbmQKKworQGludGVyZmFjZSBQVFJvdyA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJl
Q29kaW5nPgorKyAoaW5zdGFuY2V0eXBlKXJvd1dpdGhUaXRsZTooTlNTdHJpbmcgKilzdGF0aWNU
aXRsZSB2YWx1ZUtleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aDsKKy0gKGlkKXZhbHVlVmFsaWRh
dG9yOihpZCheKShpZCBwcm9wb3NlZFZhbHVlLCBpZCBzZXR0aW5ncykpdmFsaWRhdG9yOworLSAo
aWQpY29uZGl0aW9uOihOU1ByZWRpY2F0ZSAqKWNvbmRpdGlvbjsKK0BlbmQKKworQGludGVyZmFj
ZSBQVFNSb3cgOiBQVFJvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU3dpdGNoUm93IDogUFRTUm93
CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTbGlkZXJSb3cgOiBQVFNSb3cKKy0gKGlkKW1pblZhbHVl
OihDR0Zsb2F0KW1pblZhbHVlIG1heFZhbHVlOihDR0Zsb2F0KW1heFZhbHVlOworQGVuZAorCitA
aW50ZXJmYWNlIFBURWRpdEZsb2F0Um93IDogUFRTUm93CitAZW5kCisKK0BpbnRlcmZhY2UgUFRS
b3dBY3Rpb24gOiBOU09iamVjdAorQGVuZAorCitAaW50ZXJmYWNlIFBUUmVzdG9yZURlZmF1bHRT
ZXR0aW5nc1Jvd0FjdGlvbiA6IFBUUm93QWN0aW9uCisrIChpbnN0YW5jZXR5cGUpYWN0aW9uOwor
QGVuZAorCitAaW50ZXJmYWNlIFBUQnV0dG9uUm93IDogUFRTUm93CisrIChpbnN0YW5jZXR5cGUp
cm93V2l0aFRpdGxlOihOU1N0cmluZyAqKXN0YXRpY1RpdGxlIGFjdGlvbjooUFRSb3dBY3Rpb24g
KilhY3Rpb247CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDQwNTBj
NDAzYzQ2ZDU2NGMyZTk4M2M1ZjI2NTU1MWM2OTc1Y2U4ZmQuLmU2ZjZjMGRiN2QyYTYxOTAwOThj
ZGY4OTcxZjJiYzAyM2IyZmY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ4OSw2ICs0
ODksOCBAQCBVSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbQogVUlQcm9jZXNzL2lv
cy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tCitVSVByb2Nlc3MvaW9z
L1dLSG92ZXJQbGF0dGVyLm1tCitVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVy
cy5tbQogVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbQog
VUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0KIFVJUHJvY2Vzcy9p
b3MvV0tNb2RlbEludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDA5NTA4NmNkMWY5ZDVmNjlmN2E3
YWUxOThlZjlhOWZjZTBjNGJmZjAuLjc2MDY1OTA0N2QxYWEyYjVkZjdhZWU0MGQxNDE0ZGEzOWE0
MTZjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApA
QCAtOTQsNiArOTQsNyBAQCBlbnVtIGNsYXNzIFZpZXdTdGFiaWxpdHlGbGFnIDogdWludDhfdDsK
IC0gKHZvaWQpX3dlYlZpZXdEZXN0cm95ZWQ7CiAKIC0gKFdLV2ViVmlldyAqKXdlYlZpZXc7Cist
IChVSVZpZXcgKilyb290Q29udGVudFZpZXc7CiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6
OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OihXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eSYpcHJvY2VzczsKIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2YjA0OWI0MDdiMTIx
ZTg5MzA0MmRmMzlhMTUxZmM5NjI5MTBlYTJkLi45Yzk2MzFiMTgwZjZkNTIzYTM5NzA1YzczZTQw
ZTIwOGY2ZmRkMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbQpAQCAtMzI2LDYgKzMyNiwxMSBAQCAtIChXS1dlYlZpZXcgKil3ZWJWaWV3CiAgICAg
cmV0dXJuIF93ZWJWaWV3LmdldEF1dG9yZWxlYXNlZCgpOwogfQogCistIChVSVZpZXcgKilyb290
Q29udGVudFZpZXcKK3sKKyAgICByZXR1cm4gX3Jvb3RDb250ZW50Vmlldy5nZXQoKTsKK30KKwog
LSAodm9pZCl3aWxsTW92ZVRvV2luZG93OihVSVdpbmRvdyAqKW5ld1dpbmRvdwogewogICAgIFtz
dXBlciB3aWxsTW92ZVRvV2luZG93Om5ld1dpbmRvd107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMzU2YjMz
MzI2MjhlZTFjNTJlYWY2YWNlMGQwMDNjODBjNWI2MTliNC4uMjZhMWUyZGVmYTExNTE0MzU1MTQ4
ZGVlNWRhZGNkOWMxN2E0MjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzksNiArMzksNyBAQAogI2lt
cG9ydCAiVGV4dENoZWNraW5nQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVHJhbnNhY3Rpb25JRC5o
IgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyLmgiCiAjaW1w
b3J0IDxXZWJLaXQvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
QWlyUGxheVJvdXRlUGlja2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250YWN0UGlja2VyLmg+
CkBAIC0yOTUsNiArMjk2LDEwIEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgUmV0YWlu
UHRyPFdLSG92ZXJHZXN0dXJlUmVjb2duaXplcj4gX2hvdmVyR2VzdHVyZVJlY29nbml6ZXI7CiAj
ZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9W
RVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIFJldGFpblB0cjxXS0hvdmVyUGxhdHRlcj4gX2hv
dmVyUGxhdHRlcjsKKyNlbmRpZgorCiAjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKICAg
ICBSZXRhaW5QdHI8VUlJbmRpcmVjdFNjcmliYmxlSW50ZXJhY3Rpb24+IF9zY3JpYmJsZUludGVy
YWN0aW9uOwogI2VuZGlmCkBAIC01MjYsNiArNTMxLDkgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1Jl
cXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElk
ZW4KICAgICAsIFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdhdGUsIFVJRHJvcEludGVyYWN0aW9uRGVs
ZWdhdGUKICNlbmRpZgogICAgICwgV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyRGVsZWdh
dGUKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dF
U1RVUkVfUkVDT0dOSVpFUikKKyAgICAsIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKKyNlbmRpZgog
PgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQgbGFzdEludGVyYWN0
aW9uTG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAzN2U2YjM3OWNiZjJjN2ZkNGI5MmU4YWVi
Mjc1NDM1ZjM3NDg4ZjQwLi4xZDdjYTU5NDRmOGZmNGM5MTdmZjhkOGM1ZjU5ZWNmMjliZDhkYjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTU2LDYgKzU2LDggQEAKICNpbXBvcnQgIldLRm9ybVNlbGVj
dENvbnRyb2wuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
SGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQ
bGF0dGVyLmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKICNpbXBvcnQg
IldLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS0ltYWdlUHJl
dmlld1ZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0
dXJlUmVjb2duaXplci5oIgpAQCAtMTI4LDYgKzEzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VU
SVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNB
TGF5ZXJFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViVGV4dEluZGljYXRvckxheWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdE
aXJlY3Rpb24uaD4KQEAgLTEzNiw2ICsxMzksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9E
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2
aWNlc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9pb3MvRGF0YURldGVjdG9yc1VJU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFw
aGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJh
dGlvblNQSS5oPgpAQCAtODk0LDYgKzg5OCwxMCBAQCAtICh2b2lkKXNldFVwSW50ZXJhY3Rpb24K
ICAgICBbc2VsZiBzZXRVcEhvdmVyR2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVD
T0dOSVpFUikKKyAgICBfaG92ZXJQbGF0dGVyID0gYWRvcHROUyhbW1dLSG92ZXJQbGF0dGVyIGFs
bG9jXSBpbml0V2l0aFZpZXc6c2VsZi5yb290Q29udGVudFZpZXcgZGVsZWdhdGU6c2VsZl0pOwor
I2VuZGlmCisKICNpZiBIQVZFKExPT0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgX2xvb2t1
cEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW19VSUxvb2t1cEdlc3R1cmVSZWNvZ25pemVy
IGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2xvb2t1cEdlc3R1
cmVSZWNvZ25pemVkOildKTsKICAgICBbX2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVn
YXRlOnNlbGZdOwpAQCAtMTA4MSw2ICsxMDg5LDExIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0
aW9uCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2hvdmVyR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOwogI2VuZGlmCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hvdmVyUGxhdHRl
ciBpbnZhbGlkYXRlXTsKKyAgICBfaG92ZXJQbGF0dGVyID0gbmlsOworI2VuZGlmCisKICNpZiBI
QVZFKExPT0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgW19sb29rdXBHZXN0dXJlUmVjb2du
aXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVy
Ol9sb29rdXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC00NzQwLDYgKzQ3NTMsMTAgQEAg
LSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogICAgIF9hY3RpdmVUZXh0SW50ZXJh
Y3Rpb25Db3VudCA9IDA7CiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0
b3JTdGF0ZVVwZGF0ZSA9IE5POwogICAgIFtzZWxmIF9pbnZhbGlkYXRlQ3VycmVudFBvc2l0aW9u
SW5mb3JtYXRpb25dOworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgW19ob3ZlclBsYXR0ZXIgZGlzbWlz
c1BsYXR0ZXJXaXRoQW5pbWF0aW9uOk5PXTsKKyNlbmRpZgogfQogCiAjaWYgIVVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpCkBAIC05NTAyLDYgKzk1MTksOCBAQCAtICh2b2lkKW1vdXNlR2Vz
dHVyZVJlY29nbml6ZXJDaGFuZ2VkOihXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaQogICAgICAgICBbc2VsZi53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICAgICBfcGFn
ZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxhdHRlckRvbWFp
bi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JNb3VzZSkKKyAgICAgICAgW19ob3ZlclBs
YXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKIC0gKHZvaWQpX2Nv
bmZpZ3VyZU1vdXNlR2VzdHVyZVJlY29nbml6ZXIKQEAgLTk1MzYsMTAgKzk1NTUsMjEgQEAgLSAo
dm9pZClob3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDooV0tIb3Zlckdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbmkKICAgICAgICAgcmV0dXJuOwogCiAgICAgX3BhZ2UtPmhhbmRs
ZU1vdXNlRXZlbnQoKmV2ZW50KTsKKyAgICBpZiAoV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNl
dHRpbmdzLnBsYXR0ZXJFbmFibGVkRm9ySG92ZXIpCisgICAgICAgIFtfaG92ZXJQbGF0dGVyIHNl
dEhvdmVyUG9pbnQ6ZXZlbnQtPnBvc2l0aW9uKCldOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEhP
VkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCistICh2b2lkKXBvc2l0
aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92ZXJQbGF0dGVyICopaG92ZXJQbGF0
dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jily
ZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtzZWxmIGRvQWZ0
ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOmNvbXBsZXRpb25IYW5kbGVyIGZvclJlcXVlc3Q6
cmVxdWVzdF07Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKV9zaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczoo
VmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5Y2Q2YmY0
ZjJjMjJhMTAwZjQxMjM0MGM1ZmM2YTMwNzQ1ZWNmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFC
TEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCitAY2xhc3MgV0tIb3ZlclBsYXR0ZXI7CisK
K0Bwcm90b2NvbCBXS0hvdmVyUGxhdHRlckRlbGVnYXRlCisKK0ByZXF1aXJlZAorLSAodm9pZClw
b3NpdGlvbkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0dGVyOihXS0hvdmVyUGxhdHRlciAqKWhvdmVy
UGxhdHRlciB3aXRoUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworQGlu
dGVyZmFjZSBXS0hvdmVyUGxhdHRlciA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFZpZXc6KFVJVmlldyAqKXZpZXcgZGVsZWdhdGU6KGlkIDxXS0hvdmVyUGxhdHRlckRlbGVn
YXRlPilkZWxlZ2F0ZTsKKworLSAodm9pZClkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246KEJP
T0wpd2l0aEFuaW1hdGlvbjsKKworLSAodm9pZClpbnZhbGlkYXRlOworCitAcHJvcGVydHkgKG5v
bmF0b21pYywgYXNzaWduKSBXZWJDb3JlOjpGbG9hdFBvaW50IGhvdmVyUG9pbnQ7CisKK0BlbmQK
KworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9W
RVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLSG92ZXJQbGF0dGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNTgzOTgwZTYxZTcwYjEwNzFiYjFmZjUwNjNi
ZGE2ODA2MjU3MDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tIb3ZlclBsYXR0ZXIubW0KQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyLmgiCisKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpF
UikKKworI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxXZWJD
b3JlL1BhdGhVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRy
YXMuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorCitzdGF0aWMg
UmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IGNyZWF0ZUJhc2VBbmltYXRpb24oKQoreworICAg
IGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAg
ICBpZiAocGFyYW1ldGVycy51c2VTcHJpbmcpIHsKKyAgICAgICAgYXV0byBzcHJpbmcgPSBhZG9w
dE5TKFtbQ0FTcHJpbmdBbmltYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW3NwcmluZyBz
ZXRNYXNzOnBhcmFtZXRlcnMuc3ByaW5nTWFzc107CisgICAgICAgIFtzcHJpbmcgc2V0U3RpZmZu
ZXNzOnBhcmFtZXRlcnMuc3ByaW5nU3RpZmZuZXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXREYW1w
aW5nOnBhcmFtZXRlcnMuc3ByaW5nRGFtcGluZ107CisgICAgICAgIFtzcHJpbmcgc2V0RmlsbE1v
ZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOworICAgICAgICBbc3ByaW5nIHNldER1cmF0aW9uOltz
cHJpbmcgc2V0dGxpbmdEdXJhdGlvbl1dOworICAgICAgICByZXR1cm4gc3ByaW5nOworICAgIH0K
KworICAgIGF1dG8gZWFzZSA9IGFkb3B0TlMoW1tDQUJhc2ljQW5pbWF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgW2Vhc2Ugc2V0RmlsbE1vZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOworICAgIFtl
YXNlIHNldER1cmF0aW9uOnBhcmFtZXRlcnMuZHVyYXRpb25dOworICAgIFtlYXNlIHNldFRpbWlu
Z0Z1bmN0aW9uOltDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRp
YVRpbWluZ0Z1bmN0aW9uRWFzZUluXV07CisgICAgcmV0dXJuIGVhc2U7Cit9CisKK3N0YXRpYyB2
b2lkIGFkZEFuaW1hdGlvbihDQUxheWVyICpsYXllciwgTlNTdHJpbmcgKmtleSwgaWQgZnJvbVZh
bHVlLCBpZCB0b1ZhbHVlKQoreworICAgIGF1dG8gYW5pbWF0aW9uID0gY3JlYXRlQmFzZUFuaW1h
dGlvbigpOworICAgIFthbmltYXRpb24gc2V0S2V5UGF0aDprZXldOworICAgIFthbmltYXRpb24g
c2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07CisgICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOnRvVmFs
dWVdOworICAgIFtsYXllciBzZXRWYWx1ZTp0b1ZhbHVlIGZvcktleTprZXldOworICAgIFtsYXll
ciBhZGRBbmltYXRpb246YW5pbWF0aW9uLmdldCgpIGZvcktleTprZXldOworfTsKKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBs
YXR0ZXJBZGRpdGlvbnMubW0+CisjZWxzZQorc3RhdGljIENHRmxvYXQgc2V0QWRkaXRpb25hbFBs
YXR0ZXJMYXllclByb3BlcnRpZXMoQ0FMYXllciAqLCBDQUxheWVyICopIHsgcmV0dXJuIDA7IH0K
K3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMoQ0FMYXllciAqLCBD
R0Zsb2F0KSB7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25z
KENBTGF5ZXIgKikgeyB9CisjZW5kaWYKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVy
IHsKKyAgICBfX3dlYWsgVUlWaWV3ICpfdmlldzsKKyAgICBfX3dlYWsgaWQgPFdLSG92ZXJQbGF0
dGVyRGVsZWdhdGU+IF9kZWxlZ2F0ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IF9ob3ZlclBv
aW50OworCisgICAgQk9PTCBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDsKKyAgICBCT09MIF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OworCisg
ICAgQk9PTCBfaXNTaXR0aW5nRG93bjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBfbGFzdEhv
dmVyQm91bmRzOworCisgICAgUmV0YWluUHRyPENBU2hhcGVMYXllcj4gX2xhc3RNYXNrTGF5ZXI7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0U2hhZG93TGF5ZXI7CisgICAgUmV0YWluUHRy
PENBTGF5ZXI+IF9sYXN0UGxhdHRlckxheWVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfbGFz
dEJhY2tncm91bmRMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FQb3J0YWxMYXllcj4gX2xhc3RTbmFw
c2hvdExheWVyOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2
aWV3IGRlbGVnYXRlOihpZCA8V0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7Cisg
ICAgaWYgKCFwYXJhbWV0ZXJzLnBsYXR0ZXJFbmFibGVkRm9yTW91c2UgJiYgIXBhcmFtZXRlcnMu
cGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgX3ZpZXcgPSB2aWV3OworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQoreworICAgIFtzZWxmIGRpc21pc3NQbGF0
dGVyV2l0aEFuaW1hdGlvbjpOT107CisgICAgX3ZpZXcgPSBuaWw7CisgICAgX2RlbGVnYXRlID0g
bmlsOworfQorCistIChXZWJDb3JlOjpGbG9hdFBvaW50KWhvdmVyUG9pbnQKK3sKKyAgICByZXR1
cm4gX2hvdmVyUG9pbnQ7Cit9CisKKy0gKHZvaWQpc2V0SG92ZXJQb2ludDooV2ViQ29yZTo6Rmxv
YXRQb2ludClwb2ludAoreworICAgIF9ob3ZlclBvaW50ID0gcG9pbnQ7CisKKyAgICBpZiAoX2hh
c091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpIHsKKyAgICAgICAgX2hhc0Rl
ZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBZRVM7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBbc2VsZiByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRI
b3ZlclBvaW50XTsKK30KKworLSAodm9pZClyZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1
cnJlbnRIb3ZlclBvaW50Cit7CisgICAgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJl
cXVlc3QgPSBOTzsKKyAgICBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCA9IFlFUzsKKyAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHBvc2l0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KF9ob3ZlclBv
aW50KSB9OworICAgIC8vIEZJWE1FOiBUaGlzIFRleHRJbmRpY2F0b3IgZG9lc24ndCBuZWVkIGEg
c25hcHNob3QgKGFuZCBhdm9pZGluZyBpdCB3b3VsZCBiZSBhIHNpemFibGUgcGVyZm9ybWFuY2Ug
d2luKS4KKyAgICBwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5pbmNsdWRlTGlua0luZGljYXRv
ciA9IFlFUzsKKyAgICBbX2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0
ZXI6c2VsZiB3aXRoUmVxdWVzdDpwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCBjb21wbGV0aW9u
SGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0hvdmVyUGxhdHRlcj4oc2VsZildIChX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7Cisg
ICAgICAgIFt3ZWFrU2VsZiBkaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbjppbmZvcm1hdGlv
bl07CisgICAgfV07Cit9CisKKy0gKHZvaWQpZGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb246
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0
aW9uCit7CisgICAgX2hhc091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBO
TzsKKyAgICBpZiAoX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpCisgICAg
ICAgIFtzZWxmIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVyUG9pbnRd
OworCisgICAgYXV0byBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgPSBpbmZvcm1hdGlvbi5saW5r
SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgaWYg
KHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJvdW5kczsKKworICAgIGlmICghaW5mb3JtYXRp
b24uaXNMaW5rIHx8IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgX2xhc3RIb3ZlckJvdW5kcyA9IHsgfTsKKyAgICAgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJX
aXRoQW5pbWF0aW9uOllFU107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoX2xh
c3RIb3ZlckJvdW5kcyA9PSBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgJiYgIV9pc1NpdHRpbmdE
b3duKQorICAgICAgICByZXR1cm47CisgICAgX2xhc3RIb3ZlckJvdW5kcyA9IHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdDsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9t
YWluLnJvb3RTZXR0aW5nczsKKyAgICBhdXRvIGFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMgPSBwYXJh
bWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnM7CisgICAgaWYgKCFhbmltYXRlQmV0d2VlblBs
YXR0ZXJzKQorICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246WUVTXTsK
KworICAgIF9pc1NpdHRpbmdEb3duID0gZmFsc2U7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
Ym91bmRpbmdSZWN0OworICAgIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IGluZmxhdGVkSW5k
aWNhdGVkUmVjdHM7CisgICAgYXV0byBpbmRpY2F0ZWRSZWN0cyA9IGluZm9ybWF0aW9uLmxpbmtJ
bmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKKyAgICBhdXRvIHBs
YXR0ZXJQYWRkaW5nID0gcGFyYW1ldGVycy5wbGF0dGVyUGFkZGluZzsKKyAgICBpZiAoaW5kaWNh
dGVkUmVjdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGJvdW5kaW5nUmVjdCA9IHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdDsKKyAgICAgICAgYm91bmRpbmdSZWN0LmluZmxhdGUocGxhdHRlclBhZGRp
bmcpOworICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChwcmVJbmZsYXRpb25C
b3VuZGluZ1JlY3QpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoYXV0byByZWN0IDogaW5k
aWNhdGVkUmVjdHMpIHsKKyAgICAgICAgICAgIHJlY3QuaW5mbGF0ZShwbGF0dGVyUGFkZGluZyk7
CisgICAgICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChyZWN0KTsKKyAgICAg
ICAgICAgIGJvdW5kaW5nUmVjdC51bml0ZShyZWN0KTsKKyAgICAgICAgfQorICAgICAgICBib3Vu
ZGluZ1JlY3QubW92ZUJ5KHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5sb2NhdGlvbigpKTsKKyAg
ICB9CisKKyAgICBhdXRvIGluZmxhdGVkUGF0aCA9IFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBh
dGhXaXRoU2hyaW5rV3JhcHBlZFJlY3RzKGluZmxhdGVkSW5kaWNhdGVkUmVjdHMsIHBhcmFtZXRl
cnMucGxhdHRlckNvcm5lclJhZGl1cykucGxhdGZvcm1QYXRoKCk7CisgICAgYXV0byBwbGF0dGVy
SW5mbGF0aW9uU2l6ZSA9IHBhcmFtZXRlcnMucGxhdHRlckluZmxhdGlvblNpemU7CisgICAgQ0dG
bG9hdCBwbGF0dGVyU2NhbGUgPSBDR0Zsb2F0TWluKChib3VuZGluZ1JlY3Qud2lkdGgoKSArIHBs
YXR0ZXJJbmZsYXRpb25TaXplKSAvIGJvdW5kaW5nUmVjdC53aWR0aCgpLCAoYm91bmRpbmdSZWN0
LmhlaWdodCgpICsgcGxhdHRlckluZmxhdGlvblNpemUpIC8gYm91bmRpbmdSZWN0LmhlaWdodCgp
KTsKKworICAgIC8vIEZJWE1FOiBDb25zaWRlciB1c2luZyBVSUtpdCdzIGluLXByb2Nlc3MgcmV0
YXJnZXRhYmxlIGFuaW1hdGlvbnMsIGJlY2F1c2UgcmVhZGluZyBhbmltYXRpb24gc3RhdGUgZnJv
bSB0aGUgcHJlc2VudGF0aW9uIGxheWVyIGlzIHJhY3kuCisgICAgYm9vbCBoYWRPbGRMYXllcnMg
PSAhIV9sYXN0U2hhZG93TGF5ZXI7CisgICAgQ0dSZWN0IG9sZFNoYWRvd0JvdW5kcyA9IFtfbGFz
dFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRT
aGFkb3dQb3NpdGlvbiA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3Np
dGlvbjsKKyAgICBDR0Zsb2F0IG9sZFNoYWRvd09wYWNpdHkgPSBbX2xhc3RTaGFkb3dMYXllciBw
cmVzZW50YXRpb25MYXllcl0uc2hhZG93T3BhY2l0eTsKKyAgICBDR0Zsb2F0IG9sZFNoYWRvd1Jh
ZGl1cyA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5zaGFkb3dSYWRpdXM7
CisgICAgQ0FUcmFuc2Zvcm0zRCBvbGRTaGFkb3dTdWJsYXllclRyYW5zZm9ybSA9IF9sYXN0U2hh
ZG93TGF5ZXIgPyBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uc3VibGF5ZXJU
cmFuc2Zvcm0gOiBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CisgICAgUmV0YWluUHRyPENHUGF0aFJl
Zj4gb2xkU2hhZG93UGF0aCA9IFtfbGFzdFNoYWRvd0xheWVyIHByZXNlbnRhdGlvbkxheWVyXS5z
aGFkb3dQYXRoOworICAgIFJldGFpblB0cjxDQUxheWVyPiBzaGFkb3cgPSBfbGFzdFNoYWRvd0xh
eWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBzaGFkb3dG
cmFtZSA9IENHUmVjdE9mZnNldChib3VuZGluZ1JlY3QsIHBsYXR0ZXJQYWRkaW5nLCBwbGF0dGVy
UGFkZGluZyk7CisgICAgW3NoYWRvdyBzZXRGcmFtZTpzaGFkb3dGcmFtZV07CisgICAgW3NoYWRv
dyBzZXRTaGFkb3dDb2xvcjpVSUNvbG9yLmJsYWNrQ29sb3IuQ0dDb2xvcl07CisgICAgW3NoYWRv
dyBzZXRTaGFkb3dSYWRpdXM6cGFyYW1ldGVycy5wbGF0dGVyU2hhZG93UmFkaXVzXTsKKyAgICBb
c2hhZG93IHNldFNoYWRvd09mZnNldDpDR1NpemVaZXJvXTsKKyAgICBbc2hhZG93IHNldFNoYWRv
d09wYWNpdHk6cGFyYW1ldGVycy5wbGF0dGVyU2hhZG93T3BhY2l0eV07CisgICAgW3NoYWRvdyBz
ZXRTdWJsYXllclRyYW5zZm9ybTpDQVRyYW5zZm9ybTNETWFrZVNjYWxlKHBsYXR0ZXJTY2FsZSwg
cGxhdHRlclNjYWxlLCAxKV07CisgICAgW3NoYWRvdyBzZXRTaGFkb3dQYXRoOmluZmxhdGVkUGF0
aC5nZXQoKV07CisgICAgW3NoYWRvdyB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworICAgIFtbW192
aWV3IHN1cGVydmlld10gbGF5ZXJdIGFkZFN1YmxheWVyOnNoYWRvdy5nZXQoKV07CisKKyAgICBD
R1JlY3Qgb2xkUGxhdHRlckJvdW5kcyA9IFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25M
YXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkUGxhdHRlclBvc2l0aW9uID0gW19sYXN0UGxh
dHRlckxheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBSZXRhaW5QdHI8Q0FM
YXllcj4gcGxhdHRlciA9IF9sYXN0UGxhdHRlckxheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFs
bG9jXSBpbml0XSk7CisgICAgW3BsYXR0ZXIgc2V0Qm91bmRzOkNHUmVjdE1ha2UoMCwgMCwgYm91
bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFtwbGF0dGVy
IHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKHNoYWRvd0ZyYW1lLnNpemUud2lkdGggLyAyIC0gcGxh
dHRlclBhZGRpbmcsIHNoYWRvd0ZyYW1lLnNpemUuaGVpZ2h0IC8gMiAtIHBsYXR0ZXJQYWRkaW5n
KV07CisgICAgYXV0byBvbGRQbGF0dGVyQWRkaXRpb25hbEFuaW1hdGlvblZhbHVlID0gc2V0QWRk
aXRpb25hbFBsYXR0ZXJMYXllclByb3BlcnRpZXMocGxhdHRlci5nZXQoKSwgW19sYXN0UGxhdHRl
ckxheWVyIHByZXNlbnRhdGlvbkxheWVyXSk7CisgICAgW3BsYXR0ZXIgd2ViX2Rpc2FibGVBbGxB
Y3Rpb25zXTsKKyAgICBbc2hhZG93IGFkZFN1YmxheWVyOnBsYXR0ZXIuZ2V0KCldOworCisgICAg
Q0dSZWN0IG9sZE1hc2tCb3VuZHMgPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJd
LmJvdW5kczsKKyAgICBDR1BvaW50IG9sZE1hc2tQb3NpdGlvbiA9IFtfbGFzdE1hc2tMYXllciBw
cmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gb2xk
TWFza1BhdGggPSBbX2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBhdGg7CisgICAg
UmV0YWluUHRyPENBU2hhcGVMYXllcj4gbWFzayA9IF9sYXN0TWFza0xheWVyID86IGFkb3B0TlMo
W1tDQVNoYXBlTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbbWFzayBzZXRGaWxsQ29sb3I6W1VJ
Q29sb3IgYmxhY2tDb2xvcl0uQ0dDb2xvcl07CisgICAgW21hc2sgc2V0Qm91bmRzOkNHUmVjdE1h
a2UoMCwgMCwgYm91bmRpbmdSZWN0LndpZHRoKCksIGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOwor
ICAgIFttYXNrIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKGJvdW5kaW5nUmVjdC53aWR0aCgpIC8g
MiArIHBsYXR0ZXJQYWRkaW5nLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkgLyAyICsgcGxhdHRlclBh
ZGRpbmcpXTsKKyAgICBbbWFzayBzZXRQYXRoOmluZmxhdGVkUGF0aC5nZXQoKV07CisgICAgW21h
c2sgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKKworICAgIENHUmVjdCBvbGRCYWNrZ3JvdW5kQm91
bmRzID0gW19sYXN0QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7Cisg
ICAgQ0dQb2ludCBvbGRCYWNrZ3JvdW5kUG9zaXRpb24gPSBbX2xhc3RCYWNrZ3JvdW5kTGF5ZXIg
cHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0cjxDR0NvbG9yUmVmPiBv
bGRCYWNrZ3JvdW5kQ29sb3IgPSBbX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgcHJlc2VudGF0aW9uTGF5
ZXJdLmJhY2tncm91bmRDb2xvcjsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gYmFja2dyb3VuZCA9
IF9sYXN0QmFja2dyb3VuZExheWVyID86IGFkb3B0TlMoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7
CisgICAgW2JhY2tncm91bmQgc2V0RnJhbWU6W3BsYXR0ZXIgYm91bmRzXV07CisgICAgW2JhY2tn
cm91bmQgc2V0QmFja2dyb3VuZENvbG9yOmNhY2hlZENHQ29sb3IoaW5mb3JtYXRpb24ubGlua0lu
ZGljYXRvci5lc3RpbWF0ZWRCYWNrZ3JvdW5kQ29sb3IpXTsKKyAgICBbYmFja2dyb3VuZCBzZXRN
YXNrOm1hc2suZ2V0KCldOworICAgIFtiYWNrZ3JvdW5kIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107
CisgICAgW3BsYXR0ZXIgYWRkU3VibGF5ZXI6YmFja2dyb3VuZC5nZXQoKV07CisKKyAgICBDR1Jl
Y3Qgb2xkU25hcHNob3RCb3VuZHMgPSBbX2xhc3RTbmFwc2hvdExheWVyIHByZXNlbnRhdGlvbkxh
eWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRTbmFwc2hvdFBvc2l0aW9uID0gW19sYXN0U25h
cHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgQ0FUcmFuc2Zvcm0z
RCBvbGRTbmFwc2hvdFN1YmxheWVyVHJhbnNmb3JtID0gX2xhc3RTbmFwc2hvdExheWVyID8gW19s
YXN0U25hcHNob3RMYXllciBwcmVzZW50YXRpb25MYXllcl0uc3VibGF5ZXJUcmFuc2Zvcm0gOiBD
QVRyYW5zZm9ybTNESWRlbnRpdHk7CisgICAgUmV0YWluUHRyPENBUG9ydGFsTGF5ZXI+IHNuYXBz
aG90ID0gX2xhc3RTbmFwc2hvdExheWVyID86IGFkb3B0TlMoW1tDQVBvcnRhbExheWVyIGFsbG9j
XSBpbml0XSk7CisgICAgW3NuYXBzaG90IHNldFNvdXJjZUxheWVyOltfdmlldyBsYXllcl1dOwor
ICAgIFtzbmFwc2hvdCBzZXRNYXRjaGVzUG9zaXRpb246WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0
TWF0Y2hlc1RyYW5zZm9ybTpZRVNdOworICAgIFtzbmFwc2hvdCBzZXRBbmNob3JQb2ludDpDR1Bv
aW50TWFrZSgwLjUsIDAuNSldOworICAgIFtzbmFwc2hvdCBzZXRTdWJsYXllclRyYW5zZm9ybTpD
QVRyYW5zZm9ybTNETWFrZVNjYWxlKHBsYXR0ZXJTY2FsZSwgcGxhdHRlclNjYWxlLCAxKV07Cisg
ICAgW3NuYXBzaG90IHNldE1hc2tzVG9Cb3VuZHM6WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0RnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCBib3VuZGluZ1JlY3Qud2lkdGgoKSwgYm91bmRpbmdSZWN0Lmhl
aWdodCgpKV07CisgICAgW3NuYXBzaG90IHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW2Jh
Y2tncm91bmQgYWRkU3VibGF5ZXI6c25hcHNob3QuZ2V0KCldOworCisgICAgQk9PTCBuZWVkc0Fu
aW1hdGVJbiA9ICFfbGFzdFBsYXR0ZXJMYXllciB8fCBfaXNTaXR0aW5nRG93bjsKKyAgICBpZiAo
bmVlZHNBbmltYXRlSW4pIHsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJz
aGFkb3dPcGFjaXR5IiwgQChvbGRTaGFkb3dPcGFjaXR5KSwgQChbc2hhZG93IHNoYWRvd09wYWNp
dHldKSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93UmFkaXVz
IiwgQChvbGRTaGFkb3dSYWRpdXMpLCBAKFtzaGFkb3cgc2hhZG93UmFkaXVzXSkpOworICAgICAg
ICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFs
dWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpvbGRTaGFkb3dTdWJsYXllclRyYW5zZm9ybV0sIFtO
U1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W3NoYWRvdyBzdWJsYXllclRyYW5zZm9ybV1d
KTsKKworICAgICAgICBhZGRBbmltYXRpb24oc25hcHNob3QuZ2V0KCksIEAic3VibGF5ZXJUcmFu
c2Zvcm0iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOm9sZFNuYXBzaG90U3VibGF5
ZXJUcmFuc2Zvcm1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltzbmFwc2hvdCBz
dWJsYXllclRyYW5zZm9ybV1dKTsKKworICAgICAgICBhZGRBZGRpdGlvbmFsSW5jb21pbmdBbmlt
YXRpb25zKHBsYXR0ZXIuZ2V0KCksIG9sZFBsYXR0ZXJBZGRpdGlvbmFsQW5pbWF0aW9uVmFsdWUp
OworICAgIH0KKworICAgIGlmIChhbmltYXRlQmV0d2VlblBsYXR0ZXJzICYmIGhhZE9sZExheWVy
cykgeworICAgICAgICBhZGRBbmltYXRpb24obWFzay5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1
ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkTWFza0JvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVj
dDpbbWFzayBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihtYXNrLmdldCgpLCBAInBv
c2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRNYXNrUG9zaXRpb25dLCBbTlNW
YWx1ZSB2YWx1ZVdpdGhDR1BvaW50OlttYXNrIHBvc2l0aW9uXV0pOworICAgICAgICBhZGRBbmlt
YXRpb24obWFzay5nZXQoKSwgQCJwYXRoIiwgKGlkKW9sZE1hc2tQYXRoLmdldCgpLCAoaWQpW21h
c2sgcGF0aF0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAiYm91bmRz
IiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZFNoYWRvd0JvdW5kc10sIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUmVjdDpbc2hhZG93IGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNo
YWRvdy5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkU2hh
ZG93UG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltzaGFkb3cgcG9zaXRpb25d
XSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAic2hhZG93UGF0aCIsIChp
ZClvbGRTaGFkb3dQYXRoLmdldCgpLCAoaWQpW3NoYWRvdyBzaGFkb3dQYXRoXSk7CisKKyAgICAg
ICAgYWRkQW5pbWF0aW9uKHBsYXR0ZXIuZ2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVX
aXRoQ0dSZWN0Om9sZFBsYXR0ZXJCb3VuZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3Bs
YXR0ZXIgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24ocGxhdHRlci5nZXQoKSwgQCJw
b3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkUGxhdHRlclBvc2l0aW9uXSwg
W05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbcGxhdHRlciBwb3NpdGlvbl1dKTsKKworICAgICAg
ICBhZGRBbmltYXRpb24oYmFja2dyb3VuZC5nZXQoKSwgQCJib3VuZHMiLCBbTlNWYWx1ZSB2YWx1
ZVdpdGhDR1JlY3Q6b2xkQmFja2dyb3VuZEJvdW5kc10sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVj
dDpbYmFja2dyb3VuZCBib3VuZHNdXSk7CisgICAgICAgIGFkZEFuaW1hdGlvbihiYWNrZ3JvdW5k
LmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpvbGRCYWNrZ3Jv
dW5kUG9zaXRpb25dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50OltiYWNrZ3JvdW5kIHBvc2l0
aW9uXV0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQoKSwgQCJib3VuZHMi
LCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6b2xkU25hcHNob3RCb3VuZHNdLCBbTlNWYWx1ZSB2
YWx1ZVdpdGhDR1JlY3Q6W3NuYXBzaG90IGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9u
KHNuYXBzaG90LmdldCgpLCBAInBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpv
bGRTbmFwc2hvdFBvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbc25hcHNob3Qg
cG9zaXRpb25dXSk7CisgICAgfQorCisgICAgX2xhc3RNYXNrTGF5ZXIgPSBtYXNrOworICAgIF9s
YXN0U2hhZG93TGF5ZXIgPSBzaGFkb3c7CisgICAgX2xhc3RQbGF0dGVyTGF5ZXIgPSBwbGF0dGVy
OworICAgIF9sYXN0QmFja2dyb3VuZExheWVyID0gYmFja2dyb3VuZDsKKyAgICBfbGFzdFNuYXBz
aG90TGF5ZXIgPSBzbmFwc2hvdDsKK30KKworLSAodm9pZClkaXNtaXNzUGxhdHRlcldpdGhBbmlt
YXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgoreworICAgIGlmIChfaXNTaXR0aW5nRG93bikKKyAg
ICAgICAgcmV0dXJuOworICAgIF9pc1NpdHRpbmdEb3duID0gdHJ1ZTsKKworICAgIGlmICghd2l0
aEFuaW1hdGlvbikgeworICAgICAgICBbX2xhc3RTaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJs
YXllcl07CisgICAgICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRD
b21wbGV0aW9uQmxvY2s6W3Byb3RlY3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIHNoYWRvd0xh
eWVyID0gX2xhc3RTaGFkb3dMYXllcl0geworICAgICAgICBbcHJvdGVjdGVkU2VsZiBkaWRGaW5p
c2hBbmltYXRpb25Gb3JTaGFkb3c6c2hhZG93TGF5ZXIuZ2V0KCldOworICAgIH1dOworCisgICAg
YXV0byBwYXJhbWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAg
IGFkZEFuaW1hdGlvbihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInNoYWRvd09wYWNpdHkiLCBA
KFtfbGFzdFNoYWRvd0xheWVyIHNoYWRvd09wYWNpdHldKSwgQDApOworICAgIGFkZEFuaW1hdGlv
bihfbGFzdFNoYWRvd0xheWVyLmdldCgpLCBAInNoYWRvd1JhZGl1cyIsIEAoW19sYXN0U2hhZG93
TGF5ZXIgc2hhZG93UmFkaXVzXSksIEAwKTsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dM
YXllci5nZXQoKSwgQCJzdWJsYXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJh
bnNmb3JtM0Q6W19sYXN0U2hhZG93TGF5ZXIgc3VibGF5ZXJUcmFuc2Zvcm1dXSwgW05TVmFsdWUg
dmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpDQVRyYW5zZm9ybTNESWRlbnRpdHldKTsKKyAgICBhZGRB
bmltYXRpb24oX2xhc3RTbmFwc2hvdExheWVyLmdldCgpLCBAInN1YmxheWVyVHJhbnNmb3JtIiwg
W05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpbX2xhc3RTbmFwc2hvdExheWVyIHN1Ymxh
eWVyVHJhbnNmb3JtXV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zv
cm0zRElkZW50aXR5XSk7CisgICAgYWRkQWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMoX2xh
c3RQbGF0dGVyTGF5ZXIuZ2V0KCkpOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKKwor
ICAgIGlmICghcGFyYW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2Vs
ZiBjbGVhckxheWVyc107Cit9CisKKy0gKHZvaWQpZGlkRmluaXNoQW5pbWF0aW9uRm9yU2hhZG93
OihDQUxheWVyICopc2hhZG93TGF5ZXIKK3sKKyAgICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVy
UGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7CisgICAgaWYgKCFwYXJhbWV0ZXJzLmFuaW1hdGVC
ZXR3ZWVuUGxhdHRlcnMpCisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJsYXll
cl07CisKKyAgICBpZiAoX2lzU2l0dGluZ0Rvd24gJiYgcGFyYW1ldGVycy5hbmltYXRlQmV0d2Vl
blBsYXR0ZXJzICYmIHNoYWRvd0xheWVyID09IF9sYXN0U2hhZG93TGF5ZXIpIHsKKyAgICAgICAg
W3NoYWRvd0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKKyAgICAgICAgW3NlbGYgY2xlYXJM
YXllcnNdOworICAgIH0KK30KKworLSAodm9pZCljbGVhckxheWVycworeworICAgIF9sYXN0TWFz
a0xheWVyID0gbmlsOworICAgIF9sYXN0U2hhZG93TGF5ZXIgPSBuaWw7CisgICAgX2xhc3RQbGF0
dGVyTGF5ZXIgPSBuaWw7CisgICAgX2xhc3RCYWNrZ3JvdW5kTGF5ZXIgPSBuaWw7CisgICAgX2xh
c3RTbmFwc2hvdExheWVyID0gbmlsOworfQorCitAZW5kCisKKyNlbmRpZiAvLyBIQVZFKFVJS0lU
X1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBh
cmFtZXRlcnMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGM0OGY0NTkxNmEzNWQwNzg0YTA3YWU0YmE4ZWUxOGZh
NzY5YThhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNUVVJF
X1JFQ09HTklaRVIpCisKKyNpbXBvcnQgIlByb3RvdHlwZVRvb2xzU1BJLmgiCisKK0BpbnRlcmZh
Y2UgV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIDogUFRTZXR0aW5ncworCitAcHJvcGVydHkgKG5v
bmF0b21pYykgQk9PTCBwbGF0dGVyRW5hYmxlZEZvck1vdXNlOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgcGxhdHRlckVuYWJsZWRGb3JIb3ZlcjsKKworQHByb3BlcnR5IChub25hdG9taWMp
IENHRmxvYXQgcGxhdHRlckNvcm5lclJhZGl1czsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zs
b2F0IHBsYXR0ZXJQYWRkaW5nOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgcGxhdHRl
clNoYWRvd09wYWNpdHk7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyU2hh
ZG93UmFkaXVzOworQHByb3BlcnR5IChub25hdG9taWMpIHVuc2lnbmVkIHBsYXR0ZXJJbmZsYXRp
b25TaXplOworCitAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBhbmltYXRlQmV0d2VlblBsYXR0
ZXJzOworQHByb3BlcnR5IChub25hdG9taWMpIENHRmxvYXQgc3ByaW5nTWFzczsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBDR0Zsb2F0IHNwcmluZ1N0aWZmbmVzczsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljKSBDR0Zsb2F0IHNwcmluZ0RhbXBpbmc7CitAcHJvcGVydHkgKG5vbmF0b21pYykgTlNUaW1l
SW50ZXJ2YWwgZHVyYXRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCB1c2VTcHJp
bmc7CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2ltcG9ydCA8V2ViS2l0QWRkaXRp
b25zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVyc0FkZGl0aW9ucy5oPgorI2VuZGlmCisKK0BlbmQK
KworQGludGVyZmFjZSBXS0hvdmVyUGxhdHRlckRvbWFpbiA6IFBURG9tYWluCisrIChXS0hvdmVy
UGxhdHRlclBhcmFtZXRlcnMgKilyb290U2V0dGluZ3M7CitAZW5kCisKKyNlbmRpZiAvLyBIQVZF
KFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dO
SVpFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxh
dHRlclBhcmFtZXRlcnMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBs
YXR0ZXJQYXJhbWV0ZXJzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0MmFlZDZhMTM3MmZkMDI3YzU5MDA3ZTZl
OTc2NTYzMmQxMjM0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tCkBAIC0wLDAgKzEsMTQyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFt
ZXRlcnMuaCIKKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUo
SE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJQcm90b3R5cGVUb29sc1NQSS5o
IgorCitAaW50ZXJmYWNlIFBUU2xpZGVyUm93IChXZWJLaXQpCisKKy0gKGlkKWludGVnZXJNaW5W
YWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dGbG9hdCltYXhWYWx1ZTsKKworQGVu
ZAorCitAaW1wbGVtZW50YXRpb24gUFRTbGlkZXJSb3cgKFdlYktpdCkKKworLSAoaWQpaW50ZWdl
ck1pblZhbHVlOihDR0Zsb2F0KW1pblZhbHVlIG1heFZhbHVlOihDR0Zsb2F0KW1heFZhbHVlCit7
CisgICAgcmV0dXJuIFtbc2VsZiBtaW5WYWx1ZTptaW5WYWx1ZSBtYXhWYWx1ZTptYXhWYWx1ZV0g
dmFsdWVWYWxpZGF0b3I6XmlkKGlkIHByb3Bvc2VkVmFsdWUsIGlkIHNldHRpbmdzKSB7CisgICAg
ICAgIHJldHVybiBAKENHUm91bmQoW3Byb3Bvc2VkVmFsdWUgZmxvYXRWYWx1ZV0pKTsKKyAgICB9
XTsKK30KKworQGVuZAorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFdl
YktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnNBZGRpdGlvbnMubW0+CisjZWxz
ZQorc3RhdGljIHZvaWQgYWRkQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKE5TTXV0
YWJsZUFycmF5ICopIHsgfQorc3RhdGljIHZvaWQgc2V0RGVmYXVsdFZhbHVlc0ZvckFkZGl0aW9u
YWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMgKikgeyB9
CisjZW5kaWYKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycworCist
ICh2b2lkKXNldERlZmF1bHRWYWx1ZXMKK3sKKyAgICBbc3VwZXIgc2V0RGVmYXVsdFZhbHVlc107
CisKKyAgICBfcGxhdHRlckVuYWJsZWRGb3JNb3VzZSA9IE5POworICAgIF9wbGF0dGVyRW5hYmxl
ZEZvckhvdmVyID0gWUVTOworCisgICAgX3BsYXR0ZXJDb3JuZXJSYWRpdXMgPSA2OworICAgIF9w
bGF0dGVyUGFkZGluZyA9IDU7CisgICAgX3BsYXR0ZXJTaGFkb3dPcGFjaXR5ID0gMC42OworICAg
IF9wbGF0dGVyU2hhZG93UmFkaXVzID0gMTA7CisgICAgX3BsYXR0ZXJJbmZsYXRpb25TaXplID0g
ODsKKworICAgIF9hbmltYXRlQmV0d2VlblBsYXR0ZXJzID0gWUVTOworICAgIF9zcHJpbmdNYXNz
ID0gMjsKKyAgICBfc3ByaW5nU3RpZmZuZXNzID0gMTAwOworICAgIF9zcHJpbmdEYW1waW5nID0g
NTA7CisgICAgX2R1cmF0aW9uID0gMC4zOworICAgIF91c2VTcHJpbmcgPSBZRVM7CisKKyAgICBz
ZXREZWZhdWx0VmFsdWVzRm9yQWRkaXRpb25hbFBsYXR0ZXJMYXlvdXRQYXJhbWV0ZXJzKHNlbGYp
OworfQorCisrIChQVE1vZHVsZSAqKXNldHRpbmdzQ29udHJvbGxlck1vZHVsZQoreworICAgIFBU
U2VjdGlvbiAqZW5hYmxlbWVudFNlY3Rpb24gPSBbUFRNb2R1bGUgc2VjdGlvbldpdGhSb3dzOkBb
CisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJFbmFibGUgUGxhdHRlciBGb3Ig
TW91c2UiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJFbmFibGVkRm9yTW91c2UiXSwKKyAgICAgICAg
W1BUU3dpdGNoUm93IHJvd1dpdGhUaXRsZTpAIkVuYWJsZSBQbGF0dGVyIEZvciBIb3ZlciIgdmFs
dWVLZXlQYXRoOkAicGxhdHRlckVuYWJsZWRGb3JIb3ZlciJdLAorICAgIF0gdGl0bGU6QCJQbGF0
dGVyIl07CisKKyAgICBQVFNlY3Rpb24gKmFuaW1hdGlvblNlY3Rpb24gPSBbUFRNb2R1bGUgc2Vj
dGlvbldpdGhSb3dzOkBbCisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJBbmlt
YXRlIEJldHdlZW4gUGxhdHRlcnMiIHZhbHVlS2V5UGF0aDpAImFuaW1hdGVCZXR3ZWVuUGxhdHRl
cnMiXSwKKyAgICAgICAgW1BUU3dpdGNoUm93IHJvd1dpdGhUaXRsZTpAIlVzZSBTcHJpbmciIHZh
bHVlS2V5UGF0aDpAInVzZVNwcmluZyJdLAorICAgICAgICBbW1tQVFNsaWRlclJvdyByb3dXaXRo
VGl0bGU6QCJEdXJhdGlvbiIgdmFsdWVLZXlQYXRoOkAiZHVyYXRpb24iXSBtaW5WYWx1ZTowIG1h
eFZhbHVlOjFdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVz
ZVNwcmluZyA9PSBGQUxTRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0
bGU6QCJTcHJpbmcgTWFzcyIgdmFsdWVLZXlQYXRoOkAic3ByaW5nTWFzcyJdIGNvbmRpdGlvbjpb
TlNQcmVkaWNhdGUgcHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBUUlVFIl1dLAor
ICAgICAgICBbW1BURWRpdEZsb2F0Um93IHJvd1dpdGhUaXRsZTpAIlNwcmluZyBTdGlmZm5lc3Mi
IHZhbHVlS2V5UGF0aDpAInNwcmluZ1N0aWZmbmVzcyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUg
cHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBUUlVFIl1dLAorICAgICAgICBbW1BU
RWRpdEZsb2F0Um93IHJvd1dpdGhUaXRsZTpAIlNwcmluZyBEYW1waW5nIiB2YWx1ZUtleVBhdGg6
QCJzcHJpbmdEYW1waW5nIl0gY29uZGl0aW9uOltOU1ByZWRpY2F0ZSBwcmVkaWNhdGVXaXRoRm9y
bWF0OkAidXNlU3ByaW5nID09IFRSVUUiXV0sCisgICAgXSB0aXRsZTpAIkFuaW1hdGlvbiJdOwor
CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBwbGF0dGVyTGF5b3V0Um93cyA9IGFkb3B0
TlMoW0BbCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiQ29ybmVyIFJhZGl1
cyIgdmFsdWVLZXlQYXRoOkAicGxhdHRlckNvcm5lclJhZGl1cyJdIGludGVnZXJNaW5WYWx1ZTow
IG1heFZhbHVlOjIwXSwKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJQYWRk
aW5nIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyUGFkZGluZyJdIGludGVnZXJNaW5WYWx1ZTowIG1h
eFZhbHVlOjIwXSwKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dXaXRoVGl0bGU6QCJTaGFkb3cg
T3BhY2l0eSIgdmFsdWVLZXlQYXRoOkAicGxhdHRlclNoYWRvd09wYWNpdHkiXSBtaW5WYWx1ZTow
IG1heFZhbHVlOjFdLAorICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRsZTpAIlNoYWRv
dyBSYWRpdXMiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJTaGFkb3dSYWRpdXMiXSBpbnRlZ2VyTWlu
VmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0aFRpdGxl
OkAiSW5mbGF0aW9uIFNpemUiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJJbmZsYXRpb25TaXplIl0g
aW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MzBdCisgICAgXSBtdXRhYmxlQ29weV0pOworICAg
IGFkZEFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0UGFyYW1ldGVycyhwbGF0dGVyTGF5b3V0Um93cy5n
ZXQoKSk7CisKKyAgICBQVFNlY3Rpb24gKnBsYXR0ZXJMYXlvdXRTZWN0aW9uID0gW1BUTW9kdWxl
IHNlY3Rpb25XaXRoUm93czpwbGF0dGVyTGF5b3V0Um93cy5nZXQoKSB0aXRsZTpAIlBsYXR0ZXIg
TGF5b3V0Il07CisKKyAgICBQVFNlY3Rpb24gKnJlc3RvcmVEZWZhdWx0c1NlY3Rpb24gPSBbUFRN
b2R1bGUgc2VjdGlvbldpdGhSb3dzOkBbCisgICAgICAgIFtQVEJ1dHRvblJvdyByb3dXaXRoVGl0
bGU6QCJSZXN0b3JlIERlZmF1bHRzIiBhY3Rpb246W1BUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jv
d0FjdGlvbiBhY3Rpb25dXQorICAgIF1dOworCisgICAgcmV0dXJuIFtQVE1vZHVsZSBtb2R1bGVX
aXRoVGl0bGU6bmlsIGNvbnRlbnRzOkBbIGVuYWJsZW1lbnRTZWN0aW9uLCBhbmltYXRpb25TZWN0
aW9uLCBwbGF0dGVyTGF5b3V0U2VjdGlvbiwgcmVzdG9yZURlZmF1bHRzU2VjdGlvbiBdXTsKK30K
KworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tIb3ZlclBsYXR0ZXJEb21haW4KKworKyAoV0tI
b3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICopcm9vdFNldHRpbmdzCit7CisgICAgcmV0dXJuIFtzdXBl
ciByb290U2V0dGluZ3NdOworfQorCisrIChOU1N0cmluZyAqKWRvbWFpbkdyb3VwTmFtZQorewor
ICAgIHJldHVybiBAIldlYktpdCI7Cit9CisKKysgKE5TU3RyaW5nICopZG9tYWluTmFtZQorewor
ICAgIHJldHVybiBAIkhvdmVyIFBsYXR0ZXIiOworfQorCisrIChDbGFzcylyb290U2V0dGluZ3ND
bGFzcworeworICAgIHJldHVybiBbV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzIGNsYXNzXTsKK30K
KworQGVuZAorCisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5OGNlNGQ4MzllNDA4YzJjZmUxMmM4ZWY3
ODhjZDQxNmEyNjBkYjkxLi4wYmE2M2FkOTMwOTgzMzYxYmFmNTc5ZGQ4ODUxNTA5OGQ4ZDAzZWMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTYzNCw2ICs2MzQsNyBAQAogCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUI1RDVCMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQkyRDFCNUQ1RTE4
NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUI1RDVDMTg1ODY5Qzgw
MDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oICovOyB9OwogCQkyRDFF
ODIyMzIxNkZGRjUxMDBBMTUyNjUgLyogV0tXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQxRTgyMjEyMTZGRkY1MDAwQTE1MjY1IC8qIFdL
V2ViRXZlbnQuaCAqLzsgfTsKKwkJMkQyNzlFMTkyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlw
ZVRvb2xzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDI3OUUxODI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLzsgfTsK
IAkJMkQyOEE0OTcxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI4QTQ5NTFBRjk2
NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCAqLzsgfTsKIAkJMkQyOUVDRDAx
OTJGMkMyRTAwOTg0Qjc4IC8qIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyOUVDQ0Ux
OTJGMkMyRTAwOTg0Qjc4IC8qIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5o
ICovOyB9OwogCQkyRDNBNjVEQjFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9u
UmVmLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDNB
NjVEOTFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMxNzEsNiArMzE3Miwx
MSBAQAogCQkyRDFFODIyMjIxNkZGRjUxMDBBMTUyNjUgLyogV0tXZWJFdmVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLV2ViRXZlbnQubW07IHBhdGggPSBp
b3MvV0tXZWJFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNUYzMjgy
NTc1OEU5MDAwMjMxQThCIC8qIEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNUYzMjkyNTc1OEU5MTAwMjMxQThCIC8q
IEltYWdlQnVmZmVyU2hhcmVhYmxlSU9TdXJmYWNlQmFja2VuZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUwRTI2OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBs
YXR0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXIuaDsgcGF0aCA9IGlvcy9XS0hv
dmVyUGxhdHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUwRjI2OTRD
MjI3MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBX
S0hvdmVyUGxhdHRlci5tbTsgcGF0aCA9IGlvcy9XS0hvdmVyUGxhdHRlci5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMTAyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQ
bGF0dGVyUGFyYW1ldGVycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS0hvdmVyUGxhdHRlclBhcmFtZXRl
cnMuaDsgcGF0aCA9IGlvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMTEyNjk0QzJEMTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0
dGVyUGFyYW1ldGVycy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyUGFy
YW1ldGVycy5tbTsgcGF0aCA9IGlvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90
b3R5cGVUb29sc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm90b3R5
cGVUb29sc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI4QTQ5NTFBRjk2
NUExMDBGMTkwQzkgLyogV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkQyOEE0OTYxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0
ZWd5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tWaWV3TGF5
b3V0U3RyYXRlZ3kubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhGM0UwMTg4
NUNDQzEwMDRCOUVBRSAvKiBXZWJDaHJvbWVDbGllbnRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJDaHJvbWVDbGllbnRJT1MubW07IHBhdGggPSBpb3Mv
V2ViQ2hyb21lQ2xpZW50SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc5
Miw2ICs3Nzk4LDEwIEBACiAJCQkJMEZDQjRFNDExOEJCRTA0NDAwMEZDRkM5IC8qIFdLR2VvbG9j
YXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbSAqLywKIAkJCQlGNERCNTRFNDIz
MTlFNzMzMDA5RTMxNTUgLyogV0tIaWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5o
ICovLAogCQkJCUY0REI1NEU1MjMxOUU3MzMwMDlFMzE1NSAvKiBXS0hpZ2hsaWdodExvbmdQcmVz
c0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAorCQkJCTJEMjc5RTBFMjY5NEMyMjYwMDRCM0VFQiAv
KiBXS0hvdmVyUGxhdHRlci5oICovLAorCQkJCTJEMjc5RTBGMjY5NEMyMjcwMDRCM0VFQiAvKiBX
S0hvdmVyUGxhdHRlci5tbSAqLywKKwkJCQkyRDI3OUUxMDI2OTRDMkQxMDA0QjNFRUIgLyogV0tI
b3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggKi8sCisJCQkJMkQyNzlFMTEyNjk0QzJEMTAwNEIzRUVC
IC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbSAqLywKIAkJCQlGNEJBMzNGMDI1NzU3RTg5
MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlG
NEJBMzNGMTI1NzU3RTg5MDAwQTNDRTggLyogV0tJbWFnZUFuYWx5c2lzR2VzdHVyZVJlY29nbml6
ZXIubW0gKi8sCiAJCQkJOTMzREY4MkQxQjNCQzA5MDAwQUVBOUUzIC8qIFdLSW1hZ2VQcmV2aWV3
Vmlld0NvbnRyb2xsZXIuaCAqLywKQEAgLTExNTI5LDYgKzExNTM5LDcgQEAKIAkJCQkyRDRBRjA4
ODIwNDRDM0M0MDA2Qzg4MTcgLyogRnJvbnRCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQTEz
QjNEQTEyMDdGMzlERTAwOTBDNThEIC8qIE1vYmlsZVdpRmlTUEkuaCAqLywKIAkJCQkzMTc4QUY5
NzIwRTJBN0Y4MDA3NERFOTQgLyogUERGS2l0U1BJLmggKi8sCisJCQkJMkQyNzlFMTgyNjk1NTc2
ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRvb2xzU1BJLmggKi8sCiAJCQkJNDZGMzhFOEIyNDE2RTY2
RDAwNTkzNzVBIC8qIFJ1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggKi8sCiAJCQkJQ0UxQTBCRDAx
QTQ4RTZDNjAwNTRFRjc0IC8qIFRDQ1NQSS5oICovLAogCQkJCUNFMUEwQkQxMUE0OEU2QzYwMDU0
RUY3NCAvKiBUZXh0SW5wdXRTUEkuaCAqLywKQEAgLTEyMjM2LDYgKzEyMjQ3LDcgQEAKIAkJCQk0
NjNGRDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90
dGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFBy
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTJEMjc5RTE5MjY5NTU3
NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFF
Njg4NzAxRjZFMkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBMEMyMjdFMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0
TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1
aWNrTG9va1RodW1ibmFpbExvYWRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9XZWJL
aXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAx
MGU3NmNkMjViOTdlODBmOGFjYzA2MTIzMWFlMjUzZGE1OWEyOTVhLi42MjIwYzZiZTJiMjk2MTQ4
ODQzYWE1ZDk1M2I2YjQwN2FiYTljYzUwIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hh
bmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVi
cy9hcHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRi
ZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZv
cy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1By
b3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29y
a1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMu
dGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hv
cy84L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgor
CiAyMDIxLTA2LTE2ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFt3YXRjaE9TXSBSZWVuYWJsZSBtb2Rlcm4gdGV4dCBpbnB1dCBVSSBmb3Igbm9uLW51
bWVyaWMgdGV4dCBpbnB1dCB0eXBlcwpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9hcHBsZXR2b3MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3
b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJh
bWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5
cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGE4YjE0MmY4N2Q2Nzg5NDVlZWZiZGFjYzZhMjdiMTRi
MjVlMjRjZAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRl
RnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90
b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczog
ICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlw
ZVRvb2xzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogdHZvcworZXhwb3J0czoK
KyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCBdCisgICAgb2JqYy1jbGFzc2Vz
OiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQ
VFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRT
ZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisu
Li4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1
YnMvYXBwbGV0dm9zLzE1L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50
YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZv
cy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjBhOGIxNDJmODdkNjc4OTQ1ZWVmYmRhY2M2YTI3YjE0YjI1ZTI0Y2QKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxl
dHZvcy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBAIC0w
LDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwg
YXJtNjQgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3Ry
YWludDogbm9uZQorcGxhdGZvcm06IHR2b3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCwgYXJtNjQgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywg
UFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQVE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRp
bmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dBY3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywg
UFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0Y2hSb3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJL
aXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNC9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1By
b3RvdHlwZVRvb2xzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWViNDJmNmMxYzg0NzZmOWYwMTlkYzI3M2Ri
NTFhOGEwM2RhODM0Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFBy
aXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3Rv
dHlwZVRvb2xzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAg
ICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQoraW5zdGFsbC1uYW1lOiAgICAnL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Q
cm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IGlvcworZXhw
b3J0czoKKyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAg
ICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJv
dywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBU
Um93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBU
U3dpdGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZh
dGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlw
ZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
aU9TLzE1L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uN2VlYjQyZjZjMWM4NDc2ZjlmMDE5ZGMyNzNkYjUxYThhMDNkYTgzNAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9T
LzE1L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCAr
MSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02
NCwgYXJtNjRlIF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNv
bnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAg
ICAgICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBU
QnV0dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVE
ZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQ
VFNldHRpbmdzLCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAt
LWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hv
cy83L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRM
aWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkN2Y3ZWRiNDA3
YmUyZWJiNzI0YzM2MzJlOTliMjg2NDRmMTRjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRM
aWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0
YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4Nl82NCwgYXJtNjQsIGFybTY0
ZSwgYXJtNjRfMzIsIGFybXY3ayBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xz
Jworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogd2F0Y2hvcworZXhwb3J0czoKKyAg
LSBhcmNoczogICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8z
MiwgYXJtdjdrIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3csIFBURG9tYWlu
LCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jvd0Fj
dGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3MsIFBUU2xpZGVy
Um93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFy
aWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzgvUHJvdG90eXBlVG9vbHMu
ZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy84L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90
b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ3ZjdlZGI0MDdiZTJlYmI3MjRjMzYzMmU5OWIy
ODY0NGYxNGNjNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy84L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90
b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJkLXYzCithcmNoczog
ICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwgYXJtdjdr
IF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Q
cm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNvbnN0cmFpbnQ6
IG5vbmUKK3BsYXRmb3JtOiB3YXRjaG9zCitleHBvcnRzOgorICAtIGFyY2hzOiAgICAgICAgICAg
WyBpMzg2LCB4ODZfNjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQorICAgIG9i
amMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQ
VE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dB
Y3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0
Y2hSb3cgXQorLi4uCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433117</attachid>
            <date>2021-07-07 21:49:30 -0700</date>
            <delta_ts>2021-07-07 23:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227735-20210707214929.patch</filename>
            <type>text/plain</type>
            <size>59252</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBiODNlN2Yx
OTBhNDUwNzU2MzE1ZTg4M2YwNzg2ZTNmOGZmZWI1MmJiLi5jNTQyNWMzNzIyZTc0NGEyNGQ4NjJj
ODZjZmMzNGQ0MTg4ODI5N2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNy0wNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tIb3ZlclBsYXR0ZXIgYW5kIHNvbWUga25vYnMgdG8gdHdlYWsgaXRzIGFwcGVh
cmFuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NzczNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxOTgyNjI+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICAqIHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQ
SS5oOgorCiAyMDIxLTA3LTAxICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFBDTTogQ2hhbmdlIGltcG9ydCBmcm9tIENyeXB0b0tpdENCcmlkZ2luZyB0byBD
cnlwdG9LaXRQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2QyZmMwZTM0ZDZiMjI0
ZmY5YjVhNjk5NDMuLjU3MDNjZWI1NzJlYTJiNjY0MzJlNGY2Y2MxMWExMzJlZDA0ZWYyMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0dGVyIGFuZCBzb21l
IGtub2JzIHRvIHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5
MTk4MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWc6CisgICAgICAgICogUGxhdGZvcm0vc3BpL2lv
cy9Qcm90b3R5cGVUb29sc1NQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBy
b290Q29udGVudFZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldFVwSW50ZXJhY3Rpb25dKToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVhblVwSW50ZXJhY3Rpb25dKToKKyAgICAgICAg
SW5zdGFsbCBhbmQgdW5pbnN0YWxsIHRoZSBwbGF0dGVyIGFsb25nc2lkZSB0aGUgZ2VzdHVyZXMg
dGhhdCBkcml2ZSBpdC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG1vdXNlR2VzdHVyZVJl
Y29nbml6ZXJDaGFuZ2VkOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhvdmVyR2VzdHVy
ZVJlY29nbml6ZXJDaGFuZ2VkOl0pOgorICAgICAgICBXaGVuIHRoZSBnZXN0dXJlIHJlY29nbml6
ZXJzIGZpcmUsIGFsc28gdXBkYXRlIHRoZSBob3ZlciBwb2ludC4KKworICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6d2l0aFJlcXVlc3Q6
Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxh
dHRlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyLm1t
OiBBZGRlZC4KKyAgICAgICAgKGNyZWF0ZUJhc2VBbmltYXRpb24pOgorICAgICAgICAoYWRkQW5p
bWF0aW9uKToKKyAgICAgICAgKHNldEFkZGl0aW9uYWxQbGF0dGVyTGF5ZXJQcm9wZXJ0aWVzKToK
KyAgICAgICAgKGFkZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMpOgorICAgICAgICAoYWRk
QWRkaXRpb25hbERpc21pc3NhbEFuaW1hdGlvbnMpOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRl
ciBpbml0V2l0aFZpZXc6ZGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGlu
dmFsaWRhdGVdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgaG92ZXJQb2ludF0pOgorICAg
ICAgICAoLVtXS0hvdmVyUGxhdHRlciBzZXRIb3ZlclBvaW50Ol0pOgorICAgICAgICAoLVtXS0hv
dmVyUGxhdHRlciByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRIb3ZlclBvaW50
XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpZFJlY2VpdmVQb3NpdGlvbkluZm9ybWF0
aW9uOl0pOgorICAgICAgICAoLVtXS0hvdmVyUGxhdHRlciBkaXNtaXNzUGxhdHRlcldpdGhBbmlt
YXRpb246XSk6CisgICAgICAgICgtW1dLSG92ZXJQbGF0dGVyIGRpZEZpbmlzaEFuaW1hdGlvbkZv
clNoYWRvdzpdKToKKyAgICAgICAgKC1bV0tIb3ZlclBsYXR0ZXIgY2xlYXJMYXllcnNdKToKKyAg
ICAgICAgQW5pbWF0ZSB0aGUgcGxhdHRlciBpbiBhbmQgb3V0LCBhbmQgb3B0aW9uYWxseSBiZXR3
ZWVuIHN0YXRlcywgYXMgdGhlIGhvdmVyIHBvaW50IG1vdmVzLgorICAgICAgICBVc2UgdGhlIFRl
eHRJbmRpY2F0b3IncyBnZW9tZXRyeSBpbmZvcm1hdGlvbiwgYnV0IG5vdCBpdHMgc25hcHNob3Q7
IHdlIHVzZSBhCisgICAgICAgIENBUG9ydGFsTGF5ZXIgZm9yIHRoZSBwbGF0dGVyIGluc3RlYWQu
IEEgZnV0dXJlIHBhdGNoIHdpbGwgYXZvaWQgdGFraW5nIHRoZSBzbmFwc2hvdAorICAgICAgICBl
bnRpcmVseSwgc2luY2Ugd2UgY2FsbCBzZXRIb3ZlclBvaW50IChhbmQgdGh1cyBnZW5lcmF0ZSBh
IFRleHRJbmRpY2F0b3IpIGEgKmxvdCoKKyAgICAgICAgd2hlbiBtb3ZpbmcgdGhlIG1vdXNlIGFy
b3VuZCwgYW5kIGFsbCB0aG9zZSBzbmFwc2hvdHMgYWRkIHVwLgorCisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW06IEFkZGVkLgorICAgICAgICAo
LVtQVFNsaWRlclJvdyBpbnRlZ2VyTWluVmFsdWU6bWF4VmFsdWU6XSk6CisgICAgICAgICgtW1dL
SG92ZXJQbGF0dGVyUGFyYW1ldGVycyBzZXREZWZhdWx0VmFsdWVzXSk6CisgICAgICAgICgrW1dL
SG92ZXJQbGF0dGVyUGFyYW1ldGVycyBzZXR0aW5nc0NvbnRyb2xsZXJNb2R1bGVdKToKKyAgICAg
ICAgKCtbV0tIb3ZlclBsYXR0ZXJEb21haW4gcm9vdFNldHRpbmdzXSk6CisgICAgICAgICgrW1dL
SG92ZXJQbGF0dGVyRG9tYWluIGRvbWFpbkdyb3VwTmFtZV0pOgorICAgICAgICAoK1tXS0hvdmVy
UGxhdHRlckRvbWFpbiBkb21haW5OYW1lXSk6CisgICAgICAgICgrW1dLSG92ZXJQbGF0dGVyRG9t
YWluIHJvb3RTZXR0aW5nc0NsYXNzXSk6CisgICAgICAgIEFkZCBzb21lIGtub2JzLCB3aXRoIHJl
YXNvbmFibGUgZGVmYXVsdHMsIGZvciBleHBlcmltZW50YXRpb24uCisKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wNy0wMiAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiBp
biB0aGUgbmV0d29yayBwcm9jZXNzIHdoZW4gaG9sZGluZyBsb2NrZWQgZmlsZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL1F1YXJ0ekNvcmVTUEkuaAppbmRleCAwYjBi
MDVmODZmZDQwM2QxYzg3YTY0MDBmN2FiNDg5ZTAxMmRjMmZiLi5jYTk2YmFhNjdmNjRmNjZiZWI0
MDkzMjRiZGUzNWU0MzQzNTJhN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oCkBAIC0xNjMsNiArMTYzLDEyIEBAIHR5cGVkZWYgZW51
bSB7CiAtIChmbG9hdClfc29sdmVGb3JJbnB1dDooZmxvYXQpdDsKIEBlbmQKIAorQGludGVyZmFj
ZSBDQVBvcnRhbExheWVyIDogQ0FMYXllcgorQHByb3BlcnR5ICh3ZWFrKSBDQUxheWVyICpzb3Vy
Y2VMYXllcjsKK0Bwcm9wZXJ0eSBCT09MIG1hdGNoZXNQb3NpdGlvbjsKK0Bwcm9wZXJ0eSBCT09M
IG1hdGNoZXNUcmFuc2Zvcm07CitAZW5kCisKICNlbmRpZiAvLyBfX09CSkNfXwogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmln
IGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXggOWY3
Y2NlNTEzN2NlNmZmZjI0YzA1YjY3NjE2YzBkNjBmM2YxZWE1MS4uZGRmODBiNjI0NmU4NzBmNDY2
N2YwNDIwNzM5NGNlMDc1MzI2NjRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1
cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9u
cy9XZWJLaXQueGNjb25maWcKQEAgLTkzLDYgKzkzLDkgQEAgV0tfUERGS0lUX0xERkxBR1NfaXBo
b25lc2ltdWxhdG9yW3Nkaz1pcGhvbmUqMTEuKl0gPSA7CiBXS19QREZLSVRfTERGTEFHU19tYWNj
YXRhbHlzdCA9ICQoV0tfUERGS0lUX0xERkxBR1NfbWFjY2F0YWx5c3QkKFdLX01BQ09TXzExMDAp
KTsKIFdLX1BERktJVF9MREZMQUdTX21hY2NhdGFseXN0X01BQ09TX1NJTkNFXzExMDAgPSAkKFdL
X1BERktJVF9MREZMQUdTX2lwaG9uZW9zKTsKIAorV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1Mg
PSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTXyQoV0tfQ09DT0FfVE9VQ0gpKTsKK1dLX1BS
T1RPVFlQRV9UT09MU19MREZMQUdTX2NvY29hdG91Y2ggPSAtZnJhbWV3b3JrIFByb3RvdHlwZVRv
b2xzOworCiBXS19TQUZFX0JST1dTSU5HX0xERkxBR1MgPSAkKFdLX1NBRkVfQlJPV1NJTkdfTERG
TEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKIFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHU19pcGhv
bmVvcyA9IC1mcmFtZXdvcmsgU2FmYXJpU2FmZUJyb3dzaW5nOwogV0tfU0FGRV9CUk9XU0lOR19M
REZMQUdTX2lwaG9uZW9zW3Nkaz1pcGhvbmUqMTAuKl0gPSA7CkBAIC0xNDMsNyArMTQ2LDcgQEAg
V0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWxuZXR3b3JrZXh0
ZW5zaW9uOwogV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY29zeCA9IC13ZWFrX2xp
YnJhcnkgL3Vzci9saWIvbGlibmV0d29ya2V4dGVuc2lvbi5keWxpYjsKIFdLX0xJQk5FVFdPUktF
WFRFTlNJT05fTERGTEFHU190dm9zID0gOwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFH
UyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJh
bWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsg
Q29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3
b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1s
bmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdL
X0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JV
Tk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19D
QVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElP
Tl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19MSUJT
QU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVf
U0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJ
VF9MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRF
UkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVO
VElGSUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5T
UEVDVE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKK0ZSQU1FV09SS19B
TkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdv
cmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3Jh
cGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29y
ayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29y
ayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklM
SVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJ
VF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQo
V0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9M
REZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykg
JChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xE
RkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1Mp
ICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZM
QUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xE
RkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9M
REZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOwogCiAvLyBQcmV2ZW50IEMrKyBzdGFu
ZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5k
IHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2Vh
ayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2Fs
bG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hh
cl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9F
RSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0
cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2lj
X2lvc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzEx
OGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNF
RUVFMTZfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUVE5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVO
U185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19f
MTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VF
RUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdz
dHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFj
aGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1My
X0VFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1Byb3RvdHlw
ZVRvb2xzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUHJvdG90eXBlVG9v
bHNTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wMzMwNDA4ZDkyMjBiY2Y1N2U2ODEzZWM4NWRmY2Q1YzllY2Zm
ZWY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1By
b3RvdHlwZVRvb2xzU1BJLmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0Uo
QVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxQcm90b3R5cGVUb29scy9Qcm90b3R5cGVU
b29scy5oPgorCisjZWxzZQorCitAaW50ZXJmYWNlIFBUU2V0dGluZ3MgOiBOU09iamVjdCA8TlND
b3B5aW5nPgorLSAodm9pZClzZXREZWZhdWx0VmFsdWVzOworQGVuZAorCitAaW50ZXJmYWNlIFBU
RG9tYWluIDogTlNPYmplY3QKKysgKF9fa2luZG9mIFBUU2V0dGluZ3MgKilyb290U2V0dGluZ3M7
CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTZWN0aW9uIDogTlNPYmplY3QKK0BlbmQKKworQGludGVy
ZmFjZSBQVE1vZHVsZSA6IE5TT2JqZWN0CisrIChpbnN0YW5jZXR5cGUpbW9kdWxlV2l0aFRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIGNvbnRlbnRzOihOU0FycmF5ICopY29udGVudHM7CisrIChQVFNl
Y3Rpb24gKilzZWN0aW9uV2l0aFJvd3M6KE5TQXJyYXkgKilyb3dzIHRpdGxlOihOU1N0cmluZyAq
KXRpdGxlOworKyAoUFRTZWN0aW9uICopc2VjdGlvbldpdGhSb3dzOihOU0FycmF5ICopcm93czsK
K0BlbmQKKworQGludGVyZmFjZSBQVFJvdyA6IE5TT2JqZWN0IDxOU0NvcHlpbmcsIE5TU2VjdXJl
Q29kaW5nPgorKyAoaW5zdGFuY2V0eXBlKXJvd1dpdGhUaXRsZTooTlNTdHJpbmcgKilzdGF0aWNU
aXRsZSB2YWx1ZUtleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aDsKKy0gKGlkKXZhbHVlVmFsaWRh
dG9yOihpZCheKShpZCBwcm9wb3NlZFZhbHVlLCBpZCBzZXR0aW5ncykpdmFsaWRhdG9yOworLSAo
aWQpY29uZGl0aW9uOihOU1ByZWRpY2F0ZSAqKWNvbmRpdGlvbjsKK0BlbmQKKworQGludGVyZmFj
ZSBQVFNSb3cgOiBQVFJvdworQGVuZAorCitAaW50ZXJmYWNlIFBUU3dpdGNoUm93IDogUFRTUm93
CitAZW5kCisKK0BpbnRlcmZhY2UgUFRTbGlkZXJSb3cgOiBQVFNSb3cKKy0gKGlkKW1pblZhbHVl
OihDR0Zsb2F0KW1pblZhbHVlIG1heFZhbHVlOihDR0Zsb2F0KW1heFZhbHVlOworQGVuZAorCitA
aW50ZXJmYWNlIFBURWRpdEZsb2F0Um93IDogUFRTUm93CitAZW5kCisKK0BpbnRlcmZhY2UgUFRS
b3dBY3Rpb24gOiBOU09iamVjdAorQGVuZAorCitAaW50ZXJmYWNlIFBUUmVzdG9yZURlZmF1bHRT
ZXR0aW5nc1Jvd0FjdGlvbiA6IFBUUm93QWN0aW9uCisrIChpbnN0YW5jZXR5cGUpYWN0aW9uOwor
QGVuZAorCitAaW50ZXJmYWNlIFBUQnV0dG9uUm93IDogUFRTUm93CisrIChpbnN0YW5jZXR5cGUp
cm93V2l0aFRpdGxlOihOU1N0cmluZyAqKXN0YXRpY1RpdGxlIGFjdGlvbjooUFRSb3dBY3Rpb24g
KilhY3Rpb247CitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3Vy
Y2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDQwNTBj
NDAzYzQ2ZDU2NGMyZTk4M2M1ZjI2NTU1MWM2OTc1Y2U4ZmQuLmU2ZjZjMGRiN2QyYTYxOTAwOThj
ZGY4OTcxZjJiYzAyM2IyZmY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTQ4OSw2ICs0
ODksOCBAQCBVSVByb2Nlc3MvaW9zL1dLRGVmZXJyaW5nR2VzdHVyZVJlY29nbml6ZXIubW0KIFVJ
UHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCiBVSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9yaWdpbi5tbQogVUlQcm9jZXNzL2lv
cy9XS0hpZ2hsaWdodExvbmdQcmVzc0dlc3R1cmVSZWNvZ25pemVyLm1tCitVSVByb2Nlc3MvaW9z
L1dLSG92ZXJQbGF0dGVyLm1tCitVSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVy
cy5tbQogVUlQcm9jZXNzL2lvcy9XS0ltYWdlQW5hbHlzaXNHZXN0dXJlUmVjb2duaXplci5tbQog
VUlQcm9jZXNzL2lvcy9XS0tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IubW0KIFVJUHJvY2Vzcy9p
b3MvV0tNb2RlbEludGVyYWN0aW9uR2VzdHVyZVJlY29nbml6ZXIubW0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDA5NTA4NmNkMWY5ZDVmNjlmN2E3
YWUxOThlZjlhOWZjZTBjNGJmZjAuLjc2MDY1OTA0N2QxYWEyYjVkZjdhZWU0MGQxNDE0ZGEzOWE0
MTZjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaApA
QCAtOTQsNiArOTQsNyBAQCBlbnVtIGNsYXNzIFZpZXdTdGFiaWxpdHlGbGFnIDogdWludDhfdDsK
IC0gKHZvaWQpX3dlYlZpZXdEZXN0cm95ZWQ7CiAKIC0gKFdLV2ViVmlldyAqKXdlYlZpZXc7Cist
IChVSVZpZXcgKilyb290Q29udGVudFZpZXc7CiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6
OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OihXZWJLaXQ6OldlYlBy
b2Nlc3NQcm94eSYpcHJvY2VzczsKIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA2YjA0OWI0MDdiMTIx
ZTg5MzA0MmRmMzlhMTUxZmM5NjI5MTBlYTJkLi45Yzk2MzFiMTgwZjZkNTIzYTM5NzA1YzczZTQw
ZTIwOGY2ZmRkMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5tbQpAQCAtMzI2LDYgKzMyNiwxMSBAQCAtIChXS1dlYlZpZXcgKil3ZWJWaWV3CiAgICAg
cmV0dXJuIF93ZWJWaWV3LmdldEF1dG9yZWxlYXNlZCgpOwogfQogCistIChVSVZpZXcgKilyb290
Q29udGVudFZpZXcKK3sKKyAgICByZXR1cm4gX3Jvb3RDb250ZW50Vmlldy5nZXQoKTsKK30KKwog
LSAodm9pZCl3aWxsTW92ZVRvV2luZG93OihVSVdpbmRvdyAqKW5ld1dpbmRvdwogewogICAgIFtz
dXBlciB3aWxsTW92ZVRvV2luZG93Om5ld1dpbmRvd107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMzU2YjMz
MzI2MjhlZTFjNTJlYWY2YWNlMGQwMDNjODBjNWI2MTliNC4uMjZhMWUyZGVmYTExNTE0MzU1MTQ4
ZGVlNWRhZGNkOWMxN2E0MjA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzksNiArMzksNyBAQAogI2lt
cG9ydCAiVGV4dENoZWNraW5nQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVHJhbnNhY3Rpb25JRC5o
IgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyLmgiCiAjaW1w
b3J0IDxXZWJLaXQvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
QWlyUGxheVJvdXRlUGlja2VyLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250YWN0UGlja2VyLmg+
CkBAIC0yOTUsNiArMjk2LDEwIEBAIHVzaW5nIEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8SW1hZ2VBbmFseXNpc1JlcXVlc3RJZGVuCiAgICAgUmV0YWlu
UHRyPFdLSG92ZXJHZXN0dXJlUmVjb2duaXplcj4gX2hvdmVyR2VzdHVyZVJlY29nbml6ZXI7CiAj
ZW5kaWYKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9W
RVJfR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIFJldGFpblB0cjxXS0hvdmVyUGxhdHRlcj4gX2hv
dmVyUGxhdHRlcjsKKyNlbmRpZgorCiAjaWYgSEFWRShQRU5DSUxLSVRfVEVYVF9JTlBVVCkKICAg
ICBSZXRhaW5QdHI8VUlJbmRpcmVjdFNjcmliYmxlSW50ZXJhY3Rpb24+IF9zY3JpYmJsZUludGVy
YWN0aW9uOwogI2VuZGlmCkBAIC01MjYsNiArNTMxLDkgQEAgdXNpbmcgSW1hZ2VBbmFseXNpc1Jl
cXVlc3RJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxJbWFnZUFuYWx5c2lzUmVxdWVzdElk
ZW4KICAgICAsIFVJRHJhZ0ludGVyYWN0aW9uRGVsZWdhdGUsIFVJRHJvcEludGVyYWN0aW9uRGVs
ZWdhdGUKICNlbmRpZgogICAgICwgV0tUb3VjaEFjdGlvbkdlc3R1cmVSZWNvZ25pemVyRGVsZWdh
dGUKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dF
U1RVUkVfUkVDT0dOSVpFUikKKyAgICAsIFdLSG92ZXJQbGF0dGVyRGVsZWdhdGUKKyNlbmRpZgog
PgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUG9pbnQgbGFzdEludGVyYWN0
aW9uTG9jYXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAzN2U2YjM3OWNiZjJjN2ZkNGI5MmU4YWVi
Mjc1NDM1ZjM3NDg4ZjQwLi4xZDdjYTU5NDRmOGZmNGM5MTdmZjhkOGM1ZjU5ZWNmMjliZDhkYjNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KQEAgLTU2LDYgKzU2LDggQEAKICNpbXBvcnQgIldLRm9ybVNlbGVj
dENvbnRyb2wuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
SGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIuaCIKKyNpbXBvcnQgIldLSG92ZXJQ
bGF0dGVyLmgiCisjaW1wb3J0ICJXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCIKICNpbXBvcnQg
IldLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25pemVyLmgiCiAjaW1wb3J0ICJXS0ltYWdlUHJl
dmlld1ZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0
dXJlUmVjb2duaXplci5oIgpAQCAtMTI4LDYgKzEzMCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1VU
SVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9WZXJzaW9uQ2hlY2tzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNB
TGF5ZXJFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViRXZlbnQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViVGV4dEluZGljYXRvckxheWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dyaXRpbmdE
aXJlY3Rpb24uaD4KQEAgLTEzNiw2ICsxMzksNyBAQAogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9E
YXRhRGV0ZWN0b3JzQ29yZVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9MYXVuY2hTZXJ2
aWNlc1NQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmdTUEku
aD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgogI2ltcG9ydCA8cGFs
L3NwaS9pb3MvRGF0YURldGVjdG9yc1VJU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9HcmFw
aGljc1NlcnZpY2VzU1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2lvcy9NYW5hZ2VkQ29uZmlndXJh
dGlvblNQSS5oPgpAQCAtODk0LDYgKzg5OCwxMCBAQCAtICh2b2lkKXNldFVwSW50ZXJhY3Rpb24K
ICAgICBbc2VsZiBzZXRVcEhvdmVyR2VzdHVyZVJlY29nbml6ZXJdOwogI2VuZGlmCiAKKyNpZiBI
QVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVD
T0dOSVpFUikKKyAgICBfaG92ZXJQbGF0dGVyID0gYWRvcHROUyhbW1dLSG92ZXJQbGF0dGVyIGFs
bG9jXSBpbml0V2l0aFZpZXc6c2VsZi5yb290Q29udGVudFZpZXcgZGVsZWdhdGU6c2VsZl0pOwor
I2VuZGlmCisKICNpZiBIQVZFKExPT0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgX2xvb2t1
cEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW19VSUxvb2t1cEdlc3R1cmVSZWNvZ25pemVy
IGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2xvb2t1cEdlc3R1
cmVSZWNvZ25pemVkOildKTsKICAgICBbX2xvb2t1cEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVn
YXRlOnNlbGZdOwpAQCAtMTA4MSw2ICsxMDg5LDExIEBAIC0gKHZvaWQpY2xlYW5VcEludGVyYWN0
aW9uCiAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2hvdmVyR2VzdHVyZVJlY29n
bml6ZXIuZ2V0KCldOwogI2VuZGlmCiAKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQUE9S
VCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBbX2hvdmVyUGxhdHRl
ciBpbnZhbGlkYXRlXTsKKyAgICBfaG92ZXJQbGF0dGVyID0gbmlsOworI2VuZGlmCisKICNpZiBI
QVZFKExPT0tVUF9HRVNUVVJFX1JFQ09HTklaRVIpCiAgICAgW19sb29rdXBHZXN0dXJlUmVjb2du
aXplciBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVy
Ol9sb29rdXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CkBAIC00NzQwLDYgKzQ3NTMsMTAgQEAg
LSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogICAgIF9hY3RpdmVUZXh0SW50ZXJh
Y3Rpb25Db3VudCA9IDA7CiAgICAgX3RyZWF0QXNDb250ZW50RWRpdGFibGVVbnRpbE5leHRFZGl0
b3JTdGF0ZVVwZGF0ZSA9IE5POwogICAgIFtzZWxmIF9pbnZhbGlkYXRlQ3VycmVudFBvc2l0aW9u
SW5mb3JtYXRpb25dOworCisjaWYgSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVO
QUJMRShIT1ZFUl9HRVNUVVJFX1JFQ09HTklaRVIpCisgICAgW19ob3ZlclBsYXR0ZXIgZGlzbWlz
c1BsYXR0ZXJXaXRoQW5pbWF0aW9uOk5PXTsKKyNlbmRpZgogfQogCiAjaWYgIVVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpCkBAIC05NTAyLDYgKzk1MTksOCBAQCAtICh2b2lkKW1vdXNlR2Vz
dHVyZVJlY29nbml6ZXJDaGFuZ2VkOihXS01vdXNlR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJl
UmVjb2duaQogICAgICAgICBbc2VsZi53aW5kb3cgbWFrZUtleVdpbmRvd107CiAKICAgICBfcGFn
ZS0+aGFuZGxlTW91c2VFdmVudCgqZXZlbnQpOworICAgIGlmIChXS0hvdmVyUGxhdHRlckRvbWFp
bi5yb290U2V0dGluZ3MucGxhdHRlckVuYWJsZWRGb3JNb3VzZSkKKyAgICAgICAgW19ob3ZlclBs
YXR0ZXIgc2V0SG92ZXJQb2ludDpldmVudC0+cG9zaXRpb24oKV07CiB9CiAKIC0gKHZvaWQpX2Nv
bmZpZ3VyZU1vdXNlR2VzdHVyZVJlY29nbml6ZXIKQEAgLTk1MzYsMTAgKzk1NTUsMjEgQEAgLSAo
dm9pZClob3Zlckdlc3R1cmVSZWNvZ25pemVyQ2hhbmdlZDooV0tIb3Zlckdlc3R1cmVSZWNvZ25p
emVyICopZ2VzdHVyZVJlY29nbmkKICAgICAgICAgcmV0dXJuOwogCiAgICAgX3BhZ2UtPmhhbmRs
ZU1vdXNlRXZlbnQoKmV2ZW50KTsKKyAgICBpZiAoV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNl
dHRpbmdzLnBsYXR0ZXJFbmFibGVkRm9ySG92ZXIpCisgICAgICAgIFtfaG92ZXJQbGF0dGVyIHNl
dEhvdmVyUG9pbnQ6ZXZlbnQtPnBvc2l0aW9uKCldOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEhP
VkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKIAorI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQ
T1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCistICh2b2lkKXBvc2l0
aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0ZXI6KFdLSG92ZXJQbGF0dGVyICopaG92ZXJQbGF0
dGVyIHdpdGhSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0Jily
ZXF1ZXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIFtzZWxmIGRvQWZ0
ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOmNvbXBsZXRpb25IYW5kbGVyIGZvclJlcXVlc3Q6
cmVxdWVzdF07Cit9CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKE1FRElBX0NPTlRST0xTX0NPTlRF
WFRfTUVOVVMpICYmIFVTRShVSUNPTlRFWFRNRU5VKQogCiAtICh2b2lkKV9zaG93TWVkaWFDb250
cm9sc0NvbnRleHRNZW51OihXZWJDb3JlOjpGbG9hdFJlY3QmJil0YXJnZXRGcmFtZSBpdGVtczoo
VmVjdG9yPFdlYkNvcmU6Ok1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0+JiYpaXRlbXMgY29t
cGxldGlvbkhhbmRsZXI6KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6TWVkaWFDb250
cm9sc0NvbnRleHRNZW51SXRlbTo6SUQpPiYmKWNvbXBsZXRpb25IYW5kbGVyCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5Y2Q2YmY0
ZjJjMjJhMTAwZjQxMjM0MGM1ZmM2YTMwNzQ1ZWNmN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tIb3ZlclBsYXR0ZXIuaApAQCAtMCwwICsxLDQ5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFC
TEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCitAY2xhc3MgV0tIb3ZlclBsYXR0ZXI7CisK
K0Bwcm90b2NvbCBXS0hvdmVyUGxhdHRlckRlbGVnYXRlCisKK0ByZXF1aXJlZAorLSAodm9pZClw
b3NpdGlvbkluZm9ybWF0aW9uRm9ySG92ZXJQbGF0dGVyOihXS0hvdmVyUGxhdHRlciAqKWhvdmVy
UGxhdHRlciB3aXRoUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCYpcmVxdWVzdCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbikpY29tcGxldGlvbkhhbmRsZXI7CisKK0BlbmQKKworQGlu
dGVyZmFjZSBXS0hvdmVyUGxhdHRlciA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFZpZXc6KFVJVmlldyAqKXZpZXcgZGVsZWdhdGU6KGlkIDxXS0hvdmVyUGxhdHRlckRlbGVn
YXRlPilkZWxlZ2F0ZTsKKworLSAodm9pZClkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246KEJP
T0wpd2l0aEFuaW1hdGlvbjsKKworLSAodm9pZClpbnZhbGlkYXRlOworCitAcHJvcGVydHkgKG5v
bmF0b21pYywgYXNzaWduKSBXZWJDb3JlOjpGbG9hdFBvaW50IGhvdmVyUG9pbnQ7CisKK0BlbmQK
KworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9W
RVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLSG92ZXJQbGF0dGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
SG92ZXJQbGF0dGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiODIxNGNkOTczODFhMDA1N2I1NWZhZTdmN2Jh
NGJlZDE2NTZlZjIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tIb3ZlclBsYXR0ZXIubW0KQEAgLTAsMCArMSwzNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLSG92ZXJQbGF0dGVyLmgiCisKKyNpZiBIQVZFKFVJ
S0lUX1dJVEhfTU9VU0VfU1VQUE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpF
UikKKworI2ltcG9ydCAiV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisjaW1wb3J0IDxXZWJD
b3JlL1BhdGhVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRy
YXMuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvUXVhcnR6Q29yZVNQSS5oPgorCitzdGF0aWMg
UmV0YWluUHRyPENBQmFzaWNBbmltYXRpb24+IGNyZWF0ZUJhc2VBbmltYXRpb24oKQoreworICAg
IGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJvb3RTZXR0aW5nczsKKyAg
ICBpZiAocGFyYW1ldGVycy51c2VTcHJpbmcpIHsKKyAgICAgICAgYXV0byBzcHJpbmcgPSBhZG9w
dE5TKFtbQ0FTcHJpbmdBbmltYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW3NwcmluZyBz
ZXRNYXNzOnBhcmFtZXRlcnMuc3ByaW5nTWFzc107CisgICAgICAgIFtzcHJpbmcgc2V0U3RpZmZu
ZXNzOnBhcmFtZXRlcnMuc3ByaW5nU3RpZmZuZXNzXTsKKyAgICAgICAgW3NwcmluZyBzZXREYW1w
aW5nOnBhcmFtZXRlcnMuc3ByaW5nRGFtcGluZ107CisgICAgICAgIFtzcHJpbmcgc2V0RmlsbE1v
ZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOworICAgICAgICBbc3ByaW5nIHNldER1cmF0aW9uOltz
cHJpbmcgc2V0dGxpbmdEdXJhdGlvbl1dOworICAgICAgICByZXR1cm4gc3ByaW5nOworICAgIH0K
KworICAgIGF1dG8gZWFzZSA9IGFkb3B0TlMoW1tDQUJhc2ljQW5pbWF0aW9uIGFsbG9jXSBpbml0
XSk7CisgICAgW2Vhc2Ugc2V0RmlsbE1vZGU6a0NBRmlsbE1vZGVCYWNrd2FyZHNdOworICAgIFtl
YXNlIHNldER1cmF0aW9uOnBhcmFtZXRlcnMuZHVyYXRpb25dOworICAgIFtlYXNlIHNldFRpbWlu
Z0Z1bmN0aW9uOltDQU1lZGlhVGltaW5nRnVuY3Rpb24gZnVuY3Rpb25XaXRoTmFtZTprQ0FNZWRp
YVRpbWluZ0Z1bmN0aW9uRWFzZUluXV07CisgICAgcmV0dXJuIGVhc2U7Cit9CisKK3N0YXRpYyB2
b2lkIGFkZEFuaW1hdGlvbihDQUxheWVyICpsYXllciwgTlNTdHJpbmcgKmtleSwgaWQgZnJvbVZh
bHVlLCBpZCB0b1ZhbHVlKQoreworICAgIGF1dG8gYW5pbWF0aW9uID0gY3JlYXRlQmFzZUFuaW1h
dGlvbigpOworICAgIFthbmltYXRpb24gc2V0S2V5UGF0aDprZXldOworICAgIFthbmltYXRpb24g
c2V0RnJvbVZhbHVlOmZyb21WYWx1ZV07CisgICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOnRvVmFs
dWVdOworICAgIFtsYXllciBzZXRWYWx1ZTp0b1ZhbHVlIGZvcktleTprZXldOworICAgIFtsYXll
ciBhZGRBbmltYXRpb246YW5pbWF0aW9uLmdldCgpIGZvcktleTprZXldOworfTsKKworI2lmIFVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBs
YXR0ZXJBZGRpdGlvbnMubW0+CisjZWxzZQorc3RhdGljIENHRmxvYXQgc2V0QWRkaXRpb25hbFBs
YXR0ZXJMYXllclByb3BlcnRpZXMoQ0FMYXllciAqLCBDQUxheWVyICopIHsgcmV0dXJuIDA7IH0K
K3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxJbmNvbWluZ0FuaW1hdGlvbnMoQ0FMYXllciAqLCBD
R0Zsb2F0KSB7IH0KK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxEaXNtaXNzYWxBbmltYXRpb25z
KENBTGF5ZXIgKikgeyB9CisjZW5kaWYKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVy
IHsKKyAgICBfX3dlYWsgVUlWaWV3ICpfdmlldzsKKyAgICBfX3dlYWsgaWQgPFdLSG92ZXJQbGF0
dGVyRGVsZWdhdGU+IF9kZWxlZ2F0ZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IF9ob3ZlclBv
aW50OworCisgICAgQk9PTCBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDsKKyAgICBCT09MIF9oYXNEZWZlcnJlZFBvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OworCisg
ICAgQk9PTCBfaXNTaXR0aW5nRG93bjsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBfbGFzdEhv
dmVyQm91bmRzOworCisgICAgUmV0YWluUHRyPENBU2hhcGVMYXllcj4gX2xhc3RNYXNrTGF5ZXI7
CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9sYXN0U2hhZG93TGF5ZXI7CisgICAgUmV0YWluUHRy
PENBTGF5ZXI+IF9sYXN0UGxhdHRlckxheWVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfbGFz
dEJhY2tncm91bmRMYXllcjsKKyAgICBSZXRhaW5QdHI8Q0FQb3J0YWxMYXllcj4gX2xhc3RTbmFw
c2hvdExheWVyOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2
aWV3IGRlbGVnYXRlOihpZCA8V0tIb3ZlclBsYXR0ZXJEZWxlZ2F0ZT4pZGVsZWdhdGUKK3sKKyAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBXS0hvdmVyUGxhdHRlckRvbWFpbi5yb290U2V0dGluZ3M7Cisg
ICAgaWYgKCFwYXJhbWV0ZXJzLnBsYXR0ZXJFbmFibGVkRm9yTW91c2UgJiYgIXBhcmFtZXRlcnMu
cGxhdHRlckVuYWJsZWRGb3JIb3ZlcikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHNlbGYg
PSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisg
ICAgX3ZpZXcgPSB2aWV3OworICAgIF9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQoreworICAgIFtzZWxmIGRpc21pc3NQbGF0
dGVyV2l0aEFuaW1hdGlvbjpOT107CisgICAgX3ZpZXcgPSBuaWw7CisgICAgX2RlbGVnYXRlID0g
bmlsOworfQorCistIChXZWJDb3JlOjpGbG9hdFBvaW50KWhvdmVyUG9pbnQKK3sKKyAgICByZXR1
cm4gX2hvdmVyUG9pbnQ7Cit9CisKKy0gKHZvaWQpc2V0SG92ZXJQb2ludDooV2ViQ29yZTo6Rmxv
YXRQb2ludClwb2ludAoreworICAgIF9ob3ZlclBvaW50ID0gcG9pbnQ7CisKKyAgICBpZiAoX2hh
c091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpIHsKKyAgICAgICAgX2hhc0Rl
ZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBZRVM7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBbc2VsZiByZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1cnJlbnRI
b3ZlclBvaW50XTsKK30KKworLSAodm9pZClyZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbkZvckN1
cnJlbnRIb3ZlclBvaW50Cit7CisgICAgX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJl
cXVlc3QgPSBOTzsKKyAgICBfaGFzT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCA9IFlFUzsKKyAgICBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHBvc2l0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHsgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KF9ob3ZlclBv
aW50KSB9OworICAgIC8vIEZJWE1FOiBUaGlzIFRleHRJbmRpY2F0b3IgZG9lc24ndCBuZWVkIGEg
c25hcHNob3QgKGFuZCBhdm9pZGluZyBpdCB3b3VsZCBiZSBhIHNpemFibGUgcGVyZm9ybWFuY2Ug
d2luKS4KKyAgICBwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5pbmNsdWRlTGlua0luZGljYXRv
ciA9IFlFUzsKKyAgICBbX2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JIb3ZlclBsYXR0
ZXI6c2VsZiB3aXRoUmVxdWVzdDpwb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdCBjb21wbGV0aW9u
SGFuZGxlcjpbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0hvdmVyUGxhdHRlcj4oc2VsZildIChX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7Cisg
ICAgICAgIFt3ZWFrU2VsZiBkaWRSZWNlaXZlUG9zaXRpb25JbmZvcm1hdGlvbjppbmZvcm1hdGlv
bl07CisgICAgfV07Cit9CisKKy0gKHZvaWQpZGlkUmVjZWl2ZVBvc2l0aW9uSW5mb3JtYXRpb246
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0
aW9uCit7CisgICAgX2hhc091dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QgPSBO
TzsKKyAgICBpZiAoX2hhc0RlZmVycmVkUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3QpCisgICAg
ICAgIFtzZWxmIHJlcXVlc3RQb3NpdGlvbkluZm9ybWF0aW9uRm9yQ3VycmVudEhvdmVyUG9pbnRd
OworCisgICAgYXV0byBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgPSBpbmZvcm1hdGlvbi5saW5r
SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXM7CisgICAgaWYg
KHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdCA9IGluZm9ybWF0aW9uLmJvdW5kczsKKworICAgIGlmICghaW5mb3JtYXRp
b24uaXNMaW5rIHx8IHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgX2xhc3RIb3ZlckJvdW5kcyA9IHsgfTsKKyAgICAgICAgW3NlbGYgZGlzbWlzc1BsYXR0ZXJX
aXRoQW5pbWF0aW9uOllFU107CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoX2xh
c3RIb3ZlckJvdW5kcyA9PSBwcmVJbmZsYXRpb25Cb3VuZGluZ1JlY3QgJiYgIV9pc1NpdHRpbmdE
b3duKQorICAgICAgICByZXR1cm47CisgICAgX2xhc3RIb3ZlckJvdW5kcyA9IHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdDsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9t
YWluLnJvb3RTZXR0aW5nczsKKyAgICBhdXRvIGFuaW1hdGVCZXR3ZWVuUGxhdHRlcnMgPSBwYXJh
bWV0ZXJzLmFuaW1hdGVCZXR3ZWVuUGxhdHRlcnM7CisgICAgaWYgKCFhbmltYXRlQmV0d2VlblBs
YXR0ZXJzKQorICAgICAgICBbc2VsZiBkaXNtaXNzUGxhdHRlcldpdGhBbmltYXRpb246WUVTXTsK
KworICAgIF9pc1NpdHRpbmdEb3duID0gZmFsc2U7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qg
Ym91bmRpbmdSZWN0OworICAgIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFJlY3Q+IGluZmxhdGVkSW5k
aWNhdGVkUmVjdHM7CisgICAgYXV0byBpbmRpY2F0ZWRSZWN0cyA9IGluZm9ybWF0aW9uLmxpbmtJ
bmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlczsKKyAgICBhdXRvIHBs
YXR0ZXJQYWRkaW5nID0gcGFyYW1ldGVycy5wbGF0dGVyUGFkZGluZzsKKyAgICBpZiAoaW5kaWNh
dGVkUmVjdHMuaXNFbXB0eSgpKSB7CisgICAgICAgIGJvdW5kaW5nUmVjdCA9IHByZUluZmxhdGlv
bkJvdW5kaW5nUmVjdDsKKyAgICAgICAgYm91bmRpbmdSZWN0LmluZmxhdGUocGxhdHRlclBhZGRp
bmcpOworICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChwcmVJbmZsYXRpb25C
b3VuZGluZ1JlY3QpOworICAgIH0gZWxzZSB7CisgICAgICAgIGZvciAoYXV0byByZWN0IDogaW5k
aWNhdGVkUmVjdHMpIHsKKyAgICAgICAgICAgIHJlY3QuaW5mbGF0ZShwbGF0dGVyUGFkZGluZyk7
CisgICAgICAgICAgICBpbmZsYXRlZEluZGljYXRlZFJlY3RzLmFwcGVuZChyZWN0KTsKKyAgICAg
ICAgICAgIGJvdW5kaW5nUmVjdC51bml0ZShyZWN0KTsKKyAgICAgICAgfQorICAgICAgICBib3Vu
ZGluZ1JlY3QubW92ZUJ5KHByZUluZmxhdGlvbkJvdW5kaW5nUmVjdC5sb2NhdGlvbigpKTsKKyAg
ICB9CisKKyAgICBSZXRhaW5QdHI8Q0dQYXRoUmVmPiBpbmZsYXRlZFBhdGggPSBXZWJDb3JlOjpQ
YXRoVXRpbGl0aWVzOjpwYXRoV2l0aFNocmlua1dyYXBwZWRSZWN0cyhpbmZsYXRlZEluZGljYXRl
ZFJlY3RzLCBwYXJhbWV0ZXJzLnBsYXR0ZXJDb3JuZXJSYWRpdXMpLnBsYXRmb3JtUGF0aCgpOwor
ICAgIGF1dG8gcGxhdHRlckluZmxhdGlvblNpemUgPSBwYXJhbWV0ZXJzLnBsYXR0ZXJJbmZsYXRp
b25TaXplOworICAgIENHRmxvYXQgcGxhdHRlclNjYWxlID0gQ0dGbG9hdE1pbigoYm91bmRpbmdS
ZWN0LndpZHRoKCkgKyBwbGF0dGVySW5mbGF0aW9uU2l6ZSkgLyBib3VuZGluZ1JlY3Qud2lkdGgo
KSwgKGJvdW5kaW5nUmVjdC5oZWlnaHQoKSArIHBsYXR0ZXJJbmZsYXRpb25TaXplKSAvIGJvdW5k
aW5nUmVjdC5oZWlnaHQoKSk7CisKKyAgICAvLyBGSVhNRTogQ29uc2lkZXIgdXNpbmcgVUlLaXQn
cyBpbi1wcm9jZXNzIHJldGFyZ2V0YWJsZSBhbmltYXRpb25zLCBiZWNhdXNlIHJlYWRpbmcgYW5p
bWF0aW9uIHN0YXRlIGZyb20gdGhlIHByZXNlbnRhdGlvbiBsYXllciBpcyByYWN5LgorICAgIGJv
b2wgaGFkT2xkTGF5ZXJzID0gISFfbGFzdFNoYWRvd0xheWVyOworICAgIENHUmVjdCBvbGRTaGFk
b3dCb3VuZHMgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOwor
ICAgIENHUG9pbnQgb2xkU2hhZG93UG9zaXRpb24gPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50
YXRpb25MYXllcl0ucG9zaXRpb247CisgICAgQ0dGbG9hdCBvbGRTaGFkb3dPcGFjaXR5ID0gW19s
YXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnNoYWRvd09wYWNpdHk7CisgICAgQ0dG
bG9hdCBvbGRTaGFkb3dSYWRpdXMgPSBbX2xhc3RTaGFkb3dMYXllciBwcmVzZW50YXRpb25MYXll
cl0uc2hhZG93UmFkaXVzOworICAgIENBVHJhbnNmb3JtM0Qgb2xkU2hhZG93U3VibGF5ZXJUcmFu
c2Zvcm0gPSBfbGFzdFNoYWRvd0xheWVyID8gW19sYXN0U2hhZG93TGF5ZXIgcHJlc2VudGF0aW9u
TGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zvcm0zRElkZW50aXR5OworICAgIFJl
dGFpblB0cjxDR1BhdGhSZWY+IG9sZFNoYWRvd1BhdGggPSBbX2xhc3RTaGFkb3dMYXllciBwcmVz
ZW50YXRpb25MYXllcl0uc2hhZG93UGF0aDsKKyAgICBSZXRhaW5QdHI8Q0FMYXllcj4gc2hhZG93
ID0gX2xhc3RTaGFkb3dMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwor
ICAgIGF1dG8gc2hhZG93RnJhbWUgPSBDR1JlY3RPZmZzZXQoYm91bmRpbmdSZWN0LCBwbGF0dGVy
UGFkZGluZywgcGxhdHRlclBhZGRpbmcpOworICAgIFtzaGFkb3cgc2V0RnJhbWU6c2hhZG93RnJh
bWVdOworICAgIFtzaGFkb3cgc2V0U2hhZG93Q29sb3I6VUlDb2xvci5ibGFja0NvbG9yLkNHQ29s
b3JdOworICAgIFtzaGFkb3cgc2V0U2hhZG93UmFkaXVzOnBhcmFtZXRlcnMucGxhdHRlclNoYWRv
d1JhZGl1c107CisgICAgW3NoYWRvdyBzZXRTaGFkb3dPZmZzZXQ6Q0dTaXplWmVyb107CisgICAg
W3NoYWRvdyBzZXRTaGFkb3dPcGFjaXR5OnBhcmFtZXRlcnMucGxhdHRlclNoYWRvd09wYWNpdHld
OworICAgIFtzaGFkb3cgc2V0U3VibGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2Fs
ZShwbGF0dGVyU2NhbGUsIHBsYXR0ZXJTY2FsZSwgMSldOworICAgIFtzaGFkb3cgc2V0U2hhZG93
UGF0aDppbmZsYXRlZFBhdGguZ2V0KCldOworICAgIFtzaGFkb3cgd2ViX2Rpc2FibGVBbGxBY3Rp
b25zXTsKKyAgICBbW1tfdmlldyBzdXBlcnZpZXddIGxheWVyXSBhZGRTdWJsYXllcjpzaGFkb3cu
Z2V0KCldOworCisgICAgQ0dSZWN0IG9sZFBsYXR0ZXJCb3VuZHMgPSBbX2xhc3RQbGF0dGVyTGF5
ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLmJvdW5kczsKKyAgICBDR1BvaW50IG9sZFBsYXR0ZXJQb3Np
dGlvbiA9IFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25MYXllcl0ucG9zaXRpb247Cisg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IHBsYXR0ZXIgPSBfbGFzdFBsYXR0ZXJMYXllciA/OiBhZG9w
dE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtwbGF0dGVyIHNldEJvdW5kczpDR1Jl
Y3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1JlY3QuaGVpZ2h0KCkp
XTsKKyAgICBbcGxhdHRlciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShzaGFkb3dGcmFtZS5zaXpl
LndpZHRoIC8gMiAtIHBsYXR0ZXJQYWRkaW5nLCBzaGFkb3dGcmFtZS5zaXplLmhlaWdodCAvIDIg
LSBwbGF0dGVyUGFkZGluZyldOworICAgIGF1dG8gb2xkUGxhdHRlckFkZGl0aW9uYWxBbmltYXRp
b25WYWx1ZSA9IHNldEFkZGl0aW9uYWxQbGF0dGVyTGF5ZXJQcm9wZXJ0aWVzKHBsYXR0ZXIuZ2V0
KCksIFtfbGFzdFBsYXR0ZXJMYXllciBwcmVzZW50YXRpb25MYXllcl0pOworICAgIFtwbGF0dGVy
IHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisgICAgW3NoYWRvdyBhZGRTdWJsYXllcjpwbGF0dGVy
LmdldCgpXTsKKworICAgIENHUmVjdCBvbGRNYXNrQm91bmRzID0gW19sYXN0TWFza0xheWVyIHBy
ZXNlbnRhdGlvbkxheWVyXS5ib3VuZHM7CisgICAgQ0dQb2ludCBvbGRNYXNrUG9zaXRpb24gPSBb
X2xhc3RNYXNrTGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOworICAgIFJldGFpblB0
cjxDR1BhdGhSZWY+IG9sZE1hc2tQYXRoID0gW19sYXN0TWFza0xheWVyIHByZXNlbnRhdGlvbkxh
eWVyXS5wYXRoOworICAgIFJldGFpblB0cjxDQVNoYXBlTGF5ZXI+IG1hc2sgPSBfbGFzdE1hc2tM
YXllciA/OiBhZG9wdE5TKFtbQ0FTaGFwZUxheWVyIGFsbG9jXSBpbml0XSk7CisgICAgW21hc2sg
c2V0RmlsbENvbG9yOltVSUNvbG9yIGJsYWNrQ29sb3JdLkNHQ29sb3JdOworICAgIFttYXNrIHNl
dEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIGJvdW5kaW5nUmVjdC53aWR0aCgpLCBib3VuZGluZ1Jl
Y3QuaGVpZ2h0KCkpXTsKKyAgICBbbWFzayBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShib3VuZGlu
Z1JlY3Qud2lkdGgoKSAvIDIgKyBwbGF0dGVyUGFkZGluZywgYm91bmRpbmdSZWN0LmhlaWdodCgp
IC8gMiArIHBsYXR0ZXJQYWRkaW5nKV07CisgICAgW21hc2sgc2V0UGF0aDppbmZsYXRlZFBhdGgu
Z2V0KCldOworICAgIFttYXNrIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CisKKyAgICBDR1JlY3Qg
b2xkQmFja2dyb3VuZEJvdW5kcyA9IFtfbGFzdEJhY2tncm91bmRMYXllciBwcmVzZW50YXRpb25M
YXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkQmFja2dyb3VuZFBvc2l0aW9uID0gW19sYXN0
QmFja2dyb3VuZExheWVyIHByZXNlbnRhdGlvbkxheWVyXS5wb3NpdGlvbjsKKyAgICBSZXRhaW5Q
dHI8Q0dDb2xvclJlZj4gb2xkQmFja2dyb3VuZENvbG9yID0gW19sYXN0QmFja2dyb3VuZExheWVy
IHByZXNlbnRhdGlvbkxheWVyXS5iYWNrZ3JvdW5kQ29sb3I7CisgICAgUmV0YWluUHRyPENBTGF5
ZXI+IGJhY2tncm91bmQgPSBfbGFzdEJhY2tncm91bmRMYXllciA/OiBhZG9wdE5TKFtbQ0FMYXll
ciBhbGxvY10gaW5pdF0pOworICAgIFtiYWNrZ3JvdW5kIHNldEZyYW1lOltwbGF0dGVyIGJvdW5k
c11dOworICAgIFtiYWNrZ3JvdW5kIHNldEJhY2tncm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKGlu
Zm9ybWF0aW9uLmxpbmtJbmRpY2F0b3IuZXN0aW1hdGVkQmFja2dyb3VuZENvbG9yKV07CisgICAg
W2JhY2tncm91bmQgc2V0TWFzazptYXNrLmdldCgpXTsKKyAgICBbYmFja2dyb3VuZCB3ZWJfZGlz
YWJsZUFsbEFjdGlvbnNdOworICAgIFtwbGF0dGVyIGFkZFN1YmxheWVyOmJhY2tncm91bmQuZ2V0
KCldOworCisgICAgQ0dSZWN0IG9sZFNuYXBzaG90Qm91bmRzID0gW19sYXN0U25hcHNob3RMYXll
ciBwcmVzZW50YXRpb25MYXllcl0uYm91bmRzOworICAgIENHUG9pbnQgb2xkU25hcHNob3RQb3Np
dGlvbiA9IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnBvc2l0aW9uOwor
ICAgIENBVHJhbnNmb3JtM0Qgb2xkU25hcHNob3RTdWJsYXllclRyYW5zZm9ybSA9IF9sYXN0U25h
cHNob3RMYXllciA/IFtfbGFzdFNuYXBzaG90TGF5ZXIgcHJlc2VudGF0aW9uTGF5ZXJdLnN1Ymxh
eWVyVHJhbnNmb3JtIDogQ0FUcmFuc2Zvcm0zRElkZW50aXR5OworICAgIFJldGFpblB0cjxDQVBv
cnRhbExheWVyPiBzbmFwc2hvdCA9IF9sYXN0U25hcHNob3RMYXllciA/OiBhZG9wdE5TKFtbQ0FQ
b3J0YWxMYXllciBhbGxvY10gaW5pdF0pOworICAgIFtzbmFwc2hvdCBzZXRTb3VyY2VMYXllcjpb
X3ZpZXcgbGF5ZXJdXTsKKyAgICBbc25hcHNob3Qgc2V0TWF0Y2hlc1Bvc2l0aW9uOllFU107Cisg
ICAgW3NuYXBzaG90IHNldE1hdGNoZXNUcmFuc2Zvcm06WUVTXTsKKyAgICBbc25hcHNob3Qgc2V0
QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41LCAwLjUpXTsKKyAgICBbc25hcHNob3Qgc2V0U3Vi
bGF5ZXJUcmFuc2Zvcm06Q0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShwbGF0dGVyU2NhbGUsIHBsYXR0
ZXJTY2FsZSwgMSldOworICAgIFtzbmFwc2hvdCBzZXRNYXNrc1RvQm91bmRzOllFU107CisgICAg
W3NuYXBzaG90IHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgYm91bmRpbmdSZWN0LndpZHRoKCks
IGJvdW5kaW5nUmVjdC5oZWlnaHQoKSldOworICAgIFtzbmFwc2hvdCB3ZWJfZGlzYWJsZUFsbEFj
dGlvbnNdOworICAgIFtiYWNrZ3JvdW5kIGFkZFN1YmxheWVyOnNuYXBzaG90LmdldCgpXTsKKwor
ICAgIEJPT0wgbmVlZHNBbmltYXRlSW4gPSAhX2xhc3RQbGF0dGVyTGF5ZXIgfHwgX2lzU2l0dGlu
Z0Rvd247CisgICAgaWYgKG5lZWRzQW5pbWF0ZUluKSB7CisgICAgICAgIGFkZEFuaW1hdGlvbihz
aGFkb3cuZ2V0KCksIEAic2hhZG93T3BhY2l0eSIsIEAob2xkU2hhZG93T3BhY2l0eSksIEAoW3No
YWRvdyBzaGFkb3dPcGFjaXR5XSkpOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgp
LCBAInNoYWRvd1JhZGl1cyIsIEAob2xkU2hhZG93UmFkaXVzKSwgQChbc2hhZG93IHNoYWRvd1Jh
ZGl1c10pKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNoYWRvdy5nZXQoKSwgQCJzdWJsYXllclRy
YW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6b2xkU2hhZG93U3VibGF5
ZXJUcmFuc2Zvcm1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltzaGFkb3cgc3Vi
bGF5ZXJUcmFuc2Zvcm1dXSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKHNuYXBzaG90LmdldCgp
LCBAInN1YmxheWVyVHJhbnNmb3JtIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zvcm0zRDpv
bGRTbmFwc2hvdFN1YmxheWVyVHJhbnNmb3JtXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0FUcmFuc2Zv
cm0zRDpbc25hcHNob3Qgc3VibGF5ZXJUcmFuc2Zvcm1dXSk7CisKKyAgICAgICAgYWRkQWRkaXRp
b25hbEluY29taW5nQW5pbWF0aW9ucyhwbGF0dGVyLmdldCgpLCBvbGRQbGF0dGVyQWRkaXRpb25h
bEFuaW1hdGlvblZhbHVlKTsKKyAgICB9CisKKyAgICBpZiAoYW5pbWF0ZUJldHdlZW5QbGF0dGVy
cyAmJiBoYWRPbGRMYXllcnMpIHsKKyAgICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAi
Ym91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZE1hc2tCb3VuZHNdLCBbTlNWYWx1
ZSB2YWx1ZVdpdGhDR1JlY3Q6W21hc2sgYm91bmRzXV0pOworICAgICAgICBhZGRBbmltYXRpb24o
bWFzay5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6b2xkTWFz
a1Bvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpbbWFzayBwb3NpdGlvbl1dKTsK
KyAgICAgICAgYWRkQW5pbWF0aW9uKG1hc2suZ2V0KCksIEAicGF0aCIsIChpZClvbGRNYXNrUGF0
aC5nZXQoKSwgKGlkKVttYXNrIHBhdGhdKTsKKworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93
LmdldCgpLCBAImJvdW5kcyIsIFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRTaGFkb3dCb3Vu
ZHNdLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1JlY3Q6W3NoYWRvdyBib3VuZHNdXSk7CisgICAgICAg
IGFkZEFuaW1hdGlvbihzaGFkb3cuZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2YWx1ZVdp
dGhDR1BvaW50Om9sZFNoYWRvd1Bvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpb
c2hhZG93IHBvc2l0aW9uXV0pOworICAgICAgICBhZGRBbmltYXRpb24oc2hhZG93LmdldCgpLCBA
InNoYWRvd1BhdGgiLCAoaWQpb2xkU2hhZG93UGF0aC5nZXQoKSwgKGlkKVtzaGFkb3cgc2hhZG93
UGF0aF0pOworCisgICAgICAgIGFkZEFuaW1hdGlvbihwbGF0dGVyLmdldCgpLCBAImJvdW5kcyIs
IFtOU1ZhbHVlIHZhbHVlV2l0aENHUmVjdDpvbGRQbGF0dGVyQm91bmRzXSwgW05TVmFsdWUgdmFs
dWVXaXRoQ0dSZWN0OltwbGF0dGVyIGJvdW5kc11dKTsKKyAgICAgICAgYWRkQW5pbWF0aW9uKHBs
YXR0ZXIuZ2V0KCksIEAicG9zaXRpb24iLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDR1BvaW50Om9sZFBs
YXR0ZXJQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENHUG9pbnQ6W3BsYXR0ZXIgcG9zaXRp
b25dXSk7CisKKyAgICAgICAgYWRkQW5pbWF0aW9uKGJhY2tncm91bmQuZ2V0KCksIEAiYm91bmRz
IiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZEJhY2tncm91bmRCb3VuZHNdLCBbTlNWYWx1
ZSB2YWx1ZVdpdGhDR1JlY3Q6W2JhY2tncm91bmQgYm91bmRzXV0pOworICAgICAgICBhZGRBbmlt
YXRpb24oYmFja2dyb3VuZC5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UG9pbnQ6b2xkQmFja2dyb3VuZFBvc2l0aW9uXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dQb2ludDpb
YmFja2dyb3VuZCBwb3NpdGlvbl1dKTsKKworICAgICAgICBhZGRBbmltYXRpb24oc25hcHNob3Qu
Z2V0KCksIEAiYm91bmRzIiwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0Om9sZFNuYXBzaG90Qm91
bmRzXSwgW05TVmFsdWUgdmFsdWVXaXRoQ0dSZWN0OltzbmFwc2hvdCBib3VuZHNdXSk7CisgICAg
ICAgIGFkZEFuaW1hdGlvbihzbmFwc2hvdC5nZXQoKSwgQCJwb3NpdGlvbiIsIFtOU1ZhbHVlIHZh
bHVlV2l0aENHUG9pbnQ6b2xkU25hcHNob3RQb3NpdGlvbl0sIFtOU1ZhbHVlIHZhbHVlV2l0aENH
UG9pbnQ6W3NuYXBzaG90IHBvc2l0aW9uXV0pOworICAgIH0KKworICAgIF9sYXN0TWFza0xheWVy
ID0gbWFzazsKKyAgICBfbGFzdFNoYWRvd0xheWVyID0gc2hhZG93OworICAgIF9sYXN0UGxhdHRl
ckxheWVyID0gcGxhdHRlcjsKKyAgICBfbGFzdEJhY2tncm91bmRMYXllciA9IGJhY2tncm91bmQ7
CisgICAgX2xhc3RTbmFwc2hvdExheWVyID0gc25hcHNob3Q7Cit9CisKKy0gKHZvaWQpZGlzbWlz
c1BsYXR0ZXJXaXRoQW5pbWF0aW9uOihCT09MKXdpdGhBbmltYXRpb24KK3sKKyAgICBpZiAoX2lz
U2l0dGluZ0Rvd24pCisgICAgICAgIHJldHVybjsKKyAgICBfaXNTaXR0aW5nRG93biA9IHRydWU7
CisKKyAgICBpZiAoIXdpdGhBbmltYXRpb24pIHsKKyAgICAgICAgW19sYXN0U2hhZG93TGF5ZXIg
cmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbc2VsZiBjbGVhckxheWVyc107CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CisgICAgW0NB
VHJhbnNhY3Rpb24gc2V0Q29tcGxldGlvbkJsb2NrOltwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRy
KHNlbGYpLCBzaGFkb3dMYXllciA9IF9sYXN0U2hhZG93TGF5ZXJdIHsKKyAgICAgICAgW3Byb3Rl
Y3RlZFNlbGYgZGlkRmluaXNoQW5pbWF0aW9uRm9yU2hhZG93OnNoYWRvd0xheWVyLmdldCgpXTsK
KyAgICB9XTsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IFdLSG92ZXJQbGF0dGVyRG9tYWluLnJv
b3RTZXR0aW5nczsKKyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5nZXQoKSwgQCJz
aGFkb3dPcGFjaXR5IiwgQChbX2xhc3RTaGFkb3dMYXllciBzaGFkb3dPcGFjaXR5XSksIEAwKTsK
KyAgICBhZGRBbmltYXRpb24oX2xhc3RTaGFkb3dMYXllci5nZXQoKSwgQCJzaGFkb3dSYWRpdXMi
LCBAKFtfbGFzdFNoYWRvd0xheWVyIHNoYWRvd1JhZGl1c10pLCBAMCk7CisgICAgYWRkQW5pbWF0
aW9uKF9sYXN0U2hhZG93TGF5ZXIuZ2V0KCksIEAic3VibGF5ZXJUcmFuc2Zvcm0iLCBbTlNWYWx1
ZSB2YWx1ZVdpdGhDQVRyYW5zZm9ybTNEOltfbGFzdFNoYWRvd0xheWVyIHN1YmxheWVyVHJhbnNm
b3JtXV0sIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6Q0FUcmFuc2Zvcm0zRElkZW50
aXR5XSk7CisgICAgYWRkQW5pbWF0aW9uKF9sYXN0U25hcHNob3RMYXllci5nZXQoKSwgQCJzdWJs
YXllclRyYW5zZm9ybSIsIFtOU1ZhbHVlIHZhbHVlV2l0aENBVHJhbnNmb3JtM0Q6W19sYXN0U25h
cHNob3RMYXllciBzdWJsYXllclRyYW5zZm9ybV1dLCBbTlNWYWx1ZSB2YWx1ZVdpdGhDQVRyYW5z
Zm9ybTNEOkNBVHJhbnNmb3JtM0RJZGVudGl0eV0pOworICAgIGFkZEFkZGl0aW9uYWxEaXNtaXNz
YWxBbmltYXRpb25zKF9sYXN0UGxhdHRlckxheWVyLmdldCgpKTsKKworICAgIFtDQVRyYW5zYWN0
aW9uIGNvbW1pdF07CisKKyAgICBpZiAoIXBhcmFtZXRlcnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVy
cykKKyAgICAgICAgW3NlbGYgY2xlYXJMYXllcnNdOworfQorCistICh2b2lkKWRpZEZpbmlzaEFu
aW1hdGlvbkZvclNoYWRvdzooQ0FMYXllciAqKXNoYWRvd0xheWVyCit7CisgICAgYXV0byBwYXJh
bWV0ZXJzID0gV0tIb3ZlclBsYXR0ZXJEb21haW4ucm9vdFNldHRpbmdzOworICAgIGlmICghcGFy
YW1ldGVycy5hbmltYXRlQmV0d2VlblBsYXR0ZXJzKQorICAgICAgICBbc2hhZG93TGF5ZXIgcmVt
b3ZlRnJvbVN1cGVybGF5ZXJdOworCisgICAgaWYgKF9pc1NpdHRpbmdEb3duICYmIHBhcmFtZXRl
cnMuYW5pbWF0ZUJldHdlZW5QbGF0dGVycyAmJiBzaGFkb3dMYXllciA9PSBfbGFzdFNoYWRvd0xh
eWVyKSB7CisgICAgICAgIFtzaGFkb3dMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAg
ICAgIFtzZWxmIGNsZWFyTGF5ZXJzXTsKKyAgICB9Cit9CisKKy0gKHZvaWQpY2xlYXJMYXllcnMK
K3sKKyAgICBfbGFzdE1hc2tMYXllciA9IG5pbDsKKyAgICBfbGFzdFNoYWRvd0xheWVyID0gbmls
OworICAgIF9sYXN0UGxhdHRlckxheWVyID0gbmlsOworICAgIF9sYXN0QmFja2dyb3VuZExheWVy
ID0gbmlsOworICAgIF9sYXN0U25hcHNob3RMYXllciA9IG5pbDsKK30KKworQGVuZAorCisjZW5k
aWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZFUl9HRVNU
VVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjhjNDhmNDU5MTZhMzVkMDc4
NGEwN2FlNGJhOGVlMThmYTc2OWE4YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaApAQCAtMCwwICsxLDU4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmIEhBVkUoVUlLSVRfV0lUSF9NT1VTRV9TVVBQT1JUKSB8fCBFTkFC
TEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQorCisjaW1wb3J0ICJQcm90b3R5cGVUb29sc1NQ
SS5oIgorCitAaW50ZXJmYWNlIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyA6IFBUU2V0dGluZ3MK
KworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgcGxhdHRlckVuYWJsZWRGb3JNb3VzZTsKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHBsYXR0ZXJFbmFibGVkRm9ySG92ZXI7CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHBsYXR0ZXJDb3JuZXJSYWRpdXM7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgQ0dGbG9hdCBwbGF0dGVyUGFkZGluZzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBDR0Zsb2F0IHBsYXR0ZXJTaGFkb3dPcGFjaXR5OworQHByb3BlcnR5IChub25hdG9taWMpIENH
RmxvYXQgcGxhdHRlclNoYWRvd1JhZGl1czsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSB1bnNpZ25l
ZCBwbGF0dGVySW5mbGF0aW9uU2l6ZTsKKworQHByb3BlcnR5IChub25hdG9taWMpIEJPT0wgYW5p
bWF0ZUJldHdlZW5QbGF0dGVyczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljKSBDR0Zsb2F0IHNwcmlu
Z01hc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBzcHJpbmdTdGlmZm5lc3M7CitA
cHJvcGVydHkgKG5vbmF0b21pYykgQ0dGbG9hdCBzcHJpbmdEYW1waW5nOworQHByb3BlcnR5IChu
b25hdG9taWMpIE5TVGltZUludGVydmFsIGR1cmF0aW9uOworQHByb3BlcnR5IChub25hdG9taWMp
IENHRmxvYXQgdXNlU3ByaW5nOworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBv
cnQgPFdlYktpdEFkZGl0aW9ucy9XS0hvdmVyUGxhdHRlclBhcmFtZXRlcnNBZGRpdGlvbnMuaD4K
KyNlbmRpZgorCitAZW5kCisKK0BpbnRlcmZhY2UgV0tIb3ZlclBsYXR0ZXJEb21haW4gOiBQVERv
bWFpbgorKyAoV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzICopcm9vdFNldHRpbmdzOworQGVuZAor
CisjZW5kaWYgLy8gSEFWRShVSUtJVF9XSVRIX01PVVNFX1NVUFBPUlQpIHx8IEVOQUJMRShIT1ZF
Ul9HRVNUVVJFX1JFQ09HTklaRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDJhZWQ2YTEz
NzJmZDAyN2M1OTAwN2U2ZTk3NjU2MzJkMTIzNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5tbQpAQCAtMCww
ICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tI
b3ZlclBsYXR0ZXJQYXJhbWV0ZXJzLmgiCisKKyNpZiBIQVZFKFVJS0lUX1dJVEhfTU9VU0VfU1VQ
UE9SVCkgfHwgRU5BQkxFKEhPVkVSX0dFU1RVUkVfUkVDT0dOSVpFUikKKworI2ltcG9ydCAiUHJv
dG90eXBlVG9vbHNTUEkuaCIKKworQGludGVyZmFjZSBQVFNsaWRlclJvdyAoV2ViS2l0KQorCist
IChpZClpbnRlZ2VyTWluVmFsdWU6KENHRmxvYXQpbWluVmFsdWUgbWF4VmFsdWU6KENHRmxvYXQp
bWF4VmFsdWU7CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFBUU2xpZGVyUm93IChXZWJLaXQp
CisKKy0gKGlkKWludGVnZXJNaW5WYWx1ZTooQ0dGbG9hdCltaW5WYWx1ZSBtYXhWYWx1ZTooQ0dG
bG9hdCltYXhWYWx1ZQoreworICAgIHJldHVybiBbW3NlbGYgbWluVmFsdWU6bWluVmFsdWUgbWF4
VmFsdWU6bWF4VmFsdWVdIHZhbHVlVmFsaWRhdG9yOl5pZChpZCBwcm9wb3NlZFZhbHVlLCBpZCBz
ZXR0aW5ncykgeworICAgICAgICByZXR1cm4gQChDR1JvdW5kKFtwcm9wb3NlZFZhbHVlIGZsb2F0
VmFsdWVdKSk7CisgICAgfV07Cit9CisKK0BlbmQKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9T
REspCisjaW1wb3J0IDxXZWJLaXRBZGRpdGlvbnMvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJzQWRk
aXRpb25zLm1tPgorI2Vsc2UKK3N0YXRpYyB2b2lkIGFkZEFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0
UGFyYW1ldGVycyhOU011dGFibGVBcnJheSAqKSB7IH0KK3N0YXRpYyB2b2lkIHNldERlZmF1bHRW
YWx1ZXNGb3JBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMoV0tIb3ZlclBsYXR0ZXJQ
YXJhbWV0ZXJzICopIHsgfQorI2VuZGlmCisKK0BpbXBsZW1lbnRhdGlvbiBXS0hvdmVyUGxhdHRl
clBhcmFtZXRlcnMKKworLSAodm9pZClzZXREZWZhdWx0VmFsdWVzCit7CisgICAgW3N1cGVyIHNl
dERlZmF1bHRWYWx1ZXNdOworCisgICAgX3BsYXR0ZXJFbmFibGVkRm9yTW91c2UgPSBOTzsKKyAg
ICBfcGxhdHRlckVuYWJsZWRGb3JIb3ZlciA9IFlFUzsKKworICAgIF9wbGF0dGVyQ29ybmVyUmFk
aXVzID0gNjsKKyAgICBfcGxhdHRlclBhZGRpbmcgPSA1OworICAgIF9wbGF0dGVyU2hhZG93T3Bh
Y2l0eSA9IDAuNjsKKyAgICBfcGxhdHRlclNoYWRvd1JhZGl1cyA9IDEwOworICAgIF9wbGF0dGVy
SW5mbGF0aW9uU2l6ZSA9IDg7CisKKyAgICBfYW5pbWF0ZUJldHdlZW5QbGF0dGVycyA9IFlFUzsK
KyAgICBfc3ByaW5nTWFzcyA9IDI7CisgICAgX3NwcmluZ1N0aWZmbmVzcyA9IDEwMDsKKyAgICBf
c3ByaW5nRGFtcGluZyA9IDUwOworICAgIF9kdXJhdGlvbiA9IDAuMzsKKyAgICBfdXNlU3ByaW5n
ID0gWUVTOworCisgICAgc2V0RGVmYXVsdFZhbHVlc0ZvckFkZGl0aW9uYWxQbGF0dGVyTGF5b3V0
UGFyYW1ldGVycyhzZWxmKTsKK30KKworKyAoUFRNb2R1bGUgKilzZXR0aW5nc0NvbnRyb2xsZXJN
b2R1bGUKK3sKKyAgICBQVFNlY3Rpb24gKmVuYWJsZW1lbnRTZWN0aW9uID0gW1BUTW9kdWxlIHNl
Y3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRTd2l0Y2hSb3cgcm93V2l0aFRpdGxlOkAiRW5h
YmxlIFBsYXR0ZXIgRm9yIE1vdXNlIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyRW5hYmxlZEZvck1v
dXNlIl0sCisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6QCJFbmFibGUgUGxhdHRl
ciBGb3IgSG92ZXIiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJFbmFibGVkRm9ySG92ZXIiXSwKKyAg
ICBdIHRpdGxlOkAiUGxhdHRlciJdOworCisgICAgUFRTZWN0aW9uICphbmltYXRpb25TZWN0aW9u
ID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRTd2l0Y2hSb3cgcm93
V2l0aFRpdGxlOkAiQW5pbWF0ZSBCZXR3ZWVuIFBsYXR0ZXJzIiB2YWx1ZUtleVBhdGg6QCJhbmlt
YXRlQmV0d2VlblBsYXR0ZXJzIl0sCisgICAgICAgIFtQVFN3aXRjaFJvdyByb3dXaXRoVGl0bGU6
QCJVc2UgU3ByaW5nIiB2YWx1ZUtleVBhdGg6QCJ1c2VTcHJpbmciXSwKKyAgICAgICAgW1tbUFRT
bGlkZXJSb3cgcm93V2l0aFRpdGxlOkAiRHVyYXRpb24iIHZhbHVlS2V5UGF0aDpAImR1cmF0aW9u
Il0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0
ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gRkFMU0UiXV0sCisgICAgICAgIFtbUFRFZGl0Rmxv
YXRSb3cgcm93V2l0aFRpdGxlOkAiU3ByaW5nIE1hc3MiIHZhbHVlS2V5UGF0aDpAInNwcmluZ01h
c3MiXSBjb25kaXRpb246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJp
bmcgPT0gVFJVRSJdXSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJT
cHJpbmcgU3RpZmZuZXNzIiB2YWx1ZUtleVBhdGg6QCJzcHJpbmdTdGlmZm5lc3MiXSBjb25kaXRp
b246W05TUHJlZGljYXRlIHByZWRpY2F0ZVdpdGhGb3JtYXQ6QCJ1c2VTcHJpbmcgPT0gVFJVRSJd
XSwKKyAgICAgICAgW1tQVEVkaXRGbG9hdFJvdyByb3dXaXRoVGl0bGU6QCJTcHJpbmcgRGFtcGlu
ZyIgdmFsdWVLZXlQYXRoOkAic3ByaW5nRGFtcGluZyJdIGNvbmRpdGlvbjpbTlNQcmVkaWNhdGUg
cHJlZGljYXRlV2l0aEZvcm1hdDpAInVzZVNwcmluZyA9PSBUUlVFIl1dLAorICAgIF0gdGl0bGU6
QCJBbmltYXRpb24iXTsKKworICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gcGxhdHRlckxh
eW91dFJvd3MgPSBhZG9wdE5TKFtAWworICAgICAgICBbW1BUU2xpZGVyUm93IHJvd1dpdGhUaXRs
ZTpAIkNvcm5lciBSYWRpdXMiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJDb3JuZXJSYWRpdXMiXSBp
bnRlZ2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93
V2l0aFRpdGxlOkAiUGFkZGluZyIgdmFsdWVLZXlQYXRoOkAicGxhdHRlclBhZGRpbmciXSBpbnRl
Z2VyTWluVmFsdWU6MCBtYXhWYWx1ZToyMF0sCisgICAgICAgIFtbUFRTbGlkZXJSb3cgcm93V2l0
aFRpdGxlOkAiU2hhZG93IE9wYWNpdHkiIHZhbHVlS2V5UGF0aDpAInBsYXR0ZXJTaGFkb3dPcGFj
aXR5Il0gbWluVmFsdWU6MCBtYXhWYWx1ZToxXSwKKyAgICAgICAgW1tQVFNsaWRlclJvdyByb3dX
aXRoVGl0bGU6QCJTaGFkb3cgUmFkaXVzIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVyU2hhZG93UmFk
aXVzIl0gaW50ZWdlck1pblZhbHVlOjAgbWF4VmFsdWU6MjBdLAorICAgICAgICBbW1BUU2xpZGVy
Um93IHJvd1dpdGhUaXRsZTpAIkluZmxhdGlvbiBTaXplIiB2YWx1ZUtleVBhdGg6QCJwbGF0dGVy
SW5mbGF0aW9uU2l6ZSJdIGludGVnZXJNaW5WYWx1ZTowIG1heFZhbHVlOjMwXQorICAgIF0gbXV0
YWJsZUNvcHldKTsKKyAgICBhZGRBZGRpdGlvbmFsUGxhdHRlckxheW91dFBhcmFtZXRlcnMocGxh
dHRlckxheW91dFJvd3MuZ2V0KCkpOworCisgICAgUFRTZWN0aW9uICpwbGF0dGVyTGF5b3V0U2Vj
dGlvbiA9IFtQVE1vZHVsZSBzZWN0aW9uV2l0aFJvd3M6cGxhdHRlckxheW91dFJvd3MuZ2V0KCkg
dGl0bGU6QCJQbGF0dGVyIExheW91dCJdOworCisgICAgUFRTZWN0aW9uICpyZXN0b3JlRGVmYXVs
dHNTZWN0aW9uID0gW1BUTW9kdWxlIHNlY3Rpb25XaXRoUm93czpAWworICAgICAgICBbUFRCdXR0
b25Sb3cgcm93V2l0aFRpdGxlOkAiUmVzdG9yZSBEZWZhdWx0cyIgYWN0aW9uOltQVFJlc3RvcmVE
ZWZhdWx0U2V0dGluZ3NSb3dBY3Rpb24gYWN0aW9uXV0KKyAgICBdXTsKKworICAgIHJldHVybiBb
UFRNb2R1bGUgbW9kdWxlV2l0aFRpdGxlOm5pbCBjb250ZW50czpAWyBlbmFibGVtZW50U2VjdGlv
biwgYW5pbWF0aW9uU2VjdGlvbiwgcGxhdHRlckxheW91dFNlY3Rpb24sIHJlc3RvcmVEZWZhdWx0
c1NlY3Rpb24gXV07Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLSG92ZXJQbGF0dGVy
RG9tYWluCisKKysgKFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycyAqKXJvb3RTZXR0aW5ncworewor
ICAgIHJldHVybiBbc3VwZXIgcm9vdFNldHRpbmdzXTsKK30KKworKyAoTlNTdHJpbmcgKilkb21h
aW5Hcm91cE5hbWUKK3sKKyAgICByZXR1cm4gQCJXZWJLaXQiOworfQorCisrIChOU1N0cmluZyAq
KWRvbWFpbk5hbWUKK3sKKyAgICByZXR1cm4gQCJIb3ZlciBQbGF0dGVyIjsKK30KKworKyAoQ2xh
c3Mpcm9vdFNldHRpbmdzQ2xhc3MKK3sKKyAgICByZXR1cm4gW1dLSG92ZXJQbGF0dGVyUGFyYW1l
dGVycyBjbGFzc107Cit9CisKK0BlbmQKKworI2VuZGlmIC8vIEhBVkUoVUlLSVRfV0lUSF9NT1VT
RV9TVVBQT1JUKSB8fCBFTkFCTEUoSE9WRVJfR0VTVFVSRV9SRUNPR05JWkVSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOThjZTRkODM5
ZTQwOGMyY2ZlMTJjOGVmNzg4Y2Q0MTZhMjYwZGI5MS4uMGJhNjNhZDkzMDk4MzM2MWJhZjU3OWRk
ODg1MTUwOThkOGQwM2VjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC02MzQsNiArNjM0LDcgQEAKIAkJMkQxQjVENUQxODU4NjlDODAw
NkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDFCNUQ1QjE4NTg2OUM4
MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKIAkJMkQxQjVENUUxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RDFCNUQ1QzE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZXMu
aCAqLzsgfTsKIAkJMkQxRTgyMjMyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2ViRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMUU4MjIxMjE2RkZG
NTAwMEExNTI2NSAvKiBXS1dlYkV2ZW50LmggKi87IH07CisJCTJEMjc5RTE5MjY5NTU3NjgwMDRC
M0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQyNzlFMTgyNjk1NTc2ODAwNEIzRUVCIC8qIFByb3RvdHlwZVRv
b2xzU1BJLmggKi87IH07CiAJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBXS1ZpZXdMYXlv
dXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi87
IH07CiAJCTJEMjlFQ0QwMTkyRjJDMkUwMDk4NEI3OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5
UmVmcmVzaE1vbml0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJEMjlFQ0NFMTkyRjJDMkUwMDk4NEI3OCAvKiBSZW1vdGVMYXllclRyZWVEaXNwbGF5
UmVmcmVzaE1vbml0b3IuaCAqLzsgfTsKIAkJMkQzQTY1REIxQTdDM0ExRjAwQ0FDNjM3IC8qIFdL
TmF2aWdhdGlvbkFjdGlvblJlZi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlv
blJlZi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC0zMTcxLDYgKzMxNzIsMTEgQEAKIAkJMkQxRTgyMjIyMTZGRkY1MTAwQTE1MjY1IC8qIFdLV2Vi
RXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1dlYkV2
ZW50Lm1tOyBwYXRoID0gaW9zL1dLV2ViRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJEMjVGMzI4MjU3NThFOTAwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlP
U3VyZmFjZUJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1
cmZhY2VCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjVGMzI5MjU3
NThFOTEwMDIzMUE4QiAvKiBJbWFnZUJ1ZmZlclNoYXJlYWJsZUlPU3VyZmFjZUJhY2tlbmQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VCdWZmZXJTaGFyZWFibGVJT1N1cmZhY2VCYWNrZW5k
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkQyNzlFMEUyNjk0QzIyNjAwNEIz
RUVCIC8qIFdLSG92ZXJQbGF0dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLSG92ZXJQbGF0dGVyLmg7
IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkQyNzlFMEYyNjk0QzIyNzAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gV0tIb3ZlclBsYXR0ZXIubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTEwMjY5NEMyRDEwMDRC
M0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tIb3Zl
clBsYXR0ZXJQYXJhbWV0ZXJzLmg7IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJhbWV0ZXJz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJEMjc5RTExMjY5NEMyRDEwMDRCM0VF
QiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBX
S0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW07IHBhdGggPSBpb3MvV0tIb3ZlclBsYXR0ZXJQYXJh
bWV0ZXJzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDI3OUUxODI2OTU1NzY4
MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUHJvdG90eXBlVG9vbHNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQyOEE0OTUxQUY5NjVBMTAwRjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMjhBNDk2MUFGOTY1QTEwMEYxOTBDOSAvKiBX
S1ZpZXdMYXlvdXRTdHJhdGVneS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLVmlld0xheW91dFN0cmF0ZWd5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRDI4RjNFMDE4ODVDQ0MxMDA0QjlFQUUgLyogV2ViQ2hyb21lQ2xpZW50SU9TLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQ2hyb21lQ2xpZW50SU9T
Lm1tOyBwYXRoID0gaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTc3OTIsNiArNzc5OCwxMCBAQAogCQkJCTBGQ0I0RTQxMThCQkUwNDQwMDBG
Q0ZDOSAvKiBXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0gKi8s
CiAJCQkJRjREQjU0RTQyMzE5RTczMzAwOUUzMTU1IC8qIFdLSGlnaGxpZ2h0TG9uZ1ByZXNzR2Vz
dHVyZVJlY29nbml6ZXIuaCAqLywKIAkJCQlGNERCNTRFNTIzMTlFNzMzMDA5RTMxNTUgLyogV0tI
aWdobGlnaHRMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplci5tbSAqLywKKwkJCQkyRDI3OUUwRTI2
OTRDMjI2MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIuaCAqLywKKwkJCQkyRDI3OUUwRjI2OTRD
MjI3MDA0QjNFRUIgLyogV0tIb3ZlclBsYXR0ZXIubW0gKi8sCisJCQkJMkQyNzlFMTAyNjk0QzJE
MTAwNEIzRUVCIC8qIFdLSG92ZXJQbGF0dGVyUGFyYW1ldGVycy5oICovLAorCQkJCTJEMjc5RTEx
MjY5NEMyRDEwMDRCM0VFQiAvKiBXS0hvdmVyUGxhdHRlclBhcmFtZXRlcnMubW0gKi8sCiAJCQkJ
RjRCQTMzRjAyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNpc0dlc3R1cmVSZWNvZ25p
emVyLmggKi8sCiAJCQkJRjRCQTMzRjEyNTc1N0U4OTAwMEEzQ0U4IC8qIFdLSW1hZ2VBbmFseXNp
c0dlc3R1cmVSZWNvZ25pemVyLm1tICovLAogCQkJCTkzM0RGODJEMUIzQkMwOTAwMEFFQTlFMyAv
KiBXS0ltYWdlUHJldmlld1ZpZXdDb250cm9sbGVyLmggKi8sCkBAIC0xMTUyOSw2ICsxMTUzOSw3
IEBACiAJCQkJMkQ0QUYwODgyMDQ0QzNDNDAwNkM4ODE3IC8qIEZyb250Qm9hcmRTZXJ2aWNlc1NQ
SS5oICovLAogCQkJCUExM0IzREExMjA3RjM5REUwMDkwQzU4RCAvKiBNb2JpbGVXaUZpU1BJLmgg
Ki8sCiAJCQkJMzE3OEFGOTcyMEUyQTdGODAwNzRERTk0IC8qIFBERktpdFNQSS5oICovLAorCQkJ
CTJEMjc5RTE4MjY5NTU3NjgwMDRCM0VFQiAvKiBQcm90b3R5cGVUb29sc1NQSS5oICovLAogCQkJ
CTQ2RjM4RThCMjQxNkU2NkQwMDU5Mzc1QSAvKiBSdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oICov
LAogCQkJCUNFMUEwQkQwMUE0OEU2QzYwMDU0RUY3NCAvKiBUQ0NTUEkuaCAqLywKIAkJCQlDRTFB
MEJEMTFBNDhFNkM2MDA1NEVGNzQgLyogVGV4dElucHV0U1BJLmggKi8sCkBAIC0xMjIzNiw2ICsx
MjI0Nyw3IEBACiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5h
dGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3
IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1
REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkyRDI3OUUxOTI2OTU1NzY4MDA0QjNFRUIgLyogUHJvdG90eXBlVG9vbHNTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExRTY4ODcwMUY2RTJCQUIwMDcwMDZBNiAvKiBRdWFyYW50aW5lU1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTBDMjI3RTI0NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29r
VGh1bWJuYWlsaW5nU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRUU1NzI1MjQwOUYx
NDIwMDIwMDVENiAvKiBRdWlja0xvb2tUaHVtYm5haWxMb2FkZXIuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZyBiL1dlYktpdExpYnJhcmllcy9D
aGFuZ2VMb2cKaW5kZXggMTBlNzZjZDI1Yjk3ZTgwZjhhY2MwNjEyMzFhZTI1M2RhNTlhMjk1YS4u
NjIyMGM2YmUyYjI5NjE0ODg0M2FhNWQ5NTNiNmI0MDdhYmE5Y2M1MCAxMDA2NDQKLS0tIGEvV2Vi
S2l0TGlicmFyaWVzL0NoYW5nZUxvZworKysgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMjEtMDctMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIFdLSG92ZXJQbGF0dGVyIGFuZCBzb21lIGtub2JzIHRv
IHR3ZWFrIGl0cyBhcHBlYXJhbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjc3MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MTk4MjYyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAgICAgKiBXZWJLaXRQcml2
YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Q
cm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9hcHBsZXR2b3MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRv
b2xzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lP
Uy8xNC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE1L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQ6IEFkZGVkLgorICAgICAgICAqIFdlYktp
dFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRjaG9zLzcvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3Jr
L1Byb3RvdHlwZVRvb2xzLnRiZDogQWRkZWQuCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL3dhdGNob3MvOC9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkOiBBZGRlZC4KKwogMjAyMS0wNi0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10gUmVlbmFibGUgbW9kZXJuIHRleHQgaW5w
dXQgVUkgZm9yIG5vbi1udW1lcmljIHRleHQgaW5wdXQgdHlwZXMKZGlmZiAtLWdpdCBhL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvYXBwbGV0dm9zLzE0L1Byb3Rv
dHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9Qcm90b3R5cGVUb29scy5m
cmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhOGIxNDJmODdkNjc4OTQ1
ZWVmYmRhY2M2YTI3YjE0YjI1ZTI0Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJp
ZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNC9Qcm90b3R5cGVUb29s
cy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBp
LXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQgXQoraW5zdGFsbC1uYW1l
OiAgICAnL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xzLmZy
YW1ld29yay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06
IHR2b3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJtNjQgXQor
ICAgIG9iamMtY2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0
Um93LCBQVE1vZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywg
UFRSb3dBY3Rpb24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1Jvdywg
UFRTd2l0Y2hSb3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJp
dmF0ZUZyYW1ld29ya1N0dWJzL2FwcGxldHZvcy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsv
UHJvdG90eXBlVG9vbHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdv
cmtTdHVicy9hcHBsZXR2b3MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRv
b2xzLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYThiMTQyZjg3ZDY3ODk0NWVlZmJkYWNjNmEyN2IxNGIyNWUy
NGNkCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9hcHBsZXR2b3MvMTUvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlw
ZVRvb2xzLnRiZApAQCAtMCwwICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAg
ICAgICAgWyB4ODZfNjQsIGFybTY0IF0KK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFy
eS9Qcml2YXRlRnJhbWV3b3Jrcy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3BsYXRmb3JtOiB0dm9zCitleHBvcnRzOgorICAt
IGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0IF0KKyAgICBvYmpjLWNsYXNzZXM6ICAg
IFsgUFRCdXR0b25Sb3csIFBURG9tYWluLCBQVEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVz
dG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlvbiwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rp
b24sIFBUU2V0dGluZ3MsIFBUU2xpZGVyUm93LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgpk
aWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTQvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZCBiL1dlYktp
dExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRv
b2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2VlYjQyZjZjMWM4
NDc2ZjlmMDE5ZGMyNzNkYjUxYThhMDNkYTgzNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdExp
YnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE0L1Byb3RvdHlwZVRvb2xz
LmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGkt
dGJkLXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3Rh
bGwtbmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Qcm90b3R5cGVU
b29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMnCitvYmpjLWNvbnN0cmFpbnQ6IG5vbmUKK3Bs
YXRmb3JtOiBpb3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIHg4Nl82NCwgYXJt
NjQsIGFybTY0ZSBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0dG9uUm93LCBQVERvbWFp
biwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZhdWx0U2V0dGluZ3NSb3dB
Y3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNldHRpbmdzLCBQVFNsaWRl
clJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE1L1Byb3RvdHlwZVRvb2xzLmZy
YW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0
ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBl
VG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZWI0MmY2YzFjODQ3NmY5ZjAxOWRjMjczZGI1MWE4YTAz
ZGE4MzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZy
YW1ld29ya1N0dWJzL2lPUy8xNS9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBpLXRiZC12MworYXJjaHM6ICAgICAgICAg
ICBbIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xp
YnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlw
ZVRvb2xzJworb2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogaW9zCitleHBvcnRzOgor
ICAtIGFyY2hzOiAgICAgICAgICAgWyB4ODZfNjQsIGFybTY0LCBhcm02NGUgXQorICAgIG9iamMt
Y2xhc3NlczogICAgWyBQVEJ1dHRvblJvdywgUFREb21haW4sIFBURWRpdEZsb2F0Um93LCBQVE1v
ZHVsZSwgUFRSZXN0b3JlRGVmYXVsdFNldHRpbmdzUm93QWN0aW9uLCBQVFJvdywgUFRSb3dBY3Rp
b24sIFBUU2VjdGlvbiwgUFRTZXR0aW5ncywgUFRTbGlkZXJSb3csIFBUU1JvdywgUFRTd2l0Y2hS
b3cgXQorLi4uCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1l
d29ya1N0dWJzL3dhdGNob3MvNy9Qcm90b3R5cGVUb29scy5mcmFtZXdvcmsvUHJvdG90eXBlVG9v
bHMudGJkIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRj
aG9zLzcvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZDdmN2VkYjQwN2JlMmViYjcyNGMzNjMyZTk5YjI4NjQ0ZjE0Y2M0Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy93YXRj
aG9zLzcvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzLnRiZApAQCAtMCww
ICsxLDkgQEAKKy0tLSAhdGFwaS10YmQtdjMKK2FyY2hzOiAgICAgICAgICAgWyBpMzg2LCB4ODZf
NjQsIGFybTY0LCBhcm02NGUsIGFybTY0XzMyLCBhcm12N2sgXQoraW5zdGFsbC1uYW1lOiAgICAn
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1Byb3RvdHlwZVRvb2xzLmZyYW1ld29y
ay9Qcm90b3R5cGVUb29scycKK29iamMtY29uc3RyYWludDogbm9uZQorcGxhdGZvcm06IHdhdGNo
b3MKK2V4cG9ydHM6CisgIC0gYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4Nl82NCwgYXJtNjQs
IGFybTY0ZSwgYXJtNjRfMzIsIGFybXY3ayBdCisgICAgb2JqYy1jbGFzc2VzOiAgICBbIFBUQnV0
dG9uUm93LCBQVERvbWFpbiwgUFRFZGl0RmxvYXRSb3csIFBUTW9kdWxlLCBQVFJlc3RvcmVEZWZh
dWx0U2V0dGluZ3NSb3dBY3Rpb24sIFBUUm93LCBQVFJvd0FjdGlvbiwgUFRTZWN0aW9uLCBQVFNl
dHRpbmdzLCBQVFNsaWRlclJvdywgUFRTUm93LCBQVFN3aXRjaFJvdyBdCisuLi4KZGlmZiAtLWdp
dCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvd2F0Y2hvcy84
L1Byb3RvdHlwZVRvb2xzLmZyYW1ld29yay9Qcm90b3R5cGVUb29scy50YmQgYi9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvOC9Qcm90b3R5cGVUb29s
cy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkN2Y3ZWRiNDA3YmUy
ZWJiNzI0YzM2MzJlOTliMjg2NDRmMTRjYzQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRMaWJy
YXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL3dhdGNob3MvOC9Qcm90b3R5cGVUb29s
cy5mcmFtZXdvcmsvUHJvdG90eXBlVG9vbHMudGJkCkBAIC0wLDAgKzEsOSBAQAorLS0tICF0YXBp
LXRiZC12MworYXJjaHM6ICAgICAgICAgICBbIGkzODYsIHg4Nl82NCwgYXJtNjQsIGFybTY0ZSwg
YXJtNjRfMzIsIGFybXY3ayBdCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJp
dmF0ZUZyYW1ld29ya3MvUHJvdG90eXBlVG9vbHMuZnJhbWV3b3JrL1Byb3RvdHlwZVRvb2xzJwor
b2JqYy1jb25zdHJhaW50OiBub25lCitwbGF0Zm9ybTogd2F0Y2hvcworZXhwb3J0czoKKyAgLSBh
cmNoczogICAgICAgICAgIFsgaTM4NiwgeDg2XzY0LCBhcm02NCwgYXJtNjRlLCBhcm02NF8zMiwg
YXJtdjdrIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgUFRCdXR0b25Sb3csIFBURG9tYWluLCBQ
VEVkaXRGbG9hdFJvdywgUFRNb2R1bGUsIFBUUmVzdG9yZURlZmF1bHRTZXR0aW5nc1Jvd0FjdGlv
biwgUFRSb3csIFBUUm93QWN0aW9uLCBQVFNlY3Rpb24sIFBUU2V0dGluZ3MsIFBUU2xpZGVyUm93
LCBQVFNSb3csIFBUU3dpdGNoUm93IF0KKy4uLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>