<?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>140961</bug_id>
          
          <creation_ts>2015-01-27 14:55:45 -0800</creation_ts>
          <short_desc>Web Inspector: remove CSS.setPropertyText, CSS.toggleProperty and related dead code</short_desc>
          <delta_ts>2017-09-12 16:50:58 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176643</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064672</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-27 14:55:45 -0800</bug_when>
    <thetext>heh. wow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064675</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-01-27 14:56:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/19621042&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064678</commentid>
    <comment_count>2</comment_count>
      <attachid>245477</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-27 14:59:02 -0800</bug_when>
    <thetext>Created attachment 245477
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064745</commentid>
    <comment_count>3</comment_count>
      <attachid>245477</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-27 17:53:57 -0800</bug_when>
    <thetext>Comment on attachment 245477
Patch

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

Nice!

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:-1247
&gt; -    m_inspectorStyles.set(inspectorStyle-&gt;cssStyle(), inspectorStyle);

I think we can remove m_inspectorStyles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064799</commentid>
    <comment_count>4</comment_count>
      <attachid>245514</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-27 20:57:30 -0800</bug_when>
    <thetext>Created attachment 245514
Removed a few more members</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065020</commentid>
    <comment_count>5</comment_count>
      <attachid>245514</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-28 13:45:01 -0800</bug_when>
    <thetext>Comment on attachment 245514
Removed a few more members

Clearing flags on attachment: 245514

Committed r179286: &lt;http://trac.webkit.org/changeset/179286&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065021</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-28 13:45:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245477</attachid>
            <date>2015-01-27 14:59:02 -0800</date>
            <delta_ts>2015-01-27 20:57:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140961-20150127145739.patch</filename>
            <type>text/plain</type>
            <size>77755</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NTdmMjdhY2JlYmE1OGUxOGJkZmY0YjEzZmY3MTE1ODgwZjc1OTg0Li40M2NiNDIyYTRlNWJiMDg0
