<?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>205604</bug_id>
          
          <creation_ts>2019-12-27 02:08:25 -0800</creation_ts>
          <short_desc>[WebGL] Add a pure virtual base class for GraphicsContext3D</short_desc>
          <delta_ts>2020-01-03 08:19:59 -0800</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>
          <dependson>205648</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>graouts</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601588</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 02:08:25 -0800</bug_when>
    <thetext>[WebGL] Add a pure virtual base class for GraphicsContext3D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601590</commentid>
    <comment_count>1</comment_count>
      <attachid>386436</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 02:22:59 -0800</bug_when>
    <thetext>Created attachment 386436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601635</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-12-27 12:03:13 -0800</bug_when>
    <thetext>I think this would be easier to process if you split the enum renaming into its own change first.

Also, can you remind me, is GraphicsContext3D a generic 3D context that is used for both WebGL and WebGPU? If it&apos;s not really generic to anything but an OpenGL/OpenGLES/ANGLE backend, perhaps we should take this opportunity to rename it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601636</commentid>
    <comment_count>3</comment_count>
      <attachid>386451</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 12:24:31 -0800</bug_when>
    <thetext>Created attachment 386451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601639</commentid>
    <comment_count>4</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 13:29:28 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; I think this would be easier to process if you split the enum renaming into
&gt; its own change first.

Agreed (although now extra work!)

&gt; 
&gt; Also, can you remind me, is GraphicsContext3D a generic 3D context that is
&gt; used for both WebGL and WebGPU? If it&apos;s not really generic to anything but
&gt; an OpenGL/OpenGLES/ANGLE backend, perhaps we should take this opportunity to
&gt; rename it?

It is just for GLES/WebGL-like things, so maybe it should be called GraphicsContextGL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601640</commentid>
    <comment_count>5</comment_count>
      <attachid>386454</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 13:40:26 -0800</bug_when>
    <thetext>Created attachment 386454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601642</commentid>
    <comment_count>6</comment_count>
      <attachid>386456</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 14:05:17 -0800</bug_when>
    <thetext>Created attachment 386456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601643</commentid>
    <comment_count>7</comment_count>
      <attachid>386457</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 14:29:48 -0800</bug_when>
    <thetext>Created attachment 386457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601645</commentid>
    <comment_count>8</comment_count>
      <attachid>386458</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-27 16:18:13 -0800</bug_when>
    <thetext>Created attachment 386458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601695</commentid>
    <comment_count>9</comment_count>
      <attachid>386473</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-28 12:09:30 -0800</bug_when>
    <thetext>Created attachment 386473
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601788</commentid>
    <comment_count>10</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-12-29 13:43:40 -0800</bug_when>
    <thetext>Committed r253939: &lt;https://trac.webkit.org/changeset/253939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601789</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-29 13:44:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/58233288&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602439</commentid>
    <comment_count>12</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-03 08:17:10 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #10)
&gt; Committed r253939: &lt;https://trac.webkit.org/changeset/253939&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602442</commentid>
    <comment_count>13</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-03 08:19:59 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #10)
&gt; Committed r253939: &lt;https://trac.webkit.org/changeset/253939&gt;
This might have broken wincairo build. Please check.

r253938 passed in https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Release%20%28Build%29/builds/14464

r253939 failed in https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Release%20%28Build%29/builds/14465


Similarly on Debug:
r253938 passed in https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Debug%20%28Build%29/builds/12882

r253939 failed in https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Debug%20%28Build%29/builds/12883</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386436</attachid>
            <date>2019-12-27 02:22:59 -0800</date>
            <delta_ts>2019-12-27 12:24:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191227212256.patch</filename>
            <type>text/plain</type>
            <size>346405</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGI4ZGEzYjJiYjhjNTI1
OTc2ZjY5YzdkNmE2Yzk3OTBhNzU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZyA9IDAsCisgICAgICAgIERvUHJlbXVsdGlwbHkgPSAxLAorICAgICAg
ICBEb1VubXVsdGlwbHkgPSAyCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRE9NU291cmNlIDog
dWludDhfdCB7CisgICAgICAgIEltYWdlID0gMCwKKyAgICAgICAgQ2FudmFzID0gMSwKKyAgICAg
ICAgVmlkZW8gPSAyLAorICAgICAgICBOb25lID0gMworICAgIH07CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
ID0gMDsKKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZvcm1h
dCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkExNkY6CisgICAgICAg
IGNhc2UgRGF0YUZvcm1hdDo6QTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTg6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6QVI4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJB
MTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkFSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1h
dDo6UkdCQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZv
cm1hdCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgICAgIGNhc2UgRGF0
YUZvcm1hdDo6UkdCQTg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTE2RjoKKyAgICAg
ICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBMzJGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJH
Qjg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCMTZGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQjMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1I4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFSR0I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6
OlJHQkE1NTUxOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE0NDQ0OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQjU2NToKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlIz
MkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkFSODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gQ2hlY2sgaWYgdGhlIGZvcm1hdCBpcyBvbmUgb2YgdGhlIGZvcm1hdHMgZnJvbSB0aGUgSW1h
Z2VEYXRhIG9yIERPTSBlbGVtZW50cy4KKyAgICAvLyBUaGUgZm9ybWF0cyBmcm9tIEltYWdlRGF0
YSBpcyBhbHdheXMgUkdCQTguCisgICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBET00gZWxlbWVudHMg
dmFyeSB3aXRoIEdyYXBoaWNzIHBvcnRzLiBJdCBjYW4gb25seSBiZSBSR0JBOCBvciBCR1JBOCBm
b3Igbm9uLUNHIHBvcnQgd2hpbGUgYSBsaXR0bGUgbW9yZSBmb3IgQ0cgcG9ydC4KKyAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBib29sIHNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRPckltYWdl
RGF0YShEYXRhRm9ybWF0IFNyY0Zvcm1hdCkKKyAgICB7CisjaWYgVVNFKENHKQorI2lmIENQVShC
SUdfRU5ESUFOKQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0
OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSQTggfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OkFSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkE4OworI2Vsc2UKKyAgICAvLyBUaGF0IExJVFRMRV9F
TkRJQU4gY2FzZSBoYXMgbW9yZSBwb3NzaWJsZSBmb3JtYXRzIHRoYW4gQklHX0VORElBTiBjYXNl
IGlzIGJlY2F1c2Ugc29tZSBkZWNvZGVkIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYmlnIGVuZGlh
bgorICAgIC8vIGV2ZW4gb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzLgorICAgIHJldHVy
biBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3Jt
YXQ6OkFCR1I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpCR1I4CisgICAgICAgIHx8IFNy
Y0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6
QVJHQjggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQjgKKyAgICAgICAgfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBOAorICAg
ICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpBUjg7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpCR1JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOwor
ICAgICAgICBHQzNEZW51bSB0eXBlOworICAgICAgICBHQzNEaW50IHNpemU7CisgICAgfTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMsIERl
c3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0M0RCYXNl
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
M0RCYXNlKCkgPSBkZWZhdWx0OworCisgICAgLy8gPT09PT09PT09PSBXZWJHTCAxIGVudHJ5IHBv
aW50cy4KKworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKEdDM0RlbnVtIHRleHR1cmUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmlu
ZEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RPYmplY3QsIEdDM0R1aW50IGluZGV4LCBjb25zdCBT
dHJpbmcmIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVj
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihHQzNEY2xh
bXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNsYW1wZiBibHVlLCBHQzNEY2xhbXBmIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb24oR0MzRGVudW0gbW9kZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0MzRGVudW0gbW9k
ZVJHQiwgR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
YyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGJsZW5kRnVuY1NlcGFyYXRlKEdDM0RlbnVtIHNyY1JHQiwgR0MzRGVudW0gZHN0UkdCLCBH
QzNEZW51bSBzcmNBbHBoYSwgR0MzRGVudW0gZHN0QWxwaGEpID0gMDsKKworICAgIHZpcnR1YWwg
R0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
RGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5j
aWwoR0MzRGludCBzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVh
biByZWQsIEdDM0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBh
bHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmpl
Y3QpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlQnVmZmVyKCkgPSAwOworICAg
IHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwg
UGxhdGZvcm0zRE9iamVjdCBjcmVhdGVTaGFkZXIoR0MzRGVudW0pID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShHQzNEZW51bSBtb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
QnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJh
bWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVu
ZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
U2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5j
KEdDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpO
ZWFyLCBHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVy
KFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdBcnJheXMoR0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6
ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlKEdDM0RlbnVtIGNhcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZh
Y2UoR0MzRGVudW0gbW9kZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlTWlwbWFw
KEdDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJp
YihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVVbmlmb3JtKFBsYXRmb3JtM0RPYmplY3Qg
cHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXpl
aSBtYXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykg
PSAwOworCisgICAgdmlydHVhbCBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdldEJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRTdHJpbmcoR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYo
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW50ZWdlcnYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQ2NCogdmFsdWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEJvb2xlYW52KEdDM0RlbnVtIHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpID0gMDsK
KworICAgIHZpcnR1YWwgR0MzRGVudW0gZ2V0RXJyb3IoKSA9IDA7CisKKyAgICAvLyBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFBy
b2dyYW1QYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFNoYWRl
clBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVu
dW0gcHJlY2lzaW9uVHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgPSAw
OworCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKworICAgIC8vIGdldFRleFBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQ
YXJhbWV0ZXJmdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRV
bmlmb3JtCisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VW5pZm9ybWl2KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGludCBnZXRV
bmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7
CisKKyAgICAvLyBnZXRWZXJ0ZXhBdHRyaWIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0
cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGluZGV4LCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRHNp
emVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5h
bWUpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNCdWZmZXIoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNFbmFibGVkKEdDM0RlbnVt
IGNhcCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1Byb2dyYW0oUGxhdGZv
cm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNTaGFkZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNUZXh0dXJl
KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKEdDM0Rm
bG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvbHlnb25PZmZzZXQoR0MzRGZsb2F0
IGZhY3RvciwgR0MzRGZsb2F0IHVuaXRzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNoYWRl
clNvdXJjZShQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIHN0cmluZykgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBH
QzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUo
R0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2sp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1
aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWws
IEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0
ZXJmKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwg
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtM2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZs
b2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVp
LCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgy
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJp
eDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0
cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3Nl
LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliMWYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmYoR0MzRHVpbnQgaW5kZXgsIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwg
R0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjNmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4
LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjRmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2
YWx1ZXMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1
aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1h
bGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgR0MzRGVudW0gdXNhZ2UpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0
ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2FnZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEaW50IGJvcmRlciwgR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRh
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgdGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVt
IHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBH
QzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQg
Zmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVp
IGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNpemVpIHByaW1j
b3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKSA9IDA7CisKKyAgICBHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgY29udGV4dEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJzOyB9Cisg
ICAgdm9pZCBzZXRDb250ZXh0QXR0cmlidXRlcyhjb25zdCBHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMmIGF0dHJzKSB7IG1fYXR0cnMgPSBhdHRyczsgfQorCisgICAgLy8gVmVydGV4QXJyYXlP
amVjdCBjYWxscworICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJh
eSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisKKyNpZiBVU0UoT1BFTkdMKSAmJiBFTkFCTEUoV0VCR0wyKQorICAg
IHZpcnR1YWwgdm9pZCBwcmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpID0gMDsKKyNlbmRp
ZgorCisgICAgLy8gU3VwcG9ydCBmb3IgZXh0ZW5zaW9ucy4gUmV0dXJucyBhIG5vbi1udWxsIG9i
amVjdCwgdGhvdWdoIG5vdAorICAgIC8vIGFsbCBtZXRob2RzIGl0IGNvbnRhaW5zIG1heSBuZWNl
c3NhcmlseSBiZSBzdXBwb3J0ZWQgb24gdGhlCisgICAgLy8gY3VycmVudCBoYXJkd2FyZS4gTXVz
dCBjYWxsIEV4dGVuc2lvbnMzRDo6c3VwcG9ydHMoKSB0bworICAgIC8vIGRldGVybWluZSB0aGlz
LgorICAgIHZpcnR1YWwgRXh0ZW5zaW9uczNEJiBnZXRFeHRlbnNpb25zKCkgPSAwOworCisgICAg
Ly8gPT09PT09PT09PSBXZWJHTCAyIGVudHJ5IHBvaW50cy4KKworICAgIHZpcnR1YWwgdm9pZCog
bWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNp
emVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2VzcykgPSAwOworICAgIHZpcnR1YWwgR0Mz
RGJvb2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRl
VGFyZ2V0LCBHQzNEaW50cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdD
M0RzaXplaXB0cikgPSAwOworCisgICAgLy8gZ2V0SW50ZXJuYWxGb3JtYXRQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdD
M0RpbnQqIHBhcmFtcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0Zm9ybTNET2JqZWN0IHByb2dy
YW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFt
ZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpID0gMDsKKworICAgIC8vID09PT09PT09PT0gTm9u
LVdlYkdMIGJhc2VkIGVudHJ5IHBvaW50cy4KKworICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVh
ckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOworCisgICAgc3RhdGljIHVpbnQ4X3QgZ2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSk7CisKKyAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKworcHJpdmF0ZToKKyAgICBHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgbV9hdHRyczsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3Rp
bmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKaW5kZXgg
MWFiMWE0ZjY0YTYxNGU5ZDIzZGFjOGEwYTJhMmM0ODk3ZTkxZWU5MS4uNWVjMjcxNDVjMDMwZjlk
YmJkZGZmMjU0ZjNhMTRkYjE1YWJjM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKQEAgLTUxLDQgKzUxLDggQEAgdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIGxvbmcgR0MzRHVpbnQ2NDsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0
Zm9ybTNET2JqZWN0OwogCisjaWYgIVBMQVRGT1JNKENPQ09BKQordHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7CisjZW5kaWYKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3Bw
CmluZGV4IDc3YmIzYjJjZDE1ZTEyNzExMjY5NDY5NGE2NDc5MmEwZGMzMWY2NGEuLjBkYTJkODgx
MDk3YTNiZTIyNGRiYTgyNjhlN2IyYjVjMjU3MDYzYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dDNEQU5HTEUuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludAog
I2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKCFtX2F0dHJzLmFscGhhKQorICAg
IGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYSkKICAgICAgICAgd2lwZUFscGhhQ2hhbm5l
bEZyb21QaXhlbHMod2lkdGgsIGhlaWdodCwgcGl4ZWxzKTsKICNlbmRpZgogfQpAQCAtMTM0LDE3
ICsxMzQsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkK
IAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6
ZSkKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBjb25zdCBp
bnQgd2lkdGggPSBzaXplLndpZHRoKCk7CiAgICAgY29uc3QgaW50IGhlaWdodCA9IHNpemUuaGVp
Z2h0KCk7CiAgICAgR0x1aW50IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1h
dCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBpZiAoYXR0cnMuYWxwaGEpIHsK
ICAgICAgICAgbV9pbnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7CiAgICAgICAgIGNvbG9y
Rm9ybWF0ID0gR0xfUkdCQTsKICAgICB9IGVsc2UgewogICAgICAgICBtX2ludGVybmFsQ29sb3JG
b3JtYXQgPSBHTF9SR0I4OwogICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQjsKICAgICB9Ci0g
ICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJz
LnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhl
IGxvZ2ljIHdoZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAg
ICAgLy8gU2VlIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMuCiAKQEAgLTE1
Nyw3ICsxNTgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJ
bnRTaXplJiBzaXplKQogICAgIH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0aXNhbXBsZSBGQk8uCi0g
ICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewog
ICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdM
X01BWF9TQU1QTEVTX0FOR0xFLCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBt
b3JlIHRoYW4gNCBzYW1wbGVzIGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtl
bHkgdG8KQEAgLTE2Nyw3ICsxNjgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBl
RkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihH
TF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CiAgICAgICAgIGdldEV4
dGVuc2lvbnMoKS5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVGRkVS
LCBzYW1wbGVDb3VudCwgbV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAg
ICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xP
Ul9BVFRBQ0hNRU5UMCwgR0xfUkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAg
ICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIGdsOjpC
aW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7CiAgICAgICAgICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFn
ZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhT
dGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgICAgIC8vIFdlYkdMIDEuMCdz
IHJ1bGVzIHN0YXRlIHRoYXQgY29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBA
IC0xNzUsOSArMTc2LDkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpICYm
IGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID09IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTKQog
ICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNp
bCkKICAgICAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0
aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMu
ZGVwdGgpCisgICAgICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAg
ICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRI
X0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTIxNSw3ICsyMTYsNyBAQCBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAg
IGF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2ls
Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVl
OwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMp
IHsKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNh
bXBsZUZCTyk7CiAgICAgICAgIGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVG
Qk8pCiAgICAgICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI5LDcgKzIzMCw5
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNp
emUpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZl
cklmTmVlZGVkKEdMdWludCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQogewotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmli
dXRlcygpOworCisgICAgaWYgKCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5jaWwgfHwg
YXR0cnMuZGVwdGgpKSB7CiAgICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJV
RkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICBnbDo6UmVuZGVyYnVmZmVyU3Rv
cmFnZShHTF9SRU5ERVJCVUZGRVIsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwg
aGVpZ2h0KTsKICAgICAgICAgLy8gV2ViR0wgMS4wJ3MgcnVsZXMgc3RhdGUgdGhhdCBjb21iaW5l
ZCBkZXB0aC9zdGVuY2lsIHJlbmRlcmJ1ZmZlcnMKQEAgLTIzNyw5ICsyNDAsOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjphdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVp
bnQgaW50ZXJuYWxEZXB0aAogICAgICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiBpbnRl
cm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9PSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUykKICAgICAg
ICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVy
KTsKICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAg
ICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdM
X1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1f
YXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAg
ICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAg
ICAgfQogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwpA
QCAtMzc4LDE3ICszODEsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhH
QzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKICAgICAvLyBhbGwg
cHJldmlvdXMgcmVuZGVyaW5nIGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBp
eGVscy4KICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBnbDo6Rmx1c2goKTsKLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxl
RkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsK
ICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdp
ZHRoLCBoZWlnaHQpKTsKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgZ2w6OkZsdXNoKCk7CiAgICAgfQog
ICAgIGdsOjpSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0
YSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExB
VEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYg
KG1fc3RhdGUuYm91bmRGQk8gPT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxwaGEg
JiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRy
cy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAg
ICAgICAgIHdpcGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19j
YXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7CiAjZW5kaWYKIH0KQEAgLTM5OSwyMCArNDAzLDIz
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50
IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxp
ZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24p
CiB7CiAgICAgRXh0ZW5zaW9uczNEJiBleHRlbnNpb25zID0gZ2V0RXh0ZW5zaW9ucygpOwotICAg
IGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0
ZXMoKTsKKworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25z
LnN1cHBvcnRzKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4
dGVuc2lvbnMuZW5zdXJlRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAg
ICAgICAgICAgLy8gRm9yY2UgZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAg
bV9hdHRycy5kZXB0aCA9IHRydWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAg
ICAgICAgIH0gZWxzZQotICAgICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7Ci0KKyAg
ICAgICAgICAgIGF0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJp
YnV0ZXMoYXR0cnMpOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBp
ZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFkanVzdCB0aGlz
IHdoZW4gdXBncmFkaW5nIHRvIFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3VwcG9ydC4KLSAg
ICAgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0
aXNhbXBsZSIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9i
bGl0IikgfHwgIWV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX09FU19yZ2I4X3JnYmE4IikgfHwgaXNH
TEVTMkNvbXBsaWFudCgpKQotICAgICAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsK
LSAgICAgICAgZWxzZSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5H
TEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xf
QU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNf
cmdiOF9yZ2JhOCIpKSB7CisgICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfbXVsdGlzYW1wbGUiKTsKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgi
R0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpOwogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1
cmVFbmFibGVkKCJHTF9PRVNfcmdiOF9yZ2JhOCIpOwpAQCAtNDM3LDcgKzQ0NCw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVm
ZmVyKiBpbWFnZUJ1ZmZlcikKIAogICAgIHJlYWRSZW5kZXJpbmdSZXN1bHRzKHBpeGVscy5nZXQo
KSwgdG90YWxCeXRlcyk7CiAKLSAgICBpZiAoIW1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKSB7
CisgICAgaWYgKCFjb250ZXh0QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkgewogICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkgewogICAgICAgICAg
ICAgLy8gUHJlbXVsdGlwbHkgYWxwaGEuCiAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gc3Rk
OjptaW4oMjU1LCBwaXhlbHNbaSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7CkBAIC00NjQs
NyArNDcxLDcgQEAgUmVmUHRyPEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVu
ZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkKIHsKICAgICAvLyBSZWFkaW5nIHByZW11bHRpcGxp
ZWQgYWxwaGEgd291bGQgaW52b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcwogICAgIC8v
IGxvc3N5LgotICAgIGlmIChtX2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkKKyAgICBpZiAoY29u
dGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgYXV0byBpbWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShJbnRTaXplKG1f
Y3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQpKTsKQEAgLTQ5MCw3ICs0OTcsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKIAotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykKKyAgICBpZiAoY29udGV4dEF0
dHJpYnV0ZXMoKS5hbnRpYWxpYXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNl
c3NhcnkoKTsKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTUxNyw3ICs1MjQs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25l
ZCBjaGFyICpwaXhlbHMsIGludCBwaXhlbHNTaQogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwog
CiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcykgeworICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygpLmFudGlhbGlhcykgewogICAgICAg
ICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAg
IG11c3RSZXN0b3JlRkJPID0gdHJ1ZTsKQEAgLTU2OSw2ICs1NzYsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICBUZW1wb3JhcnlB
TkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOwogCiAgICAgYm9v
bCBtdXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUod2lkdGgsIGhlaWdodCkpOwor
ICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogCiAgICAgLy8gSW5pdGlhbGl6
ZSByZW5kZXJidWZmZXJzIHRvIDAuCiAgICAgR0xmbG9hdCBjbGVhckNvbG9yW10gPSB7MCwgMCwg
MCwgMH0sIGNsZWFyRGVwdGggPSAwOwpAQCAtNTgwLDE0ICs1ODgsMTQgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgZ2w6OkNsZWFy
Q29sb3IoMCwgMCwgMCwgMCk7CiAgICAgZ2w6OkdldEJvb2xlYW52KEdMX0NPTE9SX1dSSVRFTUFT
SywgY29sb3JNYXNrKTsKICAgICBnbDo6Q29sb3JNYXNrKEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RS
VUUsIEdMX1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJzLmRl
cHRoKSB7CiAgICAgICAgIGdsOjpHZXRGbG9hdHYoR0xfREVQVEhfQ0xFQVJfVkFMVUUsICZjbGVh
ckRlcHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoMSk7CiAgICAg
ICAgIGdsOjpHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ssICZkZXB0aE1hc2spOwogICAg
ICAgICBnbDo6RGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBjbGVhck1hc2sgfD0gR0xfREVQ
VEhfQlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlm
IChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGdsOjpHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX0NM
RUFSX1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6OkNsZWFyU3RlbmNpbCgwKTsK
ICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJVEVNQVNLLCByZWludGVycHJl
dF9jYXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC02MDEsMTEgKzYwOSwxMSBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAg
IGdsOjpDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3Jb
Ml0sIGNsZWFyQ29sb3JbM10pOwogICAgIGdsOjpDb2xvck1hc2soY29sb3JNYXNrWzBdLCBjb2xv
ck1hc2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsKLSAgICBpZiAobV9hdHRycy5k
ZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAgICBHcmFwaGljc0NvbnRleHQz
RDo6Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgZ2w6OkRlcHRoTWFzayhkZXB0aE1h
c2spOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0
ZW5jaWwpIHsKICAgICAgICAgZ2w6OkNsZWFyU3RlbmNpbChjbGVhclN0ZW5jaWwpOwogICAgICAg
ICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3RlbmNpbE1hc2spOwogICAgICAg
ICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVuY2lsTWFza0JhY2spOwpAQCAt
NjU3LDcgKzY2NSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcihH
QzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVyCiAgICAgaWYgKGJ1ZmZlcikK
ICAgICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAgICAgZmJvID0gKG1fYXR0cnMu
YW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKKyAgICAgICAgZmJvID0gKGNv
bnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsK
ICAgICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAgICAgICAgZ2w6OkJpbmRGcmFt
ZWJ1ZmZlcih0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBmYm87CkBA
IC04MzIsMjQgKzg0MCwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVy
RGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwor
CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlz
YW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRS
ZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICB9CiAgICAgZ2w6OkNv
cHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwg
aGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJP
KTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleFN1YkltYWdlMkQoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNl
dCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYm
IG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICByZXNvbHZl
TXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwog
ICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZF
UiwgbV9mYm8pOwogICAgIH0KICAgICBnbDo6Q29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZl
bCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAg
ICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0xMDM3LDExICsxMDQ5LDYgQEAg
aW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlvbkRpcmVjdChQbGF0Zm9ybTNE
T2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gZ2V0QXR0cmliTG9jYXRpb24ocHJv
Z3JhbSwgbmFtZSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAgIHJldHVybiBtX2F0dHJzOwot
fQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxp
c3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcApp
bmRleCA0MThiZjM1YjkyOTczMWJiM2Y5MzkyNzNiZDkxYWQ4NjhmZjRhNjE3Li5iYzkzOGI0NDJi
ODExOGFhYmEzZjQzMzEwNmIxNzdkMGY4Mjc1ZDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQzRENHLmNwcApA
QCAtNzcsMjEgKzc3LDIxIEBAIHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBn
ZXRTb3VyY2VEYXRhRm9ybWF0KHVuc2lnbmVkIGNvbXBvbmVudHNQZXJQCiAgICAgICAgIHsgU291
cmNlRm9ybWF0QmFzZVJHQiwgICAgICAgIFNvdXJjZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3Vy
Y2VGb3JtYXRCYXNlTnVtRm9ybWF0cyB9LCAvLyAzIGNvbXBvbmVudHNQZXJQaXhlbAogICAgICAg
ICB7IFNvdXJjZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3VyY2VGb3JtYXRCYXNlQVJHQiwgICAg
ICAgU291cmNlRm9ybWF0QmFzZVJHQkEgICAgICAgIH0gLy8gNCBjb21wb25lbnRzUGVyUGl4ZWwK
ICAgICB9OwotICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBm
b3JtYXRUYWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11bNF0gPSB7IC8vIFNvdXJjZURh
dGFGb3JtYXRCYXNlIHggYml0c1BlckNvbXBvbmVudCB4IGVuZGlhbgorICAgIGNvbnN0IHN0YXRp
YyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRUYWJsZVtTb3VyY2VGb3JtYXRC
YXNlTnVtRm9ybWF0c11bNF0gPSB7IC8vIFNvdXJjZURhdGFGb3JtYXQ6OkJhc2UgeCBiaXRzUGVy
Q29tcG9uZW50IHggZW5kaWFuCiAgICAgICAgIC8vIDhiaXRzLCBsaXR0bGUgZW5kaWFuICAgICAg
ICAgICAgICAgICA4Yml0cywgYmlnIGVuZGlhbiAgICAgICAgICAgICAgICAgICAgIDE2Yml0cywg
bGl0dGxlIGVuZGlhbiAgICAgICAgICAgICAgICAgICAgICAgIDE2Yml0cywgYmlnIGVuZGlhbgot
ICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2
TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkJpZyB9LAotICAgICAg
ICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAgIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2TGl0dGxl
LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZyB9LAotICAgICAgICB7IEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkxpdHRsZSwgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcgfSwKLSAgICAgICAgeyBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZMaXR0bGUsICAgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxpdHRsZSwgIEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZCaWcgfSwKLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSwgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0JBMTZCaWcgfSwKLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4LCBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRBUkdCMTZCaWcgfQorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4LCAgICBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OkE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgsICAgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZMaXR0bGUsICAgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMTZCaWcgfSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZMaXR0bGUsICAgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcgfSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjgs
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZMaXR0bGUsICAgR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcgfSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlLCAgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZMaXR0bGUsIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcgfSwKKyAgICAgICAgeyBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkxpdHRs
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkJpZyB9CiAgICAgfTsKIAog
ICAgIEFTU0VSVChjb21wb25lbnRzUGVyUGl4ZWwgPD0gNCAmJiBjb21wb25lbnRzUGVyUGl4ZWwg
PiAwKTsKICAgICBTb3VyY2VEYXRhRm9ybWF0QmFzZSBmb3JtYXRCYXNlID0gZm9ybWF0VGFibGVC
YXNlW2NvbXBvbmVudHNQZXJQaXhlbCAtIDFdW2FscGhhRm9ybWF0XTsKICAgICBpZiAoZm9ybWF0
QmFzZSA9PSBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cykKLSAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0TnVtRm9ybWF0czsKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpOdW1Gb3JtYXRzOwogICAgIHJldHVybiBmb3JtYXRU
YWJsZVtmb3JtYXRCYXNlXVsoaXMxNkJpdEZvcm1hdCA/IDIgOiAwKSArIChiaWdFbmRpYW4gPyAx
IDogMCldOwogfQogCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB1aW50OF90IGNvbnZlcnRDb2xvcjE2
QmlnVG84KHVpbnQxNl90IHZhbHVlKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50OF90Pih2
YWx1ZSAmIDB4MDBGRik7CiB9CiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIHR5cGVuYW1lIFNvdXJj
ZVR5cGUsIHR5cGVuYW1lIERzdFR5cGU+Cit0ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdCBmb3JtYXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1lIERzdFR5cGU+CiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBOChjb25zdCBTb3VyY2VU
eXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2TGl0dGxlLCB1aW50MTZfdCwg
dWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZl
cnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEx
NkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1f
TkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTE2TGl0dGxlVG9S
R0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtMTI3LDcgKzEyNyw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdC
QTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+
KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZCaWdUbzgo
c291cmNlWzBdKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgog
ICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2TGl0dGxlLCB1aW50
MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6
OlJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICNpZiBIQVZF
KEFSTV9ORU9OX0lOVFJJTlNJQ1MpCiAgICAgU0lNRDo6dW5wYWNrT25lUm93T2ZSR0IxNkxpdHRs
ZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTE1NCw3ICsx
NTQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRU
b1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2QmlnLCB1aW50MTZfdCwgdWludDhf
dD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVy
Um93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkJpZ1Rv
OChzb3VyY2VbMF0pOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRG
b3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2TGl0dGxlLCB1
aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYg
SEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mQVJHQjE2
TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtMTgx
LDcgKzE4MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRv
UkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTE5Myw3ICsxOTMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84KHNvdXJjZVswXSk7CkBAIC0y
MDUsNyArMjA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0
Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1
aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxz
UGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkJp
Z1RvOChzb3VyY2VbMF0pOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkxpdHRsZSwg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVz
dGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOwpAQCAtMjI5
LDcgKzIyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxz
UGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkJp
Z1RvOChzb3VyY2VbMF0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkxpdHRsZSwg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpBUjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVz
dGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMV0pOwpAQCAtMjUz
LDcgKzI1Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxz
UGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkJp
Z1RvOChzb3VyY2VbMV0pOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2TGl0dGxlLCB1
aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3Rp
bmF0aW9uWzBdID0gMHgwOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2QmlnLCB1aW50
MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6
OkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9u
WzBdID0gMHgwOwpAQCAtMjk2LDIwICsyOTYsMjAgQEAgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRU
b1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IHNyY0Zvcm1hdCwgY29uc3QgdWkK
ICAgICAgICAgcmV0dXJuIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8U3JjRm9ybWF0Pihzb3Vy
Y2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwogCiAgICAgc3dpdGNoIChzcmNGb3JtYXQp
IHsKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklU
Rk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxpdHRsZSkKLSAg
ICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEExNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1B
VFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2QmlnKQotICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIx
NkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxpdHRsZSkKLSAgICAgICAgQ09O
VkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnKQotICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2
TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZMaXR0bGUpCisgICAgICAgIENP
TlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIx
NkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZCaWcpCisgICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZMaXR0bGUpCisgICAgICAgIENP
TlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFS
MTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZykKKyAgICAgICAg
Q09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZP
Uk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkxpdHRsZSkK
KyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QVJHQjE2QmlnKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIH0KQEAgLTQxNywxOCArNDE3LDE4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBi
b29sCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2FscGhhT3AgPSBBbHBoYURvTm90aGluZzsK
KyAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb05vdGhpbmc7CiAgICAgQWxwaGFGb3JtYXQgYWxw
aGFGb3JtYXQgPSBBbHBoYUZvcm1hdE5vbmU7CiAgICAgc3dpdGNoIChDR0ltYWdlR2V0QWxwaGFJ
bmZvKG1fY2dJbWFnZS5nZXQoKSkpIHsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBs
aWVkRmlyc3Q6CiAgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgICAgIG1f
YWxwaGFPcCA9IEFscGhhRG9Vbm11bHRpcGx5OworICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxw
aGFPcDo6RG9Vbm11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1hdCA9IEFscGhhRm9ybWF0Rmly
c3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUZpcnN0OgogICAgICAg
ICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBNYWNPUyBlYXJsaWVyIHRoYW4g
MTAuNi40LgogICAgICAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkKLSAgICAgICAgICAgIG1fYWxw
aGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhh
T3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXRGaXJz
dDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJbWFnZUFscGhhTm9uZVNraXBGaXJzdDoK
QEAgLTQzNywxMiArNDM3LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFj
dG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxpZWRMYXN0OgogICAgICAgICBp
ZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBtX2FscGhhT3AgPSBBbHBoYURvVW5t
dWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvVW5tdWx0aXBseTsK
ICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUxhc3Q6CiAgICAgICAgIGlmIChwcmVtdWx0aXBseUFscGhh
KQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFEb1ByZW11bHRpcGx5OworICAgICAgICAg
ICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9QcmVtdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3Jt
YXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VB
bHBoYU5vbmVTa2lwTGFzdDoKQEAgLTQ1Niw3ICs0NTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4
dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwg
Ym9vbAogICAgIH0KIAogICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBnZXRTb3VyY2VEYXRhRm9y
bWF0KGNvbXBvbmVudHNQZXJQaXhlbCwgYWxwaGFGb3JtYXQsIGJpdHNQZXJDb21wb25lbnQgPT0g
MTYsIGJpZ0VuZGlhblNvdXJjZSk7Ci0gICAgaWYgKG1faW1hZ2VTb3VyY2VGb3JtYXQgPT0gRGF0
YUZvcm1hdE51bUZvcm1hdHMpCisgICAgaWYgKG1faW1hZ2VTb3VyY2VGb3JtYXQgPT0gRGF0YUZv
cm1hdDo6TnVtRm9ybWF0cykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbV9waXhlbERh
dGEgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ29weURhdGEoQ0dJbWFnZUdldERhdGFQcm92aWRl
cihtX2NnSW1hZ2UuZ2V0KCkpKSk7CkBAIC00OTAsNyArNDkwLDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wKICAgICAgICAgICAgIGRlc3RpbmF0aW9uICs9IGRzdFN0cmlkZUluRWxlbWVudHM7
CiAgICAgICAgIH0KICAgICAgICAgbV9pbWFnZVBpeGVsRGF0YSA9IHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3Qgdm9pZCo+KG1fZm9ybWFsaXplZFJHQkE4RGF0YS5nZXQoKSk7Ci0gICAgICAgIG1faW1h
Z2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgIG1faW1hZ2VTb3VyY2VG
b3JtYXQgPSBEYXRhRm9ybWF0OjpSR0JBODsKICAgICAgICAgbV9pbWFnZVNvdXJjZVVucGFja0Fs
aWdubWVudCA9IDE7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW0KaW5kZXggZGE2YjNiNmQyNmQ5ZTE0MGQ5MDcyZDFkYjViZTY0NDUwMzE1YWMx
YS4uZTFlNmQ0MmExNGU1YzI4MmE3OTZlY2FiY2MwOTMzNWI0MGEwZGJlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0M0RD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHQzRENvY29hLm1tCkBAIC0xMDIsMTAgKzEwMiwxMCBAQCBwdWJsaWM6CiAgICAg
fkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpIHsgfQogfTsKIAotUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJl
bmRlclN0eWxlIHJlbmRlclN0eWxlKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9z
dFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRlc3Rp
bmF0aW9uKQogewogICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24gZG9lc24ndCBjdXJyZW50bHkg
c3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RXaW5kb3cuCi0gICAgaWYgKHJl
bmRlclN0eWxlID09IFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93KQorICAgIGlmIChkZXN0aW5h
dGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3cpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRleHQg
aWYgd2UncmUgZnVsbC4KQEAgLTExMyw3ICsxMTMsNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0
M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
CiAgICAgaWYgKEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rv
b01hbnlDb250ZXh0cygpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxH
cmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBHcmFwaGljc0NvbnRleHQz
RChhdHRycywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAgICBSZWZQdHI8R3JhcGhpY3ND
b250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cnMs
IGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICAgICBpZiAoIWNvbnRleHQtPm1fY29udGV4
dE9iaikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMjYsNyArMTI2LDcgQEAgUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcwogUmVmPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQz
RDo6Y3JlYXRlU2hhcmVkKEdyYXBoaWNzQ29udGV4dDNEJiBzaGFyZWRDb250ZXh0KQogewogICAg
IGF1dG8gaG9zdFdpbmRvdyA9IEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmhvc3RXaW5kb3dGb3JDb250ZXh0KCZzaGFyZWRDb250ZXh0KTsKLSAgICBhdXRvIGNvbnRl
eHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dDNEKHNoYXJlZENvbnRleHQuZ2V0Q29u
dGV4dEF0dHJpYnV0ZXMoKSwgaG9zdFdpbmRvdywgc2hhcmVkQ29udGV4dC5tX3JlbmRlclN0eWxl
LCAmc2hhcmVkQ29udGV4dCkpOworICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3Jh
cGhpY3NDb250ZXh0M0Qoc2hhcmVkQ29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLCBob3N0V2lu
ZG93LCBzaGFyZWRDb250ZXh0LmRlc3RpbmF0aW9uKCksICZzaGFyZWRDb250ZXh0KSk7CiAKICAg
ICBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0KGNv
bnRleHQucHRyKCksIGhvc3RXaW5kb3cpOwogCkBAIC0xODMsOCArMTgzLDggQEAgc3RhdGljIHZv
aWQgc2V0R1BVQnlSZWdpc3RyeUlEKENHTENvbnRleHRPYmogY29udGV4dE9iaiwgQ0dMUGl4ZWxG
b3JtYXRPYmogcGl4ZWwKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgKFVTRShPUEVOR0wp
IHx8IFVTRShBTkdMRSkpCiAKLUdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3cs
IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJl
ZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJzKQorR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBo
aWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRv
dyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9u
LCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4
dDNEQmFzZShhdHRycywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX3ByaXZh
dGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+KHRoaXMpKQogewogCkBAIC0y
MDAsMzAgKzIwMCwzMCBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgICAgICByZXR1cm47
CiAKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIGlmIChtX2F0dHJzLmlzV2ViR0wyKQorICAgIGlm
IChhdHRycy5pc1dlYkdMMikKICAgICAgICAgbV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdl
KFNIX0VTU0xfT1VUUFVULCBTSF9XRUJHTDJfU1BFQyk7CiAgICAgZWxzZQogICAgICAgICBtX2Nv
bXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQVVQpOwogI2Vsc2UKLSAgICBp
ZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIpCiAgICAgICAgIG1f
Y29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9HTFNMXzQxMF9DT1JFX09VVFBVVCwgU0hf
V0VCR0wyX1NQRUMpOwogI2VuZGlmIC8vIFVTRShPUEVOR0xfRVMpCiAjZW5kaWYgLy8gIVVTRShB
TkdMRSkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgVU5VU0VEX1BBUkFNKGhvc3RXaW5kb3cp
OwotICAgIEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gbV9hdHRycy5pc1dlYkdMMiA/IGtFQUdMUmVu
ZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElPcGVuR0xFUzI7CisgICAgRUFH
TFJlbmRlcmluZ0FQSSBhcGkgPSBhdHRycy5pc1dlYkdMMiA/IGtFQUdMUmVuZGVyaW5nQVBJT3Bl
bkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElPcGVuR0xFUzI7CiAgICAgaWYgKCFzaGFyZWRDb250
ZXh0KQogICAgICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0
aEFQSTphcGldOwogICAgIGVsc2UKICAgICAgICAgbV9jb250ZXh0T2JqID0gW1tFQUdMQ29udGV4
dCBhbGxvY10gaW5pdFdpdGhBUEk6YXBpIHNoYXJlZ3JvdXA6c2hhcmVkQ29udGV4dC0+bV9jb250
ZXh0T2JqLnNoYXJlZ3JvdXBdOwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0gICAgaWYg
KG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAgICA6Omds
RW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpQUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9JTkRFWCk7
CiAjZWxpZiBVU0UoT1BFTkdMKQogCi0gICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0gbV9hdHRy
cy5hbnRpYWxpYXM7CisgICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0gYXR0cnMuYW50aWFsaWFz
OwogCiAgICAgVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiBhdHRyaWJzOwogICAgIENH
TFBpeGVsRm9ybWF0T2JqIHBpeGVsRm9ybWF0T2JqID0gMDsKQEAgLTI1MCw3ICsyNTAsNyBAQCBH
cmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRy
aWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgICAgICBhdHRyaWJzLmFwcGVuZChzdGF0aWNfY2Fz
dDxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0ZT4oNCkpOwogICAgIH0KIAotICAgIGlmIChtX2F0dHJz
LmlzV2ViR0wyKSB7CisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBJbnN0ZWFkIG9mIGJhY2tpbmcgYSBXZWJHTDIgR3JhcGhpY3NDb250ZXh0M0Qgd2l0aCBhIE9w
ZW5HTCA0IGNvbnRleHQsIHdlIHNob3VsZCBpbnN0ZWFkIGJhY2sgaXQgd2l0aCBBTkdMRS4KICAg
ICAgICAgLy8gVXNlIGFuIE9wZW5HTCA0IGNvbnRleHQgZm9yIG5vdyB1bnRpbCB0aGUgQU5HTEUg
YmFja2VuZCBpcyByZWFkeS4KICAgICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQU9wZW5HTFBy
b2ZpbGUpOwpAQCAtMjY0LDMwICsyNjQsMzcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNz
Q29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICAg
ICBpZiAoIW51bVBpeGVsRm9ybWF0cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ0dMRXJyb3Ig
ZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ29udGV4dCA/IHNo
YXJlZENvbnRleHQtPm1fY29udGV4dE9iaiA6IG51bGxwdHIsICZtX2NvbnRleHRPYmopOworICAg
IENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IG51bGxwdHI7CisgICAgQ0dMQ29udGV4dE9iaiBz
aGFyZWRDR0xDb250ZXh0ID0gc2hhcmVkQ29udGV4dCA/IHN0YXRpY19jYXN0PENHTENvbnRleHRP
Ymo+KHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9iaikgOiBudWxscHRyOworCisgICAgQ0dMRXJy
b3IgZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ0dMQ29udGV4
dCwgJmNnbENvbnRleHQpOwogICAgIEdMaW50IGFib3J0T25CbGFja2xpc3QgPSAwOwotICAgIENH
TFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtDR0xDUEFib3J0T25HUFVSZXN0YXJ0U3RhdHVz
QmxhY2tsaXN0ZWQsICZhYm9ydE9uQmxhY2tsaXN0KTsKLSAgICAKKyAgICBDR0xTZXRQYXJhbWV0
ZXIoY2dsQ29udGV4dCwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwg
JmFib3J0T25CbGFja2xpc3QpOworCiAjaWYgUExBVEZPUk0oTUFDKSAvLyBGSVhNRTogVGhpcyBw
cm9iYWJseSBzaG91bGQgYmUgVVNFKE9QRU5HTCkgLSBzZWUgPHJkYXI6Ly81MzA2Mjc5ND4uCiAK
ICAgICBhdXRvIGdwdUlEID0gKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+ZGlzcGxheUlEKCkp
ID8gZ3B1SURGb3JEaXNwbGF5KGhvc3RXaW5kb3ctPmRpc3BsYXlJRCgpKSA6IHByaW1hcnlHUFVJ
RCgpOwotICAgIHNldEdQVUJ5UmVnaXN0cnlJRChtX2NvbnRleHRPYmosIHBpeGVsRm9ybWF0T2Jq
LCBncHVJRCk7CisgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENvbnRleHQsIHBpeGVsRm9ybWF0
T2JqLCBncHVJRCk7CiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhvc3RXaW5kb3cpOwogI2Vu
ZGlmCiAKICAgICBDR0xEZXN0cm95UGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXRPYmopOwotICAgIAor
CisgICAgbV9jb250ZXh0T2JqID0gY2dsQ29udGV4dDsKKwogICAgIGlmIChlcnIgIT0ga0NHTE5v
RXJyb3IgfHwgIW1fY29udGV4dE9iaikgewogICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBj
cmVhdGUgdGhlIGNvbnRleHQuCiAgICAgICAgIG1fY29udGV4dE9iaiA9IDA7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBtX2lzRm9yV2ViR0wyID0gbV9hdHRycy5pc1dlYkdMMjsKKyAg
ICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OwogCi0gICAgQ0dMU2V0Q3VycmVudENvbnRleHQo
bV9jb250ZXh0T2JqKTsKKyAgICBtX2lzRm9yV2ViR0wyID0gYXR0cnMuaXNXZWJHTDI7CisKKyAg
ICBDR0xTZXRDdXJyZW50Q29udGV4dChjZ2xDb250ZXh0KTsKIAogICAgIC8vIFdlYkdMIDIgZXhw
ZWN0cyBFUyAzLW9ubHkgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5ERVggdG8gYmUgZW5hYmxl
ZDsgd2UgbXVzdCBlbXVsYXRlIHRoaXMgb24gbm9uLUVTIDMgc3lzdGVtcy4KICAgICBpZiAobV9p
c0ZvcldlYkdMMikKQEAgLTMzNCw3ICszNDEsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAog
ICAgIH0KIAogICAgIHN0ZDo6dmVjdG9yPEVHTGludD4gY29udGV4dEF0dHJpYnV0ZXM7Ci0gICAg
aWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIpIHsKICAgICAg
ICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9O
KTsKICAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKDMpOwogICAgIH0gZWxzZSB7
CkBAIC00NTEsMTYgKzQ1OCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIDo6Z2xC
aW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAKICAgICBtX3N0
YXRlLmJvdW5kRkJPID0gbV9mYm87Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKQorICAgIGlmICghYXR0cnMuYW50aWFsaWFz
ICYmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSkKICAgICAgICAgOjpnbEdlblJlbmRl
cmJ1ZmZlcnNFWFQoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKIAogICAgIC8vIElmIG5lY2Vz
c2FyeSwgY3JlYXRlIGFub3RoZXIgZnJhbWVidWZmZXIgZm9yIHRoZSBtdWx0aXNhbXBsZSByZXN1
bHRzLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZC
Tyk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBt
X211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1w
bGVGQk87CiAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxl
Q29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAg
ICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxC
dWZmZXIpOwogICAgIH0KICNlbGlmIFVTRShBTkdMRSkKQEAgLTQ2OCwxNiArNDc1LDE2IEBAIEdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mYm8pOwogICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKIAotICAgIGlmICgh
bV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkK
KyAgICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0
aCkpCiAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAKICAgICAvLyBJZiBuZWNlc3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZv
ciB0aGUgbXVsdGlzYW1wbGUgcmVzdWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMo
MSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9
IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211
bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1f
YXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgIH0KIApAQCAtNTI3LDEyICs1MzQsMTUgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKIAogICAgIGlmIChtX2NvbnRl
eHRPYmopIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsKKwogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250
ZXh0Q3VycmVudCgpOwogICAgICAgICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6
R0xfUkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpuaWxdOwogICAgICAgICA6OmdsRGVsZXRlUmVu
ZGVyYnVmZmVycygxLCAmbV90ZXh0dXJlKTsKICNlbGlmIFVTRShPUEVOR0wpCi0gICAgICAgIENH
TFNldEN1cnJlbnRDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAgICAgIENHTENvbnRleHRPYmog
Y2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29udGV4dE9iaik7Cisg
ICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwogICAgICAgICA6OmdsRGVs
ZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgICAgIEVH
TF9NYWtlQ3VycmVudChtX2Rpc3BsYXlPYmosIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFD
RSwgbV9jb250ZXh0T2JqKTsKQEAgLTU0MCwyNCArNTUwLDI0IEBAIEdyYXBoaWNzQ29udGV4dDNE
Ojp+R3JhcGhpY3NDb250ZXh0M0QoKQogI2VuZGlmCiAKICNpZiBVU0UoT1BFTkdMKSB8fCBVU0Uo
T1BFTkdMX0VTKQotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAgICAgaWYg
KGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNF
WFQoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNp
bCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVy
c0VYVCgxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICA6
OmdsRGVsZXRlRnJhbWVidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0
aCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAg
ICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVyc0VYVCgxLCAm
bV9mYm8pOwogI2VsaWYgVVNFKEFOR0xFKQotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMp
IHsKKyAgICAgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAgICAgZ2w6OkRlbGV0
ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAo
YXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6RGVsZXRl
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAg
ICAgICAgICBnbDo6RGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRy
cy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNp
bEJ1ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAm
bV9mYm8pOwpAQCAtNTY4LDcgKzU3OCw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3ND
b250ZXh0M0QoKQogICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRP
YmopIHJlbGVhc2VdOwogI2VsaWYgVVNFKE9QRU5HTCkKICAgICAgICAgQ0dMU2V0Q3VycmVudENv
bnRleHQoMCk7Ci0gICAgICAgIENHTERlc3Ryb3lDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAg
ICAgIENHTERlc3Ryb3lDb250ZXh0KGNnbENvbnRleHQpOwogI2VsaWYgVVNFKEFOR0xFKQogICAg
ICAgICBFR0xfTWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05P
X1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKICAgICAgICAgRUdMX0Rlc3Ryb3lDb250ZXh0KG1f
ZGlzcGxheU9iaiwgbV9jb250ZXh0T2JqKTsKQEAgLTU4Nyw3ICs1OTcsNyBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKEdDM0RzaXpl
aSB3aWR0aCwgR0MzRAogICAgIENHUmVjdCBwcmV2aW91c0JvdW5kcyA9IFttX3dlYkdMTGF5ZXIu
Z2V0KCkgYm91bmRzXTsKIAogICAgIFttX3dlYkdMTGF5ZXIgc2V0Qm91bmRzOkNHUmVjdE1ha2Uo
MCwgMCwgd2lkdGgsIGhlaWdodCldOwotICAgIFttX3dlYkdMTGF5ZXIgc2V0T3BhcXVlOiFtX2F0
dHJzLmFscGhhXTsKKyAgICBbbV93ZWJHTExheWVyIHNldE9wYXF1ZTohYXR0cnMuYWxwaGFdOwog
CiAgICAgW21fY29udGV4dE9iaiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBm
cm9tRHJhd2FibGU6c3RhdGljX2Nhc3Q8aWQ8RUFHTERyYXdhYmxlPj4obV93ZWJHTExheWVyLmdl
dCgpKV07CiAKQEAgLTYwNiw3ICs2MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtl
Q29udGV4dEN1cnJlbnQoKQogI2VsaWYgVVNFKE9QRU5HTCkKICAgICBDR0xDb250ZXh0T2JqIGN1
cnJlbnRDb250ZXh0ID0gQ0dMR2V0Q3VycmVudENvbnRleHQoKTsKICAgICBpZiAoY3VycmVudENv
bnRleHQgIT0gbV9jb250ZXh0T2JqKQotICAgICAgICByZXR1cm4gQ0dMU2V0Q3VycmVudENvbnRl
eHQobV9jb250ZXh0T2JqKSA9PSBrQ0dMTm9FcnJvcjsKKyAgICAgICAgcmV0dXJuIENHTFNldEN1
cnJlbnRDb250ZXh0KHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29udGV4dE9iaikpID09
IGtDR0xOb0Vycm9yOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIGlmIChFR0xfR2V0Q3VycmVudENv
bnRleHQoKSAhPSBtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBFR0xfTWFrZUN1cnJlbnQo
bV9kaXNwbGF5T2JqLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fY29udGV4dE9i
aik7CkBAIC02MzgsNyArNjQ4LDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVT
dGF0dXMoKQogCiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7CiAjaWYgVVNFKE9QRU5HTCkK
LSAgICBDR0xHZXRQYXJhbWV0ZXIocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBrQ0dMQ1BH
UFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xD
b250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4ocGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCgpKTsKKyAgICBDR0xHZXRQYXJhbWV0ZXIoY2dsQ29udGV4dCwga0NHTENQR1BVUmVzdGFy
dFN0YXR1cywgJnJlc3RhcnRTdGF0dXMpOwogICAgIGlmIChyZXN0YXJ0U3RhdHVzID09IGtDR0xD
UEdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCkgewogICAgICAgICBMT0coV2ViR0wsICJUaGUg
R1BVIGhhcyBibGFja2xpc3RlZCB1cyAoJXApLiBUZXJtaW5hdGluZy4iLCB0aGlzKTsKICAgICAg
ICAgZXhpdChFWF9PU0VSUik7CkBAIC02NjYsNyArNjc3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJl
bmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMpCiAgICAgICAgIHJlc29sdmVN
dWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogICAgIDo6Z2xGbHVzaCgpOwpAQCAtNjc5LDcg
KzY5MCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByZXNlbnRSZW5kZXJidWZmZXIoKQog
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSU9TdXJmYWNlUmVmIHN1cmZh
Y2UsIEdDM0R1aW50IHBsYW5lKQogewogI2lmIFVTRShPUEVOR0wpCi0gICAgcmV0dXJuIGtDR0xO
b0Vycm9yID09IENHTFRleEltYWdlSU9TdXJmYWNlMkQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUs
IHN1cmZhY2UsIHBsYW5lKTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNf
Y2FzdDxDR0xDb250ZXh0T2JqPihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIHJl
dHVybiBrQ0dMTm9FcnJvciA9PSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKGNnbENvbnRleHQsIHRh
cmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFj
ZSwgcGxhbmUpOwogI2VsaWYgVVNFKE9QRU5HTF9FUykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlf
U0lNVUxBVE9SKQogICAgIHJldHVybiBbcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIHRleElt
YWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFyZ2V0OnRhcmdldCBpbnRlcm5hbEZvcm1hdDppbnRlcm5h
bEZvcm1hdCB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVpZ2h0IGZvcm1hdDpmb3JtYXQgdHlwZTp0eXBl
IHBsYW5lOnBsYW5lXTsKICNlbHNlCkBAIC02OTksNyArNzExLDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6dGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGlu
dGVybmFsRm8KIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2lu
Z1N0b3JlKEludFNpemUgc2l6ZSkKIHsKICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHQz
RDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUgYXQgJWQgeCAlZC4gKCVwKSIsIHNpemUu
d2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgdGhpcyk7Ci0gICAgW21fd2ViR0xMYXllciBhbGxvY2F0
ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTptX2F0dHJzLmFs
cGhhXTsKKyAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0
aFNpemU6c2l6ZSB1c2luZ0FscGhhOmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3Rv
cmVGcm9tTGF5ZXIoKQpAQCAtNzE2LDcgKzcyOCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnVwZGF0ZUNHTENvbnRleHQoKQogICAgIExPRyhXZWJHTCwgIkRldGVjdGVkIGEgbXV4IHN3aXRj
aCBvciBkaXNwbGF5IHJlY29uZmlndXJhdGlvbi4gQ2FsbCBDR0xVcGRhdGVDb250ZXh0LiAoJXAp
IiwgdGhpcyk7CiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBDR0xVcGRhdGVDb250
ZXh0KG1fY29udGV4dE9iaik7CisgICAgQ0dMVXBkYXRlQ29udGV4dChzdGF0aWNfY2FzdDxDR0xD
b250ZXh0T2JqPihtX2NvbnRleHRPYmopKTsKICAgICBtX2hhc1N3aXRjaGVkVG9IaWdoUGVyZm9y
bWFuY2VHUFUgPSB0cnVlOwogfQogCkBAIC03NTksNyArNzcxLDcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50U2l6ZSBzaXplKQogewog
I2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dDNEOjph
bGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZSBhdCAlZCB4ICVkLiAoJXApIiwgc2l6ZS53aWR0
aCgpLCBzaXplLmhlaWdodCgpLCB0aGlzKTsKLSAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9T
dXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOm1fYXR0cnMuYWxwaGFd
OworICAgIFttX3dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmVXaXRoU2l6
ZTpzaXplIHVzaW5nQWxwaGE6Y29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYV07CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgpAQCAtNzc5LDE0ICs3OTEsNiBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICAgICByZXR1cm4gbV9p
c0ZvcldlYkdMMjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RD
YWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4pCi17Ci19Ci0KLXZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVl
X3B0cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pCi17Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQogewogICAgIEdyYXBoaWNzQ29udGV4dDNETWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLnVwZGF0ZUFsbENvbnRleHRzKCk7CkBAIC04MzQsOCArODM4
LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgfQogI2Vsc2UKICNpZiBVU0UoT1BFTkdMKQotICAgIGlm
ICghbV9oYXNTd2l0Y2hlZFRvSGlnaFBlcmZvcm1hbmNlR1BVKQotICAgICAgICBzZXRHUFVCeVJl
Z2lzdHJ5SUQobV9jb250ZXh0T2JqLCBDR0xHZXRQaXhlbEZvcm1hdChtX2NvbnRleHRPYmopLCBn
cHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgaWYgKCFtX2hhc1N3aXRjaGVkVG9IaWdo
UGVyZm9ybWFuY2VHUFUpIHsKKyAgICAgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3Rh
dGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2JqKTsKKyAgICAgICAgc2V0R1BVQnlS
ZWdpc3RyeUlEKGNnbENvbnRleHQsIENHTEdldFBpeGVsRm9ybWF0KGNnbENvbnRleHQpLCBncHVJ
REZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgfQogI2VuZGlmCiAjZW5kaWYgLy8gVVNFKEFO
R0xFKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L1dlYkdMTGF5ZXIubW0KaW5kZXggZDhlODUwMDkwZmM3YzliZTVlY2JjY2U5N2EwZDE3OWNlMzU3
MmZjNC4uNTJjNGM0YmIyZDkxM2FkMGFlMDUxZGEwZmFhZmVkNWRmZDk5M2FkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1t
CkBAIC03MCw5ICs3MCw5IEBAIGNvbnN0IEdMZW51bSBpb1N1cmZhY2VUZXh0dXJlVHlwZSA9IEdM
X1RFWFRVUkVfMkQ7CiB7CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07Ci0gICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRDb250ZXh0QXR0
cmlidXRlcygpLmRldmljZVBpeGVsUmF0aW87CisgICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250
ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpLmRldmljZVBpeGVsUmF0aW87CiAjaWYgVVNFKE9QRU5H
TCkgfHwgVVNFKEFOR0xFKQotICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSAhY29udGV4dC0+Z2V0
Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKKyAgICBzZWxmLmNvbnRlbnRzT3BhcXVlID0gIWNv
bnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CiAgICAgc2VsZi50cmFuc2Zvcm0gPSBD
QVRyYW5zZm9ybTNESWRlbnRpdHk7CiAgICAgc2VsZi5jb250ZW50c1NjYWxlID0gX2RldmljZVBp
eGVsUmF0aW87CiAjZWxzZQpAQCAtMTEyLDcgKzExMiw4IEBAIHN0YXRpYyB2b2lkIGZyZWVEYXRh
KHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8pCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAjaWYgVVNFKE9QRU5HTCkKLSAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChfY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDR0xDb250ZXh0
T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihfY29udGV4dC0+cGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDR0xTZXRDdXJyZW50Q29udGV4dChjZ2xD
b250ZXh0KTsKIAogICAgIFJldGFpblB0cjxDR0NvbG9yU3BhY2VSZWY+IGltYWdlQ29sb3JTcGFj
ZSA9IGNvbG9yU3BhY2U7CiAgICAgaWYgKCFpbWFnZUNvbG9yU3BhY2UpCkBAIC0yNTEsNyArMjUy
LDggQEAgc3RhdGljIHZvaWQgZnJlZURhdGEodm9pZCAqLCBjb25zdCB2b2lkICpkYXRhLCBzaXpl
X3QgLyogc2l6ZSAqLykKICAgICBHQzNEZW51bSBpbnRlcm5hbEZvcm1hdCA9IF91c2luZ0FscGhh
ID8gR0xfUkdCQSA6IEdMX1JHQjsKIAogICAgIC8vIExpbmsgdGhlIElPU3VyZmFjZSB0byB0aGUg
dGV4dHVyZS4KLSAgICBDR0xFcnJvciBlcnJvciA9IENHTFRleEltYWdlSU9TdXJmYWNlMkQoX2Nv
bnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgR0xfVEVYVFVSRV9SRUNUQU5HTEVf
QVJCLCBpbnRlcm5hbEZvcm1hdCwgX2J1ZmZlclNpemUud2lkdGgoKSwgX2J1ZmZlclNpemUuaGVp
Z2h0KCksIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViwgaW9TdXJmYWNlLCAw
KTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0
T2JqPihfY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDR0xFcnJv
ciBlcnJvciA9IENHTFRleEltYWdlSU9TdXJmYWNlMkQoY2dsQ29udGV4dCwgR0xfVEVYVFVSRV9S
RUNUQU5HTEVfQVJCLCBpbnRlcm5hbEZvcm1hdCwgX2J1ZmZlclNpemUud2lkdGgoKSwgX2J1ZmZl
clNpemUuaGVpZ2h0KCksIEdMX0JHUkEsIEdMX1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViwgaW9T
dXJmYWNlLCAwKTsKICAgICBBU1NFUlRfVU5VU0VEKGVycm9yLCBlcnJvciA9PSBrQ0dMTm9FcnJv
cik7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgR0MzRGVudW0gdGV4dHVyZSA9IF9jb250ZXh0LT5w
bGF0Zm9ybVRleHR1cmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0KaW5kZXggMDE5ZDIzOTUxN2Q4MmJjMmViZjNkYjY1
NjZjM2ZhZDNhNTgwZmRhMS4uMzhiNjAxNmVhMTRlN2Y1NTZkOGI0MzM2Yzg4ZWEzOWE4NmQzNTBh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVy
ZUNhY2hlQ1YubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4
dHVyZUNhY2hlQ1YubW0KQEAgLTQwLDcgKzQwLDggQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVD
YWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXgK
ICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwgJmNhY2hlKTsKICNlbGlmIFVTRShPUEVO
R0wpCi0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0
YXRpY19jYXN0PENHTENvbnRleHRPYmo+KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpKTsKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNnbENvbnRleHQsIENHTEdldFBpeGVsRm9ybWF0
KGNnbENvbnRleHQpLCBudWxscHRyLCAmY2FjaGUpOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIC8v
IEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGlzIGludGVncmF0aW5nIHZpYSBBTkdMRS4K
ICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMLmNwcAppbmRleCBiOTYzNjNiNTUxOTM1NmM4Y2RmNDY1NDM2MzI2ZWQwNmNlY2VkODhkLi4x
YTVmOTkzODdhYTFmNjk4NzI0YzIwMDgwN2YyMmIwYTI2NmQ3MjQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTC5jcHAKQEAgLTgyLDggKzgyLDEwIEBAIHN0YXRpYyB2b2lkIHdp
cGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKGludCB3aWR0aCwgaW50IGhlaWdodCwgdW5zaWduZWQg
Y2hhciogcGl4CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0
VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgsIGludCB5LCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVu
c2lnbmVkIGNoYXIqIHBpeGVscykKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0
ZXMoKTsKKwogICAgIC8vIE5WSURJQSBkcml2ZXJzIGhhdmUgYSBidWcgd2hlcmUgY2FsbGluZyBy
ZWFkUGl4ZWxzIGluIEJHUkEgY2FuIHJldHVybiB0aGUgd3JvbmcgdmFsdWVzIGZvciB0aGUgYWxw
aGEgY2hhbm5lbCB3aGVuIHRoZSBhbHBoYSBpcyBvZmYgZm9yIHRoZSBjb250ZXh0LgotICAgIGlm
ICghbV9hdHRycy5hbHBoYSAmJiBnZXRFeHRlbnNpb25zKCkuaXNOVklESUEoKSkgeworICAgIGlm
ICghYXR0cnMuYWxwaGEgJiYgZ2V0RXh0ZW5zaW9ucygpLmlzTlZJRElBKCkpIHsKICAgICAgICAg
OjpnbFJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfUkdCQSwgR0xfVU5TSUdORURf
QllURSwgcGl4ZWxzKTsKICNpZiBVU0UoQUNDRUxFUkFURSkKICAgICAgICAgdkltYWdlX0J1ZmZl
ciBzcmM7CkBAIC0xMTAsNyArMTEyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBp
eGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludAogICAgICAg
ICA6OmdsUmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBLCBHTF9VTlNJR05F
RF9JTlRfOF84XzhfOF9SRVYsIHBpeGVscyk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYg
KCFtX2F0dHJzLmFscGhhKQorICAgIGlmICghYXR0cnMuYWxwaGEpCiAgICAgICAgIHdpcGVBbHBo
YUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHBpeGVscyk7CiAjZW5kaWYKIH0KQEAg
LTEyMiwxNyArMTI0LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmli
dXRlcygpCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNp
emUmIHNpemUpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAg
Y29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWlnaHQgPSBz
aXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCwgaW50ZXJuYWxEZXB0aFN0ZW5j
aWxGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJzLmFscGhhKSB7CisgICAgaWYgKGF0dHJzLmFs
cGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4OwogICAgICAg
ICBjb2xvckZvcm1hdCA9IEdMX1JHQkE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9pbnRlcm5h
bENvbG9yRm9ybWF0ID0gR0xfUkdCODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0I7CiAg
ICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgIGlm
IChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIC8vIFdlIGRvbid0IGFs
bG93IHRoZSBsb2dpYyB3aGVyZSBzdGVuY2lsIGlzIHJlcXVpcmVkIGFuZCBkZXB0aCBpcyBub3Qu
CiAgICAgICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzLgog
CkBAIC0xNDksNyArMTUyLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3Mo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB9CiAKICAgICAvLyBSZXNpemUgbXVsdGlzYW1wbGUg
RkJPLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgR0xpbnQgbWF4U2FtcGxlQ291bnQ7CiAgICAgICAgIDo6Z2xHZXRJbnRl
Z2VydihHTF9NQVhfU0FNUExFU19FWFQsICZtYXhTYW1wbGVDb3VudCk7CiAgICAgICAgIC8vIFVz
aW5nIG1vcmUgdGhhbiA0IHNhbXBsZXMgaXMgc2xvdyBvbiBzb21lIGhhcmR3YXJlIGFuZCBpcyB1
bmxpa2VseSB0bwpAQCAtMTYzLDEyICsxNjYsMTIgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgOjpnbFJlbmRlcmJ1ZmZl
clN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVDb3VudCwg
bV9pbnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICNlbmRpZgogICAgICAgICA6
OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9DT0xP
Ul9BVFRBQ0hNRU5UMF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVDb2xv
ckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkg
eworICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkgewogICAgICAgICAg
ICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNh
bXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3Rv
cmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBsZUNvdW50LCBpbnRl
cm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgICAgICBpZiAo
bV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwpCiAgICAgICAg
ICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VY
VCwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0
aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0
aCkKKyAgICAgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsRnJh
bWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9ERVBUSF9BVFRB
Q0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xf
UkVOREVSQlVGRkVSX0VYVCwgMCk7CkBAIC0yMTEsNyArMjE0LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICBhdHRhY2hEZXB0
aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lk
dGgsIGhlaWdodCk7CiAKICAgICBib29sIG11c3RSZXN0b3JlRkJPID0gdHJ1ZTsKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAg
IDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxl
RkJPKTsKICAgICAgICAgaWYgKG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykK
ICAgICAgICAgICAgIG11c3RSZXN0b3JlRkJPID0gZmFsc2U7CkBAIC0yMjUsMTIgKzIyOCwxNCBA
QCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXpl
KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJ
Zk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQsIGludCB3aWR0aCwgaW50
IGhlaWdodCkKIHsKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5j
aWwgfHwgbV9hdHRycy5kZXB0aCkpIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0
ZXMoKTsKKworICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRycy5zdGVuY2lsIHx8IGF0
dHJzLmRlcHRoKSkgewogICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJC
VUZGRVJfRVhULCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIDo6Z2xSZW5kZXJidWZm
ZXJTdG9yYWdlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAg
ICAgaWYgKGF0dHJzLnN0ZW5jaWwpCiAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlRfRVhULCBH
TF9SRU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIGlmICht
X2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICA6Omds
RnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBHTF9ERVBUSF9B
VFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIp
OwogICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCAw
KTsKICAgICB9CkBAIC00ODIsMjEgKzQ4NywyMyBAQCBFeHRlbnNpb25zM0QmIEdyYXBoaWNzQ29u
dGV4dDNEOjpnZXRFeHRlbnNpb25zKCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBp
eGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIHZvaWQqIGRhdGEpCiB7CisgICAg
YXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAgICAvLyBGSVhNRTogcmVtb3Zl
IHRoZSB0d28gZ2xGbHVzaCBjYWxscyB3aGVuIHRoZSBkcml2ZXIgYnVnIGlzIGZpeGVkLCBpLmUu
LAogICAgIC8vIGFsbCBwcmV2aW91cyByZW5kZXJpbmcgY2FsbHMgc2hvdWxkIGJlIGRvbmUgYmVm
b3JlIHJlYWRpbmcgcGl4ZWxzLgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xG
bHVzaCgpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09
IG1fbXVsdGlzYW1wbGVGQk8pIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUu
Ym91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwogICAgICAgICA6
OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgICAgICA6OmdsRmx1c2goKTsKICAgICB9CiAgICAgOjpnbFJlYWRQaXhlbHMoeCwg
eSwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBkYXRhKTsKLSAgICBpZiAobV9hdHRycy5h
bnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlm
IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJP
KQogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYg
KCFtX2F0dHJzLmFscGhhICYmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwg
Zm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX2ZibyB8fCAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211
bHRpc2FtcGxlRkJPKSkpCisgICAgaWYgKCFhdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkg
JiYgKG1fc3RhdGUuYm91bmRGQk8gPT0gbV9mYm8gfHwgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0
YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKICAgICAgICAgd2lwZUFscGhhQ2hh
bm5lbEZyb21QaXhlbHMod2lkdGgsIGhlaWdodCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+
KGRhdGEpKTsKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5H
TENvbW1vbi5jcHAKaW5kZXggNDJiYzhlMTdlMDYyMTgxZDcwZTA0ZjdhYzJjOTFiY2EzODMxZDky
NS4uODU3NWVmZTA2NjM5ZDRlMTdmZDE4N2JmMmJmZmU5ZDYyMGUyZTlkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC0xNDEsMTkgKzE0MSwy
MyBAQCBzdGF0aWMgdWludDY0X3QgbmFtZUhhc2hGb3JTaGFkZXIoY29uc3QgY2hhciogbmFtZSwg
c2l6ZV90IGxlbmd0aCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVEZXB0aFN0
ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKQogeworICAgIGF1
dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCiAgICAgRXh0ZW5zaW9uczNEJiBleHRl
bnNpb25zID0gZ2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAg
ICBpZiAoYXR0cnMuc3RlbmNpbCkgewogICAgICAgICBpZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhw
YWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVu
c3VyZUVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKTsKICAgICAgICAgICAgIC8v
IEZvcmNlIGRlcHRoIGlmIHN0ZW5jaWwgaXMgdHJ1ZS4KLSAgICAgICAgICAgIG1fYXR0cnMuZGVw
dGggPSB0cnVlOworICAgICAgICAgICAgYXR0cnMuZGVwdGggPSB0cnVlOwogICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgIG1fYXR0cnMuc3RlbmNpbCA9IGZhbHNlOworICAgICAgICAgICAgYXR0
cnMuc3RlbmNpbCA9IGZhbHNlOworICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7
CiAgICAgfQotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgewotICAgICAgICBpZiAoIWV4dGVu
c2lvbnMuc3VwcG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgaXNH
TEVTMkNvbXBsaWFudCgpKQotICAgICAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsK
LSAgICAgICAgZWxzZQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgIW1faXNGb3JXZWJHTDIp
IHsKKyAgICAgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZl
cl9tdWx0aXNhbXBsZSIpKSB7CisgICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsK
KyAgICAgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX211bHRpc2FtcGxlIik7CiAgICAgfQogfQpAQCAtMTc1LDcgKzE3OSw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVy
KiBpbWFnZUJ1ZmZlcikKIAogICAgIHJlYWRSZW5kZXJpbmdSZXN1bHRzKHBpeGVscy5nZXQoKSwg
dG90YWxCeXRlcyk7CiAKLSAgICBpZiAoIW1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKSB7Cisg
ICAgaWYgKCFjb250ZXh0QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkgewogICAgICAg
ICBmb3IgKGludCBpID0gMDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkgewogICAgICAgICAgICAg
Ly8gUHJlbXVsdGlwbHkgYWxwaGEuCiAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gc3RkOjpt
aW4oMjU1LCBwaXhlbHNbaSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7CkBAIC0yMDEsNyAr
MjA1LDcgQEAgUmVmUHRyPEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVy
aW5nUmVzdWx0c1RvSW1hZ2VEYXRhKCkKIHsKICAgICAvLyBSZWFkaW5nIHByZW11bHRpcGxpZWQg
YWxwaGEgd291bGQgaW52b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcwogICAgIC8vIGxv
c3N5LgotICAgIGlmIChtX2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkKKyAgICBpZiAoY29udGV4
dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCiAgICAgYXV0byBpbWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShJbnRTaXplKG1fY3Vy
cmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQpKTsKQEAgLTIzMiw3ICsyMzYsNyBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgpCiAgICAgVGVtcG9yYXJ5T3BlbkdMU2V0
dGluZyBzY29wZWREaXRoZXIoR0xfRElUSEVSLCBHTF9GQUxTRSk7CiAjZW5kaWYKIAotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTI2NSw3ICsyNjksNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGlu
dCBwaXhlbHNTaQogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgYm9vbCBtdXN0UmVz
dG9yZUZCTyA9IGZhbHNlOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChj
b250ZXh0QXR0cmlidXRlcygpLmFudGlhbGlhcykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIG11c3RSZXN0b3JlRkJP
ID0gdHJ1ZTsKQEAgLTMyOCwxNCArMzMyLDE3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIDo6Z2xDbGVhckNvbG9yKDAsIDAsIDAs
IDApOwogICAgIDo6Z2xHZXRCb29sZWFudihHTF9DT0xPUl9XUklURU1BU0ssIGNvbG9yTWFzayk7
CiAgICAgOjpnbENvbG9yTWFzayhHTF9UUlVFLCBHTF9UUlVFLCBHTF9UUlVFLCBHTF9UUlVFKTsK
LSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworCisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRy
aWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuZGVwdGgpIHsKICAgICAgICAgOjpnbEdldEZsb2F0
dihHTF9ERVBUSF9DTEVBUl9WQUxVRSwgJmNsZWFyRGVwdGgpOwogICAgICAgICBHcmFwaGljc0Nv
bnRleHQzRDo6Y2xlYXJEZXB0aCgxKTsKICAgICAgICAgOjpnbEdldEJvb2xlYW52KEdMX0RFUFRI
X1dSSVRFTUFTSywgJmRlcHRoTWFzayk7CiAgICAgICAgIDo6Z2xEZXB0aE1hc2soR0xfVFJVRSk7
CiAgICAgICAgIGNsZWFyTWFzayB8PSBHTF9ERVBUSF9CVUZGRVJfQklUOwogICAgIH0KLSAgICBp
ZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAg
OjpnbEdldEludGVnZXJ2KEdMX1NURU5DSUxfQ0xFQVJfVkFMVUUsICZjbGVhclN0ZW5jaWwpOwog
ICAgICAgICA6OmdsQ2xlYXJTdGVuY2lsKDApOwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xf
U1RFTkNJTF9XUklURU1BU0ssIHJlaW50ZXJwcmV0X2Nhc3Q8R0xpbnQqPigmc3RlbmNpbE1hc2sp
KTsKQEAgLTM0OSwxMSArMzU2LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgOjpnbENsZWFyQ29sb3IoY2xlYXJDb2xvclsw
XSwgY2xlYXJDb2xvclsxXSwgY2xlYXJDb2xvclsyXSwgY2xlYXJDb2xvclszXSk7CiAgICAgOjpn
bENvbG9yTWFzayhjb2xvck1hc2tbMF0sIGNvbG9yTWFza1sxXSwgY29sb3JNYXNrWzJdLCBjb2xv
ck1hc2tbM10pOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJzLmRlcHRo
KSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKGNsZWFyRGVwdGgpOwog
ICAgICAgICA6OmdsRGVwdGhNYXNrKGRlcHRoTWFzayk7CiAgICAgfQotICAgIGlmIChtX2F0dHJz
LnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewogICAgICAgICA6OmdsQ2xlYXJT
dGVuY2lsKGNsZWFyU3RlbmNpbCk7CiAgICAgICAgIDo6Z2xTdGVuY2lsTWFza1NlcGFyYXRlKEdM
X0ZST05ULCBzdGVuY2lsTWFzayk7CiAgICAgICAgIDo6Z2xTdGVuY2lsTWFza1NlcGFyYXRlKEdM
X0JBQ0ssIHN0ZW5jaWxNYXNrQmFjayk7CkBAIC00ODEsNyArNDg4LDcgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6YmluZEZyYW1lYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9i
amVjdCBidWZmZXIKICAgICBpZiAoYnVmZmVyKQogICAgICAgICBmYm8gPSBidWZmZXI7CiAgICAg
ZWxzZQotICAgICAgICBmYm8gPSAobV9hdHRycy5hbnRpYWxpYXMgPyBtX211bHRpc2FtcGxlRkJP
IDogbV9mYm8pOworICAgICAgICBmYm8gPSAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxpYXMg
PyBtX211bHRpc2FtcGxlRkJPIDogbV9mYm8pOwogICAgIGlmIChmYm8gIT0gbV9zdGF0ZS5ib3Vu
ZEZCTykgewogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKHRhcmdldCwgZmJvKTsKICAg
ICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IGZibzsKQEAgLTc0NCwyNCArNzUxLDI4IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXBpbGVTaGFkZXJEaXJlY3QoUGxhdGZvcm0zRE9iamVjdCBz
aGFkZXIpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb3B5VGV4SW1hZ2UyRChHQzNEZW51bSB0
YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEaW50IHgs
IEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJv
cmRlcikKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRp
YWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0
byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFz
ICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICByZXNv
bHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkp
OwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICA6OmdsQ29weVRleEltYWdlMkQodGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHgsIHksIHdpZHRoLCBoZWlnaHQsIGJvcmRlcik7Ci0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0Nv
bnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQg
bGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEaW50IHgsIEdDM0Rp
bnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogewogICAgIG1ha2VDb250
ZXh0Q3VycmVudCgpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5k
RkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJp
YnV0ZXMoKTsKKworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNl
c3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIDo6Z2xCaW5kRnJh
bWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAg
fQogICAgIDo6Z2xDb3B5VGV4U3ViSW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zm
c2V0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYg
bV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRp
YWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICA6
OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9t
dWx0aXNhbXBsZUZCTyk7CiB9CiAKQEAgLTExMjgsMTEgKzExMzksNiBAQCBpbnQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEF0dHJpYkxvY2F0aW9uRGlyZWN0KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3Jh
bSwgY29uc3QgUwogICAgIHJldHVybiA6OmdsR2V0QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgbmFt
ZS51dGY4KCkuZGF0YSgpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIEdyYXBo
aWNzQ29udGV4dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcygpCi17Ci0gICAgcmV0dXJuIG1fYXR0
cnM7Ci19Ci0KIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1vdmVFcnJvcnNUb1N5bnRoZXRpY0Vy
cm9yTGlzdCgpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODYxNTliOGZh
NzRlMjRmMWFkNjJhMmM4Mzk2MTgxMDE1YzVhMjQ5Yi4uZTM1NGFkYmEyNGVhZDkxYzkyMDEyMWVj
MjU2MTMyNzdhMTExMjhkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTI3ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR0xdIEFkZCBhIHB1cmUg
dmlydHVhbCBiYXNlIGNsYXNzIGZvciBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NjA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGEgdGVzdCB0aGF0IGhhcyBl
eGlzdGluZyBjb3ZlcmFnZSBpbiB0aGUgV2ViR0wgdGVzdCBzdWl0ZS4KKworICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmpl
Y3QtYXR0YWNobWVudC5odG1sOiBSZW1vdmVkLgorCiAyMDE5LTEyLTI0ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFsgQ2F0YWxpbmEg
d2sxIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUv
c2NyaXB0LndpbmRvdy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRh
Y2htZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU3ZmRm
ZTg3NzZmMjhhOWNiM2UwNjQzNzU5YzUxNzEwMGVmMGM3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9m
cmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw2NTkgKzAsMCBAQAotVGVzdCBmcmFtZWJ1ZmZlciBvYmplY3QgYXR0YWNobWVudCBiZWhh
dmlvcnMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLURpbWVuc2lvbnMgMCB4IDAK
LUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9u
LW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2ls
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVm
ZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBU
SF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hN
RU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFj
aCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBk
ZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxp
Y3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4g
ZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGlj
dAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVu
IGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25m
bGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5k
ZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVy
YnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVy
YnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRl
cHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJf
SEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhf
U1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlz
IDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi0K
LURpbWVuc2lvbnMgMCB4IDIKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRl
M0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFj
aCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNp
bmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lM
X0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVw
dGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1B
dHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0
aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0
dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3Rl
bmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAot
UEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQot
UEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1Q
QVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUNy
ZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVu
Y2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBp
cyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLQotRGltZW5zaW9u
cyAyIHggMAotQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUzRENvbnRleHQo
KSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aFN0
ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotQXR0YWNoIGRlcHRoIHVz
aW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lM
X0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
QXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2lu
ZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0
aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5n
IGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5j
aWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGNv
bG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xv
ciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xv
ciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUKLVBBU1MgY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQ3JlYXRlIGFuZCBh
dHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQK
LVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJf
UkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVf
U0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMiB4IDIK
LUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9u
LW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2ls
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVm
ZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBU
SF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMK
LVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5H
UkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1l
dGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGds
LkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5D
SUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hN
RU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwgdXNp
bmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVk
IDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERF
UFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGds
LmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBh
cmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRl
cihnbC5TVEVOQ0lMX0JJVFMpID49IDggaXMgdHJ1ZQotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2lu
ZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNU
RU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNh
dXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2gg
c3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcg
Y29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2ggZGVwdGhT
dGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5n
IGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGRlcHRo
U3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFs
Zm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJ
VFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
QUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhf
QklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMp
ID09IDAgaXMgdHJ1ZQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9y
bWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGds
LmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklU
UykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5B
TFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9C
SVRTKSA9PSAwIGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykg
PT0gMCBpcyB0cnVlCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3Jt
YXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMp
ICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQ
SEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklU
UykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09
IDAgaXMgdHJ1ZQotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgot
UEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJC
VUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihn
bC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIGlzIGhlaWdodAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0la
RSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBp
cyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGds
LlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFKSA+IDAg
aXMgdHJ1ZQotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFKSA+IDAgaXMgdHJ1ZQotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSAr
IGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVF
X0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wu
Z2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPj0gOCBpcyB0cnVlCi0KLXRlc3Q6IERFUFRI
X0NPTVBPTkVOVDE2IHZzIERFUFRIX1NURU5DSUwgd2l0aCBkZWxldGUKLVBBU1Mgc2hvdWxkIGJl
IGdyZWVuCi10ZXN0IGRlbGV0aW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExF
VEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBz
aG91bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQVEhfQ09NUE9ORU5UMTYgdnMgREVQVEhfU1RFTkNJ
TCB3aXRoIHVuYmluZAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgdW5iaW5kaW5nIHNlY29u
ZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQ
VEhfU1RFTkNJTCB2cyBERVBUSF9DT01QT05FTlQxNiB3aXRoIGRlbGV0ZQotUEFTUyBzaG91bGQg
YmUgZ3JlZW4KLXRlc3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01Q
TEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IHNob3VsZCBiZSBncmVlbgotCi10ZXN0OiBERVBUSF9TVEVOQ0lMIHZzIERFUFRIX0NPTVBPTkVO
VDE2IHdpdGggdW5iaW5kCi1QQVNTIHNob3VsZCBiZSBncmVlbgotdGVzdCB1bmJpbmRpbmcgc2Vj
b25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLQotQXR0YWNobWVudHMgb2YgZGlmZmVyZW50IHNpemVzIHNob3Vs
ZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgKE9wZW5HTCBFUyAyLjAgNC40
LjUpCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NP
TVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9E
SU1FTlNJT05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVC
VUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9D
T01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBz
aG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1F
QlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3
YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQ
UE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNo
b3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGds
LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUg
d2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi0KLVdyb25nIHN0b3JhZ2UgdHlwZSBmb3IgdHlwZSBv
ZiBhdHRhY2htZW50IGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdM
IEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCB3YXMgRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVE
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBi
ZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLQotMCBzaXpl
IGF0dGFjaG1lbnQgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAo
T3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCB3
YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQ
UE9SVEVECi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQot
Tm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVfRlJBTUVCVUZGRVJfTUlTU0lOR19B
VFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KQotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FU
VEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIG9y
IEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVC
VUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5U
IHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFNRUJV
RkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi0KLVRlc3QgZHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFt
ZWJ1ZmZlcgotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZF
Ul9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZS
QU1FQlVGRkVSX1VOU1VQUE9SVEVECi0KLURyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29t
cGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IGRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBy
ZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY29weVRleElt
YWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4U3ViSW1h
Z2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNsZWFyIHdpdGggaW5j
b21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8yID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
Uikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIHdh
cyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZF
Ul9VTlNVUFBPUlRFRAotCi1EcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBk
cmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogcmVhZFBpeGVs
cyBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0
ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
T1BFUkFUSU9OIDogY29weVRleFN1YkltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVy
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiBjbGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLQotRHJhd2luZyBv
ciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUg
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJhd0FycmF5cyB3aXRoIGluY29tcGxldGUg
ZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVm
ZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IGNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRh
Y2htZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MmRhMTU0ZDk4MDE0
MTM4YmJjNjU1ODhjMjNhODNiOGQ3NDhhMjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZm
ZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUzMCArMCwwIEBA
Ci08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi12
YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2w7Ci12YXIgZmJvOwotdmFyIGRlcHRoQnVm
ZmVyOwotdmFyIHN0ZW5jaWxCdWZmZXI7Ci12YXIgZGVwdGhTdGVuY2lsQnVmZmVyOwotdmFyIGNv
bG9yQnVmZmVyOwotdmFyIHdpZHRoOwotdmFyIGhlaWdodDsKLQotY29uc3QgQUxMT1dfQ09NUExF
VEUgICAgICAgICAgICAgID0gMHgwMTsKLWNvbnN0IEFMTE9XX1VOU1VQUE9SVEVEICAgICAgICAg
ICA9IDB4MDI7Ci1jb25zdCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQgPSAweDA0OwotCi1m
dW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNl
cykKLXsKLSAgICAvLyBJZiB0aGUgZnJhbWVidWZmZXIgaXMgaW4gYW4gZXJyb3Igc3RhdGUgZm9y
IG11bHRpcGxlIHJlYXNvbnMsCi0gICAgLy8gd2UgY2FuJ3QgZ3VhcmFudGVlIHdoaWNoIG9uZSB3
aWxsIGJlIHJlcG9ydGVkLgotICAgIHZhciBzdGF0dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICB2YXIgc3RhdHVzQWxsb3dlZCA9ICgoYWxsb3dlZFN0
YXR1c2VzICYgQUxMT1dfQ09NUExFVEUpICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfQ09N
UExFVEUpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKChhbGxvd2VkU3RhdHVzZXMgJiBB
TExPV19VTlNVUFBPUlRFRCkgJiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRF
RCkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9X
X0lOQ09NUExFVEVfQVRUQUNITUVOVCkgJiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9JTkNP
TVBMRVRFX0FUVEFDSE1FTlQpKTsKLSAgICB2YXIgbXNnID0gImdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkICIgKyBzdGF0dXM7Ci0gICAgaWYgKHN0YXR1
c0FsbG93ZWQpCi0gICAgICAgIHRlc3RQYXNzZWQobXNnKTsKLSAgICBlbHNlCi0gICAgICAgIHRl
c3RGYWlsZWQobXNnKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQw
LCBhdHRhY2htZW50MSkKLXsKLSAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpCi0gICAgICByZXR1cm47Ci0K
LSAgICB2YXIgaGF2ZURlcHRoQnVmZmVyID0gYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfQVRUQUNI
TUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MCA9PSBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNo
bWVudDEgPT0gZ2wuREVQVEhfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBhdHRhY2htZW50MSA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ7Ci0gICAgdmFyIGhh
dmVTdGVuY2lsQnVmZmVyID0gYXR0YWNobWVudDAgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hNRU5UIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfU1RF
TkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVu
dDEgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOwotCi0gICAgc2hv
dWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVy
KGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYiKTsKLQotICAgIGlmIChoYXZlRGVwdGhCdWZm
ZXIpCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+
PSAxNiIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGds
LkRFUFRIX0JJVFMpID09IDAiKTsKLQotICAgIGlmIChoYXZlU3RlbmNpbEJ1ZmZlcikKLSAgICAg
IHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPj0gOCIpOwot
ICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxf
QklUUykgPT0gMCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0YWNobWVudChhdHRhY2htZW50LCBi
dWZmZXIsIGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsK
LSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVu
dCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXJGb3JBbGxvd2VkU3RhdHVzZXMoYWxsb3dl
ZFN0YXR1c2VzKTsKLSAgICBpZiAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9XX0NPTVBMRVRFKSA9
PSAwKSB7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwotICAgICAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OKTsKLSAg
ICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJ
R05FRF9CWVRFLCBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpKTsKLSAgICAgICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTik7Ci0g
ICAgfQotICAgIGNoZWNrQnVmZmVyQml0cyhhdHRhY2htZW50KTsKLSAgICBnbC5kZWxldGVGcmFt
ZWJ1ZmZlcihmYm8pOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0YWNobWVudHMoYXR0YWNobWVudDAs
IGJ1ZmZlcjAsIGF0dGFjaG1lbnQxLCBidWZmZXIxLCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAg
c2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wu
YmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVO
REVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQwLCBnbC5SRU5ERVJCVUZGRVIsIGJ1ZmZlcjApOwot
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGdsLmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50MSwgZ2wuUkVOREVSQlVGRkVS
LCBidWZmZXIxKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBj
aGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNlcyk7Ci0gICAg
Y2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQwLCBhdHRhY2htZW50MSk7Ci0gICAgZ2wuZGVsZXRl
RnJhbWVidWZmZXIoZmJvKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbG9yUmVuZGVyYnVmZmVyKGlu
dGVybmFsZm9ybWF0LCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJj
b2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQp
OwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHRlc3RBdHRhY2ht
ZW50KGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBjb2xvckJ1ZmZlciwgYWxsb3dlZFN0YXR1c2VzKTsK
LX0KLQotZnVuY3Rpb24gdGVzdERlcHRoU3RlbmNpbFJlbmRlcmJ1ZmZlcihhbGxvd2VkU3RhdHVz
ZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCBkZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIC8vIE9wZW5HTCBpdHNlbGYgZG9l
c24ndCBzZWVtIHRvIGd1YXJhbnRlZSB0aGF0IGUuZy4gYSAyIHggMAotICAgIC8vIHJlbmRlcmJ1
ZmZlciB3aWxsIHJlcG9ydCAyIGZvciBpdHMgd2lkdGggd2hlbiBxdWVyaWVkLgotICAgIGlmICgh
KGhlaWdodCA9PSAwICYmIHdpZHRoID4gMCkpCi0gICAgICAgIHNob3VsZEJlKCJnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgp
IiwgIndpZHRoIik7Ci0gICAgaWYgKCEod2lkdGggPT0gMCAmJiBoZWlnaHQgPiAwKSkKLSAgICAg
ICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIiwgImhlaWdodCIpOwotICAgIHNob3VsZEJlKCJnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJf
SU5URVJOQUxfRk9STUFUKSIsICJnbC5ERVBUSF9TVEVOQ0lMIik7Ci0gICAgc2hvdWxkQmUoImds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9SRURfU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkiLCAiMCIp
OwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSIsICIwIik7Ci0gICAgc2hvdWxkQmUoImds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9BTFBIQV9TSVpFKSIsICIwIik7Ci0gICAgLy8gQXZvaWQgdmVyaWZ5aW5nIHRoZXNlIGZvciB6
ZXJvLXNpemVkIHJlbmRlcmJ1ZmZlcnMgZm9yIHRoZSB0aW1lCi0gICAgLy8gYmVpbmcgc2luY2Ug
aXQgYXBwZWFycyB0aGF0IGV2ZW4gT3BlbkdMIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZW0uCi0gICAg
aWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X0RFUFRIX1NJWkUpID4gMCIpOwotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJ
WkUpID4gMCIpOwotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LSAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3Rl
bmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c2VzKTsKLSAgICB0ZXN0RGVwdGhTdGVuY2lsRGVwdGhT
dGVuY2lsKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3REZXB0aFN0ZW5jaWxEZXB0aFN0ZW5jaWwoKQot
ewotICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgdmFyIHRlc3RzID0gWwotICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6IGdsLkRFUFRIX0NP
TVBPTkVOVDE2LAotICAgICAgICAgICAgZmlyc3RBdHRhY2g6IGdsLkRFUFRIX0FUVEFDSE1FTlQs
Ci0gICAgICAgICAgICBzZWNvbmRGb3JtYXQ6IGdsLkRFUFRIX1NURU5DSUwsCi0gICAgICAgICAg
ICBzZWNvbmRBdHRhY2g6IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotICAgICAgICB9LAot
ICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6IGdsLkRFUFRIX1NURU5DSUwsCi0gICAgICAgICAgICBm
aXJzdEF0dGFjaDogZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULAotICAgICAgICAgICAgc2Vj
b25kRm9ybWF0OiBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAgICAgICAgICAgIHNlY29uZEF0dGFj
aDogZ2wuREVQVEhfQVRUQUNITUVOVAotICAgICAgICB9Ci0gICAgXTsKLSAgICBmb3IgKHZhciBp
aSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgIHZhciB0ZXN0ID0gdGVz
dHNbaWldOwotICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMjsgKytqaikgewotICAgICAg
ICAgICAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgICAgICAgICB2YXIg
dGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAgICAgdmFyIGZpcnN0UmIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAg
ICAgZGVidWcoInRlc3Q6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRlc3QuZmlyc3RGb3Jt
YXQpICsgIiB2cyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LnNlY29uZEZvcm1hdCkg
KyAiIHdpdGggIiArIChqaiA/ICJ1bmJpbmQiIDogImRlbGV0ZSIpKTsKLQotICAgICAgICAgICAg
Z2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgICAgICAgICAgLy8g
YXR0YWNoIHRleHR1cmUgYXMgY29sb3IKLSAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRF
WFRVUkVfMkQsIHRleCk7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQs
IDAsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IG51bGwpOwotICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZG
RVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotCi0gICAg
ICAgICAgICAvLyBhdHRhY2ggZmlyc3QKLSAgICAgICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIo
Z2wuUkVOREVSQlVGRkVSLCBmaXJzdFJiKTsKLSAgICAgICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LmZpcnN0Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0
ZXN0LmZpcnN0QXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIGZpcnN0UmIpOwotCi0gICAgICAgICAg
ICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJB
TUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgICAgICAgICBnbC5lbmFibGUoZ2wuREVQVEhf
VEVTVCk7Ci0gICAgICAgICAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBDb2xvclF1YWQo
Z2wpOwotICAgICAgICAgICAgICAgIC8vIFRlc3QgaXQgd29ya3MKLSAgICAgICAgICAgICAgICB3
dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMCwgMjU1LCAwLCAyNTVdKTsKLSAgICAgICAgICAg
ICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMjU1LCAwLCAwLCAyNTVdKTsgIC8vIHNo
b3VsZCBub3QgZHJhdyBzaW5jZSBERVBUSF9GVU5DID09IExFU1MKLSAgICAgICAgICAgICAgICB3
dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBbMCwgMjU1LCAwLCAy
NTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIgc2Vjb25kUmIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAgICAgICAgICAgIC8vIGF0dGFjaCBz
ZWNvbmQKLSAgICAgICAgICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZF
Uiwgc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCB0ZXN0LnNlY29uZEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAg
ICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRlc3Qu
c2Vjb25kQXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIHNlY29uZFJiKTsKLQotICAgICAgICAgICAg
ICAgIGlmIChqaiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAvLyBub3cgZGVsZXRlIGl0Ci0g
ICAgICAgICAgICAgICAgICBkZWJ1ZygidGVzdCBkZWxldGluZyBzZWNvbmQgcmVuZGVyYnVmZmVy
Iik7Ci0gICAgICAgICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIoc2Vjb25kUmIpOwot
ICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyB1bmJpbmQgaXQK
LSAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0ZXN0IHVuYmluZGluZyBzZWNvbmQgcmVuZGVyYnVm
ZmVyIik7Ci0gICAgICAgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgdGVzdC5zZWNvbmRBdHRhY2gsIGdsLlJFTkRFUkJVRkZFUiwgbnVsbCk7Ci0g
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGF0dGFj
aG1lbnQgaXMgbm90IHJlc3RvcmVkIHRoaXMgbWF5IGZhaWwKLSAgICAgICAgICAgICAgICBzaG91
bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUiknLCAnZ2wuRlJB
TUVCVUZGRVJfQ09NUExFVEUnKTsKLSAgICAgICAgICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLQotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBhdHRhY2ht
ZW50IGlzIG5vdCByZXN0b3JlZCB0aGlzIG1heSBmYWlsLgotICAgICAgICAgICAgICAgIGdsLmNs
ZWFyKGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAgICAgICAgICAgIHd0dS5kcmF3VUJ5dGVD
b2xvclF1YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOwotICAgICAgICAgICAgICAgIHd0dS5kcmF3
VUJ5dGVDb2xvclF1YWQoZ2wsIFsyNTUsIDAsIDAsIDI1NV0pOyAgLy8gc2hvdWxkIG5vdCBkcmF3
IHNpbmNlIERFUFRIX0ZVTkMgPT0gTEVTUwotICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZh
c1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91bGQg
YmUgZ3JlZW4iKTsKLSAgICAgICAgICAgICAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwot
Ci0gICAgICAgICAgICAgICAgaWYgKGpqID09IDEpIHsKLSAgICAgICAgICAgICAgICAgIGdsLmRl
bGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRSYik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotCi0gICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIoc2Vjb25kUmIpOwotICAg
ICAgICAgICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZGVzY3JpcHRpb24oIlRl
c3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVoYXZpb3JzIik7Ci0KLWZvciAod2lk
dGggPSAwOyB3aWR0aCA8PSAyOyB3aWR0aCArPSAyKQotewotICAgIGZvciAoaGVpZ2h0ID0gMDsg
aGVpZ2h0IDw9IDI7IGhlaWdodCArPSAyKQotICAgIHsKLSAgICAgICAgZGVidWcoIiIpOwotICAg
ICAgICBkZWJ1ZygiRGltZW5zaW9ucyAiICsgd2lkdGggKyAiIHggIiArIGhlaWdodCk7Ci0KLSAg
ICAgICAgZGVidWcoIkNyZWF0ZSByZW5kZXJidWZmZXJzIik7Ci0gICAgICAgIHNob3VsZEJlTm9u
TnVsbCgiZ2wgPSBjcmVhdGUzRENvbnRleHQoKSIpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwo
ImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wuYmlu
ZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICAgICAgZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCB3aWR0aCwgaGVp
Z2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAg
IHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIp
OwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZm
ZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
REVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJzdGVuY2lsQnVm
ZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRlcmJ1
ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJi
dWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuU1RFTkNJTF9JTkRFWDgsIHdpZHRoLCBo
ZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAg
ICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwg
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgICAgICB2YXIgYWxsb3dlZFN0
YXR1c0Zvckdvb2RDYXNlCi0gICAgICAgICAgICA9ICh3aWR0aCA9PSAwIHx8IGhlaWdodCA9PSAw
KSA/IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCA6IEFMTE9XX0NPTVBMRVRFOwotCi0gICAg
ICAgIC8vIHNvbWUgY2FzZXMgaW52b2x2aW5nIHN0ZW5jaWwgc2VlbSB0byBiZSBpbXBsZW1lbnRh
dGlvbi1kZXBlbmRlbnQKLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50
Q2FzZSA9IGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSB8IEFMTE9XX1VOU1VQUE9SVEVEOwotCi0g
ICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRUQUNITUVOVCIpOwotICAg
ICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxs
b3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJ
TF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsK
LSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1F
TlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVi
dWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVCIpOwotICAgICAgICB0
ZXN0QXR0YWNobWVudChnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGFsbG93
ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50Q2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3Rl
bmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGds
LkRFUFRIX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNI
TUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwot
ICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRB
Q0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7Ci0g
ICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQi
KTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhTdGVu
Y2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1Zygi
QXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAg
dGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIs
IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0
dXNGb3JDb25mbGljdGVkQXR0YWNobWVudAotICAgICAgICAgICAgPSAod2lkdGggPT0gMCB8fCBo
ZWlnaHQgPT0gMCkgPyBBTExPV19VTlNVUFBPUlRFRCB8IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNI
TUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBTExPV19V
TlNVUFBPUlRFRDsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWws
IGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX0FU
VEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZm
ZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVn
KCJBdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAg
ICB0ZXN0QXR0YWNobWVudHMoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBn
bC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0
ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0
ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRF
UFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQs
IGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50
KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNp
bmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX1NURU5DSUxf
QVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0
aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAg
ZGVidWcoIkF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGlj
dCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhC
dWZmZXIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBh
bGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAgICBkZWJ1ZygiQXR0
YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAg
ICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3Rl
bmNpbEJ1ZmZlciwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBhbGxvd2Vk
U3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2gg
Y29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQiKTsKLSAgICAg
ICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQkE0LCBhbGxvd2VkU3RhdHVzRm9yR29vZENh
c2UpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50
ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMSIpOwotICAgICAgICB0ZXN0Q29sb3JSZW5kZXJidWZmZXIo
Z2wuUkdCNV9BMSwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLQotICAgICAgICBkZWJ1Zygi
QXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NSIp
OwotICAgICAgICB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wuUkdCNTY1LCBhbGxvd2VkU3RhdHVz
Rm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJDcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0
ZW5jaWwgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgIHRlc3REZXB0aFN0ZW5jaWxSZW5kZXJidWZm
ZXIoYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICB9Ci19Ci0KLS8vIERldGVybWluZSBp
ZiB3ZSBjYW4gYXR0YWNoIGJvdGggY29sb3IgYW5kIGRlcHRoIG9yIGNvbG9yIGFuZCBkZXB0aF9z
dGVuY2lsCi12YXIgZGVwdGhGb3JtYXQ7Ci12YXIgZGVwdGhBdHRhY2htZW50OwotCi1mdW5jdGlv
biBjaGVja1ZhbGlkQ29sb3JEZXB0aENvbWJpbmF0aW9uKCkgewotICAgIHNob3VsZEJlTm9uTnVs
bCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGds
LlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJF
TkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgi
ZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0KLSAgICByZXR1cm4gdHJ5
RGVwdGgoZ2wuREVQVEhfQ09NUE9ORU5UMTYsIGdsLkRFUFRIX0FUVEFDSE1FTlQpIHx8IHRyeURl
cHRoKGdsLkRFUFRIX1NURU5DSUwsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk7Ci0KLSAg
ICBmdW5jdGlvbiB0cnlEZXB0aCh0cnlfZm9ybWF0LCB0cnlfYXR0YWNobWVudCkgewotICAgICAg
ICBpZiAoZGVwdGhBdHRhY2htZW50KSB7Ci0gICAgICAgICAgICAvLyBJZiB3ZSd2ZSB0cmllZCBv
bmNlIHVuYXR0YWNoIHRoZSBvbGQgb25lLgotICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoCi0gICAgICAgICAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVu
dCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICAgICAgfQotICAgICAgICBkZXB0aEZvcm1h
dCA9IHRyeV9mb3JtYXQ7Ci0gICAgICAgIGRlcHRoQXR0YWNobWVudCA9IHRyeV9hdHRhY2htZW50
OwotICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgICAgIGdsLkZS
QU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIp
OwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhG
b3JtYXQsIDE2LCAxNik7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwotICAgICAgICByZXR1cm4gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEU7Ci0gICAgfQotfQotCi1pZiAoY2hlY2tWYWxp
ZENvbG9yRGVwdGhDb21iaW5hdGlvbigpKSB7Ci0gICAgdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0
ZURpbWVuc2lvbnMoKTsKLSAgICB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlQXR0YWNobWVudCgp
OwotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVNaXNzaW5nQXR0YWNobWVudCgpOwotICAg
IHRlc3RVc2luZ0luY29tcGxldGVGcmFtZWJ1ZmZlcigpOwotfQotCi1mdW5jdGlvbiBjaGVja0Zy
YW1lYnVmZmVyKGV4cGVjdGVkKSB7Ci0gICAgdmFyIGFjdHVhbCA9IGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotICAgIHZhciBtc2cgPSAiZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlICIgKyB3dHUuZ2xFbnVtVG9TdHJp
bmcoZ2wsIGV4cGVjdGVkKSArICIgd2FzICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGFjdHVh
bCk7Ci0gICAgaWYgKGV4cGVjdGVkICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAg
ICAgIG1zZyArPSAiIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEIjsKLSAgICB9Ci0gICAgaWYg
KGFjdHVhbCA9PSBleHBlY3RlZCB8fAotICAgICAgICAoZXhwZWN0ZWQgIT0gZ2wuRlJBTUVCVUZG
RVJfQ09NUExFVEUgJiYKLSAgICAgICAgIGFjdHVhbCA9PSBnbC5GUkFNQlVGRkVSX1VOU1VQUE9S
VEVEKSkgewotICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
dGVzdEZhaWxlZChtc2cpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdFVzaW5nSW5jb21wbGV0
ZUZyYW1lYnVmZmVyKCkgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBkcmF3aW5n
IG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAgdmFyIHBy
b2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAgIHZhciB0ZXggPSBnbC5jcmVh
dGVUZXh0dXJlKCk7Ci0gICAgd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDEsIDEsIFswLDI1NSww
LDI1NV0pOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAg
IHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIp
OwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7
Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0g
ICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwg
MTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRl
cHRoQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wu
RlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZl
cik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9y
bWF0LCAxNiwgMTYpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAg
IGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgLy8gV2Ug
cGljayB0aGlzIGNvbWJpbmF0aW9uIGJlY2F1c2UgaXQgd29ya3Mgb24gZGVza3RvcCBPcGVuR0wg
YnV0IHNob3VsZCBub3Qgd29yayBvbiBPcGVuR0wgRVMgMi4wCi0gICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYpOwotICAgIGNoZWNr
RnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBk
ZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxl
dGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIik7Ci0gICAgdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmcoKTsKLQotICAgIHNob3VsZEJlTm9u
TnVsbCgiZmJvMiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibzIpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpOwotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKLSAg
ICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1
ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9y
YWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDAsIDApOwotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZl
ciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKLSAgICB0
ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgZnVuY3Rpb24gdGVzdFJlbmRlcmluZ0Fu
ZFJlYWRpbmcoKSB7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
ICAgICAgICB3dHUuZHJhd1F1YWQoZ2wpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
LklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiZHJhd0FycmF5cyB3aXRoIGluY29tcGxl
dGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5S
R0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheSg0KSk7Ci0gICAgICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sICJyZWFkUGl4
ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICAvLyBjb3B5VGV4SW1h
Z2UgYW5kIGNvcHlUZXhTdWJJbWFnZSBjYW4gYmUgZWl0aGVyIElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIGJlY2F1c2UKLSAgICAgICAgLy8gdGhlIGZyYW1lYnVmZmVyIGlzIGludmFsaWQg
T1IgSU5WQUxJRF9PUEVSQVRJT04gYmVjYXVzZSBpbiB0aGUgY2FzZSBvZiBubyBhdHRhY2htZW50
cwotICAgICAgICAvLyB0aGUgZnJhbWVidWZmZXIgaXMgbm90IG9mIGEgY29tcGF0aWJsZSB0eXBl
LgotICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCAw
LCAwLCAxLCAxKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBbZ2wuSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04sIGdsLklOVkFMSURfT1BFUkFUSU9OXSwgImNvcHlUZXhJbWFnZTJE
IGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICBnbC5jb3B5VGV4SW1hZ2Uy
RChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAwLCAwLCAxLCAxLCAwKTsKLSAgICAgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBbZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sIGdsLklO
VkFMSURfT1BFUkFUSU9OXSwgImNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFt
ZWJ1ZmZlciIpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04sICJjbGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIi
KTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVBdHRhY2ht
ZW50KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBz
aG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsK
LSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwot
ICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwg
Z2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAg
IGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2
KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAg
IGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiV3Jvbmcgc3RvcmFnZSB0eXBlIGZvciB0eXBlIG9mIGF0
dGFjaG1lbnQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIChPcGVuR0wgRVMg
Mi4wIDQuNC41KSIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVS
LCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWco
IjAgc2l6ZSBhdHRhY2htZW50IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFD
SE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUpIik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAwLCAwKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZyYW1lYnVmZmVySW5j
b21wbGV0ZU1pc3NpbmdBdHRhY2htZW50KCkgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
Tm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVfRlJBTUVCVUZGRVJfTUlTU0lOR19B
VFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgi
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihn
bC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgi
Y29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJh
bWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2wuZnJhbWVidWZmZXJS
ZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLQotICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotfQotCi1mdW5jdGlvbiB0ZXN0RnJhbWVidWZmZXJJbmNv
bXBsZXRlRGltZW5zaW9ucygpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkF0dGFjaG1l
bnRzIG9mIGRpZmZlcmVudCBzaXplcyBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9E
SU1FTlNJT05TIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotCi0gICAgc2hvdWxkQmVOb25OdWxs
KCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wu
UkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVO
REVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJk
ZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwg
Z2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZG
RVJfQ09NUExFVEUpOwotCi0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihn
bC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAzMik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMpOwotICAgIGdsLnJlbmRlcmJ1
ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVj
a0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLSAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7
Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgbnVsbCk7Ci0gICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGlmIChnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkg
ewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJF
XzJELCAwLCBnbC5SR0JBLCAzMiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51
bGwpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1F
TlNJT05TKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDE2
LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgY2hlY2tGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYTVmODk3NjQxNzRmNzk1
MzlhMTg3MmYyZDIwMjc3MjYzYjIzZTllLi42MDBlZmU2ZmVjNzc2YjBlZjNjZTNkNzE0ZDdjZjhm
MTUzNmUzNjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNDM1LDcgKzQzNSw2IEBAIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvdmlkZW8v
dmlkZW8tYmFja2dyb3VuZC1jb2xvci5odG1sIFsgTWlzc2luZyBDcmFzCiB3ZWJraXQub3JnL2Iv
MTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2FudGlhbGlhc2luZy1lbmFibGVkLmh0bWwgWyBGYWls
dXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0
LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBbIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9jb3B5QnVmZmVyU3ViRGF0
YS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmds
L2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QnVmZmVyU3ViRGF0YS13ZWJnbDEuaHRt
bCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9nbHNs
LWNvbmZvcm1hbmNlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9j
YW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlhbHBoYS10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDQ5NTU2ZWQ3ODFlNGI0
ZDc2NGNlMjNlYWY5YzIzMDlhYmM3ZTVmNS4uOGEyN2ZiNTIwYzUyYmE0MDZiMmQ2NmYwMzhhZWQx
OTU3OTkyODkzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTI3NDAsNyArMjc0MCw2IEBAIHdlYmtpdC5vcmcvYi8xNzE2MTcgcGVyZi9vYmplY3Qta2V5
cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBXZWJHTCB0ZXN0cyB3aGljaCBuZWVkIHRyaWFn
aW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2IvMTc0MTAwCiBmYXN0L2NhbnZhcy93ZWJnbC9j
b250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBbIEZh
aWx1cmUgXQotZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQu
aHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtZmxvYXQtbGlu
ZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYt
ZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFn
ZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtcG90ZW50aWFsbHktc3Vic2FtcGxlZC1pbWFnZS5odG1s
IFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDkwMjdhOWQzOWU3ZjZjMzFjNjA0N2Y4YTU1ODM4MGUxZGJlODZmYTcuLmJhY2YxZmU2ZGM0
OTNjNTYwNjdkYzI3MDVjNjc1ZDg5Yjg1N2NkM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTQsOCArMjk0LDYgQEAgd2Via2l0Lm9yZy9iLzgyNjY1
IHdlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbmxpbmUtc3R5bGVzLmh0bWwgWyBG
YWlsdXIKIAogd2Via2l0Lm9yZy9iLzgyNzYyIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCiAKLXdlYmtpdC5vcmcvYi84MjgwNSBmYXN0L2Nh
bnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sIFsgRmFpbHVyZSBd
Ci0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2xheW91dC1pbi1iZWZvcmVs
b2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1Z2luLWxvYWRpbmcuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiB3ZWJraXQub3JnL2IvODI5NzIgcGx1Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRwb3MuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386451</attachid>
            <date>2019-12-27 12:24:31 -0800</date>
            <delta_ts>2019-12-27 13:40:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191228072429.patch</filename>
            <type>text/plain</type>
            <size>377889</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGI4ZGEzYjJiYjhjNTI1
OTc2ZjY5YzdkNmE2Yzk3OTBhNzU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZyA9IDAsCisgICAgICAgIERvUHJlbXVsdGlwbHkgPSAxLAorICAgICAg
ICBEb1VubXVsdGlwbHkgPSAyCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRE9NU291cmNlIDog
dWludDhfdCB7CisgICAgICAgIEltYWdlID0gMCwKKyAgICAgICAgQ2FudmFzID0gMSwKKyAgICAg
ICAgVmlkZW8gPSAyLAorICAgICAgICBOb25lID0gMworICAgIH07CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
ID0gMDsKKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZvcm1h
dCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkExNkY6CisgICAgICAg
IGNhc2UgRGF0YUZvcm1hdDo6QTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTg6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6QVI4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJB
MTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkFSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1h
dDo6UkdCQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZv
cm1hdCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgICAgIGNhc2UgRGF0
YUZvcm1hdDo6UkdCQTg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTE2RjoKKyAgICAg
ICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBMzJGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJH
Qjg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCMTZGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQjMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1I4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFSR0I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6
OlJHQkE1NTUxOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE0NDQ0OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQjU2NToKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlIz
MkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkFSODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gQ2hlY2sgaWYgdGhlIGZvcm1hdCBpcyBvbmUgb2YgdGhlIGZvcm1hdHMgZnJvbSB0aGUgSW1h
Z2VEYXRhIG9yIERPTSBlbGVtZW50cy4KKyAgICAvLyBUaGUgZm9ybWF0cyBmcm9tIEltYWdlRGF0
YSBpcyBhbHdheXMgUkdCQTguCisgICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBET00gZWxlbWVudHMg
dmFyeSB3aXRoIEdyYXBoaWNzIHBvcnRzLiBJdCBjYW4gb25seSBiZSBSR0JBOCBvciBCR1JBOCBm
b3Igbm9uLUNHIHBvcnQgd2hpbGUgYSBsaXR0bGUgbW9yZSBmb3IgQ0cgcG9ydC4KKyAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBib29sIHNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRPckltYWdl
RGF0YShEYXRhRm9ybWF0IFNyY0Zvcm1hdCkKKyAgICB7CisjaWYgVVNFKENHKQorI2lmIENQVShC
SUdfRU5ESUFOKQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0
OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSQTggfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OkFSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkE4OworI2Vsc2UKKyAgICAvLyBUaGF0IExJVFRMRV9F
TkRJQU4gY2FzZSBoYXMgbW9yZSBwb3NzaWJsZSBmb3JtYXRzIHRoYW4gQklHX0VORElBTiBjYXNl
IGlzIGJlY2F1c2Ugc29tZSBkZWNvZGVkIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYmlnIGVuZGlh
bgorICAgIC8vIGV2ZW4gb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzLgorICAgIHJldHVy
biBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3Jt
YXQ6OkFCR1I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpCR1I4CisgICAgICAgIHx8IFNy
Y0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6
QVJHQjggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQjgKKyAgICAgICAgfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBOAorICAg
ICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpBUjg7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpCR1JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOwor
ICAgICAgICBHQzNEZW51bSB0eXBlOworICAgICAgICBHQzNEaW50IHNpemU7CisgICAgfTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMsIERl
c3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0M0RCYXNl
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
M0RCYXNlKCkgPSBkZWZhdWx0OworCisgICAgLy8gPT09PT09PT09PSBXZWJHTCAxIGVudHJ5IHBv
aW50cy4KKworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKEdDM0RlbnVtIHRleHR1cmUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmlu
ZEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RPYmplY3QsIEdDM0R1aW50IGluZGV4LCBjb25zdCBT
dHJpbmcmIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVj
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihHQzNEY2xh
bXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNsYW1wZiBibHVlLCBHQzNEY2xhbXBmIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb24oR0MzRGVudW0gbW9kZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0MzRGVudW0gbW9k
ZVJHQiwgR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
YyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGJsZW5kRnVuY1NlcGFyYXRlKEdDM0RlbnVtIHNyY1JHQiwgR0MzRGVudW0gZHN0UkdCLCBH
QzNEZW51bSBzcmNBbHBoYSwgR0MzRGVudW0gZHN0QWxwaGEpID0gMDsKKworICAgIHZpcnR1YWwg
R0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
RGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5j
aWwoR0MzRGludCBzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVh
biByZWQsIEdDM0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBh
bHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmpl
Y3QpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlQnVmZmVyKCkgPSAwOworICAg
IHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwg
UGxhdGZvcm0zRE9iamVjdCBjcmVhdGVTaGFkZXIoR0MzRGVudW0pID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShHQzNEZW51bSBtb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
QnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJh
bWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVu
ZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
U2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5j
KEdDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpO
ZWFyLCBHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVy
KFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdBcnJheXMoR0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6
ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlKEdDM0RlbnVtIGNhcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZh
Y2UoR0MzRGVudW0gbW9kZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlTWlwbWFw
KEdDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJp
YihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVVbmlmb3JtKFBsYXRmb3JtM0RPYmplY3Qg
cHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXpl
aSBtYXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykg
PSAwOworCisgICAgdmlydHVhbCBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdldEJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRTdHJpbmcoR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYo
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW50ZWdlcnYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQ2NCogdmFsdWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEJvb2xlYW52KEdDM0RlbnVtIHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpID0gMDsK
KworICAgIHZpcnR1YWwgR0MzRGVudW0gZ2V0RXJyb3IoKSA9IDA7CisKKyAgICAvLyBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFBy
b2dyYW1QYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFNoYWRl
clBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVu
dW0gcHJlY2lzaW9uVHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgPSAw
OworCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKworICAgIC8vIGdldFRleFBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQ
YXJhbWV0ZXJmdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRV
bmlmb3JtCisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VW5pZm9ybWl2KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGludCBnZXRV
bmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7
CisKKyAgICAvLyBnZXRWZXJ0ZXhBdHRyaWIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0
cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGluZGV4LCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRHNp
emVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5h
bWUpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNCdWZmZXIoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNFbmFibGVkKEdDM0RlbnVt
IGNhcCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1Byb2dyYW0oUGxhdGZv
cm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNTaGFkZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNUZXh0dXJl
KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKEdDM0Rm
bG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvbHlnb25PZmZzZXQoR0MzRGZsb2F0
IGZhY3RvciwgR0MzRGZsb2F0IHVuaXRzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNoYWRl
clNvdXJjZShQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIHN0cmluZykgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBH
QzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUo
R0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2sp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1
aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWws
IEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0
ZXJmKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwg
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtM2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZs
b2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVp
LCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgy
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJp
eDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0
cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3Nl
LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliMWYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmYoR0MzRHVpbnQgaW5kZXgsIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwg
R0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjNmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4
LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjRmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2
YWx1ZXMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1
aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1h
bGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgR0MzRGVudW0gdXNhZ2UpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0
ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2FnZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEaW50IGJvcmRlciwgR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRh
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgdGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVt
IHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBH
QzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQg
Zmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVp
IGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNpemVpIHByaW1j
b3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKSA9IDA7CisKKyAgICBHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgY29udGV4dEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJzOyB9Cisg
ICAgdm9pZCBzZXRDb250ZXh0QXR0cmlidXRlcyhjb25zdCBHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMmIGF0dHJzKSB7IG1fYXR0cnMgPSBhdHRyczsgfQorCisgICAgLy8gVmVydGV4QXJyYXlP
amVjdCBjYWxscworICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJh
eSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisKKyNpZiBVU0UoT1BFTkdMKSAmJiBFTkFCTEUoV0VCR0wyKQorICAg
IHZpcnR1YWwgdm9pZCBwcmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpID0gMDsKKyNlbmRp
ZgorCisgICAgLy8gU3VwcG9ydCBmb3IgZXh0ZW5zaW9ucy4gUmV0dXJucyBhIG5vbi1udWxsIG9i
amVjdCwgdGhvdWdoIG5vdAorICAgIC8vIGFsbCBtZXRob2RzIGl0IGNvbnRhaW5zIG1heSBuZWNl
c3NhcmlseSBiZSBzdXBwb3J0ZWQgb24gdGhlCisgICAgLy8gY3VycmVudCBoYXJkd2FyZS4gTXVz
dCBjYWxsIEV4dGVuc2lvbnMzRDo6c3VwcG9ydHMoKSB0bworICAgIC8vIGRldGVybWluZSB0aGlz
LgorICAgIHZpcnR1YWwgRXh0ZW5zaW9uczNEJiBnZXRFeHRlbnNpb25zKCkgPSAwOworCisgICAg
Ly8gPT09PT09PT09PSBXZWJHTCAyIGVudHJ5IHBvaW50cy4KKworICAgIHZpcnR1YWwgdm9pZCog
bWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNp
emVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2VzcykgPSAwOworICAgIHZpcnR1YWwgR0Mz
RGJvb2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRl
VGFyZ2V0LCBHQzNEaW50cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdD
M0RzaXplaXB0cikgPSAwOworCisgICAgLy8gZ2V0SW50ZXJuYWxGb3JtYXRQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdD
M0RpbnQqIHBhcmFtcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0Zm9ybTNET2JqZWN0IHByb2dy
YW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFt
ZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpID0gMDsKKworICAgIC8vID09PT09PT09PT0gTm9u
LVdlYkdMIGJhc2VkIGVudHJ5IHBvaW50cy4KKworICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVh
ckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOworCisgICAgc3RhdGljIHVpbnQ4X3QgZ2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSk7CisKKyAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKworcHJpdmF0ZToKKyAgICBHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgbV9hdHRyczsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3Rp
bmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuY3BwCmluZGV4IDkxMzAwNDQwY2RlZDQ5ZTFkZGQ1MGJjNDllYzc4ZGQ2NThk
ZDZhMGUuLmEzZTZkMjU4MjE0NWRlOGMxNjA5MGJkMGVjOGMwZmUzNDBmNDJlZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZh
dGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUpCitHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgog
ICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgm
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3Rs
eVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZTMzZjhmYmU3Mzg5MmUzNGI4
ZGVmODM2ZDQ2ZjVjNzBjNzljNjFkZC4uZjMyNTRhODA1OWI1NjJhMTU2YTdjNTZiNmExODY4N2Nl
MzQ3ZTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAgY2xhc3Mg
Qml0bWFwVGV4dHVyZUdMOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUp
OworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZSgpOwogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKaW5kZXggMWFiMWE0ZjY0YTYxNGU5ZDIz
ZGFjOGEwYTJhMmM0ODk3ZTkxZWU5MS4uNWVjMjcxNDVjMDMwZjlkYmJkZGZmMjU0ZjNhMTRkYjE1
YWJjM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKQEAgLTUxLDQgKzUxLDggQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv
bmcgR0MzRHVpbnQ2NDsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQordHlwZWRlZiB1bnNpZ25lZCBHTHVpbnQ7CisjZW5kaWYKKwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCmluZGV4IDc3YmIzYjJjZDE1
ZTEyNzExMjY5NDY5NGE2NDc5MmEwZGMzMWY2NGEuLjI5YTczNzU0ZjU1MDQxMmVhYWVkMjA0NDg5
MTA3YjM2NGI0ZTUzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZl
cnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludAogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgaWYgKCFtX2F0dHJzLmFscGhhKQorICAgIGlmICghY29udGV4dEF0dHJp
YnV0ZXMoKS5hbHBoYSkKICAgICAgICAgd2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMod2lkdGgs
IGhlaWdodCwgcGl4ZWxzKTsKICNlbmRpZgogfQpAQCAtMTM0LDE3ICsxMzQsMTggQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkKIAogYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBhdXRvIGF0
dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBjb25zdCBpbnQgd2lkdGggPSBzaXplLndp
ZHRoKCk7CiAgICAgY29uc3QgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAgR0x1aW50
IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1f
YXR0cnMuYWxwaGEpIHsKKyAgICBpZiAoYXR0cnMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5h
bENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0I4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQjsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMu
ZGVwdGgpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5j
aWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAgICAgLy8gU2VlIEdyYXBoaWNz
Q29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMuCiAKQEAgLTE1Nyw3ICsxNTgsNyBAQCBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAg
IH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICBHTGludCBtYXhT
YW1wbGVDb3VudDsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX01BWF9TQU1QTEVTX0FOR0xF
LCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRoYW4gNCBzYW1wbGVz
IGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAgLTE2Nyw3ICsx
NjgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXpl
JiBzaXplKQogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1f
bXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CiAgICAgICAgIGdldEV4dGVuc2lvbnMoKS5yZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgbV9p
bnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgZ2w6OkZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xf
UkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJzLnN0ZW5j
aWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdM
X1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAg
ICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JF
TkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0KTsKICAgICAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRlIHRoYXQg
Y29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0xNzUsOSArMTc2LDkgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAgICAgICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpICYmIGludGVybmFsRGVwdGhTdGVu
Y2lsRm9ybWF0ID09IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTKQogICAgICAgICAgICAgICAgIGds
OjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZm
ZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAgICAgICAgICAg
ICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVO
Q0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAg
ICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JF
TkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTIxNSw3ICsyMTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
OjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGF0dGFjaERlcHRoQW5kU3Rl
bmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgZ2w6OkJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAg
IGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAgICBt
dXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI5LDcgKzIzMCw5IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdMdWludCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewotICAg
IGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYg
KCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpKSB7CiAg
ICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICBnbDo6UmVuZGVyYnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZG
RVIsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAg
Ly8gV2ViR0wgMS4wJ3MgcnVsZXMgc3RhdGUgdGhhdCBjb21iaW5lZCBkZXB0aC9zdGVuY2lsIHJl
bmRlcmJ1ZmZlcnMKQEAgLTIzNyw5ICsyNDAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjph
dHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aAog
ICAgICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCA9PSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUykKICAgICAgICAgICAgIGdsOjpGcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgaWYgKGF0dHJz
LnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9k
ZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5E
RVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICBnbDo6
QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwpAQCAtMzc4LDE3ICszODEsMTgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQg
eSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5n
IGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICBnbDo6Rmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11
bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fZmJvKTsKICAgICAgICAgZ2w6OkZsdXNoKCk7CiAgICAgfQogICAgIGdsOjpSZWFkUGl4ZWxz
KHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7Ci0gICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAg
ICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
ICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8
IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYgKG1fc3RhdGUuYm91bmRGQk8g
PT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEp
ICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRycy5hbnRpYWxpYXMgJiYgbV9z
dGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAgICAgICAgIHdpcGVBbHBoYUNo
YW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIq
PihkYXRhKSk7CiAjZW5kaWYKIH0KQEAgLTM5OSwyMCArNDAzLDIzIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChj
b25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pCiB7CiAgICAgRXh0ZW5zaW9u
czNEJiBleHRlbnNpb25zID0gZ2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwpIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChh
dHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKHBhY2tlZERl
cHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5h
YmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgICAgICAgICAgLy8gRm9yY2Ug
ZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAgbV9hdHRycy5kZXB0aCA9IHRy
dWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7Ci0KKyAgICAgICAgICAgIGF0dHJzLnN0
ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAg
IH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFz
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFkanVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRv
IFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3VwcG9ydC4KLSAgICAgICAgaWYgKCFleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8ICFleHRl
bnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgfHwgIWV4dGVuc2lv
bnMuc3VwcG9ydHMoIkdMX09FU19yZ2I4X3JnYmE4IikgfHwgaXNHTEVTMkNvbXBsaWFudCgpKQot
ICAgICAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVs
dGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJf
YmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9yZ2JhOCIpKSB7Cisg
ICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICAgICAgICAgIHNldENvbnRl
eHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsK
ICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfYmxpdCIpOwogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKCJHTF9PRVNf
cmdiOF9yZ2JhOCIpOwpAQCAtNDM3LDcgKzQ0NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcikK
IAogICAgIHJlYWRSZW5kZXJpbmdSZXN1bHRzKHBpeGVscy5nZXQoKSwgdG90YWxCeXRlcyk7CiAK
LSAgICBpZiAoIW1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKSB7CisgICAgaWYgKCFjb250ZXh0
QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkgewogICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkgewogICAgICAgICAgICAgLy8gUHJlbXVsdGlwbHkg
YWxwaGEuCiAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gc3RkOjptaW4oMjU1LCBwaXhlbHNb
aSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7CkBAIC00NjQsNyArNDcxLDcgQEAgUmVmUHRy
PEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1h
Z2VEYXRhKCkKIHsKICAgICAvLyBSZWFkaW5nIHByZW11bHRpcGxpZWQgYWxwaGEgd291bGQgaW52
b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcwogICAgIC8vIGxvc3N5LgotICAgIGlmICht
X2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5w
cmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byBp
bWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShJbnRTaXplKG1fY3VycmVudFdpZHRoLCBtX2N1
cnJlbnRIZWlnaHQpKTsKQEAgLTQ5MCw3ICs0OTcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpwcmVwYXJlVGV4dHVyZSgpCiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTUxNyw3ICs1MjQsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGlu
dCBwaXhlbHNTaQogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgYm9vbCBtdXN0UmVz
dG9yZUZCTyA9IGZhbHNlOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChj
b250ZXh0QXR0cmlidXRlcygpLmFudGlhbGlhcykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIG11c3RSZXN0b3JlRkJPID0g
dHJ1ZTsKQEAgLTU2NCwxMSArNTcxLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hh
cGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKICAgICBUZW1w
b3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNF
KTsKICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xf
RkFMU0UpOwogCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUo
d2lkdGgsIGhlaWdodCkpOworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwog
CiAgICAgLy8gSW5pdGlhbGl6ZSByZW5kZXJidWZmZXJzIHRvIDAuCiAgICAgR0xmbG9hdCBjbGVh
ckNvbG9yW10gPSB7MCwgMCwgMCwgMH0sIGNsZWFyRGVwdGggPSAwOwpAQCAtNTgwLDE0ICs1ODks
MTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiAgICAgZ2w6OkdldEJvb2xlYW52
KEdMX0NPTE9SX1dSSVRFTUFTSywgY29sb3JNYXNrKTsKICAgICBnbDo6Q29sb3JNYXNrKEdMX1RS
VUUsIEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7
CisgICAgaWYgKGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIGdsOjpHZXRGbG9hdHYoR0xfREVQVEhf
Q0xFQVJfVkFMVUUsICZjbGVhckRlcHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNs
ZWFyRGVwdGgoMSk7CiAgICAgICAgIGdsOjpHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ss
ICZkZXB0aE1hc2spOwogICAgICAgICBnbDo6RGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBj
bGVhck1hc2sgfD0gR0xfREVQVEhfQlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGdsOjpHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6
OkNsZWFyU3RlbmNpbCgwKTsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJ
VEVNQVNLLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC02MDEs
MTEgKzYxMCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCkKIAogICAgIGdsOjpDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29s
b3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwogICAgIGdsOjpDb2xvck1hc2so
Y29sb3JNYXNrWzBdLCBjb2xvck1hc2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsK
LSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhkZXB0aE1hc2spOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgZ2w6OkNsZWFyU3RlbmNpbChjbGVh
clN0ZW5jaWwpOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3Rl
bmNpbE1hc2spOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVu
Y2lsTWFza0JhY2spOwpAQCAtNjU3LDcgKzY2Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVy
CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAg
ICAgZmJvID0gKG1fYXR0cnMuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsK
KyAgICAgICAgZmJvID0gKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNh
bXBsZUZCTyA6IG1fZmJvKTsKICAgICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcih0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUu
Ym91bmRGQk8gPSBmYm87CkBAIC04MzIsMjQgKzg0MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpjb21waWxlU2hhZGVyRGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsK
ICAgICB9CiAgICAgZ2w6OkNvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9y
bWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRl
eFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZz
ZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxl
RkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAo
YXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykg
ewogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCkpOwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICBnbDo6Q29weVRleFN1Yklt
YWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0x
MDM3LDExICsxMDUwLDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlv
bkRpcmVjdChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gZ2V0
QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAg
IHJldHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3Jz
VG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcAppbmRleCA0MThiZjM1YjkyOTczMWJiM2Y5MzkyNzNiZDkxYWQ4Njhm
ZjRhNjE3Li5iYzkzOGI0NDJiODExOGFhYmEzZjQzMzEwNmIxNzdkMGY4Mjc1ZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQz
RENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcApAQCAtNzcsMjEgKzc3LDIxIEBAIHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBnZXRTb3VyY2VEYXRhRm9ybWF0KHVuc2lnbmVkIGNvbXBvbmVudHNQ
ZXJQCiAgICAgICAgIHsgU291cmNlRm9ybWF0QmFzZVJHQiwgICAgICAgIFNvdXJjZUZvcm1hdEJh
c2VOdW1Gb3JtYXRzLCBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cyB9LCAvLyAzIGNvbXBvbmVu
dHNQZXJQaXhlbAogICAgICAgICB7IFNvdXJjZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3VyY2VG
b3JtYXRCYXNlQVJHQiwgICAgICAgU291cmNlRm9ybWF0QmFzZVJHQkEgICAgICAgIH0gLy8gNCBj
b21wb25lbnRzUGVyUGl4ZWwKICAgICB9OwotICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRUYWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11b
NF0gPSB7IC8vIFNvdXJjZURhdGFGb3JtYXRCYXNlIHggYml0c1BlckNvbXBvbmVudCB4IGVuZGlh
bgorICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRU
YWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11bNF0gPSB7IC8vIFNvdXJjZURhdGFGb3Jt
YXQ6OkJhc2UgeCBiaXRzUGVyQ29tcG9uZW50IHggZW5kaWFuCiAgICAgICAgIC8vIDhiaXRzLCBs
aXR0bGUgZW5kaWFuICAgICAgICAgICAgICAgICA4Yml0cywgYmlnIGVuZGlhbiAgICAgICAgICAg
ICAgICAgICAgIDE2Yml0cywgbGl0dGxlIGVuZGlhbiAgICAgICAgICAgICAgICAgICAgICAgIDE2
Yml0cywgYmlnIGVuZGlhbgotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsICAgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJp
ZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVI4LCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkExNkxpdHRsZSwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcgfSwK
LSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
MTZMaXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnIH0sCi0gICAg
ICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCAgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRs
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZCaWcgfSwKLSAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEFSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZCaWcgfQorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2QmlnIH0sCisgICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZMaXR0bGUs
ICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZCaWcgfSwKKyAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZMaXR0
bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcgfSwKKyAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcgfSwKKyAgICAg
ICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QjE2TGl0dGxlLCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2QmlnIH0sCisg
ICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcg
fSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSR0IxNkxpdHRsZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0Ix
NkJpZyB9CiAgICAgfTsKIAogICAgIEFTU0VSVChjb21wb25lbnRzUGVyUGl4ZWwgPD0gNCAmJiBj
b21wb25lbnRzUGVyUGl4ZWwgPiAwKTsKICAgICBTb3VyY2VEYXRhRm9ybWF0QmFzZSBmb3JtYXRC
YXNlID0gZm9ybWF0VGFibGVCYXNlW2NvbXBvbmVudHNQZXJQaXhlbCAtIDFdW2FscGhhRm9ybWF0
XTsKICAgICBpZiAoZm9ybWF0QmFzZSA9PSBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cykKLSAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0TnVtRm9ybWF0czsKKyAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpOdW1Gb3JtYXRzOwog
ICAgIHJldHVybiBmb3JtYXRUYWJsZVtmb3JtYXRCYXNlXVsoaXMxNkJpdEZvcm1hdCA/IDIgOiAw
KSArIChiaWdFbmRpYW4gPyAxIDogMCldOwogfQogCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB1aW50
OF90IGNvbnZlcnRDb2xvcjE2QmlnVG84KHVpbnQxNl90IHZhbHVlKQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50OF90Pih2YWx1ZSAmIDB4MDBGRik7CiB9CiAKLXRlbXBsYXRlPGludCBmb3Jt
YXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1lIERzdFR5cGU+Cit0ZW1wbGF0ZTxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5
cGVuYW1lIERzdFR5cGU+CiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBOChjb25zdCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJv
d09mUkdCQTE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cp
OwpAQCAtMTI3LDcgKzEyNyw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZl
cnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnLCB1aW50MTZfdCwgdWludDhf
dD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCiAgICAgU0lNRDo6dW5wYWNr
T25lUm93T2ZSR0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVy
Um93KTsKQEAgLTE1NCw3ICsxNTQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2Qmln
LCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBj
b252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QVJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVu
cGFja09uZVJvd09mQVJHQjE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhl
bHNQZXJSb3cpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnLCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFS
R0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTE5Myw3ICsxOTMsNyBA
QCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4
ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7
ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84
KHNvdXJjZVswXSk7CkBAIC0yMDUsNyArMjA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcsIHVpbnQxNl90
LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29u
dmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMF0pOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMV0pOwpAQCAtMjUzLDcgKzI1Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMV0pOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjk2LDIwICsyOTYsMjAgQEAgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IHNy
Y0Zvcm1hdCwgY29uc3QgdWkKICAgICAgICAgcmV0dXJuIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdC
QTg8U3JjRm9ybWF0Pihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwogCiAgICAg
c3dpdGNoIChzcmNGb3JtYXQpIHsKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2
QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkJpZykKLSAg
ICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
QTE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9S
R0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcpCi0gICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4
KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2TGl0dGxlKQotICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0QVJHQjE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JB
OChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZC
aWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJBMTZMaXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcpCisgICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JN
QVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVJHQjE2QmlnKQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTQxNywxOCArNDE3LDE4IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2FscGhhT3Ag
PSBBbHBoYURvTm90aGluZzsKKyAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb05vdGhpbmc7CiAg
ICAgQWxwaGFGb3JtYXQgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdE5vbmU7CiAgICAgc3dpdGNo
IChDR0ltYWdlR2V0QWxwaGFJbmZvKG1fY2dJbWFnZS5nZXQoKSkpIHsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3Q6CiAgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBo
YSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRpcGx5OworICAgICAgICAg
ICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Vbm11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1h
dCA9IEFscGhhRm9ybWF0Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VB
bHBoYUZpcnN0OgogICAgICAgICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBN
YWNPUyBlYXJsaWVyIHRoYW4gMTAuNi40LgogICAgICAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkK
LSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAgICAgICAg
IG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhhRm9ybWF0
ID0gQWxwaGFGb3JtYXRGaXJzdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJbWFnZUFs
cGhhTm9uZVNraXBGaXJzdDoKQEAgLTQzNywxMiArNDM3LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxp
ZWRMYXN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBtX2Fs
cGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhh
T3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUxhc3Q6CiAgICAgICAgIGlm
IChwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFEb1ByZW11
bHRpcGx5OworICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9QcmVtdWx0aXBseTsK
ICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwTGFzdDoKQEAgLTQ1Niw3ICs0NTYsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgIH0KIAogICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQg
PSBnZXRTb3VyY2VEYXRhRm9ybWF0KGNvbXBvbmVudHNQZXJQaXhlbCwgYWxwaGFGb3JtYXQsIGJp
dHNQZXJDb21wb25lbnQgPT0gMTYsIGJpZ0VuZGlhblNvdXJjZSk7Ci0gICAgaWYgKG1faW1hZ2VT
b3VyY2VGb3JtYXQgPT0gRGF0YUZvcm1hdE51bUZvcm1hdHMpCisgICAgaWYgKG1faW1hZ2VTb3Vy
Y2VGb3JtYXQgPT0gRGF0YUZvcm1hdDo6TnVtRm9ybWF0cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9waXhlbERhdGEgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ29weURhdGEoQ0dJ
bWFnZUdldERhdGFQcm92aWRlcihtX2NnSW1hZ2UuZ2V0KCkpKSk7CkBAIC00OTAsNyArNDkwLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShi
b29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wKICAgICAgICAgICAgIGRlc3RpbmF0aW9uICs9IGRz
dFN0cmlkZUluRWxlbWVudHM7CiAgICAgICAgIH0KICAgICAgICAgbV9pbWFnZVBpeGVsRGF0YSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fZm9ybWFsaXplZFJHQkE4RGF0YS5nZXQo
KSk7Ci0gICAgICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0UkdCQTg7CisgICAg
ICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0OjpSR0JBODsKICAgICAgICAgbV9p
bWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IDE7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0M0RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KaW5kZXggZGE2YjNiNmQyNmQ5ZTE0MGQ5MDcy
ZDFkYjViZTY0NDUwMzE1YWMxYS4uYWY1MDQyM2RmMjhlZGNmM2VhNTA2M2E5NzAxNmJlYWIzM2Yw
YTczMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCBwdWJsaWM6CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpIHsgfQogfTsKIAot
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogewogICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24g
ZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RX
aW5kb3cuCi0gICAgaWYgKHJlbmRlclN0eWxlID09IFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
KQorICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5k
b3cpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhl
IGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KQEAgLTExMyw3ICsxMTMsNyBAQCBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzCiAgICAgaWYgKEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9IGFkb3B0UmVmKG5l
dyBHcmFwaGljc0NvbnRleHQzRChhdHRycywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAg
ICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhp
Y3NDb250ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICAgICBpZiAo
IWNvbnRleHQtPm1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMjYs
NyArMTI2LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogUmVmPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkKEdyYXBoaWNzQ29udGV4dDNEJiBzaGFy
ZWRDb250ZXh0KQogewogICAgIGF1dG8gaG9zdFdpbmRvdyA9IEdyYXBoaWNzQ29udGV4dDNETWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmhvc3RXaW5kb3dGb3JDb250ZXh0KCZzaGFyZWRDb250ZXh0
KTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dDNEKHNo
YXJlZENvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSwgaG9zdFdpbmRvdywgc2hhcmVkQ29u
dGV4dC5tX3JlbmRlclN0eWxlLCAmc2hhcmVkQ29udGV4dCkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0M0Qoc2hhcmVkQ29udGV4dC5jb250ZXh0QXR0
cmlidXRlcygpLCBob3N0V2luZG93LCBzaGFyZWRDb250ZXh0LmRlc3RpbmF0aW9uKCksICZzaGFy
ZWRDb250ZXh0KSk7CiAKICAgICBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5hZGRDb250ZXh0KGNvbnRleHQucHRyKCksIGhvc3RXaW5kb3cpOwogCkBAIC0xODMsOCAr
MTgzLDggQEAgc3RhdGljIHZvaWQgc2V0R1BVQnlSZWdpc3RyeUlEKENHTENvbnRleHRPYmogY29u
dGV4dE9iaiwgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWwKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykgJiYgKFVTRShPUEVOR0wpIHx8IFVTRShBTkdMRSkpCiAKLUdyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSwgR3JhcGhp
Y3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJzKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKKyAg
ICA6IEdyYXBoaWNzQ29udGV4dDNEQmFzZShhdHRycywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRl
eHQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
KHRoaXMpKQogewogCkBAIC0yMDAsMzAgKzIwMCwzNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2lu
ZAogICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIGlmIChtX2F0dHJz
LmlzV2ViR0wyKQorICAgIGlmIChhdHRycy5pc1dlYkdMMikKICAgICAgICAgbV9jb21waWxlciA9
IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBTSF9XRUJHTDJfU1BFQyk7CiAgICAg
ZWxzZQogICAgICAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQ
VVQpOwogI2Vsc2UKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9HTFNMXzQx
MF9DT1JFX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogI2VuZGlmIC8vIFVTRShPUEVOR0xfRVMp
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgVU5VU0VE
X1BBUkFNKGhvc3RXaW5kb3cpOwotICAgIEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gbV9hdHRycy5p
c1dlYkdMMiA/IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElP
cGVuR0xFUzI7CisgICAgRUFHTFJlbmRlcmluZ0FQSSBhcGkgPSBhdHRycy5pc1dlYkdMMiA/IGtF
QUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElPcGVuR0xFUzI7Cisg
ICAgRUFHTENvbnRleHQgKmNvbnRleHRPYmo7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTphcGld
OworICAgICAgICBjb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10gaW5pdFdpdGhBUEk6
YXBpXTsKICAgICBlbHNlCi0gICAgICAgIG1fY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxs
b2NdIGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnNoYXJlZENvbnRleHQtPm1fY29udGV4dE9i
ai5zaGFyZWdyb3VwXTsKKyAgICAgICAgY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2Nd
IGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnN0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KHNo
YXJlZENvbnRleHQtPm1fY29udGV4dE9iaikuc2hhcmVncm91cF07CisKKyAgICBtX2NvbnRleHRP
YmogPSBzdGF0aWNfY2FzdDx2b2lkICo+KGNvbnRleHRPYmopOworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIDo6Z2xFbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlBSSU1JVElWRV9S
RVNUQVJUX0ZJWEVEX0lOREVYKTsKICNlbGlmIFVTRShPUEVOR0wpCiAKLSAgICBib29sIHVzZU11
bHRpc2FtcGxpbmcgPSBtX2F0dHJzLmFudGlhbGlhczsKKyAgICBib29sIHVzZU11bHRpc2FtcGxp
bmcgPSBhdHRycy5hbnRpYWxpYXM7CiAKICAgICBWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1
dGU+IGF0dHJpYnM7CiAgICAgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWxGb3JtYXRPYmogPSAwOwpA
QCAtMjUwLDcgKzI1NCw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgICAgIGF0dHJp
YnMuYXBwZW5kKHN0YXRpY19jYXN0PENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPig0KSk7CiAgICAg
fQogCi0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIp
IHsKICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2YgYmFja2luZyBhIFdlYkdMMiBHcmFwaGlj
c0NvbnRleHQzRCB3aXRoIGEgT3BlbkdMIDQgY29udGV4dCwgd2Ugc2hvdWxkIGluc3RlYWQgYmFj
ayBpdCB3aXRoIEFOR0xFLgogICAgICAgICAvLyBVc2UgYW4gT3BlbkdMIDQgY29udGV4dCBmb3Ig
bm93IHVudGlsIHRoZSBBTkdMRSBiYWNrZW5kIGlzIHJlYWR5LgogICAgICAgICBhdHRyaWJzLmFw
cGVuZChrQ0dMUEZBT3BlbkdMUHJvZmlsZSk7CkBAIC0yNjQsMzAgKzI2OCwzNyBAQCBHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJzLCBIb3N0V2luZAogICAgIGlmICghbnVtUGl4ZWxGb3JtYXRzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0T2Jq
LCBzaGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqIDogbnVsbHB0ciwg
Jm1fY29udGV4dE9iaik7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gbnVsbHB0cjsK
KyAgICBDR0xDb250ZXh0T2JqIHNoYXJlZENHTENvbnRleHQgPSBzaGFyZWRDb250ZXh0ID8gc3Rh
dGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqKSA6IG51
bGxwdHI7CisKKyAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0
T2JqLCBzaGFyZWRDR0xDb250ZXh0LCAmY2dsQ29udGV4dCk7CiAgICAgR0xpbnQgYWJvcnRPbkJs
YWNrbGlzdCA9IDA7Ci0gICAgQ0dMU2V0UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJv
cnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotICAg
IAorICAgIENHTFNldFBhcmFtZXRlcihjZ2xDb250ZXh0LCBrQ0dMQ1BBYm9ydE9uR1BVUmVzdGFy
dFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7CisKICNpZiBQTEFURk9STShN
QUMpIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IHNob3VsZCBiZSBVU0UoT1BFTkdMKSAtIHNlZSA8
cmRhcjovLzUzMDYyNzk0Pi4KIAogICAgIGF1dG8gZ3B1SUQgPSAoaG9zdFdpbmRvdyAmJiBob3N0
V2luZG93LT5kaXNwbGF5SUQoKSkgPyBncHVJREZvckRpc3BsYXkoaG9zdFdpbmRvdy0+ZGlzcGxh
eUlEKCkpIDogcHJpbWFyeUdQVUlEKCk7Ci0gICAgc2V0R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4
dE9iaiwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKKyAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQoY2ds
Q29udGV4dCwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKIAogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oaG9zdFdpbmRvdyk7CiAjZW5kaWYKIAogICAgIENHTERlc3Ryb3lQaXhlbEZvcm1hdChwaXhl
bEZvcm1hdE9iaik7Ci0gICAgCisKKyAgICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OworCiAg
ICAgaWYgKGVyciAhPSBrQ0dMTm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CiAgICAgICAgIC8v
IFdlIHdlcmUgdW5hYmxlIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4KICAgICAgICAgbV9jb250ZXh0
T2JqID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faXNGb3JXZWJHTDIgPSBt
X2F0dHJzLmlzV2ViR0wyOworICAgIG1fY29udGV4dE9iaiA9IGNnbENvbnRleHQ7CisKKyAgICBt
X2lzRm9yV2ViR0wyID0gYXR0cnMuaXNXZWJHTDI7CiAKLSAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChtX2NvbnRleHRPYmopOworICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwog
CiAgICAgLy8gV2ViR0wgMiBleHBlY3RzIEVTIDMtb25seSBQUklNSVRJVkVfUkVTVEFSVF9GSVhF
RF9JTkRFWCB0byBiZSBlbmFibGVkOyB3ZSBtdXN0IGVtdWxhdGUgdGhpcyBvbiBub24tRVMgMyBz
eXN0ZW1zLgogICAgIGlmIChtX2lzRm9yV2ViR0wyKQpAQCAtMzM0LDcgKzM0NSw3IEBAIEdyYXBo
aWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgfQogCiAgICAgc3RkOjp2ZWN0b3I8RUdMaW50PiBjb250
ZXh0QXR0cmlidXRlczsKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikgeworICAgIGlmIChhdHRy
cy5pc1dlYkdMMikgewogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NP
TlRFWFRfQ0xJRU5UX1ZFUlNJT04pOwogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2Jh
Y2soMyk7CiAgICAgfSBlbHNlIHsKQEAgLTM5Niw2ICs0MDcsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZAogI2VuZGlmIC8vICNlbGlmIFVTRShBTkdMRSkKIAogICAgIHZhbGlkYXRlQXR0cmli
dXRlcygpOworICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2
ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgLy8gQ3JlYXRlIHRoZSBXZWJHTExh
eWVyCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC00NTEsMTYgKzQ2MywxNiBA
QCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xf
RlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAKICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87
Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpKQorICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRycy5zdGVuY2lsIHx8
IGF0dHJzLmRlcHRoKSkKICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVw
dGhTdGVuY2lsQnVmZmVyKTsKIAogICAgIC8vIElmIG5lY2Vzc2FyeSwgY3JlYXRlIGFub3RoZXIg
ZnJhbWVidWZmZXIgZm9yIHRoZSBtdWx0aXNhbXBsZSByZXN1bHRzLgotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbEdl
bkZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKICAg
ICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgIDo6Z2xH
ZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZl
cnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0KICNlbGlm
IFVTRShBTkdMRSkKQEAgLTQ2OCwxNiArNDgwLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5k
CiAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIG1f
c3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKIAotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkKKyAgICBpZiAoIWF0dHJzLmFudGlh
bGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkpCiAgICAgICAgIGdsOjpHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAKICAgICAvLyBJZiBuZWNl
c3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZvciB0aGUgbXVsdGlzYW1wbGUgcmVz
dWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFs
aWFzKSB7CiAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8p
OwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2Ft
cGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
IGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgZ2w6OkdlblJl
bmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0K
IApAQCAtNTI3LDEyICs1MzksMTUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRl
eHQzRCgpCiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVt
b3ZlQ29udGV4dCh0aGlzKTsKIAogICAgIGlmIChtX2NvbnRleHRPYmopIHsKKyAgICAgICAgR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwog
I2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6R0xfUkVOREVSQlVGRkVSIGZyb21E
cmF3YWJsZTpuaWxdOworICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250
ZXh0T2JqKSByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6
bmlsXTsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CiAj
ZWxpZiBVU0UoT1BFTkdMKQotICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRP
YmopOworICAgICAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xD
b250ZXh0T2JqPihtX2NvbnRleHRPYmopOworICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChj
Z2xDb250ZXh0KTsKICAgICAgICAgOjpnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOwog
I2VsaWYgVVNFKEFOR0xFKQogICAgICAgICBFR0xfTWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBF
R0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fY29udGV4dE9iaik7CkBAIC01NDAsMjQg
KzU1NSwyNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICNlbmRp
ZgogCiAjaWYgVVNFKE9QRU5HTCkgfHwgVVNFKE9QRU5HTF9FUykKLSAgICAgICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAg
ICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZm
ZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQor
ICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpCiAgICAgICAgICAg
ICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVyc0VYVCgxLCAm
bV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVm
ZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6
Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsKICNlbGlmIFVTRShBTkdMRSkKLSAg
ICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2Ft
cGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgp
CiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6RGVsZXRlUmVu
ZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAg
IGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKQEAgLTU2NSwxMCArNTgwLDEwIEBA
IEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OjBdOwotICAgICAg
ICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRPYmopIHJlbGVhc2VdOworICAg
ICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsK
ICNlbGlmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KDApOwotICAg
ICAgICBDR0xEZXN0cm95Q29udGV4dChtX2NvbnRleHRPYmopOworICAgICAgICBDR0xEZXN0cm95
Q29udGV4dChjZ2xDb250ZXh0KTsKICNlbGlmIFVTRShBTkdMRSkKICAgICAgICAgRUdMX01ha2VD
dXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xf
Tk9fQ09OVEVYVCk7CiAgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXlPYmosIG1f
Y29udGV4dE9iaik7CkBAIC01ODcsOSArNjAyLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShHQzNEc2l6ZWkgd2lkdGgsIEdDM0QK
ICAgICBDR1JlY3QgcHJldmlvdXNCb3VuZHMgPSBbbV93ZWJHTExheWVyLmdldCgpIGJvdW5kc107
CiAKICAgICBbbV93ZWJHTExheWVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBo
ZWlnaHQpXTsKLSAgICBbbV93ZWJHTExheWVyIHNldE9wYXF1ZTohbV9hdHRycy5hbHBoYV07Cisg
ICAgW21fd2ViR0xMYXllciBzZXRPcGFxdWU6IWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwog
Ci0gICAgW21fY29udGV4dE9iaiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBm
cm9tRHJhd2FibGU6c3RhdGljX2Nhc3Q8aWQ8RUFHTERyYXdhYmxlPj4obV93ZWJHTExheWVyLmdl
dCgpKV07CisgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVu
ZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOnN0YXRpY19jYXN0
PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQoKSldOwogCiAgICAgW21fd2ViR0xM
YXllciBzZXRCb3VuZHM6cHJldmlvdXNCb3VuZHNdOwogfQpAQCAtNjA2LDcgKzYyMSw3IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAjZWxpZiBVU0UoT1BF
TkdMKQogICAgIENHTENvbnRleHRPYmogY3VycmVudENvbnRleHQgPSBDR0xHZXRDdXJyZW50Q29u
dGV4dCgpOwogICAgIGlmIChjdXJyZW50Q29udGV4dCAhPSBtX2NvbnRleHRPYmopCi0gICAgICAg
IHJldHVybiBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRPYmopID09IGtDR0xOb0Vycm9y
OworICAgICAgICByZXR1cm4gQ0dMU2V0Q3VycmVudENvbnRleHQoc3RhdGljX2Nhc3Q8Q0dMQ29u
dGV4dE9iaj4obV9jb250ZXh0T2JqKSkgPT0ga0NHTE5vRXJyb3I7CiAjZWxpZiBVU0UoQU5HTEUp
CiAgICAgaWYgKEVHTF9HZXRDdXJyZW50Q29udGV4dCgpICE9IG1fY29udGV4dE9iaikKICAgICAg
ICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChtX2Rpc3BsYXlPYmosIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fU1VSRkFDRSwgbV9jb250ZXh0T2JqKTsKQEAgLTYzOCw3ICs2NTMsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAKICAgICBHTGludCByZXN0YXJ0U3Rh
dHVzID0gMDsKICNpZiBVU0UoT1BFTkdMKQotICAgIENHTEdldFBhcmFtZXRlcihwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRTdGF0dXMsICZyZXN0YXJ0U3RhdHVz
KTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0
T2JqPihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTEdldFBhcmFtZXRlcihj
Z2xDb250ZXh0LCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CiAgICAg
aWYgKHJlc3RhcnRTdGF0dXMgPT0ga0NHTENQR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkKSB7
CiAgICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUgaGFzIGJsYWNrbGlzdGVkIHVzICglcCkuIFRl
cm1pbmF0aW5nLiIsIHRoaXMpOwogICAgICAgICBleGl0KEVYX09TRVJSKTsKQEAgLTY2Niw3ICs2
ODIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKCkKIHsKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNvbnRleHRB
dHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVj
ZXNzYXJ5KCk7CiAKICAgICA6OmdsRmx1c2goKTsKQEAgLTY3OSw3ICs2OTUsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKCkKIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRl
cm5hbEZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBm
b3JtYXQsIEdDM0RlbnVtIHR5cGUsIElPU3VyZmFjZVJlZiBzdXJmYWNlLCBHQzNEdWludCBwbGFu
ZSkKIHsKICNpZiBVU0UoT1BFTkdMKQotICAgIHJldHVybiBrQ0dMTm9FcnJvciA9PSBDR0xUZXhJ
bWFnZUlPU3VyZmFjZTJEKHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgdGFyZ2V0LCBpbnRl
cm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBzdXJmYWNlLCBwbGFuZSk7
CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9i
aj4ocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICByZXR1cm4ga0NHTE5vRXJyb3Ig
PT0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChjZ2xDb250ZXh0LCB0YXJnZXQsIGludGVybmFsRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN1cmZhY2UsIHBsYW5lKTsKICNlbGlm
IFVTRShPUEVOR0xfRVMpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKICAgICBy
ZXR1cm4gW3BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJm
YWNlIHRhcmdldDp0YXJnZXQgaW50ZXJuYWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lk
dGggaGVpZ2h0OmhlaWdodCBmb3JtYXQ6Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAj
ZWxzZQpAQCAtNjk5LDcgKzcxNiw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnRleEltYWdl
SU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbEZvCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZShJbnRTaXplIHNp
emUpCiB7CiAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJm
YWNlQmFja2luZ1N0b3JlIGF0ICVkIHggJWQuICglcCkiLCBzaXplLndpZHRoKCksIHNpemUuaGVp
Z2h0KCksIHRoaXMpOwotICAgIFttX3dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5n
U3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxwaGE6bV9hdHRycy5hbHBoYV07CisgICAgW21fd2Vi
R0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUgdXNpbmdB
bHBoYTpjb250ZXh0QXR0cmlidXRlcygpLmFscGhhXTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6dXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFja2luZ1N0b3JlRnJvbUxheWVyKCkKQEAg
LTcxNiw3ICs3MzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1cGRhdGVDR0xDb250ZXh0
KCkKICAgICBMT0coV2ViR0wsICJEZXRlY3RlZCBhIG11eCBzd2l0Y2ggb3IgZGlzcGxheSByZWNv
bmZpZ3VyYXRpb24uIENhbGwgQ0dMVXBkYXRlQ29udGV4dC4gKCVwKSIsIHRoaXMpOwogCiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgQ0dMVXBkYXRlQ29udGV4dChtX2NvbnRleHRPYmop
OworICAgIENHTFVwZGF0ZUNvbnRleHQoc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9jb250
ZXh0T2JqKSk7CiAgICAgbV9oYXNTd2l0Y2hlZFRvSGlnaFBlcmZvcm1hbmNlR1BVID0gdHJ1ZTsK
IH0KIApAQCAtNzU5LDcgKzc3Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRl
SU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUgc2l6ZSkKIHsKICNpZiBIQVZFKElPU1VSRkFD
RSkKICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VC
YWNraW5nU3RvcmUgYXQgJWQgeCAlZC4gKCVwKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQo
KSwgdGhpcyk7Ci0gICAgW21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9y
ZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTptX2F0dHJzLmFscGhhXTsKKyAgICBbbV93ZWJHTExh
eWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2luZ0FscGhh
OmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oc2l6
ZSk7CiAjZW5kaWYKQEAgLTc3OSwxNCArNzk2LDYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faXNGb3JXZWJHTDI7CiB9CiAK
LXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlx
dWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdl
Q2FsbGJhY2s+KQotewotfQotCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzaW11bGF0ZUNvbnRl
eHRDaGFuZ2VkKCkKIHsKICAgICBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS51cGRhdGVBbGxDb250ZXh0cygpOwpAQCAtODM0LDggKzg0MywxMCBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzY3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
KQogICAgIH0KICNlbHNlCiAjaWYgVVNFKE9QRU5HTCkKLSAgICBpZiAoIW1faGFzU3dpdGNoZWRU
b0hpZ2hQZXJmb3JtYW5jZUdQVSkKLSAgICAgICAgc2V0R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4
dE9iaiwgQ0dMR2V0UGl4ZWxGb3JtYXQobV9jb250ZXh0T2JqKSwgZ3B1SURGb3JEaXNwbGF5KGRp
c3BsYXlJRCkpOworICAgIGlmICghbV9oYXNTd2l0Y2hlZFRvSGlnaFBlcmZvcm1hbmNlR1BVKSB7
CisgICAgICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRl
eHRPYmo+KG1fY29udGV4dE9iaik7CisgICAgICAgIHNldEdQVUJ5UmVnaXN0cnlJRChjZ2xDb250
ZXh0LCBDR0xHZXRQaXhlbEZvcm1hdChjZ2xDb250ZXh0KSwgZ3B1SURGb3JEaXNwbGF5KGRpc3Bs
YXlJRCkpOworICAgIH0KICNlbmRpZgogI2VuZGlmIC8vIFVTRShBTkdMRSkKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCmlu
ZGV4IGQ4ZTg1MDA5MGZjN2M5YmU1ZWNiY2NlOTdhMGQxNzljZTM1NzJmYzQuLjU1NDk0ZWQwZWUy
ZGUxYTJiMDFkMGQwMzY3MDA4Y2ZkODM4NWUwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQpAQCAtNzAsMTMgKzcwLDE0
IEBAIGNvbnN0IEdMZW51bSBpb1N1cmZhY2VUZXh0dXJlVHlwZSA9IEdMX1RFWFRVUkVfMkQ7CiB7
CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAg
X2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygpLmRldmlj
ZVBpeGVsUmF0aW87CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dC0+Y29udGV4dEF0dHJp
YnV0ZXMoKTsKKyAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9IGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxS
YXRpbzsKICNpZiBVU0UoT1BFTkdMKSB8fCBVU0UoQU5HTEUpCi0gICAgc2VsZi5jb250ZW50c09w
YXF1ZSA9ICFjb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygpLmFscGhhOworICAgIHNlbGYu
Y29udGVudHNPcGFxdWUgPSAhYXR0cmlidXRlcy5hbHBoYTsKICAgICBzZWxmLnRyYW5zZm9ybSA9
IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxmLmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNl
UGl4ZWxSYXRpbzsKICNlbHNlCi0gICAgc2VsZi5vcGFxdWUgPSAhY29udGV4dC0+Z2V0Q29udGV4
dEF0dHJpYnV0ZXMoKS5hbHBoYTsKKyAgICBzZWxmLm9wYXF1ZSA9ICFhdHRyaWJ1dGVzLmFscGhh
OwogI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMTIsNyArMTEzLDggQEAgc3RhdGlj
IHZvaWQgZnJlZURhdGEodm9pZCAqLCBjb25zdCB2b2lkICpkYXRhLCBzaXplX3QgLyogc2l6ZSAq
LykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICNpZiBVU0UoT1BFTkdMKQotICAgIENHTFNl
dEN1cnJlbnRDb250ZXh0KF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOwor
ICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+
KF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTFNldEN1cnJl
bnRDb250ZXh0KGNnbENvbnRleHQpOwogCiAgICAgUmV0YWluUHRyPENHQ29sb3JTcGFjZVJlZj4g
aW1hZ2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKICAgICBpZiAoIWltYWdlQ29sb3JTcGFjZSkK
QEAgLTI1MSw3ICsyNTMsOCBAQCBzdGF0aWMgdm9pZCBmcmVlRGF0YSh2b2lkICosIGNvbnN0IHZv
aWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAgIEdDM0RlbnVtIGludGVybmFsRm9ybWF0
ID0gX3VzaW5nQWxwaGEgPyBHTF9SR0JBIDogR0xfUkdCOwogCiAgICAgLy8gTGluayB0aGUgSU9T
dXJmYWNlIHRvIHRoZSB0ZXh0dXJlLgotICAgIENHTEVycm9yIGVycm9yID0gQ0dMVGV4SW1hZ2VJ
T1N1cmZhY2UyRChfY29udGV4dC0+cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBHTF9URVhU
VVJFX1JFQ1RBTkdMRV9BUkIsIGludGVybmFsRm9ybWF0LCBfYnVmZmVyU2l6ZS53aWR0aCgpLCBf
YnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVW
LCBpb1N1cmZhY2UsIDApOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19j
YXN0PENHTENvbnRleHRPYmo+KF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkp
OworICAgIENHTEVycm9yIGVycm9yID0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChjZ2xDb250ZXh0
LCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIGludGVybmFsRm9ybWF0LCBfYnVmZmVyU2l6ZS53
aWR0aCgpLCBfYnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhf
OF84XzhfUkVWLCBpb1N1cmZhY2UsIDApOwogICAgIEFTU0VSVF9VTlVTRUQoZXJyb3IsIGVycm9y
ID09IGtDR0xOb0Vycm9yKTsKICNlbGlmIFVTRShBTkdMRSkKICAgICBHQzNEZW51bSB0ZXh0dXJl
ID0gX2NvbnRleHQtPnBsYXRmb3JtVGV4dHVyZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNhY2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQppbmRleCAwMTlkMjM5NTE3
ZDgyYmMyZWJmM2RiNjU2NmMzZmFkM2E1ODBmZGExLi5mNTJmZTNkYThlOWJlZjY3ZGJjNDk2MDVm
Y2E3OWNlNDY5NDM0YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAtMzgsOSArMzgsMTEgQEAgc3RkOjp1bmlx
dWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2FjaGVDVjo6Y3JlYXRlKEdyYXBoaWNzQ29u
dGV4dDNEJiBjb250ZXgKIHsKICAgICBUZXh0dXJlQ2FjaGVUeXBlIGNhY2hlID0gbnVsbHB0cjsK
ICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1
cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwgJmNhY2hlKTsKKyAgICBDVkVBR0xDb250
ZXh0IGVhZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q1ZFQUdMQ29udGV4dD4oY29udGV4dC5wbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xF
U1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBlYWdsQ29u
dGV4dCwgbnVsbHB0ciwgJmNhY2hlKTsKICNlbGlmIFVTRShPUEVOR0wpCi0gICAgQ1ZSZXR1cm4g
ZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBu
dWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxG
b3JtYXQoY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpLCBudWxscHRyLCAmY2Fj
aGUpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRl
eHRPYmo+KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDVlJldHVy
biBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIGNnbENvbnRleHQsIENHTEdldFBpeGVsRm9ybWF0KGNnbENvbnRleHQpLCBudWxs
cHRyLCAmY2FjaGUpOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIC8vIEZJWE1FOiBmaWd1cmUgb3V0
IGhvdyB0byBkbyB0aGlzIGludGVncmF0aW5nIHZpYSBBTkdMRS4KICAgICBVTlVTRURfUEFSQU0o
Y29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmNw
cAppbmRleCA0N2NmNWQxMzUzZWIyZDNiZWZmZDhlYjgzYzI2MWU3NThlZTQyZTk3Li5hNjc1ODFh
ZDBhYjUwMWQxM2MyZjUzOGYwNDBjZDc4YmUwN2M2YjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4
bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKQEAgLTE3OSwxNCArMTc5LDE0IEBAIFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QgR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6cGxhdGZv
cm1Db250ZXh0KCkKICAgICByZXR1cm4gbV9jb250ZXh0OwogfQogCi1HQzNEQU5HTEVMYXllcjo6
R0MzREFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4
dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK0dDM0RBTkdMRUxheWVyOjpHQzNEQU5HTEVM
YXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogR0MzRExheWVyKGNvbnRleHQpCiB7Ci0gICAgc3dp
dGNoIChyZW5kZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9m
ZnNjcmVlbjoKKyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9hbmdsZUNvbnRleHQg
PSBBTkdMRUNvbnRleHQ6OmNyZWF0ZUNvbnRleHQoKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3c6CisgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93Ogog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RBTkdMRUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaAppbmRleCBiYzJmNmVmYzc4
YWMyNWE0MGM0ZmEyYjljZmQ5YjhiMmRlZmMxNGVjLi4zNmQ3YzNkZGJkZWVjOTRkZDUxYzFjOTgw
MTgwMjE1N2Q1ZDZhNzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xF
TGF5ZXIuaApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgICAgIEVHTFN1cmZhY2UgbV9z
dXJmYWNlIHsgbnVsbHB0ciB9OwogICAgIH07CiAKLSAgICBHQzNEQU5HTEVMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSk7CisgICAgR0MzREFOR0xFTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24pOwogICAgIHZpcnR1YWwgfkdD
M0RBTkdMRUxheWVyKCk7CiAKICAgICBib29sIG1ha2VDb250ZXh0Q3VycmVudCgpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcAppbmRleCBiZGE2NTg4YWY5
MjA0YTBhYTBlZmY5OGVmMGMxMGMyMDVlNDliMTIxLi5jODc5ODg3OTE3NGY0MDBhYTQ5ZTA4N2Rl
MjgxNGIxYzRhNzdkOTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNw
cApAQCAtNTMsMTUgKzUzLDE1IEBAIEdDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4
dDNEJiBjb250ZXh0KQogewogfQogCi1HQzNETGF5ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRl
eHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxl
KQorR0MzRExheWVyOjpHQzNETGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKICAgICA6IG1fY29udGV4dChj
b250ZXh0KQogICAgICwgbV9jb250ZW50TGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVh
dGUoTmljb3NpYTo6Q29udGVudExheWVyVGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3Rvcnko
KnRoaXMpKSkKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAg
ICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxh
dGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2lu
ZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRv
SG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaAppbmRleCAzMjZkNmU1
NTA2ZTZlOTI3ZTQwZDZmNTYyNDg1NzFiYWM5ZGUzZDg5Li43NzMwNzk5ZTA4ODhkZjc4MTAwODk0
ZjRmZmVkODIyZDBiNjFiM2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5o
CkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIEdDM0RMYXllciA6IHB1YmxpYyBDb250ZW50TGF5ZXJU
ZXh0dXJlTWFwcGVySW1wbDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0QmKTsKLSAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIEdDM0RMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5h
dGlvbik7CiAKICAgICB2aXJ0dWFsIH5HQzNETGF5ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdM
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0Nv
bnRleHQzRE9wZW5HTC5jcHAKaW5kZXggYjk2MzYzYjU1MTkzNTZjOGNkZjQ2NTQzNjMyNmVkMDZj
ZWNlZDg4ZC4uMWE1Zjk5Mzg3YWExZjY5ODcyNGMyMDA4MDdmMjJiMGEyNjZkNzI0MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCkBAIC04Miw4ICs4MiwxMCBAQCBzdGF0
aWMgdm9pZCB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyhpbnQgd2lkdGgsIGludCBoZWlnaHQs
IHVuc2lnbmVkIGNoYXIqIHBpeAogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxz
QW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg
aGVpZ2h0LCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRl
eHRBdHRyaWJ1dGVzKCk7CisKICAgICAvLyBOVklESUEgZHJpdmVycyBoYXZlIGEgYnVnIHdoZXJl
IGNhbGxpbmcgcmVhZFBpeGVscyBpbiBCR1JBIGNhbiByZXR1cm4gdGhlIHdyb25nIHZhbHVlcyBm
b3IgdGhlIGFscGhhIGNoYW5uZWwgd2hlbiB0aGUgYWxwaGEgaXMgb2ZmIGZvciB0aGUgY29udGV4
dC4KLSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgZ2V0RXh0ZW5zaW9ucygpLmlzTlZJRElBKCkp
IHsKKyAgICBpZiAoIWF0dHJzLmFscGhhICYmIGdldEV4dGVuc2lvbnMoKS5pc05WSURJQSgpKSB7
CiAgICAgICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX1JHQkEsIEdM
X1VOU0lHTkVEX0JZVEUsIHBpeGVscyk7CiAjaWYgVVNFKEFDQ0VMRVJBVEUpCiAgICAgICAgIHZJ
bWFnZV9CdWZmZXIgc3JjOwpAQCAtMTEwLDcgKzExMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgsIGludCB5LCBp
bnQKICAgICAgICAgOjpnbFJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwg
R0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBwaXhlbHMpOwogCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIGlmICghbV9hdHRycy5hbHBoYSkKKyAgICBpZiAoIWF0dHJzLmFscGhhKQogICAgICAg
ICB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVpZ2h0LCBwaXhlbHMpOwogI2Vu
ZGlmCiB9CkBAIC0xMjIsMTcgKzEyNCwxOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxp
ZGF0ZUF0dHJpYnV0ZXMoKQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhj
b25zdCBJbnRTaXplJiBzaXplKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRl
cygpOwogICAgIGNvbnN0IGludCB3aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBjb25zdCBpbnQg
aGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKICAgICBHTHVpbnQgY29sb3JGb3JtYXQsIGludGVybmFs
RGVwdGhTdGVuY2lsRm9ybWF0ID0gMDsKLSAgICBpZiAobV9hdHRycy5hbHBoYSkgeworICAgIGlm
IChhdHRycy5hbHBoYSkgewogICAgICAgICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0JB
ODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0JBOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQjg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0g
R0xfUkdCOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgp
IHsKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkgewogICAgICAgICAvLyBX
ZSBkb24ndCBhbGxvdyB0aGUgbG9naWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVw
dGggaXMgbm90LgogICAgICAgICAvLyBTZWUgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0
cmlidXRlcy4KIApAQCAtMTQ5LDcgKzE1Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgfQogCiAgICAgLy8gUmVzaXplIG11
bHRpc2FtcGxlIEZCTy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0
cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwogICAgICAgICA6
OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1NBTVBMRVNfRVhULCAmbWF4U2FtcGxlQ291bnQpOwogICAg
ICAgICAvLyBVc2luZyBtb3JlIHRoYW4gNCBzYW1wbGVzIGlzIHNsb3cgb24gc29tZSBoYXJkd2Fy
ZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAgLTE2MywxMiArMTY2LDEyIEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDo6Z2xS
ZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2Ft
cGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAjZW5kaWYK
ICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VY
VCwgR0xfQ09MT1JfQVRUQUNITUVOVDBfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRp
c2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsK
ICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQs
IG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbFJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVD
b3VudCwgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAg
ICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2ls
KQogICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFN
RUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9F
WFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1f
YXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAg
ICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xf
REVQVEhfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVE
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVm
ZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIDApOwpAQCAtMjExLDcgKzIxNCw3IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAg
YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoaW50ZXJuYWxEZXB0aFN0ZW5jaWxG
b3JtYXQsIHdpZHRoLCBoZWlnaHQpOwogCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHRydWU7
Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykg
ewogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9t
dWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlz
YW1wbGVGQk8pCiAgICAgICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI1LDEy
ICsyMjgsMTQgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50
U2l6ZSYgc2l6ZSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVu
Y2lsQnVmZmVySWZOZWVkZWQoR0x1aW50IGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCBpbnQg
d2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRl
eHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkpIHsKICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQo
R0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6Omds
UmVuZGVyYnVmZmVyU3RvcmFnZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBpbnRlcm5hbERlcHRo
U3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfU1RFTkNJTF9BVFRBQ0hN
RU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAg
ICAgICBpZiAobV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAg
ICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwg
R0xfREVQVEhfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVu
Y2lsQnVmZmVyKTsKICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVG
RkVSX0VYVCwgMCk7CiAgICAgfQpAQCAtNDgyLDIxICs0ODcsMjMgQEAgRXh0ZW5zaW9uczNEJiBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRh
KQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCiAgICAgLy8gRklY
TUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0aGUgZHJpdmVyIGJ1ZyBpcyBm
aXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5nIGNhbGxzIHNob3VsZCBi
ZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
ICAgICA6OmdsRmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5i
b3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAm
JiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2
ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsK
ICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVIsIG1fZmJvKTsKICAgICAgICAgOjpnbEZsdXNoKCk7CiAgICAgfQogICAgIDo6Z2xSZWFk
UGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7Ci0gICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZC
TykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0
aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExBVEZPUk0oTUFD
KQotICAgIGlmICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpSR0JBIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYgKG1fc3RhdGUu
Ym91bmRGQk8gPT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxwaGEgJiYgKGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAgICAgICAgIHdp
cGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PHVuc2ln
bmVkIGNoYXIqPihkYXRhKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDQyYmM4ZTE3ZTA2MjE4MWQ3MGUwNGY3YWMyYzkx
YmNhMzgzMWQ5MjUuLjg1NzVlZmUwNjYzOWQ0ZTE3ZmQxODdiZjJiZmZlOWQ2MjBlMmU5ZDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMTQx
LDE5ICsxNDEsMjMgQEAgc3RhdGljIHVpbnQ2NF90IG5hbWVIYXNoRm9yU2hhZGVyKGNvbnN0IGNo
YXIqIG5hbWUsIHNpemVfdCBsZW5ndGgpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlk
YXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikK
IHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIEV4dGVuc2lv
bnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMoKTsKLSAgICBpZiAobV9hdHRycy5zdGVu
Y2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgaWYgKGV4dGVuc2lvbnMu
c3VwcG9ydHMocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKSkgewogICAgICAgICAgICAgZXh0
ZW5zaW9ucy5lbnN1cmVFbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbik7CiAgICAg
ICAgICAgICAvLyBGb3JjZSBkZXB0aCBpZiBzdGVuY2lsIGlzIHRydWUuCi0gICAgICAgICAgICBt
X2F0dHJzLmRlcHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGF0dHJzLmRlcHRoID0gdHJ1ZTsKICAg
ICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2F0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAg
ICAgICAgIGF0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0
ZXMoYXR0cnMpOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKLSAgICAgICAg
aWYgKCFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZSIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1fYXR0cnMuYW50aWFsaWFz
ID0gZmFsc2U7Ci0gICAgICAgIGVsc2UKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmICFtX2lz
Rm9yV2ViR0wyKSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKSkgeworICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFz
ID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKCJHTF9BTkdM
RV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwogICAgIH0KIH0KQEAgLTE3NSw3ICsxNzksNyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhJ
bWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVyaW5nUmVzdWx0cyhwaXhl
bHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJzLnByZW11bHRpcGxpZWRB
bHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVkQWxwaGEp
IHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQpIHsKICAg
ICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAgICAgcGl4ZWxzW2kgKyAw
XSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAyNTUpOwpA
QCAtMjAxLDcgKzIwNSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4dDNEOjpw
YWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgLy8gUmVhZGluZyBwcmVt
dWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hpY2ggaXMK
ICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBsaWVkQWxwaGEpCisgICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVhdGUoSW50
U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBAIC0yMzIsNyArMjM2LDcg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogICAgIFRlbXBvcmFy
eU9wZW5HTFNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOwogI2VuZGlm
CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVz
KCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7
CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBAIC0yNjUsNyArMjY5LDcgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5zaWduZWQgY2hhciAq
cGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAgIGJv
b2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxpYXMpIHsKICAgICAgICAgcmVzb2x2
ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVy
RVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICBtdXN0
UmVzdG9yZUZCTyA9IHRydWU7CkBAIC0zMjgsMTQgKzMzMiwxNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICA6OmdsQ2xlYXJDb2xv
cigwLCAwLCAwLCAwKTsKICAgICA6OmdsR2V0Qm9vbGVhbnYoR0xfQ09MT1JfV1JJVEVNQVNLLCBj
b2xvck1hc2spOwogICAgIDo6Z2xDb2xvck1hc2soR0xfVFJVRSwgR0xfVFJVRSwgR0xfVFJVRSwg
R0xfVFJVRSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKworICAgIGF1dG8gYXR0cnMgPSBj
b250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIDo6
Z2xHZXRGbG9hdHYoR0xfREVQVEhfQ0xFQVJfVkFMVUUsICZjbGVhckRlcHRoKTsKICAgICAgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoMSk7CiAgICAgICAgIDo6Z2xHZXRCb29sZWFu
dihHTF9ERVBUSF9XUklURU1BU0ssICZkZXB0aE1hc2spOwogICAgICAgICA6OmdsRGVwdGhNYXNr
KEdMX1RSVUUpOwogICAgICAgICBjbGVhck1hc2sgfD0gR0xfREVQVEhfQlVGRkVSX0JJVDsKICAg
ICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7
CiAgICAgICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZBTFVFLCAmY2xlYXJT
dGVuY2lsKTsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbCgwKTsKICAgICAgICAgOjpnbEdldElu
dGVnZXJ2KEdMX1NURU5DSUxfV1JJVEVNQVNLLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJnN0
ZW5jaWxNYXNrKSk7CkBAIC0zNDksMTEgKzM1NiwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAgIDo6Z2xDbGVhckNvbG9yKGNs
ZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10p
OwogICAgIDo6Z2xDb2xvck1hc2soY29sb3JNYXNrWzBdLCBjb2xvck1hc2tbMV0sIGNvbG9yTWFz
a1syXSwgY29sb3JNYXNrWzNdKTsKLSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChh
dHRycy5kZXB0aCkgewogICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChjbGVh
ckRlcHRoKTsKICAgICAgICAgOjpnbERlcHRoTWFzayhkZXB0aE1hc2spOwogICAgIH0KLSAgICBp
ZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAg
OjpnbENsZWFyU3RlbmNpbChjbGVhclN0ZW5jaWwpOwogICAgICAgICA6OmdsU3RlbmNpbE1hc2tT
ZXBhcmF0ZShHTF9GUk9OVCwgc3RlbmNpbE1hc2spOwogICAgICAgICA6OmdsU3RlbmNpbE1hc2tT
ZXBhcmF0ZShHTF9CQUNLLCBzdGVuY2lsTWFza0JhY2spOwpAQCAtNDgxLDcgKzQ4OCw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QgYnVmZmVyCiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgZmJvID0gYnVm
ZmVyOwogICAgIGVsc2UKLSAgICAgICAgZmJvID0gKG1fYXR0cnMuYW50aWFsaWFzID8gbV9tdWx0
aXNhbXBsZUZCTyA6IG1fZmJvKTsKKyAgICAgICAgZmJvID0gKGNvbnRleHRBdHRyaWJ1dGVzKCku
YW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKICAgICBpZiAoZmJvICE9IG1f
c3RhdGUuYm91bmRGQk8pIHsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVCh0YXJnZXQs
IGZibyk7CiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBmYm87CkBAIC03NDQsMjQgKzc1MSwy
OCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyRGlyZWN0KFBsYXRmb3Jt
M0RPYmplY3Qgc2hhZGVyKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwg
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwg
R0MzRGludCBib3JkZXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1f
YXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykg
eworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJz
LmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAg
ICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRo
LCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICB9CiAgICAgOjpnbENvcHlUZXhJbWFnZTJE
KHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3Jk
ZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1f
bXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5k
RkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQo
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIAog
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9z
dGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNv
bnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUu
Ym91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwogICAgICAgICA6
OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgIH0KICAgICA6OmdsQ29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9m
ZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAgICBpZiAo
YXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykK
ICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVC
VUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0xMTI4LDExICsxMTM5LDYgQEAgaW50
IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlvbkRpcmVjdChQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gOjpnbEdldEF0dHJpYkxvY2F0aW9uKHBy
b2dyYW0sIG5hbWUudXRmOCgpLmRhdGEoKSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAgIHJl
dHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3JzVG9T
eW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCmluZGV4IDcwYTIwZDUwYzM1MjFhNjEy
M2U2ZWZhZjFmNDc2OGY2NDk1Y2RlNWMuLjM2NjgyMWNhNmZkODMzODE1YjNiODNhYzJkZjc1Mzgw
MjYxNDg2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKQEAg
LTUwLDEwICs1MCwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWxlYXNlU2hhZGVyQ29t
cGlsZXIoKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3Jt
YXQsIEdDM0RlbnVtIHR5cGUsIHZvaWQqIGRhdGEpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7CisKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCiAgICAg
Ly8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0aGUgZHJpdmVyIGJ1
ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5nIGNhbGxzIHNo
b3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICA6OmdsRmx1c2goKTsKLSAg
ICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2Ft
cGxlRkJPKSB7CisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJ
Zk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICA6OmdsRmx1c2go
KTsKQEAgLTYxLDcgKzY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhH
QzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKIAogICAgIDo6Z2xS
ZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7CiAKLSAg
ICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2Ft
cGxlRkJPKQorICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC04MCw3ICs4Myw5IEBAIGJvb2wg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAg
Y29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWlnaHQgPSBz
aXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0
cnMuYWxwaGEpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOwor
CisgICAgaWYgKGF0dHJpYnV0ZXMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5hbENvbG9yRm9y
bWF0ID0gR0xfUkdCQTsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0JBOwogICAgIH0gZWxz
ZSB7CkBAIC05MCw3ICs5NSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9z
KGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICAvLyBXZSBkb24ndCBhbGxvdyB0aGUgbG9naWMg
d2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVwdGggaXMgbm90LgogICAgIC8vIFNlZSBH
cmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzLgotICAgIGJvb2wgc3VwcG9ydFBh
Y2tlZERlcHRoU3RlbmNpbEJ1ZmZlciA9IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0
aCkgJiYgZ2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5j
aWwiKTsKKyAgICBib29sIHN1cHBvcnRQYWNrZWREZXB0aFN0ZW5jaWxCdWZmZXIgPSAoYXR0cmli
dXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpICYmIGdldEV4dGVuc2lvbnMoKS5zdXBw
b3J0cygiR0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIik7CiAKICAgICAvLyBSZXNpemUgcmVn
dWxhciBGQk8uCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMTE3LDI5ICsx
MjIsMjkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKICNlbmRpZgogCiAgICAgRXh0ZW5zaW9uczNET3BlbkdMRVMmIGV4dGVuc2lvbnMg
PSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RPcGVuR0xFUyY+KGdldEV4dGVuc2lvbnMoKSk7Ci0g
ICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIG1fYXR0cnMuYW50aWFsaWFzKSB7
CisgICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIGF0dHJpYnV0ZXMuYW50aWFs
aWFzKSB7CiAgICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwogICAgICAgICA6OmdsR2V0SW50
ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfU0FNUExFU19JTUcsICZtYXhTYW1wbGVDb3VudCk7IAog
ICAgICAgICBHTGludCBzYW1wbGVDb3VudCA9IHN0ZDo6bWluKDgsIG1heFNhbXBsZUNvdW50KTsK
IAogICAgICAgICBleHRlbnNpb25zLmZyYW1lYnVmZmVyVGV4dHVyZTJETXVsdGlzYW1wbGVJTUco
R0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBtX3Rl
eHR1cmUsIDAsIHNhbXBsZUNvdW50KTsKIAotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8
IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRy
aWJ1dGVzLmRlcHRoKSB7CiAgICAgICAgICAgICAvLyBVc2UgYSAyNCBiaXQgZGVwdGggYnVmZmVy
IHdoZXJlIHdlIGtub3cgd2UgaGF2ZSBpdC4KICAgICAgICAgICAgIGlmIChzdXBwb3J0UGFja2Vk
RGVwdGhTdGVuY2lsQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZm
ZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAg
ICAgZXh0ZW5zaW9ucy5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVG
RkVSLCBzYW1wbGVDb3VudCwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdpZHRoLCBoZWlnaHQp
OwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdM
X1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAgIGlm
IChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQog
ICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkg
ewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZG
RVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMucmVu
ZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQs
IEdMX1NURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAg
OjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FU
VEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9zdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmlu
ZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZmZXIpOwogICAgICAgICAg
ICAgICAgICAgICBleHRlbnNpb25zLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9S
RU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBHTF9ERVBUSF9DT01QT05FTlQxNiwgd2lkdGgsIGhl
aWdodCk7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihH
TF9GUkFNRUJVRkZFUiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2Rl
cHRoQnVmZmVyKTsKQEAgLTE0OCwyMiArMTUzLDIyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICA6OmdsQmluZFJl
bmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
LSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgICAg
IGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkgewogICAgICAgICAg
ICAgLy8gVXNlIGEgMjQgYml0IGRlcHRoIGJ1ZmZlciB3aGVyZSB3ZSBrbm93IHdlIGhhdmUgaXQu
CiAgICAgICAgICAgICBpZiAoc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1ZmZlcikgewogICAg
ICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0
aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdl
KEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdpZHRoLCBoZWlnaHQp
OwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdM
X1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAgIGlm
IChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQog
ICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkg
ewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZG
RVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZm
ZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfU1RFTkNJTF9JTkRFWDgsIHdpZHRoLCBoZWln
aHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX3N0
ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobV9h
dHRycy5kZXB0aCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKSB7CiAg
ICAgICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwg
bV9kZXB0aEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9y
YWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWlnaHQp
OwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJB
TUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1
ZmZlcik7CkBAIC0yMjIsOCArMjI3LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlk
YXRlQXR0cmlidXRlcygpCiB7CiAgICAgdmFsaWRhdGVEZXB0aFN0ZW5jaWwoIkdMX09FU19wYWNr
ZWRfZGVwdGhfc3RlbmNpbCIpOwogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmICFnZXRF
eHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1
cmUiKSkKLSAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICBhdXRvIGF0dHJp
YnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFs
aWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0aXNhbXBsZWRfcmVu
ZGVyX3RvX3RleHR1cmUiKSkgeworICAgICAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNl
OworICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKKyAgICB9CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0Mz
RGNsYW1wZiB6RmFyKQpAQCAtMjQ4LDEwICsyNTcsMTAgQEAgRXh0ZW5zaW9uczNEJiBHcmFwaGlj
c0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikg
JiYgVVNFKENBKQotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93
KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUp
CitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5k
b3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsKICAgICAv
LyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5n
IGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5k
ZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRp
b246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMjY4LDE3ICsyNzcsMTgg
QEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdy
YXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgR3JhcGhp
Y3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKIH0KIAot
R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRl
clN0eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKLSAg
ICA6IG1fYXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyos
IEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3NDb250
ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHQzREJhc2UoYXR0cmli
dXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX2NvbXBpbGVyKGlzR0xF
UzJDb21wbGlhbnQoKSA/IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9DT01QQVRJQklMSVRZX09V
VFBVVCkKLSAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZT4odGhpcywgcmVuZGVyU3R5bGUpKQorICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhp
Y3NDb250ZXh0M0RQcml2YXRlPih0aGlzLCBkZXN0aW5hdGlvbikpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgCiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgYXR0cmlidXRlcyA9
IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFs
aWRhdGlvbi4KIAotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJPZmZzY3JlZW4pIHsKKyAg
ICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVlbikgewogICAgICAgICAv
LyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgogICAgICAgICA6OmdsR2VuVGV4dHVy
ZXMoMSwgJm1fdGV4dHVyZSk7CiAgICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJE
LCBtX3RleHR1cmUpOwpAQCAtMjkzLDE2ICszMDMsMTYgQEAgR3JhcGhpY3NDb250ZXh0M0Q6Okdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBI
b3MKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwog
ICAgICAgICAKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwotICAgICAgICBpZiAo
IW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkp
CisgICAgICAgIGlmICghYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0dHJpYnV0ZXMuc3RlbmNp
bCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSkKICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIAogICAgICAgICAvLyBDcmVhdGUg
YSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAg
ICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgICAgIDo6Z2xHZW5GcmFt
ZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgOjpnbEJpbmRGcmFt
ZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICBt
X3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKICAgICAgICAgICAgIDo6Z2xHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAg
aWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIDo6
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTM0MCwxMyArMzUwLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNE
Ojp+R3JhcGhpY3NDb250ZXh0M0QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAg
IDo6Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICBpZiAobV9hdHRycy5hbnRp
YWxpYXMpIHsKKworICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisK
KyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRl
cmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0
dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3Rl
bmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1
ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6Omds
RGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICB9IGVsc2Ugewot
ICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIDo6
Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgfQog
ICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1
cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZmFiODA3YjdkOGMxYTY4YjU5
ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0Ny4uYjgyNmYwOTk2MzRkZGQ5MDFmYWU3ZTdjMzI4NzBjYzgy
MWRmYjQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBl
ci5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCBzdGF0aWMgRGVxdWU8R3JhcGhpY3NDb250ZXh0M0Qq
LCBNYXhBY3RpdmVDb250ZXh0cz4mIGFjdGl2ZUNvbnRleHRzKCkKICAgICByZXR1cm4gc19hY3Rp
dmVDb250ZXh0czsKIH0KIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRl
eHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0
V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVy
U3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhv
c3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsK
ICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVu
ZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlmIChyZW5kZXJTdHlsZSA9
PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVz
dGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CkBAIC0xMTgsNyArMTE4LDcg
QEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdy
YXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0M0Qgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRv
IGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGNv
bnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdp
bmRvdywgcmVuZGVyU3R5bGUpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3Jh
cGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgZGVzdGluYXRpb24pKTsKIAog
I2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICAvLyBCYWlsIGlmIEdMRVMz
IHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTEzMSwyMSArMTMxLDIx
IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMKIH0KIAogI2lmIFVTRShBTkdMRSkKLUdyYXBoaWNz
Q29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMg
YXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSBy
ZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0
dHJzKGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGlj
c0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRDb250ZXh0KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0ZXMsIGRl
c3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29u
dGV4dCwgIXNoYXJlZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxh
eWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVyPigqdGhpcywgcmVu
ZGVyU3R5bGUpOworICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6
OkdDM0RBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2Vsc2UKLSAgICBtX3RleG1h
cExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4o
KnRoaXMsIHJlbmRlclN0eWxlKTsKKyAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVl
PFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKICNl
bmRpZgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0KICAgICB2YWxpZGF0ZUF0dHJpYnV0
ZXMoKTsKKyAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkg
aGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKHJlbmRlclN0eWxlID09
IFJlbmRlck9mZnNjcmVlbikgeworICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6
T2Zmc2NyZWVuKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUgdG8gcmVuZGVyIGludG8u
CiAgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICAgICAgICAgZ2w6OkJp
bmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3RleHR1cmUpOwpAQCAtMTc4
LDI0ICsxNzgsMjQgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICNlbmRpZgogCiAgICAgICAg
IC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICAgICAg
Z2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICBn
bDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAg
ICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICAg
ICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0g
ICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
ICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAg
ICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gQmluZCBjYW52YXMg
RkJPLgogICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwogI2lmIFVTRShPUEVO
R0xfRVMpCi0gICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChh
dHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAg
ICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIGdsOjpHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0gICAgICAgICAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6
OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTIwMywyMSArMjAzLDIyIEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAg
Z2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3NDb250ZXh0M0Q6
OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVz
LCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxl
LCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKLSAgICA6IG1fYXR0cnMoYXR0cmli
dXRlcykKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRl
eHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNE
OjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRl
eHQpCisgICAgOiBHcmFwaGljc0NvbnRleHQzREJhc2UoYXR0cmlidXRlcywgZGVzdGluYXRpb24s
IHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hh
cmVkQ29udGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEpCi0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtl
VW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyAgICBtX25p
Y29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3NpYTo6R0MzRExheWVyPigqdGhpcywgZGVzdGlu
YXRpb24pOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFw
cGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV90ZXhtYXBM
YXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyPigqdGhpcywg
ZGVzdGluYXRpb24pOwogI2VuZGlmCiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAg
IHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRl
cygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAgICBp
ZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAgaWYgKGRlc3RpbmF0aW9u
ID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKICAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVy
ZSB0byByZW5kZXIgaW50by4KICAgICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUp
OwogICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKQEAg
LTI0OSwyNiArMjUwLDI1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgICAgIDo6Z2xC
aW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICNlbmRpZgogCi0KICAgICAgICAgLy8gQ3Jl
YXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsR2Vu
RnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAg
ICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgICAgICA6Omds
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAg
ICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8uCiAg
ICAgICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZG
RVIsIG1fZmJvKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKICNpZiBV
U0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAg
ICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fZGVwdGhCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkK
KyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2xH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0gICAgICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAg
Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0zMDEsNyArMzAxLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICAgICB9
CiAjZWxzZQogICAgIC8vIEFkanVzdCB0aGUgc2hhZGVyIHNwZWNpZmljYXRpb24gZGVwZW5kaW5n
IG9uIHdoZXRoZXIgR0xFUzMgKGkuZS4gV2ViR0wyIHN1cHBvcnQpIHdhcyByZXF1ZXN0ZWQuCi0g
ICAgbV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBtX2F0dHJz
LmlzV2ViR0wyID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsKKyAgICBtX2NvbXBp
bGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQVVQsIGF0dHJpYnV0ZXMuaXNXZWJH
TDIgPyBTSF9XRUJHTDJfU1BFQyA6IFNIX1dFQkdMX1NQRUMpOwogI2VuZGlmCiAKICAgICAvLyBB
TkdMRSBpbml0aWFsaXphdGlvbi4KQEAgLTM0MCwxMiArMzQwLDE0IEBAIEdyYXBoaWNzQ29udGV4
dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwg
Jm1fY29tcG9zaXRvclRleHR1cmUpOwogI2VuZGlmCiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAg
aWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5z
dGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJz
KDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZ2w6OkRlbGV0
ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgfSBlbHNlIGlmIChtX2F0
dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgIH0gZWxzZSBpZiAoYXR0cmlidXRl
cy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpIHsKICNpZiBVU0UoT1BFTkdMX0VTKQogICAg
ICAgICBpZiAobV9kZXB0aEJ1ZmZlcikKICAgICAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVy
cygxLCAmbV9kZXB0aEJ1ZmZlcik7CkBAIC0zODIsMTIgKzM4NCwxNCBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgOjpnbERlbGV0ZVRleHR1cmVzKDEs
ICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKICNlbmRpZgogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAg
IGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVm
ZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2ls
IHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIDo6Z2xEZWxl
dGVGcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgIH0gZWxzZSBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0
ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAjaWYgVVNFKE9QRU5HTF9FUykKICAg
ICAgICAgaWYgKG1fZGVwdGhCdWZmZXIpCiAgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZl
cnMoMSwgJm1fZGVwdGhCdWZmZXIpOwpAQCAtNDE1LDE0ICs0MTksNiBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKIH0KICNlbmRpZiAvLyBVU0UoQU5HTEUpCiAKLXZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVf
cHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s+KQotewotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJl
bnQoKQogewogI2lmIFVTRShOSUNPU0lBKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2NjMyMzE1Njk1YmEyMWMyNjdkMTU1OTMyZWJhOTE0
N2ZiNjZhZTA2Li5hZTZlOWVhMmNiNjc1NjkzNzkyMGI0NDNjNDg1MjIzZmVhZWI1ZGVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1h
cHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcApAQCAtMzAs
MTQgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGV4dHVyZU1hcHBlckdDM0RQ
bGF0Zm9ybUxheWVyOjpUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3NDb250
ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHls
ZSkKK1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDM0RQbGF0
Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKLSAg
ICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVu
ZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAgICBtX2dsQ29udGV4
dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyR0MzRFBsYXRmb3JtTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuaAppbmRleCBlNmYwOWM4Nzk4
NTQ4NjMyZWU0YjBhYTVhNTYzMDYxNWEyNGEzNzg5Li43YzVlOTJlMGIwODE1NzU0ZTJjNDc5Zjg5
N2I3OGM1MGEzYmE0NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZv
cm1MYXllci5oCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxh
eWVyUHJveHk7CiBjbGFzcyBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIgOiBwdWJsaWMg
UGxhdGZvcm1MYXllciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBUZXh0dXJlTWFwcGVyR0MzRFBsYXRm
b3JtTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRp
b24pOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcigpOwogCiAg
ICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NjE1OWI4ZmE3NGUyNGYxYWQ2
MmEyYzgzOTYxODEwMTVjNWEyNDliLi5lMzU0YWRiYTI0ZWFkOTFjOTIwMTIxZWMyNTYxMzI3N2Ex
MTEyOGQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMTItMjcgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJHTF0gQWRkIGEgcHVyZSB2aXJ0dWFsIGJh
c2UgY2xhc3MgZm9yIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgYSB0ZXN0IHRoYXQgaGFzIGV4aXN0aW5nIGNv
dmVyYWdlIGluIHRoZSBXZWJHTCB0ZXN0IHN1aXRlLgorCisgICAgICAgICogZmFzdC9jYW52YXMv
d2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2ht
ZW50Lmh0bWw6IFJlbW92ZWQuCisKIDIwMTktMTItMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogWyBDYXRhbGluYSB3azEgXSBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2NvbnRlbnQtdHlwZS9zY3JpcHQud2lu
ZG93Lmh0bWwgaXMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZTdmZGZlODc3NmYyOGE5
Y2IzZTA2NDM3NTljNTE3MTAwZWYwYzdiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVy
LW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDY1OSAr
MCwwIEBACi1UZXN0IGZyYW1lYnVmZmVyIG9iamVjdCBhdHRhY2htZW50IGJlaGF2aW9ycwotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotRGltZW5zaW9ucyAwIHggMAotQ3JlYXRlIHJl
bmRlcmJ1ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUzRENvbnRleHQoKSBpcyBub24tbnVsbC4KLVBB
U1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHN0ZW5jaWxCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LUF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwg
dXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVu
Y2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRo
U3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVu
Y2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVu
IHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5j
aWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1B
dHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVu
Y2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
QXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3
aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0
aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0
aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2ls
IHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1QQVNTIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIGlz
IGhlaWdodAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLQotRGltZW5zaW9u
cyAwIHggMgotQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUzRENvbnRleHQo
KSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aFN0
ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotQXR0YWNoIGRlcHRoIHVz
aW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lM
X0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
QXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2lu
ZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0
aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5n
IGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5j
aWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGNv
bG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xv
ciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xv
ciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUKLVBBU1MgY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQ3JlYXRlIGFuZCBh
dHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKLVBBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JF
RF9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJ
WkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpIGlzIDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotCi1EaW1lbnNpb25zIDIgeCAwCi1D
cmVhdGUgcmVuZGVyYnVmZmVycwotUEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1u
dWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhf
QVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
c3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBk
ZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRh
Y2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBk
ZXB0aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVw
dGgsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoLCB0aGVuIGRl
cHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBk
ZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVk
IDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxp
Y3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggY29sb3IgcmVuZGVy
YnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQKLVBBU1MgY29sb3JCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1
ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1
ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NQotUEFTUyBjb2xvckJ1ZmZlciA9IGds
LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1DcmVhdGUgYW5kIGF0dGFjaCBkZXB0
aFN0ZW5jaWwgcmVuZGVyYnVmZmVyCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIGlzIGhlaWdodAotUEFTUyBnbC5n
ZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJf
SU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkg
aXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAw
Ci1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJF
TkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLQotRGltZW5zaW9ucyAyIHggMgotQ3JlYXRlIHJl
bmRlcmJ1ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUzRENvbnRleHQoKSBpcyBub24tbnVsbC4KLVBB
U1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHN0ZW5jaWxCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMp
ICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQ
SEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklU
UykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9
PSAwIGlzIHRydWUKLUF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LUF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9B
VFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJ
TF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMK
LVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5H
UkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1l
dGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGds
LkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5D
SUxfQklUUykgPj0gOCBpcyB0cnVlCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRB
Q0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGgsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25m
bGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBzdGVuY2lsLCB0
aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA2MQotQXR0YWNoIGRlcHRoLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRo
ZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDYxCi1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0
aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVk
IDM2MDYxCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0g
UkdCQTQKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRT
KSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAw
IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0
cnVlCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdC
NV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1l
dGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdl
dFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMp
ID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAg
aXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIGlzIHRy
dWUKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1
NjUKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRl
cihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+
PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIGlz
IHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVl
Ci1DcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyCi1QQVNTIGRlcHRo
U3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURU
SCkgaXMgd2lkdGgKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCkgaXMgaGVpZ2h0Ci1QQVNTIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9JTlRFUk5B
TF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFKSBpcyAwCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUpIGlzIDAKLVBBU1Mg
Z2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVG
RkVSX0FMUEhBX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCBpcyB0cnVlCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9TVEVOQ0lMX1NJWkUpID4gMCBpcyB0cnVlCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFy
YW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0
ZXIoZ2wuU1RFTkNJTF9CSVRTKSA+PSA4IGlzIHRydWUKLQotdGVzdDogREVQVEhfQ09NUE9ORU5U
MTYgdnMgREVQVEhfU1RFTkNJTCB3aXRoIGRlbGV0ZQotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRl
c3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBn
cmVlbgotCi10ZXN0OiBERVBUSF9DT01QT05FTlQxNiB2cyBERVBUSF9TVEVOQ0lMIHdpdGggdW5i
aW5kCi1QQVNTIHNob3VsZCBiZSBncmVlbgotdGVzdCB1bmJpbmRpbmcgc2Vjb25kIHJlbmRlcmJ1
ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBn
bC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgotCi10ZXN0OiBERVBUSF9TVEVOQ0lM
IHZzIERFUFRIX0NPTVBPTkVOVDE2IHdpdGggZGVsZXRlCi1QQVNTIHNob3VsZCBiZSBncmVlbgot
dGVzdCBkZWxldGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc2hvdWxkIGJl
IGdyZWVuCi0KLXRlc3Q6IERFUFRIX1NURU5DSUwgdnMgREVQVEhfQ09NUE9ORU5UMTYgd2l0aCB1
bmJpbmQKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi10ZXN0IHVuYmluZGluZyBzZWNvbmQgcmVuZGVy
YnVmZmVyCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlz
IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotCi1BdHRhY2htZW50cyBvZiBkaWZmZXJlbnQgc2l6ZXMgc2hvdWxkIGJlIEZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZGVwdGhCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2Fz
IEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMg
d2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyBvciBGUkFNRUJVRkZFUl9VTlNV
UFBPUlRFRAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBz
aG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09N
UExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZS
QU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVC
VUZGRVJfQ09NUExFVEUKLQotV3Jvbmcgc3RvcmFnZSB0eXBlIGZvciB0eXBlIG9mIGF0dGFjaG1l
bnQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQu
NC41KQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91
bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9J
TkNPTVBMRVRFX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVG
RkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotCi0wIHNpemUgYXR0YWNobWVu
dCBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIChPcGVuR0wgRVMg
Mi4wIDQuNC41KQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIHdhcyBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotCi1ObyBhdHRhY2ht
ZW50cyBzaG91bGQgYmUgSU5DT01QTEVURV9GUkFNRUJVRkZFUl9NSVNTSU5HX0FUVEFDSE1FTlQg
KE9wZW5HTCBFUyAyLjAgNC40LjUpCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCB3
YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZG
RVJfVU5TVVBQT1JURUQKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01Q
TEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91
bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgd2FzIEZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQ
UE9SVEVECi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQot
VGVzdCBkcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGRlcHRo
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRF
IHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJ
T05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJf
VU5TVVBQT1JURUQKLQotRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFt
ZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJh
d0FycmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMg
ZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9t
IGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhTdWJJbWFnZTJEIGZyb20g
aW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyCi1QQVNTIGZibzIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQg
YmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9S
VEVECi0KLURyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIg
c2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGRyYXdBcnJheXMg
d2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiByZWFkUGl4ZWxzIGZyb20gaW5j
b21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfT1BFUkFUSU9OIDogY29weVRleEltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVm
ZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJT04g
OiBjb3B5VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IGNsZWFyIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBjb2xvckJ1ZmZlciA9IGds
LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotCi1EcmF3aW5nIG9yIHJlYWRpbmcg
ZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiBkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZl
cgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogcmVhZFBpeGVscyBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IGNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Y29weVRleFN1YkltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBj
bGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjUyZGExNTRkOTgwMTQxMzhiYmM2NTU4
OGMyM2E4M2I4ZDc0OGEyMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3Qt
YXR0YWNobWVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNTMwICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL3dlYmdsLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291
cmNlcy93ZWJnbC10ZXN0LXV0aWxzLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPGRp
diBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1pZiAod2luZG93LmludGVybmFscykKLSAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFdlYkdMRXJyb3JzVG9Db25zb2xlRW5hYmxlZChmYWxzZSk7Ci0KLXZhciB3dHUgPSBX
ZWJHTFRlc3RVdGlsczsKLXZhciBnbDsKLXZhciBmYm87Ci12YXIgZGVwdGhCdWZmZXI7Ci12YXIg
c3RlbmNpbEJ1ZmZlcjsKLXZhciBkZXB0aFN0ZW5jaWxCdWZmZXI7Ci12YXIgY29sb3JCdWZmZXI7
Ci12YXIgd2lkdGg7Ci12YXIgaGVpZ2h0OwotCi1jb25zdCBBTExPV19DT01QTEVURSAgICAgICAg
ICAgICAgPSAweDAxOwotY29uc3QgQUxMT1dfVU5TVVBQT1JURUQgICAgICAgICAgID0gMHgwMjsK
LWNvbnN0IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCA9IDB4MDQ7Ci0KLWZ1bmN0aW9uIGNo
ZWNrRnJhbWVidWZmZXJGb3JBbGxvd2VkU3RhdHVzZXMoYWxsb3dlZFN0YXR1c2VzKQotewotICAg
IC8vIElmIHRoZSBmcmFtZWJ1ZmZlciBpcyBpbiBhbiBlcnJvciBzdGF0ZSBmb3IgbXVsdGlwbGUg
cmVhc29ucywKLSAgICAvLyB3ZSBjYW4ndCBndWFyYW50ZWUgd2hpY2ggb25lIHdpbGwgYmUgcmVw
b3J0ZWQuCi0gICAgdmFyIHN0YXR1cyA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpOwotICAgIHZhciBzdGF0dXNBbGxvd2VkID0gKChhbGxvd2VkU3RhdHVzZXMgJiBB
TExPV19DT01QTEVURSkgJiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkpIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9XX1VOU1VQ
UE9SVEVEKSAmJiAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEKSkgfHwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfSU5DT01QTEVU
RV9BVFRBQ0hNRU5UKSAmJiAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVCkpOwotICAgIHZhciBtc2cgPSAiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgIiArIHN0YXR1czsKLSAgICBpZiAoc3RhdHVzQWxsb3dlZCkK
LSAgICAgICAgdGVzdFBhc3NlZChtc2cpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCht
c2cpOwotfQotCi1mdW5jdGlvbiBjaGVja0J1ZmZlckJpdHMoYXR0YWNobWVudDAsIGF0dGFjaG1l
bnQxKQotewotICAgIGlmIChnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkKLSAgICAgIHJldHVybjsKLQotICAgIHZhciBo
YXZlRGVwdGhCdWZmZXIgPSBhdHRhY2htZW50MCA9PSBnbC5ERVBUSF9BVFRBQ0hNRU5UIHx8Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQwID09IGdsLkRFUFRIX1NURU5DSUxf
QVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MSA9PSBn
bC5ERVBUSF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1l
bnQxID09IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDsKLSAgICB2YXIgaGF2ZVN0ZW5jaWxC
dWZmZXIgPSBhdHRhY2htZW50MCA9PSBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQgfHwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MCA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MSA9PSBnbC5T
VEVOQ0lMX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2ht
ZW50MSA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ7Ci0KLSAgICBzaG91bGRCZVRydWUo
ImdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5f
QklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihn
bC5BTFBIQV9CSVRTKSA+PSAxNiIpOwotCi0gICAgaWYgKGhhdmVEZXB0aEJ1ZmZlcikKLSAgICAg
IHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2Iik7Ci0g
ICAgZWxzZQotICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklU
UykgPT0gMCIpOwotCi0gICAgaWYgKGhhdmVTdGVuY2lsQnVmZmVyKQotICAgICAgc2hvdWxkQmVU
cnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA+PSA4Iik7Ci0gICAgZWxzZQot
ICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAw
Iik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBdHRhY2htZW50KGF0dGFjaG1lbnQsIGJ1ZmZlciwgYWxs
b3dlZFN0YXR1c2VzKQotewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJv
KTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50LCBnbC5SRU5E
RVJCVUZGRVIsIGJ1ZmZlcik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlckZvckFsbG93ZWRTdGF0dXNlcyhhbGxvd2VkU3RhdHVzZXMp
OwotICAgIGlmICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfQ09NUExFVEUpID09IDApIHsKLSAg
ICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCk7Ci0gICAgICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04pOwotICAgICAgICBnbC5y
ZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUs
IG5ldyBVaW50OEFycmF5KHdpZHRoICogaGVpZ2h0ICogNCkpOwotICAgICAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OKTsKLSAgICB9Ci0gICAg
Y2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQpOwotICAgIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKGZi
byk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RBdHRhY2htZW50cyhhdHRhY2htZW50MCwgYnVmZmVyMCwg
YXR0YWNobWVudDEsIGJ1ZmZlcjEsIGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICBzaG91bGRCZU5v
bk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIs
IGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgYXR0YWNobWVudDAsIGdsLlJFTkRFUkJVRkZFUiwgYnVmZmVyMCk7Ci0gICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQxLCBnbC5SRU5ERVJCVUZGRVIsIGJ1ZmZlcjEp
OwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVi
dWZmZXJGb3JBbGxvd2VkU3RhdHVzZXMoYWxsb3dlZFN0YXR1c2VzKTsKLSAgICBjaGVja0J1ZmZl
ckJpdHMoYXR0YWNobWVudDAsIGF0dGFjaG1lbnQxKTsKLSAgICBnbC5kZWxldGVGcmFtZWJ1ZmZl
cihmYm8pOwotfQotCi1mdW5jdGlvbiB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoaW50ZXJuYWxmb3Jt
YXQsIGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGds
LlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uo
Z2wuUkVOREVSQlVGRkVSLCBpbnRlcm5hbGZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgdGVzdEF0dGFjaG1lbnQoZ2wuQ09M
T1JfQVRUQUNITUVOVDAsIGNvbG9yQnVmZmVyLCBhbGxvd2VkU3RhdHVzZXMpOwotfQotCi1mdW5j
dGlvbiB0ZXN0RGVwdGhTdGVuY2lsUmVuZGVyYnVmZmVyKGFsbG93ZWRTdGF0dXNlcykKLXsKLSAg
ICBzaG91bGRCZU5vbk51bGwoImRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRo
U3RlbmNpbEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRoLCBoZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gICAgLy8gT3BlbkdMIGl0c2VsZiBkb2Vzbid0IHNlZW0g
dG8gZ3VhcmFudGVlIHRoYXQgZS5nLiBhIDIgeCAwCi0gICAgLy8gcmVuZGVyYnVmZmVyIHdpbGwg
cmVwb3J0IDIgZm9yIGl0cyB3aWR0aCB3aGVuIHF1ZXJpZWQuCi0gICAgaWYgKCEoaGVpZ2h0ID09
IDAgJiYgd2lkdGggPiAwKSkKLSAgICAgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCkiLCAid2lkdGgi
KTsKLSAgICBpZiAoISh3aWR0aCA9PSAwICYmIGhlaWdodCA+IDApKQotICAgICAgICBzaG91bGRC
ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVS
QlVGRkVSX0hFSUdIVCkiLCAiaGVpZ2h0Iik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9G
T1JNQVQpIiwgImdsLkRFUFRIX1NURU5DSUwiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpF
KSIsICIwIik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSIsICIwIik7Ci0gICAgc2hv
dWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJF
TkRFUkJVRkZFUl9CTFVFX1NJWkUpIiwgIjAiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJ
WkUpIiwgIjAiKTsKLSAgICAvLyBBdm9pZCB2ZXJpZnlpbmcgdGhlc2UgZm9yIHplcm8tc2l6ZWQg
cmVuZGVyYnVmZmVycyBmb3IgdGhlIHRpbWUKLSAgICAvLyBiZWluZyBzaW5jZSBpdCBhcHBlYXJz
IHRoYXQgZXZlbiBPcGVuR0wgZG9lc24ndCBndWFyYW50ZWUgdGhlbS4KLSAgICBpZiAod2lkdGgg
PiAwICYmIGhlaWdodCA+IDApIHsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0la
RSkgPiAwIik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSkgPiAwIik7
Ci0gICAgfQotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHRlc3RB
dHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVy
LCBhbGxvd2VkU3RhdHVzZXMpOwotICAgIHRlc3REZXB0aFN0ZW5jaWxEZXB0aFN0ZW5jaWwoKTsK
LX0KLQotZnVuY3Rpb24gdGVzdERlcHRoU3RlbmNpbERlcHRoU3RlbmNpbCgpCi17Ci0gICAgaWYg
KCF3aWR0aCB8fCAhaGVpZ2h0KSB7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB2YXIg
dGVzdHMgPSBbCi0gICAgICAgIHsgICBmaXJzdEZvcm1hdDogZ2wuREVQVEhfQ09NUE9ORU5UMTYs
Ci0gICAgICAgICAgICBmaXJzdEF0dGFjaDogZ2wuREVQVEhfQVRUQUNITUVOVCwKLSAgICAgICAg
ICAgIHNlY29uZEZvcm1hdDogZ2wuREVQVEhfU1RFTkNJTCwKLSAgICAgICAgICAgIHNlY29uZEF0
dGFjaDogZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi0gICAgICAgIH0sCi0gICAgICAgIHsg
ICBmaXJzdEZvcm1hdDogZ2wuREVQVEhfU1RFTkNJTCwKLSAgICAgICAgICAgIGZpcnN0QXR0YWNo
OiBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsCi0gICAgICAgICAgICBzZWNvbmRGb3JtYXQ6
IGdsLkRFUFRIX0NPTVBPTkVOVDE2LAotICAgICAgICAgICAgc2Vjb25kQXR0YWNoOiBnbC5ERVBU
SF9BVFRBQ0hNRU5UCi0gICAgICAgIH0KLSAgICBdOwotICAgIGZvciAodmFyIGlpID0gMDsgaWkg
PCB0ZXN0cy5sZW5ndGg7ICsraWkpIHsKLSAgICAgICAgdmFyIHRlc3QgPSB0ZXN0c1tpaV07Ci0g
ICAgICAgIGZvciAodmFyIGpqID0gMDsgamogPCAyOyArK2pqKSB7Ci0gICAgICAgICAgICB2YXIg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKTsKLSAgICAgICAgICAgIHZhciB0ZXggPSBnbC5j
cmVhdGVUZXh0dXJlKCk7Ci0gICAgICAgICAgICB2YXIgZmlyc3RSYiA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpOwotCi0gICAgICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgICAgICBkZWJ1Zygi
dGVzdDogIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC5maXJzdEZvcm1hdCkgKyAiIHZz
ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRlc3Quc2Vjb25kRm9ybWF0KSArICIgd2l0aCAi
ICsgKGpqID8gInVuYmluZCIgOiAiZGVsZXRlIikpOwotCi0gICAgICAgICAgICBnbC5iaW5kRnJh
bWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgICAgICAgICAvLyBhdHRhY2ggdGV4
dHVyZSBhcyBjb2xvcgotICAgICAgICAgICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKLSAgICAgICAgICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdC
QSwgd2lkdGgsIGhlaWdodCwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0g
ICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7Ci0KLSAgICAgICAgICAgIC8v
IGF0dGFjaCBmaXJzdAotICAgICAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJC
VUZGRVIsIGZpcnN0UmIpOwotICAgICAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIHRlc3QuZmlyc3RGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAg
ICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRlc3QuZmlyc3RB
dHRhY2gsIGdsLlJFTkRFUkJVRkZFUiwgZmlyc3RSYik7Ci0KLSAgICAgICAgICAgIGlmIChnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5GUkFNRUJVRkZFUl9D
T01QTEVURSkgewotICAgICAgICAgICAgICAgIGdsLmVuYWJsZShnbC5ERVBUSF9URVNUKTsKLSAg
ICAgICAgICAgICAgICB2YXIgcHJvZ3JhbSA9IHd0dS5zZXR1cENvbG9yUXVhZChnbCk7Ci0gICAg
ICAgICAgICAgICAgLy8gVGVzdCBpdCB3b3JrcwotICAgICAgICAgICAgICAgIHd0dS5kcmF3VUJ5
dGVDb2xvclF1YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOwotICAgICAgICAgICAgICAgIHd0dS5k
cmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFsyNTUsIDAsIDAsIDI1NV0pOyAgLy8gc2hvdWxkIG5vdCBk
cmF3IHNpbmNlIERFUFRIX0ZVTkMgPT0gTEVTUwotICAgICAgICAgICAgICAgIHd0dS5jaGVja0Nh
bnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91
bGQgYmUgZ3JlZW4iKTsKLQotICAgICAgICAgICAgICAgIHZhciBzZWNvbmRSYiA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpOwotCi0gICAgICAgICAgICAgICAgLy8gYXR0YWNoIHNlY29uZAotICAg
ICAgICAgICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBzZWNvbmRS
Yik7Ci0gICAgICAgICAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIHRlc3Quc2Vjb25kRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgICAgICAgICBn
bC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5zZWNvbmRBdHRh
Y2gsIGdsLlJFTkRFUkJVRkZFUiwgc2Vjb25kUmIpOwotCi0gICAgICAgICAgICAgICAgaWYgKGpq
ID09IDApIHsKLSAgICAgICAgICAgICAgICAgIC8vIG5vdyBkZWxldGUgaXQKLSAgICAgICAgICAg
ICAgICAgIGRlYnVnKCJ0ZXN0IGRlbGV0aW5nIHNlY29uZCByZW5kZXJidWZmZXIiKTsKLSAgICAg
ICAgICAgICAgICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRSYik7Ci0gICAgICAgICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgIC8vIHVuYmluZCBpdAotICAgICAgICAg
ICAgICAgICAgZGVidWcoInRlc3QgdW5iaW5kaW5nIHNlY29uZCByZW5kZXJidWZmZXIiKTsKLSAg
ICAgICAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCB0ZXN0LnNlY29uZEF0dGFjaCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICAgICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZmlyc3QgYXR0YWNobWVudCBpcyBu
b3QgcmVzdG9yZWQgdGhpcyBtYXkgZmFpbAotICAgICAgICAgICAgICAgIHNob3VsZEJlKCdnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKScsICdnbC5GUkFNRUJVRkZFUl9D
T01QTEVURScpOwotICAgICAgICAgICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwotCi0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGF0dGFjaG1lbnQgaXMgbm90
IHJlc3RvcmVkIHRoaXMgbWF5IGZhaWwuCi0gICAgICAgICAgICAgICAgZ2wuY2xlYXIoZ2wuREVQ
VEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgICAgICAgICAgd3R1LmRyYXdVQnl0ZUNvbG9yUXVhZChn
bCwgWzAsIDI1NSwgMCwgMjU1XSk7Ci0gICAgICAgICAgICAgICAgd3R1LmRyYXdVQnl0ZUNvbG9y
UXVhZChnbCwgWzI1NSwgMCwgMCwgMjU1XSk7ICAvLyBzaG91bGQgbm90IGRyYXcgc2luY2UgREVQ
VEhfRlVOQyA9PSBMRVNTCi0gICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgMCwgd2lkdGgsIGhlaWdodCwgWzAsIDI1NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIp
OwotICAgICAgICAgICAgICAgIGdsLmRpc2FibGUoZ2wuREVQVEhfVEVTVCk7Ci0KLSAgICAgICAg
ICAgICAgICBpZiAoamogPT0gMSkgewotICAgICAgICAgICAgICAgICAgZ2wuZGVsZXRlUmVuZGVy
YnVmZmVyKHNlY29uZFJiKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRSYik7Ci0gICAgICAgICAgICBn
bC5kZWxldGVGcmFtZWJ1ZmZlcihmYm8pOwotICAgICAgICB9Ci0gICAgfQotICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotfQotCi1kZXNjcmlwdGlvbigiVGVzdCBmcmFtZWJ1
ZmZlciBvYmplY3QgYXR0YWNobWVudCBiZWhhdmlvcnMiKTsKLQotZm9yICh3aWR0aCA9IDA7IHdp
ZHRoIDw9IDI7IHdpZHRoICs9IDIpCi17Ci0gICAgZm9yIChoZWlnaHQgPSAwOyBoZWlnaHQgPD0g
MjsgaGVpZ2h0ICs9IDIpCi0gICAgewotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgICAgIGRlYnVn
KCJEaW1lbnNpb25zICIgKyB3aWR0aCArICIgeCAiICsgaGVpZ2h0KTsKLQotICAgICAgICBkZWJ1
ZygiQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMiKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJnbCA9
IGNyZWF0ZTNEQ29udGV4dCgpIik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVm
ZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIHdpZHRoLCBoZWlnaHQpOwotICAg
ICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxkQmVO
b25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgICAg
IGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAg
ICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9DT01Q
T05FTlQxNiwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwoInN0ZW5jaWxCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJF
TkRFUkJVRkZFUiwgc3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5TVEVOQ0lMX0lOREVYOCwgd2lkdGgsIGhlaWdodCk7Ci0g
ICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICBzaG91bGRC
ZU5vbk51bGwoImRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7
Ci0gICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aFN0ZW5j
aWxCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuREVQVEhfU1RFTkNJTCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotCi0gICAgICAgIHZhciBhbGxvd2VkU3RhdHVzRm9yR29v
ZENhc2UKLSAgICAgICAgICAgID0gKHdpZHRoID09IDAgfHwgaGVpZ2h0ID09IDApID8gQUxMT1df
SU5DT01QTEVURV9BVFRBQ0hNRU5UIDogQUxMT1dfQ09NUExFVEU7Ci0KLSAgICAgICAgLy8gc29t
ZSBjYXNlcyBpbnZvbHZpbmcgc3RlbmNpbCBzZWVtIHRvIGJlIGltcGxlbWVudGF0aW9uLWRlcGVu
ZGVudAotICAgICAgICB2YXIgYWxsb3dlZFN0YXR1c0ZvckltcGxEZXBlbmRlbnRDYXNlID0gYWxs
b3dlZFN0YXR1c0Zvckdvb2RDYXNlIHwgQUxMT1dfVU5TVVBQT1JURUQ7Ci0KLSAgICAgICAgZGVi
dWcoIkF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RB
dHRhY2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBhbGxvd2VkU3RhdHVz
Rm9yR29vZENhc2UpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxf
QVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5TVEVOQ0lMX0FUVEFDSE1F
TlQsIGRlcHRoQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBk
ZWJ1ZygiQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCIpOwotICAg
ICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoQnVm
ZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNo
IHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2ht
ZW50KGdsLlNURU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zv
ckltcGxEZXBlbmRlbnRDYXNlKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5n
IERFUFRIX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfQVRU
QUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAg
ICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVO
VCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQs
IHN0ZW5jaWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRl
YnVnKCJBdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCIp
OwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRl
cHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICAgICAgZGVi
dWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVCIpOwotICAgICAg
ICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIs
IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVw
dGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNo
bWVudChnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgQUxMT1dfSU5D
T01QTEVURV9BVFRBQ0hNRU5UKTsKLQotICAgICAgICB2YXIgYWxsb3dlZFN0YXR1c0ZvckNvbmZs
aWN0ZWRBdHRhY2htZW50Ci0gICAgICAgICAgICA9ICh3aWR0aCA9PSAwIHx8IGhlaWdodCA9PSAw
KSA/IEFMTE9XX1VOU1VQUE9SVEVEIHwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IEFMTE9XX1VOU1VQUE9SVEVE
OwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGgsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBj
b25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfQVRUQUNITUVOVCwg
ZGVwdGhCdWZmZXIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgYWxsb3dl
ZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBz
dGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRh
Y2htZW50cyhnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGdsLkRFUFRIX0FU
VEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1l
bnQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1
c2luZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfQVRUQUNI
TUVOVCwgZGVwdGhCdWZmZXIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVu
Y2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAg
ICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGlj
dCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBh
bGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAgICBkZWJ1ZygiQXR0
YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAg
ICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgZ2wu
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0
dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGhT
dGVuY2lsLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0
dGFjaG1lbnRzKGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVy
LCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JD
b25mbGljdGVkQXR0YWNobWVudCk7Ci0KLSAgICAgICAgZGVidWcoIkF0dGFjaCBjb2xvciByZW5k
ZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNCIpOwotICAgICAgICB0ZXN0Q29s
b3JSZW5kZXJidWZmZXIoZ2wuUkdCQTQsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7Ci0KLSAg
ICAgICAgZGVidWcoIkF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1h
dCA9PSBSR0I1X0ExIik7Ci0gICAgICAgIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihnbC5SR0I1X0Ex
LCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggY29s
b3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Iik7Ci0gICAgICAg
IHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihnbC5SR0I1NjUsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2Fz
ZSk7Ci0KLSAgICAgICAgZGVidWcoIkNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5k
ZXJidWZmZXIiKTsKLSAgICAgICAgdGVzdERlcHRoU3RlbmNpbFJlbmRlcmJ1ZmZlcihhbGxvd2Vk
U3RhdHVzRm9yR29vZENhc2UpOwotICAgIH0KLX0KLQotLy8gRGV0ZXJtaW5lIGlmIHdlIGNhbiBh
dHRhY2ggYm90aCBjb2xvciBhbmQgZGVwdGggb3IgY29sb3IgYW5kIGRlcHRoX3N0ZW5jaWwKLXZh
ciBkZXB0aEZvcm1hdDsKLXZhciBkZXB0aEF0dGFjaG1lbnQ7Ci0KLWZ1bmN0aW9uIGNoZWNrVmFs
aWRDb2xvckRlcHRoQ29tYmluYXRpb24oKSB7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1F
QlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVG
RkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAg
ICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVS
LCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihn
bC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLQotICAgIHJldHVybiB0cnlEZXB0aChnbC5E
RVBUSF9DT01QT05FTlQxNiwgZ2wuREVQVEhfQVRUQUNITUVOVCkgfHwgdHJ5RGVwdGgoZ2wuREVQ
VEhfU1RFTkNJTCwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UKTsKLQotICAgIGZ1bmN0aW9u
IHRyeURlcHRoKHRyeV9mb3JtYXQsIHRyeV9hdHRhY2htZW50KSB7Ci0gICAgICAgIGlmIChkZXB0
aEF0dGFjaG1lbnQpIHsKLSAgICAgICAgICAgIC8vIElmIHdlJ3ZlIHRyaWVkIG9uY2UgdW5hdHRh
Y2ggdGhlIG9sZCBvbmUuCi0gICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigK
LSAgICAgICAgICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZGVwdGhBdHRhY2htZW50LCBnbC5SRU5E
RVJCVUZGRVIsIG51bGwpOwotICAgICAgICB9Ci0gICAgICAgIGRlcHRoRm9ybWF0ID0gdHJ5X2Zv
cm1hdDsKLSAgICAgICAgZGVwdGhBdHRhY2htZW50ID0gdHJ5X2F0dGFjaG1lbnQ7Ci0gICAgICAg
IGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICAgICAgZ2wuRlJBTUVCVUZGRVIs
IGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgICAg
IGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYs
IDE2KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAg
IHJldHVybiBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSA9PSBnbC5G
UkFNRUJVRkZFUl9DT01QTEVURTsKLSAgICB9Ci19Ci0KLWlmIChjaGVja1ZhbGlkQ29sb3JEZXB0
aENvbWJpbmF0aW9uKCkpIHsKLSAgICB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlRGltZW5zaW9u
cygpOwotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVBdHRhY2htZW50KCk7Ci0gICAgdGVz
dEZyYW1lYnVmZmVySW5jb21wbGV0ZU1pc3NpbmdBdHRhY2htZW50KCk7Ci0gICAgdGVzdFVzaW5n
SW5jb21wbGV0ZUZyYW1lYnVmZmVyKCk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrRnJhbWVidWZmZXIo
ZXhwZWN0ZWQpIHsKLSAgICB2YXIgYWN0dWFsID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUik7Ci0gICAgdmFyIG1zZyA9ICJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgZXhw
ZWN0ZWQpICsgIiB3YXMgIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgYWN0dWFsKTsKLSAgICBp
ZiAoZXhwZWN0ZWQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgbXNnICs9
ICIgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQiOwotICAgIH0KLSAgICBpZiAoYWN0dWFsID09
IGV4cGVjdGVkIHx8Ci0gICAgICAgIChleHBlY3RlZCAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RSAmJgotICAgICAgICAgYWN0dWFsID09IGdsLkZSQU1CVUZGRVJfVU5TVVBQT1JURUQpKSB7Ci0g
ICAgICAgIHRlc3RQYXNzZWQobXNnKTsKLSAgICB9IGVsc2UgewotICAgICAgICB0ZXN0RmFpbGVk
KG1zZyk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0VXNpbmdJbmNvbXBsZXRlRnJhbWVidWZm
ZXIoKSB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJUZXN0IGRyYXdpbmcgb3IgcmVhZGlu
ZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICB2YXIgcHJvZ3JhbSA9IHd0
dS5zZXR1cFRleHR1cmVkUXVhZChnbCk7Ci0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgICB3dHUuZmlsbFRleHR1cmUoZ2wsIHRleCwgMSwgMSwgWzAsMjU1LDAsMjU1XSk7Ci0K
LSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAg
ICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgc2hvdWxkQmVO
b25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wu
YmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5m
cmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9S
X0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5k
ZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0KLSAg
ICBzaG91bGRCZU5vbk51bGwoImRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCki
KTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIp
OwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZF
UiwgZGVwdGhBdHRhY2htZW50LCBnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAx
Nik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgY2hlY2tGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICAvLyBXZSBwaWNrIHRoaXMg
Y29tYmluYXRpb24gYmVjYXVzZSBpdCB3b3JrcyBvbiBkZXNrdG9wIE9wZW5HTCBidXQgc2hvdWxk
IG5vdCB3b3JrIG9uIE9wZW5HTCBFUyAyLjAKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGds
LlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDMyLCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMpOwotICAgIGRlYnVnKCIiKTsK
LSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKLSAg
ICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8y
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgZmJvMik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9J
TkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCk7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVn
KCJEcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3Vs
ZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiIpOwotICAgIHRlc3RSZW5k
ZXJpbmdBbmRSZWFkaW5nKCk7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJF
TkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVy
KAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRF
UkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SR0JBNCwgMCwgMCk7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJE
cmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBn
ZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiIpOwotICAgIHRlc3RSZW5kZXJp
bmdBbmRSZWFkaW5nKCk7Ci0KLSAgICBmdW5jdGlvbiB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygp
IHsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIHd0
dS5kcmF3UXVhZChnbCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04sICJkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciIpOwotICAgICAgICBnbC5yZWFkUGl4ZWxzKDAsIDAsIDEsIDEsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIG5ldyBVaW50OEFycmF5KDQpKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgInJlYWRQaXhlbHMgZnJvbSBp
bmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAgICAgIC8vIGNvcHlUZXhJbWFnZSBhbmQgY29w
eVRleFN1YkltYWdlIGNhbiBiZSBlaXRoZXIgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
YmVjYXVzZQotICAgICAgICAvLyB0aGUgZnJhbWVidWZmZXIgaXMgaW52YWxpZCBPUiBJTlZBTElE
X09QRVJBVElPTiBiZWNhdXNlIGluIHRoZSBjYXNlIG9mIG5vIGF0dGFjaG1lbnRzCi0gICAgICAg
IC8vIHRoZSBmcmFtZWJ1ZmZlciBpcyBub3Qgb2YgYSBjb21wYXRpYmxlIHR5cGUuCi0gICAgICAg
IGdsLmNvcHlUZXhTdWJJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIDAsIDAsIDAsIDAsIDEsIDEp
OwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIFtnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiwgZ2wuSU5WQUxJRF9PUEVSQVRJT05dLCAiY29weVRleEltYWdlMkQgZnJvbSBpbmNv
bXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAgICAgIGdsLmNvcHlUZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDAsIDAsIDEsIDEsIDApOwotICAgICAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIFtnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgZ2wuSU5WQUxJRF9PUEVS
QVRJT05dLCAiY29weVRleFN1YkltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7
Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQgfCBnbC5ERVBUSF9CVUZGRVJf
QklUKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiwgImNsZWFyIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZUF0dGFjaG1lbnQoKSB7Ci0g
ICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAg
Z2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9u
TnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJp
bmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVy
YnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotICAgIGNo
ZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZGVidWcoIiIp
OwotICAgIGRlYnVnKCJXcm9uZyBzdG9yYWdlIHR5cGUgZm9yIHR5cGUgb2YgYXR0YWNobWVudCBi
ZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUp
Iik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9y
bWF0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9BVFRBQ0hNRU5UKTsKLQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1F
QlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiMCBzaXplIGF0
dGFjaG1lbnQgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3Bl
bkdMIEVTIDIuMCA0LjQuNSkiKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkdCQTQsIDAsIDApOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLQotICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwotfQotCi1mdW5jdGlvbiB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlTWlz
c2luZ0F0dGFjaG1lbnQoKSB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJObyBhdHRhY2ht
ZW50cyBzaG91bGQgYmUgSU5DT01QTEVURV9GUkFNRUJVRkZFUl9NSVNTSU5HX0FUVEFDSE1FTlQg
KE9wZW5HTCBFUyAyLjAgNC40LjUpIik7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSLCBmYm8pOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9NSVNTSU5HX0FUVEFDSE1FTlQpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihn
bC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5S
RU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihn
bC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZl
cigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5E
RVJCVUZGRVIsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVEaW1l
bnNpb25zKCkgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiQXR0YWNobWVudHMgb2YgZGlm
ZmVyZW50IHNpemVzIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMg
KE9wZW5HTCBFUyAyLjAgNC40LjUpIik7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIGZibyk7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZG
RVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAg
ICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIs
IGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImRlcHRoQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGds
LlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZGVwdGhBdHRhY2htZW50LCBnbC5SRU5ERVJC
VUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RSk7Ci0KLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhG
b3JtYXQsIDMyLCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNP
TVBMRVRFX0RJTUVOU0lPTlMpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSX0NPTVBMRVRFKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJV
RkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SR0JBNCwgMTYsIDMyKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyk7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotCi0gICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICBnbC5i
aW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVY
VFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTYsIDE2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRF
LCBudWxsKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclRleHR1cmUyRChnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlRFWFRVUkVfMkQsIHRleCwgMCk7Ci0gICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgaWYgKGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIDMyLCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAg
Y2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMpOwot
ICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMTYsIDE2LCAwLCBn
bC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGds
LkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IpOwotfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDFhNWY4OTc2NDE3NGY3OTUzOWExODcyZjJk
MjAyNzcyNjNiMjNlOWUuLjYwMGVmZTZmZWM3NzZiMGVmM2NlM2Q3MTRkN2NmOGYxNTM2ZTM2NWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC00MzUsNyAr
NDM1LDYgQEAgd2Via2l0Lm9yZy9iLzE2OTkxOCBjb21wb3NpdGluZy92aWRlby92aWRlby1iYWNr
Z3JvdW5kLWNvbG9yLmh0bWwgWyBNaXNzaW5nIENyYXMKIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFz
dC9jYW52YXMvd2ViZ2wvYW50aWFsaWFzaW5nLWVuYWJsZWQuaHRtbCBbIEZhaWx1cmUgUGFzcyBd
CiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtYXR0cmlidXRl
cy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2NvcHlCdWZmZXJTdWJEYXRhLmh0bWwgWyBG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZm
ZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkx
NyBmYXN0L2NhbnZhcy93ZWJnbC9nZXRCdWZmZXJTdWJEYXRhLXdlYmdsMS5odG1sIFsgRmFpbHVy
ZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2dsc2wtY29uZm9ybWFu
Y2UuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJn
bC9wcmVtdWx0aXBseWFscGhhLXRlc3QuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkNDk1NTZlZDc4MWU0YjRkNzY0Y2UyM2Vh
ZjljMjMwOWFiYzdlNWY1Li44YTI3ZmI1MjBjNTJiYTQwNmIyZDY2ZjAzOGFlZDE5NTc5OTI4OTNi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjc0MCw3
ICsyNzQwLDYgQEAgd2Via2l0Lm9yZy9iLzE3MTYxNyBwZXJmL29iamVjdC1rZXlzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCiAjIFdlYkdMIHRlc3RzIHdoaWNoIG5lZWQgdHJpYWdpbmcgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvYi8xNzQxMDAKIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtYXR0
cmlidXRlcy1hbHBoYS1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy5odG1sIFsgRmFpbHVyZSBdCi1m
YXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sIFsgRmFp
bHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1mbG9hdC1saW5lYXIuaHRtbCBb
IEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtaGFsZi1mbG9hdC1saW5l
YXIuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdlLWFuZC1zdWIt
aW1hZ2UtMmQtd2l0aC1wb3RlbnRpYWxseS1zdWJzYW1wbGVkLWltYWdlLmh0bWwgWyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTAyN2E5
ZDM5ZTdmNmMzMWM2MDQ3ZjhhNTU4MzgwZTFkYmU4NmZhNy4uYmFjZjFmZTZkYzQ5M2M1NjA2N2Rj
MjcwNWM2NzVkODliODU3Y2QzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTI5NCw4ICsyOTQsNiBAQCB3ZWJraXQub3JnL2IvODI2NjUgd2ViYXJjaGl2
ZS90ZXN0LWNzcy11cmwtcmVzb3VyY2VzLWlubGluZS1zdHlsZXMuaHRtbCBbIEZhaWx1cgogCiB3
ZWJraXQub3JnL2IvODI3NjIgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
ZHVyaW5nLW1vZGFsLmh0bWwKIAotd2Via2l0Lm9yZy9iLzgyODA1IGZhc3QvY2FudmFzL3dlYmds
L2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0
Lm9yZy9iLzgyOTcyIHBsdWdpbnMva2V5Ym9hcmQtZXZlbnRzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQogd2Via2l0Lm9yZy9iLzgyOTcyIHBsdWdpbnMvbGF5b3V0LWluLWJlZm9yZWxvYWQtbGlzdGVu
ZXItYWZmZWN0cy1wbHVnaW4tbG9hZGluZy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi84Mjk3MiBwbHVnaW5zL21vdXNlLWV2ZW50cy1maXhlZHBvcy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9j
b250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2NvbnRl
eHQvY29udGV4dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9iZXllZC1leHBl
Y3RlZC50eHQKaW5kZXggNWJlZjgxNmM0NmY3ZjAwMmQ0NTU2ODdkMzkxNDUyMjFmZTRjMGNhZi4u
MzZjOTQ4YWRlOTVlY2IzZDQ5YmU5MGMxMTRmMzg3ZDc4ZjQyOTlkMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1
dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9iZXllZC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1
dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9iZXllZC1leHBlY3RlZC50eHQKQEAgLTEsMTcg
KzEsMTUgQEAKIFRoaXMgdGVzdCBydW5zIHRoZSBXZWJHTCBUZXN0IGxpc3RlZCBiZWxvdyBpbiBh
biBpZnJhbWUgYW5kIHJlcG9ydHMgUEFTUyBvciBGQUlMLgogCiBUZXN0OiAuLi8uLi9yZXNvdXJj
ZXMvd2ViZ2xfdGVzdF9maWxlcy9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0
ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLmh0bWwKLVsgMTogRkFJTCBdIGFudGlh
bGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAotWyAyOiBGQUlMIF0gYW50aWFsaWFzID0gdHJ1ZSBp
cyBub3Qgb2JleWVkCitbIDE6IFBBU1MgXSBDb250ZXh0IGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVj
dCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KK1sgMjogRkFJTCBdIHN0ZW5jaWwgPSB0
cnVlIGlzIG5vdCBvYmV5ZWQKIFsgMzogRkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5
ZWQKIFsgNDogRkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgNTogRkFJTCBd
IGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAotWyA2OiBGQUlMIF0gc3RlbmNpbCA9IHRy
dWUgaXMgbm90IG9iZXllZAotWyA3OiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9iZXll
ZAotWyA4OiBGQUlMIF0gYW50aWFsaWFzID0gdHJ1ZSBpcyBub3Qgb2JleWVkCitbIDU6IEZBSUwg
XSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCitbIDY6IFBBU1MgXSBDb250ZXh0IGNyZWF0
ZWQgd2l0aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KK1sgNzog
UEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgs
IGFuZCBzdGVuY2lsLgorWyA4OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJl
Y3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCiBbIDk6IFBBU1MgXSBDb250ZXh0IGNy
ZWF0ZWQgd2l0aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KLVsg
MTA6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgMTE6IFBBU1MgXSBD
b250ZXh0IGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3Rl
bmNpbC4KLVsgMTI6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotWyBGQUlMIF0g
OSBmYWlsdXJlcyByZXBvcnRlZAorWyAxMDogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCitbIEZBSUwgXSA0IGZhaWx1cmVzIHJlcG9ydGVkCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386454</attachid>
            <date>2019-12-27 13:40:26 -0800</date>
            <delta_ts>2019-12-27 14:05:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191228084024.patch</filename>
            <type>text/plain</type>
            <size>380668</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGI4ZGEzYjJiYjhjNTI1
OTc2ZjY5YzdkNmE2Yzk3OTBhNzU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZyA9IDAsCisgICAgICAgIERvUHJlbXVsdGlwbHkgPSAxLAorICAgICAg
ICBEb1VubXVsdGlwbHkgPSAyCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRE9NU291cmNlIDog
dWludDhfdCB7CisgICAgICAgIEltYWdlID0gMCwKKyAgICAgICAgQ2FudmFzID0gMSwKKyAgICAg
ICAgVmlkZW8gPSAyLAorICAgICAgICBOb25lID0gMworICAgIH07CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
ID0gMDsKKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZvcm1h
dCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkExNkY6CisgICAgICAg
IGNhc2UgRGF0YUZvcm1hdDo6QTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTg6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6QVI4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJB
MTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkFSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1h
dDo6UkdCQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZv
cm1hdCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgICAgIGNhc2UgRGF0
YUZvcm1hdDo6UkdCQTg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTE2RjoKKyAgICAg
ICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBMzJGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJH
Qjg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCMTZGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQjMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1I4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFSR0I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6
OlJHQkE1NTUxOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE0NDQ0OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQjU2NToKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlIz
MkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkFSODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gQ2hlY2sgaWYgdGhlIGZvcm1hdCBpcyBvbmUgb2YgdGhlIGZvcm1hdHMgZnJvbSB0aGUgSW1h
Z2VEYXRhIG9yIERPTSBlbGVtZW50cy4KKyAgICAvLyBUaGUgZm9ybWF0cyBmcm9tIEltYWdlRGF0
YSBpcyBhbHdheXMgUkdCQTguCisgICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBET00gZWxlbWVudHMg
dmFyeSB3aXRoIEdyYXBoaWNzIHBvcnRzLiBJdCBjYW4gb25seSBiZSBSR0JBOCBvciBCR1JBOCBm
b3Igbm9uLUNHIHBvcnQgd2hpbGUgYSBsaXR0bGUgbW9yZSBmb3IgQ0cgcG9ydC4KKyAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBib29sIHNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRPckltYWdl
RGF0YShEYXRhRm9ybWF0IFNyY0Zvcm1hdCkKKyAgICB7CisjaWYgVVNFKENHKQorI2lmIENQVShC
SUdfRU5ESUFOKQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0
OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSQTggfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OkFSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkE4OworI2Vsc2UKKyAgICAvLyBUaGF0IExJVFRMRV9F
TkRJQU4gY2FzZSBoYXMgbW9yZSBwb3NzaWJsZSBmb3JtYXRzIHRoYW4gQklHX0VORElBTiBjYXNl
IGlzIGJlY2F1c2Ugc29tZSBkZWNvZGVkIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYmlnIGVuZGlh
bgorICAgIC8vIGV2ZW4gb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzLgorICAgIHJldHVy
biBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3Jt
YXQ6OkFCR1I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpCR1I4CisgICAgICAgIHx8IFNy
Y0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6
QVJHQjggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQjgKKyAgICAgICAgfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBOAorICAg
ICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpBUjg7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpCR1JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOwor
ICAgICAgICBHQzNEZW51bSB0eXBlOworICAgICAgICBHQzNEaW50IHNpemU7CisgICAgfTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMsIERl
c3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0M0RCYXNl
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
M0RCYXNlKCkgPSBkZWZhdWx0OworCisgICAgLy8gPT09PT09PT09PSBXZWJHTCAxIGVudHJ5IHBv
aW50cy4KKworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKEdDM0RlbnVtIHRleHR1cmUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmlu
ZEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RPYmplY3QsIEdDM0R1aW50IGluZGV4LCBjb25zdCBT
dHJpbmcmIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVj
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihHQzNEY2xh
bXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNsYW1wZiBibHVlLCBHQzNEY2xhbXBmIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb24oR0MzRGVudW0gbW9kZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0MzRGVudW0gbW9k
ZVJHQiwgR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
YyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGJsZW5kRnVuY1NlcGFyYXRlKEdDM0RlbnVtIHNyY1JHQiwgR0MzRGVudW0gZHN0UkdCLCBH
QzNEZW51bSBzcmNBbHBoYSwgR0MzRGVudW0gZHN0QWxwaGEpID0gMDsKKworICAgIHZpcnR1YWwg
R0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
RGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5j
aWwoR0MzRGludCBzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVh
biByZWQsIEdDM0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBh
bHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmpl
Y3QpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlQnVmZmVyKCkgPSAwOworICAg
IHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwg
UGxhdGZvcm0zRE9iamVjdCBjcmVhdGVTaGFkZXIoR0MzRGVudW0pID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShHQzNEZW51bSBtb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
QnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJh
bWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVu
ZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
U2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5j
KEdDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpO
ZWFyLCBHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVy
KFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdBcnJheXMoR0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6
ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlKEdDM0RlbnVtIGNhcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZh
Y2UoR0MzRGVudW0gbW9kZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlTWlwbWFw
KEdDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJp
YihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVVbmlmb3JtKFBsYXRmb3JtM0RPYmplY3Qg
cHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXpl
aSBtYXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykg
PSAwOworCisgICAgdmlydHVhbCBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdldEJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRTdHJpbmcoR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYo
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW50ZWdlcnYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQ2NCogdmFsdWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEJvb2xlYW52KEdDM0RlbnVtIHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpID0gMDsK
KworICAgIHZpcnR1YWwgR0MzRGVudW0gZ2V0RXJyb3IoKSA9IDA7CisKKyAgICAvLyBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFBy
b2dyYW1QYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFNoYWRl
clBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVu
dW0gcHJlY2lzaW9uVHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgPSAw
OworCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKworICAgIC8vIGdldFRleFBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQ
YXJhbWV0ZXJmdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRV
bmlmb3JtCisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VW5pZm9ybWl2KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGludCBnZXRV
bmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7
CisKKyAgICAvLyBnZXRWZXJ0ZXhBdHRyaWIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0
cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGluZGV4LCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRHNp
emVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5h
bWUpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNCdWZmZXIoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNFbmFibGVkKEdDM0RlbnVt
IGNhcCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1Byb2dyYW0oUGxhdGZv
cm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNTaGFkZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNUZXh0dXJl
KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKEdDM0Rm
bG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvbHlnb25PZmZzZXQoR0MzRGZsb2F0
IGZhY3RvciwgR0MzRGZsb2F0IHVuaXRzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNoYWRl
clNvdXJjZShQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIHN0cmluZykgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBH
QzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUo
R0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2sp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1
aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWws
IEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0
ZXJmKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwg
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtM2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZs
b2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVp
LCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgy
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJp
eDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0
cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3Nl
LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliMWYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmYoR0MzRHVpbnQgaW5kZXgsIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwg
R0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjNmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4
LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjRmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2
YWx1ZXMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1
aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1h
bGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgR0MzRGVudW0gdXNhZ2UpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0
ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2FnZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEaW50IGJvcmRlciwgR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRh
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgdGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVt
IHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBH
QzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQg
Zmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVp
IGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNpemVpIHByaW1j
b3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKSA9IDA7CisKKyAgICBHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgY29udGV4dEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJzOyB9Cisg
ICAgdm9pZCBzZXRDb250ZXh0QXR0cmlidXRlcyhjb25zdCBHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMmIGF0dHJzKSB7IG1fYXR0cnMgPSBhdHRyczsgfQorCisgICAgLy8gVmVydGV4QXJyYXlP
amVjdCBjYWxscworICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJh
eSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisKKyNpZiBVU0UoT1BFTkdMKSAmJiBFTkFCTEUoV0VCR0wyKQorICAg
IHZpcnR1YWwgdm9pZCBwcmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpID0gMDsKKyNlbmRp
ZgorCisgICAgLy8gU3VwcG9ydCBmb3IgZXh0ZW5zaW9ucy4gUmV0dXJucyBhIG5vbi1udWxsIG9i
amVjdCwgdGhvdWdoIG5vdAorICAgIC8vIGFsbCBtZXRob2RzIGl0IGNvbnRhaW5zIG1heSBuZWNl
c3NhcmlseSBiZSBzdXBwb3J0ZWQgb24gdGhlCisgICAgLy8gY3VycmVudCBoYXJkd2FyZS4gTXVz
dCBjYWxsIEV4dGVuc2lvbnMzRDo6c3VwcG9ydHMoKSB0bworICAgIC8vIGRldGVybWluZSB0aGlz
LgorICAgIHZpcnR1YWwgRXh0ZW5zaW9uczNEJiBnZXRFeHRlbnNpb25zKCkgPSAwOworCisgICAg
Ly8gPT09PT09PT09PSBXZWJHTCAyIGVudHJ5IHBvaW50cy4KKworICAgIHZpcnR1YWwgdm9pZCog
bWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNp
emVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2VzcykgPSAwOworICAgIHZpcnR1YWwgR0Mz
RGJvb2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRl
VGFyZ2V0LCBHQzNEaW50cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdD
M0RzaXplaXB0cikgPSAwOworCisgICAgLy8gZ2V0SW50ZXJuYWxGb3JtYXRQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdD
M0RpbnQqIHBhcmFtcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0Zm9ybTNET2JqZWN0IHByb2dy
YW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFt
ZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpID0gMDsKKworICAgIC8vID09PT09PT09PT0gTm9u
LVdlYkdMIGJhc2VkIGVudHJ5IHBvaW50cy4KKworICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVh
ckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOworCisgICAgc3RhdGljIHVpbnQ4X3QgZ2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSk7CisKKyAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKworcHJpdmF0ZToKKyAgICBHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgbV9hdHRyczsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3Rp
bmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuY3BwCmluZGV4IDkxMzAwNDQwY2RlZDQ5ZTFkZGQ1MGJjNDllYzc4ZGQ2NThk
ZDZhMGUuLmEzZTZkMjU4MjE0NWRlOGMxNjA5MGJkMGVjOGMwZmUzNDBmNDJlZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZh
dGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUpCitHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgog
ICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgm
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3Rs
eVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZTMzZjhmYmU3Mzg5MmUzNGI4
ZGVmODM2ZDQ2ZjVjNzBjNzljNjFkZC4uZjMyNTRhODA1OWI1NjJhMTU2YTdjNTZiNmExODY4N2Nl
MzQ3ZTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAgY2xhc3Mg
Qml0bWFwVGV4dHVyZUdMOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUp
OworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZSgpOwogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKaW5kZXggMWFiMWE0ZjY0YTYxNGU5ZDIz
ZGFjOGEwYTJhMmM0ODk3ZTkxZWU5MS4uNWVjMjcxNDVjMDMwZjlkYmJkZGZmMjU0ZjNhMTRkYjE1
YWJjM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKQEAgLTUxLDQgKzUxLDggQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv
bmcgR0MzRHVpbnQ2NDsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQordHlwZWRlZiB1bnNpZ25lZCBHTHVpbnQ7CisjZW5kaWYKKwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCmluZGV4IDc3YmIzYjJjZDE1
ZTEyNzExMjY5NDY5NGE2NDc5MmEwZGMzMWY2NGEuLjI5YTczNzU0ZjU1MDQxMmVhYWVkMjA0NDg5
MTA3YjM2NGI0ZTUzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZl
cnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludAogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgaWYgKCFtX2F0dHJzLmFscGhhKQorICAgIGlmICghY29udGV4dEF0dHJp
YnV0ZXMoKS5hbHBoYSkKICAgICAgICAgd2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMod2lkdGgs
IGhlaWdodCwgcGl4ZWxzKTsKICNlbmRpZgogfQpAQCAtMTM0LDE3ICsxMzQsMTggQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkKIAogYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBhdXRvIGF0
dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBjb25zdCBpbnQgd2lkdGggPSBzaXplLndp
ZHRoKCk7CiAgICAgY29uc3QgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAgR0x1aW50
IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1f
YXR0cnMuYWxwaGEpIHsKKyAgICBpZiAoYXR0cnMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5h
bENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0I4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQjsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMu
ZGVwdGgpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5j
aWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAgICAgLy8gU2VlIEdyYXBoaWNz
Q29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMuCiAKQEAgLTE1Nyw3ICsxNTgsNyBAQCBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAg
IH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICBHTGludCBtYXhT
YW1wbGVDb3VudDsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX01BWF9TQU1QTEVTX0FOR0xF
LCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRoYW4gNCBzYW1wbGVz
IGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAgLTE2Nyw3ICsx
NjgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXpl
JiBzaXplKQogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1f
bXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CiAgICAgICAgIGdldEV4dGVuc2lvbnMoKS5yZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgbV9p
bnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgZ2w6OkZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xf
UkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJzLnN0ZW5j
aWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdM
X1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAg
ICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JF
TkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0KTsKICAgICAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRlIHRoYXQg
Y29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0xNzUsOSArMTc2LDkgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAgICAgICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpICYmIGludGVybmFsRGVwdGhTdGVu
Y2lsRm9ybWF0ID09IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTKQogICAgICAgICAgICAgICAgIGds
OjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZm
ZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAgICAgICAgICAg
ICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVO
Q0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAg
ICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JF
TkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTIxNSw3ICsyMTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
OjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGF0dGFjaERlcHRoQW5kU3Rl
bmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgZ2w6OkJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAg
IGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAgICBt
dXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI5LDcgKzIzMCw5IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdMdWludCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewotICAg
IGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYg
KCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpKSB7CiAg
ICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICBnbDo6UmVuZGVyYnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZG
RVIsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAg
Ly8gV2ViR0wgMS4wJ3MgcnVsZXMgc3RhdGUgdGhhdCBjb21iaW5lZCBkZXB0aC9zdGVuY2lsIHJl
bmRlcmJ1ZmZlcnMKQEAgLTIzNyw5ICsyNDAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjph
dHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aAog
ICAgICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCA9PSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUykKICAgICAgICAgICAgIGdsOjpGcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgaWYgKGF0dHJz
LnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9k
ZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5E
RVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICBnbDo6
QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwpAQCAtMzc4LDE3ICszODEsMTgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQg
eSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5n
IGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICBnbDo6Rmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11
bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fZmJvKTsKICAgICAgICAgZ2w6OkZsdXNoKCk7CiAgICAgfQogICAgIGdsOjpSZWFkUGl4ZWxz
KHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7Ci0gICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAg
ICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
ICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8
IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYgKG1fc3RhdGUuYm91bmRGQk8g
PT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEp
ICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRycy5hbnRpYWxpYXMgJiYgbV9z
dGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAgICAgICAgIHdpcGVBbHBoYUNo
YW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIq
PihkYXRhKSk7CiAjZW5kaWYKIH0KQEAgLTM5OSwyMCArNDAzLDIzIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChj
b25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pCiB7CiAgICAgRXh0ZW5zaW9u
czNEJiBleHRlbnNpb25zID0gZ2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwpIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChh
dHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKHBhY2tlZERl
cHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5h
YmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgICAgICAgICAgLy8gRm9yY2Ug
ZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAgbV9hdHRycy5kZXB0aCA9IHRy
dWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7Ci0KKyAgICAgICAgICAgIGF0dHJzLnN0
ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAg
IH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFz
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFkanVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRv
IFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3VwcG9ydC4KLSAgICAgICAgaWYgKCFleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8ICFleHRl
bnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgfHwgIWV4dGVuc2lv
bnMuc3VwcG9ydHMoIkdMX09FU19yZ2I4X3JnYmE4IikgfHwgaXNHTEVTMkNvbXBsaWFudCgpKQot
ICAgICAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVs
dGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJf
YmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9yZ2JhOCIpKSB7Cisg
ICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICAgICAgICAgIHNldENvbnRl
eHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsK
ICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfYmxpdCIpOwogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKCJHTF9PRVNf
cmdiOF9yZ2JhOCIpOwpAQCAtNDM3LDcgKzQ0NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcikK
IAogICAgIHJlYWRSZW5kZXJpbmdSZXN1bHRzKHBpeGVscy5nZXQoKSwgdG90YWxCeXRlcyk7CiAK
LSAgICBpZiAoIW1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKSB7CisgICAgaWYgKCFjb250ZXh0
QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkgewogICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkgewogICAgICAgICAgICAgLy8gUHJlbXVsdGlwbHkg
YWxwaGEuCiAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gc3RkOjptaW4oMjU1LCBwaXhlbHNb
aSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7CkBAIC00NjQsNyArNDcxLDcgQEAgUmVmUHRy
PEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1h
Z2VEYXRhKCkKIHsKICAgICAvLyBSZWFkaW5nIHByZW11bHRpcGxpZWQgYWxwaGEgd291bGQgaW52
b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcwogICAgIC8vIGxvc3N5LgotICAgIGlmICht
X2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5w
cmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byBp
bWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShJbnRTaXplKG1fY3VycmVudFdpZHRoLCBtX2N1
cnJlbnRIZWlnaHQpKTsKQEAgLTQ5MCw3ICs0OTcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpwcmVwYXJlVGV4dHVyZSgpCiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTUxNyw3ICs1MjQsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGlu
dCBwaXhlbHNTaQogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgYm9vbCBtdXN0UmVz
dG9yZUZCTyA9IGZhbHNlOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChj
b250ZXh0QXR0cmlidXRlcygpLmFudGlhbGlhcykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIG11c3RSZXN0b3JlRkJPID0g
dHJ1ZTsKQEAgLTU2NCwxMSArNTcxLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hh
cGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKICAgICBUZW1w
b3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNF
KTsKICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xf
RkFMU0UpOwogCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUo
d2lkdGgsIGhlaWdodCkpOworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwog
CiAgICAgLy8gSW5pdGlhbGl6ZSByZW5kZXJidWZmZXJzIHRvIDAuCiAgICAgR0xmbG9hdCBjbGVh
ckNvbG9yW10gPSB7MCwgMCwgMCwgMH0sIGNsZWFyRGVwdGggPSAwOwpAQCAtNTgwLDE0ICs1ODks
MTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiAgICAgZ2w6OkdldEJvb2xlYW52
KEdMX0NPTE9SX1dSSVRFTUFTSywgY29sb3JNYXNrKTsKICAgICBnbDo6Q29sb3JNYXNrKEdMX1RS
VUUsIEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7
CisgICAgaWYgKGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIGdsOjpHZXRGbG9hdHYoR0xfREVQVEhf
Q0xFQVJfVkFMVUUsICZjbGVhckRlcHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNs
ZWFyRGVwdGgoMSk7CiAgICAgICAgIGdsOjpHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ss
ICZkZXB0aE1hc2spOwogICAgICAgICBnbDo6RGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBj
bGVhck1hc2sgfD0gR0xfREVQVEhfQlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGdsOjpHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6
OkNsZWFyU3RlbmNpbCgwKTsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJ
VEVNQVNLLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC02MDEs
MTEgKzYxMCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCkKIAogICAgIGdsOjpDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29s
b3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwogICAgIGdsOjpDb2xvck1hc2so
Y29sb3JNYXNrWzBdLCBjb2xvck1hc2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsK
LSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhkZXB0aE1hc2spOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgZ2w6OkNsZWFyU3RlbmNpbChjbGVh
clN0ZW5jaWwpOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3Rl
bmNpbE1hc2spOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVu
Y2lsTWFza0JhY2spOwpAQCAtNjU3LDcgKzY2Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVy
CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAg
ICAgZmJvID0gKG1fYXR0cnMuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsK
KyAgICAgICAgZmJvID0gKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNh
bXBsZUZCTyA6IG1fZmJvKTsKICAgICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcih0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUu
Ym91bmRGQk8gPSBmYm87CkBAIC04MzIsMjQgKzg0MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpjb21waWxlU2hhZGVyRGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsK
ICAgICB9CiAgICAgZ2w6OkNvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9y
bWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRl
eFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZz
ZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxl
RkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAo
YXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykg
ewogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCkpOwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICBnbDo6Q29weVRleFN1Yklt
YWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0x
MDM3LDExICsxMDUwLDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlv
bkRpcmVjdChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gZ2V0
QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAg
IHJldHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3Jz
VG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcAppbmRleCA0MThiZjM1YjkyOTczMWJiM2Y5MzkyNzNiZDkxYWQ4Njhm
ZjRhNjE3Li5iYzkzOGI0NDJiODExOGFhYmEzZjQzMzEwNmIxNzdkMGY4Mjc1ZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQz
RENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcApAQCAtNzcsMjEgKzc3LDIxIEBAIHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBnZXRTb3VyY2VEYXRhRm9ybWF0KHVuc2lnbmVkIGNvbXBvbmVudHNQ
ZXJQCiAgICAgICAgIHsgU291cmNlRm9ybWF0QmFzZVJHQiwgICAgICAgIFNvdXJjZUZvcm1hdEJh
c2VOdW1Gb3JtYXRzLCBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cyB9LCAvLyAzIGNvbXBvbmVu
dHNQZXJQaXhlbAogICAgICAgICB7IFNvdXJjZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3VyY2VG
b3JtYXRCYXNlQVJHQiwgICAgICAgU291cmNlRm9ybWF0QmFzZVJHQkEgICAgICAgIH0gLy8gNCBj
b21wb25lbnRzUGVyUGl4ZWwKICAgICB9OwotICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRUYWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11b
NF0gPSB7IC8vIFNvdXJjZURhdGFGb3JtYXRCYXNlIHggYml0c1BlckNvbXBvbmVudCB4IGVuZGlh
bgorICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRU
YWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11bNF0gPSB7IC8vIFNvdXJjZURhdGFGb3Jt
YXQ6OkJhc2UgeCBiaXRzUGVyQ29tcG9uZW50IHggZW5kaWFuCiAgICAgICAgIC8vIDhiaXRzLCBs
aXR0bGUgZW5kaWFuICAgICAgICAgICAgICAgICA4Yml0cywgYmlnIGVuZGlhbiAgICAgICAgICAg
ICAgICAgICAgIDE2Yml0cywgbGl0dGxlIGVuZGlhbiAgICAgICAgICAgICAgICAgICAgICAgIDE2
Yml0cywgYmlnIGVuZGlhbgotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsICAgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJp
ZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVI4LCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkExNkxpdHRsZSwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcgfSwK
LSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
MTZMaXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnIH0sCi0gICAg
ICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCAgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRs
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZCaWcgfSwKLSAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEFSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZCaWcgfQorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2QmlnIH0sCisgICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZMaXR0bGUs
ICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZCaWcgfSwKKyAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZMaXR0
bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcgfSwKKyAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcgfSwKKyAgICAg
ICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QjE2TGl0dGxlLCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2QmlnIH0sCisg
ICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcg
fSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSR0IxNkxpdHRsZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0Ix
NkJpZyB9CiAgICAgfTsKIAogICAgIEFTU0VSVChjb21wb25lbnRzUGVyUGl4ZWwgPD0gNCAmJiBj
b21wb25lbnRzUGVyUGl4ZWwgPiAwKTsKICAgICBTb3VyY2VEYXRhRm9ybWF0QmFzZSBmb3JtYXRC
YXNlID0gZm9ybWF0VGFibGVCYXNlW2NvbXBvbmVudHNQZXJQaXhlbCAtIDFdW2FscGhhRm9ybWF0
XTsKICAgICBpZiAoZm9ybWF0QmFzZSA9PSBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cykKLSAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0TnVtRm9ybWF0czsKKyAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpOdW1Gb3JtYXRzOwog
ICAgIHJldHVybiBmb3JtYXRUYWJsZVtmb3JtYXRCYXNlXVsoaXMxNkJpdEZvcm1hdCA/IDIgOiAw
KSArIChiaWdFbmRpYW4gPyAxIDogMCldOwogfQogCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB1aW50
OF90IGNvbnZlcnRDb2xvcjE2QmlnVG84KHVpbnQxNl90IHZhbHVlKQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50OF90Pih2YWx1ZSAmIDB4MDBGRik7CiB9CiAKLXRlbXBsYXRlPGludCBmb3Jt
YXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1lIERzdFR5cGU+Cit0ZW1wbGF0ZTxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5
cGVuYW1lIERzdFR5cGU+CiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBOChjb25zdCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJv
d09mUkdCQTE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cp
OwpAQCAtMTI3LDcgKzEyNyw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZl
cnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnLCB1aW50MTZfdCwgdWludDhf
dD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCiAgICAgU0lNRDo6dW5wYWNr
T25lUm93T2ZSR0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVy
Um93KTsKQEAgLTE1NCw3ICsxNTQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2Qmln
LCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBj
b252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QVJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVu
cGFja09uZVJvd09mQVJHQjE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhl
bHNQZXJSb3cpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnLCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFS
R0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTE5Myw3ICsxOTMsNyBA
QCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4
ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7
ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84
KHNvdXJjZVswXSk7CkBAIC0yMDUsNyArMjA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcsIHVpbnQxNl90
LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29u
dmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMF0pOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMV0pOwpAQCAtMjUzLDcgKzI1Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMV0pOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjk2LDIwICsyOTYsMjAgQEAgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IHNy
Y0Zvcm1hdCwgY29uc3QgdWkKICAgICAgICAgcmV0dXJuIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdC
QTg8U3JjRm9ybWF0Pihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwogCiAgICAg
c3dpdGNoIChzcmNGb3JtYXQpIHsKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2
QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkJpZykKLSAg
ICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
QTE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9S
R0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcpCi0gICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4
KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2TGl0dGxlKQotICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0QVJHQjE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JB
OChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZC
aWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJBMTZMaXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcpCisgICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JN
QVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVJHQjE2QmlnKQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTQxNywxOCArNDE3LDE4IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2FscGhhT3Ag
PSBBbHBoYURvTm90aGluZzsKKyAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb05vdGhpbmc7CiAg
ICAgQWxwaGFGb3JtYXQgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdE5vbmU7CiAgICAgc3dpdGNo
IChDR0ltYWdlR2V0QWxwaGFJbmZvKG1fY2dJbWFnZS5nZXQoKSkpIHsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3Q6CiAgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBo
YSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRpcGx5OworICAgICAgICAg
ICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Vbm11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1h
dCA9IEFscGhhRm9ybWF0Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VB
bHBoYUZpcnN0OgogICAgICAgICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBN
YWNPUyBlYXJsaWVyIHRoYW4gMTAuNi40LgogICAgICAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkK
LSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAgICAgICAg
IG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhhRm9ybWF0
ID0gQWxwaGFGb3JtYXRGaXJzdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJbWFnZUFs
cGhhTm9uZVNraXBGaXJzdDoKQEAgLTQzNywxMiArNDM3LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxp
ZWRMYXN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBtX2Fs
cGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhh
T3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUxhc3Q6CiAgICAgICAgIGlm
IChwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFEb1ByZW11
bHRpcGx5OworICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9QcmVtdWx0aXBseTsK
ICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwTGFzdDoKQEAgLTQ1Niw3ICs0NTYsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgIH0KIAogICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQg
PSBnZXRTb3VyY2VEYXRhRm9ybWF0KGNvbXBvbmVudHNQZXJQaXhlbCwgYWxwaGFGb3JtYXQsIGJp
dHNQZXJDb21wb25lbnQgPT0gMTYsIGJpZ0VuZGlhblNvdXJjZSk7Ci0gICAgaWYgKG1faW1hZ2VT
b3VyY2VGb3JtYXQgPT0gRGF0YUZvcm1hdE51bUZvcm1hdHMpCisgICAgaWYgKG1faW1hZ2VTb3Vy
Y2VGb3JtYXQgPT0gRGF0YUZvcm1hdDo6TnVtRm9ybWF0cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9waXhlbERhdGEgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ29weURhdGEoQ0dJ
bWFnZUdldERhdGFQcm92aWRlcihtX2NnSW1hZ2UuZ2V0KCkpKSk7CkBAIC00OTAsNyArNDkwLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShi
b29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wKICAgICAgICAgICAgIGRlc3RpbmF0aW9uICs9IGRz
dFN0cmlkZUluRWxlbWVudHM7CiAgICAgICAgIH0KICAgICAgICAgbV9pbWFnZVBpeGVsRGF0YSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fZm9ybWFsaXplZFJHQkE4RGF0YS5nZXQo
KSk7Ci0gICAgICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0UkdCQTg7CisgICAg
ICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0OjpSR0JBODsKICAgICAgICAgbV9p
bWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IDE7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0M0RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KaW5kZXggZGE2YjNiNmQyNmQ5ZTE0MGQ5MDcy
ZDFkYjViZTY0NDUwMzE1YWMxYS4uYzY0OTY3NGFkMmY4ODA3YzViZWI1OGM3Njc5NGE1Y2IyOGY4
OGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCBwdWJsaWM6CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpIHsgfQogfTsKIAot
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogewogICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24g
ZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RX
aW5kb3cuCi0gICAgaWYgKHJlbmRlclN0eWxlID09IFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
KQorICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5k
b3cpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhl
IGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KQEAgLTExMyw3ICsxMTMsNyBAQCBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzCiAgICAgaWYgKEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9IGFkb3B0UmVmKG5l
dyBHcmFwaGljc0NvbnRleHQzRChhdHRycywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAg
ICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhp
Y3NDb250ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICAgICBpZiAo
IWNvbnRleHQtPm1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMjYs
NyArMTI2LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogUmVmPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkKEdyYXBoaWNzQ29udGV4dDNEJiBzaGFy
ZWRDb250ZXh0KQogewogICAgIGF1dG8gaG9zdFdpbmRvdyA9IEdyYXBoaWNzQ29udGV4dDNETWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmhvc3RXaW5kb3dGb3JDb250ZXh0KCZzaGFyZWRDb250ZXh0
KTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dDNEKHNo
YXJlZENvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSwgaG9zdFdpbmRvdywgc2hhcmVkQ29u
dGV4dC5tX3JlbmRlclN0eWxlLCAmc2hhcmVkQ29udGV4dCkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0M0Qoc2hhcmVkQ29udGV4dC5jb250ZXh0QXR0
cmlidXRlcygpLCBob3N0V2luZG93LCBzaGFyZWRDb250ZXh0LmRlc3RpbmF0aW9uKCksICZzaGFy
ZWRDb250ZXh0KSk7CiAKICAgICBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5hZGRDb250ZXh0KGNvbnRleHQucHRyKCksIGhvc3RXaW5kb3cpOwogCkBAIC0xODMsOCAr
MTgzLDggQEAgc3RhdGljIHZvaWQgc2V0R1BVQnlSZWdpc3RyeUlEKENHTENvbnRleHRPYmogY29u
dGV4dE9iaiwgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWwKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykgJiYgKFVTRShPUEVOR0wpIHx8IFVTRShBTkdMRSkpCiAKLUdyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSwgR3JhcGhp
Y3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJzKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKKyAg
ICA6IEdyYXBoaWNzQ29udGV4dDNEQmFzZShhdHRycywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRl
eHQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
KHRoaXMpKQogewogCkBAIC0yMDAsMzAgKzIwMCwzNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2lu
ZAogICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIGlmIChtX2F0dHJz
LmlzV2ViR0wyKQorICAgIGlmIChhdHRycy5pc1dlYkdMMikKICAgICAgICAgbV9jb21waWxlciA9
IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBTSF9XRUJHTDJfU1BFQyk7CiAgICAg
ZWxzZQogICAgICAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQ
VVQpOwogI2Vsc2UKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9HTFNMXzQx
MF9DT1JFX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogI2VuZGlmIC8vIFVTRShPUEVOR0xfRVMp
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgVU5VU0VE
X1BBUkFNKGhvc3RXaW5kb3cpOwotICAgIEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gbV9hdHRycy5p
c1dlYkdMMiA/IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElP
cGVuR0xFUzI7CisgICAgRUFHTFJlbmRlcmluZ0FQSSBhcGkgPSBhdHRycy5pc1dlYkdMMiA/IGtF
QUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElPcGVuR0xFUzI7Cisg
ICAgRUFHTENvbnRleHQgKmNvbnRleHRPYmo7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTphcGld
OworICAgICAgICBjb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10gaW5pdFdpdGhBUEk6
YXBpXTsKICAgICBlbHNlCi0gICAgICAgIG1fY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxs
b2NdIGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnNoYXJlZENvbnRleHQtPm1fY29udGV4dE9i
ai5zaGFyZWdyb3VwXTsKKyAgICAgICAgY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2Nd
IGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnN0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KHNo
YXJlZENvbnRleHQtPm1fY29udGV4dE9iaikuc2hhcmVncm91cF07CisKKyAgICBtX2NvbnRleHRP
YmogPSBzdGF0aWNfY2FzdDx2b2lkICo+KGNvbnRleHRPYmopOworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIDo6Z2xFbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlBSSU1JVElWRV9S
RVNUQVJUX0ZJWEVEX0lOREVYKTsKICNlbGlmIFVTRShPUEVOR0wpCiAKLSAgICBib29sIHVzZU11
bHRpc2FtcGxpbmcgPSBtX2F0dHJzLmFudGlhbGlhczsKKyAgICBib29sIHVzZU11bHRpc2FtcGxp
bmcgPSBhdHRycy5hbnRpYWxpYXM7CiAKICAgICBWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1
dGU+IGF0dHJpYnM7CiAgICAgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWxGb3JtYXRPYmogPSAwOwpA
QCAtMjUwLDcgKzI1NCw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgICAgIGF0dHJp
YnMuYXBwZW5kKHN0YXRpY19jYXN0PENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPig0KSk7CiAgICAg
fQogCi0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIp
IHsKICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2YgYmFja2luZyBhIFdlYkdMMiBHcmFwaGlj
c0NvbnRleHQzRCB3aXRoIGEgT3BlbkdMIDQgY29udGV4dCwgd2Ugc2hvdWxkIGluc3RlYWQgYmFj
ayBpdCB3aXRoIEFOR0xFLgogICAgICAgICAvLyBVc2UgYW4gT3BlbkdMIDQgY29udGV4dCBmb3Ig
bm93IHVudGlsIHRoZSBBTkdMRSBiYWNrZW5kIGlzIHJlYWR5LgogICAgICAgICBhdHRyaWJzLmFw
cGVuZChrQ0dMUEZBT3BlbkdMUHJvZmlsZSk7CkBAIC0yNjQsMzAgKzI2OCwzNyBAQCBHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJzLCBIb3N0V2luZAogICAgIGlmICghbnVtUGl4ZWxGb3JtYXRzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0T2Jq
LCBzaGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqIDogbnVsbHB0ciwg
Jm1fY29udGV4dE9iaik7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gbnVsbHB0cjsK
KyAgICBDR0xDb250ZXh0T2JqIHNoYXJlZENHTENvbnRleHQgPSBzaGFyZWRDb250ZXh0ID8gc3Rh
dGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqKSA6IG51
bGxwdHI7CisKKyAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0
T2JqLCBzaGFyZWRDR0xDb250ZXh0LCAmY2dsQ29udGV4dCk7CiAgICAgR0xpbnQgYWJvcnRPbkJs
YWNrbGlzdCA9IDA7Ci0gICAgQ0dMU2V0UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJv
cnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotICAg
IAorICAgIENHTFNldFBhcmFtZXRlcihjZ2xDb250ZXh0LCBrQ0dMQ1BBYm9ydE9uR1BVUmVzdGFy
dFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7CisKICNpZiBQTEFURk9STShN
QUMpIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IHNob3VsZCBiZSBVU0UoT1BFTkdMKSAtIHNlZSA8
cmRhcjovLzUzMDYyNzk0Pi4KIAogICAgIGF1dG8gZ3B1SUQgPSAoaG9zdFdpbmRvdyAmJiBob3N0
V2luZG93LT5kaXNwbGF5SUQoKSkgPyBncHVJREZvckRpc3BsYXkoaG9zdFdpbmRvdy0+ZGlzcGxh
eUlEKCkpIDogcHJpbWFyeUdQVUlEKCk7Ci0gICAgc2V0R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4
dE9iaiwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKKyAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQoY2ds
Q29udGV4dCwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKIAogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oaG9zdFdpbmRvdyk7CiAjZW5kaWYKIAogICAgIENHTERlc3Ryb3lQaXhlbEZvcm1hdChwaXhl
bEZvcm1hdE9iaik7Ci0gICAgCisKKyAgICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OworCiAg
ICAgaWYgKGVyciAhPSBrQ0dMTm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CiAgICAgICAgIC8v
IFdlIHdlcmUgdW5hYmxlIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4KICAgICAgICAgbV9jb250ZXh0
T2JqID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faXNGb3JXZWJHTDIgPSBt
X2F0dHJzLmlzV2ViR0wyOworICAgIG1fY29udGV4dE9iaiA9IGNnbENvbnRleHQ7CisKKyAgICBt
X2lzRm9yV2ViR0wyID0gYXR0cnMuaXNXZWJHTDI7CiAKLSAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChtX2NvbnRleHRPYmopOworICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwog
CiAgICAgLy8gV2ViR0wgMiBleHBlY3RzIEVTIDMtb25seSBQUklNSVRJVkVfUkVTVEFSVF9GSVhF
RF9JTkRFWCB0byBiZSBlbmFibGVkOyB3ZSBtdXN0IGVtdWxhdGUgdGhpcyBvbiBub24tRVMgMyBz
eXN0ZW1zLgogICAgIGlmIChtX2lzRm9yV2ViR0wyKQpAQCAtMzM0LDcgKzM0NSw3IEBAIEdyYXBo
aWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgfQogCiAgICAgc3RkOjp2ZWN0b3I8RUdMaW50PiBjb250
ZXh0QXR0cmlidXRlczsKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikgeworICAgIGlmIChhdHRy
cy5pc1dlYkdMMikgewogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NP
TlRFWFRfQ0xJRU5UX1ZFUlNJT04pOwogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2Jh
Y2soMyk7CiAgICAgfSBlbHNlIHsKQEAgLTM5Niw2ICs0MDcsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZAogI2VuZGlmIC8vICNlbGlmIFVTRShBTkdMRSkKIAogICAgIHZhbGlkYXRlQXR0cmli
dXRlcygpOworICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2
ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgLy8gQ3JlYXRlIHRoZSBXZWJHTExh
eWVyCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC00NTEsMTYgKzQ2MywxNiBA
QCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xf
RlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAKICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87
Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpKQorICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRycy5zdGVuY2lsIHx8
IGF0dHJzLmRlcHRoKSkKICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVw
dGhTdGVuY2lsQnVmZmVyKTsKIAogICAgIC8vIElmIG5lY2Vzc2FyeSwgY3JlYXRlIGFub3RoZXIg
ZnJhbWVidWZmZXIgZm9yIHRoZSBtdWx0aXNhbXBsZSByZXN1bHRzLgotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbEdl
bkZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKICAg
ICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgIDo6Z2xH
ZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZl
cnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0KICNlbGlm
IFVTRShBTkdMRSkKQEAgLTQ2OCwxNiArNDgwLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5k
CiAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIG1f
c3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKIAotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkKKyAgICBpZiAoIWF0dHJzLmFudGlh
bGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkpCiAgICAgICAgIGdsOjpHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAKICAgICAvLyBJZiBuZWNl
c3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZvciB0aGUgbXVsdGlzYW1wbGUgcmVz
dWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFs
aWFzKSB7CiAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8p
OwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2Ft
cGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
IGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgZ2w6OkdlblJl
bmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0K
IApAQCAtNTI3LDEyICs1MzksMTUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRl
eHQzRCgpCiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVt
b3ZlQ29udGV4dCh0aGlzKTsKIAogICAgIGlmIChtX2NvbnRleHRPYmopIHsKKyAgICAgICAgR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwog
I2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6R0xfUkVOREVSQlVGRkVSIGZyb21E
cmF3YWJsZTpuaWxdOworICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250
ZXh0T2JqKSByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6
bmlsXTsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CiAj
ZWxpZiBVU0UoT1BFTkdMKQotICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRP
YmopOworICAgICAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xD
b250ZXh0T2JqPihtX2NvbnRleHRPYmopOworICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChj
Z2xDb250ZXh0KTsKICAgICAgICAgOjpnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOwog
I2VsaWYgVVNFKEFOR0xFKQogICAgICAgICBFR0xfTWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBF
R0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fY29udGV4dE9iaik7CkBAIC01NDAsMjQg
KzU1NSwyNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICNlbmRp
ZgogCiAjaWYgVVNFKE9QRU5HTCkgfHwgVVNFKE9QRU5HTF9FUykKLSAgICAgICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAg
ICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZm
ZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQor
ICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpCiAgICAgICAgICAg
ICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVyc0VYVCgxLCAm
bV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVm
ZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6
Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsKICNlbGlmIFVTRShBTkdMRSkKLSAg
ICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2Ft
cGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgp
CiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6RGVsZXRlUmVu
ZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAg
IGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKQEAgLTU2NSwxMCArNTgwLDEwIEBA
IEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OjBdOwotICAgICAg
ICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRPYmopIHJlbGVhc2VdOworICAg
ICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsK
ICNlbGlmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KDApOwotICAg
ICAgICBDR0xEZXN0cm95Q29udGV4dChtX2NvbnRleHRPYmopOworICAgICAgICBDR0xEZXN0cm95
Q29udGV4dChjZ2xDb250ZXh0KTsKICNlbGlmIFVTRShBTkdMRSkKICAgICAgICAgRUdMX01ha2VD
dXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xf
Tk9fQ09OVEVYVCk7CiAgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXlPYmosIG1f
Y29udGV4dE9iaik7CkBAIC01ODcsOSArNjAyLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShHQzNEc2l6ZWkgd2lkdGgsIEdDM0QK
ICAgICBDR1JlY3QgcHJldmlvdXNCb3VuZHMgPSBbbV93ZWJHTExheWVyLmdldCgpIGJvdW5kc107
CiAKICAgICBbbV93ZWJHTExheWVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBo
ZWlnaHQpXTsKLSAgICBbbV93ZWJHTExheWVyIHNldE9wYXF1ZTohbV9hdHRycy5hbHBoYV07Cisg
ICAgW21fd2ViR0xMYXllciBzZXRPcGFxdWU6IWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwog
Ci0gICAgW21fY29udGV4dE9iaiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBm
cm9tRHJhd2FibGU6c3RhdGljX2Nhc3Q8aWQ8RUFHTERyYXdhYmxlPj4obV93ZWJHTExheWVyLmdl
dCgpKV07CisgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVu
ZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOnN0YXRpY19jYXN0
PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQoKSldOwogCiAgICAgW21fd2ViR0xM
YXllciBzZXRCb3VuZHM6cHJldmlvdXNCb3VuZHNdOwogfQpAQCAtNjA2LDcgKzYyMSw3IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAjZWxpZiBVU0UoT1BF
TkdMKQogICAgIENHTENvbnRleHRPYmogY3VycmVudENvbnRleHQgPSBDR0xHZXRDdXJyZW50Q29u
dGV4dCgpOwogICAgIGlmIChjdXJyZW50Q29udGV4dCAhPSBtX2NvbnRleHRPYmopCi0gICAgICAg
IHJldHVybiBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRPYmopID09IGtDR0xOb0Vycm9y
OworICAgICAgICByZXR1cm4gQ0dMU2V0Q3VycmVudENvbnRleHQoc3RhdGljX2Nhc3Q8Q0dMQ29u
dGV4dE9iaj4obV9jb250ZXh0T2JqKSkgPT0ga0NHTE5vRXJyb3I7CiAjZWxpZiBVU0UoQU5HTEUp
CiAgICAgaWYgKEVHTF9HZXRDdXJyZW50Q29udGV4dCgpICE9IG1fY29udGV4dE9iaikKICAgICAg
ICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChtX2Rpc3BsYXlPYmosIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fU1VSRkFDRSwgbV9jb250ZXh0T2JqKTsKQEAgLTYzOCw3ICs2NTMsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAKICAgICBHTGludCByZXN0YXJ0U3Rh
dHVzID0gMDsKICNpZiBVU0UoT1BFTkdMKQotICAgIENHTEdldFBhcmFtZXRlcihwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRTdGF0dXMsICZyZXN0YXJ0U3RhdHVz
KTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0
T2JqPihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTEdldFBhcmFtZXRlcihj
Z2xDb250ZXh0LCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CiAgICAg
aWYgKHJlc3RhcnRTdGF0dXMgPT0ga0NHTENQR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkKSB7
CiAgICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUgaGFzIGJsYWNrbGlzdGVkIHVzICglcCkuIFRl
cm1pbmF0aW5nLiIsIHRoaXMpOwogICAgICAgICBleGl0KEVYX09TRVJSKTsKQEAgLTY2Niw3ICs2
ODIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKCkKIHsKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNvbnRleHRB
dHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVj
ZXNzYXJ5KCk7CiAKICAgICA6OmdsRmx1c2goKTsKQEAgLTY3OSw5ICs2OTUsMTAgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50
ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0MzRHVpbnQgcGxh
bmUpCiB7CiAjaWYgVVNFKE9QRU5HTCkKLSAgICByZXR1cm4ga0NHTE5vRXJyb3IgPT0gQ0dMVGV4
SW1hZ2VJT1N1cmZhY2UyRChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIHRhcmdldCwgaW50
ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUp
OworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRP
Ymo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgcmV0dXJuIGtDR0xOb0Vycm9y
ID09IENHTFRleEltYWdlSU9TdXJmYWNlMkQoY2dsQ29udGV4dCwgdGFyZ2V0LCBpbnRlcm5hbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBzdXJmYWNlLCBwbGFuZSk7CiAjZWxp
ZiBVU0UoT1BFTkdMX0VTKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0gICAg
cmV0dXJuIFtwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgdGV4SW1hZ2VJT1N1cmZhY2U6c3Vy
ZmFjZSB0YXJnZXQ6dGFyZ2V0IGludGVybmFsRm9ybWF0OmludGVybmFsRm9ybWF0IHdpZHRoOndp
ZHRoIGhlaWdodDpoZWlnaHQgZm9ybWF0OmZvcm1hdCB0eXBlOnR5cGUgcGxhbmU6cGxhbmVdOwor
ICAgIHJldHVybiBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4ocGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJmYWNlIHRhcmdldDp0YXJnZXQgaW50ZXJu
YWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lkdGggaGVpZ2h0OmhlaWdodCBmb3JtYXQ6
Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0
YXJnZXQpOwogICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZvcm1hdCk7CkBAIC02OTksNyArNzE2
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm8KIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFs
bG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUgc2l6ZSkKIHsKICAgICBMT0coV2Vi
R0wsICJHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUgYXQg
JWQgeCAlZC4gKCVwKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgdGhpcyk7Ci0gICAg
W21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUg
dXNpbmdBbHBoYTptX2F0dHJzLmFscGhhXTsKKyAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9T
dXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOmNvbnRleHRBdHRyaWJ1
dGVzKCkuYWxwaGFdOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1cGRhdGVGcmFtZWJ1
ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5ZXIoKQpAQCAtNzE2LDcgKzczMyw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnVwZGF0ZUNHTENvbnRleHQoKQogICAgIExPRyhXZWJHTCwg
IkRldGVjdGVkIGEgbXV4IHN3aXRjaCBvciBkaXNwbGF5IHJlY29uZmlndXJhdGlvbi4gQ2FsbCBD
R0xVcGRhdGVDb250ZXh0LiAoJXApIiwgdGhpcyk7CiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKLSAgICBDR0xVcGRhdGVDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAgQ0dMVXBkYXRlQ29u
dGV4dChzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihtX2NvbnRleHRPYmopKTsKICAgICBtX2hh
c1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUgPSB0cnVlOwogfQogCkBAIC03NTksNyArNzc2
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3Rv
cmUoSW50U2l6ZSBzaXplKQogewogI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIExPRyhXZWJHTCwg
IkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZSBhdCAlZCB4
ICVkLiAoJXApIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCB0aGlzKTsKLSAgICBbbV93
ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2lu
Z0FscGhhOm1fYXR0cnMuYWxwaGFdOworICAgIFttX3dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZh
Y2VCYWNraW5nU3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxwaGE6Y29udGV4dEF0dHJpYnV0ZXMo
KS5hbHBoYV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgpAQCAtNzc5
LDE0ICs3OTYsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkg
Y29uc3QKICAgICByZXR1cm4gbV9pc0ZvcldlYkdMMjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RD
YWxsYmFjaz4pCi17Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2Fn
ZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pCi17Ci19Ci0K
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQogewogICAg
IEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnVwZGF0ZUFsbENvbnRl
eHRzKCk7CkBAIC04MzQsOCArODQzLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjcmVl
bkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgfQogI2Vsc2UKICNp
ZiBVU0UoT1BFTkdMKQotICAgIGlmICghbV9oYXNTd2l0Y2hlZFRvSGlnaFBlcmZvcm1hbmNlR1BV
KQotICAgICAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQobV9jb250ZXh0T2JqLCBDR0xHZXRQaXhlbEZv
cm1hdChtX2NvbnRleHRPYmopLCBncHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgaWYg
KCFtX2hhc1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUpIHsKKyAgICAgICAgQ0dMQ29udGV4
dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2Jq
KTsKKyAgICAgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENvbnRleHQsIENHTEdldFBpeGVsRm9y
bWF0KGNnbENvbnRleHQpLCBncHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgfQogI2Vu
ZGlmCiAjZW5kaWYgLy8gVVNFKEFOR0xFKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggZDhlODUwMDkwZmM3Yzli
ZTVlY2JjY2U5N2EwZDE3OWNlMzU3MmZjNC4uNTU0OTRlZDBlZTJkZTFhMmIwMWQwZDAzNjcwMDhj
ZmQ4Mzg1ZTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC03MCwxMyArNzAsMTQgQEAgY29uc3QgR0xlbnVtIGlv
U3VyZmFjZVRleHR1cmVUeXBlID0gR0xfVEVYVFVSRV8yRDsKIHsKICAgICBfY29udGV4dCA9IGNv
bnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9
IGNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBh
dXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpOworICAgIF9kZXZp
Y2VQaXhlbFJhdGlvID0gYXR0cmlidXRlcy5kZXZpY2VQaXhlbFJhdGlvOwogI2lmIFVTRShPUEVO
R0wpIHx8IFVTRShBTkdMRSkKLSAgICBzZWxmLmNvbnRlbnRzT3BhcXVlID0gIWNvbnRleHQtPmdl
dENvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CisgICAgc2VsZi5jb250ZW50c09wYXF1ZSA9ICFh
dHRyaWJ1dGVzLmFscGhhOwogICAgIHNlbGYudHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRElkZW50
aXR5OwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IF9kZXZpY2VQaXhlbFJhdGlvOwogI2Vsc2UK
LSAgICBzZWxmLm9wYXF1ZSA9ICFjb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygpLmFscGhh
OworICAgIHNlbGYub3BhcXVlID0gIWF0dHJpYnV0ZXMuYWxwaGE7CiAjZW5kaWYKICAgICByZXR1
cm4gc2VsZjsKIH0KQEAgLTExMiw3ICsxMTMsOCBAQCBzdGF0aWMgdm9pZCBmcmVlRGF0YSh2b2lk
ICosIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogI2lmIFVTRShPUEVOR0wpCi0gICAgQ0dMU2V0Q3VycmVudENvbnRleHQoX2Nv
bnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMQ29udGV4dE9iaiBj
Z2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oX2NvbnRleHQtPnBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoY2dsQ29udGV4
dCk7CiAKICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBpbWFnZUNvbG9yU3BhY2UgPSBj
b2xvclNwYWNlOwogICAgIGlmICghaW1hZ2VDb2xvclNwYWNlKQpAQCAtMjUxLDcgKzI1Myw4IEBA
IHN0YXRpYyB2b2lkIGZyZWVEYXRhKHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8q
IHNpemUgKi8pCiAgICAgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQgPSBfdXNpbmdBbHBoYSA/IEdM
X1JHQkEgOiBHTF9SR0I7CiAKICAgICAvLyBMaW5rIHRoZSBJT1N1cmZhY2UgdG8gdGhlIHRleHR1
cmUuCi0gICAgQ0dMRXJyb3IgZXJyb3IgPSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKF9jb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwg
aW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXplLndpZHRoKCksIF9idWZmZXJTaXplLmhlaWdodCgp
LCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYsIGlvU3VyZmFjZSwgMCk7Cisg
ICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4o
X2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMRXJyb3IgZXJy
b3IgPSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKGNnbENvbnRleHQsIEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FSQiwgaW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXplLndpZHRoKCksIF9idWZmZXJTaXpl
LmhlaWdodCgpLCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYsIGlvU3VyZmFj
ZSwgMCk7CiAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgZXJyb3IgPT0ga0NHTE5vRXJyb3IpOwog
I2VsaWYgVVNFKEFOR0xFKQogICAgIEdDM0RlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxhdGZv
cm1UZXh0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLm1tCmluZGV4IDAxOWQyMzk1MTdkODJiYzJlYmYzZGI2NTY2YzNm
YWQzYTU4MGZkYTEuLmY1MmZlM2RhOGU5YmVmNjdkYmM0OTYwNWZjYTc5Y2U0Njk0MzRjMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNo
ZUNWLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tCkBAIC0zOCw5ICszOCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hl
Q1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogewog
ICAgIFRleHR1cmVDYWNoZVR5cGUgY2FjaGUgPSBudWxscHRyOwogI2lmIFVTRShPUEVOR0xfRVMp
Ci0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENWRUFHTENvbnRleHQgZWFnbENvbnRleHQgPSBz
dGF0aWNfY2FzdDxDVkVBR0xDb250ZXh0Pihjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QoKSk7CisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGVhZ2xDb250ZXh0LCBudWxscHRyLCAmY2Fj
aGUpOwogI2VsaWYgVVNFKE9QRU5HTCkKLSAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4
dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisgICAgQ0dMQ29udGV4
dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oY29udGV4dC5wbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY2dsQ29udGV4
dCwgQ0dMR2V0UGl4ZWxGb3JtYXQoY2dsQ29udGV4dCksIG51bGxwdHIsICZjYWNoZSk7CiAjZWxp
ZiBVU0UoQU5HTEUpCiAgICAgLy8gRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoaXMgaW50
ZWdyYXRpbmcgdmlhIEFOR0xFLgogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQzNEQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCmluZGV4IDQ3Y2Y1ZDEzNTNl
YjJkM2JlZmZkOGViODNjMjYxZTc1OGVlNDJlOTcuLmFhM2RlYTBhOTI4NTJlZjlmMzhjZGU2NDZi
NjA4MDFhZDJmZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdM
RUxheWVyLmNwcApAQCAtMTc0LDE5ICsxNzQsMTkgQEAgYm9vbCBHQzNEQU5HTEVMYXllcjo6QU5H
TEVDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1Q
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBs
YXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVy
OjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
Y29udGV4dDsKIH0KIAotR0MzREFOR0xFTGF5ZXI6OkdDM0RBTkdMRUxheWVyKEdyYXBoaWNzQ29u
dGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5
bGUpCitHQzNEQU5HTEVMYXllcjo6R0MzREFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNv
bnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKICAgICA6
IEdDM0RMYXllcihjb250ZXh0KQogewotICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CisgICAgc3dpdGNoIChkZXN0
aW5hdGlvbikgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpPZmZz
Y3JlZW46CiAgICAgICAgIG1fYW5nbGVDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVDb250
ZXh0KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRl
ckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIEdDM0RB
TkdMRUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogCiB9CiAKLVBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QgR0MzREFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxh
eWVyLmgKaW5kZXggYmMyZjZlZmM3OGFjMjVhNDBjNGZhMmI5Y2ZkOWI4YjJkZWZjMTRlYy4uZWM0
N2VhZGYyZTkxNjUwYTJlZWJkZjY2N2I4NWRiYzMwMDczNGEzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdM
RUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgog
CiAgICAgICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAjaWYgRU5BQkxFKEdSQVBISUNT
X0NPTlRFWFRfM0QpCi0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1D
b250ZXh0KCk7CisgICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250
ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CkBAIC03MywxMSArNzMsMTEgQEAg
cHVibGljOgogICAgICAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKICAgICB9
OwogCi0gICAgR0MzREFOR0xFTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIEdDM0RBTkdMRUxheWVy
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OkRlc3RpbmF0aW9uKTsKICAgICB2aXJ0dWFsIH5HQzNEQU5HTEVMYXllcigpOwogCiAgICAgYm9v
bCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFOR0xFQ29udGV4dD4gbV9hbmdsZUNvbnRleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCmluZGV4IGJkYTY1ODhhZjkyMDRhMGFhMGVm
Zjk4ZWYwYzEwYzIwNWU0OWIxMjEuLjc1NDdjZmExZjgwYjU0YmFkNDdlZTYyMjk2ZThiMWJhY2E3
ZTc2ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCkBAIC01Mywx
NSArNTMsMTUgQEAgR0MzRExheWVyOjpHQzNETGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRl
eHQpCiB7CiB9CiAKLUdDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250
ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitHQzNETGF5
ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0
M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAg
ICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lh
OjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQog
ewotICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJPZmZzY3JlZW46CisgICAgc3dpdGNoIChkZXN0aW5hdGlvbikgeworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpPZmZzY3JlZW46CiAgICAgICAgIG1fZ2xD
b250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3c6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIEdDM0RMYXllcjo6c3dhcEJ1ZmZlcnNJZk5lZWRlZCgpCiAK
ICAgICBtX2NvbnRleHQucHJlcGFyZVRleHR1cmUoKTsKICAgICBJbnRTaXplIHRleHR1cmVTaXpl
KG1fY29udGV4dC5tX2N1cnJlbnRXaWR0aCwgbV9jb250ZXh0Lm1fY3VycmVudEhlaWdodCk7Ci0g
ICAgVGV4dHVyZU1hcHBlckdMOjpGbGFncyBmbGFncyA9IG1fY29udGV4dC5tX2F0dHJzLmFscGhh
ID8gVGV4dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDA7CisgICAgVGV4dHVyZU1hcHBlckdM
OjpGbGFncyBmbGFncyA9IG1fY29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLmFscGhhID8gVGV4
dHVyZU1hcHBlckdMOjpTaG91bGRCbGVuZCA6IDA7CiAjaWYgVVNFKEFOR0xFKQogICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHRleHR1cmVTaXplLCBVbmFjY2VsZXJhdGVkKTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmlj
b3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCmluZGV4IDMyNmQ2ZTU1MDZlNmU5MjdlNDBk
NmY1NjI0ODU3MWJhYzlkZTNkODkuLmU4NTcyMTc3ZGFmY2FhY2FiM2VhMjMwOWQ0ODRiYzM5MDQy
NzhhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKQEAgLTQ0LDEzICs0
NCwxMyBAQCBjbGFzcyBHQzNETGF5ZXIgOiBwdWJsaWMgQ29udGVudExheWVyVGV4dHVyZU1hcHBl
ckltcGw6OkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAg
ICAgZXhwbGljaXQgR0MzRExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJik7Ci0gICAg
R0MzRExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0QmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24pOwogCiAg
ICAgdmlydHVhbCB+R0MzRExheWVyKCk7CiAKICAgICBDb250ZW50TGF5ZXImIGNvbnRlbnRMYXll
cigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExheWVyOyB9CiAgICAgdmlydHVhbCBib29sIG1h
a2VDb250ZXh0Q3VycmVudCgpOwotICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCBwbGF0Zm9ybUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CiAKICAgICB2b2lkIHN3YXBCdWZmZXJzSWZOZWVk
ZWQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKaW5k
ZXggYjk2MzYzYjU1MTkzNTZjOGNkZjQ2NTQzNjMyNmVkMDZjZWNlZDg4ZC4uMWE1Zjk5Mzg3YWEx
ZjY5ODcyNGMyMDA4MDdmMjJiMGEyNjZkNzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0wuY3BwCkBAIC04Miw4ICs4MiwxMCBAQCBzdGF0aWMgdm9pZCB3aXBlQWxwaGFDaGFu
bmVsRnJvbVBpeGVscyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVuc2lnbmVkIGNoYXIqIHBpeAog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVj
ZXNzYXJ5KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1bnNpZ25lZCBjaGFy
KiBwaXhlbHMpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAg
ICAvLyBOVklESUEgZHJpdmVycyBoYXZlIGEgYnVnIHdoZXJlIGNhbGxpbmcgcmVhZFBpeGVscyBp
biBCR1JBIGNhbiByZXR1cm4gdGhlIHdyb25nIHZhbHVlcyBmb3IgdGhlIGFscGhhIGNoYW5uZWwg
d2hlbiB0aGUgYWxwaGEgaXMgb2ZmIGZvciB0aGUgY29udGV4dC4KLSAgICBpZiAoIW1fYXR0cnMu
YWxwaGEgJiYgZ2V0RXh0ZW5zaW9ucygpLmlzTlZJRElBKCkpIHsKKyAgICBpZiAoIWF0dHJzLmFs
cGhhICYmIGdldEV4dGVuc2lvbnMoKS5pc05WSURJQSgpKSB7CiAgICAgICAgIDo6Z2xSZWFkUGl4
ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIHBpeGVs
cyk7CiAjaWYgVVNFKEFDQ0VMRVJBVEUpCiAgICAgICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpAQCAt
MTEwLDcgKzExMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252
ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgsIGludCB5LCBpbnQKICAgICAgICAgOjpnbFJlYWRQ
aXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84
XzhfUkVWLCBwaXhlbHMpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5h
bHBoYSkKKyAgICBpZiAoIWF0dHJzLmFscGhhKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJv
bVBpeGVscyh3aWR0aCwgaGVpZ2h0LCBwaXhlbHMpOwogI2VuZGlmCiB9CkBAIC0xMjIsMTcgKzEy
NCwxOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoKQogCiBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQog
eworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogICAgIGNvbnN0IGludCB3
aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBjb25zdCBpbnQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQo
KTsKICAgICBHTHVpbnQgY29sb3JGb3JtYXQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0g
MDsKLSAgICBpZiAobV9hdHRycy5hbHBoYSkgeworICAgIGlmIChhdHRycy5hbHBoYSkgewogICAg
ICAgICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0JBODsKICAgICAgICAgY29sb3JGb3Jt
YXQgPSBHTF9SR0JBOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1h
dCA9IEdMX1JHQjg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCOwogICAgIH0KLSAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkgewogICAgICAgICAvLyBXZSBkb24ndCBhbGxvdyB0aGUgbG9n
aWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVwdGggaXMgbm90LgogICAgICAgICAv
LyBTZWUgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcy4KIApAQCAtMTQ5LDcg
KzE1Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgfQogCiAgICAgLy8gUmVzaXplIG11bHRpc2FtcGxlIEZCTy4KLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAg
ICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFY
X1NBTVBMRVNfRVhULCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRo
YW4gNCBzYW1wbGVzIGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8K
QEAgLTE2MywxMiArMTY2LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9z
KGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVs
dGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxD
b2xvckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAjZW5kaWYKICAgICAgICAgOjpnbEZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfQ09MT1JfQVRUQUNITUVO
VDBfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwot
ICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAg
aWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIDo6Z2xCaW5k
UmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNh
bXBsZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVDb3VudCwgaW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIDo6
Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5D
SUxfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0
aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAg
ICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQs
IEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwog
ICAgICAgICB9CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZF
Ul9FWFQsIDApOwpAQCAtMjExLDcgKzIxNCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgYXR0YWNoRGVwdGhBbmRTdGVuY2ls
QnVmZmVySWZOZWVkZWQoaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQp
OwogCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHRydWU7Ci0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICA6OmdsQmluZEZy
YW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgIGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAg
ICBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI1LDEyICsyMjgsMTQgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1
aW50IGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7
Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAg
ICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkp
IHsKICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwg
bV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZUVY
VChHTF9SRU5ERVJCVUZGRVJfRVhULCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgs
IGhlaWdodCk7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgIGlmIChhdHRy
cy5zdGVuY2lsKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdM
X0ZSQU1FQlVGRkVSX0VYVCwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVG
RkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5kZXB0
aCkKKyAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9F
WFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAg
OjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7CiAgICAgfQpA
QCAtNDgyLDIxICs0ODcsMjMgQEAgRXh0ZW5zaW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0
RXh0ZW5zaW9ucygpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRhKQogeworICAgIGF1dG8gYXR0cnMg
PSBjb250ZXh0QXR0cmlidXRlcygpOworCiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGds
Rmx1c2ggY2FsbHMgd2hlbiB0aGUgZHJpdmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBh
bGwgcHJldmlvdXMgcmVuZGVyaW5nIGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5n
IHBpeGVscy4KICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRmx1c2goKTsKLSAg
ICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2Ft
cGxlRkJPKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09
IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vz
c2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFt
ZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAg
ICAgOjpnbEZsdXNoKCk7CiAgICAgfQogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYm
IG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50
aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1f
bXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5h
bHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8IGZvcm1hdCA9PSBH
cmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYgKG1fc3RhdGUuYm91bmRGQk8gPT0gbV9mYm8gfHwg
KG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZC
TykpKQorICAgIGlmICghYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRl
LmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAgICAgICAgIHdpcGVBbHBoYUNoYW5uZWxGcm9tUGl4
ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7CiAj
ZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3Bw
CmluZGV4IDQyYmM4ZTE3ZTA2MjE4MWQ3MGUwNGY3YWMyYzkxYmNhMzgzMWQ5MjUuLjg1NzVlZmUw
NjYzOWQ0ZTE3ZmQxODdiZjJiZmZlOWQ2MjBlMmU5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1v
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMTQxLDE5ICsxNDEsMjMgQEAgc3RhdGlj
IHVpbnQ2NF90IG5hbWVIYXNoRm9yU2hhZGVyKGNvbnN0IGNoYXIqIG5hbWUsIHNpemVfdCBsZW5n
dGgpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0
IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikKIHsKKyAgICBhdXRvIGF0dHJzID0g
Y29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdl
dEV4dGVuc2lvbnMoKTsKLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJz
LnN0ZW5jaWwpIHsKICAgICAgICAgaWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMocGFja2VkRGVwdGhT
dGVuY2lsRXh0ZW5zaW9uKSkgewogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVk
KHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbik7CiAgICAgICAgICAgICAvLyBGb3JjZSBkZXB0
aCBpZiBzdGVuY2lsIGlzIHRydWUuCi0gICAgICAgICAgICBtX2F0dHJzLmRlcHRoID0gdHJ1ZTsK
KyAgICAgICAgICAgIGF0dHJzLmRlcHRoID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAg
ICAgICBtX2F0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgICAgIGF0dHJzLnN0ZW5jaWwg
PSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgIH0KLSAg
ICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKLSAgICAgICAgaWYgKCFleHRlbnNpb25zLnN1cHBv
cnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8IGlzR0xFUzJDb21wbGlh
bnQoKSkKLSAgICAgICAgICAgIG1fYXR0cnMuYW50aWFsaWFzID0gZmFsc2U7Ci0gICAgICAgIGVs
c2UKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmICFtX2lzRm9yV2ViR0wyKSB7CisgICAgICAg
IGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1w
bGUiKSkgeworICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CisgICAgICAgICAg
ICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAg
ICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNh
bXBsZSIpOwogICAgIH0KIH0KQEAgLTE3NSw3ICsxNzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZm
ZXIpCiAKICAgICByZWFkUmVuZGVyaW5nUmVzdWx0cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMp
OwogCi0gICAgaWYgKCFtX2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkgeworICAgIGlmICghY29u
dGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVkQWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQpIHsKICAgICAgICAgICAgIC8vIFByZW11bHRp
cGx5IGFscGhhLgogICAgICAgICAgICAgcGl4ZWxzW2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4
ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAyNTUpOwpAQCAtMjAxLDcgKzIwNSw3IEBAIFJl
ZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNU
b0ltYWdlRGF0YSgpCiB7CiAgICAgLy8gUmVhZGluZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxk
IGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hpY2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBp
ZiAobV9hdHRycy5wcmVtdWx0aXBsaWVkQWxwaGEpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVz
KCkucHJlbXVsdGlwbGllZEFscGhhKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1
dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVhdGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwg
bV9jdXJyZW50SGVpZ2h0KSk7CkBAIC0yMzIsNyArMjM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6cHJlcGFyZVRleHR1cmUoKQogICAgIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgc2NvcGVk
RGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFMU0UpOwogI2VuZGlmCiAKLSAgICBpZiAobV9hdHRycy5h
bnRpYWxpYXMpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAg
ICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCkBAIC0yNjUsNyArMjY5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBm
YWxzZTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJp
YnV0ZXMoKS5hbnRpYWxpYXMpIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vz
c2FyeSgpOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNE
OjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBA
IC0zMjgsMTQgKzMzMiwxNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3
aWR0aCwgaW50IGhlaWdodCkKICAgICA6OmdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKICAgICA6
OmdsR2V0Qm9vbGVhbnYoR0xfQ09MT1JfV1JJVEVNQVNLLCBjb2xvck1hc2spOwogICAgIDo6Z2xD
b2xvck1hc2soR0xfVFJVRSwgR0xfVFJVRSwgR0xfVFJVRSwgR0xfVFJVRSk7Ci0gICAgaWYgKG1f
YXR0cnMuZGVwdGgpIHsKKworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwor
CisgICAgaWYgKGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIDo6Z2xHZXRGbG9hdHYoR0xfREVQVEhf
Q0xFQVJfVkFMVUUsICZjbGVhckRlcHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNs
ZWFyRGVwdGgoMSk7CiAgICAgICAgIDo6Z2xHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ss
ICZkZXB0aE1hc2spOwogICAgICAgICA6OmdsRGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBj
bGVhck1hc2sgfD0gR0xfREVQVEhfQlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIDo6Z2xHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgOjpn
bENsZWFyU3RlbmNpbCgwKTsKICAgICAgICAgOjpnbEdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJ
VEVNQVNLLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC0zNDks
MTEgKzM1NiwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCkKIAogICAgIDo6Z2xDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29s
b3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwogICAgIDo6Z2xDb2xvck1hc2so
Y29sb3JNYXNrWzBdLCBjb2xvck1hc2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsK
LSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgOjpn
bERlcHRoTWFzayhkZXB0aE1hc2spOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbChjbGVh
clN0ZW5jaWwpOwogICAgICAgICA6OmdsU3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3Rl
bmNpbE1hc2spOwogICAgICAgICA6OmdsU3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVu
Y2lsTWFza0JhY2spOwpAQCAtNDgxLDcgKzQ4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVy
CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAg
ICAgZmJvID0gKG1fYXR0cnMuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsK
KyAgICAgICAgZmJvID0gKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNh
bXBsZUZCTyA6IG1fZmJvKTsKICAgICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAg
ICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVCh0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3Rh
dGUuYm91bmRGQk8gPSBmYm87CkBAIC03NDQsMjQgKzc1MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpjb21waWxlU2hhZGVyRGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHks
IEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBj
b250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRl
LmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2Ft
cGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1f
ZmJvKTsKICAgICB9CiAgICAgOjpnbENvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVy
bmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAg
aWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVG
Qk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZS
QU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Y29weVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNE
aW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0Rz
aXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211
bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNh
bXBsZUZCTykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJl
Y3QoeCwgeSwgd2lkdGgsIGhlaWdodCkpOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhU
KEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICA6Omds
Q29weVRleFN1YkltYWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwg
d2lkdGgsIGhlaWdodCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91
bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFt
ZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVG
Qk8pOwogfQogCkBAIC0xMTI4LDExICsxMTM5LDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRBdHRyaWJMb2NhdGlvbkRpcmVjdChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMK
ICAgICByZXR1cm4gOjpnbEdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5hbWUudXRmOCgpLmRh
dGEoKSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAgIHJldHVybiBtX2F0dHJzOwotfQotCiBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKQog
ewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMRVMuY3BwCmluZGV4IDcwYTIwZDUwYzM1MjFhNjEyM2U2ZWZhZjFmNDc2OGY2NDk1Y2Rl
NWMuLjM2NjgyMWNhNmZkODMzODE1YjNiODNhYzJkZjc1MzgwMjYxNDg2MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTEVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKQEAgLTUwLDEwICs1MCwxMyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpyZWxlYXNlU2hhZGVyQ29tcGlsZXIoKQogdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIHZv
aWQqIGRhdGEpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBhdXRvIGF0dHJp
YnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUg
dHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0aGUgZHJpdmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAg
ICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5nIGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSBy
ZWFkaW5nIHBpeGVscy4KICAgICA6OmdsRmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0
dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZC
TykgewogICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgs
IHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgbV9mYm8pOwogICAgICAgICA6OmdsRmx1c2goKTsKQEAgLTYxLDcgKzY0LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKIAogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRo
LCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRy
aWJ1dGVzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8p
CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1w
bGVGQk8pOwogfQogCkBAIC04MCw3ICs4Myw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6
ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdM
dWludCBjb2xvckZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMu
YWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICAg
ICAgY29sb3JGb3JtYXQgPSBHTF9SR0JBOwogICAgIH0gZWxzZSB7CkBAIC05MCw3ICs5NSw3IEBA
IGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUp
CiAKICAgICAvLyBXZSBkb24ndCBhbGxvdyB0aGUgbG9naWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1
aXJlZCBhbmQgZGVwdGggaXMgbm90LgogICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFs
aWRhdGVBdHRyaWJ1dGVzLgotICAgIGJvb2wgc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1ZmZl
ciA9IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgJiYgZ2V0RXh0ZW5zaW9ucygp
LnN1cHBvcnRzKCJHTF9PRVNfcGFja2VkX2RlcHRoX3N0ZW5jaWwiKTsKKyAgICBib29sIHN1cHBv
cnRQYWNrZWREZXB0aFN0ZW5jaWxCdWZmZXIgPSAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJp
YnV0ZXMuZGVwdGgpICYmIGdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3BhY2tlZF9k
ZXB0aF9zdGVuY2lsIik7CiAKICAgICAvLyBSZXNpemUgcmVndWxhciBGQk8uCiAgICAgYm9vbCBt
dXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMTE3LDI5ICsxMjIsMjkgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogCiAg
ICAgRXh0ZW5zaW9uczNET3BlbkdMRVMmIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRlbnNp
b25zM0RPcGVuR0xFUyY+KGdldEV4dGVuc2lvbnMoKSk7Ci0gICAgaWYgKGV4dGVuc2lvbnMuaXNJ
bWFnaW5hdGlvbigpICYmIG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGV4dGVuc2lvbnMu
aXNJbWFnaW5hdGlvbigpICYmIGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIEdMaW50
IG1heFNhbXBsZUNvdW50OwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpN
QVhfU0FNUExFU19JTUcsICZtYXhTYW1wbGVDb3VudCk7IAogICAgICAgICBHTGludCBzYW1wbGVD
b3VudCA9IHN0ZDo6bWluKDgsIG1heFNhbXBsZUNvdW50KTsKIAogICAgICAgICBleHRlbnNpb25z
LmZyYW1lYnVmZmVyVGV4dHVyZTJETXVsdGlzYW1wbGVJTUcoR0xfRlJBTUVCVUZGRVIsIEdMX0NP
TE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBtX3RleHR1cmUsIDAsIHNhbXBsZUNvdW50
KTsKIAotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAgICAg
ICAgICAgICAvLyBVc2UgYSAyNCBiaXQgZGVwdGggYnVmZmVyIHdoZXJlIHdlIGtub3cgd2UgaGF2
ZSBpdC4KICAgICAgICAgICAgIGlmIChzdXBwb3J0UGFja2VkRGVwdGhTdGVuY2lsQnVmZmVyKSB7
CiAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBt
X2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5yZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgR0xf
REVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlm
IChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNp
bCkKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0
aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAg
ICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6
OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFD
SE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAg
ICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7
CiAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRp
c2FtcGxlKEdMX1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIEdMX1NURU5DSUxfSU5ERVg4LCB3
aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJV
RkZFUiwgbV9zdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5k
ZXB0aCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5E
RVJCVUZGRVIsIG1fZGVwdGhCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25z
LnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNv
dW50LCBHTF9ERVBUSF9DT01QT05FTlQxNiwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAg
ICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfREVQ
VEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyKTsKQEAgLTE0OCwy
MiArMTUzLDIyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IElu
dFNpemUmIHNpemUpCiAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJC
VUZGRVIsIDApOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5j
aWwgfHwgYXR0cmlidXRlcy5kZXB0aCkgewogICAgICAgICAgICAgLy8gVXNlIGEgMjQgYml0IGRl
cHRoIGJ1ZmZlciB3aGVyZSB3ZSBrbm93IHdlIGhhdmUgaXQuCiAgICAgICAgICAgICBpZiAoc3Vw
cG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1ZmZlcikgewogICAgICAgICAgICAgICAgIDo6Z2xCaW5k
UmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAg
ICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xf
REVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlm
IChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNp
bCkKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0
aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAg
ICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6
OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFD
SE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAg
ICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7
CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJV
RkZFUiwgR0xfU1RFTkNJTF9JTkRFWDgsIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAg
ICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX1NURU5D
SUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgICAg
ICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKSB7CiAgICAgICAgICAgICAgICAgICAgIDo6
Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlcik7CiAgICAg
ICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwg
R0xfREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgICAg
ICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FU
VEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlcik7CkBAIC0yMjIsOCArMjI3
LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcygpCiB7CiAg
ICAgdmFsaWRhdGVEZXB0aFN0ZW5jaWwoIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwog
Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMo
IkdMX0lNR19tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKSkKLSAgICAgICAgbV9hdHRy
cy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmli
dXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzICYmICFnZXRFeHRlbnNpb25z
KCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKSkgewor
ICAgICAgICBhdHRyaWJ1dGVzLmFudGlhbGlhcyA9IGZhbHNlOworICAgICAgICBzZXRDb250ZXh0
QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKKyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKQpAQCAtMjQ4
LDEwICsyNTcsMTAgQEAgRXh0ZW5zaW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5z
aW9ucygpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENBKQotUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGlj
c0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250
ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNE
OjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9u
IGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0
V2luZG93LgotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRv
dykKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2lu
ZG93KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICBzdGF0aWMgYm9vbCBpbml0
aWFsaXplZCA9IGZhbHNlOwpAQCAtMjY4LDE3ICsyNzcsMTggQEAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcwogICAgIHJldHVybiBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRl
cywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0Q6Okdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBI
b3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBH
cmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKLSAgICA6IG1fYXR0cnMoYXR0cmlidXRl
cykKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
REF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpE
ZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQp
CisgICAgOiBHcmFwaGljc0NvbnRleHQzREJhc2UoYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNo
YXJlZENvbnRleHQpCiAgICAgLCBtX2NvbXBpbGVyKGlzR0xFUzJDb21wbGlhbnQoKSA/IFNIX0VT
U0xfT1VUUFVUIDogU0hfR0xTTF9DT01QQVRJQklMSVRZX09VVFBVVCkKLSAgICAsIG1fcHJpdmF0
ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZT4odGhpcywgcmVuZGVyU3R5bGUp
KQorICAgICwgbV9wcml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0
aGlzLCBkZXN0aW5hdGlvbikpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAh
c2hhcmVkQ29udGV4dCk7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgCiAgICAgdmFs
aWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7
IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChy
ZW5kZXJTdHlsZSA9PSBSZW5kZXJPZmZzY3JlZW4pIHsKKyAgICBpZiAoZGVzdGluYXRpb24gPT0g
RGVzdGluYXRpb246Ok9mZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRv
IHJlbmRlciBpbnRvLgogICAgICAgICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAg
ICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwpAQCAtMjkz
LDE2ICszMDMsMTYgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICAgICAgICAgOjpnbEJpbmRG
cmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICAKICAgICAgICAgbV9z
dGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwotICAgICAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkpCisgICAgICAgIGlmICghYXR0cmli
dXRlcy5hbnRpYWxpYXMgJiYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRo
KSkKICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgIAogICAgICAgICAvLyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCi0g
ICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5h
bnRpYWxpYXMpIHsKICAgICAgICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVGQk8pOwogICAgICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9t
dWx0aXNhbXBsZUZCTzsKICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211
bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8
fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBh
dHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAg
LTM0MCwxMyArMzUwLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0Qo
KQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xEZWxldGVUZXh0dXJlcygx
LCAmbV90ZXh0dXJlKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKworICAgIGF1dG8g
YXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cmlidXRlcy5h
bnRpYWxpYXMpIHsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRy
cy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRl
cHRoKQogICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEs
ICZtX211bHRpc2FtcGxlRkJPKTsKICAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9hdHRycy5z
dGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgfQogICAgIDo6Z2xEZWxldGVGcmFtZWJ1
ZmZlcnMoMSwgJm1fZmJvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVy
ZU1hcHBlci5jcHAKaW5kZXggZmFiODA3YjdkOGMxYTY4YjU5ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0
Ny4uYjIyZGY2NzJmZTYwNzlkNGYyMGQ3YzMxZTE5MThkODVmMzI2YTI5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNE
VGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAgLTkxLDEwICs5MSwx
MCBAQCBzdGF0aWMgRGVxdWU8R3JhcGhpY3NDb250ZXh0M0QqLCBNYXhBY3RpdmVDb250ZXh0cz4m
IGFjdGl2ZUNvbnRleHRzKCkKICAgICByZXR1cm4gc19hY3RpdmVDb250ZXh0czsKIH0KIAotUmVm
UHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBH
cmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhp
Y3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29u
dGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVu
dGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRo
ZSBIb3N0V2luZG93LgotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9z
dFdpbmRvdykKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9I
b3N0V2luZG93KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHN0YXRpYyBib29sIGlu
aXRpYWxpemVkID0gZmFsc2U7CkBAIC0xMTgsNyArMTE4LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhp
Y3NDb250ZXh0M0Qgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQg
Y29udGV4dCBvbiB0aGlzIHRocmVhZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcg
R3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsK
KyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmli
dXRlcywgaG9zdFdpbmRvdywgZGVzdGluYXRpb24pKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYg
VVNFKE9QRU5HTF9FUykKICAgICAvLyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNh
bm5vdCBiZSBwcm92aWRlZC4KQEAgLTEzMSwyMSArMTMxLDIxIEBAIFJlZlB0cjxHcmFwaGljc0Nv
bnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMKIH0KIAogI2lmIFVTRShBTkdMRSkKLUdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0Nv
bnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRv
dyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3ND
b250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCitHcmFw
aGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRp
b24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDog
R3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250
ZXh0KQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQp
OwogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVl
PE5pY29zaWE6OkdDM0RBTkdMRUxheWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworICAgIG1fbmlj
b3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVyPigqdGhp
cywgZGVzdGluYXRpb24pOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5p
cXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsK
KyAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxh
dGZvcm1MYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKICNlbmRpZgogICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogCi0KICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBhdHRyaWJ1dGVz
ID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2
YWxpZGF0aW9uLgogCi0gICAgaWYgKHJlbmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVlbikgewor
ICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7CiAgICAgICAg
IC8vIENyZWF0ZSBhIHRleHR1cmUgdG8gcmVuZGVyIGludG8uCiAgICAgICAgIGdsOjpHZW5UZXh0
dXJlcygxLCAmbV90ZXh0dXJlKTsKICAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVf
UkVDVEFOR0xFX0FOR0xFLCBtX3RleHR1cmUpOwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRyaWJ1dGVzLCBIb3MKICNlbmRpZgogCiAgICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2Ft
cGxlIEZCTy4KLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChh
dHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICAgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygx
LCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91
bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5z
dGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRl
cmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgogICAgICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICAgICAgbV9z
dGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgICAgICAgICBp
ZiAobV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQogICAg
ICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKLSAg
ICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRl
cy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0
ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8
IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0
dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIwMywyMSArMjAz
LDIyIEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRl
eHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwg
MCwgMCk7CiB9CiAjZWxzZQotR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdy
YXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCog
c2hhcmVkQ29udGV4dCkKLSAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmli
dXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0Nv
bnRleHQzREJhc2UoYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNF
KE5JQ09TSUEpCi0gICAgbV9uaWNvc2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RM
YXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlx
dWU8Tmljb3NpYTo6R0MzRExheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2Vsc2UKLSAgICBt
X3RleG1hcExheWVyID0gbWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+
KCp0aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4
dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2VuZGlm
CiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygp
OworICAgIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZl
IGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVu
ZGVyT2Zmc2NyZWVuKSB7CisgICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZz
Y3JlZW4pIHsKICAgICAgICAgLy8gQ3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KICAg
ICAgICAgOjpnbEdlblRleHR1cmVzKDEsICZtX3RleHR1cmUpOwogICAgICAgICA6OmdsQmluZFRl
eHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90ZXh0dXJlKTsKQEAgLTI0OSwyNiArMjUwLDI1IEBAIEdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCAwKTsKICNlbmRpZgogCi0KICAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJP
LgotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0
ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX211
bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9
IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAm
bV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICAvLyBCaW5kIGNhbnZhcyBGQk8uCiAgICAgICAgICAgICBnbEJpbmRGcmFt
ZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAg
ICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAg
ICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0
aCkKICAgICAgICAgICAgICAgICBnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIp
OwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZt
X3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2ls
IHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8
IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDEsNyArMzAx
LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICAgICB9CiAjZWxzZQogICAgIC8vIEFkanVz
dCB0aGUgc2hhZGVyIHNwZWNpZmljYXRpb24gZGVwZW5kaW5nIG9uIHdoZXRoZXIgR0xFUzMgKGku
ZS4gV2ViR0wyIHN1cHBvcnQpIHdhcyByZXF1ZXN0ZWQuCi0gICAgbV9jb21waWxlciA9IEFOR0xF
V2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBtX2F0dHJzLmlzV2ViR0wyID8gU0hfV0VCR0wy
X1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsKKyAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlk
Z2UoU0hfRVNTTF9PVVRQVVQsIGF0dHJpYnV0ZXMuaXNXZWJHTDIgPyBTSF9XRUJHTDJfU1BFQyA6
IFNIX1dFQkdMX1NQRUMpOwogI2VuZGlmCiAKICAgICAvLyBBTkdMRSBpbml0aWFsaXphdGlvbi4K
QEAgLTM0MCwxMiArMzQwLDE0IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogICAgICAgICBnbDo6RGVsZXRlVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUp
OwogI2VuZGlmCiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBhdXRvIGF0dHJp
YnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFs
aWFzKSB7CiAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxl
Q29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
ICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVw
dGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9t
dWx0aXNhbXBsZUZCTyk7Ci0gICAgfSBlbHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRy
cy5kZXB0aCkgeworICAgIH0gZWxzZSBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0
ZXMuZGVwdGgpIHsKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgICAgICBpZiAobV9kZXB0aEJ1ZmZl
cikKICAgICAgICAgICAgIGdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZlcik7
CkBAIC0zODIsMTIgKzM4NCwxNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKICAgICAgICAgOjpnbERlbGV0ZVRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJl
KTsKICNlbmRpZgogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgYXV0byBhdHRy
aWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlh
bGlhcykgewogICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBs
ZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgp
CiAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURl
cHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1f
bXVsdGlzYW1wbGVGQk8pOwotICAgIH0gZWxzZSBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1
dGVzLmRlcHRoKSB7CiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgaWYgKG1fZGVwdGhCdWZm
ZXIpCiAgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIp
OwpAQCAtNDE1LDE0ICs0MTksNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4
dDNEKCkKIH0KICNlbmRpZiAvLyBVU0UoQU5HTEUpCiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnNldENvbnRleHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJh
Y2s+KQotewotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxs
YmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQotewotfQotCiBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQoKQogewogI2lmIFVTRShOSUNP
U0lBKQpAQCAtNDM2LDcgKzQzMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BV
U3RhdHVzKCkKIHsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRl
eHQzRDo6cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIEdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QK
IHsKICNpZiBVU0UoTklDT1NJQSkKICAgICByZXR1cm4gbV9uaWNvc2lhTGF5ZXItPnBsYXRmb3Jt
Q29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVy
LmNwcAppbmRleCA2NjMyMzE1Njk1YmEyMWMyNjdkMTU1OTMyZWJhOTE0N2ZiNjZhZTA2Li42ODNm
NDVmOTNjMjg5MzNlNzJjM2I2ZjU5M2VhMTQ5MmM3NWVlMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9y
bUxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcApAQCAtMzAsMTQgKzMwLDE0IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjpU
ZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQs
IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1RleHR1cmVNYXBw
ZXJHQzNEUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBo
aWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVz
dGluYXRpb24pCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKLSAgICBzd2l0Y2ggKHJlbmRl
clN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgor
ICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpE
ZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6
Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9y
Q29tcG9zaXRpbmcoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTYxLDcgKzYxLDcgQEAgYm9v
bCBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAg
ICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6OnBsYXRm
b3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIFRleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9n
bENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKaW5kZXggZTZmMDlj
ODc5ODU0ODYzMmVlNGIwYWE1YTU2MzA2MTVhMjRhMzc4OS4uYjhlODFmMTFiMjE4YzA0ZTA2NTQ0
MWZiYjY5Y2RhNGY2OWUzZjVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBs
YXRmb3JtTGF5ZXIuaApAQCAtMzQsMTEgKzM0LDExIEBAIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyUHJveHk7CiBjbGFzcyBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIgOiBw
dWJsaWMgUGxhdGZvcm1MYXllciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJs
aWM6Ci0gICAgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNE
JiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBUZXh0dXJlTWFwcGVyR0Mz
RFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmLCBHcmFwaGljc0NvbnRleHQzRDo6RGVz
dGluYXRpb24pOwogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcigp
OwogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNz
Q29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOworICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJ
Q1MpCiAgICAgUmVmUHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IHByb3h5KCkg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODYxNTliOGZhNzRlMjRmMWFkNjJhMmM4Mzk2MTgxMDE1
YzVhMjQ5Yi4uZTM1NGFkYmEyNGVhZDkxYzkyMDEyMWVjMjU2MTMyNzdhMTExMjhkMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViR0xdIEFkZCBhIHB1cmUgdmlydHVhbCBiYXNlIGNsYXNzIGZvciBH
cmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA1NjA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIGEgdGVzdCB0aGF0IGhhcyBleGlzdGluZyBjb3ZlcmFnZSBpbiB0aGUg
V2ViR0wgdGVzdCBzdWl0ZS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVm
ZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sOiBSZW1v
dmVkLgorCiAyMDE5LTEyLTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT046IFsgQ2F0YWxpbmEgd2sxIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy5odG1sIGlzIGZh
aWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVm
ZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGU3ZmRmZTg3NzZmMjhhOWNiM2UwNjQzNzU5YzUx
NzEwMGVmMGM3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNo
bWVudC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2NTkgKzAsMCBAQAotVGVzdCBm
cmFtZWJ1ZmZlciBvYmplY3QgYXR0YWNobWVudCBiZWhhdmlvcnMKLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLURpbWVuc2lvbnMgMCB4IDAKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1Q
QVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVw
dGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNp
bCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5n
IERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NU
RU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcg
REVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVO
Q0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0
ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNv
bmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3Rl
bmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBj
b25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0
ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZv
cm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3Jt
YXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3Jt
YXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIK
LVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVS
QlVGRkVSX1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1Mg
Z2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVG
RkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJ
WkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkg
aXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMCB4IDIKLUNyZWF0
ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVw
dGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRB
Q0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVu
Y2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRo
U3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBk
ZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRo
U3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwg
dGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhT
dGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRo
U3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZm
ZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVy
IHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVy
IHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3Rl
bmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJO
QUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkgaXMgMAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNT
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLQotRGltZW5zaW9ucyAyIHggMAotQ3JlYXRlIHJlbmRlcmJ1
ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUzRENvbnRleHQoKSBpcyBub24tbnVsbC4KLVBBU1MgY29s
b3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aEJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFj
aCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5j
aWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcg
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVz
aW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNp
bCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVz
aW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5j
aWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1B
dHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNh
dXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2gg
ZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBj
YXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNo
IGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGlu
dGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRl
cm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRl
cm5hbGZvcm1hdCA9PSBSR0I1NjUKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRl
cmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVy
UGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1B
VCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQ
SEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMiB4IDIKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1Q
QVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGds
LlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFt
ZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2
IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2IGlzIHRy
dWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVlCi1B
dHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVw
dGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNp
bCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBh
cmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9C
SVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+
PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDgg
aXMgdHJ1ZQotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1
c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBk
ZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVz
aW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0
ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBj
YXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNo
IGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNv
bG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJ
VFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGds
LkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1
ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNT
IGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQXR0YWNoIGNv
bG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29s
b3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklU
UykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
QkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVl
Ci1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIGlzIHRydWUKLVBBU1Mg
Z2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggY29s
b3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMp
ICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJM
VUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQot
UEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGds
LmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQ3JlYXRlIGFuZCBh
dHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9IRUlHSFQpIGlzIGhlaWdodAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBn
bC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5E
RVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5f
U0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpF
KSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFKSA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJ
TF9TSVpFKSA+IDAgaXMgdHJ1ZQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVF
Tl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVy
KGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRF
UFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxf
QklUUykgPj0gOCBpcyB0cnVlCi0KLXRlc3Q6IERFUFRIX0NPTVBPTkVOVDE2IHZzIERFUFRIX1NU
RU5DSUwgd2l0aCBkZWxldGUKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi10ZXN0IGRlbGV0aW5nIHNl
Y29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVzdDog
REVQVEhfQ09NUE9ORU5UMTYgdnMgREVQVEhfU1RFTkNJTCB3aXRoIHVuYmluZAotUEFTUyBzaG91
bGQgYmUgZ3JlZW4KLXRlc3QgdW5iaW5kaW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJf
Q09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQVEhfU1RFTkNJTCB2cyBERVBUSF9DT01Q
T05FTlQxNiB3aXRoIGRlbGV0ZQotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgZGVsZXRpbmcg
c2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgotCi10ZXN0
OiBERVBUSF9TVEVOQ0lMIHZzIERFUFRIX0NPTVBPTkVOVDE2IHdpdGggdW5iaW5kCi1QQVNTIHNo
b3VsZCBiZSBncmVlbgotdGVzdCB1bmJpbmRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZF
Ul9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIHNob3VsZCBiZSBncmVlbgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQotQXR0
YWNobWVudHMgb2YgZGlmZmVyZW50IHNpemVzIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX0RJTUVOU0lPTlMgKE9wZW5HTCBFUyAyLjAgNC40LjUpCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9D
T01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBz
aG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1F
QlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMg
b3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFN
RUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01Q
TEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRF
Ci0KLVdyb25nIHN0b3JhZ2UgdHlwZSBmb3IgdHlwZSBvZiBhdHRhY2htZW50IGJlIEZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRB
Q0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3
YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLQotMCBzaXplIGF0dGFjaG1lbnQgc2hvdWxkIGJlIEZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQotTm8gYXR0YWNobWVudHMgc2hvdWxkIGJl
IElOQ09NUExFVEVfRlJBTUVCVUZGRVJfTUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4w
IDQuNC41KQotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUg
RlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVE
Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBi
ZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi0KLVRlc3QgZHJhd2luZyBv
ciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZG
RVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
Uikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVC
VUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi0K
LURyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxk
IGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGRyYXdBcnJheXMgd2l0aCBp
bmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiByZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0
ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY29weVRleEltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJh
bWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IGNsZWFyIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFT
UyBmYm8yID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRF
X01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotCi1EcmF3aW5n
IG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0
ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0
ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogcmVhZFBpeGVscyBmcm9tIGluY29tcGxldGUgZnJhbWVi
dWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElP
TiA6IGNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29weVRleFN1Yklt
YWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjbGVhciB3aXRoIGlu
Y29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSBpcyBub24tbnVsbC4KLQotRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21w
bGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogZHJhd0FycmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJl
YWRQaXhlbHMgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4SW1h
Z2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhTdWJJbWFn
ZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY2xlYXIgd2l0aCBpbmNv
bXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
ZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI1MmRhMTU0ZDk4MDE0MTM4YmJjNjU1ODhjMjNhODNiOGQ3NDhh
MjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDUzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93
ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVz
dC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0
aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVy
cm9yc1RvQ29uc29sZUVuYWJsZWQoZmFsc2UpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7
Ci12YXIgZ2w7Ci12YXIgZmJvOwotdmFyIGRlcHRoQnVmZmVyOwotdmFyIHN0ZW5jaWxCdWZmZXI7
Ci12YXIgZGVwdGhTdGVuY2lsQnVmZmVyOwotdmFyIGNvbG9yQnVmZmVyOwotdmFyIHdpZHRoOwot
dmFyIGhlaWdodDsKLQotY29uc3QgQUxMT1dfQ09NUExFVEUgICAgICAgICAgICAgID0gMHgwMTsK
LWNvbnN0IEFMTE9XX1VOU1VQUE9SVEVEICAgICAgICAgICA9IDB4MDI7Ci1jb25zdCBBTExPV19J
TkNPTVBMRVRFX0FUVEFDSE1FTlQgPSAweDA0OwotCi1mdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVy
Rm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICAvLyBJZiB0aGUgZnJh
bWVidWZmZXIgaXMgaW4gYW4gZXJyb3Igc3RhdGUgZm9yIG11bHRpcGxlIHJlYXNvbnMsCi0gICAg
Ly8gd2UgY2FuJ3QgZ3VhcmFudGVlIHdoaWNoIG9uZSB3aWxsIGJlIHJlcG9ydGVkLgotICAgIHZh
ciBzdGF0dXMgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAg
ICB2YXIgc3RhdHVzQWxsb3dlZCA9ICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfQ09NUExFVEUp
ICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpKSB8fAotICAgICAgICAgICAg
ICAgICAgICAgICAgKChhbGxvd2VkU3RhdHVzZXMgJiBBTExPV19VTlNVUFBPUlRFRCkgJiYgKHN0
YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCkpIHx8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCkg
JiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQpKTsKLSAg
ICB2YXIgbXNnID0gImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkICIgKyBzdGF0dXM7Ci0gICAgaWYgKHN0YXR1c0FsbG93ZWQpCi0gICAgICAgIHRlc3RQ
YXNzZWQobXNnKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLX0KLQotZnVu
Y3Rpb24gY2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQwLCBhdHRhY2htZW50MSkKLXsKLSAgICBp
ZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVC
VUZGRVJfQ09NUExFVEUpCi0gICAgICByZXR1cm47Ci0KLSAgICB2YXIgaGF2ZURlcHRoQnVmZmVy
ID0gYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdHRhY2htZW50MCA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfQVRUQUNI
TUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MSA9PSBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQ7Ci0gICAgdmFyIGhhdmVTdGVuY2lsQnVmZmVyID0gYXR0YWNo
bWVudDAgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hN
RU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOwotCi0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0
ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0
UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykg
Pj0gMTYiKTsKLQotICAgIGlmIChoYXZlRGVwdGhCdWZmZXIpCi0gICAgICBzaG91bGRCZVRydWUo
ImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOwotICAgIGVsc2UKLSAgICAg
IHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAiKTsKLQot
ICAgIGlmIChoYXZlU3RlbmNpbEJ1ZmZlcikKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFy
YW1ldGVyKGdsLlNURU5DSUxfQklUUykgPj0gOCIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJl
VHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOwotfQotCi1mdW5j
dGlvbiB0ZXN0QXR0YWNobWVudChhdHRhY2htZW50LCBidWZmZXIsIGFsbG93ZWRTdGF0dXNlcykK
LXsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsK
LSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBidWZm
ZXIpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJh
bWVidWZmZXJGb3JBbGxvd2VkU3RhdHVzZXMoYWxsb3dlZFN0YXR1c2VzKTsKLSAgICBpZiAoKGFs
bG93ZWRTdGF0dXNlcyAmIEFMTE9XX0NPTVBMRVRFKSA9PSAwKSB7Ci0gICAgICAgIGdsLmNsZWFy
KGdsLkNPTE9SX0JVRkZFUl9CSVQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OKTsKLSAgICAgICAgZ2wucmVhZFBpeGVscygwLCAw
LCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJh
eSh3aWR0aCAqIGhlaWdodCAqIDQpKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTik7Ci0gICAgfQotICAgIGNoZWNrQnVmZmVyQml0
cyhhdHRhY2htZW50KTsKLSAgICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYm8pOwotfQotCi1mdW5j
dGlvbiB0ZXN0QXR0YWNobWVudHMoYXR0YWNobWVudDAsIGJ1ZmZlcjAsIGF0dGFjaG1lbnQxLCBi
dWZmZXIxLCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1F
QlVGRkVSLCBmYm8pOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7
Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1l
bnQwLCBnbC5SRU5ERVJCVUZGRVIsIGJ1ZmZlcjApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwg
Z2wuTk9fRVJST1IpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVG
RkVSLCBhdHRhY2htZW50MSwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIxKTsKLSAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dl
ZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNlcyk7Ci0gICAgY2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1l
bnQwLCBhdHRhY2htZW50MSk7Ci0gICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLX0KLQot
ZnVuY3Rpb24gdGVzdENvbG9yUmVuZGVyYnVmZmVyKGludGVybmFsZm9ybWF0LCBhbGxvd2VkU3Rh
dHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIs
IGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZF
UiwgaW50ZXJuYWxmb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwotICAgIHRlc3RBdHRhY2htZW50KGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBjb2xvckJ1ZmZlciwgYWxsb3dlZFN0YXR1c2VzKTsKLX0KLQotZnVuY3Rpb24gdGVzdERlcHRo
U3RlbmNpbFJlbmRlcmJ1ZmZlcihhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25O
dWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAg
IGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aFN0ZW5jaWxCdWZmZXIp
OwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9T
VEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKLQotICAgIC8vIE9wZW5HTCBpdHNlbGYgZG9lc24ndCBzZWVtIHRvIGd1YXJhbnRlZSB0
aGF0IGUuZy4gYSAyIHggMAotICAgIC8vIHJlbmRlcmJ1ZmZlciB3aWxsIHJlcG9ydCAyIGZvciBp
dHMgd2lkdGggd2hlbiBxdWVyaWVkLgotICAgIGlmICghKGhlaWdodCA9PSAwICYmIHdpZHRoID4g
MCkpCi0gICAgICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpIiwgIndpZHRoIik7Ci0gICAgaWYgKCEo
d2lkdGggPT0gMCAmJiBoZWlnaHQgPiAwKSkKLSAgICAgICAgc2hvdWxkQmUoImdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQp
IiwgImhlaWdodCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSIsICJnbC5E
RVBUSF9TVEVOQ0lMIik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkiLCAiMCIpOwotICAg
IHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxV
RV9TSVpFKSIsICIwIik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSIsICIwIik7Ci0g
ICAgLy8gQXZvaWQgdmVyaWZ5aW5nIHRoZXNlIGZvciB6ZXJvLXNpemVkIHJlbmRlcmJ1ZmZlcnMg
Zm9yIHRoZSB0aW1lCi0gICAgLy8gYmVpbmcgc2luY2UgaXQgYXBwZWFycyB0aGF0IGV2ZW4gT3Bl
bkdMIGRvZXNuJ3QgZ3VhcmFudGVlIHRoZW0uCi0gICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQg
PiAwKSB7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCIpOwotICAg
ICAgICBzaG91bGRCZVRydWUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUpID4gMCIpOwotICAgIH0KLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICB0ZXN0QXR0YWNobWVudChnbC5E
RVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1
c2VzKTsKLSAgICB0ZXN0RGVwdGhTdGVuY2lsRGVwdGhTdGVuY2lsKCk7Ci19Ci0KLWZ1bmN0aW9u
IHRlc3REZXB0aFN0ZW5jaWxEZXB0aFN0ZW5jaWwoKQotewotICAgIGlmICghd2lkdGggfHwgIWhl
aWdodCkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIHRlc3RzID0gWwotICAg
ICAgICB7ICAgZmlyc3RGb3JtYXQ6IGdsLkRFUFRIX0NPTVBPTkVOVDE2LAotICAgICAgICAgICAg
Zmlyc3RBdHRhY2g6IGdsLkRFUFRIX0FUVEFDSE1FTlQsCi0gICAgICAgICAgICBzZWNvbmRGb3Jt
YXQ6IGdsLkRFUFRIX1NURU5DSUwsCi0gICAgICAgICAgICBzZWNvbmRBdHRhY2g6IGdsLkRFUFRI
X1NURU5DSUxfQVRUQUNITUVOVAotICAgICAgICB9LAotICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6
IGdsLkRFUFRIX1NURU5DSUwsCi0gICAgICAgICAgICBmaXJzdEF0dGFjaDogZ2wuREVQVEhfU1RF
TkNJTF9BVFRBQ0hNRU5ULAotICAgICAgICAgICAgc2Vjb25kRm9ybWF0OiBnbC5ERVBUSF9DT01Q
T05FTlQxNiwKLSAgICAgICAgICAgIHNlY29uZEF0dGFjaDogZ2wuREVQVEhfQVRUQUNITUVOVAot
ICAgICAgICB9Ci0gICAgXTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3Ro
OyArK2lpKSB7Ci0gICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbaWldOwotICAgICAgICBmb3IgKHZh
ciBqaiA9IDA7IGpqIDwgMjsgKytqaikgewotICAgICAgICAgICAgdmFyIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCk7Ci0gICAgICAgICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgp
OwotICAgICAgICAgICAgdmFyIGZpcnN0UmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQot
ICAgICAgICAgICAgZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoInRlc3Q6ICIgKyB3dHUu
Z2xFbnVtVG9TdHJpbmcoZ2wsIHRlc3QuZmlyc3RGb3JtYXQpICsgIiB2cyAiICsgd3R1LmdsRW51
bVRvU3RyaW5nKGdsLCB0ZXN0LnNlY29uZEZvcm1hdCkgKyAiIHdpdGggIiArIChqaiA/ICJ1bmJp
bmQiIDogImRlbGV0ZSIpKTsKLQotICAgICAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYm8pOwotICAgICAgICAgICAgLy8gYXR0YWNoIHRleHR1cmUgYXMgY29sb3IK
LSAgICAgICAgICAgIGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAg
ICAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHdpZHRoLCBoZWln
aHQsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgICAgICAgICAgZ2wu
ZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQw
LCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotCi0gICAgICAgICAgICAvLyBhdHRhY2ggZmlyc3QK
LSAgICAgICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBmaXJzdFJi
KTsKLSAgICAgICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0
ZXN0LmZpcnN0Rm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgICAgIGdsLmZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0ZXN0LmZpcnN0QXR0YWNoLCBnbC5SRU5E
RVJCVUZGRVIsIGZpcnN0UmIpOwotCi0gICAgICAgICAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAg
ICAgICAgICAgICAgICBnbC5lbmFibGUoZ2wuREVQVEhfVEVTVCk7Ci0gICAgICAgICAgICAgICAg
dmFyIHByb2dyYW0gPSB3dHUuc2V0dXBDb2xvclF1YWQoZ2wpOwotICAgICAgICAgICAgICAgIC8v
IFRlc3QgaXQgd29ya3MKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGds
LCBbMCwgMjU1LCAwLCAyNTVdKTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JR
dWFkKGdsLCBbMjU1LCAwLCAwLCAyNTVdKTsgIC8vIHNob3VsZCBub3QgZHJhdyBzaW5jZSBERVBU
SF9GVU5DID09IExFU1MKLSAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAw
LCAwLCB3aWR0aCwgaGVpZ2h0LCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7
Ci0KLSAgICAgICAgICAgICAgICB2YXIgc2Vjb25kUmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KTsKLQotICAgICAgICAgICAgICAgIC8vIGF0dGFjaCBzZWNvbmQKLSAgICAgICAgICAgICAgICBn
bC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgc2Vjb25kUmIpOwotICAgICAgICAg
ICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LnNlY29u
ZEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJS
ZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRlc3Quc2Vjb25kQXR0YWNoLCBnbC5SRU5ERVJC
VUZGRVIsIHNlY29uZFJiKTsKLQotICAgICAgICAgICAgICAgIGlmIChqaiA9PSAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAvLyBub3cgZGVsZXRlIGl0Ci0gICAgICAgICAgICAgICAgICBkZWJ1Zygi
dGVzdCBkZWxldGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAgICBn
bC5kZWxldGVSZW5kZXJidWZmZXIoc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAvLyB1bmJpbmQgaXQKLSAgICAgICAgICAgICAgICAgIGRlYnVn
KCJ0ZXN0IHVuYmluZGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAg
ICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5zZWNvbmRB
dHRhY2gsIGdsLlJFTkRFUkJVRkZFUiwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICAgICAgLy8gSWYgdGhlIGZpcnN0IGF0dGFjaG1lbnQgaXMgbm90IHJlc3RvcmVkIHRo
aXMgbWF5IGZhaWwKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUiknLCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKLSAg
ICAgICAgICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgICAg
ICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBhdHRhY2htZW50IGlzIG5vdCByZXN0b3JlZCB0aGlz
IG1heSBmYWlsLgotICAgICAgICAgICAgICAgIGdsLmNsZWFyKGdsLkRFUFRIX0JVRkZFUl9CSVQp
OwotICAgICAgICAgICAgICAgIHd0dS5kcmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFswLCAyNTUsIDAs
IDI1NV0pOwotICAgICAgICAgICAgICAgIHd0dS5kcmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFsyNTUs
IDAsIDAsIDI1NV0pOyAgLy8gc2hvdWxkIG5vdCBkcmF3IHNpbmNlIERFUFRIX0ZVTkMgPT0gTEVT
UwotICAgICAgICAgICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBo
ZWlnaHQsIFswLCAyNTUsIDAsIDI1NV0sICJzaG91bGQgYmUgZ3JlZW4iKTsKLSAgICAgICAgICAg
ICAgICBnbC5kaXNhYmxlKGdsLkRFUFRIX1RFU1QpOwotCi0gICAgICAgICAgICAgICAgaWYgKGpq
ID09IDEpIHsKLSAgICAgICAgICAgICAgICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRS
Yik7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnbC5k
ZWxldGVSZW5kZXJidWZmZXIoc2Vjb25kUmIpOwotICAgICAgICAgICAgZ2wuZGVsZXRlRnJhbWVi
dWZmZXIoZmJvKTsKLSAgICAgICAgfQotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLX0KLQotZGVzY3JpcHRpb24oIlRlc3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0
dGFjaG1lbnQgYmVoYXZpb3JzIik7Ci0KLWZvciAod2lkdGggPSAwOyB3aWR0aCA8PSAyOyB3aWR0
aCArPSAyKQotewotICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDw9IDI7IGhlaWdodCArPSAy
KQotICAgIHsKLSAgICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiRGltZW5zaW9ucyAi
ICsgd2lkdGggKyAiIHggIiArIGhlaWdodCk7Ci0KLSAgICAgICAgZGVidWcoIkNyZWF0ZSByZW5k
ZXJidWZmZXJzIik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBjcmVhdGUzRENvbnRl
eHQoKSIpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJC
VUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLlJHQkE0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJi
dWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRo
LCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAg
ICAgICAgc2hvdWxkQmVOb25OdWxsKCJzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHN0
ZW5jaWxCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuU1RFTkNJTF9JTkRFWDgsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0
aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5i
aW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAg
ICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX1NU
RU5DSUwsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKLQotICAgICAgICB2YXIgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlCi0gICAgICAg
ICAgICA9ICh3aWR0aCA9PSAwIHx8IGhlaWdodCA9PSAwKSA/IEFMTE9XX0lOQ09NUExFVEVfQVRU
QUNITUVOVCA6IEFMTE9XX0NPTVBMRVRFOwotCi0gICAgICAgIC8vIHNvbWUgY2FzZXMgaW52b2x2
aW5nIHN0ZW5jaWwgc2VlbSB0byBiZSBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQKLSAgICAgICAg
dmFyIGFsbG93ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50Q2FzZSA9IGFsbG93ZWRTdGF0dXNGb3JH
b29kQ2FzZSB8IEFMTE9XX1VOU1VQUE9SVEVEOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVw
dGggdXNpbmcgREVQVEhfQVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5E
RVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsK
LSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsK
LSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZl
ciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBk
ZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFj
aG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5D
T01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5n
IFNURU5DSUxfQVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5TVEVOQ0lM
X0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50
Q2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hN
RU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIHN0ZW5j
aWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJB
dHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAg
dGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVy
LCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRl
cHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVz
dEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZm
ZXIsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVw
dGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1l
bnQoZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBM
RVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJ
TF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNI
TUVOVCk7Ci0KLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVu
dAotICAgICAgICAgICAgPSAod2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkgPyBBTExPV19VTlNV
UFBPUlRFRCB8IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgOiBBTExPV19VTlNVUFBPUlRFRDsKLQotICAgICAgICBk
ZWJ1ZygiQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAg
ICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBn
bC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25m
bGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCwgdGhlbiBk
ZXB0aCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuU1RF
TkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0
aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAg
ZGVidWcoIkF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3Qi
KTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVm
ZmVyLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxs
b3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFj
aCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAg
dGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2ls
QnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zv
ckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsLCB0
aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNo
bWVudHMoZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGdsLkRFUFRIX1NURU5DSUxf
QVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3Rl
ZEF0dGFjaG1lbnQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBz
dGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5E
RVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgZ2wuU1RFTkNJTF9B
VFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFj
aG1lbnQpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGgg
aW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQiKTsKLSAgICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVy
KGdsLlJHQkE0LCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJB
dHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMSIp
OwotICAgICAgICB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wuUkdCNV9BMSwgYWxsb3dlZFN0YXR1
c0Zvckdvb2RDYXNlKTsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZl
ciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NSIpOwotICAgICAgICB0ZXN0Q29sb3JSZW5k
ZXJidWZmZXIoZ2wuUkdCNTY1LCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAg
IGRlYnVnKCJDcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyIik7Ci0g
ICAgICAgIHRlc3REZXB0aFN0ZW5jaWxSZW5kZXJidWZmZXIoYWxsb3dlZFN0YXR1c0Zvckdvb2RD
YXNlKTsKLSAgICB9Ci19Ci0KLS8vIERldGVybWluZSBpZiB3ZSBjYW4gYXR0YWNoIGJvdGggY29s
b3IgYW5kIGRlcHRoIG9yIGNvbG9yIGFuZCBkZXB0aF9zdGVuY2lsCi12YXIgZGVwdGhGb3JtYXQ7
Ci12YXIgZGVwdGhBdHRhY2htZW50OwotCi1mdW5jdGlvbiBjaGVja1ZhbGlkQ29sb3JEZXB0aENv
bWJpbmF0aW9uKCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsK
LSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZm
ZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIp
OwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwg
MTYsIDE2KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCBkZXB0aEJ1ZmZlcik7Ci0KLSAgICByZXR1cm4gdHJ5RGVwdGgoZ2wuREVQVEhfQ09NUE9ORU5U
MTYsIGdsLkRFUFRIX0FUVEFDSE1FTlQpIHx8IHRyeURlcHRoKGdsLkRFUFRIX1NURU5DSUwsIGds
LkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCk7Ci0KLSAgICBmdW5jdGlvbiB0cnlEZXB0aCh0cnlf
Zm9ybWF0LCB0cnlfYXR0YWNobWVudCkgewotICAgICAgICBpZiAoZGVwdGhBdHRhY2htZW50KSB7
Ci0gICAgICAgICAgICAvLyBJZiB3ZSd2ZSB0cmllZCBvbmNlIHVuYXR0YWNoIHRoZSBvbGQgb25l
LgotICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgICAgICAg
ICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBudWxs
KTsKLSAgICAgICAgfQotICAgICAgICBkZXB0aEZvcm1hdCA9IHRyeV9mb3JtYXQ7Ci0gICAgICAg
IGRlcHRoQXR0YWNobWVudCA9IHRyeV9hdHRhY2htZW50OwotICAgICAgICBnbC5mcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcigKLSAgICAgICAgICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1l
bnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICByZXR1cm4gZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09N
UExFVEU7Ci0gICAgfQotfQotCi1pZiAoY2hlY2tWYWxpZENvbG9yRGVwdGhDb21iaW5hdGlvbigp
KSB7Ci0gICAgdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZURpbWVuc2lvbnMoKTsKLSAgICB0ZXN0
RnJhbWVidWZmZXJJbmNvbXBsZXRlQXR0YWNobWVudCgpOwotICAgIHRlc3RGcmFtZWJ1ZmZlcklu
Y29tcGxldGVNaXNzaW5nQXR0YWNobWVudCgpOwotICAgIHRlc3RVc2luZ0luY29tcGxldGVGcmFt
ZWJ1ZmZlcigpOwotfQotCi1mdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVyKGV4cGVjdGVkKSB7Ci0g
ICAgdmFyIGFjdHVhbCA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
OwotICAgIHZhciBtc2cgPSAiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
Uikgc2hvdWxkIGJlICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGV4cGVjdGVkKSArICIgd2Fz
ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGFjdHVhbCk7Ci0gICAgaWYgKGV4cGVjdGVkICE9
IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0gICAgICAgIG1zZyArPSAiIG9yIEZSQU1FQlVG
RkVSX1VOU1VQUE9SVEVEIjsKLSAgICB9Ci0gICAgaWYgKGFjdHVhbCA9PSBleHBlY3RlZCB8fAot
ICAgICAgICAoZXhwZWN0ZWQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUgJiYKLSAgICAgICAg
IGFjdHVhbCA9PSBnbC5GUkFNQlVGRkVSX1VOU1VQUE9SVEVEKSkgewotICAgICAgICB0ZXN0UGFz
c2VkKG1zZyk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZChtc2cpOwotICAgIH0K
LX0KLQotZnVuY3Rpb24gdGVzdFVzaW5nSW5jb21wbGV0ZUZyYW1lYnVmZmVyKCkgewotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVzdCBkcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNv
bXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJl
ZFF1YWQoZ2wpOwotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgd3R1LmZp
bGxUZXh0dXJlKGdsLCB0ZXgsIDEsIDEsIFswLDI1NSwwLDI1NV0pOwotCi0gICAgc2hvdWxkQmVO
b25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1l
YnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZm
ZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwg
Z2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFn
ZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25O
dWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmlu
ZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5mcmFt
ZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNo
bWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJB
TUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgLy8gV2UgcGljayB0aGlzIGNvbWJpbmF0aW9uIGJl
Y2F1c2UgaXQgd29ya3Mgb24gZGVza3RvcCBPcGVuR0wgYnV0IHNob3VsZCBub3Qgd29yayBvbiBP
cGVuR0wgRVMgMi4wCi0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIs
IGRlcHRoRm9ybWF0LCAzMiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZG
RVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRy
YXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdl
bmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJlbmRlcmlu
Z0FuZFJlYWRpbmcoKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvMiA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZi
bzIpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNT
SU5HX0FUVEFDSE1FTlQpOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciBy
ZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGlu
ZygpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNv
bG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9y
QnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkdCQTQsIDAsIDApOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFk
aW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04iKTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygp
OwotCi0gICAgZnVuY3Rpb24gdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmcoKSB7Ci0gICAgICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICB3dHUuZHJhd1F1YWQoZ2wp
OwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OLCAiZHJhd0FycmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAg
ICAgZ2wucmVhZFBpeGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBu
ZXcgVWludDhBcnJheSg0KSk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sICJyZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFt
ZWJ1ZmZlciIpOwotICAgICAgICAvLyBjb3B5VGV4SW1hZ2UgYW5kIGNvcHlUZXhTdWJJbWFnZSBj
YW4gYmUgZWl0aGVyIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIGJlY2F1c2UKLSAgICAg
ICAgLy8gdGhlIGZyYW1lYnVmZmVyIGlzIGludmFsaWQgT1IgSU5WQUxJRF9PUEVSQVRJT04gYmVj
YXVzZSBpbiB0aGUgY2FzZSBvZiBubyBhdHRhY2htZW50cwotICAgICAgICAvLyB0aGUgZnJhbWVi
dWZmZXIgaXMgbm90IG9mIGEgY29tcGF0aWJsZSB0eXBlLgotICAgICAgICBnbC5jb3B5VGV4U3Vi
SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCAwLCAwLCAwLCAwLCAxLCAxKTsKLSAgICAgICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBbZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sIGdsLklO
VkFMSURfT1BFUkFUSU9OXSwgImNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciIpOwotICAgICAgICBnbC5jb3B5VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5S
R0JBLCAwLCAwLCAxLCAxLCAwKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBbZ2wuSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sIGdsLklOVkFMSURfT1BFUkFUSU9OXSwgImNvcHlU
ZXhTdWJJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICBnbC5j
bGVhcihnbC5DT0xPUl9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAg
IGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sICJj
bGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9u
IHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVBdHRhY2htZW50KCkgewotICAgIHNob3VsZEJlTm9u
TnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVm
ZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVy
KGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uo
Z2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1Zygi
V3Jvbmcgc3RvcmFnZSB0eXBlIGZvciB0eXBlIG9mIGF0dGFjaG1lbnQgYmUgRlJBTUVCVUZGRVJf
SU5DT01QTEVURV9BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsK
LSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVO
VCk7Ci0KLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdC
QTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVU
RSk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIjAgc2l6ZSBhdHRhY2htZW50IHNob3Vs
ZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40
LjUpIik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJH
QkE0LCAwLCAwKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LX0KLQotZnVuY3Rpb24gdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZU1pc3NpbmdBdHRhY2htZW50
KCkgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiTm8gYXR0YWNobWVudHMgc2hvdWxkIGJl
IElOQ09NUExFVEVfRlJBTUVCVUZGRVJfTUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4w
IDQuNC41KSIpOwotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAg
ICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAg
IGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBj
b2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIs
IGdsLlJHQkE0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJf
Q09NUExFVEUpOwotCi0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBudWxs
KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lO
R19BVFRBQ0hNRU5UKTsKLQotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
fQotCi1mdW5jdGlvbiB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlRGltZW5zaW9ucygpIHsKLSAg
ICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkF0dGFjaG1lbnRzIG9mIGRpZmZlcmVudCBzaXplcyBz
aG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIChPcGVuR0wgRVMgMi4w
IDQuNC41KSIpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwot
ICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZl
cik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7
Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAx
NiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIs
IGRlcHRoQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAg
Z2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1
ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRo
Rm9ybWF0LCAxNiwgMTYpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
ICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2wu
cmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYp
OwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJ
T05TKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhG
b3JtYXQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01Q
TEVURSk7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVm
ZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdC
QTQsIDE2LCAzMik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX0RJTUVOU0lPTlMpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQot
ICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wu
VEVYVFVSRV8yRCwgdGV4KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAg
Z2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1F
TlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotICAgIGlmIChnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAzMiwgMTYs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC50ZXhJbWFn
ZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5T
SUdORURfQllURSwgbnVsbCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9D
T01QTEVURSk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLTwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAxYTVmODk3NjQxNzRmNzk1MzlhMTg3MmYyZDIwMjc3MjYzYjIzZTll
Li42MDBlZmU2ZmVjNzc2YjBlZjNjZTNkNzE0ZDdjZjhmMTUzNmUzNjVmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDM1LDcgKzQzNSw2IEBAIHdlYmtp
dC5vcmcvYi8xNjk5MTggY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tYmFja2dyb3VuZC1jb2xvci5o
dG1sIFsgTWlzc2luZyBDcmFzCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmds
L2FudGlhbGlhc2luZy1lbmFibGVkLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9i
LzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgt
c3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBm
YXN0L2NhbnZhcy93ZWJnbC9jb3B5QnVmZmVyU3ViRGF0YS5odG1sIFsgRmFpbHVyZSBdCi13ZWJr
aXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRh
Y2htZW50Lmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMv
d2ViZ2wvZ2V0QnVmZmVyU3ViRGF0YS13ZWJnbDEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9y
Zy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9nbHNsLWNvbmZvcm1hbmNlLmh0bWwgWyBGYWls
dXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlh
bHBoYS10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggZDQ5NTU2ZWQ3ODFlNGI0ZDc2NGNlMjNlYWY5YzIzMDlhYmM3ZTVm
NS4uOGEyN2ZiNTIwYzUyYmE0MDZiMmQ2NmYwMzhhZWQxOTU3OTkyODkzYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3NDAsNyArMjc0MCw2IEBAIHdl
YmtpdC5vcmcvYi8xNzE2MTcgcGVyZi9vYmplY3Qta2V5cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
IAogIyBXZWJHTCB0ZXN0cyB3aGljaCBuZWVkIHRyaWFnaW5nIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL2IvMTc0MTAwCiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEt
ZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9jYW52YXMvd2Vi
Z2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9j
YW52YXMvd2ViZ2wvb2VzLXRleHR1cmUtZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZh
c3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbGluZWFyLmh0bWwgWyBGYWls
dXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgt
cG90ZW50aWFsbHktc3Vic2FtcGxlZC1pbWFnZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDkwMjdhOWQzOWU3ZjZjMzFjNjA0
N2Y4YTU1ODM4MGUxZGJlODZmYTcuLmJhY2YxZmU2ZGM0OTNjNTYwNjdkYzI3MDVjNjc1ZDg5Yjg1
N2NkM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
OTQsOCArMjk0LDYgQEAgd2Via2l0Lm9yZy9iLzgyNjY1IHdlYmFyY2hpdmUvdGVzdC1jc3MtdXJs
LXJlc291cmNlcy1pbmxpbmUtc3R5bGVzLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzgy
NzYyIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5o
dG1sCiAKLXdlYmtpdC5vcmcvYi84MjgwNSBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1v
YmplY3QtYXR0YWNobWVudC5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84Mjk3MiBw
bHVnaW5zL2tleWJvYXJkLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcv
Yi84Mjk3MiBwbHVnaW5zL2xheW91dC1pbi1iZWZvcmVsb2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1
Z2luLWxvYWRpbmcuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODI5NzIgcGx1
Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRwb3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0
LWF0dHJpYnV0ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0
cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhwZWN0ZWQudHh0CmluZGV4
IDViZWY4MTZjNDZmN2YwMDJkNDU1Njg3ZDM5MTQ1MjIxZmU0YzBjYWYuLjM2Yzk0OGFkZTk1ZWNi
M2Q0OWJlOTBjMTE0ZjM4N2Q3OGY0Mjk5ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVu
Y2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmds
LzIuMC4wL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVu
Y2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDE3ICsxLDE1IEBACiBUaGlz
IHRlc3QgcnVucyB0aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCBy
ZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3Rf
ZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5j
aWwtYW50aWFsaWFzLW9iZXllZC5odG1sCi1bIDE6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlz
IG5vdCBvYmV5ZWQKLVsgMjogRkFJTCBdIGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAor
WyAxOiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBk
ZXB0aCwgYW5kIHN0ZW5jaWwuCitbIDI6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2Jl
eWVkCiBbIDM6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCiBbIDQ6IEZBSUwg
XSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDU6IEZBSUwgXSBhbnRpYWxpYXMgPSB0
cnVlIGlzIG5vdCBvYmV5ZWQKLVsgNjogRkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5
ZWQKLVsgNzogRkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgODogRkFJTCBd
IGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAorWyA1OiBGQUlMIF0gc3RlbmNpbCA9IHRy
dWUgaXMgbm90IG9iZXllZAorWyA2OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNv
cnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCitbIDc6IFBBU1MgXSBDb250ZXh0
IGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4K
K1sgODogUEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywg
ZGVwdGgsIGFuZCBzdGVuY2lsLgogWyA5OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhl
IGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCi1bIDEwOiBGQUlMIF0gYW50
aWFsaWFzID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDExOiBQQVNTIF0gQ29udGV4dCBjcmVhdGVk
IHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCi1bIDEyOiBQ
QVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDkgZmFpbHVyZXMgcmVw
b3J0ZWQKK1sgMTA6IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorWyBGQUlMIF0g
NCBmYWlsdXJlcyByZXBvcnRlZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386456</attachid>
            <date>2019-12-27 14:05:17 -0800</date>
            <delta_ts>2019-12-27 14:29:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191228090515.patch</filename>
            <type>text/plain</type>
            <size>382639</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NGI4ZGEzYjJiYjhjNTI1
OTc2ZjY5YzdkNmE2Yzk3OTBhNzU4MjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZyA9IDAsCisgICAgICAgIERvUHJlbXVsdGlwbHkgPSAxLAorICAgICAg
ICBEb1VubXVsdGlwbHkgPSAyCisgICAgfTsKKworICAgIGVudW0gY2xhc3MgRE9NU291cmNlIDog
dWludDhfdCB7CisgICAgICAgIEltYWdlID0gMCwKKyAgICAgICAgQ2FudmFzID0gMSwKKyAgICAg
ICAgVmlkZW8gPSAyLAorICAgICAgICBOb25lID0gMworICAgIH07CisKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0
ID0gMDsKKworICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEoRGF0YUZvcm1h
dCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkExNkY6CisgICAgICAg
IGNhc2UgRGF0YUZvcm1hdDo6QTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTg6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6QVI4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJB
MTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkFSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1h
dDo6UkdCQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAg
fQorCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZv
cm1hdCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgICAgIGNhc2UgRGF0
YUZvcm1hdDo6UkdCQTg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTE2RjoKKyAgICAg
ICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBMzJGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJH
Qjg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCMTZGOgorICAgICAgICBjYXNlIERhdGFG
b3JtYXQ6OlJHQjMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1I4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OkJHUkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFSR0I4Ogor
ICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFCR1I4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6
OlJHQkE1NTUxOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE0NDQ0OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQjU2NToKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlIz
MkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJBMzJGOgorICAgICAgICBjYXNl
IERhdGFGb3JtYXQ6OkFSODoKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisgICAgfQorCisgICAg
Ly8gQ2hlY2sgaWYgdGhlIGZvcm1hdCBpcyBvbmUgb2YgdGhlIGZvcm1hdHMgZnJvbSB0aGUgSW1h
Z2VEYXRhIG9yIERPTSBlbGVtZW50cy4KKyAgICAvLyBUaGUgZm9ybWF0cyBmcm9tIEltYWdlRGF0
YSBpcyBhbHdheXMgUkdCQTguCisgICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBET00gZWxlbWVudHMg
dmFyeSB3aXRoIEdyYXBoaWNzIHBvcnRzLiBJdCBjYW4gb25seSBiZSBSR0JBOCBvciBCR1JBOCBm
b3Igbm9uLUNHIHBvcnQgd2hpbGUgYSBsaXR0bGUgbW9yZSBmb3IgQ0cgcG9ydC4KKyAgICBzdGF0
aWMgQUxXQVlTX0lOTElORSBib29sIHNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRPckltYWdl
RGF0YShEYXRhRm9ybWF0IFNyY0Zvcm1hdCkKKyAgICB7CisjaWYgVVNFKENHKQorI2lmIENQVShC
SUdfRU5ESUFOKQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0
OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSQTggfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OkFSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkE4OworI2Vsc2UKKyAgICAvLyBUaGF0IExJVFRMRV9F
TkRJQU4gY2FzZSBoYXMgbW9yZSBwb3NzaWJsZSBmb3JtYXRzIHRoYW4gQklHX0VORElBTiBjYXNl
IGlzIGJlY2F1c2Ugc29tZSBkZWNvZGVkIGltYWdlIGRhdGEgaXMgYWN0dWFsbHkgYmlnIGVuZGlh
bgorICAgIC8vIGV2ZW4gb24gbGl0dGxlIGVuZGlhbiBhcmNoaXRlY3R1cmVzLgorICAgIHJldHVy
biBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3Jt
YXQ6OkFCR1I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpCR1I4CisgICAgICAgIHx8IFNy
Y0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6
QVJHQjggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQjgKKyAgICAgICAgfHwgU3JjRm9y
bWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBOAorICAg
ICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpBUjg7CisjZW5kaWYKKyNlbHNlCisgICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpCR1JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCQTg7CisjZW5kaWYK
KyAgICB9CisKKyAgICBzdHJ1Y3QgQWN0aXZlSW5mbyB7CisgICAgICAgIFN0cmluZyBuYW1lOwor
ICAgICAgICBHQzNEZW51bSB0eXBlOworICAgICAgICBHQzNEaW50IHNpemU7CisgICAgfTsKKwor
ICAgIEdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMsIERl
c3RpbmF0aW9uID0gRGVzdGluYXRpb246Ok9mZnNjcmVlbiwgR3JhcGhpY3NDb250ZXh0M0RCYXNl
KiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgdmlydHVhbCB+R3JhcGhpY3NDb250ZXh0
M0RCYXNlKCkgPSBkZWZhdWx0OworCisgICAgLy8gPT09PT09PT09PSBXZWJHTCAxIGVudHJ5IHBv
aW50cy4KKworICAgIHZpcnR1YWwgdm9pZCBhY3RpdmVUZXh0dXJlKEdDM0RlbnVtIHRleHR1cmUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmlu
ZEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RPYmplY3QsIEdDM0R1aW50IGluZGV4LCBjb25zdCBT
dHJpbmcmIG5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEJ1ZmZlcihHQzNEZW51bSB0
YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZEZyYW1l
YnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVj
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBiaW5kVGV4dHVyZShHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxlbmRDb2xvcihHQzNEY2xh
bXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNsYW1wZiBibHVlLCBHQzNEY2xhbXBmIGFs
cGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRXF1YXRpb24oR0MzRGVudW0gbW9kZSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0MzRGVudW0gbW9k
ZVJHQiwgR0MzRGVudW0gbW9kZUFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJsZW5kRnVu
YyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGJsZW5kRnVuY1NlcGFyYXRlKEdDM0RlbnVtIHNyY1JHQiwgR0MzRGVudW0gZHN0UkdCLCBH
QzNEZW51bSBzcmNBbHBoYSwgR0MzRGVudW0gZHN0QWxwaGEpID0gMDsKKworICAgIHZpcnR1YWwg
R0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFy
RGVwdGgoR0MzRGNsYW1wZiBkZXB0aCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclN0ZW5j
aWwoR0MzRGludCBzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVh
biByZWQsIEdDM0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBh
bHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmpl
Y3QpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4SW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEaW50IHgsIEdD
M0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJvcmRl
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5VGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJn
ZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNE
aW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlQnVmZmVyKCkgPSAwOworICAg
IHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVGcmFtZWJ1ZmZlcigpID0gMDsKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUHJvZ3JhbSgpID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlUmVuZGVyYnVmZmVyKCkgPSAwOworICAgIHZpcnR1YWwg
UGxhdGZvcm0zRE9iamVjdCBjcmVhdGVTaGFkZXIoR0MzRGVudW0pID0gMDsKKyAgICB2aXJ0dWFs
IFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlVGV4dHVyZSgpID0gMDsKKworICAgIHZpcnR1YWwgdm9p
ZCBjdWxsRmFjZShHQzNEZW51bSBtb2RlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
QnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRnJh
bWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUmVu
ZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRl
U2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4
dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhGdW5j
KEdDM0RlbnVtIGZ1bmMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVwdGhSYW5nZShHQzNEY2xhbXBmIHpO
ZWFyLCBHQzNEY2xhbXBmIHpGYXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoU2hhZGVy
KFBsYXRmb3JtM0RPYmplY3QsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZShHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZVZl
cnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRy
YXdBcnJheXMoR0MzRGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6
ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZW5hYmxlKEdDM0RlbnVtIGNhcCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBl
bmFibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBmaW5pc2goKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZsdXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHJlbmRlcmJ1ZmZlcnRhcmdldCwgUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZWJ1ZmZlclRleHR1cmUyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHRleHRhcmdldCwgUGxhdGZv
cm0zRE9iamVjdCwgR0MzRGludCBsZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmcm9udEZh
Y2UoR0MzRGVudW0gbW9kZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdlbmVyYXRlTWlwbWFw
KEdDM0RlbnVtIHRhcmdldCkgPSAwOworCisgICAgdmlydHVhbCBib29sIGdldEFjdGl2ZUF0dHJp
YihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVVbmlmb3JtKFBsYXRmb3JtM0RPYmplY3Qg
cHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXpl
aSBtYXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykg
PSAwOworCisgICAgdmlydHVhbCBHQzNEaW50IGdldEF0dHJpYkxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGdldEJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBn
ZXRTdHJpbmcoR0MzRGVudW0gbmFtZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRGbG9hdHYo
R0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Z2V0SW50ZWdlcnYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQ2NCogdmFsdWUp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGdldEJvb2xlYW52KEdDM0RlbnVtIHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpID0gMDsK
KworICAgIHZpcnR1YWwgR0MzRGVudW0gZ2V0RXJyb3IoKSA9IDA7CisKKyAgICAvLyBnZXRGcmFt
ZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RnJhbWVidWZm
ZXJBdHRhY2htZW50UGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFBy
b2dyYW1QYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQbGF0
Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIC8vIGdldFNoYWRl
clBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRTaGFkZXJpdihQbGF0Zm9ybTNET2JqZWN0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgU3Ry
aW5nIGdldFNoYWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBnZXRTaGFkZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVu
dW0gcHJlY2lzaW9uVHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgPSAw
OworCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKworICAgIC8vIGdldFRleFBhcmFtZXRlcgorICAgIHZpcnR1YWwgdm9pZCBnZXRUZXhQ
YXJhbWV0ZXJmdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZh
bHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFRleFBhcmFtZXRlcml2KEdDM0RlbnVtIHRh
cmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRV
bmlmb3JtCisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1mdihQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgZ2V0VW5pZm9ybWl2KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGludCBnZXRV
bmlmb3JtTG9jYXRpb24oUGxhdGZvcm0zRE9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7
CisKKyAgICAvLyBnZXRWZXJ0ZXhBdHRyaWIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VmVydGV4QXR0
cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGluZGV4LCBH
QzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRHNp
emVpcHRyIGdldFZlcnRleEF0dHJpYk9mZnNldChHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5h
bWUpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBoaW50KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gbW9kZSkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNCdWZmZXIoUGxhdGZvcm0z
RE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNFbmFibGVkKEdDM0RlbnVt
IGNhcCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNGcmFtZWJ1ZmZlcihQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCBHQzNEYm9vbGVhbiBpc1Byb2dyYW0oUGxhdGZv
cm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNSZW5kZXJidWZmZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNTaGFkZXIo
UGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNUZXh0dXJl
KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbGluZVdpZHRoKEdDM0Rm
bG9hdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBsaW5rUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBpeGVsU3RvcmVpKEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50IHBhcmFtKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBvbHlnb25PZmZzZXQoR0MzRGZsb2F0
IGZhY3RvciwgR0MzRGZsb2F0IHVuaXRzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVuZGVy
YnVmZmVyU3RvcmFnZShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNoYWRl
clNvdXJjZShQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIHN0cmluZykgPSAwOworCisg
ICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBH
QzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0ZW5jaWxGdW5jU2VwYXJhdGUo
R0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2sp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzaykgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1
aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWws
IEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0
ZXJmKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RmbG9hdCBwYXJhbSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB0ZXhQYXJhbWV0ZXJpKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
MWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xaXYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
aWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQq
IHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwg
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1
bmlmb3JtM2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZs
b2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBs
b2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVp
LCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgy
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJp
eDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwg
Y29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0
cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3Nl
LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXNlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlUHJv
Z3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0
cmliMWYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHZlcnRleEF0dHJpYjFmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmYoR0MzRHVpbnQgaW5kZXgsIEdD
M0RmbG9hdCB4LCBHQzNEZmxvYXQgeSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRy
aWIyZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjNmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwg
R0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0
dHJpYjNmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliNGYoR0MzRHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4
LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHZlcnRleEF0dHJpYjRmdihHQzNEdWludCBpbmRleCwgY29uc3QgR0MzRGZsb2F0KiB2
YWx1ZXMpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1
aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1h
bGl6ZWQsIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KSA9IDA7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRhdGEo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgR0MzRGVudW0gdXNhZ2UpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaXB0
ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2FnZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0LCBHQzNEaW50IGJvcmRlciwgR0MzRHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0Mz
RHNpemVpIGltYWdlU2l6ZSwgY29uc3Qgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2
b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRh
KSA9IDA7CisKKyAgICB2aXJ0dWFsIGJvb2wgdGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVt
IHR5cGUsIGNvbnN0IHZvaWQqIHBpeGVscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdWJJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBH
QzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVu
dW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzSW5zdGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQg
Zmlyc3QsIEdDM0RzaXplaSBjb3VudCwgR0MzRHNpemVpIHByaW1jb3VudCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkcmF3RWxlbWVudHNJbnN0YW5jZWQoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVp
IGNvdW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNpemVpIHByaW1j
b3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWJEaXZpc29yKEdDM0R1aW50
IGluZGV4LCBHQzNEdWludCBkaXZpc29yKSA9IDA7CisKKyAgICBHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgY29udGV4dEF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBtX2F0dHJzOyB9Cisg
ICAgdm9pZCBzZXRDb250ZXh0QXR0cmlidXRlcyhjb25zdCBHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMmIGF0dHJzKSB7IG1fYXR0cnMgPSBhdHRyczsgfQorCisgICAgLy8gVmVydGV4QXJyYXlP
amVjdCBjYWxscworICAgIHZpcnR1YWwgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0ZXhBcnJh
eSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9i
amVjdCkgPSAwOworICAgIHZpcnR1YWwgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisKKyNpZiBVU0UoT1BFTkdMKSAmJiBFTkFCTEUoV0VCR0wyKQorICAg
IHZpcnR1YWwgdm9pZCBwcmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpID0gMDsKKyNlbmRp
ZgorCisgICAgLy8gU3VwcG9ydCBmb3IgZXh0ZW5zaW9ucy4gUmV0dXJucyBhIG5vbi1udWxsIG9i
amVjdCwgdGhvdWdoIG5vdAorICAgIC8vIGFsbCBtZXRob2RzIGl0IGNvbnRhaW5zIG1heSBuZWNl
c3NhcmlseSBiZSBzdXBwb3J0ZWQgb24gdGhlCisgICAgLy8gY3VycmVudCBoYXJkd2FyZS4gTXVz
dCBjYWxsIEV4dGVuc2lvbnMzRDo6c3VwcG9ydHMoKSB0bworICAgIC8vIGRldGVybWluZSB0aGlz
LgorICAgIHZpcnR1YWwgRXh0ZW5zaW9uczNEJiBnZXRFeHRlbnNpb25zKCkgPSAwOworCisgICAg
Ly8gPT09PT09PT09PSBXZWJHTCAyIGVudHJ5IHBvaW50cy4KKworICAgIHZpcnR1YWwgdm9pZCog
bWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNldCwgR0MzRHNp
emVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2VzcykgPSAwOworICAgIHZpcnR1YWwgR0Mz
RGJvb2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvcHlCdWZmZXJTdWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRl
VGFyZ2V0LCBHQzNEaW50cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdD
M0RzaXplaXB0cikgPSAwOworCisgICAgLy8gZ2V0SW50ZXJuYWxGb3JtYXRQYXJhbWV0ZXIKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBwbmFtZSwgR0MzRHNpemVpIGJ1ZlNpemUsIEdD
M0RpbnQqIHBhcmFtcykgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNp
emVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB0ZXhTdG9yYWdlM0QoR0MzRGVu
dW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEc2l6ZWkgZGVwdGgpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0Zm9ybTNET2JqZWN0IHByb2dy
YW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRpY2VzLCBHQzNEZW51bSBwbmFt
ZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpID0gMDsKKworICAgIC8vID09PT09PT09PT0gTm9u
LVdlYkdMIGJhc2VkIGVudHJ5IHBvaW50cy4KKworICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVh
ckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0
Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOworCisgICAgc3RhdGljIHVpbnQ4X3QgZ2V0Q2hh
bm5lbEJpdHNCeUZvcm1hdChHQzNEZW51bSk7CisKKyAgICBEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKworcHJpdmF0ZToKKyAgICBHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgbV9hdHRyczsKKyAgICBEZXN0aW5hdGlvbiBtX2Rlc3Rp
bmF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRFByaXZhdGUuY3BwCmluZGV4IDkxMzAwNDQwY2RlZDQ5ZTFkZGQ1MGJjNDllYzc4ZGQ2NThk
ZDZhMGUuLmEzZTZkMjU4MjE0NWRlOGMxNjA5MGJkMGVjOGMwZmUzNDBmNDJlZGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RQcml2YXRlLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZh
dGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUpCitHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkdyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgog
ICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgm
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3Rs
eVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKaW5kZXggZTMzZjhmYmU3Mzg5MmUzNGI4
ZGVmODM2ZDQ2ZjVjNzBjNzljNjFkZC4uZjMyNTRhODA1OWI1NjJhMTU2YTdjNTZiNmExODY4N2Nl
MzQ3ZTcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0RQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmgKQEAgLTMwLDcgKzMwLDcgQEAgY2xhc3Mg
Qml0bWFwVGV4dHVyZUdMOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUp
OworICAgIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZShHcmFwaGljc0NvbnRleHQzRCosIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0
ZSgpOwogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NUeXBlczNELmgKaW5kZXggMWFiMWE0ZjY0YTYxNGU5ZDIz
ZGFjOGEwYTJhMmM0ODk3ZTkxZWU5MS4uNWVjMjcxNDVjMDMwZjlkYmJkZGZmMjU0ZjNhMTRkYjE1
YWJjM2NhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NUeXBlczNELmgKQEAgLTUxLDQgKzUxLDggQEAgdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv
bmcgR0MzRHVpbnQ2NDsKIAogdHlwZWRlZiBHQzNEdWludCBQbGF0Zm9ybTNET2JqZWN0OwogCisj
aWYgIVBMQVRGT1JNKENPQ09BKQordHlwZWRlZiB1bnNpZ25lZCBHTHVpbnQ7CisjZW5kaWYKKwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHQzREFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCmluZGV4IDc3YmIzYjJjZDE1
ZTEyNzExMjY5NDY5NGE2NDc5MmEwZGMzMWY2NGEuLjI5YTczNzU0ZjU1MDQxMmVhYWVkMjA0NDg5
MTA3YjM2NGI0ZTUzZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dDNEQU5HTEUuY3BwCkBAIC0x
MjIsNyArMTIyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZl
cnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludAogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShNQUMpCi0gICAgaWYgKCFtX2F0dHJzLmFscGhhKQorICAgIGlmICghY29udGV4dEF0dHJp
YnV0ZXMoKS5hbHBoYSkKICAgICAgICAgd2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMod2lkdGgs
IGhlaWdodCwgcGl4ZWxzKTsKICNlbmRpZgogfQpAQCAtMTM0LDE3ICsxMzQsMTggQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzKCkKIAogYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBhdXRvIGF0
dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKICAgICBjb25zdCBpbnQgd2lkdGggPSBzaXplLndp
ZHRoKCk7CiAgICAgY29uc3QgaW50IGhlaWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAgR0x1aW50
IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1f
YXR0cnMuYWxwaGEpIHsKKyAgICBpZiAoYXR0cnMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5h
bENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsK
ICAgICB9IGVsc2UgewogICAgICAgICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0I4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQjsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMu
ZGVwdGgpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5j
aWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAgICAgLy8gU2VlIEdyYXBoaWNz
Q29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMuCiAKQEAgLTE1Nyw3ICsxNTgsNyBAQCBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAg
IH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICBHTGludCBtYXhT
YW1wbGVDb3VudDsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX01BWF9TQU1QTEVTX0FOR0xF
LCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRoYW4gNCBzYW1wbGVz
IGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAgLTE2Nyw3ICsx
NjgsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXpl
JiBzaXplKQogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1f
bXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7CiAgICAgICAgIGdldEV4dGVuc2lvbnMoKS5yZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgbV9p
bnRlcm5hbENvbG9yRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAgZ2w6OkZyYW1lYnVm
ZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xf
UkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJzLnN0ZW5j
aWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdM
X1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAg
ICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JF
TkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0
aCwgaGVpZ2h0KTsKICAgICAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRlIHRoYXQg
Y29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0xNzUsOSArMTc2LDkgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAgICAgICAgIGlmICghaXNHTEVTMkNvbXBsaWFudCgpICYmIGludGVybmFsRGVwdGhTdGVu
Y2lsRm9ybWF0ID09IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTKQogICAgICAgICAgICAgICAgIGds
OjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZm
ZXIpOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAgICAgICAgICAg
ICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVO
Q0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNp
bEJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAg
ICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JF
TkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTIxNSw3ICsyMTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
OjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGF0dGFjaERlcHRoQW5kU3Rl
bmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVp
Z2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgZ2w6OkJp
bmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAg
IGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAgICBt
dXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI5LDcgKzIzMCw5IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKEdMdWludCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewotICAg
IGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYg
KCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpKSB7CiAg
ICAgICAgIGdsOjpCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICBnbDo6UmVuZGVyYnVmZmVyU3RvcmFnZShHTF9SRU5ERVJCVUZG
RVIsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAg
Ly8gV2ViR0wgMS4wJ3MgcnVsZXMgc3RhdGUgdGhhdCBjb21iaW5lZCBkZXB0aC9zdGVuY2lsIHJl
bmRlcmJ1ZmZlcnMKQEAgLTIzNyw5ICsyNDAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjph
dHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aAog
ICAgICAgICBpZiAoIWlzR0xFUzJDb21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCA9PSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUykKICAgICAgICAgICAgIGdsOjpGcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
LCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgaWYgKGF0dHJz
LnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdM
X0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9k
ZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5E
RVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICBnbDo6
QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwpAQCAtMzc4LDE3ICszODEsMTgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQg
eSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5n
IGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICBnbDo6Rmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11
bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIs
IG1fZmJvKTsKICAgICAgICAgZ2w6OkZsdXNoKCk7CiAgICAgfQogICAgIGdsOjpSZWFkUGl4ZWxz
KHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0YSk7Ci0gICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKKyAg
ICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJB
TUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlm
ICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8
IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkgJiYgKG1fc3RhdGUuYm91bmRGQk8g
PT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFw
aGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEp
ICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChhdHRycy5hbnRpYWxpYXMgJiYgbV9z
dGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkpCiAgICAgICAgIHdpcGVBbHBoYUNo
YW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIq
PihkYXRhKSk7CiAjZW5kaWYKIH0KQEAgLTM5OSwyMCArNDAzLDIzIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChj
b25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pCiB7CiAgICAgRXh0ZW5zaW9u
czNEJiBleHRlbnNpb25zID0gZ2V0RXh0ZW5zaW9ucygpOwotICAgIGlmIChtX2F0dHJzLnN0ZW5j
aWwpIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChh
dHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1cHBvcnRzKHBhY2tlZERl
cHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5h
YmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgICAgICAgICAgLy8gRm9yY2Ug
ZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAgbV9hdHRycy5kZXB0aCA9IHRy
dWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7Ci0KKyAgICAgICAgICAgIGF0dHJzLnN0
ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAg
IH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFz
KSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFkanVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRv
IFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3VwcG9ydC4KLSAgICAgICAgaWYgKCFleHRlbnNp
b25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8ICFleHRl
bnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0IikgfHwgIWV4dGVuc2lv
bnMuc3VwcG9ydHMoIkdMX09FU19yZ2I4X3JnYmE4IikgfHwgaXNHTEVTMkNvbXBsaWFudCgpKQot
ICAgICAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVs
dGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJf
YmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9yZ2JhOCIpKSB7Cisg
ICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAgICAgICAgICAgIHNldENvbnRl
eHRBdHRyaWJ1dGVzKGF0dHJzKTsKKyAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsK
ICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfYmxpdCIpOwogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKCJHTF9PRVNf
cmdiOF9yZ2JhOCIpOwpAQCAtNDM3LDcgKzQ0NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKEltYWdlQnVmZmVyKiBpbWFnZUJ1ZmZlcikK
IAogICAgIHJlYWRSZW5kZXJpbmdSZXN1bHRzKHBpeGVscy5nZXQoKSwgdG90YWxCeXRlcyk7CiAK
LSAgICBpZiAoIW1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKSB7CisgICAgaWYgKCFjb250ZXh0
QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkgewogICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IHRvdGFsQnl0ZXM7IGkgKz0gNCkgewogICAgICAgICAgICAgLy8gUHJlbXVsdGlwbHkg
YWxwaGEuCiAgICAgICAgICAgICBwaXhlbHNbaSArIDBdID0gc3RkOjptaW4oMjU1LCBwaXhlbHNb
aSArIDBdICogcGl4ZWxzW2kgKyAzXSAvIDI1NSk7CkBAIC00NjQsNyArNDcxLDcgQEAgUmVmUHRy
PEltYWdlRGF0YT4gR3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50UmVuZGVyaW5nUmVzdWx0c1RvSW1h
Z2VEYXRhKCkKIHsKICAgICAvLyBSZWFkaW5nIHByZW11bHRpcGxpZWQgYWxwaGEgd291bGQgaW52
b2x2ZSB1bnByZW11bHRpcGx5aW5nLCB3aGljaCBpcwogICAgIC8vIGxvc3N5LgotICAgIGlmICht
X2F0dHJzLnByZW11bHRpcGxpZWRBbHBoYSkKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5w
cmVtdWx0aXBsaWVkQWxwaGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgYXV0byBp
bWFnZURhdGEgPSBJbWFnZURhdGE6OmNyZWF0ZShJbnRTaXplKG1fY3VycmVudFdpZHRoLCBtX2N1
cnJlbnRIZWlnaHQpKTsKQEAgLTQ5MCw3ICs0OTcsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpwcmVwYXJlVGV4dHVyZSgpCiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotICAgIGlm
IChtX2F0dHJzLmFudGlhbGlhcykKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpCiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykKQEAgLTUxNyw3ICs1MjQsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpyZWFkUmVuZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGlu
dCBwaXhlbHNTaQogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCiAgICAgYm9vbCBtdXN0UmVz
dG9yZUZCTyA9IGZhbHNlOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChj
b250ZXh0QXR0cmlidXRlcygpLmFudGlhbGlhcykgewogICAgICAgICByZXNvbHZlTXVsdGlzYW1w
bGluZ0lmTmVjZXNzYXJ5KCk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIG11c3RSZXN0b3JlRkJPID0g
dHJ1ZTsKQEAgLTU2NCwxMSArNTcxLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hh
cGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAgYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRpb24uCiAKICAgICBUZW1w
b3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkU2Npc3NvcihHTF9TQ0lTU09SX1RFU1QsIEdMX0ZBTFNF
KTsKICAgICBUZW1wb3JhcnlBTkdMRVNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xf
RkFMU0UpOwogCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHJlc2hhcGVGQk9zKEludFNpemUo
d2lkdGgsIGhlaWdodCkpOworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwog
CiAgICAgLy8gSW5pdGlhbGl6ZSByZW5kZXJidWZmZXJzIHRvIDAuCiAgICAgR0xmbG9hdCBjbGVh
ckNvbG9yW10gPSB7MCwgMCwgMCwgMH0sIGNsZWFyRGVwdGggPSAwOwpAQCAtNTgwLDE0ICs1ODks
MTQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWln
aHQpCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiAgICAgZ2w6OkdldEJvb2xlYW52
KEdMX0NPTE9SX1dSSVRFTUFTSywgY29sb3JNYXNrKTsKICAgICBnbDo6Q29sb3JNYXNrKEdMX1RS
VUUsIEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7
CisgICAgaWYgKGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIGdsOjpHZXRGbG9hdHYoR0xfREVQVEhf
Q0xFQVJfVkFMVUUsICZjbGVhckRlcHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNs
ZWFyRGVwdGgoMSk7CiAgICAgICAgIGdsOjpHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ss
ICZkZXB0aE1hc2spOwogICAgICAgICBnbDo6RGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBj
bGVhck1hc2sgfD0gR0xfREVQVEhfQlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGdsOjpHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6
OkNsZWFyU3RlbmNpbCgwKTsKICAgICAgICAgZ2w6OkdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJ
VEVNQVNLLCByZWludGVycHJldF9jYXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC02MDEs
MTEgKzYxMCwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwg
aW50IGhlaWdodCkKIAogICAgIGdsOjpDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29s
b3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNsZWFyQ29sb3JbM10pOwogICAgIGdsOjpDb2xvck1hc2so
Y29sb3JNYXNrWzBdLCBjb2xvck1hc2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsK
LSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAg
ICBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhkZXB0aE1hc2spOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgZ2w6OkNsZWFyU3RlbmNpbChjbGVh
clN0ZW5jaWwpOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3Rl
bmNpbE1hc2spOwogICAgICAgICBnbDo6U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVu
Y2lsTWFza0JhY2spOwpAQCAtNjU3LDcgKzY2Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVy
CiAgICAgaWYgKGJ1ZmZlcikKICAgICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAg
ICAgZmJvID0gKG1fYXR0cnMuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsK
KyAgICAgICAgZmJvID0gKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNh
bXBsZUZCTyA6IG1fZmJvKTsKICAgICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAg
ICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcih0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUu
Ym91bmRGQk8gPSBmYm87CkBAIC04MzIsMjQgKzg0MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpjb21waWxlU2hhZGVyRGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50
IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsK
ICAgICB9CiAgICAgZ2w6OkNvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9y
bWF0LCB4LCB5LCB3aWR0aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRl
eFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZz
ZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxl
RkJPKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAo
YXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykg
ewogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCkpOwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29u
dGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICBnbDo6Q29weVRleFN1Yklt
YWdlMkQodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdo
dCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFw
aGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0x
MDM3LDExICsxMDUwLDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlv
bkRpcmVjdChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gZ2V0
QXR0cmliTG9jYXRpb24ocHJvZ3JhbSwgbmFtZSk7CiB9CiAKLUdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKQotewotICAg
IHJldHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptb3ZlRXJyb3Jz
VG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0M0RDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcAppbmRleCA0MThiZjM1YjkyOTczMWJiM2Y5MzkyNzNiZDkxYWQ4Njhm
ZjRhNjE3Li5iYzkzOGI0NDJiODExOGFhYmEzZjQzMzEwNmIxNzdkMGY4Mjc1ZDIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHQz
RENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHQzRENHLmNwcApAQCAtNzcsMjEgKzc3LDIxIEBAIHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBnZXRTb3VyY2VEYXRhRm9ybWF0KHVuc2lnbmVkIGNvbXBvbmVudHNQ
ZXJQCiAgICAgICAgIHsgU291cmNlRm9ybWF0QmFzZVJHQiwgICAgICAgIFNvdXJjZUZvcm1hdEJh
c2VOdW1Gb3JtYXRzLCBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cyB9LCAvLyAzIGNvbXBvbmVu
dHNQZXJQaXhlbAogICAgICAgICB7IFNvdXJjZUZvcm1hdEJhc2VOdW1Gb3JtYXRzLCBTb3VyY2VG
b3JtYXRCYXNlQVJHQiwgICAgICAgU291cmNlRm9ybWF0QmFzZVJHQkEgICAgICAgIH0gLy8gNCBj
b21wb25lbnRzUGVyUGl4ZWwKICAgICB9OwotICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRUYWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11b
NF0gPSB7IC8vIFNvdXJjZURhdGFGb3JtYXRCYXNlIHggYml0c1BlckNvbXBvbmVudCB4IGVuZGlh
bgorICAgIGNvbnN0IHN0YXRpYyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXRU
YWJsZVtTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0c11bNF0gPSB7IC8vIFNvdXJjZURhdGFGb3Jt
YXQ6OkJhc2UgeCBiaXRzUGVyQ29tcG9uZW50IHggZW5kaWFuCiAgICAgICAgIC8vIDhiaXRzLCBs
aXR0bGUgZW5kaWFuICAgICAgICAgICAgICAgICA4Yml0cywgYmlnIGVuZGlhbiAgICAgICAgICAg
ICAgICAgICAgIDE2Yml0cywgbGl0dGxlIGVuZGlhbiAgICAgICAgICAgICAgICAgICAgICAgIDE2
Yml0cywgYmlnIGVuZGlhbgotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsICAgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAg
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTE2TGl0dGxlLCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJp
ZyB9LAotICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVI4LCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkExNkxpdHRsZSwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcgfSwK
LSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
MTZMaXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnIH0sCi0gICAg
ICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCAgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRs
ZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZCaWcgfSwKLSAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEFSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZCaWcgfQorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2QmlnIH0sCisgICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QTgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZMaXR0bGUs
ICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZCaWcgfSwKKyAgICAgICAgeyBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZMaXR0
bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcgfSwKKyAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4LCAgIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcgfSwKKyAgICAg
ICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwgIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QjE2TGl0dGxlLCAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2QmlnIH0sCisg
ICAgICAgIHsgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcg
fSwKKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSR0IxNkxpdHRsZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0Ix
NkJpZyB9CiAgICAgfTsKIAogICAgIEFTU0VSVChjb21wb25lbnRzUGVyUGl4ZWwgPD0gNCAmJiBj
b21wb25lbnRzUGVyUGl4ZWwgPiAwKTsKICAgICBTb3VyY2VEYXRhRm9ybWF0QmFzZSBmb3JtYXRC
YXNlID0gZm9ybWF0VGFibGVCYXNlW2NvbXBvbmVudHNQZXJQaXhlbCAtIDFdW2FscGhhRm9ybWF0
XTsKICAgICBpZiAoZm9ybWF0QmFzZSA9PSBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cykKLSAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0TnVtRm9ybWF0czsKKyAg
ICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpOdW1Gb3JtYXRzOwog
ICAgIHJldHVybiBmb3JtYXRUYWJsZVtmb3JtYXRCYXNlXVsoaXMxNkJpdEZvcm1hdCA/IDIgOiAw
KSArIChiaWdFbmRpYW4gPyAxIDogMCldOwogfQogCkBAIC0xMDYsMTMgKzEwNiwxMyBAQCB1aW50
OF90IGNvbnZlcnRDb2xvcjE2QmlnVG84KHVpbnQxNl90IHZhbHVlKQogICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1aW50OF90Pih2YWx1ZSAmIDB4MDBGRik7CiB9CiAKLXRlbXBsYXRlPGludCBmb3Jt
YXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5cGVuYW1lIERzdFR5cGU+Cit0ZW1wbGF0ZTxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3JtYXQsIHR5cGVuYW1lIFNvdXJjZVR5cGUsIHR5
cGVuYW1lIERzdFR5cGU+CiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBOChjb25zdCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJv
d09mUkdCQTE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cp
OwpAQCAtMTI3LDcgKzEyNyw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZl
cnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnLCB1aW50MTZfdCwgdWludDhf
dD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydENvbG9yMTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTEzOSw3ICsxMzksNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3Qg
dWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICNpZiBIQVZFKEFSTV9ORU9OX0lOVFJJTlNJQ1MpCiAgICAgU0lNRDo6dW5wYWNr
T25lUm93T2ZSR0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVy
Um93KTsKQEAgLTE1NCw3ICsxNTQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9S
R0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnLCB1aW50MTZfdCwgdWlu
dDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2Qmln
LCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBj
b252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMTY2LDcgKzE2Niw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QVJHQjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVu
cGFja09uZVJvd09mQVJHQjE2TGl0dGxlVG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhl
bHNQZXJSb3cpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnLCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFS
R0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9u
WzBdID0gY29udmVydENvbG9yMTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTE5Myw3ICsxOTMsNyBA
QCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihj
b25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4
ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7
ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2TGl0dGxlVG84
KHNvdXJjZVswXSk7CkBAIC0yMDUsNyArMjA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZv
cm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcsIHVpbnQxNl90
LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29u
dmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMF0pOwpAQCAtMjI5LDcgKzIyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMF0pOwpAQCAtMjQxLDcgKzI0MSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChz
b3VyY2VbMV0pOwpAQCAtMjUzLDcgKzI1Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252
ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2
QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBjb252ZXJ0Q29sb3IxNkJpZ1RvOChzb3VyY2VbMV0pOwpAQCAtMjY1LDcgKzI2NSw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjc3LDcgKzI3Nyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0QTE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwg
dWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gMHgwOwpAQCAtMjk2LDIwICsyOTYsMjAgQEAgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IHNy
Y0Zvcm1hdCwgY29uc3QgdWkKICAgICAgICAgcmV0dXJuIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdC
QTg8U3JjRm9ybWF0Pihzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwogCiAgICAg
c3dpdGNoIChzcmNGb3JtYXQpIHsKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2
QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkJpZykKLSAg
ICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
QTE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVIxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9S
R0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcpCi0gICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxp
dHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4
KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2TGl0dGxlKQotICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2
QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0QVJHQjE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JH
QkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JB
OChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlKQorICAgICAgICBDT05W
RVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZC
aWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJBMTZMaXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMTZCaWcpCisgICAgICAgIENPTlZF
UlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSMTZM
aXR0bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2TGl0dGxlKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JN
QVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVJHQjE2QmlnKQogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAgLTQxNywxOCArNDE3LDE4IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX2FscGhhT3Ag
PSBBbHBoYURvTm90aGluZzsKKyAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb05vdGhpbmc7CiAg
ICAgQWxwaGFGb3JtYXQgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdE5vbmU7CiAgICAgc3dpdGNo
IChDR0ltYWdlR2V0QWxwaGFJbmZvKG1fY2dJbWFnZS5nZXQoKSkpIHsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFQcmVtdWx0aXBsaWVkRmlyc3Q6CiAgICAgICAgIGlmICghcHJlbXVsdGlwbHlBbHBo
YSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRpcGx5OworICAgICAgICAg
ICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Vbm11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1h
dCA9IEFscGhhRm9ybWF0Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VB
bHBoYUZpcnN0OgogICAgICAgICAvLyBUaGlzIHBhdGggaXMgb25seSBhY2Nlc3NpYmxlIGZvciBN
YWNPUyBlYXJsaWVyIHRoYW4gMTAuNi40LgogICAgICAgICBpZiAocHJlbXVsdGlwbHlBbHBoYSkK
LSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAgICAgICAg
IG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhhRm9ybWF0
ID0gQWxwaGFGb3JtYXRGaXJzdDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0dJbWFnZUFs
cGhhTm9uZVNraXBGaXJzdDoKQEAgLTQzNywxMiArNDM3LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250
ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhh
LCBib29sCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYVByZW11bHRpcGxp
ZWRMYXN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBtX2Fs
cGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhh
T3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYUxhc3Q6CiAgICAgICAgIGlm
IChwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFEb1ByZW11
bHRpcGx5OworICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9QcmVtdWx0aXBseTsK
ICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1hdExhc3Q7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwTGFzdDoKQEAgLTQ1Niw3ICs0NTYsNyBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wg
cHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgIH0KIAogICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQg
PSBnZXRTb3VyY2VEYXRhRm9ybWF0KGNvbXBvbmVudHNQZXJQaXhlbCwgYWxwaGFGb3JtYXQsIGJp
dHNQZXJDb21wb25lbnQgPT0gMTYsIGJpZ0VuZGlhblNvdXJjZSk7Ci0gICAgaWYgKG1faW1hZ2VT
b3VyY2VGb3JtYXQgPT0gRGF0YUZvcm1hdE51bUZvcm1hdHMpCisgICAgaWYgKG1faW1hZ2VTb3Vy
Y2VGb3JtYXQgPT0gRGF0YUZvcm1hdDo6TnVtRm9ybWF0cykKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgbV9waXhlbERhdGEgPSBhZG9wdENGKENHRGF0YVByb3ZpZGVyQ29weURhdGEoQ0dJ
bWFnZUdldERhdGFQcm92aWRlcihtX2NnSW1hZ2UuZ2V0KCkpKSk7CkBAIC00OTAsNyArNDkwLDcg
QEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShi
b29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wKICAgICAgICAgICAgIGRlc3RpbmF0aW9uICs9IGRz
dFN0cmlkZUluRWxlbWVudHM7CiAgICAgICAgIH0KICAgICAgICAgbV9pbWFnZVBpeGVsRGF0YSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qgdm9pZCo+KG1fZm9ybWFsaXplZFJHQkE4RGF0YS5nZXQo
KSk7Ci0gICAgICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0UkdCQTg7CisgICAg
ICAgIG1faW1hZ2VTb3VyY2VGb3JtYXQgPSBEYXRhRm9ybWF0OjpSR0JBODsKICAgICAgICAgbV9p
bWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IDE7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhp
Y3NDb250ZXh0M0RDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dDNEQ29jb2EubW0KaW5kZXggZGE2YjNiNmQyNmQ5ZTE0MGQ5MDcy
ZDFkYjViZTY0NDUwMzE1YWMxYS4uYzY0OTY3NGFkMmY4ODA3YzViZWI1OGM3Njc5NGE1Y2IyOGY4
OGI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tCkBAIC0xMDIsMTAgKzEwMiwx
MCBAQCBwdWJsaWM6CiAgICAgfkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZSgpIHsgfQogfTsKIAot
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorUmVmUHRyPEdyYXBoaWNz
Q29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0
cmlidXRlcyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6
OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogewogICAgIC8vIFRoaXMgaW1wbGVtZW50YXRpb24g
ZG9lc24ndCBjdXJyZW50bHkgc3VwcG9ydCByZW5kZXJpbmcgZGlyZWN0bHkgdG8gdGhlIEhvc3RX
aW5kb3cuCi0gICAgaWYgKHJlbmRlclN0eWxlID09IFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
KQorICAgIGlmIChkZXN0aW5hdGlvbiA9PSBEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5k
b3cpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhl
IGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KQEAgLTExMyw3ICsxMTMsNyBAQCBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0M0RBdHRyaWJ1dGVzCiAgICAgaWYgKEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCA9IGFkb3B0UmVmKG5l
dyBHcmFwaGljc0NvbnRleHQzRChhdHRycywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAg
ICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhp
Y3NDb250ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICAgICBpZiAo
IWNvbnRleHQtPm1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xMjYs
NyArMTI2LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6
Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogUmVmPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlU2hhcmVkKEdyYXBoaWNzQ29udGV4dDNEJiBzaGFy
ZWRDb250ZXh0KQogewogICAgIGF1dG8gaG9zdFdpbmRvdyA9IEdyYXBoaWNzQ29udGV4dDNETWFu
YWdlcjo6c2hhcmVkTWFuYWdlcigpLmhvc3RXaW5kb3dGb3JDb250ZXh0KCZzaGFyZWRDb250ZXh0
KTsKLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNzQ29udGV4dDNEKHNo
YXJlZENvbnRleHQuZ2V0Q29udGV4dEF0dHJpYnV0ZXMoKSwgaG9zdFdpbmRvdywgc2hhcmVkQ29u
dGV4dC5tX3JlbmRlclN0eWxlLCAmc2hhcmVkQ29udGV4dCkpOworICAgIGF1dG8gY29udGV4dCA9
IGFkb3B0UmVmKCpuZXcgR3JhcGhpY3NDb250ZXh0M0Qoc2hhcmVkQ29udGV4dC5jb250ZXh0QXR0
cmlidXRlcygpLCBob3N0V2luZG93LCBzaGFyZWRDb250ZXh0LmRlc3RpbmF0aW9uKCksICZzaGFy
ZWRDb250ZXh0KSk7CiAKICAgICBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5hZGRDb250ZXh0KGNvbnRleHQucHRyKCksIGhvc3RXaW5kb3cpOwogCkBAIC0xODMsOCAr
MTgzLDggQEAgc3RhdGljIHZvaWQgc2V0R1BVQnlSZWdpc3RyeUlEKENHTENvbnRleHRPYmogY29u
dGV4dE9iaiwgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWwKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1B
QykgJiYgKFVTRShPUEVOR0wpIHx8IFVTRShBTkdMRSkpCiAKLUdyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSwgR3JhcGhp
Y3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJzKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRycywgSG9zdFdpbmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKKyAg
ICA6IEdyYXBoaWNzQ29udGV4dDNEQmFzZShhdHRycywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRl
eHQpCiAgICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
KHRoaXMpKQogewogCkBAIC0yMDAsMzAgKzIwMCwzNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3Jh
cGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2lu
ZAogICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIGlmIChtX2F0dHJz
LmlzV2ViR0wyKQorICAgIGlmIChhdHRycy5pc1dlYkdMMikKICAgICAgICAgbV9jb21waWxlciA9
IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBTSF9XRUJHTDJfU1BFQyk7CiAgICAg
ZWxzZQogICAgICAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQ
VVQpOwogI2Vsc2UKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9HTFNMXzQx
MF9DT1JFX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogI2VuZGlmIC8vIFVTRShPUEVOR0xfRVMp
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgVU5VU0VE
X1BBUkFNKGhvc3RXaW5kb3cpOwotICAgIEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gbV9hdHRycy5p
c1dlYkdMMiA/IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElP
cGVuR0xFUzI7CisgICAgRUFHTFJlbmRlcmluZ0FQSSBhcGkgPSBhdHRycy5pc1dlYkdMMiA/IGtF
QUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMzIDoga0VBR0xSZW5kZXJpbmdBUElPcGVuR0xFUzI7Cisg
ICAgRUFHTENvbnRleHQgKmNvbnRleHRPYmo7CiAgICAgaWYgKCFzaGFyZWRDb250ZXh0KQotICAg
ICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTphcGld
OworICAgICAgICBjb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10gaW5pdFdpdGhBUEk6
YXBpXTsKICAgICBlbHNlCi0gICAgICAgIG1fY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxs
b2NdIGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnNoYXJlZENvbnRleHQtPm1fY29udGV4dE9i
ai5zaGFyZWdyb3VwXTsKKyAgICAgICAgY29udGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2Nd
IGluaXRXaXRoQVBJOmFwaSBzaGFyZWdyb3VwOnN0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KHNo
YXJlZENvbnRleHQtPm1fY29udGV4dE9iaikuc2hhcmVncm91cF07CisKKyAgICBtX2NvbnRleHRP
YmogPSBzdGF0aWNfY2FzdDx2b2lkICo+KGNvbnRleHRPYmopOworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAgICBpZiAoYXR0cnMuaXNX
ZWJHTDIpCiAgICAgICAgIDo6Z2xFbmFibGUoR3JhcGhpY3NDb250ZXh0M0Q6OlBSSU1JVElWRV9S
RVNUQVJUX0ZJWEVEX0lOREVYKTsKICNlbGlmIFVTRShPUEVOR0wpCiAKLSAgICBib29sIHVzZU11
bHRpc2FtcGxpbmcgPSBtX2F0dHJzLmFudGlhbGlhczsKKyAgICBib29sIHVzZU11bHRpc2FtcGxp
bmcgPSBhdHRycy5hbnRpYWxpYXM7CiAKICAgICBWZWN0b3I8Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1
dGU+IGF0dHJpYnM7CiAgICAgQ0dMUGl4ZWxGb3JtYXRPYmogcGl4ZWxGb3JtYXRPYmogPSAwOwpA
QCAtMjUwLDcgKzI1NCw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgICAgIGF0dHJp
YnMuYXBwZW5kKHN0YXRpY19jYXN0PENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPig0KSk7CiAgICAg
fQogCi0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIp
IHsKICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2YgYmFja2luZyBhIFdlYkdMMiBHcmFwaGlj
c0NvbnRleHQzRCB3aXRoIGEgT3BlbkdMIDQgY29udGV4dCwgd2Ugc2hvdWxkIGluc3RlYWQgYmFj
ayBpdCB3aXRoIEFOR0xFLgogICAgICAgICAvLyBVc2UgYW4gT3BlbkdMIDQgY29udGV4dCBmb3Ig
bm93IHVudGlsIHRoZSBBTkdMRSBiYWNrZW5kIGlzIHJlYWR5LgogICAgICAgICBhdHRyaWJzLmFw
cGVuZChrQ0dMUEZBT3BlbkdMUHJvZmlsZSk7CkBAIC0yNjQsMzAgKzI2OCwzNyBAQCBHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
IGF0dHJzLCBIb3N0V2luZAogICAgIGlmICghbnVtUGl4ZWxGb3JtYXRzKQogICAgICAgICByZXR1
cm47CiAKLSAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0T2Jq
LCBzaGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqIDogbnVsbHB0ciwg
Jm1fY29udGV4dE9iaik7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gbnVsbHB0cjsK
KyAgICBDR0xDb250ZXh0T2JqIHNoYXJlZENHTENvbnRleHQgPSBzaGFyZWRDb250ZXh0ID8gc3Rh
dGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oc2hhcmVkQ29udGV4dC0+bV9jb250ZXh0T2JqKSA6IG51
bGxwdHI7CisKKyAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVDb250ZXh0KHBpeGVsRm9ybWF0
T2JqLCBzaGFyZWRDR0xDb250ZXh0LCAmY2dsQ29udGV4dCk7CiAgICAgR0xpbnQgYWJvcnRPbkJs
YWNrbGlzdCA9IDA7Ci0gICAgQ0dMU2V0UGFyYW1ldGVyKG1fY29udGV4dE9iaiwga0NHTENQQWJv
cnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFib3J0T25CbGFja2xpc3QpOwotICAg
IAorICAgIENHTFNldFBhcmFtZXRlcihjZ2xDb250ZXh0LCBrQ0dMQ1BBYm9ydE9uR1BVUmVzdGFy
dFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlzdCk7CisKICNpZiBQTEFURk9STShN
QUMpIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IHNob3VsZCBiZSBVU0UoT1BFTkdMKSAtIHNlZSA8
cmRhcjovLzUzMDYyNzk0Pi4KIAogICAgIGF1dG8gZ3B1SUQgPSAoaG9zdFdpbmRvdyAmJiBob3N0
V2luZG93LT5kaXNwbGF5SUQoKSkgPyBncHVJREZvckRpc3BsYXkoaG9zdFdpbmRvdy0+ZGlzcGxh
eUlEKCkpIDogcHJpbWFyeUdQVUlEKCk7Ci0gICAgc2V0R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4
dE9iaiwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKKyAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQoY2ds
Q29udGV4dCwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKIAogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0oaG9zdFdpbmRvdyk7CiAjZW5kaWYKIAogICAgIENHTERlc3Ryb3lQaXhlbEZvcm1hdChwaXhl
bEZvcm1hdE9iaik7Ci0gICAgCisKKyAgICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OworCiAg
ICAgaWYgKGVyciAhPSBrQ0dMTm9FcnJvciB8fCAhbV9jb250ZXh0T2JqKSB7CiAgICAgICAgIC8v
IFdlIHdlcmUgdW5hYmxlIHRvIGNyZWF0ZSB0aGUgY29udGV4dC4KICAgICAgICAgbV9jb250ZXh0
T2JqID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1faXNGb3JXZWJHTDIgPSBt
X2F0dHJzLmlzV2ViR0wyOworICAgIG1fY29udGV4dE9iaiA9IGNnbENvbnRleHQ7CisKKyAgICBt
X2lzRm9yV2ViR0wyID0gYXR0cnMuaXNXZWJHTDI7CiAKLSAgICBDR0xTZXRDdXJyZW50Q29udGV4
dChtX2NvbnRleHRPYmopOworICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwog
CiAgICAgLy8gV2ViR0wgMiBleHBlY3RzIEVTIDMtb25seSBQUklNSVRJVkVfUkVTVEFSVF9GSVhF
RF9JTkRFWCB0byBiZSBlbmFibGVkOyB3ZSBtdXN0IGVtdWxhdGUgdGhpcyBvbiBub24tRVMgMyBz
eXN0ZW1zLgogICAgIGlmIChtX2lzRm9yV2ViR0wyKQpAQCAtMzM0LDcgKzM0NSw3IEBAIEdyYXBo
aWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgfQogCiAgICAgc3RkOjp2ZWN0b3I8RUdMaW50PiBjb250
ZXh0QXR0cmlidXRlczsKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikgeworICAgIGlmIChhdHRy
cy5pc1dlYkdMMikgewogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soRUdMX0NP
TlRFWFRfQ0xJRU5UX1ZFUlNJT04pOwogICAgICAgICBjb250ZXh0QXR0cmlidXRlcy5wdXNoX2Jh
Y2soMyk7CiAgICAgfSBlbHNlIHsKQEAgLTM5Niw2ICs0MDcsNyBAQCBHcmFwaGljc0NvbnRleHQz
RDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBI
b3N0V2luZAogI2VuZGlmIC8vICNlbGlmIFVTRShBTkdMRSkKIAogICAgIHZhbGlkYXRlQXR0cmli
dXRlcygpOworICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2
ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgLy8gQ3JlYXRlIHRoZSBXZWJHTExh
eWVyCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCkBAIC00NTEsMTYgKzQ2MywxNiBA
QCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RB
dHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xf
RlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAKICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87
Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0
cnMuZGVwdGgpKQorICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRycy5zdGVuY2lsIHx8
IGF0dHJzLmRlcHRoKSkKICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fZGVw
dGhTdGVuY2lsQnVmZmVyKTsKIAogICAgIC8vIElmIG5lY2Vzc2FyeSwgY3JlYXRlIGFub3RoZXIg
ZnJhbWVidWZmZXIgZm9yIHRoZSBtdWx0aXNhbXBsZSByZXN1bHRzLgotICAgIGlmIChtX2F0dHJz
LmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbEdl
bkZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRkJPKTsKICAg
ICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgIDo6Z2xH
ZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgOjpnbEdlblJlbmRlcmJ1ZmZl
cnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0KICNlbGlm
IFVTRShBTkdMRSkKQEAgLTQ2OCwxNiArNDgwLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5k
CiAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIG1f
c3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKIAotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkKKyAgICBpZiAoIWF0dHJzLmFudGlh
bGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkpCiAgICAgICAgIGdsOjpHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAKICAgICAvLyBJZiBuZWNl
c3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZvciB0aGUgbXVsdGlzYW1wbGUgcmVz
dWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFs
aWFzKSB7CiAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8p
OwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2Ft
cGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
IGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgZ2w6OkdlblJl
bmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0K
IApAQCAtNTI3LDEyICs1MzksMTUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRl
eHQzRCgpCiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVt
b3ZlQ29udGV4dCh0aGlzKTsKIAogICAgIGlmIChtX2NvbnRleHRPYmopIHsKKyAgICAgICAgR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwog
I2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgICAg
ICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6R0xfUkVOREVSQlVGRkVSIGZyb21E
cmF3YWJsZTpuaWxdOworICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250
ZXh0T2JqKSByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6
bmlsXTsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fdGV4dHVyZSk7CiAj
ZWxpZiBVU0UoT1BFTkdMKQotICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRP
YmopOworICAgICAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xD
b250ZXh0T2JqPihtX2NvbnRleHRPYmopOworICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dChj
Z2xDb250ZXh0KTsKICAgICAgICAgOjpnbERlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOwog
I2VsaWYgVVNFKEFOR0xFKQogICAgICAgICBFR0xfTWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBF
R0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fY29udGV4dE9iaik7CkBAIC01NDAsMjQg
KzU1NSwyNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICNlbmRp
ZgogCiAjaWYgVVNFKE9QRU5HTCkgfHwgVVNFKE9QRU5HTF9FUykKLSAgICAgICAgaWYgKG1fYXR0
cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAg
ICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZm
ZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQor
ICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpCiAgICAgICAgICAg
ICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbERlbGV0ZUZyYW1lYnVmZmVyc0VYVCgxLCAm
bV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICA6OmdsRGVsZXRlUmVuZGVyYnVm
ZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6
Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsKICNlbGlmIFVTRShBTkdMRSkKLSAg
ICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2Ft
cGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgp
CiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6RGVsZXRlUmVu
ZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAg
IGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKQEAgLTU2NSwxMCArNTgwLDEwIEBA
IEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogCiAjaWYgVVNFKE9QRU5H
TF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OjBdOwotICAgICAg
ICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRleHRPYmopIHJlbGVhc2VdOworICAg
ICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsK
ICNlbGlmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNldEN1cnJlbnRDb250ZXh0KDApOwotICAg
ICAgICBDR0xEZXN0cm95Q29udGV4dChtX2NvbnRleHRPYmopOworICAgICAgICBDR0xEZXN0cm95
Q29udGV4dChjZ2xDb250ZXh0KTsKICNlbGlmIFVTRShBTkdMRSkKICAgICAgICAgRUdMX01ha2VD
dXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xf
Tk9fQ09OVEVYVCk7CiAgICAgICAgIEVHTF9EZXN0cm95Q29udGV4dChtX2Rpc3BsYXlPYmosIG1f
Y29udGV4dE9iaik7CkBAIC01ODcsOSArNjAyLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShHQzNEc2l6ZWkgd2lkdGgsIEdDM0QK
ICAgICBDR1JlY3QgcHJldmlvdXNCb3VuZHMgPSBbbV93ZWJHTExheWVyLmdldCgpIGJvdW5kc107
CiAKICAgICBbbV93ZWJHTExheWVyIHNldEJvdW5kczpDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBo
ZWlnaHQpXTsKLSAgICBbbV93ZWJHTExheWVyIHNldE9wYXF1ZTohbV9hdHRycy5hbHBoYV07Cisg
ICAgW21fd2ViR0xMYXllciBzZXRPcGFxdWU6IWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwog
Ci0gICAgW21fY29udGV4dE9iaiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBm
cm9tRHJhd2FibGU6c3RhdGljX2Nhc3Q8aWQ8RUFHTERyYXdhYmxlPj4obV93ZWJHTExheWVyLmdl
dCgpKV07CisgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVu
ZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOnN0YXRpY19jYXN0
PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQoKSldOwogCiAgICAgW21fd2ViR0xM
YXllciBzZXRCb3VuZHM6cHJldmlvdXNCb3VuZHNdOwogfQpAQCAtNjA2LDcgKzYyMSw3IEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAjZWxpZiBVU0UoT1BF
TkdMKQogICAgIENHTENvbnRleHRPYmogY3VycmVudENvbnRleHQgPSBDR0xHZXRDdXJyZW50Q29u
dGV4dCgpOwogICAgIGlmIChjdXJyZW50Q29udGV4dCAhPSBtX2NvbnRleHRPYmopCi0gICAgICAg
IHJldHVybiBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRPYmopID09IGtDR0xOb0Vycm9y
OworICAgICAgICByZXR1cm4gQ0dMU2V0Q3VycmVudENvbnRleHQoc3RhdGljX2Nhc3Q8Q0dMQ29u
dGV4dE9iaj4obV9jb250ZXh0T2JqKSkgPT0ga0NHTE5vRXJyb3I7CiAjZWxpZiBVU0UoQU5HTEUp
CiAgICAgaWYgKEVHTF9HZXRDdXJyZW50Q29udGV4dCgpICE9IG1fY29udGV4dE9iaikKICAgICAg
ICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChtX2Rpc3BsYXlPYmosIEVHTF9OT19TVVJGQUNFLCBF
R0xfTk9fU1VSRkFDRSwgbV9jb250ZXh0T2JqKTsKQEAgLTYzOCw3ICs2NTMsOCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAKICAgICBHTGludCByZXN0YXJ0U3Rh
dHVzID0gMDsKICNpZiBVU0UoT1BFTkdMKQotICAgIENHTEdldFBhcmFtZXRlcihwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRTdGF0dXMsICZyZXN0YXJ0U3RhdHVz
KTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0
T2JqPihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTEdldFBhcmFtZXRlcihj
Z2xDb250ZXh0LCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CiAgICAg
aWYgKHJlc3RhcnRTdGF0dXMgPT0ga0NHTENQR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkKSB7
CiAgICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUgaGFzIGJsYWNrbGlzdGVkIHVzICglcCkuIFRl
cm1pbmF0aW5nLiIsIHRoaXMpOwogICAgICAgICBleGl0KEVYX09TRVJSKTsKQEAgLTY2Niw3ICs2
ODIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKCkKIHsKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNvbnRleHRB
dHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVj
ZXNzYXJ5KCk7CiAKICAgICA6OmdsRmx1c2goKTsKQEAgLTY3OSw5ICs2OTUsMTAgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50
ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0g
Zm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYgc3VyZmFjZSwgR0MzRHVpbnQgcGxh
bmUpCiB7CiAjaWYgVVNFKE9QRU5HTCkKLSAgICByZXR1cm4ga0NHTE5vRXJyb3IgPT0gQ0dMVGV4
SW1hZ2VJT1N1cmZhY2UyRChwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIHRhcmdldCwgaW50
ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUp
OworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRP
Ymo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgcmV0dXJuIGtDR0xOb0Vycm9y
ID09IENHTFRleEltYWdlSU9TdXJmYWNlMkQoY2dsQ29udGV4dCwgdGFyZ2V0LCBpbnRlcm5hbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBzdXJmYWNlLCBwbGFuZSk7CiAjZWxp
ZiBVU0UoT1BFTkdMX0VTKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpCi0gICAg
cmV0dXJuIFtwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgdGV4SW1hZ2VJT1N1cmZhY2U6c3Vy
ZmFjZSB0YXJnZXQ6dGFyZ2V0IGludGVybmFsRm9ybWF0OmludGVybmFsRm9ybWF0IHdpZHRoOndp
ZHRoIGhlaWdodDpoZWlnaHQgZm9ybWF0OmZvcm1hdCB0eXBlOnR5cGUgcGxhbmU6cGxhbmVdOwor
ICAgIHJldHVybiBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4ocGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJmYWNlIHRhcmdldDp0YXJnZXQgaW50ZXJu
YWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lkdGggaGVpZ2h0OmhlaWdodCBmb3JtYXQ6
Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh0
YXJnZXQpOwogICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZvcm1hdCk7CkBAIC02OTksNyArNzE2
LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1hZ2VJT1N1cmZhY2UyRChHQzNEZW51
bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm8KIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFs
bG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUgc2l6ZSkKIHsKICAgICBMT0coV2Vi
R0wsICJHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUgYXQg
JWQgeCAlZC4gKCVwKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgdGhpcyk7Ci0gICAg
W21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUg
dXNpbmdBbHBoYTptX2F0dHJzLmFscGhhXTsKKyAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9T
dXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOmNvbnRleHRBdHRyaWJ1
dGVzKCkuYWxwaGFdOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp1cGRhdGVGcmFtZWJ1
ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5ZXIoKQpAQCAtNzE2LDcgKzczMyw3IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OnVwZGF0ZUNHTENvbnRleHQoKQogICAgIExPRyhXZWJHTCwg
IkRldGVjdGVkIGEgbXV4IHN3aXRjaCBvciBkaXNwbGF5IHJlY29uZmlndXJhdGlvbi4gQ2FsbCBD
R0xVcGRhdGVDb250ZXh0LiAoJXApIiwgdGhpcyk7CiAKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKLSAgICBDR0xVcGRhdGVDb250ZXh0KG1fY29udGV4dE9iaik7CisgICAgQ0dMVXBkYXRlQ29u
dGV4dChzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihtX2NvbnRleHRPYmopKTsKICAgICBtX2hh
c1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUgPSB0cnVlOwogfQogCkBAIC03NTksNyArNzc2
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3Rv
cmUoSW50U2l6ZSBzaXplKQogewogI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIExPRyhXZWJHTCwg
IkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZSBhdCAlZCB4
ICVkLiAoJXApIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCB0aGlzKTsKLSAgICBbbV93
ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2lu
Z0FscGhhOm1fYXR0cnMuYWxwaGFdOworICAgIFttX3dlYkdMTGF5ZXIgYWxsb2NhdGVJT1N1cmZh
Y2VCYWNraW5nU3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxwaGE6Y29udGV4dEF0dHJpYnV0ZXMo
KS5hbHBoYV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShzaXplKTsKICNlbmRpZgpAQCAtNzc5
LDE0ICs3OTYsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjppc0dMRVMyQ29tcGxpYW50KCkg
Y29uc3QKICAgICByZXR1cm4gbV9pc0ZvcldlYkdMMjsKIH0KIAotdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dExvc3RD
YWxsYmFjaz4pCi17Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldEVycm9yTWVzc2Fn
ZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VDYWxsYmFjaz4pCi17Ci19Ci0K
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNpbXVsYXRlQ29udGV4dENoYW5nZWQoKQogewogICAg
IEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnVwZGF0ZUFsbENvbnRl
eHRzKCk7CkBAIC04MzQsOCArODQzLDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjcmVl
bkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgfQogI2Vsc2UKICNp
ZiBVU0UoT1BFTkdMKQotICAgIGlmICghbV9oYXNTd2l0Y2hlZFRvSGlnaFBlcmZvcm1hbmNlR1BV
KQotICAgICAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQobV9jb250ZXh0T2JqLCBDR0xHZXRQaXhlbEZv
cm1hdChtX2NvbnRleHRPYmopLCBncHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgaWYg
KCFtX2hhc1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUpIHsKKyAgICAgICAgQ0dMQ29udGV4
dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2Jq
KTsKKyAgICAgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENvbnRleHQsIENHTEdldFBpeGVsRm9y
bWF0KGNnbENvbnRleHQpLCBncHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7CisgICAgfQogI2Vu
ZGlmCiAjZW5kaWYgLy8gVVNFKEFOR0xFKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0KaW5kZXggZDhlODUwMDkwZmM3Yzli
ZTVlY2JjY2U5N2EwZDE3OWNlMzU3MmZjNC4uNTU0OTRlZDBlZTJkZTFhMmIwMWQwZDAzNjcwMDhj
ZmQ4Mzg1ZTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC03MCwxMyArNzAsMTQgQEAgY29uc3QgR0xlbnVtIGlv
U3VyZmFjZVRleHR1cmVUeXBlID0gR0xfVEVYVFVSRV8yRDsKIHsKICAgICBfY29udGV4dCA9IGNv
bnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9
IGNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2aWNlUGl4ZWxSYXRpbzsKKyAgICBh
dXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpOworICAgIF9kZXZp
Y2VQaXhlbFJhdGlvID0gYXR0cmlidXRlcy5kZXZpY2VQaXhlbFJhdGlvOwogI2lmIFVTRShPUEVO
R0wpIHx8IFVTRShBTkdMRSkKLSAgICBzZWxmLmNvbnRlbnRzT3BhcXVlID0gIWNvbnRleHQtPmdl
dENvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CisgICAgc2VsZi5jb250ZW50c09wYXF1ZSA9ICFh
dHRyaWJ1dGVzLmFscGhhOwogICAgIHNlbGYudHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRElkZW50
aXR5OwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IF9kZXZpY2VQaXhlbFJhdGlvOwogI2Vsc2UK
LSAgICBzZWxmLm9wYXF1ZSA9ICFjb250ZXh0LT5nZXRDb250ZXh0QXR0cmlidXRlcygpLmFscGhh
OworICAgIHNlbGYub3BhcXVlID0gIWF0dHJpYnV0ZXMuYWxwaGE7CiAjZW5kaWYKICAgICByZXR1
cm4gc2VsZjsKIH0KQEAgLTExMiw3ICsxMTMsOCBAQCBzdGF0aWMgdm9pZCBmcmVlRGF0YSh2b2lk
ICosIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogI2lmIFVTRShPUEVOR0wpCi0gICAgQ0dMU2V0Q3VycmVudENvbnRleHQoX2Nv
bnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMQ29udGV4dE9iaiBj
Z2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oX2NvbnRleHQtPnBsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoY2dsQ29udGV4
dCk7CiAKICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVmPiBpbWFnZUNvbG9yU3BhY2UgPSBj
b2xvclNwYWNlOwogICAgIGlmICghaW1hZ2VDb2xvclNwYWNlKQpAQCAtMjUxLDcgKzI1Myw4IEBA
IHN0YXRpYyB2b2lkIGZyZWVEYXRhKHZvaWQgKiwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IC8q
IHNpemUgKi8pCiAgICAgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQgPSBfdXNpbmdBbHBoYSA/IEdM
X1JHQkEgOiBHTF9SR0I7CiAKICAgICAvLyBMaW5rIHRoZSBJT1N1cmZhY2UgdG8gdGhlIHRleHR1
cmUuCi0gICAgQ0dMRXJyb3IgZXJyb3IgPSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKF9jb250ZXh0
LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwg
aW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXplLndpZHRoKCksIF9idWZmZXJTaXplLmhlaWdodCgp
LCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYsIGlvU3VyZmFjZSwgMCk7Cisg
ICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4o
X2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMRXJyb3IgZXJy
b3IgPSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKGNnbENvbnRleHQsIEdMX1RFWFRVUkVfUkVDVEFO
R0xFX0FSQiwgaW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXplLndpZHRoKCksIF9idWZmZXJTaXpl
LmhlaWdodCgpLCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9SRVYsIGlvU3VyZmFj
ZSwgMCk7CiAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgZXJyb3IgPT0ga0NHTE5vRXJyb3IpOwog
I2VsaWYgVVNFKEFOR0xFKQogICAgIEdDM0RlbnVtIHRleHR1cmUgPSBfY29udGV4dC0+cGxhdGZv
cm1UZXh0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2N2L1RleHR1cmVDYWNoZUNWLm1tCmluZGV4IDAxOWQyMzk1MTdkODJiYzJlYmYzZGI2NTY2YzNm
YWQzYTU4MGZkYTEuLmY1MmZlM2RhOGU5YmVmNjdkYmM0OTYwNWZjYTc5Y2U0Njk0MzRjMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNo
ZUNWLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVD
YWNoZUNWLm1tCkBAIC0zOCw5ICszOCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8VGV4dHVyZUNhY2hl
Q1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleAogewog
ICAgIFRleHR1cmVDYWNoZVR5cGUgY2FjaGUgPSBudWxscHRyOwogI2lmIFVTRShPUEVOR0xfRVMp
Ci0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENWRUFHTENvbnRleHQgZWFnbENvbnRleHQgPSBz
dGF0aWNfY2FzdDxDVkVBR0xDb250ZXh0Pihjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
M0QoKSk7CisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4dHVyZUNhY2hlQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGVhZ2xDb250ZXh0LCBudWxscHRyLCAmY2Fj
aGUpOwogI2VsaWYgVVNFKE9QRU5HTCkKLSAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4
dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhlbEZvcm1hdChjb250ZXh0LnBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZjYWNoZSk7CisgICAgQ0dMQ29udGV4
dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oY29udGV4dC5wbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENWUmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xU
ZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbnVsbHB0ciwgY2dsQ29udGV4
dCwgQ0dMR2V0UGl4ZWxGb3JtYXQoY2dsQ29udGV4dCksIG51bGxwdHIsICZjYWNoZSk7CiAjZWxp
ZiBVU0UoQU5HTEUpCiAgICAgLy8gRklYTUU6IGZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoaXMgaW50
ZWdyYXRpbmcgdmlhIEFOR0xFLgogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29z
aWFHQzNEQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCmluZGV4IDQ3Y2Y1ZDEzNTNl
YjJkM2JlZmZkOGViODNjMjYxZTc1OGVlNDJlOTcuLmFhM2RlYTBhOTI4NTJlZjlmMzhjZGU2NDZi
NjA4MDFhZDJmZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdM
RUxheWVyLmNwcApAQCAtMTc0LDE5ICsxNzQsMTkgQEAgYm9vbCBHQzNEQU5HTEVMYXllcjo6QU5H
TEVDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi1Q
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBs
YXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVy
OjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
Y29udGV4dDsKIH0KIAotR0MzREFOR0xFTGF5ZXI6OkdDM0RBTkdMRUxheWVyKEdyYXBoaWNzQ29u
dGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5
bGUpCitHQzNEQU5HTEVMYXllcjo6R0MzREFOR0xFTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNv
bnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbikKICAgICA6
IEdDM0RMYXllcihjb250ZXh0KQogewotICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CisgICAgc3dpdGNoIChkZXN0
aW5hdGlvbikgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpPZmZz
Y3JlZW46CiAgICAgICAgIG1fYW5nbGVDb250ZXh0ID0gQU5HTEVDb250ZXh0OjpjcmVhdGVDb250
ZXh0KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRl
ckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIwMyw3ICsyMDMsNyBAQCBib29sIEdDM0RB
TkdMRUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogCiB9CiAKLVBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QgR0MzREFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBo
aWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fYW5nbGVDb250ZXh0LT5w
bGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxh
eWVyLmgKaW5kZXggYmMyZjZlZmM3OGFjMjVhNDBjNGZhMmI5Y2ZkOWI4YjJkZWZjMTRlYy4uZWM0
N2VhZGYyZTkxNjUwYTJlZWJkZjY2N2I4NWRiYzMwMDczNGEzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdM
RUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgog
CiAgICAgICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAjaWYgRU5BQkxFKEdSQVBISUNT
X0NPTlRFWFRfM0QpCi0gICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1D
b250ZXh0KCk7CisgICAgICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250
ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6CkBAIC03MywxMSArNzMsMTEgQEAg
cHVibGljOgogICAgICAgICBFR0xTdXJmYWNlIG1fc3VyZmFjZSB7IG51bGxwdHIgfTsKICAgICB9
OwogCi0gICAgR0MzREFOR0xFTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIEdDM0RBTkdMRUxheWVy
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OkRlc3RpbmF0aW9uKTsKICAgICB2aXJ0dWFsIH5HQzNEQU5HTEVMYXllcigpOwogCiAgICAgYm9v
bCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEFOR0xFQ29udGV4dD4gbV9hbmdsZUNvbnRleHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCmluZGV4IGJkYTY1ODhhZjkyMDRhMGFhMGVm
Zjk4ZWYwYzEwYzIwNWU0OWIxMjEuLjE2YTE0NTNjMmI5Y2MxZDE2MTJlZDNhMWU0YzYzYjZhMWRl
YzUwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29z
aWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCkBAIC01Mywx
NSArNTMsMTUgQEAgR0MzRExheWVyOjpHQzNETGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRl
eHQpCiB7CiB9CiAKLUdDM0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250
ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitHQzNETGF5
ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0
M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiAg
ICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50TGF5ZXI6OmNyZWF0ZShOaWNvc2lh
OjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3JlYXRlRmFjdG9yeSgqdGhpcykpKQog
ewotICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJPZmZzY3JlZW46CisgICAgc3dpdGNoIChkZXN0aW5hdGlvbikgeworICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpPZmZzY3JlZW46CiAgICAgICAgIG1fZ2xD
b250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5Db250ZXh0KCZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKICAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3c6CisgICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQpA
QCAtNzgsNyArNzgsNyBAQCBib29sIEdDM0RMYXllcjo6bWFrZUNvbnRleHRDdXJyZW50KCkKICAg
ICByZXR1cm4gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpOwogfQogCi1QbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIEdDM0RMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkKK1BsYXRmb3Jt
R3JhcGhpY3NDb250ZXh0M0QgR0MzRExheWVyOjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBHQzNETGF5ZXI6OnN3YXBCdWZmZXJz
SWZOZWVkZWQoKQogCiAgICAgbV9jb250ZXh0LnByZXBhcmVUZXh0dXJlKCk7CiAgICAgSW50U2l6
ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQubV9jdXJyZW50V2lkdGgsIG1fY29udGV4dC5tX2N1cnJl
bnRIZWlnaHQpOwotICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRleHQu
bV9hdHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwOworICAgIFRl
eHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMo
KS5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxlbmQgOiAwOwogI2lmIFVTRShBTkdM
RSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VC
dWZmZXI6OmNyZWF0ZSh0ZXh0dXJlU2l6ZSwgVW5hY2NlbGVyYXRlZCk7CiAgICAgaWYgKCFpbWFn
ZUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25p
Y29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaAppbmRleCAzMjZkNmU1
NTA2ZTZlOTI3ZTQwZDZmNTYyNDg1NzFiYWM5ZGUzZDg5Li5lODU3MjE3N2RhZmNhYWNhYjNlYTIz
MDlkNDg0YmMzOTA0Mjc4YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5o
CkBAIC00NCwxMyArNDQsMTMgQEAgY2xhc3MgR0MzRExheWVyIDogcHVibGljIENvbnRlbnRMYXll
clRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIGV4cGxpY2l0IEdDM0RMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRCYpOwotICAgIEdDM0RMYXllcihXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCYsIFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CisgICAgR0MzRExheWVyKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkRlc3Rp
bmF0aW9uKTsKIAogICAgIHZpcnR1YWwgfkdDM0RMYXllcigpOwogCiAgICAgQ29udGVudExheWVy
JiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRMYXllcjsgfQogICAgIHZp
cnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtR3Jh
cGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7CisgICAgdmlydHVhbCBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwogCiAgICAgdm9pZCBzd2Fw
QnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMu
Y3BwCmluZGV4IGIyYjRiMDNkNWViYzVjMmMzOWU3YmU0OTQwZDk2NWM5MDI5NTViN2MuLjE0OTQx
ZjY0MWUxNTFmMzhiYzZlYTU2OWNiOGRhZjIxOGMxNmQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMz
RE9wZW5HTEVTLmNwcApAQCAtMTkwLDEyICsxOTAsOCBAQCBpbnQgRXh0ZW5zaW9uczNET3BlbkdM
RVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogICAgIGlmIChtX2dsR2V0R3JhcGhpY3NS
ZXNldFN0YXR1c0VYVCkgewogICAgICAgICBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
OwogICAgICAgICBpbnQgcmVhc29uRm9yUmVzZXQgPSBtX2dsR2V0R3JhcGhpY3NSZXNldFN0YXR1
c0VYVCgpOwotICAgICAgICBpZiAocmVhc29uRm9yUmVzZXQgIT0gR0xfTk9fRVJST1IpIHsKLSAg
ICAgICAgICAgIEFTU0VSVChtX2NvbnRleHRMb3N0Q2FsbGJhY2spOwotICAgICAgICAgICAgaWYg
KG1fY29udGV4dExvc3RDYWxsYmFjaykKLSAgICAgICAgICAgICAgICBtX2NvbnRleHRMb3N0Q2Fs
bGJhY2stPm9uQ29udGV4dExvc3QoKTsKKyAgICAgICAgaWYgKHJlYXNvbkZvclJlc2V0ICE9IEdM
X05PX0VSUk9SKQogICAgICAgICAgICAgbV9jb250ZXh0UmVzZXRTdGF0dXMgPSByZWFzb25Gb3JS
ZXNldDsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gcmVhc29uRm9yUmVzZXQ7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCmluZGV4IGY1NjIyMmYyMDg5M2YzMWQ0ZjQ4MTc0
YzA4MzI1MDZjNDA4ZjM2YjQuLjQ3NzJmYzZkZTM3Yjk4MTY5ZmNiM2Q1ZGJmY2VkZGExZjYxNjQ0
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9F
eHRlbnNpb25zM0RPcGVuR0xFUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCkBAIC0xMjIsOCArMTIyLDYgQEAgcHJv
dGVjdGVkOgogICAgIFBGTkdMVkVSVEVYQVRUUklCRElWSVNPUkFOR0xFUFJPQyBtX2dsVmVydGV4
QXR0cmliRGl2aXNvckFOR0xFOwogICAgIFBGTkdMRFJBV0FSUkFZU0lOU1RBTkNFREFOR0xFUFJP
QyBtX2dsRHJhd0FycmF5c0luc3RhbmNlZEFOR0xFOwogICAgIFBGTkdMRFJBV0VMRU1FTlRTSU5T
VEFOQ0VEQU5HTEVQUk9DIG1fZ2xEcmF3RWxlbWVudHNJbnN0YW5jZWRBTkdMRTsKLQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29udGV4dExvc3RDYWxsYmFjaz4gbV9j
b250ZXh0TG9zdENhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKaW5kZXggYjk2MzYzYjU1MTkzNTZjOGNkZjQ2
NTQzNjMyNmVkMDZjZWNlZDg4ZC4uMWE1Zjk5Mzg3YWExZjY5ODcyNGMyMDA4MDdmMjJiMGEyNjZk
NzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0wuY3BwCkBAIC04Miw4ICs4
MiwxMCBAQCBzdGF0aWMgdm9pZCB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyhpbnQgd2lkdGgs
IGludCBoZWlnaHQsIHVuc2lnbmVkIGNoYXIqIHBpeAogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KGludCB4LCBpbnQgeSwgaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCB1bnNpZ25lZCBjaGFyKiBwaXhlbHMpCiB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAgICAvLyBOVklESUEgZHJpdmVycyBoYXZl
IGEgYnVnIHdoZXJlIGNhbGxpbmcgcmVhZFBpeGVscyBpbiBCR1JBIGNhbiByZXR1cm4gdGhlIHdy
b25nIHZhbHVlcyBmb3IgdGhlIGFscGhhIGNoYW5uZWwgd2hlbiB0aGUgYWxwaGEgaXMgb2ZmIGZv
ciB0aGUgY29udGV4dC4KLSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgZ2V0RXh0ZW5zaW9ucygp
LmlzTlZJRElBKCkpIHsKKyAgICBpZiAoIWF0dHJzLmFscGhhICYmIGdldEV4dGVuc2lvbnMoKS5p
c05WSURJQSgpKSB7CiAgICAgICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQs
IEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIHBpeGVscyk7CiAjaWYgVVNFKEFDQ0VMRVJBVEUp
CiAgICAgICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpAQCAtMTEwLDcgKzExMiw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50
IHgsIGludCB5LCBpbnQKICAgICAgICAgOjpnbFJlYWRQaXhlbHMoeCwgeSwgd2lkdGgsIGhlaWdo
dCwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBwaXhlbHMpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5hbHBoYSkKKyAgICBpZiAoIWF0dHJzLmFs
cGhhKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVpZ2h0LCBw
aXhlbHMpOwogI2VuZGlmCiB9CkBAIC0xMjIsMTcgKzEyNCwxOCBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoKQogCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpy
ZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOwogICAgIGNvbnN0IGludCB3aWR0aCA9IHNpemUud2lkdGgoKTsKICAg
ICBjb25zdCBpbnQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKICAgICBHTHVpbnQgY29sb3JGb3Jt
YXQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gMDsKLSAgICBpZiAobV9hdHRycy5hbHBo
YSkgeworICAgIGlmIChhdHRycy5hbHBoYSkgewogICAgICAgICBtX2ludGVybmFsQ29sb3JGb3Jt
YXQgPSBHTF9SR0JBODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0JBOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQjg7CiAgICAgICAgIGNv
bG9yRm9ybWF0ID0gR0xfUkdCOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1f
YXR0cnMuZGVwdGgpIHsKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkgewog
ICAgICAgICAvLyBXZSBkb24ndCBhbGxvdyB0aGUgbG9naWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1
aXJlZCBhbmQgZGVwdGggaXMgbm90LgogICAgICAgICAvLyBTZWUgR3JhcGhpY3NDb250ZXh0M0Q6
OnZhbGlkYXRlQXR0cmlidXRlcy4KIApAQCAtMTQ5LDcgKzE1Miw3IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgfQogCiAgICAg
Ly8gUmVzaXplIG11bHRpc2FtcGxlIEZCTy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50
OwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1NBTVBMRVNfRVhULCAmbWF4U2FtcGxl
Q291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRoYW4gNCBzYW1wbGVzIGlzIHNsb3cgb24g
c29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAgLTE2MywxMiArMTY2LDEyIEBAIGJv
b2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAg
ICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVG
RkVSX0VYVCwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgsIGhlaWdo
dCk7CiAjZW5kaWYKICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZS
QU1FQlVGRkVSX0VYVCwgR0xfQ09MT1JfQVRUQUNITUVOVDBfRVhULCBHTF9SRU5ERVJCVUZGRVJf
RVhULCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVu
Y2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0
cnMuZGVwdGgpIHsKICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRF
UkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAg
ICAgOjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZUVYVChHTF9SRU5ERVJCVUZGRVJf
RVhULCBzYW1wbGVDb3VudCwgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWln
aHQpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChh
dHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZl
ckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVOVF9FWFQsIEdMX1JF
TkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAg
ICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cnMuZGVwdGgpCiAg
ICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVG
RkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1f
bXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAgICAgICAgIDo6Z2xC
aW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIDApOwpAQCAtMjExLDcgKzIx
NCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUm
IHNpemUpCiAgICAgYXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoaW50ZXJuYWxE
ZXB0aFN0ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwogCiAgICAgYm9vbCBtdXN0UmVzdG9y
ZUZCTyA9IHRydWU7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJz
LmFudGlhbGlhcykgewogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVG
RkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIGlmIChtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IGZhbHNl
OwpAQCAtMjI1LDEyICsyMjgsMTQgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZC
T3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNo
RGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1aW50IGludGVybmFsRGVwdGhTdGVuY2ls
Rm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlh
bGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKSB7CisgICAgYXV0byBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoIWF0dHJzLmFudGlhbGlhcyAm
JiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkpIHsKICAgICAgICAgOjpnbEJpbmRSZW5k
ZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwog
ICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGlmICht
X2F0dHJzLnN0ZW5jaWwpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAg
OjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfU1RF
TkNJTF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9kZXB0aFN0ZW5jaWxC
dWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJzLmRl
cHRoKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1F
QlVGRkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQs
IG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQo
R0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7CiAgICAgfQpAQCAtNDgyLDIxICs0ODcsMjMgQEAgRXh0
ZW5zaW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiAKIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBl
LCB2b2lkKiBkYXRhKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwor
CiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0aGUgZHJp
dmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5nIGNh
bGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKICAgICA6OmdsRmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMg
JiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0dHJz
LmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAg
ICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRo
LCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgOjpnbEZsdXNoKCk7CiAgICAgfQog
ICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwgZGF0
YSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRG
Qk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpSR0JBIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdSQSkg
JiYgKG1fc3RhdGUuYm91bmRGQk8gPT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMuYWxw
aGEgJiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChh
dHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSkp
CiAgICAgICAgIHdpcGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDQyYmM4ZTE3ZTA2MjE4MWQ3
MGUwNGY3YWMyYzkxYmNhMzgzMWQ5MjUuLjg1NzVlZmUwNjYzOWQ0ZTE3ZmQxODdiZjJiZmZlOWQ2
MjBlMmU5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9u
LmNwcApAQCAtMTQxLDE5ICsxNDEsMjMgQEAgc3RhdGljIHVpbnQ2NF90IG5hbWVIYXNoRm9yU2hh
ZGVyKGNvbnN0IGNoYXIqIG5hbWUsIHNpemVfdCBsZW5ndGgpCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNp
bEV4dGVuc2lvbikKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwog
ICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMoKTsKLSAgICBpZiAo
bV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAgaWYg
KGV4dGVuc2lvbnMuc3VwcG9ydHMocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKSkgewogICAg
ICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVu
c2lvbik7CiAgICAgICAgICAgICAvLyBGb3JjZSBkZXB0aCBpZiBzdGVuY2lsIGlzIHRydWUuCi0g
ICAgICAgICAgICBtX2F0dHJzLmRlcHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGF0dHJzLmRlcHRo
ID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2F0dHJzLnN0ZW5jaWwgPSBm
YWxzZTsKKyAgICAgICAgICAgIGF0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0Q29u
dGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMp
IHsKLSAgICAgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1ZmZl
cl9tdWx0aXNhbXBsZSIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1fYXR0
cnMuYW50aWFsaWFzID0gZmFsc2U7Ci0gICAgICAgIGVsc2UKKyAgICBpZiAoYXR0cnMuYW50aWFs
aWFzICYmICFtX2lzRm9yV2ViR0wyKSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0
cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKSkgeworICAgICAgICAgICAgYXR0
cnMuYW50aWFsaWFzID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhh
dHRycyk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFi
bGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwogICAgIH0KIH0KQEAgLTE3
NSw3ICsxNzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3Vs
dHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVyaW5n
UmVzdWx0cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJzLnBy
ZW11bHRpcGxpZWRBbHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0
aXBsaWVkQWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBp
ICs9IDQpIHsKICAgICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAgICAg
cGl4ZWxzW2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsg
M10gLyAyNTUpOwpAQCAtMjAxLDcgKzIwNSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNz
Q29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgLy8g
UmVhZGluZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWlu
Zywgd2hpY2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBsaWVk
QWxwaGEpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRh
OjpjcmVhdGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBAIC0y
MzIsNyArMjM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQog
ICAgIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xfRkFM
U0UpOwogI2VuZGlmCiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNvbnRl
eHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lm
TmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBAIC0yNjUsNyAr
MjY5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5z
aWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAobV9hdHRycy5h
bnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxpYXMpIHsKICAg
ICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAgICA6OmdsQmlu
ZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwog
ICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBAIC0zMjgsMTQgKzMzMiwxNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICA6
OmdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKICAgICA6OmdsR2V0Qm9vbGVhbnYoR0xfQ09MT1Jf
V1JJVEVNQVNLLCBjb2xvck1hc2spOwogICAgIDo6Z2xDb2xvck1hc2soR0xfVFJVRSwgR0xfVFJV
RSwgR0xfVFJVRSwgR0xfVFJVRSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKworICAgIGF1
dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmRlcHRoKSB7
CiAgICAgICAgIDo6Z2xHZXRGbG9hdHYoR0xfREVQVEhfQ0xFQVJfVkFMVUUsICZjbGVhckRlcHRo
KTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoMSk7CiAgICAgICAgIDo6
Z2xHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ssICZkZXB0aE1hc2spOwogICAgICAgICA6
OmdsRGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBjbGVhck1hc2sgfD0gR0xfREVQVEhfQlVG
RkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRy
cy5zdGVuY2lsKSB7CiAgICAgICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX0NMRUFSX1ZB
TFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbCgwKTsKICAgICAg
ICAgOjpnbEdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJVEVNQVNLLCByZWludGVycHJldF9jYXN0
PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC0zNDksMTEgKzM1NiwxMSBAQCB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAgIDo6Z2xD
bGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3JbMl0sIGNs
ZWFyQ29sb3JbM10pOwogICAgIDo6Z2xDb2xvck1hc2soY29sb3JNYXNrWzBdLCBjb2xvck1hc2tb
MV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsKLSAgICBpZiAobV9hdHRycy5kZXB0aCkg
eworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6Y2xl
YXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgOjpnbERlcHRoTWFzayhkZXB0aE1hc2spOwog
ICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwp
IHsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbChjbGVhclN0ZW5jaWwpOwogICAgICAgICA6Omds
U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3RlbmNpbE1hc2spOwogICAgICAgICA6Omds
U3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVuY2lsTWFza0JhY2spOwpAQCAtNDgxLDcg
KzQ4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51
bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVyCiAgICAgaWYgKGJ1ZmZlcikKICAgICAg
ICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAgICAgZmJvID0gKG1fYXR0cnMuYW50aWFs
aWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKKyAgICAgICAgZmJvID0gKGNvbnRleHRB
dHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKICAgICBp
ZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZl
ckVYVCh0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBmYm87CkBAIC03
NDQsMjQgKzc1MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVyRGly
ZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29w
eVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRl
cm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0
aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisg
ICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1w
bGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0
KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChH
cmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICB9CiAgICAgOjpnbENv
cHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0aCwg
aGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJh
bWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxl
RkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleFN1YkltYWdlMkQoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRp
YWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgYXV0
byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFz
ICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICByZXNv
bHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdodCkp
OwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFN
RUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICA6OmdsQ29weVRleFN1YkltYWdlMkQodGFyZ2V0
LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZC
TykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0
aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0xMTI4LDExICsx
MTM5LDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlvbkRpcmVjdChQ
bGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gOjpnbEdldEF0dHJp
YkxvY2F0aW9uKHByb2dyYW0sIG5hbWUudXRmOCgpLmRhdGEoKSk7CiB9CiAKLUdyYXBoaWNzQ29u
dGV4dDNEQXR0cmlidXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMo
KQotewotICAgIHJldHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpt
b3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCmluZGV4IDcwYTIw
ZDUwYzM1MjFhNjEyM2U2ZWZhZjFmNDc2OGY2NDk1Y2RlNWMuLjM2NjgyMWNhNmZkODMzODE1YjNi
ODNhYzJkZjc1MzgwMjYxNDg2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xFUy5jcHAKQEAgLTUwLDEwICs1MCwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWxl
YXNlU2hhZGVyQ29tcGlsZXIoKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVscyhH
QzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBH
QzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIHZvaWQqIGRhdGEpCiB7CiAgICAgbWFrZUNv
bnRleHRDdXJyZW50KCk7CisKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRl
cygpOworCiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0
aGUgZHJpdmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVy
aW5nIGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICA6Omds
Rmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICAgcmVzb2x2ZU11
bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAg
ICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAg
ICA6OmdsRmx1c2goKTsKQEAgLTYxLDcgKzY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2kK
IAogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwg
ZGF0YSk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX3N0
YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC04MCw3ICs4
Myw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUm
IHNpemUpCiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGlu
dCBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCA9IDA7Ci0g
ICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0
cmlidXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRl
cm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9SR0JB
OwogICAgIH0gZWxzZSB7CkBAIC05MCw3ICs5NSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICAvLyBXZSBkb24ndCBhbGxv
dyB0aGUgbG9naWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVwdGggaXMgbm90Lgog
ICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzLgotICAgIGJv
b2wgc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1ZmZlciA9IChtX2F0dHJzLnN0ZW5jaWwgfHwg
bV9hdHRycy5kZXB0aCkgJiYgZ2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfcGFja2Vk
X2RlcHRoX3N0ZW5jaWwiKTsKKyAgICBib29sIHN1cHBvcnRQYWNrZWREZXB0aFN0ZW5jaWxCdWZm
ZXIgPSAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpICYmIGdldEV4dGVu
c2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIik7CiAKICAgICAv
LyBSZXNpemUgcmVndWxhciBGQk8uCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpA
QCAtMTE3LDI5ICsxMjIsMjkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3Mo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogCiAgICAgRXh0ZW5zaW9uczNET3BlbkdMRVMm
IGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RPcGVuR0xFUyY+KGdldEV4dGVu
c2lvbnMoKSk7Ci0gICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIG1fYXR0cnMu
YW50aWFsaWFzKSB7CisgICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIGF0dHJp
YnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwogICAgICAg
ICA6OmdsR2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfU0FNUExFU19JTUcsICZtYXhTYW1w
bGVDb3VudCk7IAogICAgICAgICBHTGludCBzYW1wbGVDb3VudCA9IHN0ZDo6bWluKDgsIG1heFNh
bXBsZUNvdW50KTsKIAogICAgICAgICBleHRlbnNpb25zLmZyYW1lYnVmZmVyVGV4dHVyZTJETXVs
dGlzYW1wbGVJTUcoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhU
VVJFXzJELCBtX3RleHR1cmUsIDAsIHNhbXBsZUNvdW50KTsKIAotICAgICAgICBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3Rl
bmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAgICAgICAgICAgICAvLyBVc2UgYSAyNCBiaXQg
ZGVwdGggYnVmZmVyIHdoZXJlIHdlIGtub3cgd2UgaGF2ZSBpdC4KICAgICAgICAgICAgIGlmIChz
dXBwb3J0UGFja2VkRGVwdGhTdGVuY2lsQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgOjpnbEJp
bmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAg
ICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUo
R0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdp
ZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAg
ICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAgICAg
OjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FU
VEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAg
ICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwg
bV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0
ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihH
TF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIGV4
dGVuc2lvbnMucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZFUiwg
c2FtcGxlQ291bnQsIEdMX1NURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAgICAg
ICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBH
TF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9zdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsK
KyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkgewogICAgICAgICAgICAgICAg
ICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZmZXIp
OwogICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLnJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0
aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBHTF9ERVBUSF9DT01QT05FTlQx
Niwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJl
bmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVS
QlVGRkVSLCBtX2RlcHRoQnVmZmVyKTsKQEAgLTE0OCwyMiArMTUzLDIyIEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAg
ICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRo
KSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkg
ewogICAgICAgICAgICAgLy8gVXNlIGEgMjQgYml0IGRlcHRoIGJ1ZmZlciB3aGVyZSB3ZSBrbm93
IHdlIGhhdmUgaXQuCiAgICAgICAgICAgICBpZiAoc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1
ZmZlcikgewogICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRFUkJV
RkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIDo6Z2xSZW5kZXJi
dWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMsIHdp
ZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAg
ICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAgICAg
OjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FU
VEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAg
ICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZm
ZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwg
bV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0
ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihH
TF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIDo6
Z2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfU1RFTkNJTF9JTkRFWDgs
IHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVS
QlVGRkVSLCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVz
LmRlcHRoKSB7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JF
TkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xSZW5k
ZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEhfQ09NUE9ORU5UMTYsIHdp
ZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZF
UiwgbV9kZXB0aEJ1ZmZlcik7CkBAIC0yMjIsOCArMjI3LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcygpCiB7CiAgICAgdmFsaWRhdGVEZXB0aFN0ZW5jaWwo
IkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0aXNhbXBsZWRfcmVu
ZGVyX3RvX3RleHR1cmUiKSkKLSAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKKyAg
ICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJp
YnV0ZXMuYW50aWFsaWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0
aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKSkgeworICAgICAgICBhdHRyaWJ1dGVzLmFudGlh
bGlhcyA9IGZhbHNlOworICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsK
KyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoR0MzRGNsYW1w
ZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKQpAQCAtMjQ4LDEwICsyNTcsMTAgQEAgRXh0ZW5zaW9u
czNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKFdJTikgJiYgVVNFKENBKQotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGlj
c0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVz
LCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNE
OjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5k
b3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
bikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1cHBv
cnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlmIChyZW5kZXJT
dHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVzdGluYXRpb24g
PT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMjY4
LDE3ICsyNzcsMTggQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQz
RDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5
bGUpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250
ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVk
Q29udGV4dCkKLSAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
SG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwg
R3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHQz
REJhc2UoYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiAgICAgLCBtX2Nv
bXBpbGVyKGlzR0xFUzJDb21wbGlhbnQoKSA/IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9DT01Q
QVRJQklMSVRZX09VVFBVVCkKLSAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNzQ29u
dGV4dDNEUHJpdmF0ZT4odGhpcywgcmVuZGVyU3R5bGUpKQorICAgICwgbV9wcml2YXRlKG1ha2VV
bmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzLCBkZXN0aW5hdGlvbikpCiB7CiAg
ICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAgICAgbWFr
ZUNvbnRleHRDdXJyZW50KCk7CiAgICAgCiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7CisgICAg
YXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdl
ZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJPZmZz
Y3JlZW4pIHsKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVlbikg
ewogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgogICAgICAgICA6
OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAgICAgICAgIDo6Z2xCaW5kVGV4dHVyZShH
TF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwpAQCAtMjkzLDE2ICszMDMsMTYgQEAgR3JhcGhpY3ND
b250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBh
dHRyaWJ1dGVzLCBIb3MKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgbV9mYm8pOwogICAgICAgICAKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwot
ICAgICAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9h
dHRycy5kZXB0aCkpCisgICAgICAgIGlmICghYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSkKICAgICAgICAgICAgIDo6Z2xHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIAogICAgICAg
ICAvLyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcykgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgICAg
IDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAg
OjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAg
ICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKICAgICAgICAg
ICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwot
ICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAg
ICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVu
Y2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM0MCwxMyArMzUwLDE2IEBAIEdyYXBo
aWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogewogICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOwogICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKworICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRy
aWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpn
bERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgOjpnbERl
bGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwog
ICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAg
ICB9IGVsc2UgewotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgp
CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAgICAgfQogICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0Nv
bnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZmFiODA3
YjdkOGMxYTY4YjU5ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0Ny4uYjIyZGY2NzJmZTYwNzlkNGYyMGQ3
YzMxZTE5MThkODVmMzI2YTI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNE
VGV4dHVyZU1hcHBlci5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCBzdGF0aWMgRGVxdWU8R3JhcGhp
Y3NDb250ZXh0M0QqLCBNYXhBY3RpdmVDb250ZXh0cz4mIGFjdGl2ZUNvbnRleHRzKCkKICAgICBy
ZXR1cm4gc19hY3RpdmVDb250ZXh0czsKIH0KIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBH
cmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRy
aWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVy
U3R5bGUgcmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29u
dGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhv
c3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0
aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5
IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlmIChy
ZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVzdGlu
YXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CkBAIC0x
MTgsNyArMTE4LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQz
RDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0M0Qgb2JqZWN0IGZpcnN0
IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVhZC4K
LSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmli
dXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgZGVzdGlu
YXRpb24pKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICAvLyBC
YWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAgLTEz
MSwyMSArMTMxLDIxIEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMKIH0KIAogI2lmIFVTRShBTkdM
RSkKLUdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQz
REF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpS
ZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQp
Ci0gICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3ND
b250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5k
b3cqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNz
Q29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0
dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9VTlVT
RUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lBKQotICAg
IG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVy
PigqdGhpcywgcmVuZGVyU3R5bGUpOworICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5p
cXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2Vsc2UK
LSAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxh
dGZvcm1MYXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyAgICBtX3RleG1hcExheWVyID0gV1RG
OjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRlc3Rp
bmF0aW9uKTsKICNlbmRpZgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0KICAgICB2YWxp
ZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsg
Ly8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYgKHJl
bmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVlbikgeworICAgIGlmIChkZXN0aW5hdGlvbiA9PSBE
ZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUgdG8g
cmVuZGVyIGludG8uCiAgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICAg
ICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3RleHR1
cmUpOwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICNlbmRp
ZgogCiAgICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAgICAgICAgaWYgKG1f
YXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewog
ICAgICAgICAgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAg
ICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2Ft
cGxlRkJPKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJP
OwogICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xv
ckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVw
dGgpCiAgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8g
QmluZCBjYW52YXMgRkJPLgogICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgbV9mYm8pOwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwog
I2lmIFVTRShPUEVOR0xfRVMpCi0gICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKKyAgICAg
ICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGdsOjpHZW5SZW5k
ZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0
ZW5jaWwpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQogICAgICAgICAgICAg
ICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlmCi0g
ICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAg
ICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAg
ICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTIwMywyMSArMjAzLDIyIEBAIEdyYXBoaWNzQ29udGV4dDNE
OjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRl
cywgSG9zCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxl
IHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKLSAgICA6IG1f
YXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChH
cmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBo
aWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3NDb250ZXh0M0Qq
IHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHQzREJhc2UoYXR0cmlidXRlcywg
ZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRD
b250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEpCi0gICAgbV9uaWNvc2lh
TGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIHJlbmRlclN0eWxl
KTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3NpYTo6R0MzRExheWVyPigq
dGhpcywgZGVzdGluYXRpb24pOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gbWFrZVVuaXF1
ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7Cisg
ICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxh
eWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2VuZGlmCiAKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJpYnV0ZXMgPSBjb250
ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlkYXRp
b24uCiAKLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAgaWYg
KGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKICAgICAgICAgLy8gQ3Jl
YXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KICAgICAgICAgOjpnbEdlblRleHR1cmVzKDEs
ICZtX3RleHR1cmUpOwogICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV90
ZXh0dXJlKTsKQEAgLTI0OSwyNiArMjUwLDI1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGlj
c0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAg
ICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICNlbmRpZgogCi0KICAg
ICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAobV9hdHRycy5h
bnRpYWxpYXMpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAg
ICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAg
ICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8p
OwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAg
ICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVy
KTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAg
ICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRo
U3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBCaW5kIGNh
bnZhcyBGQk8uCiAgICAgICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQz
RDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBt
X2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgp
CisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0
cnMuc3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAg
ICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlm
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAg
ICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7
CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDEsNyArMzAxLDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6
OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVz
LCBIb3MKICAgICB9CiAjZWxzZQogICAgIC8vIEFkanVzdCB0aGUgc2hhZGVyIHNwZWNpZmljYXRp
b24gZGVwZW5kaW5nIG9uIHdoZXRoZXIgR0xFUzMgKGkuZS4gV2ViR0wyIHN1cHBvcnQpIHdhcyBy
ZXF1ZXN0ZWQuCi0gICAgbV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VU
UFVULCBtX2F0dHJzLmlzV2ViR0wyID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsK
KyAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQVVQsIGF0dHJp
YnV0ZXMuaXNXZWJHTDIgPyBTSF9XRUJHTDJfU1BFQyA6IFNIX1dFQkdMX1NQRUMpOwogI2VuZGlm
CiAKICAgICAvLyBBTkdMRSBpbml0aWFsaXphdGlvbi4KQEAgLTM0MCwxMiArMzQwLDE0IEBAIEdy
YXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAgICBnbDo6RGVsZXRl
VGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUpOwogI2VuZGlmCiAKLSAgICBpZiAobV9h
dHRycy5hbnRpYWxpYXMpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRl
cygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpEZWxl
dGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBp
ZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRyaWJ1
dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIGdsOjpEZWxldGVS
ZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAg
ICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAgfSBl
bHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgIH0gZWxzZSBp
ZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpIHsKICNpZiBVU0UoT1BF
TkdMX0VTKQogICAgICAgICBpZiAobV9kZXB0aEJ1ZmZlcikKICAgICAgICAgICAgIGdsRGVsZXRl
UmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZlcik7CkBAIC0zODIsMTIgKzM4NCwxNCBAQCBH
cmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgOjpnbERlbGV0
ZVRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKICNlbmRpZgogCi0gICAgaWYgKG1f
YXR0cnMuYW50aWFsaWFzKSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0
ZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICA6OmdsRGVs
ZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAg
aWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cmli
dXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICA6OmdsRGVsZXRl
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAg
ICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgIH0g
ZWxzZSBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICB9IGVsc2Ug
aWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAjaWYgVVNFKE9Q
RU5HTF9FUykKICAgICAgICAgaWYgKG1fZGVwdGhCdWZmZXIpCiAgICAgICAgICAgICBnbERlbGV0
ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOwpAQCAtNDE1LDE0ICs0MTksNiBAQCBH
cmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKIH0KICNlbmRpZiAvLyBVU0Uo
QU5HTEUpCiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJhY2so
c3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewotfQotCi12b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8RXJy
b3JNZXNzYWdlQ2FsbGJhY2s+KQotewotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjptYWtl
Q29udGV4dEN1cnJlbnQoKQogewogI2lmIFVTRShOSUNPU0lBKQpAQCAtNDM2LDcgKzQzMiw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKCkKIHsKIH0KIAotUGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNEOjpw
bGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKIHsKICNpZiBVU0UoTklDT1NJQSkKICAg
ICByZXR1cm4gbV9uaWNvc2lhTGF5ZXItPnBsYXRmb3JtQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2NjMyMzE1Njk1YmEy
MWMyNjdkMTU1OTMyZWJhOTE0N2ZiNjZhZTA2Li42ODNmNDVmOTNjMjg5MzNlNzJjM2I2ZjU5M2Vh
MTQ5MmM3NWVlMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9y
bUxheWVyLmNwcApAQCAtMzAsMTQgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjpUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3Jt
TGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJTdHlsZSByZW5kZXJTdHlsZSkKK1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcjo6VGV4
dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAgICAgOiBtX2NvbnRl
eHQoY29udGV4dCkKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24p
IHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgog
ICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgm
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3Rs
eVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIH0KQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBUZXh0dXJlTWFwcGVyR0MzRFBsYXRm
b3JtTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgcmV0dXJuIG1fZ2xDb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBUZXh0
dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEIFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcjo6cGxhdGZvcm1D
b250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRleHQpOwogICAgIHJldHVybiBt
X2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyLmgKaW5kZXggZTZmMDljODc5ODU0ODYzMmVlNGIwYWE1YTU2MzA2
MTVhMjRhMzc4OS4uYjhlODFmMTFiMjE4YzA0ZTA2NTQ0MWZiYjY5Y2RhNGY2OWUzZjVkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuaApAQCAtMzQsMTEg
KzM0LDExIEBAIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk7CiBjbGFzcyBU
ZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIgOiBwdWJsaWMgUGxhdGZvcm1MYXllciB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJl
bmRlclN0eWxlKTsKKyAgICBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3ND
b250ZXh0M0QmLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24pOwogICAgIHZpcnR1YWwg
flRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcigpOwogCiAgICAgYm9vbCBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4
dCgpOworICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgY29u
c3Q7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgUmVmUHRyPFRleHR1cmVN
YXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IHByb3h5KCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ODYxNTliOGZhNzRlMjRmMWFkNjJhMmM4Mzk2MTgxMDE1YzVhMjQ5Yi4uZTM1NGFkYmEyNGVhZDkx
YzkyMDEyMWVjMjU2MTMyNzdhMTExMjhkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEy
LTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViR0xdIEFk
ZCBhIHB1cmUgdmlydHVhbCBiYXNlIGNsYXNzIGZvciBHcmFwaGljc0NvbnRleHQzRAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NjA0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIGEgdGVzdCB0
aGF0IGhhcyBleGlzdGluZyBjb3ZlcmFnZSBpbiB0aGUgV2ViR0wgdGVzdCBzdWl0ZS4KKworICAg
ICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1
ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sOiBSZW1vdmVkLgorCiAyMDE5LTEyLTI0ICBBbGV4
ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IFsg
Q2F0YWxpbmEgd2sxIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9jb250
ZW50LXR5cGUvc2NyaXB0LndpbmRvdy5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9i
amVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOGU3ZmRmZTg3NzZmMjhhOWNiM2UwNjQzNzU5YzUxNzEwMGVmMGM3Yi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NTkgKzAsMCBAQAotVGVzdCBmcmFtZWJ1ZmZlciBvYmplY3QgYXR0YWNo
bWVudCBiZWhhdmlvcnMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLURpbWVuc2lv
bnMgMCB4IDAKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhT
dGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1
c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJ
TF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNp
bmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVw
dGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2lu
ZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVu
Y2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1
c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBj
b2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29s
b3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29s
b3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQg
YXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0aAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMg
Z2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0la
RSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi0KLURpbWVuc2lvbnMgMCB4IDIKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGds
ID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5k
ZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
ZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNp
bmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRI
X0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxf
QVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVO
Q0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhf
QVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNv
bmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWws
IHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVk
IDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwg
dGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGlj
dAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWws
IHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9
PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0g
UkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0g
UkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1Mg
ZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9T
VEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIs
IGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMg
MAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
RU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLQot
RGltZW5zaW9ucyAyIHggMAotQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMKLVBBU1MgZ2wgPSBjcmVhdGUz
RENvbnRleHQoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5k
ZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotQXR0YWNo
IGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9T
VEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxf
QVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVO
VAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNI
TUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5U
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0
aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0
dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRo
LCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0
YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVu
Y2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
QXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1Q
QVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1Q
QVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUKLVBB
U1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQ3Jl
YXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5j
aWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBp
cyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZF
UiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1Mg
Z2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVG
RkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lv
bnMgMiB4IDIKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhT
dGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1
c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFt
ZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wu
Z2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFy
YW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVy
KGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJ
TF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0
ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNp
bmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2ls
IHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9C
SVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNT
IGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdl
dFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDggaXMgdHJ1ZQotQXR0YWNoIGRlcHRoU3Rl
bmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2ls
IHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0
ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYx
Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWws
IGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRh
Y2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2ls
LCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0
YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRo
IGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGds
LkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIo
Z2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVO
Q0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGlu
dGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5k
ZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUz
Ci1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
R1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFt
ZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5ERVBUSF9CSVRTKSA9PSAwIGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5D
SUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50
ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1Mwot
UEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdS
RUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0
ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
REVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lM
X0JJVFMpID09IDAgaXMgdHJ1ZQotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRl
cmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBh
cmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIGlzIGhlaWdo
dAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
RU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAotUEFTUyBnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxV
RV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9T
SVpFKSA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFKSA+IDAgaXMgdHJ1ZQotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJF
RF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRl
cihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlz
IHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUK
LVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPj0gOCBpcyB0cnVlCi0KLXRl
c3Q6IERFUFRIX0NPTVBPTkVOVDE2IHZzIERFUFRIX1NURU5DSUwgd2l0aCBkZWxldGUKLVBBU1Mg
c2hvdWxkIGJlIGdyZWVuCi10ZXN0IGRlbGV0aW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZG
RVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQVEhfQ09NUE9ORU5UMTYgdnMgREVQ
VEhfU1RFTkNJTCB3aXRoIHVuYmluZAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgdW5iaW5k
aW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQot
dGVzdDogREVQVEhfU1RFTkNJTCB2cyBERVBUSF9DT01QT05FTlQxNiB3aXRoIGRlbGV0ZQotUEFT
UyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJV
RkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgotCi10ZXN0OiBERVBUSF9TVEVOQ0lMIHZzIERFUFRI
X0NPTVBPTkVOVDE2IHdpdGggdW5iaW5kCi1QQVNTIHNob3VsZCBiZSBncmVlbgotdGVzdCB1bmJp
bmRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQotQXR0YWNobWVudHMgb2YgZGlmZmVyZW50IHNp
emVzIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgKE9wZW5HTCBF
UyAyLjAgNC40LjUpCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1F
QlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMg
b3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFN
RUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIHdhcyBG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JU
RUQKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxk
IGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElN
RU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVG
RkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09N
UExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJf
Q09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi0KLVdyb25nIHN0b3JhZ2UgdHlwZSBm
b3IgdHlwZSBvZiBhdHRhY2htZW50IGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVO
VCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVO
VCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VO
U1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUK
LQotMCBzaXplIGF0dGFjaG1lbnQgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIG9yIEZSQU1FQlVG
RkVSX1VOU1VQUE9SVEVECi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLQotTm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVfRlJBTUVCVUZGRVJf
TUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KQotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3
YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19B
VFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBv
ciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi0KLVRlc3QgZHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21w
bGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBG
UkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJ
T05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi0KLURyYXdpbmcgb3IgcmVhZGluZyBmcm9t
IGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IGRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiByZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Y29weVRleEltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5
VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNsZWFy
IHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8yID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBG
UkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotCi1EcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNv
bXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiBkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
cmVhZFBpeGVscyBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvcHlUZXhJbWFnZTJEIGZyb20g
aW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfT1BFUkFUSU9OIDogY29weVRleFN1YkltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiBjbGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBB
U1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLQot
RHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQg
Z2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJhd0FycmF5cyB3aXRoIGlu
Y29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMgZnJvbSBpbmNvbXBsZXRl
IGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJh
bWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFt
ZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFj
aG1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9i
amVjdC1hdHRhY2htZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI1MmRh
MTU0ZDk4MDE0MTM4YmJjNjU1ODhjMjNhODNiOGQ3NDhhMjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
ZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUz
MCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29sZUVuYWJsZWQoZmFs
c2UpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2w7Ci12YXIgZmJvOwotdmFy
IGRlcHRoQnVmZmVyOwotdmFyIHN0ZW5jaWxCdWZmZXI7Ci12YXIgZGVwdGhTdGVuY2lsQnVmZmVy
OwotdmFyIGNvbG9yQnVmZmVyOwotdmFyIHdpZHRoOwotdmFyIGhlaWdodDsKLQotY29uc3QgQUxM
T1dfQ09NUExFVEUgICAgICAgICAgICAgID0gMHgwMTsKLWNvbnN0IEFMTE9XX1VOU1VQUE9SVEVE
ICAgICAgICAgICA9IDB4MDI7Ci1jb25zdCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQgPSAw
eDA0OwotCi1mdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93
ZWRTdGF0dXNlcykKLXsKLSAgICAvLyBJZiB0aGUgZnJhbWVidWZmZXIgaXMgaW4gYW4gZXJyb3Ig
c3RhdGUgZm9yIG11bHRpcGxlIHJlYXNvbnMsCi0gICAgLy8gd2UgY2FuJ3QgZ3VhcmFudGVlIHdo
aWNoIG9uZSB3aWxsIGJlIHJlcG9ydGVkLgotICAgIHZhciBzdGF0dXMgPSBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICB2YXIgc3RhdHVzQWxsb3dlZCA9ICgo
YWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfQ09NUExFVEUpICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVC
VUZGRVJfQ09NUExFVEUpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgKChhbGxvd2VkU3Rh
dHVzZXMgJiBBTExPV19VTlNVUFBPUlRFRCkgJiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJVRkZFUl9V
TlNVUFBPUlRFRCkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGFsbG93ZWRTdGF0dXNl
cyAmIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCkgJiYgKHN0YXR1cyA9PSBnbC5GUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQpKTsKLSAgICB2YXIgbXNnID0gImdsLmNoZWNrRnJh
bWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkICIgKyBzdGF0dXM7Ci0gICAg
aWYgKHN0YXR1c0FsbG93ZWQpCi0gICAgICAgIHRlc3RQYXNzZWQobXNnKTsKLSAgICBlbHNlCi0g
ICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tCdWZmZXJCaXRzKGF0
dGFjaG1lbnQwLCBhdHRhY2htZW50MSkKLXsKLSAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpCi0gICAgICBy
ZXR1cm47Ci0KLSAgICB2YXIgaGF2ZURlcHRoQnVmZmVyID0gYXR0YWNobWVudDAgPT0gZ2wuREVQ
VEhfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MCA9
PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBhdHRhY2htZW50MSA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ7Ci0g
ICAgdmFyIGhhdmVTdGVuY2lsQnVmZmVyID0gYXR0YWNobWVudDAgPT0gZ2wuU1RFTkNJTF9BVFRB
Q0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDAgPT0gZ2wu
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXR0YWNobWVudDEgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOwot
Ci0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0
UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykg
KyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYiKTsKLQotICAgIGlmIChoYXZl
RGVwdGhCdWZmZXIpCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBU
SF9CSVRTKSA+PSAxNiIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFy
YW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAiKTsKLQotICAgIGlmIChoYXZlU3RlbmNpbEJ1ZmZl
cikKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykg
Pj0gOCIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGds
LlNURU5DSUxfQklUUykgPT0gMCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0YWNobWVudChhdHRh
Y2htZW50LCBidWZmZXIsIGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICBzaG91bGRCZU5vbk51bGwo
ImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9y
QnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwg
YXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIpOwotICAgIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXJGb3JBbGxvd2VkU3RhdHVz
ZXMoYWxsb3dlZFN0YXR1c2VzKTsKLSAgICBpZiAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9XX0NP
TVBMRVRFKSA9PSAwKSB7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JVRkZFUl9CSVQpOwot
ICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OKTsKLSAgICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBnbC5SR0JB
LCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhlaWdodCAqIDQpKTsK
LSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTik7Ci0gICAgfQotICAgIGNoZWNrQnVmZmVyQml0cyhhdHRhY2htZW50KTsKLSAgICBnbC5k
ZWxldGVGcmFtZWJ1ZmZlcihmYm8pOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0YWNobWVudHMoYXR0
YWNobWVudDAsIGJ1ZmZlcjAsIGF0dGFjaG1lbnQxLCBidWZmZXIxLCBhbGxvd2VkU3RhdHVzZXMp
Ci17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7
Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQwLCBnbC5SRU5ERVJCVUZGRVIsIGJ1
ZmZlcjApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGdsLmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2htZW50MSwgZ2wuUkVO
REVSQlVGRkVSLCBidWZmZXIxKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNl
cyk7Ci0gICAgY2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQwLCBhdHRhY2htZW50MSk7Ci0gICAg
Z2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbG9yUmVuZGVy
YnVmZmVyKGludGVybmFsZm9ybWF0LCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVO
b25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wu
YmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5y
ZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgaW50ZXJuYWxmb3JtYXQsIHdpZHRo
LCBoZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIHRl
c3RBdHRhY2htZW50KGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBjb2xvckJ1ZmZlciwgYWxsb3dlZFN0
YXR1c2VzKTsKLX0KLQotZnVuY3Rpb24gdGVzdERlcHRoU3RlbmNpbFJlbmRlcmJ1ZmZlcihhbGxv
d2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wu
UkVOREVSQlVGRkVSLCBkZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIC8vIE9wZW5HTCBp
dHNlbGYgZG9lc24ndCBzZWVtIHRvIGd1YXJhbnRlZSB0aGF0IGUuZy4gYSAyIHggMAotICAgIC8v
IHJlbmRlcmJ1ZmZlciB3aWxsIHJlcG9ydCAyIGZvciBpdHMgd2lkdGggd2hlbiBxdWVyaWVkLgot
ICAgIGlmICghKGhlaWdodCA9PSAwICYmIHdpZHRoID4gMCkpCi0gICAgICAgIHNob3VsZEJlKCJn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfV0lEVEgpIiwgIndpZHRoIik7Ci0gICAgaWYgKCEod2lkdGggPT0gMCAmJiBoZWlnaHQgPiAw
KSkKLSAgICAgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5E
RVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIiwgImhlaWdodCIpOwotICAgIHNob3Vs
ZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSIsICJnbC5ERVBUSF9TVEVOQ0lMIik7Ci0gICAgc2hv
dWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJF
TkRFUkJVRkZFUl9SRURfU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0la
RSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSIsICIwIik7Ci0gICAgc2hv
dWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJF
TkRFUkJVRkZFUl9BTFBIQV9TSVpFKSIsICIwIik7Ci0gICAgLy8gQXZvaWQgdmVyaWZ5aW5nIHRo
ZXNlIGZvciB6ZXJvLXNpemVkIHJlbmRlcmJ1ZmZlcnMgZm9yIHRoZSB0aW1lCi0gICAgLy8gYmVp
bmcgc2luY2UgaXQgYXBwZWFycyB0aGF0IGV2ZW4gT3BlbkdMIGRvZXNuJ3QgZ3VhcmFudGVlIHRo
ZW0uCi0gICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7Ci0gICAgICAgIHNob3VsZEJl
VHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCIpOwotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdl
dFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9T
VEVOQ0lMX1NJWkUpID4gMCIpOwotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5P
X0VSUk9SKTsKLSAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQs
IGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c2VzKTsKLSAgICB0ZXN0RGVwdGhTdGVu
Y2lsRGVwdGhTdGVuY2lsKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3REZXB0aFN0ZW5jaWxEZXB0aFN0
ZW5jaWwoKQotewotICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkgewotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgdmFyIHRlc3RzID0gWwotICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6IGds
LkRFUFRIX0NPTVBPTkVOVDE2LAotICAgICAgICAgICAgZmlyc3RBdHRhY2g6IGdsLkRFUFRIX0FU
VEFDSE1FTlQsCi0gICAgICAgICAgICBzZWNvbmRGb3JtYXQ6IGdsLkRFUFRIX1NURU5DSUwsCi0g
ICAgICAgICAgICBzZWNvbmRBdHRhY2g6IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotICAg
ICAgICB9LAotICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6IGdsLkRFUFRIX1NURU5DSUwsCi0gICAg
ICAgICAgICBmaXJzdEF0dGFjaDogZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULAotICAgICAg
ICAgICAgc2Vjb25kRm9ybWF0OiBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAgICAgICAgICAgIHNl
Y29uZEF0dGFjaDogZ2wuREVQVEhfQVRUQUNITUVOVAotICAgICAgICB9Ci0gICAgXTsKLSAgICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7Ci0gICAgICAgIHZhciB0
ZXN0ID0gdGVzdHNbaWldOwotICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpqIDwgMjsgKytqaikg
ewotICAgICAgICAgICAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCk7Ci0gICAgICAg
ICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAgICAgdmFyIGZpcnN0
UmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAgICAgICAgZGVidWcoIiIpOwot
ICAgICAgICAgICAgZGVidWcoInRlc3Q6ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIHRlc3Qu
Zmlyc3RGb3JtYXQpICsgIiB2cyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LnNlY29u
ZEZvcm1hdCkgKyAiIHdpdGggIiArIChqaiA/ICJ1bmJpbmQiIDogImRlbGV0ZSIpKTsKLQotICAg
ICAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgICAg
ICAgICAgLy8gYXR0YWNoIHRleHR1cmUgYXMgY29sb3IKLSAgICAgICAgICAgIGdsLmJpbmRUZXh0
dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAgICAgICBnbC50ZXhJbWFnZTJEKGdsLlRF
WFRVUkVfMkQsIDAsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJHQkEsIGdsLlVOU0lH
TkVEX0JZVEUsIG51bGwpOwotICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQoZ2wu
RlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgsIDAp
OwotCi0gICAgICAgICAgICAvLyBhdHRhY2ggZmlyc3QKLSAgICAgICAgICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBmaXJzdFJiKTsKLSAgICAgICAgICAgIGdsLnJlbmRl
cmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LmZpcnN0Rm9ybWF0LCB3aWR0aCwg
aGVpZ2h0KTsKLSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1F
QlVGRkVSLCB0ZXN0LmZpcnN0QXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIGZpcnN0UmIpOwotCi0g
ICAgICAgICAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
PT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgICAgICAgICBnbC5lbmFibGUo
Z2wuREVQVEhfVEVTVCk7Ci0gICAgICAgICAgICAgICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBD
b2xvclF1YWQoZ2wpOwotICAgICAgICAgICAgICAgIC8vIFRlc3QgaXQgd29ya3MKLSAgICAgICAg
ICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMCwgMjU1LCAwLCAyNTVdKTsKLSAg
ICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMjU1LCAwLCAwLCAyNTVd
KTsgIC8vIHNob3VsZCBub3QgZHJhdyBzaW5jZSBERVBUSF9GVU5DID09IExFU1MKLSAgICAgICAg
ICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBbMCwg
MjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci0KLSAgICAgICAgICAgICAgICB2YXIg
c2Vjb25kUmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAgICAgICAgICAgIC8v
IGF0dGFjaCBzZWNvbmQKLSAgICAgICAgICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJF
TkRFUkJVRkZFUiwgc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LnNlY29uZEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7
Ci0gICAgICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZG
RVIsIHRlc3Quc2Vjb25kQXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIHNlY29uZFJiKTsKLQotICAg
ICAgICAgICAgICAgIGlmIChqaiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAvLyBub3cgZGVs
ZXRlIGl0Ci0gICAgICAgICAgICAgICAgICBkZWJ1ZygidGVzdCBkZWxldGluZyBzZWNvbmQgcmVu
ZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIoc2Vj
b25kUmIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAvLyB1
bmJpbmQgaXQKLSAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0ZXN0IHVuYmluZGluZyBzZWNvbmQg
cmVuZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1
ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5zZWNvbmRBdHRhY2gsIGdsLlJFTkRFUkJVRkZFUiwg
bnVsbCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZp
cnN0IGF0dGFjaG1lbnQgaXMgbm90IHJlc3RvcmVkIHRoaXMgbWF5IGZhaWwKLSAgICAgICAgICAg
ICAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikn
LCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKLSAgICAgICAgICAgICAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJz
dCBhdHRhY2htZW50IGlzIG5vdCByZXN0b3JlZCB0aGlzIG1heSBmYWlsLgotICAgICAgICAgICAg
ICAgIGdsLmNsZWFyKGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAgICAgICAgICAgIHd0dS5k
cmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOwotICAgICAgICAgICAgICAg
IHd0dS5kcmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFsyNTUsIDAsIDAsIDI1NV0pOyAgLy8gc2hvdWxk
IG5vdCBkcmF3IHNpbmNlIERFUFRIX0ZVTkMgPT0gTEVTUwotICAgICAgICAgICAgICAgIHd0dS5j
aGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFswLCAyNTUsIDAsIDI1NV0s
ICJzaG91bGQgYmUgZ3JlZW4iKTsKLSAgICAgICAgICAgICAgICBnbC5kaXNhYmxlKGdsLkRFUFRI
X1RFU1QpOwotCi0gICAgICAgICAgICAgICAgaWYgKGpqID09IDEpIHsKLSAgICAgICAgICAgICAg
ICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRSYik7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIoc2Vjb25k
UmIpOwotICAgICAgICAgICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZGVzY3Jp
cHRpb24oIlRlc3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVoYXZpb3JzIik7Ci0K
LWZvciAod2lkdGggPSAwOyB3aWR0aCA8PSAyOyB3aWR0aCArPSAyKQotewotICAgIGZvciAoaGVp
Z2h0ID0gMDsgaGVpZ2h0IDw9IDI7IGhlaWdodCArPSAyKQotICAgIHsKLSAgICAgICAgZGVidWco
IiIpOwotICAgICAgICBkZWJ1ZygiRGltZW5zaW9ucyAiICsgd2lkdGggKyAiIHggIiArIGhlaWdo
dCk7Ci0KLSAgICAgICAgZGVidWcoIkNyZWF0ZSByZW5kZXJidWZmZXJzIik7Ci0gICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgiZ2wgPSBjcmVhdGUzRENvbnRleHQoKSIpOwotICAgICAgICBzaG91bGRC
ZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAg
ICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAg
ICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCB3
aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwg
ZGVwdGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJz
dGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wuYmlu
ZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuU1RFTkNJTF9JTkRFWDgs
IHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9S
KTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRF
UkJVRkZFUiwgZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3Rv
cmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRoLCBoZWlnaHQpOwot
ICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgICAgICB2YXIg
YWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlCi0gICAgICAgICAgICA9ICh3aWR0aCA9PSAwIHx8IGhl
aWdodCA9PSAwKSA/IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCA6IEFMTE9XX0NPTVBMRVRF
OwotCi0gICAgICAgIC8vIHNvbWUgY2FzZXMgaW52b2x2aW5nIHN0ZW5jaWwgc2VlbSB0byBiZSBp
bXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQKLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0dXNGb3JJbXBs
RGVwZW5kZW50Q2FzZSA9IGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSB8IEFMTE9XX1VOU1VQUE9S
VEVEOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRUQUNITUVO
VCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1
ZmZlciwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBk
ZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQo
Z2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRB
Q0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAg
ICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVCIpOwot
ICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZm
ZXIsIGFsbG93ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50Q2FzZSk7Ci0gICAgICAgIGRlYnVnKCJB
dHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRh
Y2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIEFMTE9XX0lOQ09NUExF
VEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCB1c2luZyBERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhf
U1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFD
SE1FTlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9T
VEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RF
TkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JHb29k
Q2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FU
VEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfQVRUQUNITUVOVCwg
ZGVwdGhTdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAg
ICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsK
LSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5j
aWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICAgICAgdmFyIGFs
bG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudAotICAgICAgICAgICAgPSAod2lkdGgg
PT0gMCB8fCBoZWlnaHQgPT0gMCkgPyBBTExPV19VTlNVUFBPUlRFRCB8IEFMTE9XX0lOQ09NUExF
VEVfQVRUQUNITUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
OiBBTExPV19VTlNVUFBPUlRFRDsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoLCB0aGVu
IHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGds
LkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5TVEVOQ0lMX0FUVEFDSE1FTlQsIHN0
ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAg
ICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdCIp
OwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2ls
QnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zv
ckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCwgdGhl
biBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1l
bnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5ERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRB
dHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVw
dGgsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRI
X1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hN
RU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsK
LSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2lu
ZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfQVRUQUNITUVO
VCwgZGVwdGhCdWZmZXIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2ls
QnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAgICBk
ZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0
Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQs
IGRlcHRoU3RlbmNpbEJ1ZmZlciwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVy
LCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotCi0gICAgICAgIGRlYnVn
KCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQi
KTsKLSAgICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQkE0LCBhbGxvd2VkU3RhdHVz
Rm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVy
IHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMSIpOwotICAgICAgICB0ZXN0Q29sb3JSZW5k
ZXJidWZmZXIoZ2wuUkdCNV9BMSwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLQotICAgICAg
ICBkZWJ1ZygiQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09
IFJHQjU2NSIpOwotICAgICAgICB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wuUkdCNTY1LCBhbGxv
d2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJDcmVhdGUgYW5kIGF0dGFj
aCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgIHRlc3REZXB0aFN0ZW5jaWxS
ZW5kZXJidWZmZXIoYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICB9Ci19Ci0KLS8vIERl
dGVybWluZSBpZiB3ZSBjYW4gYXR0YWNoIGJvdGggY29sb3IgYW5kIGRlcHRoIG9yIGNvbG9yIGFu
ZCBkZXB0aF9zdGVuY2lsCi12YXIgZGVwdGhGb3JtYXQ7Ci12YXIgZGVwdGhBdHRhY2htZW50Owot
Ci1mdW5jdGlvbiBjaGVja1ZhbGlkQ29sb3JEZXB0aENvbWJpbmF0aW9uKCkgewotICAgIHNob3Vs
ZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNv
bG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVO
VDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLQotICAgIHNob3VsZEJl
Tm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGds
LmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0KLSAgICBy
ZXR1cm4gdHJ5RGVwdGgoZ2wuREVQVEhfQ09NUE9ORU5UMTYsIGdsLkRFUFRIX0FUVEFDSE1FTlQp
IHx8IHRyeURlcHRoKGdsLkRFUFRIX1NURU5DSUwsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVO
VCk7Ci0KLSAgICBmdW5jdGlvbiB0cnlEZXB0aCh0cnlfZm9ybWF0LCB0cnlfYXR0YWNobWVudCkg
ewotICAgICAgICBpZiAoZGVwdGhBdHRhY2htZW50KSB7Ci0gICAgICAgICAgICAvLyBJZiB3ZSd2
ZSB0cmllZCBvbmNlIHVuYXR0YWNoIHRoZSBvbGQgb25lLgotICAgICAgICAgICAgZ2wuZnJhbWVi
dWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgICAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRo
QXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICAgICAgfQotICAgICAgICBk
ZXB0aEZvcm1hdCA9IHRyeV9mb3JtYXQ7Ci0gICAgICAgIGRlcHRoQXR0YWNobWVudCA9IHRyeV9h
dHRhY2htZW50OwotICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAg
ICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVw
dGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZF
UiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
Tk9fRVJST1IpOwotICAgICAgICByZXR1cm4gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEU7Ci0gICAgfQotfQotCi1pZiAo
Y2hlY2tWYWxpZENvbG9yRGVwdGhDb21iaW5hdGlvbigpKSB7Ci0gICAgdGVzdEZyYW1lYnVmZmVy
SW5jb21wbGV0ZURpbWVuc2lvbnMoKTsKLSAgICB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlQXR0
YWNobWVudCgpOwotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVNaXNzaW5nQXR0YWNobWVu
dCgpOwotICAgIHRlc3RVc2luZ0luY29tcGxldGVGcmFtZWJ1ZmZlcigpOwotfQotCi1mdW5jdGlv
biBjaGVja0ZyYW1lYnVmZmVyKGV4cGVjdGVkKSB7Ci0gICAgdmFyIGFjdHVhbCA9IGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotICAgIHZhciBtc2cgPSAiZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlICIgKyB3dHUuZ2xF
bnVtVG9TdHJpbmcoZ2wsIGV4cGVjdGVkKSArICIgd2FzICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmco
Z2wsIGFjdHVhbCk7Ci0gICAgaWYgKGV4cGVjdGVkICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
KSB7Ci0gICAgICAgIG1zZyArPSAiIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEIjsKLSAgICB9
Ci0gICAgaWYgKGFjdHVhbCA9PSBleHBlY3RlZCB8fAotICAgICAgICAoZXhwZWN0ZWQgIT0gZ2wu
RlJBTUVCVUZGRVJfQ09NUExFVEUgJiYKLSAgICAgICAgIGFjdHVhbCA9PSBnbC5GUkFNQlVGRkVS
X1VOU1VQUE9SVEVEKSkgewotICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgdGVzdEZhaWxlZChtc2cpOwotICAgIH0KLX0KLQotZnVuY3Rpb24gdGVzdFVzaW5n
SW5jb21wbGV0ZUZyYW1lYnVmZmVyKCkgewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiVGVz
dCBkcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0g
ICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwotICAgIHZhciB0ZXgg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgd3R1LmZpbGxUZXh0dXJlKGdsLCB0ZXgsIDEsIDEs
IFswLDI1NSwwLDI1NV0pOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
Ym8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJi
dWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xv
ckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZS
QU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1
ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJH
QkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJC
VUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAg
ICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBk
ZXB0aEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIs
IGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0g
ICAgLy8gV2UgcGljayB0aGlzIGNvbWJpbmF0aW9uIGJlY2F1c2UgaXQgd29ya3Mgb24gZGVza3Rv
cCBPcGVuR0wgYnV0IHNob3VsZCBub3Qgd29yayBvbiBPcGVuR0wgRVMgMi4wCi0gICAgZ2wucmVu
ZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYpOwot
ICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05T
KTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFu
IGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmcoKTsKLQotICAgIHNo
b3VsZEJlTm9uTnVsbCgiZmJvMiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5i
aW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibzIpOwotICAgIGNoZWNrRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQpOwotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0
ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04iKTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgc2hvdWxkQmVOb25O
dWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmlu
ZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFt
ZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FU
VEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJi
dWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDAsIDApOwotICAgIGRlYnVn
KCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBm
cmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04i
KTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgZnVuY3Rpb24gdGVzdFJl
bmRlcmluZ0FuZFJlYWRpbmcoKSB7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9f
RVJST1IpOwotICAgICAgICB3dHUuZHJhd1F1YWQoZ2wpOwotICAgICAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiZHJhd0FycmF5cyB3aXRo
IGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCAx
LCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheSg0KSk7Ci0gICAg
ICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04s
ICJyZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICAvLyBj
b3B5VGV4SW1hZ2UgYW5kIGNvcHlUZXhTdWJJbWFnZSBjYW4gYmUgZWl0aGVyIElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIGJlY2F1c2UKLSAgICAgICAgLy8gdGhlIGZyYW1lYnVmZmVyIGlz
IGludmFsaWQgT1IgSU5WQUxJRF9PUEVSQVRJT04gYmVjYXVzZSBpbiB0aGUgY2FzZSBvZiBubyBh
dHRhY2htZW50cwotICAgICAgICAvLyB0aGUgZnJhbWVidWZmZXIgaXMgbm90IG9mIGEgY29tcGF0
aWJsZSB0eXBlLgotICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRChnbC5URVhUVVJFXzJELCAw
LCAwLCAwLCAwLCAwLCAxLCAxKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBbZ2wuSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sIGdsLklOVkFMSURfT1BFUkFUSU9OXSwgImNvcHlU
ZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICBnbC5jb3B5
VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAwLCAwLCAxLCAxLCAwKTsKLSAg
ICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBbZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04sIGdsLklOVkFMSURfT1BFUkFUSU9OXSwgImNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5jb21w
bGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklU
IHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sICJjbGVhciB3aXRoIGluY29tcGxldGUgZnJh
bWVidWZmZXIiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxl
dGVBdHRhY2htZW50KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJv
KTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JC
dWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFN
RUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZm
ZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JB
NCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
KTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiV3Jvbmcgc3RvcmFnZSB0eXBlIGZvciB0
eXBlIG9mIGF0dGFjaG1lbnQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIChP
cGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVO
REVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGds
LkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0g
ICAgZGVidWcoIjAgc2l6ZSBhdHRhY2htZW50IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUpIik7Ci0gICAgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAwLCAwKTsKLSAgICBjaGVja0Zy
YW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZyYW1l
YnVmZmVySW5jb21wbGV0ZU1pc3NpbmdBdHRhY2htZW50KCkgewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiTm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVfRlJBTUVCVUZGRVJf
TUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIHNob3VsZEJl
Tm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLQotICAgIHNob3VsZEJl
Tm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGds
LmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wu
ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVu
ZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotICAg
IGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9B
VFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLQotICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotfQotCi1mdW5jdGlvbiB0ZXN0RnJhbWVi
dWZmZXJJbmNvbXBsZXRlRGltZW5zaW9ucygpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWco
IkF0dGFjaG1lbnRzIG9mIGRpZmZlcmVudCBzaXplcyBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9ESU1FTlNJT05TIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotCi0gICAgc2hvdWxk
QmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZy
YW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29s
b3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJi
dWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJS
ZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3Rv
cmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVO
b25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wu
YmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5m
cmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0
YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgY2hl
Y2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0gICAgZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZm
ZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAzMik7Ci0gICAgY2hlY2tG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMpOwotICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsK
LSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLSAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIHZhciB0ZXggPSBnbC5jcmVhdGVU
ZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwgdGV4KTsKLSAgICBn
bC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdC
QSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgZ2wuZnJhbWVidWZmZXJUZXh0dXJlMkQo
Z2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJFXzJELCB0ZXgs
IDApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGlmIChnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5GUkFNRUJVRkZFUl9D
T01QTEVURSkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAzMiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGds
LlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAg
Y2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBnbEVycm9y
U2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxYTVmODk3
NjQxNzRmNzk1MzlhMTg3MmYyZDIwMjc3MjYzYjIzZTllLi42MDBlZmU2ZmVjNzc2YjBlZjNjZTNk
NzE0ZDdjZjhmMTUzNmUzNjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNDM1LDcgKzQzNSw2IEBAIHdlYmtpdC5vcmcvYi8xNjk5MTggY29tcG9zaXRp
bmcvdmlkZW8vdmlkZW8tYmFja2dyb3VuZC1jb2xvci5odG1sIFsgTWlzc2luZyBDcmFzCiB3ZWJr
aXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2FudGlhbGlhc2luZy1lbmFibGVkLmh0
bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJn
bC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMuaHRtbCBb
IEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9jb3B5QnVm
ZmVyU3ViRGF0YS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2Fu
dmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgWyBGYWlsdXJlIF0K
IHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QnVmZmVyU3ViRGF0YS13
ZWJnbDEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93
ZWJnbC9nbHNsLWNvbmZvcm1hbmNlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5
MTcgZmFzdC9jYW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlhbHBoYS10ZXN0Lmh0bWwgWyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDQ5NTU2
ZWQ3ODFlNGI0ZDc2NGNlMjNlYWY5YzIzMDlhYmM3ZTVmNS4uOGEyN2ZiNTIwYzUyYmE0MDZiMmQ2
NmYwMzhhZWQxOTU3OTkyODkzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTI3NDAsNyArMjc0MCw2IEBAIHdlYmtpdC5vcmcvYi8xNzE2MTcgcGVyZi9v
YmplY3Qta2V5cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBXZWJHTCB0ZXN0cyB3aGljaCBu
ZWVkIHRyaWFnaW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2IvMTc0MTAwCiBmYXN0L2NhbnZh
cy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMu
aHRtbCBbIEZhaWx1cmUgXQotZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0
dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wvb2VzLXRleHR1cmUt
ZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0
dXJlLWhhbGYtZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmds
L3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtcG90ZW50aWFsbHktc3Vic2FtcGxlZC1p
bWFnZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDkwMjdhOWQzOWU3ZjZjMzFjNjA0N2Y4YTU1ODM4MGUxZGJlODZmYTcuLmJh
Y2YxZmU2ZGM0OTNjNTYwNjdkYzI3MDVjNjc1ZDg5Yjg1N2NkM2YgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTQsOCArMjk0LDYgQEAgd2Via2l0Lm9y
Zy9iLzgyNjY1IHdlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1pbmxpbmUtc3R5bGVz
Lmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzgyNzYyIGZhc3QvYW5pbWF0aW9uL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCiAKLXdlYmtpdC5vcmcvYi84Mjgw
NSBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sIFsg
RmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2tleWJvYXJkLWV2ZW50cy5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2xheW91dC1p
bi1iZWZvcmVsb2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1Z2luLWxvYWRpbmcuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODI5NzIgcGx1Z2lucy9tb3VzZS1ldmVudHMtZml4ZWRw
b3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJnbC8y
LjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMtZGVwdGgtc3RlbmNp
bC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4w
L2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFu
dGlhbGlhcy1vYmV5ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDViZWY4MTZjNDZmN2YwMDJkNDU1Njg3
ZDM5MTQ1MjIxZmU0YzBjYWYuLjM2Yzk0OGFkZTk1ZWNiM2Q0OWJlOTBjMTE0ZjM4N2Q3OGY0Mjk5
ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9jb250
ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9jb250
ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0xLDE3ICsxLDE1IEBACiBUaGlzIHRlc3QgcnVucyB0aGUgV2ViR0wgVGVz
dCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mgb3IgRkFJTC4KIAog
VGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9ybWFuY2UyL2NvbnRl
eHQvY29udGV4dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9iZXllZC5odG1s
Ci1bIDE6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgMjogRkFJTCBd
IGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAorWyAxOiBQQVNTIF0gQ29udGV4dCBjcmVh
dGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCitbIDI6
IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCiBbIDM6IEZBSUwgXSBzdGVuY2ls
ID0gdHJ1ZSBpcyBub3Qgb2JleWVkCiBbIDQ6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qg
b2JleWVkCi1bIDU6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgNjog
RkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgNzogRkFJTCBdIHN0ZW5jaWwg
PSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgODogRkFJTCBdIGFudGlhbGlhcyA9IHRydWUgaXMgbm90
IG9iZXllZAorWyA1OiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9iZXllZAorWyA2OiBQ
QVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwg
YW5kIHN0ZW5jaWwuCitbIDc6IFBBU1MgXSBDb250ZXh0IGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVj
dCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KK1sgODogUEFTUyBdIENvbnRleHQgY3Jl
YXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgogWyA5
OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0
aCwgYW5kIHN0ZW5jaWwuCi1bIDEwOiBGQUlMIF0gYW50aWFsaWFzID0gdHJ1ZSBpcyBub3Qgb2Jl
eWVkCi1bIDExOiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFs
aWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCi1bIDEyOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLVsgRkFJTCBdIDkgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgMTA6IFBBU1MgXSBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorWyBGQUlMIF0gNCBmYWlsdXJlcyByZXBvcnRlZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386457</attachid>
            <date>2019-12-27 14:29:48 -0800</date>
            <delta_ts>2019-12-27 16:18:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191228092946.patch</filename>
            <type>text/plain</type>
            <size>384791</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiOGM5YWRiYTM1YzNiNmNk
NGZlNTZkODZlMjE5ZDFjNzgwOTdlOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZywKKyAgICAgICAgRG9QcmVtdWx0aXBseSwKKyAgICAgICAgRG9Vbm11
bHRpcGx5LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIERPTVNvdXJjZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBJbWFnZSwKKyAgICAgICAgQ2FudmFzLAorICAgICAgICBWaWRlbywKKyAgICAgICAg
Tm9uZSwKKyAgICB9OworCisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9y
bTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCA9IDA7CisKKyAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBib29sIGhhc0FscGhhKERhdGFGb3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAg
c3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBODoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkEzMkY6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFS
ODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9y
bWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBODoKKyAgICAgICAgY2Fz
ZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBQkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpS
R0JBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkEzMkY6CisgICAgICAgIGNhc2Ug
RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTU1NTE6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGJvb2wgaGFzQ29sb3IoRGF0YUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0
Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTMy
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJHQjE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0IzMkY6CisgICAgICAgIGNh
c2UgRGF0YUZvcm1hdDo6QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpB
QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I1NjU6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6Ujg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UjE2
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMzJGOgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUjg6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQgaXMg
b25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMuCisg
ICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgorICAgIC8v
IFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0cy4g
SXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEgbGl0
dGxlIG1vcmUgZm9yIENHIHBvcnQuCisgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBzcmNG
b3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3JtYXQp
CisgICAgeworI2lmIFVTRShDRykKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICByZXR1cm4gU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
UkdCOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCOAorICAgICAgICB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBUjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
ODsKKyNlbHNlCisgICAgLy8gVGhhdCBMSVRUTEVfRU5ESUFOIGNhc2UgaGFzIG1vcmUgcG9zc2li
bGUgZm9ybWF0cyB0aGFuIEJJR19FTkRJQU4gY2FzZSBpcyBiZWNhdXNlIHNvbWUgZGVjb2RlZCBp
bWFnZSBkYXRhIGlzIGFjdHVhbGx5IGJpZyBlbmRpYW4KKyAgICAvLyBldmVuIG9uIGxpdHRsZSBl
bmRpYW4gYXJjaGl0ZWN0dXJlcy4KKyAgICByZXR1cm4gU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6
OkJHUkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBQkdSOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdDo6QkdSOAorICAgICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdC
QTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSOCB8fCBT
cmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QTgKKyAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFG
b3JtYXQ6OlJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QVI4OworI2VuZGlmCisjZWxz
ZQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0
ID09IERhdGFGb3JtYXQ6OlJHQkE4OworI2VuZGlmCisgICAgfQorCisgICAgc3RydWN0IEFjdGl2
ZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgR0MzRGVudW0gdHlwZTsKKyAg
ICAgICAgR0MzRGludCBzaXplOworICAgIH07CisKKyAgICBHcmFwaGljc0NvbnRleHQzREJhc2Uo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpP
ZmZzY3JlZW4sIEdyYXBoaWNzQ29udGV4dDNEQmFzZSogc2hhcmVkQ29udGV4dCA9IG51bGxwdHIp
OworICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dDNEQmFzZSgpID0gZGVmYXVsdDsKKworICAg
IC8vID09PT09PT09PT0gV2ViR0wgMSBlbnRyeSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQg
YWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNE
T2JqZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJpbmRCdWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihH
QzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4s
IEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBibGVuZEVxdWF0aW9uKEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxl
bmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1vZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0gc2ZhY3RvciwgR0MzRGVu
dW0gZGZhY3RvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShHQzNE
ZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0RlbnVt
IGRzdEFscGhhKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKEdDM0Ri
aXRmaWVsZCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoR0MzRGNsYW1w
ZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBo
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVwdGgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGVuY2lsKEdDM0RpbnQgcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjb2xvck1hc2soR0MzRGJvb2xlYW4gcmVkLCBHQzNEYm9vbGVhbiBncmVlbiwg
R0MzRGJvb2xlYW4gYmx1ZSwgR0MzRGJvb2xlYW4gYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29tcGlsZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwg
R0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50
IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCBQbGF0Zm9ybTNE
T2JqZWN0IGNyZWF0ZUJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3Qg
Y3JlYXRlRnJhbWVidWZmZXIoKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNy
ZWF0ZVByb2dyYW0oKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hh
ZGVyKEdDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRl
eHR1cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY3VsbEZhY2UoR0MzRGVudW0gbW9kZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZyYW1lYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUoUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcHRoTWFzayhHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0LCBQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBp
bmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdD
M0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3
RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZShHQzNEZW51
bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0Mz
RHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBy
ZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQgbGV2ZWwp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZU1pcG1hcChHQzNEZW51bSB0YXJnZXQpID0gMDsKKwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVBdHRyaWIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFt
LCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBB
Y3RpdmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291
bnQsIFBsYXRmb3JtM0RPYmplY3QqIHNoYWRlcnMpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGlu
dCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0
UGFyYW1ldGVyCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KEdDM0RlbnVtIHBuYW1l
LCBHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlZ2VyNjR2KEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50NjQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFByb2dyYW1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCb29sZWFudihHQzNEZW51bSBw
bmFtZSwgR0MzRGJvb2xlYW4qIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGdl
dEVycm9yKCkgPSAwOworCisgICAgLy8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
CisgICAgdmlydHVhbCB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUsIEdDM0Rp
bnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQcm9ncmFtUGFyYW1ldGVyCisgICAgdmlydHVh
bCBTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAg
Ly8gZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRTaGFkZXJQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9y
bWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEdDM0RpbnQq
IHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pID0gMDsKKworICAgIHZpcnR1YWwgU3RyaW5nIGdl
dFNoYWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRUZXhQYXJh
bWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRUZXhQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0VW5pZm9ybQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9uLCBH
QzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKSA9
IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RpbnQgZ2V0VW5pZm9ybUxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgLy8gZ2V0VmVydGV4QXR0cmli
CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYmZ2KEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRW
ZXJ0ZXhBdHRyaWJpdihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RzaXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZz
ZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0
dWFsIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
aXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYg
dmFsdWUsIEdDM0Rib29sZWFuIGludmVydCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2lzc29y
KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVu
YyhHQzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0RlbnVtIGZ1
bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
ZW5jaWxNYXNrKEdDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1h
c2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0ZW5jaWxPcChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0g
enBhc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wU2VwYXJhdGUoR0MzRGVudW0g
ZmFjZSwgR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdDM0RlbnVtIHpwYXNzKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1ldGVyZihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFy
YW1ldGVyaShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rm
bG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtMWl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGlu
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0y
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwg
R0MzRGludCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaXYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdD
M0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNE
aW50IHopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5p
Zm9ybTRmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZs
b2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEaW50IHosIEdDM0RpbnQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
NGl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4MmZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rz
aXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJpeDRmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHVzZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNE
ZmxvYXQgeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQg
aW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZl
cnRleEF0dHJpYjJmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25z
dCBHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIz
ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6
LCBHQzNEZmxvYXQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZnYoR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplLCBH
QzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBidWZmZXJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVp
cHRyIHNpemUsIEdDM0RlbnVtIHVzYWdlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRh
dGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwg
R0MzRGVudW0gdXNhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YShHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0Rz
aXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZv
aWQqIGRhdGEpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWFkUGl4ZWxzKEdDM0RpbnQgeCwg
R0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZv
cm1hdCwgR0MzRGVudW0gdHlwZSwgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCBib29s
IHRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRl
cm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJv
cmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
Y29uc3Qgdm9pZCogcGl4ZWxzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5c0lu
c3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdD
M0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzSW5z
dGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikg
PSAwOworCisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGNvbnRleHRBdHRyaWJ1dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hdHRyczsgfQorICAgIHZvaWQgc2V0Q29udGV4dEF0dHJpYnV0
ZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzJiBhdHRycykgeyBtX2F0dHJzID0g
YXR0cnM7IH0KKworICAgIC8vIFZlcnRleEFycmF5T2plY3QgY2FsbHMKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtM0RPYmplY3QgY3JlYXRlVmVydGV4QXJyYXkoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZVZlcnRleEFycmF5KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisjaWYgVVNF
KE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdMMikKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbWl0aXZlUmVz
dGFydEluZGV4KEdDM0R1aW50KSA9IDA7CisjZW5kaWYKKworICAgIC8vIFN1cHBvcnQgZm9yIGV4
dGVuc2lvbnMuIFJldHVybnMgYSBub24tbnVsbCBvYmplY3QsIHRob3VnaCBub3QKKyAgICAvLyBh
bGwgbWV0aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRo
ZQorICAgIC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBv
cnRzKCkgdG8KKyAgICAvLyBkZXRlcm1pbmUgdGhpcy4KKyAgICB2aXJ0dWFsIEV4dGVuc2lvbnMz
RCYgZ2V0RXh0ZW5zaW9ucygpID0gMDsKKworICAgIC8vID09PT09PT09PT0gV2ViR0wgMiBlbnRy
eSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVs
ZCBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0Rl
bnVtIHRhcmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNE
ZW51bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zm
c2V0LCBHQzNEaW50cHRyIHdyaXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpID0gMDsKKworICAgIC8v
IGdldEludGVybmFsRm9ybWF0UGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldEludGVybmFs
Zm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50KiBwYXJhbXMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHRleFN0
b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTNEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVs
cywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRHNpemVpIGRlcHRoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWN0aXZl
VW5pZm9ybXMoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBjb25zdCBWZWN0b3I8R0MzRHVpbnQ+
JiB1bmlmb3JtSW5kaWNlcywgR0MzRGVudW0gcG5hbWUsIFZlY3RvcjxHQzNEaW50PiYgcGFyYW1z
KSA9IDA7CisKKyAgICAvLyA9PT09PT09PT09IE5vbi1XZWJHTCBiYXNlZCBlbnRyeSBwb2ludHMu
CisKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQzNE
ZW51bSk7CisgICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDM0RlbnVt
KTsKKworICAgIHN0YXRpYyB1aW50OF90IGdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0p
OworCisgICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3Rp
bmF0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIG1f
YXR0cnM7CisgICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCA5MTMw
MDQ0MGNkZWQ0OWUxZGRkNTBiYzQ5ZWM3OGRkNjU4ZGQ2YTBlLi5hM2U2ZDI1ODIxNDVkZThjMTYw
OTBiZDBlYzhjMGZlMzQwZjQyZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTM4
LDEzICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7Ci0gICAgc3dpdGNo
IChyZW5kZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNj
cmVlbjoKKyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9nbENvbnRleHQgPSBHTENv
bnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheUZvckNvbXBvc2l0aW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCmluZGV4IGUzM2Y4ZmJlNzM4OTJlMzRiOGRlZjgzNmQ0NmY1YzcwYzc5YzYxZGQuLmYz
MjU0YTgwNTliNTYyYTE1NmE3YzU2YjZhMTg2ODdjZTM0N2U3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24p
OwogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKTsKICAgICBib29sIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c1R5cGVzM0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCmluZGV4IDFhYjFhNGY2NGE2MTRlOWQyM2RhYzhhMGEyYTJjNDg5N2U5MWVlOTEuLjVl
YzI3MTQ1YzAzMGY5ZGJiZGRmZjI1NGYzYTE0ZGIxNWFiYzNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCkBAIC01MSw0ICs1
MSw4IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIEdDM0R1aW50NjQ7CiAKIHR5cGVkZWYg
R0MzRHVpbnQgUGxhdGZvcm0zRE9iamVjdDsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK3R5cGVk
ZWYgdW5zaWduZWQgR0x1aW50OworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRl
eHQzREFOR0xFLmNwcAppbmRleCA3N2JiM2IyY2QxNWUxMjcxMTI2OTQ2OTRhNjQ3OTJhMGRjMzFm
NjRhLi4yOWE3Mzc1NGY1NTA0MTJlYWFlZDIwNDQ4OTEwN2IzNjRiNGU1M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQz
REFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHQzREFOR0xFLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgs
IGludCB5LCBpbnQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRy
cy5hbHBoYSkKKyAgICBpZiAoIWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGEpCiAgICAgICAgIHdp
cGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHBpeGVscyk7CiAjZW5kaWYK
IH0KQEAgLTEzNCwxNyArMTM0LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRl
QXR0cmlidXRlcygpCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0
IEludFNpemUmIHNpemUpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7
CiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWln
aHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCwgaW50ZXJuYWxEZXB0
aFN0ZW5jaWxGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJzLmFscGhhKSB7CisgICAgaWYgKGF0
dHJzLmFscGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQkE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9p
bnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9S
R0I7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgewor
ICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIC8vIFdlIGRv
bid0IGFsbG93IHRoZSBsb2dpYyB3aGVyZSBzdGVuY2lsIGlzIHJlcXVpcmVkIGFuZCBkZXB0aCBp
cyBub3QuCiAgICAgICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1
dGVzLgogCkBAIC0xNTcsNyArMTU4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB9CiAKICAgICAvLyBSZXNpemUgbXVsdGlz
YW1wbGUgRkJPLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5h
bnRpYWxpYXMpIHsKICAgICAgICAgR0xpbnQgbWF4U2FtcGxlQ291bnQ7CiAgICAgICAgIGdsOjpH
ZXRJbnRlZ2VydihHTF9NQVhfU0FNUExFU19BTkdMRSwgJm1heFNhbXBsZUNvdW50KTsKICAgICAg
ICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBpcyBzbG93IG9uIHNvbWUgaGFyZHdhcmUg
YW5kIGlzIHVubGlrZWx5IHRvCkBAIC0xNjcsNyArMTY4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgZ2w6OkJpbmRS
ZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwog
ICAgICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdM
X1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgs
IGhlaWdodCk7CiAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBs
ZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSB7CisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAg
ICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2V0RXh0ZW5zaW9ucygpLnJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAv
LyBXZWJHTCAxLjAncyBydWxlcyBzdGF0ZSB0aGF0IGNvbWJpbmVkIGRlcHRoL3N0ZW5jaWwgcmVu
ZGVyYnVmZmVycwpAQCAtMTc1LDkgKzE3Niw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICBpZiAoIWlzR0xFUzJD
b21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9PSBHTF9ERVBUSDI0X1NU
RU5DSUw4X09FUykKICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVS
LCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgaWYg
KGF0dHJzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJC
VUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAg
IGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVE
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMTUsNyAr
MjE2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKICAgICBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChpbnRlcm5h
bERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBib29sIG11c3RSZXN0
b3JlRkJPID0gdHJ1ZTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0
cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZG
RVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X211bHRpc2FtcGxlRkJPKQogICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAg
LTIyOSw3ICsyMzAsOSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphdHRhY2hEZXB0aEFu
ZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQs
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkpIHsKKyAgICBhdXRvIGF0dHJzID0g
Y29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSkgewogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZl
cihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZ2w6OlJl
bmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRl
IHRoYXQgY29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0yMzcsOSArMjQw
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVy
SWZOZWVkZWQoR0x1aW50IGludGVybmFsRGVwdGgKICAgICAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkgJiYgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPT0gR0xfREVQVEgyNF9TVEVOQ0lM
OF9PRVMpCiAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRo
U3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAg
IGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgZ2w6OkJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVS
QlVGRkVSLCAwKTsKQEAgLTM3OCwxNyArMzgxLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
CiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91bGQgYmUgZG9uZSBiZWZv
cmUgcmVhZGluZyBwaXhlbHMuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgZ2w6OkZs
dXNoKCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0g
bV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRp
c2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50
UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIGdsOjpGbHVz
aCgpOwogICAgIH0KICAgICBnbDo6UmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3Jt
YXQsIHR5cGUsIGRhdGEpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJP
KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgKGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKKyAgICBpZiAo
IWF0dHJzLmFscGhhICYmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X2ZibyB8fCAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNh
bXBsZUZCTykpKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVp
Z2h0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YSkpOwogI2VuZGlmCiB9CkBAIC0z
OTksMjAgKzQwMywyMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaQogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVu
Y2lsRXh0ZW5zaW9uKQogewogICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVu
c2lvbnMoKTsKLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgYXV0byBhdHRycyA9IGNv
bnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewogICAgICAgICBp
ZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7CiAg
ICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0
ZW5zaW9uKTsKICAgICAgICAgICAgIC8vIEZvcmNlIGRlcHRoIGlmIHN0ZW5jaWwgaXMgdHJ1ZS4K
LSAgICAgICAgICAgIG1fYXR0cnMuZGVwdGggPSB0cnVlOworICAgICAgICAgICAgYXR0cnMuZGVw
dGggPSB0cnVlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fYXR0cnMuc3RlbmNpbCA9
IGZhbHNlOwotCisgICAgICAgICAgICBhdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAgIHNl
dENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAvLyBGSVhNRTogbXVz
dCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMgMy4w
IHN1cHBvcnQuCi0gICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJh
bWVidWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9y
Z2JhOCIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1fYXR0cnMuYW50aWFs
aWFzID0gZmFsc2U7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoIWV4dGVuc2lvbnMuc3Vw
cG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgIWV4dGVuc2lvbnMu
c3VwcG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKSB8fCAhZXh0ZW5zaW9ucy5zdXBw
b3J0cygiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFz
ID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIik7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVu
c3VyZUVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKTsKICAgICAgICAgICAgIGV4
dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKQEAgLTQzNyw3ICs0
NDQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVyaW5nUmVzdWx0
cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJzLnByZW11bHRp
cGxpZWRBbHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVk
QWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQp
IHsKICAgICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAgICAgcGl4ZWxz
W2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAy
NTUpOwpAQCAtNDY0LDcgKzQ3MSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4
dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgLy8gUmVhZGlu
ZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hp
Y2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBsaWVkQWxwaGEp
CisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVh
dGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBAIC00OTAsNyAr
NDk3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogCiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlz
YW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBA
IC01MTcsNyArNTI0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jl
c3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBAIC01NjQsMTEgKzU3MSwxMyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
IAogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwor
ICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2Vk
IGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNjb3BlZFNj
aXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKIAogICAgIGJvb2wgbXVzdFJl
c3RvcmVGQk8gPSByZXNoYXBlRkJPcyhJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICBhdXRv
IGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKIAogICAgIC8vIEluaXRpYWxpemUgcmVuZGVy
YnVmZmVycyB0byAwLgogICAgIEdMZmxvYXQgY2xlYXJDb2xvcltdID0gezAsIDAsIDAsIDB9LCBj
bGVhckRlcHRoID0gMDsKQEAgLTU4MCwxNCArNTg5LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGdsOjpDbGVhckNvbG9yKDAs
IDAsIDAsIDApOwogICAgIGdsOjpHZXRCb29sZWFudihHTF9DT0xPUl9XUklURU1BU0ssIGNvbG9y
TWFzayk7CiAgICAgZ2w6OkNvbG9yTWFzayhHTF9UUlVFLCBHTF9UUlVFLCBHTF9UUlVFLCBHTF9U
UlVFKTsKLSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewog
ICAgICAgICBnbDo6R2V0RmxvYXR2KEdMX0RFUFRIX0NMRUFSX1ZBTFVFLCAmY2xlYXJEZXB0aCk7
CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKDEpOwogICAgICAgICBnbDo6
R2V0Qm9vbGVhbnYoR0xfREVQVEhfV1JJVEVNQVNLLCAmZGVwdGhNYXNrKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhHTF9UUlVFKTsKICAgICAgICAgY2xlYXJNYXNrIHw9IEdMX0RFUFRIX0JVRkZF
Ul9CSVQ7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMu
c3RlbmNpbCkgewogICAgICAgICBnbDo6R2V0SW50ZWdlcnYoR0xfU1RFTkNJTF9DTEVBUl9WQUxV
RSwgJmNsZWFyU3RlbmNpbCk7CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoMCk7CiAgICAgICAg
IGdsOjpHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX1dSSVRFTUFTSywgcmVpbnRlcnByZXRfY2FzdDxH
TGludCo+KCZzdGVuY2lsTWFzaykpOwpAQCAtNjAxLDExICs2MTAsMTEgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICBnbDo6Q2xl
YXJDb2xvcihjbGVhckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVh
ckNvbG9yWzNdKTsKICAgICBnbDo6Q29sb3JNYXNrKGNvbG9yTWFza1swXSwgY29sb3JNYXNrWzFd
LCBjb2xvck1hc2tbMl0sIGNvbG9yTWFza1szXSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsK
KyAgICBpZiAoYXR0cnMuZGVwdGgpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFy
RGVwdGgoY2xlYXJEZXB0aCk7CiAgICAgICAgIGdsOjpEZXB0aE1hc2soZGVwdGhNYXNrKTsKICAg
ICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7
CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfRlJPTlQsIHN0ZW5jaWxNYXNrKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfQkFDSywgc3RlbmNpbE1hc2tCYWNrKTsKQEAgLTY1Nyw3ICs2
NjYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0g
dGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IGJ1ZmZlcgogICAgIGlmIChidWZmZXIpCiAgICAgICAg
IGZibyA9IGJ1ZmZlcjsKICAgICBlbHNlCi0gICAgICAgIGZibyA9IChtX2F0dHJzLmFudGlhbGlh
cyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CisgICAgICAgIGZibyA9IChjb250ZXh0QXR0
cmlidXRlcygpLmFudGlhbGlhcyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CiAgICAgaWYg
KGZibyAhPSBtX3N0YXRlLmJvdW5kRkJPKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
dGFyZ2V0LCBmYm8pOwogICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gZmJvOwpAQCAtODMyLDI0
ICs4NDEsMjggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlckRpcmVjdChQ
bGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxm
b3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RpbnQgYm9yZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAg
IGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1w
bGVGQk8pIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlm
IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJP
KSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5
LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgfQogICAgIGdsOjpDb3B5VGV4SW1h
Z2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwg
Ym9yZGVyKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5i
b3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVy
KEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBj
b250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRl
LmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2Ft
cGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAg
Z2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICB9CiAgICAgZ2w6OkNvcHlUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtMTAzNywxMSArMTA1MCw2IEBAIGludCBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb25EaXJlY3QoUGxhdGZvcm0zRE9iamVjdCBw
cm9ncmFtLCBjb25zdCBTCiAgICAgcmV0dXJuIGdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5h
bWUpOwogfQogCi1HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKLXsKLSAgICByZXR1cm4gbV9hdHRyczsKLX0KLQogYm9v
bCBHcmFwaGljc0NvbnRleHQzRDo6bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkKIHsK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAKaW5kZXggMzYwNjQwZjgwODNmMGUxMDk4NWVmZWU0MzY1ODBhODRkMjY3ZjQyZS4uNDg4OTU3
ZTJlNTdjODA2NjcwMTgzMWIzMDdjZDk3OGMxZGQzOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wK
ICAgICBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiA9IHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYU9w
dGlvbjo6UHJlbXVsdGlwbGllZCA6IEFscGhhT3B0aW9uOjpOb3RQcmVtdWx0aXBsaWVkOwogICAg
IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0g
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbjo6
SWdub3JlZCA6IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkOwogICAgIGF1dG8g
c291cmNlID0gSW1hZ2VTb3VyY2U6OmNyZWF0ZShudWxscHRyLCBhbHBoYU9wdGlvbiwgZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pOwotICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5nOwor
ICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90aGluZzsKIAogICAgIGlmIChtX2ltYWdlLT5k
YXRhKCkpIHsKICAgICAgICAgc291cmNlLT5zZXREYXRhKG1faW1hZ2UtPmRhdGEoKSwgdHJ1ZSk7
CkBAIC02Miw4ICs2Miw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9y
OjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIC8vIHdo
aWNoIGlzIHRydWUgYXQgcHJlc2VudCBhbmQgbWF5IGJlIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZSBh
bmQgbmVlZHMgYWRqdXN0bWVudCBhY2NvcmRpbmdseS4KICAgICAgICAgLy8gMi4gRm9yIHRleElt
YWdlMkQgd2l0aCBIVE1MQ2FudmFzRWxlbWVudCBpbnB1dCBpbiB3aGljaCBBbHBoYSBpcyBhbHJl
YWR5IFByZW11bHRpcGxpZWQgaW4gdGhpcyBwb3J0LCAKICAgICAgICAgLy8gZG8gQWxwaGFEb1Vu
bXVsdGlwbHkgaWYgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIGlzIHNldCB0byBmYWxz
ZS4KLSAgICAgICAgaWYgKCFwcmVtdWx0aXBseUFscGhhICYmIG1faW1hZ2VIdG1sRG9tU291cmNl
ICE9IEh0bWxEb21WaWRlbykKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRp
cGx5OworICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEgJiYgbV9pbWFnZUh0bWxEb21Tb3Vy
Y2UgIT0gRE9NU291cmNlOjpWaWRlbykKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6
OkRvVW5tdWx0aXBseTsKIAogICAgICAgICAvLyBpZiBtX2ltYWdlU3VyZmFjZSBpcyBub3QgYW4g
aW1hZ2UsIGV4dHJhY3QgYSBjb3B5IG9mIHRoZSBzdXJmYWNlCiAgICAgICAgIGlmIChtX2ltYWdl
U3VyZmFjZSAmJiBjYWlyb19zdXJmYWNlX2dldF90eXBlKG1faW1hZ2VTdXJmYWNlLmdldCgpKSAh
PSBDQUlST19TVVJGQUNFX1RZUEVfSU1BR0UpIHsKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRp
cGx5QWxwaGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlUGl4ZWxEYXRhID0gY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfZGF0YShtX2ltYWdlU3VyZmFjZS5nZXQoKSk7Ci0gICAgbV9pbWFnZVNv
dXJjZUZvcm1hdCA9IERhdGFGb3JtYXRCR1JBODsKKyAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0g
RGF0YUZvcm1hdDo6QkdSQTg7CiAgICAgbV9pbWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IHNy
Y1VucGFja0FsaWdubWVudDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKaW5kZXggNDE4YmYzNWI5Mjk3MzFiYjNmOTM5MjczYmQ5MWFkODY4ZmY0YTYxNy4uYmM5Mzhi
NDQyYjgxMThhYWJhM2Y0MzMxMDZiMTc3ZDBmODI3NWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKQEAgLTc3LDIxICs3NywyMSBAQCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZ2V0U291cmNlRGF0YUZvcm1hdCh1bnNpZ25lZCBjb21wb25lbnRzUGVyUAogICAgICAgICB7
IFNvdXJjZUZvcm1hdEJhc2VSR0IsICAgICAgICBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywg
U291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMgfSwgLy8gMyBjb21wb25lbnRzUGVyUGl4ZWwKICAg
ICAgICAgeyBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywgU291cmNlRm9ybWF0QmFzZUFSR0Is
ICAgICAgIFNvdXJjZUZvcm1hdEJhc2VSR0JBICAgICAgICB9IC8vIDQgY29tcG9uZW50c1BlclBp
eGVsCiAgICAgfTsKLSAgICBjb25zdCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZm9ybWF0VGFibGVbU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3Vy
Y2VEYXRhRm9ybWF0QmFzZSB4IGJpdHNQZXJDb21wb25lbnQgeCBlbmRpYW4KKyAgICBjb25zdCBz
dGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0VGFibGVbU291cmNlRm9y
bWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3VyY2VEYXRhRm9ybWF0OjpCYXNlIHggYml0
c1BlckNvbXBvbmVudCB4IGVuZGlhbgogICAgICAgICAvLyA4Yml0cywgbGl0dGxlIGVuZGlhbiAg
ICAgICAgICAgICAgICAgOGJpdHMsIGJpZyBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAxNmJp
dHMsIGxpdHRsZSBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAgICAxNmJpdHMsIGJpZyBlbmRp
YW4KLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcgfSwKLSAg
ICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxp
dHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUs
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2QmlnIH0sCi0gICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2TGl0dGxlLCAgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QkdSOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUsICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
OCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRCR1JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnIH0KKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZyB9LAorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlLCAgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4
LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCAgIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSwgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZyB9LAorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxl
LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnIH0sCisgICAgICAgIHsg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QVJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZM
aXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcgfQogICAgIH07
CiAKICAgICBBU1NFUlQoY29tcG9uZW50c1BlclBpeGVsIDw9IDQgJiYgY29tcG9uZW50c1BlclBp
eGVsID4gMCk7CiAgICAgU291cmNlRGF0YUZvcm1hdEJhc2UgZm9ybWF0QmFzZSA9IGZvcm1hdFRh
YmxlQmFzZVtjb21wb25lbnRzUGVyUGl4ZWwgLSAxXVthbHBoYUZvcm1hdF07CiAgICAgaWYgKGZv
cm1hdEJhc2UgPT0gU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMpCi0gICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdE51bUZvcm1hdHM7CisgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6TnVtRm9ybWF0czsKICAgICByZXR1cm4gZm9y
bWF0VGFibGVbZm9ybWF0QmFzZV1bKGlzMTZCaXRGb3JtYXQgPyAyIDogMCkgKyAoYmlnRW5kaWFu
ID8gMSA6IDApXTsKIH0KIApAQCAtMTA2LDEzICsxMDYsMTMgQEAgdWludDhfdCBjb252ZXJ0Q29s
b3IxNkJpZ1RvOCh1aW50MTZfdCB2YWx1ZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4odmFsdWUgJiAweDAwRkYpOwogfQogCi10ZW1wbGF0ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBT
b3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBl
PgogQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTgoY29uc3QgU291
cmNlVHlwZSosIERzdFR5cGUqLCB1bnNpZ25lZCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSwgdWludDE2
X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUo
QVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkExNkxpdHRs
ZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTEyNyw3ICsx
MjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRU
b1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcsIHVpbnQxNl90LCB1aW50
OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQ
ZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2Qmln
VG84KHNvdXJjZVswXSk7CkBAIC0xMzksNyArMTM5LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxpdHRsZSwg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYg
SEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCMTZM
aXR0bGVUb1JHQkE4KHNvdXJjZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0xNTQs
NyArMTU0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZywgdWludDE2X3QsIHVp
bnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZC
aWdUbzgoc291cmNlWzBdKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2
Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUkdCMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZkFS
R0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTE4MSw3ICsxODEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcsIHVpbnQx
Nl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRD
b2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CkBAIC0xOTMsNyArMTkzLDcgQEAgdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZM
aXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAg
ICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOwpA
QCAtMjA1LDcgKzIwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1h
dFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTIxNyw3ICsyMTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKQEAg
LTIyOSw3ICsyMjksNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzFdKTsKQEAg
LTI1Myw3ICsyNTMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IDB4MDsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IDB4MDsKQEAgLTI5NiwyMCArMjk2LDIwIEBAIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBzcmNGb3JtYXQsIGNvbnN0
IHVpCiAgICAgICAgIHJldHVybiBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PFNyY0Zvcm1hdD4o
c291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKIAogICAgIHN3aXRjaCAoc3JjRm9y
bWF0KSB7Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcpCi0gICAgICAgIENPTlZFUlQx
NkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZMaXR0bGUp
Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRBMTZCaWcpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRG
T1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZykKLSAgICAg
ICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEFSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0IxNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZykKLSAgICAgICAg
Q09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
R0IxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
QTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpBUjE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9S
TUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZC
SVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZMaXR0
bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkFSR0IxNkJpZykKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CkBAIC00MTcsMTggKzQxNywxOCBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgYm9vbAogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9hbHBoYU9wID0gQWxwaGFEb05vdGhp
bmc7CisgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Ob3RoaW5nOwogICAgIEFscGhhRm9ybWF0
IGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXROb25lOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFs
cGhhSW5mbyhtX2NnSW1hZ2UuZ2V0KCkpKSB7CiAgICAgY2FzZSBrQ0dJbWFnZUFscGhhUHJlbXVs
dGlwbGllZEZpcnN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAg
ICBtX2FscGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9
IEFscGhhT3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1h
dEZpcnN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFGaXJzdDoKICAg
ICAgICAgLy8gVGhpcyBwYXRoIGlzIG9ubHkgYWNjZXNzaWJsZSBmb3IgTWFjT1MgZWFybGllciB0
aGFuIDEwLjYuNC4KICAgICAgICAgaWYgKHByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBt
X2FscGhhT3AgPSBBbHBoYURvUHJlbXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1hdCA9IEFscGhhRm9ybWF0
Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwRmly
c3Q6CkBAIC00MzcsMTIgKzQzNywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4
dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgICAg
ICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdDoKICAgICAg
ICAgaWYgKCFwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFE
b1VubXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb1VubXVsdGlw
bHk7CiAgICAgICAgIGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFMYXN0OgogICAgICAgICBpZiAocHJlbXVsdGlwbHlB
bHBoYSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAg
ICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhh
Rm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFOb25lU2tpcExhc3Q6CkBAIC00NTYsNyArNDU2LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0gZ2V0U291cmNlRGF0
YUZvcm1hdChjb21wb25lbnRzUGVyUGl4ZWwsIGFscGhhRm9ybWF0LCBiaXRzUGVyQ29tcG9uZW50
ID09IDE2LCBiaWdFbmRpYW5Tb3VyY2UpOwotICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09
IERhdGFGb3JtYXROdW1Gb3JtYXRzKQorICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09IERh
dGFGb3JtYXQ6Ok51bUZvcm1hdHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGl4
ZWxEYXRhID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNvcHlEYXRhKENHSW1hZ2VHZXREYXRhUHJv
dmlkZXIobV9jZ0ltYWdlLmdldCgpKSkpOwpAQCAtNDkwLDcgKzQ5MCw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sCiAgICAgICAgICAgICBkZXN0aW5hdGlvbiArPSBkc3RTdHJpZGVJbkVsZW1l
bnRzOwogICAgICAgICB9CiAgICAgICAgIG1faW1hZ2VQaXhlbERhdGEgPSByZWludGVycHJldF9j
YXN0PGNvbnN0IHZvaWQqPihtX2Zvcm1hbGl6ZWRSR0JBOERhdGEuZ2V0KCkpOwotICAgICAgICBt
X2ltYWdlU291cmNlRm9ybWF0ID0gRGF0YUZvcm1hdFJHQkE4OworICAgICAgICBtX2ltYWdlU291
cmNlRm9ybWF0ID0gRGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgIG1faW1hZ2VTb3VyY2VVbnBh
Y2tBbGlnbm1lbnQgPSAxOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHQzRENvY29hLm1tCmluZGV4IGRhNmIzYjZkMjZkOWUxNDBkOTA3MmQxZGI1YmU2NDQ1MDMx
NWFjMWEuLmM2NDk2NzRhZDJmODgwN2M1YmViNThjNzY3OTRhNWNiMjhmODhiNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpAQCAtMTAyLDEwICsxMDIsMTAgQEAgcHVibGljOgog
ICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLVJlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMs
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVu
dGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlm
IChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVz
dGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250
ZXh0IGlmIHdlJ3JlIGZ1bGwuCkBAIC0xMTMsNyArMTEzLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcwogICAgIGlmIChHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5o
YXNUb29NYW55Q29udGV4dHMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250
ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlKSk7CisgICAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKGF0
dHJzLCBob3N0V2luZG93LCBkZXN0aW5hdGlvbikpOwogCiAgICAgaWYgKCFjb250ZXh0LT5tX2Nv
bnRleHRPYmopCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTI2LDcgKzEyNiw3IEBAIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMKIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZChHcmFwaGljc0NvbnRleHQzRCYgc2hhcmVkQ29udGV4dCkKIHsK
ICAgICBhdXRvIGhvc3RXaW5kb3cgPSBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKS5ob3N0V2luZG93Rm9yQ29udGV4dCgmc2hhcmVkQ29udGV4dCk7Ci0gICAgYXV0byBj
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHQzRChzaGFyZWRDb250ZXh0Lmdl
dENvbnRleHRBdHRyaWJ1dGVzKCksIGhvc3RXaW5kb3csIHNoYXJlZENvbnRleHQubV9yZW5kZXJT
dHlsZSwgJnNoYXJlZENvbnRleHQpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3
IEdyYXBoaWNzQ29udGV4dDNEKHNoYXJlZENvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMoKSwgaG9z
dFdpbmRvdywgc2hhcmVkQ29udGV4dC5kZXN0aW5hdGlvbigpLCAmc2hhcmVkQ29udGV4dCkpOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4
dChjb250ZXh0LnB0cigpLCBob3N0V2luZG93KTsKIApAQCAtMTgzLDggKzE4Myw4IEBAIHN0YXRp
YyB2b2lkIHNldEdQVUJ5UmVnaXN0cnlJRChDR0xDb250ZXh0T2JqIGNvbnRleHRPYmosIENHTFBp
eGVsRm9ybWF0T2JqIHBpeGVsCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIChVU0UoT1BF
TkdMKSB8fCBVU0UoQU5HTEUpKQogCi1HcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2lu
ZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRDb250ZXh0KQotICAgIDogbV9hdHRycyhhdHRycykKK0dyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0Nv
bnRleHQzREJhc2UoYXR0cnMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9w
cml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzKSkKIHsKIApA
QCAtMjAwLDMwICsyMDAsMzQgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNE
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICAgICAgICAgcmV0
dXJuOwogCiAjaWYgVVNFKE9QRU5HTF9FUykKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAg
ICBpZiAoYXR0cnMuaXNXZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJy
aWRnZShTSF9FU1NMX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogICAgIGVsc2UKICAgICAgICAg
bV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVUKTsKICNlbHNlCi0g
ICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAg
ICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfR0xTTF80MTBfQ09SRV9PVVRQVVQs
IFNIX1dFQkdMMl9TUEVDKTsKICNlbmRpZiAvLyBVU0UoT1BFTkdMX0VTKQogI2VuZGlmIC8vICFV
U0UoQU5HTEUpCiAKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTShob3N0V2lu
ZG93KTsKLSAgICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMuaXNXZWJHTDIgPyBrRUFH
TFJlbmRlcmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOworICAg
IEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gYXR0cnMuaXNXZWJHTDIgPyBrRUFHTFJlbmRlcmluZ0FQ
SU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOworICAgIEVBR0xDb250ZXh0
ICpjb250ZXh0T2JqOwogICAgIGlmICghc2hhcmVkQ29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0
T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10gaW5pdFdpdGhBUEk6YXBpXTsKKyAgICAgICAgY29u
dGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2NdIGluaXRXaXRoQVBJOmFwaV07CiAgICAgZWxz
ZQotICAgICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQ
STphcGkgc2hhcmVncm91cDpzaGFyZWRDb250ZXh0LT5tX2NvbnRleHRPYmouc2hhcmVncm91cF07
CisgICAgICAgIGNvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTph
cGkgc2hhcmVncm91cDpzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCAqPihzaGFyZWRDb250ZXh0LT5t
X2NvbnRleHRPYmopLnNoYXJlZ3JvdXBdOworCisgICAgbV9jb250ZXh0T2JqID0gc3RhdGljX2Nh
c3Q8dm9pZCAqPihjb250ZXh0T2JqKTsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0g
ICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAg
ICA6OmdsRW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpQUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9J
TkRFWCk7CiAjZWxpZiBVU0UoT1BFTkdMKQogCi0gICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0g
bV9hdHRycy5hbnRpYWxpYXM7CisgICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0gYXR0cnMuYW50
aWFsaWFzOwogCiAgICAgVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiBhdHRyaWJzOwog
ICAgIENHTFBpeGVsRm9ybWF0T2JqIHBpeGVsRm9ybWF0T2JqID0gMDsKQEAgLTI1MCw3ICsyNTQs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgICAgICBhdHRyaWJzLmFwcGVuZChzdGF0
aWNfY2FzdDxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0ZT4oNCkpOwogICAgIH0KIAotICAgIGlmICht
X2F0dHJzLmlzV2ViR0wyKSB7CisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKSB7CiAgICAgICAgIC8v
IEZJWE1FOiBJbnN0ZWFkIG9mIGJhY2tpbmcgYSBXZWJHTDIgR3JhcGhpY3NDb250ZXh0M0Qgd2l0
aCBhIE9wZW5HTCA0IGNvbnRleHQsIHdlIHNob3VsZCBpbnN0ZWFkIGJhY2sgaXQgd2l0aCBBTkdM
RS4KICAgICAgICAgLy8gVXNlIGFuIE9wZW5HTCA0IGNvbnRleHQgZm9yIG5vdyB1bnRpbCB0aGUg
QU5HTEUgYmFja2VuZCBpcyByZWFkeS4KICAgICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQU9w
ZW5HTFByb2ZpbGUpOwpAQCAtMjY0LDMwICsyNjgsMzcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6Okdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdp
bmQKICAgICBpZiAoIW51bVBpeGVsRm9ybWF0cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ0dM
RXJyb3IgZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ29udGV4
dCA/IHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9iaiA6IG51bGxwdHIsICZtX2NvbnRleHRPYmop
OworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IG51bGxwdHI7CisgICAgQ0dMQ29udGV4
dE9iaiBzaGFyZWRDR0xDb250ZXh0ID0gc2hhcmVkQ29udGV4dCA/IHN0YXRpY19jYXN0PENHTENv
bnRleHRPYmo+KHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9iaikgOiBudWxscHRyOworCisgICAg
Q0dMRXJyb3IgZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ0dM
Q29udGV4dCwgJmNnbENvbnRleHQpOwogICAgIEdMaW50IGFib3J0T25CbGFja2xpc3QgPSAwOwot
ICAgIENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtDR0xDUEFib3J0T25HUFVSZXN0YXJ0
U3RhdHVzQmxhY2tsaXN0ZWQsICZhYm9ydE9uQmxhY2tsaXN0KTsKLSAgICAKKyAgICBDR0xTZXRQ
YXJhbWV0ZXIoY2dsQ29udGV4dCwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xp
c3RlZCwgJmFib3J0T25CbGFja2xpc3QpOworCiAjaWYgUExBVEZPUk0oTUFDKSAvLyBGSVhNRTog
VGhpcyBwcm9iYWJseSBzaG91bGQgYmUgVVNFKE9QRU5HTCkgLSBzZWUgPHJkYXI6Ly81MzA2Mjc5
ND4uCiAKICAgICBhdXRvIGdwdUlEID0gKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+ZGlzcGxh
eUlEKCkpID8gZ3B1SURGb3JEaXNwbGF5KGhvc3RXaW5kb3ctPmRpc3BsYXlJRCgpKSA6IHByaW1h
cnlHUFVJRCgpOwotICAgIHNldEdQVUJ5UmVnaXN0cnlJRChtX2NvbnRleHRPYmosIHBpeGVsRm9y
bWF0T2JqLCBncHVJRCk7CisgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENvbnRleHQsIHBpeGVs
Rm9ybWF0T2JqLCBncHVJRCk7CiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhvc3RXaW5kb3cp
OwogI2VuZGlmCiAKICAgICBDR0xEZXN0cm95UGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXRPYmopOwot
ICAgIAorCisgICAgbV9jb250ZXh0T2JqID0gY2dsQ29udGV4dDsKKwogICAgIGlmIChlcnIgIT0g
a0NHTE5vRXJyb3IgfHwgIW1fY29udGV4dE9iaikgewogICAgICAgICAvLyBXZSB3ZXJlIHVuYWJs
ZSB0byBjcmVhdGUgdGhlIGNvbnRleHQuCiAgICAgICAgIG1fY29udGV4dE9iaiA9IDA7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2lzRm9yV2ViR0wyID0gbV9hdHRycy5pc1dlYkdM
MjsKKyAgICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OworCisgICAgbV9pc0ZvcldlYkdMMiA9
IGF0dHJzLmlzV2ViR0wyOwogCi0gICAgQ0dMU2V0Q3VycmVudENvbnRleHQobV9jb250ZXh0T2Jq
KTsKKyAgICBDR0xTZXRDdXJyZW50Q29udGV4dChjZ2xDb250ZXh0KTsKIAogICAgIC8vIFdlYkdM
IDIgZXhwZWN0cyBFUyAzLW9ubHkgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5ERVggdG8gYmUg
ZW5hYmxlZDsgd2UgbXVzdCBlbXVsYXRlIHRoaXMgb24gbm9uLUVTIDMgc3lzdGVtcy4KICAgICBp
ZiAobV9pc0ZvcldlYkdMMikKQEAgLTMzNCw3ICszNDUsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6
R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZAogICAgIH0KIAogICAgIHN0ZDo6dmVjdG9yPEVHTGludD4gY29udGV4dEF0dHJpYnV0ZXM7
Ci0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIpIHsK
ICAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9DT05URVhUX0NMSUVOVF9W
RVJTSU9OKTsKICAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKDMpOwogICAgIH0g
ZWxzZSB7CkBAIC0zOTYsNiArNDA3LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNlbmRp
ZiAvLyAjZWxpZiBVU0UoQU5HTEUpCiAKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJp
bmcgdmFsaWRhdGlvbi4KIAogICAgIC8vIENyZWF0ZSB0aGUgV2ViR0xMYXllcgogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAtNDUxLDE2ICs0NjMsMTYgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRy
cywgSG9zdFdpbmQKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VY
VCwgbV9mYm8pOwogCiAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwotICAgIGlmICghbV9h
dHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkKKyAg
ICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkp
CiAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAKICAgICAvLyBJZiBuZWNlc3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZv
ciB0aGUgbXVsdGlzYW1wbGUgcmVzdWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnNF
WFQoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhU
KEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIG1fc3RhdGUu
Ym91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVy
c0VYVCgxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBh
dHRycy5kZXB0aCkKICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211
bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAjZWxpZiBVU0UoQU5HTEUpCkBA
IC00NjgsMTYgKzQ4MCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIGdsOjpCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICBtX3N0YXRlLmJvdW5kRkJP
ID0gbV9mYm87CiAKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5j
aWwgfHwgbV9hdHRycy5kZXB0aCkpCisgICAgaWYgKCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJz
LnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpKQogICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygx
LCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogCiAgICAgLy8gSWYgbmVjZXNzYXJ5LCBjcmVhdGUg
YW5vdGhlciBmcmFtZWJ1ZmZlciBmb3IgdGhlIG11bHRpc2FtcGxlIHJlc3VsdHMuCi0gICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAg
ICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICBnbDo6R2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAKQEAgLTUyNywxMiAr
NTM5LDE1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIEdy
YXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhp
cyk7CiAKICAgICBpZiAobV9jb250ZXh0T2JqKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICNpZiBVU0UoT1BFTkdM
X0VTKQogICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICAgICAgW21fY29udGV4dE9i
aiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6bmlsXTsK
KyAgICAgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVuZGVy
YnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOm5pbF07CiAgICAgICAg
IDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX3RleHR1cmUpOwogI2VsaWYgVVNFKE9QRU5H
TCkKLSAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQobV9jb250ZXh0T2JqKTsKKyAgICAgICAg
Q0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9j
b250ZXh0T2JqKTsKKyAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoY2dsQ29udGV4dCk7CiAg
ICAgICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICNlbGlmIFVTRShBTkdM
RSkKICAgICAgICAgRUdMX01ha2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19TVVJGQUNFLCBtX2NvbnRleHRPYmopOwpAQCAtNTQwLDI0ICs1NTUsMjQgQEAgR3Jh
cGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAjZW5kaWYKIAogI2lmIFVTRShP
UEVOR0wpIHx8IFVTRShPUEVOR0xfRVMpCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykg
eworICAgICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsRGVsZXRl
UmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlm
IChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAgIDo6Z2xEZWxl
dGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVG
Qk8pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8
fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMu
ZGVwdGgpCiAgICAgICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1f
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICA6OmdsRGVsZXRlRnJhbWVi
dWZmZXJzRVhUKDEsICZtX2Zibyk7CiAjZWxpZiBVU0UoQU5HTEUpCi0gICAgICAgIGlmIChtX2F0
dHJzLmFudGlhbGlhcykgeworICAgICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAg
ICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVy
KTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAg
ICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAg
ICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVGQk8pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwg
YXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICBnbDo6RGVsZXRlRnJh
bWVidWZmZXJzKDEsICZtX2Zibyk7CkBAIC01NjUsMTAgKzU4MCwxMCBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAg
IFtFQUdMQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDowXTsKLSAgICAgICAgW3N0YXRpY19jYXN0
PEVBR0xDb250ZXh0Kj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsKKyAgICAgICAgW3N0YXRpY19j
YXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVsZWFzZV07CiAjZWxpZiBVU0UoT1BF
TkdMKQogICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dCgwKTsKLSAgICAgICAgQ0dMRGVzdHJv
eUNvbnRleHQobV9jb250ZXh0T2JqKTsKKyAgICAgICAgQ0dMRGVzdHJveUNvbnRleHQoY2dsQ29u
dGV4dCk7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgICAgIEVHTF9NYWtlQ3VycmVudChtX2Rpc3Bs
YXlPYmosIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwog
ICAgICAgICBFR0xfRGVzdHJveUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbnRleHRPYmopOwpA
QCAtNTg3LDkgKzYwMiw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldFJlbmRlcmJ1ZmZl
clN0b3JhZ2VGcm9tRHJhd2FibGUoR0MzRHNpemVpIHdpZHRoLCBHQzNECiAgICAgQ0dSZWN0IHBy
ZXZpb3VzQm91bmRzID0gW21fd2ViR0xMYXllci5nZXQoKSBib3VuZHNdOwogCiAgICAgW21fd2Vi
R0xMYXllciBzZXRCb3VuZHM6Q0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07Ci0gICAg
W21fd2ViR0xMYXllciBzZXRPcGFxdWU6IW1fYXR0cnMuYWxwaGFdOworICAgIFttX3dlYkdMTGF5
ZXIgc2V0T3BhcXVlOiFjb250ZXh0QXR0cmlidXRlcygpLmFscGhhXTsKIAotICAgIFttX2NvbnRl
eHRPYmogcmVuZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOnN0
YXRpY19jYXN0PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQoKSldOworICAgIFtz
dGF0aWNfY2FzdDxFQUdMQ29udGV4dCAqPihtX2NvbnRleHRPYmopIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2U6R0xfUkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpzdGF0aWNfY2FzdDxpZDxFQUdMRHJhd2Fi
bGU+PihtX3dlYkdMTGF5ZXIuZ2V0KCkpXTsKIAogICAgIFttX3dlYkdMTGF5ZXIgc2V0Qm91bmRz
OnByZXZpb3VzQm91bmRzXTsKIH0KQEAgLTYwNiw3ICs2MjEsNyBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQoKQogI2VsaWYgVVNFKE9QRU5HTCkKICAgICBDR0xD
b250ZXh0T2JqIGN1cnJlbnRDb250ZXh0ID0gQ0dMR2V0Q3VycmVudENvbnRleHQoKTsKICAgICBp
ZiAoY3VycmVudENvbnRleHQgIT0gbV9jb250ZXh0T2JqKQotICAgICAgICByZXR1cm4gQ0dMU2V0
Q3VycmVudENvbnRleHQobV9jb250ZXh0T2JqKSA9PSBrQ0dMTm9FcnJvcjsKKyAgICAgICAgcmV0
dXJuIENHTFNldEN1cnJlbnRDb250ZXh0KHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29u
dGV4dE9iaikpID09IGtDR0xOb0Vycm9yOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIGlmIChFR0xf
R2V0Q3VycmVudENvbnRleHQoKSAhPSBtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBFR0xf
TWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0Us
IG1fY29udGV4dE9iaik7CkBAIC02MzgsNyArNjUzLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Y2hlY2tHUFVTdGF0dXMoKQogCiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7CiAjaWYg
VVNFKE9QRU5HTCkKLSAgICBDR0xHZXRQYXJhbWV0ZXIocGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CisgICAgQ0dMQ29u
dGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4ocGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDR0xHZXRQYXJhbWV0ZXIoY2dsQ29udGV4dCwga0NH
TENQR1BVUmVzdGFydFN0YXR1cywgJnJlc3RhcnRTdGF0dXMpOwogICAgIGlmIChyZXN0YXJ0U3Rh
dHVzID09IGtDR0xDUEdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCkgewogICAgICAgICBMT0co
V2ViR0wsICJUaGUgR1BVIGhhcyBibGFja2xpc3RlZCB1cyAoJXApLiBUZXJtaW5hdGluZy4iLCB0
aGlzKTsKICAgICAgICAgZXhpdChFWF9PU0VSUik7CkBAIC02NjYsNyArNjgyLDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0g
ICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKQorICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygpLmFu
dGlhbGlhcykKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogCiAg
ICAgOjpnbEZsdXNoKCk7CkBAIC02NzksOSArNjk1LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnByZXNlbnRSZW5kZXJidWZmZXIoKQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1h
Z2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVu
dW0gdHlwZSwgSU9TdXJmYWNlUmVmIHN1cmZhY2UsIEdDM0R1aW50IHBsYW5lKQogewogI2lmIFVT
RShPUEVOR0wpCi0gICAgcmV0dXJuIGtDR0xOb0Vycm9yID09IENHTFRleEltYWdlSU9TdXJmYWNl
MkQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN1cmZhY2UsIHBsYW5lKTsKKyAgICBDR0xDb250
ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCkpOworICAgIHJldHVybiBrQ0dMTm9FcnJvciA9PSBDR0xUZXhJbWFn
ZUlPU3VyZmFjZTJEKGNnbENvbnRleHQsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUpOwogI2VsaWYgVVNFKE9QRU5HTF9F
UykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQotICAgIHJldHVybiBbcGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCgpIHRleEltYWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFyZ2V0OnRh
cmdldCBpbnRlcm5hbEZvcm1hdDppbnRlcm5hbEZvcm1hdCB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVp
Z2h0IGZvcm1hdDpmb3JtYXQgdHlwZTp0eXBlIHBsYW5lOnBsYW5lXTsKKyAgICByZXR1cm4gW3N0
YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSkgdGV4
SW1hZ2VJT1N1cmZhY2U6c3VyZmFjZSB0YXJnZXQ6dGFyZ2V0IGludGVybmFsRm9ybWF0OmludGVy
bmFsRm9ybWF0IHdpZHRoOndpZHRoIGhlaWdodDpoZWlnaHQgZm9ybWF0OmZvcm1hdCB0eXBlOnR5
cGUgcGxhbmU6cGxhbmVdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKICAgICBV
TlVTRURfUEFSQU0oaW50ZXJuYWxGb3JtYXQpOwpAQCAtNjk5LDcgKzcxNiw3IEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBpbnRlcm5hbEZvCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFj
ZUJhY2tpbmdTdG9yZShJbnRTaXplIHNpemUpCiB7CiAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3ND
b250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlIGF0ICVkIHggJWQuICglcCki
LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIHRoaXMpOwotICAgIFttX3dlYkdMTGF5ZXIg
YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxwaGE6bV9h
dHRycy5hbHBoYV07CisgICAgW21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTpjb250ZXh0QXR0cmlidXRlcygpLmFscGhhXTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFj
a2luZ1N0b3JlRnJvbUxheWVyKCkKQEAgLTcxNiw3ICs3MzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjp1cGRhdGVDR0xDb250ZXh0KCkKICAgICBMT0coV2ViR0wsICJEZXRlY3RlZCBhIG11
eCBzd2l0Y2ggb3IgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24uIENhbGwgQ0dMVXBkYXRlQ29udGV4
dC4gKCVwKSIsIHRoaXMpOwogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgQ0dMVXBk
YXRlQ29udGV4dChtX2NvbnRleHRPYmopOworICAgIENHTFVwZGF0ZUNvbnRleHQoc3RhdGljX2Nh
c3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2JqKSk7CiAgICAgbV9oYXNTd2l0Y2hlZFRvSGln
aFBlcmZvcm1hbmNlR1BVID0gdHJ1ZTsKIH0KIApAQCAtNzU5LDcgKzc3Niw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUgc2l6
ZSkKIHsKICNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRl
eHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUgYXQgJWQgeCAlZC4gKCVwKSIsIHNp
emUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgdGhpcyk7Ci0gICAgW21fd2ViR0xMYXllciBhbGxv
Y2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTptX2F0dHJz
LmFscGhhXTsKKyAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3Jl
V2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAjZW5kaWYKQEAgLTc3OSwxNCArNzk2LDYgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1faXNGb3JXZWJHTDI7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRl
eHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewot
fQotCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6
OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQotewotfQotCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpzaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKIHsKICAgICBHcmFwaGljc0NvbnRl
eHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS51cGRhdGVBbGxDb250ZXh0cygpOwpAQCAtODM0
LDggKzg0MywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY3JlZW5EaWRDaGFuZ2UoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIH0KICNlbHNlCiAjaWYgVVNFKE9QRU5HTCkK
LSAgICBpZiAoIW1faGFzU3dpdGNoZWRUb0hpZ2hQZXJmb3JtYW5jZUdQVSkKLSAgICAgICAgc2V0
R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4dE9iaiwgQ0dMR2V0UGl4ZWxGb3JtYXQobV9jb250ZXh0
T2JqKSwgZ3B1SURGb3JEaXNwbGF5KGRpc3BsYXlJRCkpOworICAgIGlmICghbV9oYXNTd2l0Y2hl
ZFRvSGlnaFBlcmZvcm1hbmNlR1BVKSB7CisgICAgICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4
dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29udGV4dE9iaik7CisgICAgICAgIHNl
dEdQVUJ5UmVnaXN0cnlJRChjZ2xDb250ZXh0LCBDR0xHZXRQaXhlbEZvcm1hdChjZ2xDb250ZXh0
KSwgZ3B1SURGb3JEaXNwbGF5KGRpc3BsYXlJRCkpOworICAgIH0KICNlbmRpZgogI2VuZGlmIC8v
IFVTRShBTkdMRSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGQ4ZTg1MDA5MGZjN2M5YmU1ZWNiY2NlOTdhMGQx
NzljZTM1NzJmYzQuLjU1NDk0ZWQwZWUyZGUxYTJiMDFkMGQwMzY3MDA4Y2ZkODM4NWUwNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQpAQCAtNzAsMTMgKzcwLDE0IEBAIGNvbnN0IEdMZW51bSBpb1N1cmZhY2VUZXh0dXJl
VHlwZSA9IEdMX1RFWFRVUkVfMkQ7CiB7CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRD
b250ZXh0QXR0cmlidXRlcygpLmRldmljZVBpeGVsUmF0aW87CisgICAgYXV0byBhdHRyaWJ1dGVz
ID0gY29udGV4dC0+Y29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9
IGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBVU0UoT1BFTkdMKSB8fCBVU0UoQU5H
TEUpCi0gICAgc2VsZi5jb250ZW50c09wYXF1ZSA9ICFjb250ZXh0LT5nZXRDb250ZXh0QXR0cmli
dXRlcygpLmFscGhhOworICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSAhYXR0cmlidXRlcy5hbHBo
YTsKICAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxm
LmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsKICNlbHNlCi0gICAgc2VsZi5vcGFx
dWUgPSAhY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKKyAgICBzZWxmLm9w
YXF1ZSA9ICFhdHRyaWJ1dGVzLmFscGhhOwogI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBA
IC0xMTIsNyArMTEzLDggQEAgc3RhdGljIHZvaWQgZnJlZURhdGEodm9pZCAqLCBjb25zdCB2b2lk
ICpkYXRhLCBzaXplX3QgLyogc2l6ZSAqLykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICNp
ZiBVU0UoT1BFTkdMKQotICAgIENHTFNldEN1cnJlbnRDb250ZXh0KF9jb250ZXh0LT5wbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0
YXRpY19jYXN0PENHTENvbnRleHRPYmo+KF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCkpOworICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwogCiAgICAgUmV0
YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gaW1hZ2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKICAg
ICBpZiAoIWltYWdlQ29sb3JTcGFjZSkKQEAgLTI1MSw3ICsyNTMsOCBAQCBzdGF0aWMgdm9pZCBm
cmVlRGF0YSh2b2lkICosIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAg
IEdDM0RlbnVtIGludGVybmFsRm9ybWF0ID0gX3VzaW5nQWxwaGEgPyBHTF9SR0JBIDogR0xfUkdC
OwogCiAgICAgLy8gTGluayB0aGUgSU9TdXJmYWNlIHRvIHRoZSB0ZXh0dXJlLgotICAgIENHTEVy
cm9yIGVycm9yID0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChfY29udGV4dC0+cGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCgpLCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIGludGVybmFsRm9ybWF0
LCBfYnVmZmVyU2l6ZS53aWR0aCgpLCBfYnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xfQkdSQSwgR0xf
VU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBpb1N1cmZhY2UsIDApOworICAgIENHTENvbnRleHRP
YmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KF9jb250ZXh0LT5wbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTEVycm9yIGVycm9yID0gQ0dMVGV4SW1h
Z2VJT1N1cmZhY2UyRChjZ2xDb250ZXh0LCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIGludGVy
bmFsRm9ybWF0LCBfYnVmZmVyU2l6ZS53aWR0aCgpLCBfYnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xf
QkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBpb1N1cmZhY2UsIDApOwogICAgIEFT
U0VSVF9VTlVTRUQoZXJyb3IsIGVycm9yID09IGtDR0xOb0Vycm9yKTsKICNlbGlmIFVTRShBTkdM
RSkKICAgICBHQzNEZW51bSB0ZXh0dXJlID0gX2NvbnRleHQtPnBsYXRmb3JtVGV4dHVyZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQppbmRleCAwMTlkMjM5NTE3ZDgyYmMyZWJmM2RiNjU2NmMzZmFkM2E1ODBmZGExLi5m
NTJmZTNkYThlOWJlZjY3ZGJjNDk2MDVmY2E3OWNlNDY5NDM0YzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAt
MzgsOSArMzgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2Fj
aGVDVjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXgKIHsKICAgICBUZXh0dXJlQ2Fj
aGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIENWUmV0dXJu
IGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwg
JmNhY2hlKTsKKyAgICBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q1ZF
QUdMQ29udGV4dD4oY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENW
UmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCBlYWdsQ29udGV4dCwgbnVsbHB0ciwgJmNhY2hlKTsKICNlbGlmIFVT
RShPUEVOR0wpCi0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4
dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKTsKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNnbENvbnRleHQsIENHTEdldFBpeGVs
Rm9ybWF0KGNnbENvbnRleHQpLCBudWxscHRyLCAmY2FjaGUpOwogI2VsaWYgVVNFKEFOR0xFKQog
ICAgIC8vIEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGlzIGludGVncmF0aW5nIHZpYSBB
TkdMRS4KICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcAppbmRleCA0N2NmNWQxMzUzZWIyZDNiZWZmZDhlYjgz
YzI2MWU3NThlZTQyZTk3Li5hYTNkZWEwYTkyODUyZWY5ZjM4Y2RlNjQ2YjYwODAxYWQyZmY3OGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3Rl
eG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKQEAg
LTE3NCwxOSArMTc0LDE5IEBAIGJvb2wgR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQo
KQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0
OjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAK
LUdDM0RBTkdMRUxheWVyOjpHQzNEQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR0MzREFOR0xF
TGF5ZXI6OkdDM0RBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAgICAgOiBHQzNETGF5ZXIoY29u
dGV4dCkKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAg
ICBtX2FuZ2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9z
dFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0
bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC0yMDMsNyArMjAzLDcgQEAgYm9vbCBHQzNEQU5HTEVMYXllcjo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKIAogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RB
TkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBH
QzNEQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9h
bmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oCmluZGV4IGJj
MmY2ZWZjNzhhYzI1YTQwYzRmYTJiOWNmZDliOGIyZGVmYzE0ZWMuLmVjNDdlYWRmMmU5MTY1MGEy
ZWViZGY2NjdiODVkYmMzMDA3MzRhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNEQU5HTEVMYXllci5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgICAgICBib29s
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShHUkFQSElDU19DT05URVhUXzNEKQot
ICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOworICAg
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBwcml2YXRlOgpAQCAtNzMsMTEgKzczLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgRUdMU3VyZmFjZSBtX3N1cmZhY2UgeyBudWxscHRyIH07CiAgICAgfTsKIAotICAgIEdDM0RB
TkdMRUxheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHQzNEQU5HTEVMYXllcihXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7
CiAgICAgdmlydHVhbCB+R0MzREFOR0xFTGF5ZXIoKTsKIAogICAgIGJvb2wgbWFrZUNvbnRleHRD
dXJyZW50KCkgb3ZlcnJpZGU7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9y
bUNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRm
b3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxBTkdMRUNvbnRleHQ+IG1fYW5nbGVDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcAppbmRleCBiZGE2NTg4YWY5MjA0YTBhYTBlZmY5OGVmMGMxMGMyMDVl
NDliMTIxLi4xNmExNDUzYzJiOWNjMWQxNjEyZWQzYTFlNGM2M2I2YTFkZWM1MDRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcApAQCAtNTMsMTUgKzUzLDE1IEBAIEdD
M0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KQogewogfQogCi1H
QzNETGF5ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR0MzRExheWVyOjpHQzNETGF5ZXIo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbikKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jb250ZW50
TGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29udGVudExheWVy
VGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMpKSkKIHsKLSAgICBzd2l0Y2gg
KHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2Ny
ZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29u
dGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc4LDcgKzc4LDcg
QEAgYm9vbCBHQzNETGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgcmV0dXJuIG1fZ2xD
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCBHQzNETGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIEdDM0RMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9n
bENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CkBA
IC05Miw3ICs5Miw3IEBAIHZvaWQgR0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIAog
ICAgIG1fY29udGV4dC5wcmVwYXJlVGV4dHVyZSgpOwogICAgIEludFNpemUgdGV4dHVyZVNpemUo
bV9jb250ZXh0Lm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQubV9jdXJyZW50SGVpZ2h0KTsKLSAg
ICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzID0gbV9jb250ZXh0Lm1fYXR0cnMuYWxwaGEg
PyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKKyAgICBUZXh0dXJlTWFwcGVyR0w6
OkZsYWdzIGZsYWdzID0gbV9jb250ZXh0LmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGEgPyBUZXh0
dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKICNpZiBVU0UoQU5HTEUpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
dGV4dHVyZVNpemUsIFVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKaW5kZXggMzI2ZDZlNTUwNmU2ZTkyN2U0MGQ2
ZjU2MjQ4NTcxYmFjOWRlM2Q4OS4uZTg1NzIxNzdkYWZjYWFjYWIzZWEyMzA5ZDQ4NGJjMzkwNDI3
OGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaApAQCAtNDQsMTMgKzQ0
LDEzIEBAIGNsYXNzIEdDM0RMYXllciA6IHB1YmxpYyBDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVy
SW1wbDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmKTsKLSAgICBH
QzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIEdDM0RMYXllcihXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7CiAKICAg
ICB2aXJ0dWFsIH5HQzNETGF5ZXIoKTsKIAogICAgIENvbnRlbnRMYXllciYgY29udGVudExheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGF5ZXI7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
IHBsYXRmb3JtQ29udGV4dCgpOworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKIAogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRl
ZCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAppbmRleCBiMmI0
YjAzZDVlYmM1YzJjMzllN2JlNDk0MGQ5NjVjOTAyOTU1YjdjLi4xNDk0MWY2NDFlMTUxZjM4YmM2
ZWE1NjljYjhkYWYyMThjMTZkOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAK
QEAgLTE5MCwxMiArMTkwLDggQEAgaW50IEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzQVJCKCkKICAgICBpZiAobV9nbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNFWFQp
IHsKICAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICAgICAgaW50
IHJlYXNvbkZvclJlc2V0ID0gbV9nbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNFWFQoKTsKLSAgICAg
ICAgaWYgKHJlYXNvbkZvclJlc2V0ICE9IEdMX05PX0VSUk9SKSB7Ci0gICAgICAgICAgICBBU1NF
UlQobV9jb250ZXh0TG9zdENhbGxiYWNrKTsKLSAgICAgICAgICAgIGlmIChtX2NvbnRleHRMb3N0
Q2FsbGJhY2spCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0TG9zdENhbGxiYWNrLT5vbkNvbnRl
eHRMb3N0KCk7CisgICAgICAgIGlmIChyZWFzb25Gb3JSZXNldCAhPSBHTF9OT19FUlJPUikKICAg
ICAgICAgICAgIG1fY29udGV4dFJlc2V0U3RhdHVzID0gcmVhc29uRm9yUmVzZXQ7Ci0gICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHJlYXNvbkZvclJlc2V0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TEVTLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMRVMuaAppbmRleCBmNTYyMjJmMjA4OTNmMzFkNGY0ODE3NGMwODMyNTA2YzQwOGYz
NmI0Li40NzcyZmM2ZGUzN2I5ODE2OWZjYjNkNWRiZmNlZGRhMWY2MTY0NDY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuaApAQCAtMTIyLDggKzEyMiw2IEBAIHByb3RlY3RlZDoKICAgICBQ
Rk5HTFZFUlRFWEFUVFJJQkRJVklTT1JBTkdMRVBST0MgbV9nbFZlcnRleEF0dHJpYkRpdmlzb3JB
TkdMRTsKICAgICBQRk5HTERSQVdBUlJBWVNJTlNUQU5DRURBTkdMRVBST0MgbV9nbERyYXdBcnJh
eXNJbnN0YW5jZWRBTkdMRTsKICAgICBQRk5HTERSQVdFTEVNRU5UU0lOU1RBTkNFREFOR0xFUFJP
QyBtX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEU7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExvc3RDYWxs
YmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0wuY3BwCmluZGV4IGI5NjM2M2I1NTE5MzU2YzhjZGY0NjU0MzYzMjZlZDA2Y2Vj
ZWQ4OGQuLjFhNWY5OTM4N2FhMWY2OTg3MjRjMjAwODA3ZjIyYjBhMjY2ZDcyNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtODIsOCArODIsMTAgQEAgc3RhdGlj
IHZvaWQgd2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1
bnNpZ25lZCBjaGFyKiBwaXgKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVsc0Fu
ZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl
aWdodCwgdW5zaWduZWQgY2hhciogcGl4ZWxzKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0
QXR0cmlidXRlcygpOworCiAgICAgLy8gTlZJRElBIGRyaXZlcnMgaGF2ZSBhIGJ1ZyB3aGVyZSBj
YWxsaW5nIHJlYWRQaXhlbHMgaW4gQkdSQSBjYW4gcmV0dXJuIHRoZSB3cm9uZyB2YWx1ZXMgZm9y
IHRoZSBhbHBoYSBjaGFubmVsIHdoZW4gdGhlIGFscGhhIGlzIG9mZiBmb3IgdGhlIGNvbnRleHQu
Ci0gICAgaWYgKCFtX2F0dHJzLmFscGhhICYmIGdldEV4dGVuc2lvbnMoKS5pc05WSURJQSgpKSB7
CisgICAgaWYgKCFhdHRycy5hbHBoYSAmJiBnZXRFeHRlbnNpb25zKCkuaXNOVklESUEoKSkgewog
ICAgICAgICA6OmdsUmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9SR0JBLCBHTF9V
TlNJR05FRF9CWVRFLCBwaXhlbHMpOwogI2lmIFVTRShBQ0NFTEVSQVRFKQogICAgICAgICB2SW1h
Z2VfQnVmZmVyIHNyYzsKQEAgLTExMCw3ICsxMTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KGludCB4LCBpbnQgeSwgaW50
CiAgICAgICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkEsIEdM
X1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViwgcGl4ZWxzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBpZiAoIW1fYXR0cnMuYWxwaGEpCisgICAgaWYgKCFhdHRycy5hbHBoYSkKICAgICAgICAg
d2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMod2lkdGgsIGhlaWdodCwgcGl4ZWxzKTsKICNlbmRp
ZgogfQpAQCAtMTIyLDE3ICsxMjQsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRh
dGVBdHRyaWJ1dGVzKCkKIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMo
KTsKICAgICBjb25zdCBpbnQgd2lkdGggPSBzaXplLndpZHRoKCk7CiAgICAgY29uc3QgaW50IGhl
aWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAgR0x1aW50IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERl
cHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBpZiAo
YXR0cnMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7
CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICB9IGVsc2UgewogICAgICAgICBt
X2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0I4OwogICAgICAgICBjb2xvckZvcm1hdCA9IEdM
X1JHQjsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgLy8gV2Ug
ZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRo
IGlzIG5vdC4KICAgICAgICAgLy8gU2VlIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZUF0dHJp
YnV0ZXMuCiAKQEAgLTE0OSw3ICsxNTIsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNo
YXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0
aXNhbXBsZSBGQk8uCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJz
LmFudGlhbGlhcykgewogICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKICAgICAgICAgOjpn
bEdldEludGVnZXJ2KEdMX01BWF9TQU1QTEVTX0VYVCwgJm1heFNhbXBsZUNvdW50KTsKICAgICAg
ICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBpcyBzbG93IG9uIHNvbWUgaGFyZHdhcmUg
YW5kIGlzIHVubGlrZWx5IHRvCkBAIC0xNjMsMTIgKzE2NiwxMiBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICA6OmdsUmVu
ZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBs
ZUNvdW50LCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwogI2VuZGlmCiAg
ICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNh
bXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJz
LmRlcHRoKSB7CisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAg
ICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBt
X211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgIDo6Z2xSZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291
bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkK
ICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVC
VUZGRVJfRVhULCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhU
LCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAg
IDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0RF
UFRIX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRGVw
dGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZl
ckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCAwKTsKQEAgLTIxMSw3ICsyMTQsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGF0
dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2lsRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwot
ICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsK
ICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fbXVs
dGlzYW1wbGVGQk8pOwogICAgICAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2Ft
cGxlRkJPKQogICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAgLTIyNSwxMiAr
MjI4LDE0IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNp
emUmIHNpemUpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNp
bEJ1ZmZlcklmTmVlZGVkKEdMdWludCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KQogewotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0
cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0
QXR0cmlidXRlcygpOworCisgICAgaWYgKCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5j
aWwgfHwgYXR0cnMuZGVwdGgpKSB7CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdM
X1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2VFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgaW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2ls
KQorICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVO
VF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAgICAgICAg
ICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdM
X0RFUFRIX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoU3RlbmNp
bEJ1ZmZlcik7CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZF
Ul9FWFQsIDApOwogICAgIH0KQEAgLTQ4MiwyMSArNDg3LDIzIEBAIEV4dGVuc2lvbnMzRCYgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEV4dGVuc2lvbnMoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgdm9pZCogZGF0YSkK
IHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIC8vIEZJWE1F
OiByZW1vdmUgdGhlIHR3byBnbEZsdXNoIGNhbGxzIHdoZW4gdGhlIGRyaXZlciBidWcgaXMgZml4
ZWQsIGkuZS4sCiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91bGQgYmUg
ZG9uZSBiZWZvcmUgcmVhZGluZyBwaXhlbHMuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgOjpnbEZsdXNoKCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91
bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYg
bV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVN
dWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAg
ICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBtX2Zibyk7CiAgICAgICAgIDo6Z2xGbHVzaCgpOwogICAgIH0KICAgICA6OmdsUmVhZFBp
eGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEpOwotICAgIGlmICht
X2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8p
CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlz
YW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJv
dW5kRkJPID09IG1fZmJvIHx8IChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKKyAgICBpZiAoIWF0dHJzLmFscGhhICYmIChmb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBtX2ZibyB8fCAoYXR0cnMuYW50aWFsaWFz
ICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQogICAgICAgICB3aXBl
QWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVpZ2h0LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyKj4oZGF0YSkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCA0MmJjOGUxN2UwNjIxODFkNzBlMDRmN2FjMmM5MWJj
YTM4MzFkOTI1Li44NTc1ZWZlMDY2MzlkNGUxN2ZkMTg3YmYyYmZmZTlkNjIwZTJlOWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE0MSwx
OSArMTQxLDIzIEBAIHN0YXRpYyB1aW50NjRfdCBuYW1lSGFzaEZvclNoYWRlcihjb25zdCBjaGFy
KiBuYW1lLCBzaXplX3QgbGVuZ3RoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pCiB7
CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAgICBFeHRlbnNpb25z
M0QmIGV4dGVuc2lvbnMgPSBnZXRFeHRlbnNpb25zKCk7Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1
cHBvcnRzKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgICAg
ICAgICAgLy8gRm9yY2UgZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAgbV9h
dHRycy5kZXB0aCA9IHRydWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAg
ICAgICBhdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVz
KGF0dHJzKTsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Ci0gICAgICAgIGlm
ICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUi
KSB8fCBpc0dMRVMyQ29tcGxpYW50KCkpCi0gICAgICAgICAgICBtX2F0dHJzLmFudGlhbGlhcyA9
IGZhbHNlOwotICAgICAgICBlbHNlCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiAhbV9pc0Zv
cldlYkdMMikgeworICAgICAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX0FOR0xFX2Zy
YW1lYnVmZmVyX211bHRpc2FtcGxlIikpIHsKKyAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9
IGZhbHNlOworICAgICAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOworICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsKICAgICB9CiB9CkBAIC0xNzUsNyArMTc5LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoSW1h
Z2VCdWZmZXIqIGltYWdlQnVmZmVyKQogCiAgICAgcmVhZFJlbmRlcmluZ1Jlc3VsdHMocGl4ZWxz
LmdldCgpLCB0b3RhbEJ5dGVzKTsKIAotICAgIGlmICghbV9hdHRycy5wcmVtdWx0aXBsaWVkQWxw
aGEpIHsKKyAgICBpZiAoIWNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKSB7
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxCeXRlczsgaSArPSA0KSB7CiAgICAg
ICAgICAgICAvLyBQcmVtdWx0aXBseSBhbHBoYS4KICAgICAgICAgICAgIHBpeGVsc1tpICsgMF0g
PSBzdGQ6Om1pbigyNTUsIHBpeGVsc1tpICsgMF0gKiBwaXhlbHNbaSArIDNdIC8gMjU1KTsKQEAg
LTIwMSw3ICsyMDUsNyBAQCBSZWZQdHI8SW1hZ2VEYXRhPiBHcmFwaGljc0NvbnRleHQzRDo6cGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKQogewogICAgIC8vIFJlYWRpbmcgcHJlbXVs
dGlwbGllZCBhbHBoYSB3b3VsZCBpbnZvbHZlIHVucHJlbXVsdGlwbHlpbmcsIHdoaWNoIGlzCiAg
ICAgLy8gbG9zc3kuCi0gICAgaWYgKG1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKQorICAgIGlm
IChjb250ZXh0QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKEludFNp
emUobV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCkpOwpAQCAtMjMyLDcgKzIzNiw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICBUZW1wb3JhcnlP
cGVuR0xTZXR0aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICNlbmRpZgog
Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKQorICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygp
LmFudGlhbGlhcykKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwog
CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpAQCAtMjY1LDcgKzI2OSw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKHVuc2lnbmVkIGNoYXIgKnBp
eGVscywgaW50IHBpeGVsc1NpCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAgICBib29s
IG11c3RSZXN0b3JlRkJPID0gZmFsc2U7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Cisg
ICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKSB7CiAgICAgICAgIHJlc29sdmVN
dWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgbXVzdFJl
c3RvcmVGQk8gPSB0cnVlOwpAQCAtMzI4LDE0ICszMzIsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgOjpnbENsZWFyQ29sb3Io
MCwgMCwgMCwgMCk7CiAgICAgOjpnbEdldEJvb2xlYW52KEdMX0NPTE9SX1dSSVRFTUFTSywgY29s
b3JNYXNrKTsKICAgICA6OmdsQ29sb3JNYXNrKEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RSVUUsIEdM
X1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisKKyAgICBhdXRvIGF0dHJzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAgICA6Omds
R2V0RmxvYXR2KEdMX0RFUFRIX0NMRUFSX1ZBTFVFLCAmY2xlYXJEZXB0aCk7CiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKDEpOwogICAgICAgICA6OmdsR2V0Qm9vbGVhbnYo
R0xfREVQVEhfV1JJVEVNQVNLLCAmZGVwdGhNYXNrKTsKICAgICAgICAgOjpnbERlcHRoTWFzayhH
TF9UUlVFKTsKICAgICAgICAgY2xlYXJNYXNrIHw9IEdMX0RFUFRIX0JVRkZFUl9CSVQ7CiAgICAg
fQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewog
ICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfU1RFTkNJTF9DTEVBUl9WQUxVRSwgJmNsZWFyU3Rl
bmNpbCk7CiAgICAgICAgIDo6Z2xDbGVhclN0ZW5jaWwoMCk7CiAgICAgICAgIDo6Z2xHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX1dSSVRFTUFTSywgcmVpbnRlcnByZXRfY2FzdDxHTGludCo+KCZzdGVu
Y2lsTWFzaykpOwpAQCAtMzQ5LDExICszNTYsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICA6OmdsQ2xlYXJDb2xvcihjbGVh
ckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNvbG9yWzNdKTsK
ICAgICA6OmdsQ29sb3JNYXNrKGNvbG9yTWFza1swXSwgY29sb3JNYXNrWzFdLCBjb2xvck1hc2tb
Ml0sIGNvbG9yTWFza1szXSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKyAgICBpZiAoYXR0
cnMuZGVwdGgpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoY2xlYXJE
ZXB0aCk7CiAgICAgICAgIDo6Z2xEZXB0aE1hc2soZGVwdGhNYXNrKTsKICAgICB9Ci0gICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIDo6
Z2xDbGVhclN0ZW5jaWwoY2xlYXJTdGVuY2lsKTsKICAgICAgICAgOjpnbFN0ZW5jaWxNYXNrU2Vw
YXJhdGUoR0xfRlJPTlQsIHN0ZW5jaWxNYXNrKTsKICAgICAgICAgOjpnbFN0ZW5jaWxNYXNrU2Vw
YXJhdGUoR0xfQkFDSywgc3RlbmNpbE1hc2tCYWNrKTsKQEAgLTQ4MSw3ICs0ODgsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0IGJ1ZmZlcgogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGZibyA9IGJ1ZmZl
cjsKICAgICBlbHNlCi0gICAgICAgIGZibyA9IChtX2F0dHJzLmFudGlhbGlhcyA/IG1fbXVsdGlz
YW1wbGVGQk8gOiBtX2Zibyk7CisgICAgICAgIGZibyA9IChjb250ZXh0QXR0cmlidXRlcygpLmFu
dGlhbGlhcyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CiAgICAgaWYgKGZibyAhPSBtX3N0
YXRlLmJvdW5kRkJPKSB7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQodGFyZ2V0LCBm
Ym8pOwogICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gZmJvOwpAQCAtNzQ0LDI0ICs3NTEsMjgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlckRpcmVjdChQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIGlmIChtX2F0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsK
KyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRycy5h
bnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CiAgICAg
ICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwg
aGVpZ2h0KSk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgfQogICAgIDo6Z2xDb3B5VGV4SW1hZ2UyRCh0
YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgYm9yZGVy
KTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211
bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQg
eCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpn
bEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICB9CiAgICAgOjpnbENvcHlUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtMTEyOCwxMSArMTEzOSw2IEBAIGludCBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb25EaXJlY3QoUGxhdGZvcm0zRE9iamVj
dCBwcm9ncmFtLCBjb25zdCBTCiAgICAgcmV0dXJuIDo6Z2xHZXRBdHRyaWJMb2NhdGlvbihwcm9n
cmFtLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogfQogCi1HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKLXsKLSAgICByZXR1
cm4gbV9hdHRyczsKLX0KLQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bW92ZUVycm9yc1RvU3lu
dGhldGljRXJyb3JMaXN0KCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAppbmRleCA3MGEyMGQ1MGMzNTIxYTYxMjNl
NmVmYWYxZjQ3NjhmNjQ5NWNkZTVjLi4zNjY4MjFjYTZmZDgzMzgxNWIzYjgzYWMyZGY3NTM4MDI2
MTQ4NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCkBAIC01
MCwxMCArNTAsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVsZWFzZVNoYWRlckNvbXBp
bGVyKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNE
aW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRhKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgp
OworCisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIC8v
IEZJWE1FOiByZW1vdmUgdGhlIHR3byBnbEZsdXNoIGNhbGxzIHdoZW4gdGhlIGRyaXZlciBidWcg
aXMgZml4ZWQsIGkuZS4sCiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91
bGQgYmUgZG9uZSBiZWZvcmUgcmVhZGluZyBwaXhlbHMuCiAgICAgOjpnbEZsdXNoKCk7Ci0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykgeworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZO
ZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgOjpnbEZsdXNoKCk7
CkBAIC02MSw3ICs2NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpCiAKICAgICA6OmdsUmVh
ZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEpOwogCi0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtODAsNyArODMsOSBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGNv
bnN0IGludCB3aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBjb25zdCBpbnQgaGVpZ2h0ID0gc2l6
ZS5oZWlnaHQoKTsKICAgICBHTHVpbnQgY29sb3JGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJz
LmFscGhhKSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwor
ICAgIGlmIChhdHRyaWJ1dGVzLmFscGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1h
dCA9IEdMX1JHQkE7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICB9IGVsc2Ug
ewpAQCAtOTAsNyArOTUsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhj
b25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdo
ZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAvLyBTZWUgR3Jh
cGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcy4KLSAgICBib29sIHN1cHBvcnRQYWNr
ZWREZXB0aFN0ZW5jaWxCdWZmZXIgPSAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgp
ICYmIGdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2ls
Iik7CisgICAgYm9vbCBzdXBwb3J0UGFja2VkRGVwdGhTdGVuY2lsQnVmZmVyID0gKGF0dHJpYnV0
ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSAmJiBnZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwogCiAgICAgLy8gUmVzaXplIHJlZ3Vs
YXIgRkJPLgogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAgLTExNywyOSArMTIy
LDI5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUm
IHNpemUpCiAjZW5kaWYKIAogICAgIEV4dGVuc2lvbnMzRE9wZW5HTEVTJiBleHRlbnNpb25zID0g
c3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNET3BlbkdMRVMmPihnZXRFeHRlbnNpb25zKCkpOwotICAg
IGlmIChleHRlbnNpb25zLmlzSW1hZ2luYXRpb24oKSAmJiBtX2F0dHJzLmFudGlhbGlhcykgewor
ICAgIGlmIChleHRlbnNpb25zLmlzSW1hZ2luYXRpb24oKSAmJiBhdHRyaWJ1dGVzLmFudGlhbGlh
cykgewogICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKICAgICAgICAgOjpnbEdldEludGVn
ZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX1NBTVBMRVNfSU1HLCAmbWF4U2FtcGxlQ291bnQpOyAKICAg
ICAgICAgR0xpbnQgc2FtcGxlQ291bnQgPSBzdGQ6Om1pbig4LCBtYXhTYW1wbGVDb3VudCk7CiAK
ICAgICAgICAgZXh0ZW5zaW9ucy5mcmFtZWJ1ZmZlclRleHR1cmUyRE11bHRpc2FtcGxlSU1HKEdM
X0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgbV90ZXh0
dXJlLCAwLCBzYW1wbGVDb3VudCk7CiAKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBt
X2F0dHJzLmRlcHRoKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmli
dXRlcy5kZXB0aCkgewogICAgICAgICAgICAgLy8gVXNlIGEgMjQgYml0IGRlcHRoIGJ1ZmZlciB3
aGVyZSB3ZSBrbm93IHdlIGhhdmUgaXQuCiAgICAgICAgICAgICBpZiAoc3VwcG9ydFBhY2tlZERl
cHRoU3RlbmNpbEJ1ZmZlcikgewogICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVy
KEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnMucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZF
Uiwgc2FtcGxlQ291bnQsIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9S
RU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
bV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuc3RlbmNpbCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpIHsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVS
LCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLnJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBH
TF9TVEVOQ0lMX0lOREVYOCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIDo6
Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRB
Q0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuZGVwdGgpIHsKICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRS
ZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyKTsKICAgICAgICAgICAg
ICAgICAgICAgZXh0ZW5zaW9ucy5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVO
REVSQlVGRkVSLCBzYW1wbGVDb3VudCwgR0xfREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWln
aHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0
aEJ1ZmZlcik7CkBAIC0xNDgsMjIgKzE1MywyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpy
ZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICAgICAgOjpnbEJpbmRSZW5k
ZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgICAgICBp
ZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpIHsKICAgICAgICAgICAg
IC8vIFVzZSBhIDI0IGJpdCBkZXB0aCBidWZmZXIgd2hlcmUgd2Uga25vdyB3ZSBoYXZlIGl0Lgog
ICAgICAgICAgICAgaWYgKHN1cHBvcnRQYWNrZWREZXB0aFN0ZW5jaWxCdWZmZXIpIHsKICAgICAg
ICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhT
dGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZShH
TF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9S
RU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
bV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuc3RlbmNpbCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpIHsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVS
LCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVy
U3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIEdMX1NURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0
KTsKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9zdGVu
Y2lsQnVmZmVyKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuZGVwdGgpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkgewogICAg
ICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1f
ZGVwdGhCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFn
ZShHTF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIX0NPTVBPTkVOVDE2LCB3aWR0aCwgaGVpZ2h0KTsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZm
ZXIpOwpAQCAtMjIyLDggKzIyNywxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0
ZUF0dHJpYnV0ZXMoKQogewogICAgIHZhbGlkYXRlRGVwdGhTdGVuY2lsKCJHTF9PRVNfcGFja2Vk
X2RlcHRoX3N0ZW5jaWwiKTsKIAotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiAhZ2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9JTUdfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJl
IikpCi0gICAgICAgIG1fYXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CisgICAgYXV0byBhdHRyaWJ1
dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlh
cyAmJiAhZ2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9JTUdfbXVsdGlzYW1wbGVkX3JlbmRl
cl90b190ZXh0dXJlIikpIHsKKyAgICAgICAgYXR0cmlidXRlcy5hbnRpYWxpYXMgPSBmYWxzZTsK
KyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7CisgICAgfQogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0Rj
bGFtcGYgekZhcikKQEAgLTI0OCwxMCArMjU3LDEwIEBAIEV4dGVuc2lvbnMzRCYgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEV4dGVuc2lvbnMoKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDQSkKLVJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNy
ZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQor
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93
LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAgLy8g
VGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBk
aXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVy
RGlyZWN0bHlUb0hvc3RXaW5kb3cpCisgICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9u
OjpEaXJlY3RseVRvSG9zdFdpbmRvdykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTI2OCwxNyArMjc3LDE4IEBA
IFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlKSk7CiB9CiAKLUdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAg
OiBtX2F0dHJzKGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4
dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0
ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9jb21waWxlcihpc0dMRVMy
Q29tcGxpYW50KCkgPyBTSF9FU1NMX09VVFBVVCA6IFNIX0dMU0xfQ09NUEFUSUJJTElUWV9PVVRQ
VVQpCi0gICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
KHRoaXMsIHJlbmRlclN0eWxlKSkKKyAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZT4odGhpcywgZGVzdGluYXRpb24pKQogewogICAgIEFTU0VSVF9VTlVT
RUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOwogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwogICAgIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJpYnV0ZXMgPSBj
b250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlk
YXRpb24uCiAKLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAg
aWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKICAgICAgICAgLy8g
Q3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KICAgICAgICAgOjpnbEdlblRleHR1cmVz
KDEsICZtX3RleHR1cmUpOwogICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
bV90ZXh0dXJlKTsKQEAgLTI5MywxNiArMzAzLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9z
CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAg
ICAgICAgCiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKLSAgICAgICAgaWYgKCFt
X2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKQor
ICAgICAgICBpZiAoIWF0dHJpYnV0ZXMuYW50aWFsaWFzICYmIChhdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgYXR0cmlidXRlcy5kZXB0aCkpCiAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygx
LCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAKICAgICAgICAgLy8gQ3JlYXRlIGEg
bXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsR2VuRnJhbWVi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAgIDo6Z2xCaW5kRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgbV9z
dGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgICAgICA6OmdsR2VuUmVu
ZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICA6Omds
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0zNDAsMTMgKzM1MCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6
fkdyYXBoaWNzQ29udGV4dDNEKCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6
OmdsRGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5j
aWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpnbERl
bGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICA6Omds
RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0KICAg
ICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJl
TWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGZhYjgwN2I3ZDhjMWE2OGI1OWQz
YWI3MmJjZDU2ODQyZDU1NjNkNDcuLmIyMmRmNjcyZmU2MDc5ZDRmMjBkN2MzMWUxOTE4ZDg1ZjMy
NmEyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIu
Y3BwCkBAIC05MSwxMCArOTEsMTAgQEAgc3RhdGljIERlcXVlPEdyYXBoaWNzQ29udGV4dDNEKiwg
TWF4QWN0aXZlQ29udGV4dHM+JiBhY3RpdmVDb250ZXh0cygpCiAgICAgcmV0dXJuIHNfYWN0aXZl
Q29udGV4dHM7CiB9CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0
V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAg
ICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRl
cmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KLSAgICBpZiAocmVuZGVyU3R5bGUgPT0g
UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpCisgICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMTE4LDcgKzExOCw3IEBA
IFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dDNEIG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBl
c3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250
ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5k
b3csIHJlbmRlclN0eWxlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBo
aWNzQ29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICNp
ZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgLy8gQmFpbCBpZiBHTEVTMyB3
YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3QgYmUgcHJvdmlkZWQuCkBAIC0xMzEsMjEgKzEzMSwyMSBA
QCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzCiB9CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0Nv
bnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQotICAgIDogbV9hdHRy
cyhhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dDNEQmFzZShhdHRyaWJ1dGVzLCBkZXN0
aW5hdGlvbiwgc2hhcmVkQ29udGV4dCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHNoYXJlZENvbnRl
eHQsICFzaGFyZWRDb250ZXh0KTsKICNpZiBVU0UoTklDT1NJQSkKLSAgICBtX25pY29zaWFMYXll
ciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpHQzNEQU5HTEVMYXllcj4oKnRoaXMsIHJlbmRl
clN0eWxlKTsKKyAgICBtX25pY29zaWFMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpH
QzNEQU5HTEVMYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKICNlbHNlCi0gICAgbV90ZXhtYXBM
YXllciA9IFdURjo6bWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0
aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV90ZXhtYXBMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxU
ZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCBkZXN0aW5hdGlvbik7CiAjZW5k
aWYKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotCiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVz
KCk7CisgICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhh
dmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBS
ZW5kZXJPZmZzY3JlZW4pIHsKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9m
ZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgog
ICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAgICAgICAgIGdsOjpCaW5k
VGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKQEAgLTE3OCwy
NCArMTc4LDI0IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAjZW5kaWYKIAogICAgICAgICAv
LyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlh
cykgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgICAgIGds
OjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKICAgICAgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAg
ICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZC
Ty4KICAgICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKICNpZiBVU0UoT1BFTkdM
X0VTKQotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAm
bV9kZXB0aEJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICBnbDo6R2VuUmVu
ZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKICNlbmRpZgotICAgICAgICAgICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMDMsMjEgKzIwMywyMiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250
ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogICAgIGds
OjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
SG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwg
R3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJpYnV0
ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0
KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBz
aGFyZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJl
ZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gbWFrZVVu
aXF1ZTxOaWNvc2lhOjpHQzNETGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV9uaWNv
c2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIGRlc3RpbmF0
aW9uKTsKICNlbHNlCi0gICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworICAgIG1fdGV4bWFwTGF5
ZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRl
c3RpbmF0aW9uKTsKICNlbmRpZgogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAgICB2
YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMo
KTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYg
KHJlbmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVlbikgeworICAgIGlmIChkZXN0aW5hdGlvbiA9
PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUg
dG8gcmVuZGVyIGludG8uCiAgICAgICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsK
ICAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CkBAIC0y
NDksMjYgKzI1MCwyNSBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogICAgICAgICA6OmdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CiAjZW5kaWYKIAotCiAgICAgICAgIC8vIENyZWF0
ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Cisg
ICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICAgICAgOjpnbEdlbkZy
YW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICA6OmdsQmluZEZy
YW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAg
IG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICAgICAgOjpnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAg
OjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgogICAg
ICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX2Zibyk7CiAgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87CiAjaWYgVVNF
KE9QRU5HTF9FUykKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisg
ICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIGdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKICNlbmRpZgotICAgICAgICAgICAg
aWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGds
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMzAxLDcgKzMwMSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgfQog
I2Vsc2UKICAgICAvLyBBZGp1c3QgdGhlIHNoYWRlciBzcGVjaWZpY2F0aW9uIGRlcGVuZGluZyBv
biB3aGV0aGVyIEdMRVMzIChpLmUuIFdlYkdMMiBzdXBwb3J0KSB3YXMgcmVxdWVzdGVkLgotICAg
IG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9FU1NMX09VVFBVVCwgbV9hdHRycy5p
c1dlYkdMMiA/IFNIX1dFQkdMMl9TUEVDIDogU0hfV0VCR0xfU1BFQyk7CisgICAgbV9jb21waWxl
ciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBhdHRyaWJ1dGVzLmlzV2ViR0wy
ID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsKICNlbmRpZgogCiAgICAgLy8gQU5H
TEUgaW5pdGlhbGl6YXRpb24uCkBAIC0zNDAsMTIgKzM0MCwxNCBAQCBHcmFwaGljc0NvbnRleHQz
RDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgZ2w6OkRlbGV0ZVRleHR1cmVzKDEsICZt
X2NvbXBvc2l0b3JUZXh0dXJlKTsKICNlbmRpZgogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFz
KSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlm
IChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8
IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygx
LCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIGdsOjpEZWxldGVG
cmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgIH0gZWxzZSBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZXMu
c3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAg
ICAgaWYgKG1fZGVwdGhCdWZmZXIpCiAgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMo
MSwgJm1fZGVwdGhCdWZmZXIpOwpAQCAtMzgyLDEyICszODQsMTQgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAm
bV9jb21wb3NpdG9yVGV4dHVyZSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2F0dHJzLmFudGlhbGlh
cykgeworICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBp
ZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0
ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8
fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMo
MSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6OmdsRGVsZXRl
RnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKLSAgICB9IGVsc2UgaWYgKG1fYXR0
cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVz
LnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkgewogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAg
ICAgIGlmIChtX2RlcHRoQnVmZmVyKQogICAgICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoQnVmZmVyKTsKQEAgLTQxNSwxNCArNDE5LDYgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB9CiAjZW5kaWYgLy8gVVNFKEFOR0xFKQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0
cjxDb250ZXh0TG9zdENhbGxiYWNrPikKLXsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxi
YWNrPikKLXsKLX0KLQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bWFrZUNvbnRleHRDdXJyZW50
KCkKIHsKICNpZiBVU0UoTklDT1NJQSkKQEAgLTQzNiw3ICs0MzIsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiB7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKQorUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCgpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgcmV0dXJuIG1fbmlj
b3NpYUxheWVyLT5wbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKaW5kZXggNjYzMjMxNTY5NWJhMjFjMjY3ZDE1NTkzMmVi
YTkxNDdmYjY2YWUwNi4uNjgzZjQ1ZjkzYzI4OTMzZTcyYzNiNmY1OTNlYTE0OTJjNzVlZTFmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKQEAg
LTMwLDE0ICszMCwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRleHR1cmVNYXBwZXJH
QzNEUGxhdGZvcm1MYXllcjo6VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNz
Q29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVy
U3R5bGUpCitUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0
M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7
Ci0gICAgc3dpdGNoIChyZW5kZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJlbmRlck9mZnNjcmVlbjoKKyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9nbENv
bnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxh
eTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CkBA
IC02MSw3ICs2MSw3IEBAIGJvb2wgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjptYWtl
Q29udGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCk7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgVGV4dHVyZU1hcHBlckdDM0RQ
bGF0Zm9ybUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG1fZ2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBs
YXRmb3JtQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1M
YXllci5oCmluZGV4IGU2ZjA5Yzg3OTg1NDg2MzJlZTRiMGFhNWE1NjMwNjE1YTI0YTM3ODkuLmI4
ZTgxZjExYjIxOGMwNGUwNjU0NDFmYmI2OWNkYTRmNjllM2Y1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRm
b3JtTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFz
cyBUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5OwogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyIDogcHVibGljIFBsYXRmb3JtTGF5ZXIgewogICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXll
cihHcmFwaGljc0NvbnRleHQzRCYsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7Cisg
ICAgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uKTsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVy
R0MzRFBsYXRmb3JtTGF5ZXIoKTsKIAogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0g
ICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwogCiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1M
YXllclByb3h5PiBwcm94eSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2MTU5YjhmYTc0ZTI0
ZjFhZDYyYTJjODM5NjE4MTAxNWM1YTI0OWIuLmUzNTRhZGJhMjRlYWQ5MWM5MjAxMjFlYzI1NjEz
Mjc3YTExMTI4ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0yNyAgRGVhbiBKYWNr
c29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJlIHZpcnR1
YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBhIHRlc3QgdGhhdCBoYXMgZXhpc3Rp
bmcgY292ZXJhZ2UgaW4gdGhlIFdlYkdMIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0
dGFjaG1lbnQuaHRtbDogUmVtb3ZlZC4KKwogMjAxOS0xMi0yNCAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBbIENhdGFsaW5hIHdrMSBd
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3Njcmlw
dC53aW5kb3cuaHRtbCBpcyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVu
dC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlN2ZkZmU4Nzc2
ZjI4YTljYjNlMDY0Mzc1OWM1MTcxMDBlZjBjN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVi
dWZmZXItb2JqZWN0LWF0dGFjaG1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NjU5ICswLDAgQEAKLVRlc3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVoYXZpb3Jz
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1EaW1lbnNpb25zIDAgeCAwCi1DcmVh
dGUgcmVuZGVyYnVmZmVycwotUEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1udWxs
LgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRl
cHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRU
QUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3Rl
bmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0
aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
ZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0
aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGgs
IHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoLCB0aGVuIGRlcHRo
U3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0
aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggY29sb3IgcmVuZGVyYnVm
ZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZl
ciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZl
ciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1DcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0
ZW5jaWwgcmVuZGVyYnVmZmVyCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5E
RVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCkgaXMgd2lkdGgKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdI
VCkgaXMgaGVpZ2h0Ci1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5D
SUwKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX1JFRF9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9CTFVFX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpIGlzIDAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotCi1EaW1l
bnNpb25zIDAgeCAyCi1DcmVhdGUgcmVuZGVyYnVmZmVycwotUEFTUyBnbCA9IGNyZWF0ZTNEQ29u
dGV4dCgpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1Mgc3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRl
cHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1BdHRhY2ggZGVw
dGggdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIFNU
RU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5D
SUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRB
Q0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5U
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1BdHRhY2ggZGVwdGgsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBm
Ym8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoLCBj
YXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNo
IGRlcHRoLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNh
dXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2gg
c3RlbmNpbCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIHN0ZW5jaWws
IGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRh
Y2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQKLVBBU1Mg
Y29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1Mg
Y29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NQotUEFTUyBj
b2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1DcmVhdGUg
YW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyCi1QQVNTIGRlcHRoU3RlbmNpbEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCkgaXMgd2lk
dGgKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JM
VUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMiB4
IDAKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMg
bm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVu
Y2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2ls
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBE
RVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRB
Q0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0
dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0
YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0
YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFj
aCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29u
ZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRo
ZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25m
bGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0
aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBj
b25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciBy
ZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVu
ZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVu
ZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNo
IGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCkgaXMgaGVpZ2h0Ci1QQVNT
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9JTlRFUk5BTF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9T
SVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZG
RVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUp
IGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpIGlzIDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotCi1EaW1lbnNpb25zIDIgeCAyCi1DcmVh
dGUgcmVuZGVyYnVmZmVycwotUEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1udWxs
LgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRl
cHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRU
QUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNT
IGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5f
QklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihn
bC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBU
SF9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJ
VFMpID09IDAgaXMgdHJ1ZQotQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERF
UFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5D
SUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9T
VEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVy
KGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0
ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wu
U1RFTkNJTF9CSVRTKSA+PSA4IGlzIHRydWUKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQ
VEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lM
X0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5n
IGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5j
aWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDYxCi1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZs
aWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGRlcHRoU3RlbmNp
bCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNjEKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25m
bGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aFN0ZW5j
aWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNjEKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1h
dCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlz
IG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0
UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSAr
IGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhB
X0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMp
ID09IDAgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAw
IGlzIHRydWUKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9
PSBSR0I1X0ExCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsg
Z2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFf
QklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykg
PT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAg
aXMgdHJ1ZQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09
IFJHQjU2NQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFy
YW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGds
LmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJ
VFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09
IDAgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIGlz
IHRydWUKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1Mg
ZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Z2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVS
X1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lO
VEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZm
ZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlz
IDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSkgPiAwIGlzIHRy
dWUKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSkgPiAwIGlzIHRydWUKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRT
KSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGds
LmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBh
cmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDggaXMgdHJ1ZQotCi10ZXN0OiBERVBUSF9DT01Q
T05FTlQxNiB2cyBERVBUSF9TVEVOQ0lMIHdpdGggZGVsZXRlCi1QQVNTIHNob3VsZCBiZSBncmVl
bgotdGVzdCBkZWxldGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc2hvdWxk
IGJlIGdyZWVuCi0KLXRlc3Q6IERFUFRIX0NPTVBPTkVOVDE2IHZzIERFUFRIX1NURU5DSUwgd2l0
aCB1bmJpbmQKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi10ZXN0IHVuYmluZGluZyBzZWNvbmQgcmVu
ZGVyYnVmZmVyCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IGlzIGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi0KLXRlc3Q6IERFUFRIX1NU
RU5DSUwgdnMgREVQVEhfQ09NUE9ORU5UMTYgd2l0aCBkZWxldGUKLVBBU1Mgc2hvdWxkIGJlIGdy
ZWVuCi10ZXN0IGRlbGV0aW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91
bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQVEhfU1RFTkNJTCB2cyBERVBUSF9DT01QT05FTlQxNiB3
aXRoIHVuYmluZAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgdW5iaW5kaW5nIHNlY29uZCBy
ZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi0KLUF0dGFjaG1lbnRzIG9mIGRpZmZlcmVudCBzaXplcyBzaG91bGQgYmUg
RlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIChPcGVuR0wgRVMgMi4wIDQuNC41KQot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBkZXB0
aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVU
RSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5T
SU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVS
X1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExF
VEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxk
IGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5D
T01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZF
Ul9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgd2FzIEZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRF
RAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQg
YmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVh
dGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBG
UkFNRUJVRkZFUl9DT01QTEVURQotCi1Xcm9uZyBzdG9yYWdlIHR5cGUgZm9yIHR5cGUgb2YgYXR0
YWNobWVudCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAy
LjAgNC40LjUpCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJB
TUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi0KLTAgc2l6ZSBhdHRh
Y2htZW50IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5H
TCBFUyAyLjAgNC40LjUpCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgd2FzIEZS
QU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRF
RAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi0KLU5vIGF0
dGFjaG1lbnRzIHNob3VsZCBiZSBJTkNPTVBMRVRFX0ZSQU1FQlVGRkVSX01JU1NJTkdfQVRUQUNI
TUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hN
RU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFN
RUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVS
X0NPTVBMRVRFCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCB3YXMg
RlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJf
VU5TVVBQT1JURUQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotCi1UZXN0IGRyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZm
ZXIKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Y29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
ZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09N
UExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJ
TUVOU0lPTlMgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyBvciBGUkFNRUJV
RkZFUl9VTlNVUFBPUlRFRAotCi1EcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRl
IGZyYW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiBkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogcmVhZFBp
eGVscyBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhJbWFnZTJE
IGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY29weVRleFN1YkltYWdlMkQg
ZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjbGVhciB3aXRoIGluY29tcGxl
dGUgZnJhbWVidWZmZXIKLVBBU1MgZmJvMiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNo
b3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCB3YXMgRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJfVU5T
VVBQT1JURUQKLQotRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJhd0Fy
cmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMgZnJv
bSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9PUEVSQVRJT04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJh
bWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJB
VElPTiA6IGNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGNvbG9yQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi0KLURyYXdpbmcgb3IgcmVh
ZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZyYW1l
YnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiByZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogY29weVRleEltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiBjb3B5VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IGNsZWFyIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVu
dC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTJkYTE1NGQ5ODAxNDEzOGJi
YzY1NTg4YzIzYTgzYjhkNzQ4YTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9i
amVjdC1hdHRhY2htZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MzAgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3dlYmdsLXRlc3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0V2ViR0xFcnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKLQotdmFyIHd0
dSA9IFdlYkdMVGVzdFV0aWxzOwotdmFyIGdsOwotdmFyIGZibzsKLXZhciBkZXB0aEJ1ZmZlcjsK
LXZhciBzdGVuY2lsQnVmZmVyOwotdmFyIGRlcHRoU3RlbmNpbEJ1ZmZlcjsKLXZhciBjb2xvckJ1
ZmZlcjsKLXZhciB3aWR0aDsKLXZhciBoZWlnaHQ7Ci0KLWNvbnN0IEFMTE9XX0NPTVBMRVRFICAg
ICAgICAgICAgICA9IDB4MDE7Ci1jb25zdCBBTExPV19VTlNVUFBPUlRFRCAgICAgICAgICAgPSAw
eDAyOwotY29uc3QgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UID0gMHgwNDsKLQotZnVuY3Rp
b24gY2hlY2tGcmFtZWJ1ZmZlckZvckFsbG93ZWRTdGF0dXNlcyhhbGxvd2VkU3RhdHVzZXMpCi17
Ci0gICAgLy8gSWYgdGhlIGZyYW1lYnVmZmVyIGlzIGluIGFuIGVycm9yIHN0YXRlIGZvciBtdWx0
aXBsZSByZWFzb25zLAotICAgIC8vIHdlIGNhbid0IGd1YXJhbnRlZSB3aGljaCBvbmUgd2lsbCBi
ZSByZXBvcnRlZC4KLSAgICB2YXIgc3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUik7Ci0gICAgdmFyIHN0YXR1c0FsbG93ZWQgPSAoKGFsbG93ZWRTdGF0dXNl
cyAmIEFMTE9XX0NPTVBMRVRFKSAmJiAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
KSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1df
VU5TVVBQT1JURUQpICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQpKSB8
fAotICAgICAgICAgICAgICAgICAgICAgICAgKChhbGxvd2VkU3RhdHVzZXMgJiBBTExPV19JTkNP
TVBMRVRFX0FUVEFDSE1FTlQpICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9BVFRBQ0hNRU5UKSk7Ci0gICAgdmFyIG1zZyA9ICJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAiICsgc3RhdHVzOwotICAgIGlmIChzdGF0dXNBbGxv
d2VkKQotICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFp
bGVkKG1zZyk7Ci19Ci0KLWZ1bmN0aW9uIGNoZWNrQnVmZmVyQml0cyhhdHRhY2htZW50MCwgYXR0
YWNobWVudDEpCi17Ci0gICAgaWYgKGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKQotICAgICAgcmV0dXJuOwotCi0gICAg
dmFyIGhhdmVEZXB0aEJ1ZmZlciA9IGF0dGFjaG1lbnQwID09IGdsLkRFUFRIX0FUVEFDSE1FTlQg
fHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfU1RF
TkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQx
ID09IGdsLkRFUFRIX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0
YWNobWVudDEgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UOwotICAgIHZhciBoYXZlU3Rl
bmNpbEJ1ZmZlciA9IGF0dGFjaG1lbnQwID09IGdsLlNURU5DSUxfQVRUQUNITUVOVCB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQwID09IGdsLkRFUFRIX1NURU5DSUxf
QVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQxID09
IGdsLlNURU5DSUxfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0
dGFjaG1lbnQxID09IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDsKLQotICAgIHNob3VsZEJl
VHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5H
UkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1l
dGVyKGdsLkFMUEhBX0JJVFMpID49IDE2Iik7Ci0KLSAgICBpZiAoaGF2ZURlcHRoQnVmZmVyKQot
ICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYi
KTsKLSAgICBlbHNlCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBU
SF9CSVRTKSA9PSAwIik7Ci0KLSAgICBpZiAoaGF2ZVN0ZW5jaWxCdWZmZXIpCi0gICAgICBzaG91
bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDgiKTsKLSAgICBl
bHNlCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMp
ID09IDAiKTsKLX0KLQotZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnQoYXR0YWNobWVudCwgYnVmZmVy
LCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
LCBmYm8pOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAg
Z2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQsIGds
LlJFTkRFUkJVRkZFUiwgYnVmZmVyKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VS
Uk9SKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0
dXNlcyk7Ci0gICAgaWYgKChhbGxvd2VkU3RhdHVzZXMgJiBBTExPV19DT01QTEVURSkgPT0gMCkg
ewotICAgICAgICBnbC5jbGVhcihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLSAgICAgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTik7Ci0gICAgICAg
IGdsLnJlYWRQaXhlbHMoMCwgMCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURf
QllURSwgbmV3IFVpbnQ4QXJyYXkod2lkdGggKiBoZWlnaHQgKiA0KSk7Ci0gICAgICAgIGdsRXJy
b3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04pOwotICAgIH0K
LSAgICBjaGVja0J1ZmZlckJpdHMoYXR0YWNobWVudCk7Ci0gICAgZ2wuZGVsZXRlRnJhbWVidWZm
ZXIoZmJvKTsKLX0KLQotZnVuY3Rpb24gdGVzdEF0dGFjaG1lbnRzKGF0dGFjaG1lbnQwLCBidWZm
ZXIwLCBhdHRhY2htZW50MSwgYnVmZmVyMSwgYWxsb3dlZFN0YXR1c2VzKQotewotICAgIHNob3Vs
ZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRG
cmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJV
RkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBhdHRhY2htZW50MCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIwKTsKLSAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgYXR0YWNobWVudDEsIGdsLlJFTkRFUkJVRkZFUiwgYnVm
ZmVyMSk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgY2hlY2tG
cmFtZWJ1ZmZlckZvckFsbG93ZWRTdGF0dXNlcyhhbGxvd2VkU3RhdHVzZXMpOwotICAgIGNoZWNr
QnVmZmVyQml0cyhhdHRhY2htZW50MCwgYXR0YWNobWVudDEpOwotICAgIGdsLmRlbGV0ZUZyYW1l
YnVmZmVyKGZibyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihpbnRlcm5h
bGZvcm1hdCwgYWxsb3dlZFN0YXR1c2VzKQotewotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZm
ZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3Rv
cmFnZShnbC5SRU5ERVJCVUZGRVIsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICB0ZXN0QXR0YWNobWVudChn
bC5DT0xPUl9BVFRBQ0hNRU5UMCwgY29sb3JCdWZmZXIsIGFsbG93ZWRTdGF0dXNlcyk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3REZXB0aFN0ZW5jaWxSZW5kZXJidWZmZXIoYWxsb3dlZFN0YXR1c2VzKQot
ewotICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwg
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuREVQVEhfU1RFTkNJTCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZ2xFcnJvclNo
b3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLSAgICAvLyBPcGVuR0wgaXRzZWxmIGRvZXNuJ3Qg
c2VlbSB0byBndWFyYW50ZWUgdGhhdCBlLmcuIGEgMiB4IDAKLSAgICAvLyByZW5kZXJidWZmZXIg
d2lsbCByZXBvcnQgMiBmb3IgaXRzIHdpZHRoIHdoZW4gcXVlcmllZC4KLSAgICBpZiAoIShoZWln
aHQgPT0gMCAmJiB3aWR0aCA+IDApKQotICAgICAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSIsICJ3
aWR0aCIpOwotICAgIGlmICghKHdpZHRoID09IDAgJiYgaGVpZ2h0ID4gMCkpCi0gICAgICAgIHNo
b3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
RU5ERVJCVUZGRVJfSEVJR0hUKSIsICJoZWlnaHQiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVS
TkFMX0ZPUk1BVCkiLCAiZ2wuREVQVEhfU1RFTkNJTCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVE
X1NJWkUpIiwgIjAiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIiwgIjAiKTsKLSAg
ICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQ
SEFfU0laRSkiLCAiMCIpOwotICAgIC8vIEF2b2lkIHZlcmlmeWluZyB0aGVzZSBmb3IgemVyby1z
aXplZCByZW5kZXJidWZmZXJzIGZvciB0aGUgdGltZQotICAgIC8vIGJlaW5nIHNpbmNlIGl0IGFw
cGVhcnMgdGhhdCBldmVuIE9wZW5HTCBkb2Vzbid0IGd1YXJhbnRlZSB0aGVtLgotICAgIGlmICh3
aWR0aCA+IDAgJiYgaGVpZ2h0ID4gMCkgewotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9ERVBU
SF9TSVpFKSA+IDAiKTsKLSAgICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFKSA+
IDAiKTsKLSAgICB9Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAg
dGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxC
dWZmZXIsIGFsbG93ZWRTdGF0dXNlcyk7Ci0gICAgdGVzdERlcHRoU3RlbmNpbERlcHRoU3RlbmNp
bCgpOwotfQotCi1mdW5jdGlvbiB0ZXN0RGVwdGhTdGVuY2lsRGVwdGhTdGVuY2lsKCkKLXsKLSAg
ICBpZiAoIXdpZHRoIHx8ICFoZWlnaHQpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IHZhciB0ZXN0cyA9IFsKLSAgICAgICAgeyAgIGZpcnN0Rm9ybWF0OiBnbC5ERVBUSF9DT01QT05F
TlQxNiwKLSAgICAgICAgICAgIGZpcnN0QXR0YWNoOiBnbC5ERVBUSF9BVFRBQ0hNRU5ULAotICAg
ICAgICAgICAgc2Vjb25kRm9ybWF0OiBnbC5ERVBUSF9TVEVOQ0lMLAotICAgICAgICAgICAgc2Vj
b25kQXR0YWNoOiBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLSAgICAgICAgfSwKLSAgICAg
ICAgeyAgIGZpcnN0Rm9ybWF0OiBnbC5ERVBUSF9TVEVOQ0lMLAotICAgICAgICAgICAgZmlyc3RB
dHRhY2g6IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwKLSAgICAgICAgICAgIHNlY29uZEZv
cm1hdDogZ2wuREVQVEhfQ09NUE9ORU5UMTYsCi0gICAgICAgICAgICBzZWNvbmRBdHRhY2g6IGds
LkRFUFRIX0FUVEFDSE1FTlQKLSAgICAgICAgfQotICAgIF07Ci0gICAgZm9yICh2YXIgaWkgPSAw
OyBpaSA8IHRlc3RzLmxlbmd0aDsgKytpaSkgewotICAgICAgICB2YXIgdGVzdCA9IHRlc3RzW2lp
XTsKLSAgICAgICAgZm9yICh2YXIgamogPSAwOyBqaiA8IDI7ICsramopIHsKLSAgICAgICAgICAg
IHZhciBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpOwotICAgICAgICAgICAgdmFyIHRleCA9
IGdsLmNyZWF0ZVRleHR1cmUoKTsKLSAgICAgICAgICAgIHZhciBmaXJzdFJiID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCk7Ci0KLSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRl
YnVnKCJ0ZXN0OiAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LmZpcnN0Rm9ybWF0KSAr
ICIgdnMgIiArIHd0dS5nbEVudW1Ub1N0cmluZyhnbCwgdGVzdC5zZWNvbmRGb3JtYXQpICsgIiB3
aXRoICIgKyAoamogPyAidW5iaW5kIiA6ICJkZWxldGUiKSk7Ci0KLSAgICAgICAgICAgIGdsLmJp
bmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICAgICAgICAgIC8vIGF0dGFj
aCB0ZXh0dXJlIGFzIGNvbG9yCi0gICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJF
XzJELCB0ZXgpOwotICAgICAgICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCB3aWR0aCwgaGVpZ2h0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxs
KTsKLSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBn
bC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLQotICAgICAgICAg
ICAgLy8gYXR0YWNoIGZpcnN0Ci0gICAgICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJF
TkRFUkJVRkZFUiwgZmlyc3RSYik7Ci0gICAgICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgdGVzdC5maXJzdEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAg
ICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5m
aXJzdEF0dGFjaCwgZ2wuUkVOREVSQlVGRkVSLCBmaXJzdFJiKTsKLQotICAgICAgICAgICAgaWYg
KGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpID09IGdsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFKSB7Ci0gICAgICAgICAgICAgICAgZ2wuZW5hYmxlKGdsLkRFUFRIX1RFU1Qp
OwotICAgICAgICAgICAgICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwQ29sb3JRdWFkKGdsKTsK
LSAgICAgICAgICAgICAgICAvLyBUZXN0IGl0IHdvcmtzCi0gICAgICAgICAgICAgICAgd3R1LmRy
YXdVQnl0ZUNvbG9yUXVhZChnbCwgWzAsIDI1NSwgMCwgMjU1XSk7Ci0gICAgICAgICAgICAgICAg
d3R1LmRyYXdVQnl0ZUNvbG9yUXVhZChnbCwgWzI1NSwgMCwgMCwgMjU1XSk7ICAvLyBzaG91bGQg
bm90IGRyYXcgc2luY2UgREVQVEhfRlVOQyA9PSBMRVNTCi0gICAgICAgICAgICAgICAgd3R1LmNo
ZWNrQ2FudmFzUmVjdChnbCwgMCwgMCwgd2lkdGgsIGhlaWdodCwgWzAsIDI1NSwgMCwgMjU1XSwg
InNob3VsZCBiZSBncmVlbiIpOwotCi0gICAgICAgICAgICAgICAgdmFyIHNlY29uZFJiID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBhdHRhY2ggc2Vjb25k
Ci0gICAgICAgICAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHNl
Y29uZFJiKTsKLSAgICAgICAgICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgdGVzdC5zZWNvbmRGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAg
ICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0ZXN0LnNlY29u
ZEF0dGFjaCwgZ2wuUkVOREVSQlVGRkVSLCBzZWNvbmRSYik7Ci0KLSAgICAgICAgICAgICAgICBp
ZiAoamogPT0gMCkgewotICAgICAgICAgICAgICAgICAgLy8gbm93IGRlbGV0ZSBpdAotICAgICAg
ICAgICAgICAgICAgZGVidWcoInRlc3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlciIpOwot
ICAgICAgICAgICAgICAgICAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHNlY29uZFJiKTsKLSAgICAg
ICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgLy8gdW5iaW5kIGl0Ci0gICAg
ICAgICAgICAgICAgICBkZWJ1ZygidGVzdCB1bmJpbmRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlciIp
OwotICAgICAgICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVC
VUZGRVIsIHRlc3Quc2Vjb25kQXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIG51bGwpOwotICAgICAg
ICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBhdHRhY2htZW50
IGlzIG5vdCByZXN0b3JlZCB0aGlzIG1heSBmYWlsCi0gICAgICAgICAgICAgICAgc2hvdWxkQmUo
J2dsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFJyk7Ci0gICAgICAgICAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci0KLSAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZmlyc3QgYXR0YWNobWVudCBp
cyBub3QgcmVzdG9yZWQgdGhpcyBtYXkgZmFpbC4KLSAgICAgICAgICAgICAgICBnbC5jbGVhcihn
bC5ERVBUSF9CVUZGRVJfQklUKTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JR
dWFkKGdsLCBbMCwgMjU1LCAwLCAyNTVdKTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRl
Q29sb3JRdWFkKGdsLCBbMjU1LCAwLCAwLCAyNTVdKTsgIC8vIHNob3VsZCBub3QgZHJhdyBzaW5j
ZSBERVBUSF9GVU5DID09IExFU1MKLSAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0
KGdsLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdy
ZWVuIik7Ci0gICAgICAgICAgICAgICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLQotICAg
ICAgICAgICAgICAgIGlmIChqaiA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICBnbC5kZWxldGVS
ZW5kZXJidWZmZXIoc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgZ2wuZGVsZXRlUmVuZGVyYnVmZmVyKHNlY29uZFJiKTsKLSAgICAgICAg
ICAgIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKGZibyk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZ2xF
cnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci19Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IGZy
YW1lYnVmZmVyIG9iamVjdCBhdHRhY2htZW50IGJlaGF2aW9ycyIpOwotCi1mb3IgKHdpZHRoID0g
MDsgd2lkdGggPD0gMjsgd2lkdGggKz0gMikKLXsKLSAgICBmb3IgKGhlaWdodCA9IDA7IGhlaWdo
dCA8PSAyOyBoZWlnaHQgKz0gMikKLSAgICB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAg
ZGVidWcoIkRpbWVuc2lvbnMgIiArIHdpZHRoICsgIiB4ICIgKyBoZWlnaHQpOwotCi0gICAgICAg
IGRlYnVnKCJDcmVhdGUgcmVuZGVyYnVmZmVycyIpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwo
ImdsID0gY3JlYXRlM0RDb250ZXh0KCkiKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgICAgIGdsLnJlbmRl
cmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgd2lkdGgsIGhlaWdodCk7
Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICBzaG91
bGRCZU5vbk51bGwoImRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAg
ICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsK
LSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRI
X0NPTVBPTkVOVDE2LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgic3RlbmNpbEJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIo
Z2wuUkVOREVSQlVGRkVSLCBzdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlNURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0
KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIHNo
b3VsZEJlTm9uTnVsbCgiZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRo
U3RlbmNpbEJ1ZmZlcik7Ci0gICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0dXNG
b3JHb29kQ2FzZQotICAgICAgICAgICAgPSAod2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkgPyBB
TExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQgOiBBTExPV19DT01QTEVURTsKLQotICAgICAgICAv
LyBzb21lIGNhc2VzIGludm9sdmluZyBzdGVuY2lsIHNlZW0gdG8gYmUgaW1wbGVtZW50YXRpb24t
ZGVwZW5kZW50Ci0gICAgICAgIHZhciBhbGxvd2VkU3RhdHVzRm9ySW1wbERlcGVuZGVudENhc2Ug
PSBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UgfCBBTExPV19VTlNVUFBPUlRFRDsKLQotICAgICAg
ICBkZWJ1ZygiQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQiKTsKLSAgICAgICAg
dGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGFsbG93ZWRT
dGF0dXNGb3JHb29kQ2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgU1RF
TkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLlNURU5DSUxfQVRU
QUNITUVOVCwgZGVwdGhCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAg
ICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIik7
Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVw
dGhCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJB
dHRhY2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0
dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3Rh
dHVzRm9ySW1wbERlcGVuZGVudENhc2UpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIHN0ZW5jaWwg
dXNpbmcgREVQVEhfQVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBU
SF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQp
OwotICAgICAgICBkZWJ1ZygiQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRB
Q0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNI
TUVOVCwgc3RlbmNpbEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAg
ICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVO
VCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotICAgICAg
ICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0g
ICAgICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1
ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFj
aCBkZXB0aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RB
dHRhY2htZW50KGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBBTExP
V19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotCi0gICAgICAgIHZhciBhbGxvd2VkU3RhdHVzRm9y
Q29uZmxpY3RlZEF0dGFjaG1lbnQKLSAgICAgICAgICAgID0gKHdpZHRoID09IDAgfHwgaGVpZ2h0
ID09IDApID8gQUxMT1dfVU5TVVBQT1JURUQgfCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogQUxMT1dfVU5TVVBQ
T1JURUQ7Ci0KLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9BVFRBQ0hN
RU5ULCBkZXB0aEJ1ZmZlciwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBh
bGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAgICBkZWJ1ZygiQXR0
YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVz
dEF0dGFjaG1lbnRzKGdsLlNURU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgZ2wuREVQ
VEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0
YWNobWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2ls
LCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9B
VFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0
aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0g
ICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNv
bmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9TVEVOQ0lMX0FUVEFD
SE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhCdWZm
ZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVn
KCJBdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsK
LSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVy
LCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dl
ZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBk
ZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAgICB0
ZXN0QXR0YWNobWVudHMoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxC
dWZmZXIsIGdsLlNURU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1
c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGNvbG9y
IHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Iik7Ci0gICAgICAgIHRl
c3RDb2xvclJlbmRlcmJ1ZmZlcihnbC5SR0JBNCwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsK
LQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFs
Zm9ybWF0ID09IFJHQjVfQTEiKTsKLSAgICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJH
QjVfQTEsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7Ci0KLSAgICAgICAgZGVidWcoIkF0dGFj
aCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUiKTsKLSAg
ICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQjU2NSwgYWxsb3dlZFN0YXR1c0Zvckdv
b2RDYXNlKTsKLQotICAgICAgICBkZWJ1ZygiQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2ls
IHJlbmRlcmJ1ZmZlciIpOwotICAgICAgICB0ZXN0RGVwdGhTdGVuY2lsUmVuZGVyYnVmZmVyKGFs
bG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7Ci0gICAgfQotfQotCi0vLyBEZXRlcm1pbmUgaWYgd2Ug
Y2FuIGF0dGFjaCBib3RoIGNvbG9yIGFuZCBkZXB0aCBvciBjb2xvciBhbmQgZGVwdGhfc3RlbmNp
bAotdmFyIGRlcHRoRm9ybWF0OwotdmFyIGRlcHRoQXR0YWNobWVudDsKLQotZnVuY3Rpb24gY2hl
Y2tWYWxpZENvbG9yRGVwdGhDb21iaW5hdGlvbigpIHsKLSAgICBzaG91bGRCZU5vbk51bGwoImZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGds
LmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5E
RVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigK
LSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJC
VUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRF
UkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImRlcHRo
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVm
ZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotCi0gICAgcmV0dXJuIHRyeURlcHRo
KGdsLkRFUFRIX0NPTVBPTkVOVDE2LCBnbC5ERVBUSF9BVFRBQ0hNRU5UKSB8fCB0cnlEZXB0aChn
bC5ERVBUSF9TVEVOQ0lMLCBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOwotCi0gICAgZnVu
Y3Rpb24gdHJ5RGVwdGgodHJ5X2Zvcm1hdCwgdHJ5X2F0dGFjaG1lbnQpIHsKLSAgICAgICAgaWYg
KGRlcHRoQXR0YWNobWVudCkgewotICAgICAgICAgICAgLy8gSWYgd2UndmUgdHJpZWQgb25jZSB1
bmF0dGFjaCB0aGUgb2xkIG9uZS4KLSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKAotICAgICAgICAgICAgICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGds
LlJFTkRFUkJVRkZFUiwgbnVsbCk7Ci0gICAgICAgIH0KLSAgICAgICAgZGVwdGhGb3JtYXQgPSB0
cnlfZm9ybWF0OwotICAgICAgICBkZXB0aEF0dGFjaG1lbnQgPSB0cnlfYXR0YWNobWVudDsKLSAg
ICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgICAgICBnbC5GUkFNRUJV
RkZFUiwgZGVwdGhBdHRhY2htZW50LCBnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAg
ICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0
LCAxNiwgMTYpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAg
ICAgICAgcmV0dXJuIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpID09
IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFOwotICAgIH0KLX0KLQotaWYgKGNoZWNrVmFsaWRDb2xv
ckRlcHRoQ29tYmluYXRpb24oKSkgewotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVEaW1l
bnNpb25zKCk7Ci0gICAgdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZUF0dGFjaG1lbnQoKTsKLSAg
ICB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlTWlzc2luZ0F0dGFjaG1lbnQoKTsKLSAgICB0ZXN0
VXNpbmdJbmNvbXBsZXRlRnJhbWVidWZmZXIoKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tGcmFtZWJ1
ZmZlcihleHBlY3RlZCkgewotICAgIHZhciBhY3R1YWwgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICB2YXIgbXNnID0gImdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGds
LCBleHBlY3RlZCkgKyAiIHdhcyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBhY3R1YWwpOwot
ICAgIGlmIChleHBlY3RlZCAhPSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBt
c2cgKz0gIiBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRCI7Ci0gICAgfQotICAgIGlmIChhY3R1
YWwgPT0gZXhwZWN0ZWQgfHwKLSAgICAgICAgKGV4cGVjdGVkICE9IGdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFICYmCi0gICAgICAgICBhY3R1YWwgPT0gZ2wuRlJBTUJVRkZFUl9VTlNVUFBPUlRFRCkp
IHsKLSAgICAgICAgdGVzdFBhc3NlZChtc2cpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RG
YWlsZWQobXNnKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RVc2luZ0luY29tcGxldGVGcmFt
ZWJ1ZmZlcigpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZHJhd2luZyBvciBy
ZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgIHZhciBwcm9ncmFt
ID0gd3R1LnNldHVwVGV4dHVyZWRRdWFkKGdsKTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4
dHVyZSgpOwotICAgIHd0dS5maWxsVGV4dHVyZShnbCwgdGV4LCAxLCAxLCBbMCwyNTUsMCwyNTVd
KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIp
OwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91
bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAg
ICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAg
IGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wu
Q09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsK
LQotICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1
ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1F
QlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwot
ICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwg
MTYsIDE2KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBjaGVj
a0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIC8vIFdlIHBpY2sg
dGhpcyBjb21iaW5hdGlvbiBiZWNhdXNlIGl0IHdvcmtzIG9uIGRlc2t0b3AgT3BlbkdMIGJ1dCBz
aG91bGQgbm90IHdvcmsgb24gT3BlbkdMIEVTIDIuMAotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMzIsIDE2KTsKLSAgICBjaGVja0ZyYW1l
YnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyk7Ci0gICAgZGVidWco
IiIpOwotICAgIGRlYnVnKCJEcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiIp
OwotICAgIHRlc3RSZW5kZXJpbmdBbmRSZWFkaW5nKCk7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwo
ImZibzIgPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVy
KGdsLkZSQU1FQlVGRkVSLCBmYm8yKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAg
ZGVidWcoIkRyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIg
c2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVz
dFJlbmRlcmluZ0FuZFJlYWRpbmcoKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIo
Z2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wu
UkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShn
bC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAwLCAwKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVi
dWcoIkRyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hv
dWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJl
bmRlcmluZ0FuZFJlYWRpbmcoKTsKLQotICAgIGZ1bmN0aW9uIHRlc3RSZW5kZXJpbmdBbmRSZWFk
aW5nKCkgewotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAg
ICAgd3R1LmRyYXdRdWFkKGdsKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiwgImRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyIik7Ci0gICAgICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwg
Z2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJyYXkoNCkpOwotICAgICAgICBnbEVycm9yU2hv
dWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAicmVhZFBpeGVscyBm
cm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgLy8gY29weVRleEltYWdlIGFu
ZCBjb3B5VGV4U3ViSW1hZ2UgY2FuIGJlIGVpdGhlciBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiBiZWNhdXNlCi0gICAgICAgIC8vIHRoZSBmcmFtZWJ1ZmZlciBpcyBpbnZhbGlkIE9SIElO
VkFMSURfT1BFUkFUSU9OIGJlY2F1c2UgaW4gdGhlIGNhc2Ugb2Ygbm8gYXR0YWNobWVudHMKLSAg
ICAgICAgLy8gdGhlIGZyYW1lYnVmZmVyIGlzIG5vdCBvZiBhIGNvbXBhdGlibGUgdHlwZS4KLSAg
ICAgICAgZ2wuY29weVRleFN1YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwgMCwg
MSwgMSk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgW2dsLklOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OLCBnbC5JTlZBTElEX09QRVJBVElPTl0sICJjb3B5VGV4SW1hZ2UyRCBmcm9t
IGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgZ2wuY29weVRleEltYWdlMkQoZ2wu
VEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMCwgMCwgMSwgMSwgMCk7Ci0gICAgICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgW2dsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCBnbC5JTlZBTElE
X09QRVJBVElPTl0sICJjb3B5VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZm
ZXIiKTsKLSAgICAgICAgZ2wuY2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JV
RkZFUl9CSVQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OLCAiY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0g
ICAgfQotfQotCi1mdW5jdGlvbiB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlQXR0YWNobWVudCgp
IHsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsK
LSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgc2hvdWxk
QmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAg
Z2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBn
bC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNP
TE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5y
ZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0g
ICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBkZWJ1
ZygiIik7Ci0gICAgZGVidWcoIldyb25nIHN0b3JhZ2UgdHlwZSBmb3IgdHlwZSBvZiBhdHRhY2ht
ZW50IGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0
LjQuNSkiKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVw
dGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9J
TkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotCi0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCIwIHNp
emUgYXR0YWNobWVudCBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5U
IChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMCwgMCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotCi0gICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBnbC5OT19FUlJPUik7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxl
dGVNaXNzaW5nQXR0YWNobWVudCgpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIk5vIGF0
dGFjaG1lbnRzIHNob3VsZCBiZSBJTkNPTVBMRVRFX0ZSQU1FQlVGRkVSX01JU1NJTkdfQVRUQUNI
TUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJB
TUVCVUZGRVIsIGZibyk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNP
TVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCk7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVm
ZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAs
IGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGds
LlJFTkRFUkJVRkZFUiwgbnVsbCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZnVuY3Rpb24gdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0
ZURpbWVuc2lvbnMoKSB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJBdHRhY2htZW50cyBv
ZiBkaWZmZXJlbnQgc2l6ZXMgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5T
SU9OUyAoT3BlbkdMIEVTIDIuMCA0LjQuNSkiKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRF
UkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAot
ICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJV
RkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhC
dWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZm
ZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJF
TkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFKTsKLQotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBk
ZXB0aEZvcm1hdCwgMzIsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfRElNRU5TSU9OUyk7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIo
Z2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVO
REVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMzIpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wu
RlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC5yZW5kZXJidWZmZXJT
dG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGds
LCBnbC5OT19FUlJPUik7Ci0KLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChn
bC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxNiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVE
X0JZVEUsIG51bGwpOwotICAgIGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLSAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwg
MCwgZ2wuUkdCQSwgMzIsIDE2LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsK
LSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9O
Uyk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxNiwgMTYs
IDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZm
ZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWE1Zjg5NzY0MTc0Zjc5NTM5YTE4
NzJmMmQyMDI3NzI2M2IyM2U5ZS4uNjAwZWZlNmZlYzc3NmIwZWYzY2UzZDcxNGQ3Y2Y4ZjE1MzZl
MzY1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQz
NSw3ICs0MzUsNiBAQCB3ZWJraXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVv
LWJhY2tncm91bmQtY29sb3IuaHRtbCBbIE1pc3NpbmcgQ3Jhcwogd2Via2l0Lm9yZy9iLzE2OTkx
NyBmYXN0L2NhbnZhcy93ZWJnbC9hbnRpYWxpYXNpbmctZW5hYmxlZC5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRy
aWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwgWyBGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvY29weUJ1ZmZlclN1YkRhdGEuaHRt
bCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9mcmFt
ZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2Iv
MTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2dldEJ1ZmZlclN1YkRhdGEtd2ViZ2wxLmh0bWwgWyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZ2xzbC1jb25m
b3JtYW5jZS5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFz
L3dlYmdsL3ByZW11bHRpcGx5YWxwaGEtdGVzdC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGQ0OTU1NmVkNzgxZTRiNGQ3NjRj
ZTIzZWFmOWMyMzA5YWJjN2U1ZjUuLjhhMjdmYjUyMGM1MmJhNDA2YjJkNjZmMDM4YWVkMTk1Nzk5
Mjg5M2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0y
NzQwLDcgKzI3NDAsNiBAQCB3ZWJraXQub3JnL2IvMTcxNjE3IHBlcmYvb2JqZWN0LWtleXMuaHRt
bCBbIFBhc3MgRmFpbHVyZSBdCiAKICMgV2ViR0wgdGVzdHMgd2hpY2ggbmVlZCB0cmlhZ2luZyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9iLzE3NDEwMAogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4
dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwgWyBGYWlsdXJl
IF0KLWZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwg
WyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWZsb2F0LWxpbmVhci5o
dG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0
LWxpbmVhci5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5k
LXN1Yi1pbWFnZS0yZC13aXRoLXBvdGVudGlhbGx5LXN1YnNhbXBsZWQtaW1hZ2UuaHRtbCBbIEZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5
MDI3YTlkMzllN2Y2YzMxYzYwNDdmOGE1NTgzODBlMWRiZTg2ZmE3Li5iYWNmMWZlNmRjNDkzYzU2
MDY3ZGMyNzA1YzY3NWQ4OWI4NTdjZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMjk0LDggKzI5NCw2IEBAIHdlYmtpdC5vcmcvYi84MjY2NSB3ZWJh
cmNoaXZlL3Rlc3QtY3NzLXVybC1yZXNvdXJjZXMtaW5saW5lLXN0eWxlcy5odG1sIFsgRmFpbHVy
CiAKIHdlYmtpdC5vcmcvYi84Mjc2MiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1kdXJpbmctbW9kYWwuaHRtbAogCi13ZWJraXQub3JnL2IvODI4MDUgZmFzdC9jYW52YXMv
d2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQotCiB3
ZWJraXQub3JnL2IvODI5NzIgcGx1Z2lucy9rZXlib2FyZC1ldmVudHMuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvODI5NzIgcGx1Z2lucy9sYXlvdXQtaW4tYmVmb3JlbG9hZC1s
aXN0ZW5lci1hZmZlY3RzLXBsdWdpbi1sb2FkaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2Vi
a2l0Lm9yZy9iLzgyOTcyIHBsdWdpbnMvbW91c2UtZXZlbnRzLWZpeGVkcG9zLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UyL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9i
ZXllZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIv
Y29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVk
LWV4cGVjdGVkLnR4dAppbmRleCA1YmVmODE2YzQ2ZjdmMDAyZDQ1NTY4N2QzOTE0NTIyMWZlNGMw
Y2FmLi4zNmM5NDhhZGU5NWVjYjNkNDliZTkwYzExNGYzODdkNzhmNDI5OWQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0
dHJpYnV0ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0
dHJpYnV0ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dApAQCAt
MSwxNyArMSwxNSBAQAogVGhpcyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93
IGluIGFuIGlmcmFtZSBhbmQgcmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jl
c291cmNlcy93ZWJnbF90ZXN0X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0
cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQuaHRtbAotWyAxOiBGQUlMIF0g
YW50aWFsaWFzID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDI6IEZBSUwgXSBhbnRpYWxpYXMgPSB0
cnVlIGlzIG5vdCBvYmV5ZWQKK1sgMTogUEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBj
b3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgorWyAyOiBGQUlMIF0gc3RlbmNp
bCA9IHRydWUgaXMgbm90IG9iZXllZAogWyAzOiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90
IG9iZXllZAogWyA0OiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9iZXllZAotWyA1OiBG
QUlMIF0gYW50aWFsaWFzID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDY6IEZBSUwgXSBzdGVuY2ls
ID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDc6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qg
b2JleWVkCi1bIDg6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKK1sgNTog
RkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKK1sgNjogUEFTUyBdIENvbnRleHQg
Y3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgor
WyA3OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBk
ZXB0aCwgYW5kIHN0ZW5jaWwuCitbIDg6IFBBU1MgXSBDb250ZXh0IGNyZWF0ZWQgd2l0aCB0aGUg
Y29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KIFsgOTogUEFTUyBdIENvbnRl
eHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2ls
LgotWyAxMDogRkFJTCBdIGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAotWyAxMTogUEFT
UyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFu
ZCBzdGVuY2lsLgotWyAxMjogUEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZB
SUwgXSA5IGZhaWx1cmVzIHJlcG9ydGVkCitbIDEwOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKK1sgRkFJTCBdIDQgZmFpbHVyZXMgcmVwb3J0ZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386458</attachid>
            <date>2019-12-27 16:18:13 -0800</date>
            <delta_ts>2019-12-28 12:09:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191228111811.patch</filename>
            <type>text/plain</type>
            <size>385799</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiOGM5YWRiYTM1YzNiNmNk
NGZlNTZkODZlMjE5ZDFjNzgwOTdlOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZywKKyAgICAgICAgRG9QcmVtdWx0aXBseSwKKyAgICAgICAgRG9Vbm11
bHRpcGx5LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIERPTVNvdXJjZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBJbWFnZSwKKyAgICAgICAgQ2FudmFzLAorICAgICAgICBWaWRlbywKKyAgICAgICAg
Tm9uZSwKKyAgICB9OworCisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9y
bTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCA9IDA7CisKKyAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBib29sIGhhc0FscGhhKERhdGFGb3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAg
c3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBODoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkEzMkY6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFS
ODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9y
bWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBODoKKyAgICAgICAgY2Fz
ZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBQkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpS
R0JBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkEzMkY6CisgICAgICAgIGNhc2Ug
RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTU1NTE6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGJvb2wgaGFzQ29sb3IoRGF0YUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0
Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTMy
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJHQjE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0IzMkY6CisgICAgICAgIGNh
c2UgRGF0YUZvcm1hdDo6QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpB
QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I1NjU6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6Ujg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UjE2
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMzJGOgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUjg6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQgaXMg
b25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMuCisg
ICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgorICAgIC8v
IFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0cy4g
SXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEgbGl0
dGxlIG1vcmUgZm9yIENHIHBvcnQuCisgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBzcmNG
b3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3JtYXQp
CisgICAgeworI2lmIFVTRShDRykKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICByZXR1cm4gU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
UkdCOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCOAorICAgICAgICB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBUjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
ODsKKyNlbHNlCisgICAgLy8gVGhhdCBMSVRUTEVfRU5ESUFOIGNhc2UgaGFzIG1vcmUgcG9zc2li
bGUgZm9ybWF0cyB0aGFuIEJJR19FTkRJQU4gY2FzZSBpcyBiZWNhdXNlIHNvbWUgZGVjb2RlZCBp
bWFnZSBkYXRhIGlzIGFjdHVhbGx5IGJpZyBlbmRpYW4KKyAgICAvLyBldmVuIG9uIGxpdHRsZSBl
bmRpYW4gYXJjaGl0ZWN0dXJlcy4KKyAgICByZXR1cm4gU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6
OkJHUkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBQkdSOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdDo6QkdSOAorICAgICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdC
QTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSOCB8fCBT
cmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QTgKKyAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFG
b3JtYXQ6OlJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QVI4OworI2VuZGlmCisjZWxz
ZQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0
ID09IERhdGFGb3JtYXQ6OlJHQkE4OworI2VuZGlmCisgICAgfQorCisgICAgc3RydWN0IEFjdGl2
ZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgR0MzRGVudW0gdHlwZTsKKyAg
ICAgICAgR0MzRGludCBzaXplOworICAgIH07CisKKyAgICBHcmFwaGljc0NvbnRleHQzREJhc2Uo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpP
ZmZzY3JlZW4sIEdyYXBoaWNzQ29udGV4dDNEQmFzZSogc2hhcmVkQ29udGV4dCA9IG51bGxwdHIp
OworICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dDNEQmFzZSgpID0gZGVmYXVsdDsKKworICAg
IC8vID09PT09PT09PT0gV2ViR0wgMSBlbnRyeSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQg
YWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNE
T2JqZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJpbmRCdWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihH
QzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4s
IEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBibGVuZEVxdWF0aW9uKEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxl
bmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1vZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0gc2ZhY3RvciwgR0MzRGVu
dW0gZGZhY3RvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShHQzNE
ZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0RlbnVt
IGRzdEFscGhhKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKEdDM0Ri
aXRmaWVsZCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoR0MzRGNsYW1w
ZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBo
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVwdGgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGVuY2lsKEdDM0RpbnQgcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjb2xvck1hc2soR0MzRGJvb2xlYW4gcmVkLCBHQzNEYm9vbGVhbiBncmVlbiwg
R0MzRGJvb2xlYW4gYmx1ZSwgR0MzRGJvb2xlYW4gYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29tcGlsZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwg
R0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50
IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCBQbGF0Zm9ybTNE
T2JqZWN0IGNyZWF0ZUJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3Qg
Y3JlYXRlRnJhbWVidWZmZXIoKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNy
ZWF0ZVByb2dyYW0oKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hh
ZGVyKEdDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRl
eHR1cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY3VsbEZhY2UoR0MzRGVudW0gbW9kZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZyYW1lYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUoUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcHRoTWFzayhHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0LCBQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBp
bmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdD
M0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3
RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZShHQzNEZW51
bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0Mz
RHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBy
ZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQgbGV2ZWwp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZU1pcG1hcChHQzNEZW51bSB0YXJnZXQpID0gMDsKKwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVBdHRyaWIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFt
LCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBB
Y3RpdmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291
bnQsIFBsYXRmb3JtM0RPYmplY3QqIHNoYWRlcnMpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGlu
dCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0
UGFyYW1ldGVyCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KEdDM0RlbnVtIHBuYW1l
LCBHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlZ2VyNjR2KEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50NjQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFByb2dyYW1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCb29sZWFudihHQzNEZW51bSBw
bmFtZSwgR0MzRGJvb2xlYW4qIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGdl
dEVycm9yKCkgPSAwOworCisgICAgLy8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
CisgICAgdmlydHVhbCB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUsIEdDM0Rp
bnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQcm9ncmFtUGFyYW1ldGVyCisgICAgdmlydHVh
bCBTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAg
Ly8gZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRTaGFkZXJQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9y
bWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEdDM0RpbnQq
IHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pID0gMDsKKworICAgIHZpcnR1YWwgU3RyaW5nIGdl
dFNoYWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRUZXhQYXJh
bWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRUZXhQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0VW5pZm9ybQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9uLCBH
QzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKSA9
IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RpbnQgZ2V0VW5pZm9ybUxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgLy8gZ2V0VmVydGV4QXR0cmli
CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYmZ2KEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRW
ZXJ0ZXhBdHRyaWJpdihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RzaXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZz
ZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0
dWFsIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
aXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYg
dmFsdWUsIEdDM0Rib29sZWFuIGludmVydCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2lzc29y
KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVu
YyhHQzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0RlbnVtIGZ1
bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
ZW5jaWxNYXNrKEdDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1h
c2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0ZW5jaWxPcChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0g
enBhc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wU2VwYXJhdGUoR0MzRGVudW0g
ZmFjZSwgR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdDM0RlbnVtIHpwYXNzKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1ldGVyZihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFy
YW1ldGVyaShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rm
bG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtMWl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGlu
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0y
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwg
R0MzRGludCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaXYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdD
M0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNE
aW50IHopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5p
Zm9ybTRmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZs
b2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEaW50IHosIEdDM0RpbnQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
NGl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4MmZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rz
aXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJpeDRmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHVzZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNE
ZmxvYXQgeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQg
aW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZl
cnRleEF0dHJpYjJmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25z
dCBHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIz
ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6
LCBHQzNEZmxvYXQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZnYoR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplLCBH
QzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBidWZmZXJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVp
cHRyIHNpemUsIEdDM0RlbnVtIHVzYWdlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRh
dGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwg
R0MzRGVudW0gdXNhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YShHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0Rz
aXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZv
aWQqIGRhdGEpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWFkUGl4ZWxzKEdDM0RpbnQgeCwg
R0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZv
cm1hdCwgR0MzRGVudW0gdHlwZSwgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCBib29s
IHRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRl
cm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJv
cmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
Y29uc3Qgdm9pZCogcGl4ZWxzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5c0lu
c3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdD
M0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzSW5z
dGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikg
PSAwOworCisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGNvbnRleHRBdHRyaWJ1dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hdHRyczsgfQorICAgIHZvaWQgc2V0Q29udGV4dEF0dHJpYnV0
ZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzJiBhdHRycykgeyBtX2F0dHJzID0g
YXR0cnM7IH0KKworICAgIC8vIFZlcnRleEFycmF5T2plY3QgY2FsbHMKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtM0RPYmplY3QgY3JlYXRlVmVydGV4QXJyYXkoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZVZlcnRleEFycmF5KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisjaWYgVVNF
KE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdMMikKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbWl0aXZlUmVz
dGFydEluZGV4KEdDM0R1aW50KSA9IDA7CisjZW5kaWYKKworICAgIC8vIFN1cHBvcnQgZm9yIGV4
dGVuc2lvbnMuIFJldHVybnMgYSBub24tbnVsbCBvYmplY3QsIHRob3VnaCBub3QKKyAgICAvLyBh
bGwgbWV0aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRo
ZQorICAgIC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBv
cnRzKCkgdG8KKyAgICAvLyBkZXRlcm1pbmUgdGhpcy4KKyAgICB2aXJ0dWFsIEV4dGVuc2lvbnMz
RCYgZ2V0RXh0ZW5zaW9ucygpID0gMDsKKworICAgIC8vID09PT09PT09PT0gV2ViR0wgMiBlbnRy
eSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVs
ZCBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0Rl
bnVtIHRhcmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNE
ZW51bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zm
c2V0LCBHQzNEaW50cHRyIHdyaXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpID0gMDsKKworICAgIC8v
IGdldEludGVybmFsRm9ybWF0UGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldEludGVybmFs
Zm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50KiBwYXJhbXMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHRleFN0
b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTNEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVs
cywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRHNpemVpIGRlcHRoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWN0aXZl
VW5pZm9ybXMoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBjb25zdCBWZWN0b3I8R0MzRHVpbnQ+
JiB1bmlmb3JtSW5kaWNlcywgR0MzRGVudW0gcG5hbWUsIFZlY3RvcjxHQzNEaW50PiYgcGFyYW1z
KSA9IDA7CisKKyAgICAvLyA9PT09PT09PT09IE5vbi1XZWJHTCBiYXNlZCBlbnRyeSBwb2ludHMu
CisKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQzNE
ZW51bSk7CisgICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDM0RlbnVt
KTsKKworICAgIHN0YXRpYyB1aW50OF90IGdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0p
OworCisgICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3Rp
bmF0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIG1f
YXR0cnM7CisgICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCA5MTMw
MDQ0MGNkZWQ0OWUxZGRkNTBiYzQ5ZWM3OGRkNjU4ZGQ2YTBlLi5hM2U2ZDI1ODIxNDVkZThjMTYw
OTBiZDBlYzhjMGZlMzQwZjQyZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTM4
LDEzICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7Ci0gICAgc3dpdGNo
IChyZW5kZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNj
cmVlbjoKKyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9nbENvbnRleHQgPSBHTENv
bnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheUZvckNvbXBvc2l0aW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCmluZGV4IGUzM2Y4ZmJlNzM4OTJlMzRiOGRlZjgzNmQ0NmY1YzcwYzc5YzYxZGQuLmYz
MjU0YTgwNTliNTYyYTE1NmE3YzU2YjZhMTg2ODdjZTM0N2U3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24p
OwogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKTsKICAgICBib29sIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c1R5cGVzM0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCmluZGV4IDFhYjFhNGY2NGE2MTRlOWQyM2RhYzhhMGEyYTJjNDg5N2U5MWVlOTEuLjVl
YzI3MTQ1YzAzMGY5ZGJiZGRmZjI1NGYzYTE0ZGIxNWFiYzNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCkBAIC01MSw0ICs1
MSw4IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIEdDM0R1aW50NjQ7CiAKIHR5cGVkZWYg
R0MzRHVpbnQgUGxhdGZvcm0zRE9iamVjdDsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK3R5cGVk
ZWYgdW5zaWduZWQgR0x1aW50OworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRl
eHQzREFOR0xFLmNwcAppbmRleCA3N2JiM2IyY2QxNWUxMjcxMTI2OTQ2OTRhNjQ3OTJhMGRjMzFm
NjRhLi4yOWE3Mzc1NGY1NTA0MTJlYWFlZDIwNDQ4OTEwN2IzNjRiNGU1M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQz
REFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHQzREFOR0xFLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgs
IGludCB5LCBpbnQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRy
cy5hbHBoYSkKKyAgICBpZiAoIWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGEpCiAgICAgICAgIHdp
cGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHBpeGVscyk7CiAjZW5kaWYK
IH0KQEAgLTEzNCwxNyArMTM0LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRl
QXR0cmlidXRlcygpCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0
IEludFNpemUmIHNpemUpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7
CiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWln
aHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCwgaW50ZXJuYWxEZXB0
aFN0ZW5jaWxGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJzLmFscGhhKSB7CisgICAgaWYgKGF0
dHJzLmFscGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQkE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9p
bnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9S
R0I7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgewor
ICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIC8vIFdlIGRv
bid0IGFsbG93IHRoZSBsb2dpYyB3aGVyZSBzdGVuY2lsIGlzIHJlcXVpcmVkIGFuZCBkZXB0aCBp
cyBub3QuCiAgICAgICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1
dGVzLgogCkBAIC0xNTcsNyArMTU4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB9CiAKICAgICAvLyBSZXNpemUgbXVsdGlz
YW1wbGUgRkJPLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5h
bnRpYWxpYXMpIHsKICAgICAgICAgR0xpbnQgbWF4U2FtcGxlQ291bnQ7CiAgICAgICAgIGdsOjpH
ZXRJbnRlZ2VydihHTF9NQVhfU0FNUExFU19BTkdMRSwgJm1heFNhbXBsZUNvdW50KTsKICAgICAg
ICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBpcyBzbG93IG9uIHNvbWUgaGFyZHdhcmUg
YW5kIGlzIHVubGlrZWx5IHRvCkBAIC0xNjcsNyArMTY4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgZ2w6OkJpbmRS
ZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwog
ICAgICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdM
X1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgs
IGhlaWdodCk7CiAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBs
ZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSB7CisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAg
ICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2V0RXh0ZW5zaW9ucygpLnJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAv
LyBXZWJHTCAxLjAncyBydWxlcyBzdGF0ZSB0aGF0IGNvbWJpbmVkIGRlcHRoL3N0ZW5jaWwgcmVu
ZGVyYnVmZmVycwpAQCAtMTc1LDkgKzE3Niw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICBpZiAoIWlzR0xFUzJD
b21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9PSBHTF9ERVBUSDI0X1NU
RU5DSUw4X09FUykKICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVS
LCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgaWYg
KGF0dHJzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJC
VUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAg
IGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVE
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMTUsNyAr
MjE2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKICAgICBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChpbnRlcm5h
bERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBib29sIG11c3RSZXN0
b3JlRkJPID0gdHJ1ZTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0
cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZG
RVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X211bHRpc2FtcGxlRkJPKQogICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAg
LTIyOSw3ICsyMzAsOSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphdHRhY2hEZXB0aEFu
ZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQs
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkpIHsKKyAgICBhdXRvIGF0dHJzID0g
Y29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSkgewogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZl
cihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZ2w6OlJl
bmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRl
IHRoYXQgY29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0yMzcsOSArMjQw
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVy
SWZOZWVkZWQoR0x1aW50IGludGVybmFsRGVwdGgKICAgICAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkgJiYgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPT0gR0xfREVQVEgyNF9TVEVOQ0lM
OF9PRVMpCiAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRo
U3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAg
IGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgZ2w6OkJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVS
QlVGRkVSLCAwKTsKQEAgLTM3OCwxNyArMzgxLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
CiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91bGQgYmUgZG9uZSBiZWZv
cmUgcmVhZGluZyBwaXhlbHMuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgZ2w6OkZs
dXNoKCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0g
bV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRp
c2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50
UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIGdsOjpGbHVz
aCgpOwogICAgIH0KICAgICBnbDo6UmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3Jt
YXQsIHR5cGUsIGRhdGEpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJP
KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgKGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKKyAgICBpZiAo
IWF0dHJzLmFscGhhICYmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X2ZibyB8fCAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNh
bXBsZUZCTykpKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVp
Z2h0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YSkpOwogI2VuZGlmCiB9CkBAIC0z
OTksMjAgKzQwMywyMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaQogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVu
Y2lsRXh0ZW5zaW9uKQogewogICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVu
c2lvbnMoKTsKLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgYXV0byBhdHRycyA9IGNv
bnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewogICAgICAgICBp
ZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7CiAg
ICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0
ZW5zaW9uKTsKICAgICAgICAgICAgIC8vIEZvcmNlIGRlcHRoIGlmIHN0ZW5jaWwgaXMgdHJ1ZS4K
LSAgICAgICAgICAgIG1fYXR0cnMuZGVwdGggPSB0cnVlOworICAgICAgICAgICAgYXR0cnMuZGVw
dGggPSB0cnVlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fYXR0cnMuc3RlbmNpbCA9
IGZhbHNlOwotCisgICAgICAgICAgICBhdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAgIHNl
dENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAvLyBGSVhNRTogbXVz
dCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMgMy4w
IHN1cHBvcnQuCi0gICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJh
bWVidWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9y
Z2JhOCIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1fYXR0cnMuYW50aWFs
aWFzID0gZmFsc2U7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoIWV4dGVuc2lvbnMuc3Vw
cG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgIWV4dGVuc2lvbnMu
c3VwcG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKSB8fCAhZXh0ZW5zaW9ucy5zdXBw
b3J0cygiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFz
ID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIik7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVu
c3VyZUVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKTsKICAgICAgICAgICAgIGV4
dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKQEAgLTQzNyw3ICs0
NDQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVyaW5nUmVzdWx0
cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJzLnByZW11bHRp
cGxpZWRBbHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVk
QWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQp
IHsKICAgICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAgICAgcGl4ZWxz
W2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAy
NTUpOwpAQCAtNDY0LDcgKzQ3MSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4
dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgLy8gUmVhZGlu
ZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hp
Y2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBsaWVkQWxwaGEp
CisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVh
dGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBAIC00OTAsNyAr
NDk3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogCiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlz
YW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBA
IC01MTcsNyArNTI0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jl
c3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBAIC01NjQsMTEgKzU3MSwxMyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
IAogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwor
ICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2Vk
IGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNjb3BlZFNj
aXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKIAogICAgIGJvb2wgbXVzdFJl
c3RvcmVGQk8gPSByZXNoYXBlRkJPcyhJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICBhdXRv
IGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKIAogICAgIC8vIEluaXRpYWxpemUgcmVuZGVy
YnVmZmVycyB0byAwLgogICAgIEdMZmxvYXQgY2xlYXJDb2xvcltdID0gezAsIDAsIDAsIDB9LCBj
bGVhckRlcHRoID0gMDsKQEAgLTU4MCwxNCArNTg5LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGdsOjpDbGVhckNvbG9yKDAs
IDAsIDAsIDApOwogICAgIGdsOjpHZXRCb29sZWFudihHTF9DT0xPUl9XUklURU1BU0ssIGNvbG9y
TWFzayk7CiAgICAgZ2w6OkNvbG9yTWFzayhHTF9UUlVFLCBHTF9UUlVFLCBHTF9UUlVFLCBHTF9U
UlVFKTsKLSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewog
ICAgICAgICBnbDo6R2V0RmxvYXR2KEdMX0RFUFRIX0NMRUFSX1ZBTFVFLCAmY2xlYXJEZXB0aCk7
CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKDEpOwogICAgICAgICBnbDo6
R2V0Qm9vbGVhbnYoR0xfREVQVEhfV1JJVEVNQVNLLCAmZGVwdGhNYXNrKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhHTF9UUlVFKTsKICAgICAgICAgY2xlYXJNYXNrIHw9IEdMX0RFUFRIX0JVRkZF
Ul9CSVQ7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMu
c3RlbmNpbCkgewogICAgICAgICBnbDo6R2V0SW50ZWdlcnYoR0xfU1RFTkNJTF9DTEVBUl9WQUxV
RSwgJmNsZWFyU3RlbmNpbCk7CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoMCk7CiAgICAgICAg
IGdsOjpHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX1dSSVRFTUFTSywgcmVpbnRlcnByZXRfY2FzdDxH
TGludCo+KCZzdGVuY2lsTWFzaykpOwpAQCAtNjAxLDExICs2MTAsMTEgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICBnbDo6Q2xl
YXJDb2xvcihjbGVhckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVh
ckNvbG9yWzNdKTsKICAgICBnbDo6Q29sb3JNYXNrKGNvbG9yTWFza1swXSwgY29sb3JNYXNrWzFd
LCBjb2xvck1hc2tbMl0sIGNvbG9yTWFza1szXSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsK
KyAgICBpZiAoYXR0cnMuZGVwdGgpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFy
RGVwdGgoY2xlYXJEZXB0aCk7CiAgICAgICAgIGdsOjpEZXB0aE1hc2soZGVwdGhNYXNrKTsKICAg
ICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7
CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfRlJPTlQsIHN0ZW5jaWxNYXNrKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfQkFDSywgc3RlbmNpbE1hc2tCYWNrKTsKQEAgLTY1Nyw3ICs2
NjYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0g
dGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IGJ1ZmZlcgogICAgIGlmIChidWZmZXIpCiAgICAgICAg
IGZibyA9IGJ1ZmZlcjsKICAgICBlbHNlCi0gICAgICAgIGZibyA9IChtX2F0dHJzLmFudGlhbGlh
cyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CisgICAgICAgIGZibyA9IChjb250ZXh0QXR0
cmlidXRlcygpLmFudGlhbGlhcyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CiAgICAgaWYg
KGZibyAhPSBtX3N0YXRlLmJvdW5kRkJPKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
dGFyZ2V0LCBmYm8pOwogICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gZmJvOwpAQCAtODMyLDI0
ICs4NDEsMjggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlckRpcmVjdChQ
bGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxm
b3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RpbnQgYm9yZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAg
IGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1w
bGVGQk8pIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlm
IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJP
KSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5
LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgfQogICAgIGdsOjpDb3B5VGV4SW1h
Z2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwg
Ym9yZGVyKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5i
b3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVy
KEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBj
b250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRl
LmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2Ft
cGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAg
Z2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICB9CiAgICAgZ2w6OkNvcHlUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtMTAzNywxMSArMTA1MCw2IEBAIGludCBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb25EaXJlY3QoUGxhdGZvcm0zRE9iamVjdCBw
cm9ncmFtLCBjb25zdCBTCiAgICAgcmV0dXJuIGdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5h
bWUpOwogfQogCi1HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKLXsKLSAgICByZXR1cm4gbV9hdHRyczsKLX0KLQogYm9v
bCBHcmFwaGljc0NvbnRleHQzRDo6bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkKIHsK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAKaW5kZXggMzYwNjQwZjgwODNmMGUxMDk4NWVmZWU0MzY1ODBhODRkMjY3ZjQyZS4uNDg4OTU3
ZTJlNTdjODA2NjcwMTgzMWIzMDdjZDk3OGMxZGQzOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wK
ICAgICBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiA9IHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYU9w
dGlvbjo6UHJlbXVsdGlwbGllZCA6IEFscGhhT3B0aW9uOjpOb3RQcmVtdWx0aXBsaWVkOwogICAg
IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0g
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbjo6
SWdub3JlZCA6IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkOwogICAgIGF1dG8g
c291cmNlID0gSW1hZ2VTb3VyY2U6OmNyZWF0ZShudWxscHRyLCBhbHBoYU9wdGlvbiwgZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pOwotICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5nOwor
ICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90aGluZzsKIAogICAgIGlmIChtX2ltYWdlLT5k
YXRhKCkpIHsKICAgICAgICAgc291cmNlLT5zZXREYXRhKG1faW1hZ2UtPmRhdGEoKSwgdHJ1ZSk7
CkBAIC02Miw4ICs2Miw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9y
OjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIC8vIHdo
aWNoIGlzIHRydWUgYXQgcHJlc2VudCBhbmQgbWF5IGJlIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZSBh
bmQgbmVlZHMgYWRqdXN0bWVudCBhY2NvcmRpbmdseS4KICAgICAgICAgLy8gMi4gRm9yIHRleElt
YWdlMkQgd2l0aCBIVE1MQ2FudmFzRWxlbWVudCBpbnB1dCBpbiB3aGljaCBBbHBoYSBpcyBhbHJl
YWR5IFByZW11bHRpcGxpZWQgaW4gdGhpcyBwb3J0LCAKICAgICAgICAgLy8gZG8gQWxwaGFEb1Vu
bXVsdGlwbHkgaWYgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIGlzIHNldCB0byBmYWxz
ZS4KLSAgICAgICAgaWYgKCFwcmVtdWx0aXBseUFscGhhICYmIG1faW1hZ2VIdG1sRG9tU291cmNl
ICE9IEh0bWxEb21WaWRlbykKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRp
cGx5OworICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEgJiYgbV9pbWFnZUh0bWxEb21Tb3Vy
Y2UgIT0gRE9NU291cmNlOjpWaWRlbykKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6
OkRvVW5tdWx0aXBseTsKIAogICAgICAgICAvLyBpZiBtX2ltYWdlU3VyZmFjZSBpcyBub3QgYW4g
aW1hZ2UsIGV4dHJhY3QgYSBjb3B5IG9mIHRoZSBzdXJmYWNlCiAgICAgICAgIGlmIChtX2ltYWdl
U3VyZmFjZSAmJiBjYWlyb19zdXJmYWNlX2dldF90eXBlKG1faW1hZ2VTdXJmYWNlLmdldCgpKSAh
PSBDQUlST19TVVJGQUNFX1RZUEVfSU1BR0UpIHsKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRp
cGx5QWxwaGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlUGl4ZWxEYXRhID0gY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfZGF0YShtX2ltYWdlU3VyZmFjZS5nZXQoKSk7Ci0gICAgbV9pbWFnZVNv
dXJjZUZvcm1hdCA9IERhdGFGb3JtYXRCR1JBODsKKyAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0g
RGF0YUZvcm1hdDo6QkdSQTg7CiAgICAgbV9pbWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IHNy
Y1VucGFja0FsaWdubWVudDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKaW5kZXggNDE4YmYzNWI5Mjk3MzFiYjNmOTM5MjczYmQ5MWFkODY4ZmY0YTYxNy4uYmM5Mzhi
NDQyYjgxMThhYWJhM2Y0MzMxMDZiMTc3ZDBmODI3NWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKQEAgLTc3LDIxICs3NywyMSBAQCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZ2V0U291cmNlRGF0YUZvcm1hdCh1bnNpZ25lZCBjb21wb25lbnRzUGVyUAogICAgICAgICB7
IFNvdXJjZUZvcm1hdEJhc2VSR0IsICAgICAgICBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywg
U291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMgfSwgLy8gMyBjb21wb25lbnRzUGVyUGl4ZWwKICAg
ICAgICAgeyBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywgU291cmNlRm9ybWF0QmFzZUFSR0Is
ICAgICAgIFNvdXJjZUZvcm1hdEJhc2VSR0JBICAgICAgICB9IC8vIDQgY29tcG9uZW50c1BlclBp
eGVsCiAgICAgfTsKLSAgICBjb25zdCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZm9ybWF0VGFibGVbU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3Vy
Y2VEYXRhRm9ybWF0QmFzZSB4IGJpdHNQZXJDb21wb25lbnQgeCBlbmRpYW4KKyAgICBjb25zdCBz
dGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0VGFibGVbU291cmNlRm9y
bWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3VyY2VEYXRhRm9ybWF0OjpCYXNlIHggYml0
c1BlckNvbXBvbmVudCB4IGVuZGlhbgogICAgICAgICAvLyA4Yml0cywgbGl0dGxlIGVuZGlhbiAg
ICAgICAgICAgICAgICAgOGJpdHMsIGJpZyBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAxNmJp
dHMsIGxpdHRsZSBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAgICAxNmJpdHMsIGJpZyBlbmRp
YW4KLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcgfSwKLSAg
ICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxp
dHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUs
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2QmlnIH0sCi0gICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2TGl0dGxlLCAgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QkdSOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUsICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
OCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRCR1JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnIH0KKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZyB9LAorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlLCAgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4
LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCAgIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSwgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZyB9LAorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxl
LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnIH0sCisgICAgICAgIHsg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QVJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZM
aXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcgfQogICAgIH07
CiAKICAgICBBU1NFUlQoY29tcG9uZW50c1BlclBpeGVsIDw9IDQgJiYgY29tcG9uZW50c1BlclBp
eGVsID4gMCk7CiAgICAgU291cmNlRGF0YUZvcm1hdEJhc2UgZm9ybWF0QmFzZSA9IGZvcm1hdFRh
YmxlQmFzZVtjb21wb25lbnRzUGVyUGl4ZWwgLSAxXVthbHBoYUZvcm1hdF07CiAgICAgaWYgKGZv
cm1hdEJhc2UgPT0gU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMpCi0gICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdE51bUZvcm1hdHM7CisgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6TnVtRm9ybWF0czsKICAgICByZXR1cm4gZm9y
bWF0VGFibGVbZm9ybWF0QmFzZV1bKGlzMTZCaXRGb3JtYXQgPyAyIDogMCkgKyAoYmlnRW5kaWFu
ID8gMSA6IDApXTsKIH0KIApAQCAtMTA2LDEzICsxMDYsMTMgQEAgdWludDhfdCBjb252ZXJ0Q29s
b3IxNkJpZ1RvOCh1aW50MTZfdCB2YWx1ZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4odmFsdWUgJiAweDAwRkYpOwogfQogCi10ZW1wbGF0ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBT
b3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBl
PgogQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTgoY29uc3QgU291
cmNlVHlwZSosIERzdFR5cGUqLCB1bnNpZ25lZCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSwgdWludDE2
X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUo
QVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkExNkxpdHRs
ZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTEyNyw3ICsx
MjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRU
b1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcsIHVpbnQxNl90LCB1aW50
OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQ
ZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2Qmln
VG84KHNvdXJjZVswXSk7CkBAIC0xMzksNyArMTM5LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxpdHRsZSwg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYg
SEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCMTZM
aXR0bGVUb1JHQkE4KHNvdXJjZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0xNTQs
NyArMTU0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZywgdWludDE2X3QsIHVp
bnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZC
aWdUbzgoc291cmNlWzBdKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2
Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUkdCMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZkFS
R0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTE4MSw3ICsxODEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcsIHVpbnQx
Nl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRD
b2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CkBAIC0xOTMsNyArMTkzLDcgQEAgdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZM
aXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAg
ICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOwpA
QCAtMjA1LDcgKzIwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1h
dFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTIxNyw3ICsyMTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKQEAg
LTIyOSw3ICsyMjksNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzFdKTsKQEAg
LTI1Myw3ICsyNTMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IDB4MDsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IDB4MDsKQEAgLTI5NiwyMCArMjk2LDIwIEBAIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBzcmNGb3JtYXQsIGNvbnN0
IHVpCiAgICAgICAgIHJldHVybiBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PFNyY0Zvcm1hdD4o
c291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKIAogICAgIHN3aXRjaCAoc3JjRm9y
bWF0KSB7Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcpCi0gICAgICAgIENPTlZFUlQx
NkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZMaXR0bGUp
Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRBMTZCaWcpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRG
T1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZykKLSAgICAg
ICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEFSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0IxNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZykKLSAgICAgICAg
Q09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
R0IxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
QTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpBUjE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9S
TUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZC
SVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZMaXR0
bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkFSR0IxNkJpZykKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CkBAIC00MTcsMTggKzQxNywxOCBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgYm9vbAogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9hbHBoYU9wID0gQWxwaGFEb05vdGhp
bmc7CisgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Ob3RoaW5nOwogICAgIEFscGhhRm9ybWF0
IGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXROb25lOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFs
cGhhSW5mbyhtX2NnSW1hZ2UuZ2V0KCkpKSB7CiAgICAgY2FzZSBrQ0dJbWFnZUFscGhhUHJlbXVs
dGlwbGllZEZpcnN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAg
ICBtX2FscGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9
IEFscGhhT3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1h
dEZpcnN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFGaXJzdDoKICAg
ICAgICAgLy8gVGhpcyBwYXRoIGlzIG9ubHkgYWNjZXNzaWJsZSBmb3IgTWFjT1MgZWFybGllciB0
aGFuIDEwLjYuNC4KICAgICAgICAgaWYgKHByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBt
X2FscGhhT3AgPSBBbHBoYURvUHJlbXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1hdCA9IEFscGhhRm9ybWF0
Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwRmly
c3Q6CkBAIC00MzcsMTIgKzQzNywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4
dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgICAg
ICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdDoKICAgICAg
ICAgaWYgKCFwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFE
b1VubXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb1VubXVsdGlw
bHk7CiAgICAgICAgIGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFMYXN0OgogICAgICAgICBpZiAocHJlbXVsdGlwbHlB
bHBoYSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAg
ICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhh
Rm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFOb25lU2tpcExhc3Q6CkBAIC00NTYsNyArNDU2LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0gZ2V0U291cmNlRGF0
YUZvcm1hdChjb21wb25lbnRzUGVyUGl4ZWwsIGFscGhhRm9ybWF0LCBiaXRzUGVyQ29tcG9uZW50
ID09IDE2LCBiaWdFbmRpYW5Tb3VyY2UpOwotICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09
IERhdGFGb3JtYXROdW1Gb3JtYXRzKQorICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09IERh
dGFGb3JtYXQ6Ok51bUZvcm1hdHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGl4
ZWxEYXRhID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNvcHlEYXRhKENHSW1hZ2VHZXREYXRhUHJv
dmlkZXIobV9jZ0ltYWdlLmdldCgpKSkpOwpAQCAtNDkwLDcgKzQ5MCw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sCiAgICAgICAgICAgICBkZXN0aW5hdGlvbiArPSBkc3RTdHJpZGVJbkVsZW1l
bnRzOwogICAgICAgICB9CiAgICAgICAgIG1faW1hZ2VQaXhlbERhdGEgPSByZWludGVycHJldF9j
YXN0PGNvbnN0IHZvaWQqPihtX2Zvcm1hbGl6ZWRSR0JBOERhdGEuZ2V0KCkpOwotICAgICAgICBt
X2ltYWdlU291cmNlRm9ybWF0ID0gRGF0YUZvcm1hdFJHQkE4OworICAgICAgICBtX2ltYWdlU291
cmNlRm9ybWF0ID0gRGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgIG1faW1hZ2VTb3VyY2VVbnBh
Y2tBbGlnbm1lbnQgPSAxOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHQzRENvY29hLm1tCmluZGV4IGRhNmIzYjZkMjZkOWUxNDBkOTA3MmQxZGI1YmU2NDQ1MDMx
NWFjMWEuLmM2NDk2NzRhZDJmODgwN2M1YmViNThjNzY3OTRhNWNiMjhmODhiNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpAQCAtMTAyLDEwICsxMDIsMTAgQEAgcHVibGljOgog
ICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLVJlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMs
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVu
dGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlm
IChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVz
dGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250
ZXh0IGlmIHdlJ3JlIGZ1bGwuCkBAIC0xMTMsNyArMTEzLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcwogICAgIGlmIChHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5o
YXNUb29NYW55Q29udGV4dHMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250
ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlKSk7CisgICAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKGF0
dHJzLCBob3N0V2luZG93LCBkZXN0aW5hdGlvbikpOwogCiAgICAgaWYgKCFjb250ZXh0LT5tX2Nv
bnRleHRPYmopCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTI2LDcgKzEyNiw3IEBAIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMKIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZChHcmFwaGljc0NvbnRleHQzRCYgc2hhcmVkQ29udGV4dCkKIHsK
ICAgICBhdXRvIGhvc3RXaW5kb3cgPSBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKS5ob3N0V2luZG93Rm9yQ29udGV4dCgmc2hhcmVkQ29udGV4dCk7Ci0gICAgYXV0byBj
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHQzRChzaGFyZWRDb250ZXh0Lmdl
dENvbnRleHRBdHRyaWJ1dGVzKCksIGhvc3RXaW5kb3csIHNoYXJlZENvbnRleHQubV9yZW5kZXJT
dHlsZSwgJnNoYXJlZENvbnRleHQpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3
IEdyYXBoaWNzQ29udGV4dDNEKHNoYXJlZENvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMoKSwgaG9z
dFdpbmRvdywgc2hhcmVkQ29udGV4dC5kZXN0aW5hdGlvbigpLCAmc2hhcmVkQ29udGV4dCkpOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4
dChjb250ZXh0LnB0cigpLCBob3N0V2luZG93KTsKIApAQCAtMTgzLDggKzE4Myw4IEBAIHN0YXRp
YyB2b2lkIHNldEdQVUJ5UmVnaXN0cnlJRChDR0xDb250ZXh0T2JqIGNvbnRleHRPYmosIENHTFBp
eGVsRm9ybWF0T2JqIHBpeGVsCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIChVU0UoT1BF
TkdMKSB8fCBVU0UoQU5HTEUpKQogCi1HcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2lu
ZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRDb250ZXh0KQotICAgIDogbV9hdHRycyhhdHRycykKK0dyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0Nv
bnRleHQzREJhc2UoYXR0cnMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9w
cml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzKSkKIHsKIApA
QCAtMjAwLDMwICsyMDAsMzQgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNE
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICAgICAgICAgcmV0
dXJuOwogCiAjaWYgVVNFKE9QRU5HTF9FUykKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAg
ICBpZiAoYXR0cnMuaXNXZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJy
aWRnZShTSF9FU1NMX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogICAgIGVsc2UKICAgICAgICAg
bV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVUKTsKICNlbHNlCi0g
ICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAg
ICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfR0xTTF80MTBfQ09SRV9PVVRQVVQs
IFNIX1dFQkdMMl9TUEVDKTsKICNlbmRpZiAvLyBVU0UoT1BFTkdMX0VTKQogI2VuZGlmIC8vICFV
U0UoQU5HTEUpCiAKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTShob3N0V2lu
ZG93KTsKLSAgICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMuaXNXZWJHTDIgPyBrRUFH
TFJlbmRlcmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOworICAg
IEVBR0xSZW5kZXJpbmdBUEkgYXBpID0gYXR0cnMuaXNXZWJHTDIgPyBrRUFHTFJlbmRlcmluZ0FQ
SU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOworICAgIEVBR0xDb250ZXh0
ICpjb250ZXh0T2JqOwogICAgIGlmICghc2hhcmVkQ29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0
T2JqID0gW1tFQUdMQ29udGV4dCBhbGxvY10gaW5pdFdpdGhBUEk6YXBpXTsKKyAgICAgICAgY29u
dGV4dE9iaiA9IFtbRUFHTENvbnRleHQgYWxsb2NdIGluaXRXaXRoQVBJOmFwaV07CiAgICAgZWxz
ZQotICAgICAgICBtX2NvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQ
STphcGkgc2hhcmVncm91cDpzaGFyZWRDb250ZXh0LT5tX2NvbnRleHRPYmouc2hhcmVncm91cF07
CisgICAgICAgIGNvbnRleHRPYmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTph
cGkgc2hhcmVncm91cDpzdGF0aWNfY2FzdDxFQUdMQ29udGV4dCAqPihzaGFyZWRDb250ZXh0LT5t
X2NvbnRleHRPYmopLnNoYXJlZ3JvdXBdOworCisgICAgbV9jb250ZXh0T2JqID0gc3RhdGljX2Nh
c3Q8dm9pZCAqPihjb250ZXh0T2JqKTsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0g
ICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAg
ICA6OmdsRW5hYmxlKEdyYXBoaWNzQ29udGV4dDNEOjpQUklNSVRJVkVfUkVTVEFSVF9GSVhFRF9J
TkRFWCk7CiAjZWxpZiBVU0UoT1BFTkdMKQogCi0gICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0g
bV9hdHRycy5hbnRpYWxpYXM7CisgICAgYm9vbCB1c2VNdWx0aXNhbXBsaW5nID0gYXR0cnMuYW50
aWFsaWFzOwogCiAgICAgVmVjdG9yPENHTFBpeGVsRm9ybWF0QXR0cmlidXRlPiBhdHRyaWJzOwog
ICAgIENHTFBpeGVsRm9ybWF0T2JqIHBpeGVsRm9ybWF0T2JqID0gMDsKQEAgLTI1MCw3ICsyNTQs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgICAgICBhdHRyaWJzLmFwcGVuZChzdGF0
aWNfY2FzdDxDR0xQaXhlbEZvcm1hdEF0dHJpYnV0ZT4oNCkpOwogICAgIH0KIAotICAgIGlmICht
X2F0dHJzLmlzV2ViR0wyKSB7CisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKSB7CiAgICAgICAgIC8v
IEZJWE1FOiBJbnN0ZWFkIG9mIGJhY2tpbmcgYSBXZWJHTDIgR3JhcGhpY3NDb250ZXh0M0Qgd2l0
aCBhIE9wZW5HTCA0IGNvbnRleHQsIHdlIHNob3VsZCBpbnN0ZWFkIGJhY2sgaXQgd2l0aCBBTkdM
RS4KICAgICAgICAgLy8gVXNlIGFuIE9wZW5HTCA0IGNvbnRleHQgZm9yIG5vdyB1bnRpbCB0aGUg
QU5HTEUgYmFja2VuZCBpcyByZWFkeS4KICAgICAgICAgYXR0cmlicy5hcHBlbmQoa0NHTFBGQU9w
ZW5HTFByb2ZpbGUpOwpAQCAtMjY0LDMwICsyNjgsMzcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6Okdy
YXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdp
bmQKICAgICBpZiAoIW51bVBpeGVsRm9ybWF0cykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ0dM
RXJyb3IgZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ29udGV4
dCA/IHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9iaiA6IG51bGxwdHIsICZtX2NvbnRleHRPYmop
OworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IG51bGxwdHI7CisgICAgQ0dMQ29udGV4
dE9iaiBzaGFyZWRDR0xDb250ZXh0ID0gc2hhcmVkQ29udGV4dCA/IHN0YXRpY19jYXN0PENHTENv
bnRleHRPYmo+KHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9iaikgOiBudWxscHRyOworCisgICAg
Q0dMRXJyb3IgZXJyID0gQ0dMQ3JlYXRlQ29udGV4dChwaXhlbEZvcm1hdE9iaiwgc2hhcmVkQ0dM
Q29udGV4dCwgJmNnbENvbnRleHQpOwogICAgIEdMaW50IGFib3J0T25CbGFja2xpc3QgPSAwOwot
ICAgIENHTFNldFBhcmFtZXRlcihtX2NvbnRleHRPYmosIGtDR0xDUEFib3J0T25HUFVSZXN0YXJ0
U3RhdHVzQmxhY2tsaXN0ZWQsICZhYm9ydE9uQmxhY2tsaXN0KTsKLSAgICAKKyAgICBDR0xTZXRQ
YXJhbWV0ZXIoY2dsQ29udGV4dCwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xp
c3RlZCwgJmFib3J0T25CbGFja2xpc3QpOworCiAjaWYgUExBVEZPUk0oTUFDKSAvLyBGSVhNRTog
VGhpcyBwcm9iYWJseSBzaG91bGQgYmUgVVNFKE9QRU5HTCkgLSBzZWUgPHJkYXI6Ly81MzA2Mjc5
ND4uCiAKICAgICBhdXRvIGdwdUlEID0gKGhvc3RXaW5kb3cgJiYgaG9zdFdpbmRvdy0+ZGlzcGxh
eUlEKCkpID8gZ3B1SURGb3JEaXNwbGF5KGhvc3RXaW5kb3ctPmRpc3BsYXlJRCgpKSA6IHByaW1h
cnlHUFVJRCgpOwotICAgIHNldEdQVUJ5UmVnaXN0cnlJRChtX2NvbnRleHRPYmosIHBpeGVsRm9y
bWF0T2JqLCBncHVJRCk7CisgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENvbnRleHQsIHBpeGVs
Rm9ybWF0T2JqLCBncHVJRCk7CiAKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhvc3RXaW5kb3cp
OwogI2VuZGlmCiAKICAgICBDR0xEZXN0cm95UGl4ZWxGb3JtYXQocGl4ZWxGb3JtYXRPYmopOwot
ICAgIAorCisgICAgbV9jb250ZXh0T2JqID0gY2dsQ29udGV4dDsKKwogICAgIGlmIChlcnIgIT0g
a0NHTE5vRXJyb3IgfHwgIW1fY29udGV4dE9iaikgewogICAgICAgICAvLyBXZSB3ZXJlIHVuYWJs
ZSB0byBjcmVhdGUgdGhlIGNvbnRleHQuCiAgICAgICAgIG1fY29udGV4dE9iaiA9IDA7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX2lzRm9yV2ViR0wyID0gbV9hdHRycy5pc1dlYkdM
MjsKKyAgICBtX2NvbnRleHRPYmogPSBjZ2xDb250ZXh0OworCisgICAgbV9pc0ZvcldlYkdMMiA9
IGF0dHJzLmlzV2ViR0wyOwogCi0gICAgQ0dMU2V0Q3VycmVudENvbnRleHQobV9jb250ZXh0T2Jq
KTsKKyAgICBDR0xTZXRDdXJyZW50Q29udGV4dChjZ2xDb250ZXh0KTsKIAogICAgIC8vIFdlYkdM
IDIgZXhwZWN0cyBFUyAzLW9ubHkgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5ERVggdG8gYmUg
ZW5hYmxlZDsgd2UgbXVzdCBlbXVsYXRlIHRoaXMgb24gbm9uLUVTIDMgc3lzdGVtcy4KICAgICBp
ZiAobV9pc0ZvcldlYkdMMikKQEAgLTMzNCw3ICszNDUsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6
R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0
V2luZAogICAgIH0KIAogICAgIHN0ZDo6dmVjdG9yPEVHTGludD4gY29udGV4dEF0dHJpYnV0ZXM7
Ci0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAgICBpZiAoYXR0cnMuaXNXZWJHTDIpIHsK
ICAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKEVHTF9DT05URVhUX0NMSUVOVF9W
RVJTSU9OKTsKICAgICAgICAgY29udGV4dEF0dHJpYnV0ZXMucHVzaF9iYWNrKDMpOwogICAgIH0g
ZWxzZSB7CkBAIC0zOTYsNiArNDA3LDcgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29u
dGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICNlbmRp
ZiAvLyAjZWxpZiBVU0UoQU5HTEUpCiAKICAgICB2YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBh
dHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hhbmdlZCBkdXJp
bmcgdmFsaWRhdGlvbi4KIAogICAgIC8vIENyZWF0ZSB0aGUgV2ViR0xMYXllcgogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUwpAQCAtNDUxLDE2ICs0NjMsMTYgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRy
cywgSG9zdFdpbmQKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VY
VCwgbV9mYm8pOwogCiAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJvOwotICAgIGlmICghbV9h
dHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkKKyAg
ICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkp
CiAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAKICAgICAvLyBJZiBuZWNlc3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZv
ciB0aGUgbXVsdGlzYW1wbGUgcmVzdWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnNF
WFQoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhU
KEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIG1fc3RhdGUu
Ym91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVy
c0VYVCgxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBh
dHRycy5kZXB0aCkKICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211
bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAjZWxpZiBVU0UoQU5HTEUpCkBA
IC00NjgsMTYgKzQ4MCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0Qo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIGdsOjpCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICBtX3N0YXRlLmJvdW5kRkJP
ID0gbV9mYm87CiAKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5j
aWwgfHwgbV9hdHRycy5kZXB0aCkpCisgICAgaWYgKCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJz
LnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpKQogICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygx
LCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogCiAgICAgLy8gSWYgbmVjZXNzYXJ5LCBjcmVhdGUg
YW5vdGhlciBmcmFtZWJ1ZmZlciBmb3IgdGhlIG11bHRpc2FtcGxlIHJlc3VsdHMuCi0gICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAg
ICBnbDo6R2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICBnbDo6R2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cnMuc3Rl
bmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEs
ICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICB9CiAKQEAgLTUyNywxMiAr
NTM5LDE1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgIEdy
YXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhp
cyk7CiAKICAgICBpZiAobV9jb250ZXh0T2JqKSB7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
QXR0cmlidXRlcyBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICNpZiBVU0UoT1BFTkdM
X0VTKQogICAgICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICAgICAgW21fY29udGV4dE9i
aiByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6bmlsXTsK
KyAgICAgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVuZGVy
YnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOm5pbF07CiAgICAgICAg
IDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX3RleHR1cmUpOwogI2VsaWYgVVNFKE9QRU5H
TCkKLSAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQobV9jb250ZXh0T2JqKTsKKyAgICAgICAg
Q0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9j
b250ZXh0T2JqKTsKKyAgICAgICAgQ0dMU2V0Q3VycmVudENvbnRleHQoY2dsQ29udGV4dCk7CiAg
ICAgICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKICNlbGlmIFVTRShBTkdM
RSkKICAgICAgICAgRUdMX01ha2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19TVVJGQUNFLCBtX2NvbnRleHRPYmopOwpAQCAtNTQwLDI0ICs1NTUsMjQgQEAgR3Jh
cGhpY3NDb250ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAjZW5kaWYKIAogI2lmIFVTRShP
UEVOR0wpIHx8IFVTRShPUEVOR0xfRVMpCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykg
eworICAgICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsRGVsZXRl
UmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlm
IChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAgIDo6Z2xEZWxl
dGVSZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsK
ICAgICAgICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVG
Qk8pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8
fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMu
ZGVwdGgpCiAgICAgICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1f
ZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICA6OmdsRGVsZXRlRnJhbWVi
dWZmZXJzRVhUKDEsICZtX2Zibyk7CiAjZWxpZiBVU0UoQU5HTEUpCi0gICAgICAgIGlmIChtX2F0
dHJzLmFudGlhbGlhcykgeworICAgICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAg
ICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVy
KTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAg
ICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAgICAg
ICAgIGdsOjpEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVGQk8pOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwg
YXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwg
Jm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICBnbDo6RGVsZXRlRnJh
bWVidWZmZXJzKDEsICZtX2Zibyk7CkBAIC01NjUsMTAgKzU4MCwxMCBAQCBHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKIAogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAg
IFtFQUdMQ29udGV4dCBzZXRDdXJyZW50Q29udGV4dDowXTsKLSAgICAgICAgW3N0YXRpY19jYXN0
PEVBR0xDb250ZXh0Kj4obV9jb250ZXh0T2JqKSByZWxlYXNlXTsKKyAgICAgICAgW3N0YXRpY19j
YXN0PEVBR0xDb250ZXh0ICo+KG1fY29udGV4dE9iaikgcmVsZWFzZV07CiAjZWxpZiBVU0UoT1BF
TkdMKQogICAgICAgICBDR0xTZXRDdXJyZW50Q29udGV4dCgwKTsKLSAgICAgICAgQ0dMRGVzdHJv
eUNvbnRleHQobV9jb250ZXh0T2JqKTsKKyAgICAgICAgQ0dMRGVzdHJveUNvbnRleHQoY2dsQ29u
dGV4dCk7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgICAgIEVHTF9NYWtlQ3VycmVudChtX2Rpc3Bs
YXlPYmosIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOwog
ICAgICAgICBFR0xfRGVzdHJveUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbnRleHRPYmopOwpA
QCAtNTg3LDkgKzYwMiw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldFJlbmRlcmJ1ZmZl
clN0b3JhZ2VGcm9tRHJhd2FibGUoR0MzRHNpemVpIHdpZHRoLCBHQzNECiAgICAgQ0dSZWN0IHBy
ZXZpb3VzQm91bmRzID0gW21fd2ViR0xMYXllci5nZXQoKSBib3VuZHNdOwogCiAgICAgW21fd2Vi
R0xMYXllciBzZXRCb3VuZHM6Q0dSZWN0TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KV07Ci0gICAg
W21fd2ViR0xMYXllciBzZXRPcGFxdWU6IW1fYXR0cnMuYWxwaGFdOworICAgIFttX3dlYkdMTGF5
ZXIgc2V0T3BhcXVlOiFjb250ZXh0QXR0cmlidXRlcygpLmFscGhhXTsKIAotICAgIFttX2NvbnRl
eHRPYmogcmVuZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJvbURyYXdhYmxlOnN0
YXRpY19jYXN0PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQoKSldOworICAgIFtz
dGF0aWNfY2FzdDxFQUdMQ29udGV4dCAqPihtX2NvbnRleHRPYmopIHJlbmRlcmJ1ZmZlclN0b3Jh
Z2U6R0xfUkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpzdGF0aWNfY2FzdDxpZDxFQUdMRHJhd2Fi
bGU+PihtX3dlYkdMTGF5ZXIuZ2V0KCkpXTsKIAogICAgIFttX3dlYkdMTGF5ZXIgc2V0Qm91bmRz
OnByZXZpb3VzQm91bmRzXTsKIH0KQEAgLTYwNiw3ICs2MjEsNyBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQoKQogI2VsaWYgVVNFKE9QRU5HTCkKICAgICBDR0xD
b250ZXh0T2JqIGN1cnJlbnRDb250ZXh0ID0gQ0dMR2V0Q3VycmVudENvbnRleHQoKTsKICAgICBp
ZiAoY3VycmVudENvbnRleHQgIT0gbV9jb250ZXh0T2JqKQotICAgICAgICByZXR1cm4gQ0dMU2V0
Q3VycmVudENvbnRleHQobV9jb250ZXh0T2JqKSA9PSBrQ0dMTm9FcnJvcjsKKyAgICAgICAgcmV0
dXJuIENHTFNldEN1cnJlbnRDb250ZXh0KHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29u
dGV4dE9iaikpID09IGtDR0xOb0Vycm9yOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIGlmIChFR0xf
R2V0Q3VycmVudENvbnRleHQoKSAhPSBtX2NvbnRleHRPYmopCiAgICAgICAgIHJldHVybiBFR0xf
TWFrZUN1cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0Us
IG1fY29udGV4dE9iaik7CkBAIC02MzgsNyArNjUzLDggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6Y2hlY2tHUFVTdGF0dXMoKQogCiAgICAgR0xpbnQgcmVzdGFydFN0YXR1cyA9IDA7CiAjaWYg
VVNFKE9QRU5HTCkKLSAgICBDR0xHZXRQYXJhbWV0ZXIocGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCgpLCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAmcmVzdGFydFN0YXR1cyk7CisgICAgQ0dMQ29u
dGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4ocGxhdGZvcm1H
cmFwaGljc0NvbnRleHQzRCgpKTsKKyAgICBDR0xHZXRQYXJhbWV0ZXIoY2dsQ29udGV4dCwga0NH
TENQR1BVUmVzdGFydFN0YXR1cywgJnJlc3RhcnRTdGF0dXMpOwogICAgIGlmIChyZXN0YXJ0U3Rh
dHVzID09IGtDR0xDUEdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCkgewogICAgICAgICBMT0co
V2ViR0wsICJUaGUgR1BVIGhhcyBibGFja2xpc3RlZCB1cyAoJXApLiBUZXJtaW5hdGluZy4iLCB0
aGlzKTsKICAgICAgICAgZXhpdChFWF9PU0VSUik7CkBAIC02NjYsNyArNjgyLDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6Y2hlY2tHUFVTdGF0dXMoKQogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cHJlc2VudFJlbmRlcmJ1ZmZlcigpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0g
ICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKQorICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygpLmFu
dGlhbGlhcykKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogCiAg
ICAgOjpnbEZsdXNoKCk7CkBAIC02NzksOSArNjk1LDEwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnByZXNlbnRSZW5kZXJidWZmZXIoKQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1h
Z2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVu
dW0gdHlwZSwgSU9TdXJmYWNlUmVmIHN1cmZhY2UsIEdDM0R1aW50IHBsYW5lKQogewogI2lmIFVT
RShPUEVOR0wpCi0gICAgcmV0dXJuIGtDR0xOb0Vycm9yID09IENHTFRleEltYWdlSU9TdXJmYWNl
MkQocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCB0YXJnZXQsIGludGVybmFsRm9ybWF0LCB3
aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIHN1cmZhY2UsIHBsYW5lKTsKKyAgICBDR0xDb250
ZXh0T2JqIGNnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihwbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEKCkpOworICAgIHJldHVybiBrQ0dMTm9FcnJvciA9PSBDR0xUZXhJbWFn
ZUlPU3VyZmFjZTJEKGNnbENvbnRleHQsIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBo
ZWlnaHQsIGZvcm1hdCwgdHlwZSwgc3VyZmFjZSwgcGxhbmUpOwogI2VsaWYgVVNFKE9QRU5HTF9F
UykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQotICAgIHJldHVybiBbcGxhdGZv
cm1HcmFwaGljc0NvbnRleHQzRCgpIHRleEltYWdlSU9TdXJmYWNlOnN1cmZhY2UgdGFyZ2V0OnRh
cmdldCBpbnRlcm5hbEZvcm1hdDppbnRlcm5hbEZvcm1hdCB3aWR0aDp3aWR0aCBoZWlnaHQ6aGVp
Z2h0IGZvcm1hdDpmb3JtYXQgdHlwZTp0eXBlIHBsYW5lOnBsYW5lXTsKKyAgICByZXR1cm4gW3N0
YXRpY19jYXN0PEVBR0xDb250ZXh0ICo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSkgdGV4
SW1hZ2VJT1N1cmZhY2U6c3VyZmFjZSB0YXJnZXQ6dGFyZ2V0IGludGVybmFsRm9ybWF0OmludGVy
bmFsRm9ybWF0IHdpZHRoOndpZHRoIGhlaWdodDpoZWlnaHQgZm9ybWF0OmZvcm1hdCB0eXBlOnR5
cGUgcGxhbmU6cGxhbmVdOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odGFyZ2V0KTsKICAgICBV
TlVTRURfUEFSQU0oaW50ZXJuYWxGb3JtYXQpOwpAQCAtNjk5LDcgKzcxNiw3IEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OnRleEltYWdlSU9TdXJmYWNlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
ZW51bSBpbnRlcm5hbEZvCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFj
ZUJhY2tpbmdTdG9yZShJbnRTaXplIHNpemUpCiB7CiAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3ND
b250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlIGF0ICVkIHggJWQuICglcCki
LCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCksIHRoaXMpOwotICAgIFttX3dlYkdMTGF5ZXIg
YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxwaGE6bV9h
dHRycy5hbHBoYV07CisgICAgW21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTpjb250ZXh0QXR0cmlidXRlcygpLmFscGhhXTsK
IH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlRnJhbWVidWZmZXJUZXh0dXJlQmFj
a2luZ1N0b3JlRnJvbUxheWVyKCkKQEAgLTcxNiw3ICs3MzMsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjp1cGRhdGVDR0xDb250ZXh0KCkKICAgICBMT0coV2ViR0wsICJEZXRlY3RlZCBhIG11
eCBzd2l0Y2ggb3IgZGlzcGxheSByZWNvbmZpZ3VyYXRpb24uIENhbGwgQ0dMVXBkYXRlQ29udGV4
dC4gKCVwKSIsIHRoaXMpOwogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgQ0dMVXBk
YXRlQ29udGV4dChtX2NvbnRleHRPYmopOworICAgIENHTFVwZGF0ZUNvbnRleHQoc3RhdGljX2Nh
c3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2JqKSk7CiAgICAgbV9oYXNTd2l0Y2hlZFRvSGln
aFBlcmZvcm1hbmNlR1BVID0gdHJ1ZTsKIH0KIApAQCAtNzU5LDcgKzc3Niw3IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUgc2l6
ZSkKIHsKICNpZiBIQVZFKElPU1VSRkFDRSkKICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRl
eHQzRDo6YWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmUgYXQgJWQgeCAlZC4gKCVwKSIsIHNp
emUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgdGhpcyk7Ci0gICAgW21fd2ViR0xMYXllciBhbGxv
Y2F0ZUlPU3VyZmFjZUJhY2tpbmdTdG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTptX2F0dHJz
LmFscGhhXTsKKyAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3Jl
V2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CiAjZW5kaWYKQEAgLTc3OSwxNCArNzk2LDYgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6aXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0CiAgICAgcmV0
dXJuIG1faXNGb3JXZWJHTDI7CiB9CiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRl
eHRMb3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewot
fQotCi12b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6
OnVuaXF1ZV9wdHI8RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQotewotfQotCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpzaW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKIHsKICAgICBHcmFwaGljc0NvbnRl
eHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS51cGRhdGVBbGxDb250ZXh0cygpOwpAQCAtODM0
LDggKzg0MywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY3JlZW5EaWRDaGFuZ2UoUGxh
dGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIH0KICNlbHNlCiAjaWYgVVNFKE9QRU5HTCkK
LSAgICBpZiAoIW1faGFzU3dpdGNoZWRUb0hpZ2hQZXJmb3JtYW5jZUdQVSkKLSAgICAgICAgc2V0
R1BVQnlSZWdpc3RyeUlEKG1fY29udGV4dE9iaiwgQ0dMR2V0UGl4ZWxGb3JtYXQobV9jb250ZXh0
T2JqKSwgZ3B1SURGb3JEaXNwbGF5KGRpc3BsYXlJRCkpOworICAgIGlmICghbV9oYXNTd2l0Y2hl
ZFRvSGlnaFBlcmZvcm1hbmNlR1BVKSB7CisgICAgICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4
dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KG1fY29udGV4dE9iaik7CisgICAgICAgIHNl
dEdQVUJ5UmVnaXN0cnlJRChjZ2xDb250ZXh0LCBDR0xHZXRQaXhlbEZvcm1hdChjZ2xDb250ZXh0
KSwgZ3B1SURGb3JEaXNwbGF5KGRpc3BsYXlJRCkpOworICAgIH0KICNlbmRpZgogI2VuZGlmIC8v
IFVTRShBTkdMRSkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYkdMTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJHTExheWVyLm1tCmluZGV4IGQ4ZTg1MDA5MGZjN2M5YmU1ZWNiY2NlOTdhMGQx
NzljZTM1NzJmYzQuLjU1NDk0ZWQwZWUyZGUxYTJiMDFkMGQwMzY3MDA4Y2ZkODM4NWUwNWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xM
YXllci5tbQpAQCAtNzAsMTMgKzcwLDE0IEBAIGNvbnN0IEdMZW51bSBpb1N1cmZhY2VUZXh0dXJl
VHlwZSA9IEdMX1RFWFRVUkVfMkQ7CiB7CiAgICAgX2NvbnRleHQgPSBjb250ZXh0OwogICAgIHNl
bGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgX2RldmljZVBpeGVsUmF0aW8gPSBjb250ZXh0LT5nZXRD
b250ZXh0QXR0cmlidXRlcygpLmRldmljZVBpeGVsUmF0aW87CisgICAgYXV0byBhdHRyaWJ1dGVz
ID0gY29udGV4dC0+Y29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBfZGV2aWNlUGl4ZWxSYXRpbyA9
IGF0dHJpYnV0ZXMuZGV2aWNlUGl4ZWxSYXRpbzsKICNpZiBVU0UoT1BFTkdMKSB8fCBVU0UoQU5H
TEUpCi0gICAgc2VsZi5jb250ZW50c09wYXF1ZSA9ICFjb250ZXh0LT5nZXRDb250ZXh0QXR0cmli
dXRlcygpLmFscGhhOworICAgIHNlbGYuY29udGVudHNPcGFxdWUgPSAhYXR0cmlidXRlcy5hbHBo
YTsKICAgICBzZWxmLnRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsKICAgICBzZWxm
LmNvbnRlbnRzU2NhbGUgPSBfZGV2aWNlUGl4ZWxSYXRpbzsKICNlbHNlCi0gICAgc2VsZi5vcGFx
dWUgPSAhY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYTsKKyAgICBzZWxmLm9w
YXF1ZSA9ICFhdHRyaWJ1dGVzLmFscGhhOwogI2VuZGlmCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBA
IC0xMTIsNyArMTEzLDggQEAgc3RhdGljIHZvaWQgZnJlZURhdGEodm9pZCAqLCBjb25zdCB2b2lk
ICpkYXRhLCBzaXplX3QgLyogc2l6ZSAqLykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICNp
ZiBVU0UoT1BFTkdMKQotICAgIENHTFNldEN1cnJlbnRDb250ZXh0KF9jb250ZXh0LT5wbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0
YXRpY19jYXN0PENHTENvbnRleHRPYmo+KF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEKCkpOworICAgIENHTFNldEN1cnJlbnRDb250ZXh0KGNnbENvbnRleHQpOwogCiAgICAgUmV0
YWluUHRyPENHQ29sb3JTcGFjZVJlZj4gaW1hZ2VDb2xvclNwYWNlID0gY29sb3JTcGFjZTsKICAg
ICBpZiAoIWltYWdlQ29sb3JTcGFjZSkKQEAgLTI1MSw3ICsyNTMsOCBAQCBzdGF0aWMgdm9pZCBm
cmVlRGF0YSh2b2lkICosIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXplICovKQogICAg
IEdDM0RlbnVtIGludGVybmFsRm9ybWF0ID0gX3VzaW5nQWxwaGEgPyBHTF9SR0JBIDogR0xfUkdC
OwogCiAgICAgLy8gTGluayB0aGUgSU9TdXJmYWNlIHRvIHRoZSB0ZXh0dXJlLgotICAgIENHTEVy
cm9yIGVycm9yID0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChfY29udGV4dC0+cGxhdGZvcm1HcmFw
aGljc0NvbnRleHQzRCgpLCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIGludGVybmFsRm9ybWF0
LCBfYnVmZmVyU2l6ZS53aWR0aCgpLCBfYnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xfQkdSQSwgR0xf
VU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBpb1N1cmZhY2UsIDApOworICAgIENHTENvbnRleHRP
YmogY2dsQ29udGV4dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KF9jb250ZXh0LT5wbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENHTEVycm9yIGVycm9yID0gQ0dMVGV4SW1h
Z2VJT1N1cmZhY2UyRChjZ2xDb250ZXh0LCBHTF9URVhUVVJFX1JFQ1RBTkdMRV9BUkIsIGludGVy
bmFsRm9ybWF0LCBfYnVmZmVyU2l6ZS53aWR0aCgpLCBfYnVmZmVyU2l6ZS5oZWlnaHQoKSwgR0xf
QkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84XzhfUkVWLCBpb1N1cmZhY2UsIDApOwogICAgIEFT
U0VSVF9VTlVTRUQoZXJyb3IsIGVycm9yID09IGtDR0xOb0Vycm9yKTsKICNlbGlmIFVTRShBTkdM
RSkKICAgICBHQzNEZW51bSB0ZXh0dXJlID0gX2NvbnRleHQtPnBsYXRmb3JtVGV4dHVyZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY3YvVGV4dHVyZUNh
Y2hlQ1YubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2Fj
aGVDVi5tbQppbmRleCAwMTlkMjM5NTE3ZDgyYmMyZWJmM2RiNjU2NmMzZmFkM2E1ODBmZGExLi5m
NTJmZTNkYThlOWJlZjY3ZGJjNDk2MDVmY2E3OWNlNDY5NDM0YzM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbQpAQCAt
MzgsOSArMzgsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPFRleHR1cmVDYWNoZUNWPiBUZXh0dXJlQ2Fj
aGVDVjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXgKIHsKICAgICBUZXh0dXJlQ2Fj
aGVUeXBlIGNhY2hlID0gbnVsbHB0cjsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgIENWUmV0dXJu
IGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSwgbnVsbHB0ciwg
JmNhY2hlKTsKKyAgICBDVkVBR0xDb250ZXh0IGVhZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q1ZF
QUdMQ29udGV4dD4oY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENW
UmV0dXJuIGVycm9yID0gQ1ZPcGVuR0xFU1RleHR1cmVDYWNoZUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBudWxscHRyLCBlYWdsQ29udGV4dCwgbnVsbHB0ciwgJmNhY2hlKTsKICNlbGlmIFVT
RShPUEVOR0wpCi0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTFRleHR1cmVDYWNoZUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBudWxscHRyLCBjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKSwgQ0dMR2V0UGl4ZWxGb3JtYXQoY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEKCkpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4
dCA9IHN0YXRpY19jYXN0PENHTENvbnRleHRPYmo+KGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCgpKTsKKyAgICBDVlJldHVybiBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNnbENvbnRleHQsIENHTEdldFBpeGVs
Rm9ybWF0KGNnbENvbnRleHQpLCBudWxscHRyLCAmY2FjaGUpOwogI2VsaWYgVVNFKEFOR0xFKQog
ICAgIC8vIEZJWE1FOiBmaWd1cmUgb3V0IGhvdyB0byBkbyB0aGlzIGludGVncmF0aW5nIHZpYSBB
TkdMRS4KICAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAv
Tmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcAppbmRleCA0N2NmNWQxMzUzZWIyZDNiZWZmZDhlYjgz
YzI2MWU3NThlZTQyZTk3Li5hYTNkZWEwYTkyODUyZWY5ZjM4Y2RlNjQ2YjYwODAxYWQyZmY3OGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3Rl
eG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAKQEAg
LTE3NCwxOSArMTc0LDE5IEBAIGJvb2wgR0MzREFOR0xFTGF5ZXI6OkFOR0xFQ29udGV4dDo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjpwbGF0Zm9ybUNvbnRleHQo
KQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0
OjpwbGF0Zm9ybUNvbnRleHQoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvbnRleHQ7CiB9CiAK
LUdDM0RBTkdMRUxheWVyOjpHQzNEQU5HTEVMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4
dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR0MzREFOR0xF
TGF5ZXI6OkdDM0RBTkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGlj
c0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAgICAgOiBHQzNETGF5ZXIoY29u
dGV4dCkKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAg
ICBtX2FuZ2xlQ29udGV4dCA9IEFOR0xFQ29udGV4dDo6Y3JlYXRlQ29udGV4dCgpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9z
dFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0
bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC0yMDMsNyArMjAzLDcgQEAgYm9vbCBHQzNEQU5HTEVMYXllcjo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKIAogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RB
TkdMRUxheWVyOjpwbGF0Zm9ybUNvbnRleHQoKQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBH
QzNEQU5HTEVMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9h
bmdsZUNvbnRleHQpOwogICAgIHJldHVybiBtX2FuZ2xlQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lh
L3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oCmluZGV4IGJj
MmY2ZWZjNzhhYzI1YTQwYzRmYTJiOWNmZDliOGIyZGVmYzE0ZWMuLmVjNDdlYWRmMmU5MTY1MGEy
ZWViZGY2NjdiODVkYmMzMDA3MzRhM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNEQU5HTEVMYXllci5oCkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKIAogICAgICAgICBib29s
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShHUkFQSElDU19DT05URVhUXzNEKQot
ICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpOworICAg
ICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0Owog
I2VuZGlmCiAKICAgICBwcml2YXRlOgpAQCAtNzMsMTEgKzczLDExIEBAIHB1YmxpYzoKICAgICAg
ICAgRUdMU3VyZmFjZSBtX3N1cmZhY2UgeyBudWxscHRyIH07CiAgICAgfTsKIAotICAgIEdDM0RB
TkdMRUxheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHQzNEQU5HTEVMYXllcihXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7
CiAgICAgdmlydHVhbCB+R0MzREFOR0xFTGF5ZXIoKTsKIAogICAgIGJvb2wgbWFrZUNvbnRleHRD
dXJyZW50KCkgb3ZlcnJpZGU7Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9y
bUNvbnRleHQoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRm
b3JtQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVl
X3B0cjxBTkdMRUNvbnRleHQ+IG1fYW5nbGVDb250ZXh0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcAppbmRleCBiZGE2NTg4YWY5MjA0YTBhYTBlZmY5OGVmMGMxMGMyMDVl
NDliMTIxLi4xNmExNDUzYzJiOWNjMWQxNjEyZWQzYTFlNGM2M2I2YTFkZWM1MDRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNv
c2lhR0MzRExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9u
aWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcApAQCAtNTMsMTUgKzUzLDE1IEBAIEdD
M0RMYXllcjo6R0MzRExheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0KQogewogfQogCi1H
QzNETGF5ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR0MzRExheWVyOjpHQzNETGF5ZXIo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbikKICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICwgbV9jb250ZW50
TGF5ZXIoTmljb3NpYTo6Q29udGVudExheWVyOjpjcmVhdGUoTmljb3NpYTo6Q29udGVudExheWVy
VGV4dHVyZU1hcHBlckltcGw6OmNyZWF0ZUZhY3RvcnkoKnRoaXMpKSkKIHsKLSAgICBzd2l0Y2gg
KHJlbmRlclN0eWxlKSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2Ny
ZWVuOgorICAgIHN3aXRjaCAoZGVzdGluYXRpb24pIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuOgogICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29u
dGV4dDo6Y3JlYXRlT2Zmc2NyZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5Rm9yQ29tcG9zaXRpbmcoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTc4LDcgKzc4LDcg
QEAgYm9vbCBHQzNETGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgcmV0dXJuIG1fZ2xD
b250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0NvbnRl
eHQzRCBHQzNETGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIEdDM0RMYXllcjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9n
bENvbnRleHQpOwogICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CkBA
IC05Miw3ICs5Miw3IEBAIHZvaWQgR0MzRExheWVyOjpzd2FwQnVmZmVyc0lmTmVlZGVkKCkKIAog
ICAgIG1fY29udGV4dC5wcmVwYXJlVGV4dHVyZSgpOwogICAgIEludFNpemUgdGV4dHVyZVNpemUo
bV9jb250ZXh0Lm1fY3VycmVudFdpZHRoLCBtX2NvbnRleHQubV9jdXJyZW50SGVpZ2h0KTsKLSAg
ICBUZXh0dXJlTWFwcGVyR0w6OkZsYWdzIGZsYWdzID0gbV9jb250ZXh0Lm1fYXR0cnMuYWxwaGEg
PyBUZXh0dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKKyAgICBUZXh0dXJlTWFwcGVyR0w6
OkZsYWdzIGZsYWdzID0gbV9jb250ZXh0LmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGEgPyBUZXh0
dXJlTWFwcGVyR0w6OlNob3VsZEJsZW5kIDogMDsKICNpZiBVU0UoQU5HTEUpCiAgICAgc3RkOjp1
bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUo
dGV4dHVyZVNpemUsIFVuYWNjZWxlcmF0ZWQpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9O
aWNvc2lhR0MzRExheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNv
c2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmgKaW5kZXggMzI2ZDZlNTUwNmU2ZTkyN2U0MGQ2
ZjU2MjQ4NTcxYmFjOWRlM2Q4OS4uZTg1NzIxNzdkYWZjYWFjYWIzZWEyMzA5ZDQ4NGJjMzkwNDI3
OGFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3Np
YS90ZXhtYXAvTmljb3NpYUdDM0RMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaApAQCAtNDQsMTMgKzQ0
LDEzIEBAIGNsYXNzIEdDM0RMYXllciA6IHB1YmxpYyBDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVy
SW1wbDo6Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBHQzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmKTsKLSAgICBH
QzNETGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QmLCBXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6UmVuZGVyU3R5bGUpOworICAgIEdDM0RMYXllcihXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbik7CiAKICAg
ICB2aXJ0dWFsIH5HQzNETGF5ZXIoKTsKIAogICAgIENvbnRlbnRMYXllciYgY29udGVudExheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGF5ZXI7IH0KICAgICB2aXJ0dWFsIGJvb2wgbWFr
ZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
IHBsYXRmb3JtQ29udGV4dCgpOworICAgIHZpcnR1YWwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQz
RCBwbGF0Zm9ybUNvbnRleHQoKSBjb25zdDsKIAogICAgIHZvaWQgc3dhcEJ1ZmZlcnNJZk5lZWRl
ZCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcAppbmRleCBiMmI0
YjAzZDVlYmM1YzJjMzllN2JlNDk0MGQ5NjVjOTAyOTU1YjdjLi4xNDk0MWY2NDFlMTUxZjM4YmM2
ZWE1NjljYjhkYWYyMThjMTZkOTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5jcHAK
QEAgLTE5MCwxMiArMTkwLDggQEAgaW50IEV4dGVuc2lvbnMzRE9wZW5HTEVTOjpnZXRHcmFwaGlj
c1Jlc2V0U3RhdHVzQVJCKCkKICAgICBpZiAobV9nbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNFWFQp
IHsKICAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICAgICAgaW50
IHJlYXNvbkZvclJlc2V0ID0gbV9nbEdldEdyYXBoaWNzUmVzZXRTdGF0dXNFWFQoKTsKLSAgICAg
ICAgaWYgKHJlYXNvbkZvclJlc2V0ICE9IEdMX05PX0VSUk9SKSB7Ci0gICAgICAgICAgICBBU1NF
UlQobV9jb250ZXh0TG9zdENhbGxiYWNrKTsKLSAgICAgICAgICAgIGlmIChtX2NvbnRleHRMb3N0
Q2FsbGJhY2spCi0gICAgICAgICAgICAgICAgbV9jb250ZXh0TG9zdENhbGxiYWNrLT5vbkNvbnRl
eHRMb3N0KCk7CisgICAgICAgIGlmIChyZWFzb25Gb3JSZXNldCAhPSBHTF9OT19FUlJPUikKICAg
ICAgICAgICAgIG1fY29udGV4dFJlc2V0U3RhdHVzID0gcmVhc29uRm9yUmVzZXQ7Ci0gICAgICAg
IH0KICAgICAgICAgcmV0dXJuIHJlYXNvbkZvclJlc2V0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5H
TEVTLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9u
czNET3BlbkdMRVMuaAppbmRleCBmNTYyMjJmMjA4OTNmMzFkNGY0ODE3NGMwODMyNTA2YzQwOGYz
NmI0Li40NzcyZmM2ZGUzN2I5ODE2OWZjYjNkNWRiZmNlZGRhMWY2MTY0NDY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3Bl
bkdMRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0
ZW5zaW9uczNET3BlbkdMRVMuaApAQCAtMTIyLDggKzEyMiw2IEBAIHByb3RlY3RlZDoKICAgICBQ
Rk5HTFZFUlRFWEFUVFJJQkRJVklTT1JBTkdMRVBST0MgbV9nbFZlcnRleEF0dHJpYkRpdmlzb3JB
TkdMRTsKICAgICBQRk5HTERSQVdBUlJBWVNJTlNUQU5DRURBTkdMRVBST0MgbV9nbERyYXdBcnJh
eXNJbnN0YW5jZWRBTkdMRTsKICAgICBQRk5HTERSQVdFTEVNRU5UU0lOU1RBTkNFREFOR0xFUFJP
QyBtX2dsRHJhd0VsZW1lbnRzSW5zdGFuY2VkQU5HTEU7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
R3JhcGhpY3NDb250ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2s+IG1fY29udGV4dExvc3RDYWxs
YmFjazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250
ZXh0M0RPcGVuR0wuY3BwCmluZGV4IGI5NjM2M2I1NTE5MzU2YzhjZGY0NjU0MzYzMjZlZDA2Y2Vj
ZWQ4OGQuLjFhNWY5OTM4N2FhMWY2OTg3MjRjMjAwODA3ZjIyYjBhMjY2ZDcyNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcApAQCAtODIsOCArODIsMTAgQEAgc3RhdGlj
IHZvaWQgd2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1
bnNpZ25lZCBjaGFyKiBwaXgKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVsc0Fu
ZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeShpbnQgeCwgaW50IHksIGludCB3aWR0aCwgaW50IGhl
aWdodCwgdW5zaWduZWQgY2hhciogcGl4ZWxzKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0
QXR0cmlidXRlcygpOworCiAgICAgLy8gTlZJRElBIGRyaXZlcnMgaGF2ZSBhIGJ1ZyB3aGVyZSBj
YWxsaW5nIHJlYWRQaXhlbHMgaW4gQkdSQSBjYW4gcmV0dXJuIHRoZSB3cm9uZyB2YWx1ZXMgZm9y
IHRoZSBhbHBoYSBjaGFubmVsIHdoZW4gdGhlIGFscGhhIGlzIG9mZiBmb3IgdGhlIGNvbnRleHQu
Ci0gICAgaWYgKCFtX2F0dHJzLmFscGhhICYmIGdldEV4dGVuc2lvbnMoKS5pc05WSURJQSgpKSB7
CisgICAgaWYgKCFhdHRycy5hbHBoYSAmJiBnZXRFeHRlbnNpb25zKCkuaXNOVklESUEoKSkgewog
ICAgICAgICA6OmdsUmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBHTF9SR0JBLCBHTF9V
TlNJR05FRF9CWVRFLCBwaXhlbHMpOwogI2lmIFVTRShBQ0NFTEVSQVRFKQogICAgICAgICB2SW1h
Z2VfQnVmZmVyIHNyYzsKQEAgLTExMCw3ICsxMTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KGludCB4LCBpbnQgeSwgaW50
CiAgICAgICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkEsIEdM
X1VOU0lHTkVEX0lOVF84XzhfOF84X1JFViwgcGl4ZWxzKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBpZiAoIW1fYXR0cnMuYWxwaGEpCisgICAgaWYgKCFhdHRycy5hbHBoYSkKICAgICAgICAg
d2lwZUFscGhhQ2hhbm5lbEZyb21QaXhlbHMod2lkdGgsIGhlaWdodCwgcGl4ZWxzKTsKICNlbmRp
ZgogfQpAQCAtMTIyLDE3ICsxMjQsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRh
dGVBdHRyaWJ1dGVzKCkKIAogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMo
KTsKICAgICBjb25zdCBpbnQgd2lkdGggPSBzaXplLndpZHRoKCk7CiAgICAgY29uc3QgaW50IGhl
aWdodCA9IHNpemUuaGVpZ2h0KCk7CiAgICAgR0x1aW50IGNvbG9yRm9ybWF0LCBpbnRlcm5hbERl
cHRoU3RlbmNpbEZvcm1hdCA9IDA7Ci0gICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBpZiAo
YXR0cnMuYWxwaGEpIHsKICAgICAgICAgbV9pbnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTg7
CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICB9IGVsc2UgewogICAgICAgICBt
X2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0I4OwogICAgICAgICBjb2xvckZvcm1hdCA9IEdM
X1JHQjsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7
CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgLy8gV2Ug
ZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdoZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRo
IGlzIG5vdC4KICAgICAgICAgLy8gU2VlIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZUF0dHJp
YnV0ZXMuCiAKQEAgLTE0OSw3ICsxNTIsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNo
YXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIH0KIAogICAgIC8vIFJlc2l6ZSBtdWx0
aXNhbXBsZSBGQk8uCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGF0dHJz
LmFudGlhbGlhcykgewogICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKICAgICAgICAgOjpn
bEdldEludGVnZXJ2KEdMX01BWF9TQU1QTEVTX0VYVCwgJm1heFNhbXBsZUNvdW50KTsKICAgICAg
ICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBpcyBzbG93IG9uIHNvbWUgaGFyZHdhcmUg
YW5kIGlzIHVubGlrZWx5IHRvCkBAIC0xNjMsMTIgKzE2NiwxMiBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICA6OmdsUmVu
ZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIHNhbXBs
ZUNvdW50LCBtX2ludGVybmFsQ29sb3JGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwogI2VuZGlmCiAg
ICAgICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCwgR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9tdWx0aXNh
bXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJz
LmRlcHRoKSB7CisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAg
ICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBt
X211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgIDo6Z2xSZW5kZXJi
dWZmZXJTdG9yYWdlTXVsdGlzYW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291
bnQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAg
ICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkK
ICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXJFWFQoR0xfRlJBTUVC
VUZGRVJfRVhULCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhU
LCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0
dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgICAg
IDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX0RF
UFRIX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlRGVw
dGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZl
ckVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCAwKTsKQEAgLTIxMSw3ICsyMTQsNyBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGF0
dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVlZGVkKGludGVybmFsRGVwdGhTdGVuY2lsRm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSB0cnVlOwot
ICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsK
ICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIG1fbXVs
dGlzYW1wbGVGQk8pOwogICAgICAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2Ft
cGxlRkJPKQogICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAgLTIyNSwxMiAr
MjI4LDE0IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNp
emUmIHNpemUpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNp
bEJ1ZmZlcklmTmVlZGVkKEdMdWludCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdp
ZHRoLCBpbnQgaGVpZ2h0KQogewotICAgIGlmICghbV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0
cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0
QXR0cmlidXRlcygpOworCisgICAgaWYgKCFhdHRycy5hbnRpYWxpYXMgJiYgKGF0dHJzLnN0ZW5j
aWwgfHwgYXR0cnMuZGVwdGgpKSB7CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdM
X1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpnbFJl
bmRlcmJ1ZmZlclN0b3JhZ2VFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgaW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2ls
KQorICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCkKICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5DSUxfQVRUQUNITUVO
VF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAgICAgICAg
ICAgIDo6Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdM
X0RFUFRIX0FUVEFDSE1FTlRfRVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX2RlcHRoU3RlbmNp
bEJ1ZmZlcik7CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZF
Ul9FWFQsIDApOwogICAgIH0KQEAgLTQ4MiwyMSArNDg3LDIzIEBAIEV4dGVuc2lvbnMzRCYgR3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEV4dGVuc2lvbnMoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpyZWFkUGl4ZWxzKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgdm9pZCogZGF0YSkK
IHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIC8vIEZJWE1F
OiByZW1vdmUgdGhlIHR3byBnbEZsdXNoIGNhbGxzIHdoZW4gdGhlIGRyaXZlciBidWcgaXMgZml4
ZWQsIGkuZS4sCiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91bGQgYmUg
ZG9uZSBiZWZvcmUgcmVhZGluZyBwaXhlbHMuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgOjpnbEZsdXNoKCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91
bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYg
bV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVN
dWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAg
ICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBtX2Zibyk7CiAgICAgICAgIDo6Z2xGbHVzaCgpOwogICAgIH0KICAgICA6OmdsUmVhZFBp
eGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEpOwotICAgIGlmICht
X2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8p
CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlz
YW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIAogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJv
dW5kRkJPID09IG1fZmJvIHx8IChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKKyAgICBpZiAoIWF0dHJzLmFscGhhICYmIChmb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBtX2ZibyB8fCAoYXR0cnMuYW50aWFsaWFz
ICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQogICAgICAgICB3aXBl
QWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVpZ2h0LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBjaGFyKj4oZGF0YSkpOwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCA0MmJjOGUxN2UwNjIxODFkNzBlMDRmN2FjMmM5MWJj
YTM4MzFkOTI1Li44NTc1ZWZlMDY2MzlkNGUxN2ZkMTg3YmYyYmZmZTlkNjIwZTJlOWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTE0MSwx
OSArMTQxLDIzIEBAIHN0YXRpYyB1aW50NjRfdCBuYW1lSGFzaEZvclNoYWRlcihjb25zdCBjaGFy
KiBuYW1lLCBzaXplX3QgbGVuZ3RoKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pCiB7
CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAgICBFeHRlbnNpb25z
M0QmIGV4dGVuc2lvbnMgPSBnZXRFeHRlbnNpb25zKCk7Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIGlmIChleHRlbnNpb25zLnN1
cHBvcnRzKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKICAgICAgICAgICAgIGV4dGVu
c2lvbnMuZW5zdXJlRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwogICAgICAg
ICAgICAgLy8gRm9yY2UgZGVwdGggaWYgc3RlbmNpbCBpcyB0cnVlLgotICAgICAgICAgICAgbV9h
dHRycy5kZXB0aCA9IHRydWU7CisgICAgICAgICAgICBhdHRycy5kZXB0aCA9IHRydWU7CiAgICAg
ICAgIH0gZWxzZQotICAgICAgICAgICAgbV9hdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAg
ICAgICBhdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAgIHNldENvbnRleHRBdHRyaWJ1dGVz
KGF0dHJzKTsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Ci0gICAgICAgIGlm
ICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUi
KSB8fCBpc0dMRVMyQ29tcGxpYW50KCkpCi0gICAgICAgICAgICBtX2F0dHJzLmFudGlhbGlhcyA9
IGZhbHNlOwotICAgICAgICBlbHNlCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiAhbV9pc0Zv
cldlYkdMMikgeworICAgICAgICBpZiAoIWV4dGVuc2lvbnMuc3VwcG9ydHMoIkdMX0FOR0xFX2Zy
YW1lYnVmZmVyX211bHRpc2FtcGxlIikpIHsKKyAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9
IGZhbHNlOworICAgICAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOworICAgICAg
ICB9IGVsc2UKICAgICAgICAgICAgIGV4dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsKICAgICB9CiB9CkBAIC0xNzUsNyArMTc5LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdSZXN1bHRzVG9DYW52YXMoSW1h
Z2VCdWZmZXIqIGltYWdlQnVmZmVyKQogCiAgICAgcmVhZFJlbmRlcmluZ1Jlc3VsdHMocGl4ZWxz
LmdldCgpLCB0b3RhbEJ5dGVzKTsKIAotICAgIGlmICghbV9hdHRycy5wcmVtdWx0aXBsaWVkQWxw
aGEpIHsKKyAgICBpZiAoIWNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKSB7
CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdG90YWxCeXRlczsgaSArPSA0KSB7CiAgICAg
ICAgICAgICAvLyBQcmVtdWx0aXBseSBhbHBoYS4KICAgICAgICAgICAgIHBpeGVsc1tpICsgMF0g
PSBzdGQ6Om1pbigyNTUsIHBpeGVsc1tpICsgMF0gKiBwaXhlbHNbaSArIDNdIC8gMjU1KTsKQEAg
LTIwMSw3ICsyMDUsNyBAQCBSZWZQdHI8SW1hZ2VEYXRhPiBHcmFwaGljc0NvbnRleHQzRDo6cGFp
bnRSZW5kZXJpbmdSZXN1bHRzVG9JbWFnZURhdGEoKQogewogICAgIC8vIFJlYWRpbmcgcHJlbXVs
dGlwbGllZCBhbHBoYSB3b3VsZCBpbnZvbHZlIHVucHJlbXVsdGlwbHlpbmcsIHdoaWNoIGlzCiAg
ICAgLy8gbG9zc3kuCi0gICAgaWYgKG1fYXR0cnMucHJlbXVsdGlwbGllZEFscGhhKQorICAgIGlm
IChjb250ZXh0QXR0cmlidXRlcygpLnByZW11bHRpcGxpZWRBbHBoYSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBhdXRvIGltYWdlRGF0YSA9IEltYWdlRGF0YTo6Y3JlYXRlKEludFNp
emUobV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCkpOwpAQCAtMjMyLDcgKzIzNiw3IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICBUZW1wb3JhcnlP
cGVuR0xTZXR0aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKICNlbmRpZgog
Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKQorICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygp
LmFudGlhbGlhcykKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwog
CiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpAQCAtMjY1LDcgKzI2OSw3IEBAIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKHVuc2lnbmVkIGNoYXIgKnBp
eGVscywgaW50IHBpeGVsc1NpCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAgICBib29s
IG11c3RSZXN0b3JlRkJPID0gZmFsc2U7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Cisg
ICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKSB7CiAgICAgICAgIHJlc29sdmVN
dWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgbXVzdFJl
c3RvcmVGQk8gPSB0cnVlOwpAQCAtMzI4LDE0ICszMzIsMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAgICAgOjpnbENsZWFyQ29sb3Io
MCwgMCwgMCwgMCk7CiAgICAgOjpnbEdldEJvb2xlYW52KEdMX0NPTE9SX1dSSVRFTUFTSywgY29s
b3JNYXNrKTsKICAgICA6OmdsQ29sb3JNYXNrKEdMX1RSVUUsIEdMX1RSVUUsIEdMX1RSVUUsIEdM
X1RSVUUpOwotICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisKKyAgICBhdXRvIGF0dHJzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAgICA6Omds
R2V0RmxvYXR2KEdMX0RFUFRIX0NMRUFSX1ZBTFVFLCAmY2xlYXJEZXB0aCk7CiAgICAgICAgIEdy
YXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKDEpOwogICAgICAgICA6OmdsR2V0Qm9vbGVhbnYo
R0xfREVQVEhfV1JJVEVNQVNLLCAmZGVwdGhNYXNrKTsKICAgICAgICAgOjpnbERlcHRoTWFzayhH
TF9UUlVFKTsKICAgICAgICAgY2xlYXJNYXNrIHw9IEdMX0RFUFRIX0JVRkZFUl9CSVQ7CiAgICAg
fQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewog
ICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfU1RFTkNJTF9DTEVBUl9WQUxVRSwgJmNsZWFyU3Rl
bmNpbCk7CiAgICAgICAgIDo6Z2xDbGVhclN0ZW5jaWwoMCk7CiAgICAgICAgIDo6Z2xHZXRJbnRl
Z2VydihHTF9TVEVOQ0lMX1dSSVRFTUFTSywgcmVpbnRlcnByZXRfY2FzdDxHTGludCo+KCZzdGVu
Y2lsTWFzaykpOwpAQCAtMzQ5LDExICszNTYsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICA6OmdsQ2xlYXJDb2xvcihjbGVh
ckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVhckNvbG9yWzNdKTsK
ICAgICA6OmdsQ29sb3JNYXNrKGNvbG9yTWFza1swXSwgY29sb3JNYXNrWzFdLCBjb2xvck1hc2tb
Ml0sIGNvbG9yTWFza1szXSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKyAgICBpZiAoYXR0
cnMuZGVwdGgpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoY2xlYXJE
ZXB0aCk7CiAgICAgICAgIDo6Z2xEZXB0aE1hc2soZGVwdGhNYXNrKTsKICAgICB9Ci0gICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7CiAgICAgICAgIDo6
Z2xDbGVhclN0ZW5jaWwoY2xlYXJTdGVuY2lsKTsKICAgICAgICAgOjpnbFN0ZW5jaWxNYXNrU2Vw
YXJhdGUoR0xfRlJPTlQsIHN0ZW5jaWxNYXNrKTsKICAgICAgICAgOjpnbFN0ZW5jaWxNYXNrU2Vw
YXJhdGUoR0xfQkFDSywgc3RlbmNpbE1hc2tCYWNrKTsKQEAgLTQ4MSw3ICs0ODgsNyBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0IGJ1ZmZlcgogICAgIGlmIChidWZmZXIpCiAgICAgICAgIGZibyA9IGJ1ZmZl
cjsKICAgICBlbHNlCi0gICAgICAgIGZibyA9IChtX2F0dHJzLmFudGlhbGlhcyA/IG1fbXVsdGlz
YW1wbGVGQk8gOiBtX2Zibyk7CisgICAgICAgIGZibyA9IChjb250ZXh0QXR0cmlidXRlcygpLmFu
dGlhbGlhcyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CiAgICAgaWYgKGZibyAhPSBtX3N0
YXRlLmJvdW5kRkJPKSB7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQodGFyZ2V0LCBm
Ym8pOwogICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gZmJvOwpAQCAtNzQ0LDI0ICs3NTEsMjgg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlckRpcmVjdChQbGF0Zm9ybTNE
T2JqZWN0IHNoYWRlcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAgIGlmIChtX2F0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsK
KyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRycy5h
bnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CiAgICAg
ICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwg
aGVpZ2h0KSk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgfQogICAgIDo6Z2xDb3B5VGV4SW1hZ2UyRCh0
YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwgYm9yZGVy
KTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211
bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdy
YXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQg
eCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3Rh
dGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250
ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpn
bEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICB9CiAgICAgOjpnbENvcHlUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVG
RkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtMTEyOCwxMSArMTEzOSw2IEBAIGludCBH
cmFwaGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb25EaXJlY3QoUGxhdGZvcm0zRE9iamVj
dCBwcm9ncmFtLCBjb25zdCBTCiAgICAgcmV0dXJuIDo6Z2xHZXRBdHRyaWJMb2NhdGlvbihwcm9n
cmFtLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogfQogCi1HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0
ZXMgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKLXsKLSAgICByZXR1
cm4gbV9hdHRyczsKLX0KLQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bW92ZUVycm9yc1RvU3lu
dGhldGljRXJyb3JMaXN0KCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTEVTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAppbmRleCA3MGEyMGQ1MGMzNTIxYTYxMjNl
NmVmYWYxZjQ3NjhmNjQ5NWNkZTVjLi4zNjY4MjFjYTZmZDgzMzgxNWIzYjgzYWMyZGY3NTM4MDI2
MTQ4NjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCkBAIC01
MCwxMCArNTAsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVsZWFzZVNoYWRlckNvbXBp
bGVyKCkKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNE
aW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEZW51bSB0eXBlLCB2b2lkKiBkYXRhKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgp
OworCisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwogICAgIC8v
IEZJWE1FOiByZW1vdmUgdGhlIHR3byBnbEZsdXNoIGNhbGxzIHdoZW4gdGhlIGRyaXZlciBidWcg
aXMgZml4ZWQsIGkuZS4sCiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91
bGQgYmUgZG9uZSBiZWZvcmUgcmVhZGluZyBwaXhlbHMuCiAgICAgOjpnbEZsdXNoKCk7Ci0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykgeworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJP
ID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZO
ZWNlc3NhcnkoSW50UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgOjpnbEZsdXNoKCk7
CkBAIC02MSw3ICs2NCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpCiAKICAgICA6OmdsUmVh
ZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3JtYXQsIHR5cGUsIGRhdGEpOwogCi0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtODAsNyArODMsOSBAQCBib29sIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgIGNv
bnN0IGludCB3aWR0aCA9IHNpemUud2lkdGgoKTsKICAgICBjb25zdCBpbnQgaGVpZ2h0ID0gc2l6
ZS5oZWlnaHQoKTsKICAgICBHTHVpbnQgY29sb3JGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJz
LmFscGhhKSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKwor
ICAgIGlmIChhdHRyaWJ1dGVzLmFscGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1h
dCA9IEdMX1JHQkE7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICB9IGVsc2Ug
ewpAQCAtOTAsNyArOTUsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhj
b25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgLy8gV2UgZG9uJ3QgYWxsb3cgdGhlIGxvZ2ljIHdo
ZXJlIHN0ZW5jaWwgaXMgcmVxdWlyZWQgYW5kIGRlcHRoIGlzIG5vdC4KICAgICAvLyBTZWUgR3Jh
cGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcy4KLSAgICBib29sIHN1cHBvcnRQYWNr
ZWREZXB0aFN0ZW5jaWxCdWZmZXIgPSAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgp
ICYmIGdldEV4dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2ls
Iik7CisgICAgYm9vbCBzdXBwb3J0UGFja2VkRGVwdGhTdGVuY2lsQnVmZmVyID0gKGF0dHJpYnV0
ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSAmJiBnZXRFeHRlbnNpb25zKCkuc3VwcG9y
dHMoIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwogCiAgICAgLy8gUmVzaXplIHJlZ3Vs
YXIgRkJPLgogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAgLTExNywyOSArMTIy
LDI5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUm
IHNpemUpCiAjZW5kaWYKIAogICAgIEV4dGVuc2lvbnMzRE9wZW5HTEVTJiBleHRlbnNpb25zID0g
c3RhdGljX2Nhc3Q8RXh0ZW5zaW9uczNET3BlbkdMRVMmPihnZXRFeHRlbnNpb25zKCkpOwotICAg
IGlmIChleHRlbnNpb25zLmlzSW1hZ2luYXRpb24oKSAmJiBtX2F0dHJzLmFudGlhbGlhcykgewor
ICAgIGlmIChleHRlbnNpb25zLmlzSW1hZ2luYXRpb24oKSAmJiBhdHRyaWJ1dGVzLmFudGlhbGlh
cykgewogICAgICAgICBHTGludCBtYXhTYW1wbGVDb3VudDsKICAgICAgICAgOjpnbEdldEludGVn
ZXJ2KEV4dGVuc2lvbnMzRDo6TUFYX1NBTVBMRVNfSU1HLCAmbWF4U2FtcGxlQ291bnQpOyAKICAg
ICAgICAgR0xpbnQgc2FtcGxlQ291bnQgPSBzdGQ6Om1pbig4LCBtYXhTYW1wbGVDb3VudCk7CiAK
ICAgICAgICAgZXh0ZW5zaW9ucy5mcmFtZWJ1ZmZlclRleHR1cmUyRE11bHRpc2FtcGxlSU1HKEdM
X0ZSQU1FQlVGRkVSLCBHTF9DT0xPUl9BVFRBQ0hNRU5UMCwgR0xfVEVYVFVSRV8yRCwgbV90ZXh0
dXJlLCAwLCBzYW1wbGVDb3VudCk7CiAKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBt
X2F0dHJzLmRlcHRoKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmli
dXRlcy5kZXB0aCkgewogICAgICAgICAgICAgLy8gVXNlIGEgMjQgYml0IGRlcHRoIGJ1ZmZlciB3
aGVyZSB3ZSBrbm93IHdlIGhhdmUgaXQuCiAgICAgICAgICAgICBpZiAoc3VwcG9ydFBhY2tlZERl
cHRoU3RlbmNpbEJ1ZmZlcikgewogICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVy
KEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnMucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZF
Uiwgc2FtcGxlQ291bnQsIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9S
RU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
bV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuc3RlbmNpbCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpIHsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVS
LCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLnJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBH
TF9TVEVOQ0lMX0lOREVYOCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIDo6
Z2xGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRB
Q0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuZGVwdGgpIHsKICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRS
ZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyKTsKICAgICAgICAgICAg
ICAgICAgICAgZXh0ZW5zaW9ucy5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0xfUkVO
REVSQlVGRkVSLCBzYW1wbGVDb3VudCwgR0xfREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWln
aHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xf
RlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0
aEJ1ZmZlcik7CkBAIC0xNDgsMjIgKzE1MywyMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpy
ZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICAgICAgOjpnbEJpbmRSZW5k
ZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCAwKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgICAgICBp
ZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpIHsKICAgICAgICAgICAg
IC8vIFVzZSBhIDI0IGJpdCBkZXB0aCBidWZmZXIgd2hlcmUgd2Uga25vdyB3ZSBoYXZlIGl0Lgog
ICAgICAgICAgICAgaWYgKHN1cHBvcnRQYWNrZWREZXB0aFN0ZW5jaWxCdWZmZXIpIHsKICAgICAg
ICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhT
dGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZShH
TF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTLCB3aWR0aCwgaGVpZ2h0KTsK
LSAgICAgICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAgICAgICAgICAgIGlm
IChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9S
RU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgICAgICAgICBpZiAo
bV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuc3RlbmNpbCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpIHsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVS
LCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVy
U3RvcmFnZShHTF9SRU5ERVJCVUZGRVIsIEdMX1NURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0
KTsKICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9zdGVu
Y2lsQnVmZmVyKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0
cnMuZGVwdGgpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkgewogICAg
ICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1f
ZGVwdGhCdWZmZXIpOwogICAgICAgICAgICAgICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFn
ZShHTF9SRU5ERVJCVUZGRVIsIEdMX0RFUFRIX0NPTVBPTkVOVDE2LCB3aWR0aCwgaGVpZ2h0KTsK
ICAgICAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1F
QlVGRkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZm
ZXIpOwpAQCAtMjIyLDggKzIyNywxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0
ZUF0dHJpYnV0ZXMoKQogewogICAgIHZhbGlkYXRlRGVwdGhTdGVuY2lsKCJHTF9PRVNfcGFja2Vk
X2RlcHRoX3N0ZW5jaWwiKTsKIAotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiAhZ2V0RXh0
ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9JTUdfbXVsdGlzYW1wbGVkX3JlbmRlcl90b190ZXh0dXJl
IikpCi0gICAgICAgIG1fYXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CisgICAgYXV0byBhdHRyaWJ1
dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlh
cyAmJiAhZ2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9JTUdfbXVsdGlzYW1wbGVkX3JlbmRl
cl90b190ZXh0dXJlIikpIHsKKyAgICAgICAgYXR0cmlidXRlcy5hbnRpYWxpYXMgPSBmYWxzZTsK
KyAgICAgICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7CisgICAgfQogfQogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0Rj
bGFtcGYgekZhcikKQEAgLTI0OCwxMCArMjU3LDEwIEBAIEV4dGVuc2lvbnMzRCYgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEV4dGVuc2lvbnMoKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDQSkKLVJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNy
ZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyog
aG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQor
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93
LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAgICAgLy8g
VGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRlcmluZyBk
aXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVy
RGlyZWN0bHlUb0hvc3RXaW5kb3cpCisgICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9u
OjpEaXJlY3RseVRvSG9zdFdpbmRvdykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKQEAgLTI2OCwxNyArMjc3LDE4IEBA
IFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEdyYXBoaWNz
Q29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlKSk7CiB9CiAKLUdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJT
dHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAg
OiBtX2F0dHJzKGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4
dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0
ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9jb21waWxlcihpc0dMRVMy
Q29tcGxpYW50KCkgPyBTSF9FU1NMX09VVFBVVCA6IFNIX0dMU0xfQ09NUEFUSUJJTElUWV9PVVRQ
VVQpCi0gICAgLCBtX3ByaXZhdGUobWFrZVVuaXF1ZTxHcmFwaGljc0NvbnRleHQzRFByaXZhdGU+
KHRoaXMsIHJlbmRlclN0eWxlKSkKKyAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZT4odGhpcywgZGVzdGluYXRpb24pKQogewogICAgIEFTU0VSVF9VTlVT
RUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOwogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwogICAgIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJpYnV0ZXMgPSBj
b250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlk
YXRpb24uCiAKLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAg
aWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKICAgICAgICAgLy8g
Q3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KICAgICAgICAgOjpnbEdlblRleHR1cmVz
KDEsICZtX3RleHR1cmUpOwogICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
bV90ZXh0dXJlKTsKQEAgLTI5MywxNiArMzAzLDE2IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9z
CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKICAg
ICAgICAgCiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKLSAgICAgICAgaWYgKCFt
X2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKQor
ICAgICAgICBpZiAoIWF0dHJpYnV0ZXMuYW50aWFsaWFzICYmIChhdHRyaWJ1dGVzLnN0ZW5jaWwg
fHwgYXR0cmlidXRlcy5kZXB0aCkpCiAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygx
LCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAKICAgICAgICAgLy8gQ3JlYXRlIGEg
bXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgICAgICA6OmdsR2VuRnJhbWVi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAgIDo6Z2xCaW5kRnJhbWVi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgbV9z
dGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgICAgICA6OmdsR2VuUmVu
ZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgICAgIGlm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICA6Omds
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0zNDAsMTMgKzM1MCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6
fkdyYXBoaWNzQ29udGV4dDNEKCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6
OmdsRGVsZXRlVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisg
ICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5j
aWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZm
ZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpnbERl
bGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICA6Omds
RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgIH0KICAg
ICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX2Zibyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0M0RUZXh0dXJl
TWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCmluZGV4IGZhYjgwN2I3ZDhjMWE2OGI1OWQz
YWI3MmJjZDU2ODQyZDU1NjNkNDcuLmMwZmFlOWUyMGVhYmUwZmRhMmYzMjkzNDRhZDU4NDU5MmE1
MjAxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHQzRFRleHR1cmVNYXBwZXIu
Y3BwCkBAIC05MSwxMCArOTEsMTAgQEAgc3RhdGljIERlcXVlPEdyYXBoaWNzQ29udGV4dDNEKiwg
TWF4QWN0aXZlQ29udGV4dHM+JiBhY3RpdmVDb250ZXh0cygpCiAgICAgcmV0dXJuIHNfYWN0aXZl
Q29udGV4dHM7CiB9CiAKLVJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0
M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdp
bmRvdyogaG9zdFdpbmRvdywgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0
eWxlKQorUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0
V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7CiAg
ICAgLy8gVGhpcyBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHJlbmRl
cmluZyBkaXJlY3RseSB0byB0aGUgSG9zdFdpbmRvdy4KLSAgICBpZiAocmVuZGVyU3R5bGUgPT0g
UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3cpCisgICAgaWYgKGRlc3RpbmF0aW9uID09IERlc3Rp
bmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwpAQCAtMTE4LDcgKzExOCw3IEBA
IFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAv
LyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dDNEIG9iamVjdCBmaXJzdCBpbiBvcmRlciB0byBl
c3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQuCi0gICAgYXV0byBjb250
ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5k
b3csIHJlbmRlclN0eWxlKSk7CisgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBo
aWNzQ29udGV4dDNEKGF0dHJpYnV0ZXMsIGhvc3RXaW5kb3csIGRlc3RpbmF0aW9uKSk7CiAKICNp
ZiBVU0UoTElCRVBPWFkpICYmIFVTRShPUEVOR0xfRVMpCiAgICAgLy8gQmFpbCBpZiBHTEVTMyB3
YXMgcmVxdWVzdGVkIGJ1dCBjYW5ub3QgYmUgcHJvdmlkZWQuCkBAIC0xMzEsMjEgKzEzMSwyMSBA
QCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzCiB9CiAKICNpZiBVU0UoQU5HTEUpCi1HcmFwaGljc0Nv
bnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0
dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVu
ZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQotICAgIDogbV9hdHRy
cyhhdHRyaWJ1dGVzKQorR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCkKKyAgICA6IEdyYXBoaWNzQ29udGV4dDNEQmFzZShhdHRyaWJ1dGVzLCBkZXN0
aW5hdGlvbiwgc2hhcmVkQ29udGV4dCkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHNoYXJlZENvbnRl
eHQsICFzaGFyZWRDb250ZXh0KTsKICNpZiBVU0UoTklDT1NJQSkKLSAgICBtX25pY29zaWFMYXll
ciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpHQzNEQU5HTEVMYXllcj4oKnRoaXMsIHJlbmRl
clN0eWxlKTsKKyAgICBtX25pY29zaWFMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxOaWNvc2lhOjpH
QzNEQU5HTEVMYXllcj4oKnRoaXMsIGRlc3RpbmF0aW9uKTsKICNlbHNlCi0gICAgbV90ZXhtYXBM
YXllciA9IFdURjo6bWFrZVVuaXF1ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0
aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV90ZXhtYXBMYXllciA9IFdURjo6bWFrZVVuaXF1ZTxU
ZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCBkZXN0aW5hdGlvbik7CiAjZW5k
aWYKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAotCiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVz
KCk7CisgICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhh
dmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBS
ZW5kZXJPZmZzY3JlZW4pIHsKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9m
ZnNjcmVlbikgewogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgog
ICAgICAgICBnbDo6R2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAgICAgICAgIGdsOjpCaW5k
VGV4dHVyZShHTF9URVhUVVJFX1JFQ1RBTkdMRV9BTkdMRSwgbV90ZXh0dXJlKTsKQEAgLTE3OCwy
NCArMTc4LDI0IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAjZW5kaWYKIAogICAgICAgICAv
LyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChtX2F0dHJzLmFudGlhbGlh
cykgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgICAgIGds
OjpHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAgICAgZ2w6
OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAg
ICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKICAgICAgICAgICAg
IGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAg
ICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAg
ICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2ls
QnVmZmVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIEJpbmQgY2FudmFzIEZC
Ty4KICAgICAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKICNpZiBVU0UoT1BFTkdM
X0VTKQotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0
cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICBnbDo6R2VuUmVuZGVyYnVmZmVycygxLCAm
bV9kZXB0aEJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKQorICAgICAg
ICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICBnbDo6R2VuUmVu
ZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKICNlbmRpZgotICAgICAgICAgICAgaWYg
KG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGdsOjpH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMDMsMjEgKzIwMywyMiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250
ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogICAgIGds
OjpDbGVhckNvbG9yKDAsIDAsIDAsIDApOwogfQogI2Vsc2UKLUdyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywg
SG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwg
R3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCi0gICAgOiBtX2F0dHJzKGF0dHJpYnV0
ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6
RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0
KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNlKGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBz
aGFyZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9VTlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJl
ZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lBKQotICAgIG1fbmljb3NpYUxheWVyID0gbWFrZVVu
aXF1ZTxOaWNvc2lhOjpHQzNETGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7CisgICAgbV9uaWNv
c2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIGRlc3RpbmF0
aW9uKTsKICNlbHNlCi0gICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworICAgIG1fdGV4bWFwTGF5
ZXIgPSBtYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRl
c3RpbmF0aW9uKTsKICNlbmRpZgogCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAKICAgICB2
YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMo
KTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYg
KHJlbmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVlbikgeworICAgIGlmIChkZXN0aW5hdGlvbiA9
PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUg
dG8gcmVuZGVyIGludG8uCiAgICAgICAgIDo6Z2xHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsK
ICAgICAgICAgOjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fdGV4dHVyZSk7CkBAIC0y
NDksMjYgKzI1MCwyNSBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3Jh
cGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvcwogICAgICAgICA6OmdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CiAjZW5kaWYKIAotCiAgICAgICAgIC8vIENyZWF0
ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7Cisg
ICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICAgICAgOjpnbEdlbkZy
YW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgICAgICA6OmdsQmluZEZy
YW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgICAg
IG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxlRkJPOwogICAgICAgICAgICAgOjpnbEdl
blJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAgICBpZiAo
YXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAg
OjpnbEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIp
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gQmluZCBjYW52YXMgRkJPLgogICAg
ICAgICAgICAgZ2xCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX2Zibyk7CiAgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9mYm87CiAjaWYgVVNF
KE9QRU5HTF9FUykKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAg
aWYgKGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisg
ICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIGdsR2Vu
UmVuZGVyYnVmZmVycygxLCAmbV9zdGVuY2lsQnVmZmVyKTsKICNlbmRpZgotICAgICAgICAgICAg
aWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGds
R2VuUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9CiAg
ICAgfQpAQCAtMzAxLDcgKzMwMSw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zCiAgICAgfQog
I2Vsc2UKICAgICAvLyBBZGp1c3QgdGhlIHNoYWRlciBzcGVjaWZpY2F0aW9uIGRlcGVuZGluZyBv
biB3aGV0aGVyIEdMRVMzIChpLmUuIFdlYkdMMiBzdXBwb3J0KSB3YXMgcmVxdWVzdGVkLgotICAg
IG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJyaWRnZShTSF9FU1NMX09VVFBVVCwgbV9hdHRycy5p
c1dlYkdMMiA/IFNIX1dFQkdMMl9TUEVDIDogU0hfV0VCR0xfU1BFQyk7CisgICAgbV9jb21waWxl
ciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVULCBhdHRyaWJ1dGVzLmlzV2ViR0wy
ID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVDKTsKICNlbmRpZgogCiAgICAgLy8gQU5H
TEUgaW5pdGlhbGl6YXRpb24uCkBAIC0zNDAsMTIgKzM0MCwxNCBAQCBHcmFwaGljc0NvbnRleHQz
RDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgZ2w6OkRlbGV0ZVRleHR1cmVzKDEsICZt
X2NvbXBvc2l0b3JUZXh0dXJlKTsKICNlbmRpZgogCi0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFz
KSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlm
IChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVy
cygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3Rl
bmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8
IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygx
LCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIGdsOjpEZWxldGVG
cmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAgIH0gZWxzZSBpZiAobV9hdHRy
cy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0ZXMu
c3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAg
ICAgaWYgKG1fZGVwdGhCdWZmZXIpCiAgICAgICAgICAgICBnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMo
MSwgJm1fZGVwdGhCdWZmZXIpOwpAQCAtMzgyLDEyICszODQsMTQgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAm
bV9jb21wb3NpdG9yVGV4dHVyZSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2F0dHJzLmFudGlhbGlh
cykgeworICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBp
ZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZl
cnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0
ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8
fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMo
MSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6OmdsRGVsZXRl
RnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKLSAgICB9IGVsc2UgaWYgKG1fYXR0
cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSB7CisgICAgfSBlbHNlIGlmIChhdHRyaWJ1dGVz
LnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkgewogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAg
ICAgIGlmIChtX2RlcHRoQnVmZmVyKQogICAgICAgICAgICAgZ2xEZWxldGVSZW5kZXJidWZmZXJz
KDEsICZtX2RlcHRoQnVmZmVyKTsKQEAgLTQxNSwxNCArNDE5LDYgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiB9CiAjZW5kaWYgLy8gVVNFKEFOR0xFKQogCi12b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9zdENhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0
cjxDb250ZXh0TG9zdENhbGxiYWNrPikKLXsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c2V0RXJyb3JNZXNzYWdlQ2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPEVycm9yTWVzc2FnZUNhbGxi
YWNrPikKLXsKLX0KLQogYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6bWFrZUNvbnRleHRDdXJyZW50
KCkKIHsKICNpZiBVU0UoTklDT1NJQSkKQEAgLTQzNiw3ICs0MzIsNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiB7CiB9CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250
ZXh0M0QgR3JhcGhpY3NDb250ZXh0M0Q6OnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKQorUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCgpIGNvbnN0CiB7CiAjaWYgVVNFKE5JQ09TSUEpCiAgICAgcmV0dXJuIG1fbmlj
b3NpYUxheWVyLT5wbGF0Zm9ybUNvbnRleHQoKTsKQEAgLTQ4NCw2ICs0ODAsMzkgQEAgRXh0ZW5z
aW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiB9CiAjZW5kaWYKIAor
dm9pZCogR3JhcGhpY3NDb250ZXh0M0Q6Om1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtLCBHQzNEaW50
cHRyLCBHQzNEc2l6ZWlwdHIsIEdDM0RiaXRmaWVsZCkKK3sKK30KKworR0MzRGJvb2xlYW4gR3Jh
cGhpY3NDb250ZXh0M0Q6OnVubWFwQnVmZmVyKEdDM0RlbnVtKQoreworICAgIHJldHVybiAwOwor
fQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSwg
R0MzRGVudW0sIEdDM0RpbnRwdHIsIEdDM0RpbnRwdHIsIEdDM0RzaXplaXB0cikKK3sKK30KKwor
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW50ZXJuYWxmb3JtYXRpdihHQzNEZW51bSwgR0Mz
RGVudW0sIEdDM0RlbnVtLCBHQzNEc2l6ZWksIEdDM0RpbnQqKQoreworfQorCit2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpyZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0sIEdD
M0RzaXplaSwgR0MzRGVudW0sIEdDM0RzaXplaSwgR0MzRHNpemVpKQoreworfQorCit2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjp0ZXhTdG9yYWdlMkQoR0MzRGVudW0sIEdDM0RzaXplaSwgR0MzRGVu
dW0sIEdDM0RzaXplaSwgR0MzRHNpemVpKQoreworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNE
Ojp0ZXhTdG9yYWdlM0QoR0MzRGVudW0sIEdDM0RzaXplaSwgR0MzRGVudW0sIEdDM0RzaXplaSwg
R0MzRHNpemVpLCBHQzNEc2l6ZWkpCit7Cit9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6Omdl
dEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFZlY3RvcjxHQzNEdWludD4m
LCBHQzNEZW51bSwgVmVjdG9yPEdDM0RpbnQ+JikKK3sKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0QpICYmIFVTRShURVhU
VVJFX01BUFBFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXll
ci5jcHAKaW5kZXggNjYzMjMxNTY5NWJhMjFjMjY3ZDE1NTkzMmViYTkxNDdmYjY2YWUwNi4uNjgz
ZjQ1ZjkzYzI4OTMzZTcyYzNiNmY1OTNlYTE0OTJjNzVlZTFmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZv
cm1MYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAKQEAgLTMwLDE0ICszMCwxNCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcjo6
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0
LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitUZXh0dXJlTWFw
cGVyR0MzRFBsYXRmb3JtTGF5ZXI6OlRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcihHcmFw
aGljc0NvbnRleHQzRCYgY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRl
c3RpbmF0aW9uKQogICAgIDogbV9jb250ZXh0KGNvbnRleHQpCiB7Ci0gICAgc3dpdGNoIChyZW5k
ZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNjcmVlbjoK
KyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9nbENvbnRleHQgPSBHTENvbnRleHQ6
OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZv
ckNvbXBvc2l0aW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CkBAIC02MSw3ICs2MSw3IEBAIGJv
b2wgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQog
ICAgIHJldHVybiBtX2dsQ29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiB9CiAKLVBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0M0QgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjpwbGF0
Zm9ybUNvbnRleHQoKQorUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBUZXh0dXJlTWFwcGVyR0Mz
RFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
Z2xDb250ZXh0KTsKICAgICByZXR1cm4gbV9nbENvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCmluZGV4IGU2ZjA5
Yzg3OTg1NDg2MzJlZTRiMGFhNWE1NjMwNjE1YTI0YTM3ODkuLmI4ZTgxZjExYjIxOGMwNGUwNjU0
NDFmYmI2OWNkYTRmNjllM2Y1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQ
bGF0Zm9ybUxheWVyLmgKQEAgLTM0LDExICszNCwxMSBAQCBjbGFzcyBUZXh0dXJlTWFwcGVyUGxh
dGZvcm1MYXllclByb3h5OwogY2xhc3MgVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyIDog
cHVibGljIFBsYXRmb3JtTGF5ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgotICAgIFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcihHcmFwaGljc0NvbnRleHQz
RCYsIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7CisgICAgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRl
c3RpbmF0aW9uKTsKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIo
KTsKIAogICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBwbGF0Zm9ybUNvbnRleHQoKTsKKyAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4
dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNvbnN0OwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBI
SUNTKQogICAgIFJlZlB0cjxUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllclByb3h5PiBwcm94eSgp
IGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2MTU5YjhmYTc0ZTI0ZjFhZDYyYTJjODM5NjE4MTAx
NWM1YTI0OWIuLmUzNTRhZGJhMjRlYWQ5MWM5MjAxMjFlYzI1NjEzMjc3YTExMTI4ZDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxOS0xMi0yNyAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJlIHZpcnR1YWwgYmFzZSBjbGFzcyBmb3Ig
R3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbW92ZSBhIHRlc3QgdGhhdCBoYXMgZXhpc3RpbmcgY292ZXJhZ2UgaW4gdGhl
IFdlYkdMIHRlc3Qgc3VpdGUuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1
ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
ZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbDogUmVt
b3ZlZC4KKwogMjAxOS0xMi0yNCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4K
IAogICAgICAgICBSRUdSRVNTSU9OOiBbIENhdGFsaW5hIHdrMSBdIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvZmV0Y2gvY29udGVudC10eXBlL3NjcmlwdC53aW5kb3cuaHRtbCBpcyBm
YWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1
ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhlN2ZkZmU4Nzc2ZjI4YTljYjNlMDY0Mzc1OWM1
MTcxMDBlZjBjN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFj
aG1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNjU5ICswLDAgQEAKLVRlc3Qg
ZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVoYXZpb3JzCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1EaW1lbnNpb25zIDAgeCAwCi1DcmVhdGUgcmVuZGVyYnVmZmVycwot
UEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAot
QXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRl
cHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5j
aWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2lu
ZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQg
MzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9T
VEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5n
IERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAz
NjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZG
RVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJ
RF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgU1RF
TkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGgsIHRoZW4gc3RlbmNpbCwgY2F1
c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBz
dGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBj
b25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0
ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcg
Y29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhT
dGVuY2lsLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxm
b3JtYXQgPT0gUkdCQTQKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9y
bWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9y
bWF0ID09IFJHQjU2NQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6
IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1DcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVy
Ci1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRF
UkJVRkZFUl9XSURUSCkgaXMgd2lkdGgKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0hFSUdIVCkgaXMgaGVpZ2h0Ci1QQVNT
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9JTlRFUk5BTF9GT1JNQVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9T
SVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZG
RVIsIGdsLlJFTkRFUkJVRkZFUl9HUkVFTl9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUp
IGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUpIGlzIDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotCi1EaW1lbnNpb25zIDAgeCAyCi1DcmVh
dGUgcmVuZGVyYnVmZmVycwotUEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1udWxs
LgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRl
cHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9
IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRU
QUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVG
RkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3Rl
bmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0
aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
ZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0
aFN0ZW5jaWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGgs
IHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVz
KGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoLCB0aGVuIGRlcHRo
U3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0
aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggY29sb3IgcmVuZGVyYnVm
ZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCQTQKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZl
ciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZl
ciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNy
ZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1DcmVhdGUgYW5kIGF0dGFjaCBkZXB0aFN0
ZW5jaWwgcmVuZGVyYnVmZmVyCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5E
RVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9XSURUSCkgaXMgd2lkdGgKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVS
TkFMX0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAK
LVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVO
REVSQlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFT
UyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJC
VUZGRVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMiB4IDAKLUNyZWF0ZSByZW5kZXJi
dWZmZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNv
bG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIg
PSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9
IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1
cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1B
dHRhY2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRh
Y2ggc3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1F
QlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVu
Y2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5n
IERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1
c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5j
aWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1
c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVu
Y2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
QXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBj
YXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNo
IGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwg
Y2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFj
aCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBp
bnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50
ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50
ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5k
ZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0hFSUdIVCkgaXMgaGVpZ2h0Ci1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JN
QVQpIGlzIGdsLkRFUFRIX1NURU5DSUwKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1JFRF9TSVpFKSBpcyAwCi1QQVNTIGds
LmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZF
Ul9HUkVFTl9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0FM
UEhBX1NJWkUpIGlzIDAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotCi1EaW1lbnNpb25zIDIgeCAyCi1DcmVhdGUgcmVuZGVyYnVmZmVycwot
UEFTUyBnbCA9IGNyZWF0ZTNEQ29udGV4dCgpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZl
ciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRl
cmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGRlcHRoU3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihn
bC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJh
bWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAx
NiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiBpcyB0
cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQot
QXR0YWNoIGRlcHRoIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRl
cHRoIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVC
VUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5j
aWwgdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
cmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBB
U1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJy
b3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJ
T04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsg
Z2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFf
QklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykg
Pj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA+PSA4
IGlzIHRydWUKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElP
TiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1Mg
ZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNh
dXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDYxCi1BdHRhY2gg
ZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1
c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBz
dGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwg
Y2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hl
Y2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFj
aCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBj
b2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9C
SVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihn
bC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRy
dWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAgaXMgdHJ1ZQotUEFT
UyBnbC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIGlzIHRydWUKLUF0dGFjaCBj
b2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1X0ExCi1QQVNTIGNv
bG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3Jl
YXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZS
QU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJ
VFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGds
LkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1
ZQotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNT
IGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQXR0YWNoIGNv
bG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjU2NQotUEFTUyBjb2xv
ckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0
ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFN
RUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRT
KSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5C
TFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUK
LVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAgaXMgdHJ1ZQotUEFTUyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuU1RFTkNJTF9CSVRTKSA9PSAwIGlzIHRydWUKLUNyZWF0ZSBhbmQg
YXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVy
ID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFy
YW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0aAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1l
dGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMg
Z2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJi
dWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0la
RSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SRU5ERVJCVUZGRVJfREVQVEhfU0laRSkgPiAwIGlzIHRydWUKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSkgPiAwIGlzIHRydWUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1Q
QVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JF
RU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRl
cihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5E
RVBUSF9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lM
X0JJVFMpID49IDggaXMgdHJ1ZQotCi10ZXN0OiBERVBUSF9DT01QT05FTlQxNiB2cyBERVBUSF9T
VEVOQ0lMIHdpdGggZGVsZXRlCi1QQVNTIHNob3VsZCBiZSBncmVlbgotdGVzdCBkZWxldGluZyBz
ZWNvbmQgcmVuZGVyYnVmZmVyCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi0KLXRlc3Q6
IERFUFRIX0NPTVBPTkVOVDE2IHZzIERFUFRIX1NURU5DSUwgd2l0aCB1bmJpbmQKLVBBU1Mgc2hv
dWxkIGJlIGdyZWVuCi10ZXN0IHVuYmluZGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIGlzIGdsLkZSQU1FQlVGRkVS
X0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi0KLXRlc3Q6IERFUFRIX1NURU5DSUwgdnMgREVQVEhfQ09N
UE9ORU5UMTYgd2l0aCBkZWxldGUKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi10ZXN0IGRlbGV0aW5n
IHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVz
dDogREVQVEhfU1RFTkNJTCB2cyBERVBUSF9DT01QT05FTlQxNiB3aXRoIHVuYmluZAotUEFTUyBz
aG91bGQgYmUgZ3JlZW4KLXRlc3QgdW5iaW5kaW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZG
RVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi0KLUF0
dGFjaG1lbnRzIG9mIGRpZmZlcmVudCBzaXplcyBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9ESU1FTlNJT05TIChPcGVuR0wgRVMgMi4wIDQuNC41KQotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJf
Q09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikg
c2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZG
RVJfSU5DT01QTEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFN
RUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lO
Q09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05T
IG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJB
TUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09N
UExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
Uikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVU
RQotCi1Xcm9uZyBzdG9yYWdlIHR5cGUgZm9yIHR5cGUgb2YgYXR0YWNobWVudCBiZSBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUpCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRU
QUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnbC5jaGVja0ZyYW1lYnVm
ZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUg
d2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi0KLTAgc2l6ZSBhdHRhY2htZW50IHNob3VsZCBiZSBG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUpCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBG
UkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi0KLU5vIGF0dGFjaG1lbnRzIHNob3VsZCBi
ZSBJTkNPTVBMRVRFX0ZSQU1FQlVGRkVSX01JU1NJTkdfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIu
MCA0LjQuNSkKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJl
IEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRF
RAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQg
YmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotCi1UZXN0IGRyYXdpbmcg
b3IgcmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVG
RkVSX0NPTVBMRVRFCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgd2FzIEZSQU1F
QlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAot
Ci1EcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3Vs
ZCBnZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBkcmF3QXJyYXlzIHdpdGgg
aW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogcmVhZFBpeGVscyBmcm9tIGluY29tcGxl
dGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBm
cmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogY29weVRleFN1YkltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiBjbGVhciB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBB
U1MgZmJvMiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZF
Ul9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9NSVNTSU5HX0FUVEFDSE1FTlQgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLQotRHJhd2lu
ZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJh
dGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJhd0FycmF5cyB3aXRoIGluY29tcGxl
dGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMgZnJvbSBpbmNvbXBsZXRlIGZyYW1l
YnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9PUEVSQVRJ
T04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvcHlUZXhTdWJJ
bWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY2xlYXIgd2l0aCBp
bmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVy
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi0KLURyYXdpbmcgb3IgcmVhZGluZyBmcm9tIGFuIGluY29t
cGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFMSURfRlJBTUVCVUZGRVJfT1BF
UkFUSU9OCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IGRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBy
ZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY29weVRleElt
YWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4U3ViSW1h
Z2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNsZWFyIHdpdGggaW5j
b21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmds
L2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiNTJkYTE1NGQ5ODAxNDEzOGJiYzY1NTg4YzIzYTgzYjhkNzQ4
YTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0
bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1MzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMv
d2ViZ2wtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYmdsLXRl
c3QtdXRpbHMuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJkZXNjcmlw
dGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0V2ViR0xF
cnJvcnNUb0NvbnNvbGVFbmFibGVkKGZhbHNlKTsKLQotdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxz
OwotdmFyIGdsOwotdmFyIGZibzsKLXZhciBkZXB0aEJ1ZmZlcjsKLXZhciBzdGVuY2lsQnVmZmVy
OwotdmFyIGRlcHRoU3RlbmNpbEJ1ZmZlcjsKLXZhciBjb2xvckJ1ZmZlcjsKLXZhciB3aWR0aDsK
LXZhciBoZWlnaHQ7Ci0KLWNvbnN0IEFMTE9XX0NPTVBMRVRFICAgICAgICAgICAgICA9IDB4MDE7
Ci1jb25zdCBBTExPV19VTlNVUFBPUlRFRCAgICAgICAgICAgPSAweDAyOwotY29uc3QgQUxMT1df
SU5DT01QTEVURV9BVFRBQ0hNRU5UID0gMHgwNDsKLQotZnVuY3Rpb24gY2hlY2tGcmFtZWJ1ZmZl
ckZvckFsbG93ZWRTdGF0dXNlcyhhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgLy8gSWYgdGhlIGZy
YW1lYnVmZmVyIGlzIGluIGFuIGVycm9yIHN0YXRlIGZvciBtdWx0aXBsZSByZWFzb25zLAotICAg
IC8vIHdlIGNhbid0IGd1YXJhbnRlZSB3aGljaCBvbmUgd2lsbCBiZSByZXBvcnRlZC4KLSAgICB2
YXIgc3RhdHVzID0gZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUik7Ci0g
ICAgdmFyIHN0YXR1c0FsbG93ZWQgPSAoKGFsbG93ZWRTdGF0dXNlcyAmIEFMTE9XX0NPTVBMRVRF
KSAmJiAoc3RhdHVzID09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSkgfHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfVU5TVVBQT1JURUQpICYmIChz
dGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQpKSB8fAotICAgICAgICAgICAgICAg
ICAgICAgICAgKChhbGxvd2VkU3RhdHVzZXMgJiBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQp
ICYmIChzdGF0dXMgPT0gZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UKSk7Ci0g
ICAgdmFyIG1zZyA9ICJnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAiICsgc3RhdHVzOwotICAgIGlmIChzdGF0dXNBbGxvd2VkKQotICAgICAgICB0ZXN0
UGFzc2VkKG1zZyk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0RmFpbGVkKG1zZyk7Ci19Ci0KLWZ1
bmN0aW9uIGNoZWNrQnVmZmVyQml0cyhhdHRhY2htZW50MCwgYXR0YWNobWVudDEpCi17Ci0gICAg
aWYgKGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpICE9IGdsLkZSQU1F
QlVGRkVSX0NPTVBMRVRFKQotICAgICAgcmV0dXJuOwotCi0gICAgdmFyIGhhdmVEZXB0aEJ1ZmZl
ciA9IGF0dGFjaG1lbnQwID09IGdsLkRFUFRIX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXR0YWNobWVudDAgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQxID09IGdsLkRFUFRIX0FUVEFD
SE1FTlQgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UOwotICAgIHZhciBoYXZlU3RlbmNpbEJ1ZmZlciA9IGF0dGFj
aG1lbnQwID09IGdsLlNURU5DSUxfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGF0dGFjaG1lbnQwID09IGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQxID09IGdsLlNURU5DSUxfQVRUQUNI
TUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnQxID09IGdsLkRF
UFRIX1NURU5DSUxfQVRUQUNITUVOVDsKLQotICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1l
dGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdl
dFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMp
ID49IDE2Iik7Ci0KLSAgICBpZiAoaGF2ZURlcHRoQnVmZmVyKQotICAgICAgc2hvdWxkQmVUcnVl
KCJnbC5nZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPj0gMTYiKTsKLSAgICBlbHNlCi0gICAg
ICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIik7Ci0K
LSAgICBpZiAoaGF2ZVN0ZW5jaWxCdWZmZXIpCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBh
cmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDgiKTsKLSAgICBlbHNlCi0gICAgICBzaG91bGRC
ZVRydWUoImdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAiKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdEF0dGFjaG1lbnQoYXR0YWNobWVudCwgYnVmZmVyLCBhbGxvd2VkU3RhdHVzZXMp
Ci17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7
Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIGdsLmZy
YW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgYnVm
ZmVyKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBjaGVja0Zy
YW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFsbG93ZWRTdGF0dXNlcyk7Ci0gICAgaWYgKChh
bGxvd2VkU3RhdHVzZXMgJiBBTExPV19DT01QTEVURSkgPT0gMCkgewotICAgICAgICBnbC5jbGVh
cihnbC5DT0xPUl9CVUZGRVJfQklUKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5J
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTik7Ci0gICAgICAgIGdsLnJlYWRQaXhlbHMoMCwg
MCwgd2lkdGgsIGhlaWdodCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbmV3IFVpbnQ4QXJy
YXkod2lkdGggKiBoZWlnaHQgKiA0KSk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wu
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04pOwotICAgIH0KLSAgICBjaGVja0J1ZmZlckJp
dHMoYXR0YWNobWVudCk7Ci0gICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLX0KLQotZnVu
Y3Rpb24gdGVzdEF0dGFjaG1lbnRzKGF0dGFjaG1lbnQwLCBidWZmZXIwLCBhdHRhY2htZW50MSwg
YnVmZmVyMSwgYWxsb3dlZFN0YXR1c2VzKQotewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFN
RUJVRkZFUiwgZmJvKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIp
OwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2ht
ZW50MCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIwKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJV
RkZFUiwgYXR0YWNobWVudDEsIGdsLlJFTkRFUkJVRkZFUiwgYnVmZmVyMSk7Ci0gICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlckZvckFsbG93
ZWRTdGF0dXNlcyhhbGxvd2VkU3RhdHVzZXMpOwotICAgIGNoZWNrQnVmZmVyQml0cyhhdHRhY2ht
ZW50MCwgYXR0YWNobWVudDEpOwotICAgIGdsLmRlbGV0ZUZyYW1lYnVmZmVyKGZibyk7Ci19Ci0K
LWZ1bmN0aW9uIHRlc3RDb2xvclJlbmRlcmJ1ZmZlcihpbnRlcm5hbGZvcm1hdCwgYWxsb3dlZFN0
YXR1c2VzKQotewotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZG
RVIsIGludGVybmFsZm9ybWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICBnbEVycm9yU2hvdWxkQmUo
Z2wsIGdsLk5PX0VSUk9SKTsKLSAgICB0ZXN0QXR0YWNobWVudChnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgY29sb3JCdWZmZXIsIGFsbG93ZWRTdGF0dXNlcyk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3REZXB0
aFN0ZW5jaWxSZW5kZXJidWZmZXIoYWxsb3dlZFN0YXR1c2VzKQotewotICAgIHNob3VsZEJlTm9u
TnVsbCgiZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAg
ICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhTdGVuY2lsQnVmZmVy
KTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhf
U1RFTkNJTCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19F
UlJPUik7Ci0KLSAgICAvLyBPcGVuR0wgaXRzZWxmIGRvZXNuJ3Qgc2VlbSB0byBndWFyYW50ZWUg
dGhhdCBlLmcuIGEgMiB4IDAKLSAgICAvLyByZW5kZXJidWZmZXIgd2lsbCByZXBvcnQgMiBmb3Ig
aXRzIHdpZHRoIHdoZW4gcXVlcmllZC4KLSAgICBpZiAoIShoZWlnaHQgPT0gMCAmJiB3aWR0aCA+
IDApKQotICAgICAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJF
TkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRIKSIsICJ3aWR0aCIpOwotICAgIGlmICgh
KHdpZHRoID09IDAgJiYgaGVpZ2h0ID4gMCkpCi0gICAgICAgIHNob3VsZEJlKCJnbC5nZXRSZW5k
ZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hU
KSIsICJoZWlnaHQiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkiLCAiZ2wu
REVQVEhfU1RFTkNJTCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIiwgIjAiKTsKLSAg
ICBzaG91bGRCZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUpIiwgIjAiKTsKLSAgICBzaG91bGRCZSgiZ2wuZ2V0
UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JM
VUVfU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0
ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkiLCAiMCIpOwot
ICAgIC8vIEF2b2lkIHZlcmlmeWluZyB0aGVzZSBmb3IgemVyby1zaXplZCByZW5kZXJidWZmZXJz
IGZvciB0aGUgdGltZQotICAgIC8vIGJlaW5nIHNpbmNlIGl0IGFwcGVhcnMgdGhhdCBldmVuIE9w
ZW5HTCBkb2Vzbid0IGd1YXJhbnRlZSB0aGVtLgotICAgIGlmICh3aWR0aCA+IDAgJiYgaGVpZ2h0
ID4gMCkgewotICAgICAgICBzaG91bGRCZVRydWUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFKSA+IDAiKTsKLSAg
ICAgICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFKSA+IDAiKTsKLSAgICB9Ci0gICAg
Z2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgdGVzdEF0dGFjaG1lbnQoZ2wu
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0
dXNlcyk7Ci0gICAgdGVzdERlcHRoU3RlbmNpbERlcHRoU3RlbmNpbCgpOwotfQotCi1mdW5jdGlv
biB0ZXN0RGVwdGhTdGVuY2lsRGVwdGhTdGVuY2lsKCkKLXsKLSAgICBpZiAoIXdpZHRoIHx8ICFo
ZWlnaHQpIHsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHZhciB0ZXN0cyA9IFsKLSAg
ICAgICAgeyAgIGZpcnN0Rm9ybWF0OiBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAgICAgICAgICAg
IGZpcnN0QXR0YWNoOiBnbC5ERVBUSF9BVFRBQ0hNRU5ULAotICAgICAgICAgICAgc2Vjb25kRm9y
bWF0OiBnbC5ERVBUSF9TVEVOQ0lMLAotICAgICAgICAgICAgc2Vjb25kQXR0YWNoOiBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQKLSAgICAgICAgfSwKLSAgICAgICAgeyAgIGZpcnN0Rm9ybWF0
OiBnbC5ERVBUSF9TVEVOQ0lMLAotICAgICAgICAgICAgZmlyc3RBdHRhY2g6IGdsLkRFUFRIX1NU
RU5DSUxfQVRUQUNITUVOVCwKLSAgICAgICAgICAgIHNlY29uZEZvcm1hdDogZ2wuREVQVEhfQ09N
UE9ORU5UMTYsCi0gICAgICAgICAgICBzZWNvbmRBdHRhY2g6IGdsLkRFUFRIX0FUVEFDSE1FTlQK
LSAgICAgICAgfQotICAgIF07Ci0gICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IHRlc3RzLmxlbmd0
aDsgKytpaSkgewotICAgICAgICB2YXIgdGVzdCA9IHRlc3RzW2lpXTsKLSAgICAgICAgZm9yICh2
YXIgamogPSAwOyBqaiA8IDI7ICsramopIHsKLSAgICAgICAgICAgIHZhciBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpOwotICAgICAgICAgICAgdmFyIHRleCA9IGdsLmNyZWF0ZVRleHR1cmUo
KTsKLSAgICAgICAgICAgIHZhciBmaXJzdFJiID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCk7Ci0K
LSAgICAgICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgICAgIGRlYnVnKCJ0ZXN0OiAiICsgd3R1
LmdsRW51bVRvU3RyaW5nKGdsLCB0ZXN0LmZpcnN0Rm9ybWF0KSArICIgdnMgIiArIHd0dS5nbEVu
dW1Ub1N0cmluZyhnbCwgdGVzdC5zZWNvbmRGb3JtYXQpICsgIiB3aXRoICIgKyAoamogPyAidW5i
aW5kIiA6ICJkZWxldGUiKSk7Ci0KLSAgICAgICAgICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgZmJvKTsKLSAgICAgICAgICAgIC8vIGF0dGFjaCB0ZXh0dXJlIGFzIGNvbG9y
Ci0gICAgICAgICAgICBnbC5iaW5kVGV4dHVyZShnbC5URVhUVVJFXzJELCB0ZXgpOwotICAgICAg
ICAgICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCB3aWR0aCwgaGVp
Z2h0LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICAgICAgICAgIGds
LmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5U
MCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLQotICAgICAgICAgICAgLy8gYXR0YWNoIGZpcnN0
Ci0gICAgICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgZmlyc3RS
Yik7Ci0gICAgICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwg
dGVzdC5maXJzdEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgICAgICBnbC5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5maXJzdEF0dGFjaCwgZ2wuUkVO
REVSQlVGRkVSLCBmaXJzdFJiKTsKLQotICAgICAgICAgICAgaWYgKGdsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpID09IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7Ci0g
ICAgICAgICAgICAgICAgZ2wuZW5hYmxlKGdsLkRFUFRIX1RFU1QpOwotICAgICAgICAgICAgICAg
IHZhciBwcm9ncmFtID0gd3R1LnNldHVwQ29sb3JRdWFkKGdsKTsKLSAgICAgICAgICAgICAgICAv
LyBUZXN0IGl0IHdvcmtzCi0gICAgICAgICAgICAgICAgd3R1LmRyYXdVQnl0ZUNvbG9yUXVhZChn
bCwgWzAsIDI1NSwgMCwgMjU1XSk7Ci0gICAgICAgICAgICAgICAgd3R1LmRyYXdVQnl0ZUNvbG9y
UXVhZChnbCwgWzI1NSwgMCwgMCwgMjU1XSk7ICAvLyBzaG91bGQgbm90IGRyYXcgc2luY2UgREVQ
VEhfRlVOQyA9PSBMRVNTCi0gICAgICAgICAgICAgICAgd3R1LmNoZWNrQ2FudmFzUmVjdChnbCwg
MCwgMCwgd2lkdGgsIGhlaWdodCwgWzAsIDI1NSwgMCwgMjU1XSwgInNob3VsZCBiZSBncmVlbiIp
OwotCi0gICAgICAgICAgICAgICAgdmFyIHNlY29uZFJiID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCk7Ci0KLSAgICAgICAgICAgICAgICAvLyBhdHRhY2ggc2Vjb25kCi0gICAgICAgICAgICAgICAg
Z2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHNlY29uZFJiKTsKLSAgICAgICAg
ICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgdGVzdC5zZWNv
bmRGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCB0ZXN0LnNlY29uZEF0dGFjaCwgZ2wuUkVOREVS
QlVGRkVSLCBzZWNvbmRSYik7Ci0KLSAgICAgICAgICAgICAgICBpZiAoamogPT0gMCkgewotICAg
ICAgICAgICAgICAgICAgLy8gbm93IGRlbGV0ZSBpdAotICAgICAgICAgICAgICAgICAgZGVidWco
InRlc3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlciIpOwotICAgICAgICAgICAgICAgICAg
Z2wuZGVsZXRlUmVuZGVyYnVmZmVyKHNlY29uZFJiKTsKLSAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgLy8gdW5iaW5kIGl0Ci0gICAgICAgICAgICAgICAgICBkZWJ1
ZygidGVzdCB1bmJpbmRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlciIpOwotICAgICAgICAgICAgICAg
ICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIHRlc3Quc2Vjb25k
QXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIG51bGwpOwotICAgICAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgICAgIC8vIElmIHRoZSBmaXJzdCBhdHRhY2htZW50IGlzIG5vdCByZXN0b3JlZCB0
aGlzIG1heSBmYWlsCi0gICAgICAgICAgICAgICAgc2hvdWxkQmUoJ2dsLmNoZWNrRnJhbWVidWZm
ZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpJywgJ2dsLkZSQU1FQlVGRkVSX0NPTVBMRVRFJyk7Ci0g
ICAgICAgICAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0KLSAgICAg
ICAgICAgICAgICAvLyBJZiB0aGUgZmlyc3QgYXR0YWNobWVudCBpcyBub3QgcmVzdG9yZWQgdGhp
cyBtYXkgZmFpbC4KLSAgICAgICAgICAgICAgICBnbC5jbGVhcihnbC5ERVBUSF9CVUZGRVJfQklU
KTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMCwgMjU1LCAw
LCAyNTVdKTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMjU1
LCAwLCAwLCAyNTVdKTsgIC8vIHNob3VsZCBub3QgZHJhdyBzaW5jZSBERVBUSF9GVU5DID09IExF
U1MKLSAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci0gICAgICAgICAg
ICAgICAgZ2wuZGlzYWJsZShnbC5ERVBUSF9URVNUKTsKLQotICAgICAgICAgICAgICAgIGlmIChq
aiA9PSAxKSB7Ci0gICAgICAgICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJidWZmZXIoc2Vjb25k
UmIpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgZ2wu
ZGVsZXRlUmVuZGVyYnVmZmVyKHNlY29uZFJiKTsKLSAgICAgICAgICAgIGdsLmRlbGV0ZUZyYW1l
YnVmZmVyKGZibyk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci19Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IGZyYW1lYnVmZmVyIG9iamVjdCBh
dHRhY2htZW50IGJlaGF2aW9ycyIpOwotCi1mb3IgKHdpZHRoID0gMDsgd2lkdGggPD0gMjsgd2lk
dGggKz0gMikKLXsKLSAgICBmb3IgKGhlaWdodCA9IDA7IGhlaWdodCA8PSAyOyBoZWlnaHQgKz0g
MikKLSAgICB7Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICAgICAgZGVidWcoIkRpbWVuc2lvbnMg
IiArIHdpZHRoICsgIiB4ICIgKyBoZWlnaHQpOwotCi0gICAgICAgIGRlYnVnKCJDcmVhdGUgcmVu
ZGVyYnVmZmVycyIpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwoImdsID0gY3JlYXRlM0RDb250
ZXh0KCkiKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0
ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVS
QlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wu
UkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgd2lkdGgsIGhlaWdodCk7Ci0gICAgICAgIGdsRXJyb3JT
aG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICBzaG91bGRCZU5vbk51bGwoImRlcHRo
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRl
cmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVy
YnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX0NPTVBPTkVOVDE2LCB3aWR0
aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0g
ICAgICAgIHNob3VsZEJlTm9uTnVsbCgic3RlbmNpbEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIik7Ci0gICAgICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBz
dGVuY2lsQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJC
VUZGRVIsIGdsLlNURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJv
clNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZGVw
dGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICAgICAgZ2wu
YmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoU3RlbmNpbEJ1ZmZlcik7Ci0g
ICAgICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9T
VEVOQ0lMLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5O
T19FUlJPUik7Ci0KLSAgICAgICAgdmFyIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZQotICAgICAg
ICAgICAgPSAod2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkgPyBBTExPV19JTkNPTVBMRVRFX0FU
VEFDSE1FTlQgOiBBTExPV19DT01QTEVURTsKLQotICAgICAgICAvLyBzb21lIGNhc2VzIGludm9s
dmluZyBzdGVuY2lsIHNlZW0gdG8gYmUgaW1wbGVtZW50YXRpb24tZGVwZW5kZW50Ci0gICAgICAg
IHZhciBhbGxvd2VkU3RhdHVzRm9ySW1wbERlcGVuZGVudENhc2UgPSBhbGxvd2VkU3RhdHVzRm9y
R29vZENhc2UgfCBBTExPV19VTlNVUFBPUlRFRDsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRl
cHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wu
REVQVEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSk7
Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UIik7
Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLlNURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhCdWZm
ZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2gg
ZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRh
Y2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIEFMTE9XX0lO
Q09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJ
TF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9ySW1wbERlcGVuZGVu
dENhc2UpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNI
TUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hNRU5ULCBzdGVu
Y2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1Zygi
QXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAg
IHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZl
ciwgQUxMT1dfSU5DT01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBk
ZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRl
c3RBdHRhY2htZW50KGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVm
ZmVyLCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRl
cHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2ht
ZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgQUxMT1dfSU5DT01Q
TEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNp
bmcgU1RFTkNJTF9BVFRBQ0hNRU5UIik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50KGdsLlNURU5D
SUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFD
SE1FTlQpOwotCi0gICAgICAgIHZhciBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1l
bnQKLSAgICAgICAgICAgID0gKHdpZHRoID09IDAgfHwgaGVpZ2h0ID09IDApID8gQUxMT1dfVU5T
VVBQT1JURUQgfCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1FTlQKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDogQUxMT1dfVU5TVVBQT1JURUQ7Ci0KLSAgICAgICAg
ZGVidWcoIkF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0g
ICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwg
Z2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29u
ZmxpY3RlZEF0dGFjaG1lbnQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIHN0ZW5jaWwsIHRoZW4g
ZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnRzKGdsLlNU
RU5DSUxfQVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVw
dGhCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAg
IGRlYnVnKCJBdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0
Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1
ZmZlciwgZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFs
bG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRh
Y2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Iik7Ci0gICAgICAg
IHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNp
bEJ1ZmZlciwgZ2wuREVQVEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGFsbG93ZWRTdGF0dXNG
b3JDb25mbGljdGVkQXR0YWNobWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCwg
dGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFj
aG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5ERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0
ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4g
c3RlbmNpbCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wu
REVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGdsLlNURU5DSUxf
QVRUQUNITUVOVCwgc3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRh
Y2htZW50KTsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRo
IGludGVybmFsZm9ybWF0ID09IFJHQkE0Iik7Ci0gICAgICAgIHRlc3RDb2xvclJlbmRlcmJ1ZmZl
cihnbC5SR0JBNCwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLQotICAgICAgICBkZWJ1Zygi
QXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEi
KTsKLSAgICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQjVfQTEsIGFsbG93ZWRTdGF0
dXNGb3JHb29kQ2FzZSk7Ci0KLSAgICAgICAgZGVidWcoIkF0dGFjaCBjb2xvciByZW5kZXJidWZm
ZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0I1NjUiKTsKLSAgICAgICAgdGVzdENvbG9yUmVu
ZGVyYnVmZmVyKGdsLlJHQjU2NSwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLQotICAgICAg
ICBkZWJ1ZygiQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlciIpOwot
ICAgICAgICB0ZXN0RGVwdGhTdGVuY2lsUmVuZGVyYnVmZmVyKGFsbG93ZWRTdGF0dXNGb3JHb29k
Q2FzZSk7Ci0gICAgfQotfQotCi0vLyBEZXRlcm1pbmUgaWYgd2UgY2FuIGF0dGFjaCBib3RoIGNv
bG9yIGFuZCBkZXB0aCBvciBjb2xvciBhbmQgZGVwdGhfc3RlbmNpbAotdmFyIGRlcHRoRm9ybWF0
OwotdmFyIGRlcHRoQXR0YWNobWVudDsKLQotZnVuY3Rpb24gY2hlY2tWYWxpZENvbG9yRGVwdGhD
b21iaW5hdGlvbigpIHsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7
Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZl
cigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVm
ZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVC
VUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVy
KTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQs
IDE2LCAxNik7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImRlcHRoQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZF
UiwgZGVwdGhCdWZmZXIpOwotCi0gICAgcmV0dXJuIHRyeURlcHRoKGdsLkRFUFRIX0NPTVBPTkVO
VDE2LCBnbC5ERVBUSF9BVFRBQ0hNRU5UKSB8fCB0cnlEZXB0aChnbC5ERVBUSF9TVEVOQ0lMLCBn
bC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOwotCi0gICAgZnVuY3Rpb24gdHJ5RGVwdGgodHJ5
X2Zvcm1hdCwgdHJ5X2F0dGFjaG1lbnQpIHsKLSAgICAgICAgaWYgKGRlcHRoQXR0YWNobWVudCkg
ewotICAgICAgICAgICAgLy8gSWYgd2UndmUgdHJpZWQgb25jZSB1bmF0dGFjaCB0aGUgb2xkIG9u
ZS4KLSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICAgICAg
ICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgbnVs
bCk7Ci0gICAgICAgIH0KLSAgICAgICAgZGVwdGhGb3JtYXQgPSB0cnlfZm9ybWF0OwotICAgICAg
ICBkZXB0aEF0dGFjaG1lbnQgPSB0cnlfYXR0YWNobWVudDsKLSAgICAgICAgZ2wuZnJhbWVidWZm
ZXJSZW5kZXJidWZmZXIoCi0gICAgICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZGVwdGhBdHRhY2ht
ZW50LCBnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVm
ZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgICAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgcmV0dXJuIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpID09IGdsLkZSQU1FQlVGRkVSX0NP
TVBMRVRFOwotICAgIH0KLX0KLQotaWYgKGNoZWNrVmFsaWRDb2xvckRlcHRoQ29tYmluYXRpb24o
KSkgewotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVEaW1lbnNpb25zKCk7Ci0gICAgdGVz
dEZyYW1lYnVmZmVySW5jb21wbGV0ZUF0dGFjaG1lbnQoKTsKLSAgICB0ZXN0RnJhbWVidWZmZXJJ
bmNvbXBsZXRlTWlzc2luZ0F0dGFjaG1lbnQoKTsKLSAgICB0ZXN0VXNpbmdJbmNvbXBsZXRlRnJh
bWVidWZmZXIoKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tGcmFtZWJ1ZmZlcihleHBlY3RlZCkgewot
ICAgIHZhciBhY3R1YWwgPSBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KTsKLSAgICB2YXIgbXNnID0gImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHNob3VsZCBiZSAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBleHBlY3RlZCkgKyAiIHdh
cyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGdsLCBhY3R1YWwpOwotICAgIGlmIChleHBlY3RlZCAh
PSBnbC5GUkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICBtc2cgKz0gIiBvciBGUkFNRUJV
RkZFUl9VTlNVUFBPUlRFRCI7Ci0gICAgfQotICAgIGlmIChhY3R1YWwgPT0gZXhwZWN0ZWQgfHwK
LSAgICAgICAgKGV4cGVjdGVkICE9IGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFICYmCi0gICAgICAg
ICBhY3R1YWwgPT0gZ2wuRlJBTUJVRkZFUl9VTlNVUFBPUlRFRCkpIHsKLSAgICAgICAgdGVzdFBh
c3NlZChtc2cpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLSAgICB9
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RVc2luZ0luY29tcGxldGVGcmFtZWJ1ZmZlcigpIHsKLSAgICBk
ZWJ1ZygiIik7Ci0gICAgZGVidWcoIlRlc3QgZHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5j
b21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgIHZhciBwcm9ncmFtID0gd3R1LnNldHVwVGV4dHVy
ZWRRdWFkKGdsKTsKLSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIHd0dS5m
aWxsVGV4dHVyZShnbCwgdGV4LCAxLCAxLCBbMCwyNTUsMCwyNTVdKTsKLQotICAgIHNob3VsZEJl
Tm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFt
ZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVm
ZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAs
IGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3Jh
Z2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLQotICAgIHNob3VsZEJlTm9u
TnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJp
bmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFj
aG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZl
clN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBnbEVy
cm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIC8vIFdlIHBpY2sgdGhpcyBjb21iaW5hdGlvbiBi
ZWNhdXNlIGl0IHdvcmtzIG9uIGRlc2t0b3AgT3BlbkdMIGJ1dCBzaG91bGQgbm90IHdvcmsgb24g
T3BlbkdMIEVTIDIuMAotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVS
LCBkZXB0aEZvcm1hdCwgMzIsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyk7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJE
cmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBn
ZW5lcmF0ZSBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiIpOwotICAgIHRlc3RSZW5kZXJp
bmdBbmRSZWFkaW5nKCk7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImZibzIgPSBnbC5jcmVhdGVG
cmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
Ym8yKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlT
U0lOR19BVFRBQ0hNRU5UKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRyYXdpbmcgb3Ig
cmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJlbmRlcmluZ0FuZFJlYWRp
bmcoKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5k
ZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBj
b2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGds
LkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xv
ckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGds
LlJHQkE0LCAwLCAwKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRyYXdpbmcgb3IgcmVh
ZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmco
KTsKLQotICAgIGZ1bmN0aW9uIHRlc3RSZW5kZXJpbmdBbmRSZWFkaW5nKCkgewotICAgICAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgd3R1LmRyYXdRdWFkKGds
KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiwgImRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAg
ICAgIGdsLnJlYWRQaXhlbHMoMCwgMCwgMSwgMSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
bmV3IFVpbnQ4QXJyYXkoNCkpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAicmVhZFBpeGVscyBmcm9tIGluY29tcGxldGUgZnJh
bWVidWZmZXIiKTsKLSAgICAgICAgLy8gY29weVRleEltYWdlIGFuZCBjb3B5VGV4U3ViSW1hZ2Ug
Y2FuIGJlIGVpdGhlciBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiBiZWNhdXNlCi0gICAg
ICAgIC8vIHRoZSBmcmFtZWJ1ZmZlciBpcyBpbnZhbGlkIE9SIElOVkFMSURfT1BFUkFUSU9OIGJl
Y2F1c2UgaW4gdGhlIGNhc2Ugb2Ygbm8gYXR0YWNobWVudHMKLSAgICAgICAgLy8gdGhlIGZyYW1l
YnVmZmVyIGlzIG5vdCBvZiBhIGNvbXBhdGlibGUgdHlwZS4KLSAgICAgICAgZ2wuY29weVRleFN1
YkltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgMCwgMCwgMCwgMCwgMSwgMSk7Ci0gICAgICAgIGds
RXJyb3JTaG91bGRCZShnbCwgW2dsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCBnbC5J
TlZBTElEX09QRVJBVElPTl0sICJjb3B5VGV4SW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVi
dWZmZXIiKTsKLSAgICAgICAgZ2wuY29weVRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wu
UkdCQSwgMCwgMCwgMSwgMSwgMCk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgW2dsLklO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCBnbC5JTlZBTElEX09QRVJBVElPTl0sICJjb3B5
VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgZ2wu
Y2xlYXIoZ2wuQ09MT1JfQlVGRkVSX0JJVCB8IGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAi
Y2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIik7Ci0gICAgfQotfQotCi1mdW5jdGlv
biB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlQXR0YWNobWVudCgpIHsKLSAgICBzaG91bGRCZU5v
bk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVi
dWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZl
cihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBn
bC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZl
cihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWco
Ildyb25nIHN0b3JhZ2UgdHlwZSBmb3IgdHlwZSBvZiBhdHRhY2htZW50IGJlIEZSQU1FQlVGRkVS
X0lOQ09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkiKTsKLSAgICBnbC5y
ZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7
Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQpOwotCi0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJH
QkE0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExF
VEUpOwotCi0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCIwIHNpemUgYXR0YWNobWVudCBzaG91
bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQu
NC41KSIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5S
R0JBNCwgMCwgMCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBM
RVRFX0FUVEFDSE1FTlQpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVNaXNzaW5nQXR0YWNobWVu
dCgpIHsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIk5vIGF0dGFjaG1lbnRzIHNob3VsZCBi
ZSBJTkNPTVBMRVRFX0ZSQU1FQlVGRkVSX01JU1NJTkdfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIu
MCA0LjQuNSkiKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVm
ZmVyKCkiKTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0g
ICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRU
QUNITUVOVCk7Ci0KLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZF
UiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAg
ICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwg
Y29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVS
LCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVS
X0NPTVBMRVRFKTsKLQotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBn
bC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgbnVs
bCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJ
TkdfQVRUQUNITUVOVCk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LX0KLQotZnVuY3Rpb24gdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZURpbWVuc2lvbnMoKSB7Ci0g
ICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJBdHRhY2htZW50cyBvZiBkaWZmZXJlbnQgc2l6ZXMg
c2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyAoT3BlbkdMIEVTIDIu
MCA0LjQuNSkiKTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsK
LSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZm
ZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJV
RkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIp
OwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwg
MTYsIDE2KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVS
LCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAg
IGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhC
dWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0
aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRFKTsKLQotICAgIGds
LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMzIsIDE2
KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5T
SU9OUyk7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRo
Rm9ybWF0LCAxNiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09N
UExFVEUpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1
ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJH
QkE0LCAxNiwgMzIpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJV
RkZFUl9DT01QTEVURSk7Ci0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci0K
LSAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgIGdsLmJpbmRUZXh0dXJlKGds
LlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgZ2wudGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBn
bC5SR0JBLCAxNiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAg
IGdsLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hN
RU5UMCwgZ2wuVEVYVFVSRV8yRCwgdGV4LCAwKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGds
Lk5PX0VSUk9SKTsKLSAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGdsLnRleEltYWdlMkQoZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgMzIsIDE2
LCAwLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBudWxsKTsKLSAgICBjaGVja0ZyYW1lYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyk7Ci0gICAgZ2wudGV4SW1h
Z2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAxNiwgMTYsIDAsIGdsLlJHQkEsIGdsLlVO
U0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJf
Q09NUExFVEUpOwotCi0gICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5OT19FUlJPUik7Ci19Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMWE1Zjg5NzY0MTc0Zjc5NTM5YTE4NzJmMmQyMDI3NzI2M2IyM2U5
ZS4uNjAwZWZlNmZlYzc3NmIwZWYzY2UzZDcxNGQ3Y2Y4ZjE1MzZlMzY1ZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQzNSw3ICs0MzUsNiBAQCB3ZWJr
aXQub3JnL2IvMTY5OTE4IGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWJhY2tncm91bmQtY29sb3Iu
aHRtbCBbIE1pc3NpbmcgQ3Jhcwogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJn
bC9hbnRpYWxpYXNpbmctZW5hYmxlZC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhhLWRlcHRo
LXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcg
ZmFzdC9jYW52YXMvd2ViZ2wvY29weUJ1ZmZlclN1YkRhdGEuaHRtbCBbIEZhaWx1cmUgXQotd2Vi
a2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0
YWNobWVudC5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFz
L3dlYmdsL2dldEJ1ZmZlclN1YkRhdGEtd2ViZ2wxLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5v
cmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZ2xzbC1jb25mb3JtYW5jZS5odG1sIFsgRmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL3ByZW11bHRpcGx5
YWxwaGEtdGVzdC5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGQ0OTU1NmVkNzgxZTRiNGQ3NjRjZTIzZWFmOWMyMzA5YWJjN2U1
ZjUuLjhhMjdmYjUyMGM1MmJhNDA2YjJkNjZmMDM4YWVkMTk1Nzk5Mjg5M2IgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNzQwLDcgKzI3NDAsNiBAQCB3
ZWJraXQub3JnL2IvMTcxNjE3IHBlcmYvb2JqZWN0LWtleXMuaHRtbCBbIFBhc3MgRmFpbHVyZSBd
CiAKICMgV2ViR0wgdGVzdHMgd2hpY2ggbmVlZCB0cmlhZ2luZyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9iLzE3NDEwMAogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1hdHRyaWJ1dGVzLWFscGhh
LWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvY2FudmFzL3dl
YmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
Y2FudmFzL3dlYmdsL29lcy10ZXh0dXJlLWZsb2F0LWxpbmVhci5odG1sIFsgRmFpbHVyZSBdCiBm
YXN0L2NhbnZhcy93ZWJnbC9vZXMtdGV4dHVyZS1oYWxmLWZsb2F0LWxpbmVhci5odG1sIFsgRmFp
bHVyZSBdCiBmYXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2UtYW5kLXN1Yi1pbWFnZS0yZC13aXRo
LXBvdGVudGlhbGx5LXN1YnNhbXBsZWQtaW1hZ2UuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MDI3YTlkMzllN2Y2YzMxYzYw
NDdmOGE1NTgzODBlMWRiZTg2ZmE3Li5iYWNmMWZlNmRjNDkzYzU2MDY3ZGMyNzA1YzY3NWQ4OWI4
NTdjZDNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
Mjk0LDggKzI5NCw2IEBAIHdlYmtpdC5vcmcvYi84MjY2NSB3ZWJhcmNoaXZlL3Rlc3QtY3NzLXVy
bC1yZXNvdXJjZXMtaW5saW5lLXN0eWxlcy5odG1sIFsgRmFpbHVyCiAKIHdlYmtpdC5vcmcvYi84
Mjc2MiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwu
aHRtbAogCi13ZWJraXQub3JnL2IvODI4MDUgZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXIt
b2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODI5NzIg
cGx1Z2lucy9rZXlib2FyZC1ldmVudHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvODI5NzIgcGx1Z2lucy9sYXlvdXQtaW4tYmVmb3JlbG9hZC1saXN0ZW5lci1hZmZlY3RzLXBs
dWdpbi1sb2FkaW5nLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzgyOTcyIHBs
dWdpbnMvbW91c2UtZXZlbnRzLWZpeGVkcG9zLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZ2wvMi4wLjAvY29uZm9ybWFuY2UyL2NvbnRleHQvY29udGV4
dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFzLW9iZXllZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0
dHJpYnV0ZXMtZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dAppbmRl
eCA1YmVmODE2YzQ2ZjdmMDAyZDQ1NTY4N2QzOTE0NTIyMWZlNGMwY2FmLi4zNmM5NDhhZGU5NWVj
YjNkNDliZTkwYzExNGYzODdkNzhmNDI5OWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMtZGVwdGgtc3Rl
bmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJn
bC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMtZGVwdGgtc3Rl
bmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dApAQCAtMSwxNyArMSwxNSBAQAogVGhp
cyB0ZXN0IHJ1bnMgdGhlIFdlYkdMIFRlc3QgbGlzdGVkIGJlbG93IGluIGFuIGlmcmFtZSBhbmQg
cmVwb3J0cyBQQVNTIG9yIEZBSUwuCiAKIFRlc3Q6IC4uLy4uL3Jlc291cmNlcy93ZWJnbF90ZXN0
X2ZpbGVzL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVu
Y2lsLWFudGlhbGlhcy1vYmV5ZWQuaHRtbAotWyAxOiBGQUlMIF0gYW50aWFsaWFzID0gdHJ1ZSBp
cyBub3Qgb2JleWVkCi1bIDI6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQK
K1sgMTogUEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywg
ZGVwdGgsIGFuZCBzdGVuY2lsLgorWyAyOiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9i
ZXllZAogWyAzOiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9iZXllZAogWyA0OiBGQUlM
IF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9iZXllZAotWyA1OiBGQUlMIF0gYW50aWFsaWFzID0g
dHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDY6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2Jl
eWVkCi1bIDc6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDg6IEZBSUwg
XSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKK1sgNTogRkFJTCBdIHN0ZW5jaWwgPSB0
cnVlIGlzIG5vdCBvYmV5ZWQKK1sgNjogUEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBj
b3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgorWyA3OiBQQVNTIF0gQ29udGV4
dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwu
CitbIDg6IFBBU1MgXSBDb250ZXh0IGNyZWF0ZWQgd2l0aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMs
IGRlcHRoLCBhbmQgc3RlbmNpbC4KIFsgOTogUEFTUyBdIENvbnRleHQgY3JlYXRlZCB3aXRoIHRo
ZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgotWyAxMDogRkFJTCBdIGFu
dGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAotWyAxMTogUEFTUyBdIENvbnRleHQgY3JlYXRl
ZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBzdGVuY2lsLgotWyAxMjog
UEFTUyBdIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi1bIEZBSUwgXSA5IGZhaWx1cmVzIHJl
cG9ydGVkCitbIDEwOiBQQVNTIF0gc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1sgRkFJTCBd
IDQgZmFpbHVyZXMgcmVwb3J0ZWQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386473</attachid>
            <date>2019-12-28 12:09:30 -0800</date>
            <delta_ts>2019-12-28 13:02:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205604-20191229070928.patch</filename>
            <type>text/plain</type>
            <size>386128</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQwNTFlODliZWNlOTA4
MGU4NGM5ODJkMjg4NTU3ZjExOTI5M2IxOC4uMGVmZWY1NTBiMmE4ZjlmMmE1MjI3ODA5ZjFmNzI4
NTNjOWEyZGVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyOCBAQAorMjAxOS0xMi0yNyAgRGVh
biBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkdMXSBBZGQgYSBwdXJl
IHZpcnR1YWwgYmFzZSBjbGFzcyBmb3IgR3JhcGhpY3NDb250ZXh0M0QKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTYwNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgdGhlIGZpcnN0IHN0ZXAg
aW4gYSBzZXJpZXMgb2YgcGF0Y2hlcyB0byBhbGxvdyBtdWx0aXBsZSB2ZXJzaW9ucworICAgICAg
ICBvZiBHcmFwaGljc0NvbnRleHQzRCB0byBleGlzdCwgZWFjaCB1c2luZyBhIGRpZmZlcmVudCBi
YWNrZW5kIHJlbmRlcmluZworICAgICAgICBzeXN0ZW0uIEkndmUgYWRkZWQgYSBHcmFwaGljc0Nv
bnRleHQzREJhc2UgY2xhc3MgKHRoYXQgd2lsbCBldmVudHVhbGx5CisgICAgICAgIGJlIG5hbWVk
IEdyYXBoaWNzQ29udGV4dDNEKSBob2xkaW5nIGFsbCB0aGUgV2ViR0wgZW50cnkgcG9pbnRzIGFz
IHdlbGwKKyAgICAgICAgYXMgc29tZSBjb21tb24gaGVscGVyIGZ1bmN0aW9ucy4KKworICAgICAg
ICBJIGFsc28gdG9vayB0aGUgY2hhbmNlIHRvIG1vdmUgc29tZSBlbnVtcyBpbnRvIGVudW0gY2xh
c3Nlcywgd2hpY2gKKyAgICAgICAgbWFrZXMgaXQgbW9yZSBvYnZpb3VzIHdoZXJlIHRoaW5ncyBj
b21lIGZyb20uIEkgYWxzbyByZW1vdmVkIHNvbWUKKyAgICAgICAgdW51c2VkIGludGVyZmFjZXM6
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrIGFuZAorICAgICAgICBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0TWVzc2FnZUNhbGxiYWNrLgorCisgICAgICAgIFRoZSBl
eGlzdGluZyBHcmFwaGljc0NvbnRleHQzRCBub3cgaW5oZXJpdHMgZnJvbSB0aGUgYmFzZSBjbGFz
cywKKyAgICAgICAgYnV0IGlzIG90aGVyd2lzZSBuZWFybHkgaWRlbnRpY2FsLiBUaGUgbmV4dCBz
dGVwIHdpbGwgYmUgdG8gbWFrZQorICAgICAgICBkaWZmZXJlbnQgaW5zdGFuY2VzIHJhdGhlciB0
aGFuIHRoZSBtaXggb2YgI2lmIG1hY3JvcyB3ZSBoYXZlIG5vdy4KKyAgICAgICAgVGhlIHZpcnR1
YWwgZnVuY3Rpb25zIGFyZSBtYXJrZWQgIm92ZXJyaWRlIiBmb3Igbm93LCBidXQgd2lsbCBiZWNv
bWUKKyAgICAgICAgImZpbmFsIiBpbiB0aGUgaW5zdGFuY2VzLgorCisgICAgICAgIFRoZXJlIHNo
b3VsZCBiZSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIEhlYWRlcnMu
Y21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9j
YXRpb25zKToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmluaXRp
YWxpemVOZXdDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRDb250ZXh0QXR0cmlidXRl
cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6dGV4SW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0
TG9zdENhbGxiYWNrOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JNZXNzYWdlQ2Fs
bGJhY2s6OldlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVzc2FnZUNhbGxiYWNrKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnVpbnQ4X3Q+KToKKyAgICAgICAgKFdlYkNvcmU6OmZsb2F0Pik6CisgICAgICAg
IChXZWJDb3JlOjp1aW50MTZfdD4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybWF0Q29udmVydGVy
Ojpjb252ZXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0
b3I6OkltYWdlRXh0cmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0SW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpleHRyYWN0VGV4dHVyZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6VGV4ZWxCeXRlc0ZvckZv
cm1hdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFja1BpeGVscyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRzQnlBdHRh
Y2htZW50VHlwZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6Z2V0Q2xlYXJCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQpOiBEZWxldGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmltYWdlSHRtbERvbVNvdXJj
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cGxhdGZvcm1UZXh0dXJlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwbGF0Zm9ybUxheWVyIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNyY0Zvcm1hdENvbWVzRnJvbURP
TUVsZW1lbnRPckltYWdlRGF0YSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NUeXBlczNELmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0M0RBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6cmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmF0dGFjaERlcHRoQW5kU3RlbmNpbEJ1ZmZlcklmTmVl
ZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZURlcHRoU3RlbmNp
bCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGFpbnRSZW5kZXJpbmdS
ZXN1bHRzVG9DYW52YXMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBh
aW50UmVuZGVyaW5nUmVzdWx0c1RvSW1hZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6Y29weVRleEltYWdlMkQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpnZXRDb250ZXh0QXR0cmlidXRlcyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpn
ZXRTb3VyY2VEYXRhRm9ybWF0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHQzRENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6Y3JlYXRlU2hhcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpzZXRSZW5kZXJidWZmZXJTdG9yYWdlRnJvbURyYXdhYmxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFjZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dXBkYXRlQ0dMQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2NyZWVuRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0TG9z
dENhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbToKKyAgICAgICAgKC1bV2ViR0xMYXllciBpbml0
V2l0aEdyYXBoaWNzQ29udGV4dDNEOl0pOgorICAgICAgICAoLVtXZWJHTExheWVyIGNvcHlJbWFn
ZVNuYXBzaG90V2l0aENvbG9yU3BhY2U6XSk6CisgICAgICAgICgtW1dlYkdMTGF5ZXIgYmluZEZy
YW1lYnVmZmVyVG9OZXh0QXZhaWxhYmxlU3VyZmFjZV0pOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZUNh
Y2hlQ1Y6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyk6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBhaW50
UmVuZGVyaW5nUmVzdWx0c1RvQ2FudmFzKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdSZXN1bHRzKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJbWFnZTJEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEOjpjb3B5VGV4U3ViSW1hZ2UyRCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0ZXMpOiBEZWxldGVkLgorCiAyMDE5LTEy
LTI1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bUGFp
bnRpbmddIEZpeCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtdGV4dC93aGl0ZS1zcGFjZS90YWItc3RvcC10aHJlc2hvbGQtMDAxLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDhjN2U1YzU5NDdmMGI1Yzk0MzY1OTc0ZTFlY2ZmYmFkZTE4YTBhNzAu
LjNlOTNiZjkxMDZmY2EwZmU1MTAwNmYwYzJiMjQ2NGNjYjI4YzkxZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTA1OCw2ICsxMDU4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50LmgKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmgKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2Uu
aAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRJbXBsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzk2
ODE4OWM4YThkZTUyYTlmOWE0N2ExMWYyMzk5ZjcyMDc5YmRhZC4uNTY1MjI2ZWYxM2JmMjVjODhl
NWJjMzkxMjNjM2Q0NWFmYTU1OGQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE4NTYsNiArMTg1Niw3
IEBAIHBsYXRmb3JtL2dyYXBoaWNzL0dlb21ldHJ5VXRpbGl0aWVzLmNwcAogcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhZGllbnQuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmNwcAog
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RCYXNlLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0SW1wbC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODg5NTRlOTkwNmY1
ODYzY2ViNDU4NzhjYWNmMTlmYTY0ZDQ4MTk5NC4uNGM2NjAyMjIwN2ViNjE3MzQ1MDcxOWRiNDhj
ZjQyMzkwNGQxMThlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtOTEzLDYgKzkxMyw3IEBACiAJCTMxMzU5MTBBMUU3RERDNzMw
MEYzMDYzMCAvKiBSVENTZHBUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTM1OTEwNDFFN0REQzYwMDBGMzA2MzAgLyogUlRDU2RwVHlwZS5oICov
OyB9OwogCQkzMTM1OTEwQjFFN0REQzczMDBGMzA2MzAgLyogUlRDU2lnbmFsaW5nU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovOyB9OwogCQkzMTNCQ0UxQzIz
NUUzQkU1MDBGQzM5RTUgLyogRWxlbWVudENvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0JDRTFCMjM1RTNCREIwMEZDMzlFNSAvKiBFbGVt
ZW50Q29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxM0RFODZG
MjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTQwMzc5QjEyNEJFQTdGMDBB
RjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNDAzNzk3MTI0QkVBN0YwMEFGNDBFNCAvKiBXZWJDb3Jl
TW90aW9uTWFuYWdlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNDAzNzlEMTI0QkVBN0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNs
aWVudElPUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzE0MDM3OTkxMjRCRUE3RjAwQUY0MEU0IC8qIERldmljZU9yaWVudGF0aW9uQ2xpZW50SU9TLmgg
Ki87IH07CiAJCTMxNDBDNTIwMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxNDBDNTFFMUZERjE1MUEwMEQyQTg3MyAvKiBPZmZzY3JlZW5DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaCAqLzsgfTsKQEAgLTY5OTksNiArNzAwMCw4IEBACiAJCTMxMzU5MTA1MUU3
RERDNjAwMEYzMDYzMCAvKiBSVENTaWduYWxpbmdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBSVENTaWduYWxpbmdTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTM1OTEwQzFFN0REQ0I2MDBGMzA2MzAgLyogUlRDQnVuZGxlUG9saWN5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0J1bmRsZVBvbGljeS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTNCQ0UxQjIzNUUzQkRCMDBGQzM5RTUgLyogRWxlbWVu
dENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRWxlbWVudENvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzEzREU4NkQyM0E5Njk2NjAwOEZD
NDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHQzREJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTNERTg2RjIzQTk2OTY3MDA4RkM0N0IgLyogR3JhcGhpY3NDb250ZXh0
M0RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4
dDNEQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTQwMzc5NzEyNEJFQTdG
MDBBRjQwRTQgLyogV2ViQ29yZU1vdGlvbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQ29yZU1vdGlvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE0MDM3OTgxMjRCRUE3RjAwQUY0MEU0IC8qIFdlYkNvcmVNb3Rpb25NYW5hZ2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU1vdGlv
bk1hbmFnZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNDAzNzk5MTI0QkVB
N0YwMEFGNDBFNCAvKiBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEZXZpY2VPcmllbnRhdGlvbkNsaWVudElPUy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwNDQsNiArMjUwNDcsOCBAQAogCQkJCTZFMjFDNkJG
MTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5
RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCiAJCQkJN0MzMzBB
MDExREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcy5oICovLAor
CQkJCTMxM0RFODZEMjNBOTY5NjYwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJhc2UuY3Bw
ICovLAorCQkJCTMxM0RFODZGMjNBOTY5NjcwMDhGQzQ3QiAvKiBHcmFwaGljc0NvbnRleHQzREJh
c2UuaCAqLywKIAkJCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmNwcCAqLywKIAkJCQlEMDg0M0E0QTIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhp
Y3NDb250ZXh0M0RNYW5hZ2VyLmggKi8sCiAJCQkJMEYwMDEyNDAxRkFEODgxMDAwNTMxRDc2IC8q
IEdyYXBoaWNzQ29udGV4dEltcGwuY3BwICovLApAQCAtMzAwMjQsNiArMzAwMjksNyBAQAogCQkJ
CUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0MzMzBBMDIxREY4RkFDNjAwRDMzOTVDIC8qIEdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzEzREU4NzAyM0E5Njk3
MzAwOEZDNDdCIC8qIEdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBQjUwMDAxMjI4NzhBMjAwMUE3REIwIC8qIEdyYXBoaWNzQ29udGV4dDNESU9TLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlEMDg0M0E0QjIwRkVCRTNEMDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0
M0RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAg
LyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAKaW5kZXggNjFmODg5M2VlMjUzMDRmNGQyNzBkYTEz
NDViMzdiNDlmZDI3OWE4NS4uZGVlYWM3NTBmNGZkYTI0M2U2YTM3MTY2ZWY0M2E5MWE5YjQzZmQ1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCkBAIC0y
MDgsNyArMjA4LDcgQEAgdm9pZCBXZWJHTFByb2dyYW06OmNhY2hlQWN0aXZlQXR0cmliTG9jYXRp
b25zKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0M2QpCiAgICAgY29udGV4dDNkLT5nZXRQcm9n
cmFtaXYob2JqZWN0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVfQVRUUklCVVRFUywgJm51
bUF0dHJpYnMpOwogICAgIG1fYWN0aXZlQXR0cmliTG9jYXRpb25zLnJlc2l6ZShzdGF0aWNfY2Fz
dDxzaXplX3Q+KG51bUF0dHJpYnMpKTsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bUF0dHJp
YnM7ICsraSkgewotICAgICAgICBBY3RpdmVJbmZvIGluZm87CisgICAgICAgIEdyYXBoaWNzQ29u
dGV4dDNEOjpBY3RpdmVJbmZvIGluZm87CiAgICAgICAgIGNvbnRleHQzZC0+Z2V0QWN0aXZlQXR0
cmliSW1wbChvYmplY3QoKSwgaSwgaW5mbyk7CiAgICAgICAgIG1fYWN0aXZlQXR0cmliTG9jYXRp
b25zW2ldID0gY29udGV4dDNkLT5nZXRBdHRyaWJMb2NhdGlvbihvYmplY3QoKSwgaW5mby5uYW1l
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IGUyMzRlYjhmNTE2NzExZDliOTUxNTY4NDhj
NjVkMTEzNWE4YzM2YmIuLjNmZmRmZjhmNGQwYzBiZTkwYzI2ZjYxZmZkYWFlZTgyYjU0M2FhZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0zNzMsMzIgKzM3Myw2IEBAIHN0YXRpYyBib29sIGNsaXAy
RChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LAogICAgIHJldHVybiAoKmNsaXBwZWRYICE9IHggfHwgKmNsaXBwZWRZICE9IHkgfHwgKmNsaXBw
ZWRXaWR0aCAhPSB3aWR0aCB8fCAqY2xpcHBlZEhlaWdodCAhPSBoZWlnaHQpOwogfQogCi1jbGFz
cyBXZWJHTFJlbmRlcmluZ0NvbnRleHRMb3N0Q2FsbGJhY2sgOiBwdWJsaWMgR3JhcGhpY3NDb250
ZXh0M0Q6OkNvbnRleHRMb3N0Q2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFj
ayhXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBjYikgOiBtX2NvbnRleHQoY2IpIHsgfQotICAg
IHZpcnR1YWwgfldlYkdMUmVuZGVyaW5nQ29udGV4dExvc3RDYWxsYmFjaygpID0gZGVmYXVsdDsK
LQotICAgIHZvaWQgb25Db250ZXh0TG9zdCgpIG92ZXJyaWRlIHsgbV9jb250ZXh0LT5mb3JjZUxv
c3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6UmVhbExvc3RDb250ZXh0KTsgfQotcHJp
dmF0ZToKLSAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKiBtX2NvbnRleHQ7Ci19OwotCi1j
bGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHRFcnJvck1lc3NhZ2VDYWxsYmFjayA6IHB1YmxpYyBH
cmFwaGljc0NvbnRleHQzRDo6RXJyb3JNZXNzYWdlQ2FsbGJhY2sgewotICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdlYkdMUmVuZGVyaW5nQ29udGV4
dEVycm9yTWVzc2FnZUNhbGxiYWNrKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqIGNiKSA6IG1f
Y29udGV4dChjYikgeyB9Ci0gICAgdmlydHVhbCB+V2ViR0xSZW5kZXJpbmdDb250ZXh0RXJyb3JN
ZXNzYWdlQ2FsbGJhY2soKSA9IGRlZmF1bHQ7Ci0KLSAgICB2b2lkIG9uRXJyb3JNZXNzYWdlKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgR0MzRGludCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlm
IChtX2NvbnRleHQtPm1fc3ludGhlc2l6ZWRFcnJvcnNUb0NvbnNvbGUpCi0gICAgICAgICAgICBt
X2NvbnRleHQtPnByaW50VG9Db25zb2xlKE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwot
ICAgIH0KLXByaXZhdGU6Ci0gICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSogbV9jb250ZXh0
OwotfTsKLQogY2xhc3MgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodCB7CiBw
dWJsaWM6CiAgICAgSW5zcGVjdG9yU2NvcGVkU2hhZGVyUHJvZ3JhbUhpZ2hsaWdodChXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlJiBjb250ZXh0LCBXZWJHTFByb2dyYW0qIHByb2dyYW0pCkBAIC04
MDksOSArNzgzLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppbml0aWFsaXpl
TmV3Q29udGV4dCgpCiAgICAgbV9jb250ZXh0LT5yZXNoYXBlKGNhbnZhc1NpemUud2lkdGgoKSwg
Y2FudmFzU2l6ZS5oZWlnaHQoKSk7CiAgICAgbV9jb250ZXh0LT52aWV3cG9ydCgwLCAwLCBjYW52
YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwogICAgIG1fY29udGV4dC0+c2Np
c3NvcigwLCAwLCBjYW52YXNTaXplLndpZHRoKCksIGNhbnZhc1NpemUuaGVpZ2h0KCkpOwotCi0g
ICAgbV9jb250ZXh0LT5zZXRDb250ZXh0TG9zdENhbGxiYWNrKG1ha2VVbmlxdWU8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0TG9zdENhbGxiYWNrPih0aGlzKSk7Ci0gICAgbV9jb250ZXh0LT5zZXRFcnJv
ck1lc3NhZ2VDYWxsYmFjayhtYWtlVW5pcXVlPFdlYkdMUmVuZGVyaW5nQ29udGV4dEVycm9yTWVz
c2FnZUNhbGxiYWNrPih0aGlzKSk7CiB9CiAKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6c2V0dXBGbGFncygpCkBAIC05MjEsOCArODkyLDYgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0M0QoKQogCiAgICAgaWYgKG1fY29udGV4
dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7Ci0gICAgICAgIG1f
Y29udGV4dC0+c2V0Q29udGV4dExvc3RDYWxsYmFjayhudWxscHRyKTsKLSAgICAgICAgbV9jb250
ZXh0LT5zZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhudWxscHRyKTsKICAgICAgICAgbV9jb250ZXh0
ID0gbnVsbHB0cjsKICAgICB9CiB9CkBAIC0yNTMyLDcgKzI1MDEsNyBAQCBSZWZQdHI8V2ViR0xB
Y3RpdmVJbmZvPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRBY3RpdmVBdHRyaWIoV2Vi
R0xQcm9ncmFtKgogewogICAgIGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkgfHwgIXZhbGlk
YXRlV2ViR0xPYmplY3QoImdldEFjdGl2ZUF0dHJpYiIsIHByb2dyYW0pKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICBBY3RpdmVJbmZvIGluZm87CisgICAgR3JhcGhpY3NDb250ZXh0M0Q6
OkFjdGl2ZUluZm8gaW5mbzsKICAgICBpZiAoIW1fY29udGV4dC0+Z2V0QWN0aXZlQXR0cmliKG9i
amVjdE9yWmVybyhwcm9ncmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIApAQCAtMjU0NSw3ICsyNTE0LDcgQEAgUmVmUHRyPFdlYkdMQWN0aXZlSW5mbz4gV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZTo6Z2V0QWN0aXZlVW5pZm9ybShXZWJHTFByb2dyYW0KIHsKICAg
ICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpIHx8ICF2YWxpZGF0ZVdlYkdMT2JqZWN0KCJn
ZXRBY3RpdmVVbmlmb3JtIiwgcHJvZ3JhbSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IEFjdGl2ZUluZm8gaW5mbzsKKyAgICBHcmFwaGljc0NvbnRleHQzRDo6QWN0aXZlSW5mbyBpbmZv
OwogICAgIGlmICghbV9jb250ZXh0LT5nZXRBY3RpdmVVbmlmb3JtKG9iamVjdE9yWmVybyhwcm9n
cmFtKSwgaW5kZXgsIGluZm8pKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoIWlz
R0xFUzJDb21wbGlhbnQoKSkKQEAgLTI2MzksNyArMjYwOCw3IEBAIE9wdGlvbmFsPFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXM+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmdldENvbnRleHRBdHRy
aWJ1dGVzCiAgICAgLy8gYW5kIHN0ZW5jaWwsIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb3BlcnRpZXMg
b2YgdGhlIHVuZGVybHlpbmcKICAgICAvLyBHcmFwaGljc0NvbnRleHQzRC4KIAotICAgIGF1dG8g
YXR0cmlidXRlcyA9IG1fY29udGV4dC0+Z2V0Q29udGV4dEF0dHJpYnV0ZXMoKTsKKyAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBtX2NvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCk7CiAgICAgaWYgKCFt
X2F0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgIGF0dHJpYnV0ZXMuZGVwdGggPSBmYWxzZTsKICAg
ICBpZiAoIW1fYXR0cmlidXRlcy5zdGVuY2lsKQpAQCAtMzAwMiw3ICsyOTcxLDcgQEAgUmVmUHRy
PFdlYkdMVW5pZm9ybUxvY2F0aW9uPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpnZXRVbmlm
b3JtTG9jYXRpb24oV2ViR0wKICAgICBtX2NvbnRleHQtPmdldE5vbkJ1aWx0SW5BY3RpdmVTeW1i
b2xDb3VudChvYmplY3RPclplcm8ocHJvZ3JhbSksIEdyYXBoaWNzQ29udGV4dDNEOjpBQ1RJVkVf
VU5JRk9STVMsICZhY3RpdmVVbmlmb3Jtcyk7CiAjZW5kaWYKICAgICBmb3IgKEdDM0RpbnQgaSA9
IDA7IGkgPCBhY3RpdmVVbmlmb3JtczsgaSsrKSB7Ci0gICAgICAgIEFjdGl2ZUluZm8gaW5mbzsK
KyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkFjdGl2ZUluZm8gaW5mbzsKICAgICAgICAgaWYg
KCFtX2NvbnRleHQtPmdldEFjdGl2ZVVuaWZvcm0ob2JqZWN0T3JaZXJvKHByb2dyYW0pLCBpLCBp
bmZvKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAvLyBTdHJpcCAiWzBd
IiBmcm9tIHRoZSBuYW1lIGlmIGl0J3MgYW4gYXJyYXkuCkBAIC0zNzY5LDcgKzM3MzgsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkRCYXNlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludCBsZXZlbCwgRwogICAgIHRleC0+c2V0TGV2ZWxJbmZvKHRhcmdldCwgbGV2
ZWwsIGludGVybmFsRm9ybWF0LCB3aWR0aCwgaGVpZ2h0LCB0eXBlKTsKIH0KIAotdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdD
M0RlbnVtIHR5cGUsIEltYWdlKiBpbWFnZSwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERv
bVNvdXJjZSBkb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSkKK3Zv
aWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyREltcGwoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpCiB7CiAg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGRhdGE7CiAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0
cmFjdG9yIGltYWdlRXh0cmFjdG9yKGltYWdlLCBkb21Tb3VyY2UsIHByZW11bHRpcGx5QWxwaGEs
IG1fdW5wYWNrQ29sb3JzcGFjZUNvbnZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PTkUp
OwpAQCAtMzc4Miw3ICszNzUxLDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0
ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEcKICAgICBjb25z
dCB2b2lkKiBpbWFnZVBpeGVsRGF0YSA9IGltYWdlRXh0cmFjdG9yLmltYWdlUGl4ZWxEYXRhKCk7
CiAKICAgICBib29sIG5lZWRDb252ZXJzaW9uID0gdHJ1ZTsKLSAgICBpZiAodHlwZSA9PSBHcmFw
aGljc0NvbnRleHQzRDo6VU5TSUdORURfQllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgZm9ybWF0ID09IEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5n
ICYmICFmbGlwWSkKKyAgICBpZiAodHlwZSA9PSBHcmFwaGljc0NvbnRleHQzRDo6VU5TSUdORURf
QllURSAmJiBzb3VyY2VEYXRhRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nICYmICFmbGlwWSkKICAgICAg
ICAgbmVlZENvbnZlcnNpb24gPSBmYWxzZTsKICAgICBlbHNlIHsKICAgICAgICAgaWYgKCFtX2Nv
bnRleHQtPnBhY2tJbWFnZURhdGEoaW1hZ2UsIGltYWdlUGl4ZWxEYXRhLCBmb3JtYXQsIHR5cGUs
IGZsaXBZLCBhbHBoYU9wLCBzb3VyY2VEYXRhRm9ybWF0LCBpbWFnZUV4dHJhY3Rvci5pbWFnZVdp
ZHRoKCksIGltYWdlRXh0cmFjdG9yLmltYWdlSGVpZ2h0KCksIGltYWdlRXh0cmFjdG9yLmltYWdl
U291cmNlVW5wYWNrQWxpZ25tZW50KCksIGRhdGEpKSB7CkBAIC0zODY4LDcgKzM4MzcsNyBAQCB2
b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEaW50IGxldmVsLCBHQzNEZQogICAgICAgICBtX2NvbnRleHQtPnBpeGVsU3RvcmVpKEdy
YXBoaWNzQ29udGV4dDNEOjpVTlBBQ0tfQUxJR05NRU5ULCBtX3VucGFja0FsaWdubWVudCk7CiB9
CiAKLXZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9m
ZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSogaW1hZ2UsIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UgZG9tU291cmNlLCBib29sIGZsaXBZLCBi
b29sIHByZW11bHRpcGx5QWxwaGEpCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRl
eFN1YkltYWdlMkRJbXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
SW1hZ2UqIGltYWdlLCBHcmFwaGljc0NvbnRleHQzRDo6RE9NU291cmNlIGRvbVNvdXJjZSwgYm9v
bCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKQogewogICAgIFZlY3Rvcjx1aW50OF90PiBk
YXRhOwogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4dHJhY3RvciBpbWFnZUV4dHJhY3Rv
cihpbWFnZSwgZG9tU291cmNlLCBwcmVtdWx0aXBseUFscGhhLCBtX3VucGFja0NvbG9yc3BhY2VD
b252ZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dDNEOjpOT05FKTsKQEAgLTM4ODEsNyArMzg1MCw3
IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4U3ViSW1hZ2UyREltcGwoR0Mz
RGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsCiAgICAgY29uc3Qgdm9pZCogaW1hZ2VQaXhlbERh
dGEgPSBpbWFnZUV4dHJhY3Rvci5pbWFnZVBpeGVsRGF0YSgpOwogICAgIAogICAgIGJvb2wgbmVl
ZENvbnZlcnNpb24gPSB0cnVlOwotICAgIGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpV
TlNJR05FRF9CWVRFICYmIHNvdXJjZURhdGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBOCAmJiBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgJiYgYWxw
aGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcgJiYgIWZsaXBZKQorICAg
IGlmICh0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFICYmIHNvdXJjZURh
dGFGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4ICYmIGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcgJiYgIWZsaXBZKQogICAgICAgICBuZWVkQ29udmVyc2lv
biA9IGZhbHNlOwogICAgIGVsc2UgewogICAgICAgICBpZiAoIW1fY29udGV4dC0+cGFja0ltYWdl
RGF0YShpbWFnZSwgaW1hZ2VQaXhlbERhdGEsIGZvcm1hdCwgdHlwZSwgZmxpcFksIGFscGhhT3As
IHNvdXJjZURhdGFGb3JtYXQsIGltYWdlRXh0cmFjdG9yLmltYWdlV2lkdGgoKSwgaW1hZ2VFeHRy
YWN0b3IuaW1hZ2VIZWlnaHQoKSwgaW1hZ2VFeHRyYWN0b3IuaW1hZ2VTb3VyY2VVbnBhY2tBbGln
bm1lbnQoKSwgZGF0YSkpIHsKQEAgLTM5NjgsNyArMzkzNyw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0
LCBHQzNECiAKICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdl
KEltYWdlQnVmZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQot
ICAgICAgICAgICAgdGV4U3ViSW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgeG9mZnNldCwgeW9m
ZnNldCwgZm9ybWF0LCB0eXBlLCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21JbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAg
ICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlvZmZzZXQs
IGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01Tb3VyY2U6
OkltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0sIFsmXShjb25zdCBSZWZQdHI8SW1hZ2VEYXRhPiYgcGl4ZWxz
KSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGF1dG8gdGV4dHVyZSA9IHZhbGlkYXRl
VGV4dHVyZUJpbmRpbmcoInRleFN1YkltYWdlMkQiLCB0YXJnZXQsIHRydWUpOwpAQCAtNDAzNCw3
ICs0MDAzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6
dGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0QKICAgICAgICAgaWYgKCFpbWFnZUZv
clJlbmRlciB8fCAhdmFsaWRhdGVUZXhGdW5jKCJ0ZXhTdWJJbWFnZTJEIiwgVGV4U3ViSW1hZ2Us
IFNvdXJjZUhUTUxJbWFnZUVsZW1lbnQsIHRhcmdldCwgbGV2ZWwsIGludGVybmFsRm9ybWF0LCBp
bWFnZUZvclJlbmRlci0+d2lkdGgoKSwgaW1hZ2VGb3JSZW5kZXItPmhlaWdodCgpLCAwLCBmb3Jt
YXQsIHR5cGUsIHhvZmZzZXQsIHlvZmZzZXQpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
SHRtbERvbUltYWdlLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwor
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6
RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhh
KTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhUTUxDYW52
YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAgIGlmIChp
c0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00MDYyLDcgKzQwMzEsNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAgdGV4U3Vi
SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3JtYXQsIHR5cGUsIFRl
eEltYWdlU291cmNlKGltYWdlRGF0YS5nZXQoKSkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0LCBmb3Jt
YXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6Okh0bWxE
b21DYW52YXMsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAg
ICAgICAgICB0ZXhTdWJJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCB4b2Zmc2V0LCB5b2Zmc2V0
LCBmb3JtYXQsIHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6
OkRPTVNvdXJjZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxw
aGEpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00
MDkxLDcgKzQwNjAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRAogICAgICAgICBSZWZQdHI8
SW1hZ2U+IGltYWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVy
OjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAg
IHJldHVybiB7IH07Ci0gICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhv
ZmZzZXQsIHlvZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4
dDNEOjpIdG1sRG9tVmlkZW8sIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBo
YSk7CisgICAgICAgIHRleFN1YkltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIHhvZmZzZXQsIHlv
ZmZzZXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpET01T
b3VyY2U6OlZpZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwog
ICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICNlbmRpZgpAQCAtNDUzNyw3ICs0NTA2LDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dGV4SW1hZ2UyRChH
QzNEZW51bSB0YXJnZXQsIEdDM0RpbnQKICAgICAgICAgLy8gTm9ybWFsIHB1cmUgU1cgcGF0aC4K
ICAgICAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGJ1ZmZlci0+Y29weUltYWdlKEltYWdlQnVm
ZmVyOjpmYXN0Q29weUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKGltYWdlKQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgaW1hZ2UuZ2V0KCksIEdyYXBoaWNzQ29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CisgICAgICAgICAgICB0ZXhJbWFn
ZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBpbWFn
ZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6SW1hZ2UsIG1fdW5wYWNrRmxp
cFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAg
fSwgWyZdKGNvbnN0IFJlZlB0cjxJbWFnZURhdGE+JiBwaXhlbHMpIC0+IEV4Y2VwdGlvbk9yPHZv
aWQ+IHsKICAgICAgICAgaWYgKGlzQ29udGV4dExvc3RPclBlbmRpbmcoKSB8fCAhdmFsaWRhdGVU
ZXhGdW5jKCJ0ZXhJbWFnZTJEIiwgVGV4SW1hZ2UsIFNvdXJjZUltYWdlRGF0YSwgdGFyZ2V0LCBs
ZXZlbCwgaW50ZXJuYWxmb3JtYXQsIHBpeGVscy0+d2lkdGgoKSwgcGl4ZWxzLT5oZWlnaHQoKSwg
MCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKQEAgLTQ1NzksNyArNDU0OCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnRleEltYWdlMkQoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEaW50CiAgICAgICAgIGlmICghaW1hZ2VGb3JSZW5kZXIgfHwgIXZhbGlkYXRlVGV4
RnVuYygidGV4SW1hZ2UyRCIsIFRleEltYWdlLCBTb3VyY2VIVE1MSW1hZ2VFbGVtZW50LCB0YXJn
ZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgaW1hZ2VGb3JSZW5kZXItPndpZHRoKCksIGltYWdl
Rm9yUmVuZGVyLT5oZWlnaHQoKSwgMCwgZm9ybWF0LCB0eXBlLCAwLCAwKSkKICAgICAgICAgICAg
IHJldHVybiB7IH07CiAKLSAgICAgICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50
ZXJuYWxmb3JtYXQsIGZvcm1hdCwgdHlwZSwgaW1hZ2VGb3JSZW5kZXIuZ2V0KCksIEdyYXBoaWNz
Q29udGV4dDNEOjpIdG1sRG9tSW1hZ2UsIG1fdW5wYWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlw
bHlBbHBoYSk7CisgICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFs
Zm9ybWF0LCBmb3JtYXQsIHR5cGUsIGltYWdlRm9yUmVuZGVyLmdldCgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlOjpJbWFnZSwgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBs
eUFscGhhKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9LCBbJl0oY29uc3QgUmVmUHRyPEhU
TUxDYW52YXNFbGVtZW50PiYgY2FudmFzKSAtPiBFeGNlcHRpb25Pcjx2b2lkPiB7CiAgICAgICAg
IGlmIChpc0NvbnRleHRMb3N0T3JQZW5kaW5nKCkpCkBAIC00NjE1LDcgKzQ1ODQsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJbWFnZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBpZiAoaW1hZ2VEYXRhKQogICAgICAgICAgICAg
dGV4SW1hZ2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBlLCBU
ZXhJbWFnZVNvdXJjZShpbWFnZURhdGEuZ2V0KCkpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgdGV4SW1hZ2UyREltcGwodGFyZ2V0LCBsZXZlbCwgaW50ZXJuYWxmb3JtYXQsIGZvcm1hdCwg
dHlwZSwgY2FudmFzLT5jb3BpZWRJbWFnZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbUNh
bnZhcywgbV91bnBhY2tGbGlwWSwgbV91bnBhY2tQcmVtdWx0aXBseUFscGhhKTsKKyAgICAgICAg
ICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCBmb3JtYXQs
IHR5cGUsIGNhbnZhcy0+Y29waWVkSW1hZ2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJj
ZTo6Q2FudmFzLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOwogICAg
ICAgICByZXR1cm4geyB9OwogICAgIH0KICNpZiBFTkFCTEUoVklERU8pCkBAIC00NjUyLDcgKzQ2
MjEsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp0ZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludAogICAgICAgICBSZWZQdHI8SW1hZ2U+IGlt
YWdlID0gdmlkZW9GcmFtZVRvSW1hZ2UodmlkZW8uZ2V0KCksIEltYWdlQnVmZmVyOjpmYXN0Q29w
eUltYWdlTW9kZSgpKTsKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIHJldHVybiB7
IH07Ci0gICAgICAgIHRleEltYWdlMkRJbXBsKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0
LCBmb3JtYXQsIHR5cGUsIGltYWdlLmdldCgpLCBHcmFwaGljc0NvbnRleHQzRDo6SHRtbERvbVZp
ZGVvLCBtX3VucGFja0ZsaXBZLCBtX3VucGFja1ByZW11bHRpcGx5QWxwaGEpOworICAgICAgICB0
ZXhJbWFnZTJESW1wbCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgZm9ybWF0LCB0eXBl
LCBpbWFnZS5nZXQoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNvdXJjZTo6VmlkZW8sIG1fdW5w
YWNrRmxpcFksIG1fdW5wYWNrUHJlbXVsdGlwbHlBbHBoYSk7CiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgfQogI2VuZGlmCkBAIC01MzkwLDExICs1MzU5LDEwIEBAIHZvaWQgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZTo6Y3JlYXRlRmFsbGJhY2tCbGFja1RleHR1cmVzMXgxKCkKICAgICBtX2Nv
bnRleHQtPmJpbmRUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFX0NVQkVfTUFQLCAw
KTsKIH0KIAotYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjppc1RleEludGVybmFsRm9y
bWF0Q29sb3JCdWZmZXJDb21iaW5hdGlvblZhbGlkKEdDM0RlbnVtIHRleEludGVybmFsRm9ybWF0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0MzRGVudW0gY29sb3JCdWZmZXJGb3JtYXQpCitib29sIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmlzVGV4SW50ZXJuYWxGb3JtYXRDb2xvckJ1ZmZlckNv
bWJpbmF0aW9uVmFsaWQoR0MzRGVudW0gdGV4SW50ZXJuYWxGb3JtYXQsIEdDM0RlbnVtIGNvbG9y
QnVmZmVyRm9ybWF0KQogewotICAgIHVuc2lnbmVkIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6
Z2V0Q2hhbm5lbEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7Ci0gICAgdW5zaWduZWQg
aGF2ZSA9IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDaGFubmVsQml0c0J5Rm9ybWF0KGNvbG9yQnVm
ZmVyRm9ybWF0KTsKKyAgICBhdXRvIG5lZWQgPSBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2hhbm5l
bEJpdHNCeUZvcm1hdCh0ZXhJbnRlcm5hbEZvcm1hdCk7CisgICAgYXV0byBoYXZlID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoY29sb3JCdWZmZXJGb3JtYXQpOwog
ICAgIHJldHVybiAobmVlZCAmIGhhdmUpID09IG5lZWQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAppbmRleCA1
OWEwYzA3ZDVlZDUzOTNiMmJlMTI5YWRmZjgyZTdhMDEwZGRmYWUyLi5jYjg3MmUxZjA0ODRlNjBj
ZWM2MGIxODU4ZjI3MmFmOWFjMmUzMzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC02NDQsOSArNjQ0LDkg
QEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZVN0YXRlQWZ0ZXJDbGVhcigpOwogCiAgICAg
dm9pZCB0ZXhJbWFnZTJEQmFzZShHQzNEZW51bSB0YXJnZXQsIEdDM0RpbnQgbGV2ZWwsIEdDM0Rl
bnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdD
M0RpbnQgYm9yZGVyLCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIGNvbnN0IHZvaWQq
IHBpeGVscyk7Ci0gICAgdm9pZCB0ZXhJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0Rl
bnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlSHRtbERvbVNvdXJjZSwg
Ym9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKKyAgICB2b2lkIHRleEltYWdlMkRJ
bXBsKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgSW1hZ2UqLCBHcmFwaGljc0NvbnRl
eHQzRDo6RE9NU291cmNlLCBib29sIGZsaXBZLCBib29sIHByZW11bHRpcGx5QWxwaGEpOwogICAg
IHZvaWQgdGV4U3ViSW1hZ2UyREJhc2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gZm9ybWF0LCBHQzNE
ZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotICAgIHZvaWQgdGV4U3ViSW1hZ2UyRElt
cGwoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0Rp
bnQgeW9mZnNldCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJbWFnZSosIEdyYXBo
aWNzQ29udGV4dDNEOjpJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgZmxpcFksIGJvb2wgcHJlbXVs
dGlwbHlBbHBoYSk7CisgICAgdm9pZCB0ZXhTdWJJbWFnZTJESW1wbChHQzNEZW51bSB0YXJnZXQs
IEdDM0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEZW51
bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIEltYWdlKiwgR3JhcGhpY3NDb250ZXh0M0Q6OkRPTVNv
dXJjZSwgYm9vbCBmbGlwWSwgYm9vbCBwcmVtdWx0aXBseUFscGhhKTsKIAogICAgIGJvb2wgY2hl
Y2tUZXh0dXJlQ29tcGxldGVuZXNzKGNvbnN0IGNoYXIqLCBib29sKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zvcm1hdENvbnZlcnRlci5jcHAKaW5kZXgg
MTBlMGQxN2JhYWZhYmI1Y2VjZDNhZDEzZmRmNWNhNmJmOWFjM2M1ZS4uMDllZWM3OGJhZGQwN2U4
Nzk0MTc3NDA1MzBlYTVjNTNhOWRkNjA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9ybWF0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb3JtYXRDb252ZXJ0ZXIuY3BwCkBAIC0xNzMsMTMgKzE3MywxMyBA
QCBpbmxpbmUgdW5zaWduZWQgc2hvcnQgY29udmVydEZsb2F0VG9IYWxmRmxvYXQoZmxvYXQgZikK
IAogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBQaXhlbCB1bnBhY2tpbmcgcm91dGluZXMuCi10ZW1wbGF0
ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVt
cGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3Vy
Y2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgogQUxXQVlTX0lOTElORSB2b2lkIHVucGFjayhjb25z
dCBTb3VyY2VUeXBlKiwgRHN0VHlwZSosIHVuc2lnbmVkKQogewogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwpAQCAtMTkxLDcgKzE5MSw3IEBAIHRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRCR1I4LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsg
KytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzJdOwpAQCAtMjAzLDcgKzIw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdC
OCwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhf
dCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBp
IDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2Vb
MV07CkBAIC0yMTUsNyArMjE1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5w
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QKICAgICB9CiB9
CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkFCR1I4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVszXTsKQEAgLTIyNyw3ICsyMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwg
dWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBjb25zdCB1aW50MzJfdCogc291cmNlMzIgPSByZWludGVycHJldF9jYXN0X3B0cjxj
b25zdCB1aW50MzJfdCo+KHNvdXJjZSk7CiAgICAgdWludDMyX3QqIGRlc3RpbmF0aW9uMzIgPSBy
ZWludGVycHJldF9jYXN0X3B0cjx1aW50MzJfdCo+KGRlc3RpbmF0aW9uKTsKQEAgLTI0NSw3ICsy
NDUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNTU1
MSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9J
TlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCQTU1NTFUb1JHQkE4KHNvdXJj
ZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0yNjQsNyArMjY0LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCQTU1NTEsIHVpbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1aW50MTZf
dCwgdWludDhfdD4oY29uc3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVu
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQsIHVpbnQxNl90LCB1
aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAg
ICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkE0NDQ0VG9SR0JBOChzb3VyY2UsIGRlc3RpbmF0aW9u
LCBwaXhlbHNQZXJSb3cpOwpAQCAtMjg0LDcgKzI4NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCB1
aW50CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50
MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVS
b3dPZlJHQjU2NVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTMwMyw3ICszMDMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIHVpbnQxNgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhf
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIHVp
bnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291
cmNlWzBdOwpAQCAtMzE1LDcgKzMxNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCB1aW50OF90LCB1CiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkE4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4
X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTMyNyw3ICszMjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIHVp
bnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjgsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdDo6QVI4LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAg
ICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVsxXTsKQEAgLTMzOSw3ICszMzksNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgdWludDhfdCwgdWlu
dDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyAr
K2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSAweDA7CkBAIC0zNTEsNyArMzUxLDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0QTgsIHVpbnQ4X3QsIHUKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4LCB1aW50
OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVu
c2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgsIHVpbnQ4X3QsIGZsb2F0Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CkBA
IC0zNjQsNyArMzY0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIHVpbnQ4X3QKICAgICB9CiB9CiAKLXRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEJHUkE4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgs
IHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0IGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CkBAIC0zNzcsNyArMzc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTgsIHVpbnQ4
X3QKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QUJHUjgsIHVpbnQ4X3QsIGZsb2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGNvbnN0
IGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIDI1NS4wZjsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKQEAgLTM5MCw3ICszOTAsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCwgdWludDhfdAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgsIHVpbnQ4X3QsIGZs
b2F0Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQg
cGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCOCwgdWludDhfdCwgZmxvYXQ+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1LjBmOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpAQCAtNDAzLDcgKzQw
Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEFSR0I4LCB1aW50OF90CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFM
V0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4
LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCOCwgdWludDhfdCwgZmxv
YXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gMjU1
LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewpA
QCAtNDE2LDcgKzQxNiw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIHVpbnQ4X3QsCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRCR1I4LCB1aW50OF90LCBmbG9hdD4oY29uc3QgdWludDhfdCogc291cmNlLCBmbG9h
dCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCwg
dWludDhfdCwgZmxvYXQ+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgY29uc3QgZmxvYXQgc2NhbGVGYWN0b3Ig
PSAxLjBmIC8gMjU1LjBmOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewpAQCAtNDI5LDcgKzQyOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjgsIHVpbnQ4X3QsCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDQxLDcgKzQ0MSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRiwgZmxvYXQs
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50
IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0g
PSBzb3VyY2VbMF07CkBAIC00NTMsNyArNDUzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRiwgZmxvYXQsIGYK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBz
b3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgdW5wYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSQTMyRiwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNDY1LDcgKzQ2NSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHVucGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBmbG9hdCwK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHVucGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OkEzMkYsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9
IDA7CkBAIC00ODEsMTMgKzQ4MSwxMyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCB1
bnBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGLCBmbG9hdCwgZgogLy8gUGl4
ZWwgcGFja2luZyByb3V0aW5lcy4KIC8vCiAKLXRlbXBsYXRlPGludCBmb3JtYXQsIGludCBhbHBo
YU9wLCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0LCBpbnQgYWxwaGFPcCwgdHlwZW5hbWUg
U291cmNlVHlwZSwgdHlwZW5hbWUgRHN0VHlwZT4KIEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrKGNv
bnN0IFNvdXJjZVR5cGUqLCBEc3RUeXBlKiwgdW5zaWduZWQpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBOCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWlu
dDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93
KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kp
IHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbM107CkBAIC00OTYsNyArNDk2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEE4LCBHcmFwaGljc0NvbnQKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWlu
dDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbMF07CkBAIC01MDUsNyArNTA1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0NvbnQKICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwg
dWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50
OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTUx
Nyw3ICs1MTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogfQogCiAvLyBGSVhNRTogdGhp
cyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlw
bHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTUyOCw3ICs1
MjgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25z
dCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlWzBdOwpAQCAtNTM4LDcgKzUzOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29u
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11
bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTgsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihj
b25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4w
ZjsKQEAgLTU1MSw3ICs1NTEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0NvbgogfQogCiAvLyBG
SVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4
X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpA
QCAtNTYzLDcgKzU2Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdyYXBoaWNzQ29uCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCB1aW50OF90LCB1
aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IHNvdXJjZVswXTsKQEAgLTU3NCw3ICs1NzQsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
OCwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ29udGV4dDNE
OjpBbHBoYURvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNv
dXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50
OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7
IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNv
dXJjZVszXSAvIDI1NS4wZjsKQEAgLTU5MCw3ICs1OTAsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFuZCBtdXN0IGJlIHJl
bW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1
aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsr
aSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNv
dXJjZVszXSA6IDEuMGY7CkBAIC02MDYsMTIgKzYwNiwxMiBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhp
Y3NDbwogfQogCiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDhfdD4oY29uc3Qg
dWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQogewogICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRp
cGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdIC8gMjU1LjBm
OwpAQCAtNjI4LDcgKzYyOCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiB9CiAKIC8vIEZJ
WE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4KLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50
OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
T3A6OkRvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBm
OwpAQCAtNjQ0LDcgKzY0NCw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOCwgR3JhcGhpY3NDCiAgICAgfQogfQog
Ci10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCiB7CiAjaWYgSEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnBhY2tPbmVS
b3dPZlJHQkE4VG9VbnNpZ25lZFNob3J0NDQ0NChzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQ
ZXJSb3cpOwpAQCAtNjU5LDcgKzY1OSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVs
dGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50
MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2ln
bmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNd
IC8gMjU1LjBmOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB9
CiAKIC8vIEZJWE1FOiB0aGlzIHJvdXRpbmUgaXMgbG9zc3kgYW5kIG11c3QgYmUgcmVtb3ZlZC4K
LXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1
aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJv
dzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKQEAgLTY5Miw3ICs2OTIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTQ0NDQs
IEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6
QWxwaGFEb05vdGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIHVpbnQ4X3Qs
IHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykK
ICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1NTEoc291cmNlLCBk
ZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTcwNyw3ICs3MDcsNyBAQCB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTU1NTEsIEdyYXBoaQogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE1NTUxLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0
aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3Qq
IGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25l
ZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2Fs
ZUZhY3RvciA9IHNvdXJjZVszXSAvIDI1NS4wZjsKQEAgLTcyNCw3ICs3MjQsNyBAQCB0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTU1NTEsIEdyYXBoaQogfQogCiAvLyBGSVhNRTogdGhpcyByb3V0aW5lIGlzIGxvc3N5IGFu
ZCBtdXN0IGJlIHJlbW92ZWQuCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJj
ZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgdWlu
dDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03NDAsNyArNzQwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0
IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05v
dGhpbmcsIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUoQVJNX05F
T05fSU5UUklOU0lDUykKICAgICBTSU1EOjpwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9y
dDU2NShzb3VyY2UsIGRlc3RpbmF0aW9uLCBwaXhlbHNQZXJSb3cpOwpAQCAtNzU0LDcgKzc1NCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4o
Y29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBp
eGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6
OkRvUHJlbXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZv
ciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gLyAyNTUuMGY7CkBAIC03NzAsNyArNzcwLDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIH0KIAogLy8gRklYTUU6IHRoaXMgcm91dGluZSBp
cyBsb3NzeSBhbmQgbXVzdCBiZSByZW1vdmVkLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhf
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjU2NSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBs
eSwgdWludDhfdCwgdWludDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
bnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZh
Y3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC03ODUsNyAr
Nzg1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0Iz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25z
dCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlJHQjMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGlu
ZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNl
WzBdOwpAQCAtNzk2LDcgKzc5Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5
LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwg
dW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFj
azxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291
cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBm
b3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtODA4LDcgKzgwOCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0IzMkYsIEdyYXBoaWNzCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNv
dXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0
ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0IzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0
LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25l
ZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhl
bHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/
IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODIxLDEyICs4MjEsMTIgQEAgdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QjMyRiwgR3JhcGhpY3MKIH0KIAogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JBOCBvciBCR1JBOCAt
PiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEz
MkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHBpeGVsc1BlclJvdyAq
IDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWNzQ29udGV4
dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJj
ZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQs
IGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVk
IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpA
QCAtODM5LDcgKzgzOSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9h
dCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTMyRiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBm
bG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVu
c2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC04
NTIsNyArODUyLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4o
Y29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3Ro
aW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3Vy
Y2VbM107CkBAIC04NjEsNyArODYxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYsIEdyYXBoaWNzQ28KICAgICB9
CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZs
b2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWdu
ZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRp
b25bMF0gPSBzb3VyY2VbMF07CkBAIC04NzAsNyArODcwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdyYXBo
aWNzQ28KICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFE
b1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRiwgR3JhcGhp
Y3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9hdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkg
ewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXTsKQEAgLTg4MCw3ICs4ODAs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UjMyRiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBm
bG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlIzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHks
IGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtODkwLDcgKzg5MCw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMzJGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNl
LCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
MzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nLCBmbG9hdCwgZmxvYXQ+
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VbMF07CkBAIC05MDAsNyAr
OTAwLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJBMzJGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4g
QUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIGZsb2F0Pihj
b25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1Bl
clJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9QcmVt
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdOwpAQCAtOTExLDcgKzkxMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRiwgR3JhcGhpY3ND
CiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5t
dWx0aXBseSwgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGLCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
ICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTkyMiw3ICs5MjIsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkYsIEdyYXBoaWNzQwogICAgIH0K
IH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywg
ZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRp
b24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYsIEdyYXBoaWNzQ29u
dGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQq
IHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAg
ICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsK
QEAgLTkzNCw3ICs5MzQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RiwgR3JhcGhpYwogICAgIH0KIH0KIAot
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZs
b2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBw
YWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFPcDo6RG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM107CkBAIC05NDcsNyArOTQ3LDcgQEAg
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkExNkYsIEdyYXBoaWMKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFw
aGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0JBMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Vbm11
bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
ciA9IHNvdXJjZVszXSA/IDEuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwpAQCAtOTYwLDcgKzk2MCw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBMTZGLCBHcmFwaGljCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBH
cmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3Qg
ZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhp
bmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29u
dmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCB0ZW1w
bGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMTZGLCBHcmFwaGljcwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3ND
b250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
K3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlw
bHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0g
c291cmNlWzNdOwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2
b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYsIEdyYXBoaWNzCiAg
ICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZGLCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYsIEdyYXBo
aWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29u
c3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQ
ZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJj
ZVszXSA6IDEuMGY7CkBAIC05OTUsNyArOTk1LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RiwgR3JhcGhpY3MK
ICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3Ro
aW5nLCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5F
IHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNz
Q29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcsIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBd
KTsKQEAgLTEwMDUsNyArMTAwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3JhcGhpY3NDCiAgICAgfQog
fQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHks
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvUHJlbXVsdGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxv
YXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
CiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAg
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdOwpAQCAtMTAxNiw3ICsxMDE2LDcg
QEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBMTZGLCBHcmFwaGljc0MKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlT
X0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0
IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVy
Um93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkExNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1VubXVs
dGlwbHksIGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CkBAIC0xMDI3LDcgKzEwMjcs
NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkExNkYsIEdyYXBoaWNzQwogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdB
WVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFIxNkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBm
bG9hdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb05vdGhpbmcs
IGZsb2F0LCB1aW50MTZfdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0
aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVy
dEZsb2F0VG9IYWxmRmxvYXQoc291cmNlWzBdKTsKQEAgLTEwMzYsNyArMTAzNiw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSMTZGLCBHcmFwaGljc0NvCiAgICAgfQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCog
c291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKK3Rl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIxNkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYU9wOjpEb1ByZW11bHRpcGx5LCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJj
ZVszXTsKQEAgLTEwNDYsNyArMTA0Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UjE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCBmbG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5h
dGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZv
aWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RiwgR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSwgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9h
dCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAxLjBmIC8gc291cmNlWzNdIDog
MS4wZjsKQEAgLTEwNTYsNyArMTA1Niw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lk
IHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGLCBHcmFwaGljc0NvCiAgICAg
fQogfQogCi10ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Ob3RoaW5nLCBm
bG9hdCwgdWludDE2X3Q+KGNvbnN0IGZsb2F0KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2RiwgR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhT3A6OkRvTm90aGluZywgZmxvYXQsIHVpbnQxNl90Pihjb25zdCBmbG9hdCogc291
cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAgICAg
ZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0RmxvYXRUb0hhbGZGbG9hdChzb3VyY2VbM10pOwpAQCAt
MTA2NSw1NyArMTA2NSw1NyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RiwgR3JhcGhpY3NDbwogICAgIH0KIH0KIAot
dGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0IEZvcm1hdD4KIHN0cnVjdCBJc0Zsb2F0Rm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9v
bCBWYWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkEzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0UkdCMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMzJGCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYKLSAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QTMyRjsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSR0JBMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdDo6UkdCMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkEzMkYKKyAgICAgICAgfHwgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSMzJGCisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QTMyRjsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0ZW1wbGF0ZTxH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgSXNIYWxmRmxvYXRG
b3JtYXQgewogICAgIHN0YXRpYyBjb25zdCBib29sIFZhbHVlID0KLSAgICAgICAgRm9ybWF0ID09
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkYKLSAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RgotICAgICAgICB8fCBGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOworICAgICAgICBGb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkYKKyAgICAgICAgfHwgRm9ybWF0
ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkYKKyAgICAgICAgfHwgRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RgorICAgICAgICB8fCBG
b3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkYKKyAgICAgICAgfHwg
Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogfTsKIAotdGVt
cGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
IEZvcm1hdD4KIHN0cnVjdCBJczE2YnBwRm9ybWF0IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCBW
YWx1ZSA9Ci0gICAgICAgIEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE1NTUxCi0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkE0NDQ0Ci0gICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJHQjU2NTsKKyAgICAgICAgRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0JBNTU1MQorICAgICAgICB8fCBGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXQ6OlJHQkE0NDQ0CisgICAgICAgIHx8IEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCNTY1OwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdCwgYm9vbCBJ
c0Zsb2F0ID0gSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSwgYm9vbCBJc0hhbGZGbG9hdCA9
IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlLCBib29sIElzMTZicHAgPSBJczE2YnBw
Rm9ybWF0PEZvcm1hdD46OlZhbHVlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQgRm9ybWF0LCBib29sIElzRmxvYXQgPSBJc0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVl
LCBib29sIElzSGFsZkZsb2F0ID0gSXNIYWxmRmxvYXRGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWUsIGJv
b2wgSXMxNmJwcCA9IElzMTZicHBGb3JtYXQ8Rm9ybWF0Pjo6VmFsdWU+CiBzdHJ1Y3QgRGF0YVR5
cGVGb3JGb3JtYXQgewogICAgIHR5cGVkZWYgdWludDhfdCBUeXBlOwogfTsKIAotdGVtcGxhdGU8
aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0IEZvcm1h
dD4KIHN0cnVjdCBEYXRhVHlwZUZvckZvcm1hdDxGb3JtYXQsIHRydWUsIGZhbHNlLCBmYWxzZT4g
ewogICAgIHR5cGVkZWYgZmxvYXQgVHlwZTsKIH07CiAKLXRlbXBsYXRlPGludCBGb3JtYXQ+Cit0
ZW1wbGF0ZTxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBGb3JtYXQ+CiBzdHJ1Y3QgRGF0
YVR5cGVGb3JGb3JtYXQ8Rm9ybWF0LCBmYWxzZSwgdHJ1ZSwgZmFsc2U+IHsKICAgICB0eXBlZGVm
IHVpbnQxNl90IFR5cGU7CiB9OwogCi10ZW1wbGF0ZTxpbnQgRm9ybWF0PgordGVtcGxhdGU8R3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgRm9ybWF0Pgogc3RydWN0IERhdGFUeXBlRm9yRm9y
bWF0PEZvcm1hdCwgZmFsc2UsIGZhbHNlLCB0cnVlPiB7CiAgICAgdHlwZWRlZiB1aW50MTZfdCBU
eXBlOwogfTsKIAotdGVtcGxhdGU8aW50IEZvcm1hdD4KK3RlbXBsYXRlPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0IEZvcm1hdD4KIHN0cnVjdCBJbnRlcm1lZGlhdGVGb3JtYXQgewotICAg
IHN0YXRpYyBjb25zdCBpbnQgVmFsdWUgPSAoSXNGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSB8
fCBJc0hhbGZGbG9hdEZvcm1hdDxGb3JtYXQ+OjpWYWx1ZSkgPyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkEzMkYgOiBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Owor
ICAgIHN0YXRpYyBjb25zdCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBWYWx1ZSA9IChJ
c0Zsb2F0Rm9ybWF0PEZvcm1hdD46OlZhbHVlIHx8IElzSGFsZkZsb2F0Rm9ybWF0PEZvcm1hdD46
OlZhbHVlKSA/IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGIDogR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogfTsKIAogCkBAIC0xMTI4LDI0ICsxMTI4
LDI0IEBAIHZvaWQgRm9ybWF0Q29udmVydGVyOjpjb252ZXJ0KEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0IHNyY0Zvcm1hdCwgR3JhcGhpY3NDCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNy
Y0Zvcm1hdD4oZHN0Rm9ybWF0LCBhbHBoYU9wKTsKIAogICAgICAgICBzd2l0Y2ggKHNyY0Zvcm1h
dCkgewotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBOCkKLSAgICAgICAgICAg
IEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFIzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVS
VEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkEzMkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4KQotICAgICAgICAgICAgRk9S
TUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
QkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JD
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjgpCi0gICAgICAgICAgICBG
T1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRBQkdSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRF
Ul9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4KQotICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9T
UkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JN
QVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4KQorICAgICAgICAgICAgRk9STUFU
Q09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpB
OCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMyRikKKyAgICAg
ICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UkE4KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRikKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4KQorICAg
ICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBUkdCOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NS
Q0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QUJHUjgpCisgICAgICAgICAg
ICBGT1JNQVRDT05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OkFSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QkdSQTgpCisgICAgICAgICAgICBGT1JNQVRD
T05WRVJURVJfQ0FTRV9TUkNGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE1NTUxKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfU1JDRk9STUFUKEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBNDQ0NCkKKyAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX1NSQ0ZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTMyRikKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICB9CkBAIC0xMTYwLDI0ICsxMTYwLDI0IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBG
b3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZHN0
Rm9yCiAgICAgICAgIHJldHVybiBjb252ZXJ0PFNyY0Zvcm1hdCwgRHN0Rm9ybWF0PihhbHBoYU9w
KTsKIAogICAgICAgICBzd2l0Y2ggKGRzdEZvcm1hdCkgewotICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjgpCi0g
ICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZGKQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNU
Rk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRikKLSAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9D
QVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEEzMkYpCi0gICAgICAg
ICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRSQTgpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQo
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2RikKLSAgICAgICAgICAgIEZPUk1BVENP
TlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMzJG
KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCOCkKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNF
X0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSkKLSAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJHQjE2RikKLSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRikKLSAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkE4KQotICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJU
RVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkYpCi0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FT
RV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGKQorICAgICAg
ICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSOCkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1B
VChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RikKKyAgICAgICAgICAgIEZPUk1B
VENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
UjMyRikKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTgpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkYpCisgICAg
ICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkEzMkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCkKKyAgICAgICAgICAgIEZP
Uk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkYpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RGT1JNQVQoR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBMzJGKQorICAgICAgICAgICAgRk9STUFUQ09O
VkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I4
KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjUpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJf
Q0FTRV9EU1RGT1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RikKKyAg
ICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCMzJGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
RFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCkKKyAgICAgICAg
ICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0RTVEZPUk1BVChHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTU1NTEpCisgICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9EU1RG
T1JNQVQoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE0NDQ0KQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9STUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpSR0JBMTZGKQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfRFNURk9S
TUFUKEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGKQogICAgICAgICBkZWZh
dWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIH0KQEAgLTEx
OTMsOSArMTE5Myw5IEBAIEFMV0FZU19JTkxJTkUgdm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZl
cnQoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3AgYWxwaGFPcCkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnQ8U3JjRm9ybWF0LCBEc3RGb3JtYXQsIGFscGhhT3A+KCk7CiAKICAgICAgICAgc3dpdGNo
IChhbHBoYU9wKSB7Ci0gICAgICAgICAgICBGT1JNQVRDT05WRVJURVJfQ0FTRV9BTFBIQU9QKEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykKLSAgICAgICAgICAgIEZPUk1BVENPTlZF
UlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9QcmVtdWx0aXBseSkK
LSAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhBT1AoR3JhcGhpY3NDb250ZXh0
M0Q6OkFscGhhRG9Vbm11bHRpcGx5KQorICAgICAgICAgICAgRk9STUFUQ09OVkVSVEVSX0NBU0Vf
QUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFPcDo6RG9Ob3RoaW5nKQorICAgICAgICAg
ICAgRk9STUFUQ09OVkVSVEVSX0NBU0VfQUxQSEFPUChHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFP
cDo6RG9QcmVtdWx0aXBseSkKKyAgICAgICAgICAgIEZPUk1BVENPTlZFUlRFUl9DQVNFX0FMUEhB
T1AoR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkKICAgICAgICAgZGVm
YXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9CkBAIC0x
MjA4LDcgKzEyMDgsNyBAQCBBTFdBWVNfSU5MSU5FX0VYQ0VQVF9NU1ZDIHZvaWQgRm9ybWF0Q29u
dmVydGVyOjpjb252ZXJ0KCkKIHsKICAgICAvLyBNYW55IGluc3RhbnRpYXRpb25zIG9mIHRoaXMg
dGVtcGxhdGUgZnVuY3Rpb24gd2lsbCBuZXZlciBiZSBlbnRlcmVkLCBzbyB3ZSB0cnkKICAgICAv
LyB0byByZXR1cm4gaW1tZWRpYXRlbHkgaW4gdGhlc2UgY2FzZXMgdG8gYXZvaWQgdGhlIGNvbXBp
bGVyIHRvIGdlbmVyYXRlIHVzZWxlc3MgY29kZS4KLSAgICBpZiAoU3JjRm9ybWF0ID09IERzdEZv
cm1hdCAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZykgewor
ICAgIGlmIChTcmNGb3JtYXQgPT0gRHN0Rm9ybWF0ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250
ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMjQsMjMgKzEyMjQsMjMgQEAgQUxXQVlT
X0lOTElORV9FWENFUFRfTVNWQyB2b2lkIEZvcm1hdENvbnZlcnRlcjo6Y29udmVydCgpCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gTGlrZXdpc2UsIG9ubHkgdGV4dHVyZXMgdXBsb2Fk
ZWQgZnJvbSBET00gZWxlbWVudHMgb3IgSW1hZ2VEYXRhIGNhbiBwb3NzaWJseSBoYXZlIHRvIGJl
IHVucHJlbXVsdGlwbGllZC4KLSAgICBpZiAoIXNyY0Zvcm1hdENvbWVzRnJvbURPTUVsZW1lbnRP
ckltYWdlRGF0YSAmJiBhbHBoYU9wID09IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0
aXBseSkgeworICAgIGlmICghc3JjRm9ybWF0Q29tZXNGcm9tRE9NRWxlbWVudE9ySW1hZ2VEYXRh
ICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvVW5tdWx0aXBseSkg
ewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICBpZiAoKCFHcmFwaGljc0NvbnRleHQzRDo6aGFzQWxwaGEoU3JjRm9ybWF0KSB8fCAhR3Jh
cGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKFNyY0Zvcm1hdCkgfHwgIUdyYXBoaWNzQ29udGV4dDNE
OjpoYXNDb2xvcihEc3RGb3JtYXQpKSAmJiBhbHBoYU9wICE9IEdyYXBoaWNzQ29udGV4dDNEOjpB
bHBoYURvTm90aGluZykgeworICAgIGlmICgoIUdyYXBoaWNzQ29udGV4dDNEOjpoYXNBbHBoYShT
cmNGb3JtYXQpIHx8ICFHcmFwaGljc0NvbnRleHQzRDo6aGFzQ29sb3IoU3JjRm9ybWF0KSB8fCAh
R3JhcGhpY3NDb250ZXh0M0Q6Omhhc0NvbG9yKERzdEZvcm1hdCkpICYmIGFscGhhT3AgIT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZykgewogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHR5cGVkZWYgdHlwZW5h
bWUgRGF0YVR5cGVGb3JGb3JtYXQ8U3JjRm9ybWF0Pjo6VHlwZSBTcmNUeXBlOwogICAgIHR5cGVk
ZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8RHN0Rm9ybWF0Pjo6VHlwZSBEc3RUeXBlOwot
ICAgIGNvbnN0IGludCBJbnRlcm1lZGlhdGVTcmNGb3JtYXQgPSBJbnRlcm1lZGlhdGVGb3JtYXQ8
RHN0Rm9ybWF0Pjo6VmFsdWU7CisgICAgY29uc3QgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgSW50ZXJtZWRpYXRlU3JjRm9ybWF0ID0gSW50ZXJtZWRpYXRlRm9ybWF0PERzdEZvcm1hdD46
OlZhbHVlOwogICAgIHR5cGVkZWYgdHlwZW5hbWUgRGF0YVR5cGVGb3JGb3JtYXQ8SW50ZXJtZWRp
YXRlU3JjRm9ybWF0Pjo6VHlwZSBJbnRlcm1lZGlhdGVTcmNUeXBlOwogICAgIGNvbnN0IHB0cmRp
ZmZfdCBzcmNTdHJpZGVJbkVsZW1lbnRzID0gbV9zcmNTdHJpZGUgLyBzaXplb2YoU3JjVHlwZSk7
CiAgICAgY29uc3QgcHRyZGlmZl90IGRzdFN0cmlkZUluRWxlbWVudHMgPSBtX2RzdFN0cmlkZSAv
IHNpemVvZihEc3RUeXBlKTsKLSAgICBjb25zdCBib29sIHRyaXZpYWxVbnBhY2sgPSAoU3JjRm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggJiYgIUlzRmxvYXRGb3Jt
YXQ8RHN0Rm9ybWF0Pjo6VmFsdWUgJiYgIUlzSGFsZkZsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZh
bHVlKSB8fCBTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OwotICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTggfHwgRHN0Rm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0UkdCQTMyRikgJiYgYWxwaGFPcCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QWxw
aGFEb05vdGhpbmcgJiYgbV9kc3RTdHJpZGUgPiAwOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFVu
cGFjayA9IChTcmNGb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4
ICYmICFJc0Zsb2F0Rm9ybWF0PERzdEZvcm1hdD46OlZhbHVlICYmICFJc0hhbGZGbG9hdEZvcm1h
dDxEc3RGb3JtYXQ+OjpWYWx1ZSkgfHwgU3JjRm9ybWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBMzJGOworICAgIGNvbnN0IGJvb2wgdHJpdmlhbFBhY2sgPSAoRHN0Rm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBOCB8fCBEc3RGb3JtYXQg
PT0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkYpICYmIGFscGhhT3AgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRvTm90aGluZyAmJiBtX2RzdFN0cmlkZSA+IDA7
CiAgICAgQVNTRVJUKCF0cml2aWFsVW5wYWNrIHx8ICF0cml2aWFsUGFjayk7CiAKICAgICBjb25z
dCBTcmNUeXBlICpzcmNSb3dTdGFydCA9IHN0YXRpY19jYXN0PGNvbnN0IFNyY1R5cGUqPihtX3Ny
Y1N0YXJ0KTsKQEAgLTEyNjMsOSArMTI2Myw5IEBAIEFMV0FZU19JTkxJTkVfRVhDRVBUX01TVkMg
dm9pZCBGb3JtYXRDb252ZXJ0ZXI6OmNvbnZlcnQoKQogICAgICAgICB9CiAgICAgfSBlbHNlIHsK
ICNpZiBVU0UoQUNDRUxFUkFURSkKLSAgICAgICAgaWYgKFNyY0Zvcm1hdCA9PSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQkE4Ci0gICAgICAgICAgICAmJiBEc3RGb3JtYXQgPT0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBOAotICAgICAgICAgICAgJiYgYWxwaGFPcCA9
PSBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHkpIHsKKyAgICAgICAgaWYgKFNy
Y0Zvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgKKyAgICAgICAg
ICAgICYmIERzdEZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTgK
KyAgICAgICAgICAgICYmIGFscGhhT3AgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhT3A6OkRv
VW5tdWx0aXBseSkgewogICAgICAgICAgICAgdkltYWdlX0J1ZmZlciBzcmM7CiAgICAgICAgICAg
ICBzcmMud2lkdGggPSBtX3dpZHRoOwogICAgICAgICAgICAgc3JjLmhlaWdodCA9IG1faGVpZ2h0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuY3BwCmluZGV4IDQ4OTQ3NDcyYTg0ZjI1Nzg2NDZjNmQ5OTk2ZjUwMzI0OGM2NmVi
NjIuLjQ2MWM1NzFlOWMzNDI5OTY5MjNhYWFhZDUyYjlhNTY2M2ZmYmIzNjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5j
cHAKQEAgLTQ0LDY2ICs0NCw2NiBAQCBuYW1lc3BhY2UgewogCiBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdCBnZXREYXRhRm9ybWF0KEdDM0RlbnVtIGRlc3RpbmF0aW9uRm9ybWF0LCBHQzNE
ZW51bSBkZXN0aW5hdGlvblR5cGUpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODsKKyAgICBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgc3dpdGNoIChkZXN0aW5hdGlvblR5cGUpIHsKICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFOgogICAgICAgICBzd2l0Y2gg
KGRlc3RpbmF0aW9uRm9ybWF0KSB7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0I4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OlJHQkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBODsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1JTkFOQ0U6Ci0gICAgICAgICAgICBkc3RGb3Jt
YXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4OworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToKLSAg
ICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4Owor
ICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJB
ODsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpT
UkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0I4OworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQjg7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6U1JHQl9BTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTg7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlVOU0lHTkVEX1NI
T1JUXzRfNF80XzQ6Ci0gICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTQ0NDQ7CisgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0OjpSR0JBNDQ0NDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6VU5TSUdORURfU0hPUlRfNV81XzVfMToKLSAgICAgICAgZHN0Rm9ybWF0ID0gR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MTsKKyAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE1NTUxOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9TSE9SVF81XzZfNToKLSAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjU7CisgICAg
ICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0I1NjU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkhBTEZfRkxPQVRfT0VT
OiAvLyBPRVNfdGV4dHVyZV9oYWxmX2Zsb2F0CiAgICAgICAgIHN3aXRjaCAoZGVzdGluYXRpb25G
b3JtYXQpIHsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkY7CisgICAg
ICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZG
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QkE6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQkExNkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCQTE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpBTFBIQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0QTE2RjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpBMTZGOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICAgICAgICAgIGRzdEZvcm1h
dCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2RjsKKyAgICAgICAgICAgIGRzdEZv
cm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSMTZGOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRV9BTFBIQToK
LSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEx
NkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkExNkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6U1JHQjoKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRm9ybWF0UkdCMTZGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OlJHQjE2RjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0g
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZGOworICAgICAgICAgICAgZHN0Rm9y
bWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkExNkY7CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpAQCAtMTEyLDI1ICsxMTIsMjUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQg
Z2V0RGF0YUZvcm1hdChHQzNEZW51bSBkZXN0aW5hdGlvbkZvcm1hdCwgR0MzRGVudW0KICAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpGTE9BVDogLy8gT0VTX3RleHR1cmVfZmxvYXQKICAgICAg
ICAgc3dpdGNoIChkZXN0aW5hdGlvbkZvcm1hdCkgewogICAgICAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpSR0I6Ci0gICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQjMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0OjpSR0IzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMzJGOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkFMUEhBOgotICAgICAgICAgICAg
ZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMzJGOworICAgICAgICAg
ICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkEzMkY7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNF
OgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
MzJGOworICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlIzMkY7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAgICAgICAgICAgZHN0Rm9ybWF0ID0gR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMyRjsKKyAgICAgICAgICAgIGRzdEZvcm1hdCA9IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTUkdCOgotICAgICAgICAgICAgZHN0Rm9ybWF0
ID0gR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IzMkY7CisgICAgICAgICAgICBkc3RG
b3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMzJGOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlNSR0JfQUxQSEE6Ci0g
ICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEz
MkY7CisgICAgICAgICAgICBkc3RGb3JtYXQgPSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCQTMyRjsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBkZWZhdWx0OgogICAgICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CkBAIC0zNjAsNyArMzYwLDcgQEAgR0MzRGVudW0g
R3JhcGhpY3NDb250ZXh0M0Q6OmNvbXB1dGVJbWFnZVNpemVJbkJ5dGVzKEdDM0RlbnVtIGZvcm1h
dCwgR0MzRGVudW0gdHkKICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6Ok5PX0VSUk9SOwog
fQogCi1HcmFwaGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OkltYWdlRXh0cmFjdG9yKElt
YWdlKiBpbWFnZSwgSW1hZ2VIdG1sRG9tU291cmNlIGltYWdlSHRtbERvbVNvdXJjZSwgYm9vbCBw
cmVtdWx0aXBseUFscGhhLCBib29sIGlnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlKQorR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpJbWFnZUV4dHJhY3RvcihJbWFnZSogaW1hZ2Us
IERPTVNvdXJjZSBpbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9v
bCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSkKIHsKICAgICBtX2ltYWdlID0gaW1hZ2U7CiAg
ICAgbV9pbWFnZUh0bWxEb21Tb3VyY2UgPSBpbWFnZUh0bWxEb21Tb3VyY2U7CkBAIC0zOTgsNyAr
Mzk4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdEltYWdlRGF0YShJbWFnZURh
dGEqIGltYWdlRGF0YSwgR0MzRGVudW0gZm9ybWF0LAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgZGF0YS5yZXNpemUocGFja2VkU2l6ZSk7CiAKLSAgICBpZiAoIXBhY2tQaXhlbHMoaW1hZ2VE
YXRhLT5kYXRhKCktPmRhdGEoKSwgRGF0YUZvcm1hdFJHQkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBm
b3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYURvUHJlbXVsdGlwbHkgOiBBbHBo
YURvTm90aGluZywgZGF0YS5kYXRhKCksIGZsaXBZKSkKKyAgICBpZiAoIXBhY2tQaXhlbHMoaW1h
Z2VEYXRhLT5kYXRhKCktPmRhdGEoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJH
QkE4LCB3aWR0aCwgaGVpZ2h0LCAwLCBmb3JtYXQsIHR5cGUsIHByZW11bHRpcGx5QWxwaGEgPyBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5IDogQWxwaGFPcDo6RG9Ob3RoaW5nLCBkYXRhLmRhdGEoKSwg
ZmxpcFkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQx
Niw3ICs0MTYsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpleHRyYWN0VGV4dHVyZURhdGEo
dW5zaWduZWQgaW50IHdpZHRoLCB1bnNpZ25lZCBpbnQgaGVpZwogICAgIHVuc2lnbmVkIGludCBi
eXRlc1BlclBpeGVsID0gY29tcG9uZW50c1BlclBpeGVsICogYnl0ZXNQZXJDb21wb25lbnQ7CiAg
ICAgZGF0YS5yZXNpemUod2lkdGggKiBoZWlnaHQgKiBieXRlc1BlclBpeGVsKTsKIAotICAgIGlm
ICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNl
RGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwgdW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUs
IChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFEb1ByZW11bHRpcGx5IDogQWxwaGFEb05vdGhpbmcp
LCBkYXRhLmRhdGEoKSwgZmxpcFkpKQorICAgIGlmICghcGFja1BpeGVscyhzdGF0aWNfY2FzdDxj
b25zdCB1aW50OF90Kj4ocGl4ZWxzKSwgc291cmNlRGF0YUZvcm1hdCwgd2lkdGgsIGhlaWdodCwg
dW5wYWNrQWxpZ25tZW50LCBmb3JtYXQsIHR5cGUsIChwcmVtdWx0aXBseUFscGhhID8gQWxwaGFP
cDo6RG9QcmVtdWx0aXBseSA6IEFscGhhT3A6OkRvTm90aGluZyksIGRhdGEuZGF0YSgpLCBmbGlw
WSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAtNDI1LDM2
ICs0MjUsMzYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6ZXh0cmFjdFRleHR1cmVEYXRhKHVu
c2lnbmVkIGludCB3aWR0aCwgdW5zaWduZWQgaW50IGhlaWcKIEFMV0FZU19JTkxJTkUgdW5zaWdu
ZWQgVGV4ZWxCeXRlc0ZvckZvcm1hdChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBmb3Jt
YXQpCiB7CiAgICAgc3dpdGNoIChmb3JtYXQpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0Ujg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlI4OgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4OgogICAgICAgICByZXR1cm4gMTsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkE1NTUxOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNDQ0NDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdC
QTU1NTE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCNTY1OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkY6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2RjoKICAgICAgICAgcmV0dXJuIDI7Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkdCODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpC
R1I4OgogICAgICAgICByZXR1cm4gMzsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0UkdCQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0I4
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QkdSQTg6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFIzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdEEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkE4OgorICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFSR0I4OgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkFCR1I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlIzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTMy
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2RjoKICAgICAg
ICAgcmV0dXJuIDQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2
RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkY6CiAgICAg
ICAgIHJldHVybiA2OwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2RjoKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTMyRjoKKyAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZGOgogICAgICAgICByZXR1cm4gODsKLSAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMzJGOgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQjMyRjoKICAgICAgICAgcmV0dXJuIDEyOwot
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJHQkEzMkY6CiAgICAgICAgIHJldHVybiAx
NjsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gMDsKQEAgLTQ5Nyw5ICs0OTcsOSBAQCBi
b29sIEdyYXBoaWNzQ29udGV4dDNEOjpwYWNrUGl4ZWxzKGNvbnN0IHVpbnQ4X3QqIHNvdXJjZURh
dGEsIERhdGFGb3JtYXQgc291cmNlRAogICAgICAgICBkc3RTdHJpZGUgPSAtZHN0U3RyaWRlOwog
ICAgIH0KICAgICBpZiAoIWhhc0FscGhhKHNvdXJjZURhdGFGb3JtYXQpIHx8ICFoYXNDb2xvcihz
b3VyY2VEYXRhRm9ybWF0KSB8fCAhaGFzQ29sb3IoZHN0RGF0YUZvcm1hdCkpCi0gICAgICAgIGFs
cGhhT3AgPSBBbHBoYURvTm90aGluZzsKKyAgICAgICAgYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90
aGluZzsKIAotICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRzdERhdGFGb3JtYXQgJiYgYWxw
aGFPcCA9PSBBbHBoYURvTm90aGluZykgeworICAgIGlmIChzb3VyY2VEYXRhRm9ybWF0ID09IGRz
dERhdGFGb3JtYXQgJiYgYWxwaGFPcCA9PSBBbHBoYU9wOjpEb05vdGhpbmcpIHsKICAgICAgICAg
Y29uc3QgdWludDhfdCogcHRyID0gc291cmNlRGF0YTsKICAgICAgICAgY29uc3QgdWludDhfdCog
cHRyRW5kID0gc291cmNlRGF0YSArIHNyY1N0cmlkZSAqIGhlaWdodDsKICAgICAgICAgdW5zaWdu
ZWQgcm93U2l6ZSA9IChkc3RTdHJpZGUgPiAwKSA/IGRzdFN0cmlkZTogLWRzdFN0cmlkZTsKQEAg
LTUxOSwxNDMgKzUxOSw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnBhY2tQaXhlbHMoY29u
c3QgdWludDhfdCogc291cmNlRGF0YSwgRGF0YUZvcm1hdCBzb3VyY2VECiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXVuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRDbGVhckJpdHNCeUF0dGFj
aG1lbnRUeXBlKEdDM0RlbnVtIGF0dGFjaG1lbnQpCi17Ci0gICAgc3dpdGNoIChhdHRhY2htZW50
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Q09MT1JfQVRUQUNITUVOVDA6Ci0gICAg
Y2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxX0VYVDoKLSAgICBjYXNlIEV4dGVu
c2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDJfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpD
T0xPUl9BVFRBQ0hNRU5UM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFD
SE1FTlQ0X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDVfRVhU
OgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UNl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ3X0VYVDoKLSAgICBjYXNlIEV4dGVuc2lv
bnMzRDo6Q09MT1JfQVRUQUNITUVOVDhfRVhUOgotICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xP
Ul9BVFRBQ0hNRU5UOV9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1F
TlQxMF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMV9FWFQ6
Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxMl9FWFQ6Ci0gICAgY2Fz
ZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxM19FWFQ6Ci0gICAgY2FzZSBFeHRlbnNp
b25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQxNF9FWFQ6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNP
TE9SX0FUVEFDSE1FTlQxNV9FWFQ6Ci0gICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6
Q09MT1JfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9BVFRB
Q0hNRU5UOgotICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9C
SVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1RFTkNJTF9BVFRBQ0hNRU5UOgotICAg
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OlNURU5DSUxfQlVGRkVSX0JJVDsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29u
dGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgfQotfQotCi11bnNpZ25lZCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q2xlYXJCaXRz
QnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OlJHQkE6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFX0FMUEhBOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkxVTUlOQU5DRToKLSAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEOjpBTFBIQToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSODoKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSOF9TTk9STToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSMTZGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlIzMkY6Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UjhVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSOEk6Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjE2VUk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UjE2SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSMzJVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSMzJJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
ODoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzhfU05PUk06Ci0gICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6UkcxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkczMkY6
Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Ukc4VUk6Ci0gICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzRDo6Ukc4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSRzE2VUk6Ci0gICAg
Y2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkcxNkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkczMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHMzJJOgotICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OlJHQjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6U1JH
Qjg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1OgotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OlJHQjhfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UjEx
Rl9HMTFGX0IxMEY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCOV9FNToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0IxNkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCMzJGOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjhVSToKLSAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEOjpSR0I4SToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpS
R0IxNlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQjE2SToKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpSR0IzMlVJOgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJH
QjMySToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBODoKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpTUkdCOF9BTFBIQTg6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
UkdCQThfU05PUk06Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNV9BMToKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
OjpSR0IxMF9BMjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZGOgotICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkY6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQThVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBOEk6Ci0gICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCMTBfQTJVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEOjpSR0JBMTZVSToKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0JBMTZJOgotICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEzMkk6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6UkdCQTMyVUk6Ci0gICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhUOgotICAgIGNh
c2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpDT0xPUl9CVUZGRVJfQklUOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX0NPTVBPTkVOVDE2OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NP
TVBPTkVOVDI0OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDMy
RjoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSF9DT01QT05FTlQ6Ci0gICAgICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRDo6REVQVEhfQlVGRkVSX0JJVDsKLSAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lMX0lOREVYODoKLSAgICAgICAgcmV0dXJuIEdyYXBoaWNz
Q29udGV4dDNEOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6REVQVEhfU1RFTkNJTDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpERVBUSDI0X1NU
RU5DSUw4OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIMzJGX1NURU5DSUw4Ogot
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0JVRkZFUl9CSVQgfCBHcmFw
aGljc0NvbnRleHQzRDo6U1RFTkNJTF9CVUZGRVJfQklUOwotICAgIGRlZmF1bHQ6Ci0gICAgICAg
IHJldHVybiAwOwotICAgIH0KLX0KLQotdW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0Q6OmdldENo
YW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0gZm9ybWF0KQotewotICAgIHN3aXRjaCAoZm9ybWF0
KSB7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6QUxQSEE6Ci0gICAgICAgIHJldHVybiBD
aGFubmVsQWxwaGE7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6TFVNSU5BTkNFOgotICAg
ICAgICByZXR1cm4gQ2hhbm5lbFJHQjsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpMVU1J
TkFOQ0VfQUxQSEE6Ci0gICAgICAgIHJldHVybiBDaGFubmVsUkdCQTsKLSAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpSR0I6Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCNTY1Ogot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0VYVDoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxS
R0I7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQToKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSR0JBNDoKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSR0I1X0ExOgot
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKLSAgICAgICAgcmV0dXJuIENo
YW5uZWxSR0JBOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDE2
OgotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRFUFRIX0NPTVBPTkVOVDoKLSAgICAgICAg
cmV0dXJuIENoYW5uZWxEZXB0aDsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpTVEVOQ0lM
X0lOREVYODoKLSAgICAgICAgcmV0dXJuIENoYW5uZWxTdGVuY2lsOwotICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0Q6OkRFUFRIX1NURU5DSUw6Ci0gICAgICAgIHJldHVybiBDaGFubmVsRGVwdGgg
fCBDaGFubmVsU3RlbmNpbDsKLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gMDsKLSAgICB9
Ci19Ci0KICNpZiAhKFBMQVRGT1JNKENPQ09BKSAmJiAoVVNFKE9QRU5HTCkgfHwgVVNFKEFOR0xF
KSkpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKaW5kZXggYTNkMWRlMmNjMjdhNjY5MzdmZWUxZWQxNTI2YjUzM2ZiOGI3ZWM0Yy4u
OWU2ZjA3MmI2NTViOThkZDA0MmFjODU0NDVlMGNhYjM2MjA3NTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDksIDIwMTQtMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI4LDE5ICsyOCwxMyBAQAogI2lmIEVOQUJMRShXRUJHTCkKIAogI2luY2x1ZGUgIkFO
R0xFV2ViS2l0QnJpZGdlLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVz
LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NUeXBlczNELmgiCi0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dDNEQmFzZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3
dGYvSGFzaENvdW50ZWRTZXQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVBcnJheS5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgVVNFKENBKQogI2luY2x1ZGUgIlBsYXRm
b3JtQ0FMYXllci5oIgpAQCAtNTUsMjkgKzQ5LDEyIEBACiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotCiAjaWYgVVNFKE9QRU5HTF9FUykKICNpbmNsdWRlIDxPcGVuR0xFUy9FUzIvZ2wu
aD4KICNpZmRlZiBfX09CSkNfXwogI2ltcG9ydCA8T3BlbkdMRVMvRUFHTC5oPgotdHlwZWRlZiBF
QUdMQ29udGV4dCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLSNlbHNlCi10eXBlZGVmIHZv
aWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7CiAjZW5kaWYgLy8gX19PQkpDX18KICNlbmRp
ZiAvLyBVU0UoT1BFTkdMX0VTKQotCi0jaWYgVVNFKE9QRU5HTCkKLXR5cGVkZWYgc3RydWN0IF9D
R0xDb250ZXh0T2JqZWN0ICpDR0xDb250ZXh0T2JqOwotdHlwZWRlZiBDR0xDb250ZXh0T2JqIFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci0jZW5kaWYgLy8gVVNFKE9QRU5HTCkKLQotI2lmIFVT
RShBTkdMRSkKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRDsKLXR5cGVk
ZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRERpc3BsYXk7Ci10eXBlZGVmIHZvaWQq
IFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RTdXJmYWNlOwotdHlwZWRlZiB2b2lkKiBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEQ29uZmlnOwotI2VuZGlmIC8vIFVTRShBTkdMRSkKLQogT0JKQ19D
TEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwogdHlwZWRlZiBzdHJ1Y3QgX19J
T1N1cmZhY2UqIElPU3VyZmFjZVJlZjsKQEAgLTg5LDE2ICs2Niw2IEBAIGNsYXNzIEdDM0RMYXll
cjsKIH0KICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQotdHlwZWRlZiB1bnNpZ25lZCBH
THVpbnQ7Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Q7Ci10eXBlZGVm
IHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NTdXJmYWNlM0Q7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKENP
Q09BKQotCi0vLyBUaGVzZSBhcmUgY3VycmVudGx5IHRoZSBzYW1lIGFtb25nIGFsbCBpbXBsZW1l
bnRhdGlvbnMuCi1jb25zdCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIE51bGxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEID0gMDsKLWNvbnN0IFBsYXRmb3JtM0RPYmplY3QgTnVsbFBsYXRmb3Jt
M0RPYmplY3QgPSAwOwotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBFeHRlbnNpb25zM0Q7
CiAjaWYgVVNFKEFOR0xFKQpAQCAtMTA5LDI3ICs3NiwxNyBAQCBjbGFzcyBFeHRlbnNpb25zM0RP
cGVuR0xFUzsKIGNsYXNzIEV4dGVuc2lvbnMzRE9wZW5HTDsKICNlbmRpZgogY2xhc3MgSG9zdFdp
bmRvdzsKLWNsYXNzIEltYWdlOwogY2xhc3MgSW1hZ2VCdWZmZXI7CiBjbGFzcyBJbWFnZURhdGE7
Ci1jbGFzcyBJbnRSZWN0OwotY2xhc3MgSW50U2l6ZTsKLWNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U7CiAjaWYgVVNFKFRFWFRVUkVfTUFQUEVSKQogY2xhc3MgVGV4dHVyZU1hcHBlckdD
M0RQbGF0Zm9ybUxheWVyOwogI2VuZGlmCiAKIHR5cGVkZWYgV1RGOjpIYXNoTWFwPENTdHJpbmcs
IHVpbnQ2NF90PiBTaGFkZXJOYW1lSGFzaDsKIAotc3RydWN0IEFjdGl2ZUluZm8gewotICAgIFN0
cmluZyBuYW1lOwotICAgIEdDM0RlbnVtIHR5cGU7Ci0gICAgR0MzRGludCBzaXplOwotfTsKLQog
Y2xhc3MgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOwogCi1jbGFzcyBHcmFwaGljc0NvbnRleHQz
RCA6IHB1YmxpYyBSZWZDb3VudGVkPEdyYXBoaWNzQ29udGV4dDNEPiB7CitjbGFzcyBHcmFwaGlj
c0NvbnRleHQzRCA6IHB1YmxpYyBHcmFwaGljc0NvbnRleHQzREJhc2UgewogcHVibGljOgogICAg
IGNsYXNzIENsaWVudCB7CiAgICAgcHVibGljOgpAQCAtMTQwLDY1NCArOTcsMjUgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlv
bigpID0gMDsKICAgICB9OwogCi0gICAgZW51bSB7Ci0gICAgICAgIC8vIFdlYkdMIDEgY29uc3Rh
bnRzCi0gICAgICAgIERFUFRIX0JVRkZFUl9CSVQgPSAweDAwMDAwMTAwLAotICAgICAgICBTVEVO
Q0lMX0JVRkZFUl9CSVQgPSAweDAwMDAwNDAwLAotICAgICAgICBDT0xPUl9CVUZGRVJfQklUID0g
MHgwMDAwNDAwMCwKLSAgICAgICAgUE9JTlRTID0gMHgwMDAwLAotICAgICAgICBMSU5FUyA9IDB4
MDAwMSwKLSAgICAgICAgTElORV9MT09QID0gMHgwMDAyLAotICAgICAgICBMSU5FX1NUUklQID0g
MHgwMDAzLAotICAgICAgICBUUklBTkdMRVMgPSAweDAwMDQsCi0gICAgICAgIFRSSUFOR0xFX1NU
UklQID0gMHgwMDA1LAotICAgICAgICBUUklBTkdMRV9GQU4gPSAweDAwMDYsCi0gICAgICAgIFpF
Uk8gPSAwLAotICAgICAgICBPTkUgPSAxLAotICAgICAgICBTUkNfQ09MT1IgPSAweDAzMDAsCi0g
ICAgICAgIE9ORV9NSU5VU19TUkNfQ09MT1IgPSAweDAzMDEsCi0gICAgICAgIFNSQ19BTFBIQSA9
IDB4MDMwMiwKLSAgICAgICAgT05FX01JTlVTX1NSQ19BTFBIQSA9IDB4MDMwMywKLSAgICAgICAg
RFNUX0FMUEhBID0gMHgwMzA0LAotICAgICAgICBPTkVfTUlOVVNfRFNUX0FMUEhBID0gMHgwMzA1
LAotICAgICAgICBEU1RfQ09MT1IgPSAweDAzMDYsCi0gICAgICAgIE9ORV9NSU5VU19EU1RfQ09M
T1IgPSAweDAzMDcsCi0gICAgICAgIFNSQ19BTFBIQV9TQVRVUkFURSA9IDB4MDMwOCwKLSAgICAg
ICAgRlVOQ19BREQgPSAweDgwMDYsCi0gICAgICAgIEJMRU5EX0VRVUFUSU9OID0gMHg4MDA5LAot
ICAgICAgICBCTEVORF9FUVVBVElPTl9SR0IgPSAweDgwMDksCi0gICAgICAgIEJMRU5EX0VRVUFU
SU9OX0FMUEhBID0gMHg4ODNELAotICAgICAgICBGVU5DX1NVQlRSQUNUID0gMHg4MDBBLAotICAg
ICAgICBGVU5DX1JFVkVSU0VfU1VCVFJBQ1QgPSAweDgwMEIsCi0gICAgICAgIEJMRU5EX0RTVF9S
R0IgPSAweDgwQzgsCi0gICAgICAgIEJMRU5EX1NSQ19SR0IgPSAweDgwQzksCi0gICAgICAgIEJM
RU5EX0RTVF9BTFBIQSA9IDB4ODBDQSwKLSAgICAgICAgQkxFTkRfU1JDX0FMUEhBID0gMHg4MENC
LAotICAgICAgICBDT05TVEFOVF9DT0xPUiA9IDB4ODAwMSwKLSAgICAgICAgT05FX01JTlVTX0NP
TlNUQU5UX0NPTE9SID0gMHg4MDAyLAotICAgICAgICBDT05TVEFOVF9BTFBIQSA9IDB4ODAwMywK
LSAgICAgICAgT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBID0gMHg4MDA0LAotICAgICAgICBCTEVO
RF9DT0xPUiA9IDB4ODAwNSwKLSAgICAgICAgQVJSQVlfQlVGRkVSID0gMHg4ODkyLAotICAgICAg
ICBFTEVNRU5UX0FSUkFZX0JVRkZFUiA9IDB4ODg5MywKLSAgICAgICAgQVJSQVlfQlVGRkVSX0JJ
TkRJTkcgPSAweDg4OTQsCi0gICAgICAgIEVMRU1FTlRfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAw
eDg4OTUsCi0gICAgICAgIFNUUkVBTV9EUkFXID0gMHg4OEUwLAotICAgICAgICBTVEFUSUNfRFJB
VyA9IDB4ODhFNCwKLSAgICAgICAgRFlOQU1JQ19EUkFXID0gMHg4OEU4LAotICAgICAgICBCVUZG
RVJfU0laRSA9IDB4ODc2NCwKLSAgICAgICAgQlVGRkVSX1VTQUdFID0gMHg4NzY1LAotICAgICAg
ICBDVVJSRU5UX1ZFUlRFWF9BVFRSSUIgPSAweDg2MjYsCi0gICAgICAgIEZST05UID0gMHgwNDA0
LAotICAgICAgICBCQUNLID0gMHgwNDA1LAotICAgICAgICBGUk9OVF9BTkRfQkFDSyA9IDB4MDQw
OCwKLSAgICAgICAgVEVYVFVSRV8yRCA9IDB4MERFMSwKLSAgICAgICAgQ1VMTF9GQUNFID0gMHgw
QjQ0LAotICAgICAgICBCTEVORCA9IDB4MEJFMiwKLSAgICAgICAgRElUSEVSID0gMHgwQkQwLAot
ICAgICAgICBTVEVOQ0lMX1RFU1QgPSAweDBCOTAsCi0gICAgICAgIERFUFRIX1RFU1QgPSAweDBC
NzEsCi0gICAgICAgIFNDSVNTT1JfVEVTVCA9IDB4MEMxMSwKLSAgICAgICAgUE9MWUdPTl9PRkZT
RVRfRklMTCA9IDB4ODAzNywKLSAgICAgICAgU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFID0gMHg4
MDlFLAotICAgICAgICBTQU1QTEVfQ09WRVJBR0UgPSAweDgwQTAsCi0gICAgICAgIE5PX0VSUk9S
ID0gMCwKLSAgICAgICAgSU5WQUxJRF9FTlVNID0gMHgwNTAwLAotICAgICAgICBJTlZBTElEX1ZB
TFVFID0gMHgwNTAxLAotICAgICAgICBJTlZBTElEX09QRVJBVElPTiA9IDB4MDUwMiwKLSAgICAg
ICAgT1VUX09GX01FTU9SWSA9IDB4MDUwNSwKLSAgICAgICAgQ1cgPSAweDA5MDAsCi0gICAgICAg
IENDVyA9IDB4MDkwMSwKLSAgICAgICAgTElORV9XSURUSCA9IDB4MEIyMSwKLSAgICAgICAgQUxJ
QVNFRF9QT0lOVF9TSVpFX1JBTkdFID0gMHg4NDZELAotICAgICAgICBBTElBU0VEX0xJTkVfV0lE
VEhfUkFOR0UgPSAweDg0NkUsCi0gICAgICAgIENVTExfRkFDRV9NT0RFID0gMHgwQjQ1LAotICAg
ICAgICBGUk9OVF9GQUNFID0gMHgwQjQ2LAotICAgICAgICBERVBUSF9SQU5HRSA9IDB4MEI3MCwK
LSAgICAgICAgREVQVEhfV1JJVEVNQVNLID0gMHgwQjcyLAotICAgICAgICBERVBUSF9DTEVBUl9W
QUxVRSA9IDB4MEI3MywKLSAgICAgICAgREVQVEhfRlVOQyA9IDB4MEI3NCwKLSAgICAgICAgU1RF
TkNJTF9DTEVBUl9WQUxVRSA9IDB4MEI5MSwKLSAgICAgICAgU1RFTkNJTF9GVU5DID0gMHgwQjky
LAotICAgICAgICBTVEVOQ0lMX0ZBSUwgPSAweDBCOTQsCi0gICAgICAgIFNURU5DSUxfUEFTU19E
RVBUSF9GQUlMID0gMHgwQjk1LAotICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUyA9IDB4
MEI5NiwKLSAgICAgICAgU1RFTkNJTF9SRUYgPSAweDBCOTcsCi0gICAgICAgIFNURU5DSUxfVkFM
VUVfTUFTSyA9IDB4MEI5MywKLSAgICAgICAgU1RFTkNJTF9XUklURU1BU0sgPSAweDBCOTgsCi0g
ICAgICAgIFNURU5DSUxfQkFDS19GVU5DID0gMHg4ODAwLAotICAgICAgICBTVEVOQ0lMX0JBQ0tf
RkFJTCA9IDB4ODgwMSwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfRkFJTCA9IDB4
ODgwMiwKLSAgICAgICAgU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyA9IDB4ODgwMywKLSAg
ICAgICAgU1RFTkNJTF9CQUNLX1JFRiA9IDB4OENBMywKLSAgICAgICAgU1RFTkNJTF9CQUNLX1ZB
TFVFX01BU0sgPSAweDhDQTQsCi0gICAgICAgIFNURU5DSUxfQkFDS19XUklURU1BU0sgPSAweDhD
QTUsCi0gICAgICAgIFZJRVdQT1JUID0gMHgwQkEyLAotICAgICAgICBTQ0lTU09SX0JPWCA9IDB4
MEMxMCwKLSAgICAgICAgQ09MT1JfQ0xFQVJfVkFMVUUgPSAweDBDMjIsCi0gICAgICAgIENPTE9S
X1dSSVRFTUFTSyA9IDB4MEMyMywKLSAgICAgICAgVU5QQUNLX0FMSUdOTUVOVCA9IDB4MENGNSwK
LSAgICAgICAgUEFDS19BTElHTk1FTlQgPSAweDBEMDUsCi0gICAgICAgIE1BWF9URVhUVVJFX1NJ
WkUgPSAweDBEMzMsCi0gICAgICAgIE1BWF9WSUVXUE9SVF9ESU1TID0gMHgwRDNBLAotICAgICAg
ICBTVUJQSVhFTF9CSVRTID0gMHgwRDUwLAotICAgICAgICBSRURfQklUUyA9IDB4MEQ1MiwKLSAg
ICAgICAgR1JFRU5fQklUUyA9IDB4MEQ1MywKLSAgICAgICAgQkxVRV9CSVRTID0gMHgwRDU0LAot
ICAgICAgICBBTFBIQV9CSVRTID0gMHgwRDU1LAotICAgICAgICBERVBUSF9CSVRTID0gMHgwRDU2
LAotICAgICAgICBTVEVOQ0lMX0JJVFMgPSAweDBENTcsCi0gICAgICAgIFBPTFlHT05fT0ZGU0VU
X1VOSVRTID0gMHgyQTAwLAotICAgICAgICBQT0xZR09OX09GRlNFVF9GQUNUT1IgPSAweDgwMzgs
Ci0gICAgICAgIFRFWFRVUkVfQklORElOR18yRCA9IDB4ODA2OSwKLSAgICAgICAgU0FNUExFX0JV
RkZFUlMgPSAweDgwQTgsCi0gICAgICAgIFNBTVBMRVMgPSAweDgwQTksCi0gICAgICAgIFNBTVBM
RV9DT1ZFUkFHRV9WQUxVRSA9IDB4ODBBQSwKLSAgICAgICAgU0FNUExFX0NPVkVSQUdFX0lOVkVS
VCA9IDB4ODBBQiwKLSAgICAgICAgTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTID0gMHg4
NkEyLAotICAgICAgICBDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMywKLSAgICAg
ICAgRE9OVF9DQVJFID0gMHgxMTAwLAotICAgICAgICBGQVNURVNUID0gMHgxMTAxLAotICAgICAg
ICBOSUNFU1QgPSAweDExMDIsCi0gICAgICAgIEdFTkVSQVRFX01JUE1BUF9ISU5UID0gMHg4MTky
LAotICAgICAgICBCWVRFID0gMHgxNDAwLAotICAgICAgICBVTlNJR05FRF9CWVRFID0gMHgxNDAx
LAotICAgICAgICBTSE9SVCA9IDB4MTQwMiwKLSAgICAgICAgVU5TSUdORURfU0hPUlQgPSAweDE0
MDMsCi0gICAgICAgIElOVCA9IDB4MTQwNCwKLSAgICAgICAgVU5TSUdORURfSU5UID0gMHgxNDA1
LAotICAgICAgICBGTE9BVCA9IDB4MTQwNiwKLSAgICAgICAgSEFMRl9GTE9BVF9PRVMgPSAweDhE
NjEsCi0gICAgICAgIEZJWEVEID0gMHgxNDBDLAotICAgICAgICBERVBUSF9DT01QT05FTlQgPSAw
eDE5MDIsCi0gICAgICAgIEFMUEhBID0gMHgxOTA2LAotICAgICAgICBSR0IgPSAweDE5MDcsCi0g
ICAgICAgIFJHQkEgPSAweDE5MDgsCi0gICAgICAgIEJHUkEgPSAweDgwRTEsCi0gICAgICAgIExV
TUlOQU5DRSA9IDB4MTkwOSwKLSAgICAgICAgTFVNSU5BTkNFX0FMUEhBID0gMHgxOTBBLAotICAg
ICAgICBVTlNJR05FRF9TSE9SVF80XzRfNF80ID0gMHg4MDMzLAotICAgICAgICBVTlNJR05FRF9T
SE9SVF81XzVfNV8xID0gMHg4MDM0LAotICAgICAgICBVTlNJR05FRF9TSE9SVF81XzZfNSA9IDB4
ODM2MywKLSAgICAgICAgRlJBR01FTlRfU0hBREVSID0gMHg4QjMwLAotICAgICAgICBWRVJURVhf
U0hBREVSID0gMHg4QjMxLAotICAgICAgICBNQVhfVkVSVEVYX0FUVFJJQlMgPSAweDg4NjksCi0g
ICAgICAgIE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTID0gMHg4REZCLAotICAgICAgICBNQVhf
VkFSWUlOR19WRUNUT1JTID0gMHg4REZDLAotICAgICAgICBNQVhfQ09NQklORURfVEVYVFVSRV9J
TUFHRV9VTklUUyA9IDB4OEI0RCwKLSAgICAgICAgTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VO
SVRTID0gMHg4QjRDLAotICAgICAgICBNQVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4ODg3MiwK
LSAgICAgICAgTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGRCwKLSAgICAgICAg
U0hBREVSX1RZUEUgPSAweDhCNEYsCi0gICAgICAgIERFTEVURV9TVEFUVVMgPSAweDhCODAsCi0g
ICAgICAgIExJTktfU1RBVFVTID0gMHg4QjgyLAotICAgICAgICBWQUxJREFURV9TVEFUVVMgPSAw
eDhCODMsCi0gICAgICAgIEFUVEFDSEVEX1NIQURFUlMgPSAweDhCODUsCi0gICAgICAgIEFDVElW
RV9VTklGT1JNUyA9IDB4OEI4NiwKLSAgICAgICAgQUNUSVZFX1VOSUZPUk1fTUFYX0xFTkdUSCA9
IDB4OEI4NywKLSAgICAgICAgQUNUSVZFX0FUVFJJQlVURVMgPSAweDhCODksCi0gICAgICAgIEFD
VElWRV9BVFRSSUJVVEVfTUFYX0xFTkdUSCA9IDB4OEI4QSwKLSAgICAgICAgU0hBRElOR19MQU5H
VUFHRV9WRVJTSU9OID0gMHg4QjhDLAotICAgICAgICBDVVJSRU5UX1BST0dSQU0gPSAweDhCOEQs
Ci0gICAgICAgIE5FVkVSID0gMHgwMjAwLAotICAgICAgICBMRVNTID0gMHgwMjAxLAotICAgICAg
ICBFUVVBTCA9IDB4MDIwMiwKLSAgICAgICAgTEVRVUFMID0gMHgwMjAzLAotICAgICAgICBHUkVB
VEVSID0gMHgwMjA0LAotICAgICAgICBOT1RFUVVBTCA9IDB4MDIwNSwKLSAgICAgICAgR0VRVUFM
ID0gMHgwMjA2LAotICAgICAgICBBTFdBWVMgPSAweDAyMDcsCi0gICAgICAgIEtFRVAgPSAweDFF
MDAsCi0gICAgICAgIFJFUExBQ0UgPSAweDFFMDEsCi0gICAgICAgIElOQ1IgPSAweDFFMDIsCi0g
ICAgICAgIERFQ1IgPSAweDFFMDMsCi0gICAgICAgIElOVkVSVCA9IDB4MTUwQSwKLSAgICAgICAg
SU5DUl9XUkFQID0gMHg4NTA3LAotICAgICAgICBERUNSX1dSQVAgPSAweDg1MDgsCi0gICAgICAg
IFZFTkRPUiA9IDB4MUYwMCwKLSAgICAgICAgUkVOREVSRVIgPSAweDFGMDEsCi0gICAgICAgIFZF
UlNJT04gPSAweDFGMDIsCi0gICAgICAgIEVYVEVOU0lPTlMgPSAweDFGMDMsCi0gICAgICAgIE5F
QVJFU1QgPSAweDI2MDAsCi0gICAgICAgIExJTkVBUiA9IDB4MjYwMSwKLSAgICAgICAgTkVBUkVT
VF9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMCwKLSAgICAgICAgTElORUFSX01JUE1BUF9ORUFSRVNU
ID0gMHgyNzAxLAotICAgICAgICBORUFSRVNUX01JUE1BUF9MSU5FQVIgPSAweDI3MDIsCi0gICAg
ICAgIExJTkVBUl9NSVBNQVBfTElORUFSID0gMHgyNzAzLAotICAgICAgICBURVhUVVJFX01BR19G
SUxURVIgPSAweDI4MDAsCi0gICAgICAgIFRFWFRVUkVfTUlOX0ZJTFRFUiA9IDB4MjgwMSwKLSAg
ICAgICAgVEVYVFVSRV9XUkFQX1MgPSAweDI4MDIsCi0gICAgICAgIFRFWFRVUkVfV1JBUF9UID0g
MHgyODAzLAotICAgICAgICBURVhUVVJFID0gMHgxNzAyLAotICAgICAgICBURVhUVVJFX0NVQkVf
TUFQID0gMHg4NTEzLAotICAgICAgICBURVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVAgPSAweDg1MTQs
Ci0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWCA9IDB4ODUxNSwKLSAgICAgICAg
VEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YID0gMHg4NTE2LAotICAgICAgICBURVhUVVJFX0NV
QkVfTUFQX1BPU0lUSVZFX1kgPSAweDg1MTcsCi0gICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfTkVH
QVRJVkVfWSA9IDB4ODUxOCwKLSAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aID0g
MHg4NTE5LAotICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1ogPSAweDg1MUEsCi0g
ICAgICAgIE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkUgPSAweDg1MUMsCi0gICAgICAgIFRFWFRV
UkUwID0gMHg4NEMwLAotICAgICAgICBURVhUVVJFMSA9IDB4ODRDMSwKLSAgICAgICAgVEVYVFVS
RTIgPSAweDg0QzIsCi0gICAgICAgIFRFWFRVUkUzID0gMHg4NEMzLAotICAgICAgICBURVhUVVJF
NCA9IDB4ODRDNCwKLSAgICAgICAgVEVYVFVSRTUgPSAweDg0QzUsCi0gICAgICAgIFRFWFRVUkU2
ID0gMHg4NEM2LAotICAgICAgICBURVhUVVJFNyA9IDB4ODRDNywKLSAgICAgICAgVEVYVFVSRTgg
PSAweDg0QzgsCi0gICAgICAgIFRFWFRVUkU5ID0gMHg4NEM5LAotICAgICAgICBURVhUVVJFMTAg
PSAweDg0Q0EsCi0gICAgICAgIFRFWFRVUkUxMSA9IDB4ODRDQiwKLSAgICAgICAgVEVYVFVSRTEy
ID0gMHg4NENDLAotICAgICAgICBURVhUVVJFMTMgPSAweDg0Q0QsCi0gICAgICAgIFRFWFRVUkUx
NCA9IDB4ODRDRSwKLSAgICAgICAgVEVYVFVSRTE1ID0gMHg4NENGLAotICAgICAgICBURVhUVVJF
MTYgPSAweDg0RDAsCi0gICAgICAgIFRFWFRVUkUxNyA9IDB4ODREMSwKLSAgICAgICAgVEVYVFVS
RTE4ID0gMHg4NEQyLAotICAgICAgICBURVhUVVJFMTkgPSAweDg0RDMsCi0gICAgICAgIFRFWFRV
UkUyMCA9IDB4ODRENCwKLSAgICAgICAgVEVYVFVSRTIxID0gMHg4NEQ1LAotICAgICAgICBURVhU
VVJFMjIgPSAweDg0RDYsCi0gICAgICAgIFRFWFRVUkUyMyA9IDB4ODRENywKLSAgICAgICAgVEVY
VFVSRTI0ID0gMHg4NEQ4LAotICAgICAgICBURVhUVVJFMjUgPSAweDg0RDksCi0gICAgICAgIFRF
WFRVUkUyNiA9IDB4ODREQSwKLSAgICAgICAgVEVYVFVSRTI3ID0gMHg4NERCLAotICAgICAgICBU
RVhUVVJFMjggPSAweDg0REMsCi0gICAgICAgIFRFWFRVUkUyOSA9IDB4ODRERCwKLSAgICAgICAg
VEVYVFVSRTMwID0gMHg4NERFLAotICAgICAgICBURVhUVVJFMzEgPSAweDg0REYsCi0gICAgICAg
IEFDVElWRV9URVhUVVJFID0gMHg4NEUwLAotICAgICAgICBSRVBFQVQgPSAweDI5MDEsCi0gICAg
ICAgIENMQU1QX1RPX0VER0UgPSAweDgxMkYsCi0gICAgICAgIE1JUlJPUkVEX1JFUEVBVCA9IDB4
ODM3MCwKLSAgICAgICAgRkxPQVRfVkVDMiA9IDB4OEI1MCwKLSAgICAgICAgRkxPQVRfVkVDMyA9
IDB4OEI1MSwKLSAgICAgICAgRkxPQVRfVkVDNCA9IDB4OEI1MiwKLSAgICAgICAgSU5UX1ZFQzIg
PSAweDhCNTMsCi0gICAgICAgIElOVF9WRUMzID0gMHg4QjU0LAotICAgICAgICBJTlRfVkVDNCA9
IDB4OEI1NSwKLSAgICAgICAgQk9PTCA9IDB4OEI1NiwKLSAgICAgICAgQk9PTF9WRUMyID0gMHg4
QjU3LAotICAgICAgICBCT09MX1ZFQzMgPSAweDhCNTgsCi0gICAgICAgIEJPT0xfVkVDNCA9IDB4
OEI1OSwKLSAgICAgICAgRkxPQVRfTUFUMiA9IDB4OEI1QSwKLSAgICAgICAgRkxPQVRfTUFUMyA9
IDB4OEI1QiwKLSAgICAgICAgRkxPQVRfTUFUNCA9IDB4OEI1QywKLSAgICAgICAgU0FNUExFUl8y
RCA9IDB4OEI1RSwKLSAgICAgICAgU0FNUExFUl9DVUJFID0gMHg4QjYwLAotICAgICAgICBWRVJU
RVhfQVRUUklCX0FSUkFZX0VOQUJMRUQgPSAweDg2MjIsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJf
QVJSQVlfU0laRSA9IDB4ODYyMywKLSAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9TVFJJREUg
PSAweDg2MjQsCi0gICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfVFlQRSA9IDB4ODYyNSwKLSAg
ICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEID0gMHg4ODZBLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX1BPSU5URVIgPSAweDg2NDUsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfQlVGRkVSX0JJTkRJTkcgPSAweDg4OUYsCi0gICAgICAgIElNUExFTUVOVEFUSU9O
X0NPTE9SX1JFQURfVFlQRSA9IDB4OEI5QSwKLSAgICAgICAgSU1QTEVNRU5UQVRJT05fQ09MT1Jf
UkVBRF9GT1JNQVQgPSAweDhCOUIsCi0gICAgICAgIENPTVBJTEVfU1RBVFVTID0gMHg4QjgxLAot
ICAgICAgICBJTkZPX0xPR19MRU5HVEggPSAweDhCODQsCi0gICAgICAgIFNIQURFUl9TT1VSQ0Vf
TEVOR1RIID0gMHg4Qjg4LAotICAgICAgICBTSEFERVJfQ09NUElMRVIgPSAweDhERkEsCi0gICAg
ICAgIFNIQURFUl9CSU5BUllfRk9STUFUUyA9IDB4OERGOCwKLSAgICAgICAgTlVNX1NIQURFUl9C
SU5BUllfRk9STUFUUyA9IDB4OERGOSwKLSAgICAgICAgTE9XX0ZMT0FUID0gMHg4REYwLAotICAg
ICAgICBNRURJVU1fRkxPQVQgPSAweDhERjEsCi0gICAgICAgIEhJR0hfRkxPQVQgPSAweDhERjIs
Ci0gICAgICAgIExPV19JTlQgPSAweDhERjMsCi0gICAgICAgIE1FRElVTV9JTlQgPSAweDhERjQs
Ci0gICAgICAgIEhJR0hfSU5UID0gMHg4REY1LAotICAgICAgICBGUkFNRUJVRkZFUiA9IDB4OEQ0
MCwKLSAgICAgICAgUkVOREVSQlVGRkVSID0gMHg4RDQxLAotICAgICAgICBSR0JBNCA9IDB4ODA1
NiwKLSAgICAgICAgUkdCNV9BMSA9IDB4ODA1NywKLSAgICAgICAgUkdCNTY1ID0gMHg4RDYyLAot
ICAgICAgICBERVBUSF9DT01QT05FTlQxNiA9IDB4ODFBNSwKLSAgICAgICAgU1RFTkNJTF9JTkRF
WCA9IDB4MTkwMSwKLSAgICAgICAgU1RFTkNJTF9JTkRFWDggPSAweDhENDgsCi0gICAgICAgIFJF
TkRFUkJVRkZFUl9XSURUSCA9IDB4OEQ0MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0hFSUdIVCA9
IDB4OEQ0MywKLSAgICAgICAgUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCA9IDB4OEQ0NCwK
LSAgICAgICAgUkVOREVSQlVGRkVSX1JFRF9TSVpFID0gMHg4RDUwLAotICAgICAgICBSRU5ERVJC
VUZGRVJfR1JFRU5fU0laRSA9IDB4OEQ1MSwKLSAgICAgICAgUkVOREVSQlVGRkVSX0JMVUVfU0la
RSA9IDB4OEQ1MiwKLSAgICAgICAgUkVOREVSQlVGRkVSX0FMUEhBX1NJWkUgPSAweDhENTMsCi0g
ICAgICAgIFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFID0gMHg4RDU0LAotICAgICAgICBSRU5ERVJC
VUZGRVJfU1RFTkNJTF9TSVpFID0gMHg4RDU1LAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hN
RU5UX09CSkVDVF9UWVBFID0gMHg4Q0QwLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5U
X09CSkVDVF9OQU1FID0gMHg4Q0QxLAotICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RF
WFRVUkVfTEVWRUwgPSAweDhDRDIsCi0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVY
VFVSRV9DVUJFX01BUF9GQUNFID0gMHg4Q0QzLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMCA9
IDB4OENFMCwKLSAgICAgICAgREVQVEhfQVRUQUNITUVOVCA9IDB4OEQwMCwKLSAgICAgICAgU1RF
TkNJTF9BVFRBQ0hNRU5UID0gMHg4RDIwLAotICAgICAgICBOT05FID0gMCwKLSAgICAgICAgRlJB
TUVCVUZGRVJfQ09NUExFVEUgPSAweDhDRDUsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCA9IDB4OENENiwKLSAgICAgICAgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9N
SVNTSU5HX0FUVEFDSE1FTlQgPSAweDhDRDcsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfRElNRU5TSU9OUyA9IDB4OENEOSwKLSAgICAgICAgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQg
PSAweDhDREQsCi0gICAgICAgIEZSQU1FQlVGRkVSX0JJTkRJTkcgPSAweDhDQTYsCi0gICAgICAg
IFJFTkRFUkJVRkZFUl9CSU5ESU5HID0gMHg4Q0E3LAotICAgICAgICBNQVhfUkVOREVSQlVGRkVS
X1NJWkUgPSAweDg0RTgsCi0gICAgICAgIElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OID0g
MHgwNTA2LAotCi0gICAgICAgIC8vIFdlYkdMLXNwZWNpZmljIGVudW1zCi0gICAgICAgIFVOUEFD
S19GTElQX1lfV0VCR0wgPSAweDkyNDAsCi0gICAgICAgIFVOUEFDS19QUkVNVUxUSVBMWV9BTFBI
QV9XRUJHTCA9IDB4OTI0MSwKLSAgICAgICAgQ09OVEVYVF9MT1NUX1dFQkdMID0gMHg5MjQyLAot
ICAgICAgICBVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMID0gMHg5MjQzLAotICAg
ICAgICBCUk9XU0VSX0RFRkFVTFRfV0VCR0wgPSAweDkyNDQsCi0gICAgICAgIFZFUlRFWF9BVFRS
SUJfQVJSQVlfRElWSVNPUl9BTkdMRSA9IDB4ODhGRSwKLSAgICAgICAgCi0gICAgICAgIC8vIFdl
YkdMMiBjb25zdGFudHMKLSAgICAgICAgUkVBRF9CVUZGRVIgPSAweDBDMDIsCi0gICAgICAgIFVO
UEFDS19ST1dfTEVOR1RIID0gMHgwQ0YyLAotICAgICAgICBVTlBBQ0tfU0tJUF9ST1dTID0gMHgw
Q0YzLAotICAgICAgICBVTlBBQ0tfU0tJUF9QSVhFTFMgPSAweDBDRjQsCi0gICAgICAgIFBBQ0tf
Uk9XX0xFTkdUSCA9IDB4MEQwMiwKLSAgICAgICAgUEFDS19TS0lQX1JPV1MgPSAweDBEMDMsCi0g
ICAgICAgIFBBQ0tfU0tJUF9QSVhFTFMgPSAweDBEMDQsCi0gICAgICAgIENPTE9SID0gMHgxODAw
LAotICAgICAgICBERVBUSCA9IDB4MTgwMSwKLSAgICAgICAgU1RFTkNJTCA9IDB4MTgwMiwKLSAg
ICAgICAgUkVEID0gMHgxOTAzLAotICAgICAgICBSR0I4ID0gMHg4MDUxLAotICAgICAgICBSR0JB
OCA9IDB4ODA1OCwKLSAgICAgICAgUkdCMTBfQTIgPSAweDgwNTksCi0gICAgICAgIFRFWFRVUkVf
QklORElOR18zRCA9IDB4ODA2QSwKLSAgICAgICAgVU5QQUNLX1NLSVBfSU1BR0VTID0gMHg4MDZE
LAotICAgICAgICBVTlBBQ0tfSU1BR0VfSEVJR0hUID0gMHg4MDZFLAotICAgICAgICBURVhUVVJF
XzNEID0gMHg4MDZGLAotICAgICAgICBURVhUVVJFX1dSQVBfUiA9IDB4ODA3MiwKLSAgICAgICAg
TUFYXzNEX1RFWFRVUkVfU0laRSA9IDB4ODA3MywKLSAgICAgICAgVU5TSUdORURfSU5UXzJfMTBf
MTBfMTBfUkVWID0gMHg4MzY4LAotICAgICAgICBNQVhfRUxFTUVOVFNfVkVSVElDRVMgPSAweDgw
RTgsCi0gICAgICAgIE1BWF9FTEVNRU5UU19JTkRJQ0VTID0gMHg4MEU5LAotICAgICAgICBURVhU
VVJFX01JTl9MT0QgPSAweDgxM0EsCi0gICAgICAgIFRFWFRVUkVfTUFYX0xPRCA9IDB4ODEzQiwK
LSAgICAgICAgVEVYVFVSRV9CQVNFX0xFVkVMID0gMHg4MTNDLAotICAgICAgICBURVhUVVJFX01B
WF9MRVZFTCA9IDB4ODEzRCwKLSAgICAgICAgTUlOID0gMHg4MDA3LAotICAgICAgICBNQVggPSAw
eDgwMDgsCi0gICAgICAgIERFUFRIX0NPTVBPTkVOVDI0ID0gMHg4MUE2LAotICAgICAgICBNQVhf
VEVYVFVSRV9MT0RfQklBUyA9IDB4ODRGRCwKLSAgICAgICAgVEVYVFVSRV9DT01QQVJFX01PREUg
PSAweDg4NEMsCi0gICAgICAgIFRFWFRVUkVfQ09NUEFSRV9GVU5DID0gMHg4ODRELAotICAgICAg
ICBDVVJSRU5UX1FVRVJZID0gMHg4ODY1LAotICAgICAgICBRVUVSWV9SRVNVTFQgPSAweDg4NjYs
Ci0gICAgICAgIFFVRVJZX1JFU1VMVF9BVkFJTEFCTEUgPSAweDg4NjcsCi0gICAgICAgIFNUUkVB
TV9SRUFEID0gMHg4OEUxLAotICAgICAgICBTVFJFQU1fQ09QWSA9IDB4ODhFMiwKLSAgICAgICAg
U1RBVElDX1JFQUQgPSAweDg4RTUsCi0gICAgICAgIFNUQVRJQ19DT1BZID0gMHg4OEU2LAotICAg
ICAgICBEWU5BTUlDX1JFQUQgPSAweDg4RTksCi0gICAgICAgIERZTkFNSUNfQ09QWSA9IDB4ODhF
QSwKLSAgICAgICAgTUFYX0RSQVdfQlVGRkVSUyA9IDB4ODgyNCwKLSAgICAgICAgRFJBV19CVUZG
RVIwID0gMHg4ODI1LAotICAgICAgICBEUkFXX0JVRkZFUjEgPSAweDg4MjYsCi0gICAgICAgIERS
QVdfQlVGRkVSMiA9IDB4ODgyNywKLSAgICAgICAgRFJBV19CVUZGRVIzID0gMHg4ODI4LAotICAg
ICAgICBEUkFXX0JVRkZFUjQgPSAweDg4MjksCi0gICAgICAgIERSQVdfQlVGRkVSNSA9IDB4ODgy
QSwKLSAgICAgICAgRFJBV19CVUZGRVI2ID0gMHg4ODJCLAotICAgICAgICBEUkFXX0JVRkZFUjcg
PSAweDg4MkMsCi0gICAgICAgIERSQVdfQlVGRkVSOCA9IDB4ODgyRCwKLSAgICAgICAgRFJBV19C
VUZGRVI5ID0gMHg4ODJFLAotICAgICAgICBEUkFXX0JVRkZFUjEwID0gMHg4ODJGLAotICAgICAg
ICBEUkFXX0JVRkZFUjExID0gMHg4ODMwLAotICAgICAgICBEUkFXX0JVRkZFUjEyID0gMHg4ODMx
LAotICAgICAgICBEUkFXX0JVRkZFUjEzID0gMHg4ODMyLAotICAgICAgICBEUkFXX0JVRkZFUjE0
ID0gMHg4ODMzLAotICAgICAgICBEUkFXX0JVRkZFUjE1ID0gMHg4ODM0LAotICAgICAgICBNQVhf
RlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QjQ5LAotICAgICAgICBNQVhfVkVSVEVY
X1VOSUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0QSwKLSAgICAgICAgU0FNUExFUl8zRCA9IDB4OEI1
RiwKLSAgICAgICAgU0FNUExFUl8yRF9TSEFET1cgPSAweDhCNjIsCi0gICAgICAgIEZSQUdNRU5U
X1NIQURFUl9ERVJJVkFUSVZFX0hJTlQgPSAweDhCOEIsCi0gICAgICAgIFBJWEVMX1BBQ0tfQlVG
RkVSID0gMHg4OEVCLAotICAgICAgICBQSVhFTF9VTlBBQ0tfQlVGRkVSID0gMHg4OEVDLAotICAg
ICAgICBQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4OEVELAotICAgICAgICBQSVhFTF9V
TlBBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDg4RUYsCi0gICAgICAgIEZMT0FUX01BVDJ4MyA9IDB4
OEI2NSwKLSAgICAgICAgRkxPQVRfTUFUMng0ID0gMHg4QjY2LAotICAgICAgICBGTE9BVF9NQVQz
eDIgPSAweDhCNjcsCi0gICAgICAgIEZMT0FUX01BVDN4NCA9IDB4OEI2OCwKLSAgICAgICAgRkxP
QVRfTUFUNHgyID0gMHg4QjY5LAotICAgICAgICBGTE9BVF9NQVQ0eDMgPSAweDhCNkEsCi0gICAg
ICAgIFNSR0IgPSAweDhDNDAsCi0gICAgICAgIFNSR0I4ID0gMHg4QzQxLAotICAgICAgICBTUkdC
X0FMUEhBID0gMHg4QzQyLAotICAgICAgICBTUkdCOF9BTFBIQTggPSAweDhDNDMsCi0gICAgICAg
IENPTVBBUkVfUkVGX1RPX1RFWFRVUkUgPSAweDg4NEUsCi0gICAgICAgIFJHQkEzMkYgPSAweDg4
MTQsCi0gICAgICAgIFJHQjMyRiA9IDB4ODgxNSwKLSAgICAgICAgUkdCQTE2RiA9IDB4ODgxQSwK
LSAgICAgICAgUkdCMTZGID0gMHg4ODFCLAotICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0lO
VEVHRVIgPSAweDg4RkQsCi0gICAgICAgIE1BWF9BUlJBWV9URVhUVVJFX0xBWUVSUyA9IDB4ODhG
RiwKLSAgICAgICAgTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUID0gMHg4OTA0LAotICAgICAgICBN
QVhfUFJPR1JBTV9URVhFTF9PRkZTRVQgPSAweDg5MDUsCi0gICAgICAgIE1BWF9WQVJZSU5HX0NP
TVBPTkVOVFMgPSAweDhCNEIsCi0gICAgICAgIFRFWFRVUkVfMkRfQVJSQVkgPSAweDhDMUEsCi0g
ICAgICAgIFRFWFRVUkVfQklORElOR18yRF9BUlJBWSA9IDB4OEMxRCwKLSAgICAgICAgUjExRl9H
MTFGX0IxMEYgPSAweDhDM0EsCi0gICAgICAgIFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVYg
PSAweDhDM0IsCi0gICAgICAgIFJHQjlfRTUgPSAweDhDM0QsCi0gICAgICAgIFVOU0lHTkVEX0lO
VF81XzlfOV85X1JFViA9IDB4OEMzRSwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZF
Ul9NT0RFID0gMHg4QzdGLAotICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNLX1NFUEFSQVRF
X0NPTVBPTkVOVFMgPSAweDhDODAsCi0gICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19WQVJZSU5H
UyA9IDB4OEM4MywKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVCA9IDB4
OEM4NCwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TSVpFID0gMHg4Qzg1LAot
ICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUFJJTUlUSVZFU19XUklUVEVOID0gMHg4Qzg4LAot
ICAgICAgICBSQVNURVJJWkVSX0RJU0NBUkQgPSAweDhDODksCi0gICAgICAgIE1BWF9UUkFOU0ZP
Uk1fRkVFREJBQ0tfSU5URVJMRUFWRURfQ09NUE9ORU5UUyA9IDB4OEM4QSwKLSAgICAgICAgTUFY
X1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9BVFRSSUJTID0gMHg4QzhCLAotICAgICAgICBJ
TlRFUkxFQVZFRF9BVFRSSUJTID0gMHg4QzhDLAotICAgICAgICBTRVBBUkFURV9BVFRSSUJTID0g
MHg4QzhELAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSID0gMHg4QzhFLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkcgPSAweDhDOEYsCi0gICAgICAg
IFJHQkEzMlVJID0gMHg4RDcwLAotICAgICAgICBSR0IzMlVJID0gMHg4RDcxLAotICAgICAgICBS
R0JBMTZVSSA9IDB4OEQ3NiwKLSAgICAgICAgUkdCMTZVSSA9IDB4OEQ3NywKLSAgICAgICAgUkdC
QThVSSA9IDB4OEQ3QywKLSAgICAgICAgUkdCOFVJID0gMHg4RDdELAotICAgICAgICBSR0JBMzJJ
ID0gMHg4RDgyLAotICAgICAgICBSR0IzMkkgPSAweDhEODMsCi0gICAgICAgIFJHQkExNkkgPSAw
eDhEODgsCi0gICAgICAgIFJHQjE2SSA9IDB4OEQ4OSwKLSAgICAgICAgUkdCQThJID0gMHg4RDhF
LAotICAgICAgICBSR0I4SSA9IDB4OEQ4RiwKLSAgICAgICAgUkVEX0lOVEVHRVIgPSAweDhEOTQs
Ci0gICAgICAgIFJHQl9JTlRFR0VSID0gMHg4RDk4LAotICAgICAgICBSR0JBX0lOVEVHRVIgPSAw
eDhEOTksCi0gICAgICAgIFNBTVBMRVJfMkRfQVJSQVkgPSAweDhEQzEsCi0gICAgICAgIFNBTVBM
RVJfMkRfQVJSQVlfU0hBRE9XID0gMHg4REM0LAotICAgICAgICBTQU1QTEVSX0NVQkVfU0hBRE9X
ID0gMHg4REM1LAotICAgICAgICBVTlNJR05FRF9JTlRfVkVDMiA9IDB4OERDNiwKLSAgICAgICAg
VU5TSUdORURfSU5UX1ZFQzMgPSAweDhEQzcsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9WRUM0ID0g
MHg4REM4LAotICAgICAgICBJTlRfU0FNUExFUl8yRCA9IDB4OERDQSwKLSAgICAgICAgSU5UX1NB
TVBMRVJfM0QgPSAweDhEQ0IsCi0gICAgICAgIElOVF9TQU1QTEVSX0NVQkUgPSAweDhEQ0MsCi0g
ICAgICAgIElOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4RENGLAotICAgICAgICBVTlNJR05FRF9J
TlRfU0FNUExFUl8yRCA9IDB4OEREMiwKLSAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJfM0Qg
PSAweDhERDMsCi0gICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSX0NVQkUgPSAweDhERDQsCi0g
ICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzJEX0FSUkFZID0gMHg4REQ3LAotICAgICAgICBE
RVBUSF9DT01QT05FTlQzMkYgPSAweDhDQUMsCi0gICAgICAgIERFUFRIMzJGX1NURU5DSUw4ID0g
MHg4Q0FELAotICAgICAgICBGTE9BVF8zMl9VTlNJR05FRF9JTlRfMjRfOF9SRVYgPSAweDhEQUQs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkcgPSAweDgyMTAs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09NUE9ORU5UX1RZUEUgPSAweDgyMTEs
Ci0gICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfUkVEX1NJWkUgPSAweDgyMTIsCi0gICAg
ICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRSA9IDB4ODIxMywKLSAgICAgICAg
RlJBTUVCVUZGRVJfQVRUQUNITUVOVF9CTFVFX1NJWkUgPSAweDgyMTQsCi0gICAgICAgIEZSQU1F
QlVGRkVSX0FUVEFDSE1FTlRfQUxQSEFfU0laRSA9IDB4ODIxNSwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFID0gMHg4MjE2LAotICAgICAgICBGUkFNRUJVRkZFUl9B
VFRBQ0hNRU5UX1NURU5DSUxfU0laRSA9IDB4ODIxNywKLSAgICAgICAgRlJBTUVCVUZGRVJfREVG
QVVMVCA9IDB4ODIxOCwKLSAgICAgICAgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UID0gMHg4MjFB
LAotICAgICAgICBERVBUSF9TVEVOQ0lMID0gMHg4NEY5LAotICAgICAgICBVTlNJR05FRF9JTlRf
MjRfOCA9IDB4ODRGQSwKLSAgICAgICAgREVQVEgyNF9TVEVOQ0lMOCA9IDB4ODhGMCwKLSAgICAg
ICAgVU5TSUdORURfTk9STUFMSVpFRCA9IDB4OEMxNywKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
Ul9CSU5ESU5HID0gMHg4Q0E2LCAvKiBTYW1lIGFzIEZSQU1FQlVGRkVSX0JJTkRJTkcgKi8KLSAg
ICAgICAgUkVBRF9GUkFNRUJVRkZFUiA9IDB4OENBOCwKLSAgICAgICAgRFJBV19GUkFNRUJVRkZF
UiA9IDB4OENBOSwKLSAgICAgICAgUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0FBLAot
ICAgICAgICBSRU5ERVJCVUZGRVJfU0FNUExFUyA9IDB4OENBQiwKLSAgICAgICAgRlJBTUVCVUZG
RVJfQVRUQUNITUVOVF9URVhUVVJFX0xBWUVSID0gMHg4Q0Q0LAotICAgICAgICBNQVhfQ09MT1Jf
QVRUQUNITUVOVFMgPSAweDhDREYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxID0gMHg4Q0Ux
LAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMiA9IDB4OENFMiwKLSAgICAgICAgQ09MT1JfQVRU
QUNITUVOVDMgPSAweDhDRTMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ0ID0gMHg4Q0U0LAot
ICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNSA9IDB4OENFNSwKLSAgICAgICAgQ09MT1JfQVRUQUNI
TUVOVDYgPSAweDhDRTYsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQ3ID0gMHg4Q0U3LAotICAg
ICAgICBDT0xPUl9BVFRBQ0hNRU5UOCA9IDB4OENFOCwKLSAgICAgICAgQ09MT1JfQVRUQUNITUVO
VDkgPSAweDhDRTksCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMCA9IDB4OENFQSwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDExID0gMHg4Q0VCLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTIgPSAweDhDRUMsCi0gICAgICAgIENPTE9SX0FUVEFDSE1FTlQxMyA9IDB4OENFRCwKLSAgICAg
ICAgQ09MT1JfQVRUQUNITUVOVDE0ID0gMHg4Q0VFLAotICAgICAgICBDT0xPUl9BVFRBQ0hNRU5U
MTUgPSAweDhDRUYsCi0gICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTVVMVElTQU1QTEUg
PSAweDhENTYsCi0gICAgICAgIE1BWF9TQU1QTEVTID0gMHg4RDU3LAotICAgICAgICBIQUxGX0ZM
T0FUID0gMHgxNDBCLAotICAgICAgICBSRyA9IDB4ODIyNywKLSAgICAgICAgUkdfSU5URUdFUiA9
IDB4ODIyOCwKLSAgICAgICAgUjggPSAweDgyMjksCi0gICAgICAgIFJHOCA9IDB4ODIyQiwKLSAg
ICAgICAgUjE2RiA9IDB4ODIyRCwKLSAgICAgICAgUjMyRiA9IDB4ODIyRSwKLSAgICAgICAgUkcx
NkYgPSAweDgyMkYsCi0gICAgICAgIFJHMzJGID0gMHg4MjMwLAotICAgICAgICBSOEkgPSAweDgy
MzEsCi0gICAgICAgIFI4VUkgPSAweDgyMzIsCi0gICAgICAgIFIxNkkgPSAweDgyMzMsCi0gICAg
ICAgIFIxNlVJID0gMHg4MjM0LAotICAgICAgICBSMzJJID0gMHg4MjM1LAotICAgICAgICBSMzJV
SSA9IDB4ODIzNiwKLSAgICAgICAgUkc4SSA9IDB4ODIzNywKLSAgICAgICAgUkc4VUkgPSAweDgy
MzgsCi0gICAgICAgIFJHMTZJID0gMHg4MjM5LAotICAgICAgICBSRzE2VUkgPSAweDgyM0EsCi0g
ICAgICAgIFJHMzJJID0gMHg4MjNCLAotICAgICAgICBSRzMyVUkgPSAweDgyM0MsCi0gICAgICAg
IFZFUlRFWF9BUlJBWV9CSU5ESU5HID0gMHg4NUI1LAotICAgICAgICBSOF9TTk9STSA9IDB4OEY5
NCwKLSAgICAgICAgUkc4X1NOT1JNID0gMHg4Rjk1LAotICAgICAgICBSR0I4X1NOT1JNID0gMHg4
Rjk2LAotICAgICAgICBSR0JBOF9TTk9STSA9IDB4OEY5NywKLSAgICAgICAgU0lHTkVEX05PUk1B
TElaRUQgPSAweDhGOUMsCi0gICAgICAgIENPUFlfUkVBRF9CVUZGRVIgPSAweDhGMzYsCi0gICAg
ICAgIENPUFlfV1JJVEVfQlVGRkVSID0gMHg4RjM3LAotICAgICAgICBDT1BZX1JFQURfQlVGRkVS
X0JJTkRJTkcgPSAweDhGMzYsIC8qIFNhbWUgYXMgQ09QWV9SRUFEX0JVRkZFUiAqLwotICAgICAg
ICBDT1BZX1dSSVRFX0JVRkZFUl9CSU5ESU5HID0gMHg4RjM3LCAvKiBTYW1lIGFzIENPUFlfV1JJ
VEVfQlVGRkVSICovCi0gICAgICAgIFVOSUZPUk1fQlVGRkVSID0gMHg4QTExLAotICAgICAgICBV
TklGT1JNX0JVRkZFUl9CSU5ESU5HID0gMHg4QTI4LAotICAgICAgICBVTklGT1JNX0JVRkZFUl9T
VEFSVCA9IDB4OEEyOSwKLSAgICAgICAgVU5JRk9STV9CVUZGRVJfU0laRSA9IDB4OEEyQSwKLSAg
ICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUyA9IDB4OEEyQiwKLSAgICAgICAgTUFYX0ZS
QUdNRU5UX1VOSUZPUk1fQkxPQ0tTID0gMHg4QTJELAotICAgICAgICBNQVhfQ09NQklORURfVU5J
Rk9STV9CTE9DS1MgPSAweDhBMkUsCi0gICAgICAgIE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5H
UyA9IDB4OEEyRiwKLSAgICAgICAgTUFYX1VOSUZPUk1fQkxPQ0tfU0laRSA9IDB4OEEzMCwKLSAg
ICAgICAgTUFYX0NPTUJJTkVEX1ZFUlRFWF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzEsCi0g
ICAgICAgIE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFMgPSAweDhBMzMs
Ci0gICAgICAgIFVOSUZPUk1fQlVGRkVSX09GRlNFVF9BTElHTk1FTlQgPSAweDhBMzQsCi0gICAg
ICAgIEFDVElWRV9VTklGT1JNX0JMT0NLUyA9IDB4OEEzNiwKLSAgICAgICAgVU5JRk9STV9UWVBF
ID0gMHg4QTM3LAotICAgICAgICBVTklGT1JNX1NJWkUgPSAweDhBMzgsCi0gICAgICAgIFVOSUZP
Uk1fQkxPQ0tfSU5ERVggPSAweDhBM0EsCi0gICAgICAgIFVOSUZPUk1fT0ZGU0VUID0gMHg4QTNC
LAotICAgICAgICBVTklGT1JNX0FSUkFZX1NUUklERSA9IDB4OEEzQywKLSAgICAgICAgVU5JRk9S
TV9NQVRSSVhfU1RSSURFID0gMHg4QTNELAotICAgICAgICBVTklGT1JNX0lTX1JPV19NQUpPUiA9
IDB4OEEzRSwKLSAgICAgICAgVU5JRk9STV9CTE9DS19CSU5ESU5HID0gMHg4QTNGLAotICAgICAg
ICBVTklGT1JNX0JMT0NLX0RBVEFfU0laRSA9IDB4OEE0MCwKLSAgICAgICAgVU5JRk9STV9CTE9D
S19BQ1RJVkVfVU5JRk9STVMgPSAweDhBNDIsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZF
X1VOSUZPUk1fSU5ESUNFUyA9IDB4OEE0MywKLSAgICAgICAgVU5JRk9STV9CTE9DS19SRUZFUkVO
Q0VEX0JZX1ZFUlRFWF9TSEFERVIgPSAweDhBNDQsCi0gICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVG
RVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVIgPSAweDhBNDYsCi0gICAgICAgIElOVkFMSURfSU5E
RVggPSAweEZGRkZGRkZGLAotICAgICAgICBNQVhfVkVSVEVYX09VVFBVVF9DT01QT05FTlRTID0g
MHg5MTIyLAotICAgICAgICBNQVhfRlJBR01FTlRfSU5QVVRfQ09NUE9ORU5UUyA9IDB4OTEyNSwK
LSAgICAgICAgTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQgPSAweDkxMTEsCi0gICAgICAgIE9CSkVD
VF9UWVBFID0gMHg5MTEyLAotICAgICAgICBTWU5DX0NPTkRJVElPTiA9IDB4OTExMywKLSAgICAg
ICAgU1lOQ19TVEFUVVMgPSAweDkxMTQsCi0gICAgICAgIFNZTkNfRkxBR1MgPSAweDkxMTUsCi0g
ICAgICAgIFNZTkNfRkVOQ0UgPSAweDkxMTYsCi0gICAgICAgIFNZTkNfR1BVX0NPTU1BTkRTX0NP
TVBMRVRFID0gMHg5MTE3LAotICAgICAgICBVTlNJR05BTEVEID0gMHg5MTE4LAotICAgICAgICBT
SUdOQUxFRCA9IDB4OTExOSwKLSAgICAgICAgQUxSRUFEWV9TSUdOQUxFRCA9IDB4OTExQSwKLSAg
ICAgICAgVElNRU9VVF9FWFBJUkVEID0gMHg5MTFCLAotICAgICAgICBDT05ESVRJT05fU0FUSVNG
SUVEID0gMHg5MTFDLAotI2lmIFBMQVRGT1JNKFdJTikKLSAgICAgICAgV0FJVF9GQUlMRURfV0lO
ID0gMHg5MTFELAotI2Vsc2UKLSAgICAgICAgV0FJVF9GQUlMRUQgPSAweDkxMUQsCi0jZW5kaWYK
LSAgICAgICAgU1lOQ19GTFVTSF9DT01NQU5EU19CSVQgPSAweDAwMDAwMDAxLAotICAgICAgICBW
RVJURVhfQVRUUklCX0FSUkFZX0RJVklTT1IgPSAweDg4RkUsCi0gICAgICAgIEFOWV9TQU1QTEVT
X1BBU1NFRCA9IDB4OEMyRiwKLSAgICAgICAgQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElW
RSA9IDB4OEQ2QSwKLSAgICAgICAgU0FNUExFUl9CSU5ESU5HID0gMHg4OTE5LAotICAgICAgICBS
R0IxMF9BMlVJID0gMHg5MDZGLAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfUiA9IDB4OEU0MiwK
LSAgICAgICAgVEVYVFVSRV9TV0laWkxFX0cgPSAweDhFNDMsCi0gICAgICAgIFRFWFRVUkVfU1dJ
WlpMRV9CID0gMHg4RTQ0LAotICAgICAgICBURVhUVVJFX1NXSVpaTEVfQSA9IDB4OEU0NSwKLSAg
ICAgICAgR1JFRU4gPSAweDE5MDQsCi0gICAgICAgIEJMVUUgPSAweDE5MDUsCi0gICAgICAgIElO
VF8yXzEwXzEwXzEwX1JFViA9IDB4OEQ5RiwKLSAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLID0g
MHg4RTIyLAotICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfUEFVU0VEID0gMHg4RTIzLAotICAg
ICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfQUNUSVZFID0gMHg4RTI0LAotICAgICAgICBUUkFOU0ZP
Uk1fRkVFREJBQ0tfQklORElORyA9IDB4OEUyNSwKLSAgICAgICAgQ09NUFJFU1NFRF9SMTFfRUFD
ID0gMHg5MjcwLAotICAgICAgICBDT01QUkVTU0VEX1NJR05FRF9SMTFfRUFDID0gMHg5MjcxLAot
ICAgICAgICBDT01QUkVTU0VEX1JHMTFfRUFDID0gMHg5MjcyLAotICAgICAgICBDT01QUkVTU0VE
X1NJR05FRF9SRzExX0VBQyA9IDB4OTI3MywKLSAgICAgICAgQ09NUFJFU1NFRF9SR0I4X0VUQzIg
PSAweDkyNzQsCi0gICAgICAgIENPTVBSRVNTRURfU1JHQjhfRVRDMiA9IDB4OTI3NSwKLSAgICAg
ICAgQ09NUFJFU1NFRF9SR0I4X1BVTkNIVEhST1VHSF9BTFBIQTFfRVRDMiA9IDB4OTI3NiwKLSAg
ICAgICAgQ09NUFJFU1NFRF9TUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzcs
Ci0gICAgICAgIENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUMgPSAweDkyNzgsCi0gICAgICAgIENP
TVBSRVNTRURfU1JHQjhfQUxQSEE4X0VUQzJfRUFDID0gMHg5Mjc5LAotICAgICAgICBURVhUVVJF
X0lNTVVUQUJMRV9GT1JNQVQgPSAweDkxMkYsCi0gICAgICAgIE1BWF9FTEVNRU5UX0lOREVYID0g
MHg4RDZCLAotICAgICAgICBOVU1fU0FNUExFX0NPVU5UUyA9IDB4OTM4MCwKLSAgICAgICAgVEVY
VFVSRV9JTU1VVEFCTEVfTEVWRUxTID0gMHg4MkRGLAotICAgICAgICBQUklNSVRJVkVfUkVTVEFS
VF9GSVhFRF9JTkRFWCA9IDB4OEQ2OSwKLSAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlQgPSAweDhG
OUQsCi0KLSAgICAgICAgLy8gT3BlbkdMIEVTIDMgY29uc3RhbnRzLgotICAgICAgICBNQVBfUkVB
RF9CSVQgPSAweDAwMDEsCi0KLSAgICAgICAgLy8gTmVjZXNzYXJ5IGRlc2t0b3AgT3BlbkdMIGNv
bnN0YW50cy4KLSAgICAgICAgVEVYVFVSRV9SRUNUQU5HTEVfQVJCID0gMHg4NEY1Ci0gICAgfTsK
LQotICAgIGVudW0gUmVuZGVyU3R5bGUgewotICAgICAgICBSZW5kZXJPZmZzY3JlZW4sCi0gICAg
ICAgIFJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93LAotICAgIH07Ci0KLSAgICBjbGFzcyBDb250
ZXh0TG9zdENhbGxiYWNrIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBvbkNv
bnRleHRMb3N0KCkgPSAwOwotICAgICAgICB2aXJ0dWFsIH5Db250ZXh0TG9zdENhbGxiYWNrKCkg
PSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICBjbGFzcyBFcnJvck1lc3NhZ2VDYWxsYmFjayB7Ci0g
ICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvck1lc3NhZ2UoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBHQzNEaW50IGlkKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgfkVycm9yTWVz
c2FnZUNhbGxiYWNrKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KLSAgICB2b2lkIHNldENvbnRleHRM
b3N0Q2FsbGJhY2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KTsKLSAgICB2
b2lkIHNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3NhZ2VD
YWxsYmFjaz4pOwotCi0gICAgc3RhdGljIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcywgSG9zdFdpbmRvdyosIFJlbmRlclN0eWxlID0g
UmVuZGVyT2Zmc2NyZWVuKTsKLSAgICB+R3JhcGhpY3NDb250ZXh0M0QoKTsKKyAgICBzdGF0aWMg
UmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiwgRGVzdGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKTsK
KyAgICB2aXJ0dWFsIH5HcmFwaGljc0NvbnRleHQzRCgpOwogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAgICAgc3RhdGljIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlU2hhcmVkKEdyYXBoaWNz
Q29udGV4dDNEJiBzaGFyZWRDb250ZXh0KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCBwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0T2JqOyB9Ci0gICAgUGxhdGZvcm0zRE9iamVjdCBw
bGF0Zm9ybVRleHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmU7IH0KLSAgICBDQUxheWVy
KiBwbGF0Zm9ybUxheWVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxDQUxheWVy
Kj4obV93ZWJHTExheWVyLmdldCgpKTsgfQorICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qg
cGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29u
dGV4dE9iajsgfQorICAgIFBsYXRmb3JtM0RPYmplY3QgcGxhdGZvcm1UZXh0dXJlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV90ZXh0dXJlOyB9CisgICAgQ0FMYXllciogcGxhdGZvcm1MYXll
cigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8Q0FMYXllcio+KG1f
d2ViR0xMYXllci5nZXQoKSk7IH0KICNpZiBVU0UoQU5HTEUpCiAgICAgUGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRERpc3BsYXkgcGxhdGZvcm1EaXNwbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kaXNw
bGF5T2JqOyB9CiAgICAgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRENvbmZpZyBwbGF0Zm9ybUNv
bmZpZygpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlnT2JqOyB9CiAjZW5kaWYgLy8gVVNFKEFOR0xF
KQogI2Vsc2UKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0
OwotICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdDsKKyAgICBQbGF0Zm9y
bUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCBvdmVy
cmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0IG92ZXJy
aWRlOworICAgIFBsYXRmb3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCBvdmVycmlkZTsK
ICNlbmRpZgogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKQEAgLTg2NCwzMTQgKzE5
MiwxODkgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQq
IHBpeGVscywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWZWN0b3I8dWludDhfdD4mIGRh
dGEpOwogCi0KLSAgICAvLyBBdHRlbXB0IHRvIGVudW1lcmF0ZSBhbGwgcG9zc2libGUgbmF0aXZl
IGltYWdlIGZvcm1hdHMgdG8KLSAgICAvLyByZWR1Y2UgdGhlIGFtb3VudCBvZiB0ZW1wb3Jhcnkg
YWxsb2NhdGlvbnMgZHVyaW5nIHRleHR1cmUKLSAgICAvLyB1cGxvYWRpbmcuIFRoaXMgZW51bSBt
dXN0IGJlIHB1YmxpYyBiZWNhdXNlIGl0IGlzIGFjY2Vzc2VkCi0gICAgLy8gYnkgbm9uLW1lbWJl
ciBmdW5jdGlvbnMuCi0gICAgZW51bSBEYXRhRm9ybWF0IHsKLSAgICAgICAgRGF0YUZvcm1hdFJH
QkE4ID0gMCwKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQkExNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdFJHQkExNkYsCi0gICAgICAgIERhdGFG
b3JtYXRSR0JBMzJGLAotICAgICAgICBEYXRhRm9ybWF0UkdCOCwKLSAgICAgICAgRGF0YUZvcm1h
dFJHQjE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkdCMTZCaWcsCi0gICAgICAgIERhdGFG
b3JtYXRSR0IxNkYsCi0gICAgICAgIERhdGFGb3JtYXRSR0IzMkYsCi0gICAgICAgIERhdGFGb3Jt
YXRCR1I4LAotICAgICAgICBEYXRhRm9ybWF0QkdSQTgsCi0gICAgICAgIERhdGFGb3JtYXRCR1JB
MTZMaXR0bGUsCi0gICAgICAgIERhdGFGb3JtYXRCR1JBMTZCaWcsCi0gICAgICAgIERhdGFGb3Jt
YXRBUkdCOCwKLSAgICAgICAgRGF0YUZvcm1hdEFSR0IxNkxpdHRsZSwKLSAgICAgICAgRGF0YUZv
cm1hdEFSR0IxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEFCR1I4LAotICAgICAgICBEYXRhRm9y
bWF0UkdCQTU1NTEsCi0gICAgICAgIERhdGFGb3JtYXRSR0JBNDQ0NCwKLSAgICAgICAgRGF0YUZv
cm1hdFJHQjU2NSwKLSAgICAgICAgRGF0YUZvcm1hdFI4LAotICAgICAgICBEYXRhRm9ybWF0UjE2
TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UjE2QmlnLAotICAgICAgICBEYXRhRm9ybWF0UjE2
RiwKLSAgICAgICAgRGF0YUZvcm1hdFIzMkYsCi0gICAgICAgIERhdGFGb3JtYXRSQTgsCi0gICAg
ICAgIERhdGFGb3JtYXRSQTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0UkExNkJpZywKLSAg
ICAgICAgRGF0YUZvcm1hdFJBMTZGLAotICAgICAgICBEYXRhRm9ybWF0UkEzMkYsCi0gICAgICAg
IERhdGFGb3JtYXRBUjgsCi0gICAgICAgIERhdGFGb3JtYXRBUjE2TGl0dGxlLAotICAgICAgICBE
YXRhRm9ybWF0QVIxNkJpZywKLSAgICAgICAgRGF0YUZvcm1hdEE4LAotICAgICAgICBEYXRhRm9y
bWF0QTE2TGl0dGxlLAotICAgICAgICBEYXRhRm9ybWF0QTE2QmlnLAotICAgICAgICBEYXRhRm9y
bWF0QTE2RiwKLSAgICAgICAgRGF0YUZvcm1hdEEzMkYsCi0gICAgICAgIERhdGFGb3JtYXROdW1G
b3JtYXRzCi0gICAgfTsKLQotICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIGJvb2wgaGFzQWxwaGEo
RGF0YUZvcm1hdCBmb3JtYXQpCi0gICAgewotICAgICAgICBzd2l0Y2ggKGZvcm1hdCkgewotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QTg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QTMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdEFSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEzMkY6Ci0gICAg
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBODoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUkE4OgotICAgICAgICBjYXNlIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVJHQjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJHQkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBMzJGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCQTQ0NDQ6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgQUxXQVlTX0lOTElO
RSBzdGF0aWMgYm9vbCBoYXNDb2xvcihEYXRhRm9ybWF0IGZvcm1hdCkKLSAgICB7Ci0gICAgICAg
IHN3aXRjaCAoZm9ybWF0KSB7Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkExNkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJG
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCODoKLSAgICAg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2RjoKLSAgICAgICAgY2Fz
ZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjMyRjoKLSAgICAgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRCR1JBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdEFSR0I4OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0QUJHUjg6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
NTU1MToKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0
OgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1OgotICAg
ICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0Ujg6Ci0gICAgICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0UjMyRjoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJBODoKLSAgICAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFJBMTZGOgotICAgICAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkEz
MkY6Ci0gICAgICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjg6Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQg
aXMgb25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMu
Ci0gICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgotICAg
IC8vIFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0
cy4gSXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEg
bGl0dGxlIG1vcmUgZm9yIENHIHBvcnQuCi0gICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBz
cmNGb3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3Jt
YXQpCi0gICAgewotI2lmIFVTRShDRykKLSNpZiBDUFUoQklHX0VORElBTikKLSAgICByZXR1cm4g
U3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFS
R0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8fCBTcmNGb3JtYXQg
PT0gRGF0YUZvcm1hdFJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEFSOCB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTg7Ci0jZWxzZQot
ICAgIC8vIFRoYXQgTElUVExFX0VORElBTiBjYXNlIGhhcyBtb3JlIHBvc3NpYmxlIGZvcm1hdHMg
dGhhbiBCSUdfRU5ESUFOIGNhc2UgaXMgYmVjYXVzZSBzb21lIGRlY29kZWQgaW1hZ2UgZGF0YSBp
cyBhY3R1YWxseSBiaWcgZW5kaWFuCi0gICAgLy8gZXZlbiBvbiBsaXR0bGUgZW5kaWFuIGFyY2hp
dGVjdHVyZXMuCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QkdSQTggfHwgU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXRBQkdSOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdEJHUjgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdEFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0UkdCOAotICAgICAgICB8
fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdFI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0QTgK
LSAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSQTggfHwgU3JjRm9ybWF0ID09IERh
dGFGb3JtYXRBUjg7Ci0jZW5kaWYKLSNlbHNlCi0gICAgcmV0dXJuIFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0QkdSQTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXRSR0JBODsKLSNlbmRpZgotICAg
IH0KLQogICAgIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIC8vIEVudHJ5IHBvaW50cyBmb3IgV2ViR0wu
CiAgICAgLy8KIAotICAgIHZvaWQgYWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKTsKLSAg
ICB2b2lkIGF0dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3Qgc2hhZGVyKTsKLSAgICB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2Jq
ZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGJpbmRC
dWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGJpbmRG
cmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQg
YmluZFJlbmRlcmJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwotICAg
IHZvaWQgYmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAg
ICB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0Rj
bGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSk7Ci0gICAgdm9pZCBibGVuZEVxdWF0aW9uKEdD
M0RlbnVtIG1vZGUpOwotICAgIHZvaWQgYmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1v
ZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSk7Ci0gICAgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0g
c2ZhY3RvciwgR0MzRGVudW0gZGZhY3Rvcik7Ci0gICAgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShH
QzNEZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0Rl
bnVtIGRzdEFscGhhKTsKLQotICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0YXJnZXQsIEdD
M0RzaXplaXB0ciBzaXplLCBHQzNEZW51bSB1c2FnZSk7Ci0gICAgdm9pZCBidWZmZXJEYXRhKEdD
M0RlbnVtIHRhcmdldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEsIEdDM0Rl
bnVtIHVzYWdlKTsKLSAgICB2b2lkIGJ1ZmZlclN1YkRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNE
aW50cHRyIG9mZnNldCwgR0MzRHNpemVpcHRyIHNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotCi0g
ICAgdm9pZCogbWFwQnVmZmVyUmFuZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50cHRyIG9mZnNl
dCwgR0MzRHNpemVpcHRyIGxlbmd0aCwgR0MzRGJpdGZpZWxkIGFjY2Vzcyk7Ci0gICAgR0MzRGJv
b2xlYW4gdW5tYXBCdWZmZXIoR0MzRGVudW0gdGFyZ2V0KTsKLSAgICB2b2lkIGNvcHlCdWZmZXJT
dWJEYXRhKEdDM0RlbnVtIHJlYWRUYXJnZXQsIEdDM0RlbnVtIHdyaXRlVGFyZ2V0LCBHQzNEaW50
cHRyIHJlYWRPZmZzZXQsIEdDM0RpbnRwdHIgd3JpdGVPZmZzZXQsIEdDM0RzaXplaXB0cik7Ci0K
LSAgICB2b2lkIGdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50
KiBwYXJhbXMpOwotICAgIHZvaWQgcmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRHNpemVpIHNhbXBsZXMsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBH
QzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOwotCi0gICAgdm9pZCB0ZXhTdG9yYWdl
MkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51bSBpbnRlcm5hbGZv
cm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAgICB2b2lkIHRleFN0
b3JhZ2UzRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RzaXplaSBk
ZXB0aCk7Ci0KLSAgICB2b2lkIGdldEFjdGl2ZVVuaWZvcm1zKFBsYXRmb3JtM0RPYmplY3QgcHJv
Z3JhbSwgY29uc3QgVmVjdG9yPEdDM0R1aW50PiYgdW5pZm9ybUluZGljZXMsIEdDM0RlbnVtIHBu
YW1lLCBWZWN0b3I8R0MzRGludD4mIHBhcmFtcyk7Ci0KLSAgICBHQzNEZW51bSBjaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKEdDM0RlbnVtIHRhcmdldCk7Ci0gICAgdm9pZCBjbGVhcihHQzNEYml0Zmll
bGQgbWFzayk7Ci0gICAgdm9pZCBjbGVhckNvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBm
IGdyZWVuLCBHQzNEY2xhbXBmIGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpOwotICAgIHZvaWQgY2xl
YXJEZXB0aChHQzNEY2xhbXBmIGRlcHRoKTsKLSAgICB2b2lkIGNsZWFyU3RlbmNpbChHQzNEaW50
IHMpOwotICAgIHZvaWQgY29sb3JNYXNrKEdDM0Rib29sZWFuIHJlZCwgR0MzRGJvb2xlYW4gZ3Jl
ZW4sIEdDM0Rib29sZWFuIGJsdWUsIEdDM0Rib29sZWFuIGFscGhhKTsKLSAgICB2b2lkIGNvbXBp
bGVTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0KLSAgICB2b2lkIGNvbXByZXNzZWRUZXhJbWFn
ZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdD
M0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpOwotICAgIHZvaWQgY29tcHJlc3Nl
ZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEp
OwotICAgIHZvaWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVs
LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpOwotICAgIHZvaWQgY29w
eVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhv
ZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCk7Ci0gICAgdm9pZCBjdWxsRmFjZShHQzNEZW51bSBtb2Rl
KTsKLSAgICB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKTsKLSAgICB2b2lkIGRlcHRoTWFz
ayhHQzNEYm9vbGVhbiBmbGFnKTsKLSAgICB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVh
ciwgR0MzRGNsYW1wZiB6RmFyKTsKLSAgICB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2Jq
ZWN0LCBQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKTsK
LSAgICB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBpbmRleCk7Ci0gICAg
dm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdDM0RpbnQgZmlyc3QsIEdDM0RzaXplaSBj
b3VudCk7Ci0gICAgdm9pZCBkcmF3RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNv
dW50LCBHQzNEZW51bSB0eXBlLCBHQzNEaW50cHRyIG9mZnNldCk7Ci0KLSAgICB2b2lkIGVuYWJs
ZShHQzNEZW51bSBjYXApOwotICAgIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVp
bnQgaW5kZXgpOwotICAgIHZvaWQgZmluaXNoKCk7Ci0gICAgdm9pZCBmbHVzaCgpOwotICAgIHZv
aWQgZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRh
Y2htZW50LCBHQzNEZW51bSByZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBh
dHRhY2htZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQg
bGV2ZWwpOwotICAgIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpOwotICAgIHZvaWQgZ2Vu
ZXJhdGVNaXBtYXAoR0MzRGVudW0gdGFyZ2V0KTsKLQotICAgIGJvb2wgZ2V0QWN0aXZlQXR0cmli
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgR0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsK
KyAgICB2b2lkIGFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkgb3ZlcnJpZGU7CisgICAg
dm9pZCBhdHRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0IHNoYWRlcikgb3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kQXR0cmliTG9jYXRpb24oUGxhdGZv
cm0zRE9iamVjdCwgR0MzRHVpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmFtZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBiaW5kQnVmZmVyKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRSZW5kZXJidWZmZXIoR0MzRGVu
dW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGJpbmRUZXh0
dXJlKEdDM0RlbnVtIHRhcmdldCwgUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBibGVuZENvbG9yKEdDM0RjbGFtcGYgcmVkLCBHQzNEY2xhbXBmIGdyZWVuLCBHQzNEY2xhbXBm
IGJsdWUsIEdDM0RjbGFtcGYgYWxwaGEpIG92ZXJyaWRlOworICAgIHZvaWQgYmxlbmRFcXVhdGlv
bihHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGJsZW5kRXF1YXRpb25TZXBhcmF0
ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwaGEpIG92ZXJyaWRlOworICAgIHZv
aWQgYmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdDM0RlbnVtIGRmYWN0b3IpIG92ZXJyaWRl
OworICAgIHZvaWQgYmxlbmRGdW5jU2VwYXJhdGUoR0MzRGVudW0gc3JjUkdCLCBHQzNEZW51bSBk
c3RSR0IsIEdDM0RlbnVtIHNyY0FscGhhLCBHQzNEZW51bSBkc3RBbHBoYSkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGJ1ZmZlckRhdGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwg
R0MzRGVudW0gdXNhZ2UpIG92ZXJyaWRlOworICAgIHZvaWQgYnVmZmVyRGF0YShHQzNEZW51bSB0
YXJnZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhLCBHQzNEZW51bSB1c2Fn
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBidWZmZXJTdWJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBzaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVy
cmlkZTsKKworICAgIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRhcmdldCwgR0MzRGlu
dHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVsZCBhY2Nlc3MpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0RlbnVtIHRhcmdldCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNEZW51bSByZWFkVGFyZ2V0LCBH
QzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zmc2V0LCBHQzNEaW50cHRyIHdy
aXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRJbnRlcm5h
bGZvcm1hdGl2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEc2l6ZWkgYnVmU2l6ZSwgR0MzRGludCogcGFyYW1zKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHQzNEZW51bSB0YXJnZXQs
IEdDM0RzaXplaSBzYW1wbGVzLCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdp
ZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KSBvdmVycmlkZTsKKworICAgIHZvaWQgdGV4U3RvcmFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVscywgR0MzRGVudW0gaW50ZXJuYWxmb3Jt
YXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdG9yYWdlM0QoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWkgbGV2ZWxzLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNE
c2l6ZWkgZGVwdGgpIG92ZXJyaWRlOworCisgICAgdm9pZCBnZXRBY3RpdmVVbmlmb3JtcyhQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFZlY3RvcjxHQzNEdWludD4mIHVuaWZvcm1JbmRp
Y2VzLCBHQzNEZW51bSBwbmFtZSwgVmVjdG9yPEdDM0RpbnQ+JiBwYXJhbXMpIG92ZXJyaWRlOwor
CisgICAgR0MzRGVudW0gY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhHQzNEZW51bSB0YXJnZXQpIG92
ZXJyaWRlOworICAgIHZvaWQgY2xlYXIoR0MzRGJpdGZpZWxkIG1hc2spIG92ZXJyaWRlOworICAg
IHZvaWQgY2xlYXJDb2xvcihHQzNEY2xhbXBmIHJlZCwgR0MzRGNsYW1wZiBncmVlbiwgR0MzRGNs
YW1wZiBibHVlLCBHQzNEY2xhbXBmIGFscGhhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNsZWFyRGVw
dGgoR0MzRGNsYW1wZiBkZXB0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhclN0ZW5jaWwoR0Mz
RGludCBzKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbG9yTWFzayhHQzNEYm9vbGVhbiByZWQsIEdD
M0Rib29sZWFuIGdyZWVuLCBHQzNEYm9vbGVhbiBibHVlLCBHQzNEYm9vbGVhbiBhbHBoYSkgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21waWxlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworCisgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0Rp
bnQgbGV2ZWwsIEdDM0RlbnVtIGludGVybmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0Rz
aXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyLCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlv
ZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0
LCBHQzNEc2l6ZWkgaW1hZ2VTaXplLCBjb25zdCB2b2lkKiBkYXRhKSBvdmVycmlkZTsKKyAgICB2
b2lkIGNvcHlUZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVu
dW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgs
IEdDM0RzaXplaSBoZWlnaHQsIEdDM0RpbnQgYm9yZGVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGNv
cHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOworICAgIHZvaWQgY3VsbEZhY2UoR0Mz
RGVudW0gbW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXB0aE1hc2soR0MzRGJvb2xlYW4gZmxhZykgb3ZlcnJpZGU7
CisgICAgdm9pZCBkZXB0aFJhbmdlKEdDM0RjbGFtcGYgek5lYXIsIEdDM0RjbGFtcGYgekZhcikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCwgUGxhdGZv
cm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNhYmxlKEdDM0RlbnVtIGNhcCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoR0MzRHVpbnQgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0FycmF5cyhHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZp
cnN0LCBHQzNEc2l6ZWkgY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzKEdD
M0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBv
ZmZzZXQpIG92ZXJyaWRlOworCisgICAgdm9pZCBlbmFibGUoR0MzRGVudW0gY2FwKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGVuYWJsZVZlcnRleEF0dHJpYkFycmF5KEdDM0R1aW50IGluZGV4KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZpbmlzaCgpIG92ZXJyaWRlOworICAgIHZvaWQgZmx1c2goKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdDM0RlbnVtIHRhcmdldCwg
R0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcmVuZGVyYnVmZmVydGFyZ2V0LCBQbGF0Zm9y
bTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lYnVmZmVyVGV4dHVyZTJEKEdDM0Rl
bnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gdGV4dGFyZ2V0LCBQbGF0
Zm9ybTNET2JqZWN0LCBHQzNEaW50IGxldmVsKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyb250RmFj
ZShHQzNEZW51bSBtb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdlbmVyYXRlTWlwbWFwKEdDM0Rl
bnVtIHRhcmdldCkgb3ZlcnJpZGU7CisKKyAgICBib29sIGdldEFjdGl2ZUF0dHJpYihQbGF0Zm9y
bTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7
CiAgICAgYm9vbCBnZXRBY3RpdmVBdHRyaWJJbXBsKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwg
R0MzRHVpbnQgaW5kZXgsIEFjdGl2ZUluZm8mKTsKLSAgICBib29sIGdldEFjdGl2ZVVuaWZvcm0o
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpOwor
ICAgIGJvb2wgZ2V0QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1
aW50IGluZGV4LCBBY3RpdmVJbmZvJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBnZXRBY3RpdmVVbmlm
b3JtSW1wbChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBBY3RpdmVJ
bmZvJik7Ci0gICAgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxhdGZvcm0zRE9iamVjdCBwcm9n
cmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291bnQsIFBsYXRmb3JtM0RPYmpl
Y3QqIHNoYWRlcnMpOwotICAgIEdDM0RpbnQgZ2V0QXR0cmliTG9jYXRpb24oUGxhdGZvcm0zRE9i
amVjdCwgY29uc3QgU3RyaW5nJiBuYW1lKTsKLSAgICB2b2lkIGdldEJvb2xlYW52KEdDM0RlbnVt
IHBuYW1lLCBHQzNEYm9vbGVhbiogdmFsdWUpOwotICAgIHZvaWQgZ2V0QnVmZmVyUGFyYW1ldGVy
aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAg
IEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBnZXRDb250ZXh0QXR0cmlidXRlcygpOwotICAg
IEdDM0RlbnVtIGdldEVycm9yKCk7Ci0gICAgdm9pZCBnZXRGbG9hdHYoR0MzRGVudW0gcG5hbWUs
IEdDM0RmbG9hdCogdmFsdWUpOwotICAgIHZvaWQgZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFy
YW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0SW50ZWdlcnYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICB2b2lkIGdldEludGVnZXI2NHYoR0MzRGVudW0gcG5h
bWUsIEdDM0RpbnQ2NCogdmFsdWUpOwotICAgIHZvaWQgZ2V0UHJvZ3JhbWl2KFBsYXRmb3JtM0RP
YmplY3QgcHJvZ3JhbSwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKKyAgICB2b2lk
IGdldEF0dGFjaGVkU2hhZGVycyhQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RzaXplaSBt
YXhDb3VudCwgR0MzRHNpemVpKiBjb3VudCwgUGxhdGZvcm0zRE9iamVjdCogc2hhZGVycykgb3Zl
cnJpZGU7CisgICAgR0MzRGludCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBj
b25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Qm9vbGVhbnYoR0MzRGVu
dW0gcG5hbWUsIEdDM0Rib29sZWFuKiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRCdWZm
ZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2
YWx1ZSkgb3ZlcnJpZGU7CisgICAgR0MzRGVudW0gZ2V0RXJyb3IoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGdldEZsb2F0dihHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBnZXRGcmFtZWJ1ZmZlckF0dGFjaG1lbnRQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIGF0dGFjaG1lbnQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRJbnRlZ2VydihHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0SW50ZWdlcjY0dihHQzNEZW51bSBwbmFt
ZSwgR0MzRGludDY0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRQcm9ncmFtaXYoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92
ZXJyaWRlOwogI2lmICFVU0UoQU5HTEUpCiAgICAgdm9pZCBnZXROb25CdWlsdEluQWN0aXZlU3lt
Ym9sQ291bnQoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCogdmFsdWUpOwogI2VuZGlmIC8vICFVU0UoQU5HTEUpCi0gICAgU3RyaW5nIGdldFByb2dyYW1J
bmZvTG9nKFBsYXRmb3JtM0RPYmplY3QpOworICAgIFN0cmluZyBnZXRQcm9ncmFtSW5mb0xvZyhQ
bGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKICAgICBTdHJpbmcgZ2V0VW5tYW5nbGVkSW5mb0xv
ZyhQbGF0Zm9ybTNET2JqZWN0WzJdLCBHQzNEc2l6ZWksIGNvbnN0IFN0cmluZyYpOwotICAgIHZv
aWQgZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyaXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBw
bmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIHZvaWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9i
amVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U2hh
ZGVySW5mb0xvZyhQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGdldFNoYWRlclByZWNpc2lv
bkZvcm1hdChHQzNEZW51bSBzaGFkZXJUeXBlLCBHQzNEZW51bSBwcmVjaXNpb25UeXBlLCBHQzNE
aW50KiByYW5nZSwgR0MzRGludCogcHJlY2lzaW9uKTsKKyAgICB2b2lkIGdldFJlbmRlcmJ1ZmZl
clBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFNoYWRlcml2KFBsYXRmb3JtM0RPYmplY3QsIEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIGdldFNo
YWRlckluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRTaGFk
ZXJQcmVjaXNpb25Gb3JtYXQoR0MzRGVudW0gc2hhZGVyVHlwZSwgR0MzRGVudW0gcHJlY2lzaW9u
VHlwZSwgR0MzRGludCogcmFuZ2UsIEdDM0RpbnQqIHByZWNpc2lvbikgb3ZlcnJpZGU7CiAjaWYg
IVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qp
OworICAgIFN0cmluZyBnZXRTaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7
CiAjZW5kaWYgLy8gIVVTRShBTkdMRSkKLSAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5h
bWUpOwotICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJpdihH
QzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSk7Ci0gICAgdm9p
ZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9u
LCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFVuaWZvcm1pdihQbGF0Zm9ybTNET2Jq
ZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKTsKLSAgICBHQzNE
aW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5h
bWUpOwotICAgIHZvaWQgZ2V0VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVt
IHBuYW1lLCBHQzNEZmxvYXQqIHZhbHVlKTsKLSAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdD
M0R1aW50IGluZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpOwotICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKTsKLQotICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpOwot
ICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdDM0Rib29s
ZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApOwotICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZm
ZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3Jt
M0RPYmplY3QpOwotICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpOwotICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIEdD
M0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIGxpbmVXaWR0
aChHQzNEZmxvYXQpOwotICAgIHZvaWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCk7Ci0g
ICAgdm9pZCBwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAg
dm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cyk7Ci0K
LSAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2b2lk
KiBkYXRhKTsKKyAgICBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFt
ZSwgR0MzRGZsb2F0KiB2YWx1ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRUZXhQYXJhbWV0ZXJp
dihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBnZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNE
aW50IGxvY2F0aW9uLCBHQzNEZmxvYXQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFVu
aWZvcm1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rp
bnQqIHZhbHVlKSBvdmVycmlkZTsKKyAgICBHQzNEaW50IGdldFVuaWZvcm1Mb2NhdGlvbihQbGF0
Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0
VmVydGV4QXR0cmliZnYoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldFZlcnRleEF0dHJpYml2KEdDM0R1aW50IGlu
ZGV4LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCogdmFsdWUpIG92ZXJyaWRlOworICAgIEdDM0Rz
aXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZzZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBu
YW1lKSBvdmVycmlkZTsKKworICAgIHZvaWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVt
IG1vZGUpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmpl
Y3QpIG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkg
b3ZlcnJpZGU7CisgICAgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
IG92ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVy
cmlkZTsKKyAgICB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpIG92ZXJyaWRlOworICAgIHZvaWQg
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwaXhlbFN0
b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9pZCBw
b2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykgb3ZlcnJpZGU7
CisKKyAgICB2b2lkIHJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3
aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCB2
b2lkKiBkYXRhKSBvdmVycmlkZTsKIAogICAgIHZvaWQgcmVsZWFzZVNoYWRlckNvbXBpbGVyKCk7
CiAKLSAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KTsKLSAg
ICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCk7Ci0gICAgdm9pZCBzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lk
dGgsIEdDM0RzaXplaSBoZWlnaHQpOwotICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgc3RyaW5nKTsKLSAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKLSAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spOwotICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFzayk7Ci0gICAg
dm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spOwot
ICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51
bSB6cGFzcyk7Ci0gICAgdm9pZCBzdGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNE
ZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpOwotCi0gICAgYm9vbCB0
ZXhJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJu
YWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3Jk
ZXIsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKTsK
LSAgICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwg
R0MzRGZsb2F0IHBhcmFtKTsKLSAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7Ci0gICAgdm9pZCB0ZXhTdWJJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50
IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9y
bWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpOwotCi0gICAgdm9pZCB1bmlm
b3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgpOwotICAgIHZvaWQgdW5pZm9ybTFm
dihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAg
dm9pZCB1bmlmb3JtMWkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KTsKLSAgICB2b2lkIHVu
aWZvcm0xaXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KTsK
LSAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZs
b2F0IHkpOwotICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWks
IGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtMmkoR0MzRGludCBsb2NhdGlv
biwgR0MzRGludCB4LCBHQzNEaW50IHkpOwotICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxv
Y2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpOwotICAgIHZvaWQgdW5pZm9ybTNm
KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHop
OwotICAgIHZvaWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0
IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeik7Ci0gICAgdm9pZCB1bmlmb3JtM2l2KEdDM0Rp
bnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdik7Ci0gICAgdm9pZCB1bmlm
b3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxv
YXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdik7Ci0gICAgdm9pZCB1bmlmb3JtNGkoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3
KTsKLSAgICB2b2lkIHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25z
dCBHQzNEaW50KiB2KTsKLSAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFs
dWUpOwotICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6
ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSk7Ci0gICAg
dm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgR0MzRGJv
b2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKTsKLQotICAgIHZvaWQgdXNl
UHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0
Zm9ybTNET2JqZWN0KTsKKyAgICB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSBvdmVycmlkZTsKKyAgICB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFs
dWUsIEdDM0Rib29sZWFuIGludmVydCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJy
aWRlOworICAgIHZvaWQgc2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMs
IEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSBvdmVycmlkZTsKKyAgICB2b2lkIHN0ZW5jaWxG
dW5jU2VwYXJhdGUoR0MzRGVudW0gZmFjZSwgR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdD
M0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE1hc2soR0MzRHVpbnQgbWFz
aykgb3ZlcnJpZGU7CisgICAgdm9pZCBzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVtIGZhY2Us
IEdDM0R1aW50IG1hc2spIG92ZXJyaWRlOworICAgIHZvaWQgc3RlbmNpbE9wKEdDM0RlbnVtIGZh
aWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykgb3ZlcnJpZGU7CisgICAgdm9pZCBz
dGVuY2lsT3BTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6
ZmFpbCwgR0MzRGVudW0genBhc3MpIG92ZXJyaWRlOworCisgICAgYm9vbCB0ZXhJbWFnZTJEKEdD
M0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0RlbnVt
IGZvcm1hdCwgR0MzRGVudW0gdHlwZSwgY29uc3Qgdm9pZCogcGl4ZWxzKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHRleFBhcmFtZXRlcmYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0Mz
RGZsb2F0IHBhcmFtKSBvdmVycmlkZTsKKyAgICB2b2lkIHRleFBhcmFtZXRlcmkoR0MzRGVudW0g
dGFyZ2V0LCBHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB0ZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4
b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdo
dCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMpIG92
ZXJyaWRlOworCisgICAgdm9pZCB1bmlmb3JtMWYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0
IHgpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTFmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNE
c2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtMWko
R0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm0x
aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHVuaWZvcm0yZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTJmdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlm
b3JtMmkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGludCB4LCBHQzNEaW50IHkpIG92ZXJyaWRlOwor
ICAgIHZvaWQgdW5pZm9ybTJpdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdD
M0RpbnQqIHYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybTNmKEdDM0RpbnQgbG9jYXRpb24s
IEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopIG92ZXJyaWRlOworICAgIHZv
aWQgdW5pZm9ybTNmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9h
dCogdikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtM2koR0MzRGludCBsb2NhdGlvbiwgR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3Jt
M2l2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgb3ZlcnJp
ZGU7CisgICAgdm9pZCB1bmlmb3JtNGYoR0MzRGludCBsb2NhdGlvbiwgR0MzRGZsb2F0IHgsIEdD
M0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpIG92ZXJyaWRlOworICAgIHZvaWQg
dW5pZm9ybTRmdihHQzNEaW50IGxvY2F0aW9uLCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RmbG9hdCog
dikgb3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtNGkoR0MzRGludCBsb2NhdGlvbiwgR0MzRGlu
dCB4LCBHQzNEaW50IHksIEdDM0RpbnQgeiwgR0MzRGludCB3KSBvdmVycmlkZTsKKyAgICB2b2lk
IHVuaWZvcm00aXYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2
KSBvdmVycmlkZTsKKyAgICB2b2lkIHVuaWZvcm1NYXRyaXgyZnYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUp
IG92ZXJyaWRlOworICAgIHZvaWQgdW5pZm9ybU1hdHJpeDNmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
b3ZlcnJpZGU7CisgICAgdm9pZCB1bmlmb3JtTWF0cml4NGZ2KEdDM0RpbnQgbG9jYXRpb24sIEdD
M0RzaXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSBv
dmVycmlkZTsKKworICAgIHZvaWQgdXNlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHZhbGlkYXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsK
ICNpZiAhVVNFKEFOR0xFKQogICAgIGJvb2wgY2hlY2tWYXJ5aW5nc1BhY2tpbmcoUGxhdGZvcm0z
RE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXRmb3JtM0RPYmplY3QgZnJhZ21lbnRTaGFkZXIpIGNv
bnN0OwogICAgIGJvb2wgcHJlY2lzaW9uc01hdGNoKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4U2hh
ZGVyLCBQbGF0Zm9ybTNET2JqZWN0IGZyYWdtZW50U2hhZGVyKSBjb25zdDsKICNlbmRpZgogCi0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgpOwotICAg
IHZvaWQgdmVydGV4QXR0cmliMWZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWIyZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYjJmdihHQzNEdWludCBpbmRl
eCwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZXMpOwotICAgIHZvaWQgdmVydGV4QXR0cmliM2YoR0Mz
RHVpbnQgaW5kZXgsIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZsb2F0IHopOwotICAg
IHZvaWQgdmVydGV4QXR0cmliM2Z2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZh
bHVlcyk7Ci0gICAgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0
IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeiwgR0MzRGZsb2F0IHcpOwotICAgIHZvaWQgdmVy
dGV4QXR0cmliNGZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcyk7Ci0g
ICAgdm9pZCB2ZXJ0ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUs
IEdDM0RlbnVtIHR5cGUsIEdDM0Rib29sZWFuIG5vcm1hbGl6ZWQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdDM0RzaXplaSBzdHJpZGUsIEdDM0RpbnRwdHIgb2Zmc2V0KTsKKyAgICB2
b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9h
dCogdmFsdWVzKSBvdmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYjJmKEdDM0R1aW50IGlu
ZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4
QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlcykgb3ZlcnJp
ZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRyaWIzZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgs
IEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikgb3ZlcnJpZGU7CisgICAgdm9pZCB2ZXJ0ZXhBdHRy
aWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBvdmVycmlkZTsK
KyAgICB2b2lkIHZlcnRleEF0dHJpYjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0Mz
RGZsb2F0IHksIEdDM0RmbG9hdCB6LCBHQzNEZmxvYXQgdykgb3ZlcnJpZGU7CisgICAgdm9pZCB2
ZXJ0ZXhBdHRyaWI0ZnYoR0MzRHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSBv
dmVycmlkZTsKKyAgICB2b2lkIHZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdD
M0RpbnQgc2l6ZSwgR0MzRGVudW0gdHlwZSwgR0MzRGJvb2xlYW4gbm9ybWFsaXplZCwgR0MzRHNp
emVpIHN0cmlkZSwgR0MzRGludHB0ciBvZmZzZXQpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB2aWV3
cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KTsKKyAgICB2b2lkIHZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpIG92ZXJyaWRlOwogCiAgICAgdm9pZCByZXNoYXBlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCk7CiAKLSAgICB2b2lkIGRyYXdBcnJheXNJbnN0YW5jZWQoR0Mz
RGVudW0gbW9kZSwgR0MzRGludCBmaXJzdCwgR0MzRHNpemVpIGNvdW50LCBHQzNEc2l6ZWkgcHJp
bWNvdW50KTsKLSAgICB2b2lkIGRyYXdFbGVtZW50c0luc3RhbmNlZChHQzNEZW51bSBtb2RlLCBH
QzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5cGUsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6
ZWkgcHJpbWNvdW50KTsKLSAgICB2b2lkIHZlcnRleEF0dHJpYkRpdmlzb3IoR0MzRHVpbnQgaW5k
ZXgsIEdDM0R1aW50IGRpdmlzb3IpOworICAgIHZvaWQgZHJhd0FycmF5c0luc3RhbmNlZChHQzNE
ZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdDM0RzaXplaSBwcmlt
Y291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgZHJhd0VsZW1lbnRzSW5zdGFuY2VkKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0MzRGludHB0ciBvZmZzZXQs
IEdDM0RzaXplaSBwcmltY291bnQpIG92ZXJyaWRlOworICAgIHZvaWQgdmVydGV4QXR0cmliRGl2
aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikgb3ZlcnJpZGU7CiAKICAgICAv
LyBWZXJ0ZXhBcnJheU9qZWN0IGNhbGxzCi0gICAgUGxhdGZvcm0zRE9iamVjdCBjcmVhdGVWZXJ0
ZXhBcnJheSgpOwotICAgIHZvaWQgZGVsZXRlVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCk7
Ci0gICAgR0MzRGJvb2xlYW4gaXNWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKLSAgICB2
b2lkIGJpbmRWZXJ0ZXhBcnJheShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQbGF0Zm9ybTNET2Jq
ZWN0IGNyZWF0ZVZlcnRleEFycmF5KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkZWxldGVWZXJ0ZXhB
cnJheShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKKyAgICBHQzNEYm9vbGVhbiBpc1ZlcnRl
eEFycmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAgIHZvaWQgYmluZFZlcnRleEFy
cmF5KFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBwYWludFRvQ2FudmFz
KGNvbnN0IHVuc2lnbmVkIGNoYXIqIGltYWdlUGl4ZWxzLCBjb25zdCBJbnRTaXplJiBpbWFnZVNp
emUsIGNvbnN0IEludFNpemUmIGNhbnZhc1NpemUsIEdyYXBoaWNzQ29udGV4dCYpOwogCkBAIC0x
MTg5LDcgKzM5Miw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhaW50Q29tcG9zaXRlZFJlc3VsdHNU
b0NhbnZhcyhJbWFnZUJ1ZmZlciopOwogCiAjaWYgVVNFKE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdM
MikKLSAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQzNEdWludCk7CisgICAgdm9pZCBw
cmltaXRpdmVSZXN0YXJ0SW5kZXgoR0MzRHVpbnQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShDT0NPQSkKQEAgLTEyMTMsMTkgKzQxNiwxOSBAQCBwdWJsaWM6CiAgICAgR3JhcGhp
Y3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2UgcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb247IH0KIAog
ICAgIC8vIFN1cHBvcnQgZm9yIGJ1ZmZlciBjcmVhdGlvbiBhbmQgZGVsZXRpb24KLSAgICBQbGF0
Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRl
RnJhbWVidWZmZXIoKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVByb2dyYW0oKTsKLSAg
ICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJlbmRlcmJ1ZmZlcigpOwotICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlU2hhZGVyKEdDM0RlbnVtKTsKLSAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0
ZVRleHR1cmUoKTsKLQotICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpOwot
ICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCk7Ci0gICAgdm9pZCBk
ZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVm
ZmVyKFBsYXRmb3JtM0RPYmplY3QpOwotICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RP
YmplY3QpOwotICAgIHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KTsKKyAgICBQ
bGF0Zm9ybTNET2JqZWN0IGNyZWF0ZUJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RP
YmplY3QgY3JlYXRlRnJhbWVidWZmZXIoKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0
IGNyZWF0ZVByb2dyYW0oKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIG92ZXJyaWRlOworICAgIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hhZGVy
KEdDM0RlbnVtKSBvdmVycmlkZTsKKyAgICBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRleHR1cmUo
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGVsZXRlQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92
ZXJyaWRlOworICAgIHZvaWQgZGVsZXRlRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBkZWxldGVQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRl
OworICAgIHZvaWQgZGVsZXRlU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpIG92ZXJyaWRlOworICAg
IHZvaWQgZGVsZXRlVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSBvdmVycmlkZTsKIAogICAgIC8v
IFN5bnRoZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20g
YQogICAgIC8vIGxhdGVyIGNhbGwgdG8gZ2V0RXJyb3IuIFRoaXMgaXMgdXNlZCB0byBlbXVsYXRl
IE9wZW5HTCBFUwpAQCAtMTI0NSw0MiArNDQ4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBhbGwgbWV0
aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRoZQogICAg
IC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBvcnRzKCkg
dG8KICAgICAvLyBkZXRlcm1pbmUgdGhpcy4KLSAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lv
bnMoKTsKKyAgICBFeHRlbnNpb25zM0QmIGdldEV4dGVuc2lvbnMoKSBvdmVycmlkZTsKIAogICAg
IEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdDsKIAotICAgIHN0YXRp
YyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1lbnRUeXBlKEdDM0RlbnVtKTsKLSAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3JtYXQoR0MzRGVudW0pOwotCi0gICAgZW51
bSBDaGFubmVsQml0cyB7Ci0gICAgICAgIENoYW5uZWxSZWQgPSAxLAotICAgICAgICBDaGFubmVs
R3JlZW4gPSAyLAotICAgICAgICBDaGFubmVsQmx1ZSA9IDQsCi0gICAgICAgIENoYW5uZWxBbHBo
YSA9IDgsCi0gICAgICAgIENoYW5uZWxEZXB0aCA9IDE2LAotICAgICAgICBDaGFubmVsU3RlbmNp
bCA9IDMyLAotICAgICAgICBDaGFubmVsUkdCID0gQ2hhbm5lbFJlZCB8IENoYW5uZWxHcmVlbiB8
IENoYW5uZWxCbHVlLAotICAgICAgICBDaGFubmVsUkdCQSA9IENoYW5uZWxSR0IgfCBDaGFubmVs
QWxwaGEsCi0gICAgfTsKLQotICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDaGFubmVsQml0c0J5Rm9y
bWF0KEdDM0RlbnVtKTsKLQotICAgIC8vIFBvc3NpYmxlIGFscGhhIG9wZXJhdGlvbnMgdGhhdCBt
YXkgbmVlZCB0byBvY2N1ciBkdXJpbmcKLSAgICAvLyBwaXhlbCBwYWNraW5nLiBGSVhNRToga0Fs
cGhhRG9Vbm11bHRpcGx5IGlzIGxvc3N5IGFuZCBtdXN0Ci0gICAgLy8gYmUgcmVtb3ZlZC4KLSAg
ICBlbnVtIEFscGhhT3AgewotICAgICAgICBBbHBoYURvTm90aGluZyA9IDAsCi0gICAgICAgIEFs
cGhhRG9QcmVtdWx0aXBseSA9IDEsCi0gICAgICAgIEFscGhhRG9Vbm11bHRpcGx5ID0gMgotICAg
IH07Ci0KLSAgICBlbnVtIEltYWdlSHRtbERvbVNvdXJjZSB7Ci0gICAgICAgIEh0bWxEb21JbWFn
ZSA9IDAsCi0gICAgICAgIEh0bWxEb21DYW52YXMgPSAxLAotICAgICAgICBIdG1sRG9tVmlkZW8g
PSAyLAotICAgICAgICBIdG1sRG9tTm9uZSA9IDMKLSAgICB9OwotCiAgICAgLy8gUGFja3MgdGhl
IGNvbnRlbnRzIG9mIHRoZSBnaXZlbiBJbWFnZSB3aGljaCBpcyBwYXNzZWQgaW4gfHBpeGVsc3wg
aW50byB0aGUgcGFzc2VkIFZlY3RvcgogICAgIC8vIGFjY29yZGluZyB0byB0aGUgZ2l2ZW4gZm9y
bWF0IGFuZCB0eXBlLCBhbmQgb2JleWluZyB0aGUgZmxpcFkgYW5kIEFscGhhT3AgZmxhZ3MuCiAg
ICAgLy8gUmV0dXJucyB0cnVlIHVwb24gc3VjY2Vzcy4KQEAgLTEyODgsNyArNDU5LDcgQEAgcHVi
bGljOgogCiAgICAgY2xhc3MgSW1hZ2VFeHRyYWN0b3IgewogICAgIHB1YmxpYzoKLSAgICAgICAg
SW1hZ2VFeHRyYWN0b3IoSW1hZ2UqLCBJbWFnZUh0bWxEb21Tb3VyY2UsIGJvb2wgcHJlbXVsdGlw
bHlBbHBoYSwgYm9vbCBpZ25vcmVHYW1tYUFuZENvbG9yUHJvZmlsZSk7CisgICAgICAgIEltYWdl
RXh0cmFjdG9yKEltYWdlKiwgRE9NU291cmNlLCBib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wg
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUpOwogCiAgICAgICAgIC8vIEVhY2ggcGxhdGZvcm0g
bXVzdCBwcm92aWRlIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgbWV0aG9kIHRvIGRlYWxsb2Nh
dGUgb3IgcmVsZWFzZSByZXNvdXJjZXMKICAgICAgICAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBp
bWFnZSBpZiBuZWVkZWQuCkBAIC0xMzAxLDcgKzQ3Miw3IEBAIHB1YmxpYzoKICAgICAgICAgRGF0
YUZvcm1hdCBpbWFnZVNvdXJjZUZvcm1hdCgpIHsgcmV0dXJuIG1faW1hZ2VTb3VyY2VGb3JtYXQ7
IH0KICAgICAgICAgQWxwaGFPcCBpbWFnZUFscGhhT3AoKSB7IHJldHVybiBtX2FscGhhT3A7IH0K
ICAgICAgICAgdW5zaWduZWQgaW1hZ2VTb3VyY2VVbnBhY2tBbGlnbm1lbnQoKSB7IHJldHVybiBt
X2ltYWdlU291cmNlVW5wYWNrQWxpZ25tZW50OyB9Ci0gICAgICAgIEltYWdlSHRtbERvbVNvdXJj
ZSBpbWFnZUh0bWxEb21Tb3VyY2UoKSB7IHJldHVybiBtX2ltYWdlSHRtbERvbVNvdXJjZTsgfQor
ICAgICAgICBET01Tb3VyY2UgaW1hZ2VIdG1sRG9tU291cmNlKCkgeyByZXR1cm4gbV9pbWFnZUh0
bWxEb21Tb3VyY2U7IH0KICAgICBwcml2YXRlOgogICAgICAgICAvLyBFYWNoIHBsYXRmb3JtIG11
c3QgcHJvdmlkZSBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIG1ldGhvZC4KICAgICAgICAgLy8g
RXh0cmFjdHMgdGhlIGltYWdlIGFuZCBrZWVwcyB0cmFjayBvZiBpdHMgc3RhdHVzLCBzdWNoIGFz
IHdpZHRoLCBoZWlnaHQsIFNvdXJjZSBBbGlnbm1lbnQsIGZvcm1hdCBhbmQgQWxwaGFPcCBldGMs
CkBAIC0xMzE3LDcgKzQ4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgVW5pcXVlQXJyYXk8dWludDhf
dD4gbV9mb3JtYWxpemVkUkdCQThEYXRhOwogI2VuZGlmCiAgICAgICAgIEltYWdlKiBtX2ltYWdl
OwotICAgICAgICBJbWFnZUh0bWxEb21Tb3VyY2UgbV9pbWFnZUh0bWxEb21Tb3VyY2U7CisgICAg
ICAgIERPTVNvdXJjZSBtX2ltYWdlSHRtbERvbVNvdXJjZTsKICAgICAgICAgYm9vbCBtX2V4dHJh
Y3RTdWNjZWVkZWQ7CiAgICAgICAgIGNvbnN0IHZvaWQqIG1faW1hZ2VQaXhlbERhdGE7CiAgICAg
ICAgIHVuc2lnbmVkIG1faW1hZ2VXaWR0aDsKQEAgLTEzNDAsNyArNTExLDcgQEAgcHVibGljOgog
I2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgUmVuZGVyU3R5bGUgPSBSZW5kZXJPZmZzY3JlZW4s
IEdyYXBoaWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0ID0gbnVsbHB0cik7CisgICAgR3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgRGVz
dGluYXRpb24gPSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCA9IG51bGxwdHIpOwogCiAgICAgLy8gSGVscGVyIGZvciBwYWNrSW1hZ2VEYXRh
L2V4dHJhY3RJbWFnZURhdGEvZXh0cmFjdFRleHR1cmVEYXRhIHdoaWNoIGltcGxlbWVudCBwYWNr
aW5nIG9mIHBpeGVsCiAgICAgLy8gZGF0YSBpbnRvIHRoZSBzcGVjaWZpZWQgT3BlbkdMIGRlc3Rp
bmF0aW9uIGZvcm1hdCBhbmQgdHlwZS4KQEAgLTE0NzQsOSArNjQ1LDcgQEAgcHJpdmF0ZToKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RXh0ZW5zaW9uczNET3BlbkdMPiBtX2V4dGVuc2lvbnM7CiAjZW5k
aWYKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBtX2F0dHJzOwogICAgIEdyYXBo
aWNzQ29udGV4dDNEUG93ZXJQcmVmZXJlbmNlIG1fcG93ZXJQcmVmZXJlbmNlVXNlZEZvckNyZWF0
aW9uIHsgR3JhcGhpY3NDb250ZXh0M0RQb3dlclByZWZlcmVuY2U6OkRlZmF1bHQgfTsKLSAgICBS
ZW5kZXJTdHlsZSBtX3JlbmRlclN0eWxlOwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+PiBtX3Zl
cnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjZWFhNjE1YWZjZDhhZDQwMzMyOTZkOWE1NjQ1MDM2N2Y5NjZlN2QKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
REJhc2UuY3BwCkBAIC0wLDAgKzEsMTgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
IE1vemlsbGEgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0RCYXNlLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNp
bmNsdWRlICJFeHRlbnNpb25zM0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkdyYXBoaWNzQ29udGV4dDNEQmFzZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIERlc3RpbmF0aW9uIGRlc3RpbmF0aW9uLCBHcmFwaGljc0NvbnRleHQz
REJhc2UqKQorICAgIDogbV9hdHRycyhhdHRycykKKyAgICAsIG1fZGVzdGluYXRpb24oZGVzdGlu
YXRpb24pCit7Cit9CisKK3Vuc2lnbmVkIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Z2V0Q2xlYXJC
aXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSBhdHRhY2htZW50KQoreworICAgIHN3aXRjaCAo
YXR0YWNobWVudCkgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xPUl9BVFRB
Q0hNRU5UMDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDFfRVhUOgor
ICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UMl9FWFQ6CisgICAgY2FzZSBF
eHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQzX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMz
RDo6Q09MT1JfQVRUQUNITUVOVDRfRVhUOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9B
VFRBQ0hNRU5UNV9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ2
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDdfRVhUOgorICAg
IGNhc2UgRXh0ZW5zaW9uczNEOjpDT0xPUl9BVFRBQ0hNRU5UOF9FWFQ6CisgICAgY2FzZSBFeHRl
bnNpb25zM0Q6OkNPTE9SX0FUVEFDSE1FTlQ5X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6
Q09MT1JfQVRUQUNITUVOVDEwX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRU
QUNITUVOVDExX0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEy
X0VYVDoKKyAgICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDEzX0VYVDoKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE0X0VYVDoKKyAgICBjYXNlIEV4
dGVuc2lvbnMzRDo6Q09MT1JfQVRUQUNITUVOVDE1X0VYVDoKKyAgICAgICAgcmV0dXJuIEdyYXBo
aWNzQ29udGV4dDNEQmFzZTo6Q09MT1JfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVDsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6U1RFTkNJTF9BVFRBQ0hNRU5UOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpTVEVOQ0lMX0JVRkZFUl9CSVQ7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVDoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29u
dGV4dDNEQmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RF
TkNJTF9CVUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0K
K30KKwordW5zaWduZWQgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpnZXRDbGVhckJpdHNCeUZvcm1h
dChHQzNEZW51bSBmb3JtYXQpCit7CisgICAgc3dpdGNoIChmb3JtYXQpIHsKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpMVU1JTkFOQ0VfQUxQSEE6
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6QUxQSEE6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlI4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSOF9TTk9STToKKyAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4
dDNEQmFzZTo6UjMyRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhVSToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSMTZVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjE2SToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UjMyVUk6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlIzMkk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
ODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6Ukc4X1NOT1JNOgorICAgIGNhc2Ug
R3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzE2RjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6UkczMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHOFVJOgorICAg
IGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzhJOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpSRzE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHMTZJ
OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSRzMyVUk6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OlJHMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0I4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTUkdCODoKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNTY1OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpSR0I4X1NOT1JNOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSMTFG
X0cxMUZfQjEwRjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOV9FNToKKyAg
ICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMTZGOgorICAgIGNhc2UgR3JhcGhpY3ND
b250ZXh0M0RCYXNlOjpSR0IzMkY6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJH
QjhVSToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOEk6CisgICAgY2FzZSBH
cmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjE2VUk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQz
REJhc2U6OlJHQjE2SToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJVSToK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCMzJJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBODoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
U1JHQjhfQUxQSEE4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBOF9TTk9S
TToKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCNV9BMToKKyAgICBjYXNlIEdy
YXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCQTQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJh
c2U6OlJHQjEwX0EyOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMTZGOgor
ICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJGOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBOFVJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBOEk6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQjEwX0EyVUk6Cisg
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkExNlVJOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0JBMTZJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNl
OjpSR0JBMzJJOgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpSR0JBMzJVSToKKyAg
ICBjYXNlIEV4dGVuc2lvbnMzRDo6U1JHQl9FWFQ6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNS
R0JfQUxQSEFfRVhUOgorICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpDT0xP
Ul9CVUZGRVJfQklUOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9DT01Q
T05FTlQxNjoKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5U
MjQ6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDMyRjoK
KyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UOgorICAgICAg
ICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9CVUZGRVJfQklUOworICAgIGNh
c2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpTVEVOQ0lMX0lOREVYODoKKyAgICAgICAgcmV0dXJu
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9CVUZGRVJfQklUOworICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgIGNhc2UgR3JhcGhpY3NDb250
ZXh0M0RCYXNlOjpERVBUSDI0X1NURU5DSUw4OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RC
YXNlOjpERVBUSDMyRl9TVEVOQ0lMODoKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
QmFzZTo6REVQVEhfQlVGRkVSX0JJVCB8IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6U1RFTkNJTF9C
VUZGRVJfQklUOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiAwOworICAgIH0KK30KKwor
dWludDhfdCBHcmFwaGljc0NvbnRleHQzREJhc2U6OmdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0Mz
RGVudW0gZm9ybWF0KQoreworICAgIHN3aXRjaCAoZm9ybWF0KSB7CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OkFMUEhBOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkFscGhhKTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6
TFVNSU5BTkNFOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJp
dHM6OlJHQik7CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OkxVTUlOQU5DRV9BTFBI
QToKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JB
KTsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6UkdCOgorICAgIGNhc2UgR3JhcGhp
Y3NDb250ZXh0M0RCYXNlOjpSR0I1NjU6CisgICAgY2FzZSBFeHRlbnNpb25zM0Q6OlNSR0JfRVhU
OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhfdD4oQ2hhbm5lbEJpdHM6OlJHQik7
CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzREJhc2U6OlJHQkE6CisgICAgY2FzZSBHcmFwaGlj
c0NvbnRleHQzREJhc2U6OlJHQkE0OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0RCYXNlOjpS
R0I1X0ExOgorICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpTUkdCX0FMUEhBX0VYVDoKKyAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpSR0JBKTsKKyAgICBjYXNl
IEdyYXBoaWNzQ29udGV4dDNEQmFzZTo6REVQVEhfQ09NUE9ORU5UMTY6CisgICAgY2FzZSBHcmFw
aGljc0NvbnRleHQzREJhc2U6OkRFUFRIX0NPTVBPTkVOVDoKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KENoYW5uZWxCaXRzOjpEZXB0aCk7CisgICAgY2FzZSBHcmFwaGljc0Nv
bnRleHQzREJhc2U6OlNURU5DSUxfSU5ERVg4OgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDhfdD4oQ2hhbm5lbEJpdHM6OlN0ZW5jaWwpOworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0RCYXNlOjpERVBUSF9TVEVOQ0lMOgorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4oQ2hhbm5lbEJpdHM6OkRlcHRoU3RlbmNpbCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzREJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNEQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZiOGM5YWRiYTM1YzNiNmNk
NGZlNTZkODZlMjE5ZDFjNzgwOTdlOGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzREJhc2UuaApAQCAtMCwwICsxLDEw
NjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJHTCkKKworI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dDNEQXR0cmlidXRlcy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUg
IkltYWdlLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNp
bmNsdWRlICJQbGF0Zm9ybUxheWVyLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dDNEOwordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNE
RGlzcGxheTsKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRFN1cmZhY2U7
Cit0eXBlZGVmIHZvaWQqIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0RDb25maWc7CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK2NsYXNzIEV4dGVuc2lvbnMzRDsKK2NsYXNzIEhvc3RXaW5kb3c7Citj
bGFzcyBJbWFnZUJ1ZmZlcjsKK2NsYXNzIEltYWdlRGF0YTsKKworY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0RCYXNlIDogcHVibGljIFJlZkNvdW50ZWQ8R3JhcGhpY3NDb250ZXh0M0RCYXNlPiB7Citw
dWJsaWM6CisgICAgZW51bSB7CisgICAgICAgIC8vIFdlYkdMIDEgY29uc3RhbnRzLgorICAgICAg
ICBERVBUSF9CVUZGRVJfQklUID0gMHgwMDAwMDEwMCwKKyAgICAgICAgU1RFTkNJTF9CVUZGRVJf
QklUID0gMHgwMDAwMDQwMCwKKyAgICAgICAgQ09MT1JfQlVGRkVSX0JJVCA9IDB4MDAwMDQwMDAs
CisgICAgICAgIFBPSU5UUyA9IDB4MDAwMCwKKyAgICAgICAgTElORVMgPSAweDAwMDEsCisgICAg
ICAgIExJTkVfTE9PUCA9IDB4MDAwMiwKKyAgICAgICAgTElORV9TVFJJUCA9IDB4MDAwMywKKyAg
ICAgICAgVFJJQU5HTEVTID0gMHgwMDA0LAorICAgICAgICBUUklBTkdMRV9TVFJJUCA9IDB4MDAw
NSwKKyAgICAgICAgVFJJQU5HTEVfRkFOID0gMHgwMDA2LAorICAgICAgICBaRVJPID0gMCwKKyAg
ICAgICAgT05FID0gMSwKKyAgICAgICAgU1JDX0NPTE9SID0gMHgwMzAwLAorICAgICAgICBPTkVf
TUlOVVNfU1JDX0NPTE9SID0gMHgwMzAxLAorICAgICAgICBTUkNfQUxQSEEgPSAweDAzMDIsCisg
ICAgICAgIE9ORV9NSU5VU19TUkNfQUxQSEEgPSAweDAzMDMsCisgICAgICAgIERTVF9BTFBIQSA9
IDB4MDMwNCwKKyAgICAgICAgT05FX01JTlVTX0RTVF9BTFBIQSA9IDB4MDMwNSwKKyAgICAgICAg
RFNUX0NPTE9SID0gMHgwMzA2LAorICAgICAgICBPTkVfTUlOVVNfRFNUX0NPTE9SID0gMHgwMzA3
LAorICAgICAgICBTUkNfQUxQSEFfU0FUVVJBVEUgPSAweDAzMDgsCisgICAgICAgIEZVTkNfQURE
ID0gMHg4MDA2LAorICAgICAgICBCTEVORF9FUVVBVElPTiA9IDB4ODAwOSwKKyAgICAgICAgQkxF
TkRfRVFVQVRJT05fUkdCID0gMHg4MDA5LAorICAgICAgICBCTEVORF9FUVVBVElPTl9BTFBIQSA9
IDB4ODgzRCwKKyAgICAgICAgRlVOQ19TVUJUUkFDVCA9IDB4ODAwQSwKKyAgICAgICAgRlVOQ19S
RVZFUlNFX1NVQlRSQUNUID0gMHg4MDBCLAorICAgICAgICBCTEVORF9EU1RfUkdCID0gMHg4MEM4
LAorICAgICAgICBCTEVORF9TUkNfUkdCID0gMHg4MEM5LAorICAgICAgICBCTEVORF9EU1RfQUxQ
SEEgPSAweDgwQ0EsCisgICAgICAgIEJMRU5EX1NSQ19BTFBIQSA9IDB4ODBDQiwKKyAgICAgICAg
Q09OU1RBTlRfQ09MT1IgPSAweDgwMDEsCisgICAgICAgIE9ORV9NSU5VU19DT05TVEFOVF9DT0xP
UiA9IDB4ODAwMiwKKyAgICAgICAgQ09OU1RBTlRfQUxQSEEgPSAweDgwMDMsCisgICAgICAgIE9O
RV9NSU5VU19DT05TVEFOVF9BTFBIQSA9IDB4ODAwNCwKKyAgICAgICAgQkxFTkRfQ09MT1IgPSAw
eDgwMDUsCisgICAgICAgIEFSUkFZX0JVRkZFUiA9IDB4ODg5MiwKKyAgICAgICAgRUxFTUVOVF9B
UlJBWV9CVUZGRVIgPSAweDg4OTMsCisgICAgICAgIEFSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4
ODk0LAorICAgICAgICBFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HID0gMHg4ODk1LAorICAg
ICAgICBTVFJFQU1fRFJBVyA9IDB4ODhFMCwKKyAgICAgICAgU1RBVElDX0RSQVcgPSAweDg4RTQs
CisgICAgICAgIERZTkFNSUNfRFJBVyA9IDB4ODhFOCwKKyAgICAgICAgQlVGRkVSX1NJWkUgPSAw
eDg3NjQsCisgICAgICAgIEJVRkZFUl9VU0FHRSA9IDB4ODc2NSwKKyAgICAgICAgQ1VSUkVOVF9W
RVJURVhfQVRUUklCID0gMHg4NjI2LAorICAgICAgICBGUk9OVCA9IDB4MDQwNCwKKyAgICAgICAg
QkFDSyA9IDB4MDQwNSwKKyAgICAgICAgRlJPTlRfQU5EX0JBQ0sgPSAweDA0MDgsCisgICAgICAg
IFRFWFRVUkVfMkQgPSAweDBERTEsCisgICAgICAgIENVTExfRkFDRSA9IDB4MEI0NCwKKyAgICAg
ICAgQkxFTkQgPSAweDBCRTIsCisgICAgICAgIERJVEhFUiA9IDB4MEJEMCwKKyAgICAgICAgU1RF
TkNJTF9URVNUID0gMHgwQjkwLAorICAgICAgICBERVBUSF9URVNUID0gMHgwQjcxLAorICAgICAg
ICBTQ0lTU09SX1RFU1QgPSAweDBDMTEsCisgICAgICAgIFBPTFlHT05fT0ZGU0VUX0ZJTEwgPSAw
eDgwMzcsCisgICAgICAgIFNBTVBMRV9BTFBIQV9UT19DT1ZFUkFHRSA9IDB4ODA5RSwKKyAgICAg
ICAgU0FNUExFX0NPVkVSQUdFID0gMHg4MEEwLAorICAgICAgICBOT19FUlJPUiA9IDAsCisgICAg
ICAgIElOVkFMSURfRU5VTSA9IDB4MDUwMCwKKyAgICAgICAgSU5WQUxJRF9WQUxVRSA9IDB4MDUw
MSwKKyAgICAgICAgSU5WQUxJRF9PUEVSQVRJT04gPSAweDA1MDIsCisgICAgICAgIE9VVF9PRl9N
RU1PUlkgPSAweDA1MDUsCisgICAgICAgIENXID0gMHgwOTAwLAorICAgICAgICBDQ1cgPSAweDA5
MDEsCisgICAgICAgIExJTkVfV0lEVEggPSAweDBCMjEsCisgICAgICAgIEFMSUFTRURfUE9JTlRf
U0laRV9SQU5HRSA9IDB4ODQ2RCwKKyAgICAgICAgQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFID0g
MHg4NDZFLAorICAgICAgICBDVUxMX0ZBQ0VfTU9ERSA9IDB4MEI0NSwKKyAgICAgICAgRlJPTlRf
RkFDRSA9IDB4MEI0NiwKKyAgICAgICAgREVQVEhfUkFOR0UgPSAweDBCNzAsCisgICAgICAgIERF
UFRIX1dSSVRFTUFTSyA9IDB4MEI3MiwKKyAgICAgICAgREVQVEhfQ0xFQVJfVkFMVUUgPSAweDBC
NzMsCisgICAgICAgIERFUFRIX0ZVTkMgPSAweDBCNzQsCisgICAgICAgIFNURU5DSUxfQ0xFQVJf
VkFMVUUgPSAweDBCOTEsCisgICAgICAgIFNURU5DSUxfRlVOQyA9IDB4MEI5MiwKKyAgICAgICAg
U1RFTkNJTF9GQUlMID0gMHgwQjk0LAorICAgICAgICBTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCA9
IDB4MEI5NSwKKyAgICAgICAgU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MgPSAweDBCOTYsCisgICAg
ICAgIFNURU5DSUxfUkVGID0gMHgwQjk3LAorICAgICAgICBTVEVOQ0lMX1ZBTFVFX01BU0sgPSAw
eDBCOTMsCisgICAgICAgIFNURU5DSUxfV1JJVEVNQVNLID0gMHgwQjk4LAorICAgICAgICBTVEVO
Q0lMX0JBQ0tfRlVOQyA9IDB4ODgwMCwKKyAgICAgICAgU1RFTkNJTF9CQUNLX0ZBSUwgPSAweDg4
MDEsCisgICAgICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX0ZBSUwgPSAweDg4MDIsCisgICAg
ICAgIFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1MgPSAweDg4MDMsCisgICAgICAgIFNURU5D
SUxfQkFDS19SRUYgPSAweDhDQTMsCisgICAgICAgIFNURU5DSUxfQkFDS19WQUxVRV9NQVNLID0g
MHg4Q0E0LAorICAgICAgICBTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLID0gMHg4Q0E1LAorICAgICAg
ICBWSUVXUE9SVCA9IDB4MEJBMiwKKyAgICAgICAgU0NJU1NPUl9CT1ggPSAweDBDMTAsCisgICAg
ICAgIENPTE9SX0NMRUFSX1ZBTFVFID0gMHgwQzIyLAorICAgICAgICBDT0xPUl9XUklURU1BU0sg
PSAweDBDMjMsCisgICAgICAgIFVOUEFDS19BTElHTk1FTlQgPSAweDBDRjUsCisgICAgICAgIFBB
Q0tfQUxJR05NRU5UID0gMHgwRDA1LAorICAgICAgICBNQVhfVEVYVFVSRV9TSVpFID0gMHgwRDMz
LAorICAgICAgICBNQVhfVklFV1BPUlRfRElNUyA9IDB4MEQzQSwKKyAgICAgICAgU1VCUElYRUxf
QklUUyA9IDB4MEQ1MCwKKyAgICAgICAgUkVEX0JJVFMgPSAweDBENTIsCisgICAgICAgIEdSRUVO
X0JJVFMgPSAweDBENTMsCisgICAgICAgIEJMVUVfQklUUyA9IDB4MEQ1NCwKKyAgICAgICAgQUxQ
SEFfQklUUyA9IDB4MEQ1NSwKKyAgICAgICAgREVQVEhfQklUUyA9IDB4MEQ1NiwKKyAgICAgICAg
U1RFTkNJTF9CSVRTID0gMHgwRDU3LAorICAgICAgICBQT0xZR09OX09GRlNFVF9VTklUUyA9IDB4
MkEwMCwKKyAgICAgICAgUE9MWUdPTl9PRkZTRVRfRkFDVE9SID0gMHg4MDM4LAorICAgICAgICBU
RVhUVVJFX0JJTkRJTkdfMkQgPSAweDgwNjksCisgICAgICAgIFNBTVBMRV9CVUZGRVJTID0gMHg4
MEE4LAorICAgICAgICBTQU1QTEVTID0gMHg4MEE5LAorICAgICAgICBTQU1QTEVfQ09WRVJBR0Vf
VkFMVUUgPSAweDgwQUEsCisgICAgICAgIFNBTVBMRV9DT1ZFUkFHRV9JTlZFUlQgPSAweDgwQUIs
CisgICAgICAgIE5VTV9DT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUyA9IDB4ODZBMiwKKyAgICAg
ICAgQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMgPSAweDg2QTMsCisgICAgICAgIERPTlRfQ0FS
RSA9IDB4MTEwMCwKKyAgICAgICAgRkFTVEVTVCA9IDB4MTEwMSwKKyAgICAgICAgTklDRVNUID0g
MHgxMTAyLAorICAgICAgICBHRU5FUkFURV9NSVBNQVBfSElOVCA9IDB4ODE5MiwKKyAgICAgICAg
QllURSA9IDB4MTQwMCwKKyAgICAgICAgVU5TSUdORURfQllURSA9IDB4MTQwMSwKKyAgICAgICAg
U0hPUlQgPSAweDE0MDIsCisgICAgICAgIFVOU0lHTkVEX1NIT1JUID0gMHgxNDAzLAorICAgICAg
ICBJTlQgPSAweDE0MDQsCisgICAgICAgIFVOU0lHTkVEX0lOVCA9IDB4MTQwNSwKKyAgICAgICAg
RkxPQVQgPSAweDE0MDYsCisgICAgICAgIEhBTEZfRkxPQVRfT0VTID0gMHg4RDYxLAorICAgICAg
ICBGSVhFRCA9IDB4MTQwQywKKyAgICAgICAgREVQVEhfQ09NUE9ORU5UID0gMHgxOTAyLAorICAg
ICAgICBBTFBIQSA9IDB4MTkwNiwKKyAgICAgICAgUkdCID0gMHgxOTA3LAorICAgICAgICBSR0JB
ID0gMHgxOTA4LAorICAgICAgICBCR1JBID0gMHg4MEUxLAorICAgICAgICBMVU1JTkFOQ0UgPSAw
eDE5MDksCisgICAgICAgIExVTUlOQU5DRV9BTFBIQSA9IDB4MTkwQSwKKyAgICAgICAgVU5TSUdO
RURfU0hPUlRfNF80XzRfNCA9IDB4ODAzMywKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV81XzVf
MSA9IDB4ODAzNCwKKyAgICAgICAgVU5TSUdORURfU0hPUlRfNV82XzUgPSAweDgzNjMsCisgICAg
ICAgIEZSQUdNRU5UX1NIQURFUiA9IDB4OEIzMCwKKyAgICAgICAgVkVSVEVYX1NIQURFUiA9IDB4
OEIzMSwKKyAgICAgICAgTUFYX1ZFUlRFWF9BVFRSSUJTID0gMHg4ODY5LAorICAgICAgICBNQVhf
VkVSVEVYX1VOSUZPUk1fVkVDVE9SUyA9IDB4OERGQiwKKyAgICAgICAgTUFYX1ZBUllJTkdfVkVD
VE9SUyA9IDB4OERGQywKKyAgICAgICAgTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFMg
PSAweDhCNEQsCisgICAgICAgIE1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyA9IDB4OEI0
QywKKyAgICAgICAgTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMgPSAweDg4NzIsCisgICAgICAgIE1B
WF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlMgPSAweDhERkQsCisgICAgICAgIFNIQURFUl9UWVBF
ID0gMHg4QjRGLAorICAgICAgICBERUxFVEVfU1RBVFVTID0gMHg4QjgwLAorICAgICAgICBMSU5L
X1NUQVRVUyA9IDB4OEI4MiwKKyAgICAgICAgVkFMSURBVEVfU1RBVFVTID0gMHg4QjgzLAorICAg
ICAgICBBVFRBQ0hFRF9TSEFERVJTID0gMHg4Qjg1LAorICAgICAgICBBQ1RJVkVfVU5JRk9STVMg
PSAweDhCODYsCisgICAgICAgIEFDVElWRV9VTklGT1JNX01BWF9MRU5HVEggPSAweDhCODcsCisg
ICAgICAgIEFDVElWRV9BVFRSSUJVVEVTID0gMHg4Qjg5LAorICAgICAgICBBQ1RJVkVfQVRUUklC
VVRFX01BWF9MRU5HVEggPSAweDhCOEEsCisgICAgICAgIFNIQURJTkdfTEFOR1VBR0VfVkVSU0lP
TiA9IDB4OEI4QywKKyAgICAgICAgQ1VSUkVOVF9QUk9HUkFNID0gMHg4QjhELAorICAgICAgICBO
RVZFUiA9IDB4MDIwMCwKKyAgICAgICAgTEVTUyA9IDB4MDIwMSwKKyAgICAgICAgRVFVQUwgPSAw
eDAyMDIsCisgICAgICAgIExFUVVBTCA9IDB4MDIwMywKKyAgICAgICAgR1JFQVRFUiA9IDB4MDIw
NCwKKyAgICAgICAgTk9URVFVQUwgPSAweDAyMDUsCisgICAgICAgIEdFUVVBTCA9IDB4MDIwNiwK
KyAgICAgICAgQUxXQVlTID0gMHgwMjA3LAorICAgICAgICBLRUVQID0gMHgxRTAwLAorICAgICAg
ICBSRVBMQUNFID0gMHgxRTAxLAorICAgICAgICBJTkNSID0gMHgxRTAyLAorICAgICAgICBERUNS
ID0gMHgxRTAzLAorICAgICAgICBJTlZFUlQgPSAweDE1MEEsCisgICAgICAgIElOQ1JfV1JBUCA9
IDB4ODUwNywKKyAgICAgICAgREVDUl9XUkFQID0gMHg4NTA4LAorICAgICAgICBWRU5ET1IgPSAw
eDFGMDAsCisgICAgICAgIFJFTkRFUkVSID0gMHgxRjAxLAorICAgICAgICBWRVJTSU9OID0gMHgx
RjAyLAorICAgICAgICBFWFRFTlNJT05TID0gMHgxRjAzLAorICAgICAgICBORUFSRVNUID0gMHgy
NjAwLAorICAgICAgICBMSU5FQVIgPSAweDI2MDEsCisgICAgICAgIE5FQVJFU1RfTUlQTUFQX05F
QVJFU1QgPSAweDI3MDAsCisgICAgICAgIExJTkVBUl9NSVBNQVBfTkVBUkVTVCA9IDB4MjcwMSwK
KyAgICAgICAgTkVBUkVTVF9NSVBNQVBfTElORUFSID0gMHgyNzAyLAorICAgICAgICBMSU5FQVJf
TUlQTUFQX0xJTkVBUiA9IDB4MjcwMywKKyAgICAgICAgVEVYVFVSRV9NQUdfRklMVEVSID0gMHgy
ODAwLAorICAgICAgICBURVhUVVJFX01JTl9GSUxURVIgPSAweDI4MDEsCisgICAgICAgIFRFWFRV
UkVfV1JBUF9TID0gMHgyODAyLAorICAgICAgICBURVhUVVJFX1dSQVBfVCA9IDB4MjgwMywKKyAg
ICAgICAgVEVYVFVSRSA9IDB4MTcwMiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUCA9IDB4ODUx
MywKKyAgICAgICAgVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQID0gMHg4NTE0LAorICAgICAgICBU
RVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1ggPSAweDg1MTUsCisgICAgICAgIFRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWCA9IDB4ODUxNiwKKyAgICAgICAgVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9ZID0gMHg4NTE3LAorICAgICAgICBURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1kgPSAw
eDg1MTgsCisgICAgICAgIFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWiA9IDB4ODUxOSwKKyAg
ICAgICAgVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aID0gMHg4NTFBLAorICAgICAgICBNQVhf
Q1VCRV9NQVBfVEVYVFVSRV9TSVpFID0gMHg4NTFDLAorICAgICAgICBURVhUVVJFMCA9IDB4ODRD
MCwKKyAgICAgICAgVEVYVFVSRTEgPSAweDg0QzEsCisgICAgICAgIFRFWFRVUkUyID0gMHg4NEMy
LAorICAgICAgICBURVhUVVJFMyA9IDB4ODRDMywKKyAgICAgICAgVEVYVFVSRTQgPSAweDg0QzQs
CisgICAgICAgIFRFWFRVUkU1ID0gMHg4NEM1LAorICAgICAgICBURVhUVVJFNiA9IDB4ODRDNiwK
KyAgICAgICAgVEVYVFVSRTcgPSAweDg0QzcsCisgICAgICAgIFRFWFRVUkU4ID0gMHg4NEM4LAor
ICAgICAgICBURVhUVVJFOSA9IDB4ODRDOSwKKyAgICAgICAgVEVYVFVSRTEwID0gMHg4NENBLAor
ICAgICAgICBURVhUVVJFMTEgPSAweDg0Q0IsCisgICAgICAgIFRFWFRVUkUxMiA9IDB4ODRDQywK
KyAgICAgICAgVEVYVFVSRTEzID0gMHg4NENELAorICAgICAgICBURVhUVVJFMTQgPSAweDg0Q0Us
CisgICAgICAgIFRFWFRVUkUxNSA9IDB4ODRDRiwKKyAgICAgICAgVEVYVFVSRTE2ID0gMHg4NEQw
LAorICAgICAgICBURVhUVVJFMTcgPSAweDg0RDEsCisgICAgICAgIFRFWFRVUkUxOCA9IDB4ODRE
MiwKKyAgICAgICAgVEVYVFVSRTE5ID0gMHg4NEQzLAorICAgICAgICBURVhUVVJFMjAgPSAweDg0
RDQsCisgICAgICAgIFRFWFRVUkUyMSA9IDB4ODRENSwKKyAgICAgICAgVEVYVFVSRTIyID0gMHg4
NEQ2LAorICAgICAgICBURVhUVVJFMjMgPSAweDg0RDcsCisgICAgICAgIFRFWFRVUkUyNCA9IDB4
ODREOCwKKyAgICAgICAgVEVYVFVSRTI1ID0gMHg4NEQ5LAorICAgICAgICBURVhUVVJFMjYgPSAw
eDg0REEsCisgICAgICAgIFRFWFRVUkUyNyA9IDB4ODREQiwKKyAgICAgICAgVEVYVFVSRTI4ID0g
MHg4NERDLAorICAgICAgICBURVhUVVJFMjkgPSAweDg0REQsCisgICAgICAgIFRFWFRVUkUzMCA9
IDB4ODRERSwKKyAgICAgICAgVEVYVFVSRTMxID0gMHg4NERGLAorICAgICAgICBBQ1RJVkVfVEVY
VFVSRSA9IDB4ODRFMCwKKyAgICAgICAgUkVQRUFUID0gMHgyOTAxLAorICAgICAgICBDTEFNUF9U
T19FREdFID0gMHg4MTJGLAorICAgICAgICBNSVJST1JFRF9SRVBFQVQgPSAweDgzNzAsCisgICAg
ICAgIEZMT0FUX1ZFQzIgPSAweDhCNTAsCisgICAgICAgIEZMT0FUX1ZFQzMgPSAweDhCNTEsCisg
ICAgICAgIEZMT0FUX1ZFQzQgPSAweDhCNTIsCisgICAgICAgIElOVF9WRUMyID0gMHg4QjUzLAor
ICAgICAgICBJTlRfVkVDMyA9IDB4OEI1NCwKKyAgICAgICAgSU5UX1ZFQzQgPSAweDhCNTUsCisg
ICAgICAgIEJPT0wgPSAweDhCNTYsCisgICAgICAgIEJPT0xfVkVDMiA9IDB4OEI1NywKKyAgICAg
ICAgQk9PTF9WRUMzID0gMHg4QjU4LAorICAgICAgICBCT09MX1ZFQzQgPSAweDhCNTksCisgICAg
ICAgIEZMT0FUX01BVDIgPSAweDhCNUEsCisgICAgICAgIEZMT0FUX01BVDMgPSAweDhCNUIsCisg
ICAgICAgIEZMT0FUX01BVDQgPSAweDhCNUMsCisgICAgICAgIFNBTVBMRVJfMkQgPSAweDhCNUUs
CisgICAgICAgIFNBTVBMRVJfQ1VCRSA9IDB4OEI2MCwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9B
UlJBWV9FTkFCTEVEID0gMHg4NjIyLAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1NJWkUg
PSAweDg2MjMsCisgICAgICAgIFZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFID0gMHg4NjI0LAor
ICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX1RZUEUgPSAweDg2MjUsCisgICAgICAgIFZFUlRF
WF9BVFRSSUJfQVJSQVlfTk9STUFMSVpFRCA9IDB4ODg2QSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9QT0lOVEVSID0gMHg4NjQ1LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0JV
RkZFUl9CSU5ESU5HID0gMHg4ODlGLAorICAgICAgICBJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFE
X1RZUEUgPSAweDhCOUEsCisgICAgICAgIElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfRk9STUFU
ID0gMHg4QjlCLAorICAgICAgICBDT01QSUxFX1NUQVRVUyA9IDB4OEI4MSwKKyAgICAgICAgSU5G
T19MT0dfTEVOR1RIID0gMHg4Qjg0LAorICAgICAgICBTSEFERVJfU09VUkNFX0xFTkdUSCA9IDB4
OEI4OCwKKyAgICAgICAgU0hBREVSX0NPTVBJTEVSID0gMHg4REZBLAorICAgICAgICBTSEFERVJf
QklOQVJZX0ZPUk1BVFMgPSAweDhERjgsCisgICAgICAgIE5VTV9TSEFERVJfQklOQVJZX0ZPUk1B
VFMgPSAweDhERjksCisgICAgICAgIExPV19GTE9BVCA9IDB4OERGMCwKKyAgICAgICAgTUVESVVN
X0ZMT0FUID0gMHg4REYxLAorICAgICAgICBISUdIX0ZMT0FUID0gMHg4REYyLAorICAgICAgICBM
T1dfSU5UID0gMHg4REYzLAorICAgICAgICBNRURJVU1fSU5UID0gMHg4REY0LAorICAgICAgICBI
SUdIX0lOVCA9IDB4OERGNSwKKyAgICAgICAgRlJBTUVCVUZGRVIgPSAweDhENDAsCisgICAgICAg
IFJFTkRFUkJVRkZFUiA9IDB4OEQ0MSwKKyAgICAgICAgUkdCQTQgPSAweDgwNTYsCisgICAgICAg
IFJHQjVfQTEgPSAweDgwNTcsCisgICAgICAgIFJHQjU2NSA9IDB4OEQ2MiwKKyAgICAgICAgREVQ
VEhfQ09NUE9ORU5UMTYgPSAweDgxQTUsCisgICAgICAgIFNURU5DSUxfSU5ERVggPSAweDE5MDEs
CisgICAgICAgIFNURU5DSUxfSU5ERVg4ID0gMHg4RDQ4LAorICAgICAgICBSRU5ERVJCVUZGRVJf
V0lEVEggPSAweDhENDIsCisgICAgICAgIFJFTkRFUkJVRkZFUl9IRUlHSFQgPSAweDhENDMsCisg
ICAgICAgIFJFTkRFUkJVRkZFUl9JTlRFUk5BTF9GT1JNQVQgPSAweDhENDQsCisgICAgICAgIFJF
TkRFUkJVRkZFUl9SRURfU0laRSA9IDB4OEQ1MCwKKyAgICAgICAgUkVOREVSQlVGRkVSX0dSRUVO
X1NJWkUgPSAweDhENTEsCisgICAgICAgIFJFTkRFUkJVRkZFUl9CTFVFX1NJWkUgPSAweDhENTIs
CisgICAgICAgIFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFID0gMHg4RDUzLAorICAgICAgICBSRU5E
RVJCVUZGRVJfREVQVEhfU0laRSA9IDB4OEQ1NCwKKyAgICAgICAgUkVOREVSQlVGRkVSX1NURU5D
SUxfU0laRSA9IDB4OEQ1NSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1Rf
VFlQRSA9IDB4OENEMCwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfTkFN
RSA9IDB4OENEMSwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVM
ID0gMHg4Q0QyLAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9N
QVBfRkFDRSA9IDB4OENEMywKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDAgPSAweDhDRTAsCisg
ICAgICAgIERFUFRIX0FUVEFDSE1FTlQgPSAweDhEMDAsCisgICAgICAgIFNURU5DSUxfQVRUQUNI
TUVOVCA9IDB4OEQyMCwKKyAgICAgICAgTk9ORSA9IDAsCisgICAgICAgIEZSQU1FQlVGRkVSX0NP
TVBMRVRFID0gMHg4Q0Q1LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1F
TlQgPSAweDhDRDYsCisgICAgICAgIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRB
Q0hNRU5UID0gMHg4Q0Q3LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgPSAweDhDRDksCisgICAgICAgIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVEID0gMHg4Q0RELAor
ICAgICAgICBGUkFNRUJVRkZFUl9CSU5ESU5HID0gMHg4Q0E2LAorICAgICAgICBSRU5ERVJCVUZG
RVJfQklORElORyA9IDB4OENBNywKKyAgICAgICAgTUFYX1JFTkRFUkJVRkZFUl9TSVpFID0gMHg4
NEU4LAorICAgICAgICBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA9IDB4MDUwNiwKKwor
ICAgICAgICAvLyBXZWJHTC1zcGVjaWZpYyBlbnVtcworICAgICAgICBVTlBBQ0tfRkxJUF9ZX1dF
QkdMID0gMHg5MjQwLAorICAgICAgICBVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wgPSAw
eDkyNDEsCisgICAgICAgIENPTlRFWFRfTE9TVF9XRUJHTCA9IDB4OTI0MiwKKyAgICAgICAgVU5Q
QUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCA9IDB4OTI0MywKKyAgICAgICAgQlJPV1NF
Ul9ERUZBVUxUX1dFQkdMID0gMHg5MjQ0LAorICAgICAgICBWRVJURVhfQVRUUklCX0FSUkFZX0RJ
VklTT1JfQU5HTEUgPSAweDg4RkUsCisgICAgICAgIAorICAgICAgICAvLyBXZWJHTDIgY29uc3Rh
bnRzCisgICAgICAgIFJFQURfQlVGRkVSID0gMHgwQzAyLAorICAgICAgICBVTlBBQ0tfUk9XX0xF
TkdUSCA9IDB4MENGMiwKKyAgICAgICAgVU5QQUNLX1NLSVBfUk9XUyA9IDB4MENGMywKKyAgICAg
ICAgVU5QQUNLX1NLSVBfUElYRUxTID0gMHgwQ0Y0LAorICAgICAgICBQQUNLX1JPV19MRU5HVEgg
PSAweDBEMDIsCisgICAgICAgIFBBQ0tfU0tJUF9ST1dTID0gMHgwRDAzLAorICAgICAgICBQQUNL
X1NLSVBfUElYRUxTID0gMHgwRDA0LAorICAgICAgICBDT0xPUiA9IDB4MTgwMCwKKyAgICAgICAg
REVQVEggPSAweDE4MDEsCisgICAgICAgIFNURU5DSUwgPSAweDE4MDIsCisgICAgICAgIFJFRCA9
IDB4MTkwMywKKyAgICAgICAgUkdCOCA9IDB4ODA1MSwKKyAgICAgICAgUkdCQTggPSAweDgwNTgs
CisgICAgICAgIFJHQjEwX0EyID0gMHg4MDU5LAorICAgICAgICBURVhUVVJFX0JJTkRJTkdfM0Qg
PSAweDgwNkEsCisgICAgICAgIFVOUEFDS19TS0lQX0lNQUdFUyA9IDB4ODA2RCwKKyAgICAgICAg
VU5QQUNLX0lNQUdFX0hFSUdIVCA9IDB4ODA2RSwKKyAgICAgICAgVEVYVFVSRV8zRCA9IDB4ODA2
RiwKKyAgICAgICAgVEVYVFVSRV9XUkFQX1IgPSAweDgwNzIsCisgICAgICAgIE1BWF8zRF9URVhU
VVJFX1NJWkUgPSAweDgwNzMsCisgICAgICAgIFVOU0lHTkVEX0lOVF8yXzEwXzEwXzEwX1JFViA9
IDB4ODM2OCwKKyAgICAgICAgTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTID0gMHg4MEU4LAorICAgICAg
ICBNQVhfRUxFTUVOVFNfSU5ESUNFUyA9IDB4ODBFOSwKKyAgICAgICAgVEVYVFVSRV9NSU5fTE9E
ID0gMHg4MTNBLAorICAgICAgICBURVhUVVJFX01BWF9MT0QgPSAweDgxM0IsCisgICAgICAgIFRF
WFRVUkVfQkFTRV9MRVZFTCA9IDB4ODEzQywKKyAgICAgICAgVEVYVFVSRV9NQVhfTEVWRUwgPSAw
eDgxM0QsCisgICAgICAgIE1JTiA9IDB4ODAwNywKKyAgICAgICAgTUFYID0gMHg4MDA4LAorICAg
ICAgICBERVBUSF9DT01QT05FTlQyNCA9IDB4ODFBNiwKKyAgICAgICAgTUFYX1RFWFRVUkVfTE9E
X0JJQVMgPSAweDg0RkQsCisgICAgICAgIFRFWFRVUkVfQ09NUEFSRV9NT0RFID0gMHg4ODRDLAor
ICAgICAgICBURVhUVVJFX0NPTVBBUkVfRlVOQyA9IDB4ODg0RCwKKyAgICAgICAgQ1VSUkVOVF9R
VUVSWSA9IDB4ODg2NSwKKyAgICAgICAgUVVFUllfUkVTVUxUID0gMHg4ODY2LAorICAgICAgICBR
VUVSWV9SRVNVTFRfQVZBSUxBQkxFID0gMHg4ODY3LAorICAgICAgICBTVFJFQU1fUkVBRCA9IDB4
ODhFMSwKKyAgICAgICAgU1RSRUFNX0NPUFkgPSAweDg4RTIsCisgICAgICAgIFNUQVRJQ19SRUFE
ID0gMHg4OEU1LAorICAgICAgICBTVEFUSUNfQ09QWSA9IDB4ODhFNiwKKyAgICAgICAgRFlOQU1J
Q19SRUFEID0gMHg4OEU5LAorICAgICAgICBEWU5BTUlDX0NPUFkgPSAweDg4RUEsCisgICAgICAg
IE1BWF9EUkFXX0JVRkZFUlMgPSAweDg4MjQsCisgICAgICAgIERSQVdfQlVGRkVSMCA9IDB4ODgy
NSwKKyAgICAgICAgRFJBV19CVUZGRVIxID0gMHg4ODI2LAorICAgICAgICBEUkFXX0JVRkZFUjIg
PSAweDg4MjcsCisgICAgICAgIERSQVdfQlVGRkVSMyA9IDB4ODgyOCwKKyAgICAgICAgRFJBV19C
VUZGRVI0ID0gMHg4ODI5LAorICAgICAgICBEUkFXX0JVRkZFUjUgPSAweDg4MkEsCisgICAgICAg
IERSQVdfQlVGRkVSNiA9IDB4ODgyQiwKKyAgICAgICAgRFJBV19CVUZGRVI3ID0gMHg4ODJDLAor
ICAgICAgICBEUkFXX0JVRkZFUjggPSAweDg4MkQsCisgICAgICAgIERSQVdfQlVGRkVSOSA9IDB4
ODgyRSwKKyAgICAgICAgRFJBV19CVUZGRVIxMCA9IDB4ODgyRiwKKyAgICAgICAgRFJBV19CVUZG
RVIxMSA9IDB4ODgzMCwKKyAgICAgICAgRFJBV19CVUZGRVIxMiA9IDB4ODgzMSwKKyAgICAgICAg
RFJBV19CVUZGRVIxMyA9IDB4ODgzMiwKKyAgICAgICAgRFJBV19CVUZGRVIxNCA9IDB4ODgzMywK
KyAgICAgICAgRFJBV19CVUZGRVIxNSA9IDB4ODgzNCwKKyAgICAgICAgTUFYX0ZSQUdNRU5UX1VO
SUZPUk1fQ09NUE9ORU5UUyA9IDB4OEI0OSwKKyAgICAgICAgTUFYX1ZFUlRFWF9VTklGT1JNX0NP
TVBPTkVOVFMgPSAweDhCNEEsCisgICAgICAgIFNBTVBMRVJfM0QgPSAweDhCNUYsCisgICAgICAg
IFNBTVBMRVJfMkRfU0hBRE9XID0gMHg4QjYyLAorICAgICAgICBGUkFHTUVOVF9TSEFERVJfREVS
SVZBVElWRV9ISU5UID0gMHg4QjhCLAorICAgICAgICBQSVhFTF9QQUNLX0JVRkZFUiA9IDB4ODhF
QiwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZFUiA9IDB4ODhFQywKKyAgICAgICAgUElYRUxf
UEFDS19CVUZGRVJfQklORElORyA9IDB4ODhFRCwKKyAgICAgICAgUElYRUxfVU5QQUNLX0JVRkZF
Ul9CSU5ESU5HID0gMHg4OEVGLAorICAgICAgICBGTE9BVF9NQVQyeDMgPSAweDhCNjUsCisgICAg
ICAgIEZMT0FUX01BVDJ4NCA9IDB4OEI2NiwKKyAgICAgICAgRkxPQVRfTUFUM3gyID0gMHg4QjY3
LAorICAgICAgICBGTE9BVF9NQVQzeDQgPSAweDhCNjgsCisgICAgICAgIEZMT0FUX01BVDR4MiA9
IDB4OEI2OSwKKyAgICAgICAgRkxPQVRfTUFUNHgzID0gMHg4QjZBLAorICAgICAgICBTUkdCID0g
MHg4QzQwLAorICAgICAgICBTUkdCOCA9IDB4OEM0MSwKKyAgICAgICAgU1JHQl9BTFBIQSA9IDB4
OEM0MiwKKyAgICAgICAgU1JHQjhfQUxQSEE4ID0gMHg4QzQzLAorICAgICAgICBDT01QQVJFX1JF
Rl9UT19URVhUVVJFID0gMHg4ODRFLAorICAgICAgICBSR0JBMzJGID0gMHg4ODE0LAorICAgICAg
ICBSR0IzMkYgPSAweDg4MTUsCisgICAgICAgIFJHQkExNkYgPSAweDg4MUEsCisgICAgICAgIFJH
QjE2RiA9IDB4ODgxQiwKKyAgICAgICAgVkVSVEVYX0FUVFJJQl9BUlJBWV9JTlRFR0VSID0gMHg4
OEZELAorICAgICAgICBNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlMgPSAweDg4RkYsCisgICAgICAg
IE1JTl9QUk9HUkFNX1RFWEVMX09GRlNFVCA9IDB4ODkwNCwKKyAgICAgICAgTUFYX1BST0dSQU1f
VEVYRUxfT0ZGU0VUID0gMHg4OTA1LAorICAgICAgICBNQVhfVkFSWUlOR19DT01QT05FTlRTID0g
MHg4QjRCLAorICAgICAgICBURVhUVVJFXzJEX0FSUkFZID0gMHg4QzFBLAorICAgICAgICBURVhU
VVJFX0JJTkRJTkdfMkRfQVJSQVkgPSAweDhDMUQsCisgICAgICAgIFIxMUZfRzExRl9CMTBGID0g
MHg4QzNBLAorICAgICAgICBVTlNJR05FRF9JTlRfMTBGXzExRl8xMUZfUkVWID0gMHg4QzNCLAor
ICAgICAgICBSR0I5X0U1ID0gMHg4QzNELAorICAgICAgICBVTlNJR05FRF9JTlRfNV85XzlfOV9S
RVYgPSAweDhDM0UsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfTU9ERSA9IDB4
OEM3RiwKKyAgICAgICAgTUFYX1RSQU5TRk9STV9GRUVEQkFDS19TRVBBUkFURV9DT01QT05FTlRT
ID0gMHg4QzgwLAorICAgICAgICBUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1MgPSAweDhDODMs
CisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU1RBUlQgPSAweDhDODQsCisgICAg
ICAgIFRSQU5TRk9STV9GRUVEQkFDS19CVUZGRVJfU0laRSA9IDB4OEM4NSwKKyAgICAgICAgVFJB
TlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTiA9IDB4OEM4OCwKKyAgICAgICAgUkFT
VEVSSVpFUl9ESVNDQVJEID0gMHg4Qzg5LAorICAgICAgICBNQVhfVFJBTlNGT1JNX0ZFRURCQUNL
X0lOVEVSTEVBVkVEX0NPTVBPTkVOVFMgPSAweDhDOEEsCisgICAgICAgIE1BWF9UUkFOU0ZPUk1f
RkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4QiwKKyAgICAgICAgSU5URVJMRUFWRURf
QVRUUklCUyA9IDB4OEM4QywKKyAgICAgICAgU0VQQVJBVEVfQVRUUklCUyA9IDB4OEM4RCwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUiA9IDB4OEM4RSwKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0JVRkZFUl9CSU5ESU5HID0gMHg4QzhGLAorICAgICAgICBSR0JBMzJVSSA9
IDB4OEQ3MCwKKyAgICAgICAgUkdCMzJVSSA9IDB4OEQ3MSwKKyAgICAgICAgUkdCQTE2VUkgPSAw
eDhENzYsCisgICAgICAgIFJHQjE2VUkgPSAweDhENzcsCisgICAgICAgIFJHQkE4VUkgPSAweDhE
N0MsCisgICAgICAgIFJHQjhVSSA9IDB4OEQ3RCwKKyAgICAgICAgUkdCQTMySSA9IDB4OEQ4MiwK
KyAgICAgICAgUkdCMzJJID0gMHg4RDgzLAorICAgICAgICBSR0JBMTZJID0gMHg4RDg4LAorICAg
ICAgICBSR0IxNkkgPSAweDhEODksCisgICAgICAgIFJHQkE4SSA9IDB4OEQ4RSwKKyAgICAgICAg
UkdCOEkgPSAweDhEOEYsCisgICAgICAgIFJFRF9JTlRFR0VSID0gMHg4RDk0LAorICAgICAgICBS
R0JfSU5URUdFUiA9IDB4OEQ5OCwKKyAgICAgICAgUkdCQV9JTlRFR0VSID0gMHg4RDk5LAorICAg
ICAgICBTQU1QTEVSXzJEX0FSUkFZID0gMHg4REMxLAorICAgICAgICBTQU1QTEVSXzJEX0FSUkFZ
X1NIQURPVyA9IDB4OERDNCwKKyAgICAgICAgU0FNUExFUl9DVUJFX1NIQURPVyA9IDB4OERDNSwK
KyAgICAgICAgVU5TSUdORURfSU5UX1ZFQzIgPSAweDhEQzYsCisgICAgICAgIFVOU0lHTkVEX0lO
VF9WRUMzID0gMHg4REM3LAorICAgICAgICBVTlNJR05FRF9JTlRfVkVDNCA9IDB4OERDOCwKKyAg
ICAgICAgSU5UX1NBTVBMRVJfMkQgPSAweDhEQ0EsCisgICAgICAgIElOVF9TQU1QTEVSXzNEID0g
MHg4RENCLAorICAgICAgICBJTlRfU0FNUExFUl9DVUJFID0gMHg4RENDLAorICAgICAgICBJTlRf
U0FNUExFUl8yRF9BUlJBWSA9IDB4OERDRiwKKyAgICAgICAgVU5TSUdORURfSU5UX1NBTVBMRVJf
MkQgPSAweDhERDIsCisgICAgICAgIFVOU0lHTkVEX0lOVF9TQU1QTEVSXzNEID0gMHg4REQzLAor
ICAgICAgICBVTlNJR05FRF9JTlRfU0FNUExFUl9DVUJFID0gMHg4REQ0LAorICAgICAgICBVTlNJ
R05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWSA9IDB4OERENywKKyAgICAgICAgREVQVEhfQ09NUE9O
RU5UMzJGID0gMHg4Q0FDLAorICAgICAgICBERVBUSDMyRl9TVEVOQ0lMOCA9IDB4OENBRCwKKyAg
ICAgICAgRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWID0gMHg4REFELAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTE9SX0VOQ09ESU5HID0gMHg4MjEwLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0NPTVBPTkVOVF9UWVBFID0gMHg4MjExLAorICAgICAgICBG
UkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFID0gMHg4MjEyLAorICAgICAgICBGUkFNRUJV
RkZFUl9BVFRBQ0hNRU5UX0dSRUVOX1NJWkUgPSAweDgyMTMsCisgICAgICAgIEZSQU1FQlVGRkVS
X0FUVEFDSE1FTlRfQkxVRV9TSVpFID0gMHg4MjE0LAorICAgICAgICBGUkFNRUJVRkZFUl9BVFRB
Q0hNRU5UX0FMUEhBX1NJWkUgPSAweDgyMTUsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfREVQVEhfU0laRSA9IDB4ODIxNiwKKyAgICAgICAgRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9T
VEVOQ0lMX1NJWkUgPSAweDgyMTcsCisgICAgICAgIEZSQU1FQlVGRkVSX0RFRkFVTFQgPSAweDgy
MTgsCisgICAgICAgIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCA9IDB4ODIxQSwKKyAgICAgICAg
REVQVEhfU1RFTkNJTCA9IDB4ODRGOSwKKyAgICAgICAgVU5TSUdORURfSU5UXzI0XzggPSAweDg0
RkEsCisgICAgICAgIERFUFRIMjRfU1RFTkNJTDggPSAweDg4RjAsCisgICAgICAgIFVOU0lHTkVE
X05PUk1BTElaRUQgPSAweDhDMTcsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVJfQklORElORyA9
IDB4OENBNiwgLyogU2FtZSBhcyBGUkFNRUJVRkZFUl9CSU5ESU5HICovCisgICAgICAgIFJFQURf
RlJBTUVCVUZGRVIgPSAweDhDQTgsCisgICAgICAgIERSQVdfRlJBTUVCVUZGRVIgPSAweDhDQTks
CisgICAgICAgIFJFQURfRlJBTUVCVUZGRVJfQklORElORyA9IDB4OENBQSwKKyAgICAgICAgUkVO
REVSQlVGRkVSX1NBTVBMRVMgPSAweDhDQUIsCisgICAgICAgIEZSQU1FQlVGRkVSX0FUVEFDSE1F
TlRfVEVYVFVSRV9MQVlFUiA9IDB4OENENCwKKyAgICAgICAgTUFYX0NPTE9SX0FUVEFDSE1FTlRT
ID0gMHg4Q0RGLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMSA9IDB4OENFMSwKKyAgICAgICAg
Q09MT1JfQVRUQUNITUVOVDIgPSAweDhDRTIsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQzID0g
MHg4Q0UzLAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNCA9IDB4OENFNCwKKyAgICAgICAgQ09M
T1JfQVRUQUNITUVOVDUgPSAweDhDRTUsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ2ID0gMHg4
Q0U2LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UNyA9IDB4OENFNywKKyAgICAgICAgQ09MT1Jf
QVRUQUNITUVOVDggPSAweDhDRTgsCisgICAgICAgIENPTE9SX0FUVEFDSE1FTlQ5ID0gMHg4Q0U5
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTAgPSAweDhDRUEsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxMSA9IDB4OENFQiwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDEyID0gMHg4Q0VD
LAorICAgICAgICBDT0xPUl9BVFRBQ0hNRU5UMTMgPSAweDhDRUQsCisgICAgICAgIENPTE9SX0FU
VEFDSE1FTlQxNCA9IDB4OENFRSwKKyAgICAgICAgQ09MT1JfQVRUQUNITUVOVDE1ID0gMHg4Q0VG
LAorICAgICAgICBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01VTFRJU0FNUExFID0gMHg4RDU2LAor
ICAgICAgICBNQVhfU0FNUExFUyA9IDB4OEQ1NywKKyAgICAgICAgSEFMRl9GTE9BVCA9IDB4MTQw
QiwKKyAgICAgICAgUkcgPSAweDgyMjcsCisgICAgICAgIFJHX0lOVEVHRVIgPSAweDgyMjgsCisg
ICAgICAgIFI4ID0gMHg4MjI5LAorICAgICAgICBSRzggPSAweDgyMkIsCisgICAgICAgIFIxNkYg
PSAweDgyMkQsCisgICAgICAgIFIzMkYgPSAweDgyMkUsCisgICAgICAgIFJHMTZGID0gMHg4MjJG
LAorICAgICAgICBSRzMyRiA9IDB4ODIzMCwKKyAgICAgICAgUjhJID0gMHg4MjMxLAorICAgICAg
ICBSOFVJID0gMHg4MjMyLAorICAgICAgICBSMTZJID0gMHg4MjMzLAorICAgICAgICBSMTZVSSA9
IDB4ODIzNCwKKyAgICAgICAgUjMySSA9IDB4ODIzNSwKKyAgICAgICAgUjMyVUkgPSAweDgyMzYs
CisgICAgICAgIFJHOEkgPSAweDgyMzcsCisgICAgICAgIFJHOFVJID0gMHg4MjM4LAorICAgICAg
ICBSRzE2SSA9IDB4ODIzOSwKKyAgICAgICAgUkcxNlVJID0gMHg4MjNBLAorICAgICAgICBSRzMy
SSA9IDB4ODIzQiwKKyAgICAgICAgUkczMlVJID0gMHg4MjNDLAorICAgICAgICBWRVJURVhfQVJS
QVlfQklORElORyA9IDB4ODVCNSwKKyAgICAgICAgUjhfU05PUk0gPSAweDhGOTQsCisgICAgICAg
IFJHOF9TTk9STSA9IDB4OEY5NSwKKyAgICAgICAgUkdCOF9TTk9STSA9IDB4OEY5NiwKKyAgICAg
ICAgUkdCQThfU05PUk0gPSAweDhGOTcsCisgICAgICAgIFNJR05FRF9OT1JNQUxJWkVEID0gMHg4
RjlDLAorICAgICAgICBDT1BZX1JFQURfQlVGRkVSID0gMHg4RjM2LAorICAgICAgICBDT1BZX1dS
SVRFX0JVRkZFUiA9IDB4OEYzNywKKyAgICAgICAgQ09QWV9SRUFEX0JVRkZFUl9CSU5ESU5HID0g
MHg4RjM2LCAvKiBTYW1lIGFzIENPUFlfUkVBRF9CVUZGRVIgKi8KKyAgICAgICAgQ09QWV9XUklU
RV9CVUZGRVJfQklORElORyA9IDB4OEYzNywgLyogU2FtZSBhcyBDT1BZX1dSSVRFX0JVRkZFUiAq
LworICAgICAgICBVTklGT1JNX0JVRkZFUiA9IDB4OEExMSwKKyAgICAgICAgVU5JRk9STV9CVUZG
RVJfQklORElORyA9IDB4OEEyOCwKKyAgICAgICAgVU5JRk9STV9CVUZGRVJfU1RBUlQgPSAweDhB
MjksCisgICAgICAgIFVOSUZPUk1fQlVGRkVSX1NJWkUgPSAweDhBMkEsCisgICAgICAgIE1BWF9W
RVJURVhfVU5JRk9STV9CTE9DS1MgPSAweDhBMkIsCisgICAgICAgIE1BWF9GUkFHTUVOVF9VTklG
T1JNX0JMT0NLUyA9IDB4OEEyRCwKKyAgICAgICAgTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tT
ID0gMHg4QTJFLAorICAgICAgICBNQVhfVU5JRk9STV9CVUZGRVJfQklORElOR1MgPSAweDhBMkYs
CisgICAgICAgIE1BWF9VTklGT1JNX0JMT0NLX1NJWkUgPSAweDhBMzAsCisgICAgICAgIE1BWF9D
T01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMxLAorICAgICAgICBNQVhf
Q09NQklORURfRlJBR01FTlRfVU5JRk9STV9DT01QT05FTlRTID0gMHg4QTMzLAorICAgICAgICBV
TklGT1JNX0JVRkZFUl9PRkZTRVRfQUxJR05NRU5UID0gMHg4QTM0LAorICAgICAgICBBQ1RJVkVf
VU5JRk9STV9CTE9DS1MgPSAweDhBMzYsCisgICAgICAgIFVOSUZPUk1fVFlQRSA9IDB4OEEzNywK
KyAgICAgICAgVU5JRk9STV9TSVpFID0gMHg4QTM4LAorICAgICAgICBVTklGT1JNX0JMT0NLX0lO
REVYID0gMHg4QTNBLAorICAgICAgICBVTklGT1JNX09GRlNFVCA9IDB4OEEzQiwKKyAgICAgICAg
VU5JRk9STV9BUlJBWV9TVFJJREUgPSAweDhBM0MsCisgICAgICAgIFVOSUZPUk1fTUFUUklYX1NU
UklERSA9IDB4OEEzRCwKKyAgICAgICAgVU5JRk9STV9JU19ST1dfTUFKT1IgPSAweDhBM0UsCisg
ICAgICAgIFVOSUZPUk1fQkxPQ0tfQklORElORyA9IDB4OEEzRiwKKyAgICAgICAgVU5JRk9STV9C
TE9DS19EQVRBX1NJWkUgPSAweDhBNDAsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfQUNUSVZFX1VO
SUZPUk1TID0gMHg4QTQyLAorICAgICAgICBVTklGT1JNX0JMT0NLX0FDVElWRV9VTklGT1JNX0lO
RElDRVMgPSAweDhBNDMsCisgICAgICAgIFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJU
RVhfU0hBREVSID0gMHg4QTQ0LAorICAgICAgICBVTklGT1JNX0JMT0NLX1JFRkVSRU5DRURfQllf
RlJBR01FTlRfU0hBREVSID0gMHg4QTQ2LAorICAgICAgICBJTlZBTElEX0lOREVYID0gMHhGRkZG
RkZGRiwKKyAgICAgICAgTUFYX1ZFUlRFWF9PVVRQVVRfQ09NUE9ORU5UUyA9IDB4OTEyMiwKKyAg
ICAgICAgTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFMgPSAweDkxMjUsCisgICAgICAgIE1B
WF9TRVJWRVJfV0FJVF9USU1FT1VUID0gMHg5MTExLAorICAgICAgICBPQkpFQ1RfVFlQRSA9IDB4
OTExMiwKKyAgICAgICAgU1lOQ19DT05ESVRJT04gPSAweDkxMTMsCisgICAgICAgIFNZTkNfU1RB
VFVTID0gMHg5MTE0LAorICAgICAgICBTWU5DX0ZMQUdTID0gMHg5MTE1LAorICAgICAgICBTWU5D
X0ZFTkNFID0gMHg5MTE2LAorICAgICAgICBTWU5DX0dQVV9DT01NQU5EU19DT01QTEVURSA9IDB4
OTExNywKKyAgICAgICAgVU5TSUdOQUxFRCA9IDB4OTExOCwKKyAgICAgICAgU0lHTkFMRUQgPSAw
eDkxMTksCisgICAgICAgIEFMUkVBRFlfU0lHTkFMRUQgPSAweDkxMUEsCisgICAgICAgIFRJTUVP
VVRfRVhQSVJFRCA9IDB4OTExQiwKKyAgICAgICAgQ09ORElUSU9OX1NBVElTRklFRCA9IDB4OTEx
QywKKyNpZiBQTEFURk9STShXSU4pCisgICAgICAgIFdBSVRfRkFJTEVEX1dJTiA9IDB4OTExRCwK
KyNlbHNlCisgICAgICAgIFdBSVRfRkFJTEVEID0gMHg5MTFELAorI2VuZGlmCisgICAgICAgIFNZ
TkNfRkxVU0hfQ09NTUFORFNfQklUID0gMHgwMDAwMDAwMSwKKyAgICAgICAgVkVSVEVYX0FUVFJJ
Ql9BUlJBWV9ESVZJU09SID0gMHg4OEZFLAorICAgICAgICBBTllfU0FNUExFU19QQVNTRUQgPSAw
eDhDMkYsCisgICAgICAgIEFOWV9TQU1QTEVTX1BBU1NFRF9DT05TRVJWQVRJVkUgPSAweDhENkEs
CisgICAgICAgIFNBTVBMRVJfQklORElORyA9IDB4ODkxOSwKKyAgICAgICAgUkdCMTBfQTJVSSA9
IDB4OTA2RiwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX1IgPSAweDhFNDIsCisgICAgICAgIFRF
WFRVUkVfU1dJWlpMRV9HID0gMHg4RTQzLAorICAgICAgICBURVhUVVJFX1NXSVpaTEVfQiA9IDB4
OEU0NCwKKyAgICAgICAgVEVYVFVSRV9TV0laWkxFX0EgPSAweDhFNDUsCisgICAgICAgIEdSRUVO
ID0gMHgxOTA0LAorICAgICAgICBCTFVFID0gMHgxOTA1LAorICAgICAgICBJTlRfMl8xMF8xMF8x
MF9SRVYgPSAweDhEOUYsCisgICAgICAgIFRSQU5TRk9STV9GRUVEQkFDSyA9IDB4OEUyMiwKKyAg
ICAgICAgVFJBTlNGT1JNX0ZFRURCQUNLX1BBVVNFRCA9IDB4OEUyMywKKyAgICAgICAgVFJBTlNG
T1JNX0ZFRURCQUNLX0FDVElWRSA9IDB4OEUyNCwKKyAgICAgICAgVFJBTlNGT1JNX0ZFRURCQUNL
X0JJTkRJTkcgPSAweDhFMjUsCisgICAgICAgIENPTVBSRVNTRURfUjExX0VBQyA9IDB4OTI3MCwK
KyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQyA9IDB4OTI3MSwKKyAgICAgICAgQ09N
UFJFU1NFRF9SRzExX0VBQyA9IDB4OTI3MiwKKyAgICAgICAgQ09NUFJFU1NFRF9TSUdORURfUkcx
MV9FQUMgPSAweDkyNzMsCisgICAgICAgIENPTVBSRVNTRURfUkdCOF9FVEMyID0gMHg5Mjc0LAor
ICAgICAgICBDT01QUkVTU0VEX1NSR0I4X0VUQzIgPSAweDkyNzUsCisgICAgICAgIENPTVBSRVNT
RURfUkdCOF9QVU5DSFRIUk9VR0hfQUxQSEExX0VUQzIgPSAweDkyNzYsCisgICAgICAgIENPTVBS
RVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyID0gMHg5Mjc3LAorICAgICAgICBD
T01QUkVTU0VEX1JHQkE4X0VUQzJfRUFDID0gMHg5Mjc4LAorICAgICAgICBDT01QUkVTU0VEX1NS
R0I4X0FMUEhBOF9FVEMyX0VBQyA9IDB4OTI3OSwKKyAgICAgICAgVEVYVFVSRV9JTU1VVEFCTEVf
Rk9STUFUID0gMHg5MTJGLAorICAgICAgICBNQVhfRUxFTUVOVF9JTkRFWCA9IDB4OEQ2QiwKKyAg
ICAgICAgTlVNX1NBTVBMRV9DT1VOVFMgPSAweDkzODAsCisgICAgICAgIFRFWFRVUkVfSU1NVVRB
QkxFX0xFVkVMUyA9IDB4ODJERiwKKyAgICAgICAgUFJJTUlUSVZFX1JFU1RBUlRfRklYRURfSU5E
RVggPSAweDhENjksCisgICAgICAgIFBSSU1JVElWRV9SRVNUQVJUID0gMHg4RjlELAorCisgICAg
ICAgIC8vIE9wZW5HTCBFUyAzIGNvbnN0YW50cy4KKyAgICAgICAgTUFQX1JFQURfQklUID0gMHgw
MDAxLAorCisgICAgICAgIC8vIE5lY2Vzc2FyeSBkZXNrdG9wIE9wZW5HTCBjb25zdGFudHMuCisg
ICAgICAgIFRFWFRVUkVfUkVDVEFOR0xFX0FSQiA9IDB4ODRGNQorICAgIH07CisKKyAgICBlbnVt
IGNsYXNzIERhdGFGb3JtYXQgOiB1aW50OF90IHsKKyAgICAgICAgUkdCQTggPSAwLAorICAgICAg
ICBSR0JBMTZMaXR0bGUsCisgICAgICAgIFJHQkExNkJpZywKKyAgICAgICAgUkdCQTE2RiwKKyAg
ICAgICAgUkdCQTMyRiwKKyAgICAgICAgUkdCOCwKKyAgICAgICAgUkdCMTZMaXR0bGUsCisgICAg
ICAgIFJHQjE2QmlnLAorICAgICAgICBSR0IxNkYsCisgICAgICAgIFJHQjMyRiwKKyAgICAgICAg
QkdSOCwKKyAgICAgICAgQkdSQTgsCisgICAgICAgIEJHUkExNkxpdHRsZSwKKyAgICAgICAgQkdS
QTE2QmlnLAorICAgICAgICBBUkdCOCwKKyAgICAgICAgQVJHQjE2TGl0dGxlLAorICAgICAgICBB
UkdCMTZCaWcsCisgICAgICAgIEFCR1I4LAorICAgICAgICBSR0JBNTU1MSwKKyAgICAgICAgUkdC
QTQ0NDQsCisgICAgICAgIFJHQjU2NSwKKyAgICAgICAgUjgsCisgICAgICAgIFIxNkxpdHRsZSwK
KyAgICAgICAgUjE2QmlnLAorICAgICAgICBSMTZGLAorICAgICAgICBSMzJGLAorICAgICAgICBS
QTgsCisgICAgICAgIFJBMTZMaXR0bGUsCisgICAgICAgIFJBMTZCaWcsCisgICAgICAgIFJBMTZG
LAorICAgICAgICBSQTMyRiwKKyAgICAgICAgQVI4LAorICAgICAgICBBUjE2TGl0dGxlLAorICAg
ICAgICBBUjE2QmlnLAorICAgICAgICBBOCwKKyAgICAgICAgQTE2TGl0dGxlLAorICAgICAgICBB
MTZCaWcsCisgICAgICAgIEExNkYsCisgICAgICAgIEEzMkYsCisgICAgICAgIE51bUZvcm1hdHMK
KyAgICB9OworCisgICAgZW51bSBjbGFzcyBEZXN0aW5hdGlvbiA6IHVpbnQ4X3QgeworICAgICAg
ICBPZmZzY3JlZW4sCisgICAgICAgIERpcmVjdGx5VG9Ib3N0V2luZG93LAorICAgIH07CisKKyAg
ICBlbnVtIGNsYXNzIENoYW5uZWxCaXRzIDogdWludDhfdCB7CisgICAgICAgIFJlZCA9IDEsCisg
ICAgICAgIEdyZWVuID0gMiwKKyAgICAgICAgQmx1ZSA9IDQsCisgICAgICAgIEFscGhhID0gOCwK
KyAgICAgICAgRGVwdGggPSAxNiwKKyAgICAgICAgU3RlbmNpbCA9IDMyLAorICAgICAgICBSR0Ig
PSBSZWQgfCBHcmVlbiB8IEJsdWUsCisgICAgICAgIFJHQkEgPSBSR0IgfCBBbHBoYSwKKyAgICAg
ICAgRGVwdGhTdGVuY2lsID0gRGVwdGggfCBTdGVuY2lsLAorICAgIH07CisKKyAgICAvLyBQb3Nz
aWJsZSBhbHBoYSBvcGVyYXRpb25zIHRoYXQgbWF5IG5lZWQgdG8gb2NjdXIgZHVyaW5nCisgICAg
Ly8gcGl4ZWwgcGFja2luZy4gRklYTUU6IGtBbHBoYURvVW5tdWx0aXBseSBpcyBsb3NzeSBhbmQg
bXVzdAorICAgIC8vIGJlIHJlbW92ZWQuCisgICAgZW51bSBBbHBoYU9wIDogdWludDhfdCB7Cisg
ICAgICAgIERvTm90aGluZywKKyAgICAgICAgRG9QcmVtdWx0aXBseSwKKyAgICAgICAgRG9Vbm11
bHRpcGx5LAorICAgIH07CisKKyAgICBlbnVtIGNsYXNzIERPTVNvdXJjZSA6IHVpbnQ4X3Qgewor
ICAgICAgICBJbWFnZSwKKyAgICAgICAgQ2FudmFzLAorICAgICAgICBWaWRlbywKKyAgICAgICAg
Tm9uZSwKKyAgICB9OworCisgICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9y
bTNET2JqZWN0IHBsYXRmb3JtVGV4dHVyZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRm
b3JtTGF5ZXIqIHBsYXRmb3JtTGF5ZXIoKSBjb25zdCA9IDA7CisKKyAgICBBTFdBWVNfSU5MSU5F
IHN0YXRpYyBib29sIGhhc0FscGhhKERhdGFGb3JtYXQgZm9ybWF0KQorICAgIHsKKyAgICAgICAg
c3dpdGNoIChmb3JtYXQpIHsKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBODoKKyAgICAgICAg
Y2FzZSBEYXRhRm9ybWF0OjpBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkEzMkY6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkE4OgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OkFS
ODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9y
bWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBODoKKyAgICAgICAgY2Fz
ZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBQkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpS
R0JBMTZGOgorICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkEzMkY6CisgICAgICAgIGNhc2Ug
RGF0YUZvcm1hdDo6UkdCQTQ0NDQ6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTU1NTE6
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgc3Rh
dGljIGJvb2wgaGFzQ29sb3IoRGF0YUZvcm1hdCBmb3JtYXQpCisgICAgeworICAgICAgICBzd2l0
Y2ggKGZvcm1hdCkgeworICAgICAgICBjYXNlIERhdGFGb3JtYXQ6OlJHQkE4OgorICAgICAgICBj
YXNlIERhdGFGb3JtYXQ6OlJHQkExNkY6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UkdCQTMy
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I4OgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJHQjE2RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0IzMkY6CisgICAgICAgIGNh
c2UgRGF0YUZvcm1hdDo6QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpCR1JBODoKKyAg
ICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUkdCODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpB
QkdSODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0JBNTU1MToKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSR0JBNDQ0NDoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSR0I1NjU6Cisg
ICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6Ujg6CisgICAgICAgIGNhc2UgRGF0YUZvcm1hdDo6UjE2
RjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSMzJGOgorICAgICAgICBjYXNlIERhdGFGb3Jt
YXQ6OlJBODoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpSQTE2RjoKKyAgICAgICAgY2FzZSBE
YXRhRm9ybWF0OjpSQTMyRjoKKyAgICAgICAgY2FzZSBEYXRhRm9ybWF0OjpBUjg6CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIGlmIHRoZSBmb3JtYXQgaXMg
b25lIG9mIHRoZSBmb3JtYXRzIGZyb20gdGhlIEltYWdlRGF0YSBvciBET00gZWxlbWVudHMuCisg
ICAgLy8gVGhlIGZvcm1hdHMgZnJvbSBJbWFnZURhdGEgaXMgYWx3YXlzIFJHQkE4LgorICAgIC8v
IFRoZSBmb3JtYXRzIGZyb20gRE9NIGVsZW1lbnRzIHZhcnkgd2l0aCBHcmFwaGljcyBwb3J0cy4g
SXQgY2FuIG9ubHkgYmUgUkdCQTggb3IgQkdSQTggZm9yIG5vbi1DRyBwb3J0IHdoaWxlIGEgbGl0
dGxlIG1vcmUgZm9yIENHIHBvcnQuCisgICAgc3RhdGljIEFMV0FZU19JTkxJTkUgYm9vbCBzcmNG
b3JtYXRDb21lc0Zyb21ET01FbGVtZW50T3JJbWFnZURhdGEoRGF0YUZvcm1hdCBTcmNGb3JtYXQp
CisgICAgeworI2lmIFVTRShDRykKKyNpZiBDUFUoQklHX0VORElBTikKKyAgICByZXR1cm4gU3Jj
Rm9ybWF0ID09IERhdGFGb3JtYXQ6OlJHQkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
UkdCOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdCOAorICAgICAgICB8fCBTcmNGb3Jt
YXQgPT0gRGF0YUZvcm1hdDo6UkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBUjggfHwg
U3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OlI4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpB
ODsKKyNlbHNlCisgICAgLy8gVGhhdCBMSVRUTEVfRU5ESUFOIGNhc2UgaGFzIG1vcmUgcG9zc2li
bGUgZm9ybWF0cyB0aGFuIEJJR19FTkRJQU4gY2FzZSBpcyBiZWNhdXNlIHNvbWUgZGVjb2RlZCBp
bWFnZSBkYXRhIGlzIGFjdHVhbGx5IGJpZyBlbmRpYW4KKyAgICAvLyBldmVuIG9uIGxpdHRsZSBl
bmRpYW4gYXJjaGl0ZWN0dXJlcy4KKyAgICByZXR1cm4gU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6
OkJHUkE4IHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpBQkdSOCB8fCBTcmNGb3JtYXQgPT0g
RGF0YUZvcm1hdDo6QkdSOAorICAgICAgICB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6UkdC
QTggfHwgU3JjRm9ybWF0ID09IERhdGFGb3JtYXQ6OkFSR0I4IHx8IFNyY0Zvcm1hdCA9PSBEYXRh
Rm9ybWF0OjpSR0I4CisgICAgICAgIHx8IFNyY0Zvcm1hdCA9PSBEYXRhRm9ybWF0OjpSOCB8fCBT
cmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QTgKKyAgICAgICAgfHwgU3JjRm9ybWF0ID09IERhdGFG
b3JtYXQ6OlJBOCB8fCBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QVI4OworI2VuZGlmCisjZWxz
ZQorICAgIHJldHVybiBTcmNGb3JtYXQgPT0gRGF0YUZvcm1hdDo6QkdSQTggfHwgU3JjRm9ybWF0
ID09IERhdGFGb3JtYXQ6OlJHQkE4OworI2VuZGlmCisgICAgfQorCisgICAgc3RydWN0IEFjdGl2
ZUluZm8geworICAgICAgICBTdHJpbmcgbmFtZTsKKyAgICAgICAgR0MzRGVudW0gdHlwZTsKKyAg
ICAgICAgR0MzRGludCBzaXplOworICAgIH07CisKKyAgICBHcmFwaGljc0NvbnRleHQzREJhc2Uo
R3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzLCBEZXN0aW5hdGlvbiA9IERlc3RpbmF0aW9uOjpP
ZmZzY3JlZW4sIEdyYXBoaWNzQ29udGV4dDNEQmFzZSogc2hhcmVkQ29udGV4dCA9IG51bGxwdHIp
OworICAgIHZpcnR1YWwgfkdyYXBoaWNzQ29udGV4dDNEQmFzZSgpID0gZGVmYXVsdDsKKworICAg
IC8vID09PT09PT09PT0gV2ViR0wgMSBlbnRyeSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQg
YWN0aXZlVGV4dHVyZShHQzNEZW51bSB0ZXh0dXJlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RPYmplY3Qgc2hh
ZGVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNE
T2JqZWN0LCBHQzNEdWludCBpbmRleCwgY29uc3QgU3RyaW5nJiBuYW1lKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGJpbmRCdWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGJpbmRGcmFtZWJ1ZmZlcihHQzNEZW51bSB0YXJnZXQsIFBs
YXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmluZFJlbmRlcmJ1ZmZlcihH
QzNEZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
YmluZFRleHR1cmUoR0MzRGVudW0gdGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGJsZW5kQ29sb3IoR0MzRGNsYW1wZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4s
IEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBoYSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBibGVuZEVxdWF0aW9uKEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYmxl
bmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1vZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHBoYSkg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmMoR0MzRGVudW0gc2ZhY3RvciwgR0MzRGVu
dW0gZGZhY3RvcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBibGVuZEZ1bmNTZXBhcmF0ZShHQzNE
ZW51bSBzcmNSR0IsIEdDM0RlbnVtIGRzdFJHQiwgR0MzRGVudW0gc3JjQWxwaGEsIEdDM0RlbnVt
IGRzdEFscGhhKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoR0MzRGVudW0gdGFyZ2V0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyKEdDM0Ri
aXRmaWVsZCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29sb3IoR0MzRGNsYW1w
ZiByZWQsIEdDM0RjbGFtcGYgZ3JlZW4sIEdDM0RjbGFtcGYgYmx1ZSwgR0MzRGNsYW1wZiBhbHBo
YSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckRlcHRoKEdDM0RjbGFtcGYgZGVwdGgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdGVuY2lsKEdDM0RpbnQgcykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjb2xvck1hc2soR0MzRGJvb2xlYW4gcmVkLCBHQzNEYm9vbGVhbiBncmVlbiwg
R0MzRGJvb2xlYW4gYmx1ZSwgR0MzRGJvb2xlYW4gYWxwaGEpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29tcGlsZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgY29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51
bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwg
R0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29weVRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50
IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCBQbGF0Zm9ybTNE
T2JqZWN0IGNyZWF0ZUJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3Qg
Y3JlYXRlRnJhbWVidWZmZXIoKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNy
ZWF0ZVByb2dyYW0oKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVJl
bmRlcmJ1ZmZlcigpID0gMDsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtM0RPYmplY3QgY3JlYXRlU2hh
ZGVyKEdDM0RlbnVtKSA9IDA7CisgICAgdmlydHVhbCBQbGF0Zm9ybTNET2JqZWN0IGNyZWF0ZVRl
eHR1cmUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgY3VsbEZhY2UoR0MzRGVudW0gbW9kZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZUZyYW1lYnVmZmVyKFBsYXRmb3JtM0RPYmplY3Qp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlbmRlcmJ1ZmZlcihQbGF0Zm9ybTNET2JqZWN0
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVNoYWRlcihQbGF0Zm9ybTNET2JqZWN0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVRleHR1cmUoUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIGRlcHRoRnVuYyhHQzNEZW51bSBmdW5jKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRlcHRoTWFzayhHQzNEYm9vbGVhbiBmbGFnKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGRlcHRoUmFuZ2UoR0MzRGNsYW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0LCBQbGF0Zm9y
bTNET2JqZWN0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGUoR0MzRGVudW0gY2FwKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShHQzNEdWludCBp
bmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3QXJyYXlzKEdDM0RlbnVtIG1vZGUsIEdD
M0RpbnQgZmlyc3QsIEdDM0RzaXplaSBjb3VudCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkcmF3
RWxlbWVudHMoR0MzRGVudW0gbW9kZSwgR0MzRHNpemVpIGNvdW50LCBHQzNEZW51bSB0eXBlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGVuYWJsZShHQzNEZW51
bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoR0Mz
RHVpbnQgaW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBmbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2htZW50LCBHQzNEZW51bSBy
ZW5kZXJidWZmZXJ0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgZnJhbWVidWZmZXJUZXh0dXJlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBhdHRhY2ht
ZW50LCBHQzNEZW51bSB0ZXh0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QsIEdDM0RpbnQgbGV2ZWwp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZnJvbnRGYWNlKEdDM0RlbnVtIG1vZGUpID0gMDsKKwor
ICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZU1pcG1hcChHQzNEZW51bSB0YXJnZXQpID0gMDsKKwor
ICAgIHZpcnR1YWwgYm9vbCBnZXRBY3RpdmVBdHRyaWIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFt
LCBHQzNEdWludCBpbmRleCwgQWN0aXZlSW5mbyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZ2V0
QWN0aXZlVW5pZm9ybShQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0R1aW50IGluZGV4LCBB
Y3RpdmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBdHRhY2hlZFNoYWRlcnMoUGxh
dGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEc2l6ZWkgbWF4Q291bnQsIEdDM0RzaXplaSogY291
bnQsIFBsYXRmb3JtM0RPYmplY3QqIHNoYWRlcnMpID0gMDsKKworICAgIHZpcnR1YWwgR0MzRGlu
dCBnZXRBdHRyaWJMb2NhdGlvbihQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBnZXRCdWZmZXJQYXJhbWV0ZXJpdihHQzNEZW51bSB0
YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0
UGFyYW1ldGVyCisgICAgdmlydHVhbCBTdHJpbmcgZ2V0U3RyaW5nKEdDM0RlbnVtIG5hbWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmxvYXR2KEdDM0RlbnVtIHBuYW1lLCBHQzNEZmxvYXQq
IHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEludGVnZXJ2KEdDM0RlbnVtIHBuYW1l
LCBHQzNEaW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRJbnRlZ2VyNjR2KEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50NjQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdl
dFByb2dyYW1pdihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRCb29sZWFudihHQzNEZW51bSBw
bmFtZSwgR0MzRGJvb2xlYW4qIHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RlbnVtIGdl
dEVycm9yKCkgPSAwOworCisgICAgLy8gZ2V0RnJhbWVidWZmZXJBdHRhY2htZW50UGFyYW1ldGVy
CisgICAgdmlydHVhbCB2b2lkIGdldEZyYW1lYnVmZmVyQXR0YWNobWVudFBhcmFtZXRlcml2KEdD
M0RlbnVtIHRhcmdldCwgR0MzRGVudW0gYXR0YWNobWVudCwgR0MzRGVudW0gcG5hbWUsIEdDM0Rp
bnQqIHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRQcm9ncmFtUGFyYW1ldGVyCisgICAgdmlydHVh
bCBTdHJpbmcgZ2V0UHJvZ3JhbUluZm9Mb2coUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisgICAg
Ly8gZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldFJlbmRlcmJ1
ZmZlclBhcmFtZXRlcml2KEdDM0RlbnVtIHRhcmdldCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICAvLyBnZXRTaGFkZXJQYXJhbWV0ZXIKKyAgICB2aXJ0dWFsIHZv
aWQgZ2V0U2hhZGVyaXYoUGxhdGZvcm0zRE9iamVjdCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQq
IHZhbHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIFN0cmluZyBnZXRTaGFkZXJJbmZvTG9nKFBsYXRm
b3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0U2hhZGVyUHJlY2lzaW9uRm9y
bWF0KEdDM0RlbnVtIHNoYWRlclR5cGUsIEdDM0RlbnVtIHByZWNpc2lvblR5cGUsIEdDM0RpbnQq
IHJhbmdlLCBHQzNEaW50KiBwcmVjaXNpb24pID0gMDsKKworICAgIHZpcnR1YWwgU3RyaW5nIGdl
dFNoYWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7CisKKyAgICAvLyBnZXRUZXhQYXJh
bWV0ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VGV4UGFyYW1ldGVyZnYoR0MzRGVudW0gdGFyZ2V0
LCBHQzNEZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBnZXRUZXhQYXJhbWV0ZXJpdihHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNE
aW50KiB2YWx1ZSkgPSAwOworCisgICAgLy8gZ2V0VW5pZm9ybQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRVbmlmb3JtZnYoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBHQzNEaW50IGxvY2F0aW9uLCBH
QzNEZmxvYXQqIHZhbHVlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFVuaWZvcm1pdihQbGF0
Zm9ybTNET2JqZWN0IHByb2dyYW0sIEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQqIHZhbHVlKSA9
IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RpbnQgZ2V0VW5pZm9ybUxvY2F0aW9uKFBsYXRmb3JtM0RP
YmplY3QsIGNvbnN0IFN0cmluZyYgbmFtZSkgPSAwOworCisgICAgLy8gZ2V0VmVydGV4QXR0cmli
CisgICAgdmlydHVhbCB2b2lkIGdldFZlcnRleEF0dHJpYmZ2KEdDM0R1aW50IGluZGV4LCBHQzNE
ZW51bSBwbmFtZSwgR0MzRGZsb2F0KiB2YWx1ZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRW
ZXJ0ZXhBdHRyaWJpdihHQzNEdWludCBpbmRleCwgR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQqIHZh
bHVlKSA9IDA7CisKKyAgICB2aXJ0dWFsIEdDM0RzaXplaXB0ciBnZXRWZXJ0ZXhBdHRyaWJPZmZz
ZXQoR0MzRHVpbnQgaW5kZXgsIEdDM0RlbnVtIHBuYW1lKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgaGludChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIG1vZGUpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFs
IEdDM0Rib29sZWFuIGlzRW5hYmxlZChHQzNEZW51bSBjYXApID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzRnJhbWVidWZmZXIoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgR0MzRGJvb2xlYW4gaXNQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0
dWFsIEdDM0Rib29sZWFuIGlzUmVuZGVyYnVmZmVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzU2hhZGVyKFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAg
ICB2aXJ0dWFsIEdDM0Rib29sZWFuIGlzVGV4dHVyZShQbGF0Zm9ybTNET2JqZWN0KSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGxpbmVXaWR0aChHQzNEZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgbGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBw
aXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBwb2x5Z29uT2Zmc2V0KEdDM0RmbG9hdCBmYWN0b3IsIEdDM0RmbG9hdCB1bml0cykg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHJlbmRlcmJ1ZmZlclN0b3JhZ2UoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkg
aGVpZ2h0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYg
dmFsdWUsIEdDM0Rib29sZWFuIGludmVydCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2lzc29y
KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQp
ID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCwg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzdGVuY2lsRnVu
YyhHQzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdGVuY2lsRnVuY1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0RlbnVtIGZ1
bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0
ZW5jaWxNYXNrKEdDM0R1aW50IG1hc2spID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE1h
c2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHN0ZW5jaWxPcChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0g
enBhc3MpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RlbmNpbE9wU2VwYXJhdGUoR0MzRGVudW0g
ZmFjZSwgR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdDM0RlbnVtIHpwYXNzKSA9IDA7
CisKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFyYW1ldGVyZihHQzNEZW51bSB0YXJnZXQsIEdDM0Rl
bnVtIHBuYW1lLCBHQzNEZmxvYXQgcGFyYW0pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4UGFy
YW1ldGVyaShHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKSA9
IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTFmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rm
bG9hdCB4KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0xZnYoR0MzRGludCBsb2NhdGlv
biwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
dW5pZm9ybTFpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCkgPSAwOworICAgIHZpcnR1YWwg
dm9pZCB1bmlmb3JtMWl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGlu
dCogdikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtMmYoR0MzRGludCBsb2NhdGlvbiwg
R0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0y
ZnYoR0MzRGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTJpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwg
R0MzRGludCB5KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0yaXYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEaW50KiB2KSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IHVuaWZvcm0zZihHQzNEaW50IGxvY2F0aW9uLCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdD
M0RmbG9hdCB6KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm0zZnYoR0MzRGludCBsb2Nh
dGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdW5pZm9ybTNpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNE
aW50IHopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybTNpdihHQzNEaW50IGxvY2F0aW9u
LCBHQzNEc2l6ZWksIGNvbnN0IEdDM0RpbnQqIHYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5p
Zm9ybTRmKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RmbG9hdCB4LCBHQzNEZmxvYXQgeSwgR0MzRGZs
b2F0IHosIEdDM0RmbG9hdCB3KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm00ZnYoR0Mz
RGludCBsb2NhdGlvbiwgR0MzRHNpemVpLCBjb25zdCBHQzNEZmxvYXQqIHYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdW5pZm9ybTRpKEdDM0RpbnQgbG9jYXRpb24sIEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEaW50IHosIEdDM0RpbnQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bmlmb3Jt
NGl2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0RzaXplaSwgY29uc3QgR0MzRGludCogdikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCB1bmlmb3JtTWF0cml4MmZ2KEdDM0RpbnQgbG9jYXRpb24sIEdDM0Rz
aXplaSwgR0MzRGJvb2xlYW4gdHJhbnNwb3NlLCBjb25zdCBHQzNEZmxvYXQqIHZhbHVlKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHVuaWZvcm1NYXRyaXgzZnYoR0MzRGludCBsb2NhdGlvbiwgR0Mz
RHNpemVpLCBHQzNEYm9vbGVhbiB0cmFuc3Bvc2UsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWUpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdW5pZm9ybU1hdHJpeDRmdihHQzNEaW50IGxvY2F0aW9uLCBH
QzNEc2l6ZWksIEdDM0Rib29sZWFuIHRyYW5zcG9zZSwgY29uc3QgR0MzRGZsb2F0KiB2YWx1ZSkg
PSAwOworCisgICAgdmlydHVhbCB2b2lkIHVzZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZVByb2dyYW0oUGxhdGZvcm0zRE9iamVjdCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJpYjFmKEdDM0R1aW50IGluZGV4LCBHQzNE
ZmxvYXQgeCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIxZnYoR0MzRHVpbnQg
aW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZl
cnRleEF0dHJpYjJmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHkpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgdmVydGV4QXR0cmliMmZ2KEdDM0R1aW50IGluZGV4LCBjb25z
dCBHQzNEZmxvYXQqIHZhbHVlcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIz
ZihHQzNEdWludCBpbmRleCwgR0MzRGZsb2F0IHgsIEdDM0RmbG9hdCB5LCBHQzNEZmxvYXQgeikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWIzZnYoR0MzRHVpbnQgaW5kZXgsIGNv
bnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHZlcnRleEF0dHJp
YjRmKEdDM0R1aW50IGluZGV4LCBHQzNEZmxvYXQgeCwgR0MzRGZsb2F0IHksIEdDM0RmbG9hdCB6
LCBHQzNEZmxvYXQgdykgPSAwOworICAgIHZpcnR1YWwgdm9pZCB2ZXJ0ZXhBdHRyaWI0ZnYoR0Mz
RHVpbnQgaW5kZXgsIGNvbnN0IEdDM0RmbG9hdCogdmFsdWVzKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplLCBH
QzNEZW51bSB0eXBlLCBHQzNEYm9vbGVhbiBub3JtYWxpemVkLCBHQzNEc2l6ZWkgc3RyaWRlLCBH
QzNEaW50cHRyIG9mZnNldCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHZpZXdwb3J0KEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsK
KworICAgIHZpcnR1YWwgdm9pZCBidWZmZXJEYXRhKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVp
cHRyIHNpemUsIEdDM0RlbnVtIHVzYWdlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGJ1ZmZlckRh
dGEoR0MzRGVudW0gdGFyZ2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qgdm9pZCogZGF0YSwg
R0MzRGVudW0gdXNhZ2UpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYnVmZmVyU3ViRGF0YShHQzNE
ZW51bSB0YXJnZXQsIEdDM0RpbnRwdHIgb2Zmc2V0LCBHQzNEc2l6ZWlwdHIgc2l6ZSwgY29uc3Qg
dm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIGNvbXByZXNzZWRUZXhJbWFnZTJE
KEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQs
IEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIsIEdDM0Rz
aXplaSBpbWFnZVNpemUsIGNvbnN0IHZvaWQqIGRhdGEpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29tcHJlc3NlZFRleFN1YkltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBH
QzNEaW50IHhvZmZzZXQsIEdDM0RpbnQgeW9mZnNldCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6
ZWkgaGVpZ2h0LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RzaXplaSBpbWFnZVNpemUsIGNvbnN0IHZv
aWQqIGRhdGEpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCByZWFkUGl4ZWxzKEdDM0RpbnQgeCwg
R0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZv
cm1hdCwgR0MzRGVudW0gdHlwZSwgdm9pZCogZGF0YSkgPSAwOworCisgICAgdmlydHVhbCBib29s
IHRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBpbnRl
cm5hbGZvcm1hdCwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0LCBHQzNEaW50IGJv
cmRlciwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBjb25zdCB2b2lkKiBwaXhlbHMp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4U3ViSW1hZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdD
M0RpbnQgbGV2ZWwsIEdDM0RpbnQgeG9mZnNldCwgR0MzRGludCB5b2Zmc2V0LCBHQzNEc2l6ZWkg
d2lkdGgsIEdDM0RzaXplaSBoZWlnaHQsIEdDM0RlbnVtIGZvcm1hdCwgR0MzRGVudW0gdHlwZSwg
Y29uc3Qgdm9pZCogcGl4ZWxzKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0FycmF5c0lu
c3RhbmNlZChHQzNEZW51bSBtb2RlLCBHQzNEaW50IGZpcnN0LCBHQzNEc2l6ZWkgY291bnQsIEdD
M0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZHJhd0VsZW1lbnRzSW5z
dGFuY2VkKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHlwZSwgR0Mz
RGludHB0ciBvZmZzZXQsIEdDM0RzaXplaSBwcmltY291bnQpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgdmVydGV4QXR0cmliRGl2aXNvcihHQzNEdWludCBpbmRleCwgR0MzRHVpbnQgZGl2aXNvcikg
PSAwOworCisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGNvbnRleHRBdHRyaWJ1dGVz
KCkgY29uc3QgeyByZXR1cm4gbV9hdHRyczsgfQorICAgIHZvaWQgc2V0Q29udGV4dEF0dHJpYnV0
ZXMoY29uc3QgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzJiBhdHRycykgeyBtX2F0dHJzID0g
YXR0cnM7IH0KKworICAgIC8vIFZlcnRleEFycmF5T2plY3QgY2FsbHMKKyAgICB2aXJ0dWFsIFBs
YXRmb3JtM0RPYmplY3QgY3JlYXRlVmVydGV4QXJyYXkoKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZVZlcnRleEFycmF5KFBsYXRmb3JtM0RPYmplY3QpID0gMDsKKyAgICB2aXJ0dWFsIEdD
M0Rib29sZWFuIGlzVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBiaW5kVmVydGV4QXJyYXkoUGxhdGZvcm0zRE9iamVjdCkgPSAwOworCisjaWYgVVNF
KE9QRU5HTCkgJiYgRU5BQkxFKFdFQkdMMikKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbWl0aXZlUmVz
dGFydEluZGV4KEdDM0R1aW50KSA9IDA7CisjZW5kaWYKKworICAgIC8vIFN1cHBvcnQgZm9yIGV4
dGVuc2lvbnMuIFJldHVybnMgYSBub24tbnVsbCBvYmplY3QsIHRob3VnaCBub3QKKyAgICAvLyBh
bGwgbWV0aG9kcyBpdCBjb250YWlucyBtYXkgbmVjZXNzYXJpbHkgYmUgc3VwcG9ydGVkIG9uIHRo
ZQorICAgIC8vIGN1cnJlbnQgaGFyZHdhcmUuIE11c3QgY2FsbCBFeHRlbnNpb25zM0Q6OnN1cHBv
cnRzKCkgdG8KKyAgICAvLyBkZXRlcm1pbmUgdGhpcy4KKyAgICB2aXJ0dWFsIEV4dGVuc2lvbnMz
RCYgZ2V0RXh0ZW5zaW9ucygpID0gMDsKKworICAgIC8vID09PT09PT09PT0gV2ViR0wgMiBlbnRy
eSBwb2ludHMuCisKKyAgICB2aXJ0dWFsIHZvaWQqIG1hcEJ1ZmZlclJhbmdlKEdDM0RlbnVtIHRh
cmdldCwgR0MzRGludHB0ciBvZmZzZXQsIEdDM0RzaXplaXB0ciBsZW5ndGgsIEdDM0RiaXRmaWVs
ZCBhY2Nlc3MpID0gMDsKKyAgICB2aXJ0dWFsIEdDM0Rib29sZWFuIHVubWFwQnVmZmVyKEdDM0Rl
bnVtIHRhcmdldCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb3B5QnVmZmVyU3ViRGF0YShHQzNE
ZW51bSByZWFkVGFyZ2V0LCBHQzNEZW51bSB3cml0ZVRhcmdldCwgR0MzRGludHB0ciByZWFkT2Zm
c2V0LCBHQzNEaW50cHRyIHdyaXRlT2Zmc2V0LCBHQzNEc2l6ZWlwdHIpID0gMDsKKworICAgIC8v
IGdldEludGVybmFsRm9ybWF0UGFyYW1ldGVyCisgICAgdmlydHVhbCB2b2lkIGdldEludGVybmFs
Zm9ybWF0aXYoR0MzRGVudW0gdGFyZ2V0LCBHQzNEZW51bSBpbnRlcm5hbGZvcm1hdCwgR0MzRGVu
dW0gcG5hbWUsIEdDM0RzaXplaSBidWZTaXplLCBHQzNEaW50KiBwYXJhbXMpID0gMDsKKworICAg
IHZpcnR1YWwgdm9pZCByZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1wbGUoR0MzRGVudW0gdGFy
Z2V0LCBHQzNEc2l6ZWkgc2FtcGxlcywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHRleFN0
b3JhZ2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RzaXplaSBsZXZlbHMsIEdDM0RlbnVtIGludGVy
bmFsZm9ybWF0LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgdGV4U3RvcmFnZTNEKEdDM0RlbnVtIHRhcmdldCwgR0MzRHNpemVpIGxldmVs
cywgR0MzRGVudW0gaW50ZXJuYWxmb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCwgR0MzRHNpemVpIGRlcHRoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QWN0aXZl
VW5pZm9ybXMoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBjb25zdCBWZWN0b3I8R0MzRHVpbnQ+
JiB1bmlmb3JtSW5kaWNlcywgR0MzRGVudW0gcG5hbWUsIFZlY3RvcjxHQzNEaW50PiYgcGFyYW1z
KSA9IDA7CisKKyAgICAvLyA9PT09PT09PT09IE5vbi1XZWJHTCBiYXNlZCBlbnRyeSBwb2ludHMu
CisKKyAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQzNE
ZW51bSk7CisgICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDM0RlbnVt
KTsKKworICAgIHN0YXRpYyB1aW50OF90IGdldENoYW5uZWxCaXRzQnlGb3JtYXQoR0MzRGVudW0p
OworCisgICAgRGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Rlc3Rp
bmF0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIG1f
YXR0cnM7CisgICAgRGVzdGluYXRpb24gbV9kZXN0aW5hdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCA5MTMw
MDQ0MGNkZWQ0OWUxZGRkNTBiYzQ5ZWM3OGRkNjU4ZGQ2YTBlLi5hM2U2ZDI1ODIxNDVkZThjMTYw
OTBiZDBlYzhjMGZlMzQwZjQyZWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTM4
LDEzICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlKQorR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpHcmFwaGljc0NvbnRleHQzRFByaXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBH
cmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiB7Ci0gICAgc3dpdGNo
IChyZW5kZXJTdHlsZSkgewotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlck9mZnNj
cmVlbjoKKyAgICBzd2l0Y2ggKGRlc3RpbmF0aW9uKSB7CisgICAgY2FzZSBHcmFwaGljc0NvbnRl
eHQzRDo6RGVzdGluYXRpb246Ok9mZnNjcmVlbjoKICAgICAgICAgbV9nbENvbnRleHQgPSBHTENv
bnRleHQ6OmNyZWF0ZU9mZnNjcmVlbkNvbnRleHQoJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlz
cGxheUZvckNvbXBvc2l0aW5nKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzoKKyAgICBjYXNlIEdyYXBoaWNz
Q29udGV4dDNEOjpEZXN0aW5hdGlvbjo6RGlyZWN0bHlUb0hvc3RXaW5kb3c6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBicmVhazsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCmluZGV4IGUzM2Y4ZmJlNzM4OTJlMzRiOGRlZjgzNmQ0NmY1YzcwYzc5YzYxZGQuLmYz
MjU0YTgwNTliNTYyYTE1NmE3YzU2YjZhMTg2ODdjZTM0N2U3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEUHJp
dmF0ZS5oCkBAIC0zMCw3ICszMCw3IEBAIGNsYXNzIEJpdG1hcFRleHR1cmVHTDsKIGNsYXNzIEdy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlKEdyYXBoaWNzQ29udGV4dDNEKiwg
R3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBHcmFwaGljc0NvbnRleHQzRFBy
aXZhdGUoR3JhcGhpY3NDb250ZXh0M0QqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24p
OwogICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKTsKICAgICBib29sIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c1R5cGVzM0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlw
ZXMzRC5oCmluZGV4IDFhYjFhNGY2NGE2MTRlOWQyM2RhYzhhMGEyYTJjNDg5N2U5MWVlOTEuLjVl
YzI3MTQ1YzAzMGY5ZGJiZGRmZjI1NGYzYTE0ZGIxNWFiYzNjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzVHlwZXMzRC5oCkBAIC01MSw0ICs1
MSw4IEBAIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIEdDM0R1aW50NjQ7CiAKIHR5cGVkZWYg
R0MzRHVpbnQgUGxhdGZvcm0zRE9iamVjdDsKIAorI2lmICFQTEFURk9STShDT0NPQSkKK3R5cGVk
ZWYgdW5zaWduZWQgR0x1aW50OworI2VuZGlmCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0M0RBTkdMRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRl
eHQzREFOR0xFLmNwcAppbmRleCA3N2JiM2IyY2QxNWUxMjcxMTI2OTQ2OTRhNjQ3OTJhMGRjMzFm
NjRhLi4yOWE3Mzc1NGY1NTA0MTJlYWFlZDIwNDQ4OTEwN2IzNjRiNGU1M2UwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHQz
REFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHQzREFOR0xFLmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgs
IGludCB5LCBpbnQKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRy
cy5hbHBoYSkKKyAgICBpZiAoIWNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGEpCiAgICAgICAgIHdp
cGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHBpeGVscyk7CiAjZW5kaWYK
IH0KQEAgLTEzNCwxNyArMTM0LDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRl
QXR0cmlidXRlcygpCiAKIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0
IEludFNpemUmIHNpemUpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7
CiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0IGludCBoZWln
aHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCwgaW50ZXJuYWxEZXB0
aFN0ZW5jaWxGb3JtYXQgPSAwOwotICAgIGlmIChtX2F0dHJzLmFscGhhKSB7CisgICAgaWYgKGF0
dHJzLmFscGhhKSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9IEdMX1JHQkE4Owog
ICAgICAgICBjb2xvckZvcm1hdCA9IEdMX1JHQkE7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9p
bnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCODsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9S
R0I7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgewor
ICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAgICAgIC8vIFdlIGRv
bid0IGFsbG93IHRoZSBsb2dpYyB3aGVyZSBzdGVuY2lsIGlzIHJlcXVpcmVkIGFuZCBkZXB0aCBp
cyBub3QuCiAgICAgICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1
dGVzLgogCkBAIC0xNTcsNyArMTU4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFw
ZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB9CiAKICAgICAvLyBSZXNpemUgbXVsdGlz
YW1wbGUgRkJPLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5h
bnRpYWxpYXMpIHsKICAgICAgICAgR0xpbnQgbWF4U2FtcGxlQ291bnQ7CiAgICAgICAgIGdsOjpH
ZXRJbnRlZ2VydihHTF9NQVhfU0FNUExFU19BTkdMRSwgJm1heFNhbXBsZUNvdW50KTsKICAgICAg
ICAgLy8gVXNpbmcgbW9yZSB0aGFuIDQgc2FtcGxlcyBpcyBzbG93IG9uIHNvbWUgaGFyZHdhcmUg
YW5kIGlzIHVubGlrZWx5IHRvCkBAIC0xNjcsNyArMTY4LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICAgICAgZ2w6OkJpbmRS
ZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwog
ICAgICAgICBnZXRFeHRlbnNpb25zKCkucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdM
X1JFTkRFUkJVRkZFUiwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xvckZvcm1hdCwgd2lkdGgs
IGhlaWdodCk7CiAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1JFTkRFUkJVRkZFUiwgbV9tdWx0aXNhbXBs
ZUNvbG9yQnVmZmVyKTsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSB7CisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSB7CiAgICAg
ICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1w
bGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgZ2V0RXh0ZW5zaW9ucygpLnJlbmRl
cmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBp
bnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAv
LyBXZWJHTCAxLjAncyBydWxlcyBzdGF0ZSB0aGF0IGNvbWJpbmVkIGRlcHRoL3N0ZW5jaWwgcmVu
ZGVyYnVmZmVycwpAQCAtMTc1LDkgKzE3Niw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJl
c2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAgICAgICBpZiAoIWlzR0xFUzJD
b21wbGlhbnQoKSAmJiBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9PSBHTF9ERVBUSDI0X1NU
RU5DSUw4X09FUykKICAgICAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
R0xfRlJBTUVCVUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVS
LCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgICAgICAgICAgaWYg
KGF0dHJzLnN0ZW5jaWwpCiAgICAgICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJC
VUZGRVIsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgICAg
IGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRycy5kZXB0aCkKICAg
ICAgICAgICAgICAgICAgICAgZ2w6OkZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVG
RkVSLCBHTF9ERVBUSF9BVFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fbXVsdGlzYW1wbGVE
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0yMTUsNyAr
MjE2LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKICAgICBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChpbnRlcm5h
bERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAKICAgICBib29sIG11c3RSZXN0
b3JlRkJPID0gdHJ1ZTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0
cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZG
RVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBpZiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X211bHRpc2FtcGxlRkJPKQogICAgICAgICAgICAgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKQEAg
LTIyOSw3ICsyMzAsOSBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25z
dCBJbnRTaXplJiBzaXplKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjphdHRhY2hEZXB0aEFu
ZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHTHVpbnQgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQs
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKLSAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYm
IChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkpIHsKKyAgICBhdXRvIGF0dHJzID0g
Y29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlmICghYXR0cnMuYW50aWFsaWFzICYmIChhdHRy
cy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSkgewogICAgICAgICBnbDo6QmluZFJlbmRlcmJ1ZmZl
cihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgZ2w6OlJl
bmRlcmJ1ZmZlclN0b3JhZ2UoR0xfUkVOREVSQlVGRkVSLCBpbnRlcm5hbERlcHRoU3RlbmNpbEZv
cm1hdCwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgIC8vIFdlYkdMIDEuMCdzIHJ1bGVzIHN0YXRl
IHRoYXQgY29tYmluZWQgZGVwdGgvc3RlbmNpbCByZW5kZXJidWZmZXJzCkBAIC0yMzcsOSArMjQw
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVy
SWZOZWVkZWQoR0x1aW50IGludGVybmFsRGVwdGgKICAgICAgICAgaWYgKCFpc0dMRVMyQ29tcGxp
YW50KCkgJiYgaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPT0gR0xfREVQVEgyNF9TVEVOQ0lM
OF9PRVMpCiAgICAgICAgICAgICBnbDo6RnJhbWVidWZmZXJSZW5kZXJidWZmZXIoR0xfRlJBTUVC
VUZGRVIsIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRo
U3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgaWYgKG1fYXR0cnMu
c3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAg
IGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfU1RFTkNJTF9B
VFRBQ0hNRU5ULCBHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAg
ICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgICAgIGdsOjpGcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZF
UiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgICAgIH0KICAgICAgICAgZ2w6OkJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVS
QlVGRkVSLCAwKTsKQEAgLTM3OCwxNyArMzgxLDE4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
CiAgICAgLy8gYWxsIHByZXZpb3VzIHJlbmRlcmluZyBjYWxscyBzaG91bGQgYmUgZG9uZSBiZWZv
cmUgcmVhZGluZyBwaXhlbHMuCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgZ2w6OkZs
dXNoKCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0g
bV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OworICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRp
c2FtcGxlRkJPKSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50
UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgICAgIGdsOjpGbHVz
aCgpOwogICAgIH0KICAgICBnbDo6UmVhZFBpeGVscyh4LCB5LCB3aWR0aCwgaGVpZ2h0LCBmb3Jt
YXQsIHR5cGUsIGRhdGEpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJv
dW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIGdsOjpCaW5kRnJh
bWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJP
KTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoIW1fYXR0cnMuYWxwaGEgJiYgKGZvcm1h
dCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0
M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8IChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pKSkKKyAgICBpZiAo
IWF0dHJzLmFscGhhICYmIChmb3JtYXQgPT0gR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEgfHwgZm9y
bWF0ID09IEdyYXBoaWNzQ29udGV4dDNEOjpCR1JBKSAmJiAobV9zdGF0ZS5ib3VuZEZCTyA9PSBt
X2ZibyB8fCAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNh
bXBsZUZCTykpKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJvbVBpeGVscyh3aWR0aCwgaGVp
Z2h0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4oZGF0YSkpOwogI2VuZGlmCiB9CkBAIC0z
OTksMjAgKzQwMywyMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaQogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVu
Y2lsRXh0ZW5zaW9uKQogewogICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVu
c2lvbnMoKTsKLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgYXV0byBhdHRycyA9IGNv
bnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuc3RlbmNpbCkgewogICAgICAgICBp
ZiAoZXh0ZW5zaW9ucy5zdXBwb3J0cyhwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7CiAg
ICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0
ZW5zaW9uKTsKICAgICAgICAgICAgIC8vIEZvcmNlIGRlcHRoIGlmIHN0ZW5jaWwgaXMgdHJ1ZS4K
LSAgICAgICAgICAgIG1fYXR0cnMuZGVwdGggPSB0cnVlOworICAgICAgICAgICAgYXR0cnMuZGVw
dGggPSB0cnVlOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fYXR0cnMuc3RlbmNpbCA9
IGZhbHNlOwotCisgICAgICAgICAgICBhdHRycy5zdGVuY2lsID0gZmFsc2U7CisgICAgICAgIHNl
dENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAvLyBGSVhNRTogbXVz
dCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMgMy4w
IHN1cHBvcnQuCi0gICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVfZnJh
bWVidWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhZXh0ZW5zaW9ucy5zdXBwb3J0cygiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9PRVNfcmdiOF9y
Z2JhOCIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1fYXR0cnMuYW50aWFs
aWFzID0gZmFsc2U7Ci0gICAgICAgIGVsc2UgeworICAgICAgICBpZiAoIWV4dGVuc2lvbnMuc3Vw
cG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgIWV4dGVuc2lvbnMu
c3VwcG9ydHMoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKSB8fCAhZXh0ZW5zaW9ucy5zdXBw
b3J0cygiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFz
ID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIik7CiAgICAgICAgICAgICBleHRlbnNpb25zLmVu
c3VyZUVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiKTsKICAgICAgICAgICAgIGV4
dGVuc2lvbnMuZW5zdXJlRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKQEAgLTQzNyw3ICs0
NDQsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0Nh
bnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVyaW5nUmVzdWx0
cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJzLnByZW11bHRp
cGxpZWRBbHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVtdWx0aXBsaWVk
QWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVzOyBpICs9IDQp
IHsKICAgICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAgICAgcGl4ZWxz
W2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tpICsgM10gLyAy
NTUpOwpAQCAtNDY0LDcgKzQ3MSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBoaWNzQ29udGV4
dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAgLy8gUmVhZGlu
ZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBseWluZywgd2hp
Y2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBsaWVkQWxwaGEp
CisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhhKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VEYXRhOjpjcmVh
dGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBAIC00OTAsNyAr
NDk3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogCiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAg
aWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlz
YW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBA
IC01MTcsNyArNTI0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jl
c3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4
dEN1cnJlbnQoKTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxp
YXMpIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAg
ICBnbDo6QmluZEZyYW1lYnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9m
Ym8pOwogICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBAIC01NjQsMTEgKzU3MSwxMyBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkK
IAogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOwor
ICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2Vk
IGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0aW5nIHNjb3BlZFNj
aXNzb3IoR0xfU0NJU1NPUl9URVNULCBHTF9GQUxTRSk7CiAgICAgVGVtcG9yYXJ5QU5HTEVTZXR0
aW5nIHNjb3BlZERpdGhlcihHTF9ESVRIRVIsIEdMX0ZBTFNFKTsKIAogICAgIGJvb2wgbXVzdFJl
c3RvcmVGQk8gPSByZXNoYXBlRkJPcyhJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICBhdXRv
IGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKIAogICAgIC8vIEluaXRpYWxpemUgcmVuZGVy
YnVmZmVycyB0byAwLgogICAgIEdMZmxvYXQgY2xlYXJDb2xvcltdID0gezAsIDAsIDAsIDB9LCBj
bGVhckRlcHRoID0gMDsKQEAgLTU4MCwxNCArNTg5LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlc2hhcGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogICAgIGdsOjpDbGVhckNvbG9yKDAs
IDAsIDAsIDApOwogICAgIGdsOjpHZXRCb29sZWFudihHTF9DT0xPUl9XUklURU1BU0ssIGNvbG9y
TWFzayk7CiAgICAgZ2w6OkNvbG9yTWFzayhHTF9UUlVFLCBHTF9UUlVFLCBHTF9UUlVFLCBHTF9U
UlVFKTsKLSAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewog
ICAgICAgICBnbDo6R2V0RmxvYXR2KEdMX0RFUFRIX0NMRUFSX1ZBTFVFLCAmY2xlYXJEZXB0aCk7
CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEOjpjbGVhckRlcHRoKDEpOwogICAgICAgICBnbDo6
R2V0Qm9vbGVhbnYoR0xfREVQVEhfV1JJVEVNQVNLLCAmZGVwdGhNYXNrKTsKICAgICAgICAgZ2w6
OkRlcHRoTWFzayhHTF9UUlVFKTsKICAgICAgICAgY2xlYXJNYXNrIHw9IEdMX0RFUFRIX0JVRkZF
Ul9CSVQ7CiAgICAgfQotICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpIHsKKyAgICBpZiAoYXR0cnMu
c3RlbmNpbCkgewogICAgICAgICBnbDo6R2V0SW50ZWdlcnYoR0xfU1RFTkNJTF9DTEVBUl9WQUxV
RSwgJmNsZWFyU3RlbmNpbCk7CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoMCk7CiAgICAgICAg
IGdsOjpHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX1dSSVRFTUFTSywgcmVpbnRlcnByZXRfY2FzdDxH
TGludCo+KCZzdGVuY2lsTWFzaykpOwpAQCAtNjAxLDExICs2MTAsMTEgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZShpbnQgd2lkdGgsIGludCBoZWlnaHQpCiAKICAgICBnbDo6Q2xl
YXJDb2xvcihjbGVhckNvbG9yWzBdLCBjbGVhckNvbG9yWzFdLCBjbGVhckNvbG9yWzJdLCBjbGVh
ckNvbG9yWzNdKTsKICAgICBnbDo6Q29sb3JNYXNrKGNvbG9yTWFza1swXSwgY29sb3JNYXNrWzFd
LCBjb2xvck1hc2tbMl0sIGNvbG9yTWFza1szXSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsK
KyAgICBpZiAoYXR0cnMuZGVwdGgpIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFy
RGVwdGgoY2xlYXJEZXB0aCk7CiAgICAgICAgIGdsOjpEZXB0aE1hc2soZGVwdGhNYXNrKTsKICAg
ICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChhdHRycy5zdGVuY2lsKSB7
CiAgICAgICAgIGdsOjpDbGVhclN0ZW5jaWwoY2xlYXJTdGVuY2lsKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfRlJPTlQsIHN0ZW5jaWxNYXNrKTsKICAgICAgICAgZ2w6OlN0
ZW5jaWxNYXNrU2VwYXJhdGUoR0xfQkFDSywgc3RlbmNpbE1hc2tCYWNrKTsKQEAgLTY1Nyw3ICs2
NjYsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpiaW5kRnJhbWVidWZmZXIoR0MzRGVudW0g
dGFyZ2V0LCBQbGF0Zm9ybTNET2JqZWN0IGJ1ZmZlcgogICAgIGlmIChidWZmZXIpCiAgICAgICAg
IGZibyA9IGJ1ZmZlcjsKICAgICBlbHNlCi0gICAgICAgIGZibyA9IChtX2F0dHJzLmFudGlhbGlh
cyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CisgICAgICAgIGZibyA9IChjb250ZXh0QXR0
cmlidXRlcygpLmFudGlhbGlhcyA/IG1fbXVsdGlzYW1wbGVGQk8gOiBtX2Zibyk7CiAgICAgaWYg
KGZibyAhPSBtX3N0YXRlLmJvdW5kRkJPKSB7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIo
dGFyZ2V0LCBmYm8pOwogICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gZmJvOwpAQCAtODMyLDI0
ICs4NDEsMjggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29tcGlsZVNoYWRlckRpcmVjdChQ
bGF0Zm9ybTNET2JqZWN0IHNoYWRlcikKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhJ
bWFnZTJEKEdDM0RlbnVtIHRhcmdldCwgR0MzRGludCBsZXZlbCwgR0MzRGVudW0gaW50ZXJuYWxm
b3JtYXQsIEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBo
ZWlnaHQsIEdDM0RpbnQgYm9yZGVyKQogewogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwotICAg
IGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1w
bGVGQk8pIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsKKworICAgIGlm
IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJP
KSB7CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoSW50UmVjdCh4LCB5
LCB3aWR0aCwgaGVpZ2h0KSk7CiAgICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3ND
b250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX2Zibyk7CiAgICAgfQogICAgIGdsOjpDb3B5VGV4SW1h
Z2UyRCh0YXJnZXQsIGxldmVsLCBpbnRlcm5hbGZvcm1hdCwgeCwgeSwgd2lkdGgsIGhlaWdodCwg
Ym9yZGVyKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9
PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5i
b3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKQogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVy
KEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7CiB9CiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNvcHlUZXhTdWJJbWFnZTJEKEdDM0RlbnVtIHRhcmdl
dCwgR0MzRGludCBsZXZlbCwgR0MzRGludCB4b2Zmc2V0LCBHQzNEaW50IHlvZmZzZXQsIEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1f
c3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBj
b250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRl
LmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2Ft
cGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAg
Z2w6OkJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJv
KTsKICAgICB9CiAgICAgZ2w6OkNvcHlUZXhTdWJJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIHhvZmZz
ZXQsIHlvZmZzZXQsIHgsIHksIHdpZHRoLCBoZWlnaHQpOwotICAgIGlmIChtX2F0dHJzLmFudGlh
bGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAg
ICAgICAgIGdsOjpCaW5kRnJhbWVidWZmZXIoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVS
LCBtX211bHRpc2FtcGxlRkJPKTsKIH0KIApAQCAtMTAzNywxMSArMTA1MCw2IEBAIGludCBHcmFw
aGljc0NvbnRleHQzRDo6Z2V0QXR0cmliTG9jYXRpb25EaXJlY3QoUGxhdGZvcm0zRE9iamVjdCBw
cm9ncmFtLCBjb25zdCBTCiAgICAgcmV0dXJuIGdldEF0dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5h
bWUpOwogfQogCi1HcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgR3JhcGhpY3NDb250ZXh0M0Q6
OmdldENvbnRleHRBdHRyaWJ1dGVzKCkKLXsKLSAgICByZXR1cm4gbV9hdHRyczsKLX0KLQogYm9v
bCBHcmFwaGljc0NvbnRleHQzRDo6bW92ZUVycm9yc1RvU3ludGhldGljRXJyb3JMaXN0KCkKIHsK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dDNEQ2Fpcm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAKaW5kZXggMzYwNjQwZjgwODNmMGUxMDk4NWVmZWU0MzY1ODBhODRkMjY3ZjQyZS4uNDg4OTU3
ZTJlNTdjODA2NjcwMTgzMWIzMDdjZDk3OGMxZGQzOTcxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6
SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxwaGEsIGJvb2wK
ICAgICBBbHBoYU9wdGlvbiBhbHBoYU9wdGlvbiA9IHByZW11bHRpcGx5QWxwaGEgPyBBbHBoYU9w
dGlvbjo6UHJlbXVsdGlwbGllZCA6IEFscGhhT3B0aW9uOjpOb3RQcmVtdWx0aXBsaWVkOwogICAg
IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uIGdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uID0g
aWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPyBHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlvbjo6
SWdub3JlZCA6IEdhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uOjpBcHBsaWVkOwogICAgIGF1dG8g
c291cmNlID0gSW1hZ2VTb3VyY2U6OmNyZWF0ZShudWxscHRyLCBhbHBoYU9wdGlvbiwgZ2FtbWFB
bmRDb2xvclByb2ZpbGVPcHRpb24pOwotICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Ob3RoaW5nOwor
ICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvTm90aGluZzsKIAogICAgIGlmIChtX2ltYWdlLT5k
YXRhKCkpIHsKICAgICAgICAgc291cmNlLT5zZXREYXRhKG1faW1hZ2UtPmRhdGEoKSwgdHJ1ZSk7
CkBAIC02Miw4ICs2Miw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9y
OjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBseUFscGhhLCBib29sCiAgICAgICAgIC8vIHdo
aWNoIGlzIHRydWUgYXQgcHJlc2VudCBhbmQgbWF5IGJlIGNoYW5nZWQgaW4gdGhlIGZ1dHVyZSBh
bmQgbmVlZHMgYWRqdXN0bWVudCBhY2NvcmRpbmdseS4KICAgICAgICAgLy8gMi4gRm9yIHRleElt
YWdlMkQgd2l0aCBIVE1MQ2FudmFzRWxlbWVudCBpbnB1dCBpbiB3aGljaCBBbHBoYSBpcyBhbHJl
YWR5IFByZW11bHRpcGxpZWQgaW4gdGhpcyBwb3J0LCAKICAgICAgICAgLy8gZG8gQWxwaGFEb1Vu
bXVsdGlwbHkgaWYgVU5QQUNLX1BSRU1VTFRJUExZX0FMUEhBX1dFQkdMIGlzIHNldCB0byBmYWxz
ZS4KLSAgICAgICAgaWYgKCFwcmVtdWx0aXBseUFscGhhICYmIG1faW1hZ2VIdG1sRG9tU291cmNl
ICE9IEh0bWxEb21WaWRlbykKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9Vbm11bHRp
cGx5OworICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEgJiYgbV9pbWFnZUh0bWxEb21Tb3Vy
Y2UgIT0gRE9NU291cmNlOjpWaWRlbykKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6
OkRvVW5tdWx0aXBseTsKIAogICAgICAgICAvLyBpZiBtX2ltYWdlU3VyZmFjZSBpcyBub3QgYW4g
aW1hZ2UsIGV4dHJhY3QgYSBjb3B5IG9mIHRoZSBzdXJmYWNlCiAgICAgICAgIGlmIChtX2ltYWdl
U3VyZmFjZSAmJiBjYWlyb19zdXJmYWNlX2dldF90eXBlKG1faW1hZ2VTdXJmYWNlLmdldCgpKSAh
PSBDQUlST19TVVJGQUNFX1RZUEVfSU1BR0UpIHsKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBHcmFw
aGljc0NvbnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRp
cGx5QWxwaGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlUGl4ZWxEYXRhID0gY2Fpcm9faW1h
Z2Vfc3VyZmFjZV9nZXRfZGF0YShtX2ltYWdlU3VyZmFjZS5nZXQoKSk7Ci0gICAgbV9pbWFnZVNv
dXJjZUZvcm1hdCA9IERhdGFGb3JtYXRCR1JBODsKKyAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0g
RGF0YUZvcm1hdDo6QkdSQTg7CiAgICAgbV9pbWFnZVNvdXJjZVVucGFja0FsaWdubWVudCA9IHNy
Y1VucGFja0FsaWdubWVudDsKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKaW5kZXggNDE4YmYzNWI5Mjk3MzFiYjNmOTM5MjczYmQ5MWFkODY4ZmY0YTYxNy4uYmM5Mzhi
NDQyYjgxMThhYWJhM2Y0MzMxMDZiMTc3ZDBmODI3NWQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0M0RDRy5j
cHAKQEAgLTc3LDIxICs3NywyMSBAQCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZ2V0U291cmNlRGF0YUZvcm1hdCh1bnNpZ25lZCBjb21wb25lbnRzUGVyUAogICAgICAgICB7
IFNvdXJjZUZvcm1hdEJhc2VSR0IsICAgICAgICBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywg
U291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMgfSwgLy8gMyBjb21wb25lbnRzUGVyUGl4ZWwKICAg
ICAgICAgeyBTb3VyY2VGb3JtYXRCYXNlTnVtRm9ybWF0cywgU291cmNlRm9ybWF0QmFzZUFSR0Is
ICAgICAgIFNvdXJjZUZvcm1hdEJhc2VSR0JBICAgICAgICB9IC8vIDQgY29tcG9uZW50c1BlclBp
eGVsCiAgICAgfTsKLSAgICBjb25zdCBzdGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQgZm9ybWF0VGFibGVbU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3Vy
Y2VEYXRhRm9ybWF0QmFzZSB4IGJpdHNQZXJDb21wb25lbnQgeCBlbmRpYW4KKyAgICBjb25zdCBz
dGF0aWMgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQgZm9ybWF0VGFibGVbU291cmNlRm9y
bWF0QmFzZU51bUZvcm1hdHNdWzRdID0geyAvLyBTb3VyY2VEYXRhRm9ybWF0OjpCYXNlIHggYml0
c1BlckNvbXBvbmVudCB4IGVuZGlhbgogICAgICAgICAvLyA4Yml0cywgbGl0dGxlIGVuZGlhbiAg
ICAgICAgICAgICAgICAgOGJpdHMsIGJpZyBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAxNmJp
dHMsIGxpdHRsZSBlbmRpYW4gICAgICAgICAgICAgICAgICAgICAgICAxNmJpdHMsIGJpZyBlbmRp
YW4KLSAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcgfSwKLSAg
ICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdEE4LCAgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxp
dHRsZSwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZCaWcgfSwKLSAgICAgICAg
eyBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdFJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0bGUs
ICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2QmlnIH0sCi0gICAgICAgIHsgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRBUjgsICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2TGl0dGxlLCAgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0QVIxNkJpZyB9LAotICAgICAgICB7IEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0QkdSOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUsICBHcmFwaGlj
c0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXRBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JB
OCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMTZMaXR0bGUsIEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UkdCQTE2QmlnIH0sCi0gICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRCR1JBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCOCwg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBUkdCMTZMaXR0bGUsIEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0QVJHQjE2QmlnIH0KKyAgICAgICAgeyBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjgsICAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSOCwgICAg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkxpdHRsZSwgICAgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZyB9LAorICAgICAgICB7IEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRm9ybWF0OjpBOCwgICAgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkE4LCAg
ICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2TGl0dGxlLCAgICBHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXQ6OkFSOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkE4
LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2TGl0dGxlLCAgIEdyYXBoaWNz
Q29udGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OlJBOCwgICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6
QVI4LCAgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlLCAgIEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2QmlnIH0sCisgICAgICAgIHsgR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUjgsICBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dDo6UkdCOCwgIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSwgIEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZyB9LAorICAgICAgICB7IEdyYXBo
aWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBQkdSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXQ6OlJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2TGl0dGxl
LCBHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnIH0sCisgICAgICAgIHsg
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OkJHUkE4LCBHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6QVJHQjgsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZM
aXR0bGUsIEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcgfQogICAgIH07
CiAKICAgICBBU1NFUlQoY29tcG9uZW50c1BlclBpeGVsIDw9IDQgJiYgY29tcG9uZW50c1BlclBp
eGVsID4gMCk7CiAgICAgU291cmNlRGF0YUZvcm1hdEJhc2UgZm9ybWF0QmFzZSA9IGZvcm1hdFRh
YmxlQmFzZVtjb21wb25lbnRzUGVyUGl4ZWwgLSAxXVthbHBoYUZvcm1hdF07CiAgICAgaWYgKGZv
cm1hdEJhc2UgPT0gU291cmNlRm9ybWF0QmFzZU51bUZvcm1hdHMpCi0gICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdE51bUZvcm1hdHM7CisgICAgICAgIHJldHVybiBH
cmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6TnVtRm9ybWF0czsKICAgICByZXR1cm4gZm9y
bWF0VGFibGVbZm9ybWF0QmFzZV1bKGlzMTZCaXRGb3JtYXQgPyAyIDogMCkgKyAoYmlnRW5kaWFu
ID8gMSA6IDApXTsKIH0KIApAQCAtMTA2LDEzICsxMDYsMTMgQEAgdWludDhfdCBjb252ZXJ0Q29s
b3IxNkJpZ1RvOCh1aW50MTZfdCB2YWx1ZSkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDhf
dD4odmFsdWUgJiAweDAwRkYpOwogfQogCi10ZW1wbGF0ZTxpbnQgZm9ybWF0LCB0eXBlbmFtZSBT
b3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBlPgordGVtcGxhdGU8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQgZm9ybWF0LCB0eXBlbmFtZSBTb3VyY2VUeXBlLCB0eXBlbmFtZSBEc3RUeXBl
PgogQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTgoY29uc3QgU291
cmNlVHlwZSosIERzdFR5cGUqLCB1bnNpZ25lZCkKIHsKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSwgdWludDE2
X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9u
LCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBj
b252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
R0JBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogI2lmIEhBVkUo
QVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZlJHQkExNkxpdHRs
ZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAgLTEyNyw3ICsx
MjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRU
b1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQx
Nl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cp
Cit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0JBMTZCaWcsIHVpbnQxNl90LCB1aW50
OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWdu
ZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQ
ZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRDb2xvcjE2Qmln
VG84KHNvdXJjZVswXSk7CkBAIC0xMzksNyArMTM5LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJp
dEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkxpdHRsZSwg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpSR0IxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3Vy
Y2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAjaWYg
SEFWRShBUk1fTkVPTl9JTlRSSU5TSUNTKQogICAgIFNJTUQ6OnVucGFja09uZVJvd09mUkdCMTZM
aXR0bGVUb1JHQkE4KHNvdXJjZSwgZGVzdGluYXRpb24sIHBpeGVsc1BlclJvdyk7CkBAIC0xNTQs
NyArMTU0LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRl
PD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJS
b3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JH
QkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkJpZywgdWludDE2X3QsIHVp
bnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVs
c1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZC
aWdUbzgoc291cmNlWzBdKTsKQEAgLTE2Niw3ICsxNjYsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpE
YXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2
Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBUkdCMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewog
I2lmIEhBVkUoQVJNX05FT05fSU5UUklOU0lDUykKICAgICBTSU1EOjp1bnBhY2tPbmVSb3dPZkFS
R0IxNkxpdHRsZVRvUkdCQTgoc291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKQEAg
LTE4MSw3ICsxODEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZywgdWludDE2X3QsIHVpbnQ4X3Q+KGNv
bnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3Jt
YXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZCaWcsIHVpbnQx
Nl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlv
biwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5hdGlvblswXSA9IGNvbnZlcnRD
b2xvcjE2QmlnVG84KHNvdXJjZVsxXSk7CkBAIC0xOTMsNyArMTkzLDcgQEAgdGVtcGxhdGU8PiBB
TFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUYKICAgICB9CiB9CiAKLXRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNv
bnZlcnQxNkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZM
aXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90
KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6
RGF0YUZvcm1hdDo6UjE2TGl0dGxlLCB1aW50MTZfdCwgdWludDhfdD4oY29uc3QgdWludDE2X3Qq
IHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKICAgICAg
ICAgZGVzdGluYXRpb25bMF0gPSBjb252ZXJ0Q29sb3IxNkxpdHRsZVRvOChzb3VyY2VbMF0pOwpA
QCAtMjA1LDcgKzIwNSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQx
NkJpdEZvcm1hdFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGCiAgICAgfQogfQogCi10
ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UjE2QmlnLCB1aW50MTZfdCwgdWludDhfdD4oY29u
c3QgdWludDE2X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVs
c1BlclJvdykKK3RlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIGNvbnZlcnQxNkJpdEZvcm1h
dFRvUkdCQTg8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXQ6OlIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTIxNyw3ICsyMTcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6UkExNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzBdKTsKQEAg
LTIyOSw3ICsyMjksNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkExNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzBdKTsKQEAgLTI0MSw3ICsyNDEsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZMaXR0
bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBk
ZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdDo6QVIxNkxpdHRsZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBz
b3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAg
IGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9yMTZMaXR0bGVUbzgoc291cmNlWzFdKTsKQEAg
LTI1Myw3ICsyNTMsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBjb252ZXJ0MTZC
aXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRgogICAgIH0KIH0KIAotdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFSMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25z
dCB1aW50MTZfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQordGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVydDE2Qml0Rm9ybWF0
VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QVIxNkJpZywgdWludDE2X3Qs
IHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHBp
eGVsc1BlclJvdzsgKytpKSB7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBdID0gY29udmVydENvbG9y
MTZCaWdUbzgoc291cmNlWzFdKTsKQEAgLTI2NSw3ICsyNjUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkxpdHRs
ZSwgdWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRl
c3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJ
TkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRh
Rm9ybWF0OjpBMTZMaXR0bGUsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291
cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBk
ZXN0aW5hdGlvblswXSA9IDB4MDsKQEAgLTI3Nyw3ICsyNzcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZ
U19JTkxJTkUgdm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNE
OjpEYXRhRgogICAgIH0KIH0KIAotdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgY29udmVy
dDE2Qml0Rm9ybWF0VG9SR0JBODxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEExNkJpZywg
dWludDE2X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQxNl90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3Rp
bmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCit0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9y
bWF0OjpBMTZCaWcsIHVpbnQxNl90LCB1aW50OF90Pihjb25zdCB1aW50MTZfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewogICAgICAgICBkZXN0aW5h
dGlvblswXSA9IDB4MDsKQEAgLTI5NiwyMCArMjk2LDIwIEBAIHZvaWQgY29udmVydDE2Qml0Rm9y
bWF0VG9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdCBzcmNGb3JtYXQsIGNvbnN0
IHVpCiAgICAgICAgIHJldHVybiBjb252ZXJ0MTZCaXRGb3JtYXRUb1JHQkE4PFNyY0Zvcm1hdD4o
c291cmNlLCBkZXN0aW5hdGlvbiwgcGl4ZWxzUGVyUm93KTsKIAogICAgIHN3aXRjaCAoc3JjRm9y
bWF0KSB7Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0
M0Q6OkRhdGFGb3JtYXRSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdC
QTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSMTZCaWcpCi0gICAgICAgIENPTlZFUlQx
NkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRBMTZMaXR0bGUp
Ci0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRh
dGFGb3JtYXRBMTZCaWcpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhp
Y3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTE2TGl0dGxlKQotICAgICAgICBDT05WRVJUMTZCSVRG
T1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkExNkJpZykKLSAgICAg
ICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dEFSMTZMaXR0bGUpCi0gICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRBUjE2QmlnKQotICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCMTZMaXR0bGUpCi0gICAgICAg
IENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRS
R0IxNkJpZykKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRl
eHQzRDo6RGF0YUZvcm1hdFJHQkExNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkExNkJpZykKLSAgICAgICAg
Q09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdEFS
R0IxNkxpdHRsZSkKLSAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdEFSR0IxNkJpZykKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpSMTZCaWcpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250
ZXh0M0Q6OkRhdGFGb3JtYXQ6OkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFU
VE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6QTE2QmlnKQorICAgICAgICBD
T05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpS
QTE2TGl0dGxlKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRU
T1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUjE2TGl0dGxlKQorICAgICAg
ICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0
OjpBUjE2QmlnKQorICAgICAgICBDT05WRVJUMTZCSVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0OjpSR0IxNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9S
TUFUVE9SR0JBOChHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCMTZCaWcpCisgICAg
ICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXQ6OlJHQkExNkxpdHRsZSkKKyAgICAgICAgQ09OVkVSVDE2QklURk9STUFUVE9SR0JBOChHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdDo6UkdCQTE2QmlnKQorICAgICAgICBDT05WRVJUMTZC
SVRGT1JNQVRUT1JHQkE4KEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0OjpBUkdCMTZMaXR0
bGUpCisgICAgICAgIENPTlZFUlQxNkJJVEZPUk1BVFRPUkdCQTgoR3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXQ6OkFSR0IxNkJpZykKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CkBAIC00MTcsMTggKzQxNywxOCBAQCBib29sIEdyYXBoaWNzQ29u
dGV4dDNEOjpJbWFnZUV4dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBo
YSwgYm9vbAogICAgICAgICB9CiAgICAgfQogCi0gICAgbV9hbHBoYU9wID0gQWxwaGFEb05vdGhp
bmc7CisgICAgbV9hbHBoYU9wID0gQWxwaGFPcDo6RG9Ob3RoaW5nOwogICAgIEFscGhhRm9ybWF0
IGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXROb25lOwogICAgIHN3aXRjaCAoQ0dJbWFnZUdldEFs
cGhhSW5mbyhtX2NnSW1hZ2UuZ2V0KCkpKSB7CiAgICAgY2FzZSBrQ0dJbWFnZUFscGhhUHJlbXVs
dGlwbGllZEZpcnN0OgogICAgICAgICBpZiAoIXByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAg
ICBtX2FscGhhT3AgPSBBbHBoYURvVW5tdWx0aXBseTsKKyAgICAgICAgICAgIG1fYWxwaGFPcCA9
IEFscGhhT3A6OkRvVW5tdWx0aXBseTsKICAgICAgICAgYWxwaGFGb3JtYXQgPSBBbHBoYUZvcm1h
dEZpcnN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFGaXJzdDoKICAg
ICAgICAgLy8gVGhpcyBwYXRoIGlzIG9ubHkgYWNjZXNzaWJsZSBmb3IgTWFjT1MgZWFybGllciB0
aGFuIDEwLjYuNC4KICAgICAgICAgaWYgKHByZW11bHRpcGx5QWxwaGEpCi0gICAgICAgICAgICBt
X2FscGhhT3AgPSBBbHBoYURvUHJlbXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBB
bHBoYU9wOjpEb1ByZW11bHRpcGx5OwogICAgICAgICBhbHBoYUZvcm1hdCA9IEFscGhhRm9ybWF0
Rmlyc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NHSW1hZ2VBbHBoYU5vbmVTa2lwRmly
c3Q6CkBAIC00MzcsMTIgKzQzNywxMiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpJbWFnZUV4
dHJhY3Rvcjo6ZXh0cmFjdEltYWdlKGJvb2wgcHJlbXVsdGlwbHlBbHBoYSwgYm9vbAogICAgICAg
ICBicmVhazsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFQcmVtdWx0aXBsaWVkTGFzdDoKICAgICAg
ICAgaWYgKCFwcmVtdWx0aXBseUFscGhhKQotICAgICAgICAgICAgbV9hbHBoYU9wID0gQWxwaGFE
b1VubXVsdGlwbHk7CisgICAgICAgICAgICBtX2FscGhhT3AgPSBBbHBoYU9wOjpEb1VubXVsdGlw
bHk7CiAgICAgICAgIGFscGhhRm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVh
azsKICAgICBjYXNlIGtDR0ltYWdlQWxwaGFMYXN0OgogICAgICAgICBpZiAocHJlbXVsdGlwbHlB
bHBoYSkKLSAgICAgICAgICAgIG1fYWxwaGFPcCA9IEFscGhhRG9QcmVtdWx0aXBseTsKKyAgICAg
ICAgICAgIG1fYWxwaGFPcCA9IEFscGhhT3A6OkRvUHJlbXVsdGlwbHk7CiAgICAgICAgIGFscGhh
Rm9ybWF0ID0gQWxwaGFGb3JtYXRMYXN0OwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDR0lt
YWdlQWxwaGFOb25lU2tpcExhc3Q6CkBAIC00NTYsNyArNDU2LDcgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6SW1hZ2VFeHRyYWN0b3I6OmV4dHJhY3RJbWFnZShib29sIHByZW11bHRpcGx5QWxw
aGEsIGJvb2wKICAgICB9CiAKICAgICBtX2ltYWdlU291cmNlRm9ybWF0ID0gZ2V0U291cmNlRGF0
YUZvcm1hdChjb21wb25lbnRzUGVyUGl4ZWwsIGFscGhhRm9ybWF0LCBiaXRzUGVyQ29tcG9uZW50
ID09IDE2LCBiaWdFbmRpYW5Tb3VyY2UpOwotICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09
IERhdGFGb3JtYXROdW1Gb3JtYXRzKQorICAgIGlmIChtX2ltYWdlU291cmNlRm9ybWF0ID09IERh
dGFGb3JtYXQ6Ok51bUZvcm1hdHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIG1fcGl4
ZWxEYXRhID0gYWRvcHRDRihDR0RhdGFQcm92aWRlckNvcHlEYXRhKENHSW1hZ2VHZXREYXRhUHJv
dmlkZXIobV9jZ0ltYWdlLmdldCgpKSkpOwpAQCAtNDkwLDcgKzQ5MCw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OkltYWdlRXh0cmFjdG9yOjpleHRyYWN0SW1hZ2UoYm9vbCBwcmVtdWx0aXBs
eUFscGhhLCBib29sCiAgICAgICAgICAgICBkZXN0aW5hdGlvbiArPSBkc3RTdHJpZGVJbkVsZW1l
bnRzOwogICAgICAgICB9CiAgICAgICAgIG1faW1hZ2VQaXhlbERhdGEgPSByZWludGVycHJldF9j
YXN0PGNvbnN0IHZvaWQqPihtX2Zvcm1hbGl6ZWRSR0JBOERhdGEuZ2V0KCkpOwotICAgICAgICBt
X2ltYWdlU291cmNlRm9ybWF0ID0gRGF0YUZvcm1hdFJHQkE4OworICAgICAgICBtX2ltYWdlU291
cmNlRm9ybWF0ID0gRGF0YUZvcm1hdDo6UkdCQTg7CiAgICAgICAgIG1faW1hZ2VTb3VyY2VVbnBh
Y2tBbGlnbm1lbnQgPSAxOwogICAgIH0KICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dDNEQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHQzRENvY29hLm1tCmluZGV4IGRhNmIzYjZkMjZkOWUxNDBkOTA3MmQxZGI1YmU2NDQ1MDMx
NWFjMWEuLjZmYmYyODQ0YWE1MDQxZTA4YmM0ZWZmOTkzOGQ0Mzg3ZjZmODhlM2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4
dDNEQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0M0RDb2NvYS5tbQpAQCAtMTAyLDEwICsxMDIsMTAgQEAgcHVibGljOgog
ICAgIH5HcmFwaGljc0NvbnRleHQzRFByaXZhdGUoKSB7IH0KIH07CiAKLVJlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0
dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3Jh
cGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMs
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVu
dGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlm
IChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVz
dGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250
ZXh0IGlmIHdlJ3JlIGZ1bGwuCkBAIC0xMTMsNyArMTEzLDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcwogICAgIGlmIChHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5o
YXNUb29NYW55Q29udGV4dHMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250
ZXh0M0QoYXR0cnMsIGhvc3RXaW5kb3csIHJlbmRlclN0eWxlKSk7CisgICAgUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiBjb250ZXh0ID0gYWRvcHRSZWYobmV3IEdyYXBoaWNzQ29udGV4dDNEKGF0
dHJzLCBob3N0V2luZG93LCBkZXN0aW5hdGlvbikpOwogCiAgICAgaWYgKCFjb250ZXh0LT5tX2Nv
bnRleHRPYmopCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTI2LDcgKzEyNiw3IEBAIFJl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZShHcmFwaGlj
c0NvbnRleHQzREF0dHJpYnV0ZXMKIFJlZjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZVNoYXJlZChHcmFwaGljc0NvbnRleHQzRCYgc2hhcmVkQ29udGV4dCkKIHsK
ICAgICBhdXRvIGhvc3RXaW5kb3cgPSBHcmFwaGljc0NvbnRleHQzRE1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKS5ob3N0V2luZG93Rm9yQ29udGV4dCgmc2hhcmVkQ29udGV4dCk7Ci0gICAgYXV0byBj
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHQzRChzaGFyZWRDb250ZXh0Lmdl
dENvbnRleHRBdHRyaWJ1dGVzKCksIGhvc3RXaW5kb3csIHNoYXJlZENvbnRleHQubV9yZW5kZXJT
dHlsZSwgJnNoYXJlZENvbnRleHQpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3
IEdyYXBoaWNzQ29udGV4dDNEKHNoYXJlZENvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMoKSwgaG9z
dFdpbmRvdywgc2hhcmVkQ29udGV4dC5kZXN0aW5hdGlvbigpLCAmc2hhcmVkQ29udGV4dCkpOwog
CiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4
dChjb250ZXh0LnB0cigpLCBob3N0V2luZG93KTsKIApAQCAtMTgzLDggKzE4Myw4IEBAIHN0YXRp
YyB2b2lkIHNldEdQVUJ5UmVnaXN0cnlJRChDR0xDb250ZXh0T2JqIGNvbnRleHRPYmosIENHTFBp
eGVsRm9ybWF0T2JqIHBpeGVsCiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpICYmIChVU0UoT1BF
TkdMKSB8fCBVU0UoQU5HTEUpKQogCi1HcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2lu
ZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUsIEdyYXBoaWNzQ29udGV4dDNEKiBz
aGFyZWRDb250ZXh0KQotICAgIDogbV9hdHRycyhhdHRycykKK0dyYXBoaWNzQ29udGV4dDNEOjpH
cmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbiwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0Nv
bnRleHQzREJhc2UoYXR0cnMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogICAgICwgbV9w
cml2YXRlKG1ha2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzKSkKIHsKIApA
QCAtMjAwLDMwICsyMDAsMzUgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNE
KEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRycywgSG9zdFdpbmQKICAgICAgICAgcmV0
dXJuOwogCiAjaWYgVVNFKE9QRU5HTF9FUykKLSAgICBpZiAobV9hdHRycy5pc1dlYkdMMikKKyAg
ICBpZiAoYXR0cnMuaXNXZWJHTDIpCiAgICAgICAgIG1fY29tcGlsZXIgPSBBTkdMRVdlYktpdEJy
aWRnZShTSF9FU1NMX09VVFBVVCwgU0hfV0VCR0wyX1NQRUMpOwogICAgIGVsc2UKICAgICAgICAg
bV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xfT1VUUFVUKTsKICNlbHNlCi0g
ICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpCisgICAgaWYgKGF0dHJzLmlzV2ViR0wyKQogICAgICAg
ICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfR0xTTF80MTBfQ09SRV9PVVRQVVQs
IFNIX1dFQkdMMl9TUEVDKTsKICNlbmRpZiAvLyBVU0UoT1BFTkdMX0VTKQogI2VuZGlmIC8vICFV
U0UoQU5HTEUpCiAKICNpZiBVU0UoT1BFTkdMX0VTKQogICAgIFVOVVNFRF9QQVJBTShob3N0V2lu
ZG93KTsKLSAgICBFQUdMUmVuZGVyaW5nQVBJIGFwaSA9IG1fYXR0cnMuaXNXZWJHTDIgPyBrRUFH
TFJlbmRlcmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVuZGVyaW5nQVBJT3BlbkdMRVMyOworICAg
IG1faXNGb3JXZWJHTDIgPSBhdHRycy5pc1dlYkdMMjsKKyAgICBFQUdMUmVuZGVyaW5nQVBJIGFw
aSA9IG1faXNGb3JXZWJHTDIgPyBrRUFHTFJlbmRlcmluZ0FQSU9wZW5HTEVTMyA6IGtFQUdMUmVu
ZGVyaW5nQVBJT3BlbkdMRVMyOworICAgIEVBR0xDb250ZXh0ICpjb250ZXh0T2JqOwogICAgIGlm
ICghc2hhcmVkQ29udGV4dCkKLSAgICAgICAgbV9jb250ZXh0T2JqID0gW1tFQUdMQ29udGV4dCBh
bGxvY10gaW5pdFdpdGhBUEk6YXBpXTsKKyAgICAgICAgY29udGV4dE9iaiA9IFtbRUFHTENvbnRl
eHQgYWxsb2NdIGluaXRXaXRoQVBJOmFwaV07CiAgICAgZWxzZQotICAgICAgICBtX2NvbnRleHRP
YmogPSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTphcGkgc2hhcmVncm91cDpzaGFy
ZWRDb250ZXh0LT5tX2NvbnRleHRPYmouc2hhcmVncm91cF07CisgICAgICAgIGNvbnRleHRPYmog
PSBbW0VBR0xDb250ZXh0IGFsbG9jXSBpbml0V2l0aEFQSTphcGkgc2hhcmVncm91cDpzdGF0aWNf
Y2FzdDxFQUdMQ29udGV4dCAqPihzaGFyZWRDb250ZXh0LT5tX2NvbnRleHRPYmopLnNoYXJlZ3Jv
dXBdOworCisgICAgbV9jb250ZXh0T2JqID0gc3RhdGljX2Nhc3Q8dm9pZCAqPihjb250ZXh0T2Jq
KTsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0gICAgaWYgKG1fYXR0cnMuaXNXZWJH
TDIpCisgICAgaWYgKG1faXNGb3JXZWJHTDIpCiAgICAgICAgIDo6Z2xFbmFibGUoR3JhcGhpY3ND
b250ZXh0M0Q6OlBSSU1JVElWRV9SRVNUQVJUX0ZJWEVEX0lOREVYKTsKICNlbGlmIFVTRShPUEVO
R0wpCiAKLSAgICBib29sIHVzZU11bHRpc2FtcGxpbmcgPSBtX2F0dHJzLmFudGlhbGlhczsKKyAg
ICBib29sIHVzZU11bHRpc2FtcGxpbmcgPSBhdHRycy5hbnRpYWxpYXM7CiAKICAgICBWZWN0b3I8
Q0dMUGl4ZWxGb3JtYXRBdHRyaWJ1dGU+IGF0dHJpYnM7CiAgICAgQ0dMUGl4ZWxGb3JtYXRPYmog
cGl4ZWxGb3JtYXRPYmogPSAwOwpAQCAtMjUwLDcgKzI1NSw3IEBAIEdyYXBoaWNzQ29udGV4dDNE
OjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhv
c3RXaW5kCiAgICAgICAgIGF0dHJpYnMuYXBwZW5kKHN0YXRpY19jYXN0PENHTFBpeGVsRm9ybWF0
QXR0cmlidXRlPig0KSk7CiAgICAgfQogCi0gICAgaWYgKG1fYXR0cnMuaXNXZWJHTDIpIHsKKyAg
ICBpZiAoYXR0cnMuaXNXZWJHTDIpIHsKICAgICAgICAgLy8gRklYTUU6IEluc3RlYWQgb2YgYmFj
a2luZyBhIFdlYkdMMiBHcmFwaGljc0NvbnRleHQzRCB3aXRoIGEgT3BlbkdMIDQgY29udGV4dCwg
d2Ugc2hvdWxkIGluc3RlYWQgYmFjayBpdCB3aXRoIEFOR0xFLgogICAgICAgICAvLyBVc2UgYW4g
T3BlbkdMIDQgY29udGV4dCBmb3Igbm93IHVudGlsIHRoZSBBTkdMRSBiYWNrZW5kIGlzIHJlYWR5
LgogICAgICAgICBhdHRyaWJzLmFwcGVuZChrQ0dMUEZBT3BlbkdMUHJvZmlsZSk7CkBAIC0yNjQs
MzAgKzI2OSwzNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhp
Y3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIGlmICghbnVtUGl4ZWxG
b3JtYXRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVhdGVD
b250ZXh0KHBpeGVsRm9ybWF0T2JqLCBzaGFyZWRDb250ZXh0ID8gc2hhcmVkQ29udGV4dC0+bV9j
b250ZXh0T2JqIDogbnVsbHB0ciwgJm1fY29udGV4dE9iaik7CisgICAgQ0dMQ29udGV4dE9iaiBj
Z2xDb250ZXh0ID0gbnVsbHB0cjsKKyAgICBDR0xDb250ZXh0T2JqIHNoYXJlZENHTENvbnRleHQg
PSBzaGFyZWRDb250ZXh0ID8gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4oc2hhcmVkQ29udGV4
dC0+bV9jb250ZXh0T2JqKSA6IG51bGxwdHI7CisKKyAgICBDR0xFcnJvciBlcnIgPSBDR0xDcmVh
dGVDb250ZXh0KHBpeGVsRm9ybWF0T2JqLCBzaGFyZWRDR0xDb250ZXh0LCAmY2dsQ29udGV4dCk7
CiAgICAgR0xpbnQgYWJvcnRPbkJsYWNrbGlzdCA9IDA7Ci0gICAgQ0dMU2V0UGFyYW1ldGVyKG1f
Y29udGV4dE9iaiwga0NHTENQQWJvcnRPbkdQVVJlc3RhcnRTdGF0dXNCbGFja2xpc3RlZCwgJmFi
b3J0T25CbGFja2xpc3QpOwotICAgIAorICAgIENHTFNldFBhcmFtZXRlcihjZ2xDb250ZXh0LCBr
Q0dMQ1BBYm9ydE9uR1BVUmVzdGFydFN0YXR1c0JsYWNrbGlzdGVkLCAmYWJvcnRPbkJsYWNrbGlz
dCk7CisKICNpZiBQTEFURk9STShNQUMpIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IHNob3VsZCBi
ZSBVU0UoT1BFTkdMKSAtIHNlZSA8cmRhcjovLzUzMDYyNzk0Pi4KIAogICAgIGF1dG8gZ3B1SUQg
PSAoaG9zdFdpbmRvdyAmJiBob3N0V2luZG93LT5kaXNwbGF5SUQoKSkgPyBncHVJREZvckRpc3Bs
YXkoaG9zdFdpbmRvdy0+ZGlzcGxheUlEKCkpIDogcHJpbWFyeUdQVUlEKCk7Ci0gICAgc2V0R1BV
QnlSZWdpc3RyeUlEKG1fY29udGV4dE9iaiwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKKyAgICBz
ZXRHUFVCeVJlZ2lzdHJ5SUQoY2dsQ29udGV4dCwgcGl4ZWxGb3JtYXRPYmosIGdwdUlEKTsKIAog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaG9zdFdpbmRvdyk7CiAjZW5kaWYKIAogICAgIENHTERl
c3Ryb3lQaXhlbEZvcm1hdChwaXhlbEZvcm1hdE9iaik7Ci0gICAgCisKKyAgICBtX2NvbnRleHRP
YmogPSBjZ2xDb250ZXh0OworCiAgICAgaWYgKGVyciAhPSBrQ0dMTm9FcnJvciB8fCAhbV9jb250
ZXh0T2JqKSB7CiAgICAgICAgIC8vIFdlIHdlcmUgdW5hYmxlIHRvIGNyZWF0ZSB0aGUgY29udGV4
dC4KICAgICAgICAgbV9jb250ZXh0T2JqID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIG1faXNGb3JXZWJHTDIgPSBtX2F0dHJzLmlzV2ViR0wyOworICAgIG1fY29udGV4dE9iaiA9
IGNnbENvbnRleHQ7CiAKLSAgICBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRleHRPYmopOwor
ICAgIG1faXNGb3JXZWJHTDIgPSBhdHRycy5pc1dlYkdMMjsKKworICAgIENHTFNldEN1cnJlbnRD
b250ZXh0KGNnbENvbnRleHQpOwogCiAgICAgLy8gV2ViR0wgMiBleHBlY3RzIEVTIDMtb25seSBQ
UklNSVRJVkVfUkVTVEFSVF9GSVhFRF9JTkRFWCB0byBiZSBlbmFibGVkOyB3ZSBtdXN0IGVtdWxh
dGUgdGhpcyBvbiBub24tRVMgMyBzeXN0ZW1zLgogICAgIGlmIChtX2lzRm9yV2ViR0wyKQpAQCAt
MzM0LDcgKzM0Niw3IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFw
aGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgfQogCiAgICAgc3Rk
Ojp2ZWN0b3I8RUdMaW50PiBjb250ZXh0QXR0cmlidXRlczsKLSAgICBpZiAobV9hdHRycy5pc1dl
YkdMMikgeworICAgIGlmIChhdHRycy5pc1dlYkdMMikgewogICAgICAgICBjb250ZXh0QXR0cmli
dXRlcy5wdXNoX2JhY2soRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04pOwogICAgICAgICBjb250
ZXh0QXR0cmlidXRlcy5wdXNoX2JhY2soMyk7CiAgICAgfSBlbHNlIHsKQEAgLTM5Niw2ICs0MDgs
NyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0
M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogI2VuZGlmIC8vICNlbGlmIFVTRShBTkdMRSkK
IAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJzID0gY29udGV4dEF0dHJpYnV0
ZXMoKTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCiAgICAg
Ly8gQ3JlYXRlIHRoZSBXZWJHTExheWVyCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05T
CkBAIC00NTEsMTYgKzQ2NCwxNiBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzLCBIb3N0V2luZAogICAgIDo6Z2xC
aW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBtX2Zibyk7CiAKICAgICBtX3N0
YXRlLmJvdW5kRkJPID0gbV9mYm87Ci0gICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpKQorICAgIGlmICghYXR0cnMuYW50aWFsaWFz
ICYmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKSkKICAgICAgICAgOjpnbEdlblJlbmRl
cmJ1ZmZlcnNFWFQoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKIAogICAgIC8vIElmIG5lY2Vz
c2FyeSwgY3JlYXRlIGFub3RoZXIgZnJhbWVidWZmZXIgZm9yIHRoZSBtdWx0aXNhbXBsZSByZXN1
bHRzLgotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcykgeworICAgIGlmIChhdHRycy5hbnRpYWxp
YXMpIHsKICAgICAgICAgOjpnbEdlbkZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZC
Tyk7CiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR0xfRlJBTUVCVUZGRVJfRVhULCBt
X211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1w
bGVGQk87CiAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzRVhUKDEsICZtX211bHRpc2FtcGxl
Q29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQogICAgICAgICAg
ICAgOjpnbEdlblJlbmRlcmJ1ZmZlcnNFWFQoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxC
dWZmZXIpOwogICAgIH0KICNlbGlmIFVTRShBTkdMRSkKQEAgLTQ2OCwxNiArNDgxLDE2IEBAIEdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJp
YnV0ZXMgYXR0cnMsIEhvc3RXaW5kCiAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mYm8pOwogICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX2ZibzsKIAotICAgIGlmICgh
bV9hdHRycy5hbnRpYWxpYXMgJiYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKSkK
KyAgICBpZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0
aCkpCiAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAKICAgICAvLyBJZiBuZWNlc3NhcnksIGNyZWF0ZSBhbm90aGVyIGZyYW1lYnVmZmVyIGZv
ciB0aGUgbXVsdGlzYW1wbGUgcmVzdWx0cy4KLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpIHsK
KyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpHZW5GcmFtZWJ1ZmZlcnMo
MSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZS
QU1FQlVGRkVSLCBtX211bHRpc2FtcGxlRkJPKTsKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9
IG1fbXVsdGlzYW1wbGVGQk87CiAgICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX211
bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1f
YXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRycy5zdGVuY2lsIHx8IGF0dHJzLmRlcHRoKQog
ICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwogICAgIH0KIApAQCAtNTI3LDEyICs1NDAsMTUgQEAgR3JhcGhpY3NDb250
ZXh0M0Q6On5HcmFwaGljc0NvbnRleHQzRCgpCiAgICAgR3JhcGhpY3NDb250ZXh0M0RNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKIAogICAgIGlmIChtX2NvbnRl
eHRPYmopIHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJzID0gY29u
dGV4dEF0dHJpYnV0ZXMoKTsKKwogI2lmIFVTRShPUEVOR0xfRVMpCiAgICAgICAgIG1ha2VDb250
ZXh0Q3VycmVudCgpOwotICAgICAgICBbbV9jb250ZXh0T2JqIHJlbmRlcmJ1ZmZlclN0b3JhZ2U6
R0xfUkVOREVSQlVGRkVSIGZyb21EcmF3YWJsZTpuaWxdOworICAgICAgICBbc3RhdGljX2Nhc3Q8
RUFHTENvbnRleHQgKj4obV9jb250ZXh0T2JqKSByZW5kZXJidWZmZXJTdG9yYWdlOkdMX1JFTkRF
UkJVRkZFUiBmcm9tRHJhd2FibGU6bmlsXTsKICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZl
cnMoMSwgJm1fdGV4dHVyZSk7CiAjZWxpZiBVU0UoT1BFTkdMKQotICAgICAgICBDR0xTZXRDdXJy
ZW50Q29udGV4dChtX2NvbnRleHRPYmopOworICAgICAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRl
eHQgPSBzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihtX2NvbnRleHRPYmopOworICAgICAgICBD
R0xTZXRDdXJyZW50Q29udGV4dChjZ2xDb250ZXh0KTsKICAgICAgICAgOjpnbERlbGV0ZVRleHR1
cmVzKDEsICZtX3RleHR1cmUpOwogI2VsaWYgVVNFKEFOR0xFKQogICAgICAgICBFR0xfTWFrZUN1
cnJlbnQobV9kaXNwbGF5T2JqLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fY29u
dGV4dE9iaik7CkBAIC01NDAsMjQgKzU1NiwyNCBAQCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBo
aWNzQ29udGV4dDNEKCkKICNlbmRpZgogCiAjaWYgVVNFKE9QRU5HTCkgfHwgVVNFKE9QRU5HTF9F
UykKLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRycy5h
bnRpYWxpYXMpIHsKICAgICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzRVhUKDEsICZt
X211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0ZW5jaWwgfHwgYXR0
cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgOjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnNFWFQoMSwg
Jm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbERlbGV0
ZUZyYW1lYnVmZmVyc0VYVCgxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAgICAgICAg
ICA6OmdsRGVsZXRlUmVuZGVyYnVmZmVyc0VYVCgxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwog
ICAgICAgICB9CiAgICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnNFWFQoMSwgJm1fZmJvKTsK
ICNlbGlmIFVTRShBTkdMRSkKLSAgICAgICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAg
ICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgICAgIGdsOjpEZWxldGVSZW5kZXJi
dWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1f
YXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgaWYgKGF0dHJzLnN0
ZW5jaWwgfHwgYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkRlbGV0ZVJlbmRlcmJ1
ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAg
Z2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgp
CisgICAgICAgICAgICBpZiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkKICAgICAgICAg
ICAgICAgICBnbDo6RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aFN0ZW5jaWxCdWZmZXIp
OwogICAgICAgICB9CiAgICAgICAgIGdsOjpEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsK
QEAgLTU2NSwxMCArNTgxLDEwIEBAIEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0
M0QoKQogCiAjaWYgVVNFKE9QRU5HTF9FUykKICAgICAgICAgW0VBR0xDb250ZXh0IHNldEN1cnJl
bnRDb250ZXh0OjBdOwotICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQqPihtX2NvbnRl
eHRPYmopIHJlbGVhc2VdOworICAgICAgICBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQgKj4obV9j
b250ZXh0T2JqKSByZWxlYXNlXTsKICNlbGlmIFVTRShPUEVOR0wpCiAgICAgICAgIENHTFNldEN1
cnJlbnRDb250ZXh0KDApOwotICAgICAgICBDR0xEZXN0cm95Q29udGV4dChtX2NvbnRleHRPYmop
OworICAgICAgICBDR0xEZXN0cm95Q29udGV4dChjZ2xDb250ZXh0KTsKICNlbGlmIFVTRShBTkdM
RSkKICAgICAgICAgRUdMX01ha2VDdXJyZW50KG1fZGlzcGxheU9iaiwgRUdMX05PX1NVUkZBQ0Us
IEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CiAgICAgICAgIEVHTF9EZXN0cm95Q29u
dGV4dChtX2Rpc3BsYXlPYmosIG1fY29udGV4dE9iaik7CkBAIC01ODcsOSArNjAzLDkgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0UmVuZGVyYnVmZmVyU3RvcmFnZUZyb21EcmF3YWJsZShH
QzNEc2l6ZWkgd2lkdGgsIEdDM0QKICAgICBDR1JlY3QgcHJldmlvdXNCb3VuZHMgPSBbbV93ZWJH
TExheWVyLmdldCgpIGJvdW5kc107CiAKICAgICBbbV93ZWJHTExheWVyIHNldEJvdW5kczpDR1Jl
Y3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpXTsKLSAgICBbbV93ZWJHTExheWVyIHNldE9wYXF1
ZTohbV9hdHRycy5hbHBoYV07CisgICAgW21fd2ViR0xMYXllciBzZXRPcGFxdWU6IWNvbnRleHRB
dHRyaWJ1dGVzKCkuYWxwaGFdOwogCi0gICAgW21fY29udGV4dE9iaiByZW5kZXJidWZmZXJTdG9y
YWdlOkdMX1JFTkRFUkJVRkZFUiBmcm9tRHJhd2FibGU6c3RhdGljX2Nhc3Q8aWQ8RUFHTERyYXdh
YmxlPj4obV93ZWJHTExheWVyLmdldCgpKV07CisgICAgW3N0YXRpY19jYXN0PEVBR0xDb250ZXh0
ICo+KG1fY29udGV4dE9iaikgcmVuZGVyYnVmZmVyU3RvcmFnZTpHTF9SRU5ERVJCVUZGRVIgZnJv
bURyYXdhYmxlOnN0YXRpY19jYXN0PGlkPEVBR0xEcmF3YWJsZT4+KG1fd2ViR0xMYXllci5nZXQo
KSldOwogCiAgICAgW21fd2ViR0xMYXllciBzZXRCb3VuZHM6cHJldmlvdXNCb3VuZHNdOwogfQpA
QCAtNjA2LDcgKzYyMiw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6Om1ha2VDb250ZXh0Q3Vy
cmVudCgpCiAjZWxpZiBVU0UoT1BFTkdMKQogICAgIENHTENvbnRleHRPYmogY3VycmVudENvbnRl
eHQgPSBDR0xHZXRDdXJyZW50Q29udGV4dCgpOwogICAgIGlmIChjdXJyZW50Q29udGV4dCAhPSBt
X2NvbnRleHRPYmopCi0gICAgICAgIHJldHVybiBDR0xTZXRDdXJyZW50Q29udGV4dChtX2NvbnRl
eHRPYmopID09IGtDR0xOb0Vycm9yOworICAgICAgICByZXR1cm4gQ0dMU2V0Q3VycmVudENvbnRl
eHQoc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9iaj4obV9jb250ZXh0T2JqKSkgPT0ga0NHTE5vRXJy
b3I7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgaWYgKEVHTF9HZXRDdXJyZW50Q29udGV4dCgpICE9
IG1fY29udGV4dE9iaikKICAgICAgICAgcmV0dXJuIEVHTF9NYWtlQ3VycmVudChtX2Rpc3BsYXlP
YmosIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9jb250ZXh0T2JqKTsKQEAgLTYz
OCw3ICs2NTQsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja0dQVVN0YXR1cygpCiAK
ICAgICBHTGludCByZXN0YXJ0U3RhdHVzID0gMDsKICNpZiBVU0UoT1BFTkdMKQotICAgIENHTEdl
dFBhcmFtZXRlcihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIGtDR0xDUEdQVVJlc3RhcnRT
dGF0dXMsICZyZXN0YXJ0U3RhdHVzKTsKKyAgICBDR0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBz
dGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOwor
ICAgIENHTEdldFBhcmFtZXRlcihjZ2xDb250ZXh0LCBrQ0dMQ1BHUFVSZXN0YXJ0U3RhdHVzLCAm
cmVzdGFydFN0YXR1cyk7CiAgICAgaWYgKHJlc3RhcnRTdGF0dXMgPT0ga0NHTENQR1BVUmVzdGFy
dFN0YXR1c0JsYWNrbGlzdGVkKSB7CiAgICAgICAgIExPRyhXZWJHTCwgIlRoZSBHUFUgaGFzIGJs
YWNrbGlzdGVkIHVzICglcCkuIFRlcm1pbmF0aW5nLiIsIHRoaXMpOwogICAgICAgICBleGl0KEVY
X09TRVJSKTsKQEAgLTY2Niw3ICs2ODMsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVj
a0dQVVN0YXR1cygpCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwcmVzZW50UmVuZGVyYnVmZmVy
KCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNv
bHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICAgICA6OmdsRmx1c2goKTsKQEAgLTY3
OSw5ICs2OTYsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlc2VudFJlbmRlcmJ1ZmZl
cigpCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjp0ZXhJbWFnZUlPU3VyZmFjZTJEKEdDM0RlbnVt
IHRhcmdldCwgR0MzRGVudW0gaW50ZXJuYWxGb3JtYXQsIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNp
emVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0eXBlLCBJT1N1cmZhY2VSZWYg
c3VyZmFjZSwgR0MzRHVpbnQgcGxhbmUpCiB7CiAjaWYgVVNFKE9QRU5HTCkKLSAgICByZXR1cm4g
a0NHTE5vRXJyb3IgPT0gQ0dMVGV4SW1hZ2VJT1N1cmZhY2UyRChwbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEKCksIHRhcmdldCwgaW50ZXJuYWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwg
dHlwZSwgc3VyZmFjZSwgcGxhbmUpOworICAgIENHTENvbnRleHRPYmogY2dsQ29udGV4dCA9IHN0
YXRpY19jYXN0PENHTENvbnRleHRPYmo+KHBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7Cisg
ICAgcmV0dXJuIGtDR0xOb0Vycm9yID09IENHTFRleEltYWdlSU9TdXJmYWNlMkQoY2dsQ29udGV4
dCwgdGFyZ2V0LCBpbnRlcm5hbEZvcm1hdCwgd2lkdGgsIGhlaWdodCwgZm9ybWF0LCB0eXBlLCBz
dXJmYWNlLCBwbGFuZSk7CiAjZWxpZiBVU0UoT1BFTkdMX0VTKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWV9TSU1VTEFUT1IpCi0gICAgcmV0dXJuIFtwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkg
dGV4SW1hZ2VJT1N1cmZhY2U6c3VyZmFjZSB0YXJnZXQ6dGFyZ2V0IGludGVybmFsRm9ybWF0Omlu
dGVybmFsRm9ybWF0IHdpZHRoOndpZHRoIGhlaWdodDpoZWlnaHQgZm9ybWF0OmZvcm1hdCB0eXBl
OnR5cGUgcGxhbmU6cGxhbmVdOworICAgIHJldHVybiBbc3RhdGljX2Nhc3Q8RUFHTENvbnRleHQg
Kj4ocGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpKSB0ZXhJbWFnZUlPU3VyZmFjZTpzdXJmYWNl
IHRhcmdldDp0YXJnZXQgaW50ZXJuYWxGb3JtYXQ6aW50ZXJuYWxGb3JtYXQgd2lkdGg6d2lkdGgg
aGVpZ2h0OmhlaWdodCBmb3JtYXQ6Zm9ybWF0IHR5cGU6dHlwZSBwbGFuZTpwbGFuZV07CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTSh0YXJnZXQpOwogICAgIFVOVVNFRF9QQVJBTShpbnRlcm5hbEZv
cm1hdCk7CkBAIC02OTksNyArNzE3LDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6dGV4SW1h
Z2VJT1N1cmZhY2UyRChHQzNEZW51bSB0YXJnZXQsIEdDM0RlbnVtIGludGVybmFsRm8KIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OmFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlKEludFNpemUg
c2l6ZSkKIHsKICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHQzRDo6YWxsb2NhdGVJT1N1
cmZhY2VCYWNraW5nU3RvcmUgYXQgJWQgeCAlZC4gKCVwKSIsIHNpemUud2lkdGgoKSwgc2l6ZS5o
ZWlnaHQoKSwgdGhpcyk7Ci0gICAgW21fd2ViR0xMYXllciBhbGxvY2F0ZUlPU3VyZmFjZUJhY2tp
bmdTdG9yZVdpdGhTaXplOnNpemUgdXNpbmdBbHBoYTptX2F0dHJzLmFscGhhXTsKKyAgICBbbV93
ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0b3JlV2l0aFNpemU6c2l6ZSB1c2lu
Z0FscGhhOmNvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGFdOwogfQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjp1cGRhdGVGcmFtZWJ1ZmZlclRleHR1cmVCYWNraW5nU3RvcmVGcm9tTGF5ZXIoKQpA
QCAtNzE2LDcgKzczNCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnVwZGF0ZUNHTENvbnRl
eHQoKQogICAgIExPRyhXZWJHTCwgIkRldGVjdGVkIGEgbXV4IHN3aXRjaCBvciBkaXNwbGF5IHJl
Y29uZmlndXJhdGlvbi4gQ2FsbCBDR0xVcGRhdGVDb250ZXh0LiAoJXApIiwgdGhpcyk7CiAKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBDR0xVcGRhdGVDb250ZXh0KG1fY29udGV4dE9i
aik7CisgICAgQ0dMVXBkYXRlQ29udGV4dChzdGF0aWNfY2FzdDxDR0xDb250ZXh0T2JqPihtX2Nv
bnRleHRPYmopKTsKICAgICBtX2hhc1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUgPSB0cnVl
OwogfQogCkBAIC03NTksNyArNzc3LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWxsb2Nh
dGVJT1N1cmZhY2VCYWNraW5nU3RvcmUoSW50U2l6ZSBzaXplKQogewogI2lmIEhBVkUoSU9TVVJG
QUNFKQogICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dDNEOjphbGxvY2F0ZUlPU3VyZmFj
ZUJhY2tpbmdTdG9yZSBhdCAlZCB4ICVkLiAoJXApIiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpLCB0aGlzKTsKLSAgICBbbV93ZWJHTExheWVyIGFsbG9jYXRlSU9TdXJmYWNlQmFja2luZ1N0
b3JlV2l0aFNpemU6c2l6ZSB1c2luZ0FscGhhOm1fYXR0cnMuYWxwaGFdOworICAgIFttX3dlYkdM
TGF5ZXIgYWxsb2NhdGVJT1N1cmZhY2VCYWNraW5nU3RvcmVXaXRoU2l6ZTpzaXplIHVzaW5nQWxw
aGE6Y29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYV07CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShz
aXplKTsKICNlbmRpZgpAQCAtNzc5LDE0ICs3OTcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNE
Ojppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKICAgICByZXR1cm4gbV9pc0ZvcldlYkdMMjsKIH0K
IAotdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2V0Q29udGV4dExvc3RDYWxsYmFjayhzdGQ6OnVu
aXF1ZV9wdHI8Q29udGV4dExvc3RDYWxsYmFjaz4pCi17Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnNldEVycm9yTWVzc2FnZUNhbGxiYWNrKHN0ZDo6dW5pcXVlX3B0cjxFcnJvck1lc3Nh
Z2VDYWxsYmFjaz4pCi17Ci19Ci0KIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNpbXVsYXRlQ29u
dGV4dENoYW5nZWQoKQogewogICAgIEdyYXBoaWNzQ29udGV4dDNETWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLnVwZGF0ZUFsbENvbnRleHRzKCk7CkBAIC04MzQsOCArODQ0LDEwIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OnNjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQpCiAgICAgfQogI2Vsc2UKICNpZiBVU0UoT1BFTkdMKQotICAgIGlmICghbV9oYXNTd2l0Y2hl
ZFRvSGlnaFBlcmZvcm1hbmNlR1BVKQotICAgICAgICBzZXRHUFVCeVJlZ2lzdHJ5SUQobV9jb250
ZXh0T2JqLCBDR0xHZXRQaXhlbEZvcm1hdChtX2NvbnRleHRPYmopLCBncHVJREZvckRpc3BsYXko
ZGlzcGxheUlEKSk7CisgICAgaWYgKCFtX2hhc1N3aXRjaGVkVG9IaWdoUGVyZm9ybWFuY2VHUFUp
IHsKKyAgICAgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29u
dGV4dE9iaj4obV9jb250ZXh0T2JqKTsKKyAgICAgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENv
bnRleHQsIENHTEdldFBpeGVsRm9ybWF0KGNnbENvbnRleHQpLCBncHVJREZvckRpc3BsYXkoZGlz
cGxheUlEKSk7CisgICAgfQogI2VuZGlmCiAjZW5kaWYgLy8gVVNFKEFOR0xFKQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYkdMTGF5ZXIubW0K
aW5kZXggZDhlODUwMDkwZmM3YzliZTVlY2JjY2U5N2EwZDE3OWNlMzU3MmZjNC4uNTU0OTRlZDBl
ZTJkZTFhMmIwMWQwZDAzNjcwMDhjZmQ4Mzg1ZTA1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViR0xMYXllci5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJHTExheWVyLm1tCkBAIC03MCwxMyArNzAs
MTQgQEAgY29uc3QgR0xlbnVtIGlvU3VyZmFjZVRleHR1cmVUeXBlID0gR0xfVEVYVFVSRV8yRDsK
IHsKICAgICBfY29udGV4dCA9IGNvbnRleHQ7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAg
ICBfZGV2aWNlUGl4ZWxSYXRpbyA9IGNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuZGV2
aWNlUGl4ZWxSYXRpbzsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0LT5jb250ZXh0QXR0
cmlidXRlcygpOworICAgIF9kZXZpY2VQaXhlbFJhdGlvID0gYXR0cmlidXRlcy5kZXZpY2VQaXhl
bFJhdGlvOwogI2lmIFVTRShPUEVOR0wpIHx8IFVTRShBTkdMRSkKLSAgICBzZWxmLmNvbnRlbnRz
T3BhcXVlID0gIWNvbnRleHQtPmdldENvbnRleHRBdHRyaWJ1dGVzKCkuYWxwaGE7CisgICAgc2Vs
Zi5jb250ZW50c09wYXF1ZSA9ICFhdHRyaWJ1dGVzLmFscGhhOwogICAgIHNlbGYudHJhbnNmb3Jt
ID0gQ0FUcmFuc2Zvcm0zRElkZW50aXR5OwogICAgIHNlbGYuY29udGVudHNTY2FsZSA9IF9kZXZp
Y2VQaXhlbFJhdGlvOwogI2Vsc2UKLSAgICBzZWxmLm9wYXF1ZSA9ICFjb250ZXh0LT5nZXRDb250
ZXh0QXR0cmlidXRlcygpLmFscGhhOworICAgIHNlbGYub3BhcXVlID0gIWF0dHJpYnV0ZXMuYWxw
aGE7CiAjZW5kaWYKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTExMiw3ICsxMTMsOCBAQCBzdGF0
aWMgdm9pZCBmcmVlRGF0YSh2b2lkICosIGNvbnN0IHZvaWQgKmRhdGEsIHNpemVfdCAvKiBzaXpl
ICovKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogI2lmIFVTRShPUEVOR0wpCi0gICAgQ0dM
U2V0Q3VycmVudENvbnRleHQoX2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7
CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29udGV4dE9i
aj4oX2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ0dMU2V0Q3Vy
cmVudENvbnRleHQoY2dsQ29udGV4dCk7CiAKICAgICBSZXRhaW5QdHI8Q0dDb2xvclNwYWNlUmVm
PiBpbWFnZUNvbG9yU3BhY2UgPSBjb2xvclNwYWNlOwogICAgIGlmICghaW1hZ2VDb2xvclNwYWNl
KQpAQCAtMjUxLDcgKzI1Myw4IEBAIHN0YXRpYyB2b2lkIGZyZWVEYXRhKHZvaWQgKiwgY29uc3Qg
dm9pZCAqZGF0YSwgc2l6ZV90IC8qIHNpemUgKi8pCiAgICAgR0MzRGVudW0gaW50ZXJuYWxGb3Jt
YXQgPSBfdXNpbmdBbHBoYSA/IEdMX1JHQkEgOiBHTF9SR0I7CiAKICAgICAvLyBMaW5rIHRoZSBJ
T1N1cmZhY2UgdG8gdGhlIHRleHR1cmUuCi0gICAgQ0dMRXJyb3IgZXJyb3IgPSBDR0xUZXhJbWFn
ZUlPU3VyZmFjZTJEKF9jb250ZXh0LT5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCksIEdMX1RF
WFRVUkVfUkVDVEFOR0xFX0FSQiwgaW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXplLndpZHRoKCks
IF9idWZmZXJTaXplLmhlaWdodCgpLCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRfOF84XzhfOF9S
RVYsIGlvU3VyZmFjZSwgMCk7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGlj
X2Nhc3Q8Q0dMQ29udGV4dE9iaj4oX2NvbnRleHQtPnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0Qo
KSk7CisgICAgQ0dMRXJyb3IgZXJyb3IgPSBDR0xUZXhJbWFnZUlPU3VyZmFjZTJEKGNnbENvbnRl
eHQsIEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FSQiwgaW50ZXJuYWxGb3JtYXQsIF9idWZmZXJTaXpl
LndpZHRoKCksIF9idWZmZXJTaXplLmhlaWdodCgpLCBHTF9CR1JBLCBHTF9VTlNJR05FRF9JTlRf
OF84XzhfOF9SRVYsIGlvU3VyZmFjZSwgMCk7CiAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgZXJy
b3IgPT0ga0NHTE5vRXJyb3IpOwogI2VsaWYgVVNFKEFOR0xFKQogICAgIEdDM0RlbnVtIHRleHR1
cmUgPSBfY29udGV4dC0+cGxhdGZvcm1UZXh0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jdi9UZXh0dXJlQ2FjaGVDVi5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCmluZGV4IDAxOWQyMzk1
MTdkODJiYzJlYmYzZGI2NTY2YzNmYWQzYTU4MGZkYTEuLmY1MmZlM2RhOGU5YmVmNjdkYmM0OTYw
NWZjYTc5Y2U0Njk0MzRjMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2N2L1RleHR1cmVDYWNoZUNWLm1tCkBAIC0zOCw5ICszOCwxMSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8VGV4dHVyZUNhY2hlQ1Y+IFRleHR1cmVDYWNoZUNWOjpjcmVhdGUoR3JhcGhpY3ND
b250ZXh0M0QmIGNvbnRleAogewogICAgIFRleHR1cmVDYWNoZVR5cGUgY2FjaGUgPSBudWxscHRy
OwogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5HTEVTVGV4
dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGNvbnRleHQucGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBudWxscHRyLCAmY2FjaGUpOworICAgIENWRUFHTENv
bnRleHQgZWFnbENvbnRleHQgPSBzdGF0aWNfY2FzdDxDVkVBR0xDb250ZXh0Pihjb250ZXh0LnBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSk7CisgICAgQ1ZSZXR1cm4gZXJyb3IgPSBDVk9wZW5H
TEVTVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG51bGxwdHIsIGVhZ2xD
b250ZXh0LCBudWxscHRyLCAmY2FjaGUpOwogI2VsaWYgVVNFKE9QRU5HTCkKLSAgICBDVlJldHVy
biBlcnJvciA9IENWT3BlbkdMVGV4dHVyZUNhY2hlQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG51bGxwdHIsIGNvbnRleHQucGxhdGZvcm1HcmFwaGljc0NvbnRleHQzRCgpLCBDR0xHZXRQaXhl
bEZvcm1hdChjb250ZXh0LnBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QoKSksIG51bGxwdHIsICZj
YWNoZSk7CisgICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0gc3RhdGljX2Nhc3Q8Q0dMQ29u
dGV4dE9iaj4oY29udGV4dC5wbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkpOworICAgIENWUmV0
dXJuIGVycm9yID0gQ1ZPcGVuR0xUZXh0dXJlQ2FjaGVDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgbnVsbHB0ciwgY2dsQ29udGV4dCwgQ0dMR2V0UGl4ZWxGb3JtYXQoY2dsQ29udGV4dCksIG51
bGxwdHIsICZjYWNoZSk7CiAjZWxpZiBVU0UoQU5HTEUpCiAgICAgLy8gRklYTUU6IGZpZ3VyZSBv
dXQgaG93IHRvIGRvIHRoaXMgaW50ZWdyYXRpbmcgdmlhIEFOR0xFLgogICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzREFOR0xFTGF5ZXIu
Y3BwCmluZGV4IDQ3Y2Y1ZDEzNTNlYjJkM2JlZmZkOGViODNjMjYxZTc1OGVlNDJlOTcuLmFhM2Rl
YTBhOTI4NTJlZjlmMzhjZGU2NDZiNjA4MDFhZDJmZjc4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5HTEVM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmNwcApAQCAtMTc0LDE5ICsxNzQsMTkgQEAgYm9v
bCBHQzNEQU5HTEVMYXllcjo6QU5HTEVDb250ZXh0OjptYWtlQ29udGV4dEN1cnJlbnQoKQogICAg
IHJldHVybiB0cnVlOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxh
eWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29u
dGV4dDNEIEdDM0RBTkdMRUxheWVyOjpBTkdMRUNvbnRleHQ6OnBsYXRmb3JtQ29udGV4dCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fY29udGV4dDsKIH0KIAotR0MzREFOR0xFTGF5ZXI6OkdDM0RB
TkdMRUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6
UmVuZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitHQzNEQU5HTEVMYXllcjo6R0MzREFOR0xFTGF5ZXIo
R3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlv
biBkZXN0aW5hdGlvbikKICAgICA6IEdDM0RMYXllcihjb250ZXh0KQogewotICAgIHN3aXRjaCAo
cmVuZGVyU3R5bGUpIHsKLSAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3Jl
ZW46CisgICAgc3dpdGNoIChkZXN0aW5hdGlvbikgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0
M0Q6OkRlc3RpbmF0aW9uOjpPZmZzY3JlZW46CiAgICAgICAgIG1fYW5nbGVDb250ZXh0ID0gQU5H
TEVDb250ZXh0OjpjcmVhdGVDb250ZXh0KCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3Jh
cGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIwMyw3
ICsyMDMsNyBAQCBib29sIEdDM0RBTkdMRUxheWVyOjptYWtlQ29udGV4dEN1cnJlbnQoKQogCiB9
CiAKLVBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0MzREFOR0xFTGF5ZXI6OnBsYXRmb3JtQ29u
dGV4dCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RBTkdMRUxheWVyOjpwbGF0Zm9y
bUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVChtX2FuZ2xlQ29udGV4dCk7CiAgICAgcmV0
dXJuIG1fYW5nbGVDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNEQU5H
TEVMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmgKaW5kZXggYmMyZjZlZmM3OGFjMjVhNDBjNGZhMmI5
Y2ZkOWI4YjJkZWZjMTRlYy4uZWM0N2VhZGYyZTkxNjUwYTJlZWJkZjY2N2I4NWRiYzMwMDczNGEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90
ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXhtYXAvTmljb3NpYUdDM0RBTkdMRUxheWVyLmgKQEAgLTYy
LDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAgICAgIGJvb2wgbWFrZUNvbnRleHRDdXJyZW50KCk7
CiAjaWYgRU5BQkxFKEdSQVBISUNTX0NPTlRFWFRfM0QpCi0gICAgICAgIFBsYXRmb3JtR3JhcGhp
Y3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7CisgICAgICAgIFBsYXRmb3JtR3JhcGhpY3ND
b250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Q7CiAjZW5kaWYKIAogICAgIHByaXZhdGU6
CkBAIC03MywxMSArNzMsMTEgQEAgcHVibGljOgogICAgICAgICBFR0xTdXJmYWNlIG1fc3VyZmFj
ZSB7IG51bGxwdHIgfTsKICAgICB9OwogCi0gICAgR0MzREFOR0xFTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0QmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUp
OworICAgIEdDM0RBTkdMRUxheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29y
ZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uKTsKICAgICB2aXJ0dWFsIH5HQzNEQU5H
TEVMYXllcigpOwogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKSBvdmVycmlkZTsKLSAg
ICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIG92ZXJyaWRlOwor
ICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCkgY29uc3Qgb3Zl
cnJpZGU7CiAKIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFOR0xFQ29udGV4dD4gbV9h
bmdsZUNvbnRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCmluZGV4
IGJkYTY1ODhhZjkyMDRhMGFhMGVmZjk4ZWYwYzEwYzIwNWU0OWIxMjEuLjE2YTE0NTNjMmI5Y2Mx
ZDE2MTJlZDNhMWU0YzYzYjZhMWRlYzUwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFH
QzNETGF5ZXIuY3BwCkBAIC01MywxNSArNTMsMTUgQEAgR0MzRExheWVyOjpHQzNETGF5ZXIoR3Jh
cGhpY3NDb250ZXh0M0QmIGNvbnRleHQpCiB7CiB9CiAKLUdDM0RMYXllcjo6R0MzRExheWVyKEdy
YXBoaWNzQ29udGV4dDNEJiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5bGUg
cmVuZGVyU3R5bGUpCitHQzNETGF5ZXI6OkdDM0RMYXllcihHcmFwaGljc0NvbnRleHQzRCYgY29u
dGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uIGRlc3RpbmF0aW9uKQogICAgIDog
bV9jb250ZXh0KGNvbnRleHQpCiAgICAgLCBtX2NvbnRlbnRMYXllcihOaWNvc2lhOjpDb250ZW50
TGF5ZXI6OmNyZWF0ZShOaWNvc2lhOjpDb250ZW50TGF5ZXJUZXh0dXJlTWFwcGVySW1wbDo6Y3Jl
YXRlRmFjdG9yeSgqdGhpcykpKQogewotICAgIHN3aXRjaCAocmVuZGVyU3R5bGUpIHsKLSAgICBj
YXNlIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJPZmZzY3JlZW46CisgICAgc3dpdGNoIChkZXN0
aW5hdGlvbikgeworICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uOjpPZmZz
Y3JlZW46CiAgICAgICAgIG1fZ2xDb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVPZmZzY3JlZW5D
b250ZXh0KCZQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsK
ICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0
bHlUb0hvc3RXaW5kb3c6CisgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb246
OkRpcmVjdGx5VG9Ib3N0V2luZG93OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQpAQCAtNzgsNyArNzgsNyBAQCBib29sIEdDM0RMYXllcjo6bWFr
ZUNvbnRleHRDdXJyZW50KCkKICAgICByZXR1cm4gbV9nbENvbnRleHQtPm1ha2VDb250ZXh0Q3Vy
cmVudCgpOwogfQogCi1QbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdDM0RMYXllcjo6cGxhdGZv
cm1Db250ZXh0KCkKK1BsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgR0MzRExheWVyOjpwbGF0Zm9y
bUNvbnRleHQoKSBjb25zdAogewogICAgIEFTU0VSVChtX2dsQ29udGV4dCk7CiAgICAgcmV0dXJu
IG1fZ2xDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBH
QzNETGF5ZXI6OnN3YXBCdWZmZXJzSWZOZWVkZWQoKQogCiAgICAgbV9jb250ZXh0LnByZXBhcmVU
ZXh0dXJlKCk7CiAgICAgSW50U2l6ZSB0ZXh0dXJlU2l6ZShtX2NvbnRleHQubV9jdXJyZW50V2lk
dGgsIG1fY29udGV4dC5tX2N1cnJlbnRIZWlnaHQpOwotICAgIFRleHR1cmVNYXBwZXJHTDo6Rmxh
Z3MgZmxhZ3MgPSBtX2NvbnRleHQubV9hdHRycy5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hv
dWxkQmxlbmQgOiAwOworICAgIFRleHR1cmVNYXBwZXJHTDo6RmxhZ3MgZmxhZ3MgPSBtX2NvbnRl
eHQuY29udGV4dEF0dHJpYnV0ZXMoKS5hbHBoYSA/IFRleHR1cmVNYXBwZXJHTDo6U2hvdWxkQmxl
bmQgOiAwOwogI2lmIFVTRShBTkdMRSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+
IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZSh0ZXh0dXJlU2l6ZSwgVW5hY2NlbGVy
YXRlZCk7CiAgICAgaWYgKCFpbWFnZUJ1ZmZlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNETGF5ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL25pY29zaWEvdGV4bWFwL05pY29zaWFHQzNE
TGF5ZXIuaAppbmRleCAzMjZkNmU1NTA2ZTZlOTI3ZTQwZDZmNTYyNDg1NzFiYWM5ZGUzZDg5Li5l
ODU3MjE3N2RhZmNhYWNhYjNlYTIzMDlkNDg0YmMzOTA0Mjc4YWUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9uaWNvc2lhL3RleG1hcC9OaWNvc2lhR0MzRExh
eWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvbmljb3NpYS90ZXht
YXAvTmljb3NpYUdDM0RMYXllci5oCkBAIC00NCwxMyArNDQsMTMgQEAgY2xhc3MgR0MzRExheWVy
IDogcHVibGljIENvbnRlbnRMYXllclRleHR1cmVNYXBwZXJJbXBsOjpDbGllbnQgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEdDM0RMYXllcihX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCYpOwotICAgIEdDM0RMYXllcihXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRCYsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSk7
CisgICAgR0MzRExheWVyKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEJiwgV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0aW9uKTsKIAogICAgIHZpcnR1YWwgfkdDM0RMYXllcigp
OwogCiAgICAgQ29udGVudExheWVyJiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRMYXllcjsgfQogICAgIHZpcnR1YWwgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAg
ICB2aXJ0dWFsIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1Db250ZXh0KCk7Cisg
ICAgdmlydHVhbCBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBsYXRmb3JtQ29udGV4dCgpIGNv
bnN0OwogCiAgICAgdm9pZCBzd2FwQnVmZmVyc0lmTmVlZGVkKCkgb3ZlcnJpZGU7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
M0RPcGVuR0xFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
RXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCmluZGV4IGIyYjRiMDNkNWViYzVjMmMzOWU3YmU0OTQw
ZDk2NWM5MDI5NTViN2MuLjE0OTQxZjY0MWUxNTFmMzhiYzZlYTU2OWNiOGRhZjIxOGMxNmQ5NDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRl
bnNpb25zM0RPcGVuR0xFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTEVTLmNwcApAQCAtMTkwLDEyICsxOTAsOCBAQCBp
bnQgRXh0ZW5zaW9uczNET3BlbkdMRVM6OmdldEdyYXBoaWNzUmVzZXRTdGF0dXNBUkIoKQogICAg
IGlmIChtX2dsR2V0R3JhcGhpY3NSZXNldFN0YXR1c0VYVCkgewogICAgICAgICBtX2NvbnRleHQt
Pm1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgICAgICBpbnQgcmVhc29uRm9yUmVzZXQgPSBtX2ds
R2V0R3JhcGhpY3NSZXNldFN0YXR1c0VYVCgpOwotICAgICAgICBpZiAocmVhc29uRm9yUmVzZXQg
IT0gR0xfTk9fRVJST1IpIHsKLSAgICAgICAgICAgIEFTU0VSVChtX2NvbnRleHRMb3N0Q2FsbGJh
Y2spOwotICAgICAgICAgICAgaWYgKG1fY29udGV4dExvc3RDYWxsYmFjaykKLSAgICAgICAgICAg
ICAgICBtX2NvbnRleHRMb3N0Q2FsbGJhY2stPm9uQ29udGV4dExvc3QoKTsKKyAgICAgICAgaWYg
KHJlYXNvbkZvclJlc2V0ICE9IEdMX05PX0VSUk9SKQogICAgICAgICAgICAgbV9jb250ZXh0UmVz
ZXRTdGF0dXMgPSByZWFzb25Gb3JSZXNldDsKLSAgICAgICAgfQogICAgICAgICByZXR1cm4gcmVh
c29uRm9yUmVzZXQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCmluZGV4IGY1
NjIyMmYyMDg5M2YzMWQ0ZjQ4MTc0YzA4MzI1MDZjNDA4ZjM2YjQuLjQ3NzJmYzZkZTM3Yjk4MTY5
ZmNiM2Q1ZGJmY2VkZGExZjYxNjQ0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVuR0xFUy5oCkBA
IC0xMjIsOCArMTIyLDYgQEAgcHJvdGVjdGVkOgogICAgIFBGTkdMVkVSVEVYQVRUUklCRElWSVNP
UkFOR0xFUFJPQyBtX2dsVmVydGV4QXR0cmliRGl2aXNvckFOR0xFOwogICAgIFBGTkdMRFJBV0FS
UkFZU0lOU1RBTkNFREFOR0xFUFJPQyBtX2dsRHJhd0FycmF5c0luc3RhbmNlZEFOR0xFOwogICAg
IFBGTkdMRFJBV0VMRU1FTlRTSU5TVEFOQ0VEQU5HTEVQUk9DIG1fZ2xEcmF3RWxlbWVudHNJbnN0
YW5jZWRBTkdMRTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0NvbnRleHQzRDo6Q29u
dGV4dExvc3RDYWxsYmFjaz4gbV9jb250ZXh0TG9zdENhbGxiYWNrOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTC5jcHAKaW5kZXgg
Yjk2MzYzYjU1MTkzNTZjOGNkZjQ2NTQzNjMyNmVkMDZjZWNlZDg4ZC4uY2Q0N2UyNDczM2ExNmUw
ZmUyMDBhZTM0MzlhYzdmY2I4MDM2Y2FhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0wuY3BwCkBAIC04Miw4ICs4MiwxMCBAQCBzdGF0aWMgdm9pZCB3aXBlQWxwaGFDaGFubmVs
RnJvbVBpeGVscyhpbnQgd2lkdGgsIGludCBoZWlnaHQsIHVuc2lnbmVkIGNoYXIqIHBpeAogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUGl4ZWxzQW5kQ29udmVydFRvQkdSQUlmTmVjZXNz
YXJ5KGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCB1bnNpZ25lZCBjaGFyKiBw
aXhlbHMpCiB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKICAgICAv
LyBOVklESUEgZHJpdmVycyBoYXZlIGEgYnVnIHdoZXJlIGNhbGxpbmcgcmVhZFBpeGVscyBpbiBC
R1JBIGNhbiByZXR1cm4gdGhlIHdyb25nIHZhbHVlcyBmb3IgdGhlIGFscGhhIGNoYW5uZWwgd2hl
biB0aGUgYWxwaGEgaXMgb2ZmIGZvciB0aGUgY29udGV4dC4KLSAgICBpZiAoIW1fYXR0cnMuYWxw
aGEgJiYgZ2V0RXh0ZW5zaW9ucygpLmlzTlZJRElBKCkpIHsKKyAgICBpZiAoIWF0dHJzLmFscGhh
ICYmIGdldEV4dGVuc2lvbnMoKS5pc05WSURJQSgpKSB7CiAgICAgICAgIDo6Z2xSZWFkUGl4ZWxz
KHgsIHksIHdpZHRoLCBoZWlnaHQsIEdMX1JHQkEsIEdMX1VOU0lHTkVEX0JZVEUsIHBpeGVscyk7
CiAjaWYgVVNFKEFDQ0VMRVJBVEUpCiAgICAgICAgIHZJbWFnZV9CdWZmZXIgc3JjOwpAQCAtMTEw
LDcgKzExMiw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHNBbmRDb252ZXJ0
VG9CR1JBSWZOZWNlc3NhcnkoaW50IHgsIGludCB5LCBpbnQKICAgICAgICAgOjpnbFJlYWRQaXhl
bHMoeCwgeSwgd2lkdGgsIGhlaWdodCwgR0xfQkdSQSwgR0xfVU5TSUdORURfSU5UXzhfOF84Xzhf
UkVWLCBwaXhlbHMpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5hbHBo
YSkKKyAgICBpZiAoIWF0dHJzLmFscGhhKQogICAgICAgICB3aXBlQWxwaGFDaGFubmVsRnJvbVBp
eGVscyh3aWR0aCwgaGVpZ2h0LCBwaXhlbHMpOwogI2VuZGlmCiB9CkBAIC0xMjIsMTcgKzEyNCwx
OCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2YWxpZGF0ZUF0dHJpYnV0ZXMoKQogCiBib29s
IEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlRkJPcyhjb25zdCBJbnRTaXplJiBzaXplKQogewor
ICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwogICAgIGNvbnN0IGludCB3aWR0
aCA9IHNpemUud2lkdGgoKTsKICAgICBjb25zdCBpbnQgaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsK
ICAgICBHTHVpbnQgY29sb3JGb3JtYXQsIGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gMDsK
LSAgICBpZiAobV9hdHRycy5hbHBoYSkgeworICAgIGlmIChhdHRycy5hbHBoYSkgewogICAgICAg
ICBtX2ludGVybmFsQ29sb3JGb3JtYXQgPSBHTF9SR0JBODsKICAgICAgICAgY29sb3JGb3JtYXQg
PSBHTF9SR0JBOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1faW50ZXJuYWxDb2xvckZvcm1hdCA9
IEdMX1JHQjg7CiAgICAgICAgIGNvbG9yRm9ybWF0ID0gR0xfUkdCOwogICAgIH0KLSAgICBpZiAo
bV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICBpZiAoYXR0cnMuc3RlbmNp
bCB8fCBhdHRycy5kZXB0aCkgewogICAgICAgICAvLyBXZSBkb24ndCBhbGxvdyB0aGUgbG9naWMg
d2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVwdGggaXMgbm90LgogICAgICAgICAvLyBT
ZWUgR3JhcGhpY3NDb250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcy4KIApAQCAtMTQ5LDcgKzE1
Miw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUm
IHNpemUpCiAgICAgfQogCiAgICAgLy8gUmVzaXplIG11bHRpc2FtcGxlIEZCTy4KLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAg
IEdMaW50IG1heFNhbXBsZUNvdW50OwogICAgICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1NB
TVBMRVNfRVhULCAmbWF4U2FtcGxlQ291bnQpOwogICAgICAgICAvLyBVc2luZyBtb3JlIHRoYW4g
NCBzYW1wbGVzIGlzIHNsb3cgb24gc29tZSBoYXJkd2FyZSBhbmQgaXMgdW5saWtlbHkgdG8KQEAg
LTE2MywxMiArMTY2LDEyIEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNv
bnN0IEludFNpemUmIHNpemUpCiAgICAgICAgIDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlz
YW1wbGVFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgc2FtcGxlQ291bnQsIG1faW50ZXJuYWxDb2xv
ckZvcm1hdCwgd2lkdGgsIGhlaWdodCk7CiAjZW5kaWYKICAgICAgICAgOjpnbEZyYW1lYnVmZmVy
UmVuZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfQ09MT1JfQVRUQUNITUVOVDBf
RVhULCBHTF9SRU5ERVJCVUZGRVJfRVhULCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAg
ICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYg
KGF0dHJzLnN0ZW5jaWwgfHwgYXR0cnMuZGVwdGgpIHsKICAgICAgICAgICAgIDo6Z2xCaW5kUmVu
ZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5j
aWxCdWZmZXIpOwogICAgICAgICAgICAgOjpnbFJlbmRlcmJ1ZmZlclN0b3JhZ2VNdWx0aXNhbXBs
ZUVYVChHTF9SRU5ERVJCVUZGRVJfRVhULCBzYW1wbGVDb3VudCwgaW50ZXJuYWxEZXB0aFN0ZW5j
aWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNp
bCkKKyAgICAgICAgICAgIGlmIChhdHRycy5zdGVuY2lsKQogICAgICAgICAgICAgICAgIDo6Z2xG
cmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlckVYVChHTF9GUkFNRUJVRkZFUl9FWFQsIEdMX1NURU5DSUxf
QVRUQUNITUVOVF9FWFQsIEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0
ZW5jaWxCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgpCisgICAgICAgICAg
ICBpZiAoYXR0cnMuZGVwdGgpCiAgICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVy
YnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQsIEdM
X1JFTkRFUkJVRkZFUl9FWFQsIG1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAg
ICAgICB9CiAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyRVhUKEdMX1JFTkRFUkJVRkZFUl9F
WFQsIDApOwpAQCAtMjExLDcgKzIxNCw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hh
cGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgYXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVm
ZmVySWZOZWVkZWQoaW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQsIHdpZHRoLCBoZWlnaHQpOwog
CiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IHRydWU7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFs
aWFzKSB7CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICA6OmdsQmluZEZyYW1l
YnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgbV9tdWx0aXNhbXBsZUZCTyk7CiAgICAgICAg
IGlmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgICAgICBt
dXN0UmVzdG9yZUZCTyA9IGZhbHNlOwpAQCAtMjI1LDEyICsyMjgsMTQgQEAgYm9vbCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVzaGFwZUZCT3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6YXR0YWNoRGVwdGhBbmRTdGVuY2lsQnVmZmVySWZOZWVkZWQoR0x1aW50
IGludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCiB7Ci0g
ICAgaWYgKCFtX2F0dHJzLmFudGlhbGlhcyAmJiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMu
ZGVwdGgpKSB7CisgICAgYXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBp
ZiAoIWF0dHJzLmFudGlhbGlhcyAmJiAoYXR0cnMuc3RlbmNpbCB8fCBhdHRycy5kZXB0aCkpIHsK
ICAgICAgICAgOjpnbEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgbV9k
ZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICA6OmdsUmVuZGVyYnVmZmVyU3RvcmFnZUVYVChH
TF9SRU5ERVJCVUZGRVJfRVhULCBpbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCwgd2lkdGgsIGhl
aWdodCk7Ci0gICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisgICAgICAgIGlmIChhdHRycy5z
dGVuY2lsKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyRVhUKEdMX0ZS
QU1FQlVGRkVSX0VYVCwgR0xfU1RFTkNJTF9BVFRBQ0hNRU5UX0VYVCwgR0xfUkVOREVSQlVGRkVS
X0VYVCwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkK
KyAgICAgICAgaWYgKGF0dHJzLmRlcHRoKQogICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVu
ZGVyYnVmZmVyRVhUKEdMX0ZSQU1FQlVGRkVSX0VYVCwgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQs
IEdMX1JFTkRFUkJVRkZFUl9FWFQsIG1fZGVwdGhTdGVuY2lsQnVmZmVyKTsKICAgICAgICAgOjpn
bEJpbmRSZW5kZXJidWZmZXJFWFQoR0xfUkVOREVSQlVGRkVSX0VYVCwgMCk7CiAgICAgfQpAQCAt
NDc1LDI4ICs0ODAsMzQgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y2xlYXJEZXB0aChHQzNE
Y2xhbXBmIGRlcHRoKQogRXh0ZW5zaW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5z
aW9ucygpCiB7CiAgICAgaWYgKCFtX2V4dGVuc2lvbnMpCisjaWYgUExBVEZPUk0oQ09DT0EpICYm
IFVTRShPUEVOR0xfRVMpCisgICAgICAgIG1fZXh0ZW5zaW9ucyA9IG1ha2VVbmlxdWU8RXh0ZW5z
aW9uczNET3BlbkdMPih0aGlzLCBmYWxzZSk7CisjZWxzZQogICAgICAgICBtX2V4dGVuc2lvbnMg
PSBtYWtlVW5pcXVlPEV4dGVuc2lvbnMzRE9wZW5HTD4odGhpcywgaXNHTEVTMkNvbXBsaWFudCgp
KTsKKyNlbmRpZgogICAgIHJldHVybiAqbV9leHRlbnNpb25zOwogfQogI2VuZGlmCiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRQaXhlbHMoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0Rz
aXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCwgR0MzRGVudW0gZm9ybWF0LCBHQzNEZW51bSB0
eXBlLCB2b2lkKiBkYXRhKQogeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygp
OworCiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hlbiB0aGUg
ZHJpdmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVuZGVyaW5n
IGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0
dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pIHsK
ICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdp
ZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0Nv
bnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgOjpnbEZsdXNoKCk7CiAgICAg
fQogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlwZSwg
ZGF0YSk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0g
bV9tdWx0aXNhbXBsZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91
bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGlmICghbV9hdHRycy5hbHBoYSAmJiAoZm9ybWF0ID09IEdy
YXBoaWNzQ29udGV4dDNEOjpSR0JBIHx8IGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6QkdS
QSkgJiYgKG1fc3RhdGUuYm91bmRGQk8gPT0gbV9mYm8gfHwgKG1fYXR0cnMuYW50aWFsaWFzICYm
IG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykpKQorICAgIGlmICghYXR0cnMu
YWxwaGEgJiYgKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSB8fCBmb3JtYXQgPT0g
R3JhcGhpY3NDb250ZXh0M0Q6OkJHUkEpICYmIChtX3N0YXRlLmJvdW5kRkJPID09IG1fZmJvIHx8
IChhdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJP
KSkpCiAgICAgICAgIHdpcGVBbHBoYUNoYW5uZWxGcm9tUGl4ZWxzKHdpZHRoLCBoZWlnaHQsIHN0
YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPihkYXRhKSk7CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IDQyYmM4ZTE3ZTA2MjE4
MWQ3MGUwNGY3YWMyYzkxYmNhMzgzMWQ5MjUuLjg1NzVlZmUwNjYzOWQ0ZTE3ZmQxODdiZjJiZmZl
OWQ2MjBlMmU5ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcApAQCAtMTQxLDE5ICsxNDEsMjMgQEAgc3RhdGljIHVpbnQ2NF90IG5hbWVIYXNoRm9y
U2hhZGVyKGNvbnN0IGNoYXIqIG5hbWUsIHNpemVfdCBsZW5ndGgpCiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3Rl
bmNpbEV4dGVuc2lvbikKIHsKKyAgICBhdXRvIGF0dHJzID0gY29udGV4dEF0dHJpYnV0ZXMoKTsK
KwogICAgIEV4dGVuc2lvbnMzRCYgZXh0ZW5zaW9ucyA9IGdldEV4dGVuc2lvbnMoKTsKLSAgICBp
ZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5jaWwpIHsKICAgICAgICAg
aWYgKGV4dGVuc2lvbnMuc3VwcG9ydHMocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKSkgewog
ICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVFbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4
dGVuc2lvbik7CiAgICAgICAgICAgICAvLyBGb3JjZSBkZXB0aCBpZiBzdGVuY2lsIGlzIHRydWUu
Ci0gICAgICAgICAgICBtX2F0dHJzLmRlcHRoID0gdHJ1ZTsKKyAgICAgICAgICAgIGF0dHJzLmRl
cHRoID0gdHJ1ZTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBtX2F0dHJzLnN0ZW5jaWwg
PSBmYWxzZTsKKyAgICAgICAgICAgIGF0dHJzLnN0ZW5jaWwgPSBmYWxzZTsKKyAgICAgICAgc2V0
Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgIH0KLSAgICBpZiAobV9hdHRycy5hbnRpYWxp
YXMpIHsKLSAgICAgICAgaWYgKCFleHRlbnNpb25zLnN1cHBvcnRzKCJHTF9BTkdMRV9mcmFtZWJ1
ZmZlcl9tdWx0aXNhbXBsZSIpIHx8IGlzR0xFUzJDb21wbGlhbnQoKSkKLSAgICAgICAgICAgIG1f
YXR0cnMuYW50aWFsaWFzID0gZmFsc2U7Ci0gICAgICAgIGVsc2UKKyAgICBpZiAoYXR0cnMuYW50
aWFsaWFzICYmICFtX2lzRm9yV2ViR0wyKSB7CisgICAgICAgIGlmICghZXh0ZW5zaW9ucy5zdXBw
b3J0cygiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKSkgeworICAgICAgICAgICAg
YXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CisgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZXh0ZW5zaW9ucy5lbnN1cmVF
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwogICAgIH0KIH0KQEAg
LTE3NSw3ICsxNzksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jl
c3VsdHNUb0NhbnZhcyhJbWFnZUJ1ZmZlciogaW1hZ2VCdWZmZXIpCiAKICAgICByZWFkUmVuZGVy
aW5nUmVzdWx0cyhwaXhlbHMuZ2V0KCksIHRvdGFsQnl0ZXMpOwogCi0gICAgaWYgKCFtX2F0dHJz
LnByZW11bHRpcGxpZWRBbHBoYSkgeworICAgIGlmICghY29udGV4dEF0dHJpYnV0ZXMoKS5wcmVt
dWx0aXBsaWVkQWxwaGEpIHsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3RhbEJ5dGVz
OyBpICs9IDQpIHsKICAgICAgICAgICAgIC8vIFByZW11bHRpcGx5IGFscGhhLgogICAgICAgICAg
ICAgcGl4ZWxzW2kgKyAwXSA9IHN0ZDo6bWluKDI1NSwgcGl4ZWxzW2kgKyAwXSAqIHBpeGVsc1tp
ICsgM10gLyAyNTUpOwpAQCAtMjAxLDcgKzIwNSw3IEBAIFJlZlB0cjxJbWFnZURhdGE+IEdyYXBo
aWNzQ29udGV4dDNEOjpwYWludFJlbmRlcmluZ1Jlc3VsdHNUb0ltYWdlRGF0YSgpCiB7CiAgICAg
Ly8gUmVhZGluZyBwcmVtdWx0aXBsaWVkIGFscGhhIHdvdWxkIGludm9sdmUgdW5wcmVtdWx0aXBs
eWluZywgd2hpY2ggaXMKICAgICAvLyBsb3NzeS4KLSAgICBpZiAobV9hdHRycy5wcmVtdWx0aXBs
aWVkQWxwaGEpCisgICAgaWYgKGNvbnRleHRBdHRyaWJ1dGVzKCkucHJlbXVsdGlwbGllZEFscGhh
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gaW1hZ2VEYXRhID0gSW1hZ2VE
YXRhOjpjcmVhdGUoSW50U2l6ZShtX2N1cnJlbnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0KSk7CkBA
IC0yMzIsNyArMjM2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUo
KQogICAgIFRlbXBvcmFyeU9wZW5HTFNldHRpbmcgc2NvcGVkRGl0aGVyKEdMX0RJVEhFUiwgR0xf
RkFMU0UpOwogI2VuZGlmCiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMpCisgICAgaWYgKGNv
bnRleHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGlu
Z0lmTmVjZXNzYXJ5KCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCkBAIC0yNjUs
NyArMjY5LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMo
dW5zaWduZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKIAogICAgIGJvb2wgbXVzdFJlc3RvcmVGQk8gPSBmYWxzZTsKLSAgICBpZiAobV9hdHRy
cy5hbnRpYWxpYXMpIHsKKyAgICBpZiAoY29udGV4dEF0dHJpYnV0ZXMoKS5hbnRpYWxpYXMpIHsK
ICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeSgpOwogICAgICAgICA6Omds
QmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8p
OwogICAgICAgICBtdXN0UmVzdG9yZUZCTyA9IHRydWU7CkBAIC0zMjgsMTQgKzMzMiwxNyBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKICAg
ICA6OmdsQ2xlYXJDb2xvcigwLCAwLCAwLCAwKTsKICAgICA6OmdsR2V0Qm9vbGVhbnYoR0xfQ09M
T1JfV1JJVEVNQVNLLCBjb2xvck1hc2spOwogICAgIDo6Z2xDb2xvck1hc2soR0xfVFJVRSwgR0xf
VFJVRSwgR0xfVFJVRSwgR0xfVFJVRSk7Ci0gICAgaWYgKG1fYXR0cnMuZGVwdGgpIHsKKworICAg
IGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJzLmRlcHRo
KSB7CiAgICAgICAgIDo6Z2xHZXRGbG9hdHYoR0xfREVQVEhfQ0xFQVJfVkFMVUUsICZjbGVhckRl
cHRoKTsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0Q6OmNsZWFyRGVwdGgoMSk7CiAgICAgICAg
IDo6Z2xHZXRCb29sZWFudihHTF9ERVBUSF9XUklURU1BU0ssICZkZXB0aE1hc2spOwogICAgICAg
ICA6OmdsRGVwdGhNYXNrKEdMX1RSVUUpOwogICAgICAgICBjbGVhck1hc2sgfD0gR0xfREVQVEhf
QlVGRkVSX0JJVDsKICAgICB9Ci0gICAgaWYgKG1fYXR0cnMuc3RlbmNpbCkgeworICAgIGlmIChh
dHRycy5zdGVuY2lsKSB7CiAgICAgICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9TVEVOQ0lMX0NMRUFS
X1ZBTFVFLCAmY2xlYXJTdGVuY2lsKTsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbCgwKTsKICAg
ICAgICAgOjpnbEdldEludGVnZXJ2KEdMX1NURU5DSUxfV1JJVEVNQVNLLCByZWludGVycHJldF9j
YXN0PEdMaW50Kj4oJnN0ZW5jaWxNYXNrKSk7CkBAIC0zNDksMTEgKzM1NiwxMSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpyZXNoYXBlKGludCB3aWR0aCwgaW50IGhlaWdodCkKIAogICAgIDo6
Z2xDbGVhckNvbG9yKGNsZWFyQ29sb3JbMF0sIGNsZWFyQ29sb3JbMV0sIGNsZWFyQ29sb3JbMl0s
IGNsZWFyQ29sb3JbM10pOwogICAgIDo6Z2xDb2xvck1hc2soY29sb3JNYXNrWzBdLCBjb2xvck1h
c2tbMV0sIGNvbG9yTWFza1syXSwgY29sb3JNYXNrWzNdKTsKLSAgICBpZiAobV9hdHRycy5kZXB0
aCkgeworICAgIGlmIChhdHRycy5kZXB0aCkgewogICAgICAgICBHcmFwaGljc0NvbnRleHQzRDo6
Y2xlYXJEZXB0aChjbGVhckRlcHRoKTsKICAgICAgICAgOjpnbERlcHRoTWFzayhkZXB0aE1hc2sp
OwogICAgIH0KLSAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgaWYgKGF0dHJzLnN0ZW5j
aWwpIHsKICAgICAgICAgOjpnbENsZWFyU3RlbmNpbChjbGVhclN0ZW5jaWwpOwogICAgICAgICA6
OmdsU3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9GUk9OVCwgc3RlbmNpbE1hc2spOwogICAgICAgICA6
OmdsU3RlbmNpbE1hc2tTZXBhcmF0ZShHTF9CQUNLLCBzdGVuY2lsTWFza0JhY2spOwpAQCAtNDgx
LDcgKzQ4OCw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJpbmRGcmFtZWJ1ZmZlcihHQzNE
ZW51bSB0YXJnZXQsIFBsYXRmb3JtM0RPYmplY3QgYnVmZmVyCiAgICAgaWYgKGJ1ZmZlcikKICAg
ICAgICAgZmJvID0gYnVmZmVyOwogICAgIGVsc2UKLSAgICAgICAgZmJvID0gKG1fYXR0cnMuYW50
aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKKyAgICAgICAgZmJvID0gKGNvbnRl
eHRBdHRyaWJ1dGVzKCkuYW50aWFsaWFzID8gbV9tdWx0aXNhbXBsZUZCTyA6IG1fZmJvKTsKICAg
ICBpZiAoZmJvICE9IG1fc3RhdGUuYm91bmRGQk8pIHsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1
ZmZlckVYVCh0YXJnZXQsIGZibyk7CiAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBmYm87CkBA
IC03NDQsMjQgKzc1MSwyOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpjb21waWxlU2hhZGVy
RGlyZWN0KFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
Y29weVRleEltYWdlMkQoR0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEZW51bSBp
bnRlcm5hbGZvcm1hdCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCwgR0MzRGludCBib3JkZXIpCiB7CiAgICAgbWFrZUNvbnRleHRDdXJyZW50
KCk7Ci0gICAgaWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykgeworICAgIGF1dG8gYXR0cnMgPSBjb250ZXh0QXR0cmlidXRlcygpOwor
CisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlz
YW1wbGVGQk8pIHsKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRS
ZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVY
VChHcmFwaGljc0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICB9CiAgICAgOjpn
bENvcHlUZXhJbWFnZTJEKHRhcmdldCwgbGV2ZWwsIGludGVybmFsZm9ybWF0LCB4LCB5LCB3aWR0
aCwgaGVpZ2h0LCBib3JkZXIpOwotICAgIGlmIChtX2F0dHJzLmFudGlhbGlhcyAmJiBtX3N0YXRl
LmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCisgICAgaWYgKGF0dHJzLmFudGlhbGlhcyAm
JiBtX3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5k
RnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX211bHRpc2Ft
cGxlRkJPKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6Y29weVRleFN1YkltYWdlMkQo
R0MzRGVudW0gdGFyZ2V0LCBHQzNEaW50IGxldmVsLCBHQzNEaW50IHhvZmZzZXQsIEdDM0RpbnQg
eW9mZnNldCwgR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVp
IGhlaWdodCkKIHsKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBpZiAobV9hdHRycy5h
bnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZCTyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAg
YXV0byBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cnMuYW50aWFs
aWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICBy
ZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KEludFJlY3QoeCwgeSwgd2lkdGgsIGhlaWdo
dCkpOwogICAgICAgICA6OmdsQmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpG
UkFNRUJVRkZFUiwgbV9mYm8pOwogICAgIH0KICAgICA6OmdsQ29weVRleFN1YkltYWdlMkQodGFy
Z2V0LCBsZXZlbCwgeG9mZnNldCwgeW9mZnNldCwgeCwgeSwgd2lkdGgsIGhlaWdodCk7Ci0gICAg
aWYgKG1fYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBs
ZUZCTykKKyAgICBpZiAoYXR0cnMuYW50aWFsaWFzICYmIG1fc3RhdGUuYm91bmRGQk8gPT0gbV9t
dWx0aXNhbXBsZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGljc0Nv
bnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC0xMTI4LDEx
ICsxMTM5LDYgQEAgaW50IEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBdHRyaWJMb2NhdGlvbkRpcmVj
dChQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIGNvbnN0IFMKICAgICByZXR1cm4gOjpnbEdldEF0
dHJpYkxvY2F0aW9uKHByb2dyYW0sIG5hbWUudXRmOCgpLmRhdGEoKSk7CiB9CiAKLUdyYXBoaWNz
Q29udGV4dDNEQXR0cmlidXRlcyBHcmFwaGljc0NvbnRleHQzRDo6Z2V0Q29udGV4dEF0dHJpYnV0
ZXMoKQotewotICAgIHJldHVybiBtX2F0dHJzOwotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNE
Ojptb3ZlRXJyb3JzVG9TeW50aGV0aWNFcnJvckxpc3QoKQogewogICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCmluZGV4IDcw
YTIwZDUwYzM1MjFhNjEyM2U2ZWZhZjFmNDc2OGY2NDk1Y2RlNWMuLjM2NjgyMWNhNmZkODMzODE1
YjNiODNhYzJkZjc1MzgwMjYxNDg2MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTEVTLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RP
cGVuR0xFUy5jcHAKQEAgLTUwLDEwICs1MCwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpy
ZWxlYXNlU2hhZGVyQ29tcGlsZXIoKQogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFBpeGVs
cyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
LCBHQzNEZW51bSBmb3JtYXQsIEdDM0RlbnVtIHR5cGUsIHZvaWQqIGRhdGEpCiB7CiAgICAgbWFr
ZUNvbnRleHRDdXJyZW50KCk7CisKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmli
dXRlcygpOworCiAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgdHdvIGdsRmx1c2ggY2FsbHMgd2hl
biB0aGUgZHJpdmVyIGJ1ZyBpcyBmaXhlZCwgaS5lLiwKICAgICAvLyBhbGwgcHJldmlvdXMgcmVu
ZGVyaW5nIGNhbGxzIHNob3VsZCBiZSBkb25lIGJlZm9yZSByZWFkaW5nIHBpeGVscy4KICAgICA6
OmdsRmx1c2goKTsKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKSB7CisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzICYm
IG1fc3RhdGUuYm91bmRGQk8gPT0gbV9tdWx0aXNhbXBsZUZCTykgewogICAgICAgICAgcmVzb2x2
ZU11bHRpc2FtcGxpbmdJZk5lY2Vzc2FyeShJbnRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsK
ICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwogICAg
ICAgICA6OmdsRmx1c2goKTsKQEAgLTYxLDcgKzY0LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cmVhZFBpeGVscyhHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNE
c2kKIAogICAgIDo6Z2xSZWFkUGl4ZWxzKHgsIHksIHdpZHRoLCBoZWlnaHQsIGZvcm1hdCwgdHlw
ZSwgZGF0YSk7CiAKLSAgICBpZiAobV9hdHRycy5hbnRpYWxpYXMgJiYgbV9zdGF0ZS5ib3VuZEZC
TyA9PSBtX211bHRpc2FtcGxlRkJPKQorICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcyAmJiBt
X3N0YXRlLmJvdW5kRkJPID09IG1fbXVsdGlzYW1wbGVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVGQk8pOwogfQogCkBAIC04MCw3
ICs4Myw5IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgY29uc3QgaW50IHdpZHRoID0gc2l6ZS53aWR0aCgpOwogICAgIGNvbnN0
IGludCBoZWlnaHQgPSBzaXplLmhlaWdodCgpOwogICAgIEdMdWludCBjb2xvckZvcm1hdCA9IDA7
Ci0gICAgaWYgKG1fYXR0cnMuYWxwaGEpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0
QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYWxwaGEpIHsKICAgICAgICAgbV9p
bnRlcm5hbENvbG9yRm9ybWF0ID0gR0xfUkdCQTsKICAgICAgICAgY29sb3JGb3JtYXQgPSBHTF9S
R0JBOwogICAgIH0gZWxzZSB7CkBAIC05MCw3ICs5NSw3IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0
M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICAvLyBXZSBkb24ndCBh
bGxvdyB0aGUgbG9naWMgd2hlcmUgc3RlbmNpbCBpcyByZXF1aXJlZCBhbmQgZGVwdGggaXMgbm90
LgogICAgIC8vIFNlZSBHcmFwaGljc0NvbnRleHQzRDo6dmFsaWRhdGVBdHRyaWJ1dGVzLgotICAg
IGJvb2wgc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNpbEJ1ZmZlciA9IChtX2F0dHJzLnN0ZW5jaWwg
fHwgbV9hdHRycy5kZXB0aCkgJiYgZ2V0RXh0ZW5zaW9ucygpLnN1cHBvcnRzKCJHTF9PRVNfcGFj
a2VkX2RlcHRoX3N0ZW5jaWwiKTsKKyAgICBib29sIHN1cHBvcnRQYWNrZWREZXB0aFN0ZW5jaWxC
dWZmZXIgPSAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpICYmIGdldEV4
dGVuc2lvbnMoKS5zdXBwb3J0cygiR0xfT0VTX3BhY2tlZF9kZXB0aF9zdGVuY2lsIik7CiAKICAg
ICAvLyBSZXNpemUgcmVndWxhciBGQk8uCiAgICAgYm9vbCBtdXN0UmVzdG9yZUZCTyA9IGZhbHNl
OwpAQCAtMTE3LDI5ICsxMjIsMjkgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6cmVzaGFwZUZC
T3MoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogCiAgICAgRXh0ZW5zaW9uczNET3BlbkdM
RVMmIGV4dGVuc2lvbnMgPSBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RPcGVuR0xFUyY+KGdldEV4
dGVuc2lvbnMoKSk7Ci0gICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIG1fYXR0
cnMuYW50aWFsaWFzKSB7CisgICAgaWYgKGV4dGVuc2lvbnMuaXNJbWFnaW5hdGlvbigpICYmIGF0
dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIEdMaW50IG1heFNhbXBsZUNvdW50OwogICAg
ICAgICA6OmdsR2V0SW50ZWdlcnYoRXh0ZW5zaW9uczNEOjpNQVhfU0FNUExFU19JTUcsICZtYXhT
YW1wbGVDb3VudCk7IAogICAgICAgICBHTGludCBzYW1wbGVDb3VudCA9IHN0ZDo6bWluKDgsIG1h
eFNhbXBsZUNvdW50KTsKIAogICAgICAgICBleHRlbnNpb25zLmZyYW1lYnVmZmVyVGV4dHVyZTJE
TXVsdGlzYW1wbGVJTUcoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9U
RVhUVVJFXzJELCBtX3RleHR1cmUsIDAsIHNhbXBsZUNvdW50KTsKIAotICAgICAgICBpZiAobV9h
dHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMu
c3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAgICAgICAgICAgICAvLyBVc2UgYSAyNCBi
aXQgZGVwdGggYnVmZmVyIHdoZXJlIHdlIGtub3cgd2UgaGF2ZSBpdC4KICAgICAgICAgICAgIGlm
IChzdXBwb3J0UGFja2VkRGVwdGhTdGVuY2lsQnVmZmVyKSB7CiAgICAgICAgICAgICAgICAgOjpn
bEJpbmRSZW5kZXJidWZmZXIoR0xfUkVOREVSQlVGRkVSLCBtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7
CiAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5yZW5kZXJidWZmZXJTdG9yYWdlTXVsdGlzYW1w
bGUoR0xfUkVOREVSQlVGRkVSLCBzYW1wbGVDb3VudCwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMs
IHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisg
ICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAg
ICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAg
ICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZF
UiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZl
cihHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAg
IGV4dGVuc2lvbnMucmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdMX1JFTkRFUkJVRkZF
Uiwgc2FtcGxlQ291bnQsIEdMX1NURU5DSUxfSU5ERVg4LCB3aWR0aCwgaGVpZ2h0KTsKICAgICAg
ICAgICAgICAgICAgICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVS
LCBHTF9TVEVOQ0lMX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9zdGVuY2lsQnVmZmVy
KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVwdGgp
IHsKKyAgICAgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkgewogICAgICAgICAgICAg
ICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIG1fZGVwdGhCdWZm
ZXIpOwogICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLnJlbmRlcmJ1ZmZlclN0b3JhZ2VN
dWx0aXNhbXBsZShHTF9SRU5ERVJCVUZGRVIsIHNhbXBsZUNvdW50LCBHTF9ERVBUSF9DT01QT05F
TlQxNiwgd2lkdGgsIGhlaWdodCk7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xGcmFtZWJ1ZmZl
clJlbmRlcmJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgR0xfREVQVEhfQVRUQUNITUVOVCwgR0xfUkVO
REVSQlVGRkVSLCBtX2RlcHRoQnVmZmVyKTsKQEAgLTE0OCwyMiArMTUzLDIyIEBAIGJvb2wgR3Jh
cGhpY3NDb250ZXh0M0Q6OnJlc2hhcGVGQk9zKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgICAg
ICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZlcihHTF9SRU5ERVJCVUZGRVIsIDApOwogICAgICAgICB9
CiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRl
cHRoKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0
aCkgewogICAgICAgICAgICAgLy8gVXNlIGEgMjQgYml0IGRlcHRoIGJ1ZmZlciB3aGVyZSB3ZSBr
bm93IHdlIGhhdmUgaXQuCiAgICAgICAgICAgICBpZiAoc3VwcG9ydFBhY2tlZERlcHRoU3RlbmNp
bEJ1ZmZlcikgewogICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdMX1JFTkRF
UkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIDo6Z2xSZW5k
ZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMs
IHdpZHRoLCBoZWlnaHQpOwotICAgICAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwpCisg
ICAgICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCkKICAgICAgICAgICAgICAgICAg
ICAgOjpnbEZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBHTF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZFUiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAg
ICAgICAgICAgICAgIGlmIChtX2F0dHJzLmRlcHRoKQorICAgICAgICAgICAgICAgIGlmIChhdHRy
aWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5kZXJi
dWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJVRkZF
UiwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsKSB7CisgICAgICAgICAgICAgICAgaWYgKGF0dHJp
YnV0ZXMuc3RlbmNpbCkgewogICAgICAgICAgICAgICAgICAgICA6OmdsQmluZFJlbmRlcmJ1ZmZl
cihHTF9SRU5ERVJCVUZGRVIsIG1fc3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAg
IDo6Z2xSZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfU1RFTkNJTF9JTkRF
WDgsIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJS
ZW5kZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX1NURU5DSUxfQVRUQUNITUVOVCwgR0xfUkVO
REVSQlVGRkVSLCBtX3N0ZW5jaWxCdWZmZXIpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkgeworICAgICAgICAgICAgICAgIGlmIChhdHRyaWJ1
dGVzLmRlcHRoKSB7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xCaW5kUmVuZGVyYnVmZmVyKEdM
X1JFTkRFUkJVRkZFUiwgbV9kZXB0aEJ1ZmZlcik7CiAgICAgICAgICAgICAgICAgICAgIDo6Z2xS
ZW5kZXJidWZmZXJTdG9yYWdlKEdMX1JFTkRFUkJVRkZFUiwgR0xfREVQVEhfQ09NUE9ORU5UMTYs
IHdpZHRoLCBoZWlnaHQpOwogICAgICAgICAgICAgICAgICAgICA6OmdsRnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoR0xfRlJBTUVCVUZGRVIsIEdMX0RFUFRIX0FUVEFDSE1FTlQsIEdMX1JFTkRFUkJV
RkZFUiwgbV9kZXB0aEJ1ZmZlcik7CkBAIC0yMjIsOCArMjI3LDEyIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnZhbGlkYXRlQXR0cmlidXRlcygpCiB7CiAgICAgdmFsaWRhdGVEZXB0aFN0ZW5j
aWwoIkdMX09FU19wYWNrZWRfZGVwdGhfc3RlbmNpbCIpOwogCi0gICAgaWYgKG1fYXR0cnMuYW50
aWFsaWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19tdWx0aXNhbXBsZWRf
cmVuZGVyX3RvX3RleHR1cmUiKSkKLSAgICAgICAgbV9hdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsK
KyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmlidXRlcygpOworCisgICAgaWYgKGF0
dHJpYnV0ZXMuYW50aWFsaWFzICYmICFnZXRFeHRlbnNpb25zKCkuc3VwcG9ydHMoIkdMX0lNR19t
dWx0aXNhbXBsZWRfcmVuZGVyX3RvX3RleHR1cmUiKSkgeworICAgICAgICBhdHRyaWJ1dGVzLmFu
dGlhbGlhcyA9IGZhbHNlOworICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRyaWJ1dGVz
KTsKKyAgICB9CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoUmFuZ2UoR0MzRGNs
YW1wZiB6TmVhciwgR0MzRGNsYW1wZiB6RmFyKQpAQCAtMjQ4LDEwICsyNTcsMTAgQEAgRXh0ZW5z
aW9uczNEJiBHcmFwaGljc0NvbnRleHQzRDo6Z2V0RXh0ZW5zaW9ucygpCiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKFdJTikgJiYgVVNFKENBKQotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFw
aGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1
dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyU3R5
bGUgcmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNzQ29udGV4
dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5h
dGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVudGx5IHN1
cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlmIChyZW5k
ZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVzdGluYXRp
b24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICAKICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOwpAQCAt
MjY4LDE3ICsyNzcsMTggQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRl
eHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgIHJldHVybiBhZG9w
dFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVy
U3R5bGUpKTsKIH0KIAotR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBo
aWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hh
cmVkQ29udGV4dCkKLSAgICA6IG1fYXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dDNE
OjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRl
cywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlv
biwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRl
eHQzREJhc2UoYXR0cmlidXRlcywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiAgICAgLCBt
X2NvbXBpbGVyKGlzR0xFUzJDb21wbGlhbnQoKSA/IFNIX0VTU0xfT1VUUFVUIDogU0hfR0xTTF9D
T01QQVRJQklMSVRZX09VVFBVVCkKLSAgICAsIG1fcHJpdmF0ZShtYWtlVW5pcXVlPEdyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZT4odGhpcywgcmVuZGVyU3R5bGUpKQorICAgICwgbV9wcml2YXRlKG1h
a2VVbmlxdWU8R3JhcGhpY3NDb250ZXh0M0RQcml2YXRlPih0aGlzLCBkZXN0aW5hdGlvbikpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRChzaGFyZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgCiAgICAgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7Cisg
ICAgYXR0cmlidXRlcyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhhdmUgY2hh
bmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIAotICAgIGlmIChyZW5kZXJTdHlsZSA9PSBSZW5kZXJP
ZmZzY3JlZW4pIHsKKyAgICBpZiAoZGVzdGluYXRpb24gPT0gRGVzdGluYXRpb246Ok9mZnNjcmVl
bikgewogICAgICAgICAvLyBDcmVhdGUgYSB0ZXh0dXJlIHRvIHJlbmRlciBpbnRvLgogICAgICAg
ICA6OmdsR2VuVGV4dHVyZXMoMSwgJm1fdGV4dHVyZSk7CiAgICAgICAgIDo6Z2xCaW5kVGV4dHVy
ZShHTF9URVhUVVJFXzJELCBtX3RleHR1cmUpOwpAQCAtMjkzLDE2ICszMDMsMTYgQEAgR3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRl
cyBhdHRyaWJ1dGVzLCBIb3MKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgbV9mYm8pOwogICAgICAgICAKICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJv
OwotICAgICAgICBpZiAoIW1fYXR0cnMuYW50aWFsaWFzICYmIChtX2F0dHJzLnN0ZW5jaWwgfHwg
bV9hdHRycy5kZXB0aCkpCisgICAgICAgIGlmICghYXR0cmlidXRlcy5hbnRpYWxpYXMgJiYgKGF0
dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSkKICAgICAgICAgICAgIDo6Z2xH
ZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIAogICAg
ICAgICAvLyBDcmVhdGUgYSBtdWx0aXNhbXBsZSBGQk8uCi0gICAgICAgIGlmIChtX2F0dHJzLmFu
dGlhbGlhcykgeworICAgICAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAg
ICAgIDo6Z2xHZW5GcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwogICAgICAgICAg
ICAgOjpnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgbV9tdWx0aXNhbXBsZUZCTyk7
CiAgICAgICAgICAgICBtX3N0YXRlLmJvdW5kRkJPID0gbV9tdWx0aXNhbXBsZUZCTzsKICAgICAg
ICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIp
OwotICAgICAgICAgICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAg
ICAgICAgICAgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAg
ICAgICAgICAgICAgIDo6Z2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhT
dGVuY2lsQnVmZmVyKTsKICAgICAgICAgfQogICAgIH0KQEAgLTM0MCwxMyArMzUwLDE2IEBAIEdy
YXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogewogICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIDo6Z2xEZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKLSAgICBp
ZiAobV9hdHRycy5hbnRpYWxpYXMpIHsKKworICAgIGF1dG8gYXR0cmlidXRlcyA9IGNvbnRleHRB
dHRyaWJ1dGVzKCk7CisKKyAgICBpZiAoYXR0cmlidXRlcy5hbnRpYWxpYXMpIHsKICAgICAgICAg
OjpnbERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVDb2xvckJ1ZmZlcik7Ci0g
ICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkKKyAgICAgICAgaWYg
KGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgOjpn
bERlbGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIp
OwogICAgICAgICA6OmdsRGVsZXRlRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVw
dGgpCisgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
ICAgICAgICAgICAgIDo6Z2xEZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1
ZmZlcik7CiAgICAgfQogICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fZmJvKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGlj
c0NvbnRleHQzRFRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggZmFi
ODA3YjdkOGMxYTY4YjU5ZDNhYjcyYmNkNTY4NDJkNTU2M2Q0Ny4uZjE3YTBjMmM5NzE2Mzk0MjA2
ZTNlOGFhM2ViYTI0M2FmNDJiYTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dDNEVGV4dHVyZU1hcHBlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dDNEVGV4dHVyZU1hcHBlci5jcHAKQEAgLTkxLDEwICs5MSwxMCBAQCBzdGF0aWMgRGVxdWU8R3Jh
cGhpY3NDb250ZXh0M0QqLCBNYXhBY3RpdmVDb250ZXh0cz4mIGFjdGl2ZUNvbnRleHRzKCkKICAg
ICByZXR1cm4gc19hY3RpdmVDb250ZXh0czsKIH0KIAotUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNE
PiBHcmFwaGljc0NvbnRleHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBh
dHRyaWJ1dGVzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHQzRDo6UmVu
ZGVyU3R5bGUgcmVuZGVyU3R5bGUpCitSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IEdyYXBoaWNz
Q29udGV4dDNEOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMs
IEhvc3RXaW5kb3cqIGhvc3RXaW5kb3csIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbikKIHsKICAgICAvLyBUaGlzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgY3VycmVu
dGx5IHN1cHBvcnQgcmVuZGVyaW5nIGRpcmVjdGx5IHRvIHRoZSBIb3N0V2luZG93LgotICAgIGlm
IChyZW5kZXJTdHlsZSA9PSBSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdykKKyAgICBpZiAoZGVz
dGluYXRpb24gPT0gRGVzdGluYXRpb246OkRpcmVjdGx5VG9Ib3N0V2luZG93KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CkBA
IC0xMTgsNyArMTE4LDcgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBHcmFwaGljc0NvbnRl
eHQzRDo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcwogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0M0Qgb2JqZWN0IGZp
cnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29udGV4dCBvbiB0aGlzIHRocmVh
ZC4KLSAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0
cmlidXRlcywgaG9zdFdpbmRvdywgcmVuZGVyU3R5bGUpKTsKKyAgICBhdXRvIGNvbnRleHQgPSBh
ZG9wdFJlZihuZXcgR3JhcGhpY3NDb250ZXh0M0QoYXR0cmlidXRlcywgaG9zdFdpbmRvdywgZGVz
dGluYXRpb24pKTsKIAogI2lmIFVTRShMSUJFUE9YWSkgJiYgVVNFKE9QRU5HTF9FUykKICAgICAv
LyBCYWlsIGlmIEdMRVMzIHdhcyByZXF1ZXN0ZWQgYnV0IGNhbm5vdCBiZSBwcm92aWRlZC4KQEAg
LTEzMSwyMSArMTMxLDIxIEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gR3JhcGhpY3NDb250
ZXh0M0Q6OmNyZWF0ZShHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMKIH0KIAogI2lmIFVTRShB
TkdMRSkKLUdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRl
eHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdyYXBoaWNzQ29udGV4dDNE
OjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSwgR3JhcGhpY3NDb250ZXh0M0QqIHNoYXJlZENvbnRl
eHQpCi0gICAgOiBtX2F0dHJzKGF0dHJpYnV0ZXMpCitHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhp
Y3NDb250ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0RBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMsIEhvc3RX
aW5kb3cqLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24sIEdyYXBo
aWNzQ29udGV4dDNEKiBzaGFyZWRDb250ZXh0KQorICAgIDogR3JhcGhpY3NDb250ZXh0M0RCYXNl
KGF0dHJpYnV0ZXMsIGRlc3RpbmF0aW9uLCBzaGFyZWRDb250ZXh0KQogewogICAgIEFTU0VSVF9V
TlVTRUQoc2hhcmVkQ29udGV4dCwgIXNoYXJlZENvbnRleHQpOwogI2lmIFVTRShOSUNPU0lBKQot
ICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxh
eWVyPigqdGhpcywgcmVuZGVyU3R5bGUpOworICAgIG1fbmljb3NpYUxheWVyID0gV1RGOjptYWtl
VW5pcXVlPE5pY29zaWE6OkdDM0RBTkdMRUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2Vs
c2UKLSAgICBtX3RleG1hcExheWVyID0gV1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNE
UGxhdGZvcm1MYXllcj4oKnRoaXMsIHJlbmRlclN0eWxlKTsKKyAgICBtX3RleG1hcExheWVyID0g
V1RGOjptYWtlVW5pcXVlPFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcj4oKnRoaXMsIGRl
c3RpbmF0aW9uKTsKICNlbmRpZgogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogCi0KICAgICB2
YWxpZGF0ZUF0dHJpYnV0ZXMoKTsKKyAgICBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJpYnV0ZXMo
KTsgLy8gVGhleSBtYXkgaGF2ZSBjaGFuZ2VkIGR1cmluZyB2YWxpZGF0aW9uLgogCi0gICAgaWYg
KHJlbmRlclN0eWxlID09IFJlbmRlck9mZnNjcmVlbikgeworICAgIGlmIChkZXN0aW5hdGlvbiA9
PSBEZXN0aW5hdGlvbjo6T2Zmc2NyZWVuKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIHRleHR1cmUg
dG8gcmVuZGVyIGludG8uCiAgICAgICAgIGdsOjpHZW5UZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsK
ICAgICAgICAgZ2w6OkJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfUkVDVEFOR0xFX0FOR0xFLCBtX3Rl
eHR1cmUpOwpAQCAtMTc4LDI0ICsxNzgsMjQgQEAgR3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNz
Q29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1dGVzLCBIb3MKICNl
bmRpZgogCiAgICAgICAgIC8vIENyZWF0ZSBhIG11bHRpc2FtcGxlIEZCTy4KLSAgICAgICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykg
ewogICAgICAgICAgICAgZ2w6OkdlbkZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7
CiAgICAgICAgICAgICBnbDo6QmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX211bHRp
c2FtcGxlRkJPKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8gPSBtX211bHRpc2FtcGxl
RkJPOwogICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVD
b2xvckJ1ZmZlcik7Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMu
ZGVwdGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMu
ZGVwdGgpCiAgICAgICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fbXVsdGlz
YW1wbGVEZXB0aFN0ZW5jaWxCdWZmZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
Ly8gQmluZCBjYW52YXMgRkJPLgogICAgICAgICAgICAgZ2w6OkJpbmRGcmFtZWJ1ZmZlcihHTF9G
UkFNRUJVRkZFUiwgbV9mYm8pOwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fZmJv
OwogI2lmIFVTRShPUEVOR0xfRVMpCi0gICAgICAgICAgICBpZiAobV9hdHRycy5kZXB0aCkKKyAg
ICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLmRlcHRoKQogICAgICAgICAgICAgICAgIGdsOjpHZW5S
ZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoQnVmZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJz
LnN0ZW5jaWwpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsKQogICAgICAgICAg
ICAgICAgIGdsOjpHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2VuZGlm
Ci0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAg
ICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAg
ICAgICAgICAgICAgZ2w6OkdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhTdGVuY2lsQnVmZmVy
KTsKICAgICAgICAgfQogICAgIH0KQEAgLTIwMywyMSArMjAzLDIyIEBAIEdyYXBoaWNzQ29udGV4
dDNEOjpHcmFwaGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmli
dXRlcywgSG9zCiAgICAgZ2w6OkNsZWFyQ29sb3IoMCwgMCwgMCwgMCk7CiB9CiAjZWxzZQotR3Jh
cGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmli
dXRlcyBhdHRyaWJ1dGVzLCBIb3N0V2luZG93KiwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlclN0
eWxlIHJlbmRlclN0eWxlLCBHcmFwaGljc0NvbnRleHQzRCogc2hhcmVkQ29udGV4dCkKLSAgICA6
IG1fYXR0cnMoYXR0cmlidXRlcykKK0dyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQz
RChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9zdFdpbmRvdyosIEdy
YXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgR3JhcGhpY3NDb250ZXh0
M0QqIHNoYXJlZENvbnRleHQpCisgICAgOiBHcmFwaGljc0NvbnRleHQzREJhc2UoYXR0cmlidXRl
cywgZGVzdGluYXRpb24sIHNoYXJlZENvbnRleHQpCiB7CiAgICAgQVNTRVJUX1VOVVNFRChzaGFy
ZWRDb250ZXh0LCAhc2hhcmVkQ29udGV4dCk7CiAjaWYgVVNFKE5JQ09TSUEpCi0gICAgbV9uaWNv
c2lhTGF5ZXIgPSBtYWtlVW5pcXVlPE5pY29zaWE6OkdDM0RMYXllcj4oKnRoaXMsIHJlbmRlclN0
eWxlKTsKKyAgICBtX25pY29zaWFMYXllciA9IG1ha2VVbmlxdWU8Tmljb3NpYTo6R0MzRExheWVy
PigqdGhpcywgZGVzdGluYXRpb24pOwogI2Vsc2UKLSAgICBtX3RleG1hcExheWVyID0gbWFrZVVu
aXF1ZTxUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI+KCp0aGlzLCByZW5kZXJTdHlsZSk7
CisgICAgbV90ZXhtYXBMYXllciA9IG1ha2VVbmlxdWU8VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9y
bUxheWVyPigqdGhpcywgZGVzdGluYXRpb24pOwogI2VuZGlmCiAKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKIAogICAgIHZhbGlkYXRlQXR0cmlidXRlcygpOworICAgIGF0dHJpYnV0ZXMgPSBj
b250ZXh0QXR0cmlidXRlcygpOyAvLyBUaGV5IG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIHZhbGlk
YXRpb24uCiAKLSAgICBpZiAocmVuZGVyU3R5bGUgPT0gUmVuZGVyT2Zmc2NyZWVuKSB7CisgICAg
aWYgKGRlc3RpbmF0aW9uID09IERlc3RpbmF0aW9uOjpPZmZzY3JlZW4pIHsKICAgICAgICAgLy8g
Q3JlYXRlIGEgdGV4dHVyZSB0byByZW5kZXIgaW50by4KICAgICAgICAgOjpnbEdlblRleHR1cmVz
KDEsICZtX3RleHR1cmUpOwogICAgICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwg
bV90ZXh0dXJlKTsKQEAgLTI0OSwyNiArMjUwLDI1IEBAIEdyYXBoaWNzQ29udGV4dDNEOjpHcmFw
aGljc0NvbnRleHQzRChHcmFwaGljc0NvbnRleHQzREF0dHJpYnV0ZXMgYXR0cmlidXRlcywgSG9z
CiAgICAgICAgIDo6Z2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAwKTsKICNlbmRpZgogCi0K
ICAgICAgICAgLy8gQ3JlYXRlIGEgbXVsdGlzYW1wbGUgRkJPLgotICAgICAgICBpZiAobV9hdHRy
cy5hbnRpYWxpYXMpIHsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAg
ICAgICAgICA6OmdsR2VuRnJhbWVidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRkJPKTsKICAgICAg
ICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fbXVsdGlzYW1wbGVG
Qk8pOwogICAgICAgICAgICAgbV9zdGF0ZS5ib3VuZEZCTyA9IG1fbXVsdGlzYW1wbGVGQk87CiAg
ICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVm
ZmVyKTsKLSAgICAgICAgICAgIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkK
KyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkK
ICAgICAgICAgICAgICAgICA6OmdsR2VuUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURl
cHRoU3RlbmNpbEJ1ZmZlcik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBCaW5k
IGNhbnZhcyBGQk8uCiAgICAgICAgICAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHcmFwaGljc0NvbnRl
eHQzRDo6RlJBTUVCVUZGRVIsIG1fZmJvKTsKICAgICAgICAgICAgIG1fc3RhdGUuYm91bmRGQk8g
PSBtX2ZibzsKICNpZiBVU0UoT1BFTkdMX0VTKQotICAgICAgICAgICAgaWYgKG1fYXR0cnMuZGVw
dGgpCisgICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgICAgICBn
bEdlblJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOwotICAgICAgICAgICAgaWYgKG1f
YXR0cnMuc3RlbmNpbCkKKyAgICAgICAgICAgIGlmIChhdHRyaWJ1dGVzLnN0ZW5jaWwpCiAgICAg
ICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX3N0ZW5jaWxCdWZmZXIpOwogI2Vu
ZGlmCi0gICAgICAgICAgICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisg
ICAgICAgICAgICBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAg
ICAgICAgICAgICAgICAgZ2xHZW5SZW5kZXJidWZmZXJzKDEsICZtX2RlcHRoU3RlbmNpbEJ1ZmZl
cik7CiAgICAgICAgIH0KICAgICB9CkBAIC0zMDEsNyArMzAxLDcgQEAgR3JhcGhpY3NDb250ZXh0
M0Q6OkdyYXBoaWNzQ29udGV4dDNEKEdyYXBoaWNzQ29udGV4dDNEQXR0cmlidXRlcyBhdHRyaWJ1
dGVzLCBIb3MKICAgICB9CiAjZWxzZQogICAgIC8vIEFkanVzdCB0aGUgc2hhZGVyIHNwZWNpZmlj
YXRpb24gZGVwZW5kaW5nIG9uIHdoZXRoZXIgR0xFUzMgKGkuZS4gV2ViR0wyIHN1cHBvcnQpIHdh
cyByZXF1ZXN0ZWQuCi0gICAgbV9jb21waWxlciA9IEFOR0xFV2ViS2l0QnJpZGdlKFNIX0VTU0xf
T1VUUFVULCBtX2F0dHJzLmlzV2ViR0wyID8gU0hfV0VCR0wyX1NQRUMgOiBTSF9XRUJHTF9TUEVD
KTsKKyAgICBtX2NvbXBpbGVyID0gQU5HTEVXZWJLaXRCcmlkZ2UoU0hfRVNTTF9PVVRQVVQsIGF0
dHJpYnV0ZXMuaXNXZWJHTDIgPyBTSF9XRUJHTDJfU1BFQyA6IFNIX1dFQkdMX1NQRUMpOwogI2Vu
ZGlmCiAKICAgICAvLyBBTkdMRSBpbml0aWFsaXphdGlvbi4KQEAgLTM0MCwxMiArMzQwLDE0IEBA
IEdyYXBoaWNzQ29udGV4dDNEOjp+R3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAgICBnbDo6RGVs
ZXRlVGV4dHVyZXMoMSwgJm1fY29tcG9zaXRvclRleHR1cmUpOwogI2VuZGlmCiAKLSAgICBpZiAo
bV9hdHRycy5hbnRpYWxpYXMpIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBjb250ZXh0QXR0cmli
dXRlcygpOworCisgICAgaWYgKGF0dHJpYnV0ZXMuYW50aWFsaWFzKSB7CiAgICAgICAgIGdsOjpE
ZWxldGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIpOwotICAgICAg
ICBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpCisgICAgICAgIGlmIChhdHRy
aWJ1dGVzLnN0ZW5jaWwgfHwgYXR0cmlidXRlcy5kZXB0aCkKICAgICAgICAgICAgIGdsOjpEZWxl
dGVSZW5kZXJidWZmZXJzKDEsICZtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVyKTsKICAg
ICAgICAgZ2w6OkRlbGV0ZUZyYW1lYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUZCTyk7Ci0gICAg
fSBlbHNlIGlmIChtX2F0dHJzLnN0ZW5jaWwgfHwgbV9hdHRycy5kZXB0aCkgeworICAgIH0gZWxz
ZSBpZiAoYXR0cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpIHsKICNpZiBVU0Uo
T1BFTkdMX0VTKQogICAgICAgICBpZiAobV9kZXB0aEJ1ZmZlcikKICAgICAgICAgICAgIGdsRGVs
ZXRlUmVuZGVyYnVmZmVycygxLCAmbV9kZXB0aEJ1ZmZlcik7CkBAIC0zODIsMTIgKzM4NCwxNCBA
QCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKICAgICAgICAgOjpnbERl
bGV0ZVRleHR1cmVzKDEsICZtX2NvbXBvc2l0b3JUZXh0dXJlKTsKICNlbmRpZgogCi0gICAgaWYg
KG1fYXR0cnMuYW50aWFsaWFzKSB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gY29udGV4dEF0dHJp
YnV0ZXMoKTsKKworICAgIGlmIChhdHRyaWJ1dGVzLmFudGlhbGlhcykgewogICAgICAgICA6Omds
RGVsZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKTsKLSAgICAg
ICAgaWYgKG1fYXR0cnMuc3RlbmNpbCB8fCBtX2F0dHJzLmRlcHRoKQorICAgICAgICBpZiAoYXR0
cmlidXRlcy5zdGVuY2lsIHx8IGF0dHJpYnV0ZXMuZGVwdGgpCiAgICAgICAgICAgICA6OmdsRGVs
ZXRlUmVuZGVyYnVmZmVycygxLCAmbV9tdWx0aXNhbXBsZURlcHRoU3RlbmNpbEJ1ZmZlcik7CiAg
ICAgICAgIDo6Z2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJm1fbXVsdGlzYW1wbGVGQk8pOwotICAg
IH0gZWxzZSBpZiAobV9hdHRycy5zdGVuY2lsIHx8IG1fYXR0cnMuZGVwdGgpIHsKKyAgICB9IGVs
c2UgaWYgKGF0dHJpYnV0ZXMuc3RlbmNpbCB8fCBhdHRyaWJ1dGVzLmRlcHRoKSB7CiAjaWYgVVNF
KE9QRU5HTF9FUykKICAgICAgICAgaWYgKG1fZGVwdGhCdWZmZXIpCiAgICAgICAgICAgICBnbERl
bGV0ZVJlbmRlcmJ1ZmZlcnMoMSwgJm1fZGVwdGhCdWZmZXIpOwpAQCAtNDE1LDE0ICs0MTksNiBA
QCBHcmFwaGljc0NvbnRleHQzRDo6fkdyYXBoaWNzQ29udGV4dDNEKCkKIH0KICNlbmRpZiAvLyBV
U0UoQU5HTEUpCiAKLXZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNldENvbnRleHRMb3N0Q2FsbGJh
Y2soc3RkOjp1bmlxdWVfcHRyPENvbnRleHRMb3N0Q2FsbGJhY2s+KQotewotfQotCi12b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpzZXRFcnJvck1lc3NhZ2VDYWxsYmFjayhzdGQ6OnVuaXF1ZV9wdHI8
RXJyb3JNZXNzYWdlQ2FsbGJhY2s+KQotewotfQotCiBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpt
YWtlQ29udGV4dEN1cnJlbnQoKQogewogI2lmIFVTRShOSUNPU0lBKQpAQCAtNDM2LDcgKzQzMiw3
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmNoZWNrR1BVU3RhdHVzKCkKIHsKIH0KIAotUGxh
dGZvcm1HcmFwaGljc0NvbnRleHQzRCBHcmFwaGljc0NvbnRleHQzRDo6cGxhdGZvcm1HcmFwaGlj
c0NvbnRleHQzRCgpCitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIEdyYXBoaWNzQ29udGV4dDNE
OjpwbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEKCkgY29uc3QKIHsKICNpZiBVU0UoTklDT1NJQSkK
ICAgICByZXR1cm4gbV9uaWNvc2lhTGF5ZXItPnBsYXRmb3JtQ29udGV4dCgpOwpAQCAtNDgyLDYg
KzQ3OCwzOSBAQCBFeHRlbnNpb25zM0QmIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRFeHRlbnNpb25z
KCkKICAgICB9CiAgICAgcmV0dXJuICptX2V4dGVuc2lvbnM7CiB9CisKK3ZvaWQqIEdyYXBoaWNz
Q29udGV4dDNEOjptYXBCdWZmZXJSYW5nZShHQzNEZW51bSwgR0MzRGludHB0ciwgR0MzRHNpemVp
cHRyLCBHQzNEYml0ZmllbGQpCit7Cit9CisKK0dDM0Rib29sZWFuIEdyYXBoaWNzQ29udGV4dDNE
Ojp1bm1hcEJ1ZmZlcihHQzNEZW51bSkKK3sKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6Y29weUJ1ZmZlclN1YkRhdGEoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNE
aW50cHRyLCBHQzNEaW50cHRyLCBHQzNEc2l6ZWlwdHIpCit7Cit9CisKK3ZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmdldEludGVybmFsZm9ybWF0aXYoR0MzRGVudW0sIEdDM0RlbnVtLCBHQzNEZW51
bSwgR0MzRHNpemVpLCBHQzNEaW50KikKK3sKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
cmVuZGVyYnVmZmVyU3RvcmFnZU11bHRpc2FtcGxlKEdDM0RlbnVtLCBHQzNEc2l6ZWksIEdDM0Rl
bnVtLCBHQzNEc2l6ZWksIEdDM0RzaXplaSkKK3sKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6dGV4U3RvcmFnZTJEKEdDM0RlbnVtLCBHQzNEc2l6ZWksIEdDM0RlbnVtLCBHQzNEc2l6ZWks
IEdDM0RzaXplaSkKK3sKK30KKwordm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dGV4U3RvcmFnZTNE
KEdDM0RlbnVtLCBHQzNEc2l6ZWksIEdDM0RlbnVtLCBHQzNEc2l6ZWksIEdDM0RzaXplaSwgR0Mz
RHNpemVpKQoreworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRBY3RpdmVVbmlmb3Jt
cyhQbGF0Zm9ybTNET2JqZWN0LCBjb25zdCBWZWN0b3I8R0MzRHVpbnQ+JiwgR0MzRGVudW0sIFZl
Y3RvcjxHQzNEaW50PiYpCit7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1
cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAppbmRleCA2
NjMyMzE1Njk1YmEyMWMyNjdkMTU1OTMyZWJhOTE0N2ZiNjZhZTA2Li42ODNmNDVmOTNjMjg5MzNl
NzJjM2I2ZjU5M2VhMTQ5MmM3NWVlMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckdDM0RQbGF0Zm9ybUxheWVyLmNwcApAQCAtMzAsMTQgKzMwLDE0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotVGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyOjpUZXh0dXJlTWFwcGVy
R0MzRFBsYXRmb3JtTGF5ZXIoR3JhcGhpY3NDb250ZXh0M0QmIGNvbnRleHQsIEdyYXBoaWNzQ29u
dGV4dDNEOjpSZW5kZXJTdHlsZSByZW5kZXJTdHlsZSkKK1RleHR1cmVNYXBwZXJHQzNEUGxhdGZv
cm1MYXllcjo6VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNE
JiBjb250ZXh0LCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24gZGVzdGluYXRpb24pCiAg
ICAgOiBtX2NvbnRleHQoY29udGV4dCkKIHsKLSAgICBzd2l0Y2ggKHJlbmRlclN0eWxlKSB7Ci0g
ICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyT2Zmc2NyZWVuOgorICAgIHN3aXRjaCAo
ZGVzdGluYXRpb24pIHsKKyAgICBjYXNlIEdyYXBoaWNzQ29udGV4dDNEOjpEZXN0aW5hdGlvbjo6
T2Zmc2NyZWVuOgogICAgICAgICBtX2dsQ29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlT2Zmc2Ny
ZWVuQ29udGV4dCgmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmco
KSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRp
cmVjdGx5VG9Ib3N0V2luZG93OgorICAgIGNhc2UgR3JhcGhpY3NDb250ZXh0M0Q6OkRlc3RpbmF0
aW9uOjpEaXJlY3RseVRvSG9zdFdpbmRvdzoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTYxLDcgKzYxLDcgQEAgYm9vbCBUZXh0dXJlTWFw
cGVyR0MzRFBsYXRmb3JtTGF5ZXI6Om1ha2VDb250ZXh0Q3VycmVudCgpCiAgICAgcmV0dXJuIG1f
Z2xDb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsKIH0KIAotUGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQzRCBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXI6OnBsYXRmb3JtQ29udGV4dCgp
CitQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIFRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXll
cjo6cGxhdGZvcm1Db250ZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9nbENvbnRleHQpOwog
ICAgIHJldHVybiBtX2dsQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdDM0RQ
bGF0Zm9ybUxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyLmgKaW5kZXggZTZmMDljODc5ODU0ODYzMmVl
NGIwYWE1YTU2MzA2MTVhMjRhMzc4OS4uYjhlODFmMTFiMjE4YzA0ZTA2NTQ0MWZiYjY5Y2RhNGY2
OWUzZjVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL1RleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIu
aApAQCAtMzQsMTEgKzM0LDExIEBAIGNsYXNzIFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJv
eHk7CiBjbGFzcyBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5ZXIgOiBwdWJsaWMgUGxhdGZv
cm1MYXllciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgVGV4
dHVyZU1hcHBlckdDM0RQbGF0Zm9ybUxheWVyKEdyYXBoaWNzQ29udGV4dDNEJiwgR3JhcGhpY3ND
b250ZXh0M0Q6OlJlbmRlclN0eWxlKTsKKyAgICBUZXh0dXJlTWFwcGVyR0MzRFBsYXRmb3JtTGF5
ZXIoR3JhcGhpY3NDb250ZXh0M0QmLCBHcmFwaGljc0NvbnRleHQzRDo6RGVzdGluYXRpb24pOwog
ICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJHQzNEUGxhdGZvcm1MYXllcigpOwogCiAgICAgYm9v
bCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dDNEIHBs
YXRmb3JtQ29udGV4dCgpOworICAgIFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0M0QgcGxhdGZvcm1D
b250ZXh0KCkgY29uc3Q7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgUmVm
UHRyPFRleHR1cmVNYXBwZXJQbGF0Zm9ybUxheWVyUHJveHk+IHByb3h5KCkgY29uc3Qgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODYxNTliOGZhNzRlMjRmMWFkNjJhMmM4Mzk2MTgxMDE1YzVhMjQ5Yi4uZTM1
NGFkYmEyNGVhZDkxYzkyMDEyMWVjMjU2MTMyNzdhMTExMjhkMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE5LTEyLTI3ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV2ViR0xdIEFkZCBhIHB1cmUgdmlydHVhbCBiYXNlIGNsYXNzIGZvciBHcmFwaGljc0NvbnRl
eHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1
NjA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIGEgdGVzdCB0aGF0IGhhcyBleGlzdGluZyBjb3ZlcmFnZSBpbiB0aGUgV2ViR0wgdGVzdCBz
dWl0ZS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1h
dHRhY2htZW50LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2NhbnZhcy93
ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC5odG1sOiBSZW1vdmVkLgorCiAyMDE5
LTEyLTI0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJF
R1JFU1NJT046IFsgQ2F0YWxpbmEgd2sxIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9jb250ZW50LXR5cGUvc2NyaXB0LndpbmRvdy5odG1sIGlzIGZhaWxpbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1h
dHRhY2htZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Zy
YW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOGU3ZmRmZTg3NzZmMjhhOWNiM2UwNjQzNzU5YzUxNzEwMGVmMGM3Yi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNobWVudC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2NTkgKzAsMCBAQAotVGVzdCBmcmFtZWJ1ZmZlciBv
YmplY3QgYXR0YWNobWVudCBiZWhhdmlvcnMKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLURpbWVuc2lvbnMgMCB4IDAKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3Jl
YXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0
dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGgg
dXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVO
Q0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1
NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9G
UkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX0FUVEFD
SE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNI
TUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNI
TUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNr
RnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04g
OiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVS
X09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1F
TlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4g
ZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0
Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBk
ZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBkZXB0aFN0ZW5jaWwsIHRoZW4g
c3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBB
U1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYw
NTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9PSBSR0JB
NAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9B
MQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1
Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJv
ID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAK
LUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJidWZmZXIKLVBBU1MgZGVwdGhT
dGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuZ2V0UmVu
ZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX1dJRFRI
KSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVy
YnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFM
X0ZPUk1BVCkgaXMgZ2wuREVQVEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBB
U1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVS
QlVGRkVSX0dSRUVOX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVy
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfQUxQSEFfU0laRSkgaXMgMAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi0KLURpbWVuc2lvbnMgMCB4IDIKLUNyZWF0ZSByZW5kZXJidWZm
ZXJzCi1QQVNTIGdsID0gY3JlYXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVu
ZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLUF0dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNT
IGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9O
IDogCi1BdHRhY2ggZGVwdGggdXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGds
LmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhn
bC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVk
IHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRh
Y2ggZGVwdGggdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
c3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2ls
IHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVzaW5nIERF
UFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2lu
ZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURf
RlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aFN0ZW5jaWwg
dXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2lu
ZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBp
cyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5W
QUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCwgdGhlbiBzdGVuY2ls
LCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0
YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZG
RVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGgsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0Zy
YW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRl
cHRoU3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZF
UikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3RlbmNpbCwgY2F1
c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBk
ZXB0aFN0ZW5jaWwsIHRoZW4gc3RlbmNpbCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTQKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRl
cm5hbGZvcm1hdCA9PSBSR0JBNAotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJu
YWxmb3JtYXQgPT0gUkdCNV9BMQotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwu
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wu
Y2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJu
YWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVm
ZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9f
RVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5j
aGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFT
UyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFU
SU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04gOiAKLUNyZWF0ZSBhbmQgYXR0YWNoIGRlcHRoU3RlbmNpbCByZW5kZXJi
dWZmZXIKLVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wu
UkVOREVSQlVGRkVSX1dJRFRIKSBpcyB3aWR0aAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBp
cyBnbC5ERVBUSF9TVEVOQ0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5S
RU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRS
ZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JF
RU5fU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRl
cmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9T
SVpFKSBpcyAwCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLQotRGltZW5zaW9ucyAyIHggMAotQ3JlYXRlIHJlbmRlcmJ1ZmZlcnMKLVBBU1Mg
Z2wgPSBjcmVhdGUzRENvbnRleHQoKSBpcyBub24tbnVsbC4KLVBBU1MgY29sb3JCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJl
bmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIHN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotQXR0YWNoIGRlcHRoIHVzaW5nIERFUFRIX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGds
LkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFj
aCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJh
bWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVG
RkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBkZXB0aCB1
c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVS
KSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLUF0dGFjaCBzdGVuY2lsIHVz
aW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigp
IGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9S
IDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVy
bmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQ
VEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1u
dWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0
Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9P
UEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJ
TF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NU
RU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5v
bi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2
MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElE
X0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBU
SF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51
bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1Mg
Z2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQK
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09Q
RVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJB
TUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxf
QVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxs
LgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGds
LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcg
Y29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4K
LVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggc3RlbmNp
bCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGljdAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLUF0dGFjaCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxp
Y3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJT
dGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1BdHRhY2ggZGVwdGhTdGVuY2ls
LCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA1NAotQXR0YWNoIHN0ZW5jaWwsIHRoZW4gZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZs
aWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotQXR0YWNoIGRlcHRoU3RlbmNp
bCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1NAotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0
ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9
PSBSR0I1X0ExCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0
RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA1NAotUEFTUyBnZXRFcnJv
ciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiAKLUF0dGFjaCBjb2xvciByZW5kZXJidWZmZXIgd2l0aCBpbnRlcm5hbGZvcm1hdCA9
PSBSR0I1NjUKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBu
b24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAot
UEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVi
dWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9y
IHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IAotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhTdGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFT
UyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVs
bC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfSEVJR0hUKSBpcyBoZWlnaHQKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGds
LlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0lOVEVSTkFMX0ZPUk1BVCkgaXMgZ2wuREVQ
VEhfU1RFTkNJTAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfUkVEX1NJWkUpIGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVm
ZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkVOREVSQlVGRkVSX0dSRUVOX1NJWkUp
IGlzIDAKLVBBU1MgZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJVRkZFUiwg
Z2wuUkVOREVSQlVGRkVSX0JMVUVfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQUxQSEFfU0laRSkgaXMg
MAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGZi
byA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRF
cnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDog
Ci0KLURpbWVuc2lvbnMgMiB4IDIKLUNyZWF0ZSByZW5kZXJidWZmZXJzCi1QQVNTIGdsID0gY3Jl
YXRlM0RDb250ZXh0KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRl
UmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMg
bm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAK
LVBBU1MgZGVwdGhTdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9u
LW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLUF0
dGFjaCBkZXB0aCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZy
YW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlJFRF9CSVRTKSAr
IGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5CTFVF
X0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJVFMpID49IDE2IGlzIHRydWUKLVBB
U1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wu
Z2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggZGVwdGgg
dXNpbmcgU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0
dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggZGVwdGggdXNpbmcgREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkg
aXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1Ig
OiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJu
ZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2ggc3RlbmNpbCB1c2luZyBTVEVO
Q0lMX0FUVEFDSE1FTlQKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24t
bnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2
MQotQXR0YWNoIHN0ZW5jaWwgdXNpbmcgREVQVEhfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5j
cmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0
ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNo
IHN0ZW5jaWwgdXNpbmcgREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
ZGVwdGhTdGVuY2lsIHVzaW5nIERFUFRIX1NURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBn
bC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMo
Z2wuRlJBTUVCVUZGRVIpIHJldHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5S
RURfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0
ZXIoZ2wuQkxVRV9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBp
cyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiBpcyB0cnVl
Ci1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5TVEVOQ0lMX0JJVFMpID49IDggaXMgdHJ1ZQotQXR0
YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UCi1QQVNTIGZibyA9IGdsLmNy
ZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3Rl
ZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTQKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogCi1BdHRhY2gg
ZGVwdGhTdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRUQUNITUVOVAotUEFTUyBmYm8gPSBnbC5jcmVh
dGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQg
dmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJB
TUVCVUZGRVIpIHJldHVybmVkIDM2MDU0Ci1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IAotQXR0YWNoIGRl
cHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRl
RnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDYxCi1BdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2luZyBjb25mbGlj
dAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBn
ZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdh
cyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNjEKLUF0dGFjaCBkZXB0aCwgdGhlbiBk
ZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVi
dWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBO
T19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVk
IDM2MDYxCi1BdHRhY2ggZGVwdGhTdGVuY2lsLCB0aGVuIGRlcHRoLCBjYXVzaW5nIGNvbmZsaWN0
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2Fz
IGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIHN0ZW5jaWwsIHRoZW4g
ZGVwdGhTdGVuY2lsLCBjYXVzaW5nIGNvbmZsaWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1l
YnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
Tk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6
IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5l
ZCAzNjA2MQotQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVzaW5nIGNvbmZs
aWN0Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Ig
d2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVy
U3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1cm5lZCAzNjA2MQotQXR0YWNoIGNvbG9yIHJlbmRl
cmJ1ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQkE0Ci1QQVNTIGNvbG9yQnVmZmVyID0g
Z2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBl
eHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZm
ZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBy
ZXR1cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0
UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykg
KyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5n
ZXRQYXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFt
ZXRlcihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQXR0YWNoIGNvbG9yIHJlbmRlcmJ1
ZmZlciB3aXRoIGludGVybmFsZm9ybWF0ID09IFJHQjVfQTEKLVBBU1MgY29sb3JCdWZmZXIgPSBn
bC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4
cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZl
cigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VS
Uk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJl
dHVybmVkIDM2MDUzCi1QQVNTIGdsLmdldFBhcmFtZXRlcihnbC5SRURfQklUUykgKyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuR1JFRU5fQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQkxVRV9CSVRTKSAr
IGdsLmdldFBhcmFtZXRlcihnbC5BTFBIQV9CSVRTKSA+PSAxNiBpcyB0cnVlCi1QQVNTIGdsLmdl
dFBhcmFtZXRlcihnbC5ERVBUSF9CSVRTKSA9PSAwIGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1l
dGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCBpcyB0cnVlCi1BdHRhY2ggY29sb3IgcmVuZGVyYnVm
ZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNTY1Ci1QQVNTIGNvbG9yQnVmZmVyID0gZ2wu
Y3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBl
Y3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIo
KSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJP
UiA6IAotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSByZXR1
cm5lZCAzNjA1MwotUEFTUyBnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJVFMpICsgZ2wuZ2V0UGFy
YW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkJMVUVfQklUUykgKyBn
bC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYgaXMgdHJ1ZQotUEFTUyBnbC5nZXRQ
YXJhbWV0ZXIoZ2wuREVQVEhfQklUUykgPT0gMCBpcyB0cnVlCi1QQVNTIGdsLmdldFBhcmFtZXRl
cihnbC5TVEVOQ0lMX0JJVFMpID09IDAgaXMgdHJ1ZQotQ3JlYXRlIGFuZCBhdHRhY2ggZGVwdGhT
dGVuY2lsIHJlbmRlcmJ1ZmZlcgotUEFTUyBkZXB0aFN0ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVS
ZW5kZXJidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZh
bHVlOiBOT19FUlJPUiA6IAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVO
REVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfV0lEVEgpIGlzIHdpZHRoCi1QQVNTIGdsLmdldFJl
bmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlH
SFQpIGlzIGhlaWdodAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVS
QlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSBpcyBnbC5ERVBUSF9TVEVO
Q0lMCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGds
LlJFTkRFUkJVRkZFUl9SRURfU0laRSkgaXMgMAotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfR1JFRU5fU0laRSkgaXMgMAot
UEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5E
RVJCVUZGRVJfQkxVRV9TSVpFKSBpcyAwCi1QQVNTIGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRl
cihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSBpcyAwCi1QQVNT
IGdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJV
RkZFUl9ERVBUSF9TSVpFKSA+IDAgaXMgdHJ1ZQotUEFTUyBnbC5nZXRSZW5kZXJidWZmZXJQYXJh
bWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfU1RFTkNJTF9TSVpFKSA+IDAg
aXMgdHJ1ZQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1Q
QVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVy
cm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgcmV0dXJuZWQgMzYwNTMKLVBBU1MgZ2wuZ2V0UGFy
YW1ldGVyKGdsLlJFRF9CSVRTKSArIGdsLmdldFBhcmFtZXRlcihnbC5HUkVFTl9CSVRTKSArIGds
LmdldFBhcmFtZXRlcihnbC5CTFVFX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkFMUEhBX0JJ
VFMpID49IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID49
IDE2IGlzIHRydWUKLVBBU1MgZ2wuZ2V0UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPj0gOCBp
cyB0cnVlCi0KLXRlc3Q6IERFUFRIX0NPTVBPTkVOVDE2IHZzIERFUFRIX1NURU5DSUwgd2l0aCBk
ZWxldGUKLVBBU1Mgc2hvdWxkIGJlIGdyZWVuCi10ZXN0IGRlbGV0aW5nIHNlY29uZCByZW5kZXJi
dWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMg
Z2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVl
OiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLQotdGVzdDogREVQVEhfQ09NUE9O
RU5UMTYgdnMgREVQVEhfU1RFTkNJTCB3aXRoIHVuYmluZAotUEFTUyBzaG91bGQgYmUgZ3JlZW4K
LXRlc3QgdW5iaW5kaW5nIHNlY29uZCByZW5kZXJidWZmZXIKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgaXMgZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBzaG91bGQg
YmUgZ3JlZW4KLQotdGVzdDogREVQVEhfU1RFTkNJTCB2cyBERVBUSF9DT01QT05FTlQxNiB3aXRo
IGRlbGV0ZQotUEFTUyBzaG91bGQgYmUgZ3JlZW4KLXRlc3QgZGVsZXRpbmcgc2Vjb25kIHJlbmRl
cmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBp
cyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFs
dWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3VsZCBiZSBncmVlbgotCi10ZXN0OiBERVBUSF9TVEVO
Q0lMIHZzIERFUFRIX0NPTVBPTkVOVDE2IHdpdGggdW5iaW5kCi1QQVNTIHNob3VsZCBiZSBncmVl
bgotdGVzdCB1bmJpbmRpbmcgc2Vjb25kIHJlbmRlcmJ1ZmZlcgotUEFTUyBnbC5jaGVja0ZyYW1l
YnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBpcyBnbC5GUkFNRUJVRkZFUl9DT01QTEVURQot
UEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNTIHNob3Vs
ZCBiZSBncmVlbgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDog
Ci1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGNv
bG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGRl
cHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdl
dEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLQotQXR0YWNobWVudHMgb2Yg
ZGlmZmVyZW50IHNpemVzIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMgKE9wZW5HTCBFUyAyLjAgNC40LjUpCi1QQVNTIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGRlcHRoQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkgaXMgbm9uLW51bGwuCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJS
T1IgOiAKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hv
dWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFT
UyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRF
X0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuY2hlY2tGcmFt
ZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBM
RVRFIHdhcyBGUkFNRUJVRkZFUl9DT01QTEVURQotUEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3Rh
dHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1F
TlNJT05TIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlMgb3IgRlJBTUVCVUZG
RVJfVU5TVVBQT1JURUQKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJV
RkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0NPTVBMRVRFIHdhcyBGUkFNRUJVRkZFUl9DT01Q
TEVURQotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi1QQVNT
IGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lO
Q09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05T
IG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0
dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJB
TUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19F
UlJPUiA6IAotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIGlzIG5vbi1udWxsLgot
UEFTUyBnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUg
RlJBTUVCVUZGRVJfQ09NUExFVEUgd2FzIEZSQU1FQlVGRkVSX0NPTVBMRVRFCi0KLVdyb25nIHN0
b3JhZ2UgdHlwZSBmb3IgdHlwZSBvZiBhdHRhY2htZW50IGJlIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5UIG9yIEZS
QU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wu
RlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZG
RVJfQ09NUExFVEUKLQotMCBzaXplIGF0dGFjaG1lbnQgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lO
Q09NUExFVEVfQVRUQUNITUVOVCAoT3BlbkdMIEVTIDIuMCA0LjQuNSkKLVBBU1MgZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lO
Q09NUExFVEVfQVRUQUNITUVOVCB3YXMgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9BVFRBQ0hNRU5U
IG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLQotTm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVf
RlJBTUVCVUZGRVJfTUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KQotUEFT
UyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnbC5jaGVj
a0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSBzaG91bGQgYmUgRlJBTUVCVUZGRVJf
SU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1FTlQgd2FzIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVf
TUlTU0lOR19BVFRBQ0hNRU5UIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi1QQVNTIGNvbG9y
QnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkgaXMgbm9uLW51bGwuCi1QQVNTIGdsLmNo
ZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHNob3VsZCBiZSBGUkFNRUJVRkZF
Ul9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUKLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1
ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExF
VEVfTUlTU0lOR19BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdf
QVRUQUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotUEFTUyBnZXRFcnJvciB3YXMg
ZXhwZWN0ZWQgdmFsdWU6IE5PX0VSUk9SIDogCi0KLVRlc3QgZHJhd2luZyBvciByZWFkaW5nIGZy
b20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1
ZmZlcigpIGlzIG5vbi1udWxsLgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIp
IHNob3VsZCBiZSBGUkFNRUJVRkZFUl9DT01QTEVURSB3YXMgRlJBTUVCVUZGRVJfQ09NUExFVEUK
LVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJl
IEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfRElNRU5TSU9OUyB3YXMgRlJBTUVCVUZGRVJfSU5DT01Q
TEVURV9ESU1FTlNJT05TIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9SVEVECi0KLURyYXdpbmcgb3Ig
cmVhZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2
YWx1ZTogTk9fRVJST1IgOiAKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZB
TElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGRyYXdBcnJheXMgd2l0aCBpbmNvbXBsZXRlIGZy
YW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiByZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZl
cgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogY29weVRleEltYWdlMkQgZnJvbSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1Q
QVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVS
QVRJT04gOiBjb3B5VGV4U3ViSW1hZ2UyRCBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBB
U1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJB
VElPTiA6IGNsZWFyIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBmYm8yID0gZ2wu
Y3JlYXRlRnJhbWVidWZmZXIoKSBpcyBub24tbnVsbC4KLVBBU1MgZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJlIEZSQU1FQlVGRkVSX0lOQ09NUExFVEVf
TUlTU0lOR19BVFRBQ0hNRU5UIHdhcyBGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRU
QUNITUVOVCBvciBGUkFNRUJVRkZFUl9VTlNVUFBPUlRFRAotCi1EcmF3aW5nIG9yIHJlYWRpbmcg
ZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyIHNob3VsZCBnZW5lcmF0ZSBJTlZBTElEX0ZS
QU1FQlVGRkVSX09QRVJBVElPTgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IE5P
X0VSUk9SIDogCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTogSU5WQUxJRF9GUkFN
RUJVRkZFUl9PUEVSQVRJT04gOiBkcmF3QXJyYXlzIHdpdGggaW5jb21wbGV0ZSBmcmFtZWJ1ZmZl
cgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJf
T1BFUkFUSU9OIDogcmVhZFBpeGVscyBmcm9tIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJTlZBTElEX09QRVJBVElPTiA6IGNvcHlUZXhJ
bWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhw
ZWN0ZWQgdmFsdWU6IElOVkFMSURfT1BFUkFUSU9OIDogY29weVRleFN1YkltYWdlMkQgZnJvbSBp
bmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1ZTog
SU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjbGVhciB3aXRoIGluY29tcGxldGUgZnJh
bWVidWZmZXIKLVBBU1MgY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSBpcyBu
b24tbnVsbC4KLQotRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4gaW5jb21wbGV0ZSBmcmFtZWJ1
ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04KLVBBU1Mg
Z2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBOT19FUlJPUiA6IAotUEFTUyBnZXRFcnJvciB3
YXMgZXhwZWN0ZWQgdmFsdWU6IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogZHJhd0Fy
cmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVj
dGVkIHZhbHVlOiBJTlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IHJlYWRQaXhlbHMgZnJv
bSBpbmNvbXBsZXRlIGZyYW1lYnVmZmVyCi1QQVNTIGdldEVycm9yIHdhcyBleHBlY3RlZCB2YWx1
ZTogSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04gOiBjb3B5VGV4SW1hZ2UyRCBmcm9tIGlu
Y29tcGxldGUgZnJhbWVidWZmZXIKLVBBU1MgZ2V0RXJyb3Igd2FzIGV4cGVjdGVkIHZhbHVlOiBJ
TlZBTElEX0ZSQU1FQlVGRkVSX09QRVJBVElPTiA6IGNvcHlUZXhTdWJJbWFnZTJEIGZyb20gaW5j
b21wbGV0ZSBmcmFtZWJ1ZmZlcgotUEFTUyBnZXRFcnJvciB3YXMgZXhwZWN0ZWQgdmFsdWU6IElO
VkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIDogY2xlYXIgd2l0aCBpbmNvbXBsZXRlIGZyYW1l
YnVmZmVyCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZmZXIt
b2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Zy
YW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGI1MmRhMTU0ZDk4MDE0MTM4YmJjNjU1ODhjMjNhODNiOGQ3NDhhMjIuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9j
YW52YXMvd2ViZ2wvZnJhbWVidWZmZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDUzMCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJnbC10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvd2ViZ2wtdGVzdC11dGlscy5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRXZWJHTEVycm9yc1RvQ29uc29s
ZUVuYWJsZWQoZmFsc2UpOwotCi12YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7Ci12YXIgZ2w7Ci12
YXIgZmJvOwotdmFyIGRlcHRoQnVmZmVyOwotdmFyIHN0ZW5jaWxCdWZmZXI7Ci12YXIgZGVwdGhT
dGVuY2lsQnVmZmVyOwotdmFyIGNvbG9yQnVmZmVyOwotdmFyIHdpZHRoOwotdmFyIGhlaWdodDsK
LQotY29uc3QgQUxMT1dfQ09NUExFVEUgICAgICAgICAgICAgID0gMHgwMTsKLWNvbnN0IEFMTE9X
X1VOU1VQUE9SVEVEICAgICAgICAgICA9IDB4MDI7Ci1jb25zdCBBTExPV19JTkNPTVBMRVRFX0FU
VEFDSE1FTlQgPSAweDA0OwotCi1mdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0
YXR1c2VzKGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICAvLyBJZiB0aGUgZnJhbWVidWZmZXIgaXMg
aW4gYW4gZXJyb3Igc3RhdGUgZm9yIG11bHRpcGxlIHJlYXNvbnMsCi0gICAgLy8gd2UgY2FuJ3Qg
Z3VhcmFudGVlIHdoaWNoIG9uZSB3aWxsIGJlIHJlcG9ydGVkLgotICAgIHZhciBzdGF0dXMgPSBn
bC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKTsKLSAgICB2YXIgc3RhdHVz
QWxsb3dlZCA9ICgoYWxsb3dlZFN0YXR1c2VzICYgQUxMT1dfQ09NUExFVEUpICYmIChzdGF0dXMg
PT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAg
KChhbGxvd2VkU3RhdHVzZXMgJiBBTExPV19VTlNVUFBPUlRFRCkgJiYgKHN0YXR1cyA9PSBnbC5G
UkFNRUJVRkZFUl9VTlNVUFBPUlRFRCkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAoKGFs
bG93ZWRTdGF0dXNlcyAmIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCkgJiYgKHN0YXR1cyA9
PSBnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQpKTsKLSAgICB2YXIgbXNnID0g
ImdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpIHJldHVybmVkICIgKyBz
dGF0dXM7Ci0gICAgaWYgKHN0YXR1c0FsbG93ZWQpCi0gICAgICAgIHRlc3RQYXNzZWQobXNnKTsK
LSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQobXNnKTsKLX0KLQotZnVuY3Rpb24gY2hlY2tC
dWZmZXJCaXRzKGF0dGFjaG1lbnQwLCBhdHRhY2htZW50MSkKLXsKLSAgICBpZiAoZ2wuY2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExF
VEUpCi0gICAgICByZXR1cm47Ci0KLSAgICB2YXIgaGF2ZURlcHRoQnVmZmVyID0gYXR0YWNobWVu
dDAgPT0gZ2wuREVQVEhfQVRUQUNITUVOVCB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICBh
dHRhY2htZW50MCA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQgfHwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfQVRUQUNITUVOVCB8fAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBhdHRhY2htZW50MSA9PSBnbC5ERVBUSF9TVEVOQ0lMX0FU
VEFDSE1FTlQ7Ci0gICAgdmFyIGhhdmVTdGVuY2lsQnVmZmVyID0gYXR0YWNobWVudDAgPT0gZ2wu
U1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNo
bWVudDAgPT0gZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuU1RFTkNJTF9BVFRBQ0hNRU5UIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudDEgPT0gZ2wuREVQVEhfU1RFTkNJTF9B
VFRBQ0hNRU5UOwotCi0gICAgc2hvdWxkQmVUcnVlKCJnbC5nZXRQYXJhbWV0ZXIoZ2wuUkVEX0JJ
VFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGdsLkdSRUVOX0JJVFMpICsgZ2wuZ2V0UGFyYW1ldGVyKGds
LkJMVUVfQklUUykgKyBnbC5nZXRQYXJhbWV0ZXIoZ2wuQUxQSEFfQklUUykgPj0gMTYiKTsKLQot
ICAgIGlmIChoYXZlRGVwdGhCdWZmZXIpCi0gICAgICBzaG91bGRCZVRydWUoImdsLmdldFBhcmFt
ZXRlcihnbC5ERVBUSF9CSVRTKSA+PSAxNiIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1
ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLkRFUFRIX0JJVFMpID09IDAiKTsKLQotICAgIGlmIChoYXZl
U3RlbmNpbEJ1ZmZlcikKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UGFyYW1ldGVyKGdsLlNU
RU5DSUxfQklUUykgPj0gOCIpOwotICAgIGVsc2UKLSAgICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0
UGFyYW1ldGVyKGdsLlNURU5DSUxfQklUUykgPT0gMCIpOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0
YWNobWVudChhdHRhY2htZW50LCBidWZmZXIsIGFsbG93ZWRTdGF0dXNlcykKLXsKLSAgICBzaG91
bGRCZU5vbk51bGwoImZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5k
RnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibyk7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5k
ZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJC
VUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcihnbC5G
UkFNRUJVRkZFUiwgYXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIpOwotICAgIGds
RXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXJGb3JB
bGxvd2VkU3RhdHVzZXMoYWxsb3dlZFN0YXR1c2VzKTsKLSAgICBpZiAoKGFsbG93ZWRTdGF0dXNl
cyAmIEFMTE9XX0NPTVBMRVRFKSA9PSAwKSB7Ci0gICAgICAgIGdsLmNsZWFyKGdsLkNPTE9SX0JV
RkZFUl9CSVQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVC
VUZGRVJfT1BFUkFUSU9OKTsKLSAgICAgICAgZ2wucmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVp
Z2h0LCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJheSh3aWR0aCAqIGhl
aWdodCAqIDQpKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBnbC5JTlZBTElEX0ZSQU1F
QlVGRkVSX09QRVJBVElPTik7Ci0gICAgfQotICAgIGNoZWNrQnVmZmVyQml0cyhhdHRhY2htZW50
KTsKLSAgICBnbC5kZWxldGVGcmFtZWJ1ZmZlcihmYm8pOwotfQotCi1mdW5jdGlvbiB0ZXN0QXR0
YWNobWVudHMoYXR0YWNobWVudDAsIGJ1ZmZlcjAsIGF0dGFjaG1lbnQxLCBidWZmZXIxLCBhbGxv
d2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFt
ZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8p
OwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJh
bWVidWZmZXJSZW5kZXJidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGF0dGFjaG1lbnQwLCBnbC5SRU5E
RVJCVUZGRVIsIGJ1ZmZlcjApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1Ip
OwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBhdHRhY2ht
ZW50MSwgZ2wuUkVOREVSQlVGRkVSLCBidWZmZXIxKTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyRm9yQWxsb3dlZFN0YXR1c2VzKGFs
bG93ZWRTdGF0dXNlcyk7Ci0gICAgY2hlY2tCdWZmZXJCaXRzKGF0dGFjaG1lbnQwLCBhdHRhY2ht
ZW50MSk7Ci0gICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsKLX0KLQotZnVuY3Rpb24gdGVz
dENvbG9yUmVuZGVyYnVmZmVyKGludGVybmFsZm9ybWF0LCBhbGxvd2VkU3RhdHVzZXMpCi17Ci0g
ICAgc2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
Iik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVy
KTsKLSAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgaW50ZXJuYWxm
b3JtYXQsIHdpZHRoLCBoZWlnaHQpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJS
T1IpOwotICAgIHRlc3RBdHRhY2htZW50KGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBjb2xvckJ1ZmZl
ciwgYWxsb3dlZFN0YXR1c2VzKTsKLX0KLQotZnVuY3Rpb24gdGVzdERlcHRoU3RlbmNpbFJlbmRl
cmJ1ZmZlcihhbGxvd2VkU3RhdHVzZXMpCi17Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0
ZW5jaWxCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5k
ZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aFN0ZW5jaWxCdWZmZXIpOwotICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5ERVBUSF9TVEVOQ0lMLCB3aWR0
aCwgaGVpZ2h0KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAg
IC8vIE9wZW5HTCBpdHNlbGYgZG9lc24ndCBzZWVtIHRvIGd1YXJhbnRlZSB0aGF0IGUuZy4gYSAy
IHggMAotICAgIC8vIHJlbmRlcmJ1ZmZlciB3aWxsIHJlcG9ydCAyIGZvciBpdHMgd2lkdGggd2hl
biBxdWVyaWVkLgotICAgIGlmICghKGhlaWdodCA9PSAwICYmIHdpZHRoID4gMCkpCi0gICAgICAg
IHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBn
bC5SRU5ERVJCVUZGRVJfV0lEVEgpIiwgIndpZHRoIik7Ci0gICAgaWYgKCEod2lkdGggPT0gMCAm
JiBoZWlnaHQgPiAwKSkKLSAgICAgICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFt
ZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9IRUlHSFQpIiwgImhlaWdodCIp
OwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUKSIsICJnbC5ERVBUSF9TVEVOQ0lM
Iik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9SRURfU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJn
bC5nZXRSZW5kZXJidWZmZXJQYXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZG
RVJfR1JFRU5fU0laRSkiLCAiMCIpOwotICAgIHNob3VsZEJlKCJnbC5nZXRSZW5kZXJidWZmZXJQ
YXJhbWV0ZXIoZ2wuUkVOREVSQlVGRkVSLCBnbC5SRU5ERVJCVUZGRVJfQkxVRV9TSVpFKSIsICIw
Iik7Ci0gICAgc2hvdWxkQmUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJC
VUZGRVIsIGdsLlJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFKSIsICIwIik7Ci0gICAgLy8gQXZvaWQg
dmVyaWZ5aW5nIHRoZXNlIGZvciB6ZXJvLXNpemVkIHJlbmRlcmJ1ZmZlcnMgZm9yIHRoZSB0aW1l
Ci0gICAgLy8gYmVpbmcgc2luY2UgaXQgYXBwZWFycyB0aGF0IGV2ZW4gT3BlbkdMIGRvZXNuJ3Qg
Z3VhcmFudGVlIHRoZW0uCi0gICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7Ci0gICAg
ICAgIHNob3VsZEJlVHJ1ZSgiZ2wuZ2V0UmVuZGVyYnVmZmVyUGFyYW1ldGVyKGdsLlJFTkRFUkJV
RkZFUiwgZ2wuUkVOREVSQlVGRkVSX0RFUFRIX1NJWkUpID4gMCIpOwotICAgICAgICBzaG91bGRC
ZVRydWUoImdsLmdldFJlbmRlcmJ1ZmZlclBhcmFtZXRlcihnbC5SRU5ERVJCVUZGRVIsIGdsLlJF
TkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkUpID4gMCIpOwotICAgIH0KLSAgICBnbEVycm9yU2hvdWxk
QmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c2VzKTsKLSAgICB0
ZXN0RGVwdGhTdGVuY2lsRGVwdGhTdGVuY2lsKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3REZXB0aFN0
ZW5jaWxEZXB0aFN0ZW5jaWwoKQotewotICAgIGlmICghd2lkdGggfHwgIWhlaWdodCkgewotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdmFyIHRlc3RzID0gWwotICAgICAgICB7ICAgZmly
c3RGb3JtYXQ6IGdsLkRFUFRIX0NPTVBPTkVOVDE2LAotICAgICAgICAgICAgZmlyc3RBdHRhY2g6
IGdsLkRFUFRIX0FUVEFDSE1FTlQsCi0gICAgICAgICAgICBzZWNvbmRGb3JtYXQ6IGdsLkRFUFRI
X1NURU5DSUwsCi0gICAgICAgICAgICBzZWNvbmRBdHRhY2g6IGdsLkRFUFRIX1NURU5DSUxfQVRU
QUNITUVOVAotICAgICAgICB9LAotICAgICAgICB7ICAgZmlyc3RGb3JtYXQ6IGdsLkRFUFRIX1NU
RU5DSUwsCi0gICAgICAgICAgICBmaXJzdEF0dGFjaDogZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hN
RU5ULAotICAgICAgICAgICAgc2Vjb25kRm9ybWF0OiBnbC5ERVBUSF9DT01QT05FTlQxNiwKLSAg
ICAgICAgICAgIHNlY29uZEF0dGFjaDogZ2wuREVQVEhfQVRUQUNITUVOVAotICAgICAgICB9Ci0g
ICAgXTsKLSAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgdGVzdHMubGVuZ3RoOyArK2lpKSB7Ci0g
ICAgICAgIHZhciB0ZXN0ID0gdGVzdHNbaWldOwotICAgICAgICBmb3IgKHZhciBqaiA9IDA7IGpq
IDwgMjsgKytqaikgewotICAgICAgICAgICAgdmFyIGZibyA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVy
KCk7Ci0gICAgICAgICAgICB2YXIgdGV4ID0gZ2wuY3JlYXRlVGV4dHVyZSgpOwotICAgICAgICAg
ICAgdmFyIGZpcnN0UmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAgICAgICAg
ZGVidWcoIiIpOwotICAgICAgICAgICAgZGVidWcoInRlc3Q6ICIgKyB3dHUuZ2xFbnVtVG9TdHJp
bmcoZ2wsIHRlc3QuZmlyc3RGb3JtYXQpICsgIiB2cyAiICsgd3R1LmdsRW51bVRvU3RyaW5nKGds
LCB0ZXN0LnNlY29uZEZvcm1hdCkgKyAiIHdpdGggIiArIChqaiA/ICJ1bmJpbmQiIDogImRlbGV0
ZSIpKTsKLQotICAgICAgICAgICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBm
Ym8pOwotICAgICAgICAgICAgLy8gYXR0YWNoIHRleHR1cmUgYXMgY29sb3IKLSAgICAgICAgICAg
IGdsLmJpbmRUZXh0dXJlKGdsLlRFWFRVUkVfMkQsIHRleCk7Ci0gICAgICAgICAgICBnbC50ZXhJ
bWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIHdpZHRoLCBoZWlnaHQsIDAsIGdsLlJH
QkEsIGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJU
ZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhUVVJF
XzJELCB0ZXgsIDApOwotCi0gICAgICAgICAgICAvLyBhdHRhY2ggZmlyc3QKLSAgICAgICAgICAg
IGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBmaXJzdFJiKTsKLSAgICAgICAg
ICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LmZpcnN0Rm9y
bWF0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVm
ZmVyKGdsLkZSQU1FQlVGRkVSLCB0ZXN0LmZpcnN0QXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIGZp
cnN0UmIpOwotCi0gICAgICAgICAgICBpZiAoZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKLSAgICAgICAgICAgICAg
ICBnbC5lbmFibGUoZ2wuREVQVEhfVEVTVCk7Ci0gICAgICAgICAgICAgICAgdmFyIHByb2dyYW0g
PSB3dHUuc2V0dXBDb2xvclF1YWQoZ2wpOwotICAgICAgICAgICAgICAgIC8vIFRlc3QgaXQgd29y
a3MKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMCwgMjU1LCAw
LCAyNTVdKTsKLSAgICAgICAgICAgICAgICB3dHUuZHJhd1VCeXRlQ29sb3JRdWFkKGdsLCBbMjU1
LCAwLCAwLCAyNTVdKTsgIC8vIHNob3VsZCBub3QgZHJhdyBzaW5jZSBERVBUSF9GVU5DID09IExF
U1MKLSAgICAgICAgICAgICAgICB3dHUuY2hlY2tDYW52YXNSZWN0KGdsLCAwLCAwLCB3aWR0aCwg
aGVpZ2h0LCBbMCwgMjU1LCAwLCAyNTVdLCAic2hvdWxkIGJlIGdyZWVuIik7Ci0KLSAgICAgICAg
ICAgICAgICB2YXIgc2Vjb25kUmIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKTsKLQotICAgICAg
ICAgICAgICAgIC8vIGF0dGFjaCBzZWNvbmQKLSAgICAgICAgICAgICAgICBnbC5iaW5kUmVuZGVy
YnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCB0ZXN0LnNlY29uZEZvcm1hdCwgd2lk
dGgsIGhlaWdodCk7Ci0gICAgICAgICAgICAgICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIo
Z2wuRlJBTUVCVUZGRVIsIHRlc3Quc2Vjb25kQXR0YWNoLCBnbC5SRU5ERVJCVUZGRVIsIHNlY29u
ZFJiKTsKLQotICAgICAgICAgICAgICAgIGlmIChqaiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAvLyBub3cgZGVsZXRlIGl0Ci0gICAgICAgICAgICAgICAgICBkZWJ1ZygidGVzdCBkZWxldGlu
ZyBzZWNvbmQgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAgICBnbC5kZWxldGVSZW5k
ZXJidWZmZXIoc2Vjb25kUmIpOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAvLyB1bmJpbmQgaXQKLSAgICAgICAgICAgICAgICAgIGRlYnVnKCJ0ZXN0IHVuYmlu
ZGluZyBzZWNvbmQgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgICAgICAgICAgICBnbC5mcmFtZWJ1
ZmZlclJlbmRlcmJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgdGVzdC5zZWNvbmRBdHRhY2gsIGdsLlJF
TkRFUkJVRkZFUiwgbnVsbCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
Ly8gSWYgdGhlIGZpcnN0IGF0dGFjaG1lbnQgaXMgbm90IHJlc3RvcmVkIHRoaXMgbWF5IGZhaWwK
LSAgICAgICAgICAgICAgICBzaG91bGRCZSgnZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5G
UkFNRUJVRkZFUiknLCAnZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUnKTsKLSAgICAgICAgICAgICAg
ICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgICAgICAgICAgICAgIC8v
IElmIHRoZSBmaXJzdCBhdHRhY2htZW50IGlzIG5vdCByZXN0b3JlZCB0aGlzIG1heSBmYWlsLgot
ICAgICAgICAgICAgICAgIGdsLmNsZWFyKGdsLkRFUFRIX0JVRkZFUl9CSVQpOwotICAgICAgICAg
ICAgICAgIHd0dS5kcmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFswLCAyNTUsIDAsIDI1NV0pOwotICAg
ICAgICAgICAgICAgIHd0dS5kcmF3VUJ5dGVDb2xvclF1YWQoZ2wsIFsyNTUsIDAsIDAsIDI1NV0p
OyAgLy8gc2hvdWxkIG5vdCBkcmF3IHNpbmNlIERFUFRIX0ZVTkMgPT0gTEVTUwotICAgICAgICAg
ICAgICAgIHd0dS5jaGVja0NhbnZhc1JlY3QoZ2wsIDAsIDAsIHdpZHRoLCBoZWlnaHQsIFswLCAy
NTUsIDAsIDI1NV0sICJzaG91bGQgYmUgZ3JlZW4iKTsKLSAgICAgICAgICAgICAgICBnbC5kaXNh
YmxlKGdsLkRFUFRIX1RFU1QpOwotCi0gICAgICAgICAgICAgICAgaWYgKGpqID09IDEpIHsKLSAg
ICAgICAgICAgICAgICAgIGdsLmRlbGV0ZVJlbmRlcmJ1ZmZlcihzZWNvbmRSYik7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBnbC5kZWxldGVSZW5kZXJi
dWZmZXIoc2Vjb25kUmIpOwotICAgICAgICAgICAgZ2wuZGVsZXRlRnJhbWVidWZmZXIoZmJvKTsK
LSAgICAgICAgfQotICAgIH0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsK
LX0KLQotZGVzY3JpcHRpb24oIlRlc3QgZnJhbWVidWZmZXIgb2JqZWN0IGF0dGFjaG1lbnQgYmVo
YXZpb3JzIik7Ci0KLWZvciAod2lkdGggPSAwOyB3aWR0aCA8PSAyOyB3aWR0aCArPSAyKQotewot
ICAgIGZvciAoaGVpZ2h0ID0gMDsgaGVpZ2h0IDw9IDI7IGhlaWdodCArPSAyKQotICAgIHsKLSAg
ICAgICAgZGVidWcoIiIpOwotICAgICAgICBkZWJ1ZygiRGltZW5zaW9ucyAiICsgd2lkdGggKyAi
IHggIiArIGhlaWdodCk7Ci0KLSAgICAgICAgZGVidWcoIkNyZWF0ZSByZW5kZXJidWZmZXJzIik7
Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZ2wgPSBjcmVhdGUzRENvbnRleHQoKSIpOwotICAg
ICAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVy
KCkiKTsKLSAgICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9y
QnVmZmVyKTsKLSAgICAgICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIs
IGdsLlJHQkE0LCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBn
bC5OT19FUlJPUik7Ci0gICAgICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJF
TkRFUkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdl
KGdsLlJFTkRFUkJVRkZFUiwgZ2wuREVQVEhfQ09NUE9ORU5UMTYsIHdpZHRoLCBoZWlnaHQpOwot
ICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxk
QmVOb25OdWxsKCJzdGVuY2lsQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAg
ICAgICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIHN0ZW5jaWxCdWZmZXIp
OwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuU1RF
TkNJTF9JTkRFWDgsIHdpZHRoLCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2ws
IGdsLk5PX0VSUk9SKTsKLSAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aFN0ZW5jaWxCdWZm
ZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgICAgICBnbC5iaW5kUmVuZGVyYnVm
ZmVyKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhTdGVuY2lsQnVmZmVyKTsKLSAgICAgICAgZ2wucmVu
ZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLkRFUFRIX1NURU5DSUwsIHdpZHRo
LCBoZWlnaHQpOwotICAgICAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQot
ICAgICAgICB2YXIgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlCi0gICAgICAgICAgICA9ICh3aWR0
aCA9PSAwIHx8IGhlaWdodCA9PSAwKSA/IEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCA6IEFM
TE9XX0NPTVBMRVRFOwotCi0gICAgICAgIC8vIHNvbWUgY2FzZXMgaW52b2x2aW5nIHN0ZW5jaWwg
c2VlbSB0byBiZSBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQKLSAgICAgICAgdmFyIGFsbG93ZWRT
dGF0dXNGb3JJbXBsRGVwZW5kZW50Q2FzZSA9IGFsbG93ZWRTdGF0dXNGb3JHb29kQ2FzZSB8IEFM
TE9XX1VOU1VQUE9SVEVEOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGggdXNpbmcgREVQ
VEhfQVRUQUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5ERVBUSF9BVFRBQ0hN
RU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICAgICAgZGVi
dWcoIkF0dGFjaCBkZXB0aCB1c2luZyBTVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVz
dEF0dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5D
T01QTEVURV9BVFRBQ0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aCB1c2luZyBE
RVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQ
VEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgQUxMT1dfSU5DT01QTEVURV9BVFRB
Q0hNRU5UKTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsIHVzaW5nIFNURU5DSUxfQVRU
QUNITUVOVCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudChnbC5TVEVOQ0lMX0FUVEFDSE1FTlQs
IHN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JJbXBsRGVwZW5kZW50Q2FzZSk7Ci0gICAg
ICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCB1c2luZyBERVBUSF9BVFRBQ0hNRU5UIik7Ci0gICAg
ICAgIHRlc3RBdHRhY2htZW50KGdsLkRFUFRIX0FUVEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIEFM
TE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNp
bCB1c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1l
bnQoZ2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBzdGVuY2lsQnVmZmVyLCBBTExPV19JTkNP
TVBMRVRFX0FUVEFDSE1FTlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1
c2luZyBERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQo
Z2wuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5ULCBkZXB0aFN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRT
dGF0dXNGb3JHb29kQ2FzZSk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggZGVwdGhTdGVuY2lsIHVz
aW5nIERFUFRIX0FUVEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuREVQVEhf
QVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBBTExPV19JTkNPTVBMRVRFX0FUVEFDSE1F
TlQpOwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCB1c2luZyBTVEVOQ0lMX0FU
VEFDSE1FTlQiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1lbnQoZ2wuU1RFTkNJTF9BVFRBQ0hNRU5U
LCBkZXB0aFN0ZW5jaWxCdWZmZXIsIEFMTE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAg
ICAgICAgdmFyIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNobWVudAotICAgICAgICAg
ICAgPSAod2lkdGggPT0gMCB8fCBoZWlnaHQgPT0gMCkgPyBBTExPV19VTlNVUFBPUlRFRCB8IEFM
TE9XX0lOQ09NUExFVEVfQVRUQUNITUVOVAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOiBBTExPV19VTlNVUFBPUlRFRDsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNo
IGRlcHRoLCB0aGVuIHN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0
dGFjaG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5TVEVOQ0lMX0FU
VEFDSE1FTlQsIHN0ZW5jaWxCdWZmZXIsIGFsbG93ZWRTdGF0dXNGb3JDb25mbGljdGVkQXR0YWNo
bWVudCk7Ci0gICAgICAgIGRlYnVnKCJBdHRhY2ggc3RlbmNpbCwgdGhlbiBkZXB0aCwgY2F1c2lu
ZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuU1RFTkNJTF9BVFRBQ0hN
RU5ULCBzdGVuY2lsQnVmZmVyLCBnbC5ERVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxs
b3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFj
aCBkZXB0aCwgdGhlbiBkZXB0aFN0ZW5jaWwsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAg
dGVzdEF0dGFjaG1lbnRzKGdsLkRFUFRIX0FUVEFDSE1FTlQsIGRlcHRoQnVmZmVyLCBnbC5ERVBU
SF9TVEVOQ0lMX0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0Zv
ckNvbmZsaWN0ZWRBdHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBkZXB0aFN0ZW5j
aWwsIHRoZW4gZGVwdGgsIGNhdXNpbmcgY29uZmxpY3QiKTsKLSAgICAgICAgdGVzdEF0dGFjaG1l
bnRzKGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwgZGVwdGhTdGVuY2lsQnVmZmVyLCBnbC5E
RVBUSF9BVFRBQ0hNRU5ULCBkZXB0aEJ1ZmZlciwgYWxsb3dlZFN0YXR1c0ZvckNvbmZsaWN0ZWRB
dHRhY2htZW50KTsKLSAgICAgICAgZGVidWcoIkF0dGFjaCBzdGVuY2lsLCB0aGVuIGRlcHRoU3Rl
bmNpbCwgY2F1c2luZyBjb25mbGljdCIpOwotICAgICAgICB0ZXN0QXR0YWNobWVudHMoZ2wuREVQ
VEhfQVRUQUNITUVOVCwgZGVwdGhCdWZmZXIsIGdsLkRFUFRIX1NURU5DSUxfQVRUQUNITUVOVCwg
ZGVwdGhTdGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQp
OwotICAgICAgICBkZWJ1ZygiQXR0YWNoIGRlcHRoU3RlbmNpbCwgdGhlbiBzdGVuY2lsLCBjYXVz
aW5nIGNvbmZsaWN0Iik7Ci0gICAgICAgIHRlc3RBdHRhY2htZW50cyhnbC5ERVBUSF9TVEVOQ0lM
X0FUVEFDSE1FTlQsIGRlcHRoU3RlbmNpbEJ1ZmZlciwgZ2wuU1RFTkNJTF9BVFRBQ0hNRU5ULCBz
dGVuY2lsQnVmZmVyLCBhbGxvd2VkU3RhdHVzRm9yQ29uZmxpY3RlZEF0dGFjaG1lbnQpOwotCi0g
ICAgICAgIGRlYnVnKCJBdHRhY2ggY29sb3IgcmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3Jt
YXQgPT0gUkdCQTQiKTsKLSAgICAgICAgdGVzdENvbG9yUmVuZGVyYnVmZmVyKGdsLlJHQkE0LCBh
bGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJBdHRhY2ggY29sb3Ig
cmVuZGVyYnVmZmVyIHdpdGggaW50ZXJuYWxmb3JtYXQgPT0gUkdCNV9BMSIpOwotICAgICAgICB0
ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wuUkdCNV9BMSwgYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNl
KTsKLQotICAgICAgICBkZWJ1ZygiQXR0YWNoIGNvbG9yIHJlbmRlcmJ1ZmZlciB3aXRoIGludGVy
bmFsZm9ybWF0ID09IFJHQjU2NSIpOwotICAgICAgICB0ZXN0Q29sb3JSZW5kZXJidWZmZXIoZ2wu
UkdCNTY1LCBhbGxvd2VkU3RhdHVzRm9yR29vZENhc2UpOwotCi0gICAgICAgIGRlYnVnKCJDcmVh
dGUgYW5kIGF0dGFjaCBkZXB0aFN0ZW5jaWwgcmVuZGVyYnVmZmVyIik7Ci0gICAgICAgIHRlc3RE
ZXB0aFN0ZW5jaWxSZW5kZXJidWZmZXIoYWxsb3dlZFN0YXR1c0Zvckdvb2RDYXNlKTsKLSAgICB9
Ci19Ci0KLS8vIERldGVybWluZSBpZiB3ZSBjYW4gYXR0YWNoIGJvdGggY29sb3IgYW5kIGRlcHRo
IG9yIGNvbG9yIGFuZCBkZXB0aF9zdGVuY2lsCi12YXIgZGVwdGhGb3JtYXQ7Ci12YXIgZGVwdGhB
dHRhY2htZW50OwotCi1mdW5jdGlvbiBjaGVja1ZhbGlkQ29sb3JEZXB0aENvbWJpbmF0aW9uKCkg
ewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwot
ICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRC
ZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3JlYXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBn
bC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGds
LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAgICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09M
T1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJl
bmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLQot
ICAgIHNob3VsZEJlTm9uTnVsbCgiZGVwdGhCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZl
cik7Ci0KLSAgICByZXR1cm4gdHJ5RGVwdGgoZ2wuREVQVEhfQ09NUE9ORU5UMTYsIGdsLkRFUFRI
X0FUVEFDSE1FTlQpIHx8IHRyeURlcHRoKGdsLkRFUFRIX1NURU5DSUwsIGdsLkRFUFRIX1NURU5D
SUxfQVRUQUNITUVOVCk7Ci0KLSAgICBmdW5jdGlvbiB0cnlEZXB0aCh0cnlfZm9ybWF0LCB0cnlf
YXR0YWNobWVudCkgewotICAgICAgICBpZiAoZGVwdGhBdHRhY2htZW50KSB7Ci0gICAgICAgICAg
ICAvLyBJZiB3ZSd2ZSB0cmllZCBvbmNlIHVuYXR0YWNoIHRoZSBvbGQgb25lLgotICAgICAgICAg
ICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgICAgICAgICAgZ2wuRlJBTUVC
VUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICAgICAg
fQotICAgICAgICBkZXB0aEZvcm1hdCA9IHRyeV9mb3JtYXQ7Ci0gICAgICAgIGRlcHRoQXR0YWNo
bWVudCA9IHRyeV9hdHRhY2htZW50OwotICAgICAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZl
cigKLSAgICAgICAgICAgIGdsLkZSQU1FQlVGRkVSLCBkZXB0aEF0dGFjaG1lbnQsIGdsLlJFTkRF
UkJVRkZFUiwgZGVwdGhCdWZmZXIpOwotICAgICAgICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGds
LlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAxNik7Ci0gICAgICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICByZXR1cm4gZ2wuY2hlY2tGcmFtZWJ1ZmZl
clN0YXR1cyhnbC5GUkFNRUJVRkZFUikgPT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEU7Ci0gICAg
fQotfQotCi1pZiAoY2hlY2tWYWxpZENvbG9yRGVwdGhDb21iaW5hdGlvbigpKSB7Ci0gICAgdGVz
dEZyYW1lYnVmZmVySW5jb21wbGV0ZURpbWVuc2lvbnMoKTsKLSAgICB0ZXN0RnJhbWVidWZmZXJJ
bmNvbXBsZXRlQXR0YWNobWVudCgpOwotICAgIHRlc3RGcmFtZWJ1ZmZlckluY29tcGxldGVNaXNz
aW5nQXR0YWNobWVudCgpOwotICAgIHRlc3RVc2luZ0luY29tcGxldGVGcmFtZWJ1ZmZlcigpOwot
fQotCi1mdW5jdGlvbiBjaGVja0ZyYW1lYnVmZmVyKGV4cGVjdGVkKSB7Ci0gICAgdmFyIGFjdHVh
bCA9IGdsLmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoZ2wuRlJBTUVCVUZGRVIpOwotICAgIHZhciBt
c2cgPSAiZ2wuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhnbC5GUkFNRUJVRkZFUikgc2hvdWxkIGJl
ICIgKyB3dHUuZ2xFbnVtVG9TdHJpbmcoZ2wsIGV4cGVjdGVkKSArICIgd2FzICIgKyB3dHUuZ2xF
bnVtVG9TdHJpbmcoZ2wsIGFjdHVhbCk7Ci0gICAgaWYgKGV4cGVjdGVkICE9IGdsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFKSB7Ci0gICAgICAgIG1zZyArPSAiIG9yIEZSQU1FQlVGRkVSX1VOU1VQUE9S
VEVEIjsKLSAgICB9Ci0gICAgaWYgKGFjdHVhbCA9PSBleHBlY3RlZCB8fAotICAgICAgICAoZXhw
ZWN0ZWQgIT0gZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUgJiYKLSAgICAgICAgIGFjdHVhbCA9PSBn
bC5GUkFNQlVGRkVSX1VOU1VQUE9SVEVEKSkgewotICAgICAgICB0ZXN0UGFzc2VkKG1zZyk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZChtc2cpOwotICAgIH0KLX0KLQotZnVuY3Rp
b24gdGVzdFVzaW5nSW5jb21wbGV0ZUZyYW1lYnVmZmVyKCkgewotICAgIGRlYnVnKCIiKTsKLSAg
ICBkZWJ1ZygiVGVzdCBkcmF3aW5nIG9yIHJlYWRpbmcgZnJvbSBhbiBpbmNvbXBsZXRlIGZyYW1l
YnVmZmVyIik7Ci0gICAgdmFyIHByb2dyYW0gPSB3dHUuc2V0dXBUZXh0dXJlZFF1YWQoZ2wpOwot
ICAgIHZhciB0ZXggPSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgd3R1LmZpbGxUZXh0dXJlKGds
LCB0ZXgsIDEsIDEsIFswLDI1NSwwLDI1NV0pOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8g
PSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZS
QU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5j
cmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVS
QlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0g
ICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVG
RkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJC
VUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0gICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1
ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZl
cihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVyKTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRl
cmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVO
REVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5S
RU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwgMTYpOwotICAgIGdsRXJyb3JTaG91bGRCZShn
bCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09N
UExFVEUpOwotCi0gICAgLy8gV2UgcGljayB0aGlzIGNvbWJpbmF0aW9uIGJlY2F1c2UgaXQgd29y
a3Mgb24gZGVza3RvcCBPcGVuR0wgYnV0IHNob3VsZCBub3Qgd29yayBvbiBPcGVuR0wgRVMgMi4w
Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0
LCAzMiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVU
RV9ESU1FTlNJT05TKTsKLSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIkRyYXdpbmcgb3IgcmVh
ZGluZyBmcm9tIGFuIGluY29tcGxldGUgZnJhbWVidWZmZXIgc2hvdWxkIGdlbmVyYXRlIElOVkFM
SURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIik7Ci0gICAgdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmco
KTsKLQotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvMiA9IGdsLmNyZWF0ZUZyYW1lYnVmZmVyKCki
KTsKLSAgICBnbC5iaW5kRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVIsIGZibzIpOwotICAgIGNo
ZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NSVNTSU5HX0FUVEFDSE1F
TlQpOwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20g
YW4gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04iKTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAg
c2hvdWxkQmVOb25OdWxsKCJjb2xvckJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigpIik7
Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsK
LSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZGRVIs
IGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAg
ICBnbC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDAsIDAp
OwotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiRHJhd2luZyBvciByZWFkaW5nIGZyb20gYW4g
aW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciBzaG91bGQgZ2VuZXJhdGUgSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04iKTsKLSAgICB0ZXN0UmVuZGVyaW5nQW5kUmVhZGluZygpOwotCi0gICAgZnVu
Y3Rpb24gdGVzdFJlbmRlcmluZ0FuZFJlYWRpbmcoKSB7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRC
ZShnbCwgZ2wuTk9fRVJST1IpOwotICAgICAgICB3dHUuZHJhd1F1YWQoZ2wpOwotICAgICAgICBn
bEVycm9yU2hvdWxkQmUoZ2wsIGdsLklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OLCAiZHJh
d0FycmF5cyB3aXRoIGluY29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICAgICAgZ2wucmVhZFBp
eGVscygwLCAwLCAxLCAxLCBnbC5SR0JBLCBnbC5VTlNJR05FRF9CWVRFLCBuZXcgVWludDhBcnJh
eSg0KSk7Ci0gICAgICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZF
Ul9PUEVSQVRJT04sICJyZWFkUGl4ZWxzIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwot
ICAgICAgICAvLyBjb3B5VGV4SW1hZ2UgYW5kIGNvcHlUZXhTdWJJbWFnZSBjYW4gYmUgZWl0aGVy
IElOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIGJlY2F1c2UKLSAgICAgICAgLy8gdGhlIGZy
YW1lYnVmZmVyIGlzIGludmFsaWQgT1IgSU5WQUxJRF9PUEVSQVRJT04gYmVjYXVzZSBpbiB0aGUg
Y2FzZSBvZiBubyBhdHRhY2htZW50cwotICAgICAgICAvLyB0aGUgZnJhbWVidWZmZXIgaXMgbm90
IG9mIGEgY29tcGF0aWJsZSB0eXBlLgotICAgICAgICBnbC5jb3B5VGV4U3ViSW1hZ2UyRChnbC5U
RVhUVVJFXzJELCAwLCAwLCAwLCAwLCAwLCAxLCAxKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJl
KGdsLCBbZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sIGdsLklOVkFMSURfT1BFUkFU
SU9OXSwgImNvcHlUZXhJbWFnZTJEIGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAg
ICAgICBnbC5jb3B5VGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAwLCAwLCAx
LCAxLCAwKTsKLSAgICAgICAgZ2xFcnJvclNob3VsZEJlKGdsLCBbZ2wuSU5WQUxJRF9GUkFNRUJV
RkZFUl9PUEVSQVRJT04sIGdsLklOVkFMSURfT1BFUkFUSU9OXSwgImNvcHlUZXhTdWJJbWFnZTJE
IGZyb20gaW5jb21wbGV0ZSBmcmFtZWJ1ZmZlciIpOwotICAgICAgICBnbC5jbGVhcihnbC5DT0xP
Ul9CVUZGRVJfQklUIHwgZ2wuREVQVEhfQlVGRkVSX0JJVCk7Ci0gICAgICAgIGdsRXJyb3JTaG91
bGRCZShnbCwgZ2wuSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT04sICJjbGVhciB3aXRoIGlu
Y29tcGxldGUgZnJhbWVidWZmZXIiKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3RGcmFtZWJ1
ZmZlckluY29tcGxldGVBdHRhY2htZW50KCkgewotICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0g
Z2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAgIGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFN
RUJVRkZFUiwgZmJvKTsKLSAgICBzaG91bGRCZU5vbk51bGwoImNvbG9yQnVmZmVyID0gZ2wuY3Jl
YXRlUmVuZGVyYnVmZmVyKCkiKTsKLSAgICBnbC5iaW5kUmVuZGVyYnVmZmVyKGdsLlJFTkRFUkJV
RkZFUiwgY29sb3JCdWZmZXIpOwotICAgIGdsLmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKAotICAg
ICAgICBnbC5GUkFNRUJVRkZFUiwgZ2wuQ09MT1JfQVRUQUNITUVOVDAsIGdsLlJFTkRFUkJVRkZF
UiwgY29sb3JCdWZmZXIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVG
RkVSLCBnbC5SR0JBNCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVG
RkVSX0NPTVBMRVRFKTsKLQotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygiV3Jvbmcgc3RvcmFn
ZSB0eXBlIGZvciB0eXBlIG9mIGF0dGFjaG1lbnQgYmUgRlJBTUVCVUZGRVJfSU5DT01QTEVURV9B
VFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0
b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEZvcm1hdCwgMTYsIDE2KTsKLSAgICBjaGVja0Zy
YW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCk7Ci0KLSAgICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAxNik7
Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0KLSAgICBk
ZWJ1ZygiIik7Ci0gICAgZGVidWcoIjAgc2l6ZSBhdHRhY2htZW50IHNob3VsZCBiZSBGUkFNRUJV
RkZFUl9JTkNPTVBMRVRFX0FUVEFDSE1FTlQgKE9wZW5HTCBFUyAyLjAgNC40LjUpIik7Ci0gICAg
Z2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAwLCAwKTsK
LSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVO
VCk7Ci0KLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLQotZnVuY3Rp
b24gdGVzdEZyYW1lYnVmZmVySW5jb21wbGV0ZU1pc3NpbmdBdHRhY2htZW50KCkgewotICAgIGRl
YnVnKCIiKTsKLSAgICBkZWJ1ZygiTm8gYXR0YWNobWVudHMgc2hvdWxkIGJlIElOQ09NUExFVEVf
RlJBTUVCVUZGRVJfTUlTU0lOR19BVFRBQ0hNRU5UIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwot
ICAgIHNob3VsZEJlTm9uTnVsbCgiZmJvID0gZ2wuY3JlYXRlRnJhbWVidWZmZXIoKSIpOwotICAg
IGdsLmJpbmRGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUiwgZmJvKTsKLSAgICBjaGVja0ZyYW1l
YnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UKTsKLQot
ICAgIHNob3VsZEJlTm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIo
KSIpOwotICAgIGdsLmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZl
cik7Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVG
RkVSLCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7
Ci0gICAgZ2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAx
NiwgMTYpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwot
Ci0gICAgZ2wuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVS
LCBnbC5DT0xPUl9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBudWxsKTsKLSAgICBjaGVj
a0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5U
KTsKLQotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotfQotCi1mdW5jdGlv
biB0ZXN0RnJhbWVidWZmZXJJbmNvbXBsZXRlRGltZW5zaW9ucygpIHsKLSAgICBkZWJ1ZygiIik7
Ci0gICAgZGVidWcoIkF0dGFjaG1lbnRzIG9mIGRpZmZlcmVudCBzaXplcyBzaG91bGQgYmUgRlJB
TUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIChPcGVuR0wgRVMgMi4wIDQuNC41KSIpOwot
Ci0gICAgc2hvdWxkQmVOb25OdWxsKCJmYm8gPSBnbC5jcmVhdGVGcmFtZWJ1ZmZlcigpIik7Ci0g
ICAgZ2wuYmluZEZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSLCBmYm8pOwotICAgIHNob3VsZEJl
Tm9uTnVsbCgiY29sb3JCdWZmZXIgPSBnbC5jcmVhdGVSZW5kZXJidWZmZXIoKSIpOwotICAgIGds
LmJpbmRSZW5kZXJidWZmZXIoZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wu
ZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoCi0gICAgICAgIGdsLkZSQU1FQlVGRkVSLCBnbC5DT0xP
Ul9BVFRBQ0hNRU5UMCwgZ2wuUkVOREVSQlVGRkVSLCBjb2xvckJ1ZmZlcik7Ci0gICAgZ2wucmVu
ZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGdsLlJHQkE0LCAxNiwgMTYpOwotCi0g
ICAgc2hvdWxkQmVOb25OdWxsKCJkZXB0aEJ1ZmZlciA9IGdsLmNyZWF0ZVJlbmRlcmJ1ZmZlcigp
Iik7Ci0gICAgZ2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGRlcHRoQnVmZmVy
KTsKLSAgICBnbC5mcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlcigKLSAgICAgICAgZ2wuRlJBTUVCVUZG
RVIsIGRlcHRoQXR0YWNobWVudCwgZ2wuUkVOREVSQlVGRkVSLCBkZXB0aEJ1ZmZlcik7Ci0gICAg
Z2wucmVuZGVyYnVmZmVyU3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAxNiwg
MTYpOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwotICAgIGNoZWNrRnJh
bWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfQ09NUExFVEUpOwotCi0gICAgZ2wucmVuZGVyYnVmZmVy
U3RvcmFnZShnbC5SRU5ERVJCVUZGRVIsIGRlcHRoRm9ybWF0LCAzMiwgMTYpOwotICAgIGNoZWNr
RnJhbWVidWZmZXIoZ2wuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZGVwdGhGb3JtYXQsIDE2LCAx
Nik7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0gICAg
Z2wuYmluZFJlbmRlcmJ1ZmZlcihnbC5SRU5ERVJCVUZGRVIsIGNvbG9yQnVmZmVyKTsKLSAgICBn
bC5yZW5kZXJidWZmZXJTdG9yYWdlKGdsLlJFTkRFUkJVRkZFUiwgZ2wuUkdCQTQsIDE2LCAzMik7
Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lP
TlMpOwotICAgIGdsLnJlbmRlcmJ1ZmZlclN0b3JhZ2UoZ2wuUkVOREVSQlVGRkVSLCBnbC5SR0JB
NCwgMTYsIDE2KTsKLSAgICBjaGVja0ZyYW1lYnVmZmVyKGdsLkZSQU1FQlVGRkVSX0NPTVBMRVRF
KTsKLSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLQotICAgIHZhciB0ZXgg
PSBnbC5jcmVhdGVUZXh0dXJlKCk7Ci0gICAgZ2wuYmluZFRleHR1cmUoZ2wuVEVYVFVSRV8yRCwg
dGV4KTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRVUkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAx
NiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgbnVsbCk7Ci0gICAgZ2wuZnJhbWVidWZm
ZXJUZXh0dXJlMkQoZ2wuRlJBTUVCVUZGRVIsIGdsLkNPTE9SX0FUVEFDSE1FTlQwLCBnbC5URVhU
VVJFXzJELCB0ZXgsIDApOwotICAgIGdsRXJyb3JTaG91bGRCZShnbCwgZ2wuTk9fRVJST1IpOwot
ICAgIGlmIChnbC5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKGdsLkZSQU1FQlVGRkVSKSAhPSBnbC5G
UkFNRUJVRkZFUl9DT01QTEVURSkgewotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgZ2wu
dGV4SW1hZ2UyRChnbC5URVhUVVJFXzJELCAwLCBnbC5SR0JBLCAzMiwgMTYsIDAsIGdsLlJHQkEs
IGdsLlVOU0lHTkVEX0JZVEUsIG51bGwpOwotICAgIGNoZWNrRnJhbWVidWZmZXIoZ2wuRlJBTUVC
VUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TKTsKLSAgICBnbC50ZXhJbWFnZTJEKGdsLlRFWFRV
UkVfMkQsIDAsIGdsLlJHQkEsIDE2LCAxNiwgMCwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwg
bnVsbCk7Ci0gICAgY2hlY2tGcmFtZWJ1ZmZlcihnbC5GUkFNRUJVRkZFUl9DT01QTEVURSk7Ci0K
LSAgICBnbEVycm9yU2hvdWxkQmUoZ2wsIGdsLk5PX0VSUk9SKTsKLX0KLTwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCAxYTVmODk3NjQxNzRmNzk1MzlhMTg3MmYyZDIwMjc3MjYzYjIzZTllLi42MDBlZmU2ZmVj
Nzc2YjBlZjNjZTNkNzE0ZDdjZjhmMTUzNmUzNjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDM1LDcgKzQzNSw2IEBAIHdlYmtpdC5vcmcvYi8xNjk5
MTggY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tYmFja2dyb3VuZC1jb2xvci5odG1sIFsgTWlzc2lu
ZyBDcmFzCiB3ZWJraXQub3JnL2IvMTY5OTE3IGZhc3QvY2FudmFzL3dlYmdsL2FudGlhbGlhc2lu
Zy1lbmFibGVkLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0
L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNpbC1hbnRp
YWxpYXMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBmYXN0L2NhbnZhcy93
ZWJnbC9jb3B5QnVmZmVyU3ViRGF0YS5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTY5
OTE3IGZhc3QvY2FudmFzL3dlYmdsL2ZyYW1lYnVmZmVyLW9iamVjdC1hdHRhY2htZW50Lmh0bWwg
WyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvZ2V0QnVm
ZmVyU3ViRGF0YS13ZWJnbDEuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE2OTkxNyBm
YXN0L2NhbnZhcy93ZWJnbC9nbHNsLWNvbmZvcm1hbmNlLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtp
dC5vcmcvYi8xNjk5MTcgZmFzdC9jYW52YXMvd2ViZ2wvcHJlbXVsdGlwbHlhbHBoYS10ZXN0Lmh0
bWwgWyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggZDQ5NTU2ZWQ3ODFlNGI0ZDc2NGNlMjNlYWY5YzIzMDlhYmM3ZTVmNS4uOGEyN2ZiNTIw
YzUyYmE0MDZiMmQ2NmYwMzhhZWQxOTU3OTkyODkzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI3NDAsNyArMjc0MCw2IEBAIHdlYmtpdC5vcmcvYi8x
NzE2MTcgcGVyZi9vYmplY3Qta2V5cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBXZWJHTCB0
ZXN0cyB3aGljaCBuZWVkIHRyaWFnaW5nIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2IvMTc0MTAw
CiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWF0dHJpYnV0ZXMtYWxwaGEtZGVwdGgtc3RlbmNp
bC1hbnRpYWxpYXMuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9jYW52YXMvd2ViZ2wvZnJhbWVidWZm
ZXItb2JqZWN0LWF0dGFjaG1lbnQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9jYW52YXMvd2ViZ2wv
b2VzLXRleHR1cmUtZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvY2FudmFzL3dl
YmdsL29lcy10ZXh0dXJlLWhhbGYtZmxvYXQtbGluZWFyLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3Qv
Y2FudmFzL3dlYmdsL3RleC1pbWFnZS1hbmQtc3ViLWltYWdlLTJkLXdpdGgtcG90ZW50aWFsbHkt
c3Vic2FtcGxlZC1pbWFnZS5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDkwMjdhOWQzOWU3ZjZjMzFjNjA0N2Y4YTU1ODM4MGUx
ZGJlODZmYTcuLmJhY2YxZmU2ZGM0OTNjNTYwNjdkYzI3MDVjNjc1ZDg5Yjg1N2NkM2YgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yOTQsOCArMjk0LDYg
QEAgd2Via2l0Lm9yZy9iLzgyNjY1IHdlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLXJlc291cmNlcy1p
bmxpbmUtc3R5bGVzLmh0bWwgWyBGYWlsdXIKIAogd2Via2l0Lm9yZy9iLzgyNzYyIGZhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCiAKLXdlYmtp
dC5vcmcvYi84MjgwNSBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0YWNo
bWVudC5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2tleWJv
YXJkLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVn
aW5zL2xheW91dC1pbi1iZWZvcmVsb2FkLWxpc3RlbmVyLWFmZmVjdHMtcGx1Z2luLWxvYWRpbmcu
aHRtbCBbIFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODI5NzIgcGx1Z2lucy9tb3VzZS1l
dmVudHMtZml4ZWRwb3MuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvY29udGV4dC9jb250ZXh0LWF0dHJpYnV0ZXMt
ZGVwdGgtc3RlbmNpbC1hbnRpYWxpYXMtb2JleWVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmdsLzIuMC4wL2NvbmZvcm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0
aC1zdGVuY2lsLWFudGlhbGlhcy1vYmV5ZWQtZXhwZWN0ZWQudHh0CmluZGV4IDViZWY4MTZjNDZm
N2YwMDJkNDU1Njg3ZDM5MTQ1MjIxZmU0YzBjYWYuLjM2Yzk0OGFkZTk1ZWNiM2Q0OWJlOTBjMTE0
ZjM4N2Q3OGY0Mjk5ZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlh
cy1vYmV5ZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmdsLzIuMC4wL2NvbmZv
cm1hbmNlMi9jb250ZXh0L2NvbnRleHQtYXR0cmlidXRlcy1kZXB0aC1zdGVuY2lsLWFudGlhbGlh
cy1vYmV5ZWQtZXhwZWN0ZWQudHh0CkBAIC0xLDE3ICsxLDE1IEBACiBUaGlzIHRlc3QgcnVucyB0
aGUgV2ViR0wgVGVzdCBsaXN0ZWQgYmVsb3cgaW4gYW4gaWZyYW1lIGFuZCByZXBvcnRzIFBBU1Mg
b3IgRkFJTC4KIAogVGVzdDogLi4vLi4vcmVzb3VyY2VzL3dlYmdsX3Rlc3RfZmlsZXMvY29uZm9y
bWFuY2UyL2NvbnRleHQvY29udGV4dC1hdHRyaWJ1dGVzLWRlcHRoLXN0ZW5jaWwtYW50aWFsaWFz
LW9iZXllZC5odG1sCi1bIDE6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBvYmV5ZWQK
LVsgMjogRkFJTCBdIGFudGlhbGlhcyA9IHRydWUgaXMgbm90IG9iZXllZAorWyAxOiBQQVNTIF0g
Q29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0
ZW5jaWwuCitbIDI6IEZBSUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCiBbIDM6IEZB
SUwgXSBzdGVuY2lsID0gdHJ1ZSBpcyBub3Qgb2JleWVkCiBbIDQ6IEZBSUwgXSBzdGVuY2lsID0g
dHJ1ZSBpcyBub3Qgb2JleWVkCi1bIDU6IEZBSUwgXSBhbnRpYWxpYXMgPSB0cnVlIGlzIG5vdCBv
YmV5ZWQKLVsgNjogRkFJTCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgNzogRkFJ
TCBdIHN0ZW5jaWwgPSB0cnVlIGlzIG5vdCBvYmV5ZWQKLVsgODogRkFJTCBdIGFudGlhbGlhcyA9
IHRydWUgaXMgbm90IG9iZXllZAorWyA1OiBGQUlMIF0gc3RlbmNpbCA9IHRydWUgaXMgbm90IG9i
ZXllZAorWyA2OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50aWFs
aWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCitbIDc6IFBBU1MgXSBDb250ZXh0IGNyZWF0ZWQgd2l0
aCB0aGUgY29ycmVjdCBhbnRpYWxpYXMsIGRlcHRoLCBhbmQgc3RlbmNpbC4KK1sgODogUEFTUyBd
IENvbnRleHQgY3JlYXRlZCB3aXRoIHRoZSBjb3JyZWN0IGFudGlhbGlhcywgZGVwdGgsIGFuZCBz
dGVuY2lsLgogWyA5OiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNvcnJlY3QgYW50
aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCi1bIDEwOiBGQUlMIF0gYW50aWFsaWFzID0gdHJ1
ZSBpcyBub3Qgb2JleWVkCi1bIDExOiBQQVNTIF0gQ29udGV4dCBjcmVhdGVkIHdpdGggdGhlIGNv
cnJlY3QgYW50aWFsaWFzLCBkZXB0aCwgYW5kIHN0ZW5jaWwuCi1bIDEyOiBQQVNTIF0gc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLVsgRkFJTCBdIDkgZmFpbHVyZXMgcmVwb3J0ZWQKK1sgMTA6
IFBBU1MgXSBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorWyBGQUlMIF0gNCBmYWlsdXJlcyBy
ZXBvcnRlZAogCg==
</data>
<flag name="review"
          id="402265"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>