<?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>44851</bug_id>
          
          <creation_ts>2010-08-29 20:09:58 -0700</creation_ts>
          <short_desc>Create SVG and WML elements with create functions instead of direct invocations of new</short_desc>
          <delta_ts>2010-08-29 23:52:35 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>28068</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>271269</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 20:09:58 -0700</bug_when>
    <thetext>Create SVG and WML elements with create functions instead of direct invocations of new</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271270</commentid>
    <comment_count>1</comment_count>
      <attachid>65872</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 20:18:05 -0700</bug_when>
    <thetext>Created attachment 65872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271271</commentid>
    <comment_count>2</comment_count>
      <attachid>65873</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 20:25:16 -0700</bug_when>
    <thetext>Created attachment 65873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271277</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-08-29 20:34:07 -0700</bug_when>
    <thetext>Attachment 65872 did not build on qt:
Build output: http://queues.webkit.org/results/3882133</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271280</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-29 20:45:07 -0700</bug_when>
    <thetext>Attachment 65872 did not build on mac:
Build output: http://queues.webkit.org/results/3815144</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271283</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-29 21:00:51 -0700</bug_when>
    <thetext>Attachment 65872 did not build on chromium:
Build output: http://queues.webkit.org/results/3890031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271288</commentid>
    <comment_count>6</comment_count>
      <attachid>65873</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-08-29 21:48:20 -0700</bug_when>
    <thetext>Comment on attachment 65873
Patch

r=me

Your ChangeLog comments imply that you left some constructors public, if so, why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271291</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-29 21:53:47 -0700</bug_when>
    <thetext>Attachment 65872 did not build on gtk:
Build output: http://queues.webkit.org/results/3887113</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271298</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 23:03:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Your ChangeLog comments imply that you left some constructors public, if so, why?

Just wanted to limit the size of the change this round. I’ll make sure to make all of the constructors private or protected before changing them to call adoptRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271318</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-08-29 23:52:35 -0700</bug_when>
    <thetext>Committed r66362: &lt;http://trac.webkit.org/changeset/66362&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65872</attachid>
            <date>2010-08-29 20:18:05 -0700</date>
            <delta_ts>2010-08-29 20:25:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44851-20100829201803.patch</filename>
            <type>text/plain</type>
            <size>142425</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjM0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzM3IEBACisyMDEwLTA4LTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGUgU1ZHIGFuZCBXTUwgZWxlbWVudHMgd2l0aCBjcmVhdGUgZnVuY3Rpb25zIGluc3RlYWQgb2Yg
