<?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>217310</bug_id>
          
          <creation_ts>2020-10-05 04:59:26 -0700</creation_ts>
          <short_desc>[LFC][Integration] Move Display::InlineContent to LayoutIntegration namespace</short_desc>
          <delta_ts>2020-10-05 08:44:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694661</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-05 04:59:26 -0700</bug_when>
    <thetext>It is only used by integration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694676</commentid>
    <comment_count>1</comment_count>
      <attachid>410513</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-10-05 07:46:21 -0700</bug_when>
    <thetext>Created attachment 410513
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694702</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-05 08:43:12 -0700</bug_when>
    <thetext>Committed r267969: &lt;https://trac.webkit.org/changeset/267969&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410513.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694703</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 08:44:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/69955720&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410513</attachid>
            <date>2020-10-05 07:46:21 -0700</date>
            <delta_ts>2020-10-05 08:43:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>rename-display.patch</filename>
            <type>text/plain</type>
            <size>69686</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNzFiOTM3M2I0MDMuLmUyNzc3MmFmOGMyZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEyNyBAQAorMjAyMC0xMC0wNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CisKKyAgICAgICAgW0xGQ11bSW50ZWdyYXRpb25dIE1vdmUgRGlzcGxheTo6SW5saW5lQ29u
dGVudCB0byBMYXlvdXRJbnRlZ3JhdGlvbiBuYW1lc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzMxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IGlzIG9ubHkgdXNlZCBieSB0aGUgaW50ZWdy
YXRpb24gY29kZQorCisgICAgICAgIEFsc28gbW92ZSB0aGUgcmVsYXRlZCBjbGFzc2VzIGFuZCBy
ZW5hbWUgdGhlIHBhdGggaW5kZXBlbmRlbnQgaXRlcmF0b3IgcnVuIHRvIFBhdGhSdW4KKworICAg
ICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRpc3BsYXkvRGlz
cGxheVZpZXcuaDoKKyAgICAgICAgKiBsYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6Y29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAgICAg
ICogbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSZWN0Lmg6IFJlbW92ZWQuCisgICAgICAgICog
bGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2l6ZUFuZFBsYWNlRmxl
eEl0ZW1zKToKKyAgICAgICAgKiBsYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdT
dGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbGV4Rm9ybWF0dGluZ1N0YXRlOjps
aW5lcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsZXhGb3JtYXR0aW5nU3Rh
dGU6OmFkZExpbmUpOgorICAgICAgICAqIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbklubGluZUNvbnRlbnQuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmNwcC4KKyAgICAgICAgKiBsYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50Lmg6IFJlbmFtZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQu
aC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lLmg6
IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUxp
bmUuaC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5l
TGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5
b3V0OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVM
YXlvdXQ6OmNvbnN0cnVjdENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdy
YXRpb246OkxpbmVMYXlvdXQ6OmxpbmVDb3VudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6YWRqdXN0Rm9yUGFnaW5hdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y29sbGVjdE92ZXJm
bG93KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0Ojpl
bnN1cmVJbmxpbmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9u
OjpMaW5lTGF5b3V0Ojp0ZXh0UnVuc0ZvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6cnVuRm9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpMaW5lTGF5b3V0OjpwYWludCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aGl0VGVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6Y29uc3RydWN0RGlzcGxheUNv
bnRlbnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Okxp
bmVMYXlvdXQ6OmVuc3VyZURpc3BsYXlJbmxpbmVDb250ZW50KTogRGVsZXRlZC4KKyAgICAgICAg
KiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91dDo6aW5saW5lQ29udGVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6TGluZUxheW91
dDo6ZGlzcGxheUlubGluZUNvbnRlbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OmNvbXB1dGVMaW5lVG9wQW5kQm90dG9tV2l0aE92
ZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjp1cGRhdGVNaW5p
bXVtUGFnZUhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6bWFr
ZUFkanVzdGVkQ29udGVudCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
YWRqdXN0TGluZVBvc2l0aW9uc0ZvclBhZ2luYXRpb24pOgorICAgICAgICAqIGxheW91dC9pbnRl
Z3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaDoKKyAgICAgICAgKiBsYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW4uaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmguCisgICAgICAgICogbGF5b3V0
L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bkl0ZXJhdG9yOjpSdW5JdGVyYXRvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjpUZXh0
UnVuSXRlcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OkxpbmVS
dW5JdGVyYXRvcjo6TGluZVJ1bkl0ZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpQYXRoUnVuOjptb2Rlcm5QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dEludGVncmF0aW9uOjpQYXRoUnVuOjpsZWdhY3lQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpSdW46Om1vZGVyblBhdGgpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bjo6bGVnYWN5UGF0aCk6IERlbGV0ZWQuCisgICAg
ICAgICogbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6bGVnYWN5
SW5saW5lQm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpS
dW5JdGVyYXRvcjo6b3BlcmF0b3IqIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpSdW5JdGVyYXRvcjo6b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bkl0ZXJhdG9yOjpvcGVyYXRvciogY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW5JdGVyYXRvcjo6
b3BlcmF0b3ItPiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6
VGV4dFJ1bkl0ZXJhdG9yOjpnZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhSdW46OlBhdGhSdW4pOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhSdW46OmlzVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXRJbnRlZ3JhdGlvbjo6UGF0aFJ1bjo6cmVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFJ1bjo6YmFzZWxpbmUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhSdW46OmlzSG9yaXpvbnRhbCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFJ1bjo6ZGlyT3ZlcnJpZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhSdW46Omlz
TGluZUJyZWFrIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQ
YXRoUnVuOjp1c2VMaW5lQnJlYWtCb3hSZW5kZXJUcmVlRHVtcFF1aXJrIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoUnVuOjptaW5pbXVtQ2FyZXRPZmZz
ZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhSdW46
Om1heGltdW1DYXJldE9mZnNldCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRl
Z3JhdGlvbjo6UGF0aFJ1bjo6YmlkaUxldmVsIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpQYXRoUnVuOjpvblNhbWVMaW5lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoUnVuOjpsZWdhY3lJbmxpbmVCb3ggY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVuOjpoYXNI
eXBoZW4gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhU
ZXh0UnVuOjpQYXRoVGV4dFJ1bik6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlv
bjo6UGF0aFRleHRSdW46OnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50
ZWdyYXRpb246OlBhdGhUZXh0UnVuOjpsb2NhbFN0YXJ0T2Zmc2V0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6bG9jYWxFbmRPZmZzZXQg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBhdGhUZXh0UnVu
OjpsZW5ndGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlBh
dGhUZXh0UnVuOjppc0xhc3RUZXh0UnVuT25MaW5lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bjo6aXNMYXN0VGV4dFJ1biBjb25zdCk6Cisg
ICAgICAgIChpc1R5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1
bjo6bGVmdG1vc3RDYXJldE9mZnNldCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjpyaWdodG1vc3RDYXJldE9mZnNldCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjpkaXJlY3Rp
b24gY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246
OlJ1bjo6aXNMZWZ0VG9SaWdodERpcmVjdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bjo6bGVnYWN5SW5saW5lQm94IGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW46OlJ1
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjpp
c1RleHQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRp
b246OlJ1bjo6cmVjdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJ
bnRlZ3JhdGlvbjo6UnVuOjpiYXNlbGluZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjppc0hvcml6b250YWwgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1bjo6ZGlyT3ZlcnJpZGUg
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246OlJ1
bjo6aXNMaW5lQnJlYWsgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
SW50ZWdyYXRpb246OlJ1bjo6dXNlTGluZUJyZWFrQm94UmVuZGVyVHJlZUR1bXBRdWlyayBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjpt
aW5pbXVtQ2FyZXRPZmZzZXQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0SW50ZWdyYXRpb246OlJ1bjo6bWF4aW11bUNhcmV0T2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW46OmJpZGlMZXZlbCBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UnVuOjpv
blNhbWVMaW5lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpSdW46OmxlZ2FjeUlubGluZUJveCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4dFJ1bjo6aGFzSHlwaGVuIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuOjpUZXh0
UnVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0
UnVuOjp0ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVn
cmF0aW9uOjpUZXh0UnVuOjpsb2NhbFN0YXJ0T2Zmc2V0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuOjpsb2NhbEVuZE9mZnNldCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4
dFJ1bjo6bGVuZ3RoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dElu
dGVncmF0aW9uOjpUZXh0UnVuOjppc0xhc3RUZXh0UnVuT25MaW5lIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuOjppc0xhc3RUZXh0
UnVuIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVyblBhdGguaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpNb2Rlcm5QYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpydW5zIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoOjpydW4gY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5b3V0SW50ZWdyYXRpb246Ok1vZGVyblBhdGg6OmxpbmUgY29uc3Qp
OgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRleHRSdW4pOiBEZWxldGVkLgorICAg
ICAgICAqIHJlbmRlcmluZy9UZXh0UGFpbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0
UGFpbnRlcjo6Y2xlYXJHbHlwaERpc3BsYXlMaXN0cyk6CisKIDIwMjAtMTAtMDIgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBB
dm9pZCBlbnN1cmVMaW5lQm94ZXMgZm9yIHNvbWUgY2FsbCBzaXRlcyBvZiBpbmxpbmVCb3hBbmRP
ZmZzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDYxZDg2YTg4ZTkzYy4uMTllYTNhNWQ1ZmRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTcwNCwxMyArNzA0LDExIEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBsYXlvdXQvTGF5b3V0VW5pdHMuaAogICAgIGxheW91
dC9NYXJnaW5UeXBlcy5oCiAKLSAgICBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNv
bnRlbnQuaAotICAgIGxheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCi0gICAgbGF5b3V0
L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSZWN0LmgKLSAgICBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eVJ1bi5oCi0KICAgICBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVSZWN0LmgKIAorICAg
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaAorICAg
IGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmUuaAorICAgIGxheW91dC9p
bnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblJ1bi5oCiAgICAgbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuaAogICAgIGxheW91dC9pbnRlZ3JhdGlvbi9M
YXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yTGVnYWN5UGF0aC5oCiAgICAgbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggYzdlY2ZkZDE1NWM1Li4yZDcwMjUwYWVjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0x
NDQ5LDcgKzE0NDksNiBAQCBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFw
c2UuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xs
YXBzZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxl
d3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAotbGF5
b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxpbmVDb250ZW50LmNwcAogbGF5b3V0L2Rpc3BsYXl0
cmVlL0Rpc3BsYXlQYWludGVyLmNwcAogbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0
aW5nQ29udGV4dC5jcHAKIGxheW91dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRl
eHRHZW9tZXRyeS5jcHAKQEAgLTE0NzAsNiArMTQ2OSw3IEBAIGxheW91dC9pbmxpbmVmb3JtYXR0
aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0
VXRpbC5jcHAKIGxheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkJveFRyZWUuY3Bw
CiBsYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Db3ZlcmFnZS5jcHAKK2xheW91
dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3BwCiBsYXlvdXQv
aW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmNwcAogbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlvbi5jcHAKIGxheW91dC9pbnRlZ3JhdGlv
bi9MYXlvdXRJbnRlZ3JhdGlvblJ1bkl0ZXJhdG9yLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDdiNjcwMjUyM2JkMC4uYWMw
MzdmZTU0M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0yMDc4LDE0ICsyMDc4LDEzIEBACiAJCTZGQTQ0NTRFODk4RjJGQzE2
OEJDMzhDMSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUUwNEEyN0JFRDJGODFGOThFOTAyMkIgLyogSlNCZWZv
cmVVbmxvYWRFdmVudC5oICovOyB9OwogCQk2RkIxMUI1QzIxNzgzRkQwMDBFMkE1NzQgLyogVGV4
dFV0aWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
QjExQjU5MjE3ODNGQ0YwMEUyQTU3NCAvKiBUZXh0VXRpbC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjI0MDA1MjNERkYxMjgwMDc5NjQ1OCAv
KiBJbmxpbmVMaW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2RkIyNDAwMzIzREZGMTI3MDA3OTY0NTggLyogSW5saW5lTGluZUJveC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTZGQjQ3RTYzMjI3
NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5TGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCNDdFNjEyMjc3NDI1QTAwQzdCQ0IwIC8qIERpc3BsYXlM
aW5lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
NkZCNDdFNjMyMjc3NDI1QTAwQzdCQ0IwIC8qIExheW91dEludGVncmF0aW9uTGluZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZCNDdFNjEyMjc3NDI1
QTAwQzdCQ0IwIC8qIExheW91dEludGVncmF0aW9uTGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGQjVFMjE0MjIxRjI0NTMwMDM5ODlDRiAv
KiBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGQjVFMjEyMjIxRjI0NDcwMDM5ODlDRiAvKiBDb250ZW50Q2hhbmdl
T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk2RkI3RDJERDI1MEZEODI4MDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkI3RDJEOTI1
MEZEN0ZDMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkZCN0QyREUyNTBGRDgyRTAwMDIw
N0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGQjdEMkRBMjUwRkQ3RkMwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0
dGluZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNkZDM0Y5NDcyNTE2NzU2NzAwQTQ5QkVBIC8qIElubGluZUxpbmVSdW4uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQzNGOTQ1MjUxNjc1NjYw
MEE0OUJFQSAvKiBJbmxpbmVMaW5lUnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8qIERpc3BsYXlS
dW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGQ0Ux
QTE4MjI2MThBQjMwMDRGMDM0MyAvKiBEaXNwbGF5UnVuLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQzIC8q
IExheW91dEludGVncmF0aW9uUnVuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRp
b25SdW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2RkQwOTU0MzI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkQwOTU0MTI1MTExNTIy
MDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNkZEOUNENTQyMjdFMjFDODAwRTUzOTU3IC8qIERp
c3BsYXlSZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA2RkQ5Q0Q1MjIyN0UyMUM4MDBFNTM5NTcgLyogRGlzcGxheVJlY3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RkUxOTgxNzIxNzgzOTdDMDA0
NDZGMDggLyogSW5saW5lQ29udGVudEJyZWFrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGRTE5ODE1MjE3ODM5N0MwMDQ0NkYwOCAvKiBJbmxpbmVD
b250ZW50QnJlYWtlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTZGRTdDRkEyMjE3N0VFRjIwMDVCMTU3MyAvKiBJbmxpbmVJdGVtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RkU3Q0ZBMDIxNzdFRUYx
MDA1QjE1NzMgLyogSW5saW5lSXRlbS5oICovOyB9OwogCQk2RkZBNEMwMTIzRjJGRUQ5MDA3RTRF
QkMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RkZBNEMwMDIzRjJGRUQ5MDA3RTRFQkMgLyogTGF5b3V0TGluZUJy
ZWFrQm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
QEAgLTUwMTYsNyArNTAxNSw3IEBACiAJCUU0NEZBMTg1MUJDQTZCNUEwMDkxQjZFRiAvKiBDb21w
b3NlZFRyZWVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTQ0RkExODQxQkNBNkI1QTAwOTFCNkVGIC8qIENvbXBvc2VkVHJlZUl0ZXJhdG9y
LmggKi87IH07CiAJCUU0NTFDNjMxMjM5NDAyNzkwMDk5MzE5MCAvKiBMYXlvdXRVbml0cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3MzkxOEMyMTA2
Q0VERDAwNkFGMjYyIC8qIExheW91dFVuaXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ1MUM2MzIyMzk0MDMxQTAwOTkzMTkwIC8qIE1hcmdp
blR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
RkU3QUEyNjIxQzM3QjYzMDAyOTZEQ0QgLyogTWFyZ2luVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlFNDUxQzYzNDIzOTQwNThGMDA5OTMx
OTAgLyogRGlzcGxheUlubGluZUNvbnRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0NTFDNjMzMjM5NDA1OEUwMDk5MzE5MCAvKiBEaXNwbGF5SW5s
aW5lQ29udGVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUU0NTFDNjM0MjM5NDA1OEYwMDk5MzE5MCAvKiBMYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0NTFDNjMzMjM5NDA1OEUwMDk5MzE5MCAvKiBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRl
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlF
NDUzMjJBQzE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1MzIyQUExNDBDRTI2NzAwNUEwRjky
IC8qIFNlbGVjdG9yUXVlcnkuaCAqLzsgfTsKIAkJRTQ1QTZDNzcyNDE3QkE1OTAwNkU0Q0Q1IC8q
IFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDVBNkM3NjI0MTdCQTU5MDA2RTRDRDUgLyogUHNldWRv
Q2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaCAqLzsgfTsKIAkJRTQ1QkE2QUEyMzc0OTI2QzAwNERG
QzA3IC8qIE1hdGNoZWREZWNsYXJhdGlvbnNDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ1QkE2QTgyMzc0OTI2QjAwNERGQzA3IC8qIE1hdGNo
ZWREZWNsYXJhdGlvbnNDYWNoZS5oICovOyB9OwpAQCAtOTY0MSw3ICs5NjQwLDcgQEAKIAkJNkZC
MTFCNUIyMTc4M0ZDRjAwRTJBNTc0IC8qIFRleHRVdGlsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRleHRVdGlsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkZCMjJFMzAyMzAwOTdFMzAwQzIwODY2IC8qIFRhYmxlR3JpZC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUYWJsZUdyaWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCMjQwMDMy
M0RGRjEyNzAwNzk2NDU4IC8qIElubGluZUxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5saW5lTGluZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JDQjAgLyogRGlzcGxheUxpbmUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNkZCNDdFNjEyMjc3NDI1QTAwQzdCQ0IwIC8qIExheW91dEludGVncmF0aW9uTGlu
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbkxp
bmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCNUUyMTIyMjFGMjQ0NzAwMzk4
OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50Q2hh
bmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCN0QyRDcyNTBG
RDdFNTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBGbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk2RkI3RDJEODI1MEZEN0VGMDAwMjA3QUEgLyogRmxleEZvcm1hdHRpbmdTdGF0ZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBGbGV4Rm9ybWF0dGluZ1N0YXRlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTk2NTQsOSArOTY1Myw4IEBACiAJCTZGQzVDQTk0MjJFMzU5OTQw
MEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk2RkM1Q0E5NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2RkNFMUExODIyNjE4QUIzMDA0RjAzNDMgLyogRGlzcGxheVJ1
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UnVuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTZGQ0UxQTE4MjI2MThBQjMwMDRGMDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkQwOTU0MTI1MTExNTIyMDA5ODg3N0QgLyogTGF5b3V0R2VvbWV0cnlS
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dEdlb21ldHJ5UmVj
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RkQ5Q0Q1MjIyN0UyMUM4MDBFNTM5
NTcgLyogRGlzcGxheVJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlz
cGxheVJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTMyMTc4Mzk3
QjAwNDQ2RjA4IC8qIElubGluZUNvbnRlbnRCcmVha2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNvbnRlbnRCcmVha2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNkZFMTk4MTUyMTc4Mzk3QzAwNDQ2RjA4IC8qIElubGluZUNvbnRl
bnRCcmVha2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUNvbnRl
bnRCcmVha2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRTdBQTI2MjFDMzdC
NjMwMDI5NkRDRCAvKiBNYXJnaW5UeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNYXJnaW5UeXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5MDgsNyArMTU5MDYsNyBAQAogCQlF
NDRFRTNBNzE3NTc2RTU1MDBFRUU4Q0YgLyogRm9udEdlbmVyaWNGYW1pbGllcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb250R2VuZXJpY0ZhbWlsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUU0NEZBMTg0MUJDQTZCNUEwMDkxQjZFRiAvKiBDb21wb3NlZFRyZWVJdGVyYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wb3NlZFRyZWVJdGVyYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDRGQTE4NjFCQ0E5MTU2MDA5MUI2RUYgLyog
Q29tcG9zZWRUcmVlSXRlcmF0b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ29tcG9zZWRUcmVlSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlFNDUxQzYzMzIzOTQwNThFMDA5OTMxOTAgLyogRGlzcGxheUlubGluZUNvbnRlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUlubGluZUNvbnRlbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTQ1MUM2MzMyMzk0MDU4RTAwOTkzMTkwIC8q
IExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQ1MzIyQTkxNDBDRTI2NzAwNUEwRjkyIC8qIFNlbGVjdG9yUXVl
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JRdWVy
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0NTMyMkFBMTQwQ0UyNjcwMDVB
MEY5MiAvKiBTZWxlY3RvclF1ZXJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlbGVjdG9yUXVlcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ1MzkwMTkw
RUFGQ0FDQTAwMzY5NUM4IC8qIFBhc3RlYm9hcmRJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBQYXN0ZWJvYXJkSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTYwNTQsNyArMTYwNTIsNyBAQAogCQlFNEU4QjRGMjIxNkI4QjYwMDBCODgz
NEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIz
RTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RTRGQjRCMzUyMzlCRUIxMDAwM0MzMzZBIC8qIERpc3BsYXlJbmxpbmVDb250ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpc3BsYXlJbmxpbmVDb250ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTRGQjRCMzUyMzlCRUIxMDAwM0MzMzZBIC8qIExheW91dEludGVncmF0
aW9uSW5saW5lQ29udGVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlv
bklubGluZUNvbnRlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE2Njk4
RjIwRkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJM
aXN0QnV0dG9uQXJyb3dAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUx
NzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZv
cm1hbmNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9y
bWFuY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc1OTQsMTMgKzE3NTky
LDggQEAKIAkJMTE5OUZBNTgyMDhFM0M0QzAwMjM1OENDIC8qIGRpc3BsYXl0cmVlICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQlFNEZCNEIzNTIzOUJFQjEw
MDAzQzMzNkEgLyogRGlzcGxheUlubGluZUNvbnRlbnQuY3BwICovLAotCQkJCUU0NTFDNjMzMjM5
NDA1OEUwMDk5MzE5MCAvKiBEaXNwbGF5SW5saW5lQ29udGVudC5oICovLAotCQkJCTZGQjQ3RTYx
MjI3NzQyNUEwMEM3QkNCMCAvKiBEaXNwbGF5TGluZS5oICovLAogCQkJCTZGNzc4Njg1MjM0OTFB
QzYwMDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5jcHAgKi8sCiAJCQkJNkY3Nzg2ODcyMzQ5MUFE
NzAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggKi8sCi0JCQkJNkZEOUNENTIyMjdFMjFDODAw
RTUzOTU3IC8qIERpc3BsYXlSZWN0LmggKi8sCi0JCQkJNkZDRTFBMTgyMjYxOEFCMzAwNEYwMzQz
IC8qIERpc3BsYXlSdW4uaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZGlzcGxheXRyZWU7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjg0ODcsMTAgKzI4NDgwLDE0IEBACiAJCQkJRTQx
ODAyNTMyM0Q0NTQ5QTAwRkZCMDcxIC8qIExheW91dEludGVncmF0aW9uQm94VHJlZS5oICovLAog
CQkJCUU0MDNCNzlGMjUxQjExOEIwMDE5RTgwMCAvKiBMYXlvdXRJbnRlZ3JhdGlvbkNvdmVyYWdl
LmNwcCAqLywKIAkJCQlFNDAzQjdBMTI1MUIxMTkzMDAxOUU4MDAgLyogTGF5b3V0SW50ZWdyYXRp
b25Db3ZlcmFnZS5oICovLAorCQkJCUU0RkI0QjM1MjM5QkVCMTAwMDNDMzM2QSAvKiBMYXlvdXRJ
bnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3BwICovLAorCQkJCUU0NTFDNjMzMjM5NDA1OEUwMDk5
MzE5MCAvKiBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuaCAqLywKKwkJCQk2RkI0N0U2
MTIyNzc0MjVBMDBDN0JDQjAgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lLmggKi8sCiAJCQkJRTRB
QkFCREUyMzYwODkzRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGluZUxheW91dC5jcHAg
Ki8sCiAJCQkJRTRBQkFCREIyMzYwODhGRDAwRkE0MzQ1IC8qIExheW91dEludGVncmF0aW9uTGlu
ZUxheW91dC5oICovLAogCQkJCUU0MzEyQUI1MjRCMzI2NTYwMDY3ODM0OSAvKiBMYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uY3BwICovLAogCQkJCUU0MzEyQUI3MjRCMzI2NTYwMDY3ODM0OSAv
KiBMYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uaCAqLywKKwkJCQk2RkNFMUExODIyNjE4QUIz
MDA0RjAzNDMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW4uaCAqLywKIAkJCQlFNEE2NjRDNzI1MjFC
Nzc5MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5jcHAgKi8sCiAJCQkJ
RTRBNjY0QzYyNTIxQjc3ODAwNzA4MURDIC8qIExheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3Iu
aCAqLywKIAkJCQlFNEE2NjRDNTI1MjFCNzc4MDA3MDgxREMgLyogTGF5b3V0SW50ZWdyYXRpb25S
dW5JdGVyYXRvckxlZ2FjeVBhdGguaCAqLywKQEAgLTMxMTE5LDkgKzMxMTE2LDkgQEAKIAkJCQk4
MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQlGNDdBMDlEMTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFw
dGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8q
IERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ1MUM2MzQyMzk0
MDU4RjAwOTkzMTkwIC8qIERpc3BsYXlJbmxpbmVDb250ZW50LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNDUxQzYzNDIzOTQwNThGMDA5OTMxOTAgLyogTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc5MEY0MjI1MTdDRTZFMDA5QkEwMzQgLyogRGlz
cGxheUxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZCNDdFNjMyMjc3NDI1
QTAwQzdCQ0IwIC8qIERpc3BsYXlMaW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQk2RkI0N0U2MzIy
Nzc0MjVBMDBDN0JDQjAgLyogTGF5b3V0SW50ZWdyYXRpb25MaW5lLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1QUQwOTQwMjQwODk2NDAwMERFNEQyRiAvKiBEaXNwbGF5TGlzdERyYXdpbmdD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDkzRTI0MDg5NjM1MDBERTREMkYgLyog
RGlzcGxheUxpc3RJbWFnZUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTEyOSwxMyArMzEx
MjYsMTIgQEAKIAkJCQkwRkU1RkJENzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxheUxpc3RSZWNv
cmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFNUZCRDkxQzNERDUxRTAwMDdBMkNBIC8qIERp
c3BsYXlMaXN0UmVwbGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGNzc4Njg4MjM0OTFBRDgw
MDREOTYzNiAvKiBEaXNwbGF5UGFpbnRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZEOUNENTQy
MjdFMjFDODAwRTUzOTU3IC8qIERpc3BsYXlSZWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUFG
MkQ2OTE0NDM1RDA1MDAxNkE3ODQgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDI5RUNDNjE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDI5RUNDQTE5MkYxRjFEMDA5ODRCNzgg
LyogRGlzcGxheVJlZnJlc2hNb25pdG9ySU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREU3MDAy
MzE5MkZFODJBMDBCMDk3NUMgLyogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyRDI5RUNDODE5MkVDQzgzMDA5ODRCNzggLyogRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNkZDRTFBMUEyMjYxOEFCRDAwNEYwMzQz
IC8qIERpc3BsYXlSdW4uaCBpbiBIZWFkZXJzICovLAorCQkJCTZGQ0UxQTFBMjI2MThBQkQwMDRG
MDM0MyAvKiBMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3OTBG
NDMyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDMxNjA5MTEyQjAyNkY3MDBDMUEzNTkgLyogRGlzdGFuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzMDQwMjgzMjQ5QTdBNjIwMEE5MEQ4RCAvKiBEaXN0YW5jZU1vZGVsVHlwZS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3LmgKaW5kZXggZmNiMDdhZTU4NjAx
Li5mOTdkY2Q0N2FiMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxh
eVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlWaWV3LmgKQEAgLTI4
LDcgKzI4LDYgQEAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAogI2lu
Y2x1ZGUgIkRpc3BsYXlMYXllckNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJEaXNwbGF5UmVjdC5o
IgogI2luY2x1ZGUgIkxheW91dFVuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9t
ZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKaW5kZXggY2ZmNjMzNDRjZTkzLi40ZmY0MzI1NDc0ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTIwMSw4
ICsyMDEsOCBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29udGVu
dEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjbwogICAgICAgICBhdXRvJiBsaW5lcyA9
IGxheW91dFN0YXRlLmVzdGFibGlzaGVkRmxleEZvcm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nUm9v
dENvbnRhaW5lcikubGluZXMoKTsKICAgICAgICAgQVNTRVJUKCFsaW5lcy5pc0VtcHR5KCkpOwog
ICAgICAgICAvLyBGSVhNRTogTW92ZSBmbGV4IG92ZXIgdG8gbGF5b3V0IGdlb21ldHJ5LgotICAg
ICAgICB0b3AgPSBsaW5lcy5maXJzdCgpLnJlY3QoKS55KCk7Ci0gICAgICAgIGJvdHRvbSA9IGxp
bmVzLmxhc3QoKS5yZWN0KCkubWF4WSgpOworICAgICAgICB0b3AgPSBsaW5lcy5maXJzdCgpLnRv
cCgpOworICAgICAgICBib3R0b20gPSBsaW5lcy5sYXN0KCkuYm90dG9tKCk7CiAgICAgfSBlbHNl
IGlmIChmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5lc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQoKSB8fCBmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5lc3RhYmxpc2hlc1RhYmxlRm9ybWF0
dGluZ0NvbnRleHQoKSB8fCBmb3JtYXR0aW5nUm9vdENvbnRhaW5lci5pc0RvY3VtZW50Qm94KCkp
IHsKICAgICAgICAgaWYgKGZvcm1hdHRpbmdSb290Q29udGFpbmVyLmhhc0luRmxvd0NoaWxkKCkp
IHsKICAgICAgICAgICAgIGF1dG8mIGZpcnN0Qm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4
dC5nZW9tZXRyeUZvckJveCgqZm9ybWF0dGluZ1Jvb3RDb250YWluZXIuZmlyc3RJbkZsb3dDaGls
ZCgpLCBFc2NhcGVSZWFzb246Ok5lZWRzR2VvbWV0cnlGcm9tRXN0YWJsaXNoZWRGb3JtYXR0aW5n
Q29udGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUv
RGlzcGxheVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5
UmVjdC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZTc4Nzk0ODg0NmYuLjAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheVJl
Y3QuaAorKysgL2Rldi9udWxsCkBAIC0xLDMwOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2luY2x1
ZGUgIkxheW91dFJlY3QuaCIKLSNpbmNsdWRlICJMYXlvdXRVbml0cy5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1uYW1lc3BhY2UgRGlzcGxheSB7Ci0KLWNsYXNzIFJlY3QgewotcHVibGljOgot
ICAgIFJlY3QoKSA9IGRlZmF1bHQ7Ci0gICAgUmVjdChMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5p
dCBsZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhlaWdodCk7Ci0gICAgUmVjdChM
YXlvdXRQb2ludCB0b3BMZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhlaWdodCk7
Ci0gICAgUmVjdChjb25zdCBMYXlvdXRQb2ludCYgdG9wTGVmdCwgY29uc3QgTGF5b3V0U2l6ZSYp
OwotICAgIAotICAgIExheW91dFVuaXQgdG9wKCkgY29uc3Q7Ci0gICAgTGF5b3V0VW5pdCBsZWZ0
KCkgY29uc3Q7Ci0gICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0OwotCi0gICAgTGF5b3V0
VW5pdCBib3R0b20oKSBjb25zdDsKLSAgICBMYXlvdXRVbml0IHJpZ2h0KCkgY29uc3Q7ICAgICAg
ICAKLSAgICBMYXlvdXRQb2ludCBib3R0b21SaWdodCgpIGNvbnN0OwotCi0gICAgTGF5b3V0VW5p
dCB3aWR0aCgpIGNvbnN0OwotICAgIExheW91dFVuaXQgaGVpZ2h0KCkgY29uc3Q7Ci0gICAgTGF5
b3V0U2l6ZSBzaXplKCkgY29uc3Q7Ci0KLSAgICB2b2lkIHNldFRvcChMYXlvdXRVbml0KTsKLSAg
ICB2b2lkIHNldExlZnQoTGF5b3V0VW5pdCk7Ci0gICAgdm9pZCBzZXRUb3BMZWZ0KGNvbnN0IExh
eW91dFBvaW50Jik7Ci0gICAgdm9pZCBzZXRXaWR0aChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNl
dEhlaWdodChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldFNpemUoY29uc3QgTGF5b3V0U2l6ZSYp
OwotCi0gICAgdm9pZCBzaGlmdExlZnRUbyhMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNoaWZ0Umln
aHRUbyhMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNoaWZ0VG9wVG8oTGF5b3V0VW5pdCk7Ci0gICAg
dm9pZCBzaGlmdEJvdHRvbVRvKExheW91dFVuaXQpOwotCi0gICAgdm9pZCBtb3ZlSG9yaXpvbnRh
bGx5KExheW91dFVuaXQpOwotICAgIHZvaWQgbW92ZVZlcnRpY2FsbHkoTGF5b3V0VW5pdCk7Ci0K
LSAgICB2b2lkIGV4cGFuZChPcHRpb25hbDxMYXlvdXRVbml0PiwgT3B0aW9uYWw8TGF5b3V0VW5p
dD4pOwotICAgIHZvaWQgZXhwYW5kSG9yaXpvbnRhbGx5KExheW91dFVuaXQgZGVsdGEpIHsgZXhw
YW5kKGRlbHRhLCB7IH0pOyB9Ci0gICAgdm9pZCBleHBhbmRWZXJ0aWNhbGx5KExheW91dFVuaXQg
ZGVsdGEpIHsgZXhwYW5kKHsgfSwgZGVsdGEpOyB9Ci0gICAgYm9vbCBpbnRlcnNlY3RzKGNvbnN0
IFJlY3QmIHJlY3QpIGNvbnN0IHsgcmV0dXJuIG1fcmVjdC5pbnRlcnNlY3RzKHJlY3QpOyB9Ci0K
LSAgICBSZWN0IGNsb25lKCkgY29uc3Q7Ci0gICAgb3BlcmF0b3IgTGF5b3V0UmVjdCgpIGNvbnN0
OwotCi1wcml2YXRlOgotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgdm9pZCBpbnZhbGlkYXRlVG9w
KCkgeyBtX2hhc1ZhbGlkVG9wID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVMZWZ0KCkg
eyBtX2hhc1ZhbGlkTGVmdCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlV2lkdGgoKSB7
IG1faGFzVmFsaWRXaWR0aCA9IGZhbHNlOyB9Ci0gICAgdm9pZCBpbnZhbGlkYXRlSGVpZ2h0KCkg
eyBtX2hhc1ZhbGlkSGVpZ2h0ID0gZmFsc2U7IH0KLSAgICB2b2lkIGludmFsaWRhdGVQb3NpdGlv
bigpOwotCi0gICAgYm9vbCBoYXNWYWxpZFBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9oYXNW
YWxpZFRvcCAmJiBtX2hhc1ZhbGlkTGVmdDsgfQotICAgIGJvb2wgaGFzVmFsaWRTaXplKCkgY29u
c3QgeyByZXR1cm4gbV9oYXNWYWxpZFdpZHRoICYmIG1faGFzVmFsaWRIZWlnaHQ7IH0KLSAgICBi
b29sIGhhc1ZhbGlkR2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBoYXNWYWxpZFBvc2l0aW9uKCkg
JiYgaGFzVmFsaWRTaXplKCk7IH0KLQotICAgIHZvaWQgc2V0SGFzVmFsaWRQb3NpdGlvbigpOwot
ICAgIHZvaWQgc2V0SGFzVmFsaWRTaXplKCk7Ci0KLSAgICBib29sIG1faGFzVmFsaWRUb3AgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9oYXNWYWxpZExlZnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9o
YXNWYWxpZFdpZHRoIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzVmFsaWRIZWlnaHQgeyBmYWxz
ZSB9OwotI2VuZGlmIC8vIEFTU0VSVF9FTkFCTEVECi0gICAgTGF5b3V0UmVjdCBtX3JlY3Q7Ci19
OwotCi1pbmxpbmUgUmVjdDo6UmVjdChMYXlvdXRVbml0IHRvcCwgTGF5b3V0VW5pdCBsZWZ0LCBM
YXlvdXRVbml0IHdpZHRoLCBMYXlvdXRVbml0IGhlaWdodCkKLSAgICA6IG1fcmVjdChsZWZ0LCB0
b3AsIHdpZHRoLCBoZWlnaHQpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlk
VG9wID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZFdp
ZHRoID0gdHJ1ZTsKLSAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLSNlbmRpZgotfQotCi1p
bmxpbmUgUmVjdDo6UmVjdChMYXlvdXRQb2ludCB0b3BMZWZ0LCBMYXlvdXRVbml0IHdpZHRoLCBM
YXlvdXRVbml0IGhlaWdodCkKLSAgICA6IFJlY3QodG9wTGVmdC55KCksIHRvcExlZnQueCgpLCB3
aWR0aCwgaGVpZ2h0KQotewotfQotCi1pbmxpbmUgUmVjdDo6UmVjdChjb25zdCBMYXlvdXRQb2lu
dCYgdG9wTGVmdCwgY29uc3QgTGF5b3V0U2l6ZSYgc2l6ZSkKLSAgICA6IFJlY3QodG9wTGVmdC55
KCksIHRvcExlZnQueCgpLCBzaXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpCi17Ci19Ci0KLSNp
ZiBBU1NFUlRfRU5BQkxFRAotaW5saW5lIHZvaWQgUmVjdDo6aW52YWxpZGF0ZVBvc2l0aW9uKCkK
LXsKLSAgICBpbnZhbGlkYXRlVG9wKCk7Ci0gICAgaW52YWxpZGF0ZUxlZnQoKTsKLX0KLQotaW5s
aW5lIHZvaWQgUmVjdDo6c2V0SGFzVmFsaWRQb3NpdGlvbigpCi17Ci0gICAgbV9oYXNWYWxpZFRv
cCA9IHRydWU7Ci0gICAgbV9oYXNWYWxpZExlZnQgPSB0cnVlOwotfQotCi1pbmxpbmUgdm9pZCBS
ZWN0OjpzZXRIYXNWYWxpZFNpemUoKQotewotICAgIG1faGFzVmFsaWRXaWR0aCA9IHRydWU7Ci0g
ICAgbV9oYXNWYWxpZEhlaWdodCA9IHRydWU7Ci19Ci0jZW5kaWYKLQotaW5saW5lIExheW91dFVu
aXQgUmVjdDo6dG9wKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0gICAg
cmV0dXJuIG1fcmVjdC55KCk7Ci19Ci0KLWlubGluZSBMYXlvdXRVbml0IFJlY3Q6OmxlZnQoKSBj
b25zdAotewotICAgIEFTU0VSVChtX2hhc1ZhbGlkTGVmdCk7Ci0gICAgcmV0dXJuIG1fcmVjdC54
KCk7Ci19Ci0KLWlubGluZSBMYXlvdXRVbml0IFJlY3Q6OmJvdHRvbSgpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKG1faGFzVmFsaWRUb3AgJiYgbV9oYXNWYWxpZEhlaWdodCk7Ci0gICAgcmV0dXJuIG1f
cmVjdC5tYXhZKCk7Ci19Ci0KLWlubGluZSBMYXlvdXRVbml0IFJlY3Q6OnJpZ2h0KCkgY29uc3QK
LXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZExlZnQgJiYgbV9oYXNWYWxpZFdpZHRoKTsKLSAgICBy
ZXR1cm4gbV9yZWN0Lm1heFgoKTsKLX0KLQotaW5saW5lIExheW91dFBvaW50IFJlY3Q6OnRvcExl
ZnQoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNWYWxpZFBvc2l0aW9uKCkpOwotICAgIHJldHVy
biBtX3JlY3QubWluWE1pbllDb3JuZXIoKTsKLX0KLQotaW5saW5lIExheW91dFBvaW50IFJlY3Q6
OmJvdHRvbVJpZ2h0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsK
LSAgICByZXR1cm4gbV9yZWN0Lm1heFhNYXhZQ29ybmVyKCk7Ci19Ci0KLWlubGluZSBMYXlvdXRT
aXplIFJlY3Q6OnNpemUoKSBjb25zdAotewotICAgIEFTU0VSVChoYXNWYWxpZFNpemUoKSk7Ci0g
ICAgcmV0dXJuIG1fcmVjdC5zaXplKCk7Ci19Ci0KLWlubGluZSBMYXlvdXRVbml0IFJlY3Q6Ondp
ZHRoKCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFdpZHRoKTsKLSAgICByZXR1cm4g
bV9yZWN0LndpZHRoKCk7Ci19Ci0KLWlubGluZSBMYXlvdXRVbml0IFJlY3Q6OmhlaWdodCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRIZWlnaHQpOwotICAgIHJldHVybiBtX3JlY3Qu
aGVpZ2h0KCk7Ci19Ci0KLWlubGluZSB2b2lkIFJlY3Q6OnNldFRvcExlZnQoY29uc3QgTGF5b3V0
UG9pbnQmIHRvcExlZnQpCi17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBzZXRIYXNWYWxpZFBv
c2l0aW9uKCk7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0TG9jYXRpb24odG9wTGVmdCk7Ci19Ci0K
LWlubGluZSB2b2lkIFJlY3Q6OnNldFRvcChMYXlvdXRVbml0IHRvcCkKLXsKLSNpZiBBU1NFUlRf
RU5BQkxFRAotICAgIG1faGFzVmFsaWRUb3AgPSB0cnVlOwotI2VuZGlmCi0gICAgbV9yZWN0LnNl
dFkodG9wKTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2V0TGVmdChMYXlvdXRVbml0IGxlZnQp
Ci17Ci0jaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlkTGVmdCA9IHRydWU7Ci0jZW5k
aWYKLSAgICBtX3JlY3Quc2V0WChsZWZ0KTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2V0V2lk
dGgoTGF5b3V0VW5pdCB3aWR0aCkKLXsKLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIG1faGFzVmFs
aWRXaWR0aCA9IHRydWU7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0V2lkdGgod2lkdGgpOwotfQot
Ci1pbmxpbmUgdm9pZCBSZWN0OjpzZXRIZWlnaHQoTGF5b3V0VW5pdCBoZWlnaHQpCi17Ci0jaWYg
QVNTRVJUX0VOQUJMRUQKLSAgICBtX2hhc1ZhbGlkSGVpZ2h0ID0gdHJ1ZTsKLSNlbmRpZgotICAg
IG1fcmVjdC5zZXRIZWlnaHQoaGVpZ2h0KTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2V0U2l6
ZShjb25zdCBMYXlvdXRTaXplJiBzaXplKQotewotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgc2V0
SGFzVmFsaWRTaXplKCk7Ci0jZW5kaWYKLSAgICBtX3JlY3Quc2V0U2l6ZShzaXplKTsKLX0KLQot
aW5saW5lIHZvaWQgUmVjdDo6c2hpZnRMZWZ0VG8oTGF5b3V0VW5pdCBsZWZ0KQotewotICAgIEFT
U0VSVChtX2hhc1ZhbGlkTGVmdCk7Ci0gICAgbV9yZWN0LnNoaWZ0WEVkZ2VUbyhsZWZ0KTsKLX0K
LQotaW5saW5lIHZvaWQgUmVjdDo6c2hpZnRSaWdodFRvKExheW91dFVuaXQgcmlnaHQpCi17Ci0g
ICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0ICYmIG1faGFzVmFsaWRXaWR0aCk7Ci0gICAgbV9yZWN0
LnNoaWZ0TWF4WEVkZ2VUbyhyaWdodCk7Ci19Ci0KLWlubGluZSB2b2lkIFJlY3Q6OnNoaWZ0VG9w
VG8oTGF5b3V0VW5pdCB0b3ApCi17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRUb3ApOwotICAgIG1f
cmVjdC5zaGlmdFlFZGdlVG8odG9wKTsKLX0KLQotaW5saW5lIHZvaWQgUmVjdDo6c2hpZnRCb3R0
b21UbyhMYXlvdXRVbml0IGJvdHRvbSkKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCAmJiBt
X2hhc1ZhbGlkSGVpZ2h0KTsKLSAgICBtX3JlY3Quc2hpZnRNYXhZRWRnZVRvKGJvdHRvbSk7Ci19
Ci0KLWlubGluZSB2b2lkIFJlY3Q6Om1vdmVIb3Jpem9udGFsbHkoTGF5b3V0VW5pdCBvZmZzZXQp
Ci17Ci0gICAgQVNTRVJUKG1faGFzVmFsaWRMZWZ0KTsKLSAgICBtX3JlY3QubW92ZShMYXlvdXRT
aXplIHsgb2Zmc2V0LCAwIH0pOwotfQotCi1pbmxpbmUgdm9pZCBSZWN0Ojptb3ZlVmVydGljYWxs
eShMYXlvdXRVbml0IG9mZnNldCkKLXsKLSAgICBBU1NFUlQobV9oYXNWYWxpZFRvcCk7Ci0gICAg
bV9yZWN0Lm1vdmUoTGF5b3V0U2l6ZSB7IDAsIG9mZnNldCB9KTsKLX0KLQotaW5saW5lIHZvaWQg
UmVjdDo6ZXhwYW5kKE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxMYXlvdXRV
bml0PiBoZWlnaHQpCi17Ci0gICAgQVNTRVJUKCF3aWR0aCB8fCBtX2hhc1ZhbGlkV2lkdGgpOwot
ICAgIEFTU0VSVCghaGVpZ2h0IHx8IG1faGFzVmFsaWRIZWlnaHQpOwotICAgIG1fcmVjdC5leHBh
bmQod2lkdGgudmFsdWVPcigwKSwgaGVpZ2h0LnZhbHVlT3IoMCkpOwotfQotCi1pbmxpbmUgUmVj
dCBSZWN0OjpjbG9uZSgpIGNvbnN0Ci17Ci0gICAgUmVjdCByZWN0OwotI2lmIEFTU0VSVF9FTkFC
TEVECi0gICAgcmVjdC5tX2hhc1ZhbGlkVG9wID0gbV9oYXNWYWxpZFRvcDsKLSAgICByZWN0Lm1f
aGFzVmFsaWRMZWZ0ID0gbV9oYXNWYWxpZExlZnQ7Ci0gICAgcmVjdC5tX2hhc1ZhbGlkV2lkdGgg
PSBtX2hhc1ZhbGlkV2lkdGg7Ci0gICAgcmVjdC5tX2hhc1ZhbGlkSGVpZ2h0ICA9IG1faGFzVmFs
aWRIZWlnaHQ7Ci0jZW5kaWYgCi0gICAgcmVjdC5tX3JlY3QgPSBtX3JlY3Q7Ci0gICAgcmV0dXJu
IHJlY3Q7Ci19Ci0KLWlubGluZSBSZWN0OjpvcGVyYXRvciBMYXlvdXRSZWN0KCkgY29uc3QKLXsK
LSAgICBBU1NFUlQoaGFzVmFsaWRHZW9tZXRyeSgpKTsgCi0gICAgcmV0dXJuIG1fcmVjdDsKLX0K
LQotfQotfQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZv
cm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mbGV4Zm9ybWF0dGluZy9GbGV4Rm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDliNmZlZmQ3
YmI5Zi4uYWY0ZjkzMGFlMDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxl
eGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtOTcs
NyArOTcsNyBAQCB2b2lkIEZsZXhGb3JtYXR0aW5nQ29udGV4dDo6c2l6ZUFuZFBsYWNlRmxleEl0
ZW1zKGNvbnN0IENvbnN0cmFpbnRzRm9ySW5GbG93Q29udAogICAgICAgICBjb21wdXRlRmxleEl0
ZW1HZW9tZXRyeSgpOwogICAgIH0KICAgICBhdXRvIGZsZXhMaW5lID0gSW5saW5lUmVjdCB7IGZs
ZXhJdGVtQ3Jvc0F4aXNTdGFydCwgZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbU1haW5B
eGlzRW5kIC0gZmxleEl0ZW1NYWluQXhpc1N0YXJ0LCBmbGV4SXRlbUNyb3NBeGlzRW5kIC0gZmxl
eEl0ZW1Dcm9zQXhpc1N0YXJ0IH07Ci0gICAgZm9ybWF0dGluZ1N0YXRlLmFkZExpbmUoeyBmbGV4
TGluZSwgZmxleExpbmUsIGZsZXhMaW5lLCB7IH0sIHsgfSB9KTsKKyAgICBmb3JtYXR0aW5nU3Rh
dGUuYWRkTGluZShmbGV4TGluZSk7CiB9CiAKIHZvaWQgRmxleEZvcm1hdHRpbmdDb250ZXh0Ojpj
b21wdXRlSW50cmluc2ljV2lkdGhDb25zdHJhaW50c0ZvckZsZXhJdGVtcygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5n
U3RhdGUuaAppbmRleCAxYjRhM2RmYTdiZGEuLmEwNjNiOWRhMmE1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ZsZXhmb3JtYXR0aW5nL0ZsZXhGb3JtYXR0aW5nU3RhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxleGZvcm1hdHRpbmcvRmxleEZvcm1hdHRpbmdT
dGF0ZS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKIAotI2luY2x1ZGUgIkRpc3BsYXlMaW5lLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGlu
Z1N0YXRlLmgiCisjaW5jbHVkZSAiSW5saW5lUmVjdC5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2MuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDAsMTIgKzQwLDExIEBAIHB1YmxpYzoK
ICAgICBGbGV4Rm9ybWF0dGluZ1N0YXRlKFJlZjxGbG9hdGluZ1N0YXRlPiYmLCBMYXlvdXRTdGF0
ZSYpOwogICAgIH5GbGV4Rm9ybWF0dGluZ1N0YXRlKCk7CiAKLSAgICB1c2luZyBGbGV4TGluZXMg
PSBWZWN0b3I8RGlzcGxheTo6TGluZT47Ci0gICAgY29uc3QgRmxleExpbmVzJiBsaW5lcygpIGNv
bnN0IHsgcmV0dXJuIG1fbGluZXM7IH0KLSAgICB2b2lkIGFkZExpbmUoY29uc3QgRGlzcGxheTo6
TGluZSYgbGluZSkgeyBtX2xpbmVzLmFwcGVuZChsaW5lKTsgfQorICAgIGNvbnN0IGF1dG8mIGxp
bmVzKCkgY29uc3QgeyByZXR1cm4gbV9saW5lczsgfQorICAgIHZvaWQgYWRkTGluZShjb25zdCBJ
bmxpbmVSZWN0JiBsaW5lKSB7IG1fbGluZXMuYXBwZW5kKGxpbmUpOyB9CiAKIHByaXZhdGU6Ci0g
ICAgRmxleExpbmVzIG1fbGluZXM7CisgICAgVmVjdG9yPElubGluZVJlY3Q+IG1fbGluZXM7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlz
cGxheUlubGluZUNvbnRlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKc2ltaWxhcml0eSBpbmRleCA5NiUK
cmVuYW1lIGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlJbmxp
bmVDb250ZW50LmNwcApyZW5hbWUgdG8gU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9u
L0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKaW5kZXggMjFjNWZlMmJiNjE0Li42
NGY5OGIzNjcwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJl
ZS9EaXNwbGF5SW5saW5lQ29udGVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
dGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAKQEAgLTI0LDE1ICsy
NCwxNSBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudC5oIgogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCiAKLSNpbmNsdWRlICJEaXNwbGF5SW5saW5lQ29udGVudC5oIgogI2luY2x1ZGUgIlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJUZXh0UGFpbnRlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgRGlzcGxheSB7CituYW1lc3BhY2UgTGF5b3V0SW50
ZWdyYXRpb24gewogCiBXVEY6Okl0ZXJhdG9yUmFuZ2U8Y29uc3QgUnVuKj4gSW5saW5lQ29udGVu
dDo6cnVuc0ZvclJlY3QoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbklubGlu
ZUNvbnRlbnQuaApzaW1pbGFyaXR5IGluZGV4IDk1JQpyZW5hbWUgZnJvbSBTb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaApyZW5hbWUgdG8gU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uSW5saW5lQ29u
dGVudC5oCmluZGV4IDdjOTY3NDRlY2Q2OC4uN2I2NDIwMGIyMzQ1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxheUlubGluZUNvbnRlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25Jbmxp
bmVDb250ZW50LmgKQEAgLTI3LDEzICsyNywxMyBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJEaXNwbGF5TGluZS5oIgotI2luY2x1ZGUgIkRp
c3BsYXlSdW4uaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbkxpbmUuaCIKKyNpbmNsdWRl
ICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIgogI2luY2x1ZGUgPHd0Zi9JdGVyYXRvclJhbmdlLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3Bh
Y2UgRGlzcGxheSB7CituYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewogCiBzdHJ1Y3QgSW5s
aW5lQ29udGVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElubGluZUNvbnRlbnQ+IHsKICAgICBzdGF0
aWMgUmVmPElubGluZUNvbnRlbnQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5s
aW5lQ29udGVudCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5
dHJlZS9EaXNwbGF5TGluZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uTGluZS5oCnNpbWlsYXJpdHkgaW5kZXggOTglCnJlbmFtZSBmcm9tIFNv
dXJjZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCnJlbmFtZSB0byBT
b3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25MaW5lLmgK
aW5kZXggZGM1NTZmMzFjYzkzLi42ZjAwOTU4MTUwMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5TGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmUuaApAQCAtMzAsNyArMzAs
NyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1l
c3BhY2UgRGlzcGxheSB7CituYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewogCiBjbGFzcyBM
aW5lIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uTGlu
ZUxheW91dC5jcHAKaW5kZXggNzg4ZTIyZDE5MDE0Li45ZGRmMmFjZGRkNjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvbkxpbmVM
YXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJ
bnRlZ3JhdGlvbkxpbmVMYXlvdXQuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgdm9pZCBMaW5lTGF5
b3V0OjpsYXlvdXQoKQogICAgIHByZXBhcmVMYXlvdXRTdGF0ZSgpOwogICAgIHByZXBhcmVGbG9h
dGluZ1N0YXRlKCk7CiAKLSAgICBtX2Rpc3BsYXlJbmxpbmVDb250ZW50ID0gbnVsbHB0cjsKKyAg
ICBtX2lubGluZUNvbnRlbnQgPSBudWxscHRyOwogICAgIGF1dG8gaW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQgPSBMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0IHsgcm9vdExheW91dEJveCgp
LCBtX2lubGluZUZvcm1hdHRpbmdTdGF0ZSB9OwogCiAgICAgYXV0byBpbnZhbGlkYXRpb25TdGF0
ZSA9IExheW91dDo6SW52YWxpZGF0aW9uU3RhdGUgeyB9OwpAQCAtMTEzLDEyICsxMTMsMTIgQEAg
dm9pZCBMaW5lTGF5b3V0OjpsYXlvdXQoKQogICAgIGF1dG8gdmVydGljYWxDb25zdHJhaW50cyA9
IExheW91dDo6VmVydGljYWxDb25zdHJhaW50cyB7IG1fZmxvdy5ib3JkZXJBbmRQYWRkaW5nQmVm
b3JlKCksIHsgfSB9OwogCiAgICAgaW5saW5lRm9ybWF0dGluZ0NvbnRleHQubGF5b3V0SW5GbG93
Q29udGVudChpbnZhbGlkYXRpb25TdGF0ZSwgeyBob3Jpem9udGFsQ29uc3RyYWludHMsIHZlcnRp
Y2FsQ29uc3RyYWludHMgfSk7Ci0gICAgY29uc3RydWN0RGlzcGxheUNvbnRlbnQoKTsKKyAgICBj
b25zdHJ1Y3RDb250ZW50KCk7CiB9CiAKLXZvaWQgTGluZUxheW91dDo6Y29uc3RydWN0RGlzcGxh
eUNvbnRlbnQoKQordm9pZCBMaW5lTGF5b3V0Ojpjb25zdHJ1Y3RDb250ZW50KCkKIHsKLSAgICBh
dXRvJiBkaXNwbGF5SW5saW5lQ29udGVudCA9IGVuc3VyZURpc3BsYXlJbmxpbmVDb250ZW50KCk7
CisgICAgYXV0byYgZGlzcGxheUlubGluZUNvbnRlbnQgPSBlbnN1cmVJbmxpbmVDb250ZW50KCk7
CiAKICAgICBhdXRvIGNvbnN0cnVjdERpc3BsYXlMaW5lUnVucyA9IFsmXSB7CiAgICAgICAgIGF1
dG8gaW5pdGlhbENvbnRhaW5nQmxvY2tTaXplID0gbV9sYXlvdXRTdGF0ZS52aWV3cG9ydFNpemUo
KTsKQEAgLTE0MSwxNyArMTQxLDE3IEBAIHZvaWQgTGluZUxheW91dDo6Y29uc3RydWN0RGlzcGxh
eUNvbnRlbnQoKQogICAgICAgICAgICAgICAgIHJldHVybiBpbmtPdmVyZmxvdzsKICAgICAgICAg
ICAgIH07CiAgICAgICAgICAgICBhdXRvIGxvZ2ljYWxSZWN0ID0gRmxvYXRSZWN0IHsgbGluZVJ1
bi5sb2dpY2FsUmVjdCgpIH07Ci0gICAgICAgICAgICAvLyBJbmxpbmUgYm94ZXMgYXJlIHJlbGF0
aXZlIHRvIHRoZSBsaW5lIGJveCB3aGlsZSBmaW5hbCBEaXNwbGF5OjpSdW5zIG5lZWQgdG8gYmUg
cmVsYXRpdmUgdG8gdGhlIHBhcmVudCBEaXNwbGF5OkJveAorICAgICAgICAgICAgLy8gSW5saW5l
IGJveGVzIGFyZSByZWxhdGl2ZSB0byB0aGUgbGluZSBib3ggd2hpbGUgZmluYWwgUnVucyBuZWVk
IHRvIGJlIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnQgQm94CiAgICAgICAgICAgICAvLyBGSVhNRTog
U2hvdWxkbid0IHdlIGp1c3QgbGVhdmUgdGhlbSBiZSByZWxhdGl2ZSB0byB0aGUgbGluZSBib3g/
CiAgICAgICAgICAgICBhdXRvIGxpbmVJbmRleCA9IGxpbmVSdW4ubGluZUluZGV4KCk7CiAgICAg
ICAgICAgICBhdXRvJiBsaW5lQm94TG9naWNhbFJlY3QgPSBtX2lubGluZUZvcm1hdHRpbmdTdGF0
ZS5saW5lcygpW2xpbmVJbmRleF0ubGluZUJveExvZ2ljYWxSZWN0KCk7CiAgICAgICAgICAgICBs
b2dpY2FsUmVjdC5tb3ZlQnkoeyBsaW5lQm94TG9naWNhbFJlY3QubGVmdCgpLCBsaW5lQm94TG9n
aWNhbFJlY3QudG9wKCkgfSk7CiAKLSAgICAgICAgICAgIFdURjo6T3B0aW9uYWw8RGlzcGxheTo6
UnVuOjpUZXh0Q29udGVudD4gdGV4dENvbnRlbnQ7CisgICAgICAgICAgICBXVEY6Ok9wdGlvbmFs
PFJ1bjo6VGV4dENvbnRlbnQ+IHRleHRDb250ZW50OwogICAgICAgICAgICAgaWYgKGF1dG8gdGV4
dCA9IGxpbmVSdW4udGV4dCgpKQotICAgICAgICAgICAgICAgIHRleHRDb250ZW50ID0gRGlzcGxh
eTo6UnVuOjpUZXh0Q29udGVudCB7IHRleHQtPnN0YXJ0KCksIHRleHQtPmxlbmd0aCgpLCB0ZXh0
LT5jb250ZW50KCksIHRleHQtPm5lZWRzSHlwaGVuKCkgfTsKLSAgICAgICAgICAgIGF1dG8gZXhw
YW5zaW9uID0gRGlzcGxheTo6UnVuOjpFeHBhbnNpb24geyBsaW5lUnVuLmV4cGFuc2lvbigpLmJl
aGF2aW9yLCBsaW5lUnVuLmV4cGFuc2lvbigpLmhvcml6b250YWxFeHBhbnNpb24gfTsKLSAgICAg
ICAgICAgIGF1dG8gZGlzcGxheVJ1biA9IERpc3BsYXk6OlJ1biB7IGxpbmVJbmRleCwgbGF5b3V0
Qm94LCBsb2dpY2FsUmVjdCwgY29tcHV0ZWRJbmtPdmVyZmxvdyhsb2dpY2FsUmVjdCksIGV4cGFu
c2lvbiwgdGV4dENvbnRlbnQgfTsKKyAgICAgICAgICAgICAgICB0ZXh0Q29udGVudCA9IFJ1bjo6
VGV4dENvbnRlbnQgeyB0ZXh0LT5zdGFydCgpLCB0ZXh0LT5sZW5ndGgoKSwgdGV4dC0+Y29udGVu
dCgpLCB0ZXh0LT5uZWVkc0h5cGhlbigpIH07CisgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbiA9
IFJ1bjo6RXhwYW5zaW9uIHsgbGluZVJ1bi5leHBhbnNpb24oKS5iZWhhdmlvciwgbGluZVJ1bi5l
eHBhbnNpb24oKS5ob3Jpem9udGFsRXhwYW5zaW9uIH07CisgICAgICAgICAgICBhdXRvIGRpc3Bs
YXlSdW4gPSBSdW4geyBsaW5lSW5kZXgsIGxheW91dEJveCwgbG9naWNhbFJlY3QsIGNvbXB1dGVk
SW5rT3ZlcmZsb3cobG9naWNhbFJlY3QpLCBleHBhbnNpb24sIHRleHRDb250ZW50IH07CiAgICAg
ICAgICAgICBkaXNwbGF5SW5saW5lQ29udGVudC5ydW5zLmFwcGVuZChkaXNwbGF5UnVuKTsKICAg
ICAgICAgfQogICAgIH07CkBAIC0yMjksMTAgKzIyOSw5IEBAIExheW91dFVuaXQgTGluZUxheW91
dDo6Y29udGVudExvZ2ljYWxIZWlnaHQoKSBjb25zdAogCiBzaXplX3QgTGluZUxheW91dDo6bGlu
ZUNvdW50KCkgY29uc3QKIHsKLSAgICBhdXRvKiBpbmxpbmVDb250ZW50ID0gZGlzcGxheUlubGlu
ZUNvbnRlbnQoKTsKLSAgICBpZiAoIWlubGluZUNvbnRlbnQpCisgICAgaWYgKCFtX2lubGluZUNv
bnRlbnQpCiAgICAgICAgIHJldHVybiAwOwotICAgIGlmIChpbmxpbmVDb250ZW50LT5ydW5zLmlz
RW1wdHkoKSkKKyAgICBpZiAobV9pbmxpbmVDb250ZW50LT5ydW5zLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIG1faW5saW5lRm9ybWF0dGluZ1N0YXRlLmxpbmVzKCku
c2l6ZSgpOwogfQpAQCAtMjY0LDggKzI2Myw4IEBAIExheW91dFVuaXQgTGluZUxheW91dDo6bGFz
dExpbmVCYXNlbGluZSgpIGNvbnN0CiB2b2lkIExpbmVMYXlvdXQ6OmFkanVzdEZvclBhZ2luYXRp
b24oUmVuZGVyQmxvY2tGbG93JiBmbG93KQogewogICAgIEFTU0VSVCgmZmxvdyA9PSAmbV9mbG93
KTsKLSAgICBhdXRvIHBhZ2luZWRJbmxpbmVDb250ZW50ID0gYWRqdXN0TGluZVBvc2l0aW9uc0Zv
clBhZ2luYXRpb24oKm1fZGlzcGxheUlubGluZUNvbnRlbnQsIGZsb3cpOwotICAgIGlmIChwYWdp
bmVkSW5saW5lQ29udGVudC5wdHIoKSA9PSBtX2Rpc3BsYXlJbmxpbmVDb250ZW50KSB7CisgICAg
YXV0byBwYWdpbmVkSW5saW5lQ29udGVudCA9IGFkanVzdExpbmVQb3NpdGlvbnNGb3JQYWdpbmF0
aW9uKCptX2lubGluZUNvbnRlbnQsIGZsb3cpOworICAgIGlmIChwYWdpbmVkSW5saW5lQ29udGVu
dC5wdHIoKSA9PSBtX2lubGluZUNvbnRlbnQpIHsKICAgICAgICAgbV9wYWdpbmF0ZWRIZWlnaHQg
PSB7IH07CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNzMsNyArMjcyLDcgQEAgdm9pZCBM
aW5lTGF5b3V0OjphZGp1c3RGb3JQYWdpbmF0aW9uKFJlbmRlckJsb2NrRmxvdyYgZmxvdykKICAg
ICBhdXRvJiBsaW5lcyA9IHBhZ2luZWRJbmxpbmVDb250ZW50LT5saW5lczsKICAgICBtX3BhZ2lu
YXRlZEhlaWdodCA9IExheW91dFVuaXQgeyBsaW5lcy5sYXN0KCkucmVjdCgpLm1heFkoKSAtIGxp
bmVzLmZpcnN0KCkucmVjdCgpLnkoKSB9OwogCi0gICAgbV9kaXNwbGF5SW5saW5lQ29udGVudCA9
IFdURk1vdmUocGFnaW5lZElubGluZUNvbnRlbnQpOworICAgIG1faW5saW5lQ29udGVudCA9IFdU
Rk1vdmUocGFnaW5lZElubGluZUNvbnRlbnQpOwogfQogCiB2b2lkIExpbmVMYXlvdXQ6OmNvbGxl
Y3RPdmVyZmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCkBAIC0yODEsMzAgKzI4MCwyOSBAQCB2
b2lkIExpbmVMYXlvdXQ6OmNvbGxlY3RPdmVyZmxvdyhSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCiAg
ICAgQVNTRVJUKCZmbG93ID09ICZtX2Zsb3cpOwogICAgIEFTU0VSVCghZmxvdy5oYXNPdmVyZmxv
d0NsaXAoKSk7CiAKLSAgICBmb3IgKGF1dG8mIGxpbmUgOiBkaXNwbGF5SW5saW5lQ29udGVudCgp
LT5saW5lcykgeworICAgIGZvciAoYXV0byYgbGluZSA6IGlubGluZUNvbnRlbnQoKS0+bGluZXMp
IHsKICAgICAgICAgZmxvdy5hZGRMYXlvdXRPdmVyZmxvdyhMYXlvdXQ6OnRvTGF5b3V0UmVjdChs
aW5lLnNjcm9sbGFibGVPdmVyZmxvdygpKSk7CiAgICAgICAgIGZsb3cuYWRkVmlzdWFsT3ZlcmZs
b3coTGF5b3V0Ojp0b0xheW91dFJlY3QobGluZS5pbmtPdmVyZmxvdygpKSk7CiAgICAgfQogfQog
Ci1EaXNwbGF5OjpJbmxpbmVDb250ZW50JiBMaW5lTGF5b3V0OjplbnN1cmVEaXNwbGF5SW5saW5l
Q29udGVudCgpCitJbmxpbmVDb250ZW50JiBMaW5lTGF5b3V0OjplbnN1cmVJbmxpbmVDb250ZW50
KCkKIHsKLSAgICBpZiAoIW1fZGlzcGxheUlubGluZUNvbnRlbnQpCi0gICAgICAgIG1fZGlzcGxh
eUlubGluZUNvbnRlbnQgPSBEaXNwbGF5OjpJbmxpbmVDb250ZW50OjpjcmVhdGUoKTsKLSAgICBy
ZXR1cm4gKm1fZGlzcGxheUlubGluZUNvbnRlbnQ7CisgICAgaWYgKCFtX2lubGluZUNvbnRlbnQp
CisgICAgICAgIG1faW5saW5lQ29udGVudCA9IElubGluZUNvbnRlbnQ6OmNyZWF0ZSgpOworICAg
IHJldHVybiAqbV9pbmxpbmVDb250ZW50OwogfQogCiBUZXh0UnVuSXRlcmF0b3IgTGluZUxheW91
dDo6dGV4dFJ1bnNGb3IoY29uc3QgUmVuZGVyVGV4dCYgcmVuZGVyVGV4dCkgY29uc3QKIHsKLSAg
ICBhdXRvKiBpbmxpbmVDb250ZW50ID0gZGlzcGxheUlubGluZUNvbnRlbnQoKTsKLSAgICBpZiAo
IWlubGluZUNvbnRlbnQpCisgICAgaWYgKCFtX2lubGluZUNvbnRlbnQpCiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgYXV0byogbGF5b3V0Qm94ID0gbV9ib3hUcmVlLmxheW91dEJveEZvclJlbmRl
cmVyKHJlbmRlclRleHQpOwogICAgIEFTU0VSVChsYXlvdXRCb3gpOwogCiAgICAgYXV0byBmaXJz
dEluZGV4ID0gWyZdKCkgLT4gT3B0aW9uYWw8c2l6ZV90PiB7Ci0gICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaW5saW5lQ29udGVudC0+cnVucy5zaXplKCk7ICsraSkgewotICAgICAgICAg
ICAgaWYgKCZpbmxpbmVDb250ZW50LT5ydW5zW2ldLmxheW91dEJveCgpID09IGxheW91dEJveCkK
KyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2lubGluZUNvbnRlbnQtPnJ1bnMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmICgmbV9pbmxpbmVDb250ZW50LT5ydW5zW2ldLmxh
eW91dEJveCgpID09IGxheW91dEJveCkKICAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm4geyB9OwpAQCAtMzEzLDIxICszMTEsMjAgQEAgVGV4dFJ1bkl0
ZXJhdG9yIExpbmVMYXlvdXQ6OnRleHRSdW5zRm9yKGNvbnN0IFJlbmRlclRleHQmIHJlbmRlclRl
eHQpIGNvbnN0CiAgICAgaWYgKCFmaXJzdEluZGV4KQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgcmV0dXJuIHsgTGF5b3V0SW50ZWdyYXRpb246Ok1vZGVyblBhdGgoKmlubGluZUNvbnRlbnQs
ICpmaXJzdEluZGV4KSB9OworICAgIHJldHVybiB7IExheW91dEludGVncmF0aW9uOjpNb2Rlcm5Q
YXRoKCptX2lubGluZUNvbnRlbnQsICpmaXJzdEluZGV4KSB9OwogfQogCiBSdW5JdGVyYXRvciBM
aW5lTGF5b3V0OjpydW5Gb3IoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyRWxlbWVudCkgY29u
c3QKIHsKLSAgICBhdXRvKiBpbmxpbmVDb250ZW50ID0gZGlzcGxheUlubGluZUNvbnRlbnQoKTsK
LSAgICBpZiAoIWlubGluZUNvbnRlbnQpCisgICAgaWYgKCFtX2lubGluZUNvbnRlbnQpCiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgYXV0byogbGF5b3V0Qm94ID0gbV9ib3hUcmVlLmxheW91dEJv
eEZvclJlbmRlcmVyKHJlbmRlckVsZW1lbnQpOwogICAgIEFTU0VSVChsYXlvdXRCb3gpOwogCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbmxpbmVDb250ZW50LT5ydW5zLnNpemUoKTsgKytp
KSB7Ci0gICAgICAgIGF1dG8mIHJ1biA9ICBpbmxpbmVDb250ZW50LT5ydW5zW2ldOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9pbmxpbmVDb250ZW50LT5ydW5zLnNpemUoKTsgKytpKSB7
CisgICAgICAgIGF1dG8mIHJ1biA9ICBtX2lubGluZUNvbnRlbnQtPnJ1bnNbaV07CiAgICAgICAg
IGlmICgmcnVuLmxheW91dEJveCgpID09IGxheW91dEJveCkKLSAgICAgICAgICAgIHJldHVybiB7
IExheW91dEludGVncmF0aW9uOjpNb2Rlcm5QYXRoKCppbmxpbmVDb250ZW50LCBpKSB9OworICAg
ICAgICAgICAgcmV0dXJuIHsgTGF5b3V0SW50ZWdyYXRpb246Ok1vZGVyblBhdGgoKm1faW5saW5l
Q29udGVudCwgaSkgfTsKICAgICB9CiAKICAgICByZXR1cm4geyB9OwpAQCAtMzQ1LDEzICszNDIs
MTMgQEAgTGF5b3V0OjpDb250YWluZXJCb3gmIExpbmVMYXlvdXQ6OnJvb3RMYXlvdXRCb3goKQog
CiB2b2lkIExpbmVMYXlvdXQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7Ci0gICAgaWYgKCFkaXNwbGF5SW5saW5lQ29udGVudCgp
KQorICAgIGlmICghbV9pbmxpbmVDb250ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAo
cGFpbnRJbmZvLnBoYXNlICE9IFBhaW50UGhhc2U6OkZvcmVncm91bmQgJiYgcGFpbnRJbmZvLnBo
YXNlICE9IFBhaW50UGhhc2U6OkV2ZW50UmVnaW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBh
dXRvJiBpbmxpbmVDb250ZW50ID0gKmRpc3BsYXlJbmxpbmVDb250ZW50KCk7CisgICAgYXV0byYg
aW5saW5lQ29udGVudCA9ICptX2lubGluZUNvbnRlbnQ7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IgPSBtX2Zsb3cuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpOwogCiAgICAgYXV0
byBwYWludFJlY3QgPSBwYWludEluZm8ucmVjdDsKQEAgLTQxOSwxMCArNDE2LDEwIEBAIGJvb2wg
TGluZUxheW91dDo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBjCiAgICAgaWYgKGhpdFRlc3RBY3Rpb24gIT0gSGl0VGVzdEZvcmVn
cm91bmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZGlzcGxheUlubGluZUNv
bnRlbnQoKSkKKyAgICBpZiAoIW1faW5saW5lQ29udGVudCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgYXV0byYgaW5saW5lQ29udGVudCA9ICpkaXNwbGF5SW5saW5lQ29udGVudCgpOwor
ICAgIGF1dG8mIGlubGluZUNvbnRlbnQgPSAqbV9pbmxpbmVDb250ZW50OwogCiAgICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGRvIHNvbWV0aGluZyBlZmZpY2llbnQgdG8gZmluZCB0aGUgcnVuIHJh
bmdlLgogICAgIGZvciAoYXV0byYgcnVuIDogaW5saW5lQ29udGVudC5ydW5zKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25M
aW5lTGF5b3V0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25MaW5lTGF5b3V0LmgKaW5kZXggZGQzMDU4N2IwMzk1Li5iYjRlOGJiNWU1MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvbkxpbmVMYXlvdXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24v
TGF5b3V0SW50ZWdyYXRpb25MaW5lTGF5b3V0LmgKQEAgLTQzLDEyICs0MywxMCBAQCBjbGFzcyBS
ZW5kZXJCbG9ja0Zsb3c7CiBjbGFzcyBSZW5kZXJMaW5lQnJlYWs7CiBzdHJ1Y3QgUGFpbnRJbmZv
OwogCi1uYW1lc3BhY2UgRGlzcGxheSB7Ci1zdHJ1Y3QgSW5saW5lQ29udGVudDsKLX0KLQogbmFt
ZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAorc3RydWN0IElubGluZUNvbnRlbnQ7CisKIGNs
YXNzIExpbmVMYXlvdXQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpA
QCAtNzEsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGp1c3RGb3JQYWdpbmF0aW9uKFJl
bmRlckJsb2NrRmxvdyYpOwogICAgIHZvaWQgY29sbGVjdE92ZXJmbG93KFJlbmRlckJsb2NrRmxv
dyYpOwogCi0gICAgY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCogZGlzcGxheUlubGluZUNv
bnRlbnQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJbmxpbmVDb250ZW50LmdldCgpOyB9Cisg
ICAgY29uc3QgSW5saW5lQ29udGVudCogaW5saW5lQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5saW5lQ29udGVudC5nZXQoKTsgfQogICAgIGJvb2wgaXNQYWdpbmF0ZWQoKSBjb25zdCB7IHJl
dHVybiAhIW1fcGFnaW5hdGVkSGVpZ2h0OyB9CiAKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYs
IGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCk7CkBAIC04NSw4ICs4Myw4IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcmVwYXJlTGF5b3V0U3RhdGUoKTsKICAgICB2b2lkIHBy
ZXBhcmVGbG9hdGluZ1N0YXRlKCk7Ci0gICAgdm9pZCBjb25zdHJ1Y3REaXNwbGF5Q29udGVudCgp
OwotICAgIERpc3BsYXk6OklubGluZUNvbnRlbnQmIGVuc3VyZURpc3BsYXlJbmxpbmVDb250ZW50
KCk7CisgICAgdm9pZCBjb25zdHJ1Y3RDb250ZW50KCk7CisgICAgSW5saW5lQ29udGVudCYgZW5z
dXJlSW5saW5lQ29udGVudCgpOwogCiAgICAgY29uc3QgTGF5b3V0OjpDb250YWluZXJCb3gmIHJv
b3RMYXlvdXRCb3goKSBjb25zdDsKICAgICBMYXlvdXQ6OkNvbnRhaW5lckJveCYgcm9vdExheW91
dEJveCgpOwpAQCAtOTcsNyArOTUsNyBAQCBwcml2YXRlOgogICAgIEJveFRyZWUgbV9ib3hUcmVl
OwogICAgIExheW91dDo6TGF5b3V0U3RhdGUgbV9sYXlvdXRTdGF0ZTsKICAgICBMYXlvdXQ6Oklu
bGluZUZvcm1hdHRpbmdTdGF0ZSYgbV9pbmxpbmVGb3JtYXR0aW5nU3RhdGU7Ci0gICAgUmVmUHRy
PERpc3BsYXk6OklubGluZUNvbnRlbnQ+IG1fZGlzcGxheUlubGluZUNvbnRlbnQ7CisgICAgUmVm
UHRyPElubGluZUNvbnRlbnQ+IG1faW5saW5lQ29udGVudDsKICAgICBPcHRpb25hbDxMYXlvdXRV
bml0PiBtX3BhZ2luYXRlZEhlaWdodDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUGFnaW5hdGlv
bi5jcHAKaW5kZXggOGZjYjRlYTk0Y2M2Li5iNzc5MDdjZTIyMDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3JhdGlvblBhZ2luYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRlZ3Jh
dGlvblBhZ2luYXRpb24uY3BwCkBAIC00NSw3ICs0NSw3IEBAIHN0cnVjdCBQYWdpbmF0ZWRMaW5l
IHsKIH07CiB1c2luZyBQYWdpbmF0ZWRMaW5lcyA9IFZlY3RvcjxQYWdpbmF0ZWRMaW5lLCAyMD47
CiAKLXN0YXRpYyBQYWdpbmF0ZWRMaW5lIGNvbXB1dGVMaW5lVG9wQW5kQm90dG9tV2l0aE92ZXJm
bG93KGNvbnN0IFJlbmRlckJsb2NrRmxvdyYsIERpc3BsYXk6OklubGluZUNvbnRlbnQ6OkxpbmVz
JiBsaW5lcywgdW5zaWduZWQgbGluZUluZGV4LCBWZWN0b3I8U3RydXQ+JiBzdHJ1dHMpCitzdGF0
aWMgUGFnaW5hdGVkTGluZSBjb21wdXRlTGluZVRvcEFuZEJvdHRvbVdpdGhPdmVyZmxvdyhjb25z
dCBSZW5kZXJCbG9ja0Zsb3cmLCBJbmxpbmVDb250ZW50OjpMaW5lcyYgbGluZXMsIHVuc2lnbmVk
IGxpbmVJbmRleCwgVmVjdG9yPFN0cnV0PiYgc3RydXRzKQogewogICAgIExheW91dFVuaXQgb2Zm
c2V0ID0gMDsKICAgICBmb3IgKGF1dG8mIHN0cnV0IDogc3RydXRzKSB7CkBAIC0xMDgsNyArMTA4
LDcgQEAgc3RhdGljIHZvaWQgc2V0UGFnZUJyZWFrRm9yTGluZSh1bnNpZ25lZCBsaW5lQnJlYWtJ
bmRleCwgUGFnaW5hdGVkTGluZXMmIGxpbmVzLAogICAgIHN0cnV0cy5hcHBlbmQoeyBsaW5lQnJl
YWtJbmRleCwgY29tcHV0ZU9mZnNldEFmdGVyTGluZUJyZWFrKGxpbmVzW2xpbmVCcmVha0luZGV4
XS50b3AsICFsaW5lQnJlYWtJbmRleCwgYXRUaGVUb3BPZkNvbHVtbk9yUGFnZSwgZmxvdykgfSk7
CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZU1pbmltdW1QYWdlSGVpZ2h0KFJlbmRlckJsb2NrRmxv
dyYgZmxvdywgY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudCYgaW5saW5lQ29udGVudCwgdW5z
aWduZWQgbGluZUNvdW50KQorc3RhdGljIHZvaWQgdXBkYXRlTWluaW11bVBhZ2VIZWlnaHQoUmVu
ZGVyQmxvY2tGbG93JiBmbG93LCBjb25zdCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50LCB1
bnNpZ25lZCBsaW5lQ291bnQpCiB7CiAgICAgYXV0byYgc3R5bGUgPSBmbG93LnN0eWxlKCk7CiAg
ICAgYXV0byB3aWRvd3MgPSBzdHlsZS5oYXNBdXRvV2lkb3dzKCkgPyAxIDogc3RkOjptYXg8aW50
PihzdHlsZS53aWRvd3MoKSwgMSk7CkBAIC0xMTcsMTYgKzExNywxNiBAQCBzdGF0aWMgdm9pZCB1
cGRhdGVNaW5pbXVtUGFnZUhlaWdodChSZW5kZXJCbG9ja0Zsb3cmIGZsb3csIGNvbnN0IERpc3Bs
YXk6OklubGluZQogICAgIGZsb3cudXBkYXRlTWluaW11bVBhZ2VIZWlnaHQoMCwgTGF5b3V0VW5p
dChpbmxpbmVDb250ZW50LmxpbmVzW21pbmltdW1MaW5lQ291bnQgLSAxXS5yZWN0KCkubWF4WSgp
KSk7CiB9CiAKLXN0YXRpYyBSZWY8RGlzcGxheTo6SW5saW5lQ29udGVudD4gbWFrZUFkanVzdGVk
Q29udGVudChjb25zdCBEaXNwbGF5OjpJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50LCBWZWN0
b3I8ZmxvYXQ+IGFkanVzdG1lbnRzKQorc3RhdGljIFJlZjxJbmxpbmVDb250ZW50PiBtYWtlQWRq
dXN0ZWRDb250ZW50KGNvbnN0IElubGluZUNvbnRlbnQmIGlubGluZUNvbnRlbnQsIFZlY3Rvcjxm
bG9hdD4gYWRqdXN0bWVudHMpCiB7CiAgICAgYXV0byBtb3ZlVmVydGljYWxseSA9IFtdKEZsb2F0
UmVjdCByZWN0LCBmbG9hdCBvZmZzZXQpIHsKICAgICAgICAgcmVjdC5tb3ZlKEZsb2F0U2l6ZSgw
LCBvZmZzZXQpKTsKICAgICAgICAgcmV0dXJuIHJlY3Q7CiAgICAgfTsKIAotICAgIGF1dG8gYWRq
dXN0ZWRMaW5lID0gWyZdKGNvbnN0IERpc3BsYXk6OkxpbmUmIGxpbmUsIGZsb2F0IG9mZnNldCkK
KyAgICBhdXRvIGFkanVzdGVkTGluZSA9IFsmXShjb25zdCBMaW5lJiBsaW5lLCBmbG9hdCBvZmZz
ZXQpCiAgICAgewotICAgICAgICByZXR1cm4gRGlzcGxheTo6TGluZSB7CisgICAgICAgIHJldHVy
biBMaW5lIHsKICAgICAgICAgICAgIG1vdmVWZXJ0aWNhbGx5KGxpbmUucmVjdCgpLCBvZmZzZXQp
LAogICAgICAgICAgICAgbW92ZVZlcnRpY2FsbHkobGluZS5zY3JvbGxhYmxlT3ZlcmZsb3coKSwg
b2Zmc2V0KSwKICAgICAgICAgICAgIG1vdmVWZXJ0aWNhbGx5KGxpbmUuaW5rT3ZlcmZsb3coKSwg
b2Zmc2V0KSwKQEAgLTEzNSw5ICsxMzUsOSBAQCBzdGF0aWMgUmVmPERpc3BsYXk6OklubGluZUNv
bnRlbnQ+IG1ha2VBZGp1c3RlZENvbnRlbnQoY29uc3QgRGlzcGxheTo6SW5saW5lQ29udAogICAg
ICAgICB9OwogICAgIH07CiAKLSAgICBhdXRvIGFkanVzdGVkUnVuID0gWyZdKGNvbnN0IERpc3Bs
YXk6OlJ1biYgcnVuLCBmbG9hdCBvZmZzZXQpCisgICAgYXV0byBhZGp1c3RlZFJ1biA9IFsmXShj
b25zdCBSdW4mIHJ1biwgZmxvYXQgb2Zmc2V0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIERpc3Bs
YXk6OlJ1biB7CisgICAgICAgIHJldHVybiBSdW4gewogICAgICAgICAgICAgcnVuLmxpbmVJbmRl
eCgpLAogICAgICAgICAgICAgcnVuLmxheW91dEJveCgpLAogICAgICAgICAgICAgbW92ZVZlcnRp
Y2FsbHkocnVuLnJlY3QoKSwgb2Zmc2V0KSwKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0aWMgUmVm
PERpc3BsYXk6OklubGluZUNvbnRlbnQ+IG1ha2VBZGp1c3RlZENvbnRlbnQoY29uc3QgRGlzcGxh
eTo6SW5saW5lQ29udAogICAgICAgICB9OwogICAgIH07CiAKLSAgICBhdXRvIGFkanVzdGVkQ29u
dGVudCA9IERpc3BsYXk6OklubGluZUNvbnRlbnQ6OmNyZWF0ZSgpOworICAgIGF1dG8gYWRqdXN0
ZWRDb250ZW50ID0gSW5saW5lQ29udGVudDo6Y3JlYXRlKCk7CiAKICAgICBmb3IgKHNpemVfdCBs
aW5lSW5kZXggPSAwOyBsaW5lSW5kZXggPCBpbmxpbmVDb250ZW50LmxpbmVzLnNpemUoKTsgKyts
aW5lSW5kZXgpCiAgICAgICAgIGFkanVzdGVkQ29udGVudC0+bGluZXMuYXBwZW5kKGFkanVzdGVk
TGluZShpbmxpbmVDb250ZW50LmxpbmVzW2xpbmVJbmRleF0sIGFkanVzdG1lbnRzW2xpbmVJbmRl
eF0pKTsKQEAgLTE1OCw3ICsxNTgsNyBAQCBzdGF0aWMgUmVmPERpc3BsYXk6OklubGluZUNvbnRl
bnQ+IG1ha2VBZGp1c3RlZENvbnRlbnQoY29uc3QgRGlzcGxheTo6SW5saW5lQ29udAogICAgIHJl
dHVybiBhZGp1c3RlZENvbnRlbnQ7CiB9CiAKLVJlZjxEaXNwbGF5OjpJbmxpbmVDb250ZW50PiBh
ZGp1c3RMaW5lUG9zaXRpb25zRm9yUGFnaW5hdGlvbihEaXNwbGF5OjpJbmxpbmVDb250ZW50JiBp
bmxpbmVDb250ZW50LCBSZW5kZXJCbG9ja0Zsb3cmIGZsb3cpCitSZWY8SW5saW5lQ29udGVudD4g
YWRqdXN0TGluZVBvc2l0aW9uc0ZvclBhZ2luYXRpb24oSW5saW5lQ29udGVudCYgaW5saW5lQ29u
dGVudCwgUmVuZGVyQmxvY2tGbG93JiBmbG93KQogewogICAgIFZlY3RvcjxTdHJ1dD4gc3RydXRz
OwogICAgIGF1dG8gbGluZUNvdW50ID0gaW5saW5lQ29udGVudC5saW5lcy5zaXplKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRp
b25QYWdpbmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0
SW50ZWdyYXRpb25QYWdpbmF0aW9uLmgKaW5kZXggMmRhZDk5MDE0MzMxLi44M2MyY2YzYWQ0OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbnRlZ3JhdGlvbi9MYXlvdXRJbnRl
Z3JhdGlvblBhZ2luYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRp
b24vTGF5b3V0SW50ZWdyYXRpb25QYWdpbmF0aW9uLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lm
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRGlzcGxheUlu
bGluZUNvbnRlbnQuaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFJlbmRl
ckJsb2NrRmxvdzsKIAogbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKICAgICAKLVJlZjxE
aXNwbGF5OjpJbmxpbmVDb250ZW50PiBhZGp1c3RMaW5lUG9zaXRpb25zRm9yUGFnaW5hdGlvbihE
aXNwbGF5OjpJbmxpbmVDb250ZW50JiwgUmVuZGVyQmxvY2tGbG93Jik7CitSZWY8SW5saW5lQ29u
dGVudD4gYWRqdXN0TGluZVBvc2l0aW9uc0ZvclBhZ2luYXRpb24oSW5saW5lQ29udGVudCYsIFJl
bmRlckJsb2NrRmxvdyYpOwogCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZGlzcGxheXRyZWUvRGlzcGxheVJ1bi5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVn
cmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKc2ltaWxhcml0eSBpbmRleCA5OSUKcmVuYW1l
IGZyb20gU291cmNlL1dlYkNvcmUvbGF5b3V0L2Rpc3BsYXl0cmVlL0Rpc3BsYXlSdW4uaApyZW5h
bWUgdG8gU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9u
UnVuLmgKaW5kZXggYzFiMDE1OTYwMTJiLi5mNGYzNDhlYzYyZjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9kaXNwbGF5dHJlZS9EaXNwbGF5UnVuLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuLmgKQEAgLTM2LDcg
KzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDYWNoZWRJbWFnZTsKIAotbmFt
ZXNwYWNlIERpc3BsYXkgeworbmFtZXNwYWNlIExheW91dEludGVncmF0aW9uIHsKIAogc3RydWN0
IFJ1biB7CiAgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVn
cmF0aW9uUnVuSXRlcmF0b3IuY3BwCmluZGV4IDIyMTIzNDY3ZTc4ZS4uYWJhNGU1MWU4ZmUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdy
YXRpb25SdW5JdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3IuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0SW50ZWdyYXRpb24gewogCi1SdW5J
dGVyYXRvcjo6UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmIHBhdGhWYXJpYW50KQorUnVu
SXRlcmF0b3I6OlJ1bkl0ZXJhdG9yKFBhdGhSdW46OlBhdGhWYXJpYW50JiYgcGF0aFZhcmlhbnQp
CiAgICAgOiBtX3J1bihXVEZNb3ZlKHBhdGhWYXJpYW50KSkKIHsKIH0KQEAgLTgyLDcgKzgyLDcg
QEAgTGluZVJ1bkl0ZXJhdG9yIFJ1bkl0ZXJhdG9yOjpwcmV2aW91c09uTGluZUlnbm9yaW5nTGlu
ZUJyZWFrKCkgY29uc3QKICAgICByZXR1cm4gTGluZVJ1bkl0ZXJhdG9yKCp0aGlzKS50cmF2ZXJz
ZVByZXZpb3VzT25MaW5lSWdub3JpbmdMaW5lQnJlYWsoKTsKIH0KIAotVGV4dFJ1bkl0ZXJhdG9y
OjpUZXh0UnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmIHBhdGhWYXJpYW50KQorVGV4dFJ1
bkl0ZXJhdG9yOjpUZXh0UnVuSXRlcmF0b3IoUGF0aFJ1bjo6UGF0aFZhcmlhbnQmJiBwYXRoVmFy
aWFudCkKICAgICA6IFJ1bkl0ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQogewogfQpAQCAt
MTAzLDcgKzEwMyw3IEBAIFRleHRSdW5JdGVyYXRvciYgVGV4dFJ1bkl0ZXJhdG9yOjp0cmF2ZXJz
ZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKQogICAgIHJldHVybiAqdGhpczsKIH0KIAotTGluZVJ1
bkl0ZXJhdG9yOjpMaW5lUnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmIHBhdGhWYXJpYW50
KQorTGluZVJ1bkl0ZXJhdG9yOjpMaW5lUnVuSXRlcmF0b3IoUGF0aFJ1bjo6UGF0aFZhcmlhbnQm
JiBwYXRoVmFyaWFudCkKICAgICA6IFJ1bkl0ZXJhdG9yKFdURk1vdmUocGF0aFZhcmlhbnQpKQog
ewogfQpAQCAtMjEyLDEzICsyMTIsMTMgQEAgTGluZVJ1bkl0ZXJhdG9yIGxpbmVSdW4oY29uc3Qg
UnVuSXRlcmF0b3ImIHJ1bkl0ZXJhdG9yKQogfQogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCi1Nb2Rlcm5QYXRoJiBSdW46Om1vZGVyblBhdGgoKQorTW9kZXJuUGF0aCYg
UGF0aFJ1bjo6bW9kZXJuUGF0aCgpCiB7CiAgICAgcmV0dXJuIFdURjo6Z2V0PE1vZGVyblBhdGg+
KG1fcGF0aFZhcmlhbnQpOwogfQogI2VuZGlmCiAKLUxlZ2FjeVBhdGgmIFJ1bjo6bGVnYWN5UGF0
aCgpCitMZWdhY3lQYXRoJiBQYXRoUnVuOjpsZWdhY3lQYXRoKCkKIHsKICAgICByZXR1cm4gV1RG
OjpnZXQ8TGVnYWN5UGF0aD4obV9wYXRoVmFyaWFudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVu
SXRlcmF0b3IuaAppbmRleCAyMTc1NmRmNTQ0NTAuLjZmZWY3ZTllMDBjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRl
cmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50
ZWdyYXRpb25SdW5JdGVyYXRvci5oCkBAIC00Miw3ICs0Miw3IEBAIGNsYXNzIFRleHRSdW5JdGVy
YXRvcjsKIAogc3RydWN0IEVuZEl0ZXJhdG9yIHsgfTsKIAotY2xhc3MgUnVuIHsKK2NsYXNzIFBh
dGhSdW4gewogcHVibGljOgogICAgIHVzaW5nIFBhdGhWYXJpYW50ID0gVmFyaWFudDwKICNpZiBF
TkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogICAgICAgICBMZWdhY3lQYXRoCiAgICAgPjsKIAotICAgIFJ1bihQYXRoVmFyaWFudCYmKTsK
KyAgICBQYXRoUnVuKFBhdGhWYXJpYW50JiYpOwogCiAgICAgYm9vbCBpc1RleHQoKSBjb25zdDsK
IApAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiAgICAgVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24o
KSBjb25zdCB7IHJldHVybiBiaWRpTGV2ZWwoKSAlIDIgPyBUZXh0RGlyZWN0aW9uOjpSVEwgOiBU
ZXh0RGlyZWN0aW9uOjpMVFI7IH0KICAgICBib29sIGlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSBj
b25zdCB7IHJldHVybiBkaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpMVFI7IH0KIAotICAg
IGJvb2wgb25TYW1lTGluZShjb25zdCBSdW4mKSBjb25zdDsKKyAgICBib29sIG9uU2FtZUxpbmUo
Y29uc3QgUGF0aFJ1biYpIGNvbnN0OwogCiAgICAgLy8gRm9yIGludGVybWVkaWF0ZSBwb3J0aW5n
IHN0ZXBzIG9ubHkuCiAgICAgSW5saW5lQm94KiBsZWdhY3lJbmxpbmVCb3goKSBjb25zdDsKQEAg
LTkyLDkgKzkyLDkgQEAgcHJvdGVjdGVkOgogICAgIFBhdGhWYXJpYW50IG1fcGF0aFZhcmlhbnQ7
CiB9OwogCi1jbGFzcyBUZXh0UnVuIDogcHVibGljIFJ1biB7CitjbGFzcyBQYXRoVGV4dFJ1biA6
IHB1YmxpYyBQYXRoUnVuIHsKIHB1YmxpYzoKLSAgICBUZXh0UnVuKFBhdGhWYXJpYW50JiYpOwor
ICAgIFBhdGhUZXh0UnVuKFBhdGhWYXJpYW50JiYpOwogCiAgICAgYm9vbCBoYXNIeXBoZW4oKSBj
b25zdDsKICAgICBTdHJpbmdWaWV3IHRleHQoKSBjb25zdDsKQEAgLTEwNywxMyArMTA3LDEzIEBA
IHB1YmxpYzoKICAgICBib29sIGlzTGFzdFRleHRSdW5PbkxpbmUoKSBjb25zdDsKICAgICBib29s
IGlzTGFzdFRleHRSdW4oKSBjb25zdDsKIAotICAgIElubGluZVRleHRCb3gqIGxlZ2FjeUlubGlu
ZUJveCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZVRleHRCb3g+KFJ1bjo6bGVnYWN5
SW5saW5lQm94KCkpOyB9CisgICAgSW5saW5lVGV4dEJveCogbGVnYWN5SW5saW5lQm94KCkgY29u
c3QgeyByZXR1cm4gZG93bmNhc3Q8SW5saW5lVGV4dEJveD4oUGF0aFJ1bjo6bGVnYWN5SW5saW5l
Qm94KCkpOyB9CiB9OwogCiBjbGFzcyBSdW5JdGVyYXRvciB7CiBwdWJsaWM6CiAgICAgUnVuSXRl
cmF0b3IoKSA6IG1fcnVuKExlZ2FjeVBhdGggeyBudWxscHRyLCB7IH0gfSkgeyB9OwotICAgIFJ1
bkl0ZXJhdG9yKFJ1bjo6UGF0aFZhcmlhbnQmJik7CisgICAgUnVuSXRlcmF0b3IoUGF0aFJ1bjo6
UGF0aFZhcmlhbnQmJik7CiAKICAgICBleHBsaWNpdCBvcGVyYXRvciBib29sKCkgY29uc3QgeyBy
ZXR1cm4gIWF0RW5kKCk7IH0KIApAQCAtMTIzLDggKzEyMyw4IEBAIHB1YmxpYzoKICAgICBib29s
IG9wZXJhdG9yPT0oRW5kSXRlcmF0b3IpIGNvbnN0IHsgcmV0dXJuIGF0RW5kKCk7IH0KICAgICBi
b29sIG9wZXJhdG9yIT0oRW5kSXRlcmF0b3IpIGNvbnN0IHsgcmV0dXJuICFhdEVuZCgpOyB9CiAK
LSAgICBjb25zdCBSdW4mIG9wZXJhdG9yKigpIGNvbnN0IHsgcmV0dXJuIG1fcnVuOyB9Ci0gICAg
Y29uc3QgUnVuKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJm1fcnVuOyB9CisgICAgY29u
c3QgUGF0aFJ1biYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gbV9ydW47IH0KKyAgICBjb25z
dCBQYXRoUnVuKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4gJm1fcnVuOyB9CiAKICAgICBi
b29sIGF0RW5kKCkgY29uc3Q7CiAKQEAgLTEzNiwxOCArMTM2LDE4IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICB2b2lkIHNldEF0RW5kKCk7CiAKLSAgICBSdW4gbV9ydW47CisgICAgUGF0aFJ1
biBtX3J1bjsKIH07CiAKIGNsYXNzIFRleHRSdW5JdGVyYXRvciA6IHB1YmxpYyBSdW5JdGVyYXRv
ciB7CiBwdWJsaWM6CiAgICAgVGV4dFJ1bkl0ZXJhdG9yKCkgeyB9Ci0gICAgVGV4dFJ1bkl0ZXJh
dG9yKFJ1bjo6UGF0aFZhcmlhbnQmJik7CisgICAgVGV4dFJ1bkl0ZXJhdG9yKFBhdGhSdW46OlBh
dGhWYXJpYW50JiYpOwogCiAgICAgVGV4dFJ1bkl0ZXJhdG9yJiBvcGVyYXRvcisrKCkgeyByZXR1
cm4gdHJhdmVyc2VOZXh0VGV4dFJ1bigpOyB9CiAKLSAgICBjb25zdCBUZXh0UnVuJiBvcGVyYXRv
ciooKSBjb25zdCB7IHJldHVybiBnZXQoKTsgfQotICAgIGNvbnN0IFRleHRSdW4qIG9wZXJhdG9y
LT4oKSBjb25zdCB7IHJldHVybiAmZ2V0KCk7IH0KKyAgICBjb25zdCBQYXRoVGV4dFJ1biYgb3Bl
cmF0b3IqKCkgY29uc3QgeyByZXR1cm4gZ2V0KCk7IH0KKyAgICBjb25zdCBQYXRoVGV4dFJ1biog
b3BlcmF0b3ItPigpIGNvbnN0IHsgcmV0dXJuICZnZXQoKTsgfQogCiAgICAgVGV4dFJ1bkl0ZXJh
dG9yJiB0cmF2ZXJzZU5leHRUZXh0UnVuKCk7CiAgICAgVGV4dFJ1bkl0ZXJhdG9yJiB0cmF2ZXJz
ZU5leHRUZXh0UnVuSW5UZXh0T3JkZXIoKTsKQEAgLTE1NiwxNCArMTU2LDE0IEBAIHB1YmxpYzoK
ICAgICBUZXh0UnVuSXRlcmF0b3IgbmV4dFRleHRSdW5JblRleHRPcmRlcigpIGNvbnN0IHsgcmV0
dXJuIFRleHRSdW5JdGVyYXRvcigqdGhpcykudHJhdmVyc2VOZXh0VGV4dFJ1bkluVGV4dE9yZGVy
KCk7IH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBUZXh0UnVuJiBnZXQoKSBjb25zdCB7IHJldHVy
biBkb3duY2FzdDxUZXh0UnVuPihtX3J1bik7IH0KKyAgICBjb25zdCBQYXRoVGV4dFJ1biYgZ2V0
KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8UGF0aFRleHRSdW4+KG1fcnVuKTsgfQogfTsKIAog
Y2xhc3MgTGluZVJ1bkl0ZXJhdG9yIDogcHVibGljIFJ1bkl0ZXJhdG9yIHsKIHB1YmxpYzoKICAg
ICBMaW5lUnVuSXRlcmF0b3IoKSB7IH0KICAgICBMaW5lUnVuSXRlcmF0b3IoY29uc3QgUnVuSXRl
cmF0b3ImKTsKLSAgICBMaW5lUnVuSXRlcmF0b3IoUnVuOjpQYXRoVmFyaWFudCYmKTsKKyAgICBM
aW5lUnVuSXRlcmF0b3IoUGF0aFJ1bjo6UGF0aFZhcmlhbnQmJik7CiAKICAgICBMaW5lUnVuSXRl
cmF0b3ImIG9wZXJhdG9yKysoKSB7IHJldHVybiB0cmF2ZXJzZU5leHRPbkxpbmUoKTsgfQogCkBA
IC0xOTYsODIgKzE5Niw4MiBAQCBMaW5lUnVuSXRlcmF0b3IgbGluZVJ1bihjb25zdCBSdW5JdGVy
YXRvciYpOwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1pbmxpbmUgUnVuOjpSdW4oUGF0aFZhcmlhbnQmJiBwYXRoKQoraW5saW5lIFBhdGhS
dW46OlBhdGhSdW4oUGF0aFZhcmlhbnQmJiBwYXRoKQogICAgIDogbV9wYXRoVmFyaWFudChXVEZN
b3ZlKHBhdGgpKQogewogfQogCi1pbmxpbmUgYm9vbCBSdW46OmlzVGV4dCgpIGNvbnN0Citpbmxp
bmUgYm9vbCBQYXRoUnVuOjppc1RleHQoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRj
aE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGgu
aXNUZXh0KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBGbG9hdFJlY3QgUnVuOjpyZWN0KCkgY29u
c3QKK2lubGluZSBGbG9hdFJlY3QgUGF0aFJ1bjo6cmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewogICAgICAgICBy
ZXR1cm4gcGF0aC5yZWN0KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBmbG9hdCBSdW46OmJhc2Vs
aW5lKCkgY29uc3QKK2lubGluZSBmbG9hdCBQYXRoUnVuOjpiYXNlbGluZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkgewog
ICAgICAgICByZXR1cm4gcGF0aC5iYXNlbGluZSgpOwogICAgIH0pOwogfQogCi1pbmxpbmUgYm9v
bCBSdW46OmlzSG9yaXpvbnRhbCgpIGNvbnN0CitpbmxpbmUgYm9vbCBQYXRoUnVuOjppc0hvcml6
b250YWwoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQs
IFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBhdGguaXNIb3Jpem9udGFsKCk7CiAg
ICAgfSk7CiB9CiAKLWlubGluZSBib29sIFJ1bjo6ZGlyT3ZlcnJpZGUoKSBjb25zdAoraW5saW5l
IGJvb2wgUGF0aFJ1bjo6ZGlyT3ZlcnJpZGUoKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBh
dGguZGlyT3ZlcnJpZGUoKTsKICAgICB9KTsKIH0KIAotaW5saW5lIGJvb2wgUnVuOjppc0xpbmVC
cmVhaygpIGNvbnN0CitpbmxpbmUgYm9vbCBQYXRoUnVuOjppc0xpbmVCcmVhaygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYgcGF0aCkg
ewogICAgICAgICByZXR1cm4gcGF0aC5pc0xpbmVCcmVhaygpOwogICAgIH0pOwogfQogCi1pbmxp
bmUgYm9vbCBSdW46OnVzZUxpbmVCcmVha0JveFJlbmRlclRyZWVEdW1wUXVpcmsoKSBjb25zdAor
aW5saW5lIGJvb2wgUGF0aFJ1bjo6dXNlTGluZUJyZWFrQm94UmVuZGVyVHJlZUR1bXBRdWlyaygp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC51c2VMaW5lQnJlYWtCb3hSZW5kZXJUcmVl
RHVtcFF1aXJrKCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSB1bnNpZ25lZCBSdW46Om1pbmltdW1D
YXJldE9mZnNldCgpIGNvbnN0CitpbmxpbmUgdW5zaWduZWQgUGF0aFJ1bjo6bWluaW11bUNhcmV0
T2Zmc2V0KCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50
LCBbXShhdXRvJiBwYXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLm1pbmltdW1DYXJldE9mZnNl
dCgpOwogICAgIH0pOwogfQogCi1pbmxpbmUgdW5zaWduZWQgUnVuOjptYXhpbXVtQ2FyZXRPZmZz
ZXQoKSBjb25zdAoraW5saW5lIHVuc2lnbmVkIFBhdGhSdW46Om1heGltdW1DYXJldE9mZnNldCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0
byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5tYXhpbXVtQ2FyZXRPZmZzZXQoKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIHVuc2lnbmVkIGNoYXIgUnVuOjpiaWRpTGV2ZWwoKSBjb25zdAor
aW5saW5lIHVuc2lnbmVkIGNoYXIgUGF0aFJ1bjo6YmlkaUxldmVsKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBwYXRoKSB7CiAgICAg
ICAgIHJldHVybiBwYXRoLmJpZGlMZXZlbCgpOwogICAgIH0pOwogfQogCi1pbmxpbmUgYm9vbCBS
dW46Om9uU2FtZUxpbmUoY29uc3QgUnVuJiBvdGhlcikgY29uc3QKK2lubGluZSBib29sIFBhdGhS
dW46Om9uU2FtZUxpbmUoY29uc3QgUGF0aFJ1biYgb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKG1f
cGF0aFZhcmlhbnQuaW5kZXgoKSAhPSBvdGhlci5tX3BhdGhWYXJpYW50LmluZGV4KCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKQEAgLTI4MSw2MSArMjgxLDYxIEBAIGlubGluZSBib29sIFJ1bjo6
b25TYW1lTGluZShjb25zdCBSdW4mIG90aGVyKSBjb25zdAogICAgIH0pOwogfQogCi1pbmxpbmUg
SW5saW5lQm94KiBSdW46OmxlZ2FjeUlubGluZUJveCgpIGNvbnN0CitpbmxpbmUgSW5saW5lQm94
KiBQYXRoUnVuOjpsZWdhY3lJbmxpbmVCb3goKSBjb25zdAogewogICAgIHJldHVybiBXVEY6OnN3
aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAgcmV0dXJuIHBh
dGgubGVnYWN5SW5saW5lQm94KCk7CiAgICAgfSk7CiB9CiAKLWlubGluZSBib29sIFRleHRSdW46
Omhhc0h5cGhlbigpIGNvbnN0CitpbmxpbmUgYm9vbCBQYXRoVGV4dFJ1bjo6aGFzSHlwaGVuKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRv
JiBwYXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmhhc0h5cGhlbigpOwogICAgIH0pOwogfQog
Ci1pbmxpbmUgVGV4dFJ1bjo6VGV4dFJ1bihQYXRoVmFyaWFudCYmIHBhdGgpCi0gICAgOiBSdW4o
V1RGTW92ZShwYXRoKSkKK2lubGluZSBQYXRoVGV4dFJ1bjo6UGF0aFRleHRSdW4oUGF0aFZhcmlh
bnQmJiBwYXRoKQorICAgIDogUGF0aFJ1bihXVEZNb3ZlKHBhdGgpKQogewogfQogCi1pbmxpbmUg
U3RyaW5nVmlldyBUZXh0UnVuOjp0ZXh0KCkgY29uc3QKK2lubGluZSBTdHJpbmdWaWV3IFBhdGhU
ZXh0UnVuOjp0ZXh0KCkgY29uc3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhW
YXJpYW50LCBbXShhdXRvJiBwYXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLnRleHQoKTsKICAg
ICB9KTsKIH0KIAotaW5saW5lIHVuc2lnbmVkIFRleHRSdW46OmxvY2FsU3RhcnRPZmZzZXQoKSBj
b25zdAoraW5saW5lIHVuc2lnbmVkIFBhdGhUZXh0UnVuOjpsb2NhbFN0YXJ0T2Zmc2V0KCkgY29u
c3QKIHsKICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihtX3BhdGhWYXJpYW50LCBbXShhdXRvJiBw
YXRoKSB7CiAgICAgICAgIHJldHVybiBwYXRoLmxvY2FsU3RhcnRPZmZzZXQoKTsKICAgICB9KTsK
IH0KIAotaW5saW5lIHVuc2lnbmVkIFRleHRSdW46OmxvY2FsRW5kT2Zmc2V0KCkgY29uc3QKK2lu
bGluZSB1bnNpZ25lZCBQYXRoVGV4dFJ1bjo6bG9jYWxFbmRPZmZzZXQoKSBjb25zdAogewogICAg
IHJldHVybiBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAg
ICAgICAgcmV0dXJuIHBhdGgubG9jYWxFbmRPZmZzZXQoKTsKICAgICB9KTsKIH0KIAotaW5saW5l
IHVuc2lnbmVkIFRleHRSdW46Omxlbmd0aCgpIGNvbnN0CitpbmxpbmUgdW5zaWduZWQgUGF0aFRl
eHRSdW46Omxlbmd0aCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRo
VmFyaWFudCwgW10oYXV0byYgcGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5sZW5ndGgoKTsK
ICAgICB9KTsKIH0KIAotaW5saW5lIGJvb2wgVGV4dFJ1bjo6aXNMYXN0VGV4dFJ1bk9uTGluZSgp
IGNvbnN0CitpbmxpbmUgYm9vbCBQYXRoVGV4dFJ1bjo6aXNMYXN0VGV4dFJ1bk9uTGluZSgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgW10oYXV0byYg
cGF0aCkgewogICAgICAgICByZXR1cm4gcGF0aC5pc0xhc3RUZXh0UnVuT25MaW5lKCk7CiAgICAg
fSk7CiB9CiAKLWlubGluZSBib29sIFRleHRSdW46OmlzTGFzdFRleHRSdW4oKSBjb25zdAoraW5s
aW5lIGJvb2wgUGF0aFRleHRSdW46OmlzTGFzdFRleHRSdW4oKSBjb25zdAogewogICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKG1fcGF0aFZhcmlhbnQsIFtdKGF1dG8mIHBhdGgpIHsKICAgICAgICAg
cmV0dXJuIHBhdGguaXNMYXN0VGV4dFJ1bigpOwpAQCAtMzQ1LDggKzM0NSw4IEBAIGlubGluZSBi
b29sIFRleHRSdW46OmlzTGFzdFRleHRSdW4oKSBjb25zdAogfQogfQogCi1TUEVDSUFMSVpFX1RZ
UEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpUZXh0UnVuKQotc3Rh
dGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpSdW4mIHJ1
bikgeyByZXR1cm4gcnVuLmlzVGV4dCgpOyB9CitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYkNvcmU6OkxheW91dEludGVncmF0aW9uOjpQYXRoVGV4dFJ1bikKK3N0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6UGF0aFJ1biYgcnVuKSB7IHJl
dHVybiBydW4uaXNUZXh0KCk7IH0KIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKIAogU1BF
Q0lBTElaRV9UWVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpMYXlvdXRJbnRlZ3JhdGlvbjo6VGV4
dFJ1bkl0ZXJhdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0
aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW50ZWdyYXRpb24vTGF5b3V0SW50ZWdyYXRpb25SdW5JdGVyYXRvck1vZGVy
blBhdGguaAppbmRleCA0MzU0ZmRkNjM2YTguLmMwMjkwNTU5MmUyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xheW91dEludGVncmF0aW9uUnVuSXRlcmF0
b3JNb2Rlcm5QYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2ludGVncmF0aW9uL0xh
eW91dEludGVncmF0aW9uUnVuSXRlcmF0b3JNb2Rlcm5QYXRoLmgKQEAgLTI3LDcgKzI3LDcgQEAK
IAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRGlz
cGxheUlubGluZUNvbnRlbnQuaCIKKyNpbmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNv
bnRlbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCw3ICs0MCw3IEBAIHN0YXRp
YyBGbG9hdFBvaW50IGxpbmVQb3NpdGlvbihmbG9hdCBsZWZ0LCBmbG9hdCB0b3ApCiAKIGNsYXNz
IE1vZGVyblBhdGggewogcHVibGljOgotICAgIE1vZGVyblBhdGgoY29uc3QgRGlzcGxheTo6SW5s
aW5lQ29udGVudCYgaW5saW5lQ29udGVudCwgc2l6ZV90IHN0YXJ0SW5kZXgpCisgICAgTW9kZXJu
UGF0aChjb25zdCBJbmxpbmVDb250ZW50JiBpbmxpbmVDb250ZW50LCBzaXplX3Qgc3RhcnRJbmRl
eCkKICAgICAgICAgOiBtX2lubGluZUNvbnRlbnQoJmlubGluZUNvbnRlbnQpCiAgICAgICAgICwg
bV9ydW5JbmRleChzdGFydEluZGV4KQogICAgIHsKQEAgLTE1NiwxMSArMTU2LDExIEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgRGlzcGxheTo6SW5saW5lQ29udGVudDo6
UnVucyYgcnVucygpIGNvbnN0IHsgcmV0dXJuIG1faW5saW5lQ29udGVudC0+cnVuczsgfQotICAg
IGNvbnN0IERpc3BsYXk6OlJ1biYgcnVuKCkgY29uc3QgeyByZXR1cm4gcnVucygpW21fcnVuSW5k
ZXhdOyB9Ci0gICAgY29uc3QgRGlzcGxheTo6TGluZSYgbGluZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aW5saW5lQ29udGVudC0+bGluZUZvclJ1bihydW4oKSk7IH0KKyAgICBjb25zdCBJbmxpbmVDb250
ZW50OjpSdW5zJiBydW5zKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50LT5ydW5zOyB9
CisgICAgY29uc3QgUnVuJiBydW4oKSBjb25zdCB7IHJldHVybiBydW5zKClbbV9ydW5JbmRleF07
IH0KKyAgICBjb25zdCBMaW5lJiBsaW5lKCkgY29uc3QgeyByZXR1cm4gbV9pbmxpbmVDb250ZW50
LT5saW5lRm9yUnVuKHJ1bigpKTsgfQogCi0gICAgUmVmUHRyPGNvbnN0IERpc3BsYXk6OklubGlu
ZUNvbnRlbnQ+IG1faW5saW5lQ29udGVudDsKKyAgICBSZWZQdHI8Y29uc3QgSW5saW5lQ29udGVu
dD4gbV9pbmxpbmVDb250ZW50OwogICAgIHNpemVfdCBtX3J1bkluZGV4IHsgMCB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1
aWxkZXIuY3BwCmluZGV4IGViNWMzNzk2MDEyNi4uZjU0YWUwMTNjYmRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3Bw
CkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQp
CiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgotI2luY2x1ZGUgIkRpc3BsYXlSdW4uaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDZWxsRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAppbmRleCA3NWFkYTI4ZTYxZjkuLjYxYjdiYzgwNWM0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRyZWVBc1RleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcApA
QCAtNDc4LDMyICs0NzgsMzIgQEAgdm9pZCB3cml0ZURlYnVnSW5mbyhUZXh0U3RyZWFtJiB0cywg
Y29uc3QgUmVuZGVyT2JqZWN0JiBvYmplY3QsIE9wdGlvblNldDxSZW5kZXIKICAgICB9CiB9CiAK
LXN0YXRpYyB2b2lkIHdyaXRlVGV4dFJ1bihUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyVGV4
dCYgbywgY29uc3QgTGF5b3V0SW50ZWdyYXRpb246OlRleHRSdW4mIHRleHRSdW4pCi17Ci0gICAg
YXV0byByZWN0ID0gdGV4dFJ1bi5yZWN0KCk7Ci0gICAgaW50IHggPSByZWN0LngoKTsKLSAgICBp
bnQgeSA9IHJlY3QueSgpOwotICAgIC8vIEZJWE1FOiBVc2Ugbm9uLWxvZ2ljYWwgd2lkdGguIHdl
YmtpdC5vcmcvYi8yMDY4MDkuCi0gICAgaW50IGxvZ2ljYWxXaWR0aCA9IGNlaWxmKHJlY3QueCgp
ICsgKHRleHRSdW4uaXNIb3Jpem9udGFsKCkgPyByZWN0LndpZHRoKCkgOiByZWN0LmhlaWdodCgp
KSkgLSB4OwotICAgIC8vIEZJWE1FOiBUYWJsZSBjZWxsIGFkanVzdG1lbnQgaXMgdGVtcG9yYXJ5
IHVudGlsIHJlc3VsdHMgY2FuIGJlIHVwZGF0ZWQuCi0gICAgaWYgKGlzPFJlbmRlclRhYmxlQ2Vs
bD4oKm8uY29udGFpbmluZ0Jsb2NrKCkpKQotICAgICAgICB5IC09IGZsb29yVG9JbnQoZG93bmNh
c3Q8UmVuZGVyVGFibGVDZWxsPigqby5jb250YWluaW5nQmxvY2soKSkuaW50cmluc2ljUGFkZGlu
Z0JlZm9yZSgpKTsKLSAgICAgICAgCi0gICAgdHMgPDwgInRleHQgcnVuIGF0ICgiIDw8IHggPDwg
IiwiIDw8IHkgPDwgIikgd2lkdGggIiA8PCBsb2dpY2FsV2lkdGg7Ci0gICAgaWYgKCF0ZXh0UnVu
LmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSB8fCB0ZXh0UnVuLmRpck92ZXJyaWRlKCkpIHsKLSAg
ICAgICAgdHMgPDwgKCF0ZXh0UnVuLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/ICIgUlRMIiA6
ICIgTFRSIik7Ci0gICAgICAgIGlmICh0ZXh0UnVuLmRpck92ZXJyaWRlKCkpCi0gICAgICAgICAg
ICB0cyA8PCAiIG92ZXJyaWRlIjsKLSAgICB9Ci0gICAgdHMgPDwgIjogIgotICAgICAgICA8PCBx
dW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXModGV4dFJ1bi50ZXh0KCkpOwotICAgIGlmICh0ZXh0
UnVuLmhhc0h5cGhlbigpKQotICAgICAgICB0cyA8PCAiICsgaHlwaGVuIHN0cmluZyAiIDw8IHF1
b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyhvLnN0eWxlKCkuaHlwaGVuU3RyaW5nKCkuc3RyaW5n
KCkpOwotICAgIHRzIDw8ICJcbiI7Ci19Ci0KIHZvaWQgd3JpdGUoVGV4dFN0cmVhbSYgdHMsIGNv
bnN0IFJlbmRlck9iamVjdCYgbywgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+IGJlaGF2aW9y
KQogeworICAgIGF1dG8gd3JpdGVUZXh0UnVuID0gWyZdKGF1dG8mIHRleHRSZW5kZXJlciwgYXV0
byYgdGV4dFJ1bikKKyAgICB7CisgICAgICAgIGF1dG8gcmVjdCA9IHRleHRSdW4ucmVjdCgpOwor
ICAgICAgICBpbnQgeCA9IHJlY3QueCgpOworICAgICAgICBpbnQgeSA9IHJlY3QueSgpOworICAg
ICAgICAvLyBGSVhNRTogVXNlIG5vbi1sb2dpY2FsIHdpZHRoLiB3ZWJraXQub3JnL2IvMjA2ODA5
LgorICAgICAgICBpbnQgbG9naWNhbFdpZHRoID0gY2VpbGYocmVjdC54KCkgKyAodGV4dFJ1bi5p
c0hvcml6b250YWwoKSA/IHJlY3Qud2lkdGgoKSA6IHJlY3QuaGVpZ2h0KCkpKSAtIHg7CisgICAg
ICAgIC8vIEZJWE1FOiBUYWJsZSBjZWxsIGFkanVzdG1lbnQgaXMgdGVtcG9yYXJ5IHVudGlsIHJl
c3VsdHMgY2FuIGJlIHVwZGF0ZWQuCisgICAgICAgIGlmIChpczxSZW5kZXJUYWJsZUNlbGw+KCpv
LmNvbnRhaW5pbmdCbG9jaygpKSkKKyAgICAgICAgICAgIHkgLT0gZmxvb3JUb0ludChkb3duY2Fz
dDxSZW5kZXJUYWJsZUNlbGw+KCpvLmNvbnRhaW5pbmdCbG9jaygpKS5pbnRyaW5zaWNQYWRkaW5n
QmVmb3JlKCkpOworCisgICAgICAgIHRzIDw8ICJ0ZXh0IHJ1biBhdCAoIiA8PCB4IDw8ICIsIiA8
PCB5IDw8ICIpIHdpZHRoICIgPDwgbG9naWNhbFdpZHRoOworICAgICAgICBpZiAoIXRleHRSdW4u
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpIHx8IHRleHRSdW4uZGlyT3ZlcnJpZGUoKSkgeworICAg
ICAgICAgICAgdHMgPDwgKCF0ZXh0UnVuLmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/ICIgUlRM
IiA6ICIgTFRSIik7CisgICAgICAgICAgICBpZiAodGV4dFJ1bi5kaXJPdmVycmlkZSgpKQorICAg
ICAgICAgICAgICAgIHRzIDw8ICIgb3ZlcnJpZGUiOworICAgICAgICB9CisgICAgICAgIHRzIDw8
ICI6ICIKKyAgICAgICAgICAgIDw8IHF1b3RlQW5kRXNjYXBlTm9uUHJpbnRhYmxlcyh0ZXh0UnVu
LnRleHQoKSk7CisgICAgICAgIGlmICh0ZXh0UnVuLmhhc0h5cGhlbigpKQorICAgICAgICAgICAg
dHMgPDwgIiArIGh5cGhlbiBzdHJpbmcgIiA8PCBxdW90ZUFuZEVzY2FwZU5vblByaW50YWJsZXMo
dGV4dFJlbmRlcmVyLnN0eWxlKCkuaHlwaGVuU3RyaW5nKCkuc3RyaW5nKCkpOworICAgICAgICB0
cyA8PCAiXG4iOworICAgIH07CisKICAgICBpZiAoaXM8UmVuZGVyU1ZHU2hhcGU+KG8pKSB7CiAg
ICAgICAgIHdyaXRlKHRzLCBkb3duY2FzdDxSZW5kZXJTVkdTaGFwZT4obyksIGJlaGF2aW9yKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTQ4LDcgKzU0OCw3IEBAIHZvaWQgd3JpdGUoVGV4dFN0cmVh
bSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgbywgT3B0aW9uU2V0PFJlbmRlckFzVGV4dEZsYWc+
IGJlCiAgICAgICAgIGF1dG8mIHRleHQgPSBkb3duY2FzdDxSZW5kZXJUZXh0PihvKTsKICAgICAg
ICAgZm9yIChhdXRvJiBydW4gOiBMYXlvdXRJbnRlZ3JhdGlvbjo6dGV4dFJ1bnNGb3IodGV4dCkp
IHsKICAgICAgICAgICAgIHRzIDw8IGluZGVudDsKLSAgICAgICAgICAgIHdyaXRlVGV4dFJ1bih0
cywgdGV4dCwgcnVuKTsKKyAgICAgICAgICAgIHdyaXRlVGV4dFJ1bih0ZXh0LCBydW4pOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVu
T2ZUeXBlPFJlbmRlck9iamVjdD4oZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4obykpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWludGVyLmNwcAppbmRleCA5NWNlODdmOWExZDAuLmJi
YTExYjNmNDQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRQYWlu
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dFBhaW50ZXIuY3BwCkBA
IC0yNCwxMSArMjQsMTEgQEAKICNpbmNsdWRlICJUZXh0UGFpbnRlci5oIgogCiAjaW5jbHVkZSAi
RGlzcGxheUxpc3RSZXBsYXllci5oIgotI2luY2x1ZGUgIkRpc3BsYXlSdW4uaCIKICNpbmNsdWRl
ICJGaWx0ZXJPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIKKyNp
bmNsdWRlICJMYXlvdXRJbnRlZ3JhdGlvblJ1bi5oIgogI2luY2x1ZGUgIlJlbmRlckNvbWJpbmVU
ZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgiCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBUZXh0UGFpbnRlcjo6Y2xlYXJH
bHlwaERpc3BsYXlMaXN0cygpCiAgICAgR2x5cGhEaXNwbGF5TGlzdENhY2hlPElubGluZVRleHRC
b3g+OjpzaW5nbGV0b24oKS5jbGVhcigpOwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25FbmFibGVkKCkpCi0gICAgICAgIEds
eXBoRGlzcGxheUxpc3RDYWNoZTxEaXNwbGF5OjpSdW4+OjpzaW5nbGV0b24oKS5jbGVhcigpOwor
ICAgICAgICBHbHlwaERpc3BsYXlMaXN0Q2FjaGU8TGF5b3V0SW50ZWdyYXRpb246OlJ1bj46OnNp
bmdsZXRvbigpLmNsZWFyKCk7CiAjZW5kaWYKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>