YTQzMGI5NjMwMmQzODg2NmJjYmQ1YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wMS0yNyAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVtb3ZlIENTUy5zZXRQcm9wZXJ0eVRl
eHQsIENTUy50b2dnbGVQcm9wZXJ0eSBhbmQgcmVsYXRlZCBkZWFkIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDk2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0NTUy5qc29uOiBSZW1vdmUgdW51c2VkIHByb3RvY29sIG1ldGhvZHMuCisKIDIwMTUtMDEtMjYg
IEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRmFzdE1h
bGxvYyAoYm1hbGxvYykgaW5zdGVhZCBvZiBCbG9ja0FsbG9jYXRvciBmb3IgR0MgcGFnZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhOWI1ZmFhMjZhMzdhNzU2MzlkNTJkZmY1NGVjZmUwMjdhYjNjYzliLi42YjYx
OGQ5Y2IwNDJjNGViOTk1NGQ0NDA3MWEzMzk1OTY2ZDYyMzAwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzMgQEAKKzIwMTUtMDEtMjcgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24u
ZWR1PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBDU1Muc2V0UHJvcGVydHlUZXh0
LCBDU1MudG9nZ2xlUHJvcGVydHkgYW5kIHJlbGF0ZWQgZGVhZCBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA5NjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2
aW9yIGNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnNldFByb3BlcnR5VGV4dCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6dG9nZ2xlUHJvcGVydHkpOiBEZWxldGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclN0eWxlOjpuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0UHJvcGVydHlU
ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnRv
Z2dsZVByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxl
U2hlZXQ6OnJlbWVtYmVySW5zcGVjdG9yU3R5bGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6Zm9yZ2V0SW5zcGVjdG9yU3R5bGUpOiBEZWxldGVkLgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0Lmg6CisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5oOiBSZW1vdmVkLgorCiAyMDE1LTAx
LTI2ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIEZh
c3RNYWxsb2MgKGJtYWxsb2MpIGluc3RlYWQgb2YgQmxvY2tBbGxvY2F0b3IgZm9yIEdDIHBhZ2Vz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCAyNzQ4YzE4MGJlZjZjZmJhMTg1MzFhMmM5NTBk
OTIyN2ExNjQ2ZmRlLi4wOThkZTI2ZjA2M2RkNjlmNjRmZDA1NThkZTEwZDFhZmVlNDNhNmYyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAxNS0wMS0yNyAgQnJp
YW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogcmVtb3ZlIENTUy5zZXRQcm9wZXJ0eVRleHQsIENTUy50b2dnbGVQcm9wZXJ0eSBhbmQg
cmVsYXRlZCBkZWFkIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0MDk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFNldHRlcnMgZm9yIENTU1Byb3BlcnR5IChleGNlcHQgb3ZlcnJpZGUpIGFyZSBu
b3QgdXNlZCwgc28gZGVsZXRlIHRoZW0uIFRoZXNlIHNldHRlcnMKKyAgICAgICAgYW5kIHRoZWly
IGNhbGxlZXMgaW4gRE9NTm9kZVN0eWxlcyB3ZXJlIHRoZSBvbmx5IGNsaWVudHMgb2YgdGhlIHJl
bW92ZWQgcHJvdG9jb2wgY29tbWFuZHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVs
cy9DU1NQcm9wZXJ0eS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90
b3R5cGUudXBkYXRlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5
cGUuZ2V0IG5hbWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlw
ZS5nZXQgdmFsdWUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlw
ZS5nZXQgcHJpb3JpdHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3Rv
dHlwZS5oYXNPdGhlclZlbmRvck5hbWVPcktleXdvcmQpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1Byb3BlcnR5LnByb3RvdHlwZS5zZXQgdGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldCBuYW1lKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHZhbHVlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IGltcG9y
dGFudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90
eXBlLnNldCBwcmlvcml0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkucHJvdG90eXBlLnNldCBlbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuYWRkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYklu
c3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUucmVtb3ZlKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuX3VwZGF0ZVByb3BlcnR5U29vbi5w
ZXJmb3JtVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0
eS5wcm90b3R5cGUuX3VwZGF0ZVByb3BlcnR5U29vbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLl9jYW5jZWxQZW5kaW5nVXBkYXRlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9u
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBl
LmFkZFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZURl
Y2xhcmF0aW9uLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgICog
VXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5hZGRFbXB0eVJ1bGUpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLmFkZFJ1bGUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLmNoYW5nZVByb3BlcnR5
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlw
ZS5jaGFuZ2VQcm9wZXJ0eVRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TU5vZGVTdHlsZXMucHJvdG90eXBlLmNoYW5nZVByb3BlcnR5RW5hYmxlZFN0YXRlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5hZGRQcm9w
ZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90
b3R5cGUucmVtb3ZlUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TU5vZGVTdHlsZXMucHJvdG90eXBlLl9oYW5kbGVQcm9wZXJ0eUNoYW5nZSk6IERlbGV0ZWQuCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNi4wL0luc3BlY3RvckJhY2tl
bmRDb21tYW5kcy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS83
LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanM6CisgICAgICAg
ICogVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlLl9uZXdSdWxl
Q2xpY2tlZCk6CisgICAgICAgICogVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy02LjAuanNvbjoKKyAg
ICAgICAgKiBWZXJzaW9ucy9JbnNwZWN0b3ItaU9TLTcuMC5qc29uOgorICAgICAgICAqIFZlcnNp
b25zL0luc3BlY3Rvci1pT1MtOC4wLmpzb246CisKIDIwMTUtMDEtMjMgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPYmplY3Qg
UHJldmlld3MgaW4gdGhlIENvbnNvbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpzb24gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0NTUy5qc29uCmluZGV4IGI3Mzc2ZTYwZTlkZDg5YzgzM2Y5YTU3MDVm
ODljZDdmYWQ5NTQ5MzQuLmNjOGQ3MzJlNGVmYmQyYTdiNWYxMDZhNjU4MDY2MzI3MWQwOWRiMzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NT
Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DU1Mu
anNvbgpAQCAtMzE4LDMxICszMTgsNiBAQAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNl
dHMgdGhlIG5ldyA8Y29kZT50ZXh0PC9jb2RlPiBmb3IgdGhlIHJlc3BlY3RpdmUgc3R5bGUuIgog
ICAgICAgICB9LAogICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0eVRl
eHQiLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzdHlsZUlkIiwgIiRyZWYiOiAiQ1NTU3R5bGVJZCIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogIm92ZXJ3cml0ZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3Vs
dGluZyBzdHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdGV4dCBtb2RpZmljYXRpb24uIiB9Ci0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIG5ldyA8Y29k
ZT50ZXh0PC9jb2RlPiBmb3IgYSBwcm9wZXJ0eSBpbiB0aGUgcmVzcGVjdGl2ZSBzdHlsZSwgYXQg
b2Zmc2V0IDxjb2RlPnByb3BlcnR5SW5kZXg8L2NvZGU+LiBJZiA8Y29kZT5vdmVyd3JpdGU8L2Nv
ZGU+IGlzIDxjb2RlPnRydWU8L2NvZGU+LCBhIHByb3BlcnR5IGF0IHRoZSBnaXZlbiBvZmZzZXQg
aXMgb3ZlcndyaXR0ZW4sIG90aGVyd2lzZSBpbnNlcnRlZC4gPGNvZGU+dGV4dDwvY29kZT4gZW50
aXJlbHkgcmVwbGFjZXMgdGhlIHByb3BlcnR5IDxjb2RlPm5hbWU6IHZhbHVlPC9jb2RlPi4iCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInRvZ2dsZVByb3BlcnR5
IiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic3R5bGVJZCIsICIkcmVmIjogIkNTU1N0eWxlSWQiIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJwcm9wZXJ0eUluZGV4IiwgInR5cGUiOiAiaW50ZWdlciIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImRpc2FibGUiLCAidHlwZSI6ICJib29sZWFuIiB9Ci0gICAgICAgICAg
ICBdLAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJzdHlsZSIsICIkcmVmIjogIkNTU1N0eWxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSByZXN1bHRp
bmcgc3R5bGUgYWZ0ZXIgdGhlIHByb3BlcnR5IHRvZ2dsaW5nLiIgfQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUb2dnbGVzIHRoZSBwcm9wZXJ0eSBpbiB0aGUg
cmVzcGVjdGl2ZSBzdHlsZSwgYXQgb2Zmc2V0IDxjb2RlPnByb3BlcnR5SW5kZXg8L2NvZGU+LiBU
aGUgPGNvZGU+ZGlzYWJsZTwvY29kZT4gcGFyYW1ldGVyIGRlbm90ZXMgd2hldGhlciB0aGUgcHJv
cGVydHkgc2hvdWxkIGJlIGRpc2FibGVkIChpLmUuIHJlbW92ZWQgZnJvbSB0aGUgc3R5bGUgZGVj
bGFyYXRpb24pLiBJZiA8Y29kZT5kaXNhYmxlID09IGZhbHNlPC9jb2RlPiwgdGhlIHByb3BlcnR5
IGdldHMgcHV0IGJhY2sgaW50byBpdHMgb3JpZ2luYWwgcGxhY2UgaW4gdGhlIHN0eWxlIGRlY2xh
cmF0aW9uLiIKLSAgICAgICAgfSwKLSAgICAgICAgewogICAgICAgICAgICAgIm5hbWUiOiAic2V0
UnVsZVNlbGVjdG9yIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAicnVsZUlkIiwgIiRyZWYiOiAiQ1NTUnVsZUlkIiB9LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBhYTI3YjAxNTRiOThkNjMzMjZlOTMyNjU0ZWMwMDY0ODBmNjMzOGZiLi43
Yzg0YWUwYTBiMWNlNDM5N2Q4ZjZhODAyNWM0NzBlMjQ0MGQ5MTc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMTc3Myw3ICsxNzczLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGluc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlQWdlbnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCi0gICAg
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAKICAgICBpbnNwZWN0b3IvSW5z
cGVjdG9yVGltZWxpbmVBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yV29ya2VyQWdl
bnQuY3BwCiAgICAgaW5zcGVjdG9yL0luc3RydW1lbnRpbmdBZ2VudHMuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagppbmRleCBhZWQyYzhlOWEx
ZTFkZDUzNjRiMTM4NmMxZWUyZmM5ZDliZGQ0OTBiLi41ZjE4Zjk3ZmM2NGIzM2RjMjFjYTZjMTRl
ZjJkMTNjNGU5ZDhjMDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKQEAgLTE4MDk0LDE0ICsxODA5NCw2IEBAIO+7vzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+
dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0
aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRy
dWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAiPgotICAg
ICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0
Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAgICAg
PEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9y
bSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KLSAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+Ci0g
ICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBs
YXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRp
b249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8V2luMzInIj50cnVl
PC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2V8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CkBAIC0yMTMwMCw3ICsyMTI5Miw2IEBAIO+7vzw/eG1sIHZlcnNpb249
IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNw
ZWN0b3JcSW5zcGVjdG9yUGFnZUFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIu
LlxpbnNwZWN0b3JcSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oIiAvPgogICAgIDxDbEluY2x1ZGUg
SW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuaCIgLz4KLSAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JUaW1lbGlu
ZUFnZW50LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVj
dG9yV2ViQWdlbnRCYXNlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0
b3JcSW5zcGVjdG9yV29ya2VyQWdlbnQuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwppbmRleCA4MjFmODU4YmJm
OWQwMGUwN2VhYjNiNWY5ZmVkYjY1YmU2OTI2MGI4Li4zOGI0MjJiNDYwZjJkNjk5OGI0NjEwNzli
NjJhNDBmZWEyZjJlYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCkBAIC00Njg5LDkgKzQ2ODksNiBAQCDvu788
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIj4KICAgICAgIDxGaWx0
ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCI+Ci0gICAg
ICA8RmlsdGVyPmluc3BlY3RvcjwvRmlsdGVyPgotICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIj4K
ICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0x
MTg5NSw5ICsxMTg5Miw2IEBAIO+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04
Ij8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVT
aGVldC5oIj4KICAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1
ZGU+Ci0gICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yLmgiPgotICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KLSAgICA8L0Ns
SW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JU
aW1lbGluZUFnZW50LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8
L0NsSW5jbHVkZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxOTc4Y2ExOGU2M2M5NDMxYzI5YmIwYTcxOWU2NjZmNTMxOTk5MjUz
Li4yZDEyZmIzZWI1MDk0MWY3NzZjNmNmYmFiZTgyOGUwMDdjYzhhOTA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTUwLDgg
KzI1NTAsNiBAQAogCQk4MUFDNkMzNjEzMUM1N0QzMDAwOUE3RTAgLyogU3RyaW5nQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQUM2QzM1
MTMxQzU3RDMwMDA5QTdFMCAvKiBTdHJpbmdDYWxsYmFjay5oICovOyB9OwogCQk4MUJFMjBEMzEx
RjRCQzMyMDA5MTVERkEgLyogSlNJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQkUyMEE4MTFGNEI2NkYwMDkxNURGQSAvKiBKU0lEQkN1
cnNvci5oICovOyB9OwogCQk4MUY2NUZGNjEzNzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUY2NUZGNTEz
Nzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODI4ODlCNEMxM0M2MjM5MjAwOUE2MTU2IC8qIEluc3Bl
Y3RvclN0eWxlVGV4dEVkaXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4Mjg4OUI0QTEzQzYyMzkyMDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yLmNwcCAqLzsgfTsKLQkJODI4ODlCNEQxM0M2MjM5MjAwOUE2MTU2IC8qIEluc3Bl
Y3RvclN0eWxlVGV4dEVkaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODI4ODlCNEIxM0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4
dEVkaXRvci5oICovOyB9OwogCQk4MkFCMTc0MzEyNEI5OUVDMDBDNTA2OUQgLyogSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODJBQjE3NDExMjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3RvckNTU0FnZW50LmNwcCAqLzsg
fTsKIAkJODJBQjE3NDQxMjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3RvckNTU0FnZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkFCMTc0MjEyNEI5
OUVDMDBDNTA2OUQgLyogSW5zcGVjdG9yQ1NTQWdlbnQuaCAqLzsgfTsKIAkJODJBQjE3NzMxMjVD
ODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxlU2hlZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODJBQjE3NkYxMjVDODI2NzAwQzUwNjlEIC8q
IEluc3BlY3RvclN0eWxlU2hlZXQuY3BwICovOyB9OwpAQCAtOTc0Nyw4ICs5NzQ1LDYgQEAKIAkJ
ODFCRTIwQTgxMUY0QjY2RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCQ3Vyc29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgxRjY1RkY1MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgyMjU0MzJDQTlENEI0Q0Y0NjI4RUM3RiAvKiBKU0JlZm9yZVVubG9hZEV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQmVmb3JlVW5sb2Fk
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4Mjg4OUI0QTEzQzYyMzky
MDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgyODg5QjRCMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNw
ZWN0b3JTdHlsZVRleHRFZGl0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgyQUIxNzQxMTI0Qjk5RUMwMEM1MDY5RCAvKiBJbnNwZWN0b3JDU1NBZ2VudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDU1NBZ2VudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgyQUIxNzQyMTI0Qjk5RUMwMEM1MDY5RCAvKiBJ
bnNwZWN0b3JDU1NBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNw
ZWN0b3JDU1NBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MkFCMTc2RjEy
NUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1Mjk1LDggKzE1MjkxLDYgQEAKIAkJCQk4MkFCMTc3MjEy
NUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5oICovLAogCQkJCTgyQUIx
NzZGMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQk4
MkFCMTc3MDEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5oICovLAotCQkJ
CTgyODg5QjRBMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3Bw
ICovLAotCQkJCTgyODg5QjRCMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRF
ZGl0b3IuaCAqLywKIAkJCQk3NTQxMzNBOTEwMkUwMEY0MDAwNzVEMDAgLyogSW5zcGVjdG9yVGlt
ZWxpbmVBZ2VudC5jcHAgKi8sCiAJCQkJNzU0MTMzQTcxMDJFMDBFODAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCAqLywKIAkJCQlBNTkzQ0Y4QTE4NDA1MzUyMDBCRkNFMjcgLyog
SW5zcGVjdG9yV2ViQWdlbnRCYXNlLmggKi8sCkBAIC0yNDc1Niw3ICsyNDc1MCw2IEBACiAJCQkJ
OTlDQzBCNjcxOEJFOUYxNTAwNkNFQkNDIC8qIEluc3BlY3RvclJlcGxheUFnZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4MkFCMTc3NjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yUmVzb3Vy
Y2VBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODJBQjE3NzQxMjVDODI2NzAwQzUwNjlEIC8q
IEluc3BlY3RvclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAotCQkJCTgyODg5QjREMTNDNjIz
OTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTc1NDEzM0E4MTAyRTAwRTgwMDA3NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNTkzQ0Y4QjE4NDA1MzUyMDBCRkNFMjcgLyogSW5zcGVjdG9y
V2ViQWdlbnRCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGMzgxMEMxQzEzNjVBNDk2MDBFRDZF
MzMgLyogSW5zcGVjdG9yV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyMjksNyAr
MjgyMjIsNiBAQAogCQkJCTk5Q0MwQjY2MThCRTlGMTUwMDZDRUJDQyAvKiBJbnNwZWN0b3JSZXBs
YXlBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3NTEyNUM4MjY3MDBDNTA2OUQg
LyogSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MkFCMTc3
MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk4Mjg4OUI0QzEzQzYyMzkyMDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRp
dG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTc1NDEzM0FBMTAyRTAwRjQwMDA3NUQwMCAvKiBJ
bnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzODEwQzFCMTM2
NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlGMzUwQjczNTEzRjEzNzdEMDA4ODBDNDMgLyogSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxs
SW5PbmUuY3BwCmluZGV4IGMwMjExZGJmMTllNDRkZDJiNTJmYTJhYTgxZjgzZjFiOWY5N2UzMjcu
LmEyYTI2NmMzNTJkYTg0ZGRlZTdmYzBiNjk1ZjU0NTU1YmE1MmU5NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcApAQCAtNTAsNyArNTAsNiBA
QAogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9y
UmVzb3VyY2VBZ2VudC5jcHAiCiAjaW5jbHVkZSAiSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAiCi0j
aW5jbHVkZSAiSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCIKICNpbmNsdWRlICJJbnNwZWN0
b3JUaW1lbGluZUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAi
CiAjaW5jbHVkZSAiSW5zdHJ1bWVudGluZ0FnZW50cy5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBlYTNlZTJjN2Q0NTI1YWE4YjQ3
NjIzM2IxOTY2MjRhMTdiMzMzN2E5Li5kZTExN2MxMGJhNGYzNDRiYzczMWExZDlmNDc5MDEwZDhk
ODU5MGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHAKQEAgLTI1OSw5OSArMjU5LDYgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgbV9vbGRUZXh0
OwogfTsKIAotY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQ6OlNldFByb3BlcnR5VGV4dEFjdGlvbiBm
aW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JDU1NBZ2VudDo6U3R5bGVTaGVldEFjdGlvbiB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoU2V0UHJvcGVydHlUZXh0QWN0aW9uKTsKLXB1YmxpYzoKLSAg
ICBTZXRQcm9wZXJ0eVRleHRBY3Rpb24oSW5zcGVjdG9yU3R5bGVTaGVldCogc3R5bGVTaGVldCwg
Y29uc3QgSW5zcGVjdG9yQ1NTSWQmIGNzc0lkLCB1bnNpZ25lZCBwcm9wZXJ0eUluZGV4LCBjb25z
dCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlKQotICAgICAgICA6IEluc3BlY3RvckNTU0Fn
ZW50OjpTdHlsZVNoZWV0QWN0aW9uKEFTQ0lJTGl0ZXJhbCgiU2V0UHJvcGVydHlUZXh0IiksIHN0
eWxlU2hlZXQpCi0gICAgICAgICwgbV9jc3NJZChjc3NJZCkKLSAgICAgICAgLCBtX3Byb3BlcnR5
SW5kZXgocHJvcGVydHlJbmRleCkKLSAgICAgICAgLCBtX3RleHQodGV4dCkKLSAgICAgICAgLCBt
X292ZXJ3cml0ZShvdmVyd3JpdGUpCi0gICAgewotICAgIH0KLQotICAgIHZpcnR1YWwgU3RyaW5n
IHRvU3RyaW5nKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBtZXJnZUlkKCkgKyAi
OiAiICsgbV9vbGRUZXh0ICsgIiAtPiAiICsgbV90ZXh0OwotICAgIH0KLQotICAgIHZpcnR1YWwg
Ym9vbCBwZXJmb3JtKEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
cmV0dXJuIHJlZG8oZWMpOwotICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCB1bmRvKEV4Y2VwdGlv
bkNvZGUmIGVjKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgU3RyaW5nIHBsYWNlaG9sZGVyOwot
ICAgICAgICByZXR1cm4gbV9zdHlsZVNoZWV0LT5zZXRQcm9wZXJ0eVRleHQobV9jc3NJZCwgbV9w
cm9wZXJ0eUluZGV4LCBtX292ZXJ3cml0ZSA/IG1fb2xkVGV4dCA6ICIiLCB0cnVlLCAmcGxhY2Vo
b2xkZXIsIGVjKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgcmVkbyhFeGNlcHRpb25Db2Rl
JiBlYykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIFN0cmluZyBvbGRUZXh0OwotICAgICAgICBi
b29sIHJlc3VsdCA9IG1fc3R5bGVTaGVldC0+c2V0UHJvcGVydHlUZXh0KG1fY3NzSWQsIG1fcHJv
cGVydHlJbmRleCwgbV90ZXh0LCBtX292ZXJ3cml0ZSwgJm9sZFRleHQsIGVjKTsKLSAgICAgICAg
bV9vbGRUZXh0ID0gb2xkVGV4dC5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICAgICAgLy8gRklYTUU6
IHJlbW92ZSB0aGlzIG9uY2UgdGhlIG1vZGVsIGhhbmRsZXMgdGhpcyBjYXNlLgotICAgICAgICBp
ZiAoIW1fb2xkVGV4dC5lbmRzV2l0aCgnOycpKQotICAgICAgICAgICAgbV9vbGRUZXh0LmFwcGVu
ZCgnOycpOwotCi0gICAgICAgIHJldHVybiByZXN1bHQ7Ci0gICAgfQotCi0gICAgdmlydHVhbCBT
dHJpbmcgbWVyZ2VJZCgpIG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIlNldFByb3BlcnR5VGV4dCAlczoldTolcyIsIG1fc3R5bGVTaGVldC0+aWQoKS51dGY4
KCkuZGF0YSgpLCBtX3Byb3BlcnR5SW5kZXgsIG1fb3ZlcndyaXRlID8gInRydWUiIDogImZhbHNl
Iik7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIG1lcmdlKHN0ZDo6dW5pcXVlX3B0cjxBY3Rp
b24+IGFjdGlvbikgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIEFTU0VSVChhY3Rpb24tPm1lcmdl
SWQoKSA9PSBtZXJnZUlkKCkpOwotCi0gICAgICAgIFNldFByb3BlcnR5VGV4dEFjdGlvbiogb3Ro
ZXIgPSBzdGF0aWNfY2FzdDxTZXRQcm9wZXJ0eVRleHRBY3Rpb24qPihhY3Rpb24uZ2V0KCkpOwot
ICAgICAgICBtX3RleHQgPSBvdGhlci0+bV90ZXh0OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBJ
bnNwZWN0b3JDU1NJZCBtX2Nzc0lkOwotICAgIHVuc2lnbmVkIG1fcHJvcGVydHlJbmRleDsKLSAg
ICBTdHJpbmcgbV90ZXh0OwotICAgIFN0cmluZyBtX29sZFRleHQ7Ci0gICAgYm9vbCBtX292ZXJ3
cml0ZTsKLX07Ci0KLWNsYXNzIEluc3BlY3RvckNTU0FnZW50OjpUb2dnbGVQcm9wZXJ0eUFjdGlv
biBmaW5hbCA6IHB1YmxpYyBJbnNwZWN0b3JDU1NBZ2VudDo6U3R5bGVTaGVldEFjdGlvbiB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVG9nZ2xlUHJvcGVydHlBY3Rpb24pOwotcHVibGljOgot
ICAgIFRvZ2dsZVByb3BlcnR5QWN0aW9uKEluc3BlY3RvclN0eWxlU2hlZXQqIHN0eWxlU2hlZXQs
IGNvbnN0IEluc3BlY3RvckNTU0lkJiBjc3NJZCwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgYm9v
bCBkaXNhYmxlKQotICAgICAgICA6IEluc3BlY3RvckNTU0FnZW50OjpTdHlsZVNoZWV0QWN0aW9u
KEFTQ0lJTGl0ZXJhbCgiVG9nZ2xlUHJvcGVydHkiKSwgc3R5bGVTaGVldCkKLSAgICAgICAgLCBt
X2Nzc0lkKGNzc0lkKQotICAgICAgICAsIG1fcHJvcGVydHlJbmRleChwcm9wZXJ0eUluZGV4KQot
ICAgICAgICAsIG1fZGlzYWJsZShkaXNhYmxlKQotICAgIHsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IGJvb2wgcGVyZm9ybShFeGNlcHRpb25Db2RlJiBlYykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAg
IHJldHVybiByZWRvKGVjKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgdW5kbyhFeGNlcHRp
b25Db2RlJiBlYykgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3N0eWxlU2hlZXQt
PnRvZ2dsZVByb3BlcnR5KG1fY3NzSWQsIG1fcHJvcGVydHlJbmRleCwgIW1fZGlzYWJsZSwgZWMp
OwotICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCByZWRvKEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVy
cmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc3R5bGVTaGVldC0+dG9nZ2xlUHJvcGVydHko
bV9jc3NJZCwgbV9wcm9wZXJ0eUluZGV4LCBtX2Rpc2FibGUsIGVjKTsKLSAgICB9Ci0KLXByaXZh
dGU6Ci0gICAgSW5zcGVjdG9yQ1NTSWQgbV9jc3NJZDsKLSAgICB1bnNpZ25lZCBtX3Byb3BlcnR5
SW5kZXg7Ci0gICAgYm9vbCBtX2Rpc2FibGU7Ci19OwotCiBjbGFzcyBJbnNwZWN0b3JDU1NBZ2Vu
dDo6U2V0UnVsZVNlbGVjdG9yQWN0aW9uIGZpbmFsIDogcHVibGljIEluc3BlY3RvckNTU0FnZW50
OjpTdHlsZVNoZWV0QWN0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXRSdWxlU2Vs
ZWN0b3JBY3Rpb24pOwogcHVibGljOgpAQCAtNzMzLDM4ICs2NDAsNiBAQCB2b2lkIEluc3BlY3Rv
ckNTU0FnZW50OjpzZXRTdHlsZVRleHQoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBS
ZWZQdHI8SW5zcAogICAgIGVycm9yU3RyaW5nID0gSW5zcGVjdG9yRE9NQWdlbnQ6OnRvRXJyb3JT
dHJpbmcoZWMpOwogfQogCi12b2lkIEluc3BlY3RvckNTU0FnZW50OjpzZXRQcm9wZXJ0eVRleHQo
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYm
IGZ1bGxTdHlsZUlkLCBpbnQgcHJvcGVydHlJbmRleCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IG92ZXJ3cml0ZSwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiBy
ZXN1bHQpCi17Ci0gICAgSW5zcGVjdG9yQ1NTSWQgY29tcG91bmRJZChmdWxsU3R5bGVJZC5jb3B5
UmVmKCkpOwotICAgIEFTU0VSVCghY29tcG91bmRJZC5pc0VtcHR5KCkpOwotCi0gICAgSW5zcGVj
dG9yU3R5bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldCA9IGFzc2VydFN0eWxlU2hlZXRGb3JJ
ZChlcnJvclN0cmluZywgY29tcG91bmRJZC5zdHlsZVNoZWV0SWQoKSk7Ci0gICAgaWYgKCFpbnNw
ZWN0b3JTdHlsZVNoZWV0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBFeGNlcHRpb25Db2RlIGVj
ID0gMDsKLSAgICBib29sIHN1Y2Nlc3MgPSBtX2RvbUFnZW50LT5oaXN0b3J5KCktPnBlcmZvcm0o
c3RkOjptYWtlX3VuaXF1ZTxTZXRQcm9wZXJ0eVRleHRBY3Rpb24+KGluc3BlY3RvclN0eWxlU2hl
ZXQsIGNvbXBvdW5kSWQsIHByb3BlcnR5SW5kZXgsIHRleHQsIG92ZXJ3cml0ZSksIGVjKTsKLSAg
ICBpZiAoc3VjY2VzcykKLSAgICAgICAgcmVzdWx0ID0gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVp
bGRPYmplY3RGb3JTdHlsZShpbnNwZWN0b3JTdHlsZVNoZWV0LT5zdHlsZUZvcklkKGNvbXBvdW5k
SWQpKTsKLSAgICBlcnJvclN0cmluZyA9IEluc3BlY3RvckRPTUFnZW50Ojp0b0Vycm9yU3RyaW5n
KGVjKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6dG9nZ2xlUHJvcGVydHkoRXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiYmIGZ1bGxT
dHlsZUlkLCBpbnQgcHJvcGVydHlJbmRleCwgYm9vbCBkaXNhYmxlLCBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkKLXsKLSAgICBJbnNwZWN0b3JDU1NJ
ZCBjb21wb3VuZElkKGZ1bGxTdHlsZUlkLmNvcHlSZWYoKSk7Ci0gICAgQVNTRVJUKCFjb21wb3Vu
ZElkLmlzRW1wdHkoKSk7Ci0KLSAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHls
ZVNoZWV0ID0gYXNzZXJ0U3R5bGVTaGVldEZvcklkKGVycm9yU3RyaW5nLCBjb21wb3VuZElkLnN0
eWxlU2hlZXRJZCgpKTsKLSAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgc3VjY2VzcyA9IG1f
ZG9tQWdlbnQtPmhpc3RvcnkoKS0+cGVyZm9ybShzdGQ6Om1ha2VfdW5pcXVlPFRvZ2dsZVByb3Bl
cnR5QWN0aW9uPihpbnNwZWN0b3JTdHlsZVNoZWV0LCBjb21wb3VuZElkLCBwcm9wZXJ0eUluZGV4
LCBkaXNhYmxlKSwgZWMpOwotICAgIGlmIChzdWNjZXNzKQotICAgICAgICByZXN1bHQgPSBpbnNw
ZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclN0eWxlKGluc3BlY3RvclN0eWxlU2hlZXQt
PnN0eWxlRm9ySWQoY29tcG91bmRJZCkpOwotICAgIGVycm9yU3RyaW5nID0gSW5zcGVjdG9yRE9N
QWdlbnQ6OnRvRXJyb3JTdHJpbmcoZWMpOwotfQotCiB2b2lkIEluc3BlY3RvckNTU0FnZW50Ojpz
ZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiYmIGZ1bGxSdWxlSWQsIGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIFJlZlB0
cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+JiByZXN1bHQpCiB7CiAgICAgSW5z
cGVjdG9yQ1NTSWQgY29tcG91bmRJZChmdWxsUnVsZUlkLmNvcHlSZWYoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IGEyYTc1OGQyODlhZDI0
YzE1YjNiOTA2NjU5Y2FiY2I5YWUxYjllMmQuLjg4NjY0Yzg5NjBlM2ZjYmZmYzI4NmJjYzU5Zjk0
MjFiZWJlNTBhYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5oCkBAIC0xMTYsOCArMTE2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRT
dHlsZVNoZWV0VGV4dChFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgc3R5bGVTaGVldElkLCBT
dHJpbmcqIHJlc3VsdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlU2hlZXRU
ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0SWQsIGNvbnN0IFN0cmlu
ZyYgdGV4dCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0eWxlVGV4dChFcnJvclN0
cmluZyYsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdD4mJiBzdHlsZUlk
LCBjb25zdCBTdHJpbmcmIHRleHQsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNT
U1N0eWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UHJvcGVydHlU
ZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0
PiYmIHN0eWxlSWQsIGludCBwcm9wZXJ0eUluZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wg
b3ZlcndyaXRlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NTdHlsZT4mIHJl
c3VsdCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHRvZ2dsZVByb3BlcnR5KEVycm9yU3Ry
aW5nJiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0PiYmIHN0eWxlSWQs
IGludCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OkNTU1N0eWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UnVsZVNlbGVjdG9yKEVycm9yU3RyaW5nJiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5z
cGVjdG9yT2JqZWN0PiYmIHJ1bGVJZCwgY29uc3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIGFkZFJ1bGUoRXJyb3JTdHJpbmcmLCBpbnQgY29udGV4dE5vZGVJZCwgY29u
c3QgU3RyaW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NT
UnVsZT4mIHJlc3VsdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGdldFN1cHBvcnRlZENT
U1Byb3BlcnRpZXMoRXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJy
YXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NQcm9wZXJ0eUluZm8+PiYgcmVzdWx0KSBv
dmVycmlkZTsKQEAgLTEyOCw4ICsxMjYsNiBAQCBwcml2YXRlOgogICAgIGNsYXNzIFN0eWxlU2hl
ZXRBY3Rpb247CiAgICAgY2xhc3MgU2V0U3R5bGVTaGVldFRleHRBY3Rpb247CiAgICAgY2xhc3Mg
U2V0U3R5bGVUZXh0QWN0aW9uOwotICAgIGNsYXNzIFNldFByb3BlcnR5VGV4dEFjdGlvbjsKLSAg
ICBjbGFzcyBUb2dnbGVQcm9wZXJ0eUFjdGlvbjsKICAgICBjbGFzcyBTZXRSdWxlU2VsZWN0b3JB
Y3Rpb247CiAgICAgY2xhc3MgQWRkUnVsZUFjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDM2MzFjMmI3MDA5YzY1M2M3
NWZhOWIxNTU3YjUwMTY5NmU3NTkwMDYuLmQ3YzVjNDk4YjhkNDY5NWU4NjA2YTk4NDNkNjI5Yjlk
MGFhNmQ3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAKQEAgLTMzMiwxMTQgKzMzMiw2IEBAIFJlZjxJbnNwZWN0b3I6OlByb3RvY29s
OjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU0NvbXB1dGVkU3R5bGVQcm9wZXJ0
CiAgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1bHQpOwogfQogCi0vLyBUaGlzIG1ldGhvZCBkb2Vz
IHRoZSBmb2xsb3dpbmcgcHJlcHJvY2Vzc2luZyBvZiB8cHJvcGVydHlUZXh0fCB3aXRoIHxvdmVy
d3JpdGV8ID09IGZhbHNlIGFuZCB8aW5kZXh8IHBhc3QgdGhlIGxhc3QgYWN0aXZlIHByb3BlcnR5
OgotLy8gLSBJZiB0aGUgbGFzdCBwcm9wZXJ0eSAoaWYgcHJlc2VudCkgaGFzIG5vIGNsb3Npbmcg
IjsiLCB0aGUgIjsiIGlzIHByZXBlbmRlZCB0byB0aGUgY3VycmVudCB8cHJvcGVydHlUZXh0fCB2
YWx1ZS4KLS8vIC0gQSBoZXVyaXN0aWMgZm9ybWF0dGluZyBpcyBhdHRlbXB0ZWQgdG8gcmV0YWlu
IHRoZSBzdHlsZSBzdHJ1Y3R1cmUuCi0vLwotLy8gVGhlIHByb3BlcnR5VGV4dCAoaWYgbm90IGVt
cHR5KSBpcyBjaGVja2VkIHRvIGJlIGEgdmFsaWQgc3R5bGUgZGVjbGFyYXRpb24gKGNvbnRhaW5p
bmcgYXQgbGVhc3Qgb25lIHByb3BlcnR5KS4gSWYgbm90LAotLy8gdGhlIG1ldGhvZCByZXR1cm5z
IGZhbHNlIChkZW5vdGluZyBhbiBlcnJvcikuCi1ib29sIEluc3BlY3RvclN0eWxlOjpzZXRQcm9w
ZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCBib29s
IG92ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBB
U1NFUlQobV9wYXJlbnRTdHlsZVNoZWV0KTsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNf
TE9DQUwoU3RyaW5nLCBib2d1c1Byb3BlcnR5TmFtZSwgKEFTQ0lJTGl0ZXJhbCgiLXdlYmtpdC1i
b2d1ei1wcm9wZXJ0ZWUiKSkpOwotCi0gICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQtPmVuc3Vy
ZVBhcnNlZERhdGFSZWFkeSgpKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGlmIChwcm9wZXJ0eVRleHQuc3RyaXBXaGl0
ZVNwYWNlKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgUmVmUHRyPE11dGFibGVTdHlsZVByb3BlcnRp
ZXM+IHRlbXBNdXRhYmxlU3R5bGUgPSBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpjcmVhdGUoKTsK
LSAgICAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gQ1NTUnVsZVNv
dXJjZURhdGE6OmNyZWF0ZShDU1NSdWxlU291cmNlRGF0YTo6U1RZTEVfUlVMRSk7Ci0gICAgICAg
IERvY3VtZW50KiBvd25lckRvY3VtZW50ID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYWdlU3R5bGVT
aGVldCgpID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5wYWdlU3R5bGVTaGVldCgpLT5vd25lckRvY3Vt
ZW50KCkgOiBudWxscHRyOwotICAgICAgICBjcmVhdGVDU1NQYXJzZXIob3duZXJEb2N1bWVudCkt
PnBhcnNlRGVjbGFyYXRpb24odGVtcE11dGFibGVTdHlsZS5nZXQoKSwgcHJvcGVydHlUZXh0ICsg
IiAiICsgYm9ndXNQcm9wZXJ0eU5hbWUgKyAiOiBub25lIiwgc291cmNlRGF0YSwgJm1fc3R5bGUt
PnBhcmVudFN0eWxlU2hlZXQoKS0+Y29udGVudHMoKSk7Ci0gICAgICAgIFZlY3RvcjxDU1NQcm9w
ZXJ0eVNvdXJjZURhdGE+JiBwcm9wZXJ0eURhdGEgPSBzb3VyY2VEYXRhLT5zdHlsZVNvdXJjZURh
dGEtPnByb3BlcnR5RGF0YTsKLSAgICAgICAgdW5zaWduZWQgcHJvcGVydHlDb3VudCA9IHByb3Bl
cnR5RGF0YS5zaXplKCk7Ci0KLSAgICAgICAgLy8gQXQgbGVhc3Qgb25lIHByb3BlcnR5ICsgdGhl
IGJvZ3VzIHByb3BlcnR5IGFkZGVkIGp1c3QgYWJvdmUgc2hvdWxkIGJlIHByZXNlbnQuCi0gICAg
ICAgIGlmIChwcm9wZXJ0eUNvdW50IDwgMikgewotICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJS
OwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gQ2hl
Y2sgZm9yIGEgcHJvcGVyIHByb3BlcnR5VGV4dCB0ZXJtaW5hdGlvbiAodGhlIHBhcnNlciBjb3Vs
ZCBhdCBsZWFzdCByZXN0b3JlIHRvIHRoZSBQUk9QRVJUWV9OQU1FIHN0YXRlKS4KLSAgICAgICAg
aWYgKHByb3BlcnR5RGF0YS5hdChwcm9wZXJ0eUNvdW50IC0gMSkubmFtZSAhPSBib2d1c1Byb3Bl
cnR5TmFtZSkgewotICAgICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgUmVmUHRyPENTU1J1bGVTb3VyY2VE
YXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKLSAgICBpZiAoIXNvdXJjZURh
dGEpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCi0gICAgU3RyaW5nIHRleHQ7Ci0gICAgYm9vbCBzdWNjZXNzID0gc3R5bGVUZXh0
KCZ0ZXh0KTsKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJS
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgVmVjdG9yPEluc3BlY3RvclN0
eWxlUHJvcGVydHk+IGFsbFByb3BlcnRpZXM7Ci0gICAgcG9wdWxhdGVBbGxQcm9wZXJ0aWVzKCZh
bGxQcm9wZXJ0aWVzKTsKLQotICAgIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvciBlZGl0b3IoJmFs
bFByb3BlcnRpZXMsICZtX2Rpc2FibGVkUHJvcGVydGllcywgdGV4dCwgbmV3TGluZUFuZFdoaXRl
c3BhY2VEZWxpbWl0ZXJzKCkpOwotICAgIGlmIChvdmVyd3JpdGUpIHsKLSAgICAgICAgaWYgKGlu
ZGV4ID49IGFsbFByb3BlcnRpZXMuc2l6ZSgpKSB7Ci0gICAgICAgICAgICBlYyA9IElOREVYX1NJ
WkVfRVJSOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgICpv
bGRUZXh0ID0gYWxsUHJvcGVydGllcy5hdChpbmRleCkucmF3VGV4dDsKLSAgICAgICAgZWRpdG9y
LnJlcGxhY2VQcm9wZXJ0eShpbmRleCwgcHJvcGVydHlUZXh0KTsKLSAgICB9IGVsc2UKLSAgICAg
ICAgZWRpdG9yLmluc2VydFByb3BlcnR5KGluZGV4LCBwcm9wZXJ0eVRleHQsIHNvdXJjZURhdGEt
PnJ1bGVCb2R5UmFuZ2UubGVuZ3RoKCkpOwotCi0gICAgcmV0dXJuIGFwcGx5U3R5bGVUZXh0KGVk
aXRvci5zdHlsZVRleHQoKSk7Ci19Ci0KLWJvb2wgSW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVByb3Bl
cnR5KHVuc2lnbmVkIGluZGV4LCBib29sIGRpc2FibGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIEFTU0VSVChtX3BhcmVudFN0eWxlU2hlZXQpOwotICAgIGlmICghbV9wYXJlbnRTdHlsZVNo
ZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkgewotICAgICAgICBlYyA9IE5PX01PRElGSUNB
VElPTl9BTExPV0VEX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIFJl
ZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IGV4dHJhY3RTb3VyY2VEYXRhKCk7
Ci0gICAgaWYgKCFzb3VyY2VEYXRhKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIFN0cmluZyB0ZXh0OwotICAgIGJvb2wg
c3VjY2VzcyA9IHN0eWxlVGV4dCgmdGV4dCk7Ci0gICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAg
IGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAg
IFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiBhbGxQcm9wZXJ0aWVzOwotICAgIHBvcHVs
YXRlQWxsUHJvcGVydGllcygmYWxsUHJvcGVydGllcyk7Ci0gICAgaWYgKGluZGV4ID49IGFsbFBy
b3BlcnRpZXMuc2l6ZSgpKSB7Ci0gICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBJbnNwZWN0b3JTdHlsZVByb3BlcnR5JiBwcm9w
ZXJ0eSA9IGFsbFByb3BlcnRpZXMuYXQoaW5kZXgpOwotICAgIGlmIChwcm9wZXJ0eS5kaXNhYmxl
ZCA9PSBkaXNhYmxlKQotICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gSWRlbXBvdGVudCBvcGVyYXRp
b24uCi0KLSAgICBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IgZWRpdG9yKCZhbGxQcm9wZXJ0aWVz
LCAmbV9kaXNhYmxlZFByb3BlcnRpZXMsIHRleHQsIG5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1p
dGVycygpKTsKLSAgICBpZiAoZGlzYWJsZSkKLSAgICAgICAgZWRpdG9yLmRpc2FibGVQcm9wZXJ0
eShpbmRleCk7Ci0gICAgZWxzZQotICAgICAgICBlZGl0b3IuZW5hYmxlUHJvcGVydHkoaW5kZXgp
OwotCi0gICAgcmV0dXJuIGFwcGx5U3R5bGVUZXh0KGVkaXRvci5zdHlsZVRleHQoKSk7Ci19Ci0K
IGJvb2wgSW5zcGVjdG9yU3R5bGU6OmdldFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0CiB7CiAg
ICAgLy8gUHJlY29uZGl0aW9uOiBtX3BhcmVudFN0eWxlU2hlZXQtPmVuc3VyZVBhcnNlZERhdGFS
ZWFkeSgpIGhhcyBiZWVuIGNhbGxlZCBzdWNjZXNzZnVsbHkuCkBAIC02ODUsNzEgKzU3Nyw2IEBA
IFZlY3RvcjxTdHJpbmc+IEluc3BlY3RvclN0eWxlOjpsb25naGFuZFByb3BlcnRpZXMoY29uc3Qg
U3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0CiAgICAgcmV0dXJuIHByb3BlcnRpZXM7CiB9CiAKLU5l
d0xpbmVBbmRXaGl0ZXNwYWNlJiBJbnNwZWN0b3JTdHlsZTo6bmV3TGluZUFuZFdoaXRlc3BhY2VE
ZWxpbWl0ZXJzKCkgY29uc3QKLXsKLSAgICBERVBSRUNBVEVEX0RFRklORV9TVEFUSUNfTE9DQUwo
U3RyaW5nLCBkZWZhdWx0UHJlZml4LCAoQVNDSUlMaXRlcmFsKCIgICAgIikpKTsKLQotICAgIGlm
IChtX2Zvcm1hdEFjcXVpcmVkKQotICAgICAgICByZXR1cm4gbV9mb3JtYXQ7Ci0KLSAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwot
ICAgIFZlY3RvcjxDU1NQcm9wZXJ0eVNvdXJjZURhdGE+KiBzb3VyY2VQcm9wZXJ0eURhdGEgPSBz
b3VyY2VEYXRhID8gJihzb3VyY2VEYXRhLT5zdHlsZVNvdXJjZURhdGEtPnByb3BlcnR5RGF0YSkg
OiBudWxscHRyOwotICAgIGludCBwcm9wZXJ0eUNvdW50OwotICAgIGlmICghc291cmNlUHJvcGVy
dHlEYXRhIHx8ICEocHJvcGVydHlDb3VudCA9IHNvdXJjZVByb3BlcnR5RGF0YS0+c2l6ZSgpKSkg
ewotICAgICAgICBtX2Zvcm1hdC5maXJzdCA9ICJcbiI7Ci0gICAgICAgIG1fZm9ybWF0LnNlY29u
ZCA9IGRlZmF1bHRQcmVmaXg7Ci0gICAgICAgIHJldHVybiBtX2Zvcm1hdDsgLy8gRG8gbm90IHJl
bWVtYmVyIHRoZSBkZWZhdWx0IGZvcm1hdHRpbmcgYW5kIGF0dGVtcHQgdG8gYWNxdWlyZSBpdCBs
YXRlci4KLSAgICB9Ci0KLSAgICBTdHJpbmcgdGV4dDsKLSAgICBib29sIHN1Y2Nlc3MgPSBzdHls
ZVRleHQoJnRleHQpOwotICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7Ci0KLSAg
ICBtX2Zvcm1hdEFjcXVpcmVkID0gdHJ1ZTsKLQotICAgIFN0cmluZyBjYW5kaWRhdGVQcmVmaXgg
PSBkZWZhdWx0UHJlZml4OwotICAgIFN0cmluZ0J1aWxkZXIgZm9ybWF0TGluZUZlZWQ7Ci0gICAg
U3RyaW5nQnVpbGRlciBwcmVmaXg7Ci0gICAgaW50IHNjYW5TdGFydCA9IDA7Ci0gICAgaW50IHBy
b3BlcnR5SW5kZXggPSAwOwotICAgIGJvb2wgaXNGdWxsUHJlZml4U2Nhbm5lZCA9IGZhbHNlOwot
ICAgIGJvb2wgbGluZUZlZWRUZXJtaW5hdGVkID0gZmFsc2U7Ci0gICAgd2hpbGUgKHByb3BlcnR5
SW5kZXggPCBwcm9wZXJ0eUNvdW50KSB7Ci0gICAgICAgIGNvbnN0IFdlYkNvcmU6OkNTU1Byb3Bl
cnR5U291cmNlRGF0YSYgY3VycmVudFByb3BlcnR5ID0gc291cmNlUHJvcGVydHlEYXRhLT5hdChw
cm9wZXJ0eUluZGV4KyspOwotCi0gICAgICAgIGJvb2wgcHJvY2Vzc05leHRQcm9wZXJ0eSA9IGZh
bHNlOwotICAgICAgICBpbnQgc2NhbkVuZCA9IGN1cnJlbnRQcm9wZXJ0eS5yYW5nZS5zdGFydDsK
LSAgICAgICAgZm9yIChpbnQgaSA9IHNjYW5TdGFydDsgaSA8IHNjYW5FbmQ7ICsraSkgewotICAg
ICAgICAgICAgVUNoYXIgY2ggPSB0ZXh0W2ldOwotICAgICAgICAgICAgYm9vbCBpc0xpbmVGZWVk
ID0gaXNIVE1MTGluZUJyZWFrKGNoKTsKLSAgICAgICAgICAgIGlmIChpc0xpbmVGZWVkKSB7Ci0g
ICAgICAgICAgICAgICAgaWYgKCFsaW5lRmVlZFRlcm1pbmF0ZWQpCi0gICAgICAgICAgICAgICAg
ICAgIGZvcm1hdExpbmVGZWVkLmFwcGVuZChjaCk7Ci0gICAgICAgICAgICAgICAgcHJlZml4LmNs
ZWFyKCk7Ci0gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSFRNTFNwYWNlKGNoKSkKLSAgICAgICAg
ICAgICAgICBwcmVmaXguYXBwZW5kKGNoKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIGNhbmRpZGF0ZVByZWZpeCA9IHByZWZpeC50b1N0cmluZygpOwotICAgICAgICAgICAg
ICAgIHByZWZpeC5jbGVhcigpOwotICAgICAgICAgICAgICAgIHNjYW5TdGFydCA9IGN1cnJlbnRQ
cm9wZXJ0eS5yYW5nZS5lbmQ7Ci0gICAgICAgICAgICAgICAgKytwcm9wZXJ0eUluZGV4OwotICAg
ICAgICAgICAgICAgIHByb2Nlc3NOZXh0UHJvcGVydHkgPSB0cnVlOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCFpc0xpbmVGZWVkICYmIGZv
cm1hdExpbmVGZWVkLmxlbmd0aCgpKQotICAgICAgICAgICAgICAgIGxpbmVGZWVkVGVybWluYXRl
ZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFwcm9jZXNzTmV4dFByb3BlcnR5KSB7
Ci0gICAgICAgICAgICBpc0Z1bGxQcmVmaXhTY2FubmVkID0gdHJ1ZTsKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgbV9mb3JtYXQuZmlyc3QgPSBmb3JtYXRMaW5l
RmVlZC50b1N0cmluZygpOwotICAgIG1fZm9ybWF0LnNlY29uZCA9IGlzRnVsbFByZWZpeFNjYW5u
ZWQgPyBwcmVmaXgudG9TdHJpbmcoKSA6IGNhbmRpZGF0ZVByZWZpeDsKLSAgICByZXR1cm4gbV9m
b3JtYXQ7Ci19Ci0KIFJlZjxJbnNwZWN0b3JTdHlsZVNoZWV0PiBJbnNwZWN0b3JTdHlsZVNoZWV0
OjpjcmVhdGUoSW5zcGVjdG9yUGFnZUFnZW50KiBwYWdlQWdlbnQsIGNvbnN0IFN0cmluZyYgaWQs
IFJlZlB0cjxDU1NTdHlsZVNoZWV0PiYmIHBhZ2VTdHlsZVNoZWV0LCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpDU1M6OlN0eWxlU2hlZXRPcmlnaW4gb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50
VVJMLCBMaXN0ZW5lciogbGlzdGVuZXIpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSW5z
cGVjdG9yU3R5bGVTaGVldChwYWdlQWdlbnQsIGlkLCBXVEY6Om1vdmUocGFnZVN0eWxlU2hlZXQp
LCBvcmlnaW4sIGRvY3VtZW50VVJMLCBsaXN0ZW5lcikpOwpAQCAtMTE3NCwzOSArMTAwMSw2IEBA
IGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0U3R5bGVUZXh0KGNvbnN0IEluc3BlY3RvckNT
U0lkJiBpZCwgY29uc3QgU3RyaW5nJiB0CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKLWJvb2wg
SW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0UHJvcGVydHlUZXh0KGNvbnN0IEluc3BlY3RvckNTU0lk
JiBpZCwgdW5zaWduZWQgcHJvcGVydHlJbmRleCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIG92
ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBSZWZQ
dHI8SW5zcGVjdG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gaW5zcGVjdG9yU3R5bGVGb3JJZChp
ZCk7Ci0gICAgaWYgKCFpbnNwZWN0b3JTdHlsZSkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9F
UlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBib29sIHN1Y2Nlc3MgPSBp
bnNwZWN0b3JTdHlsZS0+c2V0UHJvcGVydHlUZXh0KHByb3BlcnR5SW5kZXgsIHRleHQsIG92ZXJ3
cml0ZSwgb2xkVGV4dCwgZWMpOwotICAgIGlmIChzdWNjZXNzKQotICAgICAgICBmaXJlU3R5bGVT
aGVldENoYW5nZWQoKTsKLSAgICByZXR1cm4gc3VjY2VzczsKLX0KLQotYm9vbCBJbnNwZWN0b3JT
dHlsZVNoZWV0Ojp0b2dnbGVQcm9wZXJ0eShjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQsIHVuc2ln
bmVkIHByb3BlcnR5SW5kZXgsIGJvb2wgZGlzYWJsZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZSA9IGluc3BlY3RvclN0eWxl
Rm9ySWQoaWQpOwotICAgIGlmICghaW5zcGVjdG9yU3R5bGUpIHsKLSAgICAgICAgZWMgPSBOT1Rf
Rk9VTkRfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgYm9vbCBzdWNj
ZXNzID0gaW5zcGVjdG9yU3R5bGUtPnRvZ2dsZVByb3BlcnR5KHByb3BlcnR5SW5kZXgsIGRpc2Fi
bGUsIGVjKTsKLSAgICBpZiAoc3VjY2VzcykgewotICAgICAgICBpZiAoZGlzYWJsZSkKLSAgICAg
ICAgICAgIHJlbWVtYmVySW5zcGVjdG9yU3R5bGUoaW5zcGVjdG9yU3R5bGUuY29weVJlZigpKTsK
LSAgICAgICAgZWxzZSBpZiAoIWluc3BlY3RvclN0eWxlLT5oYXNEaXNhYmxlZFByb3BlcnRpZXMo
KSkKLSAgICAgICAgICAgIGZvcmdldEluc3BlY3RvclN0eWxlKGluc3BlY3RvclN0eWxlLT5jc3NT
dHlsZSgpKTsKLSAgICAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7Ci0gICAgfQotICAgIHJl
dHVybiBzdWNjZXNzOwotfQotCiBib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OmdldFRleHQoU3Ry
aW5nKiByZXN1bHQpIGNvbnN0CiB7CiAgICAgaWYgKCFlbnN1cmVUZXh0KCkpCkBAIC0xMjQyLDE2
ICsxMDM2LDYgQEAgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBJbnNwZWN0b3JTdHlsZVNoZWV0Ojpp
bnNwZWN0b3JTdHlsZUZvcklkKGNvbnN0IEluc3BlY3RvckMKICAgICByZXR1cm4gaXQtPnZhbHVl
OwogfQogCi12b2lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlbWVtYmVySW5zcGVjdG9yU3R5bGUo
UmVmUHRyPEluc3BlY3RvclN0eWxlPiYmIGluc3BlY3RvclN0eWxlKQotewotICAgIG1faW5zcGVj
dG9yU3R5bGVzLnNldChpbnNwZWN0b3JTdHlsZS0+Y3NzU3R5bGUoKSwgaW5zcGVjdG9yU3R5bGUp
OwotfQotCi12b2lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OmZvcmdldEluc3BlY3RvclN0eWxlKENT
U1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKQotewotICAgIG1faW5zcGVjdG9yU3R5bGVzLnJlbW92
ZShzdHlsZSk7Ci19Ci0KIEluc3BlY3RvckNTU0lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJ1bGVP
clN0eWxlSWQoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpIGNvbnN0CiB7CiAgICAgdW5zaWdu
ZWQgaW5kZXggPSBydWxlSW5kZXhCeVN0eWxlKHN0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCmluZGV4IGY2Yzg5NmM4YWE4YjRlNzBmMTMw
MGE2NzY5NTkwYzkwMzFkNjEyYjAuLjdhNmMwMDEyODA5NGI4MGMwYzc1YTZjY2IwNDdmNDNiZGNm
MmM2MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5U291cmNlRGF0YS5o
IgogI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmgiCiAjaW5jbHVkZSA8
aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sT2JqZWN0cy5oPgogI2luY2x1ZGUgPGluc3BlY3Rv
ci9JbnNwZWN0b3JWYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtMTU0LDcg
KzE1Myw2IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHNob3J0aGFuZFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0OwogICAgIFN0cmluZyBzaG9ydGhhbmRQcmlvcml0
eShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdDsKICAgICBWZWN0b3I8U3Ry
aW5nPiBsb25naGFuZFByb3BlcnRpZXMoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0eSkg
Y29uc3Q7Ci0gICAgTmV3TGluZUFuZFdoaXRlc3BhY2UmIG5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVs
aW1pdGVycygpIGNvbnN0OwogCiAgICAgSW5zcGVjdG9yQ1NTSWQgbV9zdHlsZUlkOwogICAgIFJl
ZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBtX3N0eWxlOwpAQCAtMjE0LDggKzIxMiw2IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHJ1bGVJbmRleEJ5U3R5bGUoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBlbnN1cmVQYXJzZWREYXRhUmVh
ZHkoKTsKICAgICB2aXJ0dWFsIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gaW5zcGVjdG9yU3R5bGVG
b3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYpOwotICAgIHZpcnR1YWwgdm9pZCByZW1lbWJlcklu
c3BlY3RvclN0eWxlKFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4mJik7Ci0gICAgdmlydHVhbCB2b2lk
IGZvcmdldEluc3BlY3RvclN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKTsKIAogICAgIC8vIEFs
c28gYWNjZXNzZWQgYnkgZnJpZW5kIGNsYXNzIEluc3BlY3RvclN0eWxlLgogICAgIHZpcnR1YWwg
Ym9vbCBzZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKQEAgLTI2Nyw4ICsyNjMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCB1bnNpZ25lZCBydWxlSW5kZXhCeVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBib29sIGVuc3VyZVBhcnNlZERhdGFS
ZWFkeSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNw
ZWN0b3JTdHlsZUZvcklkKGNvbnN0IEluc3BlY3RvckNTU0lkJikgb3ZlcnJpZGU7Ci0gICAgdmly
dHVhbCB2b2lkIHJlbWVtYmVySW5zcGVjdG9yU3R5bGUoUmVmUHRyPEluc3BlY3RvclN0eWxlPiYm
KSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZm9yZ2V0SW5zcGVjdG9yU3R5bGUoQ1NT
U3R5bGVEZWNsYXJhdGlvbiopIG92ZXJyaWRlIHsgfQogCiAgICAgLy8gQWxzbyBhY2Nlc3NlZCBi
eSBmcmllbmQgY2xhc3MgSW5zcGVjdG9yU3R5bGUuCiAgICAgdmlydHVhbCBib29sIHNldFN0eWxl
VGV4dChDU1NTdHlsZURlY2xhcmF0aW9uKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
clN0eWxlVGV4dEVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVUZXh0RWRpdG9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjljYjFm
ZjAyMmFhMzhhMDAyZTlkMTA4ZDc0YzViZTYzNzhjNGNkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yU3R5bGVUZXh0RWRpdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI2MSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwot
ICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0
eWxlVGV4dEVkaXRvci5oIgotCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCi0j
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlU2hl
ZXQuaCIKLQotdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6Okluc3BlY3RvclN0eWxlVGV4dEVkaXRvcihW
ZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4qIGFsbFByb3BlcnRpZXMsIFZlY3RvcjxJbnNw
ZWN0b3JTdHlsZVByb3BlcnR5PiogZGlzYWJsZWRQcm9wZXJ0aWVzLCBjb25zdCBTdHJpbmcmIHN0
eWxlVGV4dCwgY29uc3QgTmV3TGluZUFuZFdoaXRlc3BhY2UmIGZvcm1hdCkKLSAgICA6IG1fYWxs
UHJvcGVydGllcyhhbGxQcm9wZXJ0aWVzKQotICAgICwgbV9kaXNhYmxlZFByb3BlcnRpZXMoZGlz
YWJsZWRQcm9wZXJ0aWVzKQotICAgICwgbV9zdHlsZVRleHQoc3R5bGVUZXh0KQotICAgICwgbV9m
b3JtYXQoZm9ybWF0KQotewotfQotCi12b2lkIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6aW5z
ZXJ0UHJvcGVydHkodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCB1
bnNpZ25lZCBzdHlsZUJvZHlMZW5ndGgpCi17Ci0gICAgbG9uZyBwcm9wZXJ0eVN0YXJ0ID0gMDsK
LQotICAgIGJvb2wgaW5zZXJ0TGFzdCA9IHRydWU7Ci0gICAgaWYgKGluZGV4IDwgbV9hbGxQcm9w
ZXJ0aWVzLT5zaXplKCkpIHsKLSAgICAgICAgY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYg
cHJvcGVydHkgPSBtX2FsbFByb3BlcnRpZXMtPmF0KGluZGV4KTsKLSAgICAgICAgaWYgKHByb3Bl
cnR5Lmhhc1NvdXJjZSkgewotICAgICAgICAgICAgcHJvcGVydHlTdGFydCA9IHByb3BlcnR5LnNv
dXJjZURhdGEucmFuZ2Uuc3RhcnQ7Ci0gICAgICAgICAgICAvLyBJZiBpbnNlcnRpbmcgYmVmb3Jl
IGEgZGlzYWJsZWQgcHJvcGVydHksIGl0IHNob3VsZCBiZSBzaGlmdGVkLCB0b28uCi0gICAgICAg
ICAgICBpbnNlcnRMYXN0ID0gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIGlu
c2VydEZpcnN0SW5Tb3VyY2UgPSB0cnVlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUg
PSBtX2FsbFByb3BlcnRpZXMtPnNpemUoKTsgaSA8IGluZGV4ICYmIGkgPCBzaXplOyArK2kpIHsK
LSAgICAgICAgY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX2FsbFBy
b3BlcnRpZXMtPmF0KGkpOwotICAgICAgICBpZiAocHJvcGVydHkuaGFzU291cmNlICYmICFwcm9w
ZXJ0eS5kaXNhYmxlZCkgewotICAgICAgICAgICAgaW5zZXJ0Rmlyc3RJblNvdXJjZSA9IGZhbHNl
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIGluc2Vy
dExhc3RJblNvdXJjZSA9IHRydWU7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gaW5kZXgsIHNpemUg
PSBtX2FsbFByb3BlcnRpZXMtPnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgY29uc3Qg
SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX2FsbFByb3BlcnRpZXMtPmF0KGkp
OwotICAgICAgICBpZiAocHJvcGVydHkuaGFzU291cmNlICYmICFwcm9wZXJ0eS5kaXNhYmxlZCkg
ewotICAgICAgICAgICAgaW5zZXJ0TGFzdEluU291cmNlID0gZmFsc2U7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIFN0cmluZyB0ZXh0VG9TZXQgPSBwcm9wZXJ0
eVRleHQ7Ci0KLSAgICBpbnQgZm9ybWF0dGluZ1ByZXBlbmRPZmZzZXQgPSAwOwotICAgIGlmIChp
bnNlcnRMYXN0ICYmICFpbnNlcnRGaXJzdEluU291cmNlKSB7Ci0gICAgICAgIHByb3BlcnR5U3Rh
cnQgPSBzdHlsZUJvZHlMZW5ndGg7Ci0gICAgICAgIGlmIChwcm9wZXJ0eVN0YXJ0ICYmIHRleHRU
b1NldC5sZW5ndGgoKSkgewotICAgICAgICAgICAgbG9uZyBjdXJQb3MgPSBwcm9wZXJ0eVN0YXJ0
IC0gMTsgLy8gVGhlIGxhc3QgcG9zaXRpb24gb2Ygc3R5bGUgZGVjbGFyYXRpb24sIHNpbmNlIHBy
b3BlcnR5U3RhcnQgcG9pbnRzIHBhc3Qgb25lLgotICAgICAgICAgICAgd2hpbGUgKGN1clBvcyAm
JiBpc0hUTUxTcGFjZShtX3N0eWxlVGV4dFtjdXJQb3NdKSkKLSAgICAgICAgICAgICAgICAtLWN1
clBvczsKLSAgICAgICAgICAgIGlmIChjdXJQb3MgJiYgbV9zdHlsZVRleHRbY3VyUG9zXSAhPSAn
OycpIHsKLSAgICAgICAgICAgICAgICAvLyBQcmVwZW5kIGEgIjsiIHRvIHRoZSBwcm9wZXJ0eSB0
ZXh0IGlmIGFwcGVuZGluZyB0byBhIHN0eWxlIGRlY2xhcmF0aW9uIHdoZXJlCi0gICAgICAgICAg
ICAgICAgLy8gdGhlIGxhc3QgcHJvcGVydHkgaGFzIG5vIHRyYWlsaW5nICI7Ii4KLSAgICAgICAg
ICAgICAgICB0ZXh0VG9TZXQgPSBtYWtlU3RyaW5nKCc7JywgdGV4dFRvU2V0KTsKLSAgICAgICAg
ICAgICAgICBmb3JtYXR0aW5nUHJlcGVuZE9mZnNldCA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBjb25zdCBTdHJpbmcmIGZvcm1hdExpbmVGZWVkID0gbV9mb3Jt
YXQuZmlyc3Q7Ci0gICAgY29uc3QgU3RyaW5nJiBmb3JtYXRQcm9wZXJ0eVByZWZpeCA9IG1fZm9y
bWF0LnNlY29uZDsKLSAgICBpZiAoaW5zZXJ0TGFzdEluU291cmNlKSB7Ci0gICAgICAgIGxvbmcg
Zm9ybWF0UHJvcGVydHlQcmVmaXhMZW5ndGggPSBmb3JtYXRQcm9wZXJ0eVByZWZpeC5sZW5ndGgo
KTsKLSAgICAgICAgaWYgKCFmb3JtYXR0aW5nUHJlcGVuZE9mZnNldCAmJiAocHJvcGVydHlTdGFy
dCA8IGZvcm1hdFByb3BlcnR5UHJlZml4TGVuZ3RoIHx8IG1fc3R5bGVUZXh0LnN1YnN0cmluZyhw
cm9wZXJ0eVN0YXJ0IC0gZm9ybWF0UHJvcGVydHlQcmVmaXhMZW5ndGgsIGZvcm1hdFByb3BlcnR5
UHJlZml4TGVuZ3RoKSAhPSBmb3JtYXRQcm9wZXJ0eVByZWZpeCkpIHsKLSAgICAgICAgICAgIHRl
eHRUb1NldC5pbnNlcnQoZm9ybWF0UHJvcGVydHlQcmVmaXgsIGZvcm1hdHRpbmdQcmVwZW5kT2Zm
c2V0KTsKLSAgICAgICAgICAgIGlmICghcHJvcGVydHlTdGFydCB8fCAhaXNIVE1MTGluZUJyZWFr
KG1fc3R5bGVUZXh0W3Byb3BlcnR5U3RhcnQgLSAxXSkpCi0gICAgICAgICAgICAgICAgdGV4dFRv
U2V0Lmluc2VydChmb3JtYXRMaW5lRmVlZCwgZm9ybWF0dGluZ1ByZXBlbmRPZmZzZXQpOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghaXNIVE1MTGluZUJyZWFrKG1fc3R5bGVUZXh0W3Byb3BlcnR5
U3RhcnRdKSkKLSAgICAgICAgICAgIHRleHRUb1NldC5hcHBlbmQoZm9ybWF0TGluZUZlZWQpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIFN0cmluZyBmdWxsUHJlZml4ID0gZm9ybWF0TGluZUZlZWQg
KyBmb3JtYXRQcm9wZXJ0eVByZWZpeDsKLSAgICAgICAgbG9uZyBmdWxsUHJlZml4TGVuZ3RoID0g
ZnVsbFByZWZpeC5sZW5ndGgoKTsKLSAgICAgICAgdGV4dFRvU2V0LmFwcGVuZChmdWxsUHJlZml4
KTsKLSAgICAgICAgaWYgKGluc2VydEZpcnN0SW5Tb3VyY2UgJiYgKHByb3BlcnR5U3RhcnQgPCBm
dWxsUHJlZml4TGVuZ3RoIHx8IG1fc3R5bGVUZXh0LnN1YnN0cmluZyhwcm9wZXJ0eVN0YXJ0IC0g
ZnVsbFByZWZpeExlbmd0aCwgZnVsbFByZWZpeExlbmd0aCkgIT0gZnVsbFByZWZpeCkpCi0gICAg
ICAgICAgICB0ZXh0VG9TZXQuaW5zZXJ0KGZ1bGxQcmVmaXgsIGZvcm1hdHRpbmdQcmVwZW5kT2Zm
c2V0KTsKLSAgICB9Ci0gICAgbV9zdHlsZVRleHQuaW5zZXJ0KHRleHRUb1NldCwgcHJvcGVydHlT
dGFydCk7Ci0KLSAgICAvLyBSZWNvbXB1dGUgZGlzYWJsZWQgcHJvcGVydHkgcmFuZ2VzIGFmdGVy
IGFuIGluc2VydGVkIHByb3BlcnR5LgotICAgIGxvbmcgcHJvcGVydHlMZW5ndGhEZWx0YSA9IHRl
eHRUb1NldC5sZW5ndGgoKTsKLSAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNhYmxlZElu
ZGV4QnlPcmRpbmFsKGluZGV4LCB0cnVlKSwgcHJvcGVydHlMZW5ndGhEZWx0YSk7Ci19Ci0KLXZv
aWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjpyZXBsYWNlUHJvcGVydHkodW5zaWduZWQgaW5k
ZXgsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9J
TVBMSUNBVElPTihpbmRleCA8IG1fYWxsUHJvcGVydGllcy0+c2l6ZSgpKTsKLQotICAgIGNvbnN0
IEluc3BlY3RvclN0eWxlUHJvcGVydHkmIHByb3BlcnR5ID0gbV9hbGxQcm9wZXJ0aWVzLT5hdChp
bmRleCk7Ci0gICAgaWYgKCFwcm9wZXJ0eS5kaXNhYmxlZCkgewotICAgICAgICBTb3VyY2VSYW5n
ZSBvdmVyd3JpdHRlblJhbmdlOwotICAgICAgICB1bnNpZ25lZCBpbnNlcnRlZExlbmd0aDsKLSAg
ICAgICAgaW50ZXJuYWxSZXBsYWNlUHJvcGVydHkocHJvcGVydHksIG5ld1RleHQsICZvdmVyd3Jp
dHRlblJhbmdlLCAmaW5zZXJ0ZWRMZW5ndGgpOwotICAgICAgICBsb25nIHByb3BlcnR5TGVuZ3Ro
RGVsdGEgPSBzdGF0aWNfY2FzdDxsb25nPihpbnNlcnRlZExlbmd0aCkgLSBzdGF0aWNfY2FzdDxs
b25nPihvdmVyd3JpdHRlblJhbmdlLmxlbmd0aCgpKTsKLQotICAgICAgICAvLyBSZWNvbXB1dGUg
c3Vic2VxdWVudCBkaXNhYmxlZCBwcm9wZXJ0eSByYW5nZXMgaWYgYWN0aW5nIG9uIGEgbm9uLWRp
c2FibGVkIHByb3BlcnR5LgotICAgICAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNhYmxl
ZEluZGV4QnlPcmRpbmFsKGluZGV4LCB0cnVlKSwgcHJvcGVydHlMZW5ndGhEZWx0YSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgbG9uZyB0ZXh0TGVuZ3RoID0gbmV3VGV4dC5sZW5ndGgoKTsKLSAg
ICAgICAgdW5zaWduZWQgZGlzYWJsZWRJbmRleCA9IGRpc2FibGVkSW5kZXhCeU9yZGluYWwoaW5k
ZXgsIGZhbHNlKTsKLSAgICAgICAgaWYgKCF0ZXh0TGVuZ3RoKSB7Ci0gICAgICAgICAgICAvLyBE
ZWxldGUgZGlzYWJsZWQgcHJvcGVydHkuCi0gICAgICAgICAgICBtX2Rpc2FibGVkUHJvcGVydGll
cy0+cmVtb3ZlKGRpc2FibGVkSW5kZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
Ly8gUGF0Y2ggZGlzYWJsZWQgcHJvcGVydHkgdGV4dC4KLSAgICAgICAgICAgIG1fZGlzYWJsZWRQ
cm9wZXJ0aWVzLT5hdChkaXNhYmxlZEluZGV4KS5yYXdUZXh0ID0gbmV3VGV4dDsKLSAgICAgICAg
fQotICAgIH0KLX0KLQotdm9pZCBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OnJlbW92ZVByb3Bl
cnR5KHVuc2lnbmVkIGluZGV4KQotewotICAgIHJlcGxhY2VQcm9wZXJ0eShpbmRleCwgIiIpOwot
fQotCi12b2lkIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6ZW5hYmxlUHJvcGVydHkodW5zaWdu
ZWQgaW5kZXgpCi17Ci0gICAgQVNTRVJUKG1fYWxsUHJvcGVydGllcy0+YXQoaW5kZXgpLmRpc2Fi
bGVkKTsKLQotICAgIHVuc2lnbmVkIGRpc2FibGVkSW5kZXggPSBkaXNhYmxlZEluZGV4QnlPcmRp
bmFsKGluZGV4LCBmYWxzZSk7Ci0gICAgQVNTRVJUKGRpc2FibGVkSW5kZXggIT0gVUlOVF9NQVgp
OwotCi0gICAgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSBkaXNhYmxlZFByb3BlcnR5ID0gbV9kaXNh
YmxlZFByb3BlcnRpZXMtPmF0KGRpc2FibGVkSW5kZXgpOwotICAgIG1fZGlzYWJsZWRQcm9wZXJ0
aWVzLT5yZW1vdmUoZGlzYWJsZWRJbmRleCk7Ci0gICAgU291cmNlUmFuZ2UgcmVtb3ZlZFJhbmdl
OwotICAgIHVuc2lnbmVkIGluc2VydGVkTGVuZ3RoOwotICAgIGludGVybmFsUmVwbGFjZVByb3Bl
cnR5KGRpc2FibGVkUHJvcGVydHksIGRpc2FibGVkUHJvcGVydHkucmF3VGV4dCwgJnJlbW92ZWRS
YW5nZSwgJmluc2VydGVkTGVuZ3RoKTsKLSAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNh
YmxlZEluZGV4LCBzdGF0aWNfY2FzdDxsb25nPihpbnNlcnRlZExlbmd0aCkgLSBzdGF0aWNfY2Fz
dDxsb25nPihyZW1vdmVkUmFuZ2UubGVuZ3RoKCkpKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JTdHls
ZVRleHRFZGl0b3I6OmRpc2FibGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICBBU1NF
UlQoIW1fYWxsUHJvcGVydGllcy0+YXQoaW5kZXgpLmRpc2FibGVkKTsKLQotICAgIGNvbnN0IElu
c3BlY3RvclN0eWxlUHJvcGVydHkmIHByb3BlcnR5ID0gbV9hbGxQcm9wZXJ0aWVzLT5hdChpbmRl
eCk7Ci0gICAgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSBkaXNhYmxlZFByb3BlcnR5KHByb3BlcnR5
KTsKLSAgICBkaXNhYmxlZFByb3BlcnR5LnNldFJhd1RleHRGcm9tU3R5bGVEZWNsYXJhdGlvbiht
X3N0eWxlVGV4dCk7Ci0gICAgZGlzYWJsZWRQcm9wZXJ0eS5kaXNhYmxlZCA9IHRydWU7Ci0KLSAg
ICBTb3VyY2VSYW5nZSByZW1vdmVkUmFuZ2U7Ci0gICAgdW5zaWduZWQgaW5zZXJ0ZWRMZW5ndGg7
Ci0gICAgaW50ZXJuYWxSZXBsYWNlUHJvcGVydHkocHJvcGVydHksICIiLCAmcmVtb3ZlZFJhbmdl
LCAmaW5zZXJ0ZWRMZW5ndGgpOwotCi0gICAgLy8gSWYgc29tZSBwcmVjZWRpbmcgZm9ybWF0dGlu
ZyBoYXMgYmVlbiByZW1vdmVkLCBtb3ZlIHRoZSBwcm9wZXJ0eSB0byB0aGUgc3RhcnQgb2YgdGhl
IHJlbW92ZWQgcmFuZ2UuCi0gICAgaWYgKHByb3BlcnR5LnNvdXJjZURhdGEucmFuZ2Uuc3RhcnQg
PiByZW1vdmVkUmFuZ2Uuc3RhcnQpCi0gICAgICAgIGRpc2FibGVkUHJvcGVydHkuc291cmNlRGF0
YS5yYW5nZS5zdGFydCA9IHJlbW92ZWRSYW5nZS5zdGFydDsKLSAgICBkaXNhYmxlZFByb3BlcnR5
LnNvdXJjZURhdGEucmFuZ2UuZW5kID0gZGlzYWJsZWRQcm9wZXJ0eS5zb3VyY2VEYXRhLnJhbmdl
LnN0YXJ0OwotCi0gICAgLy8gQWRkIGRpc2FibGVkIHByb3BlcnR5IGF0IGNvcnJlY3QgcG9zaXRp
b24uCi0gICAgdW5zaWduZWQgaW5zZXJ0aW9uSW5kZXggPSBkaXNhYmxlZEluZGV4QnlPcmRpbmFs
KGluZGV4LCB0cnVlKTsKLSAgICBpZiAoaW5zZXJ0aW9uSW5kZXggPT0gVUlOVF9NQVgpCi0gICAg
ICAgIG1fZGlzYWJsZWRQcm9wZXJ0aWVzLT5hcHBlbmQoZGlzYWJsZWRQcm9wZXJ0eSk7Ci0gICAg
ZWxzZSB7Ci0gICAgICAgIG1fZGlzYWJsZWRQcm9wZXJ0aWVzLT5pbnNlcnQoaW5zZXJ0aW9uSW5k
ZXgsIGRpc2FibGVkUHJvcGVydHkpOwotICAgICAgICBsb25nIHN0eWxlTGVuZ3RoRGVsdGEgPSAt
KHN0YXRpY19jYXN0PGxvbmc+KHJlbW92ZWRSYW5nZS5sZW5ndGgoKSkpOwotICAgICAgICBzaGlm
dERpc2FibGVkUHJvcGVydGllcyhpbnNlcnRpb25JbmRleCArIDEsIHN0eWxlTGVuZ3RoRGVsdGEp
OyAvLyBQcm9wZXJ0eSByZW1vdmVkIGZyb20gdGV4dCAtIHNoaWZ0IHRoZXNlIGJhY2suCi0gICAg
fQotfQotCi11bnNpZ25lZCBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OmRpc2FibGVkSW5kZXhC
eU9yZGluYWwodW5zaWduZWQgb3JkaW5hbCwgYm9vbCBjYW5Vc2VTdWJzZXF1ZW50KQotewotICAg
IHVuc2lnbmVkIGRpc2FibGVkSW5kZXggPSAwOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNp
emUgPSBtX2FsbFByb3BlcnRpZXMtPnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBp
ZiAobV9hbGxQcm9wZXJ0aWVzLT5hdChpKS5kaXNhYmxlZCkgewotICAgICAgICAgICAgaWYgKGkg
PT0gb3JkaW5hbCB8fCAoY2FuVXNlU3Vic2VxdWVudCAmJiBpID4gb3JkaW5hbCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGRpc2FibGVkSW5kZXg7Ci0gICAgICAgICAgICArK2Rpc2FibGVkSW5k
ZXg7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gVUlOVF9NQVg7Ci19Ci0KLXZvaWQg
SW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjpzaGlmdERpc2FibGVkUHJvcGVydGllcyh1bnNpZ25l
ZCBmcm9tSW5kZXgsIGxvbmcgZGVsdGEpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gZnJvbUlu
ZGV4LCBzaXplID0gbV9kaXNhYmxlZFByb3BlcnRpZXMtPnNpemUoKTsgaSA8IHNpemU7ICsraSkg
ewotICAgICAgICBTb3VyY2VSYW5nZSYgcmFuZ2UgPSBtX2Rpc2FibGVkUHJvcGVydGllcy0+YXQo
aSkuc291cmNlRGF0YS5yYW5nZTsKLSAgICAgICAgcmFuZ2Uuc3RhcnQgKz0gZGVsdGE7Ci0gICAg
ICAgIHJhbmdlLmVuZCArPSBkZWx0YTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yOjppbnRlcm5hbFJlcGxhY2VQcm9wZXJ0eShjb25zdCBJbnNwZWN0b3JTdHlsZVBy
b3BlcnR5JiBwcm9wZXJ0eSwgY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBTb3VyY2VSYW5nZSogcmVt
b3ZlZFJhbmdlLCB1bnNpZ25lZCogaW5zZXJ0ZWRMZW5ndGgpCi17Ci0gICAgY29uc3QgU291cmNl
UmFuZ2UmIHJhbmdlID0gcHJvcGVydHkuc291cmNlRGF0YS5yYW5nZTsKLSAgICBsb25nIHJlcGxh
Y2VSYW5nZVN0YXJ0ID0gcmFuZ2Uuc3RhcnQ7Ci0gICAgbG9uZyByZXBsYWNlUmFuZ2VFbmQgPSBy
YW5nZS5lbmQ7Ci0gICAgbG9uZyBuZXdUZXh0TGVuZ3RoID0gbmV3VGV4dC5sZW5ndGgoKTsKLSAg
ICBTdHJpbmcgZmluYWxOZXdUZXh0ID0gbmV3VGV4dDsKLQotICAgIC8vIFJlbW92aW5nIGEgcHJv
cGVydHkgLSByZW1vdmUgcHJlY2VkaW5nIHByZWZpeC4KLSAgICBTdHJpbmcgZnVsbFByZWZpeCA9
IG1fZm9ybWF0LmZpcnN0ICsgbV9mb3JtYXQuc2Vjb25kOwotICAgIGxvbmcgZnVsbFByZWZpeExl
bmd0aCA9IGZ1bGxQcmVmaXgubGVuZ3RoKCk7Ci0gICAgaWYgKCFuZXdUZXh0TGVuZ3RoICYmIGZ1
bGxQcmVmaXhMZW5ndGgpIHsKLSAgICAgICAgaWYgKHJlcGxhY2VSYW5nZVN0YXJ0ID49IGZ1bGxQ
cmVmaXhMZW5ndGggJiYgbV9zdHlsZVRleHQuc3Vic3RyaW5nKHJlcGxhY2VSYW5nZVN0YXJ0IC0g
ZnVsbFByZWZpeExlbmd0aCwgZnVsbFByZWZpeExlbmd0aCkgPT0gZnVsbFByZWZpeCkKLSAgICAg
ICAgICAgIHJlcGxhY2VSYW5nZVN0YXJ0IC09IGZ1bGxQcmVmaXhMZW5ndGg7Ci0gICAgfSBlbHNl
IGlmIChuZXdUZXh0TGVuZ3RoKSB7Ci0gICAgICAgIGlmIChpc0hUTUxMaW5lQnJlYWsobmV3VGV4
dFtuZXdUZXh0TGVuZ3RoIC0gMV0pKSB7Ci0gICAgICAgICAgICAvLyBDb2FsZXNjZSBuZXdsaW5l
cyBvZiB0aGUgb3JpZ2luYWwgYW5kIG5ldyBwcm9wZXJ0eSB2YWx1ZXMgKHRvIGF2b2lkIGEgbG90
IG9mIGJsYW5rIGxpbmVzIHdoaWxlIGluY3JlbWVudGFsbHkgYXBwbHlpbmcgcHJvcGVydHkgdmFs
dWVzKS4KLSAgICAgICAgICAgIGJvb2wgZm91bmROZXdsaW5lID0gZmFsc2U7Ci0gICAgICAgICAg
ICBib29sIGlzTGFzdE5ld2xpbmUgPSBmYWxzZTsKLSAgICAgICAgICAgIGludCBpOwotICAgICAg
ICAgICAgaW50IHRleHRMZW5ndGggPSBtX3N0eWxlVGV4dC5sZW5ndGgoKTsKLSAgICAgICAgICAg
IGZvciAoaSA9IHJlcGxhY2VSYW5nZUVuZDsgaSA8IHRleHRMZW5ndGggJiYgaXNTcGFjZU9yTmV3
bGluZShtX3N0eWxlVGV4dFtpXSk7ICsraSkgewotICAgICAgICAgICAgICAgIGlzTGFzdE5ld2xp
bmUgPSBpc0hUTUxMaW5lQnJlYWsobV9zdHlsZVRleHRbaV0pOwotICAgICAgICAgICAgICAgIGlm
IChpc0xhc3ROZXdsaW5lKQotICAgICAgICAgICAgICAgICAgICBmb3VuZE5ld2xpbmUgPSB0cnVl
OwotICAgICAgICAgICAgICAgIGVsc2UgaWYgKGZvdW5kTmV3bGluZSAmJiAhaXNMYXN0TmV3bGlu
ZSkgewotICAgICAgICAgICAgICAgICAgICByZXBsYWNlUmFuZ2VFbmQgPSBpOwotICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBpZiAoZm91bmROZXdsaW5lICYmIGlzTGFzdE5ld2xpbmUpCi0gICAgICAgICAgICAg
ICAgcmVwbGFjZVJhbmdlRW5kID0gaTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChmdWxsUHJl
Zml4TGVuZ3RoID4gcmVwbGFjZVJhbmdlU3RhcnQgfHwgbV9zdHlsZVRleHQuc3Vic3RyaW5nKHJl
cGxhY2VSYW5nZVN0YXJ0IC0gZnVsbFByZWZpeExlbmd0aCwgZnVsbFByZWZpeExlbmd0aCkgIT0g
ZnVsbFByZWZpeCkKLSAgICAgICAgICAgIGZpbmFsTmV3VGV4dCA9IGZ1bGxQcmVmaXggKyBmaW5h
bE5ld1RleHQ7Ci0gICAgfQotCi0gICAgaW50IHJlcGxhY2VkTGVuZ3RoID0gcmVwbGFjZVJhbmdl
RW5kIC0gcmVwbGFjZVJhbmdlU3RhcnQ7Ci0gICAgbV9zdHlsZVRleHQucmVwbGFjZShyZXBsYWNl
UmFuZ2VTdGFydCwgcmVwbGFjZWRMZW5ndGgsIGZpbmFsTmV3VGV4dCk7Ci0gICAgKnJlbW92ZWRS
YW5nZSA9IFNvdXJjZVJhbmdlKHJlcGxhY2VSYW5nZVN0YXJ0LCByZXBsYWNlUmFuZ2VFbmQpOwot
ICAgICppbnNlcnRlZExlbmd0aCA9IGZpbmFsTmV3VGV4dC5sZW5ndGgoKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclN0eWxlVGV4dEVkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlVGV4dEVkaXRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWMx
OGEyYWQwZmI5NDQ5YjdiNTUzOGQ3ODM1NDFkOGM0ODJlNWI1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVRleHRFZGl0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTgotICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0g
KiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaWZuZGVmIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcl9oCi0jZGVmaW5l
IEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcl9oCi0KLSNpbmNsdWRlICJDU1NQcm9wZXJ0eVNvdXJj
ZURhdGEuaCIKLQotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgSW5zcGVjdG9yU3R5
bGVQcm9wZXJ0eTsKLXN0cnVjdCBTb3VyY2VSYW5nZTsKLQotdHlwZWRlZiBzdGQ6OnBhaXI8U3Ry
aW5nLCBTdHJpbmc+IE5ld0xpbmVBbmRXaGl0ZXNwYWNlOwotCi1jbGFzcyBJbnNwZWN0b3JTdHls
ZVRleHRFZGl0b3IgewotcHVibGljOgotICAgIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcihWZWN0
b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4qIGFsbFByb3BlcnRpZXMsIFZlY3RvcjxJbnNwZWN0
b3JTdHlsZVByb3BlcnR5PiogZGlzYWJsZWRQcm9wZXJ0aWVzLCBjb25zdCBTdHJpbmcmIHN0eWxl
VGV4dCwgY29uc3QgTmV3TGluZUFuZFdoaXRlc3BhY2UmIGZvcm1hdCk7Ci0gICAgdm9pZCBpbnNl
cnRQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIHVu
c2lnbmVkIHN0eWxlQm9keUxlbmd0aCk7Ci0gICAgdm9pZCByZXBsYWNlUHJvcGVydHkodW5zaWdu
ZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCk7Ci0gICAgdm9pZCByZW1vdmVQcm9wZXJ0
eSh1bnNpZ25lZCBpbmRleCk7Ci0gICAgdm9pZCBlbmFibGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRl
eCk7Ci0gICAgdm9pZCBkaXNhYmxlUHJvcGVydHkodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0
IFN0cmluZyYgc3R5bGVUZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVRleHQ7IH0KLQotcHJp
dmF0ZToKLSAgICB1bnNpZ25lZCBkaXNhYmxlZEluZGV4QnlPcmRpbmFsKHVuc2lnbmVkIG9yZGlu
YWwsIGJvb2wgY2FuVXNlU3Vic2VxdWVudCk7Ci0gICAgdm9pZCBzaGlmdERpc2FibGVkUHJvcGVy
dGllcyh1bnNpZ25lZCBmcm9tSW5kZXgsIGxvbmcgZGVsdGEpOwotICAgIHZvaWQgaW50ZXJuYWxS
ZXBsYWNlUHJvcGVydHkoY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYsIGNvbnN0IFN0cmlu
ZyYgbmV3VGV4dCwgU291cmNlUmFuZ2UqIHJlbW92ZWRSYW5nZSwgdW5zaWduZWQqIGluc2VydGVk
TGVuZ3RoKTsKLQotICAgIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogbV9hbGxQcm9w
ZXJ0aWVzOwotICAgIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogbV9kaXNhYmxlZFBy
b3BlcnRpZXM7Ci0gICAgU3RyaW5nIG1fc3R5bGVUZXh0OwotICAgIGNvbnN0IHN0ZDo6cGFpcjxT
dHJpbmcsIFN0cmluZz4gbV9mb3JtYXQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyAhZGVmaW5lZChJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3JfaCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0
eS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9w
ZXJ0eS5qcwppbmRleCBmZWZiNGVlOGYzNTk3MzE4YzAwYWJkZGMxNzEyYjk2MmYwZTRmNTM3Li4w
YmM4Zjk0MTdjZmU4OWZjMzk4MDdiMjBiZWRhMWFjY2Q4ZmIxMWI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5
LmpzCkBAIC00Miw2ICs0Miw3IEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5FdmVudCA9IHsK
IAogV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKICAgICBjb25zdHJ1Y3Rv
cjogV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LAorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9y
Lk9iamVjdC5wcm90b3R5cGUsCiAKICAgICAvLyBQdWJsaWMKIApAQCAtMTEzLDEyICsxMTQsNiBA
QCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUg
dGhpcy5fY2Fub25pY2FsTmFtZTsKICAgICAgICAgZGVsZXRlIHRoaXMuX2hhc090aGVyVmVuZG9y
TmFtZU9yS2V5d29yZDsKIAotICAgICAgICBpZiAoIXRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRp
bWVvdXQpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nTmFtZTsKLSAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nVmFsdWU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5f
cGVuZGluZ1ByaW9yaXR5OwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKGNoYW5nZWQpCiAgICAg
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkuRXZlbnQuQ2hhbmdlZCk7CiAgICAgfSwKQEAgLTEzOCw2MSArMTMzLDExIEBAIFdlYklu
c3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl90
ZXh0IHx8IHRoaXMuc3ludGhlc2l6ZWRUZXh0OwogICAgIH0sCiAKLSAgICBzZXQgdGV4dCh0ZXh0
KQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9vd25lclN0eWxlIHx8ICF0aGlzLl9vd25lclN0
eWxlLmVkaXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl90
ZXh0ID09PSB0ZXh0KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0
aGlzLl9pbmRleCkpIHsKLSAgICAgICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0IHx8ICIiOwotCi0g
ICAgICAgICAgICAvLyBDbGVhciB0aGUgbmFtZSwgdmFsdWUgYW5kIHByaW9yaXR5IHNpbmNlIHRo
ZXkgbWlnaHQgbm90IG1hdGNoIHRoZSB0ZXh0IG5vdy4KLSAgICAgICAgICAgIHRoaXMuX25hbWUg
PSAiIjsKLSAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gIiI7Ci0gICAgICAgICAgICB0aGlzLl9w
cmlvcml0eSA9ICIiOwotCi0gICAgICAgICAgICAvLyBEaXR0byBmb3IgdGhlIGNhbm9uaWNhbCBh
bmQgcGVuZGluZyBwcm9wZXJ0aWVzLgotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Nhbm9uaWNh
bE5hbWU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ05hbWU7Ci0gICAgICAgICAg
ICBkZWxldGUgdGhpcy5fcGVuZGluZ1ZhbHVlOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3Bl
bmRpbmdQcmlvcml0eTsKLQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAg
ICAgdGhpcy5fY2FuY2VsUGVuZGluZ1VwZGF0ZSgpOwotICAgICAgICB0aGlzLl9vd25lclN0eWxl
Lm5vZGVTdHlsZXMuY2hhbmdlUHJvcGVydHlUZXh0KHRoaXMsIHRleHQpOwotICAgIH0sCi0KICAg
ICBnZXQgbmFtZSgpCiAgICAgewotICAgICAgICBpZiAoaXNOYU4odGhpcy5faW5kZXgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdOYW1lIHx8IHRoaXMuX25hbWU7CiAgICAgICAg
IHJldHVybiB0aGlzLl9uYW1lOwogICAgIH0sCiAKLSAgICBzZXQgbmFtZShuYW1lKQotICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9vd25lclN0eWxlIHx8ICF0aGlzLl9vd25lclN0eWxlLmVkaXRh
YmxlKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl9uYW1lID09PSBu
YW1lKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0aGlzLl9pbmRl
eCkpIHsKLSAgICAgICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOwotICAgICAgICAgICAgdGhpcy5f
dGV4dCA9ICIiOwotCi0gICAgICAgICAgICBkZWxldGUgdGhpcy5fY2Fub25pY2FsTmFtZTsKLSAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHRoaXMuX3BlbmRpbmdOYW1lID0gbmFtZTsKLSAg
ICAgICAgICAgIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vbigpOwotICAgICAgICB9Ci0gICAgfSwK
LQogICAgIGdldCBjYW5vbmljYWxOYW1lKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9jYW5v
bmljYWxOYW1lKQpAQCAtMjA1LDc1ICsxNTAsMjQgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5
LnByb3RvdHlwZSA9IHsKIAogICAgIGdldCB2YWx1ZSgpCiAgICAgewotICAgICAgICBpZiAoaXNO
YU4odGhpcy5faW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdWYWx1ZSB8
fCB0aGlzLl92YWx1ZTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlOwogICAgIH0sCiAKLSAg
ICBzZXQgdmFsdWUodmFsdWUpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5bGUg
fHwgIXRoaXMuX293bmVyU3R5bGUuZWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAg
ICAgICAgaWYgKHRoaXMuX3ZhbHVlID09PSB2YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICBpZiAoaXNOYU4odGhpcy5faW5kZXgpKSB7Ci0gICAgICAgICAgICB0aGlzLl92YWx1
ZSA9IHZhbHVlOwotICAgICAgICAgICAgdGhpcy5fdGV4dCA9ICIiOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgdGhpcy5fcGVuZGluZ1ZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAgICB0
aGlzLl91cGRhdGVQcm9wZXJ0eVNvb24oKTsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBnZXQg
aW1wb3J0YW50KCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLnByaW9yaXR5ID09PSAiaW1w
b3J0YW50IjsKICAgICB9LAogCi0gICAgc2V0IGltcG9ydGFudChpbXBvcnRhbnQpCi0gICAgewot
ICAgICAgICB0aGlzLnByaW9yaXR5ID0gaW1wb3J0YW50ID8gImltcG9ydGFudCIgOiAiIjsKLSAg
ICB9LAotCiAgICAgZ2V0IHByaW9yaXR5KCkKICAgICB7Ci0gICAgICAgIGlmIChpc05hTih0aGlz
Ll9pbmRleCkpCi0gICAgICAgICAgICByZXR1cm4gdGhpcy5fcGVuZGluZ1ByaW9yaXR5IHx8IHRo
aXMuX3ByaW9yaXR5OwogICAgICAgICByZXR1cm4gdGhpcy5fcHJpb3JpdHk7CiAgICAgfSwKIAot
ICAgIHNldCBwcmlvcml0eShwcmlvcml0eSkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fb3du
ZXJTdHlsZSB8fCAhdGhpcy5fb3duZXJTdHlsZS5lZGl0YWJsZSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBpZiAodGhpcy5fcHJpb3JpdHkgPT09IHByaW9yaXR5KQotICAgICAgICAg
ICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0aGlzLl9pbmRleCkpIHsKLSAgICAgICAg
ICAgIHRoaXMuX3ByaW9yaXR5ID0gcHJpb3JpdHk7Ci0gICAgICAgICAgICB0aGlzLl90ZXh0ID0g
IiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB0aGlzLl9wZW5kaW5nUHJpb3JpdHkg
PSBwcmlvcml0eTsKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vbigpOwotICAg
ICAgICB9Ci0gICAgfSwKLQogICAgIGdldCBlbmFibGVkKCkKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9lbmFibGVkICYmIHRoaXMuX293bmVyU3R5bGUgJiYgKCFpc05hTih0aGlzLl9pbmRl
eCkgfHwgdGhpcy5fb3duZXJTdHlsZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5UeXBlLkNvbXB1dGVkKTsKICAgICB9LAogCi0gICAgc2V0IGVuYWJsZWQoZW5hYmxl
ZCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3duZXJT
dHlsZS5lZGl0YWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9vd25l
clN0eWxlLm5vZGVTdHlsZXMuY2hhbmdlUHJvcGVydHlFbmFibGVkU3RhdGUodGhpcywgZW5hYmxl
ZCk7Ci0gICAgfSwKLQogICAgIGdldCBvdmVycmlkZGVuKCkKICAgICB7CiAgICAgICAgIHJldHVy
biB0aGlzLl9vdmVycmlkZGVuOwpAQCAtMzkyLDYzICsyODYsNSBAQCBXZWJJbnNwZWN0b3IuQ1NT
UHJvcGVydHkucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9oYXNPdGhlclZlbmRvck5hbWVP
cktleXdvcmQgPSBXZWJJbnNwZWN0b3IuY3NzU3R5bGVNYW5hZ2VyLnByb3BlcnR5TmFtZUhhc090
aGVyVmVuZG9yUHJlZml4KHRoaXMubmFtZSkgfHwgV2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdl
ci5wcm9wZXJ0eVZhbHVlSGFzT3RoZXJWZW5kb3JLZXl3b3JkKHRoaXMudmFsdWUpOwogCiAgICAg
ICAgIHJldHVybiB0aGlzLl9oYXNPdGhlclZlbmRvck5hbWVPcktleXdvcmQ7Ci0gICAgfSwKLQot
ICAgIGFkZDogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgLy8gV2UgY2FuIG9ubHkgYWRkIGlm
IHRoZSBpbmRleCBpcyBOYU4uIFJldHVybiBlYXJseSBvdGhlcndpc2UuCi0gICAgICAgIGlmICgh
dGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3duZXJTdHlsZS5lZGl0YWJsZSB8fCAhaXNOYU4o
dGhpcy5faW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2NhbmNl
bFBlbmRpbmdVcGRhdGUoKTsKLSAgICAgICAgdGhpcy5fb3duZXJTdHlsZS5hZGRQcm9wZXJ0eSh0
aGlzKTsKLSAgICB9LAotCi0gICAgcmVtb3ZlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAv
LyBXZSBjYW4gb25seSByZW1vdmUgaWYgdGhlIGluZGV4IGlzIG5vdCBOYU4uIFJldHVybiBlYXJs
eSBvdGhlcndpc2UuCi0gICAgICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3du
ZXJTdHlsZS5lZGl0YWJsZSB8fCBpc05hTih0aGlzLl9pbmRleCkpCi0gICAgICAgICAgICByZXR1
cm47Ci0KLSAgICAgICAgdGhpcy5fY2FuY2VsUGVuZGluZ1VwZGF0ZSgpOwotICAgICAgICB0aGlz
Ll9vd25lclN0eWxlLnJlbW92ZVByb3BlcnR5KHRoaXMpOwotICAgIH0sCi0KLSAgICAvLyBQcml2
YXRlCi0KLSAgICBfdXBkYXRlUHJvcGVydHlTb29uOiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBpZiAoIXRoaXMuX293bmVyU3R5bGUgfHwgaXNOYU4odGhpcy5faW5kZXgpIHx8IHRoaXMuX3Vw
ZGF0ZVByb3BlcnR5U29vblRpbWVvdXQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ZnVuY3Rpb24gcGVyZm9ybVVwZGF0ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0
aGlzLl91cGRhdGVQcm9wZXJ0eVNvb25UaW1lb3V0OwotCi0gICAgICAgICAgICBpZiAoIXRoaXMu
X293bmVyU3R5bGUgfHwgaXNOYU4odGhpcy5faW5kZXgpKQotICAgICAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICAgICAgdmFyIG5hbWUgPSAiX3BlbmRpbmdOYW1lIiBpbiB0aGlzID8gdGhp
cy5fcGVuZGluZ05hbWUgOiB0aGlzLl9uYW1lOwotICAgICAgICAgICAgdmFyIHZhbHVlID0gIl9w
ZW5kaW5nVmFsdWUiIGluIHRoaXMgPyB0aGlzLl9wZW5kaW5nVmFsdWUgOiB0aGlzLl92YWx1ZTsK
LSAgICAgICAgICAgIHZhciBwcmlvcml0eSA9ICJfcGVuZGluZ1ByaW9yaXR5IiBpbiB0aGlzID8g
dGhpcy5fcGVuZGluZ1ByaW9yaXR5IDogdGhpcy5fcHJpb3JpdHk7Ci0KLSAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9wZW5kaW5nTmFtZTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5n
VmFsdWU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1ByaW9yaXR5OwotCi0gICAg
ICAgICAgICB0aGlzLl9vd25lclN0eWxlLm5vZGVTdHlsZXMuY2hhbmdlUHJvcGVydHkodGhpcywg
bmFtZSwgdmFsdWUsIHByaW9yaXR5KTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3VwZGF0
ZVByb3BlcnR5U29vblRpbWVvdXQgPSBzZXRUaW1lb3V0KHBlcmZvcm1VcGRhdGUuYmluZCh0aGlz
KSwgMCk7Ci0gICAgfSwKLQotICAgIF9jYW5jZWxQZW5kaW5nVXBkYXRlOiBmdW5jdGlvbigpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVvdXQpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVQcm9wZXJ0
eVNvb25UaW1lb3V0KTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRp
bWVvdXQ7CiAgICAgfQogfTsKLQotV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0
aW9uLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0
eWxlRGVjbGFyYXRpb24uanMKaW5kZXggZWFhYjE4Nzg3Njc1YmQ4MzY3ZjFjZTNhNGQwYWJjM2Ux
ZTY2MTE4NS4uZGZjOWExOGY1NGM4YWNkYzNiMDEwOGQ5ODEzZTc4MDY0MmIwMzIwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxl
RGVjbGFyYXRpb24uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKQEAgLTU5LDYgKzU5LDcgQEAgV2ViSW5zcGVj
dG9yLkNTU1N0eWxlRGVjbGFyYXRpb24uVHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxl
RGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3Iu
Q1NTU3R5bGVEZWNsYXJhdGlvbiwKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlLAogCiAgICAgLy8gUHVibGljCiAKQEAgLTI2NSw0MCArMjY2LDYgQEAgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4g
bmV3UHJvcGVydHk7CiAgICAgfSwKIAotICAgIGFkZFByb3BlcnR5OiBmdW5jdGlvbihwcm9wZXJ0
eSkKLSAgICB7Ci0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3BlcnR5KTsKLSAgICAgICAgaWYg
KCFwcm9wZXJ0eSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb25zb2xlLmFzc2Vy
dChwcm9wZXJ0eS5vd25lclN0eWxlID09PSB0aGlzKTsKLSAgICAgICAgaWYgKHByb3BlcnR5Lm93
bmVyU3R5bGUgIT09IHRoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29uc29s
ZS5hc3NlcnQodGhpcy5lZGl0YWJsZSk7Ci0gICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9ub2RlU3R5bGVzLmFkZFByb3BlcnR5
KHByb3BlcnR5KTsKLSAgICB9LAotCi0gICAgcmVtb3ZlUHJvcGVydHk6IGZ1bmN0aW9uKHByb3Bl
cnR5KQotICAgIHsKLSAgICAgICAgY29uc29sZS5hc3NlcnQocHJvcGVydHkpOwotICAgICAgICBp
ZiAoIXByb3BlcnR5KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHByb3BlcnR5Lm93bmVyU3R5bGUgPT09IHRoaXMpOwotICAgICAgICBpZiAocHJvcGVydHku
b3duZXJTdHlsZSAhPT0gdGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb25z
b2xlLmFzc2VydCh0aGlzLmVkaXRhYmxlKTsKLSAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX25vZGVTdHlsZXMucmVtb3ZlUHJv
cGVydHkocHJvcGVydHkpOwotICAgIH0sCi0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBu
b2RlU3R5bGVzKCkKQEAgLTMwNiw1ICsyNzMsMyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNs
YXJhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlU3R5bGVzOwog
ICAgIH0KIH07Ci0KLVdlYkluc3BlY3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5f
X3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHls
ZXMuanMKaW5kZXggYmVkNDhlODRkZjA4M2MzNTQ4NTAxZmFhZTJmOWUzN2ViNjI0NmRmMC4uYmIy
MmEyNDQ2MzUwODdlY2U3ZGNkOTU3ZjgxMzUxNjJiZDk5ODU1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHls
ZXMuanMKQEAgLTI0OCw3ICsyNDgsNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90
b3R5cGUgPSB7CiAgICAgICAgIENTU0FnZW50LmdldENvbXB1dGVkU3R5bGVGb3JOb2RlLmludm9r
ZSh7bm9kZUlkOiB0aGlzLl9ub2RlLmlkfSwgZmV0Y2hlZENvbXB1dGVkU3R5bGUuYmluZCh0aGlz
KSk7CiAgICAgfSwKIAotICAgIGFkZFJ1bGU6IGZ1bmN0aW9uKHNlbGVjdG9yKQorICAgIGFkZEVt
cHR5UnVsZTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgZnVuY3Rpb24gYWRkZWRSdWxlKGVy
cm9yLCBydWxlUGF5bG9hZCkKICAgICAgICAgewpAQCAtMjYwLDcgKzI2MCw3IEBAIFdlYkluc3Bl
Y3Rvci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMucmVmcmVz
aCgpOwogICAgICAgICB9CiAKLSAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciB8fCB0aGlzLl9u
b2RlLmFwcHJvcHJpYXRlU2VsZWN0b3JGb3IodHJ1ZSk7CisgICAgICAgIHNlbGVjdG9yID0gdGhp
cy5fbm9kZS5hcHByb3ByaWF0ZVNlbGVjdG9yRm9yKHRydWUpOwogCiAgICAgICAgIENTU0FnZW50
LmFkZFJ1bGUuaW52b2tlKHtjb250ZXh0Tm9kZUlkOiB0aGlzLl9ub2RlLmlkLCBzZWxlY3Rvcjog
c2VsZWN0b3J9LCBhZGRlZFJ1bGUuYmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTQ1MSw4MyArNDUx
LDggQEAgV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlID0gewogICAgICAgICBz
dHlsZS5vd25lclN0eWxlU2hlZXQucmVxdWVzdENvbnRlbnQoKS50aGVuKGZldGNoZWRTdHlsZVNo
ZWV0Q29udGVudC5iaW5kKHRoaXMpKTsKICAgICB9LAogCi0gICAgY2hhbmdlUHJvcGVydHk6IGZ1
bmN0aW9uKHByb3BlcnR5LCBuYW1lLCB2YWx1ZSwgcHJpb3JpdHkpCi0gICAgewotICAgICAgICB2
YXIgdGV4dCA9IG5hbWUgPyBuYW1lICsgIjogIiArIHZhbHVlICsgKHByaW9yaXR5ID8gIiAhIiAr
IHByaW9yaXR5IDogIiIpICsgIjsiIDogIiI7Ci0gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHlU
ZXh0KHByb3BlcnR5LCB0ZXh0KTsKLSAgICB9LAotCi0gICAgY2hhbmdlUHJvcGVydHlUZXh0OiBm
dW5jdGlvbihwcm9wZXJ0eSwgdGV4dCkKLSAgICB7Ci0gICAgICAgIHRleHQgPSB0ZXh0IHx8ICIi
OwotCi0gICAgICAgIHZhciBpbmRleCA9IHByb3BlcnR5LmluZGV4OwotICAgICAgICB2YXIgbmV3
UHJvcGVydHkgPSBpc05hTihpbmRleCk7Ci0gICAgICAgIHZhciBvdmVyd3JpdGUgPSB0cnVlOwot
Ci0gICAgICAgIC8vIElmIHRoaXMgaXMgYSBuZXcgcHJvcGVydHksIHRoZW4gZ2l2ZSBpdCBhbiBp
bmRleCBhdCB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IHByb3BlcnRpZXMuCi0gICAgICAgIC8vIEFs
c28gZG9uJ3Qgb3ZlcndyaXRlLCB3aGljaCB3aWxsIGNhdXNlIHRoZSBwcm9wZXJ0eSB0byBiZSBh
ZGRlZCBhdCB0aGF0IGluZGV4LgotICAgICAgICBpZiAobmV3UHJvcGVydHkpIHsKLSAgICAgICAg
ICAgIGluZGV4ID0gcHJvcGVydHkub3duZXJTdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aDsKLSAgICAg
ICAgICAgIG92ZXJ3cml0ZSA9IGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRleHQg
JiYgdGV4dC5jaGFyQXQodGV4dC5sZW5ndGggLSAxKSAhPT0gIjsiKQotICAgICAgICAgICAgdGV4
dCArPSAiOyI7Ci0KLSAgICAgICAgdGhpcy5fbmVlZHNSZWZyZXNoID0gdHJ1ZTsKLSAgICAgICAg
dGhpcy5faWdub3JlTmV4dENvbnRlbnREaWRDaGFuZ2VGb3JTdHlsZVNoZWV0ID0gcHJvcGVydHku
b3duZXJTdHlsZS5vd25lclN0eWxlU2hlZXQ7Ci0KLSAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVy
dHlUZXh0KHByb3BlcnR5Lm93bmVyU3R5bGUuaWQsIGluZGV4LCB0ZXh0LCBvdmVyd3JpdGUsIHRo
aXMuX2hhbmRsZVByb3BlcnR5Q2hhbmdlLmJpbmQodGhpcywgcHJvcGVydHkpKTsKLSAgICB9LAot
Ci0gICAgY2hhbmdlUHJvcGVydHlFbmFibGVkU3RhdGU6IGZ1bmN0aW9uKHByb3BlcnR5LCBlbmFi
bGVkKQotICAgIHsKLSAgICAgICAgZW5hYmxlZCA9ICEhZW5hYmxlZDsKLQotICAgICAgICAvLyBD
YW4ndCBjaGFuZ2UgYSBwZW5kaW5nIHByb3BlcnR5IHdpdGggYSBOYU4gaW5kZXguCi0gICAgICAg
IGlmIChpc05hTihwcm9wZXJ0eS5pbmRleCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAg
ICAgdGhpcy5faWdub3JlTmV4dENvbnRlbnREaWRDaGFuZ2VGb3JTdHlsZVNoZWV0ID0gcHJvcGVy
dHkub3duZXJTdHlsZS5vd25lclN0eWxlU2hlZXQ7Ci0KLSAgICAgICAgQ1NTQWdlbnQudG9nZ2xl
UHJvcGVydHkocHJvcGVydHkub3duZXJTdHlsZS5pZCwgcHJvcGVydHkuaW5kZXgsICFlbmFibGVk
LCB0aGlzLl9oYW5kbGVQcm9wZXJ0eUNoYW5nZS5iaW5kKHRoaXMsIHByb3BlcnR5KSk7Ci0gICAg
fSwKLQotICAgIGFkZFByb3BlcnR5OiBmdW5jdGlvbihwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAg
IC8vIENhbid0IGFkZCBhIHByb3BlcnR5IHVubGVzcyBpdCBoYXMgYSBOYU4gaW5kZXguCi0gICAg
ICAgIGlmICghaXNOYU4ocHJvcGVydHkuaW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIC8vIEFkZGluZyBpcyBkb25lIGJ5IHNldHRpbmcgdGhlIHRleHQuCi0gICAgICAgIHRo
aXMuY2hhbmdlUHJvcGVydHlUZXh0KHByb3BlcnR5LCBwcm9wZXJ0eS50ZXh0KTsKLSAgICB9LAot
Ci0gICAgcmVtb3ZlUHJvcGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5KQotICAgIHsKLSAgICAgICAg
Ly8gQ2FuJ3QgcmVtb3ZlIGEgcGVuZGluZyBwcm9wZXJ0eSB3aXRoIGEgTmFOIGluZGV4LgotICAg
ICAgICBpZiAoaXNOYU4ocHJvcGVydHkuaW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIC8vIFJlbW92aW5nIGlzIGRvbmUgYnkgc2V0dGluZyB0ZXh0IHRvIGFuIGVtcHR5IHN0
cmluZy4KLSAgICAgICAgdGhpcy5jaGFuZ2VQcm9wZXJ0eVRleHQocHJvcGVydHksICIiKTsKLSAg
ICB9LAotCiAgICAgLy8gUHJpdmF0ZQogCi0gICAgX2hhbmRsZVByb3BlcnR5Q2hhbmdlOiBmdW5j
dGlvbihwcm9wZXJ0eSwgZXJyb3IsIHN0eWxlUGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIGlmIChl
cnJvcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBET01BZ2VudC5tYXJrVW5kb2Fi
bGVTdGF0ZSgpOwotCi0gICAgICAgIC8vIERvIGEgcmVmcmVzaCBpbnN0ZWFkIG9mIGhhbmRsaW5n
IHN0eWxlUGF5bG9hZCBzbyBjb21wdXRlZCBzdHlsZSBpcyB1cGRhdGVkIGFuZCB3ZSBnZXQgdmFs
aWQKLSAgICAgICAgLy8gc3R5bGVTaGVldFRleHRSYW5nZSB2YWx1ZXMgZm9yIGFsbCB0aGUgcnVs
ZXMgYWZ0ZXIgdGhpcyBjaGFuZ2UuCi0gICAgICAgIHRoaXMucmVmcmVzaCgpOwotICAgIH0sCi0K
ICAgICBfY3JlYXRlU291cmNlQ29kZUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJj
ZUxpbmUsIHNvdXJjZUNvbHVtbikKICAgICB7CiAgICAgICAgIGlmICghc291cmNlVVJMKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVn
YWN5LzYuMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNi4wL0luc3BlY3RvckJhY2tlbmRDb21t
YW5kcy5qcwppbmRleCAyNWY4YWZkNjBiMmJkYjMyMWI4YjAyYzc4OWIzOTI2NDk3ODY0YzgzLi44
ZGU5NjVhMzUxNTg2YzQ4NjlmN2NlYmY4OWY3MjY0ODc2ZjgxNjM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNi4wL0luc3Bl
Y3RvckJhY2tlbmRDb21tYW5kcy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNi4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwpA
QCAtMjA5LDggKzIwOSw2IEBAIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1Mu
Z2V0QWxsU3R5bGVTaGVldHMiLCBbXSwgWyJoZWFkZXJzIl0pOwogSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckNvbW1hbmQoIkNTUy5nZXRTdHlsZVNoZWV0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0
SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInN0eWxlU2hlZXQi
XSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN0eWxlU2hlZXRU
ZXh0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiBmYWxzZX1dLCBbInRleHQiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFu
ZCgiQ1NTLnNldFN0eWxlU2hlZXRUZXh0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10pOwotSW5zcGVjdG9yQmFja2VuZC5y
ZWdpc3RlckNvbW1hbmQoIkNTUy5zZXRQcm9wZXJ0eVRleHQiLCBbeyJuYW1lIjogInN0eWxlSWQi
LCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJwcm9wZXJ0
eUluZGV4IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAi
dGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogIm92
ZXJ3cml0ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInN0eWxl
Il0pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy50b2dnbGVQcm9wZXJ0
eSIsIFt7Im5hbWUiOiAic3R5bGVJZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6IGZh
bHNlfSwgeyJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9u
YWwiOiBmYWxzZX0sIHsibmFtZSI6ICJkaXNhYmxlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRp
b25hbCI6IGZhbHNlfV0sIFsic3R5bGUiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29t
bWFuZCgiQ1NTLnNldFJ1bGVTZWxlY3RvciIsIFt7Im5hbWUiOiAicnVsZUlkIiwgInR5cGUiOiAi
b2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAic2VsZWN0b3IiLCAidHlwZSI6
ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInJ1bGUiXSk7CiBJbnNwZWN0b3JCYWNr
ZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmFkZFJ1bGUiLCBbeyJuYW1lIjogImNvbnRleHROb2Rl
SWQiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJzZWxl
Y3RvciIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsicnVsZSJdKTsK
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1MuZ2V0U3VwcG9ydGVkQ1NTUHJv
cGVydGllcyIsIFtdLCBbImNzc1Byb3BlcnRpZXMiXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNy4wL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0xlZ2FjeS83LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCmluZGV4IGExNDE1
ZTA0NWVlNDdjNDIzMjdjMzI5YWZiZDEyNzAxNGVhZjU0YWIuLjQxYjcxZDYwZGU2ZTVlZmQ3Nzk3
OWUwZDE0ODdjYmVmNWE1YWE3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS83LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRz
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0xl
Z2FjeS83LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCkBAIC0yMzgsOCArMjM4LDYgQEAg
SW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5nZXRTdHlsZVNoZWV0IiwgW3si
bmFtZSI6ICJzdHlsZVNoZWV0SWQiLAogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQo
IkNTUy5nZXRTdHlsZVNoZWV0VGV4dCIsIFt7Im5hbWUiOiAic3R5bGVTaGVldElkIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJ0ZXh0Il0pOwogSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5zZXRTdHlsZVNoZWV0VGV4dCIsIFt7Im5hbWUiOiAi
c3R5bGVTaGVldElkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5h
bWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFtdKTsK
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1Muc2V0U3R5bGVUZXh0IiwgW3si
bmFtZSI6ICJzdHlsZUlkIiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7
Im5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsi
c3R5bGUiXSk7Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNldFByb3Bl
cnR5VGV4dCIsIFt7Im5hbWUiOiAic3R5bGVJZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25h
bCI6IGZhbHNlfSwgeyJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJudW1iZXIiLCAi
b3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IGZhbHNlfV0sIFsic3R5bGUiXSk7Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lz
dGVyQ29tbWFuZCgiQ1NTLnRvZ2dsZVByb3BlcnR5IiwgW3sibmFtZSI6ICJzdHlsZUlkIiwgInR5
cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicHJvcGVydHlJbmRl
eCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogImRpc2Fi
bGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzdHlsZSJdKTsK
IEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1Muc2V0UnVsZVNlbGVjdG9yIiwg
W3sibmFtZSI6ICJydWxlSWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0s
IHsibmFtZSI6ICJzZWxlY3RvciIsICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNl
fV0sIFsicnVsZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1MuYWRk
UnVsZSIsIFt7Im5hbWUiOiAiY29udGV4dE5vZGVJZCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRp
b25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInNlbGVjdG9yIiwgInR5cGUiOiAic3RyaW5nIiwgIm9w
dGlvbmFsIjogZmFsc2V9XSwgWyJydWxlIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNv
bW1hbmQoIkNTUy5nZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzIiwgW10sIFsiY3NzUHJvcGVydGll
cyJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0xlZ2FjeS84LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JC
YWNrZW5kQ29tbWFuZHMuanMKaW5kZXggNzMzYjI3ODU4ZTUyZTJlMmI0NjkxODJjZDg5YmE5NTNl
ZGM4MjQ3Yi4uMmY2NTc3MzFlNGMwOWQ0NWIxNjQ1NWM0MzI0NDdkMGM0YjMzZWZmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVnYWN5
LzguMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JCYWNrZW5kQ29t
bWFuZHMuanMKQEAgLTE1NCw4ICsxNTQsNiBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29t
bWFuZCgiQ1NTLmdldFN0eWxlU2hlZXQiLCBbeyJuYW1lIjogInN0eWxlU2hlZXRJZCIsCiBJbnNw
ZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN0eWxlU2hlZXRUZXh0IiwgW3si
bmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxz
ZX1dLCBbInRleHQiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNl
dFN0eWxlU2hlZXRUZXh0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5n
IiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgW10pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNv
bW1hbmQoIkNTUy5zZXRTdHlsZVRleHQiLCBbeyJuYW1lIjogInN0eWxlSWQiLCAidHlwZSI6ICJv
YmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3Ry
aW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzdHlsZSJdKTsKLUluc3BlY3RvckJhY2tlbmQu
cmVnaXN0ZXJDb21tYW5kKCJDU1Muc2V0UHJvcGVydHlUZXh0IiwgW3sibmFtZSI6ICJzdHlsZUlk
IiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicHJvcGVy
dHlJbmRleCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjog
InRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJv
dmVyd3JpdGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzdHls
ZSJdKTsKLUluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1MudG9nZ2xlUHJvcGVy
dHkiLCBbeyJuYW1lIjogInN0eWxlSWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBm
YWxzZX0sIHsibmFtZSI6ICJwcm9wZXJ0eUluZGV4IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlv
bmFsIjogZmFsc2V9LCB7Im5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiBmYWxzZX1dLCBbInN0eWxlIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNv
bW1hbmQoIkNTUy5zZXRSdWxlU2VsZWN0b3IiLCBbeyJuYW1lIjogInJ1bGVJZCIsICJ0eXBlIjog
Im9iamVjdCIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInNlbGVjdG9yIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJydWxlIl0pOwogSW5zcGVjdG9yQmFj
a2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5hZGRSdWxlIiwgW3sibmFtZSI6ICJjb250ZXh0Tm9k
ZUlkIiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAic2Vs
ZWN0b3IiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInJ1bGUiXSk7
CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN1cHBvcnRlZENTU1By
b3BlcnRpZXMiLCBbXSwgWyJjc3NQcm9wZXJ0aWVzIl0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVE
ZXRhaWxzUGFuZWwuanMKaW5kZXggODBjMDg4YWI3NTc5ZGIwMWIyMTgzNzkyZWU3YWMyZjgwOTMw
NGQwMC4uNzk2NGIzZWM1ZDNjY2M4ZTAzYzgxNTgyZTE3Yzg0M2VkZmRjMTRkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURl
dGFpbHNQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9SdWxlc1N0eWxlRGV0YWlsc1BhbmVsLmpzCkBAIC0yODAsNyArMjgwLDcgQEAgV2ViSW5z
cGVjdG9yLlJ1bGVzU3R5bGVEZXRhaWxzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9uZXdSdWxl
Q2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl9mb2N1c05leHRO
ZXdJbnNwZWN0b3JSdWxlID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5ub2RlU3R5bGVzLmFkZFJ1bGUo
KTsKKyAgICAgICAgdGhpcy5ub2RlU3R5bGVzLmFkZEVtcHR5UnVsZSgpOwogICAgIH0KIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9WZXJzaW9ucy9JbnNwZWN0b3ItaU9T
LTYuMC5qc29uIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1pT1Mt
Ni4wLmpzb24KaW5kZXggOWY3Y2E3OTFhNTc4MTk4ZWRkYjBiOTE2ZTVkZjhkZGE4ZWYyMDViYi4u
ODBmNWM2YTcwZGI0NWE4ZWVlYWZkNTMzYzE4YzEzOGU0NzRhODc2NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtNi4wLmpzb24KKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtNi4wLmpzb24KQEAg
LTE3MzEsMzEgKzE3MzEsNiBAQAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRz
IHRoZSBuZXcgc3R5bGVzaGVldCB0ZXh0LCB0aGVyZWJ5IGludmFsaWRhdGluZyBhbGwgZXhpc3Rp
bmcgPGNvZGU+Q1NTU3R5bGVJZDwvY29kZT4ncyBhbmQgPGNvZGU+Q1NTUnVsZUlkPC9jb2RlPidz
IGNvbnRhaW5lZCBieSB0aGlzIHN0eWxlc2hlZXQuIgogICAgICAgICAgICAgfSwKICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0eVRleHQiLAotICAgICAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiB9LAotICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQot
ICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgcmVzdWx0aW5nIHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1v
ZGlmaWNhdGlvbi4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJTZXRzIHRoZSBuZXcgPGNvZGU+dGV4dDwvY29kZT4gZm9yIGEgcHJvcGVydHkg
aW4gdGhlIHJlc3BlY3RpdmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9j
b2RlPi4gSWYgPGNvZGU+b3ZlcndyaXRlPC9jb2RlPiBpcyA8Y29kZT50cnVlPC9jb2RlPiwgYSBw
cm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIG92ZXJ3cml0dGVuLCBvdGhlcndpc2UgaW5z
ZXJ0ZWQuIDxjb2RlPnRleHQ8L2NvZGU+IGVudGlyZWx5IHJlcGxhY2VzIHRoZSBwcm9wZXJ0eSA8
Y29kZT5uYW1lOiB2YWx1ZTwvY29kZT4uIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJ0b2dnbGVQcm9wZXJ0eSIsCi0gICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVJ
ZCIsICIkcmVmIjogIkNTU1N0eWxlSWQiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIHJlc3VsdGluZyBzdHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9Ci0gICAg
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVG9nZ2xlcyB0
aGUgcHJvcGVydHkgaW4gdGhlIHJlc3BlY3RpdmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9w
ZXJ0eUluZGV4PC9jb2RlPi4gVGhlIDxjb2RlPmRpc2FibGU8L2NvZGU+IHBhcmFtZXRlciBkZW5v
dGVzIHdoZXRoZXIgdGhlIHByb3BlcnR5IHNob3VsZCBiZSBkaXNhYmxlZCAoaS5lLiByZW1vdmVk
IGZyb20gdGhlIHN0eWxlIGRlY2xhcmF0aW9uKS4gSWYgPGNvZGU+ZGlzYWJsZSA9PSBmYWxzZTwv
Y29kZT4sIHRoZSBwcm9wZXJ0eSBnZXRzIHB1dCBiYWNrIGludG8gaXRzIG9yaWdpbmFsIHBsYWNl
IGluIHRoZSBzdHlsZSBkZWNsYXJhdGlvbi4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICJuYW1lIjogInNldFJ1bGVTZWxlY3RvciIsCiAgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicnVs
ZUlkIiwgIiRyZWYiOiAiQ1NTUnVsZUlkIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtNy4wLmpzb24gYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy03LjAuanNvbgppbmRleCBjM2ZkYTNhMzliODdi
MTM5NTdiZmFhNTU0MzUxODRlNDZhMGNkY2YzLi5lYWQxNTQ0NWU5NDYwMGE1NDY4YmE4ODg1NTNj
MWFjZmY2MzMwNTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMv
SW5zcGVjdG9yLWlPUy03LjAuanNvbgorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lv
bnMvSW5zcGVjdG9yLWlPUy03LjAuanNvbgpAQCAtMjAzMiwzMSArMjAzMiw2IEBACiAgICAgICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIG5ldyA8Y29kZT50ZXh0PC9jb2RlPiBm
b3IgdGhlIHJlc3BlY3RpdmUgc3R5bGUuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICAibmFtZSI6ICJzZXRQcm9wZXJ0eVRleHQiLAotICAgICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxl
SWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQotICAgICAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgcmVzdWx0aW5nIHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1vZGlmaWNh
dGlvbi4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJTZXRzIHRoZSBuZXcgPGNvZGU+dGV4dDwvY29kZT4gZm9yIGEgcHJvcGVydHkgaW4gdGhl
IHJlc3BlY3RpdmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9jb2RlPi4g
SWYgPGNvZGU+b3ZlcndyaXRlPC9jb2RlPiBpcyA8Y29kZT50cnVlPC9jb2RlPiwgYSBwcm9wZXJ0
eSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0IGlzIG92ZXJ3cml0dGVuLCBvdGhlcndpc2UgaW5zZXJ0ZWQu
IDxjb2RlPnRleHQ8L2NvZGU+IGVudGlyZWx5IHJlcGxhY2VzIHRoZSBwcm9wZXJ0eSA8Y29kZT5u
YW1lOiB2YWx1ZTwvY29kZT4uIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAibmFtZSI6ICJ0b2dnbGVQcm9wZXJ0eSIsCi0gICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVJZCIsICIk
cmVmIjogIkNTU1N0eWxlSWQiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJv
cGVydHlJbmRleCIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgICAgICBd
LAotICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJl
c3VsdGluZyBzdHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9Ci0gICAgICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVG9nZ2xlcyB0aGUgcHJv
cGVydHkgaW4gdGhlIHJlc3BlY3RpdmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUlu
ZGV4PC9jb2RlPi4gVGhlIDxjb2RlPmRpc2FibGU8L2NvZGU+IHBhcmFtZXRlciBkZW5vdGVzIHdo
ZXRoZXIgdGhlIHByb3BlcnR5IHNob3VsZCBiZSBkaXNhYmxlZCAoaS5lLiByZW1vdmVkIGZyb20g
dGhlIHN0eWxlIGRlY2xhcmF0aW9uKS4gSWYgPGNvZGU+ZGlzYWJsZSA9PSBmYWxzZTwvY29kZT4s
IHRoZSBwcm9wZXJ0eSBnZXRzIHB1dCBiYWNrIGludG8gaXRzIG9yaWdpbmFsIHBsYWNlIGluIHRo
ZSBzdHlsZSBkZWNsYXJhdGlvbi4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAg
ICAgICAgICAgICAgICJuYW1lIjogInNldFJ1bGVTZWxlY3RvciIsCiAgICAgICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicnVsZUlkIiwg
IiRyZWYiOiAiQ1NTUnVsZUlkIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtOC4wLmpzb24gYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VmVyc2lvbnMvSW5zcGVjdG9yLWlPUy04LjAuanNvbgppbmRleCA0YWE2ZDIxZDYwNWFiMmY3YWY0
M2MxYmZkMDlmYzUwYWVjMTYyODIzLi45MzMyMDNiM2UyY2RmY2JmMDY2M2U0NmFlOGNlMThhMTA2
YzkxNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVj
dG9yLWlPUy04LjAuanNvbgorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5z
cGVjdG9yLWlPUy04LjAuanNvbgpAQCAtMTE3MywzMSArMTE3Myw2IEBACiAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgbmV3IDxjb2RlPnRleHQ8L2NvZGU+IGZvciB0aGUgcmVz
cGVjdGl2ZSBzdHlsZS4iCiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogInNldFByb3BlcnR5VGV4dCIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiB9LAot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogImludGVn
ZXIiIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5n
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9v
bGVhbiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgcmVzdWx0aW5nIHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1vZGlm
aWNhdGlvbi4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
U2V0cyB0aGUgbmV3IDxjb2RlPnRleHQ8L2NvZGU+IGZvciBhIHByb3BlcnR5IGluIHRoZSByZXNw
ZWN0aXZlIHN0eWxlLCBhdCBvZmZzZXQgPGNvZGU+cHJvcGVydHlJbmRleDwvY29kZT4uIElmIDxj
b2RlPm92ZXJ3cml0ZTwvY29kZT4gaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIGEgcHJvcGVydHkgYXQg
dGhlIGdpdmVuIG9mZnNldCBpcyBvdmVyd3JpdHRlbiwgb3RoZXJ3aXNlIGluc2VydGVkLiA8Y29k
ZT50ZXh0PC9jb2RlPiBlbnRpcmVseSByZXBsYWNlcyB0aGUgcHJvcGVydHkgPGNvZGU+bmFtZTog
dmFsdWU8L2NvZGU+LiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUi
OiAidG9nZ2xlUHJvcGVydHkiLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzdHlsZUlkIiwgIiRyZWYiOiAiQ1NTU3R5bGVJZCIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRlZ2Vy
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xl
YW4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHJlc3VsdGluZyBzdHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9
Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgdGhl
IHByb3BlcnR5IGluIHRoZSByZXNwZWN0aXZlIHN0eWxlLCBhdCBvZmZzZXQgPGNvZGU+cHJvcGVy
dHlJbmRleDwvY29kZT4uIFRoZSA8Y29kZT5kaXNhYmxlPC9jb2RlPiBwYXJhbWV0ZXIgZGVub3Rl
cyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgZGlzYWJsZWQgKGkuZS4gcmVtb3ZlZCBm
cm9tIHRoZSBzdHlsZSBkZWNsYXJhdGlvbikuIElmIDxjb2RlPmRpc2FibGUgPT0gZmFsc2U8L2Nv
ZGU+LCB0aGUgcHJvcGVydHkgZ2V0cyBwdXQgYmFjayBpbnRvIGl0cyBvcmlnaW5hbCBwbGFjZSBp
biB0aGUgc3R5bGUgZGVjbGFyYXRpb24uIgotICAgICAgICB9LAotICAgICAgICB7CiAgICAgICAg
ICAgICAibmFtZSI6ICJzZXRSdWxlU2VsZWN0b3IiLAogICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJydWxlSWQiLCAiJHJlZiI6ICJDU1NSdWxl
SWQiIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245514</attachid>
            <date>2015-01-27 20:57:30 -0800</date>
            <delta_ts>2015-01-28 13:45:01 -0800</delta_ts>
            <desc>Removed a few more members</desc>
            <filename>bug-140961-20150127205607.patch</filename>
            <type>text/plain</type>
            <size>84973</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NTdmMjdhY2JlYmE1OGUxOGJkZmY0YjEzZmY3MTE1ODgwZjc1OTg0Li40M2NiNDIyYTRlNWJiMDg0