ZGlyZWN0IGludm9jYXRpb25zIG9mIG5ldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4NTEKKworICAgICAgICBBZGRlZCB0aGUgY3JlYXRlIGZ1bmN0
aW9ucywgbWFkZSBzb21lIGV4aXN0aW5nIGNvbnN0cnVjdG9ycyBwcm90ZWN0ZWQgYW5kIHByaXZh
dGUsCisgICAgICAgIG1hZGUgc29tZSBvdGhlciBtZW1iZXIgZnVuY3Rpb25zIHByb3RlY3RlZCBh
bmQgYW5kIHByaXZhdGUsIGFkZGVkIHNvbWUgbWlzc2luZyB2aXJ0dWFsCisgICAgICAgIGtleXdv
cmRzIGZvciBjbGFyaXR5IHRvIGZ1bmN0aW9ucyB0aGF0IGFscmVhZHkgd2VyZSBvdmVycmlkaW5n
IHZpcnR1YWwgZnVuY3Rpb25zLAorICAgICAgICBmaXhlZCBzb21lIGluY29uc2lzdGVudCBpbmRl
bnRhdGlvbiwgYW5kIHJlbW92ZWQgc29tZSB1bm5lZWRlZCBlbXB0eSBkZXN0cnVjdG9ycy4KKwor
ICAgICAgICBJbiB0aGUgZnV0dXJlLCBpdCB3aWxsIGJlIGdvb2QgdG8gaGF2ZSB0aGUgY29uc3Ry
dWN0b3JzIGFsbCBiZSBwcml2YXRlIHNvIHdlIGRvbid0CisgICAgICAgIHVzZSB0aGVtIGJ5IGFj
Y2lkZW50LiBUaGVuIHdlJ2xsIGNoYW5nZSB0aGUgcmVmZXJlbmNlIGNvdW50IHJ1bGUgZ2xvYmFs
bHkgYW5kIGFkZAorICAgICAgICBhbGwgdGhlIG5lY2Vzc2FyeSBjYWxscyB0byBhZG9wdFJlZi4K
KworICAgICAgICBUaGUgU1ZHIGNoYW5nZXMgYXJlIGNvbXBpbGVkIGFuZCB0ZXN0ZWQuIFRoZSBX
TUwgY2hhbmdlcyBhcmUgc3BlY3VsYXRpdmUgYW5kIHVudGVzdGVkLgorCisgICAgICAgICogZG9t
L21ha2VfbmFtZXMucGw6IFJlbW92ZWQgc3VwcG9ydGZvciB0aGUgY3JlYXRlV2l0aE5ldyBrZXl3
b3JkLgorICAgICAgICAqIHN2Zy9zdmd0YWdzLmluOiBSZW1vdmVkIGFsbCB0aGUgY3JlYXRlV2l0
aE5ldyBrZXl3b3Jkcy4KKyAgICAgICAgKiB3bWwvV01MVGFnTmFtZXMuaW46IERpdHRvLgorCisg
ICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fs
dEdseXBoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0FsdEdseXBo
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
c3ZnL1NWR0NpcmNsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdDdXJzb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0N1cnNvckVsZW1lbnQ6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdDdXJzb3JFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0RlZnNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RlZnNF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRGVzY0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RGVzY0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdEZXNjRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R0VsbGlwc2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6Y3JlYXRl
KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUp
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUZsb29kRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogc3ZnL1NWR0ZFRmxvb2RFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVu
Y0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRnVuY0FFbGVtZW50OjpjcmVh
dGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVGdW5j
QkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGRUZ1bmNHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRnVuY1JFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
c3ZnL1NWR0ZFSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VFbGVtZW50OjpjcmVhdGUpOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVBvaW50TGlnaHRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9T
VkdGRVR1cmJ1bGVuY2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9u
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEVsZW1lbnQ6OmNyZWF0ZSk6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGb250RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZU5hbWVF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VOYW1lRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VTcmNFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1l
bnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dseXBoRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmNyZWF0ZSk6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
SEtlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6Y3Jl
YXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0hLZXJuRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
bmVFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAg
ICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdN
UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTVBhdGhFbGVtZW50OjpjcmVh
dGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTVBhdGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxl
bWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TWFza0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZH
TWV0YWRhdGFFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTWV0YWRh
dGFFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNy
ZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJu
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvbHlnb25FbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlsaW5lRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NldEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2V0RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR1NldEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZSk6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU3R5bGVFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3Zn
L1NWR1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmRWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RT
cGFuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0
ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6Y3Jl
YXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Rp
dGxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUaXRsZUVsZW1lbnQ6OmNyZWF0
ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdWS2VybkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVktlcm5FbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQu
aDoKKyAgICAgICAgKiB3bWwvV01MQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01M
QUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxBRWxlbWVudC5oOgor
ICAgICAgICAqIHdtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldN
TEFjY2Vzc0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxBY2Nlc3NF
bGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V01MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MQlJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldNTEJSRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
d21sL1dNTEJSRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAg
ICogd21sL1dNTENhcmRFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTERvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXTUxEb0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHdtbC9XTUxEb0VsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MRmllbGRTZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogd21sL1dNTEZpZWxkU2V0RWxlbWVudC5oOgorICAgICAgICAqIHdtbC9X
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MRm9ybUNvbnRy
b2xFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MR29FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEdvRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAg
ICAgICogd21sL1dNTEdvRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4K
KyAgICAgICAgKiB3bWwvV01MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTElucHV0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZSk6
IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwv
V01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEluc2Vy
dGVkTGVnZW5kRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTEluc2Vy
dGVkTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxJbnRyaW5zaWNFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnRyaW5zaWNFdmVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogd21sL1dNTE1ldGFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTE1l
dGFFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MTWV0YUVsZW1lbnQu
aDoKKyAgICAgICAgKiB3bWwvV01MTm9vcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V01MTm9vcEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxOb29wRWxl
bWVudC5oOgorICAgICAgICAqIHdtbC9XTUxPbkV2ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxPbkV2ZW50RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTE9uRXZlbnRFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTE9wdEdyb3VwRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVk
LgorICAgICAgICAqIHdtbC9XTUxPcHRHcm91cEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01M
T3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MT3B0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIHdtbC9XTUxQRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxQRWxlbWVudDo6
Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTFBFbGVtZW50Lmg6CisgICAgICAgICog
d21sL1dNTFBvc3RmaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MUG9zdGZp
ZWxkRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTFBvc3RmaWVsZEVs
ZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MUHJldkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V01MUHJldkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxQ
cmV2RWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxSZWZyZXNoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxSZWZyZXNoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAg
ICogd21sL1dNTFJlZnJlc2hFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTFNlbGVjdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogd21sL1dNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01M
U2V0dmFyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxTZXR2YXJFbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MU2V0dmFyRWxlbWVudC5oOgorICAgICAg
ICAqIHdtbC9XTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MVGFibGVF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MVGFibGVFbGVtZW50Lmg6
CisgICAgICAgICogd21sL1dNTFRhc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldN
TFRhc2tFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MVGFza0VsZW1l
bnQuaDoKKyAgICAgICAgKiB3bWwvV01MVGVtcGxhdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxUaW1lckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V01MVGltZXJFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiB3bWwvV01MVGltZXJFbGVtZW50Lmg6CisKIDIwMTAtMDgtMjkgIEt3YW5nIFl1bCBT
ZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRh
bXVyYS4KSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDYgQEAgc3ViIGRlZmF1
bHRUYWdQcm9wZXJ0eUhhc2gKICAgICByZXR1cm4gKAogICAgICAgICAnY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlcicgPT4gMCwKICAgICAgICAgJ2NvbnN0cnVjdG9yTmVlZHNGb3JtRWxl
bWVudCcgPT4gMCwKLSAgICAgICAgJ2NyZWF0ZVdpdGhOZXcnID0+IDAsCiAgICAgICAgICdpbnRl
cmZhY2VOYW1lJyA9PiBkZWZhdWx0SW50ZXJmYWNlTmFtZSgkX1swXSksCiAgICAgICAgICMgQnkg
ZGVmYXVsdCwgdGhlIEpTSW50ZXJmYWNlTmFtZSBpcyB0aGUgc2FtZSBhcyB0aGUgaW50ZXJmYWNl
TmFtZS4KICAgICAgICAgJ0pTSW50ZXJmYWNlTmFtZScgPT4gZGVmYXVsdEludGVyZmFjZU5hbWUo
JF9bMF0pLApAQCAtMzE3LDE2ICszMTYsOCBAQCBFTkQKIDsKICAgICB9CiAKLSAgICBteSAkbmV3
UHJlZml4ID0gIiI7Ci0gICAgbXkgJGNyZWF0ZVN1ZmZpeCA9ICI6OmNyZWF0ZSI7Ci0KLSAgICBp
ZiAoJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtjcmVhdGVXaXRoTmV3fSkgewotICAgICAgICAkbmV3
UHJlZml4ID0gIm5ldyAiOwotICAgICAgICAkY3JlYXRlU3VmZml4ID0gIiI7Ci0gICAgfQotCiAg
ICAgIyBDYWxsIHRoZSBjb25zdHJ1Y3RvciB3aXRoIHRoZSByaWdodCBwYXJhbWV0ZXJzLgotICAg
IHByaW50IEYgIiAgICByZXR1cm4gJG5ld1ByZWZpeCRpbnRlcmZhY2VOYW1lJHtjcmVhdGVTdWZm
aXh9KCRjb25zdHJ1Y3RvclRhZ05hbWUsIGRvY3VtZW50IjsKKyAgICBwcmludCBGICIgICAgcmV0
dXJuICRpbnRlcmZhY2VOYW1lOjpjcmVhdGUoJGNvbnN0cnVjdG9yVGFnTmFtZSwgZG9jdW1lbnQi
OwogICAgIHByaW50IEYgIiwgZm9ybUVsZW1lbnQiIGlmICRlbmFibGVkVGFnc3skdGFnTmFtZX17
Y29uc3RydWN0b3JOZWVkc0Zvcm1FbGVtZW50fTsKICAgICBwcmludCBGICIsIGNyZWF0ZWRCeVBh
cnNlciIgaWYgJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5
UGFyc2VyfTsKICAgICBwcmludCBGICIpO1xufVxuXG4iOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTU0LDYgKzU0LDExIEBAIFNWR0FFbGVtZW50OjpTVkdBRWxlbWVudChjb25zdCBR
dWFsaWZpZWQKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdBRWxlbWVudD4gU1ZHQUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdBRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNW
R0FFbGVtZW50Ojp+U1ZHQUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5oCShyZXZpc2lv
biA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgU1ZHQUVsZW1lbnRfaAogCiAjaWYgRU5BQkxFKFNWRykK
KwogI2luY2x1ZGUgIlNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQuaCIKICNpbmNsdWRlICJT
VkdMYW5nU3BhY2UuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5o
IgpAQCAtMzcsOSArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAg
ICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHB1
YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKICAgICBwdWJsaWM6Ci0gICAgICAg
IFNWR0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCiAgICAgICAgIHZpcnR1YWwgflNWR0FFbGVtZW50KCk7CiAKKyAgICBw
cml2YXRlOgorICAgICAgICBTVkdBRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIFNW
R1Rlc3RzOjppc1ZhbGlkKCk7IH0KICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIHRp
dGxlKCkgY29uc3Q7CkBAIC01OSw3ICs2NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7
CiAKLSAgICBwcml2YXRlOgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR0FF
bGVtZW50LCBTVkdOYW1lczo6dGFyZ2V0QXR0ciwgU3RyaW5nLCBUYXJnZXQsIHRhcmdldCkKIAog
ICAgICAgICAvLyBTVkdVUklSZWZlcmVuY2UKQEAgLTcyLDQgKzc2LDUgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNWRykK
KwogI2VuZGlmIC8vIFNWR0FFbGVtZW50X2gKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FsdEdseXBo
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50
LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCwxMSBAQCBTVkdBbHRHbHlwaEVsZW1lbnQ6
OlNWR0FsdEdseXBoRWxlbWVudChjCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHQWx0R2x5cGhFbGVt
ZW50PiBTVkdBbHRHbHlwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbHRHbHlwaEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdBbHRHbHlwaEVsZW1lbnQ6On5TVkdB
bHRHbHlwaEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDEzICszNCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFz
cyBTVkdBbHRHbHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlIHsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR0FsdEdseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHQWx0R2x5cGhFbGVtZW50KCk7
Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlm
aWVkTmFtZSYpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0
dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHls
ZSopOwotICAgICAgICBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0
OworICAgICAgICB2aXJ0dWFsIH5TVkdBbHRHbHlwaEVsZW1lbnQoKTsKIAogICAgICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIGdseXBoUmVmKCkgY29uc3Q7CiAgICAgICAgIHZvaWQgc2V0R2x5cGhS
ZWYoY29uc3QgQXRvbWljU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtNDksNyArNDUsMTQg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgICAgICBTVkdHbHlwaEVsZW1lbnQqIGds
eXBoRWxlbWVudCgpIGNvbnN0OwogCi0gICAgcHJpdmF0ZTogICAgCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgU1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCisgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxp
ZmllZE5hbWUmKTsKKworICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVy
ZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOworICAgICAgICB2aXJ0dWFsIGJvb2wgY2hp
bGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CisKICAgICAgICAgLy8gU1ZHVVJJ
UmVmZXJlbmNlCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHQWx0R2x5cGhF
bGVtZW50LCBYTGlua05hbWVzOjpocmVmQXR0ciwgU3RyaW5nLCBIcmVmLCBocmVmKQogICAgIH07
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNiArMzAsMTEgQEAgU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudDo6U1ZHQW5pbWF0
ZUNvbG9yRQogewogfQogCitQYXNzUmVmUHRyPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IFNWR0Fu
aW1hdGVDb2xvckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlQ29sb3JFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogfQogCiAvLyB2aW06dHM9NDpub2V0CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgLy8gU1ZHQW5pbWF0ZUVsZW1lbnQg
aW1wbGVtZW50cyBzdXBlcnNldCBvZiB0aGUgZnVuY3Rpb25hbGl0eS4KICAgICBjbGFzcyBTVkdB
bmltYXRlQ29sb3JFbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGVFbGVtZW50IHsKICAgICBwdWJs
aWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVDb2xvckVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdBbmlt
YXRlQ29sb3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIH07
CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2
ICs0NiwxMSBAQCBTVkdBbmltYXRlRWxlbWVudDo6U1ZHQW5pbWF0ZUVsZW1lbnQoY29uCiB7CiB9
CiAKK1Bhc3NSZWZQdHI8U1ZHQW5pbWF0ZUVsZW1lbnQ+IFNWR0FuaW1hdGVFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorewor
ICAgIHJldHVybiBuZXcgU1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQor
CiBTVkdBbmltYXRlRWxlbWVudDo6flNWR0FuaW1hdGVFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR0FuaW1hdGVFbGVtZW50IDogcHVibGljIFNWR0Fu
aW1hdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHQW5pbWF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKwogICAgICAgICBTVkdBbmltYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZUVsZW1lbnQoKTsKICAgICAKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3
KQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Nyw2ICs0NywxMSBAQCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6U1ZHQW5pbWF0
ZU1vdGlvCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ+IFNWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6
flNWR0FuaW1hdGVNb3Rpb25FbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIAogICAgIGNsYXNzIFNWR0FuaW1hdGVNb3Rpb25F
bGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdBbmltYXRlTW90aW9u
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYg
KzUzLDExIEBAIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50OjpTVkdBbmltYXRlVHIKIHsKIH0K
IAorUGFzc1JlZlB0cjxTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudD4gU1ZHQW5pbWF0ZVRyYW5z
Zm9ybUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50Ojp+
U1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3Zn
L1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDggQEAgY2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogCiBjbGFzcyBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudCA6IHB1YmxpYyBTVkdBbmltYXRpb25FbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U1ZHQW5p
bWF0ZVRyYW5zZm9ybUVsZW1lbnQoKTsKICAgICAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0NpcmNs
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQCBTVkdDaXJjbGVFbGVtZW50OjpTVkdD
aXJjbGVFbGVtZW50KGNvbnN0CiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHQ2lyY2xlRWxlbWVudD4g
U1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0NpcmNsZUVsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdDaXJjbGVFbGVtZW50Ojp+U1ZHQ2lyY2xlRWxlbWVu
dCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0NpcmNsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdDaXJjbGVFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdDaXJjbGVFbGVtZW50
KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Myw2ICs0MywxMSBAQCBTVkdDbGlwUGF0aEVsZW1lbnQ6OlNWR0NsaXBQYXRoRWxlbWVudChj
CiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHQ2xpcFBhdGhFbGVtZW50PiBTVkdDbGlwUGF0aEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdDbGlwUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpOworfQorCiBTVkdDbGlwUGF0aEVsZW1lbnQ6On5TVkdDbGlwUGF0aEVsZW1lbnQoKQogewog
fQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1
LDggQEAgY2xhc3MgU1ZHQ2xpcFBhdGhFbGVtZW50IDogcHVibGljIFNWR1N0eQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdDbGlwUGF0aEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0NsaXBQYXRoRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TVkdDbGlwUGF0aEVs
ZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3
KQorKysgV2ViQ29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQwLDYgKzQwLDExIEBAIFNWR0N1cnNvckVsZW1lbnQ6OlNWR0N1cnNvckVsZW1lbnQoY29uc3QK
IHsKIH0KIAorUGFzc1JlZlB0cjxTVkdDdXJzb3JFbGVtZW50PiBTVkdDdXJzb3JFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgU1ZHQ3Vyc29yRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0N1cnNvckVsZW1lbnQ6On5TVkdDdXJzb3JFbGVtZW50KCkKIHsKICAgICBIYXNoU2V0
PFNWR0VsZW1lbnQqPjo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRzLmVuZCgpOwpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R1VSSVJlZmVyZW5jZSB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdDdXJzb3JFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisKICAgICAgICAgU1ZHQ3Vyc29yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHQ3Vyc29yRWxlbWVudCgpOwogCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
RGVmc0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0RlZnNF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTEgQEAgU1ZHRGVmc0VsZW1l
bnQ6OlNWR0RlZnNFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR0RlZnNF
bGVtZW50PiBTVkdEZWZzRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0RlZnNFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRGVmc0VsZW1lbnQ6On5TVkdEZWZzRWxlbWVu
dCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHRGVmc0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICBTVkdEZWZzRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRGVmc0VsZW1lbnQoKTsKIApJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0Rlc2NFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdEZXNj
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBAIFNWR0Rlc2NFbGVt
ZW50OjpTVkdEZXNjRWxlbWVudChjb25zdCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdEZXNj
RWxlbWVudD4gU1ZHRGVzY0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdEZXNjRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0Rlc2NFbGVtZW50Ojp+U1ZHRGVzY0VsZW1l
bnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdl
YkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR0Rlc2NFbGVtZW50IDogcHVibGlj
IFNWR1N0eWxlZEVsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZH
TGFuZ1NwYWNlIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0Rl
c2NFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAg
ICAgICAgU1ZHRGVzY0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR0Rlc2NFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0VsbGlwc2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMSBAQCBTVkdFbGxpcHNlRWxl
bWVudDo6U1ZHRWxsaXBzZUVsZW1lbnQoY29uCiB7CiB9ICAgIAogCitQYXNzUmVmUHRyPFNWR0Vs
bGlwc2VFbGVtZW50PiBTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0Vs
bGlwc2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRWxsaXBzZUVsZW1lbnQ6
On5TVkdFbGxpcHNlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewog
ICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRWxsaXBzZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdF
bGxpcHNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHRWxsaXBzZUVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAgU1ZHRkVCbGVu
ZEVsZW1lbnQ6OlNWR0ZFQmxlbmRFbGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR0ZF
QmxlbmRFbGVtZW50PiBTVkdGRUJsZW5kRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZF
QmxlbmRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVCbGVuZEVsZW1lbnQ6
On5TVkdGRUJsZW5kRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUJsZW5k
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
U1ZHRkVCbGVuZEVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUJsZW5kRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVC
bGVuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVh
bCB+U1ZHRkVCbGVuZEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDExIEBAIFNWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50OjpTVkdGRUNvbG9yTWF0cmkKIHsKIH0KIAorUGFzc1JlZlB0cjxT
VkdGRUNvbG9yTWF0cml4RWxlbWVudD4gU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBTVkdGRUNvbG9yTWF0cml4RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojp+U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQoKQog
ewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDYgKzMwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdG
RUNvbG9yTWF0cml4RWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29sb3JNYXRy
aXhFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAg
ICBTVkdGRUNvbG9yTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKICAgICB2aXJ0dWFsIH5TVkdGRUNvbG9yTWF0cml4RWxlbWVudCgpOwogCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEgQEAgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVs
ZW1lbnQ6OlNWR0ZFQ29tcAogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ6On5TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50IDog
cHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0ZFQ29tcG9uZW50
VHJhbnNmZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgflNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCwx
MSBAQCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OlNWR0ZFQ29tcG9zaXRlRWxlCiB7CiB9CiAKK1Bh
c3NSZWZQdHI8U1ZHRkVDb21wb3NpdGVFbGVtZW50PiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6On5TVkdGRUNvbXBvc2l0ZUVsZW1lbnQoKQog
ewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3
KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUNvbXBv
c2l0ZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0ZFQ29t
cG9zaXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5TVkdGRUNvbXBvc2l0ZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVD
b252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYg
KzQ1LDExIEBAIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpTVkdGRUNvbnZvbHYKIHsKIH0K
IAorUGFzc1JlZlB0cjxTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudD4gU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50Ojp+
U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3Zn
L1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdGRUNvbnZv
bHZlTWF0cml4RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2
aXJ0dWFsIH5TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsMTEgQEAgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpTVkdGRURp
ZmZ1cwogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudD4gU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVEaWZmdXNlTGln
aHRpbmdFbGVtZW50Ojp+U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KCkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiw4IEBAIGNsYXNzIFNWR0NvbG9yOwogCiBjbGFzcyBTVkdGRURp
ZmZ1c2VMaWdodGluZ0VsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KwogICAgIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoKTsK
IApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDExIEBAIFNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudDo6U1ZHRkVEaXNwbGEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQ+IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6flNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1l
bnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgCiBjbGFzcyBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQgOiBwdWJsaWMg
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1
YWwgflNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCgpOwogICAgIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvc3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDYgKzMwLDExIEBAIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6U1ZHRkVEaXN0YW50TGkKIHsK
IH0KIAorUGFzc1JlZlB0cjxTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQ+IFNWR0ZFRGlzdGFudExp
Z2h0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudDo6flNWR0ZF
RGlzdGFudExpZ2h0RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRURpc3Rh
bnRMaWdodEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRURpc3Rh
bnRMaWdodEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsMTEgQEAKICNpbmNs
dWRlICJTVkdGRUxpZ2h0RWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBj
bGFzcyBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQgOiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQg
ewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVEaXN0YW50TGln
aHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAg
ICAgICAgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoKTsKIApJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDExIEBAIFNWR0ZFRmxvb2RFbGVtZW50OjpTVkdGRUZsb29kRWxlbWVudChjb24KIHsKIH0KIAor
UGFzc1JlZlB0cjxTVkdGRUZsb29kRWxlbWVudD4gU1ZHRkVGbG9vZEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBTVkdGRUZsb29kRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNW
R0ZFRmxvb2RFbGVtZW50Ojp+U1ZHRkVGbG9vZEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
RUZsb29kRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRmxv
b2RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDExIEBACiAjaW5jbHVkZSAi
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKwogY2xhc3MgU1ZHRkVGbG9vZEVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0
aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdGRUZsb29kRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCiAgICAgU1ZHRkVGbG9vZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAgICAgdmlydHVhbCB+U1ZHRkVGbG9vZEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRkVGdW5jQUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZF
RnVuY0FFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZ1
bmNBRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBAIFNWR0ZFRnVu
Y0FFbGVtZW50OjpTVkdGRUZ1bmNBRWxlbWVudChjb24KIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdG
RUZ1bmNBRWxlbWVudD4gU1ZHRkVGdW5jQUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdG
RUZ1bmNBRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFRnVuY0FFbGVtZW50
Ojp+U1ZHRkVGdW5jQUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGdW5j
QUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5o
CShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDExIEBACiAjaW5jbHVkZSAiU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xh
c3MgU1ZHRkVGdW5jQUVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlv
bkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVG
dW5jQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwog
ICAgICAgICBTVkdGRUZ1bmNBRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5jQUVsZW1lbnQoKTsKICAgICB9OwpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBA
IFNWR0ZFRnVuY0JFbGVtZW50OjpTVkdGRUZ1bmNCRWxlbWVudChjb24KIHsKIH0KIAorUGFzc1Jl
ZlB0cjxTVkdGRUZ1bmNCRWxlbWVudD4gU1ZHRkVGdW5jQkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBTVkdGRUZ1bmNCRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFRnVu
Y0JFbGVtZW50Ojp+U1ZHRkVGdW5jQkVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRkVGdW5jQkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNC
RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0JFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDExIEBACiAjaW5jbHVkZSAiU1ZHQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewor
CiAgICAgY2xhc3MgU1ZHRkVGdW5jQkVsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVGdW5jQkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICBTVkdGRUZ1bmNCRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5jQkVsZW1lbnQoKTsKICAgICB9
OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDExIEBAIFNWR0ZFRnVuY0dFbGVtZW50OjpTVkdGRUZ1bmNHRWxlbWVudChjb24KIHsKIH0K
IAorUGFzc1JlZlB0cjxTVkdGRUZ1bmNHRWxlbWVudD4gU1ZHRkVGdW5jR0VsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBTVkdGRUZ1bmNHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisK
IFNWR0ZFRnVuY0dFbGVtZW50Ojp+U1ZHRkVGdW5jR0VsZW1lbnQoKQogewogfQpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdGRUZ1bmNHRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZF
RnVuY0dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDExIEBACiAjaW5jbHVk
ZSAiU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgeworCiAgICAgY2xhc3MgU1ZHRkVGdW5jR0VsZW1lbnQgOiBwdWJsaWMgU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHRkVGdW5jR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGRUZ1bmNHRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5jR0VsZW1lbnQo
KTsKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDExIEBAIFNWR0ZFRnVuY1JFbGVtZW50OjpTVkdGRUZ1bmNSRWxlbWVudChj
b24KIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGRUZ1bmNSRWxlbWVudD4gU1ZHRkVGdW5jUkVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRUZ1bmNSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIFNWR0ZFRnVuY1JFbGVtZW50Ojp+U1ZHRkVGdW5jUkVsZW1lbnQoKQogewogfQpJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDExIEBA
CiAjaW5jbHVkZSAiU1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZHRkVGdW5jUkVsZW1lbnQgOiBwdWJsaWMg
U1ZHQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVGdW5jUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGRUZ1bmNSRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVGdW5j
UkVsZW1lbnQoKTsKICAgICB9OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lhbkJsdXJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5C
bHVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDExIEBAIFNWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudDo6U1ZHRkVHYXVzc2lhbkIKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdG
RUdhdXNzaWFuQmx1ckVsZW1lbnQ+IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudDo6flNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQCBleHRlcm4gY2hhciBTVkdTdGREZXZpYXRpb25Z
QXR0cklkZW50aWZpCiAKIGNsYXNzIFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudCA6IHB1YmxpYyBT
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNWR0ZFR2F1c3Np
YW5CbHVyRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgU1ZHRkVJbWFnZUVsZW1lbnQ6OlNWR0ZFSW1hZ2VF
bGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFSW1hZ2VFbGVtZW50PiBTVkdGRUlt
YWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFSW1hZ2VFbGVtZW50KHRhZ05hbWUs
IGRvY3VtZW50KTsKK30KKwogU1ZHRkVJbWFnZUVsZW1lbnQ6On5TVkdGRUltYWdlRWxlbWVudCgp
CiB7CiAgICAgaWYgKG1fY2FjaGVkSW1hZ2UpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUltYWdl
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBAQCBjbGFzcyBTVkdGRUltYWdlRWxlbWVudCA6IHB1
YmxpYyBTVkdGaWx0CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgQ2Fj
aGVkUmVzb3VyY2VDbGllbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZF
SW1hZ2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisK
ICAgICBTVkdGRUltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5TVkdGRUltYWdlRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRU1lcmdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgU1ZHRkVNZXJnZUVs
ZW1lbnQ6OlNWR0ZFTWVyZ2VFbGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFTWVy
Z2VFbGVtZW50PiBTVkdGRU1lcmdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFTWVy
Z2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVNZXJnZUVsZW1lbnQ6On5T
VkdGRU1lcmdlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R0ZFTWVyZ2VFbGVtZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcyB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVNZXJnZUVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0ZFTWVy
Z2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwg
flNWR0ZFTWVyZ2VFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVt
ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMSBAQCBTVkdGRU1lcmdlTm9k
ZUVsZW1lbnQ6OlNWR0ZFTWVyZ2VOb2RlRWxlCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVNZXJn
ZU5vZGVFbGVtZW50PiBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBT
VkdGRU1lcmdlTm9kZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRU1lcmdl
Tm9kZUVsZW1lbnQ6On5TVkdGRU1lcmdlTm9kZUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHRkVNZXJnZU5vZGVFbGVtZW50IDog
cHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVNZXJnZU5vZGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisKICAgICAgICAgU1ZHRkVNZXJnZU5vZGVFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRU1lcmdlTm9kZUVsZW1l
bnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAJKHJldmlz
aW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDExIEBAIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OlNW
R0ZFTW9ycGhvbG9neUUKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50
PiBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVNb3JwaG9s
b2d5RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFTW9ycGhvbG9neUVsZW1l
bnQ6On5TVkdGRU1vcnBob2xvZ3lFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBAIGV4dGVy
biBjaGFyIFNWR1JhZGl1c1lBdHRySWRlbnRpZmllcltdOwogCiBjbGFzcyBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVNb3JwaG9sb2d5RWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5TVkdGRU1vcnBob2xvZ3lFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRF
bGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMSBAQCBTVkdGRU9mZnNldEVs
ZW1lbnQ6OlNWR0ZFT2Zmc2V0RWxlbWVudChjCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVPZmZz
ZXRFbGVtZW50PiBTVkdGRU9mZnNldEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRU9m
ZnNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRU9mZnNldEVsZW1lbnQ6
On5TVkdGRU9mZnNldEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVPZmZz
ZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50
LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBTVkdGRU9mZnNldEVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRh
cmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU9mZnNl
dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAg
IFNWR0ZFT2Zmc2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5TVkdGRU9mZnNldEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZH
RkVQb2ludExpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVQ
b2ludExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
RkVQb2ludExpZ2h0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDExIEBA
IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OlNWR0ZFUG9pbnRMaWdodEUKIHsKIH0KIAorUGFzc1Jl
ZlB0cjxTVkdGRVBvaW50TGlnaHRFbGVtZW50PiBTVkdGRVBvaW50TGlnaHRFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorewor
ICAgIHJldHVybiBuZXcgU1ZHRkVQb2ludExpZ2h0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7
Cit9CisKIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6On5TVkdGRVBvaW50TGlnaHRFbGVtZW50KCkK
IHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNCw4ICsyNCwxMSBAQAogI2luY2x1ZGUgIlNWR0ZFTGlnaHRFbGVtZW50LmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNsYXNzIFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQg
OiBwdWJsaWMgU1ZHRkVMaWdodEVsZW1lbnQgewotICAgICAgICBwdWJsaWM6CisgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVBvaW50TGlnaHRFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHRkVQb2lu
dExpZ2h0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHRkVQb2ludExpZ2h0RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsMTEgQEAgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6U1ZHRkVT
cGVjdQogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ+IFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudDo6flNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoKQogewogfQpJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuaAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAgZXh0ZXJuIGNoYXIgU1ZHS2VybmVsVW5p
dExlbmd0aFlJZGVudGlmaQogCiBjbGFzcyBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50IDog
cHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVTcGVjdWxhckxp
Z2h0aW5nRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50KCk7CiAgICAgCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
MTEgQEAgU1ZHRkVTcG90TGlnaHRFbGVtZW50OjpTVkdGRVNwb3RMaWdodEVsZQogewogfQogCitQ
YXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gU1ZHRkVTcG90TGlnaHRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgU1ZHRkVTcG90TGlnaHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KTsKK30KKwogU1ZHRkVTcG90TGlnaHRFbGVtZW50Ojp+U1ZHRkVTcG90TGlnaHRFbGVtZW50KCkK
IHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCw4ICsyNCwxMSBAQAogI2luY2x1ZGUgIlNWR0ZFTGlnaHRFbGVtZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNsYXNzIFNWR0ZFU3BvdExpZ2h0RWxlbWVudCA6IHB1
YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdGRVNwb3RMaWdodEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGRVNwb3RMaWdodEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFU3BvdExpZ2h0
RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsMTEgQEAgU1ZHRkVUaWxlRWxlbWVudDo6U1ZHRkVUaWxlRWxlbWVudChjb25z
dAogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFVGlsZUVsZW1lbnQ+IFNWR0ZFVGlsZUVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBTVkdGRVRpbGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHRkVUaWxlRWxlbWVudDo6flNWR0ZFVGlsZUVsZW1lbnQoKQogewogfQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTVkdGRVRpbGVFbGVtZW50IDogcHVibGljIFNWR0ZpbHRlclBy
aW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHRkVUaWxlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworCiAgICAgU1ZHRkVUaWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5TVkdGRVRpbGVFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICsz
OSwxMSBAQCBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50OjpTVkdGRVR1cmJ1bGVuY2VFCiB7CiB9CiAK
K1Bhc3NSZWZQdHI8U1ZHRkVUdXJidWxlbmNlRWxlbWVudD4gU1ZHRkVUdXJidWxlbmNlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpOworfQorCiBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50Ojp+U1ZHRkVUdXJidWxlbmNlRWxl
bWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBlbnVtIFNWR1N0aXRjaE9wdGlvbnMgewogCiBj
bGFzcyBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVU
dXJidWxlbmNlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCiAgICAgU1ZHRkVUdXJidWxlbmNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TVkdGRVR1cmJ1bGVuY2VFbGVtZW50KCk7CiAKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01OCw2ICs1OCwxMSBAQCBT
VkdGaWx0ZXJFbGVtZW50OjpTVkdGaWx0ZXJFbGVtZW50KGNvbnN0CiAgICAgLy8gU3BlYzogSWYg
dGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3ZXJlIHNwZWNpZmllZC4KIH0KIAorUGFzc1JlZlB0
cjxTVkdGaWx0ZXJFbGVtZW50PiBTVkdGaWx0ZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcg
U1ZHRmlsdGVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZpbHRlckVsZW1l
bnQ6On5TVkdGaWx0ZXJFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZpbHRl
ckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIFNWR0ZpbHRlckVsZW1lbnQgOiBwdWJs
aWMgU1ZHU3R5bGUKICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGaWx0ZXJFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdGaWx0
ZXJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwg
flNWR0ZpbHRlckVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDYgKzQ2LDExIEBAIFNWR0ZvbnRFbGVtZW50OjpTVkdGb250RWxlbWVudChjb25z
dCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGb250RWxlbWVudD4gU1ZHRm9udEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBTVkdGb250RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0ZvbnRFbGVtZW50Ojp+U1ZHRm9udEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRm9udEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250
RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDkgKzUwLDEyIEBAIHN0cnVjdCBTVkdLZXJuaW5nUGFp
ciB7CiB0eXBlZGVmIFZlY3RvcjxTVkdLZXJuaW5nUGFpcj4gS2VybmluZ1BhaXJWZWN0b3I7CiAK
IGNsYXNzIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ7ICAgIAorCiBjbGFzcyBTVkdGb250RWxlbWVu
dCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50CiAgICAgICAgICAgICAgICAgICAgICAsIHB1Ymxp
YyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdGb250RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCiAgICAgU1ZHRm9udEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CiAgICAgdmlydHVhbCB+U1ZHRm9udEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
b250RmFjZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDExIEBAIFNWR0Zv
bnRGYWNlRWxlbWVudDo6U1ZHRm9udEZhY2VFbGVtZW50KGMKICAgICBtX2ZvbnRGYWNlUnVsZS0+
c2V0RGVjbGFyYXRpb24obV9zdHlsZURlY2xhcmF0aW9uLmdldCgpKTsKIH0KIAorUGFzc1JlZlB0
cjxTVkdGb250RmFjZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IFNWR0ZvbnRGYWNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZvbnRG
YWNlRWxlbWVudDo6flNWR0ZvbnRGYWNlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250
RmFjZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKICAgICBjbGFzcyBTVkdGb250RmFjZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVu
dCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZUVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAg
ICBTVkdGb250RmFjZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR0ZvbnRGYWNlRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQs
NiArMzQsMTEgQEAgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50OjpTVkdGb250RmFjZUZvcgogewog
fQogCitQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudD4gU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KTsKK30KKwogdm9pZCBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ6OmNo
aWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBO
b2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKIHsKICAgICBTVkdFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlZEJ5UGFyc2VyLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hh
bmdlLCBjaGlsZENvdW50RGVsdGEpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VGb3Jt
YXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxl
bWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRm9udEZhY2VGb3JtYXRF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBT
VkdGb250RmFjZUZvcm1hdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2Vy
ID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdlID0gMCwg
aW50IGNoaWxkQ291bnREZWx0YSA9IDApOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VOYW1l
RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VO
YW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDExIEBAIFNWR0ZvbnRG
YWNlTmFtZUVsZW1lbnQ6OlNWR0ZvbnRGYWNlTmFtZUUKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdG
b250RmFjZU5hbWVFbGVtZW50PiBTVkdGb250RmFjZU5hbWVFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVy
biBuZXcgU1ZHRm9udEZhY2VOYW1lRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFBh
c3NSZWZQdHI8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gU1ZHRm9udEZhY2VOYW1lRWxlbWVudDo6c3Jj
VmFsdWUoKSBjb25zdAogewogICAgIHJldHVybiBDU1NGb250RmFjZVNyY1ZhbHVlOjpjcmVhdGVM
b2NhbChnZXRBdHRyaWJ1dGUoU1ZHTmFtZXM6Om5hbWVBdHRyKSk7CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZU5hbWVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VOYW1lRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsMTMgQEAK
ICNpbmNsdWRlICJTVkdFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAgIGNs
YXNzIENTU0ZvbnRGYWNlU3JjVmFsdWU7CisKICAgICBjbGFzcyBTVkdGb250RmFjZU5hbWVFbGVt
ZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHRm9udEZhY2VOYW1lRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIAogICAgICAgICBQYXNzUmVmUHRy
PENTU0ZvbnRGYWNlU3JjVmFsdWU+IHNyY1ZhbHVlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsMTEg
QEAgU1ZHRm9udEZhY2VTcmNFbGVtZW50OjpTVkdGb250RmFjZVNyY0VsZQogewogfQogCitQYXNz
UmVmUHRyPFNWR0ZvbnRGYWNlU3JjRWxlbWVudD4gU1ZHRm9udEZhY2VTcmNFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorewor
ICAgIHJldHVybiBuZXcgU1ZHRm9udEZhY2VTcmNFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogUGFzc1JlZlB0cjxDU1NWYWx1ZUxpc3Q+IFNWR0ZvbnRGYWNlU3JjRWxlbWVudDo6c3Jj
VmFsdWUoKSBjb25zdAogewogICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1
ZUxpc3Q6OmNyZWF0ZUNvbW1hU2VwYXJhdGVkKCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVNyY0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNy
Y0VsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZVNy
Y0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgQ1NTVmFsdWVMaXN0OwogICAgIGNsYXNzIFNWR0ZvbnRGYWNlU3Jj
RWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNlU3JjRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZvbnRGYWNlU3JjRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgCiAgICAgICAgIFBhc3NSZWZQ
dHI8Q1NTVmFsdWVMaXN0PiBzcmNWYWx1ZSgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250
RmFjZVVyaUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQxLDExIEBAIFNW
R0ZvbnRGYWNlVXJpRWxlbWVudDo6U1ZHRm9udEZhY2VVcmlFbGUKIHsKIH0KIAorUGFzc1JlZlB0
cjxTVkdGb250RmFjZVVyaUVsZW1lbnQ+IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR0ZvbnRGYWNlVXJpRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisK
IFNWR0ZvbnRGYWNlVXJpRWxlbWVudDo6flNWR0ZvbnRGYWNlVXJpRWxlbWVudCgpCiB7CiAgICAg
aWYgKG1fY2FjaGVkRm9udCkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlVXJpRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw4ICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBTVkdGb250RmFjZVVyaUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCwgcHVibGlj
IENhY2hlZFJlc291cmNlQ2xpZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZvbnRGYWNlVXJpRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLSAgICAgICAgflNWR0ZvbnRGYWNlVXJpRWxlbWVudCgp
OworICAgICAgICB2aXJ0dWFsIH5TVkdGb250RmFjZVVyaUVsZW1lbnQoKTsKICAgICAgICAgCiAg
ICAgICAgIFBhc3NSZWZQdHI8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjVmFsdWUoKSBjb25zdDsK
IApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkocmV2aXNpb24g
NjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpTVkdG
b3JlaWduT2JqZWMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGb3JlaWduT2JqZWN0RWxlbWVudD4g
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50Ojp+U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
b3JlaWduT2JqZWN0RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsKICAgICBwdWJsaWM6CisgICAg
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHRm9yZWlnbk9iamVj
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1
YWwgflNWR0ZvcmVpZ25PYmplY3RFbGVtZW50KCk7CiAKQEAgLTQzLDcgKzQ1LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc3ZnQXR0cmlidXRlQ2hhbmdlZChj
b25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVBy
b3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgICAgICBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgUmVuZGVy
T2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxlKiBz
dHlsZSk7CiAKICAgICBwcml2YXRlOgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDYgKzM3LDExIEBAIFNWR0dFbGVtZW50OjpTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWQKIHsK
IH0KIAorUGFzc1JlZlB0cjxTVkdHRWxlbWVudD4gU1ZHR0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJu
IG5ldyBTVkdHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0dFbGVtZW50Ojp+
U1ZHR0VsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0dFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisK
ICAgICAgICAgU1ZHR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR0dFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ds
eXBoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50
LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMSBAQCBTVkdHbHlwaEVsZW1lbnQ6OlNWR0ds
eXBoRWxlbWVudChjb25zdCBRCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHR2x5cGhFbGVtZW50PiBT
VkdHbHlwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdHbHlwaEVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpOworfQorCiBTVkdHbHlwaEVsZW1lbnQ6On5TVkdHbHlwaEVsZW1lbnQoKQog
ewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdHbHlwaEVsZW1lbnQgOiBwdWJs
aWMgU1ZHU3R5bGVkRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdHbHlwaEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICBTVkdHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0dseXBoRWxlbWVudCgpOwogCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdIS2VybkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0hLZXJuRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
SEtlcm5FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTEgQEAgU1ZHSEtl
cm5FbGVtZW50OjpTVkdIS2VybkVsZW1lbnQoY29uc3QgUQogewogfQogCitQYXNzUmVmUHRyPFNW
R0hLZXJuRWxlbWVudD4gU1ZHSEtlcm5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHSEtl
cm5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHSEtlcm5FbGVtZW50Ojp+U1ZH
SEtlcm5FbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR0hLZXJu
RWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR0hLZXJuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0hLZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHSEtlcm5FbGVtZW50KCk7CiAK
SW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxMSBA
QCBTVkdJbWFnZUVsZW1lbnQ6OlNWR0ltYWdlRWxlbWVudChjb25zdCBRCiB7CiB9CiAKK1Bhc3NS
ZWZQdHI8U1ZHSW1hZ2VFbGVtZW50PiBTVkdJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBTVkdJbWFnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdJbWFnZUVsZW1l
bnQ6On5TVkdJbWFnZUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogICAgIHB1
YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHSW1hZ2VFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHSW1hZ2VFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5T
VkdJbWFnZUVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdMaW5lRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDQsNiArNDQsMTEgQEAgU1ZHTGluZUVsZW1lbnQ6OlNWR0xpbmVFbGVtZW50
KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR0xpbmVFbGVtZW50PiBTVkdMaW5lRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0xpbmVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KTsKK30KKwogU1ZHTGluZUVsZW1lbnQ6On5TVkdMaW5lRWxlbWVudCgpCiB7CiB9CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0xpbmVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWly
ZWQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTGluZUVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBT
VkdMaW5lRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHTGluZUVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDksNiAr
NDksMTEgQEAgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OjpTVkdMaW5lYXJHcmFkaQogICAgIC8v
IFNwZWM6IElmIHRoZSB4MiBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBp
cyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KIH0KIAorUGFzc1JlZlB0
cjxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ+IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6flNWR0xpbmVhckdyYWRpZW50RWxl
bWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICBjbGFzcyBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQgOiBwdWJsaWMgU1ZHR3JhZGllbnRF
bGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0xpbmVh
ckdyYWRpZW50RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCiAgICAgICAgIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICsz
MiwxMSBAQCBTVkdNUGF0aEVsZW1lbnQ6OlNWR01QYXRoRWxlbWVudChjb25zdCBRCiB7CiB9CiAK
K1Bhc3NSZWZQdHI8U1ZHTVBhdGhFbGVtZW50PiBTVkdNUGF0aEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBTVkdNUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdNUGF0
aEVsZW1lbnQ6On5TVkdNUGF0aEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
TVBhdGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewog
ICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTVBhdGhFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHTVBh
dGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0
dWFsIH5TVkdNUGF0aEVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNiArNTMsMTEgQEAgU1ZHTWFya2VyRWxlbWVudDo6
U1ZHTWFya2VyRWxlbWVudChjb25zdAogICAgIC8vIFNwZWM6IElmIHRoZSBtYXJrZXJXaWR0aC9t
YXJrZXJIZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMg
aWYgYSB2YWx1ZSBvZiAiMyIgd2VyZSBzcGVjaWZpZWQuCiB9CiAKK1Bhc3NSZWZQdHI8U1ZHTWFy
a2VyRWxlbWVudD4gU1ZHTWFya2VyRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR01hcmtl
ckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdNYXJrZXJFbGVtZW50Ojp+U1ZH
TWFya2VyRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCShyZXZpc2lv
biA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtNTMsNiArNTMsOCBAQCBwdWJsaWM6CiAgICAgICAgIFNWR19NQVJLRVJfT1JJRU5UX0FO
R0xFICAgICAgPSAyCiAgICAgfTsKIAorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01hcmtlckVs
ZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNW
R01hcmtlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmly
dHVhbCB+U1ZHTWFya2VyRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNiArNTQsMTEgQEAgU1ZHTWFza0VsZW1lbnQ6OlNWR01hc2tFbGVtZW50
KGNvbnN0IFF1YQogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlz
IG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTIwJSIgd2Vy
ZSBzcGVjaWZpZWQuCiB9CiAKK1Bhc3NSZWZQdHI8U1ZHTWFza0VsZW1lbnQ+IFNWR01hc2tFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHTWFza0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBTVkdNYXNrRWxlbWVudDo6flNWR01hc2tFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdNYXNrRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNYXNrRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNW
R01hc2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2
aXJ0dWFsIH5TVkdNYXNrRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNZXRhZGF0
YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksMTEgQEAgU1ZHTWV0YWRhdGFFbGVtZW50
OjpTVkdNZXRhZGF0YUVsZW1lbnQoYwogewogfQogCitQYXNzUmVmUHRyPFNWR01ldGFkYXRhRWxl
bWVudD4gU1ZHTWV0YWRhdGFFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHTWV0YWRhdGFF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHTWV0YWRhdGFFbGVtZW50Ojp+U1ZH
TWV0YWRhdGFFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01ldGFkYXRhRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwxMSBAQAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZHTWV0YWRhdGFFbGVtZW50IDogcHVi
bGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8
U1ZHTWV0YWRhdGFFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICAgICAgU1ZHTWV0YWRhdGFFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdNZXRhZGF0YUVsZW1lbnQoKTsKICAgICB9
OwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDExIEBAIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ6OlNWR01pc3Np
bmdHbHlwaEUKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHTWlzc2luZ0dseXBoRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVkdf
Rk9OVFMpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjYsNiArMjYsOCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNW
R01pc3NpbmdHbHlwaEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCB7CiAgICAgcHVi
bGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNaXNzaW5nR2x5cGhFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHTWlz
c2luZ0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJu
IGZhbHNlOyB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiAr
NTIsMTEgQEAgU1ZHUGF0aEVsZW1lbnQ6OlNWR1BhdGhFbGVtZW50KGNvbnN0IFF1YQogewogfQog
CitQYXNzUmVmUHRyPFNWR1BhdGhFbGVtZW50PiBTVkdQYXRoRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IFNWR1BhdGhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUGF0aEVs
ZW1lbnQ6On5TVkdQYXRoRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXRo
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtNTYsNiArNTYsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdBbmltYXRlZFBhdGhEYXRhIHsKICAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdGhFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHUGF0aEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNW
R1BhdGhFbGVtZW50KCk7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNw
cAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDExIEBAIFNWR1BhdHRlcm5FbGVtZW50OjpTVkdQ
YXR0ZXJuRWxlbWVudChjb24KIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdQYXR0ZXJuRWxlbWVudD4g
U1ZHUGF0dGVybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdQYXR0ZXJuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1BhdHRlcm5FbGVtZW50Ojp+U1ZHUGF0dGVybkVs
ZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQzLDYgKzQzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94IHsKICAgICBwdWJsaWM6
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHUGF0dGVybkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNW
R1BhdHRlcm5FbGVtZW50KCk7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9seWdv
bkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50
LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDExIEBAIFNWR1BvbHlnb25FbGVtZW50OjpT
VkdQb2x5Z29uRWxlbWVudChjb24KIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdQb2x5Z29uRWxlbWVu
dD4gU1ZHUG9seWdvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdQb2x5Z29uRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1BvbHlnb25FbGVtZW50Ojp+U1ZHUG9seWdv
bkVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5oCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHUG9s
eWdvbkVsZW1lbnQgOiBwdWJsaWMgU1ZHUG9seUVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUG9seWdvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdQb2x5Z29uRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUG9seWdv
bkVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDYgKzMyLDExIEBAIFNWR1BvbHlsaW5lRWxlbWVudDo6U1ZHUG9seWxpbmVF
bGVtZW50KGMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IFNWR1BvbHls
aW5lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1BvbHlsaW5lRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCk7Cit9CisKIFNWR1BvbHlsaW5lRWxlbWVudDo6flNWR1BvbHlsaW5lRWxlbWVu
dCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdQb2x5bGlu
ZUVsZW1lbnQgOiBwdWJsaWMgU1ZHUG9seUVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHUG9seWxpbmVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHUG9seWxpbmVFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdQb2x5bGlu
ZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDExIEBAIFNWR1JhZGlhbEdyYWRp
ZW50RWxlbWVudDo6U1ZHUmFkaWFsR3JhZGkKICAgICAvLyBTcGVjOiBJZiB0aGUgY3gvY3kvciBh
dHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9m
ICI1MCUiIHdlcmUgc3BlY2lmaWVkLgogfQogCitQYXNzUmVmUHRyPFNWR1JhZGlhbEdyYWRpZW50
RWxlbWVudD4gU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50Ojp+U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50KCkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSw2ICszMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR1JhZGlh
bEdyYWRpZW50RWxlbWVudCA6IHB1YmxpYyBTVkdHcmFkaWVudEVsZW1lbnQgewogICAgIHB1Ymxp
YzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAg
ICAgICB2aXJ0dWFsIH5TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1Jl
Y3RFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIFNWR1JlY3RFbGVtZW50
OjpTVkdSZWN0RWxlbWVudChjb25zdCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdSZWN0RWxl
bWVudD4gU1ZHUmVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdSZWN0RWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1JlY3RFbGVtZW50Ojp+U1ZHUmVjdEVsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1JlY3RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICAgICAgU1ZHUmVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1JlY3RFbGVtZW50KCk7CiAgICAgICAgIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHU1ZHRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
U1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDExIEBAIFNWR1NWR0Vs
ZW1lbnQ6OlNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGkKICAgICBkb2MtPnJlZ2lzdGVyRm9yRG9j
dW1lbnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMpOwogfQogCitQYXNzUmVmUHRyPFNWR1NWR0Vs
ZW1lbnQ+IFNWR1NWR0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdTVkdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHU1ZHRWxlbWVudDo6flNWR1NWR0VsZW1lbnQoKQog
ewogICAgIGRvY3VtZW50KCktPnVucmVnaXN0ZXJGb3JEb2N1bWVudEFjdGl2YXRpb25DYWxsYmFj
a3ModGhpcyk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdG
aXRUb1ZpZXdCb3gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdab29tQW5k
UGFuIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1NWR0VsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBT
VkdTVkdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2
aXJ0dWFsIH5TVkdTVkdFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMSw4ICszMSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
U1ZHU2NyaXB0RWxlbWVudDo6U1ZHU2NyaXB0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlcikKLSAgICA6IFNWR0Vs
ZW1lbnQodGFnTmFtZSwgZG9jKQorU1ZHU2NyaXB0RWxlbWVudDo6U1ZHU2NyaXB0RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3Jl
YXRlZEJ5UGFyc2VyKQorICAgIDogU1ZHRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkKICAgICAs
IFNWR1VSSVJlZmVyZW5jZSgpCiAgICAgLCBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkKCkK
ICAgICAsIG1fZGF0YSh0aGlzLCB0aGlzKQpAQCAtNDAsNiArNDAsMTEgQEAgU1ZHU2NyaXB0RWxl
bWVudDo6U1ZHU2NyaXB0RWxlbWVudChjb25zdAogICAgIG1fZGF0YS5zZXRDcmVhdGVkQnlQYXJz
ZXIoY3JlYXRlZEJ5UGFyc2VyKTsKIH0KIAorUGFzc1JlZlB0cjxTVkdTY3JpcHRFbGVtZW50PiBT
VkdTY3JpcHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICByZXR1cm4gbmV3
IFNWR1NjcmlwdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcik7Cit9
CisKIFNWR1NjcmlwdEVsZW1lbnQ6On5TVkdTY3JpcHRFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdTY3JpcHRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU2Ny
aXB0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNj
cmlwdEVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
U2NyaXB0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJv
b2wgY3JlYXRlZEJ5UGFyc2VyKTsKKwogICAgICAgICBTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKICAgICAgICAg
dmlydHVhbCB+U1ZHU2NyaXB0RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTZXRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMTAgKzI0LDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAK
LVNWR1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQgKmRvYykKLSAgICA6IFNWR0FuaW1hdGVFbGVtZW50KHRhZ05hbWUsIGRvYykK
K1NWR1NldEVsZW1lbnQ6OlNWR1NldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogU1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpCiB7CiB9CisKK1Bhc3NSZWZQdHI8U1ZHU2V0RWxlbWVudD4gU1ZHU2V0RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1NldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOwor
fQorCiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NldEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU2V0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNSw5ICsyNSwxMiBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKKwogICAgIC8vIFNWR0FuaW1hdGVFbGVtZW50IGltcGxlbWVudHMgc3Vw
ZXJzZXQgb2YgdGhlIGZ1bmN0aW9uYWxpdHkuCiAgICAgY2xhc3MgU1ZHU2V0RWxlbWVudCA6IHB1
YmxpYyBTVkdBbmltYXRlRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdTZXRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisKICAgICAgICAgU1ZHU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNiArMzgsMTEgQEAgU1ZHU3RvcEVsZW1lbnQ6OlNWR1N0b3BFbGVtZW50KGNvbnN0IFF1
YQogewogfQogCitQYXNzUmVmUHRyPFNWR1N0b3BFbGVtZW50PiBTVkdTdG9wRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFNWR1N0b3BFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
U1ZHU3RvcEVsZW1lbnQ6On5TVkdTdG9wRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdTdG9wRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICBjbGFzcyBTVkdTdG9wRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKICAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1N0b3BFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHU3RvcEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNW
R1N0b3BFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNwcAkocmV2aXNpb24g
NjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiwxMSArMzYsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTVkdTdHlsZUVsZW1l
bnQ6OlNWR1N0eWxlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQogICAgIDogU1ZHRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCkKLSAgICAsIFNWR0xhbmdTcGFjZSgpCiAgICAgLCBTdHlsZUVsZW1lbnQo
ZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNlcikKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdTdHlsZUVs
ZW1lbnQ+IFNWR1N0eWxlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCit7CisgICAgcmV0
dXJuIG5ldyBTVkdTdHlsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQsIGNyZWF0ZWRCeVBhcnNl
cik7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgU1ZHU3R5bGVFbGVtZW50Ojp0eXBlKCkgY29u
c3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgZGVmYXVs
dFZhbHVlLCAoInRleHQvY3NzIikpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDggQEAgY2xhc3MgU1ZHU3R5bGVFbGVtZW50IDogcHVibGljIFNWR0VsZW1l
bgogICAgICAgICAgICAgICAgICAgICAgICwgcHVibGljIFNWR0xhbmdTcGFjZQogICAgICAgICAg
ICAgICAgICAgICAgICwgcHVibGljIFN0eWxlRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8U1ZHU3R5bGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOworCiAgICAgU1ZHU3R5bGVFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMSBA
QCBTVkdTd2l0Y2hFbGVtZW50OjpTVkdTd2l0Y2hFbGVtZW50KGNvbnN0CiB7CiB9CiAKK1Bhc3NS
ZWZQdHI8U1ZHU3dpdGNoRWxlbWVudD4gU1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IFNWR1N3aXRjaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdTd2l0Y2hF
bGVtZW50Ojp+U1ZHU3dpdGNoRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdT
d2l0Y2hFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVu
dC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1N3aXRjaEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkIHsK
ICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1N3aXRjaEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdT
d2l0Y2hFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2
aXJ0dWFsIH5TVkdTd2l0Y2hFbGVtZW50KCk7CiAgICAgICAgIApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHU3ltYm9sRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3ltYm9s
RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDExIEBAIFNWR1N5bWJvbEVsZW1l
bnQ6OlNWR1N5bWJvbEVsZW1lbnQoY29uc3QKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdTeW1ib2xF
bGVtZW50PiBTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHU3ltYm9sRWxl
bWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1N5bWJvbEVsZW1lbnQ6On5TVkdTeW1i
b2xFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNCw2ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3ggewogICAgIHB1YmxpYzoK
KyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3ltYm9sRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR1N5bWJvbEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1N5
bWJvbEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDExIEBAIFNWR1RSZWZFbGVtZW50OjpTVkdUUmVmRWxlbWVudChjb25zdCBRdWEK
IHsKIH0KIAorUGFzc1JlZlB0cjxTVkdUUmVmRWxlbWVudD4gU1ZHVFJlZkVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBTVkdUUmVmRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNW
R1RSZWZFbGVtZW50Ojp+U1ZHVFJlZkVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHVFJlZkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVu
dC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIFNWR1RSZWZFbGVtZW50IDogcHVibGljIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHVVJJUmVmZXJlbmNlIHsKICAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RSZWZFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHVFJlZkVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNW
R1RSZWZFbGVtZW50KCk7CiAKQEAgLTM4LDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWRO
YW1lJik7CiAKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJl
bmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKLSAgICAgICAgYm9vbCBjaGlsZFNob3VsZENyZWF0
ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBib29sIGNoaWxkU2hvdWxk
Q3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCB1cGRhdGVSZWZlcmVuY2VkVGV4dCgpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDggKzM0LDkgQEAgU1ZHVFNwYW5FbGVtZW50OjpTVkdUU3BhbkVsZW1l
bnQoY29uc3QgUQogewogfQogCi1TVkdUU3BhbkVsZW1lbnQ6On5TVkdUU3BhbkVsZW1lbnQoKQor
UGFzc1JlZlB0cjxTVkdUU3BhbkVsZW1lbnQ+IFNWR1RTcGFuRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKKyAgICByZXR1
cm4gbmV3IFNWR1RTcGFuRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7CiB9CiAKIGJvb2wgU1ZH
VFNwYW5FbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqIGNoaWxkKSBjb25z
dApJbmRleDogV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHVFNwYW5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsyOCwxMyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdUU3BhbkVsZW1lbnQgOiBwdWJsaWMg
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdUU3BhbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKworICAgIHByaXZhdGU6CiAgICAgICAgIFNWR1RTcGFuRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLSAgICAgICAgdmlydHVhbCB+U1ZHVFNwYW5F
bGVtZW50KCk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7Ci0gICAgICAgIGJv
b2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CisgICAgICAgIHZpcnR1
YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgICAgICBMRU5HVEhBREpVU1RfU1BBQ0lOR0FOREdMWVBIUyAgID0gMgogICAgICAg
ICB9OwogCi0gICAgICAgIFNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHVGV4dENvbnRlbnRFbGVtZW50KCk7
CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJu
IFNWR1Rlc3RzOjppc1ZhbGlkKCk7IH0KQEAgLTY0LDYgKzYzLDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCiAgICAgcHJvdGVjdGVkOgorICAgICAgICBTVkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgdmlydHVhbCBib29sIHNlbGZI
YXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIAogICAgIHByaXZhdGU6CkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVGV4
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RleHRFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsMTEgQEAgU1ZHVGV4dEVsZW1lbnQ6
OlNWR1RleHRFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR1RleHRFbGVt
ZW50PiBTVkdUZXh0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1RleHRFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHVGV4dEVsZW1lbnQ6On5TVkdUZXh0RWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTAgKzMwLDkgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFNWR1RleHRFbGVtZW50IDogcHVibGljIFNW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJs
aWMgU1ZHVHJhbnNmb3JtYWJsZSB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdUZXh0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKLSAgICAgICAgdmlydHVhbCB+U1ZH
VGV4dEVsZW1lbnQoKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVGV4dEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgICAgICB2aXJ0
dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CisgICAgICAgIHZpcnR1
YWwgflNWR1RleHRFbGVtZW50KCk7CiAKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50KiBuZWFy
ZXN0Vmlld3BvcnRFbGVtZW50KCkgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgU1ZHRWxlbWVudCog
ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKQEAgLTQyLDYgKzQxLDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0Q1RNKFN0
eWxlVXBkYXRlU3RyYXRlZ3kgPSBBbGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKICAgICAgICAgdmly
dHVhbCBBZmZpbmVUcmFuc2Zvcm0gZ2V0U2NyZWVuQ1RNKFN0eWxlVXBkYXRlU3RyYXRlZ3kgPSBB
bGxvd1N0eWxlVXBkYXRlKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0g
YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpIGNvbnN0OworCisgICAgcHJpdmF0ZToKKyAgICAgICAg
U1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgICAg
IHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKwogICAgICAg
ICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSogc3VwcGxlbWVudGFsVHJhbnNmb3JtKCk7CiAgICAg
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtIGxvY2FsQ29vcmRpbmF0ZVNwYWNlVHJhbnNmb3Jt
KFNWR0xvY2F0YWJsZTo6Q1RNU2NvcGUgbW9kZSkgY29uc3QgeyByZXR1cm4gU1ZHVHJhbnNmb3Jt
YWJsZTo6bG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zvcm0obW9kZSk7IH0KIApAQCAtNTEsMTEg
KzU1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKLSAgICBwcml2
YXRlOgogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1RleHRFbGVtZW50LCBT
VkdOYW1lczo6dHJhbnNmb3JtQXR0ciwgU1ZHVHJhbnNmb3JtTGlzdCosIFRyYW5zZm9ybSwgdHJh
bnNmb3JtKQogICAgICAgIAotICAgICAgIC8vIFVzZWQgYnkgPGFuaW1hdGVNb3Rpb24+Ci0gICAg
ICAgT3duUHRyPEFmZmluZVRyYW5zZm9ybT4gbV9zdXBwbGVtZW50YWxUcmFuc2Zvcm07CisgICAg
ICAgIC8vIFVzZWQgYnkgPGFuaW1hdGVNb3Rpb24+CisgICAgICAgIE93blB0cjxBZmZpbmVUcmFu
c2Zvcm0+IG1fc3VwcGxlbWVudGFsVHJhbnNmb3JtOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00Myw2ICs0MywxMSBAQCBTVkdUZXh0UGF0aEVsZW1lbnQ6OlNWR1RleHRQYXRoRWxlbWVu
dChjCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHVGV4dFBhdGhFbGVtZW50PiBTVkdUZXh0UGF0aEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdUZXh0UGF0aEVsZW1lbnQodGFnTmFtZSwgZG9j
dW1lbnQpOworfQorCiBTVkdUZXh0UGF0aEVsZW1lbnQ6On5TVkdUZXh0UGF0aEVsZW1lbnQoKQog
ewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDkg
KzUxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFRFWFRQQVRIX1NQQUNJ
TkdUWVBFX0VYQUNUID0gU1ZHX1RFWFRQQVRIX1NQQUNJTkdUWVBFX0VYQUNUCiAgICAgICAgIH07
CiAKLSAgICAgICAgU1ZHVGV4dFBhdGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdUZXh0UGF0aEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICB2aXJ0dWFs
IH5TVkdUZXh0UGF0aEVsZW1lbnQoKTsKICAKKyAgICBwcml2YXRlOgorICAgICAgICBTVkdUZXh0
UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAg
dmlydHVhbCB2b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAKICAgICAgICAgdmlydHVhbCB2
b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpAQCAtNjEsOSArNjUsOCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3Bl
cnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmplY3Qq
IGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKIAotICAgICAgICBi
b29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OworICAgICAgICB2aXJ0
dWFsIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CiAKLSAgICBw
cml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNv
bnN0OwogCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHVGV4dFBhdGhFbGVt
ZW50LCBTVkdOYW1lczo6c3RhcnRPZmZzZXRBdHRyLCBTVkdMZW5ndGgsIFN0YXJ0T2Zmc2V0LCBz
dGFydE9mZnNldCkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNiArMzAsMTcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgY2xhc3MgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCA6IHB1YmxpYyBTVkdUZXh0
Q29udGVudEVsZW1lbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVh
bCB+U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCgpOwogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFsaWZpZWROYW1lJik7CiAKKyAgICBw
cm90ZWN0ZWQ6CisgICAgICAgIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgYm9vbCBpc0tub3duQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Q7CiAKICAgICAgICAgREVDTEFSRV9BTklN
QVRFRF9QUk9QRVJUWShTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LCBTVkdOYW1lczo6eEF0dHIs
IFNWR0xlbmd0aExpc3QqLCBYLCB4KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDExIEBAIFNWR1RpdGxlRWxlbWVudDo6U1ZHVGl0bGVFbGVtZW50
KGNvbnN0IFEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdUaXRsZUVsZW1lbnQ+IFNWR1RpdGxlRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1RpdGxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIHZvaWQgU1ZHVGl0bGVFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiB7
CiAgICAgU1ZHU3R5bGVkRWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R1RpdGxlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RpdGxl
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiwxMyBAQAogI2luY2x1ZGUgIlNW
R1N0eWxlZEVsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZH
VGl0bGVFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZSB7CiAgICAgcHVibGljOgorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxTVkdUaXRsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiwgRG9jdW1lbnQqKTsKKworICAgIHByaXZhdGU6CiAgICAgICAgIFNWR1RpdGxlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03MCw2ICs3MCwxMSBAQCBTVkdVc2VFbGVtZW50OjpTVkdVc2VFbGVtZW50KGNvbnN0
IFF1YWxpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHVXNlRWxlbWVudD4gU1ZHVXNlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IFNWR1VzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQor
CiBTVkdVc2VFbGVtZW50Ojp+U1ZHVXNlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdVc2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtNDAsMTEgKzQwLDE5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogICAg
IHB1YmxpYzoKLSAgICAgICAgU1ZHVXNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVXNlRWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIHZpcnR1YWwgflNW
R1VzZUVsZW1lbnQoKTsKIAogICAgICAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlUm9v
dCgpIGNvbnN0OwogICAgICAgICBTVkdFbGVtZW50SW5zdGFuY2UqIGFuaW1hdGVkSW5zdGFuY2VS
b290KCkgY29uc3Q7CisgICAgICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2VGb3JTaGFk
b3dUcmVlRWxlbWVudChOb2RlKikgY29uc3Q7CisgICAgICAgIHZvaWQgaW52YWxpZGF0ZVNoYWRv
d1RyZWUoKTsKKworICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyQ2xpcENoaWxkKCkgY29u
c3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29u
c3QgeyByZXR1cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogCkBAIC02MiwyMCArNzAsMTUgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAKICAg
ICAgICAgdmlydHVhbCBQYXRoIHRvQ2xpcFBhdGgoKSBjb25zdDsKLSAgICAgICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlckNsaXBDaGlsZCgpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyB2b2lkIHJl
bW92ZURpc2FsbG93ZWRFbGVtZW50c0Zyb21TdWJ0cmVlKE5vZGUqIGVsZW1lbnQpOwotICAgICAg
ICBTVkdFbGVtZW50SW5zdGFuY2UqIGluc3RhbmNlRm9yU2hhZG93VHJlZUVsZW1lbnQoTm9kZSog
ZWxlbWVudCkgY29uc3Q7Ci0gICAgICAgIHZvaWQgaW52YWxpZGF0ZVNoYWRvd1RyZWUoKTsKIAog
ICAgICAgICB2b2lkIHNldFVwZGF0ZXNCbG9ja2VkKGJvb2wgYmxvY2tlZCkgeyBtX3VwZGF0ZXNC
bG9ja2VkID0gYmxvY2tlZDsgfQogCi0gICAgcHJpdmF0ZToKICAgICAgICAgZnJpZW5kIGNsYXNz
IFJlbmRlclNWR1NoYWRvd1RyZWVSb290Q29udGFpbmVyOwogICAgICAgICBib29sIGlzUGVuZGlu
Z1Jlc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9pc1BlbmRpbmdSZXNvdXJjZTsgfQogICAgICAg
ICB2b2lkIGJ1aWxkU2hhZG93QW5kSW5zdGFuY2VUcmVlKFNWR1NoYWRvd1RyZWVSb290RWxlbWVu
dCopOwogCi0gICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBib29sIHNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdDsKIAogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNW
R1VzZUVsZW1lbnQsIFNWR05hbWVzOjp4QXR0ciwgU1ZHTGVuZ3RoLCBYLCB4KQpAQCAtODksNyAr
OTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFNWR0V4dGVybmFsUmVzb3Vy
Y2VzUmVxdWlyZWQKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdVc2VFbGVt
ZW50LCBTVkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAKLSAgICBw
cml2YXRlOgogICAgICAgICAvLyBJbnN0YW5jZSB0cmVlIGhhbmRsaW5nCiAgICAgICAgIHZvaWQg
YnVpbGRJbnN0YW5jZVRyZWUoU1ZHRWxlbWVudCogdGFyZ2V0LCBTVkdFbGVtZW50SW5zdGFuY2Uq
IHRhcmdldEluc3RhbmNlLCBib29sJiBmb3VuZEN5Y2xlKTsKICAgICAgICAgdm9pZCBoYW5kbGVE
ZWVwVXNlUmVmZXJlbmNpbmcoU1ZHVXNlRWxlbWVudCogdXNlLCBTVkdFbGVtZW50SW5zdGFuY2Uq
IHRhcmdldEluc3RhbmNlLCBib29sJiBmb3VuZEN5Y2xlKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R1ZLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVktlcm5FbGVt
ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxMyArMzMsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAKLVNWR1ZLZXJuRWxlbWVudDo6U1ZHVktl
cm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCi0g
ICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvYykKK2lubGluZSBTVkdWS2VybkVsZW1lbnQ6OlNW
R1ZLZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogewogfQogCi1TVkdW
S2VybkVsZW1lbnQ6On5TVkdWS2VybkVsZW1lbnQoKQorUGFzc1JlZlB0cjxTVkdWS2VybkVsZW1l
bnQ+IFNWR1ZLZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKIHsKKyAgICByZXR1cm4gbmV3IFNWR1ZLZXJuRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7CiB9CiAKIHZvaWQgU1ZHVktlcm5FbGVtZW50OjppbnNlcnRlZElu
dG9Eb2N1bWVudCgpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisr
KyBXZWJDb3JlL3N2Zy9TVkdWS2VybkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTUg
KzM0LDE3IEBAIGNsYXNzIFNWR0ZvbnREYXRhOwogCiBjbGFzcyBTVkdWS2VybkVsZW1lbnQgOiBw
dWJsaWMgU1ZHRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVktl
cm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKKyAg
ICB2b2lkIGJ1aWxkVmVydGljYWxLZXJuaW5nUGFpcihLZXJuaW5nUGFpclZlY3RvciYpOworCitw
cml2YXRlOgogICAgIFNWR1ZLZXJuRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKLSAgICB2aXJ0dWFsIH5TVkdWS2VybkVsZW1lbnQoKTsKIAogICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVkRnJvbURv
Y3VtZW50KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHls
ZSopIHsgcmV0dXJuIGZhbHNlOyB9Ci0KLSAgICB2b2lkIGJ1aWxkVmVydGljYWxLZXJuaW5nUGFp
cihLZXJuaW5nUGFpclZlY3RvciYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9T
VkdWaWV3RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDExIEBAIFNWR1Zp
ZXdFbGVtZW50OjpTVkdWaWV3RWxlbWVudChjb25zdCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxT
VkdWaWV3RWxlbWVudD4gU1ZHVmlld0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdWaWV3
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1ZpZXdFbGVtZW50Ojp+U1ZHVmll
d0VsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykK
KysrIFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE3
ICszNSwyMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgU1ZHRml0VG9WaWV3Qm94LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIFNWR1pvb21BbmRQYW4gewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHVmlld0VsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNWR1ZpZXdFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICAgICAgdmlydHVhbCB+U1ZHVmlld0VsZW1lbnQoKTsKIAorICAgICAgICBTVkdT
dHJpbmdMaXN0KiB2aWV3VGFyZ2V0KCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBT
VkdWaWV3RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
IAotICAgICAgICBTVkdTdHJpbmdMaXN0KiB2aWV3VGFyZ2V0KCkgY29uc3Q7Ci0KICAgICAgICAg
dmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKSB7IHJldHVybiBmYWxz
ZTsgfQogCi0gICAgcHJpdmF0ZToKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZAogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1ZpZXdFbGVtZW50LCBT
VkdOYW1lczo6ZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZEF0dHIsIGJvb2wsIEV4dGVybmFsUmVz
b3VyY2VzUmVxdWlyZWQsIGV4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQpCiAgCkluZGV4OiBXZWJD
b3JlL3N2Zy9zdmd0YWdzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL3N2Z3RhZ3MuaW4J
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvc3ZndGFncy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMiwxMDUgKzIsMTA1IEBAIG5hbWVzcGFjZT0iU1ZHIgogbmFtZXNwYWNlVVJJPSJodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKIGd1YXJkRmFjdG9yeVdpdGg9IkVOQUJMRShTVkcpIgog
Ci1hIGNyZWF0ZVdpdGhOZXcKK2EKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCi1hbHRHbHlwaCBjcmVh
dGVXaXRoTmV3CithbHRHbHlwaAogI2VuZGlmCiAjaWYgMAotYWx0R2x5cGhEZWYgY3JlYXRlV2l0
aE5ldwotYWx0R2x5cGhJdGVtIGNyZWF0ZVdpdGhOZXcKK2FsdEdseXBoRGVmCithbHRHbHlwaEl0
ZW0KICNlbmRpZgogI2lmIEVOQUJMRV9TVkdfQU5JTUFUSU9OCi1hbmltYXRlIGNyZWF0ZVdpdGhO
ZXcKLWFuaW1hdGVDb2xvciBjcmVhdGVXaXRoTmV3Ci1hbmltYXRlTW90aW9uIEpTSW50ZXJmYWNl
TmFtZT1TVkdFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1hbmltYXRlVHJhbnNmb3JtIGNyZWF0ZVdp
dGhOZXcKLXNldCBjcmVhdGVXaXRoTmV3CithbmltYXRlCithbmltYXRlQ29sb3IKK2FuaW1hdGVN
b3Rpb24gSlNJbnRlcmZhY2VOYW1lPVNWR0VsZW1lbnQKK2FuaW1hdGVUcmFuc2Zvcm0KK3NldAog
I2VuZGlmCi1jaXJjbGUgY3JlYXRlV2l0aE5ldwotY2xpcFBhdGggY3JlYXRlV2l0aE5ldworY2ly
Y2xlCitjbGlwUGF0aAogI2lmIDAKLWNvbG9yX3Byb2ZpbGUgY3JlYXRlV2l0aE5ldworY29sb3Jf
cHJvZmlsZQogI2VuZGlmCi1jdXJzb3IgY3JlYXRlV2l0aE5ldwotZGVmcyBjcmVhdGVXaXRoTmV3
Ci1kZXNjIGNyZWF0ZVdpdGhOZXcKLWVsbGlwc2UgY3JlYXRlV2l0aE5ldworY3Vyc29yCitkZWZz
CitkZXNjCitlbGxpcHNlCiAjaWYgRU5BQkxFX0ZJTFRFUlMKLWZlQmxlbmQgY3JlYXRlV2l0aE5l
dwotZmVDb2xvck1hdHJpeCBjcmVhdGVXaXRoTmV3Ci1mZUNvbXBvbmVudFRyYW5zZmVyIGNyZWF0
ZVdpdGhOZXcKLWZlQ29tcG9zaXRlIGNyZWF0ZVdpdGhOZXcKLWZlQ29udm9sdmVNYXRyaXggY3Jl
YXRlV2l0aE5ldwotZmVEaWZmdXNlTGlnaHRpbmcgY3JlYXRlV2l0aE5ldwotZmVEaXNwbGFjZW1l
bnRNYXAgY3JlYXRlV2l0aE5ldwotZmVEaXN0YW50TGlnaHQgY3JlYXRlV2l0aE5ldwotZmVGbG9v
ZCBjcmVhdGVXaXRoTmV3Ci1mZUZ1bmNBIGNyZWF0ZVdpdGhOZXcKLWZlRnVuY0IgY3JlYXRlV2l0
aE5ldwotZmVGdW5jRyBjcmVhdGVXaXRoTmV3Ci1mZUZ1bmNSIGNyZWF0ZVdpdGhOZXcKLWZlR2F1
c3NpYW5CbHVyIGNyZWF0ZVdpdGhOZXcKLWZlSW1hZ2UgY3JlYXRlV2l0aE5ldwotZmVNZXJnZSBj
cmVhdGVXaXRoTmV3Ci1mZU1lcmdlTm9kZSBjcmVhdGVXaXRoTmV3Ci1mZU1vcnBob2xvZ3kgY3Jl
YXRlV2l0aE5ldwotZmVPZmZzZXQgY3JlYXRlV2l0aE5ldwotZmVQb2ludExpZ2h0IGNyZWF0ZVdp
dGhOZXcKLWZlU3BlY3VsYXJMaWdodGluZyBjcmVhdGVXaXRoTmV3Ci1mZVNwb3RMaWdodCBjcmVh
dGVXaXRoTmV3Ci1mZVRpbGUgY3JlYXRlV2l0aE5ldwotZmVUdXJidWxlbmNlIGNyZWF0ZVdpdGhO
ZXcKLWZpbHRlciBjcmVhdGVXaXRoTmV3CitmZUJsZW5kCitmZUNvbG9yTWF0cml4CitmZUNvbXBv
bmVudFRyYW5zZmVyCitmZUNvbXBvc2l0ZQorZmVDb252b2x2ZU1hdHJpeAorZmVEaWZmdXNlTGln
aHRpbmcKK2ZlRGlzcGxhY2VtZW50TWFwCitmZURpc3RhbnRMaWdodAorZmVGbG9vZAorZmVGdW5j
QQorZmVGdW5jQgorZmVGdW5jRworZmVGdW5jUgorZmVHYXVzc2lhbkJsdXIKK2ZlSW1hZ2UKK2Zl
TWVyZ2UKK2ZlTWVyZ2VOb2RlCitmZU1vcnBob2xvZ3kKK2ZlT2Zmc2V0CitmZVBvaW50TGlnaHQK
K2ZlU3BlY3VsYXJMaWdodGluZworZmVTcG90TGlnaHQKK2ZlVGlsZQorZmVUdXJidWxlbmNlCitm
aWx0ZXIKICNlbmRpZgogI2lmIEVOQUJMRV9TVkdfRk9OVFMKLWZvbnQgY3JlYXRlV2l0aE5ldwot
Zm9udF9mYWNlIGNyZWF0ZVdpdGhOZXcKLWZvbnRfZmFjZV9mb3JtYXQgY3JlYXRlV2l0aE5ldwot
Zm9udF9mYWNlX25hbWUgY3JlYXRlV2l0aE5ldwotZm9udF9mYWNlX3NyYyBjcmVhdGVXaXRoTmV3
Ci1mb250X2ZhY2VfdXJpIGNyZWF0ZVdpdGhOZXcKK2ZvbnQKK2ZvbnRfZmFjZQorZm9udF9mYWNl
X2Zvcm1hdAorZm9udF9mYWNlX25hbWUKK2ZvbnRfZmFjZV9zcmMKK2ZvbnRfZmFjZV91cmkKICNl
bmRpZgogI2lmIEVOQUJMRV9TVkdfRk9SRUlHTl9PQkpFQ1QKLWZvcmVpZ25PYmplY3QgY3JlYXRl
V2l0aE5ldworZm9yZWlnbk9iamVjdAogI2VuZGlmCi1nIGNyZWF0ZVdpdGhOZXcKK2cKICNpZiBF
TkFCTEVfU1ZHX0ZPTlRTCi1nbHlwaCBjcmVhdGVXaXRoTmV3CitnbHlwaAogI2VuZGlmCiAjaWYg
MAotZ2x5cGhSZWYgY3JlYXRlV2l0aE5ldworZ2x5cGhSZWYKICNlbmRpZgogI2lmIEVOQUJMRV9T
VkdfRk9OVFMKLWhrZXJuIGludGVyZmFjZU5hbWU9U1ZHSEtlcm5FbGVtZW50LCBKU0ludGVyZmFj
ZU5hbWU9U1ZHRWxlbWVudCwgY3JlYXRlV2l0aE5ldworaGtlcm4gaW50ZXJmYWNlTmFtZT1TVkdI
S2VybkVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1TVkdFbGVtZW50CiAjZW5kaWYKLWltYWdlIGNy
ZWF0ZVdpdGhOZXcKLWxpbmUgY3JlYXRlV2l0aE5ldwotbGluZWFyR3JhZGllbnQgY3JlYXRlV2l0
aE5ldwotbWFya2VyIGNyZWF0ZVdpdGhOZXcKLW1hc2sgY3JlYXRlV2l0aE5ldwotbWV0YWRhdGEg
Y3JlYXRlV2l0aE5ldworaW1hZ2UKK2xpbmUKK2xpbmVhckdyYWRpZW50CittYXJrZXIKK21hc2sK
K21ldGFkYXRhCiAjaWYgRU5BQkxFX1NWR19GT05UUwotbWlzc2luZ19nbHlwaCBjcmVhdGVXaXRo
TmV3CittaXNzaW5nX2dseXBoCiAjZW5kaWYKLW1wYXRoIGludGVyZmFjZU5hbWU9U1ZHTVBhdGhF
bGVtZW50LCBKU0ludGVyZmFjZU5hbWU9U1ZHRWxlbWVudCwgY3JlYXRlV2l0aE5ldwotcGF0aCBj
cmVhdGVXaXRoTmV3Ci1wYXR0ZXJuIGNyZWF0ZVdpdGhOZXcKLXBvbHlnb24gY3JlYXRlV2l0aE5l
dwotcG9seWxpbmUgY3JlYXRlV2l0aE5ldwotcmFkaWFsR3JhZGllbnQgY3JlYXRlV2l0aE5ldwot
cmVjdCBjcmVhdGVXaXRoTmV3Ci1zY3JpcHQgY29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNl
ciwgY3JlYXRlV2l0aE5ldwotc3RvcCBjcmVhdGVXaXRoTmV3Ci1zdHlsZSBjb25zdHJ1Y3Rvck5l
ZWRzQ3JlYXRlZEJ5UGFyc2VyLCBjcmVhdGVXaXRoTmV3Ci1zdmcgaW50ZXJmYWNlTmFtZT1TVkdT
VkdFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1zd2l0Y2ggY3JlYXRlV2l0aE5ldwotc3ltYm9sIGNy
ZWF0ZVdpdGhOZXcKLXRleHQgY3JlYXRlV2l0aE5ldwotdGV4dFBhdGggY3JlYXRlV2l0aE5ldwot
dGl0bGUgY3JlYXRlV2l0aE5ldwotdHJlZiBpbnRlcmZhY2VOYW1lPVNWR1RSZWZFbGVtZW50LCBj
cmVhdGVXaXRoTmV3Ci10c3BhbiBpbnRlcmZhY2VOYW1lPVNWR1RTcGFuRWxlbWVudCwgY3JlYXRl
V2l0aE5ldwotdXNlIGNyZWF0ZVdpdGhOZXcKLXZpZXcgY3JlYXRlV2l0aE5ldwotdmtlcm4gaW50
ZXJmYWNlTmFtZT1TVkdWS2VybkVsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKK21wYXRoIGludGVyZmFj
ZU5hbWU9U1ZHTVBhdGhFbGVtZW50LCBKU0ludGVyZmFjZU5hbWU9U1ZHRWxlbWVudAorcGF0aAor
cGF0dGVybgorcG9seWdvbgorcG9seWxpbmUKK3JhZGlhbEdyYWRpZW50CityZWN0CitzY3JpcHQg
Y29uc3RydWN0b3JOZWVkc0NyZWF0ZWRCeVBhcnNlcgorc3RvcAorc3R5bGUgY29uc3RydWN0b3JO
ZWVkc0NyZWF0ZWRCeVBhcnNlcgorc3ZnIGludGVyZmFjZU5hbWU9U1ZHU1ZHRWxlbWVudAorc3dp
dGNoCitzeW1ib2wKK3RleHQKK3RleHRQYXRoCit0aXRsZQordHJlZiBpbnRlcmZhY2VOYW1lPVNW
R1RSZWZFbGVtZW50Cit0c3BhbiBpbnRlcmZhY2VOYW1lPVNWR1RTcGFuRWxlbWVudAordXNlCit2
aWV3Cit2a2VybiBpbnRlcmZhY2VOYW1lPVNWR1ZLZXJuRWxlbWVudApJbmRleDogV2ViQ29yZS93
bWwvV01MQUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEFFbGVtZW50
LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxBRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDExIEBAIFdNTEFFbGVtZW50OjpXTUxBRWxlbWVudChj
b25zdCBRdWFsaWZpZWQKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxBRWxlbWVudD4gV01MQUVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxBRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIHZvaWQgV01MQUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0
cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxOYW1lczo6aHJlZkF0dHIpIHsKSW5k
ZXg6IFdlYkNvcmUvd21sL1dNTEFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwv
V01MQUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxBRWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgV01MQUVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V01MQUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiB0YWdOYW1lLCBEb2N1bWVudCopOworCiAgICAgV01MQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Zv
Y3VzKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3dtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzcsNiArMzcsMTEgQEAgV01MQWNjZXNzRWxlbWVudDo6V01MQWNjZXNzRWxlbWVudChjb25z
dAogewogfQogCitQYXNzUmVmUHRyPFdNTEFjY2Vzc0VsZW1lbnQ+IFdNTEFjY2Vzc0VsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBXTUxBY2Nlc3NFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogdm9pZCBXTUxBY2Nlc3NFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBkb21haW5BdHRyKSB7CkluZGV4
OiBXZWJDb3JlL3dtbC9XTUxBY2Nlc3NFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MQWNjZXNzRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dN
TEFjY2Vzc0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTEFjY2Vzc0VsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVu
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MQWNjZXNzRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisKICAgICBXTUxB
Y2Nlc3NFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CkluZGV4
OiBXZWJDb3JlL3dtbC9XTUxBbmNob3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dtbC9XTUxBbmNob3JFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dt
bC9XTUxBbmNob3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTEgQEAg
V01MQW5jaG9yRWxlbWVudDo6V01MQW5jaG9yRWxlbWVudChjb25zdAogICAgIHNldElzTGluaygp
OwogfQogCitQYXNzUmVmUHRyPFdNTEFuY2hvckVsZW1lbnQ+IFdNTEFuY2hvckVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBXTUxBbmNob3JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogV01MQW5jaG9yRWxlbWVudDo6fldNTEFuY2hvckVsZW1lbnQoKQogewogfQpJbmRleDogV2Vi
Q29yZS93bWwvV01MQW5jaG9yRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dN
TEFuY2hvckVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxBbmNo
b3JFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAgY2xhc3MgV01MVGFz
a0VsZW1lbnQ7CiAKIGNsYXNzIFdNTEFuY2hvckVsZW1lbnQgOiBwdWJsaWMgV01MQUVsZW1lbnQg
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTEFuY2hvckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCiAgICAgV01MQW5j
aG9yRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAg
IHZpcnR1YWwgfldNTEFuY2hvckVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MQlJF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxCUkVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEJSRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQwLDYgKzQwLDExIEBAIFdNTEJSRWxlbWVudDo6V01MQlJFbGVtZW50KGNvbnN0
IFF1YWxpZmkKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxCUkVsZW1lbnQ+IFdNTEJSRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IFdNTEJSRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisK
IGJvb2wgV01MQlJFbGVtZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAogewogICAgIGlmIChhdHRy
TmFtZSA9PSBIVE1MTmFtZXM6OmNsZWFyQXR0cikgewpJbmRleDogV2ViQ29yZS93bWwvV01MQlJF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MQlJFbGVtZW50LmgJKHJldmlz
aW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MQlJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMyLDYgKzMyLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxCUkVsZW1l
bnQgOiBwdWJsaWMgV01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V01MQlJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqKTsKKwogICAgIFdNTEJSRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3dtbC9X
TUxDYXJkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MQ2FyZEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTENhcmRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsMTEgQEAgV01MQ2FyZEVsZW1lbnQ6OldNTENh
cmRFbGVtZW50KGNvbnN0IFF1YQogICAgIEFTU0VSVChoYXNUYWdOYW1lKGNhcmRUYWcpKTsKIH0K
IAorUGFzc1JlZlB0cjxXTUxDYXJkRWxlbWVudD4gV01MQ2FyZEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBXTUxDYXJkRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdNTENhcmRF
bGVtZW50Ojp+V01MQ2FyZEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MQ2Fy
ZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxDYXJkRWxlbWVudC5oCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTENhcmRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMzLDYgKzMzLDggQEAgY2xhc3MgV01MVGltZXJFbGVtZW50OwogCiBjbGFzcyBX
TUxDYXJkRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50LCBwdWJsaWMgV01MRXZlbnRIYW5kbGlu
Z0VsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTENhcmRFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKwogICAg
IFdNTENhcmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgfldNTENhcmRFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTERvRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MRG9FbGVtZW50LmNwcAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxEb0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MSw2ICs1MSwxMSBAQCBXTUxEb0VsZW1lbnQ6OldNTERvRWxlbWVudChjb25zdCBRdWFs
aWZpCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MRG9FbGVtZW50PiBXTUxEb0VsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBXTUxEb0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiB2b2lk
IFdNTERvRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiB7CiAgICAg
aWYgKG1faXNPcHRpb25hbCkKSW5kZXg6IFdlYkNvcmUvd21sL1dNTERvRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTERvRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvd21sL1dNTERvRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4
IEBAIGNsYXNzIFdNTFRhc2tFbGVtZW50OwogCiBjbGFzcyBXTUxEb0VsZW1lbnQgOiBwdWJsaWMg
V01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MRG9FbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKwogICAg
IFdNTERvRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwog
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKSW5kZXg6IFdl
YkNvcmUvd21sL1dNTEZpZWxkU2V0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MRmllbGRTZXRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dt
bC9XTUxGaWVsZFNldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBA
QCBXTUxGaWVsZFNldEVsZW1lbnQ6OldNTEZpZWxkU2V0RWxlbWVudChjCiB7CiB9CiAKK1Bhc3NS
ZWZQdHI8V01MRmllbGRTZXRFbGVtZW50PiBXTUxGaWVsZFNldEVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBXTUxGaWVsZFNldEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBXTUxG
aWVsZFNldEVsZW1lbnQ6On5XTUxGaWVsZFNldEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29y
ZS93bWwvV01MRmllbGRTZXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01M
RmllbGRTZXRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MRmll
bGRTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXTUxGaWVsZFNldEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVu
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MRmllbGRTZXRFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxGaWVsZFNl
dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAgICB2
aXJ0dWFsIH5XTUxGaWVsZFNldEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDExIEBAIFdNTEZv
cm1Db250cm9sRWxlbWVudDo6V01MRm9ybUNvbnRyb2xFbGUKIHsKIH0KIAorUGFzc1JlZlB0cjxX
TUxGb3JtQ29udHJvbEVsZW1lbnQ+IFdNTEZvcm1Db250cm9sRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IFdNTEZvcm1Db250cm9sRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdN
TEZvcm1Db250cm9sRWxlbWVudDo6fldNTEZvcm1Db250cm9sRWxlbWVudCgpCiB7CiB9CkluZGV4
OiBXZWJDb3JlL3dtbC9XTUxHb0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21s
L1dNTEdvRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MR29F
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsMTEgQEAgV01MR29FbGVtZW50
OjpXTUxHb0VsZW1lbnQoY29uc3QgUXVhbGlmaQogewogfQogIAorUGFzc1JlZlB0cjxXTUxHb0Vs
ZW1lbnQ+IFdNTEdvRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTEdvRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCk7Cit9CisKIHZvaWQgV01MR29FbGVtZW50OjpyZWdpc3RlclBvc3RmaWVs
ZEVsZW1lbnQoV01MUG9zdGZpZWxkRWxlbWVudCogcG9zdGZpZWxkKQogewogICAgIEFTU0VSVCht
X3Bvc3RmaWVsZEVsZW1lbnRzLmZpbmQocG9zdGZpZWxkKSA9PSBXVEY6Om5vdEZvdW5kKTsKSW5k
ZXg6IFdlYkNvcmUvd21sL1dNTEdvRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21s
L1dNTEdvRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEdvRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIGNsYXNzIFdNTFBvc3RmaWVs
ZEVsZW1lbnQ7CiAKIGNsYXNzIFdNTEdvRWxlbWVudCA6IHB1YmxpYyBXTUxUYXNrRWxlbWVudCB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MR29FbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxHb0VsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJQ
b3N0ZmllbGRFbGVtZW50KFdNTFBvc3RmaWVsZEVsZW1lbnQqKTsKSW5kZXg6IFdlYkNvcmUvd21s
L1dNTEltYWdlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW1hZ2VF
bGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQCBXTUxJbWFnZUVsZW1lbnQ6
OldNTEltYWdlRWxlbWVudChjb25zdCBRCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MSW1hZ2VFbGVt
ZW50PiBXTUxJbWFnZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxJbWFnZUVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBXTUxJbWFnZUVsZW1lbnQ6On5XTUxJbWFnZUVsZW1l
bnQoKQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS93bWwvV01MSW1hZ2VFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxJbWFnZUVsZW1lbnQgOiBwdWJs
aWMgV01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MSW1hZ2VF
bGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBX
TUxJbWFnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5XTUxJbWFnZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01M
SW5wdXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIFdNTElucHV0RWxlbWVudDo6V01M
SW5wdXRFbGVtZW50KGNvbnN0IFEKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxJbnB1dEVsZW1lbnQ+
IFdNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTElucHV0RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCk7Cit9CisKIFdNTElucHV0RWxlbWVudDo6fldNTElucHV0RWxlbWVudCgp
CiB7CiAgICAgaWYgKG1faXNQYXNzd29yZEZpZWxkKQpJbmRleDogV2ViQ29yZS93bWwvV01MSW5w
dXRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAgY2xhc3MgRm9ybURhdGFMaXN0OwogCiBjbGFzcyBX
TUxJbnB1dEVsZW1lbnQgOiBwdWJsaWMgV01MRm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgSW5w
dXRFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxJbnB1dEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTElu
cHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAg
IHZpcnR1YWwgfldNTElucHV0RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxJbnNl
cnRlZExlZ2VuZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEluc2Vy
dGVkTGVnZW5kRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01M
SW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEg
QEAgV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50OjpXTUxJbnNlcnRlZExlZwogewogfQogCitQYXNz
UmVmUHRyPFdNTEluc2VydGVkTGVnZW5kRWxlbWVudD4gV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIHJldHVybiBuZXcgV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50KHRhZ05hbWUsIGRv
Y3VtZW50KTsKK30KKwogV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50Ojp+V01MSW5zZXJ0ZWRMZWdl
bmRFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvd21sL1dNTEluc2VydGVkTGVnZW5kRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEluc2VydGVkTGVnZW5kRWxlbWVu
dC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEluc2VydGVkTGVnZW5kRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgV01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQg
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTEluc2VydGVkTGVnZW5kRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MSW5z
ZXJ0ZWRMZWdlbmRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50
Kik7CiAgICAgdmlydHVhbCB+V01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50KCk7CiB9OwpJbmRleDog
V2ViQ29yZS93bWwvV01MSW50cmluc2ljRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
d21sL1dNTEludHJpbnNpY0V2ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dt
bC9XTUxJbnRyaW5zaWNFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBA
IFdNTEludHJpbnNpY0V2ZW50OjpXTUxJbnRyaW5zaWNFdmVudChEb2MKICAgICBtX3Rhc2tFbGVt
ZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpocmVmQXR0ciwgdGFyZ2V0VVJMKTsKIH0KIAor
UGFzc1JlZlB0cjxXTUxJbnRyaW5zaWNFdmVudD4gV01MSW50cmluc2ljRXZlbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
cmV0dXJuIG5ldyBXTUxJbnRyaW5zaWNFdmVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdN
TEludHJpbnNpY0V2ZW50OjpXTUxJbnRyaW5zaWNFdmVudChXTUxUYXNrRWxlbWVudCogdGFza0Vs
ZW1lbnQpCiAgICAgOiBtX3Rhc2tFbGVtZW50KHRhc2tFbGVtZW50KQogewpJbmRleDogV2ViQ29y
ZS93bWwvV01MTWV0YUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTE1l
dGFFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxNZXRhRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDExIEBAIFdNTE1ldGFFbGVtZW50
OjpXTUxNZXRhRWxlbWVudChjb25zdCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxNZXRhRWxl
bWVudD4gV01MTWV0YUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxNZXRhRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdNTE1ldGFFbGVtZW50Ojp+V01MTWV0YUVsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MTWV0YUVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3dtbC9XTUxNZXRhRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvd21sL1dNTE1ldGFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxNZXRhRWxlbWVudCA6IHB1YmxpYyBXTUxF
bGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxNZXRhRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MTWV0YUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5XTUxNZXRhRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxOb29wRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MTm9vcEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTE5vb3BFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzYsNiArMzYsMTEgQEAgV01MTm9vcEVsZW1lbnQ6OldNTE5vb3BFbGVtZW50KGNv
bnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFdNTE5vb3BFbGVtZW50PiBXTUxOb29wRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTE5vb3BFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogV01MTm9vcEVsZW1lbnQ6On5XTUxOb29wRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJD
b3JlL3dtbC9XTUxOb29wRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTE5v
b3BFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MTm9vcEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFdNTE5vb3BFbGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQgewogcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTE5vb3BFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxOb29wRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfldNTE5vb3BFbGVtZW50
KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTE9uRXZlbnRFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3dtbC9XTUxPbkV2ZW50RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS93bWwvV01MT25FdmVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MSw2ICs0MSwxMSBAQCBXTUxPbkV2ZW50RWxlbWVudDo6V01MT25FdmVudEVsZW1lbnQoY29uCiB7
CiB9CiAKK1Bhc3NSZWZQdHI8V01MT25FdmVudEVsZW1lbnQ+IFdNTE9uRXZlbnRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgV01MT25FdmVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOwor
fQorCiB2b2lkIFdNTE9uRXZlbnRFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6OnR5cGVBdHRy
KSB7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxPbkV2ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvd21sL1dNTE9uRXZlbnRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS93bWwvV01MT25FdmVudEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEs
OCBAQCBjbGFzcyBXTUxUYXNrRWxlbWVudDsKIAogY2xhc3MgV01MT25FdmVudEVsZW1lbnQgOiBw
dWJsaWMgV01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MT25F
dmVudEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwog
ICAgIFdNTE9uRXZlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRl
Kik7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxPcHRHcm91cEVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvd21sL1dNTE9wdEdyb3VwRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS93bWwvV01MT3B0R3JvdXBFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NDAsNiArNDAsMTEgQEAgV01MT3B0R3JvdXBFbGVtZW50OjpXTUxPcHRHcm91cEVsZW1lbnQoYwog
ewogfQogCitQYXNzUmVmUHRyPFdNTE9wdEdyb3VwRWxlbWVudD4gV01MT3B0R3JvdXBFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIHJldHVybiBuZXcgV01MT3B0R3JvdXBFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KTsKK30KKwogV01MT3B0R3JvdXBFbGVtZW50Ojp+V01MT3B0R3JvdXBFbGVtZW50KCkKIHsKIH0K
SW5kZXg6IFdlYkNvcmUvd21sL1dNTE9wdEdyb3VwRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvd21sL1dNTE9wdEdyb3VwRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvd21sL1dNTE9wdEdyb3VwRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV01MT3B0R3JvdXBFbGVtZW50IDogcHVi
bGljIFdNTEZvcm1Db250cm9sRWxlbWVudCwgcHVibGljIE9wdGlvbkdyb3VwRWxlbWVudCB7CiBw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MT3B0R3JvdXBFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxPcHRHcm91cEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5XTUxPcHRHcm91cEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MT3B0aW9uRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIFdNTE9wdGlvbkVsZW1lbnQ6OldNTE9wdGlv
bkVsZW1lbnQoY29uc3QKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxPcHRpb25FbGVtZW50PiBXTUxP
cHRpb25FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MT3B0aW9uRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCk7Cit9CisKIFdNTE9wdGlvbkVsZW1lbnQ6On5XTUxPcHRpb25FbGVtZW50KCkK
IHsKIH0KSW5kZXg6IFdlYkNvcmUvd21sL1dNTE9wdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3dtbC9XTUxPcHRpb25FbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV01MT3B0aW9uRWxlbWVudCA6IHB1Ymxp
YyBXTUxGb3JtQ29udHJvbEVsZW1lbnQsIHB1YmxpYyBXTUxFdmVudEhhbmRsaW5nRWxlbWVudCwg
cHVibGljIE9wdGlvbkVsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdN
TE9wdGlvbkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KwogICAgIFdNTE9wdGlvbkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqKTsKICAgICB2aXJ0dWFsIH5XTUxPcHRpb25FbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNv
cmUvd21sL1dNTFBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxQRWxl
bWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUEVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0MywxMSBAQCBXTUxQRWxlbWVudDo6V01MUEVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MUEVsZW1lbnQ+IFdNTFBF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MUEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBib29sIFdNTFBFbGVtZW50OjptYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lLCBNYXBwZWRBdHRyaWJ1dGVFbnRyeSYgcmVzdWx0KSBjb25zdAogewogICAgIGlm
IChhdHRyTmFtZSA9PSBIVE1MTmFtZXM6OmFsaWduQXR0cikgewpJbmRleDogV2ViQ29yZS93bWwv
V01MUEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxQRWxlbWVudC5oCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFBFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMxLDYgKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxQRWxl
bWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXTUxQRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
CiAgICAgV01MUEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBtYXBUb0VudHJ5KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBN
YXBwZWRBdHRyaWJ1dGVFbnRyeSYpIGNvbnN0OwpJbmRleDogV2ViQ29yZS93bWwvV01MUG9zdGZp
ZWxkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MUG9zdGZpZWxkRWxl
bWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUG9zdGZpZWxkRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIFdNTFBvc3RmaWVsZEVs
ZW1lbnQ6OldNTFBvc3RmaWVsZEVsZW1lbnQKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxQb3N0Zmll
bGRFbGVtZW50PiBXTUxQb3N0ZmllbGRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MUG9z
dGZpZWxkRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIHZvaWQgV01MUG9zdGZpZWxk
RWxlbWVudDo6aW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKQogewogICAgIFdNTEVsZW1lbnQ6Omluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxQb3N0ZmllbGRFbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MUG9zdGZpZWxkRWxlbWVudC5oCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFBvc3RmaWVsZEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdN
TFBvc3RmaWVsZEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V01MUG9zdGZpZWxkRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MUG9zdGZpZWxkRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGluc2Vy
dGVkSW50b0RvY3VtZW50KCk7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxQcmV2RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MUHJldkVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFByZXZFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsMTEgQEAgV01MUHJldkVsZW1lbnQ6OldNTFByZXZFbGVtZW50KGNvbnN0IFF1
YQogewogfQogCitQYXNzUmVmUHRyPFdNTFByZXZFbGVtZW50PiBXTUxQcmV2RWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFdNTFByZXZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
V01MUHJldkVsZW1lbnQ6On5XTUxQcmV2RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3dt
bC9XTUxQcmV2RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFByZXZFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUHJldkVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFdNTFByZXZFbGVtZW50IDogcHVibGljIFdNTFRhc2tFbGVtZW50IHsKIHB1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxQcmV2RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MUHJldkVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5XTUxQcmV2RWxlbWVudCgp
OwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxSZWZyZXNoRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS93bWwvV01MUmVmcmVzaEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvd21sL1dNTFJlZnJlc2hFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NiArMzcsMTEgQEAgV01MUmVmcmVzaEVsZW1lbnQ6OldNTFJlZnJlc2hFbGVtZW50KGNvbgogewog
fQogCitQYXNzUmVmUHRyPFdNTFJlZnJlc2hFbGVtZW50PiBXTUxSZWZyZXNoRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFdNTFJlZnJlc2hFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogV01MUmVmcmVzaEVsZW1lbnQ6On5XTUxSZWZyZXNoRWxlbWVudCgpCiB7CiB9CkluZGV4OiBX
ZWJDb3JlL3dtbC9XTUxSZWZyZXNoRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21s
L1dNTFJlZnJlc2hFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01M
UmVmcmVzaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTFJlZnJlc2hFbGVtZW50IDogcHVibGljIFdNTFRhc2tF
bGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxSZWZyZXNoRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MUmVm
cmVzaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5XTUxSZWZyZXNoRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxT
ZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxTZWxlY3RFbGVt
ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxTZWxlY3RFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsMTEgQEAgV01MU2VsZWN0RWxlbWVudDo6
V01MU2VsZWN0RWxlbWVudChjb25zdAogewogfQogCitQYXNzUmVmUHRyPFdNTFNlbGVjdEVsZW1l
bnQ+IFdNTFNlbGVjdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxTZWxlY3RFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogV01MU2VsZWN0RWxlbWVudDo6fldNTFNlbGVjdEVs
ZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MU2VsZWN0RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3dtbC9XTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxTZWxlY3RFbGVtZW50
IDogcHVibGljIFdNTEZvcm1Db250cm9sRWxlbWVudCwgcHVibGljIFNlbGVjdEVsZW1lbnQgewog
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTFNlbGVjdEVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+V01MU2VsZWN0
RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxTZXR2YXJFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxTZXR2YXJFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3dtbC9XTUxTZXR2YXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzYsNiArMzYsMTEgQEAgV01MU2V0dmFyRWxlbWVudDo6V01MU2V0dmFyRWxlbWVudChjb25z
dAogewogfQogCitQYXNzUmVmUHRyPFdNTFNldHZhckVsZW1lbnQ+IFdNTFNldHZhckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBXTUxTZXR2YXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogV01MU2V0dmFyRWxlbWVudDo6fldNTFNldHZhckVsZW1lbnQoKQogewogfQpJbmRleDog
V2ViQ29yZS93bWwvV01MU2V0dmFyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21s
L1dNTFNldHZhckVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxT
ZXR2YXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBXTUxTZXR2YXJFbGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQg
ewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFNldHZhckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTFNldHZhckVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFs
IH5XTUxTZXR2YXJFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFRhYmxlRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MVGFibGVFbGVtZW50LmNwcAkocmV2
aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxUYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBXTUxUYWJsZUVsZW1lbnQ6OldNTFRhYmxlRWxlbWVu
dChjb25zdCBRCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MVGFibGVFbGVtZW50PiBXTUxUYWJsZUVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxUYWJsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpOworfQorCiBXTUxUYWJsZUVsZW1lbnQ6On5XTUxUYWJsZUVsZW1lbnQoKQogewogfQpJbmRl
eDogV2ViQ29yZS93bWwvV01MVGFibGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MVGFibGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01M
VGFibGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDggQEAgY2xhc3MgSFRN
TENvbGxlY3Rpb247CiAKIGNsYXNzIFdNTFRhYmxlRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxUYWJsZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTFRhYmxlRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwg
fldNTFRhYmxlRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxUYWdOYW1lcy5pbgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxUYWdOYW1lcy5pbgkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3dtbC9XTUxUYWdOYW1lcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMiwzNCAr
MiwzNCBAQCBuYW1lc3BhY2U9IldNTCIKIG5hbWVzcGFjZVVSST0iaHR0cDovL3d3dy53YXBmb3J1
bS5vcmcvRFREL3dtbF8xLjEueG1sIgogZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFdNTCkiCiAK
LWEgY3JlYXRlV2l0aE5ldwotYWNjZXNzIGNyZWF0ZVdpdGhOZXcKLWFuY2hvciBjcmVhdGVXaXRo
TmV3Ci1iciBpbnRlcmZhY2VOYW1lPVdNTEJSRWxlbWVudCwgY3JlYXRlV2l0aE5ldwotY2FyZCBj
cmVhdGVXaXRoTmV3Ci1kbyBjcmVhdGVXaXRoTmV3Ci1maWVsZHNldCBpbnRlcmZhY2VOYW1lPVdN
TEZpZWxkU2V0RWxlbWVudCwgY3JlYXRlV2l0aE5ldwotZ28gY3JlYXRlV2l0aE5ldworYQorYWNj
ZXNzCithbmNob3IKK2JyIGludGVyZmFjZU5hbWU9V01MQlJFbGVtZW50CitjYXJkCitkbworZmll
bGRzZXQgaW50ZXJmYWNlTmFtZT1XTUxGaWVsZFNldEVsZW1lbnQKK2dvCiBoZWFkIGludGVyZmFj
ZU5hbWU9V01MRWxlbWVudAotaW1nIGludGVyZmFjZU5hbWU9V01MSW1hZ2VFbGVtZW50LCBjcmVh
dGVXaXRoTmV3Ci1pbnB1dCBjcmVhdGVXaXRoTmV3CitpbWcgaW50ZXJmYWNlTmFtZT1XTUxJbWFn
ZUVsZW1lbnQKK2lucHV0CiAjaWYgMAogIyBOb3RlOiAnaW5zZXJ0ZWRMZWdlbmQnIGlzIG5vdCBh
biBvZmZpY2lhbCBXTUwgZWxlbWVudCAtIGludGVybmFsIHB1cnBvc2Ugb25seSEKICNlbmRpZgot
aW5zZXJ0ZWRMZWdlbmQgaW50ZXJmYWNlTmFtZT1XTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQsIGNy
ZWF0ZVdpdGhOZXcKLW1ldGEgY3JlYXRlV2l0aE5ldwotbm9vcCBjcmVhdGVXaXRoTmV3Ci1vbmV2
ZW50IGludGVyZmFjZU5hbWU9V01MT25FdmVudEVsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKLW9wdGdy
b3VwIGludGVyZmFjZU5hbWU9V01MT3B0R3JvdXBFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1vcHRp
b24gY3JlYXRlV2l0aE5ldwotcCBjcmVhdGVXaXRoTmV3Ci1wb3N0ZmllbGQgY3JlYXRlV2l0aE5l
dwotcHJldiBjcmVhdGVXaXRoTmV3Ci1yZWZyZXNoIGNyZWF0ZVdpdGhOZXcKLXNlbGVjdCBjcmVh
dGVXaXRoTmV3Ci1zZXR2YXIgY3JlYXRlV2l0aE5ldwotdGFibGUgY3JlYXRlV2l0aE5ldworaW5z
ZXJ0ZWRMZWdlbmQgaW50ZXJmYWNlTmFtZT1XTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQKK21ldGEK
K25vb3AKK29uZXZlbnQgaW50ZXJmYWNlTmFtZT1XTUxPbkV2ZW50RWxlbWVudAorb3B0Z3JvdXAg
aW50ZXJmYWNlTmFtZT1XTUxPcHRHcm91cEVsZW1lbnQKK29wdGlvbgorcAorcG9zdGZpZWxkCitw
cmV2CityZWZyZXNoCitzZWxlY3QKK3NldHZhcgordGFibGUKIHRkIGludGVyZmFjZU5hbWU9V01M
RWxlbWVudAotdGVtcGxhdGUgY3JlYXRlV2l0aE5ldwotdGltZXIgY3JlYXRlV2l0aE5ldwordGVt
cGxhdGUKK3RpbWVyCiB0ciBpbnRlcmZhY2VOYW1lPVdNTEVsZW1lbnQKSW5kZXg6IFdlYkNvcmUv
d21sL1dNTFRhc2tFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxUYXNr
RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MVGFza0VsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMSBAQCBXTUxUYXNrRWxlbWVudDo6
V01MVGFza0VsZW1lbnQoY29uc3QgUXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MVGFza0VsZW1l
bnQ+IFdNTFRhc2tFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MVGFza0VsZW1lbnQodGFn
TmFtZSwgZG9jdW1lbnQpOworfQorCiBXTUxUYXNrRWxlbWVudDo6fldNTFRhc2tFbGVtZW50KCkK
IHsKIH0KSW5kZXg6IFdlYkNvcmUvd21sL1dNTFRhc2tFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS93bWwvV01MVGFza0VsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3Jl
L3dtbC9XTUxUYXNrRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIGNs
YXNzIFdNTFNldHZhckVsZW1lbnQ7CiAKIGNsYXNzIFdNTFRhc2tFbGVtZW50IDogcHVibGljIFdN
TEVsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFRhc2tFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKwogICAg
IFdNTFRhc2tFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7
CiAgICAgdmlydHVhbCB+V01MVGFza0VsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01M
VGVtcGxhdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxUZW1wbGF0
ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFRlbXBsYXRl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIFdNTFRlbXBsYXRl
RWxlbWVudDo6fldNTFRlbXBsYXRlRWxlbWVudCgKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxUZW1w
bGF0ZUVsZW1lbnQ+IFdNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTFRl
bXBsYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIHZvaWQgV01MVGVtcGxhdGVF
bGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgV01M
SW50cmluc2ljRXZlbnRUeXBlIGV2ZW50VHlwZSA9IFdNTEludHJpbnNpY0V2ZW50VW5rbm93bjsK
SW5kZXg6IFdlYkNvcmUvd21sL1dNTFRlbXBsYXRlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvd21sL1dNTFRlbXBsYXRlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvd21sL1dNTFRlbXBsYXRlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV01MVGVtcGxhdGVFbGVtZW50IDogcHVi
bGljIFdNTEVsZW1lbnQsIHB1YmxpYyBXTUxFdmVudEhhbmRsaW5nRWxlbWVudCB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MVGVtcGxhdGVFbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxUZW1wbGF0ZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+V01MVGVtcGxhdGVF
bGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFRpbWVyRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS93bWwvV01MVGltZXJFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3dtbC9XTUxUaW1lckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw2ICs0MiwxMSBAQCBXTUxUaW1lckVsZW1lbnQ6OldNTFRpbWVyRWxlbWVudChjb25zdCBRCiB7
CiB9CiAKK1Bhc3NSZWZQdHI8V01MVGltZXJFbGVtZW50PiBXTUxUaW1lckVsZW1lbnQ6OmNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7Cisg
ICAgcmV0dXJuIG5ldyBXTUxUaW1lckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiB2
b2lkIFdNTFRpbWVyRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRy
KQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjpuYW1lQXR0cikKSW5kZXg6
IFdlYkNvcmUvd21sL1dNTFRpbWVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21s
L1dNTFRpbWVyRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFRp
bWVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBAIGNsYXNzIFdNTENh
cmRFbGVtZW50OwogCiBjbGFzcyBXTUxUaW1lckVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MVGltZXJFbGVtZW50PiBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxUaW1lckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65873</attachid>
            <date>2010-08-29 20:25:16 -0700</date>
            <delta_ts>2010-08-29 21:48:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44851-20100829202515.patch</filename>
            <type>text/plain</type>
            <size>142427</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NjM0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzM3IEBACisyMDEwLTA4LTI5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVh
dGUgU1ZHIGFuZCBXTUwgZWxlbWVudHMgd2l0aCBjcmVhdGUgZnVuY3Rpb25zIGluc3RlYWQgb2Yg
ZGlyZWN0IGludm9jYXRpb25zIG9mIG5ldworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDQ4NTEKKworICAgICAgICBBZGRlZCB0aGUgY3JlYXRlIGZ1bmN0
aW9ucywgbWFkZSBzb21lIGV4aXN0aW5nIGNvbnN0cnVjdG9ycyBwcm90ZWN0ZWQgYW5kIHByaXZh
dGUsCisgICAgICAgIG1hZGUgc29tZSBvdGhlciBtZW1iZXIgZnVuY3Rpb25zIHByb3RlY3RlZCBh
bmQgYW5kIHByaXZhdGUsIGFkZGVkIHNvbWUgbWlzc2luZyB2aXJ0dWFsCisgICAgICAgIGtleXdv
cmRzIGZvciBjbGFyaXR5IHRvIGZ1bmN0aW9ucyB0aGF0IGFscmVhZHkgd2VyZSBvdmVycmlkaW5n
IHZpcnR1YWwgZnVuY3Rpb25zLAorICAgICAgICBmaXhlZCBzb21lIGluY29uc2lzdGVudCBpbmRl
bnRhdGlvbiwgYW5kIHJlbW92ZWQgc29tZSB1bm5lZWRlZCBlbXB0eSBkZXN0cnVjdG9ycy4KKwor
ICAgICAgICBJbiB0aGUgZnV0dXJlLCBpdCB3aWxsIGJlIGdvb2QgdG8gaGF2ZSB0aGUgY29uc3Ry
dWN0b3JzIGFsbCBiZSBwcml2YXRlIHNvIHdlIGRvbid0CisgICAgICAgIHVzZSB0aGVtIGJ5IGFj
Y2lkZW50LiBUaGVuIHdlJ2xsIGNoYW5nZSB0aGUgcmVmZXJlbmNlIGNvdW50IHJ1bGUgZ2xvYmFs
bHkgYW5kIGFkZAorICAgICAgICBhbGwgdGhlIG5lY2Vzc2FyeSBjYWxscyB0byBhZG9wdFJlZi4K
KworICAgICAgICBUaGUgU1ZHIGNoYW5nZXMgYXJlIGNvbXBpbGVkIGFuZCB0ZXN0ZWQuIFRoZSBX
TUwgY2hhbmdlcyBhcmUgc3BlY3VsYXRpdmUgYW5kIHVudGVzdGVkLgorCisgICAgICAgICogZG9t
L21ha2VfbmFtZXMucGw6IFJlbW92ZWQgc3VwcG9ydGZvciB0aGUgY3JlYXRlV2l0aE5ldyBrZXl3
b3JkLgorICAgICAgICAqIHN2Zy9zdmd0YWdzLmluOiBSZW1vdmVkIGFsbCB0aGUgY3JlYXRlV2l0
aE5ldyBrZXl3b3Jkcy4KKyAgICAgICAgKiB3bWwvV01MVGFnTmFtZXMuaW46IERpdHRvLgorCisg
ICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBzdmcvU1ZHQWx0R2x5cGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fs
dEdseXBoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0FsdEdseXBo
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVDb2xvckVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgor
ICAgICAgICAqIHN2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHQ2lyY2xlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
c3ZnL1NWR0NpcmNsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHQ2xpcFBhdGhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0NsaXBQYXRoRWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdDdXJzb3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0N1cnNvckVsZW1lbnQ6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdDdXJzb3JFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0RlZnNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0RlZnNF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRGVmc0VsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRGVzY0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
RGVzY0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdEZXNjRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdFbGxpcHNlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R0VsbGlwc2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVs
ZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6Y3JlYXRl
KTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2
Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1h
dHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVs
ZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpjcmVhdGUp
OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUZsb29kRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogc3ZnL1NWR0ZFRmxvb2RFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVu
Y0FFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRnVuY0FFbGVtZW50OjpjcmVh
dGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVGdW5j
QkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNCRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGRUZ1bmNHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NW
R0ZFRnVuY0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFRnVuY1JFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
c3ZnL1NWR0ZFSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VFbGVtZW50OjpjcmVhdGUpOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTWVyZ2VOb2Rl
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZF
T2Zmc2V0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6
OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRU9mZnNldEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBzdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRVBvaW50TGlnaHRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVk
LgorICAgICAgICAqIHN2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHRkVUaWxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVRpbGVFbGVtZW50
OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRkVUaWxlRWxlbWVudC5oOgorICAg
ICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9T
VkdGRVR1cmJ1bGVuY2VFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9u
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEVsZW1lbnQ6OmNyZWF0ZSk6
IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGb250RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdGb250RmFjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VFbGVtZW50Lmg6
CisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZU5hbWVF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHRm9udEZhY2VOYW1lRWxl
bWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRm9udEZhY2VTcmNFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvU1ZHRm9udEZhY2VTcmNFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZvbnRG
YWNlVXJpRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RmFjZVVyaUVsZW1l
bnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdHRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR0dFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0dseXBoRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdHbHlwaEVsZW1lbnQ6OmNyZWF0ZSk6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9TVkdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZH
SEtlcm5FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0hLZXJuRWxlbWVudDo6Y3Jl
YXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR0hLZXJuRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHSW1hZ2VFbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xp
bmVFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQu
aDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xpbmVhckdyYWRpZW50RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAg
ICAgICogc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdN
UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTVBhdGhFbGVtZW50OjpjcmVh
dGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTVBhdGhFbGVtZW50Lmg6CisgICAgICAgICog
c3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxl
bWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TWFza0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9TVkdNZXRhZGF0YUVsZW1lbnQuY3BwOgorICAgICAgICAoU1ZH
TWV0YWRhdGFFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHTWV0YWRh
dGFFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OmNy
ZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdQYXRoRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJu
RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1BhdHRlcm5FbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR1BvbHlnb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1BvbHlnb25FbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZH
UG9seWdvbkVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BvbHlsaW5lRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1JlY3RFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcv
U1ZHUmVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU1ZHRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTVkdFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBz
dmcvU1ZHU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1NjcmlwdEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9TVkdTY3JpcHRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1NldEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU2V0RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQu
CisgICAgICAgICogc3ZnL1NWR1NldEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3RvcEVsZW1lbnQ6OmNyZWF0ZSk6IEFk
ZGVkLgorICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHU3R5bGVFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1N3aXRjaEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHU3dpdGNoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogc3Zn
L1NWR1N3aXRjaEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdTeW1ib2xFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBzdmcvU1ZHU3ltYm9sRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUUmVmRWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogc3ZnL1NWR1RSZWZFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RT
cGFuRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUU3BhbkVsZW1lbnQ6OmNyZWF0
ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdUU3BhbkVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4K
KyAgICAgICAgKiBzdmcvU1ZHVGV4dEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBh
dGhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRQYXRoRWxlbWVudDo6Y3Jl
YXRlKTogQWRkZWQuCisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5oOgorICAgICAg
ICAqIHN2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR1Rp
dGxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdUaXRsZUVsZW1lbnQ6OmNyZWF0
ZSk6IEFkZGVkLgorICAgICAgICAqIHN2Zy9TVkdUaXRsZUVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHVXNlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdVc2VFbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVXNlRWxlbWVudC5oOgorICAgICAgICAq
IHN2Zy9TVkdWS2VybkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVktlcm5FbGVt
ZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVktlcm5FbGVtZW50Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Zp
ZXdFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiBzdmcvU1ZHVmlld0VsZW1lbnQu
aDoKKyAgICAgICAgKiB3bWwvV01MQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01M
QUVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxBRWxlbWVudC5oOgor
ICAgICAgICAqIHdtbC9XTUxBY2Nlc3NFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldN
TEFjY2Vzc0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxBY2Nlc3NF
bGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V01MQW5jaG9yRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTEFuY2hvckVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MQlJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OldNTEJSRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICog
d21sL1dNTEJSRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxDYXJkRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXTUxDYXJkRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAg
ICogd21sL1dNTENhcmRFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTERvRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXTUxEb0VsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAg
ICAqIHdtbC9XTUxEb0VsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MRmllbGRTZXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogd21sL1dNTEZpZWxkU2V0RWxlbWVudC5oOgorICAgICAgICAqIHdtbC9X
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MRm9ybUNvbnRy
b2xFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MR29FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEdvRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAg
ICAgICogd21sL1dNTEdvRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxJbWFnZUVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MSW1hZ2VFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4K
KyAgICAgICAgKiB3bWwvV01MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTElucHV0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZSk6
IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwv
V01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTEluc2Vy
dGVkTGVnZW5kRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTEluc2Vy
dGVkTGVnZW5kRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxJbnRyaW5zaWNFdmVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnRyaW5zaWNFdmVudDo6Y3JlYXRlKTogQWRkZWQuCisg
ICAgICAgICogd21sL1dNTE1ldGFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldNTE1l
dGFFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MTWV0YUVsZW1lbnQu
aDoKKyAgICAgICAgKiB3bWwvV01MTm9vcEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V01MTm9vcEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxOb29wRWxl
bWVudC5oOgorICAgICAgICAqIHdtbC9XTUxPbkV2ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXTUxPbkV2ZW50RWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTE9uRXZlbnRFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTE9wdEdyb3VwRWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRHcm91cEVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVk
LgorICAgICAgICAqIHdtbC9XTUxPcHRHcm91cEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01M
T3B0aW9uRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxPcHRpb25FbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MT3B0aW9uRWxlbWVudC5oOgorICAgICAg
ICAqIHdtbC9XTUxQRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxQRWxlbWVudDo6
Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTFBFbGVtZW50Lmg6CisgICAgICAgICog
d21sL1dNTFBvc3RmaWVsZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MUG9zdGZp
ZWxkRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21sL1dNTFBvc3RmaWVsZEVs
ZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01MUHJldkVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V01MUHJldkVsZW1lbnQ6OmNyZWF0ZSk6IEFkZGVkLgorICAgICAgICAqIHdtbC9XTUxQ
cmV2RWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxSZWZyZXNoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXTUxSZWZyZXNoRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAg
ICogd21sL1dNTFJlZnJlc2hFbGVtZW50Lmg6CisgICAgICAgICogd21sL1dNTFNlbGVjdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKTogQWRk
ZWQuCisgICAgICAgICogd21sL1dNTFNlbGVjdEVsZW1lbnQuaDoKKyAgICAgICAgKiB3bWwvV01M
U2V0dmFyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXTUxTZXR2YXJFbGVtZW50Ojpj
cmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MU2V0dmFyRWxlbWVudC5oOgorICAgICAg
ICAqIHdtbC9XTUxUYWJsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V01MVGFibGVF
bGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MVGFibGVFbGVtZW50Lmg6
CisgICAgICAgICogd21sL1dNTFRhc2tFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldN
TFRhc2tFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAgICAgICAgKiB3bWwvV01MVGFza0VsZW1l
bnQuaDoKKyAgICAgICAgKiB3bWwvV01MVGVtcGxhdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldNTFRlbXBsYXRlRWxlbWVudDo6Y3JlYXRlKTogQWRkZWQuCisgICAgICAgICogd21s
L1dNTFRlbXBsYXRlRWxlbWVudC5oOgorICAgICAgICAqIHdtbC9XTUxUaW1lckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V01MVGltZXJFbGVtZW50OjpjcmVhdGUpOiBBZGRlZC4KKyAg
ICAgICAgKiB3bWwvV01MVGltZXJFbGVtZW50Lmg6CisKIDIwMTAtMDgtMjkgIEt3YW5nIFl1bCBT
ZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRh
bXVyYS4KSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL2RvbS9t
YWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNyArMTI4LDYgQEAgc3ViIGRlZmF1
bHRUYWdQcm9wZXJ0eUhhc2gKICAgICByZXR1cm4gKAogICAgICAgICAnY29uc3RydWN0b3JOZWVk
c0NyZWF0ZWRCeVBhcnNlcicgPT4gMCwKICAgICAgICAgJ2NvbnN0cnVjdG9yTmVlZHNGb3JtRWxl
bWVudCcgPT4gMCwKLSAgICAgICAgJ2NyZWF0ZVdpdGhOZXcnID0+IDAsCiAgICAgICAgICdpbnRl
cmZhY2VOYW1lJyA9PiBkZWZhdWx0SW50ZXJmYWNlTmFtZSgkX1swXSksCiAgICAgICAgICMgQnkg
ZGVmYXVsdCwgdGhlIEpTSW50ZXJmYWNlTmFtZSBpcyB0aGUgc2FtZSBhcyB0aGUgaW50ZXJmYWNl
TmFtZS4KICAgICAgICAgJ0pTSW50ZXJmYWNlTmFtZScgPT4gZGVmYXVsdEludGVyZmFjZU5hbWUo
JF9bMF0pLApAQCAtMzE3LDE2ICszMTYsOCBAQCBFTkQKIDsKICAgICB9CiAKLSAgICBteSAkbmV3
UHJlZml4ID0gIiI7Ci0gICAgbXkgJGNyZWF0ZVN1ZmZpeCA9ICI6OmNyZWF0ZSI7Ci0KLSAgICBp
ZiAoJGVuYWJsZWRUYWdzeyR0YWdOYW1lfXtjcmVhdGVXaXRoTmV3fSkgewotICAgICAgICAkbmV3
UHJlZml4ID0gIm5ldyAiOwotICAgICAgICAkY3JlYXRlU3VmZml4ID0gIiI7Ci0gICAgfQotCiAg
ICAgIyBDYWxsIHRoZSBjb25zdHJ1Y3RvciB3aXRoIHRoZSByaWdodCBwYXJhbWV0ZXJzLgotICAg
IHByaW50IEYgIiAgICByZXR1cm4gJG5ld1ByZWZpeCRpbnRlcmZhY2VOYW1lJHtjcmVhdGVTdWZm
aXh9KCRjb25zdHJ1Y3RvclRhZ05hbWUsIGRvY3VtZW50IjsKKyAgICBwcmludCBGICIgICAgcmV0
dXJuICR7aW50ZXJmYWNlTmFtZX06OmNyZWF0ZSgkY29uc3RydWN0b3JUYWdOYW1lLCBkb2N1bWVu
dCI7CiAgICAgcHJpbnQgRiAiLCBmb3JtRWxlbWVudCIgaWYgJGVuYWJsZWRUYWdzeyR0YWdOYW1l
fXtjb25zdHJ1Y3Rvck5lZWRzRm9ybUVsZW1lbnR9OwogICAgIHByaW50IEYgIiwgY3JlYXRlZEJ5
UGFyc2VyIiBpZiAkZW5hYmxlZFRhZ3N7JHRhZ05hbWV9e2NvbnN0cnVjdG9yTmVlZHNDcmVhdGVk
QnlQYXJzZXJ9OwogICAgIHByaW50IEYgIik7XG59XG5cbiI7CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTQsNiArNTQsMTEgQEAgU1ZHQUVsZW1lbnQ6OlNWR0FFbGVtZW50KGNvbnN0
IFF1YWxpZmllZAogewogfQogCitQYXNzUmVmUHRyPFNWR0FFbGVtZW50PiBTVkdBRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IFNWR0FFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
U1ZHQUVsZW1lbnQ6On5TVkdBRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdB
RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmgJKHJldmlz
aW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjMsNiArMjMsNyBAQAogI2RlZmluZSBTVkdBRWxlbWVudF9oCiAKICNpZiBFTkFCTEUoU1ZH
KQorCiAjaW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogI2luY2x1ZGUg
IlNWR0xhbmdTcGFjZS5oIgogI2luY2x1ZGUgIlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmgiCkBAIC0zNyw5ICszOCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAg
cHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKLSAgICAg
ICAgU1ZHQUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgdmlydHVhbCB+U1ZHQUVsZW1lbnQoKTsKIAorICAg
IHByaXZhdGU6CisgICAgICAgIFNWR0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4g
U1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQogICAgICAgICAKICAgICAgICAgdmlydHVhbCBTdHJpbmcg
dGl0bGUoKSBjb25zdDsKQEAgLTU5LDcgKzY0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25z
dDsKIAotICAgIHByaXZhdGU6CiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZH
QUVsZW1lbnQsIFNWR05hbWVzOjp0YXJnZXRBdHRyLCBTdHJpbmcsIFRhcmdldCwgdGFyZ2V0KQog
CiAgICAgICAgIC8vIFNWR1VSSVJlZmVyZW5jZQpAQCAtNzIsNCArNzYsNSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1ZH
KQorCiAjZW5kaWYgLy8gU1ZHQUVsZW1lbnRfaApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQWx0R2x5
cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0FsdEdseXBoRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDYgKzM4LDExIEBAIFNWR0FsdEdseXBoRWxlbWVu
dDo6U1ZHQWx0R2x5cGhFbGVtZW50KGMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdBbHRHbHlwaEVs
ZW1lbnQ+IFNWR0FsdEdseXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0FsdEdseXBo
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0FsdEdseXBoRWxlbWVudDo6flNW
R0FsdEdseXBoRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbHRHbHlwaEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzQsMTMgKzM0LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIFNWR0FsdEdseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2Ug
ewogICAgIHB1YmxpYzoKLSAgICAgICAgU1ZHQWx0R2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwotICAgICAgICB2aXJ0dWFsIH5TVkdBbHRHbHlwaEVsZW1lbnQo
KTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgc3luY2hyb25pemVQcm9wZXJ0eShjb25zdCBRdWFs
aWZpZWROYW1lJik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0FsdEdseXBoRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgICAgIHZp
cnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0
eWxlKik7Ci0gICAgICAgIGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29u
c3Q7CisgICAgICAgIHZpcnR1YWwgflNWR0FsdEdseXBoRWxlbWVudCgpOwogCiAgICAgICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgZ2x5cGhSZWYoKSBjb25zdDsKICAgICAgICAgdm9pZCBzZXRHbHlw
aFJlZihjb25zdCBBdG9taWNTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CkBAIC00OSw3ICs0NSwx
NCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiAgICAgICAgIFNWR0dseXBoRWxlbWVudCog
Z2x5cGhFbGVtZW50KCkgY29uc3Q7CiAKLSAgICBwcml2YXRlOiAgICAKKyAgICBwcml2YXRlOgor
ICAgICAgICBTVkdBbHRHbHlwaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVh
bGlmaWVkTmFtZSYpOworCisgICAgICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5k
ZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CisgICAgICAgIHZpcnR1YWwgYm9vbCBj
aGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKKwogICAgICAgICAvLyBTVkdV
UklSZWZlcmVuY2UKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdBbHRHbHlw
aEVsZW1lbnQsIFhMaW5rTmFtZXM6OmhyZWZBdHRyLCBTdHJpbmcsIEhyZWYsIGhyZWYpCiAgICAg
fTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw2ICszMCwxMSBAQCBTVkdBbmltYXRlQ29sb3JFbGVtZW50OjpTVkdBbmlt
YXRlQ29sb3JFCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4gU1ZH
QW5pbWF0ZUNvbG9yRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0FuaW1hdGVDb2xvckVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiB9CiAKIC8vIHZpbTp0cz00Om5vZXQKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVDb2xvckVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdBbmltYXRlQ29sb3JFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUNvbG9yRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLyBTVkdBbmltYXRlRWxlbWVu
dCBpbXBsZW1lbnRzIHN1cGVyc2V0IG9mIHRoZSBmdW5jdGlvbmFsaXR5LgogICAgIGNsYXNzIFNW
R0FuaW1hdGVDb2xvckVsZW1lbnQgOiBwdWJsaWMgU1ZHQW5pbWF0ZUVsZW1lbnQgewogICAgIHB1
YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZUNvbG9yRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0Fu
aW1hdGVDb2xvckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
fTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisr
KyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2
LDYgKzQ2LDExIEBAIFNWR0FuaW1hdGVFbGVtZW50OjpTVkdBbmltYXRlRWxlbWVudChjb24KIHsK
IH0KIAorUGFzc1JlZlB0cjxTVkdBbmltYXRlRWxlbWVudD4gU1ZHQW5pbWF0ZUVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR0FuaW1hdGVFbGVtZW50Ojp+U1ZHQW5pbWF0ZUVsZW1lbnQoKQogewogfQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdBbmltYXRlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHQW5pbWF0ZUVsZW1lbnQgOiBwdWJsaWMgU1ZH
QW5pbWF0aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdBbmltYXRlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOworCiAgICAgICAgIFNWR0FuaW1hdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlRWxlbWVudCgpOwogICAgIApJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3LDYgKzQ3LDExIEBAIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpTVkdBbmlt
YXRlTW90aW8KIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdBbmltYXRlTW90aW9uRWxlbWVudD4gU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdBbmltYXRlTW90aW9u
RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50
Ojp+U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlTW90aW9uRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgCiAgICAgY2xhc3MgU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQgOiBwdWJsaWMgU1ZHQW5pbWF0aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdBbmltYXRlTW90aW9uRWxlbWVudD4gY3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0
dWFsIH5TVkdBbmltYXRlTW90aW9uRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMs
NiArNTMsMTEgQEAgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OlNWR0FuaW1hdGVUcgogewog
fQogCitQYXNzUmVmUHRyPFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50PiBTVkdBbmltYXRlVHJh
bnNmb3JtRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6
On5TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsOCBAQCBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiAKIGNsYXNzIFNWR0FuaW1hdGVUcmFuc2Zv
cm1FbGVtZW50IDogcHVibGljIFNWR0FuaW1hdGlvbkVsZW1lbnQgewogcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50PiBjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdBbmltYXRlVHJhbnNmb3JtRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TVkdB
bmltYXRlVHJhbnNmb3JtRWxlbWVudCgpOwogICAgIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ2ly
Y2xlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIFNWR0NpcmNsZUVsZW1lbnQ6OlNW
R0NpcmNsZUVsZW1lbnQoY29uc3QKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdDaXJjbGVFbGVtZW50
PiBTVkdDaXJjbGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHQ2lyY2xlRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0NpcmNsZUVsZW1lbnQ6On5TVkdDaXJjbGVFbGVt
ZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2
ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIFNWR0xhbmdTcGFjZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVi
bGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U1ZHQ2lyY2xlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0NpcmNsZUVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0NpcmNsZUVsZW1l
bnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQzLDYgKzQzLDExIEBAIFNWR0NsaXBQYXRoRWxlbWVudDo6U1ZHQ2xpcFBhdGhFbGVtZW50
KGMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdDbGlwUGF0aEVsZW1lbnQ+IFNWR0NsaXBQYXRoRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0NsaXBQYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCk7Cit9CisKIFNWR0NsaXBQYXRoRWxlbWVudDo6flNWR0NsaXBQYXRoRWxlbWVudCgpCiB7
CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiAr
MzUsOCBAQCBjbGFzcyBTVkdDbGlwUGF0aEVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0NsaXBQYXRoRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHQ2xpcFBhdGhFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNWR0NsaXBQYXRo
RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsMTEgQEAgU1ZHQ3Vyc29yRWxlbWVudDo6U1ZHQ3Vyc29yRWxlbWVudChjb25z
dAogewogfQogCitQYXNzUmVmUHRyPFNWR0N1cnNvckVsZW1lbnQ+IFNWR0N1cnNvckVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBTVkdDdXJzb3JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHQ3Vyc29yRWxlbWVudDo6flNWR0N1cnNvckVsZW1lbnQoKQogewogICAgIEhhc2hT
ZXQ8U1ZHRWxlbWVudCo+OjppdGVyYXRvciBlbmQgPSBtX2NsaWVudHMuZW5kKCk7CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHQ3Vyc29yRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0N1
cnNvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHVVJJUmVmZXJlbmNlIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0N1cnNvckVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKKwogICAgICAgICBTVkdDdXJzb3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdDdXJzb3JFbGVtZW50KCk7CiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdEZWZzRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRGVm
c0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMSBAQCBTVkdEZWZzRWxl
bWVudDo6U1ZHRGVmc0VsZW1lbnQoY29uc3QgUXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRGVm
c0VsZW1lbnQ+IFNWR0RlZnNFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRGVmc0VsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdEZWZzRWxlbWVudDo6flNWR0RlZnNFbGVt
ZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0RlZnNFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHRGVmc0VsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdEZWZzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxp
YyBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTVkdEZWZzRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCiAgICAgICAgIFNWR0RlZnNFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdEZWZzRWxlbWVudCgpOwogCkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHRGVzY0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0Rl
c2NFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAgU1ZHRGVzY0Vs
ZW1lbnQ6OlNWR0Rlc2NFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR0Rl
c2NFbGVtZW50PiBTVkdEZXNjRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0Rlc2NFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRGVzY0VsZW1lbnQ6On5TVkdEZXNjRWxl
bWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdEZXNjRWxlbWVudC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Rlc2NFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysg
V2ViQ29yZS9zdmcvU1ZHRGVzY0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHRGVzY0VsZW1lbnQgOiBwdWJs
aWMgU1ZHU3R5bGVkRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBT
VkdMYW5nU3BhY2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
RGVzY0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwog
ICAgICAgICBTVkdEZXNjRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICAgICAgdmlydHVhbCB+U1ZHRGVzY0VsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRWxsaXBzZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdFbGxpcHNl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDExIEBAIFNWR0VsbGlwc2VF
bGVtZW50OjpTVkdFbGxpcHNlRWxlbWVudChjb24KIHsKIH0gICAgCiAKK1Bhc3NSZWZQdHI8U1ZH
RWxsaXBzZUVsZW1lbnQ+IFNWR0VsbGlwc2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZH
RWxsaXBzZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdFbGxpcHNlRWxlbWVu
dDo6flNWR0VsbGlwc2VFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0VsbGlw
c2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7
CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdFbGxpcHNlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNW
R0VsbGlwc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdFbGxpcHNlRWxlbWVudCgpOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
RUJsZW5kRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVC
bGVuZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMywxMSBAQCBTVkdGRUJs
ZW5kRWxlbWVudDo6U1ZHRkVCbGVuZEVsZW1lbnQoY29uCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZH
RkVCbGVuZEVsZW1lbnQ+IFNWR0ZFQmxlbmRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZH
RkVCbGVuZEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRUJsZW5kRWxlbWVu
dDo6flNWR0ZFQmxlbmRFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFQmxl
bmRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBTVkdGRUJsZW5kRWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0
dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQmxlbmRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdG
RUJsZW5kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5TVkdGRUJsZW5kRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUNvbG9y
TWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFQ29s
b3JNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTEgQEAgU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQ6OlNWR0ZFQ29sb3JNYXRyaQogewogfQogCitQYXNzUmVmUHRy
PFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50PiBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6On5TVkdGRUNvbG9yTWF0cml4RWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcyB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb2xvck1h
dHJpeEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwog
ICAgIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogICAgIHZpcnR1YWwgflNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50KCk7CiAKSW5kZXg6IFdl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCwxMSBAQCBTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudDo6U1ZHRkVDb21wCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ+IFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVy
biBuZXcgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOwor
fQorCiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6flNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQg
OiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCB+U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDExIEBAIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6U1ZHRkVDb21wb3NpdGVFbGUKIHsKIH0KIAor
UGFzc1JlZlB0cjxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ+IFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFQ29tcG9zaXRlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6flNWR0ZFQ29tcG9zaXRlRWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAkocmV2aXNpb24gNjYz
MzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFQ29t
cG9zaXRlRWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFQ29tcG9zaXRlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVD
b21wb3NpdGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgflNWR0ZFQ29tcG9zaXRlRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUs
NiArNDUsMTEgQEAgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OlNWR0ZFQ29udm9sdgogewog
fQogCitQYXNzUmVmUHRyPFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50PiBTVkdGRUNvbnZvbHZl
TWF0cml4RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6
On5TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiAr
MjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFQ29udm9sdmVNYXRyaXhF
bGVtZW50IDogcHVibGljIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0ZFQ29u
dm9sdmVNYXRyaXhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAg
IHZpcnR1YWwgflNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisr
KyBXZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw2ICs0MiwxMSBAQCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OlNWR0ZF
RGlmZnVzCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50PiBT
VkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRURpZmZ1
c2VMaWdodGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRURpZmZ1c2VM
aWdodGluZ0VsZW1lbnQ6On5TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQoKQogewogfQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgY2xhc3MgU1ZHQ29sb3I7CiAKIGNsYXNzIFNWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRGlmZnVz
ZUxpZ2h0aW5nRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCiAgICAgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudCgp
OwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsMTEgQEAgU1ZHRkVEaXNwbGFjZW1l
bnRNYXBFbGVtZW50OjpTVkdGRURpc3BsYQogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFRGlzcGxh
Y2VtZW50TWFwRWxlbWVudD4gU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJl
dHVybiBuZXcgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Ojp+U1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxl
bWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAKIGNsYXNzIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudCA6IHB1Ymxp
YyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudD4gY3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVEaXNwbGFjZW1lbnRNYXBF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAgICAgdmly
dHVhbCB+U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50KCk7CiAgICAgCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdGRURpc3RhbnRMaWdodEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZFRGlzdGFudExpZ2h0RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS9zdmcvU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsMTEgQEAgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50OjpTVkdGRURpc3RhbnRMaQog
ewogfQogCitQYXNzUmVmUHRyPFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudD4gU1ZHRkVEaXN0YW50
TGlnaHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50Ojp+U1ZH
RkVEaXN0YW50TGlnaHRFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRGlzdGFu
dExpZ2h0RWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRGlz
dGFudExpZ2h0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw4ICsyNCwxMSBAQAogI2lu
Y2x1ZGUgIlNWR0ZFTGlnaHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKwogICAg
IGNsYXNzIFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVu
dCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRURpc3RhbnRM
aWdodEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwog
ICAgICAgICBTVkdGRURpc3RhbnRMaWdodEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudCgpOwog
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHRkVGbG9vZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdl
YkNvcmUvc3ZnL1NWR0ZFRmxvb2RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiAr
MzQsMTEgQEAgU1ZHRkVGbG9vZEVsZW1lbnQ6OlNWR0ZFRmxvb2RFbGVtZW50KGNvbgogewogfQog
CitQYXNzUmVmUHRyPFNWR0ZFRmxvb2RFbGVtZW50PiBTVkdGRUZsb29kRWxlbWVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IFNWR0ZFRmxvb2RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
U1ZHRkVGbG9vZEVsZW1lbnQ6On5TVkdGRUZsb29kRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGRUZsb29kRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZFRmxvb2RFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVG
bG9vZEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsMTEgQEAKICNpbmNsdWRl
ICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgeworCiBjbGFzcyBTVkdGRUZsb29kRWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmlt
aXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNWR0ZFRmxvb2RFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICBTVkdGRUZsb29kRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5TVkdGRUZsb29kRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdGRUZ1bmNBRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jQUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZF
RnVuY0FFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEgQEAgU1ZHRkVG
dW5jQUVsZW1lbnQ6OlNWR0ZFRnVuY0FFbGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNW
R0ZFRnVuY0FFbGVtZW50PiBTVkdGRUZ1bmNBRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNW
R0ZFRnVuY0FFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVGdW5jQUVsZW1l
bnQ6On5TVkdGRUZ1bmNBRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUZ1
bmNBRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0FFbGVtZW50
LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQUVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsMTEgQEAKICNpbmNsdWRlICJTVkdDb21wb25lbnRU
cmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBj
bGFzcyBTVkdGRUZ1bmNBRWxlbWVudCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0
aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RUZ1bmNBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
CiAgICAgICAgIFNWR0ZFRnVuY0FFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRUZ1bmNBRWxlbWVudCgpOwogICAgIH07CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNCRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jQkVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
c3ZnL1NWR0ZFRnVuY0JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEg
QEAgU1ZHRkVGdW5jQkVsZW1lbnQ6OlNWR0ZFRnVuY0JFbGVtZW50KGNvbgogewogfQogCitQYXNz
UmVmUHRyPFNWR0ZFRnVuY0JFbGVtZW50PiBTVkdGRUZ1bmNCRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IFNWR0ZFRnVuY0JFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVG
dW5jQkVsZW1lbnQ6On5TVkdGRUZ1bmNCRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGRUZ1bmNCRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFRnVu
Y0JFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVGdW5jQkVs
ZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsMTEgQEAKICNpbmNsdWRlICJTVkdD
b21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisKICAgICBjbGFzcyBTVkdGRUZ1bmNCRWxlbWVudCA6IHB1YmxpYyBTVkdDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdGRUZ1bmNCRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCiAgICAgICAgIFNWR0ZFRnVuY0JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRUZ1bmNCRWxlbWVudCgpOwogICAg
IH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHRkVGdW5jR0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY0dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
NiArMzAsMTEgQEAgU1ZHRkVGdW5jR0VsZW1lbnQ6OlNWR0ZFRnVuY0dFbGVtZW50KGNvbgogewog
fQogCitQYXNzUmVmUHRyPFNWR0ZFRnVuY0dFbGVtZW50PiBTVkdGRUZ1bmNHRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFNWR0ZFRnVuY0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogU1ZHRkVGdW5jR0VsZW1lbnQ6On5TVkdGRUZ1bmNHRWxlbWVudCgpCiB7CiB9CkluZGV4OiBX
ZWJDb3JlL3N2Zy9TVkdGRUZ1bmNHRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR0ZFRnVuY0dFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
RkVGdW5jR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsMTEgQEAKICNpbmNs
dWRlICJTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CisKICAgICBjbGFzcyBTVkdGRUZ1bmNHRWxlbWVudCA6IHB1YmxpYyBTVkdDb21w
b25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNHRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZFRnVuY0dFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRUZ1bmNHRWxlbWVu
dCgpOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNiArMzAsMTEgQEAgU1ZHRkVGdW5jUkVsZW1lbnQ6OlNWR0ZFRnVuY1JFbGVtZW50
KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFRnVuY1JFbGVtZW50PiBTVkdGRUZ1bmNSRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFRnVuY1JFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KTsKK30KKwogU1ZHRkVGdW5jUkVsZW1lbnQ6On5TVkdGRUZ1bmNSRWxlbWVudCgpCiB7CiB9
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUZ1bmNSRWxlbWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0ZFRnVuY1JFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHRkVGdW5jUkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsOCArMjUsMTEg
QEAKICNpbmNsdWRlICJTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBTVkdGRUZ1bmNSRWxlbWVudCA6IHB1Ymxp
YyBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudCB7CiAgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRUZ1bmNSRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZFRnVuY1JFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdGRUZ1
bmNSRWxlbWVudCgpOwogICAgIH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFuQmx1
ckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVHYXVzc2lh
bkJsdXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTEgQEAgU1ZHRkVH
YXVzc2lhbkJsdXJFbGVtZW50OjpTVkdGRUdhdXNzaWFuQgogewogfQogCitQYXNzUmVmUHRyPFNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudD4gU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAg
IHJldHVybiBuZXcgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojp+U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50
KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw4IEBAIGV4dGVybiBjaGFyIFNWR1N0ZERldmlhdGlv
bllBdHRySWRlbnRpZmkKIAogY2xhc3MgU1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50IDogcHVibGlj
IFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcyB7CiBwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSwxMSBAQCBTVkdGRUltYWdlRWxlbWVudDo6U1ZHRkVJbWFn
ZUVsZW1lbnQoY29uCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVJbWFnZUVsZW1lbnQ+IFNWR0ZF
SW1hZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVJbWFnZUVsZW1lbnQodGFnTmFt
ZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRUltYWdlRWxlbWVudDo6flNWR0ZFSW1hZ2VFbGVtZW50
KCkKIHsKICAgICBpZiAobV9jYWNoZWRJbWFnZSkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIFNWR0ZFSW1hZ2VFbGVtZW50IDog
cHVibGljIFNWR0ZpbHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBD
YWNoZWRSZXNvdXJjZUNsaWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
RkVJbWFnZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KwogICAgIFNWR0ZFSW1hZ2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OwogICAgIHZpcnR1YWwgflNWR0ZFSW1hZ2VFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR0ZFTWVyZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVNZXJn
ZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiwxMSBAQCBTVkdGRU1lcmdl
RWxlbWVudDo6U1ZHRkVNZXJnZUVsZW1lbnQoY29uCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVN
ZXJnZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVN
ZXJnZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRU1lcmdlRWxlbWVudDo6
flNWR0ZFTWVyZ2VFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZUVsZW1lbnQuaAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
U1ZHRkVNZXJnZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU1lcmdlRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgU1ZHRkVN
ZXJnZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVh
bCB+U1ZHRkVNZXJnZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5v
ZGVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDExIEBAIFNWR0ZFTWVyZ2VO
b2RlRWxlbWVudDo6U1ZHRkVNZXJnZU5vZGVFbGUKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGRU1l
cmdlTm9kZUVsZW1lbnQ+IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3
IFNWR0ZFTWVyZ2VOb2RlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFTWVy
Z2VOb2RlRWxlbWVudDo6flNWR0ZFTWVyZ2VOb2RlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2
Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdGRU1lcmdlTm9kZUVsZW1lbnQg
OiBwdWJsaWMgU1ZHRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGRU1lcmdlTm9kZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR0ZFTWVyZ2VOb2RlRWxl
bWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAkocmV2
aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsMTEgQEAgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6
U1ZHRkVNb3JwaG9sb2d5RQogewogfQogCitQYXNzUmVmUHRyPFNWR0ZFTW9ycGhvbG9neUVsZW1l
bnQ+IFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGRU1vcnBo
b2xvZ3lFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudDo6flNWR0ZFTW9ycGhvbG9neUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZF
TW9ycGhvbG9neUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdG
RU1vcnBob2xvZ3lFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAgZXh0
ZXJuIGNoYXIgU1ZHUmFkaXVzWUF0dHJJZGVudGlmaWVyW107CiAKIGNsYXNzIFNWR0ZFTW9ycGhv
bG9neUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRU1vcnBob2xvZ3lFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdGRU1v
cnBob2xvZ3lFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgflNWR0ZFTW9ycGhvbG9neUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU9mZnNl
dEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDExIEBAIFNWR0ZFT2Zmc2V0
RWxlbWVudDo6U1ZHRkVPZmZzZXRFbGVtZW50KGMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdGRU9m
ZnNldEVsZW1lbnQ+IFNWR0ZFT2Zmc2V0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZF
T2Zmc2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ZFT2Zmc2V0RWxlbWVu
dDo6flNWR0ZFT2Zmc2V0RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRU9m
ZnNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1l
bnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRU9mZnNldEVsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFNWR0ZFT2Zmc2V0RWxlbWVudCA6IHB1YmxpYyBTVkdGaWx0ZXJQcmltaXRpdmVTdGFu
ZGFyZEF0dHJpYnV0ZXMgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFT2Zm
c2V0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAg
ICAgU1ZHRkVPZmZzZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwog
ICAgIHZpcnR1YWwgflNWR0ZFT2Zmc2V0RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdG
RVBvaW50TGlnaHRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9T
VkdGRVBvaW50TGlnaHRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsMTEg
QEAgU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6U1ZHRkVQb2ludExpZ2h0RQogewogfQogCitQYXNz
UmVmUHRyPFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ+IFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdGRVBvaW50TGlnaHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50
KTsKK30KKwogU1ZHRkVQb2ludExpZ2h0RWxlbWVudDo6flNWR0ZFUG9pbnRMaWdodEVsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVQb2ludExpZ2h0RWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFUG9pbnRMaWdodEVsZW1lbnQuaAkocmV2aXNpb24g
NjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGRVBvaW50TGlnaHRFbGVtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDggKzI0LDExIEBACiAjaW5jbHVkZSAiU1ZHRkVMaWdodEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZHRkVQb2ludExpZ2h0RWxlbWVu
dCA6IHB1YmxpYyBTVkdGRUxpZ2h0RWxlbWVudCB7Ci0gICAgICAgIHB1YmxpYzoKKyAgICBwdWJs
aWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ+IGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGRVBv
aW50TGlnaHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdGRVBvaW50TGlnaHRFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw2ICs0MCwxMSBAQCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpTVkdG
RVNwZWN1CiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudD4g
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50Ojp+U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudCgpCiB7CiB9
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5oCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQCBleHRlcm4gY2hhciBTVkdLZXJuZWxV
bml0TGVuZ3RoWUlkZW50aWZpCiAKIGNsYXNzIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQg
OiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBTVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgflNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQoKTsKICAgICAKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR0ZFU3BvdExpZ2h0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdGRVNwb3RMaWdodEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCwxMSBAQCBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6OlNWR0ZFU3BvdExpZ2h0RWxlCiB7CiB9CiAK
K1Bhc3NSZWZQdHI8U1ZHRkVTcG90TGlnaHRFbGVtZW50PiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBTVkdGRVNwb3RMaWdodEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpOworfQorCiBTVkdGRVNwb3RMaWdodEVsZW1lbnQ6On5TVkdGRVNwb3RMaWdodEVsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVTcG90TGlnaHRFbGVtZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI0LDggKzI0LDExIEBACiAjaW5jbHVkZSAiU1ZHRkVMaWdodEVsZW1lbnQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAgY2xhc3MgU1ZHRkVTcG90TGlnaHRFbGVtZW50IDog
cHVibGljIFNWR0ZFTGlnaHRFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNWR0ZFU3BvdExpZ2h0RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR0ZFU3BvdExpZ2h0RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHRkVTcG90TGln
aHRFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMyw2ICszMywxMSBAQCBTVkdGRVRpbGVFbGVtZW50OjpTVkdGRVRpbGVFbGVtZW50KGNv
bnN0CiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRkVUaWxlRWxlbWVudD4gU1ZHRkVUaWxlRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZFVGlsZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBTVkdGRVRpbGVFbGVtZW50Ojp+U1ZHRkVUaWxlRWxlbWVudCgpCiB7CiB9CkluZGV4
OiBXZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVUaWxlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZFVGlsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxTVkdGRVRpbGVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3Vt
ZW50Kik7CisKICAgICBTVkdGRVRpbGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwogICAgIHZpcnR1YWwgflNWR0ZFVGlsZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYg
KzM5LDExIEBAIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OlNWR0ZFVHVyYnVsZW5jZUUKIHsKIH0K
IAorUGFzc1JlZlB0cjxTVkdGRVR1cmJ1bGVuY2VFbGVtZW50PiBTVkdGRVR1cmJ1bGVuY2VFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHRkVUdXJidWxlbmNlRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCk7Cit9CisKIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6On5TVkdGRVR1cmJ1bGVuY2VF
bGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIGVudW0gU1ZHU3RpdGNoT3B0aW9ucyB7CiAK
IGNsYXNzIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzIHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdG
RVR1cmJ1bGVuY2VFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICBTVkdGRVR1cmJ1bGVuY2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgIHZpcnR1YWwgflNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQoKTsKIApJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDExIEBA
IFNWR0ZpbHRlckVsZW1lbnQ6OlNWR0ZpbHRlckVsZW1lbnQoY29uc3QKICAgICAvLyBTcGVjOiBJ
ZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEyMCUiIHdlcmUgc3BlY2lmaWVkLgogfQogCitQYXNzUmVm
UHRyPFNWR0ZpbHRlckVsZW1lbnQ+IFNWR0ZpbHRlckVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5l
dyBTVkdGaWx0ZXJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRmlsdGVyRWxl
bWVudDo6flNWR0ZpbHRlckVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAgY2xhc3MgU1ZHRmlsdGVyRWxlbWVudCA6IHB1
YmxpYyBTVkdTdHlsZQogICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3Bh
Y2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZpbHRlckVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFNWR0Zp
bHRlckVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgdmlydHVh
bCB+U1ZHRmlsdGVyRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgU1ZHRm9udEVsZW1lbnQ6OlNWR0ZvbnRFbGVtZW50KGNv
bnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR0ZvbnRFbGVtZW50PiBTVkdGb250RWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZvbnRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogU1ZHRm9udEVsZW1lbnQ6On5TVkdGb250RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdGb250RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Zv
bnRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEVsZW1l
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsOSArNTAsMTIgQEAgc3RydWN0IFNWR0tlcm5pbmdQ
YWlyIHsKIHR5cGVkZWYgVmVjdG9yPFNWR0tlcm5pbmdQYWlyPiBLZXJuaW5nUGFpclZlY3RvcjsK
IAogY2xhc3MgU1ZHTWlzc2luZ0dseXBoRWxlbWVudDsgICAgCisKIGNsYXNzIFNWR0ZvbnRFbGVt
ZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICwgcHVi
bGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNWR0ZvbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisKICAgICBTVkdGb250RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICB2aXJ0dWFsIH5TVkdGb250RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsMTEgQEAgU1ZH
Rm9udEZhY2VFbGVtZW50OjpTVkdGb250RmFjZUVsZW1lbnQoYwogICAgIG1fZm9udEZhY2VSdWxl
LT5zZXREZWNsYXJhdGlvbihtX3N0eWxlRGVjbGFyYXRpb24uZ2V0KCkpOwogfQogCitQYXNzUmVm
UHRyPFNWR0ZvbnRGYWNlRWxlbWVudD4gU1ZHRm9udEZhY2VFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVy
biBuZXcgU1ZHRm9udEZhY2VFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRm9u
dEZhY2VFbGVtZW50Ojp+U1ZHRm9udEZhY2VFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRG
YWNlRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR0ZvbnRGYWNlRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVt
ZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR0ZvbnRGYWNl
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAg
ICAgIFNWR0ZvbnRGYWNlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICAgICAgdmlydHVhbCB+U1ZHRm9udEZhY2VFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJD
b3JlL3N2Zy9TVkdGb250RmFjZUZvcm1hdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
NCw2ICszNCwxMSBAQCBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQ6OlNWR0ZvbnRGYWNlRm9yCiB7
CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHRm9udEZhY2VGb3JtYXRFbGVtZW50PiBTVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdGb250RmFjZUZvcm1hdEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiB2b2lkIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudDo6
Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2Us
IE5vZGUqIGFmdGVyQ2hhbmdlLCBpbnQgY2hpbGRDb3VudERlbHRhKQogewogICAgIFNWR0VsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2VkQnlQYXJzZXIsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJD
aGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZvcm1h
dEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUZv
cm1hdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudCA6IHB1YmxpYyBTVkdF
bGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdGb250RmFjZUZvcm1h
dEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAg
IFNWR0ZvbnRGYWNlRm9ybWF0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQq
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJz
ZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAw
LCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZU5h
bWVFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdGb250RmFj
ZU5hbWVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgU1ZHRm9u
dEZhY2VOYW1lRWxlbWVudDo6U1ZHRm9udEZhY2VOYW1lRQogewogfQogCitQYXNzUmVmUHRyPFNW
R0ZvbnRGYWNlTmFtZUVsZW1lbnQ+IFNWR0ZvbnRGYWNlTmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIG5ldyBTVkdGb250RmFjZU5hbWVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
UGFzc1JlZlB0cjxDU1NGb250RmFjZVNyY1ZhbHVlPiBTVkdGb250RmFjZU5hbWVFbGVtZW50Ojpz
cmNWYWx1ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENTU0ZvbnRGYWNlU3JjVmFsdWU6OmNyZWF0
ZUxvY2FsKGdldEF0dHJpYnV0ZShTVkdOYW1lczo6bmFtZUF0dHIpKTsKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlTmFtZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdGb250RmFjZU5hbWVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VOYW1lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCwxMyBA
QAogI2luY2x1ZGUgIlNWR0VsZW1lbnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgeworCiAgICAg
Y2xhc3MgQ1NTRm9udEZhY2VTcmNWYWx1ZTsKKwogICAgIGNsYXNzIFNWR0ZvbnRGYWNlTmFtZUVs
ZW1lbnQgOiBwdWJsaWMgU1ZHRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMg
UGFzc1JlZlB0cjxTVkdGb250RmFjZU5hbWVFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHRm9udEZhY2VOYW1lRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgCiAgICAgICAgIFBhc3NSZWZQ
dHI8Q1NTRm9udEZhY2VTcmNWYWx1ZT4gc3JjVmFsdWUoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR0ZvbnRGYWNlU3JjRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHRm9udEZhY2VTcmNFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2
Zy9TVkdGb250RmFjZVNyY0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCwx
MSBAQCBTVkdGb250RmFjZVNyY0VsZW1lbnQ6OlNWR0ZvbnRGYWNlU3JjRWxlCiB7CiB9CiAKK1Bh
c3NSZWZQdHI8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBTVkdGb250RmFjZVNyY0VsZW1lbnQ6OmNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7
CisgICAgcmV0dXJuIG5ldyBTVkdGb250RmFjZVNyY0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBQYXNzUmVmUHRyPENTU1ZhbHVlTGlzdD4gU1ZHRm9udEZhY2VTcmNFbGVtZW50Ojpz
cmNWYWx1ZSgpIGNvbnN0CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1Zh
bHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlU3JjRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
U3JjRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNl
U3JjRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBDU1NWYWx1ZUxpc3Q7CiAgICAgY2xhc3MgU1ZHRm9udEZhY2VT
cmNFbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHRm9udEZhY2VTcmNFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHRm9udEZhY2VTcmNFbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICAKICAgICAgICAgUGFzc1Jl
ZlB0cjxDU1NWYWx1ZUxpc3Q+IHNyY1ZhbHVlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdGb250RmFjZVVyaUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0Zv
bnRGYWNlVXJpRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZH
Rm9udEZhY2VVcmlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDEsNiArNDEsMTEgQEAg
U1ZHRm9udEZhY2VVcmlFbGVtZW50OjpTVkdGb250RmFjZVVyaUVsZQogewogfQogCitQYXNzUmVm
UHRyPFNWR0ZvbnRGYWNlVXJpRWxlbWVudD4gU1ZHRm9udEZhY2VVcmlFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAg
IHJldHVybiBuZXcgU1ZHRm9udEZhY2VVcmlFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogU1ZHRm9udEZhY2VVcmlFbGVtZW50Ojp+U1ZHRm9udEZhY2VVcmlFbGVtZW50KCkKIHsKICAg
ICBpZiAobV9jYWNoZWRGb250KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VVcmlFbGVtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMyLDggKzMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIFNWR0ZvbnRGYWNlVXJpRWxlbWVudCA6IHB1YmxpYyBTVkdFbGVtZW50LCBwdWJs
aWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U1ZHRm9udEZhY2VVcmlFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHRm9udEZhY2VVcmlFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotICAgICAgICB+U1ZHRm9udEZhY2VVcmlFbGVtZW50
KCk7CisgICAgICAgIHZpcnR1YWwgflNWR0ZvbnRGYWNlVXJpRWxlbWVudCgpOwogICAgICAgICAK
ICAgICAgICAgUGFzc1JlZlB0cjxDU1NGb250RmFjZVNyY1ZhbHVlPiBzcmNWYWx1ZSgpIGNvbnN0
OwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lv
biA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OlNW
R0ZvcmVpZ25PYmplYwogewogfQogCitQYXNzUmVmUHRyPFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50
PiBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0ZvcmVpZ25P
YmplY3RFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQ6On5TVkdGb3JlaWduT2JqZWN0RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R0ZvcmVpZ25PYmplY3RFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcv
U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdWJsaWMgU1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKKyAg
ICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdGb3JlaWduT2Jq
ZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmly
dHVhbCB+U1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQoKTsKIApAQCAtNDMsNyArNDUsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXpl
UHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgICAgIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CisgICAgICAgIHZpcnR1YWwgYm9vbCBjaGls
ZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBSZW5k
ZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bGUq
IHN0eWxlKTsKIAogICAgIHByaXZhdGU6CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzcsNiArMzcsMTEgQEAgU1ZHR0VsZW1lbnQ6OlNWR0dFbGVtZW50KGNvbnN0IFF1YWxpZmllZAog
ewogfQogCitQYXNzUmVmUHRyPFNWR0dFbGVtZW50PiBTVkdHRWxlbWVudDo6Y3JlYXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gbmV3IFNWR0dFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHR0VsZW1lbnQ6
On5TVkdHRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0dFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8U1ZHR0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
KwogICAgICAgICBTVkdHRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsK
ICAgICAgICAgdmlydHVhbCB+U1ZHR0VsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZH
R2x5cGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDExIEBAIFNWR0dseXBoRWxlbWVudDo6U1ZH
R2x5cGhFbGVtZW50KGNvbnN0IFEKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdHbHlwaEVsZW1lbnQ+
IFNWR0dseXBoRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
Y3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR0dseXBoRWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0dseXBoRWxlbWVudDo6flNWR0dseXBoRWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJD
b3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR0dseXBoRWxlbWVudCA6IHB1
YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNWR0dseXBoRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOworCiAgICAgICAgIFNWR0dseXBoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwg
RG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHR2x5cGhFbGVtZW50KCk7CiAKSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0hLZXJuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dmcvU1ZHSEtlcm5FbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9T
VkdIS2VybkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMSBAQCBTVkdI
S2VybkVsZW1lbnQ6OlNWR0hLZXJuRWxlbWVudChjb25zdCBRCiB7CiB9CiAKK1Bhc3NSZWZQdHI8
U1ZHSEtlcm5FbGVtZW50PiBTVkdIS2VybkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdI
S2VybkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdIS2VybkVsZW1lbnQ6On5T
VkdIS2VybkVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHSEtlcm5FbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM2LDYgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHSEtl
cm5FbGVtZW50IDogcHVibGljIFNWR0VsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8U1ZHSEtlcm5FbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHSEtlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdIS2VybkVsZW1lbnQoKTsK
IApJbmRleDogV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUwLDYgKzUwLDEx
IEBAIFNWR0ltYWdlRWxlbWVudDo6U1ZHSW1hZ2VFbGVtZW50KGNvbnN0IFEKIHsKIH0KIAorUGFz
c1JlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+IFNWR0ltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
bmV3IFNWR0ltYWdlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR0ltYWdlRWxl
bWVudDo6flNWR0ltYWdlRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNiArNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSB7CiAgICAg
cHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdJbWFnZUVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdJbWFnZUVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwg
flNWR0ltYWdlRWxlbWVudCgpOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMSBAQCBTVkdMaW5lRWxlbWVudDo6U1ZHTGluZUVsZW1l
bnQoY29uc3QgUXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHTGluZUVsZW1lbnQ+IFNWR0xpbmVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHTGluZUVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpOworfQorCiBTVkdMaW5lRWxlbWVudDo6flNWR0xpbmVFbGVtZW50KCkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHTGluZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdMaW5l
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdMYW5nU3BhY2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1
aXJlZCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdMaW5lRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAg
IFNWR0xpbmVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdMaW5lRWxlbWVudCgpOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUvc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2
ICs0OSwxMSBAQCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OlNWR0xpbmVhckdyYWRpCiAgICAg
Ly8gU3BlYzogSWYgdGhlIHgyIGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0
IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3BlY2lmaWVkLgogfQogCitQYXNzUmVm
UHRyPFNWR0xpbmVhckdyYWRpZW50RWxlbWVudD4gU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KTsKK30KKwogU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Ojp+U1ZHTGluZWFyR3JhZGllbnRF
bGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
CShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVu
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIFNWR0xpbmVhckdyYWRpZW50RWxlbWVudCA6IHB1YmxpYyBTVkdHcmFkaWVu
dEVsZW1lbnQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CisKICAgICAgICAgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysr
IFdlYkNvcmUvc3ZnL1NWR01QYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYg
KzMyLDExIEBAIFNWR01QYXRoRWxlbWVudDo6U1ZHTVBhdGhFbGVtZW50KGNvbnN0IFEKIHsKIH0K
IAorUGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1lbnQ+IFNWR01QYXRoRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR01QYXRoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR01Q
YXRoRWxlbWVudDo6flNWR01QYXRoRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9T
VkdNUGF0aEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1l
bnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdNUGF0aEVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCB7
CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdNUGF0aEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdN
UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZp
cnR1YWwgflNWR01QYXRoRWxlbWVudCgpOwogICAgICAgICAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R01hcmtlckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1MywxMSBAQCBTVkdNYXJrZXJFbGVtZW50
OjpTVkdNYXJrZXJFbGVtZW50KGNvbnN0CiAgICAgLy8gU3BlYzogSWYgdGhlIG1hcmtlcldpZHRo
L21hcmtlckhlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBh
cyBpZiBhIHZhbHVlIG9mICIzIiB3ZXJlIHNwZWNpZmllZC4KIH0KIAorUGFzc1JlZlB0cjxTVkdN
YXJrZXJFbGVtZW50PiBTVkdNYXJrZXJFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHTWFy
a2VyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR01hcmtlckVsZW1lbnQ6On5T
VkdNYXJrZXJFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgJKHJldmlz
aW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC01Myw2ICs1Myw4IEBAIHB1YmxpYzoKICAgICAgICAgU1ZHX01BUktFUl9PUklFTlRf
QU5HTEUgICAgICA9IDIKICAgICB9OwogCisgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHTWFya2Vy
RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAg
U1ZHTWFya2VyRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2
aXJ0dWFsIH5TVkdNYXJrZXJFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NCw2ICs1NCwxMSBAQCBTVkdNYXNrRWxlbWVudDo6U1ZHTWFza0VsZW1l
bnQoY29uc3QgUXVhCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUg
aXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMjAlIiB3
ZXJlIHNwZWNpZmllZC4KIH0KIAorUGFzc1JlZlB0cjxTVkdNYXNrRWxlbWVudD4gU1ZHTWFza0Vs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdNYXNrRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIFNWR01hc2tFbGVtZW50Ojp+U1ZHTWFza0VsZW1lbnQoKQogewogfQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR01hc2tF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVp
cmVkIHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01hc2tFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAg
U1ZHTWFza0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IHZpcnR1YWwgflNWR01hc2tFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01ldGFk
YXRhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVt
ZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdNZXRhZGF0YUVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSwxMSBAQCBTVkdNZXRhZGF0YUVsZW1l
bnQ6OlNWR01ldGFkYXRhRWxlbWVudChjCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHTWV0YWRhdGFF
bGVtZW50PiBTVkdNZXRhZGF0YUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdNZXRhZGF0
YUVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdNZXRhZGF0YUVsZW1lbnQ6On5T
VkdNZXRhZGF0YUVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWV0YWRhdGFFbGVtZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDExIEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBTVkdNZXRhZGF0YUVsZW1lbnQgOiBw
dWJsaWMgU1ZHRWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTVkdNZXRhZGF0YUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICBTVkdNZXRhZGF0YUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR01ldGFkYXRhRWxlbWVudCgpOwogICAg
IH07CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAkocmV2aXNpb24g
NjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjksNiArMjksMTEgQEAgU1ZHTWlzc2luZ0dseXBoRWxlbWVudDo6U1ZHTWlz
c2luZ0dseXBoRQogewogfQogCitQYXNzUmVmUHRyPFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ+IFNW
R01pc3NpbmdHbHlwaEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdNaXNzaW5nR2x5cGhF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNW
R19GT05UUykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR01pc3NpbmdHbHlwaEVsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdNaXNzaW5nR2x5cGhFbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw4IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3Mg
U1ZHTWlzc2luZ0dseXBoRWxlbWVudCA6IHB1YmxpYyBTVkdTdHlsZWRFbGVtZW50IHsKICAgICBw
dWJsaWM6CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR01pc3NpbmdHbHlwaEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdN
aXNzaW5nR2x5cGhFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0eWxlKikgeyByZXR1
cm4gZmFsc2U7IH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Miw2
ICs1MiwxMSBAQCBTVkdQYXRoRWxlbWVudDo6U1ZHUGF0aEVsZW1lbnQoY29uc3QgUXVhCiB7CiB9
CiAKK1Bhc3NSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IFNWR1BhdGhFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJl
dHVybiBuZXcgU1ZHUGF0aEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdQYXRo
RWxlbWVudDo6flNWR1BhdGhFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Bh
dGhFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuaAko
cmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Niw2ICs1Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0FuaW1hdGVkUGF0aERhdGEgewogICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0aEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdQYXRoRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHUGF0aEVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJu
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNjYsNiArNjYsMTEgQEAgU1ZHUGF0dGVybkVsZW1lbnQ6OlNW
R1BhdHRlcm5FbGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR1BhdHRlcm5FbGVtZW50
PiBTVkdQYXR0ZXJuRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1BhdHRlcm5FbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUGF0dGVybkVsZW1lbnQ6On5TVkdQYXR0ZXJu
RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmgJKHJldmlzaW9uIDY2
MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDMsNiArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3ggewogICAgIHB1Ymxp
YzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHUGF0dGVybkVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdQYXR0ZXJuRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHUGF0dGVybkVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5
Z29uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgU1ZHUG9seWdvbkVsZW1lbnQ6
OlNWR1BvbHlnb25FbGVtZW50KGNvbgogewogfQogCitQYXNzUmVmUHRyPFNWR1BvbHlnb25FbGVt
ZW50PiBTVkdQb2x5Z29uRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1BvbHlnb25FbGVt
ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUG9seWdvbkVsZW1lbnQ6On5TVkdQb2x5
Z29uRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5Z29uRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlnb25FbGVtZW50LmgJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWdvbkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBTVkdQ
b2x5Z29uRWxlbWVudCA6IHB1YmxpYyBTVkdQb2x5RWxlbWVudCB7CiAgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2x5Z29uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNWR1BvbHlnb25FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdQb2x5
Z29uRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5bGluZUVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5jcHAJKHJldmlz
aW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHUG9seWxpbmVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzIsNiArMzIsMTEgQEAgU1ZHUG9seWxpbmVFbGVtZW50OjpTVkdQb2x5bGlu
ZUVsZW1lbnQoYwogewogfQogCitQYXNzUmVmUHRyPFNWR1BvbHlsaW5lRWxlbWVudD4gU1ZHUG9s
eWxpbmVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHUG9seWxpbmVFbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUG9seWxpbmVFbGVtZW50Ojp+U1ZHUG9seWxpbmVFbGVt
ZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvc3ZnL1NWR1BvbHlsaW5lRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR1BvbHls
aW5lRWxlbWVudCA6IHB1YmxpYyBTVkdQb2x5RWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdQb2x5bGluZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdQb2x5bGluZUVsZW1lbnQoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAgIHZpcnR1YWwgflNWR1BvbHls
aW5lRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTEgQEAgU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50OjpTVkdSYWRpYWxHcmFkaQogICAgIC8vIFNwZWM6IElmIHRoZSBjeC9jeS9y
IGF0dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUg
b2YgIjUwJSIgd2VyZSBzcGVjaWZpZWQuCiB9CiAKK1Bhc3NSZWZQdHI8U1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50PiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBT
VkdSYWRpYWxHcmFkaWVudEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQ6On5TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQoKQogewogfQpJbmRl
eDogV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTMxLDYgKzMxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50IDogcHVibGljIFNWR0dyYWRpZW50RWxlbWVudCB7CiAgICAgcHVi
bGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAg
ICAgICAgIHZpcnR1YWwgflNWR1JhZGlhbEdyYWRpZW50RWxlbWVudCgpOwogCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZH
UmVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgU1ZHUmVjdEVsZW1l
bnQ6OlNWR1JlY3RFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFNWR1JlY3RF
bGVtZW50PiBTVkdSZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1JlY3RFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHUmVjdEVsZW1lbnQ6On5TVkdSZWN0RWxlbWVu
dCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMg
U1ZHTGFuZ1NwYWNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVy
bmFsUmVzb3VyY2VzUmVxdWlyZWQgewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHUmVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICBTVkdSZWN0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZHUmVjdEVsZW1lbnQoKTsKICAgICAgICAgCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9T
VkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzgsNiArNzgsMTEgQEAgU1ZHU1ZH
RWxlbWVudDo6U1ZHU1ZHRWxlbWVudChjb25zdCBRdWFsaQogICAgIGRvYy0+cmVnaXN0ZXJGb3JE
b2N1bWVudEFjdGl2YXRpb25DYWxsYmFja3ModGhpcyk7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHU1ZH
RWxlbWVudD4gU1ZHU1ZHRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1NWR0VsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdTVkdFbGVtZW50Ojp+U1ZHU1ZHRWxlbWVudCgp
CiB7CiAgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3RlckZvckRvY3VtZW50QWN0aXZhdGlvbkNhbGxi
YWNrcyh0aGlzKTsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NWR0VsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS9zdmcvU1ZHU1ZHRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNW
R0ZpdFRvVmlld0JveCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1pvb21B
bmRQYW4gewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU1ZHRWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAg
IFNWR1NWR0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IHZpcnR1YWwgflNWR1NWR0VsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHU2NyaXB0
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDggKzMxLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1TVkdTY3JpcHRFbGVtZW50OjpTVkdTY3JpcHRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUm
IHRhZ05hbWUsIERvY3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQotICAgIDogU1ZH
RWxlbWVudCh0YWdOYW1lLCBkb2MpCitTVkdTY3JpcHRFbGVtZW50OjpTVkdTY3JpcHRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCwgYm9vbCBj
cmVhdGVkQnlQYXJzZXIpCisgICAgOiBTVkdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KQogICAg
ICwgU1ZHVVJJUmVmZXJlbmNlKCkKICAgICAsIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQo
KQogICAgICwgbV9kYXRhKHRoaXMsIHRoaXMpCkBAIC00MCw2ICs0MCwxMSBAQCBTVkdTY3JpcHRF
bGVtZW50OjpTVkdTY3JpcHRFbGVtZW50KGNvbnN0CiAgICAgbV9kYXRhLnNldENyZWF0ZWRCeVBh
cnNlcihjcmVhdGVkQnlQYXJzZXIpOwogfQogCitQYXNzUmVmUHRyPFNWR1NjcmlwdEVsZW1lbnQ+
IFNWR1NjcmlwdEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW1lbnQsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQoreworICAgIHJldHVybiBu
ZXcgU1ZHU2NyaXB0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKTsK
K30KKwogU1ZHU2NyaXB0RWxlbWVudDo6flNWR1NjcmlwdEVsZW1lbnQoKQogewogfQpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Zn
L1NWR1NjcmlwdEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdT
Y3JpcHRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHRXh0ZXJu
YWxSZXNvdXJjZXNSZXF1aXJlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMg
U2NyaXB0RWxlbWVudCB7CiAgICAgcHVibGljOgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
VkdTY3JpcHRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kiwg
Ym9vbCBjcmVhdGVkQnlQYXJzZXIpOworCiAgICAgICAgIFNWR1NjcmlwdEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogICAgICAg
ICB2aXJ0dWFsIH5TVkdTY3JpcHRFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Nl
dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNCwxMCArMjQsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IAotU1ZHU2V0RWxlbWVudDo6U1ZHU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCAqZG9jKQotICAgIDogU1ZHQW5pbWF0ZUVsZW1lbnQodGFnTmFtZSwgZG9j
KQorU1ZHU2V0RWxlbWVudDo6U1ZHU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdO
YW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBTVkdBbmltYXRlRWxlbWVudCh0YWdOYW1l
LCBkb2N1bWVudCkKIHsKIH0KKworUGFzc1JlZlB0cjxTVkdTZXRFbGVtZW50PiBTVkdTZXRFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7
Cit9CisKIH0KIAogLy8gdmltOnRzPTQ6bm9ldApJbmRleDogV2ViQ29yZS9zdmcvU1ZHU2V0RWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NldEVsZW1lbnQuaAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZUVsZW1lbnQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgeworCiAgICAgLy8gU1ZHQW5pbWF0ZUVsZW1lbnQgaW1wbGVtZW50cyBz
dXBlcnNldCBvZiB0aGUgZnVuY3Rpb25hbGl0eS4KICAgICBjbGFzcyBTVkdTZXRFbGVtZW50IDog
cHVibGljIFNWR0FuaW1hdGVFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFNWR1NldEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9j
dW1lbnQqKTsKKwogICAgICAgICBTVkdTZXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOwogICAgIH07CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw2ICszOCwxMSBAQCBTVkdTdG9wRWxlbWVudDo6U1ZHU3RvcEVsZW1lbnQoY29uc3Qg
UXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+IFNWR1N0b3BFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgU1ZHU3RvcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQor
CiBTVkdTdG9wRWxlbWVudDo6flNWR1N0b3BFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR1N0b3BFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3RvcEVs
ZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIFNWR1N0b3BFbGVtZW50IDogcHVibGljIFNWR1N0eWxlZEVsZW1lbnQgewogICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3RvcEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdTdG9wRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHU3RvcEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3R5bGVFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCShyZXZpc2lv
biA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDExICszNiwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1N0eWxlRWxl
bWVudDo6U1ZHU3R5bGVFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3Vt
ZW50KiBkb2N1bWVudCwgYm9vbCBjcmVhdGVkQnlQYXJzZXIpCiAgICAgOiBTVkdFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KQotICAgICwgU1ZHTGFuZ1NwYWNlKCkKICAgICAsIFN0eWxlRWxlbWVu
dChkb2N1bWVudCwgY3JlYXRlZEJ5UGFyc2VyKQogewogfQogCitQYXNzUmVmUHRyPFNWR1N0eWxl
RWxlbWVudD4gU1ZHU3R5bGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGNyZWF0ZWRCeVBhcnNlcikKK3sKKyAgICBy
ZXR1cm4gbmV3IFNWR1N0eWxlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgY3JlYXRlZEJ5UGFy
c2VyKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBTVkdTdHlsZUVsZW1lbnQ6OnR5cGUoKSBj
b25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBkZWZh
dWx0VmFsdWUsICgidGV4dC9jc3MiKSk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAkocmV2aXNp
b24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsOCBAQCBjbGFzcyBTVkdTdHlsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHRWxl
bWVuCiAgICAgICAgICAgICAgICAgICAgICAgLCBwdWJsaWMgU1ZHTGFuZ1NwYWNlCiAgICAgICAg
ICAgICAgICAgICAgICAgLCBwdWJsaWMgU3R5bGVFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTVkdTdHlsZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgRG9jdW1lbnQqLCBib29sIGNyZWF0ZWRCeVBhcnNlcik7CisKICAgICBTVkdTdHlsZUVsZW1l
bnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50KiwgYm9vbCBjcmVhdGVkQnlQYXJzZXIp
OwogCiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwpJ
bmRleDogV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29y
ZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDYgKzM1LDEx
IEBAIFNWR1N3aXRjaEVsZW1lbnQ6OlNWR1N3aXRjaEVsZW1lbnQoY29uc3QKIHsKIH0KIAorUGFz
c1JlZlB0cjxTVkdTd2l0Y2hFbGVtZW50PiBTVkdTd2l0Y2hFbGVtZW50OjpjcmVhdGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVy
biBuZXcgU1ZHU3dpdGNoRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFNWR1N3aXRj
aEVsZW1lbnQ6On5TVkdTd2l0Y2hFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R1N3aXRjaEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTd2l0Y2hFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHU3dpdGNoRWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0xhbmdTcGFjZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0V4dGVybmFsUmVzb3VyY2VzUmVxdWlyZWQg
ewogICAgIHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHU3dpdGNoRWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIFNW
R1N3aXRjaEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAgICAg
IHZpcnR1YWwgflNWR1N3aXRjaEVsZW1lbnQoKTsKICAgICAgICAgCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdTeW1ib2xFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTeW1i
b2xFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTEgQEAgU1ZHU3ltYm9sRWxl
bWVudDo6U1ZHU3ltYm9sRWxlbWVudChjb25zdAogewogfQogCitQYXNzUmVmUHRyPFNWR1N5bWJv
bEVsZW1lbnQ+IFNWR1N5bWJvbEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBTVkdTeW1ib2xF
bGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHU3ltYm9sRWxlbWVudDo6flNWR1N5
bWJvbEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1N5bWJvbEVsZW1lbnQuaAkocmV2aXNpb24g
NjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM0LDYgKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR0ZpdFRvVmlld0JveCB7CiAgICAgcHVibGlj
OgorICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdTeW1ib2xFbGVtZW50PiBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgU1ZHU3ltYm9sRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+U1ZH
U3ltYm9sRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RSZWZFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNiArMzgsMTEgQEAgU1ZHVFJlZkVsZW1lbnQ6OlNWR1RSZWZFbGVtZW50KGNvbnN0IFF1
YQogewogfQogCitQYXNzUmVmUHRyPFNWR1RSZWZFbGVtZW50PiBTVkdUUmVmRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFNWR1RSZWZFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
U1ZHVFJlZkVsZW1lbnQ6On5TVkdUUmVmRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdUUmVmRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgU1ZHVFJlZkVsZW1lbnQgOiBwdWJsaWMgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpYyBTVkdVUklSZWZlcmVuY2UgewogICAg
IHB1YmxpYzoKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHVFJlZkVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBTVkdUUmVmRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICAgICAgdmlydHVhbCB+
U1ZHVFJlZkVsZW1lbnQoKTsKIApAQCAtMzgsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKIAogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIo
UmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwotICAgICAgICBib29sIGNoaWxkU2hvdWxkQ3Jl
YXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OworICAgICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRTaG91
bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2
b2lkIHVwZGF0ZVJlZmVyZW5jZWRUZXh0KCk7CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUU3BhbkVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RTcGFuRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVFNwYW5FbGVtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzQsOCArMzQsOSBAQCBTVkdUU3BhbkVsZW1lbnQ6OlNWR1RTcGFuRWxl
bWVudChjb25zdCBRCiB7CiB9CiAKLVNWR1RTcGFuRWxlbWVudDo6flNWR1RTcGFuRWxlbWVudCgp
CitQYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gU1ZHVFNwYW5FbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogeworICAgIHJl
dHVybiBuZXcgU1ZHVFNwYW5FbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKIH0KIAogYm9vbCBT
VkdUU3BhbkVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSogY2hpbGQpIGNv
bnN0CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3Jl
L3N2Zy9TVkdUU3BhbkVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTEgKzI4LDEzIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFNWR1RTcGFuRWxlbWVudCA6IHB1Ymxp
YyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IHsKICAgICBwdWJsaWM6CisgICAgICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNWR1RTcGFuRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
LCBEb2N1bWVudCopOworCisgICAgcHJpdmF0ZToKICAgICAgICAgU1ZHVFNwYW5FbGVtZW50KGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotICAgICAgICB2aXJ0dWFsIH5TVkdUU3Bh
bkVsZW1lbnQoKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgdmlydHVhbCBSZW5kZXJPYmpl
Y3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVuZGVyU3R5bGUqKTsKLSAgICAgICAg
Ym9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBib29sIGNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoTm9kZSopIGNvbnN0OwogICAgIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgICAgIExFTkdUSEFESlVTVF9TUEFDSU5HQU5ER0xZUEhTICAgPSAyCiAgICAg
ICAgIH07CiAKLSAgICAgICAgU1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0dWFsIH5TVkdUZXh0Q29udGVudEVsZW1lbnQo
KTsKICAgICAgICAgCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1
cm4gU1ZHVGVzdHM6OmlzVmFsaWQoKTsgfQpAQCAtNjQsNiArNjMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGJvb2wgaXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
Jik7CiAKICAgICBwcm90ZWN0ZWQ6CisgICAgICAgIFNWR1RleHRDb250ZW50RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICB2aXJ0dWFsIGJvb2wgc2Vs
Zkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdU
ZXh0RWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMSBAQCBTVkdUZXh0RWxlbWVu
dDo6U1ZHVGV4dEVsZW1lbnQoY29uc3QgUXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8U1ZHVGV4dEVs
ZW1lbnQ+IFNWR1RleHRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHVGV4dEVsZW1lbnQo
dGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBTVkdUZXh0RWxlbWVudDo6flNWR1RleHRFbGVtZW50
KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJD
b3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMCArMzAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgU1ZHVGV4dEVsZW1lbnQgOiBwdWJsaWMg
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1
YmxpYyBTVkdUcmFuc2Zvcm1hYmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNWR1RleHRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwotICAgICAgICB2aXJ0dWFsIH5T
VkdUZXh0RWxlbWVudCgpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdUZXh0RWxlbWVu
dD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgICAgIHZp
cnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKKyAgICAgICAgdmly
dHVhbCB+U1ZHVGV4dEVsZW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnQqIG5l
YXJlc3RWaWV3cG9ydEVsZW1lbnQoKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBTVkdFbGVtZW50
KiBmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudCgpIGNvbnN0OwpAQCAtNDIsNiArNDEsMTEgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRDVE0o
U3R5bGVVcGRhdGVTdHJhdGVneSA9IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgICAgICB2
aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBnZXRTY3JlZW5DVE0oU3R5bGVVcGRhdGVTdHJhdGVneSA9
IEFsbG93U3R5bGVVcGRhdGUpIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9y
bSBhbmltYXRlZExvY2FsVHJhbnNmb3JtKCkgY29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBTVkdUZXh0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICAg
ICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOworCiAgICAg
ICAgIHZpcnR1YWwgQWZmaW5lVHJhbnNmb3JtKiBzdXBwbGVtZW50YWxUcmFuc2Zvcm0oKTsKICAg
ICAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxDb29yZGluYXRlU3BhY2VUcmFuc2Zv
cm0oU1ZHTG9jYXRhYmxlOjpDVE1TY29wZSBtb2RlKSBjb25zdCB7IHJldHVybiBTVkdUcmFuc2Zv
cm1hYmxlOjpsb2NhbENvb3JkaW5hdGVTcGFjZVRyYW5zZm9ybShtb2RlKTsgfQogCkBAIC01MSwx
MSArNTUsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgICAgIHZpcnR1YWwg
dm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAotICAgIHBy
aXZhdGU6CiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHVGV4dEVsZW1lbnQs
IFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyLCBTVkdUcmFuc2Zvcm1MaXN0KiwgVHJhbnNmb3JtLCB0
cmFuc2Zvcm0pCiAgICAgICAgCi0gICAgICAgLy8gVXNlZCBieSA8YW5pbWF0ZU1vdGlvbj4KLSAg
ICAgICBPd25QdHI8QWZmaW5lVHJhbnNmb3JtPiBtX3N1cHBsZW1lbnRhbFRyYW5zZm9ybTsKKyAg
ICAgICAgLy8gVXNlZCBieSA8YW5pbWF0ZU1vdGlvbj4KKyAgICAgICAgT3duUHRyPEFmZmluZVRy
YW5zZm9ybT4gbV9zdXBwbGVtZW50YWxUcmFuc2Zvcm07CiAgICAgfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTQzLDYgKzQzLDExIEBAIFNWR1RleHRQYXRoRWxlbWVudDo6U1ZHVGV4dFBhdGhFbGVt
ZW50KGMKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdUZXh0UGF0aEVsZW1lbnQ+IFNWR1RleHRQYXRo
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1RleHRQYXRoRWxlbWVudCh0YWdOYW1lLCBk
b2N1bWVudCk7Cit9CisKIFNWR1RleHRQYXRoRWxlbWVudDo6flNWR1RleHRQYXRoRWxlbWVudCgp
CiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisr
KyBXZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTEs
OSArNTEsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVEVYVFBBVEhfU1BB
Q0lOR1RZUEVfRVhBQ1QgPSBTVkdfVEVYVFBBVEhfU1BBQ0lOR1RZUEVfRVhBQ1QKICAgICAgICAg
fTsKIAotICAgICAgICBTVkdUZXh0UGF0aEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RleHRQYXRoRWxlbWVudD4g
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgICAgIHZpcnR1
YWwgflNWR1RleHRQYXRoRWxlbWVudCgpOwogIAorICAgIHByaXZhdGU6CisgICAgICAgIFNWR1Rl
eHRQYXRoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgaW5zZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKIAogICAgICAgICB2aXJ0dWFs
IHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKik7CkBAIC02MSw5ICs2NSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJv
cGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgICAgICB2aXJ0dWFsIFJlbmRlck9iamVj
dCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwogCi0gICAgICAg
IGJvb2wgY2hpbGRTaG91bGRDcmVhdGVSZW5kZXJlcihOb2RlKikgY29uc3Q7CisgICAgICAgIHZp
cnR1YWwgYm9vbCBjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKE5vZGUqKSBjb25zdDsKIAotICAg
IHByaXZhdGU6CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkg
Y29uc3Q7CiAKICAgICAgICAgREVDTEFSRV9BTklNQVRFRF9QUk9QRVJUWShTVkdUZXh0UGF0aEVs
ZW1lbnQsIFNWR05hbWVzOjpzdGFydE9mZnNldEF0dHIsIFNWR0xlbmd0aCwgU3RhcnRPZmZzZXQs
IHN0YXJ0T2Zmc2V0KQpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDE2ICszMCwxNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50IDogcHVibGljIFNWR1Rl
eHRDb250ZW50RWxlbWVudCB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdUZXh0UG9zaXRpb25p
bmdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogICAgICAgICB2aXJ0
dWFsIH5TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50KCk7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJik7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzeW5jaHJvbml6ZVByb3BlcnR5KGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKIAorICAg
IHByb3RlY3RlZDoKKyAgICAgICAgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudChjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgICAgICBib29sIGlzS25vd25BdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCBi
b29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdDsKIAogICAgICAgICBERUNMQVJFX0FO
SU1BVEVEX1BST1BFUlRZKFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQsIFNWR05hbWVzOjp4QXR0
ciwgU1ZHTGVuZ3RoTGlzdCosIFgsIHgpCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RpdGxlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsMTEgQEAgU1ZHVGl0bGVFbGVtZW50OjpTVkdUaXRsZUVsZW1l
bnQoY29uc3QgUQogewogfQogCitQYXNzUmVmUHRyPFNWR1RpdGxlRWxlbWVudD4gU1ZHVGl0bGVF
bGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRv
Y3VtZW50KQoreworICAgIHJldHVybiBuZXcgU1ZHVGl0bGVFbGVtZW50KHRhZ05hbWUsIGRvY3Vt
ZW50KTsKK30KKwogdm9pZCBTVkdUaXRsZUVsZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkK
IHsKICAgICBTVkdTdHlsZWRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpOwpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcv
U1ZHVGl0bGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVGl0
bGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDkgKzI2LDEzIEBACiAjaW5jbHVkZSAi
U1ZHU3R5bGVkRWxlbWVudC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKICAgICBjbGFzcyBT
VkdUaXRsZUVsZW1lbnQgOiBwdWJsaWMgU1ZHU3R5bGVkRWxlbWVudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdWJsaWMgU1ZHTGFuZ1NwYWNlIHsKICAgICBwdWJsaWM6CisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNWR1RpdGxlRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmLCBEb2N1bWVudCopOworCisgICAgcHJpdmF0ZToKICAgICAgICAgU1ZHVGl0bGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnRlZEludG9Eb2N1bWVudCgpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHVXNlRWxl
bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTcwLDYgKzcwLDExIEBAIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQoY29u
c3QgUXVhbGkKIHsKIH0KIAorUGFzc1JlZlB0cjxTVkdVc2VFbGVtZW50PiBTVkdVc2VFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIHJldHVybiBuZXcgU1ZHVXNlRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9
CisKIFNWR1VzZUVsZW1lbnQ6On5TVkdVc2VFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUv
c3ZnL1NWR1VzZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdVc2VFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCwxMSArNDAsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdWJsaWMgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJl
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGljIFNWR1VSSVJlZmVyZW5jZSB7CiAg
ICAgcHVibGljOgotICAgICAgICBTVkdVc2VFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBE
b2N1bWVudCopOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdVc2VFbGVtZW50PiBjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICAgICAgdmlydHVhbCB+
U1ZHVXNlRWxlbWVudCgpOwogCiAgICAgICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2VS
b290KCkgY29uc3Q7CiAgICAgICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogYW5pbWF0ZWRJbnN0YW5j
ZVJvb3QoKSBjb25zdDsKKyAgICAgICAgU1ZHRWxlbWVudEluc3RhbmNlKiBpbnN0YW5jZUZvclNo
YWRvd1RyZWVFbGVtZW50KE5vZGUqKSBjb25zdDsKKyAgICAgICAgdm9pZCBpbnZhbGlkYXRlU2hh
ZG93VHJlZSgpOworCisgICAgICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXJDbGlwQ2hpbGQoKSBj
b25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIFNWR1VzZUVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiBTVkdUZXN0czo6aXNWYWxpZCgpOyB9CiAKQEAgLTYyLDIwICs3MCwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKIAog
ICAgICAgICB2aXJ0dWFsIFBhdGggdG9DbGlwUGF0aCgpIGNvbnN0OwotICAgICAgICBSZW5kZXJP
YmplY3QqIHJlbmRlcmVyQ2xpcENoaWxkKCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIHZvaWQg
cmVtb3ZlRGlzYWxsb3dlZEVsZW1lbnRzRnJvbVN1YnRyZWUoTm9kZSogZWxlbWVudCk7Ci0gICAg
ICAgIFNWR0VsZW1lbnRJbnN0YW5jZSogaW5zdGFuY2VGb3JTaGFkb3dUcmVlRWxlbWVudChOb2Rl
KiBlbGVtZW50KSBjb25zdDsKLSAgICAgICAgdm9pZCBpbnZhbGlkYXRlU2hhZG93VHJlZSgpOwog
CiAgICAgICAgIHZvaWQgc2V0VXBkYXRlc0Jsb2NrZWQoYm9vbCBibG9ja2VkKSB7IG1fdXBkYXRl
c0Jsb2NrZWQgPSBibG9ja2VkOyB9CiAKLSAgICBwcml2YXRlOgogICAgICAgICBmcmllbmQgY2xh
c3MgUmVuZGVyU1ZHU2hhZG93VHJlZVJvb3RDb250YWluZXI7CiAgICAgICAgIGJvb2wgaXNQZW5k
aW5nUmVzb3VyY2UoKSBjb25zdCB7IHJldHVybiBtX2lzUGVuZGluZ1Jlc291cmNlOyB9CiAgICAg
ICAgIHZvaWQgYnVpbGRTaGFkb3dBbmRJbnN0YW5jZVRyZWUoU1ZHU2hhZG93VHJlZVJvb3RFbGVt
ZW50Kik7CiAKLSAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIGJvb2wgc2VsZkhhc1JlbGF0
aXZlTGVuZ3RocygpIGNvbnN0OwogCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFko
U1ZHVXNlRWxlbWVudCwgU1ZHTmFtZXM6OnhBdHRyLCBTVkdMZW5ndGgsIFgsIHgpCkBAIC04OSw3
ICs5Miw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gU1ZHRXh0ZXJuYWxSZXNv
dXJjZXNSZXF1aXJlZAogICAgICAgICBERUNMQVJFX0FOSU1BVEVEX1BST1BFUlRZKFNWR1VzZUVs
ZW1lbnQsIFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0
ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKIAotICAg
IHByaXZhdGU6CiAgICAgICAgIC8vIEluc3RhbmNlIHRyZWUgaGFuZGxpbmcKICAgICAgICAgdm9p
ZCBidWlsZEluc3RhbmNlVHJlZShTVkdFbGVtZW50KiB0YXJnZXQsIFNWR0VsZW1lbnRJbnN0YW5j
ZSogdGFyZ2V0SW5zdGFuY2UsIGJvb2wmIGZvdW5kQ3ljbGUpOwogICAgICAgICB2b2lkIGhhbmRs
ZURlZXBVc2VSZWZlcmVuY2luZyhTVkdVc2VFbGVtZW50KiB1c2UsIFNWR0VsZW1lbnRJbnN0YW5j
ZSogdGFyZ2V0SW5zdGFuY2UsIGJvb2wmIGZvdW5kQ3ljbGUpOwpJbmRleDogV2ViQ29yZS9zdmcv
U1ZHVktlcm5FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdWS2VybkVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEzICszMywxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIAotU1ZHVktlcm5FbGVtZW50OjpTVkdW
S2VybkVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYykK
LSAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jKQoraW5saW5lIFNWR1ZLZXJuRWxlbWVudDo6
U1ZHVktlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICA6IFNWR0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpCiB7CiB9CiAKLVNW
R1ZLZXJuRWxlbWVudDo6flNWR1ZLZXJuRWxlbWVudCgpCitQYXNzUmVmUHRyPFNWR1ZLZXJuRWxl
bWVudD4gU1ZHVktlcm5FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogeworICAgIHJldHVybiBuZXcgU1ZHVktlcm5FbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKIH0KIAogdm9pZCBTVkdWS2VybkVsZW1lbnQ6Omluc2VydGVk
SW50b0RvY3VtZW50KCkKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykK
KysrIFdlYkNvcmUvc3ZnL1NWR1ZLZXJuRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwx
NSArMzQsMTcgQEAgY2xhc3MgU1ZHRm9udERhdGE7CiAKIGNsYXNzIFNWR1ZLZXJuRWxlbWVudCA6
IHB1YmxpYyBTVkdFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTVkdW
S2VybkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwor
ICAgIHZvaWQgYnVpbGRWZXJ0aWNhbEtlcm5pbmdQYWlyKEtlcm5pbmdQYWlyVmVjdG9yJik7CisK
K3ByaXZhdGU6CiAgICAgU1ZHVktlcm5FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1
bWVudCopOwotICAgIHZpcnR1YWwgflNWR1ZLZXJuRWxlbWVudCgpOwogCiAgICAgdmlydHVhbCB2
b2lkIGluc2VydGVkSW50b0RvY3VtZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZWRGcm9t
RG9jdW1lbnQoKTsKIAogICAgIHZpcnR1YWwgYm9vbCByZW5kZXJlcklzTmVlZGVkKFJlbmRlclN0
eWxlKikgeyByZXR1cm4gZmFsc2U7IH0KLQotICAgIHZvaWQgYnVpbGRWZXJ0aWNhbEtlcm5pbmdQ
YWlyKEtlcm5pbmdQYWlyVmVjdG9yJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvc3Zn
L1NWR1ZpZXdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTEgQEAgU1ZH
Vmlld0VsZW1lbnQ6OlNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRy
PFNWR1ZpZXdFbGVtZW50PiBTVkdWaWV3RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFNWR1Zp
ZXdFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogU1ZHVmlld0VsZW1lbnQ6On5TVkdW
aWV3RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3
KQorKysgV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUs
MTcgKzM1LDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1YmxpYyBTVkdGaXRUb1ZpZXdCb3gsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dWJsaWMgU1ZHWm9vbUFuZFBhbiB7CiAgICAgcHVibGljOgotICAgICAgICBTVkdWaWV3RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKyAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHVmlld0VsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKKwogICAgICAgICB2aXJ0dWFsIH5TVkdWaWV3RWxlbWVudCgpOwogCisgICAgICAgIFNW
R1N0cmluZ0xpc3QqIHZpZXdUYXJnZXQoKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAg
IFNWR1ZpZXdFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHN5bmNocm9uaXplUHJvcGVydHkoY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCi0gICAgICAgIFNWR1N0cmluZ0xpc3QqIHZpZXdUYXJnZXQoKSBjb25zdDsKLQogICAgICAg
ICB2aXJ0dWFsIGJvb2wgcmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSopIHsgcmV0dXJuIGZh
bHNlOyB9CiAKLSAgICBwcml2YXRlOgogICAgICAgICAvLyBTVkdFeHRlcm5hbFJlc291cmNlc1Jl
cXVpcmVkCiAgICAgICAgIERFQ0xBUkVfQU5JTUFURURfUFJPUEVSVFkoU1ZHVmlld0VsZW1lbnQs
IFNWR05hbWVzOjpleHRlcm5hbFJlc291cmNlc1JlcXVpcmVkQXR0ciwgYm9vbCwgRXh0ZXJuYWxS
ZXNvdXJjZXNSZXF1aXJlZCwgZXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZCkKICAKSW5kZXg6IFdl
YkNvcmUvc3ZnL3N2Z3RhZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvc3ZndGFncy5p
bgkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3N2Zy9zdmd0YWdzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDEwNSArMiwxMDUgQEAgbmFtZXNwYWNlPSJTVkciCiBuYW1lc3BhY2VVUkk9Imh0
dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFNWRyki
CiAKLWEgY3JlYXRlV2l0aE5ldworYQogI2lmIEVOQUJMRV9TVkdfRk9OVFMKLWFsdEdseXBoIGNy
ZWF0ZVdpdGhOZXcKK2FsdEdseXBoCiAjZW5kaWYKICNpZiAwCi1hbHRHbHlwaERlZiBjcmVhdGVX
aXRoTmV3Ci1hbHRHbHlwaEl0ZW0gY3JlYXRlV2l0aE5ldworYWx0R2x5cGhEZWYKK2FsdEdseXBo
SXRlbQogI2VuZGlmCiAjaWYgRU5BQkxFX1NWR19BTklNQVRJT04KLWFuaW1hdGUgY3JlYXRlV2l0
aE5ldwotYW5pbWF0ZUNvbG9yIGNyZWF0ZVdpdGhOZXcKLWFuaW1hdGVNb3Rpb24gSlNJbnRlcmZh
Y2VOYW1lPVNWR0VsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKLWFuaW1hdGVUcmFuc2Zvcm0gY3JlYXRl
V2l0aE5ldwotc2V0IGNyZWF0ZVdpdGhOZXcKK2FuaW1hdGUKK2FuaW1hdGVDb2xvcgorYW5pbWF0
ZU1vdGlvbiBKU0ludGVyZmFjZU5hbWU9U1ZHRWxlbWVudAorYW5pbWF0ZVRyYW5zZm9ybQorc2V0
CiAjZW5kaWYKLWNpcmNsZSBjcmVhdGVXaXRoTmV3Ci1jbGlwUGF0aCBjcmVhdGVXaXRoTmV3Citj
aXJjbGUKK2NsaXBQYXRoCiAjaWYgMAotY29sb3JfcHJvZmlsZSBjcmVhdGVXaXRoTmV3Citjb2xv
cl9wcm9maWxlCiAjZW5kaWYKLWN1cnNvciBjcmVhdGVXaXRoTmV3Ci1kZWZzIGNyZWF0ZVdpdGhO
ZXcKLWRlc2MgY3JlYXRlV2l0aE5ldwotZWxsaXBzZSBjcmVhdGVXaXRoTmV3CitjdXJzb3IKK2Rl
ZnMKK2Rlc2MKK2VsbGlwc2UKICNpZiBFTkFCTEVfRklMVEVSUwotZmVCbGVuZCBjcmVhdGVXaXRo
TmV3Ci1mZUNvbG9yTWF0cml4IGNyZWF0ZVdpdGhOZXcKLWZlQ29tcG9uZW50VHJhbnNmZXIgY3Jl
YXRlV2l0aE5ldwotZmVDb21wb3NpdGUgY3JlYXRlV2l0aE5ldwotZmVDb252b2x2ZU1hdHJpeCBj
cmVhdGVXaXRoTmV3Ci1mZURpZmZ1c2VMaWdodGluZyBjcmVhdGVXaXRoTmV3Ci1mZURpc3BsYWNl
bWVudE1hcCBjcmVhdGVXaXRoTmV3Ci1mZURpc3RhbnRMaWdodCBjcmVhdGVXaXRoTmV3Ci1mZUZs
b29kIGNyZWF0ZVdpdGhOZXcKLWZlRnVuY0EgY3JlYXRlV2l0aE5ldwotZmVGdW5jQiBjcmVhdGVX
aXRoTmV3Ci1mZUZ1bmNHIGNyZWF0ZVdpdGhOZXcKLWZlRnVuY1IgY3JlYXRlV2l0aE5ldwotZmVH
YXVzc2lhbkJsdXIgY3JlYXRlV2l0aE5ldwotZmVJbWFnZSBjcmVhdGVXaXRoTmV3Ci1mZU1lcmdl
IGNyZWF0ZVdpdGhOZXcKLWZlTWVyZ2VOb2RlIGNyZWF0ZVdpdGhOZXcKLWZlTW9ycGhvbG9neSBj
cmVhdGVXaXRoTmV3Ci1mZU9mZnNldCBjcmVhdGVXaXRoTmV3Ci1mZVBvaW50TGlnaHQgY3JlYXRl
V2l0aE5ldwotZmVTcGVjdWxhckxpZ2h0aW5nIGNyZWF0ZVdpdGhOZXcKLWZlU3BvdExpZ2h0IGNy
ZWF0ZVdpdGhOZXcKLWZlVGlsZSBjcmVhdGVXaXRoTmV3Ci1mZVR1cmJ1bGVuY2UgY3JlYXRlV2l0
aE5ldwotZmlsdGVyIGNyZWF0ZVdpdGhOZXcKK2ZlQmxlbmQKK2ZlQ29sb3JNYXRyaXgKK2ZlQ29t
cG9uZW50VHJhbnNmZXIKK2ZlQ29tcG9zaXRlCitmZUNvbnZvbHZlTWF0cml4CitmZURpZmZ1c2VM
aWdodGluZworZmVEaXNwbGFjZW1lbnRNYXAKK2ZlRGlzdGFudExpZ2h0CitmZUZsb29kCitmZUZ1
bmNBCitmZUZ1bmNCCitmZUZ1bmNHCitmZUZ1bmNSCitmZUdhdXNzaWFuQmx1cgorZmVJbWFnZQor
ZmVNZXJnZQorZmVNZXJnZU5vZGUKK2ZlTW9ycGhvbG9neQorZmVPZmZzZXQKK2ZlUG9pbnRMaWdo
dAorZmVTcGVjdWxhckxpZ2h0aW5nCitmZVNwb3RMaWdodAorZmVUaWxlCitmZVR1cmJ1bGVuY2UK
K2ZpbHRlcgogI2VuZGlmCiAjaWYgRU5BQkxFX1NWR19GT05UUwotZm9udCBjcmVhdGVXaXRoTmV3
Ci1mb250X2ZhY2UgY3JlYXRlV2l0aE5ldwotZm9udF9mYWNlX2Zvcm1hdCBjcmVhdGVXaXRoTmV3
Ci1mb250X2ZhY2VfbmFtZSBjcmVhdGVXaXRoTmV3Ci1mb250X2ZhY2Vfc3JjIGNyZWF0ZVdpdGhO
ZXcKLWZvbnRfZmFjZV91cmkgY3JlYXRlV2l0aE5ldworZm9udAorZm9udF9mYWNlCitmb250X2Zh
Y2VfZm9ybWF0Citmb250X2ZhY2VfbmFtZQorZm9udF9mYWNlX3NyYworZm9udF9mYWNlX3VyaQog
I2VuZGlmCiAjaWYgRU5BQkxFX1NWR19GT1JFSUdOX09CSkVDVAotZm9yZWlnbk9iamVjdCBjcmVh
dGVXaXRoTmV3Citmb3JlaWduT2JqZWN0CiAjZW5kaWYKLWcgY3JlYXRlV2l0aE5ldworZwogI2lm
IEVOQUJMRV9TVkdfRk9OVFMKLWdseXBoIGNyZWF0ZVdpdGhOZXcKK2dseXBoCiAjZW5kaWYKICNp
ZiAwCi1nbHlwaFJlZiBjcmVhdGVXaXRoTmV3CitnbHlwaFJlZgogI2VuZGlmCiAjaWYgRU5BQkxF
X1NWR19GT05UUwotaGtlcm4gaW50ZXJmYWNlTmFtZT1TVkdIS2VybkVsZW1lbnQsIEpTSW50ZXJm
YWNlTmFtZT1TVkdFbGVtZW50LCBjcmVhdGVXaXRoTmV3Citoa2VybiBpbnRlcmZhY2VOYW1lPVNW
R0hLZXJuRWxlbWVudCwgSlNJbnRlcmZhY2VOYW1lPVNWR0VsZW1lbnQKICNlbmRpZgotaW1hZ2Ug
Y3JlYXRlV2l0aE5ldwotbGluZSBjcmVhdGVXaXRoTmV3Ci1saW5lYXJHcmFkaWVudCBjcmVhdGVX
aXRoTmV3Ci1tYXJrZXIgY3JlYXRlV2l0aE5ldwotbWFzayBjcmVhdGVXaXRoTmV3Ci1tZXRhZGF0
YSBjcmVhdGVXaXRoTmV3CitpbWFnZQorbGluZQorbGluZWFyR3JhZGllbnQKK21hcmtlcgorbWFz
aworbWV0YWRhdGEKICNpZiBFTkFCTEVfU1ZHX0ZPTlRTCi1taXNzaW5nX2dseXBoIGNyZWF0ZVdp
dGhOZXcKK21pc3NpbmdfZ2x5cGgKICNlbmRpZgotbXBhdGggaW50ZXJmYWNlTmFtZT1TVkdNUGF0
aEVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1TVkdFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1wYXRo
IGNyZWF0ZVdpdGhOZXcKLXBhdHRlcm4gY3JlYXRlV2l0aE5ldwotcG9seWdvbiBjcmVhdGVXaXRo
TmV3Ci1wb2x5bGluZSBjcmVhdGVXaXRoTmV3Ci1yYWRpYWxHcmFkaWVudCBjcmVhdGVXaXRoTmV3
Ci1yZWN0IGNyZWF0ZVdpdGhOZXcKLXNjcmlwdCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFy
c2VyLCBjcmVhdGVXaXRoTmV3Ci1zdG9wIGNyZWF0ZVdpdGhOZXcKLXN0eWxlIGNvbnN0cnVjdG9y
TmVlZHNDcmVhdGVkQnlQYXJzZXIsIGNyZWF0ZVdpdGhOZXcKLXN2ZyBpbnRlcmZhY2VOYW1lPVNW
R1NWR0VsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKLXN3aXRjaCBjcmVhdGVXaXRoTmV3Ci1zeW1ib2wg
Y3JlYXRlV2l0aE5ldwotdGV4dCBjcmVhdGVXaXRoTmV3Ci10ZXh0UGF0aCBjcmVhdGVXaXRoTmV3
Ci10aXRsZSBjcmVhdGVXaXRoTmV3Ci10cmVmIGludGVyZmFjZU5hbWU9U1ZHVFJlZkVsZW1lbnQs
IGNyZWF0ZVdpdGhOZXcKLXRzcGFuIGludGVyZmFjZU5hbWU9U1ZHVFNwYW5FbGVtZW50LCBjcmVh
dGVXaXRoTmV3Ci11c2UgY3JlYXRlV2l0aE5ldwotdmlldyBjcmVhdGVXaXRoTmV3Ci12a2VybiBp
bnRlcmZhY2VOYW1lPVNWR1ZLZXJuRWxlbWVudCwgY3JlYXRlV2l0aE5ldworbXBhdGggaW50ZXJm
YWNlTmFtZT1TVkdNUGF0aEVsZW1lbnQsIEpTSW50ZXJmYWNlTmFtZT1TVkdFbGVtZW50CitwYXRo
CitwYXR0ZXJuCitwb2x5Z29uCitwb2x5bGluZQorcmFkaWFsR3JhZGllbnQKK3JlY3QKK3Njcmlw
dCBjb25zdHJ1Y3Rvck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitzdG9wCitzdHlsZSBjb25zdHJ1Y3Rv
ck5lZWRzQ3JlYXRlZEJ5UGFyc2VyCitzdmcgaW50ZXJmYWNlTmFtZT1TVkdTVkdFbGVtZW50Citz
d2l0Y2gKK3N5bWJvbAordGV4dAordGV4dFBhdGgKK3RpdGxlCit0cmVmIGludGVyZmFjZU5hbWU9
U1ZHVFJlZkVsZW1lbnQKK3RzcGFuIGludGVyZmFjZU5hbWU9U1ZHVFNwYW5FbGVtZW50Cit1c2UK
K3ZpZXcKK3ZrZXJuIGludGVyZmFjZU5hbWU9U1ZHVktlcm5FbGVtZW50CkluZGV4OiBXZWJDb3Jl
L3dtbC9XTUxBRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MQUVsZW1l
bnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEFFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTEgQEAgV01MQUVsZW1lbnQ6OldNTEFFbGVtZW50
KGNvbnN0IFF1YWxpZmllZAogewogfQogCitQYXNzUmVmUHRyPFdNTEFFbGVtZW50PiBXTUxBRWxl
bWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTEFFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsK
K30KKwogdm9pZCBXTUxBRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyKQogewogICAgIGlmIChhdHRyLT5uYW1lKCkgPT0gSFRNTE5hbWVzOjpocmVmQXR0cikgewpJ
bmRleDogV2ViQ29yZS93bWwvV01MQUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dt
bC9XTUxBRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEFFbGVt
ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBXTUxBRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxBRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisKICAgICBXTUxBRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
Rm9jdXMoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTEFjY2Vzc0VsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEFjY2Vzc0VsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEFjY2Vzc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNyw2ICszNywxMSBAQCBXTUxBY2Nlc3NFbGVtZW50OjpXTUxBY2Nlc3NFbGVtZW50KGNv
bnN0CiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MQWNjZXNzRWxlbWVudD4gV01MQWNjZXNzRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTEFjY2Vzc0VsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiB2b2lkIFdNTEFjY2Vzc0VsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IGRvbWFpbkF0dHIpIHsKSW5k
ZXg6IFdlYkNvcmUvd21sL1dNTEFjY2Vzc0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dtbC9XTUxBY2Nlc3NFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwv
V01MQWNjZXNzRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV01MQWNjZXNzRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVt
ZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxBY2Nlc3NFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKKwogICAgIFdN
TEFjY2Vzc0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqKTsKSW5k
ZXg6IFdlYkNvcmUvd21sL1dNTEFuY2hvckVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvd21sL1dNTEFuY2hvckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
d21sL1dNTEFuY2hvckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCwxMSBA
QCBXTUxBbmNob3JFbGVtZW50OjpXTUxBbmNob3JFbGVtZW50KGNvbnN0CiAgICAgc2V0SXNMaW5r
KCk7CiB9CiAKK1Bhc3NSZWZQdHI8V01MQW5jaG9yRWxlbWVudD4gV01MQW5jaG9yRWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
K3sKKyAgICByZXR1cm4gbmV3IFdNTEFuY2hvckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOwor
fQorCiBXTUxBbmNob3JFbGVtZW50Ojp+V01MQW5jaG9yRWxlbWVudCgpCiB7CiB9CkluZGV4OiBX
ZWJDb3JlL3dtbC9XTUxBbmNob3JFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwv
V01MQW5jaG9yRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEFu
Y2hvckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQCBjbGFzcyBXTUxU
YXNrRWxlbWVudDsKIAogY2xhc3MgV01MQW5jaG9yRWxlbWVudCA6IHB1YmxpYyBXTUxBRWxlbWVu
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MQW5jaG9yRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CisKICAgICBXTUxB
bmNob3JFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAg
ICAgdmlydHVhbCB+V01MQW5jaG9yRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxC
UkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEJSRWxlbWVudC5jcHAJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MQlJFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNiArNDAsMTEgQEAgV01MQlJFbGVtZW50OjpXTUxCUkVsZW1lbnQoY29u
c3QgUXVhbGlmaQogewogfQogCitQYXNzUmVmUHRyPFdNTEJSRWxlbWVudD4gV01MQlJFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50
KQoreworICAgIHJldHVybiBuZXcgV01MQlJFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30K
KwogYm9vbCBXTUxCUkVsZW1lbnQ6Om1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgaWYgKGF0
dHJOYW1lID09IEhUTUxOYW1lczo6Y2xlYXJBdHRyKSB7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxC
UkVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxCUkVsZW1lbnQuaAkocmV2
aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxCUkVsZW1lbnQuaAkod29ya2luZyBjb3B5
KQpAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTEJSRWxl
bWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXTUxCUkVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCopOworCiAgICAgV01MQlJFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgTWFwcGVkQXR0cmlidXRlRW50cnkmKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvd21s
L1dNTENhcmRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxDYXJkRWxl
bWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MQ2FyZEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSwxMSBAQCBXTUxDYXJkRWxlbWVudDo6V01M
Q2FyZEVsZW1lbnQoY29uc3QgUXVhCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoY2FyZFRhZykpOwog
fQogCitQYXNzUmVmUHRyPFdNTENhcmRFbGVtZW50PiBXTUxDYXJkRWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFdNTENhcmRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogV01MQ2Fy
ZEVsZW1lbnQ6On5XTUxDYXJkRWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxD
YXJkRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTENhcmRFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MQ2FyZEVsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQCBjbGFzcyBXTUxUaW1lckVsZW1lbnQ7CiAKIGNsYXNz
IFdNTENhcmRFbGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQsIHB1YmxpYyBXTUxFdmVudEhhbmRs
aW5nRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MQ2FyZEVsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCiAg
ICAgV01MQ2FyZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAgICAg
dmlydHVhbCB+V01MQ2FyZEVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MRG9FbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxEb0VsZW1lbnQuY3BwCShyZXZp
c2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTERvRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxLDYgKzUxLDExIEBAIFdNTERvRWxlbWVudDo6V01MRG9FbGVtZW50KGNvbnN0IFF1
YWxpZmkKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxEb0VsZW1lbnQ+IFdNTERvRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFdNTERvRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIHZv
aWQgV01MRG9FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKIHsKICAg
ICBpZiAobV9pc09wdGlvbmFsKQpJbmRleDogV2ViQ29yZS93bWwvV01MRG9FbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MRG9FbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS93bWwvV01MRG9FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDggQEAgY2xhc3MgV01MVGFza0VsZW1lbnQ7CiAKIGNsYXNzIFdNTERvRWxlbWVudCA6IHB1Ymxp
YyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxEb0VsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCiAg
ICAgV01MRG9FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwpJbmRleDog
V2ViQ29yZS93bWwvV01MRmllbGRTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dtbC9XTUxGaWVsZFNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
d21sL1dNTEZpZWxkU2V0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDEx
IEBAIFdNTEZpZWxkU2V0RWxlbWVudDo6V01MRmllbGRTZXRFbGVtZW50KGMKIHsKIH0KIAorUGFz
c1JlZlB0cjxXTUxGaWVsZFNldEVsZW1lbnQ+IFdNTEZpZWxkU2V0RWxlbWVudDo6Y3JlYXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFdNTEZpZWxkU2V0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdN
TEZpZWxkU2V0RWxlbWVudDo6fldNTEZpZWxkU2V0RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJD
b3JlL3dtbC9XTUxGaWVsZFNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9X
TUxGaWVsZFNldEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxG
aWVsZFNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTEZpZWxkU2V0RWxlbWVudCA6IHB1YmxpYyBXTUxFbGVt
ZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxGaWVsZFNldEVsZW1lbnQ+
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTEZpZWxk
U2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAg
IHZpcnR1YWwgfldNTEZpZWxkU2V0RWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTEgQEAgV01M
Rm9ybUNvbnRyb2xFbGVtZW50OjpXTUxGb3JtQ29udHJvbEVsZQogewogfQogCitQYXNzUmVmUHRy
PFdNTEZvcm1Db250cm9sRWxlbWVudD4gV01MRm9ybUNvbnRyb2xFbGVtZW50OjpjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJl
dHVybiBuZXcgV01MRm9ybUNvbnRyb2xFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
V01MRm9ybUNvbnRyb2xFbGVtZW50Ojp+V01MRm9ybUNvbnRyb2xFbGVtZW50KCkKIHsKIH0KSW5k
ZXg6IFdlYkNvcmUvd21sL1dNTEdvRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MR29FbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxH
b0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCwxMSBAQCBXTUxHb0VsZW1l
bnQ6OldNTEdvRWxlbWVudChjb25zdCBRdWFsaWZpCiB7CiB9CiAgCitQYXNzUmVmUHRyPFdNTEdv
RWxlbWVudD4gV01MR29FbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MR29FbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KTsKK30KKwogdm9pZCBXTUxHb0VsZW1lbnQ6OnJlZ2lzdGVyUG9zdGZp
ZWxkRWxlbWVudChXTUxQb3N0ZmllbGRFbGVtZW50KiBwb3N0ZmllbGQpCiB7CiAgICAgQVNTRVJU
KG1fcG9zdGZpZWxkRWxlbWVudHMuZmluZChwb3N0ZmllbGQpID09IFdURjo6bm90Rm91bmQpOwpJ
bmRleDogV2ViQ29yZS93bWwvV01MR29FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MR29FbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MR29F
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAgY2xhc3MgV01MUG9zdGZp
ZWxkRWxlbWVudDsKIAogY2xhc3MgV01MR29FbGVtZW50IDogcHVibGljIFdNTFRhc2tFbGVtZW50
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxHb0VsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTEdvRWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCiAgICAgdm9pZCByZWdpc3Rl
clBvc3RmaWVsZEVsZW1lbnQoV01MUG9zdGZpZWxkRWxlbWVudCopOwpJbmRleDogV2ViQ29yZS93
bWwvV01MSW1hZ2VFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxJbWFn
ZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTEltYWdlRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIFdNTEltYWdlRWxlbWVu
dDo6V01MSW1hZ2VFbGVtZW50KGNvbnN0IFEKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxJbWFnZUVs
ZW1lbnQ+IFdNTEltYWdlRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTEltYWdlRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdNTEltYWdlRWxlbWVudDo6fldNTEltYWdlRWxl
bWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisr
KyBXZWJDb3JlL3dtbC9XTUxJbWFnZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiAr
MjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTEltYWdlRWxlbWVudCA6IHB1
YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxJbWFn
ZUVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAg
IFdNTEltYWdlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCop
OwogICAgIHZpcnR1YWwgfldNTEltYWdlRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9X
TUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTElucHV0RWxl
bWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUsMTEgQEAgV01MSW5wdXRFbGVtZW50OjpX
TUxJbnB1dEVsZW1lbnQoY29uc3QgUQogewogfQogCitQYXNzUmVmUHRyPFdNTElucHV0RWxlbWVu
dD4gV01MSW5wdXRFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwg
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01MSW5wdXRFbGVtZW50KHRh
Z05hbWUsIGRvY3VtZW50KTsKK30KKwogV01MSW5wdXRFbGVtZW50Ojp+V01MSW5wdXRFbGVtZW50
KCkKIHsKICAgICBpZiAobV9pc1Bhc3N3b3JkRmllbGQpCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxJ
bnB1dEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQu
aAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOCBAQCBjbGFzcyBGb3JtRGF0YUxpc3Q7CiAKIGNsYXNz
IFdNTElucHV0RWxlbWVudCA6IHB1YmxpYyBXTUxGb3JtQ29udHJvbEVsZW1lbnQsIHB1YmxpYyBJ
bnB1dEVsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTElucHV0RWxl
bWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01M
SW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAg
ICAgdmlydHVhbCB+V01MSW5wdXRFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTElu
c2VydGVkTGVnZW5kRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW5z
ZXJ0ZWRMZWdlbmRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9X
TUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCwx
MSBAQCBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQ6OldNTEluc2VydGVkTGVnCiB7CiB9CiAKK1Bh
c3NSZWZQdHI8V01MSW5zZXJ0ZWRMZWdlbmRFbGVtZW50PiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQodGFnTmFtZSwg
ZG9jdW1lbnQpOworfQorCiBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQ6On5XTUxJbnNlcnRlZExl
Z2VuZEVsZW1lbnQoKQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MSW5zZXJ0ZWRMZWdlbmRF
bGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MSW5zZXJ0ZWRMZWdlbmRFbGVt
ZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MSW5zZXJ0ZWRMZWdlbmRF
bGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBXTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVu
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MSW5zZXJ0ZWRMZWdlbmRFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxJ
bnNlcnRlZExlZ2VuZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1l
bnQqKTsKICAgICB2aXJ0dWFsIH5XTUxJbnNlcnRlZExlZ2VuZEVsZW1lbnQoKTsKIH07CkluZGV4
OiBXZWJDb3JlL3dtbC9XTUxJbnRyaW5zaWNFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS93bWwvV01MSW50cmluc2ljRXZlbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUv
d21sL1dNTEludHJpbnNpY0V2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTEg
QEAgV01MSW50cmluc2ljRXZlbnQ6OldNTEludHJpbnNpY0V2ZW50KERvYwogICAgIG1fdGFza0Vs
ZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OmhyZWZBdHRyLCB0YXJnZXRVUkwpOwogfQog
CitQYXNzUmVmUHRyPFdNTEludHJpbnNpY0V2ZW50PiBXTUxJbnRyaW5zaWNFdmVudDo6Y3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAg
ICByZXR1cm4gbmV3IFdNTEludHJpbnNpY0V2ZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwog
V01MSW50cmluc2ljRXZlbnQ6OldNTEludHJpbnNpY0V2ZW50KFdNTFRhc2tFbGVtZW50KiB0YXNr
RWxlbWVudCkKICAgICA6IG1fdGFza0VsZW1lbnQodGFza0VsZW1lbnQpCiB7CkluZGV4OiBXZWJD
b3JlL3dtbC9XTUxNZXRhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01M
TWV0YUVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTE1ldGFF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsMTEgQEAgV01MTWV0YUVsZW1l
bnQ6OldNTE1ldGFFbGVtZW50KGNvbnN0IFF1YQogewogfQogCitQYXNzUmVmUHRyPFdNTE1ldGFF
bGVtZW50PiBXTUxNZXRhRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTE1ldGFFbGVtZW50
KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogV01MTWV0YUVsZW1lbnQ6On5XTUxNZXRhRWxlbWVu
dCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxNZXRhRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvd21sL1dNTE1ldGFFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS93bWwvV01MTWV0YUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTE1ldGFFbGVtZW50IDogcHVibGljIFdN
TEVsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTE1ldGFFbGVtZW50
PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxNZXRh
RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZp
cnR1YWwgfldNTE1ldGFFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTE5vb3BFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxOb29wRWxlbWVudC5jcHAJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MTm9vcEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiwxMSBAQCBXTUxOb29wRWxlbWVudDo6V01MTm9vcEVsZW1lbnQo
Y29uc3QgUXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MTm9vcEVsZW1lbnQ+IFdNTE5vb3BFbGVt
ZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIHJldHVybiBuZXcgV01MTm9vcEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBXTUxOb29wRWxlbWVudDo6fldNTE5vb3BFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdl
YkNvcmUvd21sL1dNTE5vb3BFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01M
Tm9vcEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxOb29wRWxl
bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgV01MTm9vcEVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVudCB7CiBwdWJsaWM6
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MTm9vcEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTE5vb3BFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+V01MTm9vcEVsZW1l
bnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MT25FdmVudEVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvd21sL1dNTE9uRXZlbnRFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3dtbC9XTUxPbkV2ZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDExIEBAIFdNTE9uRXZlbnRFbGVtZW50OjpXTUxPbkV2ZW50RWxlbWVudChjb24K
IHsKIH0KIAorUGFzc1JlZlB0cjxXTUxPbkV2ZW50RWxlbWVudD4gV01MT25FdmVudEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIG5ldyBXTUxPbkV2ZW50RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7
Cit9CisKIHZvaWQgV01MT25FdmVudEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJp
YnV0ZSogYXR0cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IEhUTUxOYW1lczo6dHlwZUF0
dHIpIHsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTE9uRXZlbnRFbGVtZW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS93bWwvV01MT25FdmVudEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3dtbC9XTUxPbkV2ZW50RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICsz
MSw4IEBAIGNsYXNzIFdNTFRhc2tFbGVtZW50OwogCiBjbGFzcyBXTUxPbkV2ZW50RWxlbWVudCA6
IHB1YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxP
bkV2ZW50RWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwor
CiAgICAgV01MT25FdmVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9j
dW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1
dGUqKTsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTE9wdEdyb3VwRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS93bWwvV01MT3B0R3JvdXBFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcp
CisrKyBXZWJDb3JlL3dtbC9XTUxPcHRHcm91cEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MCw2ICs0MCwxMSBAQCBXTUxPcHRHcm91cEVsZW1lbnQ6OldNTE9wdEdyb3VwRWxlbWVudChj
CiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MT3B0R3JvdXBFbGVtZW50PiBXTUxPcHRHcm91cEVsZW1l
bnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1l
bnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxPcHRHcm91cEVsZW1lbnQodGFnTmFtZSwgZG9jdW1l
bnQpOworfQorCiBXTUxPcHRHcm91cEVsZW1lbnQ6On5XTUxPcHRHcm91cEVsZW1lbnQoKQogewog
fQpJbmRleDogV2ViQ29yZS93bWwvV01MT3B0R3JvdXBFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS93bWwvV01MT3B0R3JvdXBFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS93bWwvV01MT3B0R3JvdXBFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxPcHRHcm91cEVsZW1lbnQgOiBw
dWJsaWMgV01MRm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgT3B0aW9uR3JvdXBFbGVtZW50IHsK
IHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxPcHRHcm91cEVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTE9wdEdyb3VwRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1
YWwgfldNTE9wdEdyb3VwRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9XTUxPcHRpb25F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxPcHRpb25FbGVtZW50LmNw
cAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxPcHRpb25FbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTEgQEAgV01MT3B0aW9uRWxlbWVudDo6V01MT3B0
aW9uRWxlbWVudChjb25zdAogewogfQogCitQYXNzUmVmUHRyPFdNTE9wdGlvbkVsZW1lbnQ+IFdN
TE9wdGlvbkVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1
bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxPcHRpb25FbGVtZW50KHRhZ05h
bWUsIGRvY3VtZW50KTsKK30KKwogV01MT3B0aW9uRWxlbWVudDo6fldNTE9wdGlvbkVsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MT3B0aW9uRWxlbWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvd21sL1dNTE9wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBX
ZWJDb3JlL3dtbC9XTUxPcHRpb25FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxPcHRpb25FbGVtZW50IDogcHVi
bGljIFdNTEZvcm1Db250cm9sRWxlbWVudCwgcHVibGljIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50
LCBwdWJsaWMgT3B0aW9uRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V01MT3B0aW9uRWxlbWVudD4gY3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCop
OworCiAgICAgV01MT3B0aW9uRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCopOwogICAgIHZpcnR1YWwgfldNTE9wdGlvbkVsZW1lbnQoKTsKIApJbmRleDogV2Vi
Q29yZS93bWwvV01MUEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFBF
bGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxQRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDExIEBAIFdNTFBFbGVtZW50OjpXTUxQRWxl
bWVudChjb25zdCBRdWFsaWZpZWQKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxQRWxlbWVudD4gV01M
UEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxQRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVu
dCk7Cit9CisKIGJvb2wgV01MUEVsZW1lbnQ6Om1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUsIE1hcHBlZEF0dHJpYnV0ZUVudHJ5JiByZXN1bHQpIGNvbnN0CiB7CiAgICAg
aWYgKGF0dHJOYW1lID09IEhUTUxOYW1lczo6YWxpZ25BdHRyKSB7CkluZGV4OiBXZWJDb3JlL3dt
bC9XTUxQRWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFBFbGVtZW50LmgJ
KHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMzEsNiArMzEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTFBF
bGVtZW50IDogcHVibGljIFdNTEVsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFdNTFBFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7
CisKICAgICBXTUxQRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVu
dCopOwogCiAgICAgdmlydHVhbCBib29sIG1hcFRvRW50cnkoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IE1hcHBlZEF0dHJpYnV0ZUVudHJ5JikgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxQb3N0
ZmllbGRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxQb3N0ZmllbGRF
bGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxQb3N0ZmllbGRF
bGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksMTEgQEAgV01MUG9zdGZpZWxk
RWxlbWVudDo6V01MUG9zdGZpZWxkRWxlbWVudAogewogfQogCitQYXNzUmVmUHRyPFdNTFBvc3Rm
aWVsZEVsZW1lbnQ+IFdNTFBvc3RmaWVsZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxQ
b3N0ZmllbGRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogdm9pZCBXTUxQb3N0Zmll
bGRFbGVtZW50OjppbnNlcnRlZEludG9Eb2N1bWVudCgpCiB7CiAgICAgV01MRWxlbWVudDo6aW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFBvc3RmaWVsZEVsZW1l
bnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxQb3N0ZmllbGRFbGVtZW50LmgJKHJl
dmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUG9zdGZpZWxkRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
V01MUG9zdGZpZWxkRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50IHsKIHB1YmxpYzoKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXTUxQb3N0ZmllbGRFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxQb3N0ZmllbGRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5z
ZXJ0ZWRJbnRvRG9jdW1lbnQoKTsKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFByZXZFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxQcmV2RWxlbWVudC5jcHAJKHJldmlzaW9u
IDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MUHJldkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiwxMSBAQCBXTUxQcmV2RWxlbWVudDo6V01MUHJldkVsZW1lbnQoY29uc3Qg
UXVhCiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MUHJldkVsZW1lbnQ+IFdNTFByZXZFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgV01MUHJldkVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQor
CiBXTUxQcmV2RWxlbWVudDo6fldNTFByZXZFbGVtZW50KCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUv
d21sL1dNTFByZXZFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MUHJldkVs
ZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxQcmV2RWxlbWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgV01MUHJldkVsZW1lbnQgOiBwdWJsaWMgV01MVGFza0VsZW1lbnQgewogcHVibGljOgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFByZXZFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxQcmV2RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1YWwgfldNTFByZXZFbGVtZW50
KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFJlZnJlc2hFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3dtbC9XTUxSZWZyZXNoRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQor
KysgV2ViQ29yZS93bWwvV01MUmVmcmVzaEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Nyw2ICszNywxMSBAQCBXTUxSZWZyZXNoRWxlbWVudDo6V01MUmVmcmVzaEVsZW1lbnQoY29uCiB7
CiB9CiAKK1Bhc3NSZWZQdHI8V01MUmVmcmVzaEVsZW1lbnQ+IFdNTFJlZnJlc2hFbGVtZW50Ojpj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQor
eworICAgIHJldHVybiBuZXcgV01MUmVmcmVzaEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpOwor
fQorCiBXTUxSZWZyZXNoRWxlbWVudDo6fldNTFJlZnJlc2hFbGVtZW50KCkKIHsKIH0KSW5kZXg6
IFdlYkNvcmUvd21sL1dNTFJlZnJlc2hFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MUmVmcmVzaEVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9X
TUxSZWZyZXNoRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgV01MUmVmcmVzaEVsZW1lbnQgOiBwdWJsaWMgV01MVGFz
a0VsZW1lbnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFJlZnJlc2hFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CisKICAgICBXTUxS
ZWZyZXNoRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwog
ICAgIHZpcnR1YWwgfldNTFJlZnJlc2hFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dN
TFNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFNlbGVjdEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFNlbGVjdEVsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCwxMSBAQCBXTUxTZWxlY3RFbGVtZW50
OjpXTUxTZWxlY3RFbGVtZW50KGNvbnN0CiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MU2VsZWN0RWxl
bWVudD4gV01MU2VsZWN0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05h
bWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTFNlbGVjdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpOworfQorCiBXTUxTZWxlY3RFbGVtZW50Ojp+V01MU2VsZWN0
RWxlbWVudCgpCiB7CiB9CkluZGV4OiBXZWJDb3JlL3dtbC9XTUxTZWxlY3RFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS93bWwvV01MU2VsZWN0RWxlbWVudC5oCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvd21sL1dNTFNlbGVjdEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
MjksNiArMjksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTFNlbGVjdEVsZW1l
bnQgOiBwdWJsaWMgV01MRm9ybUNvbnRyb2xFbGVtZW50LCBwdWJsaWMgU2VsZWN0RWxlbWVudCB7
CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MU2VsZWN0RWxlbWVudD4gY3JlYXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MU2VsZWN0RWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5XTUxTZWxl
Y3RFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFNldHZhckVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFNldHZhckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2
NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFNldHZhckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNiw2ICszNiwxMSBAQCBXTUxTZXR2YXJFbGVtZW50OjpXTUxTZXR2YXJFbGVtZW50KGNv
bnN0CiB7CiB9CiAKK1Bhc3NSZWZQdHI8V01MU2V0dmFyRWxlbWVudD4gV01MU2V0dmFyRWxlbWVu
dDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTFNldHZhckVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQp
OworfQorCiBXTUxTZXR2YXJFbGVtZW50Ojp+V01MU2V0dmFyRWxlbWVudCgpCiB7CiB9CkluZGV4
OiBXZWJDb3JlL3dtbC9XTUxTZXR2YXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MU2V0dmFyRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dN
TFNldHZhckVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdNTFNldHZhckVsZW1lbnQgOiBwdWJsaWMgV01MRWxlbWVu
dCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MU2V0dmFyRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MU2V0dmFyRWxl
bWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogICAgIHZpcnR1
YWwgfldNTFNldHZhckVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MVGFibGVFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxUYWJsZUVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA2NjMzNykKKysrIFdlYkNvcmUvd21sL1dNTFRhYmxlRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ1LDYgKzQ1LDExIEBAIFdNTFRhYmxlRWxlbWVudDo6V01MVGFibGVFbGVt
ZW50KGNvbnN0IFEKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxUYWJsZUVsZW1lbnQ+IFdNTFRhYmxl
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKK3sKKyAgICByZXR1cm4gbmV3IFdNTFRhYmxlRWxlbWVudCh0YWdOYW1lLCBkb2N1
bWVudCk7Cit9CisKIFdNTFRhYmxlRWxlbWVudDo6fldNTFRhYmxlRWxlbWVudCgpCiB7CiB9Cklu
ZGV4OiBXZWJDb3JlL3dtbC9XTUxUYWJsZUVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3dtbC9XTUxUYWJsZUVsZW1lbnQuaAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9X
TUxUYWJsZUVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsOCBAQCBjbGFzcyBI
VE1MQ29sbGVjdGlvbjsKIAogY2xhc3MgV01MVGFibGVFbGVtZW50IDogcHVibGljIFdNTEVsZW1l
bnQgewogcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdNTFRhYmxlRWxlbWVudD4gY3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOworCiAgICAgV01MVGFibGVFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50Kik7CiAgICAgdmlydHVh
bCB+V01MVGFibGVFbGVtZW50KCk7CiAKSW5kZXg6IFdlYkNvcmUvd21sL1dNTFRhZ05hbWVzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFRhZ05hbWVzLmluCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvd21sL1dNTFRhZ05hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yLDM0
ICsyLDM0IEBAIG5hbWVzcGFjZT0iV01MIgogbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LndhcGZv
cnVtLm9yZy9EVEQvd21sXzEuMS54bWwiCiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoV01MKSIK
IAotYSBjcmVhdGVXaXRoTmV3Ci1hY2Nlc3MgY3JlYXRlV2l0aE5ldwotYW5jaG9yIGNyZWF0ZVdp
dGhOZXcKLWJyIGludGVyZmFjZU5hbWU9V01MQlJFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1jYXJk
IGNyZWF0ZVdpdGhOZXcKLWRvIGNyZWF0ZVdpdGhOZXcKLWZpZWxkc2V0IGludGVyZmFjZU5hbWU9
V01MRmllbGRTZXRFbGVtZW50LCBjcmVhdGVXaXRoTmV3Ci1nbyBjcmVhdGVXaXRoTmV3CithCith
Y2Nlc3MKK2FuY2hvcgorYnIgaW50ZXJmYWNlTmFtZT1XTUxCUkVsZW1lbnQKK2NhcmQKK2RvCitm
aWVsZHNldCBpbnRlcmZhY2VOYW1lPVdNTEZpZWxkU2V0RWxlbWVudAorZ28KIGhlYWQgaW50ZXJm
YWNlTmFtZT1XTUxFbGVtZW50Ci1pbWcgaW50ZXJmYWNlTmFtZT1XTUxJbWFnZUVsZW1lbnQsIGNy
ZWF0ZVdpdGhOZXcKLWlucHV0IGNyZWF0ZVdpdGhOZXcKK2ltZyBpbnRlcmZhY2VOYW1lPVdNTElt
YWdlRWxlbWVudAoraW5wdXQKICNpZiAwCiAjIE5vdGU6ICdpbnNlcnRlZExlZ2VuZCcgaXMgbm90
IGFuIG9mZmljaWFsIFdNTCBlbGVtZW50IC0gaW50ZXJuYWwgcHVycG9zZSBvbmx5IQogI2VuZGlm
Ci1pbnNlcnRlZExlZ2VuZCBpbnRlcmZhY2VOYW1lPVdNTEluc2VydGVkTGVnZW5kRWxlbWVudCwg
Y3JlYXRlV2l0aE5ldwotbWV0YSBjcmVhdGVXaXRoTmV3Ci1ub29wIGNyZWF0ZVdpdGhOZXcKLW9u
ZXZlbnQgaW50ZXJmYWNlTmFtZT1XTUxPbkV2ZW50RWxlbWVudCwgY3JlYXRlV2l0aE5ldwotb3B0
Z3JvdXAgaW50ZXJmYWNlTmFtZT1XTUxPcHRHcm91cEVsZW1lbnQsIGNyZWF0ZVdpdGhOZXcKLW9w
dGlvbiBjcmVhdGVXaXRoTmV3Ci1wIGNyZWF0ZVdpdGhOZXcKLXBvc3RmaWVsZCBjcmVhdGVXaXRo
TmV3Ci1wcmV2IGNyZWF0ZVdpdGhOZXcKLXJlZnJlc2ggY3JlYXRlV2l0aE5ldwotc2VsZWN0IGNy
ZWF0ZVdpdGhOZXcKLXNldHZhciBjcmVhdGVXaXRoTmV3Ci10YWJsZSBjcmVhdGVXaXRoTmV3Citp
bnNlcnRlZExlZ2VuZCBpbnRlcmZhY2VOYW1lPVdNTEluc2VydGVkTGVnZW5kRWxlbWVudAorbWV0
YQorbm9vcAorb25ldmVudCBpbnRlcmZhY2VOYW1lPVdNTE9uRXZlbnRFbGVtZW50CitvcHRncm91
cCBpbnRlcmZhY2VOYW1lPVdNTE9wdEdyb3VwRWxlbWVudAorb3B0aW9uCitwCitwb3N0ZmllbGQK
K3ByZXYKK3JlZnJlc2gKK3NlbGVjdAorc2V0dmFyCit0YWJsZQogdGQgaW50ZXJmYWNlTmFtZT1X
TUxFbGVtZW50Ci10ZW1wbGF0ZSBjcmVhdGVXaXRoTmV3Ci10aW1lciBjcmVhdGVXaXRoTmV3Cit0
ZW1wbGF0ZQordGltZXIKIHRyIGludGVyZmFjZU5hbWU9V01MRWxlbWVudApJbmRleDogV2ViQ29y
ZS93bWwvV01MVGFza0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFRh
c2tFbGVtZW50LmNwcAkocmV2aXNpb24gNjYzMzcpCisrKyBXZWJDb3JlL3dtbC9XTUxUYXNrRWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDExIEBAIFdNTFRhc2tFbGVtZW50
OjpXTUxUYXNrRWxlbWVudChjb25zdCBRdWEKIHsKIH0KIAorUGFzc1JlZlB0cjxXTUxUYXNrRWxl
bWVudD4gV01MVGFza0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIG5ldyBXTUxUYXNrRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCk7Cit9CisKIFdNTFRhc2tFbGVtZW50Ojp+V01MVGFza0VsZW1lbnQo
KQogewogfQpJbmRleDogV2ViQ29yZS93bWwvV01MVGFza0VsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3dtbC9XTUxUYXNrRWxlbWVudC5oCShyZXZpc2lvbiA2NjMzNykKKysrIFdlYkNv
cmUvd21sL1dNTFRhc2tFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAg
Y2xhc3MgV01MU2V0dmFyRWxlbWVudDsKIAogY2xhc3MgV01MVGFza0VsZW1lbnQgOiBwdWJsaWMg
V01MRWxlbWVudCB7CiBwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V01MVGFza0VsZW1l
bnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOworCiAg
ICAgV01MVGFza0VsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
KTsKICAgICB2aXJ0dWFsIH5XTUxUYXNrRWxlbWVudCgpOwogCkluZGV4OiBXZWJDb3JlL3dtbC9X
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvd21sL1dNTFRlbXBs
YXRlRWxlbWVudC5jcHAJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01MVGVtcGxh
dGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTEgQEAgV01MVGVtcGxh
dGVFbGVtZW50Ojp+V01MVGVtcGxhdGVFbGVtZW50KAogewogfQogCitQYXNzUmVmUHRyPFdNTFRl
bXBsYXRlRWxlbWVudD4gV01MVGVtcGxhdGVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBuZXcgV01M
VGVtcGxhdGVFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KTsKK30KKwogdm9pZCBXTUxUZW1wbGF0
ZUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBX
TUxJbnRyaW5zaWNFdmVudFR5cGUgZXZlbnRUeXBlID0gV01MSW50cmluc2ljRXZlbnRVbmtub3du
OwpJbmRleDogV2ViQ29yZS93bWwvV01MVGVtcGxhdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS93bWwvV01MVGVtcGxhdGVFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2Vi
Q29yZS93bWwvV01MVGVtcGxhdGVFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXTUxUZW1wbGF0ZUVsZW1lbnQgOiBw
dWJsaWMgV01MRWxlbWVudCwgcHVibGljIFdNTEV2ZW50SGFuZGxpbmdFbGVtZW50IHsKIHB1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxUZW1wbGF0ZUVsZW1lbnQ+IGNyZWF0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTFRlbXBsYXRlRWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5XTUxUZW1wbGF0
ZUVsZW1lbnQoKTsKIApJbmRleDogV2ViQ29yZS93bWwvV01MVGltZXJFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3dtbC9XTUxUaW1lckVsZW1lbnQuY3BwCShyZXZpc2lvbiA2NjMz
NykKKysrIFdlYkNvcmUvd21sL1dNTFRpbWVyRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDYgKzQyLDExIEBAIFdNTFRpbWVyRWxlbWVudDo6V01MVGltZXJFbGVtZW50KGNvbnN0IFEK
IHsKIH0KIAorUGFzc1JlZlB0cjxXTUxUaW1lckVsZW1lbnQ+IFdNTFRpbWVyRWxlbWVudDo6Y3Jl
YXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gbmV3IFdNTFRpbWVyRWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCk7Cit9CisK
IHZvaWQgV01MVGltZXJFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0
dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBIVE1MTmFtZXM6Om5hbWVBdHRyKQpJbmRl
eDogV2ViQ29yZS93bWwvV01MVGltZXJFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS93
bWwvV01MVGltZXJFbGVtZW50LmgJKHJldmlzaW9uIDY2MzM3KQorKysgV2ViQ29yZS93bWwvV01M
VGltZXJFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDggQEAgY2xhc3MgV01M
Q2FyZEVsZW1lbnQ7CiAKIGNsYXNzIFdNTFRpbWVyRWxlbWVudCA6IHB1YmxpYyBXTUxFbGVtZW50
IHsKIHB1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXTUxUaW1lckVsZW1lbnQ+IGNyZWF0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKKwogICAgIFdNTFRpbWVyRWxlbWVu
dChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCopOwogCiAgICAgdmlydHVh
bCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKEF0dHJpYnV0ZSopOwo=
</data>
<flag name="review"
          id="54751"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>