YTQzMGI5NjMwMmQzODg2NmJjYmQ1YTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMiBAQAorMjAxNS0wMS0yNyAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogcmVtb3ZlIENTUy5zZXRQcm9wZXJ0eVRl
eHQsIENTUy50b2dnbGVQcm9wZXJ0eSBhbmQgcmVsYXRlZCBkZWFkIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDk2MQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL3Byb3RvY29s
L0NTUy5qc29uOiBSZW1vdmUgdW51c2VkIHByb3RvY29sIG1ldGhvZHMuCisKIDIwMTUtMDEtMjYg
IEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgRmFzdE1h
bGxvYyAoYm1hbGxvYykgaW5zdGVhZCBvZiBCbG9ja0FsbG9jYXRvciBmb3IgR0MgcGFnZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBhOWI1ZmFhMjZhMzdhNzU2MzlkNTJkZmY1NGVjZmUwMjdhYjNjYzliLi41MTZi
OWNmMGY4M2E4NTM3NzI4NjA1YWRiYmFlNGUyYTA0NjVkYzljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzkgQEAKKzIwMTUtMDEtMjcgIEJyaWFuIEouIEJ1cmcgIDxidXJnQGNzLndhc2hpbmd0b24u
ZWR1PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHJlbW92ZSBDU1Muc2V0UHJvcGVydHlUZXh0
LCBDU1MudG9nZ2xlUHJvcGVydHkgYW5kIHJlbGF0ZWQgZGVhZCBjb2RlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDA5NjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2
aW9yIGNoYW5nZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2o6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcDoK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OnNldFByb3BlcnR5VGV4dCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6dG9nZ2xlUHJvcGVydHkpOiBEZWxldGVk
LgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAqIGlu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvclN0eWxlOjpJbnNwZWN0b3JTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dHlsZTo6cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
clN0eWxlU2hlZXQ6Okluc3BlY3RvclN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yU3R5bGVTaGVldDo6cmVwYXJzZVN0eWxlU2hlZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yU3R5bGVTaGVldDo6aW5zcGVjdG9yU3R5bGVGb3JJZCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JTdHlsZTo6c2V0UHJvcGVydHlUZXh0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjp0b2dnbGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZTo6bmV3TGluZUFuZFdoaXRlc3BhY2VEZWxpbWl0
ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnNl
dFByb3BlcnR5VGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHls
ZVNoZWV0Ojp0b2dnbGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0OjpyZW1lbWJlckluc3BlY3RvclN0eWxlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OmZvcmdldEluc3BlY3RvclN0eWxlKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnJldmFsaWRh
dGVTdHlsZSk6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hl
ZXQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmg6
IFJlbW92ZWQuCisKIDIwMTUtMDEtMjYgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBVc2UgRmFzdE1hbGxvYyAoYm1hbGxvYykgaW5zdGVhZCBvZiBCbG9ja0Fs
bG9jYXRvciBmb3IgR0MgcGFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDI3NDhjMTgw
YmVmNmNmYmExODUzMWEyYzk1MGQ5MjI3YTE2NDZmZGUuLjA5OGRlMjZmMDYzZGQ2OWY2NGZkMDU1
OGRlMTBkMWFmZWU0M2E2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUx
IEBACisyMDE1LTAxLTI3ICBCcmlhbiBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiByZW1vdmUgQ1NTLnNldFByb3BlcnR5VGV4dCwgQ1NT
LnRvZ2dsZVByb3BlcnR5IGFuZCByZWxhdGVkIGRlYWQgY29kZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwOTYxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2V0dGVycyBmb3IgQ1NTUHJvcGVydHkgKGV4
Y2VwdCBvdmVycmlkZSkgYXJlIG5vdCB1c2VkLCBzbyBkZWxldGUgdGhlbS4gVGhlc2Ugc2V0dGVy
cworICAgICAgICBhbmQgdGhlaXIgY2FsbGVlcyBpbiBET01Ob2RlU3R5bGVzIHdlcmUgdGhlIG9u
bHkgY2xpZW50cyBvZiB0aGUgcmVtb3ZlZCBwcm90b2NvbCBjb21tYW5kcy4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1Byb3BlcnR5LnByb3RvdHlwZS5nZXQgbmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1NTUHJvcGVydHkucHJvdG90eXBlLmdldCB2YWx1ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
Q1NTUHJvcGVydHkucHJvdG90eXBlLmdldCBwcmlvcml0eSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLmhhc090aGVyVmVuZG9yTmFtZU9yS2V5d29yZCk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlLnNldCB0ZXh0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IG5h
bWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlw
ZS5zZXQgdmFsdWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5
LnByb3RvdHlwZS5zZXQgaW1wb3J0YW50KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IHByaW9yaXR5KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuc2V0IGVuYWJsZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5hZGQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5yZW1vdmUp
OiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5f
dXBkYXRlUHJvcGVydHlTb29uLnBlcmZvcm1VcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fdXBkYXRlUHJvcGVydHlTb29uKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5wcm90b3R5cGUuX2NhbmNl
bFBlbmRpbmdVcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTW9kZWxz
L0NTU1N0eWxlRGVjbGFyYXRpb24uanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVE
ZWNsYXJhdGlvbi5wcm90b3R5cGUuYWRkUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBlLnJlbW92ZVByb3BlcnR5KTog
RGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpz
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLmFkZEVtcHR5
UnVsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUuYWRk
UnVsZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90
b3R5cGUuY2hhbmdlUHJvcGVydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRP
TU5vZGVTdHlsZXMucHJvdG90eXBlLmNoYW5nZVByb3BlcnR5VGV4dCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUuY2hhbmdlUHJvcGVydHlF
bmFibGVkU3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTU5vZGVTdHls
ZXMucHJvdG90eXBlLmFkZFByb3BlcnR5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01Ob2RlU3R5bGVzLnByb3RvdHlwZS5yZW1vdmVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUuX2hhbmRsZVByb3BlcnR5
Q2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2Fj
eS82LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvUHJvdG9jb2wvTGVnYWN5LzcuMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvOC4wL0luc3BlY3RvckJhY2tlbmRD
b21tYW5kcy5qczoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRh
aWxzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUnVsZXNTdHlsZURldGFpbHNQYW5l
bC5wcm90b3R5cGUuX25ld1J1bGVDbGlja2VkKToKKyAgICAgICAgKiBWZXJzaW9ucy9JbnNwZWN0
b3ItaU9TLTYuMC5qc29uOgorICAgICAgICAqIFZlcnNpb25zL0luc3BlY3Rvci1pT1MtNy4wLmpz
b246CisgICAgICAgICogVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy04LjAuanNvbjoKKwogMjAxNS0w
MS0yMyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IE9iamVjdCBQcmV2aWV3cyBpbiB0aGUgQ29uc29sZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvQ1NTLmpzb24KaW5kZXggYjczNzZl
NjBlOWRkODljODMzZjlhNTcwNWY4OWNkN2ZhZDk1NDkzNC4uY2M4ZDczMmU0ZWZiZDJhN2I1ZjEw
NmE2NTgwNjYzMjcxZDA5ZGIzOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9wcm90b2NvbC9DU1MuanNvbgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3Byb3RvY29sL0NTUy5qc29uCkBAIC0zMTgsMzEgKzMxOCw2IEBACiAgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgbmV3IDxjb2RlPnRleHQ8L2NvZGU+IGZvciB0aGUg
cmVzcGVjdGl2ZSBzdHlsZS4iCiAgICAgICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgICJu
YW1lIjogInNldFByb3BlcnR5VGV4dCIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiB9
LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogImlu
dGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3Ry
aW5nIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAi
Ym9vbGVhbiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgcmVzdWx0aW5nIHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1v
ZGlmaWNhdGlvbi4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiU2V0cyB0aGUgbmV3IDxjb2RlPnRleHQ8L2NvZGU+IGZvciBhIHByb3BlcnR5IGluIHRoZSBy
ZXNwZWN0aXZlIHN0eWxlLCBhdCBvZmZzZXQgPGNvZGU+cHJvcGVydHlJbmRleDwvY29kZT4uIElm
IDxjb2RlPm92ZXJ3cml0ZTwvY29kZT4gaXMgPGNvZGU+dHJ1ZTwvY29kZT4sIGEgcHJvcGVydHkg
YXQgdGhlIGdpdmVuIG9mZnNldCBpcyBvdmVyd3JpdHRlbiwgb3RoZXJ3aXNlIGluc2VydGVkLiA8
Y29kZT50ZXh0PC9jb2RlPiBlbnRpcmVseSByZXBsYWNlcyB0aGUgcHJvcGVydHkgPGNvZGU+bmFt
ZTogdmFsdWU8L2NvZGU+LiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5h
bWUiOiAidG9nZ2xlUHJvcGVydHkiLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJzdHlsZUlkIiwgIiRyZWYiOiAiQ1NTU3R5bGVJZCIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRl
Z2VyIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJv
b2xlYW4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIHJlc3VsdGluZyBzdHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcu
IiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMg
dGhlIHByb3BlcnR5IGluIHRoZSByZXNwZWN0aXZlIHN0eWxlLCBhdCBvZmZzZXQgPGNvZGU+cHJv
cGVydHlJbmRleDwvY29kZT4uIFRoZSA8Y29kZT5kaXNhYmxlPC9jb2RlPiBwYXJhbWV0ZXIgZGVu
b3RlcyB3aGV0aGVyIHRoZSBwcm9wZXJ0eSBzaG91bGQgYmUgZGlzYWJsZWQgKGkuZS4gcmVtb3Zl
ZCBmcm9tIHRoZSBzdHlsZSBkZWNsYXJhdGlvbikuIElmIDxjb2RlPmRpc2FibGUgPT0gZmFsc2U8
L2NvZGU+LCB0aGUgcHJvcGVydHkgZ2V0cyBwdXQgYmFjayBpbnRvIGl0cyBvcmlnaW5hbCBwbGFj
ZSBpbiB0aGUgc3R5bGUgZGVjbGFyYXRpb24uIgotICAgICAgICB9LAotICAgICAgICB7CiAgICAg
ICAgICAgICAibmFtZSI6ICJzZXRSdWxlU2VsZWN0b3IiLAogICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJydWxlSWQiLCAiJHJlZiI6ICJDU1NS
dWxlSWQiIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGFhMjdiMDE1NGI5OGQ2MzMyNmU5MzI2
NTRlYzAwNjQ4MGY2MzM4ZmIuLjdjODRhZTBhMGIxY2U0Mzk3ZDhmNmE4MDI1YzQ3MGUyNDQwZDkx
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNzczLDcgKzE3NzMsNiBAQCBzZXQoV2ViQ29y
ZV9TT1VSQ0VTCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAKICAgICBpbnNw
ZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2VBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAKLSAgICBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNw
cAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcAogICAgIGluc3BlY3Rv
ci9JbnNwZWN0b3JXb3JrZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zdHJ1bWVudGluZ0Fn
ZW50cy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJD
b3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCmluZGV4IGFlZDJjOGU5YTFlMWRkNTM2NGIxMzg2YzFlZTJmYzlkOWJkZDQ5MGIuLjVmMThm
OTdmYzY0YjMzZGMyMWNhNmMxNGVmMmQxM2M0ZTlkOGMwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMTgwOTQsMTQgKzE4MDk0LDYg
QEAg77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNs
dWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09
J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CiAgICAgPC9DbENvbXBp
bGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yLmNwcCI+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+Ci0gICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgotICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KLSAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+Ci0gICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5jcHAiPgogICAgICAgPEV4Y2x1
ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0n
UmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4Y2x1ZGVk
RnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVs
ZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KQEAgLTIxMzAwLDcgKzIxMjkyLDYg
QEAg77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KICAgICA8Q2xJbmNs
dWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JQYWdlQWdlbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JSZXNvdXJjZUFnZW50Lmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVT
aGVldC5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVjdG9yXEluc3BlY3Rv
clN0eWxlVGV4dEVkaXRvci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5caW5zcGVj
dG9yXEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9
Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIiAvPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCmluZGV4IDgyMWY4NThiYmY5ZDAwZTA3ZWFiM2I1ZjlmZWRiNjViZTY5MjYwYjguLjM4YjQy
MmI0NjBmMmQ2OTk4YjQ2MTA3OWI2MmE0MGZlYTJmMmVjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTQ2
ODksOSArNDY4OSw2IEBAIO+7vzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9InV0Zi04Ij8+
CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9yU3R5bGVTaGVl
dC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGls
ZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGluc3BlY3RvclxJbnNwZWN0b3JTdHlsZVRl
eHRFZGl0b3IuY3BwIj4KLSAgICAgIDxGaWx0ZXI+aW5zcGVjdG9yPC9GaWx0ZXI+Ci0gICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxpbnNwZWN0b3JcSW5zcGVjdG9y
VGltZWxpbmVBZ2VudC5jcHAiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0ZpbHRlcj4KICAg
ICA8L0NsQ29tcGlsZT4KQEAgLTExODk1LDkgKzExODkyLDYgQEAg77u/PD94bWwgdmVyc2lvbj0i
MS4wIiBlbmNvZGluZz0idXRmLTgiPz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JTdHlsZVNoZWV0LmgiPgogICAgICAgPEZpbHRlcj5pbnNwZWN0b3I8L0Zp
bHRlcj4KICAgICA8L0NsSW5jbHVkZT4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGluc3Bl
Y3RvclxJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuaCI+Ci0gICAgICA8RmlsdGVyPmluc3BlY3Rv
cjwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5c
aW5zcGVjdG9yXEluc3BlY3RvclRpbWVsaW5lQWdlbnQuaCI+CiAgICAgICA8RmlsdGVyPmluc3Bl
Y3RvcjwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE5NzhjYTE4ZTYzYzk0MzFjMjli
YjBhNzE5ZTY2NmY1MzE5OTkyNTMuLjJkMTJmYjNlYjUwOTQxZjc3NmM2Y2ZiYWJlODI4ZTAwN2Nj
OGE5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTI1NTAsOCArMjU1MCw2IEBACiAJCTgxQUM2QzM2MTMxQzU3RDMwMDA5QTdF
MCAvKiBTdHJpbmdDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODFBQzZDMzUxMzFDNTdEMzAwMDlBN0UwIC8qIFN0cmluZ0NhbGxiYWNrLmgg
Ki87IH07CiAJCTgxQkUyMEQzMTFGNEJDMzIwMDkxNURGQSAvKiBKU0lEQkN1cnNvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCRTIwQTgxMUY0QjY2
RjAwOTE1REZBIC8qIEpTSURCQ3Vyc29yLmggKi87IH07CiAJCTgxRjY1RkY2MTM3ODhGQUEwMEZG
NkYyRCAvKiBEcmFnU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgxRjY1RkY1MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk4Mjg4OUI0QzEzQzYy
MzkyMDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgyODg5QjRBMTNDNjIzOTIwMDlBNjE1
NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwICovOyB9OwotCQk4Mjg4OUI0RDEzQzYy
MzkyMDA5QTYxNTYgLyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mjg4OUI0QjEzQzYyMzkyMDA5QTYxNTYg
LyogSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmggKi87IH07CiAJCTgyQUIxNzQzMTI0Qjk5RUMw
MEM1MDY5RCAvKiBJbnNwZWN0b3JDU1NBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkFCMTc0MTEyNEI5OUVDMDBDNTA2OUQgLyogSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwICovOyB9OwogCQk4MkFCMTc0NDEyNEI5OUVDMDBDNTA2OUQgLyogSW5z
cGVjdG9yQ1NTQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgyQUIxNzQyMTI0Qjk5RUMwMEM1MDY5RCAvKiBJbnNwZWN0b3JDU1NBZ2VudC5oICov
OyB9OwogCQk4MkFCMTc3MzEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MkFCMTc2
RjEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAgKi87IH07CkBAIC05
NzQ3LDggKzk3NDUsNiBAQAogCQk4MUJFMjBBODExRjRCNjZGMDA5MTVERkEgLyogSlNJREJDdXJz
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNJREJDdXJzb3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODFGNjVGRjUxMzc4OEZBQTAwRkY2RjJEIC8qIERy
YWdTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnU3RhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODIyNTQzMkNBOUQ0QjRDRjQ2MjhFQzdGIC8q
IEpTQmVmb3JlVW5sb2FkRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNCZWZvcmVVbmxvYWRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTgyODg5QjRBMTNDNjIzOTIwMDlBNjE1NiAvKiBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3Iu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yU3R5bGVU
ZXh0RWRpdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODI4ODlCNEIxM0M2
MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJBQjE3NDExMjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3Rv
ckNTU0FnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3Bl
Y3RvckNTU0FnZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODJBQjE3NDIx
MjRCOTlFQzAwQzUwNjlEIC8qIEluc3BlY3RvckNTU0FnZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEluc3BlY3RvckNTU0FnZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgyQUIxNzZGMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNoZWV0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclN0eWxl
U2hlZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUyOTUsOCArMTUyOTEs
NiBAQAogCQkJCTgyQUIxNzcyMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFn
ZW50LmggKi8sCiAJCQkJODJBQjE3NkYxMjVDODI2NzAwQzUwNjlEIC8qIEluc3BlY3RvclN0eWxl
U2hlZXQuY3BwICovLAogCQkJCTgyQUIxNzcwMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JT
dHlsZVNoZWV0LmggKi8sCi0JCQkJODI4ODlCNEExM0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3Rv
clN0eWxlVGV4dEVkaXRvci5jcHAgKi8sCi0JCQkJODI4ODlCNEIxM0M2MjM5MjAwOUE2MTU2IC8q
IEluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5oICovLAogCQkJCTc1NDEzM0E5MTAyRTAwRjQwMDA3
NUQwMCAvKiBJbnNwZWN0b3JUaW1lbGluZUFnZW50LmNwcCAqLywKIAkJCQk3NTQxMzNBNzEwMkUw
MEU4MDAwNzVEMDAgLyogSW5zcGVjdG9yVGltZWxpbmVBZ2VudC5oICovLAogCQkJCUE1OTNDRjhB
MTg0MDUzNTIwMEJGQ0UyNyAvKiBJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCAqLywKQEAgLTI0NzU2
LDcgKzI0NzUwLDYgQEAKIAkJCQk5OUNDMEI2NzE4QkU5RjE1MDA2Q0VCQ0MgLyogSW5zcGVjdG9y
UmVwbGF5QWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgyQUIxNzc2MTI1QzgyNjcwMEM1MDY5
RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MkFCMTc3
NDEyNUM4MjY3MDBDNTA2OUQgLyogSW5zcGVjdG9yU3R5bGVTaGVldC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJODI4ODlCNEQxM0M2MjM5MjAwOUE2MTU2IC8qIEluc3BlY3RvclN0eWxlVGV4dEVkaXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzU0MTMzQTgxMDJFMDBFODAwMDc1RDAwIC8qIEluc3Bl
Y3RvclRpbWVsaW5lQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1OTNDRjhCMTg0MDUzNTIw
MEJGQ0UyNyAvKiBJbnNwZWN0b3JXZWJBZ2VudEJhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUYz
ODEwQzFDMTM2NUE0OTYwMEVENkUzMyAvKiBJbnNwZWN0b3JXb3JrZXJBZ2VudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0yODIyOSw3ICsyODIyMiw2IEBACiAJCQkJOTlDQzBCNjYxOEJFOUYxNTAwNkNF
QkNDIC8qIEluc3BlY3RvclJlcGxheUFnZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgyQUIx
Nzc1MTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTgyQUIxNzczMTI1QzgyNjcwMEM1MDY5RCAvKiBJbnNwZWN0b3JTdHlsZVNo
ZWV0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTgyODg5QjRDMTNDNjIzOTIwMDlBNjE1NiAvKiBJ
bnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzU0MTMzQUEx
MDJFMDBGNDAwMDc1RDAwIC8qIEluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRjM4MTBDMUIxMzY1QTQ5NjAwRUQ2RTMzIC8qIEluc3BlY3RvcldvcmtlckFnZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzNTBCNzM1MTNGMTM3N0QwMDg4MEM0MyAvKiBJbnN0
cnVtZW50aW5nQWdlbnRzLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JBbGxJbk9uZS5jcHAKaW5kZXggYzAyMTFkYmYxOWU0NGRkMmI1MmZh
MmFhODFmODNmMWI5Zjk3ZTMyNy4uYTJhMjY2YzM1MmRhODRkZGVlN2ZjMGI2OTVmNTQ1NTViYTUy
ZTk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWxsSW5PbmUu
Y3BwCkBAIC01MCw3ICs1MCw2IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yUGFnZUFnZW50LmNwcCIK
ICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZUFnZW50LmNwcCIKICNpbmNsdWRlICJJbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcCIKLSNpbmNsdWRlICJJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3Bw
IgogI2luY2x1ZGUgIkluc3BlY3RvclRpbWVsaW5lQWdlbnQuY3BwIgogI2luY2x1ZGUgIkluc3Bl
Y3RvcldvcmtlckFnZW50LmNwcCIKICNpbmNsdWRlICJJbnN0cnVtZW50aW5nQWdlbnRzLmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4
IGVhM2VlMmM3ZDQ1MjVhYThiNDc2MjMzYjE5NjYyNGExN2IzMzM3YTkuLmRlMTE3YzEwYmE0ZjM0
NGJjNzMxYTFkOWY0NzkwMTBkOGQ4NTkwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtMjU5LDk5ICsyNTksNiBAQCBwcml2YXRlOgog
ICAgIFN0cmluZyBtX29sZFRleHQ7CiB9OwogCi1jbGFzcyBJbnNwZWN0b3JDU1NBZ2VudDo6U2V0
UHJvcGVydHlUZXh0QWN0aW9uIGZpbmFsIDogcHVibGljIEluc3BlY3RvckNTU0FnZW50OjpTdHls
ZVNoZWV0QWN0aW9uIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTZXRQcm9wZXJ0eVRleHRB
Y3Rpb24pOwotcHVibGljOgotICAgIFNldFByb3BlcnR5VGV4dEFjdGlvbihJbnNwZWN0b3JTdHls
ZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBJbnNwZWN0b3JDU1NJZCYgY3NzSWQsIHVuc2lnbmVk
IHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUpCi0gICAg
ICAgIDogSW5zcGVjdG9yQ1NTQWdlbnQ6OlN0eWxlU2hlZXRBY3Rpb24oQVNDSUlMaXRlcmFsKCJT
ZXRQcm9wZXJ0eVRleHQiKSwgc3R5bGVTaGVldCkKLSAgICAgICAgLCBtX2Nzc0lkKGNzc0lkKQot
ICAgICAgICAsIG1fcHJvcGVydHlJbmRleChwcm9wZXJ0eUluZGV4KQotICAgICAgICAsIG1fdGV4
dCh0ZXh0KQotICAgICAgICAsIG1fb3ZlcndyaXRlKG92ZXJ3cml0ZSkKLSAgICB7Ci0gICAgfQot
Ci0gICAgdmlydHVhbCBTdHJpbmcgdG9TdHJpbmcoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1lcmdlSWQoKSArICI6ICIgKyBtX29sZFRleHQgKyAiIC0+ICIgKyBtX3RleHQ7Ci0g
ICAgfQotCi0gICAgdmlydHVhbCBib29sIHBlcmZvcm0oRXhjZXB0aW9uQ29kZSYgZWMpIG92ZXJy
aWRlCi0gICAgewotICAgICAgICByZXR1cm4gcmVkbyhlYyk7Ci0gICAgfQotCi0gICAgdmlydHVh
bCBib29sIHVuZG8oRXhjZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlCi0gICAgewotICAgICAgICBT
dHJpbmcgcGxhY2Vob2xkZXI7Ci0gICAgICAgIHJldHVybiBtX3N0eWxlU2hlZXQtPnNldFByb3Bl
cnR5VGV4dChtX2Nzc0lkLCBtX3Byb3BlcnR5SW5kZXgsIG1fb3ZlcndyaXRlID8gbV9vbGRUZXh0
IDogIiIsIHRydWUsICZwbGFjZWhvbGRlciwgZWMpOwotICAgIH0KLQotICAgIHZpcnR1YWwgYm9v
bCByZWRvKEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgU3RyaW5n
IG9sZFRleHQ7Ci0gICAgICAgIGJvb2wgcmVzdWx0ID0gbV9zdHlsZVNoZWV0LT5zZXRQcm9wZXJ0
eVRleHQobV9jc3NJZCwgbV9wcm9wZXJ0eUluZGV4LCBtX3RleHQsIG1fb3ZlcndyaXRlLCAmb2xk
VGV4dCwgZWMpOwotICAgICAgICBtX29sZFRleHQgPSBvbGRUZXh0LnN0cmlwV2hpdGVTcGFjZSgp
OwotICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSB0aGUgbW9kZWwgaGFuZGxlcyB0
aGlzIGNhc2UuCi0gICAgICAgIGlmICghbV9vbGRUZXh0LmVuZHNXaXRoKCc7JykpCi0gICAgICAg
ICAgICBtX29sZFRleHQuYXBwZW5kKCc7Jyk7Ci0KLSAgICAgICAgcmV0dXJuIHJlc3VsdDsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIFN0cmluZyBtZXJnZUlkKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiU2V0UHJvcGVydHlUZXh0ICVzOiV1OiVzIiwgbV9z
dHlsZVNoZWV0LT5pZCgpLnV0ZjgoKS5kYXRhKCksIG1fcHJvcGVydHlJbmRleCwgbV9vdmVyd3Jp
dGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgbWVyZ2Uo
c3RkOjp1bmlxdWVfcHRyPEFjdGlvbj4gYWN0aW9uKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
QVNTRVJUKGFjdGlvbi0+bWVyZ2VJZCgpID09IG1lcmdlSWQoKSk7Ci0KLSAgICAgICAgU2V0UHJv
cGVydHlUZXh0QWN0aW9uKiBvdGhlciA9IHN0YXRpY19jYXN0PFNldFByb3BlcnR5VGV4dEFjdGlv
bio+KGFjdGlvbi5nZXQoKSk7Ci0gICAgICAgIG1fdGV4dCA9IG90aGVyLT5tX3RleHQ7Ci0gICAg
fQotCi1wcml2YXRlOgotICAgIEluc3BlY3RvckNTU0lkIG1fY3NzSWQ7Ci0gICAgdW5zaWduZWQg
bV9wcm9wZXJ0eUluZGV4OwotICAgIFN0cmluZyBtX3RleHQ7Ci0gICAgU3RyaW5nIG1fb2xkVGV4
dDsKLSAgICBib29sIG1fb3ZlcndyaXRlOwotfTsKLQotY2xhc3MgSW5zcGVjdG9yQ1NTQWdlbnQ6
OlRvZ2dsZVByb3BlcnR5QWN0aW9uIGZpbmFsIDogcHVibGljIEluc3BlY3RvckNTU0FnZW50OjpT
dHlsZVNoZWV0QWN0aW9uIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUb2dnbGVQcm9wZXJ0
eUFjdGlvbik7Ci1wdWJsaWM6Ci0gICAgVG9nZ2xlUHJvcGVydHlBY3Rpb24oSW5zcGVjdG9yU3R5
bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGNzc0lkLCB1bnNpZ25l
ZCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2FibGUpCi0gICAgICAgIDogSW5zcGVjdG9yQ1NTQWdl
bnQ6OlN0eWxlU2hlZXRBY3Rpb24oQVNDSUlMaXRlcmFsKCJUb2dnbGVQcm9wZXJ0eSIpLCBzdHls
ZVNoZWV0KQotICAgICAgICAsIG1fY3NzSWQoY3NzSWQpCi0gICAgICAgICwgbV9wcm9wZXJ0eUlu
ZGV4KHByb3BlcnR5SW5kZXgpCi0gICAgICAgICwgbV9kaXNhYmxlKGRpc2FibGUpCi0gICAgewot
ICAgIH0KLQotICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtKEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVy
cmlkZQotICAgIHsKLSAgICAgICAgcmV0dXJuIHJlZG8oZWMpOwotICAgIH0KLQotICAgIHZpcnR1
YWwgYm9vbCB1bmRvKEV4Y2VwdGlvbkNvZGUmIGVjKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAg
cmV0dXJuIG1fc3R5bGVTaGVldC0+dG9nZ2xlUHJvcGVydHkobV9jc3NJZCwgbV9wcm9wZXJ0eUlu
ZGV4LCAhbV9kaXNhYmxlLCBlYyk7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIHJlZG8oRXhj
ZXB0aW9uQ29kZSYgZWMpIG92ZXJyaWRlCi0gICAgewotICAgICAgICByZXR1cm4gbV9zdHlsZVNo
ZWV0LT50b2dnbGVQcm9wZXJ0eShtX2Nzc0lkLCBtX3Byb3BlcnR5SW5kZXgsIG1fZGlzYWJsZSwg
ZWMpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBJbnNwZWN0b3JDU1NJZCBtX2Nzc0lkOwotICAg
IHVuc2lnbmVkIG1fcHJvcGVydHlJbmRleDsKLSAgICBib29sIG1fZGlzYWJsZTsKLX07Ci0KIGNs
YXNzIEluc3BlY3RvckNTU0FnZW50OjpTZXRSdWxlU2VsZWN0b3JBY3Rpb24gZmluYWwgOiBwdWJs
aWMgSW5zcGVjdG9yQ1NTQWdlbnQ6OlN0eWxlU2hlZXRBY3Rpb24gewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFNldFJ1bGVTZWxlY3RvckFjdGlvbik7CiBwdWJsaWM6CkBAIC03MzMsMzggKzY0
MCw2IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OnNldFN0eWxlVGV4dChFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNwCiAgICAgZXJyb3JTdHJpbmcgPSBJbnNwZWN0
b3JET01BZ2VudDo6dG9FcnJvclN0cmluZyhlYyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ1NTQWdl
bnQ6OnNldFByb3BlcnR5VGV4dChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0
cjxJbnNwZWN0b3JPYmplY3Q+JiYgZnVsbFN0eWxlSWQsIGludCBwcm9wZXJ0eUluZGV4LCBjb25z
dCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6Q1NTOjpDU1NTdHlsZT4mIHJlc3VsdCkKLXsKLSAgICBJbnNwZWN0b3JDU1NJZCBjb21wb3Vu
ZElkKGZ1bGxTdHlsZUlkLmNvcHlSZWYoKSk7Ci0gICAgQVNTRVJUKCFjb21wb3VuZElkLmlzRW1w
dHkoKSk7Ci0KLSAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0g
YXNzZXJ0U3R5bGVTaGVldEZvcklkKGVycm9yU3RyaW5nLCBjb21wb3VuZElkLnN0eWxlU2hlZXRJ
ZCgpKTsKLSAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgc3VjY2VzcyA9IG1fZG9tQWdlbnQt
Pmhpc3RvcnkoKS0+cGVyZm9ybShzdGQ6Om1ha2VfdW5pcXVlPFNldFByb3BlcnR5VGV4dEFjdGlv
bj4oaW5zcGVjdG9yU3R5bGVTaGVldCwgY29tcG91bmRJZCwgcHJvcGVydHlJbmRleCwgdGV4dCwg
b3ZlcndyaXRlKSwgZWMpOwotICAgIGlmIChzdWNjZXNzKQotICAgICAgICByZXN1bHQgPSBpbnNw
ZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclN0eWxlKGluc3BlY3RvclN0eWxlU2hlZXQt
PnN0eWxlRm9ySWQoY29tcG91bmRJZCkpOwotICAgIGVycm9yU3RyaW5nID0gSW5zcGVjdG9yRE9N
QWdlbnQ6OnRvRXJyb3JTdHJpbmcoZWMpOwotfQotCi12b2lkIEluc3BlY3RvckNTU0FnZW50Ojp0
b2dnbGVQcm9wZXJ0eShFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFJlZlB0cjxJbnNw
ZWN0b3JPYmplY3Q+JiYgZnVsbFN0eWxlSWQsIGludCBwcm9wZXJ0eUluZGV4LCBib29sIGRpc2Fi
bGUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiYgcmVzdWx0KQot
ewotICAgIEluc3BlY3RvckNTU0lkIGNvbXBvdW5kSWQoZnVsbFN0eWxlSWQuY29weVJlZigpKTsK
LSAgICBBU1NFUlQoIWNvbXBvdW5kSWQuaXNFbXB0eSgpKTsKLQotICAgIEluc3BlY3RvclN0eWxl
U2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSBhc3NlcnRTdHlsZVNoZWV0Rm9ySWQoZXJyb3JT
dHJpbmcsIGNvbXBvdW5kSWQuc3R5bGVTaGVldElkKCkpOwotICAgIGlmICghaW5zcGVjdG9yU3R5
bGVTaGVldCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgYm9vbCBzdWNjZXNzID0gbV9kb21BZ2VudC0+aGlzdG9yeSgpLT5wZXJmb3JtKHN0ZDo6bWFr
ZV91bmlxdWU8VG9nZ2xlUHJvcGVydHlBY3Rpb24+KGluc3BlY3RvclN0eWxlU2hlZXQsIGNvbXBv
dW5kSWQsIHByb3BlcnR5SW5kZXgsIGRpc2FibGUpLCBlYyk7Ci0gICAgaWYgKHN1Y2Nlc3MpCi0g
ICAgICAgIHJlc3VsdCA9IGluc3BlY3RvclN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yU3R5bGUo
aW5zcGVjdG9yU3R5bGVTaGVldC0+c3R5bGVGb3JJZChjb21wb3VuZElkKSk7Ci0gICAgZXJyb3JT
dHJpbmcgPSBJbnNwZWN0b3JET01BZ2VudDo6dG9FcnJvclN0cmluZyhlYyk7Ci19Ci0KIHZvaWQg
SW5zcGVjdG9yQ1NTQWdlbnQ6OnNldFJ1bGVTZWxlY3RvcihFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+JiYgZnVsbFJ1bGVJZCwgY29uc3QgU3Ry
aW5nJiBzZWxlY3RvciwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4m
IHJlc3VsdCkKIHsKICAgICBJbnNwZWN0b3JDU1NJZCBjb21wb3VuZElkKGZ1bGxSdWxlSWQuY29w
eVJlZigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
U1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgK
aW5kZXggYTJhNzU4ZDI4OWFkMjRjMTViM2I5MDY2NTljYWJjYjlhZTFiOWUyZC4uODg2NjRjODk2
MGUzZmNiZmZjMjg2YmNjNTlmOTQyMWJlYmU1MGFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTExNiw4ICsxMTYsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGdldFN0eWxlU2hlZXRUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBzdHlsZVNoZWV0SWQsIFN0cmluZyogcmVzdWx0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U3R5bGVTaGVldFRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHN0eWxl
U2hlZXRJZCwgY29uc3QgU3RyaW5nJiB0ZXh0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U3R5bGVUZXh0KEVycm9yU3RyaW5nJiwgY29uc3QgUmVmUHRyPEluc3BlY3Rvcjo6SW5zcGVj
dG9yT2JqZWN0PiYmIHN0eWxlSWQsIGNvbnN0IFN0cmluZyYgdGV4dCwgUmVmUHRyPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiByZXN1bHQpIG92ZXJyaWRlOwotICAgIHZpcnR1
YWwgdm9pZCBzZXRQcm9wZXJ0eVRleHQoRXJyb3JTdHJpbmcmLCBjb25zdCBSZWZQdHI8SW5zcGVj
dG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYgc3R5bGVJZCwgaW50IHByb3BlcnR5SW5kZXgsIGNvbnN0
IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3JpdGUsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29s
OjpDU1M6OkNTU1N0eWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9n
Z2xlUHJvcGVydHkoRXJyb3JTdHJpbmcmLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0
b3JPYmplY3Q+JiYgc3R5bGVJZCwgaW50IHByb3BlcnR5SW5kZXgsIGJvb2wgZGlzYWJsZSwgUmVm
UHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+JiByZXN1bHQpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRSdWxlU2VsZWN0b3IoRXJyb3JTdHJpbmcmLCBjb25zdCBS
ZWZQdHI8SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3Q+JiYgcnVsZUlkLCBjb25zdCBTdHJpbmcm
IHNlbGVjdG9yLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiYgcmVz
dWx0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkUnVsZShFcnJvclN0cmluZyYsIGlu
dCBjb250ZXh0Tm9kZUlkLCBjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBSZWZQdHI8SW5zcGVjdG9y
OjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiYgcmVzdWx0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyhFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1Byb3Bl
cnR5SW5mbz4+JiByZXN1bHQpIG92ZXJyaWRlOwpAQCAtMTI4LDggKzEyNiw2IEBAIHByaXZhdGU6
CiAgICAgY2xhc3MgU3R5bGVTaGVldEFjdGlvbjsKICAgICBjbGFzcyBTZXRTdHlsZVNoZWV0VGV4
dEFjdGlvbjsKICAgICBjbGFzcyBTZXRTdHlsZVRleHRBY3Rpb247Ci0gICAgY2xhc3MgU2V0UHJv
cGVydHlUZXh0QWN0aW9uOwotICAgIGNsYXNzIFRvZ2dsZVByb3BlcnR5QWN0aW9uOwogICAgIGNs
YXNzIFNldFJ1bGVTZWxlY3RvckFjdGlvbjsKICAgICBjbGFzcyBBZGRSdWxlQWN0aW9uOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKaW5k
ZXggMzYzMWMyYjcwMDljNjUzYzc1ZmE5YjE1NTdiNTAxNjk2ZTc1OTAwNi4uNmY4MjM3NmM4MWNl
ZmM5NzY2NTExM2ZiZWJkMmQ5MTAyZTlhM2VmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMjg5LDcgKzI4OSw2IEBAIEluc3Bl
Y3RvclN0eWxlOjpJbnNwZWN0b3JTdHlsZShjb25zdCBJbnNwZWN0b3JDU1NJZCYgc3R5bGVJZCwg
UmVmUHRyPENTU1N0eWxlRGVjCiAgICAgOiBtX3N0eWxlSWQoc3R5bGVJZCkKICAgICAsIG1fc3R5
bGUoc3R5bGUpCiAgICAgLCBtX3BhcmVudFN0eWxlU2hlZXQocGFyZW50U3R5bGVTaGVldCkKLSAg
ICAsIG1fZm9ybWF0QWNxdWlyZWQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKG1fc3R5bGUpOwogfQpA
QCAtMzMyLDExNCArMzMxLDYgQEAgUmVmPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnQKICAgICByZXR1cm4g
V1RGOjptb3ZlKHJlc3VsdCk7CiB9CiAKLS8vIFRoaXMgbWV0aG9kIGRvZXMgdGhlIGZvbGxvd2lu
ZyBwcmVwcm9jZXNzaW5nIG9mIHxwcm9wZXJ0eVRleHR8IHdpdGggfG92ZXJ3cml0ZXwgPT0gZmFs
c2UgYW5kIHxpbmRleHwgcGFzdCB0aGUgbGFzdCBhY3RpdmUgcHJvcGVydHk6Ci0vLyAtIElmIHRo
ZSBsYXN0IHByb3BlcnR5IChpZiBwcmVzZW50KSBoYXMgbm8gY2xvc2luZyAiOyIsIHRoZSAiOyIg
aXMgcHJlcGVuZGVkIHRvIHRoZSBjdXJyZW50IHxwcm9wZXJ0eVRleHR8IHZhbHVlLgotLy8gLSBB
IGhldXJpc3RpYyBmb3JtYXR0aW5nIGlzIGF0dGVtcHRlZCB0byByZXRhaW4gdGhlIHN0eWxlIHN0
cnVjdHVyZS4KLS8vCi0vLyBUaGUgcHJvcGVydHlUZXh0IChpZiBub3QgZW1wdHkpIGlzIGNoZWNr
ZWQgdG8gYmUgYSB2YWxpZCBzdHlsZSBkZWNsYXJhdGlvbiAoY29udGFpbmluZyBhdCBsZWFzdCBv
bmUgcHJvcGVydHkpLiBJZiBub3QsCi0vLyB0aGUgbWV0aG9kIHJldHVybnMgZmFsc2UgKGRlbm90
aW5nIGFuIGVycm9yKS4KLWJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNp
Z25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIGJvb2wgb3ZlcndyaXRlLCBT
dHJpbmcqIG9sZFRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEFTU0VSVChtX3BhcmVu
dFN0eWxlU2hlZXQpOwotICAgIERFUFJFQ0FURURfREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcs
IGJvZ3VzUHJvcGVydHlOYW1lLCAoQVNDSUlMaXRlcmFsKCItd2Via2l0LWJvZ3V6LXByb3BlcnRl
ZSIpKSk7Ci0KLSAgICBpZiAoIW1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJl
YWR5KCkpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgfQotCi0gICAgaWYgKHByb3BlcnR5VGV4dC5zdHJpcFdoaXRlU3BhY2UoKS5sZW5n
dGgoKSkgewotICAgICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gdGVtcE11dGFi
bGVTdHlsZSA9IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OmNyZWF0ZSgpOwotICAgICAgICBSZWZQ
dHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBDU1NSdWxlU291cmNlRGF0YTo6Y3Jl
YXRlKENTU1J1bGVTb3VyY2VEYXRhOjpTVFlMRV9SVUxFKTsKLSAgICAgICAgRG9jdW1lbnQqIG93
bmVyRG9jdW1lbnQgPSBtX3BhcmVudFN0eWxlU2hlZXQtPnBhZ2VTdHlsZVNoZWV0KCkgPyBtX3Bh
cmVudFN0eWxlU2hlZXQtPnBhZ2VTdHlsZVNoZWV0KCktPm93bmVyRG9jdW1lbnQoKSA6IG51bGxw
dHI7Ci0gICAgICAgIGNyZWF0ZUNTU1BhcnNlcihvd25lckRvY3VtZW50KS0+cGFyc2VEZWNsYXJh
dGlvbih0ZW1wTXV0YWJsZVN0eWxlLmdldCgpLCBwcm9wZXJ0eVRleHQgKyAiICIgKyBib2d1c1By
b3BlcnR5TmFtZSArICI6IG5vbmUiLCBzb3VyY2VEYXRhLCAmbV9zdHlsZS0+cGFyZW50U3R5bGVT
aGVldCgpLT5jb250ZW50cygpKTsKLSAgICAgICAgVmVjdG9yPENTU1Byb3BlcnR5U291cmNlRGF0
YT4mIHByb3BlcnR5RGF0YSA9IHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+cHJvcGVydHlE
YXRhOwotICAgICAgICB1bnNpZ25lZCBwcm9wZXJ0eUNvdW50ID0gcHJvcGVydHlEYXRhLnNpemUo
KTsKLQotICAgICAgICAvLyBBdCBsZWFzdCBvbmUgcHJvcGVydHkgKyB0aGUgYm9ndXMgcHJvcGVy
dHkgYWRkZWQganVzdCBhYm92ZSBzaG91bGQgYmUgcHJlc2VudC4KLSAgICAgICAgaWYgKHByb3Bl
cnR5Q291bnQgPCAyKSB7Ci0gICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBDaGVjayBmb3IgYSBwcm9w
ZXIgcHJvcGVydHlUZXh0IHRlcm1pbmF0aW9uICh0aGUgcGFyc2VyIGNvdWxkIGF0IGxlYXN0IHJl
c3RvcmUgdG8gdGhlIFBST1BFUlRZX05BTUUgc3RhdGUpLgotICAgICAgICBpZiAocHJvcGVydHlE
YXRhLmF0KHByb3BlcnR5Q291bnQgLSAxKS5uYW1lICE9IGJvZ3VzUHJvcGVydHlOYW1lKSB7Ci0g
ICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgIH0KLSAgICB9Ci0KLSAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURh
dGEgPSBleHRyYWN0U291cmNlRGF0YSgpOwotICAgIGlmICghc291cmNlRGF0YSkgewotICAgICAg
ICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAg
ICBTdHJpbmcgdGV4dDsKLSAgICBib29sIHN1Y2Nlc3MgPSBzdHlsZVRleHQoJnRleHQpOwotICAg
IGlmICghc3VjY2VzcykgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBWZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4g
YWxsUHJvcGVydGllczsKLSAgICBwb3B1bGF0ZUFsbFByb3BlcnRpZXMoJmFsbFByb3BlcnRpZXMp
OwotCi0gICAgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yIGVkaXRvcigmYWxsUHJvcGVydGllcywg
Jm1fZGlzYWJsZWRQcm9wZXJ0aWVzLCB0ZXh0LCBuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRl
cnMoKSk7Ci0gICAgaWYgKG92ZXJ3cml0ZSkgewotICAgICAgICBpZiAoaW5kZXggPj0gYWxsUHJv
cGVydGllcy5zaXplKCkpIHsKLSAgICAgICAgICAgIGVjID0gSU5ERVhfU0laRV9FUlI7Ci0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICAgICAgKm9sZFRleHQgPSBhbGxQ
cm9wZXJ0aWVzLmF0KGluZGV4KS5yYXdUZXh0OwotICAgICAgICBlZGl0b3IucmVwbGFjZVByb3Bl
cnR5KGluZGV4LCBwcm9wZXJ0eVRleHQpOwotICAgIH0gZWxzZQotICAgICAgICBlZGl0b3IuaW5z
ZXJ0UHJvcGVydHkoaW5kZXgsIHByb3BlcnR5VGV4dCwgc291cmNlRGF0YS0+cnVsZUJvZHlSYW5n
ZS5sZW5ndGgoKSk7Ci0KLSAgICByZXR1cm4gYXBwbHlTdHlsZVRleHQoZWRpdG9yLnN0eWxlVGV4
dCgpKTsKLX0KLQotYm9vbCBJbnNwZWN0b3JTdHlsZTo6dG9nZ2xlUHJvcGVydHkodW5zaWduZWQg
aW5kZXgsIGJvb2wgZGlzYWJsZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgQVNTRVJUKG1f
cGFyZW50U3R5bGVTaGVldCk7Ci0gICAgaWYgKCFtX3BhcmVudFN0eWxlU2hlZXQtPmVuc3VyZVBh
cnNlZERhdGFSZWFkeSgpKSB7Ci0gICAgICAgIGVjID0gTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgUmVmUHRyPENTU1J1bGVT
b3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKLSAgICBpZiAoIXNv
dXJjZURhdGEpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotCi0gICAgU3RyaW5nIHRleHQ7Ci0gICAgYm9vbCBzdWNjZXNzID0gc3R5
bGVUZXh0KCZ0ZXh0KTsKLSAgICBpZiAoIXN1Y2Nlc3MpIHsKLSAgICAgICAgZWMgPSBOT1RfRk9V
TkRfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgVmVjdG9yPEluc3Bl
Y3RvclN0eWxlUHJvcGVydHk+IGFsbFByb3BlcnRpZXM7Ci0gICAgcG9wdWxhdGVBbGxQcm9wZXJ0
aWVzKCZhbGxQcm9wZXJ0aWVzKTsKLSAgICBpZiAoaW5kZXggPj0gYWxsUHJvcGVydGllcy5zaXpl
KCkpIHsKLSAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VSUjsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIEluc3BlY3RvclN0eWxlUHJvcGVydHkmIHByb3BlcnR5ID0gYWxsUHJv
cGVydGllcy5hdChpbmRleCk7Ci0gICAgaWYgKHByb3BlcnR5LmRpc2FibGVkID09IGRpc2FibGUp
Ci0gICAgICAgIHJldHVybiB0cnVlOyAvLyBJZGVtcG90ZW50IG9wZXJhdGlvbi4KLQotICAgIElu
c3BlY3RvclN0eWxlVGV4dEVkaXRvciBlZGl0b3IoJmFsbFByb3BlcnRpZXMsICZtX2Rpc2FibGVk
UHJvcGVydGllcywgdGV4dCwgbmV3TGluZUFuZFdoaXRlc3BhY2VEZWxpbWl0ZXJzKCkpOwotICAg
IGlmIChkaXNhYmxlKQotICAgICAgICBlZGl0b3IuZGlzYWJsZVByb3BlcnR5KGluZGV4KTsKLSAg
ICBlbHNlCi0gICAgICAgIGVkaXRvci5lbmFibGVQcm9wZXJ0eShpbmRleCk7Ci0KLSAgICByZXR1
cm4gYXBwbHlTdHlsZVRleHQoZWRpdG9yLnN0eWxlVGV4dCgpKTsKLX0KLQogYm9vbCBJbnNwZWN0
b3JTdHlsZTo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3QKIHsKICAgICAvLyBQcmVjb25k
aXRpb246IG1fcGFyZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkgaGFzIGJl
ZW4gY2FsbGVkIHN1Y2Nlc3NmdWxseS4KQEAgLTQ2MCwxMSArMzUxLDYgQEAgYm9vbCBJbnNwZWN0
b3JTdHlsZTo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3QKIGJvb2wgSW5zcGVjdG9yU3R5
bGU6OnBvcHVsYXRlQWxsUHJvcGVydGllcyhWZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4q
IHJlc3VsdCkgY29uc3QKIHsKICAgICBIYXNoU2V0PFN0cmluZz4gc291cmNlUHJvcGVydHlOYW1l
czsKLSAgICB1bnNpZ25lZCBkaXNhYmxlZEluZGV4ID0gMDsKLSAgICB1bnNpZ25lZCBkaXNhYmxl
ZExlbmd0aCA9IG1fZGlzYWJsZWRQcm9wZXJ0aWVzLnNpemUoKTsKLSAgICBJbnNwZWN0b3JTdHls
ZVByb3BlcnR5IGRpc2FibGVkUHJvcGVydHk7Ci0gICAgaWYgKGRpc2FibGVkSW5kZXggPCBkaXNh
YmxlZExlbmd0aCkKLSAgICAgICAgZGlzYWJsZWRQcm9wZXJ0eSA9IG1fZGlzYWJsZWRQcm9wZXJ0
aWVzLmF0KGRpc2FibGVkSW5kZXgpOwogCiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBz
b3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKICAgICBWZWN0b3I8Q1NTUHJvcGVydHlT
b3VyY2VEYXRhPiogc291cmNlUHJvcGVydHlEYXRhID0gc291cmNlRGF0YSA/ICYoc291cmNlRGF0
YS0+c3R5bGVTb3VyY2VEYXRhLT5wcm9wZXJ0eURhdGEpIDogbnVsbHB0cjsKQEAgLTQ3MywxMSAr
MzU5LDYgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZTo6cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3Rv
cjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogcmVzdWwKICAgICAgICAgYm9vbCBpc1N0eWxlVGV4
dEtub3duID0gc3R5bGVUZXh0KCZzdHlsZURlY2xhcmF0aW9uKTsKICAgICAgICAgQVNTRVJUX1VO
VVNFRChpc1N0eWxlVGV4dEtub3duLCBpc1N0eWxlVGV4dEtub3duKTsKICAgICAgICAgZm9yIChW
ZWN0b3I8Q1NTUHJvcGVydHlTb3VyY2VEYXRhPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBzb3VyY2VQ
cm9wZXJ0eURhdGEtPmJlZ2luKCk7IGl0ICE9IHNvdXJjZVByb3BlcnR5RGF0YS0+ZW5kKCk7ICsr
aXQpIHsKLSAgICAgICAgICAgIHdoaWxlIChkaXNhYmxlZEluZGV4IDwgZGlzYWJsZWRMZW5ndGgg
JiYgZGlzYWJsZWRQcm9wZXJ0eS5zb3VyY2VEYXRhLnJhbmdlLnN0YXJ0IDw9IGl0LT5yYW5nZS5z
dGFydCkgewotICAgICAgICAgICAgICAgIHJlc3VsdC0+YXBwZW5kKGRpc2FibGVkUHJvcGVydHkp
OwotICAgICAgICAgICAgICAgIGlmICgrK2Rpc2FibGVkSW5kZXggPCBkaXNhYmxlZExlbmd0aCkK
LSAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWRQcm9wZXJ0eSA9IG1fZGlzYWJsZWRQcm9wZXJ0
aWVzLmF0KGRpc2FibGVkSW5kZXgpOwotICAgICAgICAgICAgfQogICAgICAgICAgICAgSW5zcGVj
dG9yU3R5bGVQcm9wZXJ0eSBwKCppdCwgdHJ1ZSwgZmFsc2UpOwogICAgICAgICAgICAgcC5zZXRS
YXdUZXh0RnJvbVN0eWxlRGVjbGFyYXRpb24oc3R5bGVEZWNsYXJhdGlvbik7CiAgICAgICAgICAg
ICByZXN1bHQtPmFwcGVuZChwKTsKQEAgLTQ4NSwxMSArMzY2LDYgQEAgYm9vbCBJbnNwZWN0b3JT
dHlsZTo6cG9wdWxhdGVBbGxQcm9wZXJ0aWVzKFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5
PiogcmVzdWwKICAgICAgICAgfQogICAgIH0KIAotICAgIHdoaWxlIChkaXNhYmxlZEluZGV4IDwg
ZGlzYWJsZWRMZW5ndGgpIHsKLSAgICAgICAgZGlzYWJsZWRQcm9wZXJ0eSA9IG1fZGlzYWJsZWRQ
cm9wZXJ0aWVzLmF0KGRpc2FibGVkSW5kZXgrKyk7Ci0gICAgICAgIHJlc3VsdC0+YXBwZW5kKGRp
c2FibGVkUHJvcGVydHkpOwotICAgIH0KLQogICAgIGZvciAoaW50IGkgPSAwLCBzaXplID0gbV9z
dHlsZS0+bGVuZ3RoKCk7IGkgPCBzaXplOyArK2kpIHsKICAgICAgICAgU3RyaW5nIG5hbWUgPSBt
X3N0eWxlLT5pdGVtKGkpOwogICAgICAgICBpZiAoc291cmNlUHJvcGVydHlOYW1lcy5jb250YWlu
cyhuYW1lLmxvd2VyKCkpKQpAQCAtNjg1LDcxICs1NjEsNiBAQCBWZWN0b3I8U3RyaW5nPiBJbnNw
ZWN0b3JTdHlsZTo6bG9uZ2hhbmRQcm9wZXJ0aWVzKGNvbnN0IFN0cmluZyYgc2hvcnRoYW5kUHJv
cGVydAogICAgIHJldHVybiBwcm9wZXJ0aWVzOwogfQogCi1OZXdMaW5lQW5kV2hpdGVzcGFjZSYg
SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVycygpIGNvbnN0Ci17
Ci0gICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgZGVmYXVsdFByZWZp
eCwgKEFTQ0lJTGl0ZXJhbCgiICAgICIpKSk7Ci0KLSAgICBpZiAobV9mb3JtYXRBY3F1aXJlZCkK
LSAgICAgICAgcmV0dXJuIG1fZm9ybWF0OwotCi0gICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRh
PiBzb3VyY2VEYXRhID0gZXh0cmFjdFNvdXJjZURhdGEoKTsKLSAgICBWZWN0b3I8Q1NTUHJvcGVy
dHlTb3VyY2VEYXRhPiogc291cmNlUHJvcGVydHlEYXRhID0gc291cmNlRGF0YSA/ICYoc291cmNl
RGF0YS0+c3R5bGVTb3VyY2VEYXRhLT5wcm9wZXJ0eURhdGEpIDogbnVsbHB0cjsKLSAgICBpbnQg
cHJvcGVydHlDb3VudDsKLSAgICBpZiAoIXNvdXJjZVByb3BlcnR5RGF0YSB8fCAhKHByb3BlcnR5
Q291bnQgPSBzb3VyY2VQcm9wZXJ0eURhdGEtPnNpemUoKSkpIHsKLSAgICAgICAgbV9mb3JtYXQu
Zmlyc3QgPSAiXG4iOwotICAgICAgICBtX2Zvcm1hdC5zZWNvbmQgPSBkZWZhdWx0UHJlZml4Owot
ICAgICAgICByZXR1cm4gbV9mb3JtYXQ7IC8vIERvIG5vdCByZW1lbWJlciB0aGUgZGVmYXVsdCBm
b3JtYXR0aW5nIGFuZCBhdHRlbXB0IHRvIGFjcXVpcmUgaXQgbGF0ZXIuCi0gICAgfQotCi0gICAg
U3RyaW5nIHRleHQ7Ci0gICAgYm9vbCBzdWNjZXNzID0gc3R5bGVUZXh0KCZ0ZXh0KTsKLSAgICBB
U1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwotCi0gICAgbV9mb3JtYXRBY3F1aXJlZCA9
IHRydWU7Ci0KLSAgICBTdHJpbmcgY2FuZGlkYXRlUHJlZml4ID0gZGVmYXVsdFByZWZpeDsKLSAg
ICBTdHJpbmdCdWlsZGVyIGZvcm1hdExpbmVGZWVkOwotICAgIFN0cmluZ0J1aWxkZXIgcHJlZml4
OwotICAgIGludCBzY2FuU3RhcnQgPSAwOwotICAgIGludCBwcm9wZXJ0eUluZGV4ID0gMDsKLSAg
ICBib29sIGlzRnVsbFByZWZpeFNjYW5uZWQgPSBmYWxzZTsKLSAgICBib29sIGxpbmVGZWVkVGVy
bWluYXRlZCA9IGZhbHNlOwotICAgIHdoaWxlIChwcm9wZXJ0eUluZGV4IDwgcHJvcGVydHlDb3Vu
dCkgewotICAgICAgICBjb25zdCBXZWJDb3JlOjpDU1NQcm9wZXJ0eVNvdXJjZURhdGEmIGN1cnJl
bnRQcm9wZXJ0eSA9IHNvdXJjZVByb3BlcnR5RGF0YS0+YXQocHJvcGVydHlJbmRleCsrKTsKLQot
ICAgICAgICBib29sIHByb2Nlc3NOZXh0UHJvcGVydHkgPSBmYWxzZTsKLSAgICAgICAgaW50IHNj
YW5FbmQgPSBjdXJyZW50UHJvcGVydHkucmFuZ2Uuc3RhcnQ7Ci0gICAgICAgIGZvciAoaW50IGkg
PSBzY2FuU3RhcnQ7IGkgPCBzY2FuRW5kOyArK2kpIHsKLSAgICAgICAgICAgIFVDaGFyIGNoID0g
dGV4dFtpXTsKLSAgICAgICAgICAgIGJvb2wgaXNMaW5lRmVlZCA9IGlzSFRNTExpbmVCcmVhayhj
aCk7Ci0gICAgICAgICAgICBpZiAoaXNMaW5lRmVlZCkgewotICAgICAgICAgICAgICAgIGlmICgh
bGluZUZlZWRUZXJtaW5hdGVkKQotICAgICAgICAgICAgICAgICAgICBmb3JtYXRMaW5lRmVlZC5h
cHBlbmQoY2gpOwotICAgICAgICAgICAgICAgIHByZWZpeC5jbGVhcigpOwotICAgICAgICAgICAg
fSBlbHNlIGlmIChpc0hUTUxTcGFjZShjaCkpCi0gICAgICAgICAgICAgICAgcHJlZml4LmFwcGVu
ZChjaCk7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGVQcmVm
aXggPSBwcmVmaXgudG9TdHJpbmcoKTsKLSAgICAgICAgICAgICAgICBwcmVmaXguY2xlYXIoKTsK
LSAgICAgICAgICAgICAgICBzY2FuU3RhcnQgPSBjdXJyZW50UHJvcGVydHkucmFuZ2UuZW5kOwot
ICAgICAgICAgICAgICAgICsrcHJvcGVydHlJbmRleDsKLSAgICAgICAgICAgICAgICBwcm9jZXNz
TmV4dFByb3BlcnR5ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIGlmICghaXNMaW5lRmVlZCAmJiBmb3JtYXRMaW5lRmVlZC5sZW5ndGgo
KSkKLSAgICAgICAgICAgICAgICBsaW5lRmVlZFRlcm1pbmF0ZWQgPSB0cnVlOwotICAgICAgICB9
Ci0gICAgICAgIGlmICghcHJvY2Vzc05leHRQcm9wZXJ0eSkgewotICAgICAgICAgICAgaXNGdWxs
UHJlZml4U2Nhbm5lZCA9IHRydWU7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIG1fZm9ybWF0LmZpcnN0ID0gZm9ybWF0TGluZUZlZWQudG9TdHJpbmcoKTsKLSAg
ICBtX2Zvcm1hdC5zZWNvbmQgPSBpc0Z1bGxQcmVmaXhTY2FubmVkID8gcHJlZml4LnRvU3RyaW5n
KCkgOiBjYW5kaWRhdGVQcmVmaXg7Ci0gICAgcmV0dXJuIG1fZm9ybWF0OwotfQotCiBSZWY8SW5z
cGVjdG9yU3R5bGVTaGVldD4gSW5zcGVjdG9yU3R5bGVTaGVldDo6Y3JlYXRlKEluc3BlY3RvclBh
Z2VBZ2VudCogcGFnZUFnZW50LCBjb25zdCBTdHJpbmcmIGlkLCBSZWZQdHI8Q1NTU3R5bGVTaGVl
dD4mJiBwYWdlU3R5bGVTaGVldCwgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTdHlsZVNoZWV0
T3JpZ2luIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBkb2N1bWVudFVSTCwgTGlzdGVuZXIqIGxpc3Rl
bmVyKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEluc3BlY3RvclN0eWxlU2hlZXQocGFn
ZUFnZW50LCBpZCwgV1RGOjptb3ZlKHBhZ2VTdHlsZVNoZWV0KSwgb3JpZ2luLCBkb2N1bWVudFVS
TCwgbGlzdGVuZXIpKTsKQEAgLTc2OSw3ICs1ODAsNiBAQCBJbnNwZWN0b3JTdHlsZVNoZWV0OjpJ
bnNwZWN0b3JTdHlsZVNoZWV0KEluc3BlY3RvclBhZ2VBZ2VudCogcGFnZUFnZW50LCBjb25zdCBT
dAogICAgICwgbV9wYWdlU3R5bGVTaGVldChXVEY6Om1vdmUocGFnZVN0eWxlU2hlZXQpKQogICAg
ICwgbV9vcmlnaW4ob3JpZ2luKQogICAgICwgbV9kb2N1bWVudFVSTChkb2N1bWVudFVSTCkKLSAg
ICAsIG1faXNSZXZhbGlkYXRpbmcoZmFsc2UpCiAgICAgLCBtX2xpc3RlbmVyKGxpc3RlbmVyKQog
ewogICAgIG1fcGFyc2VkU3R5bGVTaGVldCA9IG5ldyBQYXJzZWRTdHlsZVNoZWV0KCk7CkBAIC03
OTcsNyArNjA3LDYgQEAgdm9pZCBJbnNwZWN0b3JTdHlsZVNoZWV0OjpyZXBhcnNlU3R5bGVTaGVl
dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlv
blNjb3BlIG11dGF0aW9uU2NvcGUobV9wYWdlU3R5bGVTaGVldC5nZXQoKSk7CiAgICAgICAgIG1f
cGFnZVN0eWxlU2hlZXQtPmNvbnRlbnRzKCkucGFyc2VTdHJpbmcodGV4dCk7CiAgICAgICAgIG1f
cGFnZVN0eWxlU2hlZXQtPmNsZWFyQ2hpbGRSdWxlQ1NTT01XcmFwcGVycygpOwotICAgICAgICBt
X2luc3BlY3RvclN0eWxlcy5jbGVhcigpOwogICAgICAgICBmaXJlU3R5bGVTaGVldENoYW5nZWQo
KTsKICAgICB9CiB9CkBAIC05NTEsNyArNzYwLDYgQEAgQ1NTU3R5bGVSdWxlKiBJbnNwZWN0b3JT
dHlsZVNoZWV0OjpydWxlRm9ySWQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkKSBjb25zdAogICAg
IEFTU0VSVCghaWQuaXNFbXB0eSgpKTsKICAgICBlbnN1cmVGbGF0UnVsZXMoKTsKICAgICByZXR1
cm4gaWQub3JkaW5hbCgpID49IG1fZmxhdFJ1bGVzLnNpemUoKSA/IG51bGxwdHIgOiBtX2ZsYXRS
dWxlcy5hdChpZC5vcmRpbmFsKCkpLmdldCgpOwotCiB9CiAKIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpDU1M6OkNTU1N0eWxlU2hlZXRCb2R5PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpidWls
ZE9iamVjdEZvclN0eWxlU2hlZXQoKQpAQCAtMTE3NCwzOSArOTgyLDYgQEAgYm9vbCBJbnNwZWN0
b3JTdHlsZVNoZWV0OjpzZXRTdHlsZVRleHQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkLCBjb25z
dCBTdHJpbmcmIHQKICAgICByZXR1cm4gc3VjY2VzczsKIH0KIAotYm9vbCBJbnNwZWN0b3JTdHls
ZVNoZWV0OjpzZXRQcm9wZXJ0eVRleHQoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkLCB1bnNpZ25l
ZCBwcm9wZXJ0eUluZGV4LCBjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlLCBTdHJp
bmcqIG9sZFRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxJbnNwZWN0b3JT
dHlsZT4gaW5zcGVjdG9yU3R5bGUgPSBpbnNwZWN0b3JTdHlsZUZvcklkKGlkKTsKLSAgICBpZiAo
IWluc3BlY3RvclN0eWxlKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAgIGJvb2wgc3VjY2VzcyA9IGluc3BlY3RvclN0eWxl
LT5zZXRQcm9wZXJ0eVRleHQocHJvcGVydHlJbmRleCwgdGV4dCwgb3ZlcndyaXRlLCBvbGRUZXh0
LCBlYyk7Ci0gICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgIGZpcmVTdHlsZVNoZWV0Q2hhbmdlZCgp
OwotICAgIHJldHVybiBzdWNjZXNzOwotfQotCi1ib29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnRv
Z2dsZVByb3BlcnR5KGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCwgdW5zaWduZWQgcHJvcGVydHlJ
bmRleCwgYm9vbCBkaXNhYmxlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBSZWZQdHI8SW5z
cGVjdG9yU3R5bGU+IGluc3BlY3RvclN0eWxlID0gaW5zcGVjdG9yU3R5bGVGb3JJZChpZCk7Ci0g
ICAgaWYgKCFpbnNwZWN0b3JTdHlsZSkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBib29sIHN1Y2Nlc3MgPSBpbnNwZWN0
b3JTdHlsZS0+dG9nZ2xlUHJvcGVydHkocHJvcGVydHlJbmRleCwgZGlzYWJsZSwgZWMpOwotICAg
IGlmIChzdWNjZXNzKSB7Ci0gICAgICAgIGlmIChkaXNhYmxlKQotICAgICAgICAgICAgcmVtZW1i
ZXJJbnNwZWN0b3JTdHlsZShpbnNwZWN0b3JTdHlsZS5jb3B5UmVmKCkpOwotICAgICAgICBlbHNl
IGlmICghaW5zcGVjdG9yU3R5bGUtPmhhc0Rpc2FibGVkUHJvcGVydGllcygpKQotICAgICAgICAg
ICAgZm9yZ2V0SW5zcGVjdG9yU3R5bGUoaW5zcGVjdG9yU3R5bGUtPmNzc1N0eWxlKCkpOwotICAg
ICAgICBmaXJlU3R5bGVTaGVldENoYW5nZWQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIHN1Y2Nlc3M7
Ci19Ci0KIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6Z2V0VGV4dChTdHJpbmcqIHJlc3VsdCkg
Y29uc3QKIHsKICAgICBpZiAoIWVuc3VyZVRleHQoKSkKQEAgLTEyMzYsMjAgKzEwMTEsNyBAQCBS
ZWZQdHI8SW5zcGVjdG9yU3R5bGU+IEluc3BlY3RvclN0eWxlU2hlZXQ6Omluc3BlY3RvclN0eWxl
Rm9ySWQoY29uc3QgSW5zcGVjdG9yQwogICAgIGlmICghc3R5bGUpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgSW5zcGVjdG9yU3R5bGVNYXA6Oml0ZXJhdG9yIGl0ID0gbV9pbnNwZWN0
b3JTdHlsZXMuZmluZChzdHlsZSk7Ci0gICAgaWYgKGl0ID09IG1faW5zcGVjdG9yU3R5bGVzLmVu
ZCgpKQotICAgICAgICByZXR1cm4gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShpZCwgc3R5bGUsIHRo
aXMpOwotICAgIHJldHVybiBpdC0+dmFsdWU7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVTaGVl
dDo6cmVtZW1iZXJJbnNwZWN0b3JTdHlsZShSZWZQdHI8SW5zcGVjdG9yU3R5bGU+JiYgaW5zcGVj
dG9yU3R5bGUpCi17Ci0gICAgbV9pbnNwZWN0b3JTdHlsZXMuc2V0KGluc3BlY3RvclN0eWxlLT5j
c3NTdHlsZSgpLCBpbnNwZWN0b3JTdHlsZSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVTaGVl
dDo6Zm9yZ2V0SW5zcGVjdG9yU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGUpCi17Ci0g
ICAgbV9pbnNwZWN0b3JTdHlsZXMucmVtb3ZlKHN0eWxlKTsKKyAgICByZXR1cm4gSW5zcGVjdG9y
U3R5bGU6OmNyZWF0ZShpZCwgc3R5bGUsIHRoaXMpOwogfQogCiBJbnNwZWN0b3JDU1NJZCBJbnNw
ZWN0b3JTdHlsZVNoZWV0OjpydWxlT3JTdHlsZUlkKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxl
KSBjb25zdApAQCAtMTM5MSwyOSArMTE1Myw2IEBAIEluc3BlY3RvckNTU0lkIEluc3BlY3RvclN0
eWxlU2hlZXQ6OnJ1bGVJZChDU1NTdHlsZVJ1bGUqIHJ1bGUpIGNvbnN0CiAgICAgcmV0dXJuIHJ1
bGVPclN0eWxlSWQoJnJ1bGUtPnN0eWxlKCkpOwogfQogCi12b2lkIEluc3BlY3RvclN0eWxlU2hl
ZXQ6OnJldmFsaWRhdGVTdHlsZShDU1NTdHlsZURlY2xhcmF0aW9uKiBwYWdlU3R5bGUpCi17Ci0g
ICAgaWYgKG1faXNSZXZhbGlkYXRpbmcpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faXNSZXZh
bGlkYXRpbmcgPSB0cnVlOwotICAgIGVuc3VyZUZsYXRSdWxlcygpOwotICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIHNpemUgPSBtX2ZsYXRSdWxlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKLSAg
ICAgICAgQ1NTU3R5bGVSdWxlKiBwYXJzZWRSdWxlID0gbV9mbGF0UnVsZXMuYXQoaSkuZ2V0KCk7
Ci0gICAgICAgIGlmICgmcGFyc2VkUnVsZS0+c3R5bGUoKSA9PSBwYWdlU3R5bGUpIHsKLSAgICAg
ICAgICAgIGlmIChwYXJzZWRSdWxlLT5zdHlsZVJ1bGUoKS5wcm9wZXJ0aWVzKCkuYXNUZXh0KCkg
IT0gcGFnZVN0eWxlLT5jc3NUZXh0KCkpIHsKLSAgICAgICAgICAgICAgICAvLyBDbGVhciB0aGUg
ZGlzYWJsZWQgcHJvcGVydGllcyBmb3IgdGhlIGludmFsaWQgc3R5bGUgaGVyZS4KLSAgICAgICAg
ICAgICAgICBtX2luc3BlY3RvclN0eWxlcy5yZW1vdmUocGFnZVN0eWxlKTsKLQotICAgICAgICAg
ICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgICAgICAgICAgICAgIHNldFN0eWxlVGV4
dChwYWdlU3R5bGUsIHBhZ2VTdHlsZS0+Y3NzVGV4dCgpLCBlYyk7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBtX2lzUmV2YWxpZGF0aW5n
ID0gZmFsc2U7Ci19Ci0KIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6b3JpZ2luYWxTdHlsZVNo
ZWV0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3QKIHsKICAgICBib29sIHN1Y2Nlc3MgPSBpbmxp
bmVTdHlsZVNoZWV0VGV4dChyZXN1bHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JTdHlsZVNoZWV0LmgKaW5kZXggZjZjODk2YzhhYThiNGU3MGYxMzAwYTY3Njk1OTBj
OTAzMWQ2MTJiMC4uZTk1ZGQ2MGM5OWYzOTliMGExYWM4ODI4NmQyY2RkOWE5MzhkODNkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oCkBAIC0y
OCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCiAjaW5jbHVk
ZSAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNp
bmNsdWRlICJJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuaCIKICNpbmNsdWRlIDxpbnNwZWN0b3Iv
SW5zcGVjdG9yUHJvdG9jb2xPYmplY3RzLmg+CiAjaW5jbHVkZSA8aW5zcGVjdG9yL0luc3BlY3Rv
clZhbHVlcy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xMzQsOSArMTMzLDYgQEAg
cHVibGljOgogICAgIENTU1N0eWxlRGVjbGFyYXRpb24qIGNzc1N0eWxlKCkgY29uc3QgeyByZXR1
cm4gbV9zdHlsZS5nZXQoKTsgfQogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1N0eWxlPiBidWlsZE9iamVjdEZvclN0eWxlKCkgY29uc3Q7CiAgICAgUmVmPEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTQ29tcHV0ZWRT
dHlsZVByb3BlcnR5Pj4gYnVpbGRBcnJheUZvckNvbXB1dGVkU3R5bGUoKSBjb25zdDsKLSAgICBi
b29sIGhhc0Rpc2FibGVkUHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICFtX2Rpc2FibGVkUHJv
cGVydGllcy5pc0VtcHR5KCk7IH0KLSAgICBib29sIHNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBp
bmRleCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBib29sIG92ZXJ3cml0ZSwgU3RyaW5nKiBvbGRUZXh0
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCB0b2dnbGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRl
eCwgYm9vbCBkaXNhYmxlLCBFeGNlcHRpb25Db2RlJik7CiAKICAgICBib29sIGdldFRleHQoU3Ry
aW5nKiByZXN1bHQpIGNvbnN0OwogICAgIGJvb2wgc2V0VGV4dChjb25zdCBTdHJpbmcmLCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xNTQsMTQgKzE1MCwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBz
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5KSBjb25zdDsKICAg
ICBTdHJpbmcgc2hvcnRoYW5kUHJpb3JpdHkoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0
eSkgY29uc3Q7CiAgICAgVmVjdG9yPFN0cmluZz4gbG9uZ2hhbmRQcm9wZXJ0aWVzKGNvbnN0IFN0
cmluZyYgc2hvcnRoYW5kUHJvcGVydHkpIGNvbnN0OwotICAgIE5ld0xpbmVBbmRXaGl0ZXNwYWNl
JiBuZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMoKSBjb25zdDsKIAogICAgIEluc3BlY3Rv
ckNTU0lkIG1fc3R5bGVJZDsKICAgICBSZWZQdHI8Q1NTU3R5bGVEZWNsYXJhdGlvbj4gbV9zdHls
ZTsKICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBtX3BhcmVudFN0eWxlU2hlZXQ7Ci0gICAgVmVj
dG9yPEluc3BlY3RvclN0eWxlUHJvcGVydHk+IG1fZGlzYWJsZWRQcm9wZXJ0aWVzOwotICAgIG11
dGFibGUgc3RkOjpwYWlyPFN0cmluZywgU3RyaW5nPiBtX2Zvcm1hdDsKLSAgICBtdXRhYmxlIGJv
b2wgbV9mb3JtYXRBY3F1aXJlZDsKIH07CiAKIGNsYXNzIEluc3BlY3RvclN0eWxlU2hlZXQgOiBw
dWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JTdHlsZVNoZWV0PiB7CkBAIC0xOTQsOCArMTg2LDYg
QEAgcHVibGljOgogICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+
IGJ1aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqLCBFbGVtZW50Kik7CiAgICAgUmVmUHRy
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+IGJ1aWxkT2JqZWN0Rm9yU3R5bGUo
Q1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgIGJvb2wgc2V0U3R5bGVUZXh0KGNvbnN0IEluc3Bl
Y3RvckNTU0lkJiwgY29uc3QgU3RyaW5nJiB0ZXh0LCBTdHJpbmcqIG9sZFRleHQsIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBib29sIHNldFByb3BlcnR5VGV4dChjb25zdCBJbnNwZWN0b3JDU1NJZCYs
IHVuc2lnbmVkIHByb3BlcnR5SW5kZXgsIGNvbnN0IFN0cmluZyYgdGV4dCwgYm9vbCBvdmVyd3Jp
dGUsIFN0cmluZyogb2xkUHJvcGVydHlUZXh0LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgYm9vbCB0
b2dnbGVQcm9wZXJ0eShjb25zdCBJbnNwZWN0b3JDU1NJZCYsIHVuc2lnbmVkIHByb3BlcnR5SW5k
ZXgsIGJvb2wgZGlzYWJsZSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdmlydHVhbCBib29sIGdl
dFRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1YWwgQ1NTU3R5bGVEZWNsYXJh
dGlvbiogc3R5bGVGb3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYpIGNvbnN0OwpAQCAtMjE0LDgg
KzIwNCw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHJ1bGVJbmRleEJ5U3R5
bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiopIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBlbnN1cmVQ
YXJzZWREYXRhUmVhZHkoKTsKICAgICB2aXJ0dWFsIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gaW5z
cGVjdG9yU3R5bGVGb3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYpOwotICAgIHZpcnR1YWwgdm9p
ZCByZW1lbWJlckluc3BlY3RvclN0eWxlKFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4mJik7Ci0gICAg
dmlydHVhbCB2b2lkIGZvcmdldEluc3BlY3RvclN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKTsK
IAogICAgIC8vIEFsc28gYWNjZXNzZWQgYnkgZnJpZW5kIGNsYXNzIEluc3BlY3RvclN0eWxlLgog
ICAgIHZpcnR1YWwgYm9vbCBzZXRTdHlsZVRleHQoQ1NTU3R5bGVEZWNsYXJhdGlvbiosIGNvbnN0
IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTIzMSw3ICsyMTksNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgZW5zdXJlU291cmNlRGF0YSgpOwogICAgIHZvaWQgZW5zdXJlRmxhdFJ1bGVzKCkg
Y29uc3Q7CiAgICAgYm9vbCBzdHlsZVNoZWV0VGV4dFdpdGhDaGFuZ2VkU3R5bGUoQ1NTU3R5bGVE
ZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYgbmV3U3R5bGVUZXh0LCBTdHJpbmcqIHJlc3VsdCk7
Ci0gICAgdm9pZCByZXZhbGlkYXRlU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiopOwogICAgIGJv
b2wgb3JpZ2luYWxTdHlsZVNoZWV0VGV4dChTdHJpbmcqIHJlc3VsdCkgY29uc3Q7CiAgICAgYm9v
bCByZXNvdXJjZVN0eWxlU2hlZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdDsKICAgICBib29s
IGlubGluZVN0eWxlU2hlZXRUZXh0KFN0cmluZyogcmVzdWx0KSBjb25zdDsKQEAgLTI0NCw5ICsy
MzEsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxDU1NTdHlsZVNoZWV0PiBtX3BhZ2VTdHlsZVNo
ZWV0OwogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbiBtX29y
aWdpbjsKICAgICBTdHJpbmcgbV9kb2N1bWVudFVSTDsKLSAgICBib29sIG1faXNSZXZhbGlkYXRp
bmc7CiAgICAgUGFyc2VkU3R5bGVTaGVldCogbV9wYXJzZWRTdHlsZVNoZWV0OwotICAgIEluc3Bl
Y3RvclN0eWxlTWFwIG1faW5zcGVjdG9yU3R5bGVzOwogICAgIG11dGFibGUgQ1NTU3R5bGVSdWxl
VmVjdG9yIG1fZmxhdFJ1bGVzOwogICAgIExpc3RlbmVyKiBtX2xpc3RlbmVyOwogfTsKQEAgLTI2
Nyw4ICsyNTIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB1bnNpZ25lZCBydWxlSW5kZXhC
eVN0eWxlKENTU1N0eWxlRGVjbGFyYXRpb24qKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9
CiAgICAgdmlydHVhbCBib29sIGVuc3VyZVBhcnNlZERhdGFSZWFkeSgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgUmVmUHRyPEluc3BlY3RvclN0eWxlPiBpbnNwZWN0b3JTdHlsZUZvcklkKGNvbnN0
IEluc3BlY3RvckNTU0lkJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHJlbWVtYmVySW5z
cGVjdG9yU3R5bGUoUmVmUHRyPEluc3BlY3RvclN0eWxlPiYmKSBvdmVycmlkZSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgZm9yZ2V0SW5zcGVjdG9yU3R5bGUoQ1NTU3R5bGVEZWNsYXJhdGlvbiopIG92
ZXJyaWRlIHsgfQogCiAgICAgLy8gQWxzbyBhY2Nlc3NlZCBieSBmcmllbmQgY2xhc3MgSW5zcGVj
dG9yU3R5bGUuCiAgICAgdmlydHVhbCBib29sIHNldFN0eWxlVGV4dChDU1NTdHlsZURlY2xhcmF0
aW9uKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjljYjFmZjAyMmFhMzhhMDAyZTlkMTA4ZDc0
YzViZTYzNzhjNGNkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDI2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDExLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlVGV4dEVkaXRvci5oIgotCi0j
aW5jbHVkZSAiQ1NTUHJvcGVydHlTb3VyY2VEYXRhLmgiCi0jaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgotI2luY2x1ZGUgIkluc3BlY3RvclN0eWxlU2hlZXQuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIEluc3BlY3RvcjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1JbnNwZWN0b3JTdHlsZVRl
eHRFZGl0b3I6Okluc3BlY3RvclN0eWxlVGV4dEVkaXRvcihWZWN0b3I8SW5zcGVjdG9yU3R5bGVQ
cm9wZXJ0eT4qIGFsbFByb3BlcnRpZXMsIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5Piog
ZGlzYWJsZWRQcm9wZXJ0aWVzLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgTmV3TGlu
ZUFuZFdoaXRlc3BhY2UmIGZvcm1hdCkKLSAgICA6IG1fYWxsUHJvcGVydGllcyhhbGxQcm9wZXJ0
aWVzKQotICAgICwgbV9kaXNhYmxlZFByb3BlcnRpZXMoZGlzYWJsZWRQcm9wZXJ0aWVzKQotICAg
ICwgbV9zdHlsZVRleHQoc3R5bGVUZXh0KQotICAgICwgbV9mb3JtYXQoZm9ybWF0KQotewotfQot
Ci12b2lkIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6aW5zZXJ0UHJvcGVydHkodW5zaWduZWQg
aW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0LCB1bnNpZ25lZCBzdHlsZUJvZHlMZW5n
dGgpCi17Ci0gICAgbG9uZyBwcm9wZXJ0eVN0YXJ0ID0gMDsKLQotICAgIGJvb2wgaW5zZXJ0TGFz
dCA9IHRydWU7Ci0gICAgaWYgKGluZGV4IDwgbV9hbGxQcm9wZXJ0aWVzLT5zaXplKCkpIHsKLSAg
ICAgICAgY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX2FsbFByb3Bl
cnRpZXMtPmF0KGluZGV4KTsKLSAgICAgICAgaWYgKHByb3BlcnR5Lmhhc1NvdXJjZSkgewotICAg
ICAgICAgICAgcHJvcGVydHlTdGFydCA9IHByb3BlcnR5LnNvdXJjZURhdGEucmFuZ2Uuc3RhcnQ7
Ci0gICAgICAgICAgICAvLyBJZiBpbnNlcnRpbmcgYmVmb3JlIGEgZGlzYWJsZWQgcHJvcGVydHks
IGl0IHNob3VsZCBiZSBzaGlmdGVkLCB0b28uCi0gICAgICAgICAgICBpbnNlcnRMYXN0ID0gZmFs
c2U7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIGluc2VydEZpcnN0SW5Tb3VyY2UgPSB0
cnVlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX2FsbFByb3BlcnRpZXMtPnNp
emUoKTsgaSA8IGluZGV4ICYmIGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgY29uc3QgSW5zcGVj
dG9yU3R5bGVQcm9wZXJ0eSYgcHJvcGVydHkgPSBtX2FsbFByb3BlcnRpZXMtPmF0KGkpOwotICAg
ICAgICBpZiAocHJvcGVydHkuaGFzU291cmNlICYmICFwcm9wZXJ0eS5kaXNhYmxlZCkgewotICAg
ICAgICAgICAgaW5zZXJ0Rmlyc3RJblNvdXJjZSA9IGZhbHNlOwotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBib29sIGluc2VydExhc3RJblNvdXJjZSA9IHRydWU7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gaW5kZXgsIHNpemUgPSBtX2FsbFByb3BlcnRpZXMtPnNp
emUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0
eSYgcHJvcGVydHkgPSBtX2FsbFByb3BlcnRpZXMtPmF0KGkpOwotICAgICAgICBpZiAocHJvcGVy
dHkuaGFzU291cmNlICYmICFwcm9wZXJ0eS5kaXNhYmxlZCkgewotICAgICAgICAgICAgaW5zZXJ0
TGFzdEluU291cmNlID0gZmFsc2U7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIFN0cmluZyB0ZXh0VG9TZXQgPSBwcm9wZXJ0eVRleHQ7Ci0KLSAgICBpbnQgZm9y
bWF0dGluZ1ByZXBlbmRPZmZzZXQgPSAwOwotICAgIGlmIChpbnNlcnRMYXN0ICYmICFpbnNlcnRG
aXJzdEluU291cmNlKSB7Ci0gICAgICAgIHByb3BlcnR5U3RhcnQgPSBzdHlsZUJvZHlMZW5ndGg7
Ci0gICAgICAgIGlmIChwcm9wZXJ0eVN0YXJ0ICYmIHRleHRUb1NldC5sZW5ndGgoKSkgewotICAg
ICAgICAgICAgbG9uZyBjdXJQb3MgPSBwcm9wZXJ0eVN0YXJ0IC0gMTsgLy8gVGhlIGxhc3QgcG9z
aXRpb24gb2Ygc3R5bGUgZGVjbGFyYXRpb24sIHNpbmNlIHByb3BlcnR5U3RhcnQgcG9pbnRzIHBh
c3Qgb25lLgotICAgICAgICAgICAgd2hpbGUgKGN1clBvcyAmJiBpc0hUTUxTcGFjZShtX3N0eWxl
VGV4dFtjdXJQb3NdKSkKLSAgICAgICAgICAgICAgICAtLWN1clBvczsKLSAgICAgICAgICAgIGlm
IChjdXJQb3MgJiYgbV9zdHlsZVRleHRbY3VyUG9zXSAhPSAnOycpIHsKLSAgICAgICAgICAgICAg
ICAvLyBQcmVwZW5kIGEgIjsiIHRvIHRoZSBwcm9wZXJ0eSB0ZXh0IGlmIGFwcGVuZGluZyB0byBh
IHN0eWxlIGRlY2xhcmF0aW9uIHdoZXJlCi0gICAgICAgICAgICAgICAgLy8gdGhlIGxhc3QgcHJv
cGVydHkgaGFzIG5vIHRyYWlsaW5nICI7Ii4KLSAgICAgICAgICAgICAgICB0ZXh0VG9TZXQgPSBt
YWtlU3RyaW5nKCc7JywgdGV4dFRvU2V0KTsKLSAgICAgICAgICAgICAgICBmb3JtYXR0aW5nUHJl
cGVuZE9mZnNldCA9IDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBj
b25zdCBTdHJpbmcmIGZvcm1hdExpbmVGZWVkID0gbV9mb3JtYXQuZmlyc3Q7Ci0gICAgY29uc3Qg
U3RyaW5nJiBmb3JtYXRQcm9wZXJ0eVByZWZpeCA9IG1fZm9ybWF0LnNlY29uZDsKLSAgICBpZiAo
aW5zZXJ0TGFzdEluU291cmNlKSB7Ci0gICAgICAgIGxvbmcgZm9ybWF0UHJvcGVydHlQcmVmaXhM
ZW5ndGggPSBmb3JtYXRQcm9wZXJ0eVByZWZpeC5sZW5ndGgoKTsKLSAgICAgICAgaWYgKCFmb3Jt
YXR0aW5nUHJlcGVuZE9mZnNldCAmJiAocHJvcGVydHlTdGFydCA8IGZvcm1hdFByb3BlcnR5UHJl
Zml4TGVuZ3RoIHx8IG1fc3R5bGVUZXh0LnN1YnN0cmluZyhwcm9wZXJ0eVN0YXJ0IC0gZm9ybWF0
UHJvcGVydHlQcmVmaXhMZW5ndGgsIGZvcm1hdFByb3BlcnR5UHJlZml4TGVuZ3RoKSAhPSBmb3Jt
YXRQcm9wZXJ0eVByZWZpeCkpIHsKLSAgICAgICAgICAgIHRleHRUb1NldC5pbnNlcnQoZm9ybWF0
UHJvcGVydHlQcmVmaXgsIGZvcm1hdHRpbmdQcmVwZW5kT2Zmc2V0KTsKLSAgICAgICAgICAgIGlm
ICghcHJvcGVydHlTdGFydCB8fCAhaXNIVE1MTGluZUJyZWFrKG1fc3R5bGVUZXh0W3Byb3BlcnR5
U3RhcnQgLSAxXSkpCi0gICAgICAgICAgICAgICAgdGV4dFRvU2V0Lmluc2VydChmb3JtYXRMaW5l
RmVlZCwgZm9ybWF0dGluZ1ByZXBlbmRPZmZzZXQpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
aXNIVE1MTGluZUJyZWFrKG1fc3R5bGVUZXh0W3Byb3BlcnR5U3RhcnRdKSkKLSAgICAgICAgICAg
IHRleHRUb1NldC5hcHBlbmQoZm9ybWF0TGluZUZlZWQpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IFN0cmluZyBmdWxsUHJlZml4ID0gZm9ybWF0TGluZUZlZWQgKyBmb3JtYXRQcm9wZXJ0eVByZWZp
eDsKLSAgICAgICAgbG9uZyBmdWxsUHJlZml4TGVuZ3RoID0gZnVsbFByZWZpeC5sZW5ndGgoKTsK
LSAgICAgICAgdGV4dFRvU2V0LmFwcGVuZChmdWxsUHJlZml4KTsKLSAgICAgICAgaWYgKGluc2Vy
dEZpcnN0SW5Tb3VyY2UgJiYgKHByb3BlcnR5U3RhcnQgPCBmdWxsUHJlZml4TGVuZ3RoIHx8IG1f
c3R5bGVUZXh0LnN1YnN0cmluZyhwcm9wZXJ0eVN0YXJ0IC0gZnVsbFByZWZpeExlbmd0aCwgZnVs
bFByZWZpeExlbmd0aCkgIT0gZnVsbFByZWZpeCkpCi0gICAgICAgICAgICB0ZXh0VG9TZXQuaW5z
ZXJ0KGZ1bGxQcmVmaXgsIGZvcm1hdHRpbmdQcmVwZW5kT2Zmc2V0KTsKLSAgICB9Ci0gICAgbV9z
dHlsZVRleHQuaW5zZXJ0KHRleHRUb1NldCwgcHJvcGVydHlTdGFydCk7Ci0KLSAgICAvLyBSZWNv
bXB1dGUgZGlzYWJsZWQgcHJvcGVydHkgcmFuZ2VzIGFmdGVyIGFuIGluc2VydGVkIHByb3BlcnR5
LgotICAgIGxvbmcgcHJvcGVydHlMZW5ndGhEZWx0YSA9IHRleHRUb1NldC5sZW5ndGgoKTsKLSAg
ICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNhYmxlZEluZGV4QnlPcmRpbmFsKGluZGV4LCB0
cnVlKSwgcHJvcGVydHlMZW5ndGhEZWx0YSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0
RWRpdG9yOjpyZXBsYWNlUHJvcGVydHkodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgbmV3
VGV4dCkKLXsKLSAgICBBU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpbmRleCA8IG1f
YWxsUHJvcGVydGllcy0+c2l6ZSgpKTsKLQotICAgIGNvbnN0IEluc3BlY3RvclN0eWxlUHJvcGVy
dHkmIHByb3BlcnR5ID0gbV9hbGxQcm9wZXJ0aWVzLT5hdChpbmRleCk7Ci0gICAgaWYgKCFwcm9w
ZXJ0eS5kaXNhYmxlZCkgewotICAgICAgICBTb3VyY2VSYW5nZSBvdmVyd3JpdHRlblJhbmdlOwot
ICAgICAgICB1bnNpZ25lZCBpbnNlcnRlZExlbmd0aDsKLSAgICAgICAgaW50ZXJuYWxSZXBsYWNl
UHJvcGVydHkocHJvcGVydHksIG5ld1RleHQsICZvdmVyd3JpdHRlblJhbmdlLCAmaW5zZXJ0ZWRM
ZW5ndGgpOwotICAgICAgICBsb25nIHByb3BlcnR5TGVuZ3RoRGVsdGEgPSBzdGF0aWNfY2FzdDxs
b25nPihpbnNlcnRlZExlbmd0aCkgLSBzdGF0aWNfY2FzdDxsb25nPihvdmVyd3JpdHRlblJhbmdl
Lmxlbmd0aCgpKTsKLQotICAgICAgICAvLyBSZWNvbXB1dGUgc3Vic2VxdWVudCBkaXNhYmxlZCBw
cm9wZXJ0eSByYW5nZXMgaWYgYWN0aW5nIG9uIGEgbm9uLWRpc2FibGVkIHByb3BlcnR5LgotICAg
ICAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNhYmxlZEluZGV4QnlPcmRpbmFsKGluZGV4
LCB0cnVlKSwgcHJvcGVydHlMZW5ndGhEZWx0YSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgbG9u
ZyB0ZXh0TGVuZ3RoID0gbmV3VGV4dC5sZW5ndGgoKTsKLSAgICAgICAgdW5zaWduZWQgZGlzYWJs
ZWRJbmRleCA9IGRpc2FibGVkSW5kZXhCeU9yZGluYWwoaW5kZXgsIGZhbHNlKTsKLSAgICAgICAg
aWYgKCF0ZXh0TGVuZ3RoKSB7Ci0gICAgICAgICAgICAvLyBEZWxldGUgZGlzYWJsZWQgcHJvcGVy
dHkuCi0gICAgICAgICAgICBtX2Rpc2FibGVkUHJvcGVydGllcy0+cmVtb3ZlKGRpc2FibGVkSW5k
ZXgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gUGF0Y2ggZGlzYWJsZWQgcHJv
cGVydHkgdGV4dC4KLSAgICAgICAgICAgIG1fZGlzYWJsZWRQcm9wZXJ0aWVzLT5hdChkaXNhYmxl
ZEluZGV4KS5yYXdUZXh0ID0gbmV3VGV4dDsKLSAgICAgICAgfQotICAgIH0KLX0KLQotdm9pZCBJ
bnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OnJlbW92ZVByb3BlcnR5KHVuc2lnbmVkIGluZGV4KQot
ewotICAgIHJlcGxhY2VQcm9wZXJ0eShpbmRleCwgIiIpOwotfQotCi12b2lkIEluc3BlY3RvclN0
eWxlVGV4dEVkaXRvcjo6ZW5hYmxlUHJvcGVydHkodW5zaWduZWQgaW5kZXgpCi17Ci0gICAgQVNT
RVJUKG1fYWxsUHJvcGVydGllcy0+YXQoaW5kZXgpLmRpc2FibGVkKTsKLQotICAgIHVuc2lnbmVk
IGRpc2FibGVkSW5kZXggPSBkaXNhYmxlZEluZGV4QnlPcmRpbmFsKGluZGV4LCBmYWxzZSk7Ci0g
ICAgQVNTRVJUKGRpc2FibGVkSW5kZXggIT0gVUlOVF9NQVgpOwotCi0gICAgSW5zcGVjdG9yU3R5
bGVQcm9wZXJ0eSBkaXNhYmxlZFByb3BlcnR5ID0gbV9kaXNhYmxlZFByb3BlcnRpZXMtPmF0KGRp
c2FibGVkSW5kZXgpOwotICAgIG1fZGlzYWJsZWRQcm9wZXJ0aWVzLT5yZW1vdmUoZGlzYWJsZWRJ
bmRleCk7Ci0gICAgU291cmNlUmFuZ2UgcmVtb3ZlZFJhbmdlOwotICAgIHVuc2lnbmVkIGluc2Vy
dGVkTGVuZ3RoOwotICAgIGludGVybmFsUmVwbGFjZVByb3BlcnR5KGRpc2FibGVkUHJvcGVydHks
IGRpc2FibGVkUHJvcGVydHkucmF3VGV4dCwgJnJlbW92ZWRSYW5nZSwgJmluc2VydGVkTGVuZ3Ro
KTsKLSAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhkaXNhYmxlZEluZGV4LCBzdGF0aWNfY2Fz
dDxsb25nPihpbnNlcnRlZExlbmd0aCkgLSBzdGF0aWNfY2FzdDxsb25nPihyZW1vdmVkUmFuZ2Uu
bGVuZ3RoKCkpKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6OmRpc2FibGVQ
cm9wZXJ0eSh1bnNpZ25lZCBpbmRleCkKLXsKLSAgICBBU1NFUlQoIW1fYWxsUHJvcGVydGllcy0+
YXQoaW5kZXgpLmRpc2FibGVkKTsKLQotICAgIGNvbnN0IEluc3BlY3RvclN0eWxlUHJvcGVydHkm
IHByb3BlcnR5ID0gbV9hbGxQcm9wZXJ0aWVzLT5hdChpbmRleCk7Ci0gICAgSW5zcGVjdG9yU3R5
bGVQcm9wZXJ0eSBkaXNhYmxlZFByb3BlcnR5KHByb3BlcnR5KTsKLSAgICBkaXNhYmxlZFByb3Bl
cnR5LnNldFJhd1RleHRGcm9tU3R5bGVEZWNsYXJhdGlvbihtX3N0eWxlVGV4dCk7Ci0gICAgZGlz
YWJsZWRQcm9wZXJ0eS5kaXNhYmxlZCA9IHRydWU7Ci0KLSAgICBTb3VyY2VSYW5nZSByZW1vdmVk
UmFuZ2U7Ci0gICAgdW5zaWduZWQgaW5zZXJ0ZWRMZW5ndGg7Ci0gICAgaW50ZXJuYWxSZXBsYWNl
UHJvcGVydHkocHJvcGVydHksICIiLCAmcmVtb3ZlZFJhbmdlLCAmaW5zZXJ0ZWRMZW5ndGgpOwot
Ci0gICAgLy8gSWYgc29tZSBwcmVjZWRpbmcgZm9ybWF0dGluZyBoYXMgYmVlbiByZW1vdmVkLCBt
b3ZlIHRoZSBwcm9wZXJ0eSB0byB0aGUgc3RhcnQgb2YgdGhlIHJlbW92ZWQgcmFuZ2UuCi0gICAg
aWYgKHByb3BlcnR5LnNvdXJjZURhdGEucmFuZ2Uuc3RhcnQgPiByZW1vdmVkUmFuZ2Uuc3RhcnQp
Ci0gICAgICAgIGRpc2FibGVkUHJvcGVydHkuc291cmNlRGF0YS5yYW5nZS5zdGFydCA9IHJlbW92
ZWRSYW5nZS5zdGFydDsKLSAgICBkaXNhYmxlZFByb3BlcnR5LnNvdXJjZURhdGEucmFuZ2UuZW5k
ID0gZGlzYWJsZWRQcm9wZXJ0eS5zb3VyY2VEYXRhLnJhbmdlLnN0YXJ0OwotCi0gICAgLy8gQWRk
IGRpc2FibGVkIHByb3BlcnR5IGF0IGNvcnJlY3QgcG9zaXRpb24uCi0gICAgdW5zaWduZWQgaW5z
ZXJ0aW9uSW5kZXggPSBkaXNhYmxlZEluZGV4QnlPcmRpbmFsKGluZGV4LCB0cnVlKTsKLSAgICBp
ZiAoaW5zZXJ0aW9uSW5kZXggPT0gVUlOVF9NQVgpCi0gICAgICAgIG1fZGlzYWJsZWRQcm9wZXJ0
aWVzLT5hcHBlbmQoZGlzYWJsZWRQcm9wZXJ0eSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIG1fZGlz
YWJsZWRQcm9wZXJ0aWVzLT5pbnNlcnQoaW5zZXJ0aW9uSW5kZXgsIGRpc2FibGVkUHJvcGVydHkp
OwotICAgICAgICBsb25nIHN0eWxlTGVuZ3RoRGVsdGEgPSAtKHN0YXRpY19jYXN0PGxvbmc+KHJl
bW92ZWRSYW5nZS5sZW5ndGgoKSkpOwotICAgICAgICBzaGlmdERpc2FibGVkUHJvcGVydGllcyhp
bnNlcnRpb25JbmRleCArIDEsIHN0eWxlTGVuZ3RoRGVsdGEpOyAvLyBQcm9wZXJ0eSByZW1vdmVk
IGZyb20gdGV4dCAtIHNoaWZ0IHRoZXNlIGJhY2suCi0gICAgfQotfQotCi11bnNpZ25lZCBJbnNw
ZWN0b3JTdHlsZVRleHRFZGl0b3I6OmRpc2FibGVkSW5kZXhCeU9yZGluYWwodW5zaWduZWQgb3Jk
aW5hbCwgYm9vbCBjYW5Vc2VTdWJzZXF1ZW50KQotewotICAgIHVuc2lnbmVkIGRpc2FibGVkSW5k
ZXggPSAwOwotICAgIGZvciAodW5zaWduZWQgaSA9IDAsIHNpemUgPSBtX2FsbFByb3BlcnRpZXMt
PnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBpZiAobV9hbGxQcm9wZXJ0aWVzLT5h
dChpKS5kaXNhYmxlZCkgewotICAgICAgICAgICAgaWYgKGkgPT0gb3JkaW5hbCB8fCAoY2FuVXNl
U3Vic2VxdWVudCAmJiBpID4gb3JkaW5hbCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGRpc2Fi
bGVkSW5kZXg7Ci0gICAgICAgICAgICArK2Rpc2FibGVkSW5kZXg7Ci0gICAgICAgIH0KLSAgICB9
Ci0KLSAgICByZXR1cm4gVUlOVF9NQVg7Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRp
dG9yOjpzaGlmdERpc2FibGVkUHJvcGVydGllcyh1bnNpZ25lZCBmcm9tSW5kZXgsIGxvbmcgZGVs
dGEpCi17Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gZnJvbUluZGV4LCBzaXplID0gbV9kaXNhYmxl
ZFByb3BlcnRpZXMtPnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBTb3VyY2VSYW5n
ZSYgcmFuZ2UgPSBtX2Rpc2FibGVkUHJvcGVydGllcy0+YXQoaSkuc291cmNlRGF0YS5yYW5nZTsK
LSAgICAgICAgcmFuZ2Uuc3RhcnQgKz0gZGVsdGE7Ci0gICAgICAgIHJhbmdlLmVuZCArPSBkZWx0
YTsKLSAgICB9Ci19Ci0KLXZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjppbnRlcm5hbFJl
cGxhY2VQcm9wZXJ0eShjb25zdCBJbnNwZWN0b3JTdHlsZVByb3BlcnR5JiBwcm9wZXJ0eSwgY29u
c3QgU3RyaW5nJiBuZXdUZXh0LCBTb3VyY2VSYW5nZSogcmVtb3ZlZFJhbmdlLCB1bnNpZ25lZCog
aW5zZXJ0ZWRMZW5ndGgpCi17Ci0gICAgY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlID0gcHJvcGVy
dHkuc291cmNlRGF0YS5yYW5nZTsKLSAgICBsb25nIHJlcGxhY2VSYW5nZVN0YXJ0ID0gcmFuZ2Uu
c3RhcnQ7Ci0gICAgbG9uZyByZXBsYWNlUmFuZ2VFbmQgPSByYW5nZS5lbmQ7Ci0gICAgbG9uZyBu
ZXdUZXh0TGVuZ3RoID0gbmV3VGV4dC5sZW5ndGgoKTsKLSAgICBTdHJpbmcgZmluYWxOZXdUZXh0
ID0gbmV3VGV4dDsKLQotICAgIC8vIFJlbW92aW5nIGEgcHJvcGVydHkgLSByZW1vdmUgcHJlY2Vk
aW5nIHByZWZpeC4KLSAgICBTdHJpbmcgZnVsbFByZWZpeCA9IG1fZm9ybWF0LmZpcnN0ICsgbV9m
b3JtYXQuc2Vjb25kOwotICAgIGxvbmcgZnVsbFByZWZpeExlbmd0aCA9IGZ1bGxQcmVmaXgubGVu
Z3RoKCk7Ci0gICAgaWYgKCFuZXdUZXh0TGVuZ3RoICYmIGZ1bGxQcmVmaXhMZW5ndGgpIHsKLSAg
ICAgICAgaWYgKHJlcGxhY2VSYW5nZVN0YXJ0ID49IGZ1bGxQcmVmaXhMZW5ndGggJiYgbV9zdHls
ZVRleHQuc3Vic3RyaW5nKHJlcGxhY2VSYW5nZVN0YXJ0IC0gZnVsbFByZWZpeExlbmd0aCwgZnVs
bFByZWZpeExlbmd0aCkgPT0gZnVsbFByZWZpeCkKLSAgICAgICAgICAgIHJlcGxhY2VSYW5nZVN0
YXJ0IC09IGZ1bGxQcmVmaXhMZW5ndGg7Ci0gICAgfSBlbHNlIGlmIChuZXdUZXh0TGVuZ3RoKSB7
Ci0gICAgICAgIGlmIChpc0hUTUxMaW5lQnJlYWsobmV3VGV4dFtuZXdUZXh0TGVuZ3RoIC0gMV0p
KSB7Ci0gICAgICAgICAgICAvLyBDb2FsZXNjZSBuZXdsaW5lcyBvZiB0aGUgb3JpZ2luYWwgYW5k
IG5ldyBwcm9wZXJ0eSB2YWx1ZXMgKHRvIGF2b2lkIGEgbG90IG9mIGJsYW5rIGxpbmVzIHdoaWxl
IGluY3JlbWVudGFsbHkgYXBwbHlpbmcgcHJvcGVydHkgdmFsdWVzKS4KLSAgICAgICAgICAgIGJv
b2wgZm91bmROZXdsaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICBib29sIGlzTGFzdE5ld2xpbmUg
PSBmYWxzZTsKLSAgICAgICAgICAgIGludCBpOwotICAgICAgICAgICAgaW50IHRleHRMZW5ndGgg
PSBtX3N0eWxlVGV4dC5sZW5ndGgoKTsKLSAgICAgICAgICAgIGZvciAoaSA9IHJlcGxhY2VSYW5n
ZUVuZDsgaSA8IHRleHRMZW5ndGggJiYgaXNTcGFjZU9yTmV3bGluZShtX3N0eWxlVGV4dFtpXSk7
ICsraSkgewotICAgICAgICAgICAgICAgIGlzTGFzdE5ld2xpbmUgPSBpc0hUTUxMaW5lQnJlYWso
bV9zdHlsZVRleHRbaV0pOwotICAgICAgICAgICAgICAgIGlmIChpc0xhc3ROZXdsaW5lKQotICAg
ICAgICAgICAgICAgICAgICBmb3VuZE5ld2xpbmUgPSB0cnVlOwotICAgICAgICAgICAgICAgIGVs
c2UgaWYgKGZvdW5kTmV3bGluZSAmJiAhaXNMYXN0TmV3bGluZSkgewotICAgICAgICAgICAgICAg
ICAgICByZXBsYWNlUmFuZ2VFbmQgPSBpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoZm91bmROZXds
aW5lICYmIGlzTGFzdE5ld2xpbmUpCi0gICAgICAgICAgICAgICAgcmVwbGFjZVJhbmdlRW5kID0g
aTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChmdWxsUHJlZml4TGVuZ3RoID4gcmVwbGFjZVJh
bmdlU3RhcnQgfHwgbV9zdHlsZVRleHQuc3Vic3RyaW5nKHJlcGxhY2VSYW5nZVN0YXJ0IC0gZnVs
bFByZWZpeExlbmd0aCwgZnVsbFByZWZpeExlbmd0aCkgIT0gZnVsbFByZWZpeCkKLSAgICAgICAg
ICAgIGZpbmFsTmV3VGV4dCA9IGZ1bGxQcmVmaXggKyBmaW5hbE5ld1RleHQ7Ci0gICAgfQotCi0g
ICAgaW50IHJlcGxhY2VkTGVuZ3RoID0gcmVwbGFjZVJhbmdlRW5kIC0gcmVwbGFjZVJhbmdlU3Rh
cnQ7Ci0gICAgbV9zdHlsZVRleHQucmVwbGFjZShyZXBsYWNlUmFuZ2VTdGFydCwgcmVwbGFjZWRM
ZW5ndGgsIGZpbmFsTmV3VGV4dCk7Ci0gICAgKnJlbW92ZWRSYW5nZSA9IFNvdXJjZVJhbmdlKHJl
cGxhY2VSYW5nZVN0YXJ0LCByZXBsYWNlUmFuZ2VFbmQpOwotICAgICppbnNlcnRlZExlbmd0aCA9
IGZpbmFsTmV3VGV4dC5sZW5ndGgoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NWMxOGEyYWQwZmI5NDQ5YjdiNTUzOGQ3
ODM1NDFkOGM0ODJlNWI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3Iu
aAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTEsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVm
IEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcl9oCi0jZGVmaW5lIEluc3BlY3RvclN0eWxlVGV4dEVk
aXRvcl9oCi0KLSNpbmNsdWRlICJDU1NQcm9wZXJ0eVNvdXJjZURhdGEuaCIKLQotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgSW5zcGVjdG9yU3R5bGVQcm9wZXJ0eTsKLXN0cnVjdCBT
b3VyY2VSYW5nZTsKLQotdHlwZWRlZiBzdGQ6OnBhaXI8U3RyaW5nLCBTdHJpbmc+IE5ld0xpbmVB
bmRXaGl0ZXNwYWNlOwotCi1jbGFzcyBJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IgewotcHVibGlj
OgotICAgIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcihWZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9w
ZXJ0eT4qIGFsbFByb3BlcnRpZXMsIFZlY3RvcjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogZGlz
YWJsZWRQcm9wZXJ0aWVzLCBjb25zdCBTdHJpbmcmIHN0eWxlVGV4dCwgY29uc3QgTmV3TGluZUFu
ZFdoaXRlc3BhY2UmIGZvcm1hdCk7Ci0gICAgdm9pZCBpbnNlcnRQcm9wZXJ0eSh1bnNpZ25lZCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsIHVuc2lnbmVkIHN0eWxlQm9keUxlbmd0
aCk7Ci0gICAgdm9pZCByZXBsYWNlUHJvcGVydHkodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgbmV3VGV4dCk7Ci0gICAgdm9pZCByZW1vdmVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCk7Ci0g
ICAgdm9pZCBlbmFibGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCk7Ci0gICAgdm9pZCBkaXNhYmxl
UHJvcGVydHkodW5zaWduZWQgaW5kZXgpOwotICAgIGNvbnN0IFN0cmluZyYgc3R5bGVUZXh0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdHlsZVRleHQ7IH0KLQotcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBk
aXNhYmxlZEluZGV4QnlPcmRpbmFsKHVuc2lnbmVkIG9yZGluYWwsIGJvb2wgY2FuVXNlU3Vic2Vx
dWVudCk7Ci0gICAgdm9pZCBzaGlmdERpc2FibGVkUHJvcGVydGllcyh1bnNpZ25lZCBmcm9tSW5k
ZXgsIGxvbmcgZGVsdGEpOwotICAgIHZvaWQgaW50ZXJuYWxSZXBsYWNlUHJvcGVydHkoY29uc3Qg
SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eSYsIGNvbnN0IFN0cmluZyYgbmV3VGV4dCwgU291cmNlUmFu
Z2UqIHJlbW92ZWRSYW5nZSwgdW5zaWduZWQqIGluc2VydGVkTGVuZ3RoKTsKLQotICAgIFZlY3Rv
cjxJbnNwZWN0b3JTdHlsZVByb3BlcnR5PiogbV9hbGxQcm9wZXJ0aWVzOwotICAgIFZlY3RvcjxJ
bnNwZWN0b3JTdHlsZVByb3BlcnR5PiogbV9kaXNhYmxlZFByb3BlcnRpZXM7Ci0gICAgU3RyaW5n
IG1fc3R5bGVUZXh0OwotICAgIGNvbnN0IHN0ZDo6cGFpcjxTdHJpbmcsIFN0cmluZz4gbV9mb3Jt
YXQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyAhZGVmaW5lZChJ
bnNwZWN0b3JTdHlsZVRleHRFZGl0b3JfaCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9DU1NQcm9wZXJ0eS5qcwppbmRleCBmZWZiNGVl
OGYzNTk3MzE4YzAwYWJkZGMxNzEyYjk2MmYwZTRmNTM3Li4wYmM4Zjk0MTdjZmU4OWZjMzk4MDdi
MjBiZWRhMWFjY2Q4ZmIxMWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Nb2RlbHMvQ1NTUHJvcGVydHkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1Byb3BlcnR5LmpzCkBAIC00Miw2ICs0Miw3IEBA
IFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5FdmVudCA9IHsKIAogV2ViSW5zcGVjdG9yLkNTU1By
b3BlcnR5LnByb3RvdHlwZSA9IHsKICAgICBjb25zdHJ1Y3RvcjogV2ViSW5zcGVjdG9yLkNTU1By
b3BlcnR5LAorICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGUsCiAK
ICAgICAvLyBQdWJsaWMKIApAQCAtMTEzLDEyICsxMTQsNiBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJv
cGVydHkucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fY2Fub25pY2FsTmFtZTsK
ICAgICAgICAgZGVsZXRlIHRoaXMuX2hhc090aGVyVmVuZG9yTmFtZU9yS2V5d29yZDsKIAotICAg
ICAgICBpZiAoIXRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVvdXQpIHsKLSAgICAgICAgICAg
IGRlbGV0ZSB0aGlzLl9wZW5kaW5nTmFtZTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5k
aW5nVmFsdWU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGluZ1ByaW9yaXR5OwotICAg
ICAgICB9Ci0KICAgICAgICAgaWYgKGNoYW5nZWQpCiAgICAgICAgICAgICB0aGlzLmRpc3BhdGNo
RXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkuRXZlbnQuQ2hhbmdlZCk7
CiAgICAgfSwKQEAgLTEzOCw2MSArMTMzLDExIEBAIFdlYkluc3BlY3Rvci5DU1NQcm9wZXJ0eS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl90ZXh0IHx8IHRoaXMuc3ludGhlc2l6
ZWRUZXh0OwogICAgIH0sCiAKLSAgICBzZXQgdGV4dCh0ZXh0KQotICAgIHsKLSAgICAgICAgaWYg
KCF0aGlzLl9vd25lclN0eWxlIHx8ICF0aGlzLl9vd25lclN0eWxlLmVkaXRhYmxlKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl90ZXh0ID09PSB0ZXh0KQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0aGlzLl9pbmRleCkpIHsKLSAgICAg
ICAgICAgIHRoaXMuX3RleHQgPSB0ZXh0IHx8ICIiOwotCi0gICAgICAgICAgICAvLyBDbGVhciB0
aGUgbmFtZSwgdmFsdWUgYW5kIHByaW9yaXR5IHNpbmNlIHRoZXkgbWlnaHQgbm90IG1hdGNoIHRo
ZSB0ZXh0IG5vdy4KLSAgICAgICAgICAgIHRoaXMuX25hbWUgPSAiIjsKLSAgICAgICAgICAgIHRo
aXMuX3ZhbHVlID0gIiI7Ci0gICAgICAgICAgICB0aGlzLl9wcmlvcml0eSA9ICIiOwotCi0gICAg
ICAgICAgICAvLyBEaXR0byBmb3IgdGhlIGNhbm9uaWNhbCBhbmQgcGVuZGluZyBwcm9wZXJ0aWVz
LgotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2Nhbm9uaWNhbE5hbWU7Ci0gICAgICAgICAgICBk
ZWxldGUgdGhpcy5fcGVuZGluZ05hbWU7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5fcGVuZGlu
Z1ZhbHVlOwotICAgICAgICAgICAgZGVsZXRlIHRoaXMuX3BlbmRpbmdQcmlvcml0eTsKLQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fY2FuY2VsUGVuZGlu
Z1VwZGF0ZSgpOwotICAgICAgICB0aGlzLl9vd25lclN0eWxlLm5vZGVTdHlsZXMuY2hhbmdlUHJv
cGVydHlUZXh0KHRoaXMsIHRleHQpOwotICAgIH0sCi0KICAgICBnZXQgbmFtZSgpCiAgICAgewot
ICAgICAgICBpZiAoaXNOYU4odGhpcy5faW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuIHRoaXMu
X3BlbmRpbmdOYW1lIHx8IHRoaXMuX25hbWU7CiAgICAgICAgIHJldHVybiB0aGlzLl9uYW1lOwog
ICAgIH0sCiAKLSAgICBzZXQgbmFtZShuYW1lKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9v
d25lclN0eWxlIHx8ICF0aGlzLl9vd25lclN0eWxlLmVkaXRhYmxlKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmICh0aGlzLl9uYW1lID09PSBuYW1lKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIGlmIChpc05hTih0aGlzLl9pbmRleCkpIHsKLSAgICAgICAgICAgIHRo
aXMuX25hbWUgPSBuYW1lOwotICAgICAgICAgICAgdGhpcy5fdGV4dCA9ICIiOwotCi0gICAgICAg
ICAgICBkZWxldGUgdGhpcy5fY2Fub25pY2FsTmFtZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHRoaXMuX3BlbmRpbmdOYW1lID0gbmFtZTsKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0
ZVByb3BlcnR5U29vbigpOwotICAgICAgICB9Ci0gICAgfSwKLQogICAgIGdldCBjYW5vbmljYWxO
YW1lKCkKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9jYW5vbmljYWxOYW1lKQpAQCAtMjA1LDc1
ICsxNTAsMjQgQEAgV2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZSA9IHsKIAogICAg
IGdldCB2YWx1ZSgpCiAgICAgewotICAgICAgICBpZiAoaXNOYU4odGhpcy5faW5kZXgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRoaXMuX3BlbmRpbmdWYWx1ZSB8fCB0aGlzLl92YWx1ZTsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX3ZhbHVlOwogICAgIH0sCiAKLSAgICBzZXQgdmFsdWUodmFsdWUpCi0g
ICAgewotICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5bGUgfHwgIXRoaXMuX293bmVyU3R5bGUu
ZWRpdGFibGUpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgaWYgKHRoaXMuX3ZhbHVl
ID09PSB2YWx1ZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAoaXNOYU4odGhp
cy5faW5kZXgpKSB7Ci0gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlOwotICAgICAgICAg
ICAgdGhpcy5fdGV4dCA9ICIiOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5f
cGVuZGluZ1ZhbHVlID0gdmFsdWU7Ci0gICAgICAgICAgICB0aGlzLl91cGRhdGVQcm9wZXJ0eVNv
b24oKTsKLSAgICAgICAgfQotICAgIH0sCi0KICAgICBnZXQgaW1wb3J0YW50KCkKICAgICB7CiAg
ICAgICAgIHJldHVybiB0aGlzLnByaW9yaXR5ID09PSAiaW1wb3J0YW50IjsKICAgICB9LAogCi0g
ICAgc2V0IGltcG9ydGFudChpbXBvcnRhbnQpCi0gICAgewotICAgICAgICB0aGlzLnByaW9yaXR5
ID0gaW1wb3J0YW50ID8gImltcG9ydGFudCIgOiAiIjsKLSAgICB9LAotCiAgICAgZ2V0IHByaW9y
aXR5KCkKICAgICB7Ci0gICAgICAgIGlmIChpc05hTih0aGlzLl9pbmRleCkpCi0gICAgICAgICAg
ICByZXR1cm4gdGhpcy5fcGVuZGluZ1ByaW9yaXR5IHx8IHRoaXMuX3ByaW9yaXR5OwogICAgICAg
ICByZXR1cm4gdGhpcy5fcHJpb3JpdHk7CiAgICAgfSwKIAotICAgIHNldCBwcmlvcml0eShwcmlv
cml0eSkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3du
ZXJTdHlsZS5lZGl0YWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBpZiAodGhp
cy5fcHJpb3JpdHkgPT09IHByaW9yaXR5KQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGlmIChpc05hTih0aGlzLl9pbmRleCkpIHsKLSAgICAgICAgICAgIHRoaXMuX3ByaW9yaXR5ID0g
cHJpb3JpdHk7Ci0gICAgICAgICAgICB0aGlzLl90ZXh0ID0gIiI7Ci0gICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICB0aGlzLl9wZW5kaW5nUHJpb3JpdHkgPSBwcmlvcml0eTsKLSAgICAgICAg
ICAgIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vbigpOwotICAgICAgICB9Ci0gICAgfSwKLQogICAg
IGdldCBlbmFibGVkKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9lbmFibGVkICYmIHRo
aXMuX293bmVyU3R5bGUgJiYgKCFpc05hTih0aGlzLl9pbmRleCkgfHwgdGhpcy5fb3duZXJTdHls
ZS50eXBlID09PSBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5UeXBlLkNvbXB1dGVk
KTsKICAgICB9LAogCi0gICAgc2V0IGVuYWJsZWQoZW5hYmxlZCkKLSAgICB7Ci0gICAgICAgIGlm
ICghdGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3duZXJTdHlsZS5lZGl0YWJsZSkKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9vd25lclN0eWxlLm5vZGVTdHlsZXMuY2hh
bmdlUHJvcGVydHlFbmFibGVkU3RhdGUodGhpcywgZW5hYmxlZCk7Ci0gICAgfSwKLQogICAgIGdl
dCBvdmVycmlkZGVuKCkKICAgICB7CiAgICAgICAgIHJldHVybiB0aGlzLl9vdmVycmlkZGVuOwpA
QCAtMzkyLDYzICsyODYsNSBAQCBXZWJJbnNwZWN0b3IuQ1NTUHJvcGVydHkucHJvdG90eXBlID0g
ewogICAgICAgICB0aGlzLl9oYXNPdGhlclZlbmRvck5hbWVPcktleXdvcmQgPSBXZWJJbnNwZWN0
b3IuY3NzU3R5bGVNYW5hZ2VyLnByb3BlcnR5TmFtZUhhc090aGVyVmVuZG9yUHJlZml4KHRoaXMu
bmFtZSkgfHwgV2ViSW5zcGVjdG9yLmNzc1N0eWxlTWFuYWdlci5wcm9wZXJ0eVZhbHVlSGFzT3Ro
ZXJWZW5kb3JLZXl3b3JkKHRoaXMudmFsdWUpOwogCiAgICAgICAgIHJldHVybiB0aGlzLl9oYXNP
dGhlclZlbmRvck5hbWVPcktleXdvcmQ7Ci0gICAgfSwKLQotICAgIGFkZDogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgLy8gV2UgY2FuIG9ubHkgYWRkIGlmIHRoZSBpbmRleCBpcyBOYU4uIFJl
dHVybiBlYXJseSBvdGhlcndpc2UuCi0gICAgICAgIGlmICghdGhpcy5fb3duZXJTdHlsZSB8fCAh
dGhpcy5fb3duZXJTdHlsZS5lZGl0YWJsZSB8fCAhaXNOYU4odGhpcy5faW5kZXgpKQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX2NhbmNlbFBlbmRpbmdVcGRhdGUoKTsKLSAg
ICAgICAgdGhpcy5fb3duZXJTdHlsZS5hZGRQcm9wZXJ0eSh0aGlzKTsKLSAgICB9LAotCi0gICAg
cmVtb3ZlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICAvLyBXZSBjYW4gb25seSByZW1vdmUg
aWYgdGhlIGluZGV4IGlzIG5vdCBOYU4uIFJldHVybiBlYXJseSBvdGhlcndpc2UuCi0gICAgICAg
IGlmICghdGhpcy5fb3duZXJTdHlsZSB8fCAhdGhpcy5fb3duZXJTdHlsZS5lZGl0YWJsZSB8fCBp
c05hTih0aGlzLl9pbmRleCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5f
Y2FuY2VsUGVuZGluZ1VwZGF0ZSgpOwotICAgICAgICB0aGlzLl9vd25lclN0eWxlLnJlbW92ZVBy
b3BlcnR5KHRoaXMpOwotICAgIH0sCi0KLSAgICAvLyBQcml2YXRlCi0KLSAgICBfdXBkYXRlUHJv
cGVydHlTb29uOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5
bGUgfHwgaXNOYU4odGhpcy5faW5kZXgpIHx8IHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVv
dXQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24gcGVyZm9ybVVwZGF0
ZSgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl91cGRhdGVQcm9wZXJ0eVNv
b25UaW1lb3V0OwotCi0gICAgICAgICAgICBpZiAoIXRoaXMuX293bmVyU3R5bGUgfHwgaXNOYU4o
dGhpcy5faW5kZXgpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICAgICAgdmFy
IG5hbWUgPSAiX3BlbmRpbmdOYW1lIiBpbiB0aGlzID8gdGhpcy5fcGVuZGluZ05hbWUgOiB0aGlz
Ll9uYW1lOwotICAgICAgICAgICAgdmFyIHZhbHVlID0gIl9wZW5kaW5nVmFsdWUiIGluIHRoaXMg
PyB0aGlzLl9wZW5kaW5nVmFsdWUgOiB0aGlzLl92YWx1ZTsKLSAgICAgICAgICAgIHZhciBwcmlv
cml0eSA9ICJfcGVuZGluZ1ByaW9yaXR5IiBpbiB0aGlzID8gdGhpcy5fcGVuZGluZ1ByaW9yaXR5
IDogdGhpcy5fcHJpb3JpdHk7Ci0KLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nTmFt
ZTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wZW5kaW5nVmFsdWU7Ci0gICAgICAgICAgICBk
ZWxldGUgdGhpcy5fcGVuZGluZ1ByaW9yaXR5OwotCi0gICAgICAgICAgICB0aGlzLl9vd25lclN0
eWxlLm5vZGVTdHlsZXMuY2hhbmdlUHJvcGVydHkodGhpcywgbmFtZSwgdmFsdWUsIHByaW9yaXR5
KTsKLSAgICAgICAgfQotCi0gICAgICAgIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVvdXQg
PSBzZXRUaW1lb3V0KHBlcmZvcm1VcGRhdGUuYmluZCh0aGlzKSwgMCk7Ci0gICAgfSwKLQotICAg
IF9jYW5jZWxQZW5kaW5nVXBkYXRlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAoIXRo
aXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVvdXQpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIGNsZWFyVGltZW91dCh0aGlzLl91cGRhdGVQcm9wZXJ0eVNvb25UaW1lb3V0KTsKLSAgICAg
ICAgZGVsZXRlIHRoaXMuX3VwZGF0ZVByb3BlcnR5U29vblRpbWVvdXQ7CiAgICAgfQogfTsKLQot
V2ViSW5zcGVjdG9yLkNTU1Byb3BlcnR5LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9DU1NTdHlsZURlY2xhcmF0aW9uLmpzIGIvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKaW5k
ZXggZWFhYjE4Nzg3Njc1YmQ4MzY3ZjFjZTNhNGQwYWJjM2UxZTY2MTE4NS4uZGZjOWExOGY1NGM4
YWNkYzNiMDEwOGQ5ODEzZTc4MDY0MmIwMzIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFyYXRpb24uanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0NTU1N0eWxlRGVjbGFy
YXRpb24uanMKQEAgLTU5LDYgKzU5LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRp
b24uVHlwZSA9IHsKIAogV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFyYXRpb24ucHJvdG90eXBl
ID0gewogICAgIGNvbnN0cnVjdG9yOiBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbiwK
KyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlLAogCiAgICAgLy8g
UHVibGljCiAKQEAgLTI2NSw0MCArMjY2LDYgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlRGVjbGFy
YXRpb24ucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3UHJvcGVydHk7CiAgICAgfSwK
IAotICAgIGFkZFByb3BlcnR5OiBmdW5jdGlvbihwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGNv
bnNvbGUuYXNzZXJ0KHByb3BlcnR5KTsKLSAgICAgICAgaWYgKCFwcm9wZXJ0eSkKLSAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICBjb25zb2xlLmFzc2VydChwcm9wZXJ0eS5vd25lclN0eWxl
ID09PSB0aGlzKTsKLSAgICAgICAgaWYgKHByb3BlcnR5Lm93bmVyU3R5bGUgIT09IHRoaXMpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5lZGl0YWJs
ZSk7Ci0gICAgICAgIGlmICghdGhpcy5lZGl0YWJsZSkKLSAgICAgICAgICAgIHJldHVybjsKLQot
ICAgICAgICB0aGlzLl9ub2RlU3R5bGVzLmFkZFByb3BlcnR5KHByb3BlcnR5KTsKLSAgICB9LAot
Ci0gICAgcmVtb3ZlUHJvcGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5KQotICAgIHsKLSAgICAgICAg
Y29uc29sZS5hc3NlcnQocHJvcGVydHkpOwotICAgICAgICBpZiAoIXByb3BlcnR5KQotICAgICAg
ICAgICAgcmV0dXJuOwotCi0gICAgICAgIGNvbnNvbGUuYXNzZXJ0KHByb3BlcnR5Lm93bmVyU3R5
bGUgPT09IHRoaXMpOwotICAgICAgICBpZiAocHJvcGVydHkub3duZXJTdHlsZSAhPT0gdGhpcykK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLmVkaXRh
YmxlKTsKLSAgICAgICAgaWYgKCF0aGlzLmVkaXRhYmxlKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIHRoaXMuX25vZGVTdHlsZXMucmVtb3ZlUHJvcGVydHkocHJvcGVydHkpOwotICAg
IH0sCi0KICAgICAvLyBQcm90ZWN0ZWQKIAogICAgIGdldCBub2RlU3R5bGVzKCkKQEAgLTMwNiw1
ICsyNzMsMyBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVEZWNsYXJhdGlvbi5wcm90b3R5cGUgPSB7
CiAgICAgICAgIHJldHVybiB0aGlzLl9ub2RlU3R5bGVzOwogICAgIH0KIH07Ci0KLVdlYkluc3Bl
Y3Rvci5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0
b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVzLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKaW5kZXggYmVkNDhlODRk
ZjA4M2MzNTQ4NTAxZmFhZTJmOWUzN2ViNjI0NmRmMC4uYmIyMmEyNDQ2MzUwODdlY2U3ZGNkOTU3
ZjgxMzUxNjJiZDk5ODU1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL0RPTU5vZGVTdHlsZXMuanMKQEAgLTI0OCw3ICsyNDgs
NyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5wcm90b3R5cGUgPSB7CiAgICAgICAgIENT
U0FnZW50LmdldENvbXB1dGVkU3R5bGVGb3JOb2RlLmludm9rZSh7bm9kZUlkOiB0aGlzLl9ub2Rl
LmlkfSwgZmV0Y2hlZENvbXB1dGVkU3R5bGUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIGFk
ZFJ1bGU6IGZ1bmN0aW9uKHNlbGVjdG9yKQorICAgIGFkZEVtcHR5UnVsZTogZnVuY3Rpb24oKQog
ICAgIHsKICAgICAgICAgZnVuY3Rpb24gYWRkZWRSdWxlKGVycm9yLCBydWxlUGF5bG9hZCkKICAg
ICAgICAgewpAQCAtMjYwLDcgKzI2MCw3IEBAIFdlYkluc3BlY3Rvci5ET01Ob2RlU3R5bGVzLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgICB9CiAKLSAg
ICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvciB8fCB0aGlzLl9ub2RlLmFwcHJvcHJpYXRlU2VsZWN0
b3JGb3IodHJ1ZSk7CisgICAgICAgIHNlbGVjdG9yID0gdGhpcy5fbm9kZS5hcHByb3ByaWF0ZVNl
bGVjdG9yRm9yKHRydWUpOwogCiAgICAgICAgIENTU0FnZW50LmFkZFJ1bGUuaW52b2tlKHtjb250
ZXh0Tm9kZUlkOiB0aGlzLl9ub2RlLmlkLCBzZWxlY3Rvcjogc2VsZWN0b3J9LCBhZGRlZFJ1bGUu
YmluZCh0aGlzKSk7CiAgICAgfSwKQEAgLTQ1MSw4MyArNDUxLDggQEAgV2ViSW5zcGVjdG9yLkRP
TU5vZGVTdHlsZXMucHJvdG90eXBlID0gewogICAgICAgICBzdHlsZS5vd25lclN0eWxlU2hlZXQu
cmVxdWVzdENvbnRlbnQoKS50aGVuKGZldGNoZWRTdHlsZVNoZWV0Q29udGVudC5iaW5kKHRoaXMp
KTsKICAgICB9LAogCi0gICAgY2hhbmdlUHJvcGVydHk6IGZ1bmN0aW9uKHByb3BlcnR5LCBuYW1l
LCB2YWx1ZSwgcHJpb3JpdHkpCi0gICAgewotICAgICAgICB2YXIgdGV4dCA9IG5hbWUgPyBuYW1l
ICsgIjogIiArIHZhbHVlICsgKHByaW9yaXR5ID8gIiAhIiArIHByaW9yaXR5IDogIiIpICsgIjsi
IDogIiI7Ci0gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHlUZXh0KHByb3BlcnR5LCB0ZXh0KTsK
LSAgICB9LAotCi0gICAgY2hhbmdlUHJvcGVydHlUZXh0OiBmdW5jdGlvbihwcm9wZXJ0eSwgdGV4
dCkKLSAgICB7Ci0gICAgICAgIHRleHQgPSB0ZXh0IHx8ICIiOwotCi0gICAgICAgIHZhciBpbmRl
eCA9IHByb3BlcnR5LmluZGV4OwotICAgICAgICB2YXIgbmV3UHJvcGVydHkgPSBpc05hTihpbmRl
eCk7Ci0gICAgICAgIHZhciBvdmVyd3JpdGUgPSB0cnVlOwotCi0gICAgICAgIC8vIElmIHRoaXMg
aXMgYSBuZXcgcHJvcGVydHksIHRoZW4gZ2l2ZSBpdCBhbiBpbmRleCBhdCB0aGUgZW5kIG9mIHRo
ZSBjdXJyZW50IHByb3BlcnRpZXMuCi0gICAgICAgIC8vIEFsc28gZG9uJ3Qgb3ZlcndyaXRlLCB3
aGljaCB3aWxsIGNhdXNlIHRoZSBwcm9wZXJ0eSB0byBiZSBhZGRlZCBhdCB0aGF0IGluZGV4Lgot
ICAgICAgICBpZiAobmV3UHJvcGVydHkpIHsKLSAgICAgICAgICAgIGluZGV4ID0gcHJvcGVydHku
b3duZXJTdHlsZS5wcm9wZXJ0aWVzLmxlbmd0aDsKLSAgICAgICAgICAgIG92ZXJ3cml0ZSA9IGZh
bHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRleHQgJiYgdGV4dC5jaGFyQXQodGV4dC5s
ZW5ndGggLSAxKSAhPT0gIjsiKQotICAgICAgICAgICAgdGV4dCArPSAiOyI7Ci0KLSAgICAgICAg
dGhpcy5fbmVlZHNSZWZyZXNoID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5faWdub3JlTmV4dENvbnRl
bnREaWRDaGFuZ2VGb3JTdHlsZVNoZWV0ID0gcHJvcGVydHkub3duZXJTdHlsZS5vd25lclN0eWxl
U2hlZXQ7Ci0KLSAgICAgICAgQ1NTQWdlbnQuc2V0UHJvcGVydHlUZXh0KHByb3BlcnR5Lm93bmVy
U3R5bGUuaWQsIGluZGV4LCB0ZXh0LCBvdmVyd3JpdGUsIHRoaXMuX2hhbmRsZVByb3BlcnR5Q2hh
bmdlLmJpbmQodGhpcywgcHJvcGVydHkpKTsKLSAgICB9LAotCi0gICAgY2hhbmdlUHJvcGVydHlF
bmFibGVkU3RhdGU6IGZ1bmN0aW9uKHByb3BlcnR5LCBlbmFibGVkKQotICAgIHsKLSAgICAgICAg
ZW5hYmxlZCA9ICEhZW5hYmxlZDsKLQotICAgICAgICAvLyBDYW4ndCBjaGFuZ2UgYSBwZW5kaW5n
IHByb3BlcnR5IHdpdGggYSBOYU4gaW5kZXguCi0gICAgICAgIGlmIChpc05hTihwcm9wZXJ0eS5p
bmRleCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5faWdub3JlTmV4dENv
bnRlbnREaWRDaGFuZ2VGb3JTdHlsZVNoZWV0ID0gcHJvcGVydHkub3duZXJTdHlsZS5vd25lclN0
eWxlU2hlZXQ7Ci0KLSAgICAgICAgQ1NTQWdlbnQudG9nZ2xlUHJvcGVydHkocHJvcGVydHkub3du
ZXJTdHlsZS5pZCwgcHJvcGVydHkuaW5kZXgsICFlbmFibGVkLCB0aGlzLl9oYW5kbGVQcm9wZXJ0
eUNoYW5nZS5iaW5kKHRoaXMsIHByb3BlcnR5KSk7Ci0gICAgfSwKLQotICAgIGFkZFByb3BlcnR5
OiBmdW5jdGlvbihwcm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIC8vIENhbid0IGFkZCBhIHByb3Bl
cnR5IHVubGVzcyBpdCBoYXMgYSBOYU4gaW5kZXguCi0gICAgICAgIGlmICghaXNOYU4ocHJvcGVy
dHkuaW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIEFkZGluZyBpcyBk
b25lIGJ5IHNldHRpbmcgdGhlIHRleHQuCi0gICAgICAgIHRoaXMuY2hhbmdlUHJvcGVydHlUZXh0
KHByb3BlcnR5LCBwcm9wZXJ0eS50ZXh0KTsKLSAgICB9LAotCi0gICAgcmVtb3ZlUHJvcGVydHk6
IGZ1bmN0aW9uKHByb3BlcnR5KQotICAgIHsKLSAgICAgICAgLy8gQ2FuJ3QgcmVtb3ZlIGEgcGVu
ZGluZyBwcm9wZXJ0eSB3aXRoIGEgTmFOIGluZGV4LgotICAgICAgICBpZiAoaXNOYU4ocHJvcGVy
dHkuaW5kZXgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIFJlbW92aW5nIGlz
IGRvbmUgYnkgc2V0dGluZyB0ZXh0IHRvIGFuIGVtcHR5IHN0cmluZy4KLSAgICAgICAgdGhpcy5j
aGFuZ2VQcm9wZXJ0eVRleHQocHJvcGVydHksICIiKTsKLSAgICB9LAotCiAgICAgLy8gUHJpdmF0
ZQogCi0gICAgX2hhbmRsZVByb3BlcnR5Q2hhbmdlOiBmdW5jdGlvbihwcm9wZXJ0eSwgZXJyb3Is
IHN0eWxlUGF5bG9hZCkKLSAgICB7Ci0gICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgIHJl
dHVybjsKLQotICAgICAgICBET01BZ2VudC5tYXJrVW5kb2FibGVTdGF0ZSgpOwotCi0gICAgICAg
IC8vIERvIGEgcmVmcmVzaCBpbnN0ZWFkIG9mIGhhbmRsaW5nIHN0eWxlUGF5bG9hZCBzbyBjb21w
dXRlZCBzdHlsZSBpcyB1cGRhdGVkIGFuZCB3ZSBnZXQgdmFsaWQKLSAgICAgICAgLy8gc3R5bGVT
aGVldFRleHRSYW5nZSB2YWx1ZXMgZm9yIGFsbCB0aGUgcnVsZXMgYWZ0ZXIgdGhpcyBjaGFuZ2Uu
Ci0gICAgICAgIHRoaXMucmVmcmVzaCgpOwotICAgIH0sCi0KICAgICBfY3JlYXRlU291cmNlQ29k
ZUxvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VVUkwsIHNvdXJjZUxpbmUsIHNvdXJjZUNvbHVtbikK
ICAgICB7CiAgICAgICAgIGlmICghc291cmNlVVJMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVnYWN5LzYuMC9JbnNwZWN0b3JCYWNr
ZW5kQ29tbWFuZHMuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC9MZWdhY3kvNi4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwppbmRleCAyNWY4YWZk
NjBiMmJkYjMyMWI4YjAyYzc4OWIzOTI2NDk3ODY0YzgzLi44ZGU5NjVhMzUxNTg2YzQ4NjlmN2Nl
YmY4OWY3MjY0ODc2ZjgxNjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9MZWdhY3kvNi4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9MZWdh
Y3kvNi4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcwpAQCAtMjA5LDggKzIwOSw2IEBAIElu
c3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1MuZ2V0QWxsU3R5bGVTaGVldHMiLCBb
XSwgWyJoZWFkZXJzIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5n
ZXRTdHlsZVNoZWV0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmci
LCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInN0eWxlU2hlZXQiXSk7CiBJbnNwZWN0b3JCYWNrZW5k
LnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN0eWxlU2hlZXRUZXh0IiwgW3sibmFtZSI6ICJzdHls
ZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInRleHQi
XSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNldFN0eWxlU2hlZXRU
ZXh0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9u
YWwiOiBmYWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogZmFsc2V9XSwgW10pOwotSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5z
ZXRQcm9wZXJ0eVRleHQiLCBbeyJuYW1lIjogInN0eWxlSWQiLCAidHlwZSI6ICJvYmplY3QiLCAi
b3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJwcm9wZXJ0eUluZGV4IiwgInR5cGUiOiAibnVt
YmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogIm92ZXJ3cml0ZSIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInN0eWxlIl0pOwotSW5zcGVjdG9yQmFja2Vu
ZC5yZWdpc3RlckNvbW1hbmQoIkNTUy50b2dnbGVQcm9wZXJ0eSIsIFt7Im5hbWUiOiAic3R5bGVJ
ZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInByb3Bl
cnR5SW5kZXgiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6
ICJkaXNhYmxlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsic3R5
bGUiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNldFJ1bGVTZWxl
Y3RvciIsIFt7Im5hbWUiOiAicnVsZUlkIiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjog
ZmFsc2V9LCB7Im5hbWUiOiAic2VsZWN0b3IiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwi
OiBmYWxzZX1dLCBbInJ1bGUiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgi
Q1NTLmFkZFJ1bGUiLCBbeyJuYW1lIjogImNvbnRleHROb2RlSWQiLCAidHlwZSI6ICJudW1iZXIi
LCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJzZWxlY3RvciIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsicnVsZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJDb21tYW5kKCJDU1MuZ2V0U3VwcG9ydGVkQ1NTUHJvcGVydGllcyIsIFtdLCBbImNzc1By
b3BlcnRpZXMiXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Qcm90b2NvbC9MZWdhY3kvNy4wL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS83LjAvSW5z
cGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCmluZGV4IGExNDE1ZTA0NWVlNDdjNDIzMjdjMzI5YWZi
ZDEyNzAxNGVhZjU0YWIuLjQxYjcxZDYwZGU2ZTVlZmQ3Nzk3OWUwZDE0ODdjYmVmNWE1YWE3Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
L0xlZ2FjeS83LjAvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS83LjAvSW5zcGVjdG9yQmFj
a2VuZENvbW1hbmRzLmpzCkBAIC0yMzgsOCArMjM4LDYgQEAgSW5zcGVjdG9yQmFja2VuZC5yZWdp
c3RlckNvbW1hbmQoIkNTUy5nZXRTdHlsZVNoZWV0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQi
LAogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5nZXRTdHlsZVNoZWV0VGV4
dCIsIFt7Im5hbWUiOiAic3R5bGVTaGVldElkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogZmFsc2V9XSwgWyJ0ZXh0Il0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQo
IkNTUy5zZXRTdHlsZVNoZWV0VGV4dCIsIFt7Im5hbWUiOiAic3R5bGVTaGVldElkIiwgInR5cGUi
OiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidGV4dCIsICJ0eXBlIjog
InN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFtdKTsKIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJDb21tYW5kKCJDU1Muc2V0U3R5bGVUZXh0IiwgW3sibmFtZSI6ICJzdHlsZUlkIiwgInR5
cGUiOiAib2JqZWN0IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAidGV4dCIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsic3R5bGUiXSk7Ci1JbnNwZWN0b3JC
YWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNldFByb3BlcnR5VGV4dCIsIFt7Im5hbWUiOiAi
c3R5bGVJZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjog
InByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJudW1iZXIiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsi
bmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5h
bWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IGZhbHNlfV0s
IFsic3R5bGUiXSk7Ci1JbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnRvZ2ds
ZVByb3BlcnR5IiwgW3sibmFtZSI6ICJzdHlsZUlkIiwgInR5cGUiOiAib2JqZWN0IiwgIm9wdGlv
bmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogIm51bWJlciIs
ICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogImRpc2FibGUiLCAidHlwZSI6ICJib29sZWFu
IiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzdHlsZSJdKTsKIEluc3BlY3RvckJhY2tlbmQucmVn
aXN0ZXJDb21tYW5kKCJDU1Muc2V0UnVsZVNlbGVjdG9yIiwgW3sibmFtZSI6ICJydWxlSWQiLCAi
dHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJzZWxlY3RvciIs
ICJ0eXBlIjogInN0cmluZyIsICJvcHRpb25hbCI6IGZhbHNlfV0sIFsicnVsZSJdKTsKIEluc3Bl
Y3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1MuYWRkUnVsZSIsIFt7Im5hbWUiOiAiY29u
dGV4dE5vZGVJZCIsICJ0eXBlIjogIm51bWJlciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1l
IjogInNlbGVjdG9yIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJy
dWxlIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5nZXRTdXBwb3J0
ZWRDU1NQcm9wZXJ0aWVzIiwgW10sIFsiY3NzUHJvcGVydGllcyJdKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0xlZ2FjeS84LjAvSW5z
cGVjdG9yQmFja2VuZENvbW1hbmRzLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKaW5k
ZXggNzMzYjI3ODU4ZTUyZTJlMmI0NjkxODJjZDg5YmE5NTNlZGM4MjQ3Yi4uMmY2NTc3MzFlNGMw
OWQ0NWIxNjQ1NWM0MzI0NDdkMGM0YjMzZWZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvTGVnYWN5LzguMC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKQEAgLTE1NCw4ICsx
NTQsNiBAQCBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN0eWxlU2hl
ZXQiLCBbeyJuYW1lIjogInN0eWxlU2hlZXRJZCIsCiBJbnNwZWN0b3JCYWNrZW5kLnJlZ2lzdGVy
Q29tbWFuZCgiQ1NTLmdldFN0eWxlU2hlZXRUZXh0IiwgW3sibmFtZSI6ICJzdHlsZVNoZWV0SWQi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInRleHQiXSk7CiBJbnNw
ZWN0b3JCYWNrZW5kLnJlZ2lzdGVyQ29tbWFuZCgiQ1NTLnNldFN0eWxlU2hlZXRUZXh0IiwgW3si
bmFtZSI6ICJzdHlsZVNoZWV0SWQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiBmYWxz
ZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFsc2V9
XSwgW10pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5zZXRTdHlsZVRl
eHQiLCBbeyJuYW1lIjogInN0eWxlSWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBm
YWxzZX0sIHsibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogZmFs
c2V9XSwgWyJzdHlsZSJdKTsKLUluc3BlY3RvckJhY2tlbmQucmVnaXN0ZXJDb21tYW5kKCJDU1Mu
c2V0UHJvcGVydHlUZXh0IiwgW3sibmFtZSI6ICJzdHlsZUlkIiwgInR5cGUiOiAib2JqZWN0Iiwg
Im9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogIm51
bWJlciIsICJvcHRpb25hbCI6IGZhbHNlfSwgeyJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJvdmVyd3JpdGUiLCAidHlwZSI6ICJi
b29sZWFuIiwgIm9wdGlvbmFsIjogZmFsc2V9XSwgWyJzdHlsZSJdKTsKLUluc3BlY3RvckJhY2tl
bmQucmVnaXN0ZXJDb21tYW5kKCJDU1MudG9nZ2xlUHJvcGVydHkiLCBbeyJuYW1lIjogInN0eWxl
SWQiLCAidHlwZSI6ICJvYmplY3QiLCAib3B0aW9uYWwiOiBmYWxzZX0sIHsibmFtZSI6ICJwcm9w
ZXJ0eUluZGV4IiwgInR5cGUiOiAibnVtYmVyIiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUi
OiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInN0
eWxlIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQoIkNTUy5zZXRSdWxlU2Vs
ZWN0b3IiLCBbeyJuYW1lIjogInJ1bGVJZCIsICJ0eXBlIjogIm9iamVjdCIsICJvcHRpb25hbCI6
IGZhbHNlfSwgeyJuYW1lIjogInNlbGVjdG9yIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogZmFsc2V9XSwgWyJydWxlIl0pOwogSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNvbW1hbmQo
IkNTUy5hZGRSdWxlIiwgW3sibmFtZSI6ICJjb250ZXh0Tm9kZUlkIiwgInR5cGUiOiAibnVtYmVy
IiwgIm9wdGlvbmFsIjogZmFsc2V9LCB7Im5hbWUiOiAic2VsZWN0b3IiLCAidHlwZSI6ICJzdHJp
bmciLCAib3B0aW9uYWwiOiBmYWxzZX1dLCBbInJ1bGUiXSk7CiBJbnNwZWN0b3JCYWNrZW5kLnJl
Z2lzdGVyQ29tbWFuZCgiQ1NTLmdldFN1cHBvcnRlZENTU1Byb3BlcnRpZXMiLCBbXSwgWyJjc3NQ
cm9wZXJ0aWVzIl0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1J1bGVzU3R5bGVEZXRhaWxzUGFuZWwuanMKaW5kZXgg
ODBjMDg4YWI3NTc5ZGIwMWIyMTgzNzkyZWU3YWMyZjgwOTMwNGQwMC4uNzk2NGIzZWM1ZDNjY2M4
ZTAzYzgxNTgyZTE3Yzg0M2VkZmRjMTRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUnVsZXNTdHlsZURldGFpbHNQYW5lbC5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SdWxlc1N0eWxlRGV0YWls
c1BhbmVsLmpzCkBAIC0yODAsNyArMjgwLDcgQEAgV2ViSW5zcGVjdG9yLlJ1bGVzU3R5bGVEZXRh
aWxzUGFuZWwucHJvdG90eXBlID0gewogICAgIF9uZXdSdWxlQ2xpY2tlZDogZnVuY3Rpb24oZXZl
bnQpCiAgICAgewogICAgICAgICB0aGlzLl9mb2N1c05leHROZXdJbnNwZWN0b3JSdWxlID0gdHJ1
ZTsKLSAgICAgICAgdGhpcy5ub2RlU3R5bGVzLmFkZFJ1bGUoKTsKKyAgICAgICAgdGhpcy5ub2Rl
U3R5bGVzLmFkZEVtcHR5UnVsZSgpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9WZXJzaW9ucy9JbnNwZWN0b3ItaU9TLTYuMC5qc29uIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtNi4wLmpzb24KaW5kZXggOWY3Y2E3
OTFhNTc4MTk4ZWRkYjBiOTE2ZTVkZjhkZGE4ZWYyMDViYi4uODBmNWM2YTcwZGI0NWE4ZWVlYWZk
NTMzYzE4YzEzOGU0NzRhODc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Zl
cnNpb25zL0luc3BlY3Rvci1pT1MtNi4wLmpzb24KKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1ZlcnNpb25zL0luc3BlY3Rvci1pT1MtNi4wLmpzb24KQEAgLTE3MzEsMzEgKzE3MzEsNiBAQAog
ICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBuZXcgc3R5bGVzaGVldCB0
ZXh0LCB0aGVyZWJ5IGludmFsaWRhdGluZyBhbGwgZXhpc3RpbmcgPGNvZGU+Q1NTU3R5bGVJZDwv
Y29kZT4ncyBhbmQgPGNvZGU+Q1NTUnVsZUlkPC9jb2RlPidzIGNvbnRhaW5lZCBieSB0aGlzIHN0
eWxlc2hlZXQuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAibmFtZSI6ICJzZXRQcm9wZXJ0eVRleHQiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlSWQiLCAiJHJlZiI6ICJD
U1NTdHlsZUlkIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5SW5k
ZXgiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InRleHQiLCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQotICAgICAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAic3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVzdWx0
aW5nIHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1vZGlmaWNhdGlvbi4iIH0KLSAgICAg
ICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBu
ZXcgPGNvZGU+dGV4dDwvY29kZT4gZm9yIGEgcHJvcGVydHkgaW4gdGhlIHJlc3BlY3RpdmUgc3R5
bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9jb2RlPi4gSWYgPGNvZGU+b3Zlcndy
aXRlPC9jb2RlPiBpcyA8Y29kZT50cnVlPC9jb2RlPiwgYSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4g
b2Zmc2V0IGlzIG92ZXJ3cml0dGVuLCBvdGhlcndpc2UgaW5zZXJ0ZWQuIDxjb2RlPnRleHQ8L2Nv
ZGU+IGVudGlyZWx5IHJlcGxhY2VzIHRoZSBwcm9wZXJ0eSA8Y29kZT5uYW1lOiB2YWx1ZTwvY29k
ZT4uIgotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJ0b2dnbGVQcm9wZXJ0eSIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVJZCIsICIkcmVmIjogIkNTU1N0eWxl
SWQiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0
eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlzYWJs
ZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAg
ICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwg
IiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3VsdGluZyBzdHlsZSBh
ZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVG9nZ2xlcyB0aGUgcHJvcGVydHkgaW4gdGhlIHJl
c3BlY3RpdmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9jb2RlPi4gVGhl
IDxjb2RlPmRpc2FibGU8L2NvZGU+IHBhcmFtZXRlciBkZW5vdGVzIHdoZXRoZXIgdGhlIHByb3Bl
cnR5IHNob3VsZCBiZSBkaXNhYmxlZCAoaS5lLiByZW1vdmVkIGZyb20gdGhlIHN0eWxlIGRlY2xh
cmF0aW9uKS4gSWYgPGNvZGU+ZGlzYWJsZSA9PSBmYWxzZTwvY29kZT4sIHRoZSBwcm9wZXJ0eSBn
ZXRzIHB1dCBiYWNrIGludG8gaXRzIG9yaWdpbmFsIHBsYWNlIGluIHRoZSBzdHlsZSBkZWNsYXJh
dGlvbi4iCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJu
YW1lIjogInNldFJ1bGVTZWxlY3RvciIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicnVsZUlkIiwgIiRyZWYiOiAiQ1NTUnVs
ZUlkIiB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1ZlcnNpb25zL0luc3Bl
Y3Rvci1pT1MtNy4wLmpzb24gYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVj
dG9yLWlPUy03LjAuanNvbgppbmRleCBjM2ZkYTNhMzliODdiMTM5NTdiZmFhNTU0MzUxODRlNDZh
MGNkY2YzLi5lYWQxNTQ0NWU5NDYwMGE1NDY4YmE4ODg1NTNjMWFjZmY2MzMwNTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy03LjAuanNv
bgorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy03LjAu
anNvbgpAQCAtMjAzMiwzMSArMjAzMiw2IEBACiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlNldHMgdGhlIG5ldyA8Y29kZT50ZXh0PC9jb2RlPiBmb3IgdGhlIHJlc3BlY3RpdmUgc3R5
bGUuIgogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFt
ZSI6ICJzZXRQcm9wZXJ0eVRleHQiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHls
ZUlkIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3BlcnR5SW5kZXgiLCAi
dHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRleHQi
LCAidHlwZSI6ICJzdHJpbmciIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3Zl
cndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQotICAgICAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5
bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVzdWx0aW5nIHN0
eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1vZGlmaWNhdGlvbi4iIH0KLSAgICAgICAgICAg
ICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSBuZXcgPGNv
ZGU+dGV4dDwvY29kZT4gZm9yIGEgcHJvcGVydHkgaW4gdGhlIHJlc3BlY3RpdmUgc3R5bGUsIGF0
IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9jb2RlPi4gSWYgPGNvZGU+b3ZlcndyaXRlPC9j
b2RlPiBpcyA8Y29kZT50cnVlPC9jb2RlPiwgYSBwcm9wZXJ0eSBhdCB0aGUgZ2l2ZW4gb2Zmc2V0
IGlzIG92ZXJ3cml0dGVuLCBvdGhlcndpc2UgaW5zZXJ0ZWQuIDxjb2RlPnRleHQ8L2NvZGU+IGVu
dGlyZWx5IHJlcGxhY2VzIHRoZSBwcm9wZXJ0eSA8Y29kZT5uYW1lOiB2YWx1ZTwvY29kZT4uIgot
ICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJ0
b2dnbGVQcm9wZXJ0eSIsCi0gICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic3R5bGVJZCIsICIkcmVmIjogIkNTU1N0eWxlSWQiIH0s
Ci0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjog
ImludGVnZXIiIH0sCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGlzYWJsZSIsICJ0
eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJy
ZXR1cm5zIjogWwotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0eWxlIiwgIiRyZWYi
OiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3VsdGluZyBzdHlsZSBhZnRlciB0
aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9Ci0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVG9nZ2xlcyB0aGUgcHJvcGVydHkgaW4gdGhlIHJlc3BlY3Rp
dmUgc3R5bGUsIGF0IG9mZnNldCA8Y29kZT5wcm9wZXJ0eUluZGV4PC9jb2RlPi4gVGhlIDxjb2Rl
PmRpc2FibGU8L2NvZGU+IHBhcmFtZXRlciBkZW5vdGVzIHdoZXRoZXIgdGhlIHByb3BlcnR5IHNo
b3VsZCBiZSBkaXNhYmxlZCAoaS5lLiByZW1vdmVkIGZyb20gdGhlIHN0eWxlIGRlY2xhcmF0aW9u
KS4gSWYgPGNvZGU+ZGlzYWJsZSA9PSBmYWxzZTwvY29kZT4sIHRoZSBwcm9wZXJ0eSBnZXRzIHB1
dCBiYWNrIGludG8gaXRzIG9yaWdpbmFsIHBsYWNlIGluIHRoZSBzdHlsZSBkZWNsYXJhdGlvbi4i
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjog
InNldFJ1bGVTZWxlY3RvciIsCiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAg
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicnVsZUlkIiwgIiRyZWYiOiAiQ1NTUnVsZUlkIiB9
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1ZlcnNpb25zL0luc3BlY3Rvci1p
T1MtOC4wLmpzb24gYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlP
Uy04LjAuanNvbgppbmRleCA0YWE2ZDIxZDYwNWFiMmY3YWY0M2MxYmZkMDlmYzUwYWVjMTYyODIz
Li45MzMyMDNiM2UyY2RmY2JmMDY2M2U0NmFlOGNlMThhMTA2YzkxNTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy04LjAuanNvbgorKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVmVyc2lvbnMvSW5zcGVjdG9yLWlPUy04LjAuanNvbgpA
QCAtMTE3MywzMSArMTE3Myw2IEBACiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyB0
aGUgbmV3IDxjb2RlPnRleHQ8L2NvZGU+IGZvciB0aGUgcmVzcGVjdGl2ZSBzdHlsZS4iCiAgICAg
ICAgIH0sCiAgICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInNldFByb3BlcnR5VGV4dCIs
Ci0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InN0eWxlSWQiLCAiJHJlZiI6ICJDU1NTdHlsZUlkIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicHJvcGVydHlJbmRleCIsICJ0eXBlIjogImludGVnZXIiIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJ0ZXh0IiwgInR5cGUiOiAic3RyaW5nIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAib3ZlcndyaXRlIiwgInR5cGUiOiAiYm9vbGVhbiIgfQotICAgICAgICAgICAg
XSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
c3R5bGUiLCAiJHJlZiI6ICJDU1NTdHlsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVzdWx0aW5n
IHN0eWxlIGFmdGVyIHRoZSBwcm9wZXJ0eSB0ZXh0IG1vZGlmaWNhdGlvbi4iIH0KLSAgICAgICAg
ICAgIF0sCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUgbmV3IDxjb2RlPnRl
eHQ8L2NvZGU+IGZvciBhIHByb3BlcnR5IGluIHRoZSByZXNwZWN0aXZlIHN0eWxlLCBhdCBvZmZz
ZXQgPGNvZGU+cHJvcGVydHlJbmRleDwvY29kZT4uIElmIDxjb2RlPm92ZXJ3cml0ZTwvY29kZT4g
aXMgPGNvZGU+dHJ1ZTwvY29kZT4sIGEgcHJvcGVydHkgYXQgdGhlIGdpdmVuIG9mZnNldCBpcyBv
dmVyd3JpdHRlbiwgb3RoZXJ3aXNlIGluc2VydGVkLiA8Y29kZT50ZXh0PC9jb2RlPiBlbnRpcmVs
eSByZXBsYWNlcyB0aGUgcHJvcGVydHkgPGNvZGU+bmFtZTogdmFsdWU8L2NvZGU+LiIKLSAgICAg
ICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAidG9nZ2xlUHJvcGVydHkiLAot
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJz
dHlsZUlkIiwgIiRyZWYiOiAiQ1NTU3R5bGVJZCIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogInByb3BlcnR5SW5kZXgiLCAidHlwZSI6ICJpbnRlZ2VyIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZGlzYWJsZSIsICJ0eXBlIjogImJvb2xlYW4iIH0KLSAgICAgICAgICAgIF0s
Ci0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInN0
eWxlIiwgIiRyZWYiOiAiQ1NTU3R5bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3VsdGluZyBz
dHlsZSBhZnRlciB0aGUgcHJvcGVydHkgdG9nZ2xpbmcuIiB9Ci0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgdGhlIHByb3BlcnR5IGluIHRoZSByZXNw
ZWN0aXZlIHN0eWxlLCBhdCBvZmZzZXQgPGNvZGU+cHJvcGVydHlJbmRleDwvY29kZT4uIFRoZSA8
Y29kZT5kaXNhYmxlPC9jb2RlPiBwYXJhbWV0ZXIgZGVub3RlcyB3aGV0aGVyIHRoZSBwcm9wZXJ0
eSBzaG91bGQgYmUgZGlzYWJsZWQgKGkuZS4gcmVtb3ZlZCBmcm9tIHRoZSBzdHlsZSBkZWNsYXJh
dGlvbikuIElmIDxjb2RlPmRpc2FibGUgPT0gZmFsc2U8L2NvZGU+LCB0aGUgcHJvcGVydHkgZ2V0
cyBwdXQgYmFjayBpbnRvIGl0cyBvcmlnaW5hbCBwbGFjZSBpbiB0aGUgc3R5bGUgZGVjbGFyYXRp
b24uIgotICAgICAgICB9LAotICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzZXRSdWxl
U2VsZWN0b3IiLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJydWxlSWQiLCAiJHJlZiI6ICJDU1NSdWxlSWQiIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>